details = $details; } public function handle() { Log::info(Carbon::now() . ': Start job - Processing single record for E-Invoice from Sales Invoice Report Import.'); $start = new Carbon(); $docNo = $this->details['docno'] ?? null; $docDate = $this->details['docdate'] ?? null; $debtorCode = $this->details['debtorcode'] ?? null; $ref = $this->details['ref'] ?? null; $shipInfo = $this->details['shipinfo'] ?? null; $accNo = $this->details['accno'] ?? null; $detailDescription = $this->details['detaildescription'] ?? null; $furtherDescription = $this->details['furtherdescription'] ?? null; $classification = $this->details['classification'] ?? null; $deptNo = $this->details['deptno'] ?? null; $qty = $this->details['qty'] ?? null; $unitPrice = $this->details['unitprice'] ?? null; $submitEinvoice = $this->details['submiteinvoice'] ?? null; $consolidatedEinvoice = $this->details['consolidatedeinvoice'] ?? null; $eInvoiceValidationLink = $this->details['einvoicevalidationlink'] ?? null; // Log for debugging Log::info("Processing Sales Invoice Report:", [ 'DocNo' => $docNo, 'DocDate' => $docDate, 'DebtorCode' => $debtorCode, 'Ref' => $ref, 'ShipInfo' => $shipInfo, 'AccNo' => $accNo, 'DetailDescription' => $detailDescription, 'FurtherDescription' => $furtherDescription, 'Classification' => $classification, 'DeptNo' => $deptNo, 'Qty' => $qty, 'UnitPrice' => $unitPrice, 'SubmitEinvoice' => $submitEinvoice, 'ConsolidatedEinvoice' => $consolidatedEinvoice, 'EInvoiceValidationLink' => $eInvoiceValidationLink, ]); $transaction = Transaction::where('bill_no', $ref)->first(); if($transaction){ if($docNo != "" && $docNo != "<>"){ $this->updateOrCreateKeyValuePair($transaction, KVPKey::AUTOCOUNT_DOCNO_INVOICE, $docNo); } if($eInvoiceValidationLink){ $this->updateOrCreateKeyValuePair($transaction, KVPKey::AUTOCOUNT_EINVOICE_VALIDATION_LINK, $eInvoiceValidationLink); } if($docDate){ $this->updateOrCreateKeyValuePair($transaction, KVPKey::AUTOCOUNT_DOCDATE_INVOICE, is_numeric($docDate) ? $this->convertDocDateToString($docDate) : $docDate); } } else{ $booking = Booking::where('marking', $shipInfo)->first(); if($booking){ if($docNo != "" && $docNo != "<>"){ $this->updateOrCreateKeyValuePair($booking, KVPKey::AUTOCOUNT_DOCNO_INVOICE, $docNo); } if($eInvoiceValidationLink){ $this->updateOrCreateKeyValuePair($booking, KVPKey::AUTOCOUNT_EINVOICE_VALIDATION_LINK, $eInvoiceValidationLink); } if($docDate){ $this->updateOrCreateKeyValuePair($booking, KVPKey::AUTOCOUNT_DOCDATE_INVOICE, is_numeric($docDate) ? $this->convertDocDateToString($docDate) : $docDate); } } } $end = new Carbon(); $elapsedTime = $start->diff($end)->format('%H:%I:%S'); Log::info(Carbon::now() . ': End job - Processing single record for E-Invoice from Sales Invoice Report Import. ElapsedTime: ' . $elapsedTime . '.'); } private function updateOrCreateKeyValuePair($booking, $key, $value) { $keyValuePairObject = new KeyValuePairObject($key, $value); $metadata = $booking->attributesKVP()->where('key', $key)->first(); if ($metadata) { (App()->make(UpdatesKeyValuePair::class))->execute($metadata, $keyValuePairObject); } else { (App()->make(CreatesKeyValuePair::class))->execute($booking, $keyValuePairObject); } } private function convertDocDateToString($value, $format = 'm/d/Y') { if (is_numeric($value)) { return Carbon::instance(Date::excelToDateTimeObject($value))->format($format); } return Carbon::parse($value)->format($format); } }