From 79e6d498d96b82e87553ecdf789467e80586ec8f Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Mon, 23 Feb 2026 18:38:47 +0530 Subject: [PATCH] Changed logic in invoice in transit import page --- .../Resources/InvoiceInTransitResource.php | 101 +++++++++++++----- 1 file changed, 73 insertions(+), 28 deletions(-) diff --git a/app/Filament/Resources/InvoiceInTransitResource.php b/app/Filament/Resources/InvoiceInTransitResource.php index 29f20aa..dff0a89 100644 --- a/app/Filament/Resources/InvoiceInTransitResource.php +++ b/app/Filament/Resources/InvoiceInTransitResource.php @@ -351,12 +351,12 @@ class InvoiceInTransitResource extends Resource if (empty($transportName)) { $invalidTransportName[] = "Row {$index}"; } - if (empty($LRBAWNo)) { - $invalidLRBLAWNo[] = "Row {$index}"; - } - if (empty($LRBAWDt)) { - $invalidLRBLAWDt[] = "Row {$index}"; - } + // if (empty($LRBAWNo)) { + // $invalidLRBLAWNo[] = "Row {$index}"; + // } + // if (empty($LRBAWDt)) { + // $invalidLRBLAWDt[] = "Row {$index}"; + // } if (empty($pendingDays)) { $invalidPenDay[] = "Row {$index}"; } @@ -367,50 +367,56 @@ class InvoiceInTransitResource extends Resource $invalidPlaCoFound[] = $plantCode; } + if($LRBAWNo){ + if(strlen($LRBAWNo) < 2){ + $invalidLRBLAWNo[] = $LRBAWNo; + } + } + $plant = Plant::where('code', $plantCode)->first(); // $plantId = $plant->id; } - if (! empty($invalidPlantCode) || ! empty($invalidRecPlant) || ! empty($invalidRecPlantName) || ! empty($invalidInvNo) || ! empty($invalidInvDt) || ! empty($invalidICode) || ! empty($invalidDesc) || ! empty($invalidQty) || ($invalidTransportName) || ! empty($invalidLRBLAWNo) || ! empty($invalidLRBLAWDt) || ! empty($invalidPenDay)) { + if (! empty($invalidPlantCode) || ! empty($invalidRecPlant) || ! empty($invalidRecPlantName) || ! empty($invalidInvNo) || ! empty($invalidInvDt) || ! empty($invalidICode) || ! empty($invalidDesc) || ! empty($invalidQty) || ($invalidTransportName) || ! empty($invalidPenDay)) { $errorMsg = ''; if (! empty($invalidPlantCode)) { - $errorMsg .= 'Missing Receiving Plant in rows: '.implode(', ', $invalidPlantCode).'
'; + $errorMsg .= 'Missing Receiving Plant Code in rows: '.implode(', ', $invalidPlantCode).'
'; } if (! empty($invalidRecPlant)) { - $errorMsg .= 'Missing Receiving Plant Name in rows: '.implode(', ', $invalidRecPlant).'
'; + $errorMsg .= 'Missing Receiving Plant in rows: '.implode(', ', $invalidRecPlant).'
'; } if (! empty($invalidRecPlantName)) { - $errorMsg .= 'Missing Transit Days in rows: '.implode(', ', $invalidRecPlantName).'
'; + $errorMsg .= 'Missing Receiving Plant Name in rows: '.implode(', ', $invalidRecPlantName).'
'; } if (! empty($invalidInvNo)) { - $errorMsg .= 'Missing Transport Name in rows: '.implode(', ', $invalidInvNo).'
'; + $errorMsg .= 'Missing Invoice Number in rows: '.implode(', ', $invalidInvNo).'
'; } if (! empty($invalidInvDt)) { - $errorMsg .= 'Missing Receiving Plant in rows: '.implode(', ', $invalidInvDt).'
'; + $errorMsg .= 'Missing Invoice Dates in rows: '.implode(', ', $invalidInvDt).'
'; } if (! empty($invalidICode)) { - $errorMsg .= 'Missing Receiving Plant Name in rows: '.implode(', ', $invalidICode).'
'; + $errorMsg .= 'Missing Item Code in rows: '.implode(', ', $invalidICode).'
'; } if (! empty($invalidDesc)) { - $errorMsg .= 'Missing Transit Days in rows: '.implode(', ', $invalidDesc).'
'; + $errorMsg .= 'Missing Item Description in rows: '.implode(', ', $invalidDesc).'
'; } if (! empty($invalidQty)) { - $errorMsg .= 'Missing Transport Name in rows: '.implode(', ', $invalidQty).'
'; + $errorMsg .= 'Missing Quantity in rows: '.implode(', ', $invalidQty).'
'; } if (! empty($invalidTransportName)) { - $errorMsg .= 'Missing Receiving Plant in rows: '.implode(', ', $invalidTransportName).'
'; - } - if (! empty($invalidLRBLAWNo)) { - $errorMsg .= 'Missing Receiving Plant Name in rows: '.implode(', ', $invalidLRBLAWNo).'
'; - } - if (! empty($invalidLRBLAWDt)) { - $errorMsg .= 'Missing Transit Days in rows: '.implode(', ', $invalidLRBLAWDt).'
'; + $errorMsg .= 'Missing Transport Name in rows: '.implode(', ', $invalidTransportName).'
'; } + // if (! empty($invalidLRBLAWNo)) { + // $errorMsg .= 'Missing Receiving Plant Name in rows: '.implode(', ', $invalidLRBLAWNo).'
'; + // } + // if (! empty($invalidLRBLAWDt)) { + // $errorMsg .= 'Missing Transit Days in rows: '.implode(', ', $invalidLRBLAWDt).'
'; + // } if (! empty($invalidPenDay)) { - $errorMsg .= 'Missing Transport Name in rows: '.implode(', ', $invalidPenDay).'
'; + $errorMsg .= 'Missing Pending Days in rows: '.implode(', ', $invalidPenDay).'
'; } Notification::make() @@ -454,19 +460,30 @@ class InvoiceInTransitResource extends Resource return; } + if (! empty($invalidLRBLAWNo)) { + $invalidLRBLAWNo = array_unique($invalidLRBLAWNo); + Notification::make() + ->title('Invalid LR/BL/AW Number') + ->body('LR/BL/AW Number should contain length minimum 2 digits:
'.implode(', ', $invalidLRBLAWNo)) + ->danger() + ->send(); + if ($disk->exists($path)) { + $disk->delete($path); + } + return; + } + $mandatoryColumns = 23; $firstRow = $rows[0] ?? []; if (count($firstRow) < $mandatoryColumns) { - Notification::make() ->title('Invalid Excel Format') ->body('Few columns not found. Columns A to W are mandatory.') ->danger() ->persistent() ->send(); - return; } @@ -530,7 +547,7 @@ class InvoiceInTransitResource extends Resource if (! empty($OBDDate)) { if (preg_match('/^\d{2}[-\/]\d{2}[-\/]\d{4}$/', $OBDDate)) { [$day, $month, $year] = preg_split('/[-\/]/', $OBDDate); - $formattedDate = "{$year}-{$month}-{$day}"; + $formatted = "{$year}-{$month}-{$day}"; } elseif (is_numeric($OBDDate)) { $formatted = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($OBDDate)->format('Y-m-d'); } else { @@ -540,6 +557,16 @@ class InvoiceInTransitResource extends Resource $formatted = null; } + $rowNumber = $index + 1; + if ($LRBAWNo == '' || $LRBAWDt == '') { + // $missedInvoices[] = $invoiceNo; + // $missedInvoices[$invoiceNo][] = $index + 1; + // continue; + $key = $invoiceNo ?: 'Row '.$rowNumber; + $missedInvoices[$key][$rowNumber] = true; + continue; + } + $inserted = InvoiceInTransit::create([ 'plant_id' => $plant->id, 'receiving_plant' => $receivingPlant, @@ -567,10 +594,28 @@ class InvoiceInTransitResource extends Resource 'created_by' => $operatorName, ]); } + + $formattedMissed = []; + + if (!empty($missedInvoices)) { + $formattedMissed = array_map( + fn($rows, $invoice) => + $invoice . ' (Row: ' . implode(', ', array_keys($rows)) . ')', + $missedInvoices, + array_keys($missedInvoices) + ); + } if ($inserted) { + $message = "Invoice in transit uploaded successfully!"; + + if (!empty($formattedMissed)) { + $message .= "\n\nSkipped Invoices (Missing LR/Date):\n" + . implode("\n", $formattedMissed); + } + Notification::make() - ->title('Upload Success') - ->body('Invoice in transit uploaded successfully!') + ->title('Upload Completed') + ->body($message) ->success() ->send(); -- 2.49.1