Merge branch 'dillon/90-e-invoice-f-2' into vapor/development

This commit is contained in:
Dillon Ngo
2025-10-10 02:00:37 +08:00
4 changed files with 99 additions and 1 deletions
@@ -35,6 +35,10 @@ class DateRangeNoData implements Filter
'transactions.transactionDetails',
'transactions.voucherRedemption',
])
// ->whereHas('company', function ($query) {
// $query->where('debtor', '!=', 'N/A NO NEED TO IMPORT');
// })
->whereHas('transactions', function ($query) use ($startDate, $endDate){
$query->payments()
->complete()
@@ -0,0 +1,72 @@
<?php
namespace App\Classes\Modules\Bookings\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Jobs\Commands\V2\ProcessSalesInvoiceReportV2CommandJob;
use App\Classes\Modules\Bookings\Standards\Rules\CanUpdateBooking;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class UpdateBookingSalesInvoiceLogic extends AbstractControllerLogic
{
/**
* @return array
*/
protected function notification():array {
return [
'title' => 'Updated Booking with Sales Invoice',
'message' => 'You have successfully updated Booking with Sales Invoice'
];
}
/** @var CanUpdateBooking */
private $canUpdateBooking;
/**
* UpdateBookingSalesInvoiceLogic constructor.
* @param CanUpdateBooking $canUpdateBooking
*/
public function __construct(
CanUpdateBooking $canUpdateBooking
)
{
$this->canUpdateBooking = $canUpdateBooking;
}
/**
* @param Request $request
* @return JsonResponse
* @throws ErrorException
*/
public function logic(Request $request) : JsonResponse
{
$data = [
'docno' => $request->input('DocNo'),
'docdate' => $request->input('DocDate'),
'debtorcode' => $request->input('DebtorCode'),
'ref' => $request->input('Ref'),
'shipinfo' => $request->input('ShipInfo'),
'accno' => $request->input('AccNo'),
'detaildescription' => $request->input('DetailDescription'),
'furtherdescription' => $request->input('FurtherDescription'),
'classification' => $request->input('Classification'),
'deptno' => $request->input('DeptNo'),
'qty' => $request->input('Qty'),
'unitprice' => $request->input('UnitPrice'),
'submiteinvoice' => $request->input('SubmitEinvoice'),
'consolidatedeinvoice' => $request->input('ConsolidatedEinvoice'),
'einvoicevalidationlink' => $request->input('EInvoiceValidationLink'),
];
Log::info('UpdateBookingSalesInvoiceLogic: ' . json_encode($data));
// ProcessSalesInvoiceReportV2CommandJob::dispatch($data);
return $this->response([]);
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\Bookings;
use App\Classes\Modules\Bookings\ControllersLogic\UpdateBookingSalesInvoiceLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class UpdateBookingSalesInvoiceController
{
/**
* @param Request $request
* @return JsonResponse
*/
public function update(Request $request, UpdateBookingSalesInvoiceLogic $logic) : JsonResponse {
return $logic->execute($request);
}
}
+3 -1
View File
@@ -1,6 +1,7 @@
<?php
use App\Http\Controllers\Bookings\ListBookingsSalesInvoiceController;
use App\Http\Controllers\Bookings\UpdateBookingSalesInvoiceController;
use Illuminate\Support\Facades\Route;
Route::group(['middleware' => 'apipub', 'prefix' => 'v1', 'as' => 'apipub.'], function () {
@@ -8,7 +9,8 @@ Route::group(['middleware' => 'apipub', 'prefix' => 'v1', 'as' => 'apipub.'], fu
Route::get('transactions/mappable/query', 'Transactions\ListMappableTransactionsController@list')->name('transaction.mappable.list');
Route::group(['prefix' => 'booking', 'as' => 'booking.'], function () {
Route::get('/sales-invoice', [ListBookingsSalesInvoiceController::class, 'list'])->name('booking.sales-invoice.list');
Route::get('/sales-invoice/list', [ListBookingsSalesInvoiceController::class, 'list'])->name('booking.sales-invoice.list');
Route::post('/sales-invoice', [UpdateBookingSalesInvoiceController::class, 'update'])->name('booking.sales-invoice.update');
});
});
});