{{ __('Invoices') }}

@if (request('invoice_type') === 'buy') @if ($service_buy) {{ __('Service Buy Invoice') }} @else {{ __('Create buy invoice') }} @endif @elseif (request('invoice_type') === 'sell') {{ __('Create sell invoice') }} @elseif (request('invoice_type') === 'return_buy') {{ __('Create return buy invoice') }} @elseif (request('invoice_type') === 'return_sell') {{ __('Create return sell invoice') }} @endif {{ __('Approve Inactive') }}
@php $invoiceType = request('invoice_type'); $skipIfSell = fn($status) => $status->isPending(); $skipIfNotSell = fn($status) => $status->isReadyToApprove() || $status->isPreInvoice() || $status->isRejected(); $shouldSkip = $invoiceType === 'sell' ? $skipIfSell : $skipIfNotSell; @endphp
@php $invoiceType = request('invoice_type'); $statusFilter = request('status'); $baseQuery = request()->except('page'); $skipIfSell = fn($status) => $status->isPending(); $skipIfNotSell = fn($status) => $status->isReadyToApprove() || $status->isPreInvoice() || $status->isRejected(); $shouldSkip = $invoiceType === 'sell' ? $skipIfSell : $skipIfNotSell; $statusTypes = [ \App\Enums\InvoiceStatus::PENDING->value => 'info', \App\Enums\InvoiceStatus::APPROVED->value => 'success', \App\Enums\InvoiceStatus::UNAPPROVED->value => 'warning', \App\Enums\InvoiceStatus::PRE_INVOICE->value => 'info', \App\Enums\InvoiceStatus::APPROVED_INACTIVE->value => 'error', \App\Enums\InvoiceStatus::REJECTED->value => 'error', \App\Enums\InvoiceStatus::READY_TO_APPROVE->value => 'info', ]; @endphp @foreach (\App\Enums\InvoiceStatus::cases() as $status) @if ($shouldSkip($status)) @continue @endif @php $value = $status->value; $count = $statusCounts->get($value, 0); $isActive = $statusFilter == $value; $url = route('invoices.index', array_merge($baseQuery, ['status' => $value])); $type = $statusTypes[$value] ?? 'info'; if ($invoiceType === 'buy') { $quantityTitle = request('service_buy') == '1' ? __('Bought Services Quantity') : __('Bought Products Quantity'); } elseif ($invoiceType === 'sell') { $quantityTitle = __('Sold Products Quantity'); } @endphp @endforeach
@foreach ($invoices as $invoice) @endforeach
{{ __('Invoice Number') }} {{ __('Customer') }} {{ __('Document') }} {{ __('Date') }} {{ __('Price') }} ({{ config('amir.currency') ?? __('Rial') }}) {{ __('Status') }} {{ __('Action') }}
{{ formatDocumentNumber($invoice->number) }} {{ $invoice->customer->name ?? '' }}
{{ $invoice->title ?? '' }}
@if ($invoice->document_id) @can('documents.show') {{ formatDocumentNumber($invoice->document->number) ?? '' }}   @else {{ formatDocumentNumber($invoice->document->number) ?? '' }} @endif @else @endcan {{ isset($invoice->date) ? formatDate($invoice->date) : '' }} {{ isset($invoice->amount) ? formatNumber($invoice->amount - $invoice->subtraction) : '' }} {{ $invoice->status?->label() ?? '' }} @php $canApprove = $invoice->status->isReadyToApprove() || $invoice->status->isUnapproved() || $invoice->status->isApprovedInactive() || $invoice->status->isPending(); $canUnapprove = $invoice->status->isApproved(); $canChangeStatus = $canApprove || $canUnapprove; @endphp {{ __('Show') }} @can('invoices.approve') @if ($invoice->status->isPreInvoice() || $invoice->status->isRejected()) {{ __('Issue') }} @endif @if ($invoice->status->isPreInvoice()) {{ __('Reject') }} @endif @if ($canChangeStatus) @if ($canApprove && $invoice->changeStatusValidation->hasErrors()) {{ __('Fix Conflict') }} @else changeStatusValidation->hasWarning()) @click.prevent="if (confirm(@js($invoice->changeStatusValidation->toText()))) { window.location.href = '{{ route('invoices.change-status', [$invoice, $canUnapprove ? 'unapproved' : 'approved']) }}?confirm=1' }" @endif data-tip="{{ $invoice->changeStatusValidation->toText() }}" href="{{ route('invoices.change-status', [$invoice, $canUnapprove ? 'unapproved' : 'approved']) }}" class="btn btn-sm inline-flex tooltip {{ $canUnapprove ? 'btn-warning' : 'btn-success' }} {{ $canApprove && $invoice->changeStatusValidation->hasWarning() ? ' btn-outline ' : '' }}"> {{ $canUnapprove ? __('Unapprove') : __('Approve') }} @endif @endif @endcan @if (!$invoice->status->isApproved()) {{ __('Edit') }}
@csrf @method('DELETE')
@else @endif
@if (request('status') !== null) @endif {{ $invoices->withQueryString()->links() }}