Changed logic in invoice in transit import page #379
@@ -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).'<br>';
|
||||
$errorMsg .= 'Missing Receiving Plant Code in rows: '.implode(', ', $invalidPlantCode).'<br>';
|
||||
}
|
||||
if (! empty($invalidRecPlant)) {
|
||||
$errorMsg .= 'Missing Receiving Plant Name in rows: '.implode(', ', $invalidRecPlant).'<br>';
|
||||
$errorMsg .= 'Missing Receiving Plant in rows: '.implode(', ', $invalidRecPlant).'<br>';
|
||||
}
|
||||
if (! empty($invalidRecPlantName)) {
|
||||
$errorMsg .= 'Missing Transit Days in rows: '.implode(', ', $invalidRecPlantName).'<br>';
|
||||
$errorMsg .= 'Missing Receiving Plant Name in rows: '.implode(', ', $invalidRecPlantName).'<br>';
|
||||
}
|
||||
if (! empty($invalidInvNo)) {
|
||||
$errorMsg .= 'Missing Transport Name in rows: '.implode(', ', $invalidInvNo).'<br>';
|
||||
$errorMsg .= 'Missing Invoice Number in rows: '.implode(', ', $invalidInvNo).'<br>';
|
||||
}
|
||||
if (! empty($invalidInvDt)) {
|
||||
$errorMsg .= 'Missing Receiving Plant in rows: '.implode(', ', $invalidInvDt).'<br>';
|
||||
$errorMsg .= 'Missing Invoice Dates in rows: '.implode(', ', $invalidInvDt).'<br>';
|
||||
}
|
||||
if (! empty($invalidICode)) {
|
||||
$errorMsg .= 'Missing Receiving Plant Name in rows: '.implode(', ', $invalidICode).'<br>';
|
||||
$errorMsg .= 'Missing Item Code in rows: '.implode(', ', $invalidICode).'<br>';
|
||||
}
|
||||
if (! empty($invalidDesc)) {
|
||||
$errorMsg .= 'Missing Transit Days in rows: '.implode(', ', $invalidDesc).'<br>';
|
||||
$errorMsg .= 'Missing Item Description in rows: '.implode(', ', $invalidDesc).'<br>';
|
||||
}
|
||||
if (! empty($invalidQty)) {
|
||||
$errorMsg .= 'Missing Transport Name in rows: '.implode(', ', $invalidQty).'<br>';
|
||||
$errorMsg .= 'Missing Quantity in rows: '.implode(', ', $invalidQty).'<br>';
|
||||
}
|
||||
if (! empty($invalidTransportName)) {
|
||||
$errorMsg .= 'Missing Receiving Plant in rows: '.implode(', ', $invalidTransportName).'<br>';
|
||||
}
|
||||
if (! empty($invalidLRBLAWNo)) {
|
||||
$errorMsg .= 'Missing Receiving Plant Name in rows: '.implode(', ', $invalidLRBLAWNo).'<br>';
|
||||
}
|
||||
if (! empty($invalidLRBLAWDt)) {
|
||||
$errorMsg .= 'Missing Transit Days in rows: '.implode(', ', $invalidLRBLAWDt).'<br>';
|
||||
$errorMsg .= 'Missing Transport Name in rows: '.implode(', ', $invalidTransportName).'<br>';
|
||||
}
|
||||
// if (! empty($invalidLRBLAWNo)) {
|
||||
// $errorMsg .= 'Missing Receiving Plant Name in rows: '.implode(', ', $invalidLRBLAWNo).'<br>';
|
||||
// }
|
||||
// if (! empty($invalidLRBLAWDt)) {
|
||||
// $errorMsg .= 'Missing Transit Days in rows: '.implode(', ', $invalidLRBLAWDt).'<br>';
|
||||
// }
|
||||
if (! empty($invalidPenDay)) {
|
||||
$errorMsg .= 'Missing Transport Name in rows: '.implode(', ', $invalidPenDay).'<br>';
|
||||
$errorMsg .= 'Missing Pending Days in rows: '.implode(', ', $invalidPenDay).'<br>';
|
||||
}
|
||||
|
||||
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:<br>'.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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user