koti42
Kullanıcı iki kere basmasın diye butonu disabled yaptım, networkten baktım istek bir defa gidiyor.
bu kod baştan aşağıya iki defa çalışıyor
public function logoSync(InvoiceLogoGetRequest $request): JsonResponse
{
Log::channel('custom')->info("Function called");
$lockSyncInvoiceUser = LockSyncLogoRecord::with('user')->where('lockable_type', 'App\\Models\\Invoice')->lockForUpdate()->first();
if ($lockSyncInvoiceUser->user_id != null) {
$messageUser = 'Kullanıcısı ' . $lockSyncInvoiceUser->user->name . ' Fatura';
throw new \Exception("Şuan " . $messageUser . ' Güncellemesi Yapmaktadır Lütfen bekleyiniz');
}
try {
if ($lockSyncInvoiceUser->user_id == null) {
$lockSyncInvoiceUser->update(
[
'user_id' => Auth::user()->id,
'level' => 1,
'status' => 1
]
);
set_time_limit(0);
ini_set('max_execution_time', '0'); // for infinite time of execution
$result = General::importInvoices();
$lockSyncInvoiceUser->update(
[
'user_id' => null,
'level' => 0,
'status' => 0
]
);
Cache::rememberForever('return_invoice_count_'.Auth::user()->id, function () use ($result) {
if($result['import_invoice_count']>0){
return $result;
}
});
return Output::successForInvoice(Response::HTTP_OK);
} else {
$lockSyncInvoiceUser->update(
[
'user_id' => null,
'level' => 0,
'status' => 0
]
);
throw new \Exception("Hata");
}
} catch (\Exception $e) {
$lockSyncInvoiceUser->update(
[
'user_id' => null,
'level' => 0,
'status' => 0
]
);
return Output::error(Response::HTTP_INTERNAL_SERVER_ERROR, $e->getMessage());
}
}