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();