@php $action = $mode === 'edit' ? route('zits-proforma-invoices.update', $invoice->id) : route('zits-proforma-invoices.store'); $selectedTechnologies = old('technologies', isset($invoice) ? json_decode($invoice->technologies ?? '[]', true) : []); if (!is_array($selectedTechnologies)) { $selectedTechnologies = []; } @endphp
@csrf @if($mode === 'edit') @method('PUT') @endif
{{ $mode === 'edit' ? 'Edit Invoice Details' : 'Create Invoice Details' }}

Choose client, date, status, modules, resources, and technologies.

@php $defaultInvoiceNo = $mode === 'create' ? 'ZP-INV-' . now()->format('dmY-His') : ($invoice->invoice_number ?? ''); @endphp
@if($mode === 'edit') @else @php $selectedClient = $clients->firstWhere('id', old('client_id')); @endphp
@foreach ($clients as $client) @endforeach
@endif Loading modules for selected client...
Invoice Items

Modules load after client selection. You can also add custom items.

@if($mode === 'edit' && isset($invoice->items)) @foreach($invoice->items as $index => $item)
@if($item->module_id)
@php $clientModules = $modules->filter(function ($module) use ($invoice, $item) { return $module->id == $item->module_id || ($module->activity && $module->activity->client == $invoice->client_id); }); @endphp
@else
description) }}" required>
@endif
rate) }}" required>
@endforeach @endif
Select a client to load modules, or add a custom item.
Resources Involved

Add designation and count for the team involved in this invoice.

@if($mode === 'edit' && isset($invoice->designations)) @foreach($invoice->designations as $index => $designation)
name) }}" required>
pivot->count ?? 1) }}" required>
@endforeach @endif
@foreach ($technologies as $technology) @php $technologyInputId = 'technology_' . $mode . '_' . ($invoice->id ?? 'new') . '_' . $technology->id; @endphp
id, $selectedTechnologies) ? 'checked' : '' }}>
@endforeach