| } | } | ||||
| public function generateInvoiceNumber($formT,$dealer,$month,$year){ | 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; | |||||
| } | } | ||||
| } | } | ||||
| } | } |