Compare commits
1 Commits
master
...
renovate/t
| Author | SHA1 | Date | |
|---|---|---|---|
| dc1f03ff35 |
@@ -1155,27 +1155,12 @@ class StickerReprint extends Page implements HasForms
|
|||||||
// Only search when all parent IDs are selected
|
// Only search when all parent IDs are selected
|
||||||
$parts = explode('|', $formQRData);
|
$parts = explode('|', $formQRData);
|
||||||
$itemCode = trim($parts[0]);
|
$itemCode = trim($parts[0]);
|
||||||
|
|
||||||
|
|
||||||
$serialNumberRaw = isset($parts[1]) ? trim($parts[1]) : null;
|
$serialNumberRaw = isset($parts[1]) ? trim($parts[1]) : null;
|
||||||
|
|
||||||
// // Remove slash and everything after it
|
// Remove slash and everything after it
|
||||||
// if ($serialNumberRaw != null) {
|
|
||||||
// $serialNumber = preg_replace('/\/.*/', '', $serialNumberRaw);
|
|
||||||
// $serialNumber = trim($serialNumber);
|
|
||||||
// } else {
|
|
||||||
// $serialNumber = null;
|
|
||||||
// }
|
|
||||||
if ($serialNumberRaw != null) {
|
if ($serialNumberRaw != null) {
|
||||||
if (strpos($serialNumberRaw, '/') !== false) {
|
$serialNumber = preg_replace('/\/.*/', '', $serialNumberRaw);
|
||||||
$serialNumber = strstr($serialNumberRaw, '/', true); // gets text before slash
|
|
||||||
} else {
|
|
||||||
$serialNumber = $serialNumberRaw; // keep original
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
$serialNumber = trim($serialNumber);
|
$serialNumber = trim($serialNumber);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$serialNumber = null;
|
$serialNumber = null;
|
||||||
}
|
}
|
||||||
@@ -1398,33 +1383,6 @@ class StickerReprint extends Page implements HasForms
|
|||||||
$itemCode = trim($parts[0]);
|
$itemCode = trim($parts[0]);
|
||||||
$this->sNoId = isset($parts[1]) ? trim($parts[1]) : null;
|
$this->sNoId = isset($parts[1]) ? trim($parts[1]) : null;
|
||||||
|
|
||||||
$originalQR = $this->qrData;
|
|
||||||
|
|
||||||
if (strpos($originalQR, '/') != false)
|
|
||||||
{
|
|
||||||
// Allowed endings
|
|
||||||
$allowed = ['/m', '/M', '/p', '/P'];
|
|
||||||
|
|
||||||
$foundValidEnding = false;
|
|
||||||
|
|
||||||
foreach ($allowed as $end) {
|
|
||||||
if (str_ends_with($originalQR, $end)) {
|
|
||||||
$foundValidEnding = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$foundValidEnding) {
|
|
||||||
Notification::make()
|
|
||||||
->title('Invalid QR Code')
|
|
||||||
->body("Invalid QR format: '$originalQR'")
|
|
||||||
->danger()
|
|
||||||
->send();
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->sNoId != null) {
|
if ($this->sNoId != null) {
|
||||||
$this->sNoId = preg_replace('/\/.*/', '', $serialNumberRaw);
|
$this->sNoId = preg_replace('/\/.*/', '', $serialNumberRaw);
|
||||||
$this->sNoId = trim($this->sNoId);
|
$this->sNoId = trim($this->sNoId);
|
||||||
@@ -1432,7 +1390,7 @@ class StickerReprint extends Page implements HasForms
|
|||||||
$this->sNoId = null;
|
$this->sNoId = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//$this->qrData = preg_replace('/\/.*/', '', $this->qrData);
|
$this->qrData = preg_replace('/\/.*/', '', $this->qrData);
|
||||||
|
|
||||||
ProductionQuantity::create([
|
ProductionQuantity::create([
|
||||||
'plant_id'=> $this->pId,
|
'plant_id'=> $this->pId,
|
||||||
@@ -1448,6 +1406,7 @@ class StickerReprint extends Page implements HasForms
|
|||||||
|
|
||||||
// after success insertion
|
// after success insertion
|
||||||
$this->form->fill([
|
$this->form->fill([
|
||||||
|
|
||||||
'plant_id'=> $this->pId,
|
'plant_id'=> $this->pId,
|
||||||
'block_name'=> $this->bId,
|
'block_name'=> $this->bId,
|
||||||
'shift_id'=> $this->sId,
|
'shift_id'=> $this->sId,
|
||||||
@@ -1470,7 +1429,7 @@ class StickerReprint extends Page implements HasForms
|
|||||||
->duration(1000)
|
->duration(1000)
|
||||||
->send();
|
->send();
|
||||||
|
|
||||||
$url = route('download-qr1-pdf', ['palletNo' => urlencode($originalQR)]);
|
$url = route('download-qr1-pdf', ['palletNo' => $this->qrData]);
|
||||||
$this->js(<<<JS
|
$this->js(<<<JS
|
||||||
window.dispatchEvent(new CustomEvent('open-pdf', {
|
window.dispatchEvent(new CustomEvent('open-pdf', {
|
||||||
detail: {
|
detail: {
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ class CreateInvoiceValidation extends CreateRecord
|
|||||||
public bool $showCapacitorInput = false;
|
public bool $showCapacitorInput = false;
|
||||||
|
|
||||||
public $excel_file;
|
public $excel_file;
|
||||||
public $mInvoiceNo;
|
|
||||||
|
|
||||||
public function getFormActions(): array
|
public function getFormActions(): array
|
||||||
{
|
{
|
||||||
@@ -104,8 +103,6 @@ class CreateInvoiceValidation extends CreateRecord
|
|||||||
{
|
{
|
||||||
$invoiceNumber = trim($invoiceNumber);
|
$invoiceNumber = trim($invoiceNumber);
|
||||||
|
|
||||||
$parts = explode('.', $invoiceNumber);
|
|
||||||
|
|
||||||
$this->showCapacitorInput = false;
|
$this->showCapacitorInput = false;
|
||||||
|
|
||||||
$user = Filament::auth()->user();
|
$user = Filament::auth()->user();
|
||||||
@@ -121,62 +118,6 @@ class CreateInvoiceValidation extends CreateRecord
|
|||||||
|
|
||||||
// ..GET SERIAL INVOICE API
|
// ..GET SERIAL INVOICE API
|
||||||
|
|
||||||
if(strlen($invoiceNumber) > 15)
|
|
||||||
{
|
|
||||||
|
|
||||||
$payloadJson = base64_decode(strtr($parts[1], '-_', '+/'));
|
|
||||||
|
|
||||||
if (empty($payloadJson)) {
|
|
||||||
Notification::make()
|
|
||||||
->title('Invalid payload for scanned qr code.')
|
|
||||||
->danger()
|
|
||||||
->seconds(1)
|
|
||||||
->send();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$payload = json_decode($payloadJson, true);
|
|
||||||
|
|
||||||
|
|
||||||
if (!isset($payload['data'])) {
|
|
||||||
Notification::make()
|
|
||||||
->title('Invalid payload for scanned qr code.')
|
|
||||||
->info()
|
|
||||||
->seconds(1)
|
|
||||||
->send();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$documentData = $payload['data'];
|
|
||||||
|
|
||||||
if($documentData == '' || $documentData == ''){
|
|
||||||
Notification::make()
|
|
||||||
->title('Invalid payload for scanned qr code.')
|
|
||||||
->info()
|
|
||||||
->seconds(1)
|
|
||||||
->send();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Extract DocNo
|
|
||||||
preg_match('/"DocNo"\s*:\s*"([^"]+)"/', $documentData, $matches);
|
|
||||||
|
|
||||||
if (!isset($matches[1])) {
|
|
||||||
Notification::make()
|
|
||||||
->title('Invoice number not found.')
|
|
||||||
->info()
|
|
||||||
->seconds(1)
|
|
||||||
->send();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($matches[1])) {
|
|
||||||
$invoiceNumber = $matches[1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//dd($invoiceNumber);
|
|
||||||
|
|
||||||
// ..
|
// ..
|
||||||
|
|
||||||
$updateStatus = $this->form->getState()['update_invoice'] ?? null;
|
$updateStatus = $this->form->getState()['update_invoice'] ?? null;
|
||||||
@@ -2801,6 +2742,19 @@ class CreateInvoiceValidation extends CreateRecord
|
|||||||
->send();
|
->send();
|
||||||
$this->dispatch('playWarnSound');
|
$this->dispatch('playWarnSound');
|
||||||
|
|
||||||
|
// $mailData = $this->getMail();
|
||||||
|
// $mPlantName = $mailData['plant_name'];
|
||||||
|
// $emails = $mailData['emails'];
|
||||||
|
// $mInvoiceType = 'Material';
|
||||||
|
|
||||||
|
// if (! empty($emails)) {
|
||||||
|
// Mail::to($emails)->send(
|
||||||
|
// new InvalidSerialMail($mSerNo, $invoiceNumber, $mPlantName, $mInvoiceType, $itemCode, 'ItemNotValidMaterialType')
|
||||||
|
// );
|
||||||
|
// } else {
|
||||||
|
// \Log::warning("No recipients found for plant {$plantId}, module Serial, rule invalid_serial.");
|
||||||
|
// }
|
||||||
|
|
||||||
$this->form->fill([
|
$this->form->fill([
|
||||||
'plant_id' => $plantId,
|
'plant_id' => $plantId,
|
||||||
'invoice_number' => $invoiceNumber,
|
'invoice_number' => $invoiceNumber,
|
||||||
@@ -2830,6 +2784,19 @@ class CreateInvoiceValidation extends CreateRecord
|
|||||||
->send();
|
->send();
|
||||||
$this->dispatch('playWarnSound');
|
$this->dispatch('playWarnSound');
|
||||||
|
|
||||||
|
// $mailData = $this->getMail();
|
||||||
|
// $mPlantName = $mailData['plant_name'];
|
||||||
|
// $emails = $mailData['emails'];
|
||||||
|
// $mInvoiceType = 'Material';
|
||||||
|
|
||||||
|
// if (! empty($emails)) {
|
||||||
|
// Mail::to($emails)->send(
|
||||||
|
// new InvalidSerialMail($mSerNo, $invoiceNumber, $mPlantName, $mInvoiceType, $itemCode, 'ItemNotInvoice')
|
||||||
|
// );
|
||||||
|
// } else {
|
||||||
|
// \Log::warning("No recipients found for plant {$plantId}, module Serial, rule invalid_serial.");
|
||||||
|
// }
|
||||||
|
|
||||||
$this->form->fill([
|
$this->form->fill([
|
||||||
'plant_id' => $plantId,
|
'plant_id' => $plantId,
|
||||||
'invoice_number' => $invoiceNumber,
|
'invoice_number' => $invoiceNumber,
|
||||||
@@ -2858,6 +2825,19 @@ class CreateInvoiceValidation extends CreateRecord
|
|||||||
->send();
|
->send();
|
||||||
$this->dispatch('playWarnSound');
|
$this->dispatch('playWarnSound');
|
||||||
|
|
||||||
|
// $mailData = $this->getMail();
|
||||||
|
// $mPlantName = $mailData['plant_name'];
|
||||||
|
// $emails = $mailData['emails'];
|
||||||
|
// $mInvoiceType = 'Material';
|
||||||
|
|
||||||
|
// if (! empty($emails)) {
|
||||||
|
// Mail::to($emails)->send(
|
||||||
|
// new InvalidSerialMail($mSerNo, $invoiceNumber, $mPlantName, $mInvoiceType, $itemCode, 'Item')
|
||||||
|
// );
|
||||||
|
// } else {
|
||||||
|
// \Log::warning("No recipients found for plant {$plantId}, module Serial, rule invalid_serial.");
|
||||||
|
// }
|
||||||
|
|
||||||
$this->form->fill([
|
$this->form->fill([
|
||||||
'plant_id' => $plantId,
|
'plant_id' => $plantId,
|
||||||
'invoice_number' => $invoiceNumber,
|
'invoice_number' => $invoiceNumber,
|
||||||
@@ -3401,6 +3381,19 @@ class CreateInvoiceValidation extends CreateRecord
|
|||||||
->send();
|
->send();
|
||||||
$this->dispatch('playNotificationSound');
|
$this->dispatch('playNotificationSound');
|
||||||
|
|
||||||
|
// $mInvoiceType = 'Serial';
|
||||||
|
// $mailData = $this->getMail();
|
||||||
|
// $mPlantName = $mailData['plant_name'];
|
||||||
|
// $emails = $mailData['emails'];
|
||||||
|
|
||||||
|
// if (! empty($emails)) {
|
||||||
|
// Mail::to($emails)->send(
|
||||||
|
// new InvalidSerialMail($serNo, $invoiceNumber, $mPlantName, $mInvoiceType, $itemCode, 'CompletedSerialInvoice')
|
||||||
|
// );
|
||||||
|
// } else {
|
||||||
|
// \Log::warning("No recipients found for plant {$plantId}, module Serial, rule invalid_serial.");
|
||||||
|
// }
|
||||||
|
|
||||||
$filename = $invoiceNumber.'.xlsx';
|
$filename = $invoiceNumber.'.xlsx';
|
||||||
$directory = 'uploads/temp';
|
$directory = 'uploads/temp';
|
||||||
$disk = Storage::disk('local');
|
$disk = Storage::disk('local');
|
||||||
@@ -3518,6 +3511,20 @@ class CreateInvoiceValidation extends CreateRecord
|
|||||||
|
|
||||||
$this->dispatch('playNotificationSound');
|
$this->dispatch('playNotificationSound');
|
||||||
|
|
||||||
|
// $mInvoiceType = 'Serial';
|
||||||
|
// $mailData = $this->getMail();
|
||||||
|
// $mPlantName = $mailData['plant_name'];
|
||||||
|
// $emails = $mailData['emails'];
|
||||||
|
|
||||||
|
// if (! empty($emails)) {
|
||||||
|
// // Mail::to($emails)->send(new InvalidSerialMail($serNo, $invoiceNumber, $mPlantName, $mInvoiceType));
|
||||||
|
// Mail::to($emails)->send(
|
||||||
|
// new InvalidSerialMail($serNo, $invoiceNumber, $mPlantName, $mInvoiceType, $itemCode, 'CSerialInvoice')
|
||||||
|
// );
|
||||||
|
// } else {
|
||||||
|
// \Log::warning("No recipients found for plant {$plantId}, module Serial, rule invalid_serial.");
|
||||||
|
// }
|
||||||
|
|
||||||
$filename = $invoiceNumber.'.xlsx';
|
$filename = $invoiceNumber.'.xlsx';
|
||||||
$directory = 'uploads/temp';
|
$directory = 'uploads/temp';
|
||||||
$disk = Storage::disk('local');
|
$disk = Storage::disk('local');
|
||||||
@@ -3577,6 +3584,22 @@ class CreateInvoiceValidation extends CreateRecord
|
|||||||
|
|
||||||
$this->dispatch('playWarnSound');
|
$this->dispatch('playWarnSound');
|
||||||
|
|
||||||
|
// $mInvoiceType = 'Serial';
|
||||||
|
// $mailData = $this->getMail();
|
||||||
|
// $mPlantName = $mailData['plant_name'];
|
||||||
|
// $emails = $mailData['emails'];
|
||||||
|
|
||||||
|
// $mUserName = Filament::auth()->user()->name;
|
||||||
|
|
||||||
|
// if (! empty($emails)) {
|
||||||
|
// // Mail::to($emails)->send(new InvalidSerialMail($serNo, $invoiceNumber, $mPlantName, $mInvoiceType));
|
||||||
|
// Mail::to($emails)->send(
|
||||||
|
// new InvalidSerialMail($serNo, $invoiceNumber, $mPlantName, $mInvoiceType, $itemCode, $mUserName, 'DuplicateCapacitorQR')
|
||||||
|
// );
|
||||||
|
// } else {
|
||||||
|
// \Log::warning("No recipients found for plant {$plantId}, module Serial, rule invalid_serial.");
|
||||||
|
// }
|
||||||
|
|
||||||
$this->form->fill([
|
$this->form->fill([
|
||||||
'plant_id' => $plantId,
|
'plant_id' => $plantId,
|
||||||
'invoice_number' => $invoiceNumber,
|
'invoice_number' => $invoiceNumber,
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ class ProductionStickerReprintController extends Controller
|
|||||||
|
|
||||||
public function downloadQrPdf($palletNo)
|
public function downloadQrPdf($palletNo)
|
||||||
{
|
{
|
||||||
$palletNo = urldecode($palletNo);
|
|
||||||
|
|
||||||
$parts = explode('|', $palletNo);
|
$parts = explode('|', $palletNo);
|
||||||
$itemCode = trim($parts[0]);
|
$itemCode = trim($parts[0]);
|
||||||
$serialNumberRaw = isset($parts[1]) ? trim($parts[1]) : null;
|
$serialNumberRaw = isset($parts[1]) ? trim($parts[1]) : null;
|
||||||
@@ -52,7 +50,6 @@ class ProductionStickerReprintController extends Controller
|
|||||||
|
|
||||||
$productionOrder = $production->production_order ?? '';
|
$productionOrder = $production->production_order ?? '';
|
||||||
|
|
||||||
if(!preg_match('/\//', $palletNo)){
|
|
||||||
if ($item->category == 'Submersible Motor')
|
if ($item->category == 'Submersible Motor')
|
||||||
{
|
{
|
||||||
$copies = 1;
|
$copies = 1;
|
||||||
@@ -61,21 +58,6 @@ class ProductionStickerReprintController extends Controller
|
|||||||
{
|
{
|
||||||
$copies = 2;
|
$copies = 2;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ($item->category == 'Submersible Motor')
|
|
||||||
{
|
|
||||||
$copies = 1;
|
|
||||||
}
|
|
||||||
elseif ($item->category == 'Submersible Pump')
|
|
||||||
{
|
|
||||||
$copies = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$palletNo = preg_replace('/\/.*/', '', $palletNo);
|
|
||||||
|
|
||||||
// 5. Generate QR Code (base64)
|
// 5. Generate QR Code (base64)
|
||||||
$qrCode = new QrCode($palletNo);
|
$qrCode = new QrCode($palletNo);
|
||||||
$output = new Output\Png();
|
$output = new Output\Png();
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
"smalot/pdfparser": "^2.12",
|
"smalot/pdfparser": "^2.12",
|
||||||
"tecnickcom/tcpdf": "^6.10",
|
"tecnickcom/tcpdf": "^6.10",
|
||||||
"thiagoalessio/tesseract_ocr": "^2.13",
|
"thiagoalessio/tesseract_ocr": "^2.13",
|
||||||
"tpetry/laravel-postgresql-enhanced": "^2.3"
|
"tpetry/laravel-postgresql-enhanced": "^3.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"barryvdh/laravel-debugbar": "^3.15",
|
"barryvdh/laravel-debugbar": "^3.15",
|
||||||
|
|||||||
Reference in New Issue
Block a user