diff --git a/app/Filament/Pages/StickerReprint.php b/app/Filament/Pages/StickerReprint.php index 37f347f..b9a6850 100644 --- a/app/Filament/Pages/StickerReprint.php +++ b/app/Filament/Pages/StickerReprint.php @@ -3,6 +3,7 @@ namespace App\Filament\Pages; use App\Models\Item; +use App\Models\Line; use App\Models\Plant; use App\Models\ProductionQuantity; use App\Models\Shift; @@ -20,7 +21,7 @@ use Filament\Facades\Filament; use Livewire\Attributes\On; use Carbon\Carbon; use Illuminate\Support\Facades\Request; - +use Str; class StickerReprint extends Page implements HasForms { protected static ?string $navigationIcon = 'heroicon-o-document-text'; @@ -1145,6 +1146,20 @@ class StickerReprint extends Page implements HasForms if (!$item) { // Handle unknown item code + $this->form->fill([ + 'plant_id'=> $this->pId, + 'block_name'=> $this->bId, + 'shift_id'=> $this->sId, + 'line_id'=> $this->lId, + 'item_id'=> null, + 'serial_number'=> null, + 'success_msg'=> null, + 'production_order'=> $this->prodOrder, + 'sap_msg_status' => null, + 'sap_msg_description' => null, + 'operator_id'=> $operatorName, + 'recent_qr' => $this->recQr, + ]); Notification::make() ->title('Invalid Item Code') ->body("Item code '{$itemCode}' does not exist in Item master.") @@ -1152,37 +1167,9 @@ class StickerReprint extends Page implements HasForms ->send(); return; } - - $sticker = StickerMaster::where('item_id', $item->id)->first(); - - if (!$sticker) { - // If no sticker or item_id is found, it's an unknown item - $this->form->fill([ - 'plant_id'=> $this->pId, - 'block_name'=> $this->bId, - 'shift_id'=> $this->sId, - 'line_id'=> $this->lId, - 'item_id'=> null, - 'serial_number'=> null, - 'success_msg'=> null, - 'production_order'=> $this->prodOrder, - 'sap_msg_status' => null, - 'sap_msg_description' => null, - 'operator_id'=> $operatorName, - 'recent_qr' => $this->recQr, - ]); - Notification::make() - ->title('Unknown Item Code') - ->body("Item code does not exist in the Sticker Master.") - ->danger() - ->send(); - return; - } - - // Now fetch the Item using item_id from sticker and plant_id check - $item = Item::where('id', $sticker->item_id) - ->where('plant_id', $this->pId) - ->first(); + $item = Item::where('code', $itemCode) + ->where('plant_id', $this->pId) + ->first(); if ($item) { @@ -1233,8 +1220,114 @@ class StickerReprint extends Page implements HasForms return; } } + else + { + $this->form->fill([ + 'plant_id'=> $this->pId, + 'block_name'=> $this->bId, + 'shift_id'=> $this->sId, + 'line_id'=> $this->lId, + 'item_id'=> null, + 'serial_number'=> null, + 'success_msg'=> null, + 'production_order'=> $this->prodOrder, + 'sap_msg_status' => null, + 'sap_msg_description' => null, + 'operator_id'=> $operatorName, + 'recent_qr' => $this->recQr, + ]); - if ($this->succId === null) { + Notification::make() + ->title('Unknown Item Code') + ->body("Item code does not exist in master data for choosed plant.") + ->danger() + ->seconds(2) + ->send(); + return; + } + + $line = Line::find($this->lId); + $lineName = $line ? $line->name : null; + + $categoryName = (Str::length($item->category) > 0) ? $item->category : ""; + + if ($categoryName == 'Submersible Motor') + { + if ($lineName != '6 inch motor line') + { + $this->form->fill([ + 'plant_id'=> $this->pId, + 'block_name'=> $this->bId, + 'shift_id'=> $this->sId, + 'line_id'=> $this->lId, + 'item_id'=> null, + 'serial_number'=> null, + 'success_msg'=> null, + 'production_order'=> $this->prodOrder, + 'sap_msg_status' => null, + 'sap_msg_description' => null, + 'operator_id'=> $operatorName, + 'recent_qr' => $this->recQr, + ]); + Notification::make() + ->title('Invalid Line Found') + ->body("Choose '6 inch motor line' to proceed..!") + ->danger() + ->send(); + return; + } + } + else if ($categoryName == 'Submersible Pump') + { + if ($lineName != '6 inch pump line') + { + $this->form->fill([ + 'plant_id'=> $this->pId, + 'block_name'=> $this->bId, + 'shift_id'=> $this->sId, + 'line_id'=> $this->lId, + 'item_id'=> null, + 'serial_number'=> null, + 'success_msg'=> null, + 'production_order'=> $this->prodOrder, + 'sap_msg_status' => null, + 'sap_msg_description' => null, + 'operator_id'=> $operatorName, + 'recent_qr' => $this->recQr, + ]); + Notification::make() + ->title('Invalid Line Found') + ->body("Choose '6 inch pump line' to proceed..!") + ->danger() + ->send(); + return; + } + } + else + { + $this->form->fill([ + 'plant_id'=> $this->pId, + 'block_name'=> $this->bId, + 'shift_id'=> $this->sId, + 'line_id'=> $this->lId, + 'item_id'=> null, + 'serial_number'=> null, + 'success_msg'=> null, + 'production_order'=> $this->prodOrder, + 'sap_msg_status' => null, + 'sap_msg_description' => null, + 'operator_id'=> $operatorName, + 'recent_qr' => $this->recQr, + ]); + Notification::make() + ->title('Invalid Category Found') + ->body("Set proper category to proceed..!") + ->danger() + ->send(); + return; + } + + if ($this->succId == null) { $this->form->fill([ 'plant_id'=> $this->pId, 'block_name'=> $this->bId, diff --git a/app/Http/Controllers/ProductionStickerReprintController.php b/app/Http/Controllers/ProductionStickerReprintController.php index a69005b..099e9cc 100644 --- a/app/Http/Controllers/ProductionStickerReprintController.php +++ b/app/Http/Controllers/ProductionStickerReprintController.php @@ -20,23 +20,200 @@ class ProductionStickerReprintController extends Controller // } + // public function downloadQrPdf($palletNo) + // { + + // $parts = explode('|', $palletNo); + // $itemCode = trim($parts[0]); + // $serial = isset($parts[1]) ? trim($parts[1]) : null; + + // // Retrieve the item record by item code + // $item = Item::where('code', $itemCode)->first(); + + // if (!$item) { + // abort(404, "Item with code {$itemCode} not found."); + // } + + // $itemId = $item->id; + + // $production = ProductionQuantity::where('item_id', $itemId) + // ->where('serial_number', $serial) + // ->first(); + + // if (!$production) { + // abort(404, "Production data for item code '{$itemCode}' with serial '{$serial}' not found."); + // } + + // $productionOrder = $production->production_order; + + // $qrCode = new QrCode($palletNo); + // $output = new Output\Png(); + // $qrBinary = $output->output($qrCode, 100); + // $qrBase64 = base64_encode($qrBinary); + + // $sticker = StickerMaster::where('item_id', $itemId)->first(); + + // // Decide number of copies + // $copies = 1; + + // if ($sticker) { + // if ($sticker->serial_number_pump == 1) { + // // If pump is selected (regardless of motor), 2 copies + // $copies = 2; + // } elseif ($sticker->serial_number_motor == 1) { + // // Only motor selected, 1 copy + // $copies = 1; + // } + // } + // return ' + // + //
+ // + // + // + // + // + // + // + // '; + + + // //Get sticker master data + // // $sticker = StickerMaster::where('item_id', $itemId)->first(); + + // // //Decide number of copies + // // $copies = 1; // default + // // if ($sticker) { + // // if ($sticker->serial_number_motor == 1) { + // // $copies = 1; + // // } elseif (is_null($sticker->serial_number_motor) && $sticker->serial_number_pump == 1) { + // // $copies = 2; + // // } + // // } + + // // $mpdf = new Mpdf([ + // // 'mode' => 'utf-8', + // // 'format' => [60, 14], + // // 'margin_left' => 0, + // // 'margin_right' => 0, + // // 'margin_top' => 0, + // // 'margin_bottom' => 0, + // // ]); + + // // for ($i = 0; $i < $copies; $i++) { + // // $mpdf->WriteHTML($html); + // // if ($i < $copies - 1) { + // // $mpdf->AddPage(); + // // } + // // } + + // // $mpdf->Output('qr-label.pdf', 'I'); + // // exit; + // } + + /** + * Store a newly created resource in storage. + */ + public function downloadQrPdf($palletNo) { - $parts = explode('|', $palletNo); $itemCode = trim($parts[0]); $serial = isset($parts[1]) ? trim($parts[1]) : null; - // Retrieve the item record by item code $item = Item::where('code', $itemCode)->first(); + $itemId= $item->id; if (!$item) { abort(404, "Item with code {$itemCode} not found."); } - $itemId = $item->id; - - $production = ProductionQuantity::where('item_id', $itemId) + $production = ProductionQuantity::where('item_id', $item->id) ->where('serial_number', $serial) ->first(); @@ -44,171 +221,31 @@ class ProductionStickerReprintController extends Controller abort(404, "Production data for item code '{$itemCode}' with serial '{$serial}' not found."); } - $productionOrder = $production->production_order; + $productionOrder = $production->production_order ?? ''; + if ($item->category == 'Submersible Motor') + { + $copies = 1; + } + elseif ($item->category == 'Submersible Pump') + { + $copies = 2; + } + // 5. Generate QR Code (base64) $qrCode = new QrCode($palletNo); $output = new Output\Png(); - $qrBinary = $output->output($qrCode, 100); + $qrBinary = $output->output($qrCode, 100); // 100 = size $qrBase64 = base64_encode($qrBinary); - $sticker = StickerMaster::where('item_id', $itemId)->first(); - - // Decide number of copies - $copies = 1; - - if ($sticker) { - if ($sticker->serial_number_pump == 1) { - // If pump is selected (regardless of motor), 2 copies - $copies = 2; - } elseif ($sticker->serial_number_motor == 1) { - // Only motor selected, 1 copy - $copies = 1; - } - } - - - return ' - - - - - - - - - - -'; - - - // //Get sticker master data - // $sticker = StickerMaster::where('item_id', $itemId)->first(); - - // //Decide number of copies - // $copies = 1; // default - // if ($sticker) { - // if ($sticker->serial_number_motor == 1) { - // $copies = 1; - // } elseif (is_null($sticker->serial_number_motor) && $sticker->serial_number_pump == 1) { - // $copies = 2; - // } - // } - - // $mpdf = new Mpdf([ - // 'mode' => 'utf-8', - // 'format' => [60, 14], - // 'margin_left' => 0, - // 'margin_right' => 0, - // 'margin_top' => 0, - // 'margin_bottom' => 0, - // ]); - - // for ($i = 0; $i < $copies; $i++) { - // $mpdf->WriteHTML($html); - // if ($i < $copies - 1) { - // $mpdf->AddPage(); - // } - // } - - // $mpdf->Output('qr-label.pdf', 'I'); - // exit; + // 6. Return view + return view('print-qr', [ + 'qrBase64' => $qrBase64, + 'serial' => $serial, + 'productionOrder' => $productionOrder, + 'item' => $item, + 'copies'=> $copies, + ]); } - - /** - * Store a newly created resource in storage. - */ public function store(Request $request) { // diff --git a/resources/views/print-qr.blade.php b/resources/views/print-qr.blade.php new file mode 100644 index 0000000..2495c30 --- /dev/null +++ b/resources/views/print-qr.blade.php @@ -0,0 +1,94 @@ + + + + + + + + + + +