Skip to content

Commit ff637f1

Browse files
authored
Merge pull request grokability#16497 from marcusmoore/fixes/diff-in
Fixed various carbon displays
2 parents bfc1224 + 4d978e0 commit ff637f1

File tree

15 files changed

+97
-17
lines changed

15 files changed

+97
-17
lines changed

app/Http/Controllers/AssetMaintenancesController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public function store(Request $request) : RedirectResponse
117117
) {
118118
$startDate = Carbon::parse($assetMaintenance->start_date);
119119
$completionDate = Carbon::parse($assetMaintenance->completion_date);
120-
$assetMaintenance->asset_maintenance_time = $completionDate->diffInDays($startDate);
120+
$assetMaintenance->asset_maintenance_time = (int) $completionDate->diffInDays($startDate, true);
121121
}
122122

123123
// Was the asset maintenance created?
@@ -210,7 +210,7 @@ public function update(Request $request, AssetMaintenance $maintenance) : View |
210210
) {
211211
$startDate = Carbon::parse($maintenance->start_date);
212212
$completionDate = Carbon::parse($maintenance->completion_date);
213-
$maintenance->asset_maintenance_time = $completionDate->diffInDays($startDate);
213+
$maintenance->asset_maintenance_time = (int) $completionDate->diffInDays($startDate, true);
214214
}
215215

216216
// Was the asset maintenance created?

app/Http/Controllers/Assets/AssetsController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ public function update(ImageUploadRequest $request, Asset $asset) : RedirectResp
318318
$asset->eol_explicit = false;
319319
} elseif ($request->filled('asset_eol_date')) {
320320
$asset->asset_eol_date = $request->input('asset_eol_date', null);
321-
$months = Carbon::parse($asset->asset_eol_date)->diffInMonths($asset->purchase_date);
321+
$months = (int) Carbon::parse($asset->asset_eol_date)->diffInMonths($asset->purchase_date, true);
322322
if($asset->model->eol) {
323323
if($months != $asset->model->eol > 0) {
324324
$asset->eol_explicit = true;

app/Http/Controllers/ReportsController.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1081,10 +1081,10 @@ public function exportAssetMaintenancesReport() : Response
10811081
$row[] = e($assetMaintenance->start_date);
10821082
$row[] = e($assetMaintenance->completion_date);
10831083
if (is_null($assetMaintenance->asset_maintenance_time)) {
1084-
$improvementTime = intval(Carbon::now()
1085-
->diffInDays(Carbon::parse($assetMaintenance->start_date)));
1084+
$improvementTime = (int) Carbon::now()
1085+
->diffInDays(Carbon::parse($assetMaintenance->start_date), true);
10861086
} else {
1087-
$improvementTime = intval($assetMaintenance->asset_maintenance_time);
1087+
$improvementTime = (int) $assetMaintenance->asset_maintenance_time;
10881088
}
10891089
$row[] = $improvementTime;
10901090
$row[] = trans('general.currency') . Helper::formatCurrencyOutput($assetMaintenance->cost);

app/Http/Transformers/AssetsTransformer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public function transformAsset(Asset $asset)
4242
'requestable' => ($asset->requestable ? true : false),
4343

4444
'model_number' => (($asset->model) && ($asset->model->model_number)) ? e($asset->model->model_number) : null,
45-
'eol' => (($asset->asset_eol_date != '') && ($asset->purchase_date != '')) ? Carbon::parse($asset->asset_eol_date)->diffInMonths($asset->purchase_date).' months' : null,
45+
'eol' => (($asset->asset_eol_date != '') && ($asset->purchase_date != '')) ? (int) Carbon::parse($asset->asset_eol_date)->diffInMonths($asset->purchase_date, true) . ' months' : null,
4646
'asset_eol_date' => ($asset->asset_eol_date != '') ? Helper::getFormattedDateObject($asset->asset_eol_date, 'date') : null,
4747
'status_label' => ($asset->assetstatus) ? [
4848
'id' => (int) $asset->assetstatus->id,

app/Models/Actionlog.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,13 +295,13 @@ public function daysUntilNextAudit($monthInterval = 12, $asset = null)
295295
$now = Carbon::now();
296296
$last_audit_date = $this->created_at; // this is the action log's created at, not the asset itself
297297
$next_audit = $last_audit_date->addMonth($monthInterval); // this actually *modifies* the $last_audit_date
298-
$next_audit_days = round($now->diffInDays($next_audit, true));
298+
$next_audit_days = (int) round($now->diffInDays($next_audit, true));
299299
$override_default_next = $next_audit;
300300

301301
// Override the default setting for interval if the asset has its own next audit date
302302
if (($asset) && ($asset->next_audit_date)) {
303303
$override_default_next = Carbon::parse($asset->next_audit_date);
304-
$next_audit_days = round($override_default_next->diffInDays($now, true));
304+
$next_audit_days = (int) round($override_default_next->diffInDays($now, true));
305305
}
306306

307307
// Show as negative number if the next audit date is before the audit date we're looking at

app/Observers/AssetObserver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ public function saving(Asset $asset)
171171
// determine if explicit and set eol_explicit to true
172172
if (!is_null($asset->asset_eol_date) && !is_null($asset->purchase_date)) {
173173
if($asset->model->eol > 0) {
174-
$months = Carbon::parse($asset->asset_eol_date)->diffInMonths($asset->purchase_date);
174+
$months = (int) Carbon::parse($asset->asset_eol_date)->diffInMonths($asset->purchase_date, true);
175175
if($months != $asset->model->eol) {
176176
$asset->eol_explicit = true;
177177
}

resources/views/hardware/view.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -957,7 +957,7 @@ class="form-inline"
957957
</strong>
958958
</div>
959959
<div class="col-md-9">
960-
{{ Carbon::parse($asset->asset_eol_date)->diffInMonths($asset->purchase_date) }}
960+
{{ (int) Carbon::parse($asset->asset_eol_date)->diffInMonths($asset->purchase_date, true) }}
961961
{{ trans('admin/hardware/form.months') }}
962962

963963
</div>

resources/views/notifications/markdown/upcoming-audits.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
@php
1010
$next_audit_date = Helper::getFormattedDateObject($asset->next_audit_date, 'date', false);
1111
$last_audit_date = Helper::getFormattedDateObject($asset->last_audit_date, 'date', false);
12-
$diff = Carbon::parse(Carbon::now())->diffInDays($asset->next_audit_date, false);
12+
$diff = (int) Carbon::parse(Carbon::now())->diffInDays($asset->next_audit_date, true);
1313
$icon = ($diff <= 7) ? '🚨' : (($diff <= 14) ? '⚠️' : ' ');
1414
@endphp
1515
|{{ $icon }}| [{{ $asset->present()->name }}]({{ route('hardware.show', $asset->id) }}) | {{ $last_audit_date }}| {{ $next_audit_date }} | {{ $diff }} | {{ ($asset->supplier ? e($asset->supplier->name) : '') }}|{{ ($asset->assignedTo ? $asset->assignedTo->present()->name() : '') }}|{{ $asset->notes }}

tests/Feature/AssetMaintenances/Ui/CreateAssetMaintenanceTest.php

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace Tests\Feature\AssetMaintenances\Ui;
44

5+
use App\Models\Asset;
6+
use App\Models\Supplier;
57
use App\Models\User;
68
use Tests\TestCase;
79

@@ -13,4 +15,41 @@ public function testPageRenders()
1315
->get(route('maintenances.create'))
1416
->assertOk();
1517
}
18+
19+
public function testCanCreateAssetMaintenance()
20+
{
21+
$actor = User::factory()->superuser()->create();
22+
23+
$asset = Asset::factory()->create();
24+
$supplier = Supplier::factory()->create();
25+
26+
$this->actingAs($actor)
27+
->followingRedirects()
28+
->post(route('maintenances.store'), [
29+
'title' => 'Test Maintenance',
30+
'asset_id' => $asset->id,
31+
'supplier_id' => $supplier->id,
32+
'asset_maintenance_type' => 'Maintenance',
33+
'start_date' => '2021-01-01',
34+
'completion_date' => '2021-01-10',
35+
'is_warranty' => '1',
36+
'cost' => '100.00',
37+
'notes' => 'A note',
38+
])
39+
->assertOk();
40+
41+
$this->assertDatabaseHas('asset_maintenances', [
42+
'asset_id' => $asset->id,
43+
'supplier_id' => $supplier->id,
44+
'asset_maintenance_type' => 'Maintenance',
45+
'title' => 'Test Maintenance',
46+
'is_warranty' => 1,
47+
'start_date' => '2021-01-01',
48+
'completion_date' => '2021-01-10',
49+
'asset_maintenance_time' => '9',
50+
'notes' => 'A note',
51+
'cost' => '100.00',
52+
'created_by' => $actor->id,
53+
]);
54+
}
1655
}

tests/Feature/AssetMaintenances/Ui/EditAssetMaintenanceTest.php

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
namespace Tests\Feature\AssetMaintenances\Ui;
44

5+
use App\Models\Asset;
56
use App\Models\AssetMaintenance;
7+
use App\Models\Supplier;
68
use App\Models\User;
79
use Tests\TestCase;
810

@@ -14,4 +16,43 @@ public function testPageRenders()
1416
->get(route('maintenances.edit', AssetMaintenance::factory()->create()->id))
1517
->assertOk();
1618
}
19+
20+
public function testCanUpdateAssetMaintenance()
21+
{
22+
$actor = User::factory()->superuser()->create();
23+
24+
$assetMaintenance = AssetMaintenance::factory()->create();
25+
26+
$asset = Asset::factory()->create();
27+
$supplier = Supplier::factory()->create();
28+
29+
$this->actingAs($actor)
30+
->followingRedirects()
31+
->put(route('maintenances.update', $assetMaintenance->id), [
32+
'title' => 'Test Maintenance',
33+
'asset_id' => $asset->id,
34+
'supplier_id' => $supplier->id,
35+
'asset_maintenance_type' => 'Maintenance',
36+
'start_date' => '2021-01-01',
37+
'completion_date' => '2021-01-10',
38+
'is_warranty' => '1',
39+
'cost' => '100.00',
40+
'notes' => 'A note',
41+
])
42+
->assertOk();
43+
44+
$this->assertDatabaseHas('asset_maintenances', [
45+
'asset_id' => $asset->id,
46+
'supplier_id' => $supplier->id,
47+
'asset_maintenance_type' => 'Maintenance',
48+
'title' => 'Test Maintenance',
49+
'is_warranty' => 1,
50+
'start_date' => '2021-01-01',
51+
'completion_date' => '2021-01-10',
52+
'asset_maintenance_time' => '9',
53+
'notes' => 'A note',
54+
'cost' => '100.00',
55+
]);
56+
}
57+
1758
}

0 commit comments

Comments
 (0)