| @@ -284,11 +284,43 @@ class DealerClaimController extends Controller | |||
| } | |||
| public function generateInvoiceNumber($formT,$dealer,$month,$year){ | |||
| $claim = DealerClaim::where('formT',$formT)->where('dealer',$dealer)->where('activated_my',$month.'/'.$year)->get(); | |||
| $claim = DealerClaim::where('formT',$formT)->where('dealer',$dealer)->where('activated_my',$month.'/'.$year)->first(); | |||
| if(!empty($claim->invoice_no)){ | |||
| return $claim->invoice_no; | |||
| }else{ | |||
| //get latest invoice number | |||
| $invoice = DealerClaim::where('formT',$formT)->withTrashed()->latest()->first(); | |||
| //sanitize invoice number to return only integer | |||
| $num = filter_var($invoice['invoice_no'], FILTER_SANITIZE_NUMBER_INT); | |||
| //compulsory increment to store new invoice number, WHILE number is found, keep looping | |||
| do{ | |||
| (int)$num += 1; | |||
| //add 0s at the fornt if number to complete 9 digit | |||
| if ((strlen((string) $num)) == 2) { | |||
| $num = '0000000'.$num; | |||
| }elseif ((strlen((string)$num)) == 3){ | |||
| $num = '000000'.$num; | |||
| }elseif ((strlen((string)$num )) == 4) { | |||
| $num = '00000'.$num; | |||
| }elseif ((strlen((string)$num )) == 5) { | |||
| $num = '0000'.$num; | |||
| }elseif ((strlen((string)$num )) == 6) { | |||
| $num = '000'.$num; | |||
| }elseif ((strlen((string)$num )) == 7) { | |||
| $num = '00'.$num; | |||
| }elseif ((strlen((string)$num )) == 8) { | |||
| $num = '0'.$num; | |||
| } | |||
| foreach ($claim as $key => $c){ | |||
| $c->invoice_no = 'B000000018'; | |||
| $c->save(); | |||
| }while(!empty(DealerClaim::where('formT', $formT)->where('invoice_no', $formT.$num)->first())); | |||
| $num = $formT.$num; | |||
| return $num; | |||
| } | |||
| } | |||
| } | |||