Enhancement to allow admin to delete package safely with immediate pull again from YD api

This commit is contained in:
Dillon Ngo
2026-03-17 16:30:33 +08:00
parent 7dfa7b0220
commit 1cc3581800
2 changed files with 31 additions and 0 deletions
@@ -4,6 +4,7 @@ namespace App\Classes\Modules\PackingLists\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Jobs\Commands\V2\YD\FetchPackingListsFromYdPortalV2CommandJob;
use App\Classes\Modules\PackingLists\Services\DeletesPackingList;
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
use App\Classes\Modules\PackingLists\Services\Packages\FetchesPackage;
@@ -11,6 +12,7 @@ use App\Classes\Modules\PackingLists\Standards\Rules\CanDeletePackingList;
use App\Classes\ValueObjects\Constants\PackingListType;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\PackingList;
use Carbon\Carbon;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -84,7 +86,35 @@ class DeletePackingListByPackageIdLogic extends AbstractControllerLogic
$childPackingList->each->delete();
$jobs1 = $this->fetchPackingListsFromYdPortalV2CommandJobs();
foreach ($jobs1 as $index => $job) {
dispatch($job)->delay(now()->addSeconds($index * 2));
}
return $this->response([]);
}
private function fetchPackingListsFromYdPortalV2CommandJobs()
{
$jobs = [];
$count = 0;
// Always take last 10 days INCLUDING today
for ($x = 0; $x < 10; $x++) {
$startDate = Carbon::today()->subDays($x)->startOfDay();
$endDate = Carbon::today()->subDays($x - 1)->startOfDay();
$jobs[] = new FetchPackingListsFromYdPortalV2CommandJob($startDate, $endDate);
Log::info('Dispatched FetchPackingListsFromYdPortalV2CommandJob for start date: ' . $startDate . ', end date: ' . $endDate);
$count++;
}
Log::info('Total FetchPackingListsFromYdPortalV2CommandJob dispatched: ' . $count);
return $jobs;
}
}
@@ -158,6 +158,7 @@ class FetchPackingListsFromYdPortalV2Processor
$packingListReference = $row->expressno;
try{
Log::info('Fetch SHIPPING_PACKING_LIST expressno: ' . $row->expressno);
$packingList = $this->fetchesPackingList->execute(['reference' => $row->expressno, 'type' => PackingListType::SHIPPING_PACKING_LIST]);
Log::info('Fetch SHIPPING_PACKING_LIST id: ' . $packingList->id);