Print PDF @if (! $invoice->isLocked()) Edit @endif
Invoice
{{ $invoice->invoice_number }}
{{ $invoice->status->label() }}
Bill to
{{ $invoice->client?->company_name }}
{{ $invoice->client?->contact_person }}
@if ($invoice->client?->billing_address)
{{ $invoice->client->billing_address }}
@endif @if ($invoice->client?->gst_number)
GSTIN: {{ $invoice->client->gst_number }}
@endif
Date: {{ $invoice->invoice_date?->format('d M Y') }}
Due: {{ $invoice->due_date?->format('d M Y') }}
Currency: {{ $invoice->currencyEnum()->value }}
@if ($invoice->isForeignCurrency())
Rate: 1 {{ $invoice->currencyEnum()->value }} = {{ number_format((float) $invoice->exchange_rate, 4) }} INR
@endif
Type: {{ $invoice->kind?->label() }}
@if ($invoice->amcContract)
AMC: {{ $invoice->amcContract->service_name }}
@endif @if ($invoice->purchaseOrder)
{{ $invoice->purchaseOrder->type->shortLabel() }}: @can('invoicing.purchase_orders') {{ $invoice->purchaseOrder->displayNumber() }} @else {{ $invoice->purchaseOrder->displayNumber() }} @endcan ({{ $invoice->purchaseOrder->po_date?->format('d M Y') }}, {{ $invoice->purchaseOrder->formattedAmount() }})
@endif
@foreach ($invoice->items as $index => $item) @endforeach @if ((float) $invoice->tax_amount > 0) @endif @if ($invoice->isForeignCurrency()) @endif
# Description HSN/SAC Qty Rate Amount
{{ $index + 1 }} {{ $item->description }} {{ $item->hsn_code ?: '—' }} {{ $item->quantity }} {{ money($item->unit_price, 2, $invoice->currencyEnum()) }} {{ money($item->total_price, 2, $invoice->currencyEnum()) }}
{{ $invoice->items->count() + 1 }} GST @ {{ number_format((float) $invoice->tax_rate_gst, 2) }}% 1.00 {{ money($invoice->tax_amount, 2, $invoice->currencyEnum()) }} {{ money($invoice->tax_amount, 2, $invoice->currencyEnum()) }}
Subtotal {{ money($invoice->subtotal, 2, $invoice->currencyEnum()) }}
GST @ {{ number_format((float) $invoice->tax_rate_gst, 2) }}% {{ money($invoice->tax_amount, 2, $invoice->currencyEnum()) }}
{{ $invoice->isForeignCurrency() ? 'Balance Due' : 'Total' }} {{ money($invoice->grand_total, 2, $invoice->currencyEnum()) }}
INR equivalent {{ $invoice->formattedInrTotal() }}
@if ((float) $invoice->tax_amount > 0)
GST split (internal — prints still show a single GST line)
IGST @ {{ number_format((float) $invoice->tax_rate_igst, 2) }}%
{{ money($invoice->tax_amount_igst, 2, $invoice->currencyEnum()) }}
CGST @ {{ number_format((float) $invoice->tax_rate_cgst, 2) }}%
{{ money($invoice->tax_amount_cgst, 2, $invoice->currencyEnum()) }}
SGST @ {{ number_format((float) $invoice->tax_rate_sgst, 2) }}%
{{ money($invoice->tax_amount_sgst, 2, $invoice->currencyEnum()) }}
@endif @if ($invoice->notes)
Notes
{{ $invoice->notes }}
@endif
Update status
@csrf @method('PATCH')
Marking as Paid posts any remaining balance under {{ $invoice->kind?->incomeCategoryName() }}.
Received {{ money($invoice->receivedInr()) }}
Outstanding {{ money($invoice->outstandingInr()) }}
@if ($invoice->incomeTransactions->isNotEmpty())
Payments
@foreach ($invoice->incomeTransactions as $payment)
{{ $payment->transaction_date?->format('d M Y') }} · {{ $payment->payment_mode?->label() }} {{ money($payment->amount) }}
@endforeach
@endif @if ($invoice->outstandingInr() > 0 && auth()->user()?->can('accounting.income')) Record payment @endif
@if ($invoice->canDelete())
@csrf @method('DELETE')
@endif