diff --git a/app/Classes/Modules/Transactions/ControllersLogic/DownloadMockUpWhiteFormPdfLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/DownloadMockUpWhiteFormPdfLogic.php
index 4d80785f..7c68536d 100644
--- a/app/Classes/Modules/Transactions/ControllersLogic/DownloadMockUpWhiteFormPdfLogic.php
+++ b/app/Classes/Modules/Transactions/ControllersLogic/DownloadMockUpWhiteFormPdfLogic.php
@@ -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();
diff --git a/app/Http/Controllers/AdminWorkflow/AdminWorkflowBaseController.php b/app/Http/Controllers/AdminWorkflow/AdminWorkflowBaseController.php
new file mode 100644
index 00000000..55e16882
--- /dev/null
+++ b/app/Http/Controllers/AdminWorkflow/AdminWorkflowBaseController.php
@@ -0,0 +1,61 @@
+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
+ ]);
+ }
+}
diff --git a/resources/assets/vue/components/general/forms/AdminWorkFlowFormComponent.vue b/resources/assets/vue/components/general/forms/AdminWorkFlowFormComponent.vue
index 941a61e8..96fc0717 100644
--- a/resources/assets/vue/components/general/forms/AdminWorkFlowFormComponent.vue
+++ b/resources/assets/vue/components/general/forms/AdminWorkFlowFormComponent.vue
@@ -73,7 +73,23 @@
{{ externalApiResponse.data.booking.marking }}
-
+
+
+
+ Reference: {{ externalApiResponse.data.reference }}
+
+
+ Marking: {{ externalApiResponse.data.marking }}
+
+
+ Currency Rate: {{ externalApiResponse.data.currency_rate }}
+
+
+ Total Amount: {{ externalApiResponse.data.total_amount }}
+
+
+
+
diff --git a/routes/admin_workflow.php b/routes/admin_workflow.php
index e2cadb45..8c2f535d 100644
--- a/routes/admin_workflow.php
+++ b/routes/admin_workflow.php
@@ -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');