@php // เนื่องจาก Controller อาจส่งมาเป็น Collection ของ 1 รายการ (แก้ไข/สร้างจากใบเสนอราคาเดียว) // หรือหลายรายการพร้อมกัน (สร้างจากการเลือกหลายใบเสนอราคาในโหมด Multi-select) // เราจึงต้อง normalize ให้เป็น Collection เสมอ แล้ว loop render ฟอร์มทีละใบ if (!($invoice instanceof \Illuminate\Support\Collection)) { $invoice = collect($invoice ? [$invoice] : []); } $invoiceCollection = $invoice->values(); if ($invoiceCollection->isEmpty()) { // กรณีสร้างใหม่แบบว่างเปล่า ไม่มีข้อมูลตั้งต้นจากใบเสนอราคาหรือฐานข้อมูล $invoiceCollection = collect([ (object) [ 'invoice_id' => '', 'invoice_quotation_id' => '', 'invoice_no' => '', 'invoice_date' => '', 'invoice_exp_date' => '', 'invoice_attention' => '', 'invoice_attention_detail' => '', 'invoice_project_name' => '', 'invoice_project_duration' => '', 'invoice_main_description' => '', 'invoice_amount' => '', 'invoice_discount_type' => '', 'invoice_discount_value' => '', 'invoice_sub_services' => '', 'invoice_sub_amounts' => '', 'invoice_main_qty' => 1, 'invoice_sub_qtys' => '', 'invoice_use_qty' => 0, 'invoice_bank' => '', 'invoice_remark' => '', ] ]); } // รายชื่อธนาคารสำหรับ dropdown เลือก (ถ้า Controller ยังไม่ได้ส่ง $banks มาให้ จะ fallback ไปดึงจากตาราง bank เอง) $banks = $banks ?? \Illuminate\Support\Facades\DB::table('bank')->orderBy('bank_name')->get(); $breadcrumbs = [ 'Invoice List' => url('/invoice_list'), 'Invoice Editor' => '' ]; @endphp @extends('layouts.master') @section('title') Invoice Management @endsection @section('style') @endsection @section('content')


Invoice Editor

@if($invoiceCollection->count() > 1) กำลังสร้างใบแจ้งหนี้ {{ $invoiceCollection->count() }} ใบ จากใบเสนอราคาที่เลือกไว้ — บันทึกทีละใบได้ตามลำดับด้านล่าง @endif
@foreach ($invoiceCollection as $formIndex => $invoiceItem) @php // ดึงค่าจาก object ของแต่ละรายการ (จาก DB หรือจาก Quotation ที่เลือกไว้) $invoice_id = $invoiceItem->invoice_id ?? ''; $invoice_quotation_id = $invoiceItem->invoice_quotation_id ?? ''; $invoice_no = $invoiceItem->invoice_no ?? ''; $invoice_date = $invoiceItem->invoice_date ?? ''; $invoice_exp_date = $invoiceItem->invoice_exp_date ?? ''; $invoice_attention = $invoiceItem->invoice_attention ?? ''; $invoice_attention_detail = $invoiceItem->invoice_attention_detail ?? ''; $invoice_project_name = $invoiceItem->invoice_project_name ?? ''; $invoice_project_duration = $invoiceItem->invoice_project_duration ?? ''; $invoice_main_description = $invoiceItem->invoice_main_description ?? ''; $invoice_amount = $invoiceItem->invoice_amount ?? ''; $invoice_discount_type = $invoiceItem->invoice_discount_type ?? ''; $invoice_discount_value = $invoiceItem->invoice_discount_value ?? ''; $invoice_sub_services = json_decode($invoiceItem->invoice_sub_services ?? '', true) ?? []; $invoice_sub_amounts = json_decode($invoiceItem->invoice_sub_amounts ?? '', true) ?? []; $invoice_main_qty = $invoiceItem->invoice_main_qty ?? 1; $invoice_sub_qtys = json_decode($invoiceItem->invoice_sub_qtys ?? '', true) ?? []; $invoice_use_qty = $invoiceItem->invoice_use_qty ?? 0; $invoice_bank = $invoiceItem->invoice_bank ?? ''; $invoice_remark = $invoiceItem->invoice_remark ?? ''; @endphp
@if($invoiceCollection->count() > 1)
#{{ $formIndex + 1 }} / {{ $invoiceCollection->count() }} @if(!empty($invoice_quotation_id)) สร้างจากใบเสนอราคา ID: {{ $invoice_quotation_id }} @endif
@elseif(!empty($invoice_quotation_id)) สร้างจากใบเสนอราคา ID: {{ $invoice_quotation_id }} @endif
{{ csrf_field() }}
Description
Quantity
Amount (THB)
@if(count($invoice_sub_services) > 0) @foreach($invoice_sub_services as $sIndex => $item)
@endforeach @else
@endif
Special Discount
(0.00)
NET TOTAL: 0.00
@endforeach


@endsection @section('script') @endsection