From 6bac832d1fe8bf9bb4b4146b1a1d7f59b44f93e3 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Tue, 19 May 2026 15:14:50 +0530 Subject: [PATCH 1/3] Added print item button in production order screen --- .../save-production-order-button.blade.php | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 resources/views/forms/components/save-production-order-button.blade.php diff --git a/resources/views/forms/components/save-production-order-button.blade.php b/resources/views/forms/components/save-production-order-button.blade.php new file mode 100644 index 0000000..e634512 --- /dev/null +++ b/resources/views/forms/components/save-production-order-button.blade.php @@ -0,0 +1,40 @@ + +
+@can('view save production order button') + +@endcan +@can('view print production order button') + +@endcan +@can('view print panel production order button') + +@endcan +@can('view print item serial production order button') + +@endcan +
+ From b52fd57c239220b605aeab81cad0df9735dd67d7 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Tue, 19 May 2026 15:17:33 +0530 Subject: [PATCH 2/3] Added print item in print order controller and create page --- .../Pages/CreateProductionOrder.php | 33 ++++++++++++ .../Controllers/ProductionOrderController.php | 50 ++++++++++++++++++- 2 files changed, 82 insertions(+), 1 deletion(-) diff --git a/app/Filament/Resources/ProductionOrderResource/Pages/CreateProductionOrder.php b/app/Filament/Resources/ProductionOrderResource/Pages/CreateProductionOrder.php index e0e20cd..32350b0 100644 --- a/app/Filament/Resources/ProductionOrderResource/Pages/CreateProductionOrder.php +++ b/app/Filament/Resources/ProductionOrderResource/Pages/CreateProductionOrder.php @@ -210,6 +210,39 @@ class CreateProductionOrder extends CreateRecord } } + public function printItemSerial() + { + $pOrder = trim($this->form->getState()['production_order'] ?? '') ?? null; + + $plantId = trim($this->form->getState()['plant_id'] ?? '') ?? null; + + if (empty($plantId)) { + Notification::make() + ->title('Plant name cannot be empty!') + ->danger() + ->send(); + return; + } elseif (empty($pOrder)) { + Notification::make() + ->title('Production order cannot be empty!') + ->danger() + ->send(); + return; + } + + $pOrderExists = ProductionOrder::where('plant_id', $plantId)->where('production_order', $pOrder)->first(); + + if (! $pOrderExists) { + Notification::make() + ->title("Production Order '{$pOrder}' does not exist to get print!") + ->danger() + ->send(); + return; + } else { + return redirect()->route('production-orders.printItemSerial', ['production_order' => $pOrder]); + } + } + public function printPanel() { $pOrder = trim($this->form->getState()['production_order'] ?? '') ?? null; diff --git a/app/Http/Controllers/ProductionOrderController.php b/app/Http/Controllers/ProductionOrderController.php index 732f71f..12349af 100644 --- a/app/Http/Controllers/ProductionOrderController.php +++ b/app/Http/Controllers/ProductionOrderController.php @@ -50,7 +50,8 @@ class ProductionOrderController extends Controller $qrCode = new QrCode($qrData); $output = new Output\Png; - $qrBinary = $output->output($qrCode, 100); + // $qrBinary = $output->output($qrCode, 100); + $qrBinary = $output->output($qrCode, 600); $qrBase64 = base64_encode($qrBinary); $stickers[] = [ @@ -134,6 +135,53 @@ class ProductionOrderController extends Controller } } + public function printitemserial($production_order) + { + $order = ProductionOrder::where('production_order', $production_order)->first(); + + if (!$order) { + abort(404, 'Production Order not found'); + } + else{ + $fromSerial = (int) $order->from_serial_number; + $toSerial = (int) $order->to_serial_number; + $itemCode = $order->item->code ?? ''; + $itemDes = $order->item->description ?? ''; + + $stickers = []; + + for ($i = $fromSerial; $i <= $toSerial; $i++) + { + + $serial = str_pad($i, 6, '0', STR_PAD_LEFT); + + $qrData = $itemCode . '|' . $serial; + + // $qrBase64 = base64_encode( + // QrCode::format('png')->size(100)->generate($qrData) + // ); + + $qrCode = new QrCode($qrData); + $output = new Output\Png; + // $qrBinary = $output->output($qrCode, 100); + $qrBinary = $output->output($qrCode, 600); + $qrBase64 = base64_encode($qrBinary); + + $stickers[] = [ + 'serial' => $serial, + 'qr' => 'data:image/png;base64,' . $qrBase64, + 'production_order' => $itemCode, + 'description' => $itemDes ?? '' + ]; + } + + $pdf = Pdf::loadView('production-orders.printItemSerial', compact('stickers')) + ->setPaper([0, 0, 170, 40]); + + return $pdf->stream('stickers.pdf'); + } + } + /** * Store a newly created resource in storage. */ From 5b333621fe84f13f3c4f0be41fd5fadc4a70b5d8 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Tue, 19 May 2026 15:19:45 +0530 Subject: [PATCH 3/3] Added print item serial in web php --- routes/web.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/routes/web.php b/routes/web.php index 0e152ef..71ddd38 100644 --- a/routes/web.php +++ b/routes/web.php @@ -61,6 +61,10 @@ Route::get('production-orders/{production_order}/{plant_code}/printpanel', [ProductionOrderController::class, 'printpanel'] )->name('production-orders.printpanel'); +Route::get('production-orders/{production_order}/printItemSerial', + [ProductionOrderController::class, 'printItemSerial'] +)->name('production-orders.printItemSerial'); + // Route::get('/characteristic/approve', [CharacteristicApprovalController::class, 'approve']) // ->name('characteristic.approve') // ->middleware('signed');