diff --git a/app/Classes/Modules/Exports/Services/ExportCurrencyVendorOrder.php b/app/Classes/Modules/Exports/Services/ExportCurrencyVendorOrder.php new file mode 100644 index 00000000..2d3a79f9 --- /dev/null +++ b/app/Classes/Modules/Exports/Services/ExportCurrencyVendorOrder.php @@ -0,0 +1,44 @@ +request = $request; + } + + public function view(): View + { + $id = $this->request->route('id'); + + $group = Group::findOrFail($id); + + $supplier = $group->issuerCompany; + + $transferFeeTransactions = $group->transactions()->with([ + 'transactions' => function ($transaction) { + return $transaction->where('type', TransactionType::TRANSFER_FEE); + } + ])->get()->pluck('transactions')->flatten(); + + return view('pages.pdfs.currency_vendor_order_inner', [ + 'transactions' => $group->transactions, + 'transferFeeTransactions' => $transferFeeTransactions, + 'supplier' => $supplier + ]); + } +} diff --git a/app/Http/Controllers/Exports/ExportCustomersToExcelController.php b/app/Http/Controllers/Exports/ExportCustomersToExcelController.php index 7e484c6c..59f3aba0 100644 --- a/app/Http/Controllers/Exports/ExportCustomersToExcelController.php +++ b/app/Http/Controllers/Exports/ExportCustomersToExcelController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Exports; +use App\Classes\Modules\Exports\Services\ExportCurrencyVendorOrder; use App\Classes\Modules\Exports\Services\ExportsCustomers; use App\Classes\Modules\Exports\Services\ExportsTransactions; use App\Classes\Modules\Exports\Services\ExportsBookingTransactions; @@ -37,6 +38,12 @@ class ExportCustomersToExcelController public function export(ExportsCustomers $exportsCustomers, Request $request){ return $exportsCustomers->download('customers.csv', Excel::CSV, ['Content-Type' => 'text/csv']); } + public function exportCurrencyVendorOrder(ExportCurrencyVendorOrder $exportCurrencyVendorOrder, Request $request){ + $exportCurrencyVendorOrder = new ExportCurrencyVendorOrder($request); + $response = $exportCurrencyVendorOrder->download('CurrencyVendorOrder.xls', Excel::XLS, ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']); + ob_end_clean(); + return $response; + } public function transactions(ExportsTransactions $exportsTransactions, Request $request){ return $exportsTransactions->download('transactions.csv', Excel::CSV, ['Content-Type' => 'text/csv']); diff --git a/resources/assets/vue/app.js b/resources/assets/vue/app.js index abb7a17e..39e22279 100644 --- a/resources/assets/vue/app.js +++ b/resources/assets/vue/app.js @@ -34,6 +34,13 @@ Vue.use(VueTheMask); Vue.use(filters); Vue.directive('closable', closable); +Vue.directive('tooltip', function(el, binding){ + $(el).tooltip({ + title: binding.value, + placement: binding.arg, + trigger: 'hover' + }) +}) Vue.mixin({ methods: { route: route diff --git a/resources/assets/vue/components/bookings/elements/PaymentComponent.vue b/resources/assets/vue/components/bookings/elements/PaymentComponent.vue index 1db46493..1f9a606f 100644 --- a/resources/assets/vue/components/bookings/elements/PaymentComponent.vue +++ b/resources/assets/vue/components/bookings/elements/PaymentComponent.vue @@ -13,7 +13,7 @@ -
+
diff --git a/resources/assets/vue/components/bookings/elements/TransactionGroupComponent.vue b/resources/assets/vue/components/bookings/elements/TransactionGroupComponent.vue index 680a9550..2e7c30c5 100644 --- a/resources/assets/vue/components/bookings/elements/TransactionGroupComponent.vue +++ b/resources/assets/vue/components/bookings/elements/TransactionGroupComponent.vue @@ -17,6 +17,28 @@ {{item.issuer_name}}
+
+
Export
+ +
@@ -79,11 +101,6 @@
- - - diff --git a/resources/views/pages/pdfs/currency_vendor_order_inner.blade.php b/resources/views/pages/pdfs/currency_vendor_order_inner.blade.php new file mode 100644 index 00000000..e477c538 --- /dev/null +++ b/resources/views/pages/pdfs/currency_vendor_order_inner.blade.php @@ -0,0 +1,77 @@ + + + + + + + + +
{{$supplier->name}}{{\Carbon\Carbon::now('Asia/Singapore')->format('d-m-Y h:s')}}
+
+ + + + + + + + + + @foreach($transactions as $transaction) + + + + + + + + @endforeach + +
ReferenceMarkingRateAmountBank in Details
{{$transaction->owner->owner->marking}}{{$transaction->owner->owner->company->reference}}{{$transaction->currency_rate}}{{$transaction->currency->short_code}} {{number_format((float)$transaction->amount, 2, '.', '')}}Account Holder Name: {{$transaction->owner->owner->bank->holder_name}}
{{$transaction->owner->owner->bank->bank_name}}: {{$transaction->owner->owner->bank->account_no}} +
Branch: {{$transaction->owner->owner->bank->bank_branch}}@if($transaction->original_currency->short_code === 'USD')
Swift Code: {{$transaction->owner->owner->bank->swift}}@endif
Bank in Amount: {{$transaction->original_currency->short_code}} {{$transaction->original_amount}}
+ + + + + @php + $sub_total_booking_amount = number_format((float)$transactions->sum('original_amount'), 2, '.', ''); + @endphp + + + + + @php + $transfer_fee = number_format((float)$transferFeeTransactions->sum('service_charge'), 2, '.', ''); + @endphp + + + + + @php + $total_booking_amount = number_format((float) ($transactions->sum('original_amount') + $transfer_fee), 2, '.', ''); + @endphp + + + + + @php + $sub_total_amount = number_format((float)$transactions->sum('amount') + ($transfer_fee * 1/$transactions[0]->currency_rate), 2, '.', ''); + @endphp + + + + + @php + $service_charge = number_format((float)$transactions->sum('service_charge'), 2, '.', ''); + @endphp + + + + + @php + $total_amount = number_format((float)$sub_total_amount + $service_charge, 2, '.', ''); + @endphp + + + +
Sub total booking amount: {{$transaction->original_currency->short_code}} {{$sub_total_booking_amount}}
Transfer fee: {{$transaction->original_currency->short_code}} {{$transfer_fee}}
Total booking amount: {{$transaction->original_currency->short_code}} {{$total_booking_amount}}
Sub total amount: MYR {{$sub_total_amount}}
Service charge: MYR {{$service_charge}}
Total amount: MYR {{$total_amount}}
diff --git a/resources/views/pages/pdfs/supplier_deliver_order_group_invoice.blade.php b/resources/views/pages/pdfs/supplier_deliver_order_group_invoice.blade.php new file mode 100644 index 00000000..bdc56409 --- /dev/null +++ b/resources/views/pages/pdfs/supplier_deliver_order_group_invoice.blade.php @@ -0,0 +1,85 @@ +@extends('layouts.base_pdf') + +
+ + + + +
+ {{ $supplier->name }} +
+
+ + + + + +
+ Invoice + + PO#: {{$group->reference}}
+ Ref#: {{$supplier->reference}}
+ Date: {{$group->created_at}} +
+ +
+ + + + + +
+ + Buyer + +
+ + CIEF Worldwide Sdn Bhd (1134596-M) + +
+ No. 72-3, Jalan Jalil 1,
+ The Earth Bukit Jalil,
+ 57000 Kuala Lumpur +
+
+ Tel: 03-8082 1252 +
+
+ +
+ + + + + + + + + + + + + + + + @foreach($transactions as $key => $transaction) + + + + + + + @php + $sub_total_booking_amount = number_format((float)$transactions->sum('original_amount'), 2, '.', ''); + $transfer_fee = number_format((float)$transferFeeTransactions->sum('service_charge'), 2, '.', ''); + $total_booking_amount = number_format((float) ($transactions->sum('original_amount') + $transfer_fee), 2, '.', ''); + $sub_total_amount = number_format((float)$transactions->sum('amount') + ($transfer_fee * 1/$transactions[0]->currency_rate), 2, '.', ''); + $service_charge = number_format((float)$transactions->sum('service_charge'), 2, '.', ''); + $total_amount = number_format((float)$sub_total_amount + $service_charge, 2, '.', ''); + @endphp + + + @endforeach + + +
NoMarkingDescriptionCurrency RateUnit Price (RM)Total Amount
(RM)
{{ $key + 1 }}{{$transaction->owner->owner->marking}}Please refer to the appedix reference no: {{$transaction->owner->owner->marking}}{{$transaction->currency_rate}}{{$transaction->currency->short_code}} {{number_format((float)$transaction->amount, 2, '.', '')}}MYR {{$total_amount}}
diff --git a/routes/web.php b/routes/web.php index e797557a..6d92fce9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,7 +1,9 @@ name('leads.export'); +route::get('/export/excel/{id}', 'Exports\ExportCustomersToExcelController@exportCurrencyVendorOrder')->name('group.excel'); Route::get('/products', function (\App\Classes\Modules\Exports\Services\ExportsProducts $exportsProducts) { $bookings = Booking::where(function($query){ @@ -537,6 +541,35 @@ Route::get('/group/text/{id}', function($id){ } })->name('group.text'); +Route::get('/group/invoice/{id}', function ($id) { + + $group = Group::findOrFail($id); + + $supplier = $group->issuerCompany; + + $transferFeeTransactions = $group->transactions() + ->with(['transactions' => function ($transaction) { + return $transaction->where('type', TransactionType::TRANSFER_FEE); + }]) + ->get() + ->pluck('transactions') + ->flatten(); + + $html = view('pages.pdfs.supplier_deliver_order_group_invoice', [ + 'group'=> $group, + 'transactions' => $group->transactions, + 'transferFeeTransactions' => $transferFeeTransactions, + 'supplier' => $supplier + ])->render(); + + $dompdf = new Dompdf(); + $dompdf->loadHtml($html); + $dompdf->setPaper('A4', 'portrait'); + $dompdf->render(); + + return $dompdf->stream("invoice_pdf_{$supplier->name}.pdf"); +})->name('group.invoice'); + Route::get('/wallet/audit', function (Request $request) { $wallets = \App\Models\Wallet::all();