@extends('layouts.app', ['class' => 'g-sidenav-show bg-gray-100']) @section('content') @include('layouts.navbars.auth.topnav', ['title' => ''])
Filter Applied
Kategori: @php $kategoriMap = [ 'CPU' => 'CPU', 'LCD' => 'Monitor', 'PRN' => 'Printer', 'SCN' => 'Scanner', 'SWT' => 'Switch', 'OTH' => 'Others', 'ALL' => 'ALL' ]; echo $filter['kategori'] ? ($kategoriMap[$filter['kategori']] ?? $filter['kategori']) : 'ALL'; @endphp
Department: {{ $filter['dept'] ?: 'ALL' }}
Code: {{ $filter['code'] ?? 'ALL' }}
User/Location: @if(! empty($filter['userName'])) {{ $filter['userName'] }} @elseif(!empty($filter['locationName'])) {{ $filter['locationName'] }} @elseif(!empty($filter['locationText'])) {{ $filter['locationText'] }} @else ALL @endif
Date Range: @if($filter['startDate'] && $filter['endDate']) {{ date('d/m/Y', strtotime($filter['startDate'])) }} - {{ date('d/m/Y', strtotime($filter['endDate'])) }} @elseif($filter['startDate']) From {{ date('d/m/Y', strtotime($filter['startDate'])) }} @elseif($filter['endDate']) Until {{ date('d/m/Y', strtotime($filter['endDate'])) }} @else ALL @endif
Movement Report Results ({{ $groupedMovements->count() }} Assets)
@php $sortedMovements = $groupedMovements->sortByDesc(function($movements) { foreach($movements as $mov) { $isDefect = stripos($mov->remark, 'DF') !== false || stripos($mov->remark, 'defect') !== false || stripos($mov->remark, 'rusak') !== false || ($mov->move_type ?? '') === 'DF'; if ($isDefect) { return 1; } } return 0; }); @endphp @forelse($sortedMovements as $code => $movements) @php $firstMovement = $movements->first(); $lastMovement = $movements->last(); $secondLastMovement = $movements->skip(1)->first(); $totalMovements = $movements->count(); $kategoriDisplay = $kategoriMap[$lastMovement->kategori] ?? $lastMovement->kategori; $displayOldCode = $secondLastMovement ? $secondLastMovement->new_code : $lastMovement->code; $displayNewCode = $firstMovement->new_code; // Code asset paling awal (original code sebelum ada perpindahan) $originalAssetCode = $lastMovement->code; // Check ALL movements if any is defect $hasDefect = false; $defectMovement = null; $defectCode = null; foreach($movements as $mov) { $isDefectRemark = stripos($mov->remark, 'DF') !== false || stripos($mov->remark, 'defect') !== false || stripos($mov->remark, 'rusak') !== false || ($mov->move_type ?? '') === 'DF'; if ($isDefectRemark) { $hasDefect = true; if (!$defectMovement) { // Ambil yang pertama (paling baru) $defectMovement = $mov; $defectCode = $mov->new_code ?: $mov->code; } } } // Header code: jika defect tampilkan code defect, jika tidak tampilkan original code if ($hasDefect && $defectCode) { $headerCode = $defectCode; } else { $headerCode = $originalAssetCode; } @endphp
{{ $kategoriDisplay }} {{ $originalAssetCode }} @if($hasDefect) {{ $headerCode }} RUSAK @else {{ $firstMovement->new_code ?: $firstMovement->code }} CURRENT CODE @endif
Total Movements: {{ $totalMovements }} First Movement: @php $firstMovementDate = $lastMovement->master_date ?? $lastMovement->date; @endphp {{ $firstMovementDate ? date('d/m/Y', strtotime($firstMovementDate)) : '-' }} {{ $hasDefect ? 'Defect Date' : 'Last Movement' }}: @php if ($hasDefect && $defectMovement) { // Untuk defect, gunakan date dari master table defect code $lastMovementDate = $defectMovement->new_code_master_date ?? $defectMovement->master_date ?? $defectMovement->date; } else { // Untuk normal, gunakan date dari master table new code (first movement dalam urutan DESC) $lastMovementDate = $firstMovement->new_code_master_date ?? $firstMovement->master_date ?? $firstMovement->date; } @endphp {{ $lastMovementDate ? date('d/m/Y', strtotime($lastMovementDate)) : '-' }}
Movement History
{{-- --}} @php $movementsAsc = $movements->reverse()->values(); $totalCount = $movementsAsc->count(); @endphp @foreach($movementsAsc as $index => $movement) @php $isLastMovement = ($index == $totalCount - 1); $nextMovement = $movementsAsc->get($index + 1); $prevMovement = $index > 0 ? $movementsAsc->get($index - 1) : null; $periodStart = date('d/m/Y', strtotime($movement->date)); if ($nextMovement) { $periodEnd = date('d/m/Y', strtotime($nextMovement->date)); } else { $periodEnd = $periodStart; } $oldCode = $movement->code; $newCode = $movement->new_code; $isDefect = stripos($movement->remark, 'DF') !== false || stripos($movement->remark, 'defect') !== false || stripos($movement->remark, 'rusak') !== false || ($movement->move_type ?? '') === 'DF'; $rowClass = $isDefect ? 'table-danger bg-light-danger' : ''; @endphp {{-- --}} @endforeach
Old Code From Duration New Code To Date PostingDurationKode SAP Remark
{{ $oldCode }}
@if($movement->from_user_name) {{ $movement->from_user_name }} @elseif($movement->from_location_name) {{ $movement->from_location_name }} @else - @endif {{ $movement->from_dept }} | {{ $movement->from_area }}
{{ $movement->durasi_pemakaian ?? '-' }} @if($movement->master_date_nonaktif)
(Non-aktif: {{ date('d/m/Y', strtotime($movement->master_date_nonaktif)) }}) @else
(Masih Aktif) @endif
@php $isDefect = stripos($movement->remark, 'DF') !== false || stripos($movement->remark, 'defect') !== false || stripos($movement->remark, 'rusak') !== false || ($movement->move_type ?? '') === 'DF'; @endphp @if($isDefect) RUSAK @else {{ $newCode ?: $oldCode }} @endif
@if($movement->to_user_name) {{ $movement->to_user_name }} @elseif($movement->to_location_name) {{ $movement->to_location_name }} @else - @endif {{ $movement->to_dept_display }} | {{ $movement->to_area_display }}
{{-- {{ $periodStart }} --}} {{-- {{ $periodStart }} --}}
{{ $periodStart }} @if($isDefect && $isLastMovement) Sudah Rusak @elseif($isLastMovement) Sedang Digunakan @else Sudah Tidak Digunakan @endif
{{ $movement->kode_sap ?? '-' }} @if($isDefect) {{ $movement->remark ?: '-' }} @else {{ $movement->remark ?: '-' }} @endif
@empty

No movement data found

@endforelse
@endsection