diff --git a/app/Classes/Modules/Exports/Services/ExportsBookingTransactions.php b/app/Classes/Modules/Exports/Services/ExportsBookingTransactions.php new file mode 100644 index 00000000..7da82a31 --- /dev/null +++ b/app/Classes/Modules/Exports/Services/ExportsBookingTransactions.php @@ -0,0 +1,74 @@ +request = $request; + } + + public function headings(): array + { + return [ + 'Ref No', + 'Creted Date', + 'Amount', + 'Rate' + ]; + } + + /** + * @return \Illuminate\Support\Collection|mixed + */ + public function query() + { + $supplierIds = array_map(function($value){ + return ['id' => $value]; + }, json_decode($this->request->input('supplierIds'))); + + $dateFrom =Carbon::parse($this->request->input('startDate'))->format('Y-m-d'); + $dateTo =Carbon::parse($this->request->input('endDate'))->format('Y-m-d'); + + return Transaction::where('type', 3)->whereIn('issuer', $supplierIds)->whereBetween('created_at', [$dateFrom, $dateTo]); + } + + /** + * @param $transaction + * @return array + */ + public function map($transaction): array + { + if ($transaction->owner->owner == null){ + $refNo = $transaction->owner->marking; + } else { + $refNo = $transaction->owner->owner->marking; + } + + $createdAt = $transaction->created_at->format('d-m-Y'); + $amount = $transaction->amount; + $rate = $transaction->currency_rate; + + return [ + $refNo, + $createdAt, + $amount, + $rate, + ]; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Exports/ExportCustomersToExcelController.php b/app/Http/Controllers/Exports/ExportCustomersToExcelController.php index 39ea3dc5..8563f78a 100644 --- a/app/Http/Controllers/Exports/ExportCustomersToExcelController.php +++ b/app/Http/Controllers/Exports/ExportCustomersToExcelController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Exports; use App\Classes\Modules\Exports\Services\ExportsCustomers; use App\Classes\Modules\Exports\Services\ExportsTransactions; +use App\Classes\Modules\Exports\Services\ExportsBookingTransactions; use App\Classes\Modules\Exports\Services\ExportsNullDebtors; use App\Classes\Modules\Exports\Services\ExportsPaymentTransactions; @@ -54,4 +55,10 @@ class ExportCustomersToExcelController ob_end_clean(); return $response; } + + public function bookingTransactions(ExportsBookingTransactions $exportsBookingTransactions, Request $request){ + $response = $exportsBookingTransactions->download('bookingTransactions.xls', Excel::XLS, ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']); + ob_end_clean(); + return $response; + } } \ No newline at end of file diff --git a/resources/assets/vue/components/bookings/forms/ExportBookingTransactionFormComponent.vue b/resources/assets/vue/components/bookings/forms/ExportBookingTransactionFormComponent.vue new file mode 100644 index 00000000..24ad2317 --- /dev/null +++ b/resources/assets/vue/components/bookings/forms/ExportBookingTransactionFormComponent.vue @@ -0,0 +1,79 @@ + + + diff --git a/resources/views/pages/currency_orders.blade.php b/resources/views/pages/currency_orders.blade.php index 269591e1..daf804cf 100644 --- a/resources/views/pages/currency_orders.blade.php +++ b/resources/views/pages/currency_orders.blade.php @@ -2,6 +2,7 @@ @section('inner_content')
+
diff --git a/routes/web.php b/routes/web.php index 99e07dd3..91e3657b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -151,6 +151,7 @@ Route::get('/export/transactions/f614e339d7058904a831aad742e24d55', 'Exports\Exp Route::get('/export/null-debtor/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@nullDebtor'); Route::get('/export/payment-transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@paymentTransactions'); Route::get('/export/wallet-transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@walletTransactions'); +Route::get('/export/booking-transactions', 'Exports\ExportCustomersToExcelController@bookingTransactions')->name('export.transactions.booking'); Route::get('/products', function (\App\Classes\Modules\Exports\Services\ExportsProducts $exportsProducts) { $bookings = Booking::where(function($query){