To
{{ $user->name }}
@if($user->company_name) {{ $user->company_name }}
@endif {{ $user->address ?? '' }}
{{ $user->phone ?? '' }}
{{ $user->email ?? '' }}
NetX Internet
Bangladesh
revenue.netx@gmail.com

Statement of Accounts

{{ $statementData['statement_period_start']->format('d M Y') }} To {{ $statementData['statement_period_end']->format('d M Y') }}

Account Summary
Opening Balance: BDT {{ number_format(0, 2) }}
Invoiced Amount: BDT {{ number_format($statementData['total_invoice_amount'], 2) }}
Amount Received: BDT {{ number_format($statementData['total_paid_amount'], 2) }}
Balance Due: BDT {{ number_format($statementData['total_invoice_amount'] - $statementData['total_paid_amount'], 2) }}
@php $runningBalance = 0; $allTransactions = collect(); // Add opening balance $allTransactions->push([ 'date' => $statementData['statement_period_start'], 'type' => 'Opening Balance', 'details' => '', 'amount' => 0, 'payment' => 0, 'balance' => 0 ]); // Add invoices foreach($salesInvoices as $invoice) { $runningBalance += $invoice->invoice_amount; $allTransactions->push([ 'date' => $invoice->invoice_date, 'type' => 'Invoice', 'details' => $invoice->invoice_no, 'amount' => $invoice->invoice_amount, 'payment' => 0, 'balance' => $runningBalance ]); } // Add payments foreach($paymentTransactions as $transaction) { if($transaction->transaction_type === 'payment') { $runningBalance -= $transaction->amount; $allTransactions->push([ 'date' => $transaction->transaction_date, 'type' => 'Payment Received', 'details' => $transaction->salesInvoice ? $transaction->salesInvoice->invoice_no : 'N/A', 'amount' => 0, 'payment' => $transaction->amount, 'balance' => $runningBalance ]); } } // Sort by date, but keep Opening Balance at top $allTransactions = $allTransactions->sortBy(function($transaction) { if($transaction['type'] === 'Opening Balance') { return '0000-00-00'; // Always first } return $transaction['date']->format('Y-m-d'); }); // Recalculate running balance after sorting $currentBalance = 0; $allTransactionsArray = $allTransactions->toArray(); foreach($allTransactionsArray as $index => $transaction) { if($transaction['type'] === 'Opening Balance') { $currentBalance = 0; } elseif($transaction['type'] === 'Invoice') { $currentBalance += $transaction['amount']; } elseif($transaction['type'] === 'Payment Received') { $currentBalance -= $transaction['payment']; } // Update the balance for this transaction $allTransactionsArray[$index]['balance'] = $currentBalance; } $allTransactions = collect($allTransactionsArray); @endphp @foreach($allTransactions as $index => $transaction) @endforeach
Date Details Transactions Amount Payments Balance
{{ $transaction['date']->format('d M Y') }} {{ $transaction['details'] }} @if($transaction['type'] === 'Opening Balance') ***Opening Balance*** @else {{ $transaction['type'] }} @endif @if($transaction['amount'] > 0) {{ number_format($transaction['amount'], 2) }} @endif @if($transaction['payment'] > 0) {{ number_format($transaction['payment'], 2) }} @endif {{ number_format($transaction['balance'], 2) }}