@php if (!function_exists('format_rs_custom')) { function format_rs_custom($amount) { if (empty($amount)) { return 'Rs.0.00'; } if (strpos($amount, 'Rs.') !== false) { return $amount; } $clean = preg_replace('/[^0-9.]/', '', $amount); if (!is_numeric($clean)) { return 'Rs.0.00'; } return 'Rs.' . number_format(floatval($clean), 2); } } $transaction = null; if (!empty($receipt_details->transaction_id)) { $transaction = \App\Transaction::with('contact')->find($receipt_details->transaction_id); } elseif (!empty($receipt_details->invoice_no)) { $transaction = \App\Transaction::with('contact')->where('invoice_no', $receipt_details->invoice_no)->first(); } $customer_code = ''; $customer_id_padded = '00000000'; if ($transaction && $transaction->contact) { $customer_code = $transaction->contact->contact_id; $customer_id_padded = sprintf("%08d", $transaction->contact->id); } if (empty($customer_code)) { $customer_code = $receipt_details->customer_id ?? ''; } $display_mobile = !empty($receipt_details->customer_mobile) ? $receipt_details->customer_mobile : ''; $display_address = ''; if ($transaction && $transaction->contact) { $contact = $transaction->contact; if (empty($display_mobile) && !empty($contact->mobile)) { $display_mobile = $contact->mobile; } $address_parts = []; if (!empty($contact->address_line_1)) $address_parts[] = $contact->address_line_1; if (!empty($contact->address_line_2)) $address_parts[] = $contact->address_line_2; if (!empty($contact->city)) $address_parts[] = $contact->city; if (!empty($address_parts)) { $display_address = implode(', ', array_filter($address_parts)); } } if (empty($display_address) && !empty($receipt_details->customer_address)) { $display_address = strip_tags($receipt_details->customer_address); } // Header strings $business_name = 'Lewis Engineering'; $business_address = !empty($receipt_details->address) ? strip_tags($receipt_details->address) : 'No.56, HEMAPALA MUNIDASA MAWATHA, WELIMADA. [T] 0572245974 [F] 0572245333'; $business_tagline = !empty($receipt_details->sub_heading_line1) ? $receipt_details->sub_heading_line1 : 'QUILTY FURNITURES , LAMINATED, MDF, STEEL SHEET AND STEEL TUBE PRODUCTS'; // Lines / chunking $raw_lines = $receipt_details->lines ?? []; $lines_array = is_array($raw_lines) ? $raw_lines : (is_object($raw_lines) && method_exists($raw_lines, 'toArray') ? $raw_lines->toArray() : (array)$raw_lines); $chunks = array_chunk($lines_array, 9); $total_pages = count($chunks); if ($total_pages == 0) { $chunks = [[]]; $total_pages = 1; } // Calculations $total_qty = 0; $current_total = 0; $total_discount = 0; foreach ($lines_array as $line) { $qty_val = floatval(preg_replace('/[^0-9.]/', '', $line['quantity'] ?? '0')); $total_qty += $qty_val; $line_tot = floatval(preg_replace('/[^0-9.]/', '', $line['line_total'] ?? '0.00')); $current_total += $line_tot; $line_disc = floatval(preg_replace('/[^0-9.]/', '', $line['line_discount'] ?? $line['total_line_discount'] ?? '0.00')); $total_discount += $line_disc; } $bill_discount = floatval(preg_replace('/[^0-9.]/', '', $receipt_details->discount ?? '0.00')); $other_charges = floatval(preg_replace('/[^0-9.]/', '', $receipt_details->shipping_charges ?? '0.00')); $return_amount = 0; $f_balance = floatval(preg_replace('/[^0-9.]/', '', $receipt_details->previous_due ?? '0.00')); $final_balance = $current_total + $f_balance - $bill_discount + $other_charges - $return_amount; $credit_days = 0; $credit_limit_status = ''; if ($transaction && $transaction->contact) { if ($transaction->contact->pay_term_type == 'days') { $credit_days = $transaction->contact->pay_term_number; } $credit_limit = $transaction->contact->credit_limit; if (!is_null($credit_limit) && $final_balance > $credit_limit) { $credit_limit_status = 'CREDI LIMTE EXCED'; } } $invoice_time = ''; if (!empty($receipt_details->invoice_date)) { try { $invoice_time = \Carbon\Carbon::parse($receipt_details->invoice_date)->format('H:i:s'); } catch (\Exception $e) { $invoice_time = ''; } } // Commission agent name — always fetch directly regardless of layout setting $commission_agent_name = ''; if (!empty($receipt_details->commission_agent)) { $commission_agent_name = strtoupper($receipt_details->commission_agent); } elseif ($transaction && !empty($transaction->sale_commission_agent)) { $commission_agent_name = strtoupper($transaction->sale_commission_agent->user_full_name ?? ''); } // Amount in words - always generate from final_balance $amount_in_words = ''; if (!empty($receipt_details->total_in_words)) { $amount_in_words = strtoupper($receipt_details->total_in_words); } elseif (extension_loaded('intl')) { try { $fmt = new \NumberFormatter('en', \NumberFormatter::SPELLOUT); $amount_in_words = strtoupper($fmt->format($final_balance)) . ' ONLY'; } catch (\Exception $e) { $amount_in_words = ''; } } @endphp @foreach($chunks as $page_index => $chunk)
{{ $business_name }}
{{ $business_address }}
{{ $business_tagline }}
CUSTOMER CODE :- {{ $customer_code }}
{{ strtoupper($receipt_details->customer_name ?? '') }}
{{ strtoupper($display_address) }}
SALES INVOICE
{{ $customer_id_padded }}
Invoice No {{ $receipt_details->invoice_no }}
Date {{ !empty($receipt_details->invoice_date) ? explode(' ', $receipt_details->invoice_date)[0] : '' }}
@if(!empty($commission_agent_name))
{{ $commission_agent_name }}
@elseif(!empty($receipt_details->sales_person))
{{ strtoupper($receipt_details->sales_person) }}
@endif
@foreach($chunk as $line) @endforeach
Code Description Qty Unit Price Discount Amount
{{ $line['sub_sku'] ?? '' }} {{ $line['name'] }} @if(!empty($line['variation']) && $line['variation'] != 'Default') {{ $line['variation'] }} @endif @if(!empty($line['is_free_promo_item']) || (isset($line['unit_price_uf']) && $line['unit_price_uf'] == 0)) 🎁 FREE @endif {{ number_format(floatval(preg_replace('/[^0-9.]/', '', $line['quantity'] ?? '0')), 0) }} {{ format_rs_custom($line['unit_price_before_discount'] ?? $line['unit_price'] ?? 0) }} {{ format_rs_custom($line['line_discount'] ?? $line['total_line_discount'] ?? 0) }} {{ format_rs_custom($line['line_total'] ?? 0) }}
@if($page_index == $total_pages - 1)
CREDIT DAYS {{ $credit_days }}
{{ $credit_limit_status }}
Authorized by_______________________
Customer Signature__________________
* PLEASE PAY THIS AMOUNT
Current Total {{ format_rs_custom($total_discount) }} {{ format_rs_custom($current_total) }}
Bill Di. (-) {{ format_rs_custom($bill_discount) }}
Other Ch. (+) {{ format_rs_custom($other_charges) }}
Return (-) {{ format_rs_custom($return_amount) }}
F/Balance {{ number_format($f_balance, 2) }}
Final Balance {{ number_format($final_balance, 2) }}
Number of Items      {{ count($lines_array) }}
Number of Qty      {{ number_format($total_qty, 0) }}
Amount In Words      {{ $amount_in_words }}
We declare that this Invoice shows the actual price of the goods described and that all particulars are true and correct
Prepared
Checked
Supervisor
Security
Please check and confirm that all Items on this Invoice have been Received
    Customer
Date      
@else
Continued...
@endif
@endforeach