1 Commits

Author SHA1 Message Date
63e7f1a344 Update dependency vite to v7
Some checks failed
renovate/artifacts Artifact file update failure
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 10s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 9s
Gemini PR Review / review (pull_request) Successful in 28s
Laravel Pint / pint (pull_request) Successful in 2m4s
Laravel Larastan / larastan (pull_request) Failing after 3m9s
2025-12-14 00:01:01 +00:00
4 changed files with 94 additions and 130 deletions

View File

@@ -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: {

View File

@@ -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,

View File

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

View File

@@ -13,6 +13,6 @@
"laravel-vite-plugin": "^1.2.0", "laravel-vite-plugin": "^1.2.0",
"postcss": "^8.4.47", "postcss": "^8.4.47",
"tailwindcss": "^3.4.13", "tailwindcss": "^3.4.13",
"vite": "^6.0.11" "vite": "^7.0.0"
} }
} }