{{-- Author By : zulfazdliabuas@gmail.com | Date : 2026 --}} @php use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; @endphp @push('styles') @endpush
@php $canManageSubmissionActions = auth()->user()?->hasAnyRole(['admin', 'ao']) ?? false; @endphp

LHDN Submissions

All documents submitted to LHDN (valid or invalid).

Documents Submitted to LHDN
{{ $counts['submitted'] }}
Reset
Export Excel
@php $statusClasses = [ 'approved' => 'text-bg-info', 'validated' => 'text-bg-success', 'failed' => 'text-bg-danger', 'einvoice_sent_to_customer' => 'text-bg-info', 'cancelled' => 'text-bg-secondary', ]; @endphp
@forelse($requests as $item) @php $statusLabels = config('status_labels', []); $lhdnStatusUpper = strtoupper((string) ($item->lhdn_status ?? '')); $displayStatus = $item->status; if ($lhdnStatusUpper === 'CANCELLED') { $displayStatus = 'cancelled'; } elseif (in_array($lhdnStatusUpper, ['VALIDATED', 'VALID'], true)) { $displayStatus = 'validated'; } elseif ($displayStatus === 'waiting_validation') { $displayStatus = 'failed'; } $displayStatusLabel = $statusLabels[$displayStatus] ?? Str::headline($displayStatus); @endphp receipt_path ? Storage::url($item->receipt_path) : ''; if ($receiptUrl) { $host = parse_url($receiptUrl, PHP_URL_HOST); $path = parse_url($receiptUrl, PHP_URL_PATH) ?: $receiptUrl; if (!$host || $host === 'localhost') { $receiptUrl = request()->getSchemeAndHttpHost() . $path; } } @endphp data-receipt-url="{{ $receiptUrl }}" data-status="{{ $displayStatusLabel }}" data-lhdn-status="{{ $item->lhdn_status ?? '-' }}" data-lhdn-uuid="{{ $item->lhdn_uuid ?? '-' }}" data-lhdn-submission="{{ $item->lhdn_submission_uid ?? '-' }}" data-lhdn-error="{{ $item->lhdn_error ?? '-' }}"> @empty @endforelse
No Customer Invoice Car Plate Location Status LHDN Receipt Actions
{{ $loop->index + 1 }}
{{ $item->email ?? '-' }}
{{ $item->phone ?? '' }}
{{ $item->invoice_no }}
{{ optional($item->txn_date)->format('d/m/Y H:i') ?? '-' }}
{{ $item->car_plate ?? '-' }} {{ $item->site->name ?? '-' }} {{ $displayStatusLabel }} @php $submitErrors = collect($item->lhdn_submit_response['rejectedDocuments'][0]['error']['details'] ?? []) ->pluck('message') ->filter() ->unique() ->implode(' | '); $detailErrors = collect($item->lhdn_error_details ?? []) ->map(function ($detail) { $step = $detail['step'] ?? null; $code = $detail['code'] ?? null; $message = $detail['message'] ?? null; $parts = array_filter([$step, $code, $message]); return implode(' - ', $parts); }) ->filter() ->unique() ->implode(' | '); $errorText = $item->lhdn_error ?: ($detailErrors ?: $submitErrors); @endphp
Submission UID: {{ $item->lhdn_submission_uid ?? '-' }}
@if($item->lhdn_uuid)
UUID: {{ $item->lhdn_uuid }}
@endif @if($errorText)
{{ Str::limit($errorText, 120) }}
@else
-
@endif
@php $receiptUrl = $item->receipt_path ? Storage::url($item->receipt_path) : ''; if ($receiptUrl) { $host = parse_url($receiptUrl, PHP_URL_HOST); $path = parse_url($receiptUrl, PHP_URL_PATH) ?: $receiptUrl; if (!$host || $host === 'localhost') { $receiptUrl = request()->getSchemeAndHttpHost() . $path; } } @endphp @if($receiptUrl) View @else - @endif @php $canShowActions = in_array($displayStatus, ['approved','waiting_validation','validated','failed','einvoice_sent_to_customer','cancelled'], true); @endphp @if($canManageSubmissionActions && $displayStatus === 'failed') @elseif($canManageSubmissionActions && $displayStatus === 'cancelled')
@csrf
@elseif(in_array($displayStatus, ['validated','einvoice_sent_to_customer'], true)) Preview @if($canManageSubmissionActions)
@csrf
@endif @endif
No records.
@push('scripts') @endpush @foreach($requests as $item) @php $statusLabels = config('status_labels', []); $lhdnStatusUpper = strtoupper((string) ($item->lhdn_status ?? '')); $displayStatus = $item->status; if ($lhdnStatusUpper === 'CANCELLED') { $displayStatus = 'cancelled'; } elseif (in_array($lhdnStatusUpper, ['VALIDATED', 'VALID'], true)) { $displayStatus = 'validated'; } elseif ($displayStatus === 'waiting_validation') { $displayStatus = 'failed'; } $displayStatusLabel = $statusLabels[$displayStatus] ?? Str::headline($displayStatus); $isReadonly = in_array($displayStatus, ['validated', 'einvoice_sent_to_customer'], true); @endphp @if($canManageSubmissionActions) @endif @endforeach