mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-19 04:23:55 +00:00
Admin Workflow - Update business logic to fetch 1688 data for processing
This commit is contained in:
+2
-2
@@ -48,7 +48,7 @@ class DownloadMockUpWhiteFormPdfLogic
|
||||
return ['id' => $value];
|
||||
}, json_decode($request->input('payments')));
|
||||
|
||||
DB::beginTransaction();
|
||||
DB::beginTransaction(); //cief todo: 74
|
||||
|
||||
$this->createSupplierTransactionProcessor->execute($supplier, $rate, $payments);
|
||||
|
||||
@@ -56,7 +56,7 @@ class DownloadMockUpWhiteFormPdfLogic
|
||||
|
||||
$pdf = LaravelMpdf::loadView('pages.pdfs.currency_vendor_order', ['transactions' => $this->createSupplierTransactionProcessor->getBills(), 'transferFeeTransactions' => $this->createSupplierTransactionProcessor->getTransferTransactions(), 'supplier' => $supplier]);
|
||||
|
||||
DB::rollBack();
|
||||
DB::rollBack(); //cief todo: 74
|
||||
|
||||
$exportFileName = 'MockUpWhiteForm.pdf';
|
||||
$filesystemDriver = Storage::getDefaultDriver();
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Http\Controllers\AdminWorkflow;
|
||||
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Models\Booking;
|
||||
use App\Models\KeyValuePair;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class AdminWorkflowBaseController
|
||||
{
|
||||
public function fetchOldestOrder()
|
||||
{
|
||||
$excludedBookingIds = KeyValuePair::where('owner_type', 'App\Models\Booking')
|
||||
->where(function ($query) {
|
||||
$query->where('key', '1688_admin_workflow_processed')
|
||||
->orWhere(function ($query) {
|
||||
$query->where('key', '1688_admin_workflow_processing')
|
||||
->where('updated_at', '>', Carbon::now()->subHour());
|
||||
});
|
||||
})
|
||||
->pluck('owner_id')
|
||||
->filter(function ($value) {
|
||||
return is_numeric($value);
|
||||
})
|
||||
->toArray();
|
||||
|
||||
|
||||
$timeAgo = Carbon::now()->subMonths(6);
|
||||
$serviceId = 4;
|
||||
$booking = Booking::where('service_id', $serviceId)
|
||||
->where('status', ApprovalStatus::APPROVED)
|
||||
->whereNotIn('id', $excludedBookingIds)
|
||||
->whereHas('bills', function ($query) {
|
||||
$query->whereHas('groupTransaction', function ($query) {
|
||||
$query->whereHas('group', function ($query) {
|
||||
$query->whereDoesntHave('billGroup')->whereIn('issuer', [2]);
|
||||
});
|
||||
});
|
||||
})
|
||||
->where('created_at', '>=', $timeAgo)
|
||||
->latest()
|
||||
->first();
|
||||
|
||||
if(!$booking){
|
||||
return responseJson(null, 'No booking found', 404);
|
||||
}
|
||||
|
||||
markedProcessing($booking, '1688_admin_workflow_processing');
|
||||
|
||||
return responseJson([
|
||||
'passwords' => $booking->bank->holder_name ?? null,
|
||||
'account_no' => $booking->bank->account_no ?? null,
|
||||
'pin' => $booking->bank->bank_branch ?? null,
|
||||
'holder_name' => $booking->bank->holder_name ?? null,
|
||||
'booking' => $booking
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -73,7 +73,23 @@
|
||||
{{ externalApiResponse.data.booking.marking }}
|
||||
</a>
|
||||
</h3>
|
||||
<div v-if="externalApiResponse.data.booking_attributes && externalApiResponse.data.booking_attributes.length > 0" class="row bg-master-light m-t-15 m-b-15 rounded padding-30 justify-content-center">
|
||||
<div v-if="externalApiResponse.data.reference" class="row bg-master-light m-t-15 m-b-15 rounded padding-30 justify-content-center">
|
||||
<div class="col-auto text-left">
|
||||
<h4>
|
||||
<span class="bold d-inline-block m-r-15">Reference: {{ externalApiResponse.data.reference }}</span>
|
||||
</h4>
|
||||
<h4>
|
||||
<span class="bold d-inline-block m-r-15">Marking: {{ externalApiResponse.data.marking }} </span>
|
||||
</h4>
|
||||
<h4>
|
||||
<span class="bold d-inline-block m-r-15">Currency Rate: {{ externalApiResponse.data.currency_rate }} </span>
|
||||
</h4>
|
||||
<h4>
|
||||
<span class="bold d-inline-block m-r-15">Total Amount: {{ externalApiResponse.data.total_amount }}</span>
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div v-if="externalApiResponse.data.booking_attributes && externalApiResponse.data.booking_attributes.length > 0" class="row bg-master-light m-t-15 m-b-15 rounded padding-30 justify-content-center">
|
||||
<div class="col-auto text-left">
|
||||
<h4>
|
||||
<span class="bold d-inline-block m-r-15">Additional Info: </span>
|
||||
@@ -92,7 +108,7 @@
|
||||
<span class="bold d-inline-block m-r-15">Additional Info: -</span>
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<div v-if="question.question_number === '1688_order_verify'">
|
||||
|
||||
+17
-38
@@ -5,10 +5,12 @@ use App\Classes\Modules\Accounts\Services\CreatesKeyValuePair;
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\TransactionType;
|
||||
use App\Classes\ValueObjects\Constants\BookingAttributeNames;
|
||||
use App\Http\Controllers\AdminWorkflow\AdminWorkflowBaseController;
|
||||
use App\Http\Resources\BookingResource;
|
||||
use App\Models\Booking;
|
||||
use App\Models\KeyValuePair;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
// Generalized JSON response function
|
||||
@@ -27,53 +29,25 @@ if (!function_exists('responseJson')) {
|
||||
}
|
||||
|
||||
if (!function_exists('markedProcessing')) {
|
||||
function markedProcessing($booking, $key){
|
||||
$kvp = $booking->attributesKVP()->where('key', $key)->first();
|
||||
function markedProcessing($model, $key){
|
||||
$kvp = $model->attributesKVP()->where('key', $key)->first();
|
||||
|
||||
if($kvp){
|
||||
$kvp->delete();
|
||||
$kvp = null;
|
||||
}
|
||||
|
||||
if(!$kvp){
|
||||
$keyValuePairObject = new KeyValuePairObject($key, true);
|
||||
(App()->make(CreatesKeyValuePair::class))->execute($booking, $keyValuePairObject);
|
||||
(App()->make(CreatesKeyValuePair::class))->execute($model, $keyValuePairObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Route::group(['prefix' => 'admin-work-flow', 'as' => 'admin_work_flow.', 'namespace' => 'AdminWorkFlow'], function () {
|
||||
Route::group(['prefix' => 'admin-work-flow', 'as' => 'admin_work_flow.', 'namespace' => 'AdminWorkFlow'], function () {
|
||||
|
||||
|
||||
Route::get('/fetch-oldest-order', function () {
|
||||
$excludedBookingIds = KeyValuePair::where('owner_type', 'App\Models\Booking')
|
||||
->where(function ($query) {
|
||||
$query->where('key', '1688_admin_workflow_processed')
|
||||
->orWhere(function ($query) {
|
||||
$query->where('key', '1688_admin_workflow_processing')
|
||||
->where('updated_at', '>', Carbon::now()->subHour());
|
||||
});
|
||||
})
|
||||
->pluck('owner_id')
|
||||
->filter(function ($value) {
|
||||
return is_numeric($value);
|
||||
})
|
||||
->toArray();
|
||||
|
||||
$booking = Booking::where('service_id', 4)
|
||||
->where('status', ApprovalStatus::APPROVED)
|
||||
->whereNotIn('id', $excludedBookingIds)
|
||||
->first();
|
||||
|
||||
if(!$booking){
|
||||
return responseJson(null, 'No booking found', 404);
|
||||
}
|
||||
|
||||
markedProcessing($booking, '1688_admin_workflow_processing');
|
||||
|
||||
return responseJson([
|
||||
'passwords' => $booking->bank->holder_name ?? null,
|
||||
'account_no' => $booking->bank->account_no ?? null,
|
||||
'pin' => $booking->bank->bank_branch ?? null,
|
||||
'holder_name' => $booking->bank->holder_name ?? null,
|
||||
'booking' => $booking
|
||||
]);
|
||||
})->name('fetch_oldest_order');
|
||||
Route::get('/fetch-oldest-order', [AdminWorkflowBaseController::class, 'fetchOldestOrder'])->name('fetch_oldest_order');
|
||||
|
||||
|
||||
Route::get('/fetch-pending-approved-po', function () {
|
||||
@@ -162,9 +136,14 @@ Route::group(['prefix' => 'admin-work-flow', 'as' => 'admin_work_flow.', 'namesp
|
||||
->get(['id', 'value'])
|
||||
->map(fn ($attr) => $attr->only(['id', 'value']));
|
||||
|
||||
$transaction = $booking->bills()->first(); //cief todo: 74 - more than 1 record?
|
||||
return responseJson([
|
||||
'booking' => $booking,
|
||||
'booking_attributes' => $attributes,
|
||||
'reference' =>$transaction->owner->owner->marking,
|
||||
'marking' => $transaction->owner->owner->company->reference,
|
||||
'currency_rate' => $transaction->currency_rate,
|
||||
'total_amount' =>$transaction->currency->short_code . ' ' . number_format((float)$transaction->amount, 2, '.', '')
|
||||
]);
|
||||
})->name('fetch_model_attributes');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user