From eb8dfea254db9a9e555251498818cc695df78b04 Mon Sep 17 00:00:00 2001 From: Dillon Date: Thu, 1 Jun 2023 17:40:13 +0800 Subject: [PATCH] Update voucher details into pdfs i.e invoice, purchase order, delivery order --- ...reateBulkPurchaseOrderTransactionLogic.php | 4 ++- .../CreateInvoiceDocumentProcessor.php | 4 +-- .../CreateInvoiceTransactionProcessor.php | 18 ++++++---- .../views/pages/pdfs/deliver_order.blade.php | 34 +++++++++++++++---- resources/views/pages/pdfs/invoice.blade.php | 34 +++++++++++++++---- .../views/pages/pdfs/purchase_order.blade.php | 34 +++++++++++++++---- 6 files changed, 98 insertions(+), 30 deletions(-) diff --git a/app/Classes/Modules/Transactions/ControllersLogic/CreateBulkPurchaseOrderTransactionLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/CreateBulkPurchaseOrderTransactionLogic.php index 733f2288..3771c559 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/CreateBulkPurchaseOrderTransactionLogic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/CreateBulkPurchaseOrderTransactionLogic.php @@ -83,8 +83,10 @@ class CreateBulkPurchaseOrderTransactionLogic extends AbstractControllerLogic foreach($completed_transactions as $transaction){ $supplier = $this->fetchesCompany->execute(['id' => $transaction->receiver]); + $voucherRedemption = $transaction->voucherRedemption; + // purchase order - $this->invoiceDocumentProcessor->execute($transaction, $purchaseOrder, $supplier, DocumentType::PURCHASE_ORDER); + $this->invoiceDocumentProcessor->execute($transaction, $purchaseOrder, $supplier, DocumentType::PURCHASE_ORDER, $voucherRedemption); } } } diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php index b0af2cbf..6215a1e1 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceDocumentProcessor.php @@ -38,11 +38,11 @@ class CreateInvoiceDocumentProcessor * @return void * @throws \App\Classes\Exceptions\MalformedRequestException */ - public function execute($transaction, $purchaseOrder, $supplier, $document_type) + public function execute($transaction, $purchaseOrder, $supplier, $document_type, $voucherRedemption = null) { $lowercaseDocumentType = strtolower($document_type); - $order_pdf = LaravelMpdf::loadView('pages.pdfs.' . $lowercaseDocumentType, ['transaction' => $transaction, 'po_order_transaction' => $purchaseOrder, 'supplier' => $supplier]); + $order_pdf = LaravelMpdf::loadView('pages.pdfs.' . $lowercaseDocumentType, ['transaction' => $transaction, 'po_order_transaction' => $purchaseOrder, 'supplier' => $supplier, 'voucher_redemption' => $voucherRedemption]); if($purchaseOrder->booking->service_id === 4) { $purchaseOrderDocuments = $purchaseOrder->booking->documents()->where('document_type', DocumentType::ECOMMERCE_PURCHASE_ORDER)->get(); diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php index 391f6db9..7f105dc8 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php @@ -116,9 +116,13 @@ class CreateInvoiceTransactionProcessor return; } + // $transaction = $booking->transactions() + // ->where('type', TransactionType::PAYMENT) + // ->first(); + $transaction = $booking->transactions() - ->where('type', TransactionType::PAYMENT) - ->first(); + ->where('type', TransactionType::PAYMENT) + ->latest()->get()[0]; $billNumber = $this->generatesTransactionBillNumber->execute('INV-'); @@ -153,16 +157,18 @@ class CreateInvoiceTransactionProcessor ); $invoice_transaction = $this->createsTransaction->execute($purchaseOrder->booking, $transaction_object); + $voucherRedemption = $transaction->voucherRedemption; + $supplier = $this->fetchesCompany->execute(['id' => $transaction->receiver]); // purchase order - $this->invoiceDocumentProcessor->execute($invoice_transaction, $purchaseOrder, $supplier, DocumentType::PURCHASE_ORDER); + $this->invoiceDocumentProcessor->execute($invoice_transaction, $purchaseOrder, $supplier, DocumentType::PURCHASE_ORDER, $voucherRedemption); // deliver order - $this->invoiceDocumentProcessor->execute($invoice_transaction, $purchaseOrder, $supplier, DocumentType::DELIVER_ORDER); + $this->invoiceDocumentProcessor->execute($invoice_transaction, $purchaseOrder, $supplier, DocumentType::DELIVER_ORDER, $voucherRedemption); // invoice - $this->invoiceDocumentProcessor->execute($invoice_transaction, $purchaseOrder, $supplier, DocumentType::INVOICE); + $this->invoiceDocumentProcessor->execute($invoice_transaction, $purchaseOrder, $supplier, DocumentType::INVOICE, $voucherRedemption); $billNumber = $this->generatesTransactionBillNumber->execute('SPDO-'); @@ -191,7 +197,7 @@ class CreateInvoiceTransactionProcessor $supplier_deliver_order_transaction = $this->createsTransaction->execute($purchaseOrder->booking, $transaction_object); // supply deliver order - $this->invoiceDocumentProcessor->execute($supplier_deliver_order_transaction, $purchaseOrder, $supplier, DocumentType::SUPPLIER_DELIVER_ORDER); + $this->invoiceDocumentProcessor->execute($supplier_deliver_order_transaction, $purchaseOrder, $supplier, DocumentType::SUPPLIER_DELIVER_ORDER, null); $this->updatesBookingStatus->execute($booking, ApprovalStatus::COMPLETED); diff --git a/resources/views/pages/pdfs/deliver_order.blade.php b/resources/views/pages/pdfs/deliver_order.blade.php index f91a179a..5cd724bd 100644 --- a/resources/views/pages/pdfs/deliver_order.blade.php +++ b/resources/views/pages/pdfs/deliver_order.blade.php @@ -85,7 +85,18 @@ @php $subtotal = 0; @endphp - + @if($voucher_redemption) + @php + $voucher_discount = $voucher_redemption->value * -1; + $original_price = 1 / $voucher_redemption->transaction->currency_rate; + $currency_rate = $voucher_redemption->transaction->currency_rate; + @endphp + @else + @php + $voucher_discount = 0; + $currency_rate = $transaction->currency_rate; + @endphp + @endif @foreach ($po_order_transaction->transactionDetails as $key => $transaction_detail) {{ $key + 1 }} @@ -94,7 +105,7 @@ {{ $transaction_detail->quantity }} @if($transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( (1/$transaction->currency_rate) * $transaction_detail->price, 2) }} + {{ number_format( (1/$currency_rate) * $transaction_detail->price, 2) }} @else {{ number_format($transaction_detail->price, 2) }} @endif @@ -102,10 +113,10 @@ @if($transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format((float)number_format( (1/$transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} + {{ number_format((float)number_format( (1/$currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} @php - $subtotal += number_format((float)number_format( (1/$transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); + $subtotal += number_format((float)number_format( (1/$currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); @endphp @else {{ number_format((float)number_format($transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} @@ -133,12 +144,21 @@ {{ number_format($transaction->service_charge, 2) }} + @if($voucher_redemption) + + + Voucher ({{ $voucher_redemption->voucher->code }}) + + -{{ $voucher_redemption->value }} + + + @endif Adjustment @if($transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format((float)number_format( (1/$transaction->currency_rate) * $transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} + {{ number_format((float)number_format( (1/$currency_rate) * $transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} @else {{ number_format((float)number_format($transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} @endif @@ -156,9 +176,9 @@ Total @if($transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( ((1/$transaction->currency_rate) * $transaction->amount) + $transaction->service_charge + $transaction->tax, 2) }} + {{ number_format( ((1/$currency_rate) * $transaction->amount) + $transaction->service_charge + $transaction->tax + $voucher_discount, 2) }} @else - {{ number_format($transaction->amount + $transaction->service_charge + $transaction->tax, 2) }} + {{ number_format($transaction->amount + $transaction->service_charge + $transaction->tax + $voucher_discount, 2) }} @endif diff --git a/resources/views/pages/pdfs/invoice.blade.php b/resources/views/pages/pdfs/invoice.blade.php index 0df3cb98..33f28897 100644 --- a/resources/views/pages/pdfs/invoice.blade.php +++ b/resources/views/pages/pdfs/invoice.blade.php @@ -84,7 +84,18 @@ @php $subtotal = 0; @endphp - + @if($voucher_redemption) + @php + $voucher_discount = $voucher_redemption->value * -1; + $original_price = 1 / $voucher_redemption->transaction->currency_rate; + $currency_rate = $voucher_redemption->transaction->currency_rate; + @endphp + @else + @php + $voucher_discount = 0; + $currency_rate = $transaction->currency_rate + @endphp + @endif @foreach ($po_order_transaction->transactionDetails as $key => $transaction_detail) {{ $key + 1 }} @@ -93,7 +104,7 @@ {{ $transaction_detail->quantity }} @if($transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( (1/$transaction->currency_rate) * $transaction_detail->price, 2) }} + {{ number_format( (1/$currency_rate) * $transaction_detail->price, 2) }} @else {{ number_format($transaction_detail->price, 2) }} @endif @@ -101,10 +112,10 @@ @if($transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format((float)number_format( (1/$transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} + {{ number_format((float)number_format( (1/$currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} @php - $subtotal += number_format((float)number_format( (1/$transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); + $subtotal += number_format((float)number_format( (1/$currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); @endphp @else {{ number_format((float)number_format($transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} @@ -132,12 +143,21 @@ {{ number_format($transaction->service_charge, 2) }} + @if($voucher_redemption) + + + Voucher ({{ $voucher_redemption->voucher->code }}) + + -{{ $voucher_redemption->value }} + + + @endif Adjustment @if($transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format((float)number_format( (1/$transaction->currency_rate) * $transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} + {{ number_format((float)number_format( (1/$currency_rate) * $transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} @else {{ number_format((float)number_format($transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} @endif @@ -155,9 +175,9 @@ Total @if($transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( ((1/$transaction->currency_rate) * $transaction->amount) + $transaction->service_charge + $transaction->tax, 2) }} + {{ number_format( ((1/$currency_rate) * $transaction->amount) + $transaction->service_charge + $transaction->tax + $voucher_discount, 2) }} @else - {{ number_format($transaction->amount + $transaction->service_charge + $transaction->tax, 2) }} + {{ number_format($transaction->amount + $transaction->service_charge + $transaction->tax + $voucher_discount, 2) }} @endif diff --git a/resources/views/pages/pdfs/purchase_order.blade.php b/resources/views/pages/pdfs/purchase_order.blade.php index c3ac5e8a..85608c28 100644 --- a/resources/views/pages/pdfs/purchase_order.blade.php +++ b/resources/views/pages/pdfs/purchase_order.blade.php @@ -91,7 +91,18 @@ @php $subtotal = 0; @endphp - + @if($voucher_redemption) + @php + $voucher_discount = $voucher_redemption->value * -1; + $original_price = 1 / $voucher_redemption->transaction->currency_rate; + $currency_rate = $voucher_redemption->transaction->currency_rate; + @endphp + @else + @php + $voucher_discount = 0; + $currency_rate = $transaction->currency_rate; + @endphp + @endif @foreach ($po_order_transaction->transactionDetails as $key => $transaction_detail) {{ $key + 1 }} @@ -100,7 +111,7 @@ {{ $transaction_detail->quantity }} @if($transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( (1/$transaction->currency_rate) * $transaction_detail->price, 2) }} + {{ number_format( (1/$currency_rate) * $transaction_detail->price, 2) }} @else {{ number_format($transaction_detail->price, 2) }} @endif @@ -108,10 +119,10 @@ @if($transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format((float)number_format( (1/$transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} + {{ number_format((float)number_format( (1/$currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} @php - $subtotal += number_format((float)number_format( (1/$transaction->currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); + $subtotal += number_format((float)number_format( (1/$currency_rate) * $transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2,'.',''); @endphp @else {{ number_format((float)number_format($transaction_detail->price, 2,'.','')*$transaction_detail->quantity,2) }} @@ -139,12 +150,21 @@ {{ number_format($transaction->service_charge, 2) }} + @if($voucher_redemption) + + + Voucher ({{ $voucher_redemption->voucher->code }}) + + -{{ $voucher_redemption->value }} + + + @endif Adjustment @if($transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format((float)number_format( (1/$transaction->currency_rate) * $transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} + {{ number_format((float)number_format( (1/$currency_rate) * $transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} @else {{ number_format((float)number_format($transaction->amount, 2,'.','') - (float)number_format($subtotal, 2,'.',''),2) }} @endif @@ -162,9 +182,9 @@ Total @if($transaction->booking()->first()->fix_currency_id !== 1) - {{ number_format( ((1/$transaction->currency_rate) * $transaction->amount) + $transaction->service_charge + $transaction->tax, 2) }} + {{ number_format( ((1/$currency_rate) * $transaction->amount) + $transaction->service_charge + $transaction->tax + $voucher_discount, 2) }} @else - {{ number_format($transaction->amount + $transaction->service_charge + $transaction->tax, 2) }} + {{ number_format($transaction->amount + $transaction->service_charge + $transaction->tax + $voucher_discount, 2) }} @endif