diff --git a/app/Classes/Modules/Companies/ControllersLogic/BulkDownloadSupplierWhiteFormsLogic.php b/app/Classes/Modules/Companies/ControllersLogic/BulkDownloadSupplierWhiteFormsLogic.php new file mode 100644 index 00000000..73f59c58 --- /dev/null +++ b/app/Classes/Modules/Companies/ControllersLogic/BulkDownloadSupplierWhiteFormsLogic.php @@ -0,0 +1,77 @@ +input('startDate'))->startOfDay(); + $endDate = Carbon::createFromFormat('d-m-Y', $request->input('endDate'))->endOfDay(); + + $companyReference = Company::find($request->input('supplier'))->reference; + $groups = Group::where('issuer', $request->input('supplier')) + ->whereDate('created_at', '>=', $startDate) + ->whereDate('created_at', '<=', $endDate) + ->orderBy('created_at', 'DESC') + ->get(); + + if (count($groups) > 0) { + + $zipDirectory = storage_path('app/bulk_whiteform'); // Update this with the actual directory path + + if (!file_exists($zipDirectory)) { + mkdir($zipDirectory, 0755, true); + } + + $zip_file = "{$zipDirectory}/currency_vendor_orders_{$request->input('startDate')}_to_{$request->input('endDate')}_{$companyReference}.zip"; + + $zip = new ZipArchive(); + if ($zip->open($zip_file, ZIPARCHIVE::CREATE | ZipArchive::OVERWRITE)) { + foreach($groups as $group) { + $document = $group->documents()->where('document_type', DocumentType::CURRENCY_VENDOR_ORDER)->whereNull('deleted_at')->first()->files()->first(); + $zip->addFile(Storage::disk('documents')->path($document->file->file_info->original->file), $group->reference . '.pdf'); + } + + $zip->close(); + while (ob_get_level()) { + ob_end_clean(); + } + + return response()->download($zip_file); + } + } + + return response()->json([ + 'status' => 'Failed', + 'message' => 'No white form found for this supplier in the given date range.', + ]); + + } catch (\Exception $e) { + // Log the exception for debugging + Log::error('Error in BulkDownloadSupplierWhiteFormsLogic: ' . $e->getMessage()); + + return response()->json([ + 'status' => 'Failed', + 'message' => 'An error occurred while processing the request.', + ]); + } + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Companies/BulkDownloadSupplierWhiteFormsController.php b/app/Http/Controllers/Companies/BulkDownloadSupplierWhiteFormsController.php new file mode 100644 index 00000000..21984e5f --- /dev/null +++ b/app/Http/Controllers/Companies/BulkDownloadSupplierWhiteFormsController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} \ No newline at end of file diff --git a/resources/assets/vue/components/bookings/elements/DownloadSupplierWhiteFormComponent.vue b/resources/assets/vue/components/bookings/elements/DownloadSupplierWhiteFormComponent.vue new file mode 100644 index 00000000..317ac0c3 --- /dev/null +++ b/resources/assets/vue/components/bookings/elements/DownloadSupplierWhiteFormComponent.vue @@ -0,0 +1,73 @@ + + + diff --git a/resources/assets/vue/components/bookings/elements/PaymentComponent.vue b/resources/assets/vue/components/bookings/elements/PaymentComponent.vue new file mode 100644 index 00000000..d947fe6f --- /dev/null +++ b/resources/assets/vue/components/bookings/elements/PaymentComponent.vue @@ -0,0 +1,121 @@ + + + diff --git a/resources/views/pages/payments.blade.php b/resources/views/pages/payments.blade.php index 0b18afbc..eb3dee76 100644 --- a/resources/views/pages/payments.blade.php +++ b/resources/views/pages/payments.blade.php @@ -1,67 +1,4 @@ @extends('layouts.base_portal') @section('inner_content') -
-
- -
-
-
-
-
-
-
-
- Complete Payments -
-
-
-
- - - -
-
-
-
-
-
- Complete Currency Orders -
-
-
-
- - - - {{----}} - {{----}} - {{----}} -
-
-
-
-
-
- Open Currency Orders -
-
-
-
- - - -
-
-
-
-
-
+ @endsection \ No newline at end of file diff --git a/routes/api.php b/routes/api.php index 310305d3..8b4bada0 100644 --- a/routes/api.php +++ b/routes/api.php @@ -33,6 +33,7 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function Route::post('/import/upload-import-invoices', 'Imports\ImportStatementInvoiceController@import')->name('import_invoices.upload'); Route::post('/import/upload-import-receipt', 'Imports\ImportStatementReceiptsController@import')->name('import_receipts.upload'); Route::post('/customers/invoices', 'Companies\BulkDownloadCustomerInvoicesController@download')->name('customers.invoices'); + Route::post('/supplier/white-form/bulk-download', 'Companies\BulkDownloadSupplierWhiteFormsController@download')->name('suppliers.white_forms'); require __DIR__ . '/company.php';