diff --git a/app/Console/Commands/DeleteCartsHourly.php b/app/Console/Commands/DeleteCartsHourly.php new file mode 100644 index 0000000..44c4dc5 --- /dev/null +++ b/app/Console/Commands/DeleteCartsHourly.php @@ -0,0 +1,55 @@ +subHour(); + $deleted = PersonalCarts::where('created_at', '<', $oneHourAgo)->delete(); + Log::info('carts hourly have been deleted.'); + $this->info('carts have been deleted.'); + }catch(\Exception $e){ + Log::error('Error deleting hourly carts: ' . $e->getMessage()); + $this->error('Error deleting hourly carts: ' . $e->getMessage()); + return 1; + } + + } +} diff --git a/app/Console/Commands/updateUnsuccess.php b/app/Console/Commands/updateUnsuccess.php index 10c769d..33ef2f0 100644 --- a/app/Console/Commands/updateUnsuccess.php +++ b/app/Console/Commands/updateUnsuccess.php @@ -17,8 +17,7 @@ class UpdateUnsuccess extends Command * * @var string */ - protected $signature = 'update:unsuccess'; - + protected $signature = 'update:unsuccess {--type=1}'; /** * The console command description. * @@ -33,14 +32,17 @@ class UpdateUnsuccess extends Command */ public function handle() { - $getFailedOnlineTransaction = fn() => Http::arrahn()->get('/api/transaction/online/unsuccessful')->json(); - $getFailedOnlineTransaction_Koop = fn() => Http::arrahn_koop()->get('/api/transaction/online/unsuccessful')->json(); + $type = $this->option('type'); - $FailedBillplzID = array_map(fn($x) => $x['billplz_id'], $getFailedOnlineTransaction()); - $FailedBillplzID_Koop = array_map(fn($x) => $x['billplz_id'], $getFailedOnlineTransaction_Koop()); - - $this->resolve_payment($FailedBillplzID,CompanyStatus::COM_PKB); - $this->resolve_payment($FailedBillplzID_Koop,CompanyStatus::COM_KOOPPKB); + if($type == '1'){ + $getFailedOnlineTransaction = fn() => Http::arrahn()->get('/api/transaction/online/unsuccessful')->json(); + $FailedBillplzID = array_map(fn($x) => $x['billplz_id'], $getFailedOnlineTransaction()); + $this->resolve_payment($FailedBillplzID,CompanyStatus::COM_PKB); + }else{ + $getFailedOnlineTransaction_Koop = fn() => Http::arrahn_koop()->get('/api/transaction/online/unsuccessful')->json(); + $FailedBillplzID_Koop = array_map(fn($x) => $x['billplz_id'], $getFailedOnlineTransaction_Koop()); + $this->resolve_payment($FailedBillplzID_Koop,CompanyStatus::COM_KOOPPKB); + } } public function resolve_payment($FailedBillplzID,$company) @@ -50,8 +52,14 @@ class UpdateUnsuccess extends Command if(sizeof($FailedBillplzID) < 0){ return; } + + if($company == CompanyStatus::COM_PKB){ + $companyID = 'PKB'; + }else{ + $companyID = 'KOPKB'; + } - $billplzUpdatedTransactionStatus = array_map(fn($x) => $billplzService->getTransactionByBillId($x,$company), $FailedBillplzID); + $billplzUpdatedTransactionStatus = array_map(fn($x) => $billplzService->getTransactionByBillId($x,$companyID), $FailedBillplzID); $getCompletedBillplzTransaction = function() use($billplzUpdatedTransactionStatus){ diff --git a/app/Http/Controllers/BayaranController.php b/app/Http/Controllers/BayaranController.php index 0d4fee9..e589969 100644 --- a/app/Http/Controllers/BayaranController.php +++ b/app/Http/Controllers/BayaranController.php @@ -33,6 +33,16 @@ class BayaranController extends Controller $list_pkb = json_decode($exist_carts['list_pkb'],true); $list_koop = json_decode($exist_carts['list_koop'],true); + if($this->checkSAG($list_pkb, 'PKB')){ + $this->removeCartsInternal(); + return redirect()->route('buffer'); + } + + if($this->checkSAG($list_koop, 'KOPKB')){ + $this->removeCartsInternal(); + return redirect()->route('buffer'); + } + if($exist_carts['status_pkb'] == 'PENDING') $list_pkb = ($list_pkb) ? $this->setUpahTawarruq($list_pkb) : []; else $list_pkb = []; if($exist_carts['status_koop'] == 'PENDING') $list_koop = ($list_koop) ? $this->setUpahTawarruq($list_koop) : []; else $list_koop = []; @@ -551,4 +561,49 @@ class BayaranController extends Controller : Http::arrahn_koop(); } + + private function checkSAG($list_sag, $company) + { + $CallableHttp = $company == 'PKB' + ? Http::arrahn() + : Http::arrahn_koop(); + + foreach ($list_sag as $x) { + $array_lelong = Http::withOptions(['verify' => config('app.api_verify')]) + ->get(config('api-lelong.url') . '/api/portalApi', ['norujukan' => $x['norujukan']]) + ->json(); + + $array_gadai = $CallableHttp->get('/api/gadai/norujukan/' . $x['norujukan'])->json(); + $isdisabled = $CallableHttp->get('/portal/searchsagonline/', ['norujukan' => $x['norujukan']])->json(); + + if ($array_lelong['lelong'] != null) { + return true; + } + + if ($isdisabled) { + return true; + } + + if (sizeof($array_gadai) != 0) { + $array_gadai = $array_gadai[0][0]; + if ($array_gadai['sttebus'] == 'T' || $array_gadai['sttebus'] == 'L') { + return true; + } + } + } + + return false; + } + + private function removeCartsInternal(){ + $exist_carts = PersonalCarts::where('ic_no', Auth::user()->icno) + ->where('user_id', Auth::user()->id) + ->first(); + + if ($exist_carts) { + $exist_carts->delete(); + } + + return $exist_carts; + } } diff --git a/config/logging.php b/config/logging.php index 1aa06aa..e09aae6 100644 --- a/config/logging.php +++ b/config/logging.php @@ -17,7 +17,7 @@ return [ | */ - 'default' => env('LOG_CHANNEL', 'stack'), + 'default' => env('LOG_CHANNEL', 'daily'), /* |--------------------------------------------------------------------------