query('customer'); // $customerName = $request->query('customer_name'); // $items = WireMasterPacking::with('item') // ->where('plant_id', $plant) // ->where('wire_packing_number', $pallet) // ->get() // ->groupBy('item_id') // ->map(function ($rows) { // $first = $rows->first(); // return (object) [ // 'code' => $first->item->code, // 'description' => $first->item->description, // 'box_count' => $rows->count(), // 'weight' => $rows->sum('weight'), // ]; // }) // ->values(); $items = WireMasterPacking::with('item') ->where('plant_id', $plant) ->where('wire_packing_number', $pallet) ->get() ->map(function ($row) { return (object) [ 'code' => $row->item->code, 'description' => $row->item->description, 'box_count' => 1, // each row = one box 'weight' => $row->weight, ]; }); $masterBox = WireMasterPacking::where('plant_id', $plant) ->where('wire_packing_number', $pallet) ->value('customer_po_master_id'); $customer = CustomerPoMaster::find($masterBox); $customerCode = $customer->customer_po ?? ''; $customerName = $customer->customer_name ?? ''; // $masterBox = WireMasterPacking::where('plant_id', $plant) // ->where('wire_packing_number', $pallet) // ->distinct('customer_po') // ->count('customer_po'); // $pallets = WireMasterPacking::where('plant_id', $plant) // ->select('wire_packing_number', 'updated_at') // ->distinct('wire_packing_number') // ->orderBy('wire_packing_number') // ->orderBy('updated_at', 'asc') // ->get() // ->pluck('wire_packing_number') // ->values(); // $currentPalletNo = $pallets->search($pallet) + 1; // $totalBoxes = WireMasterPacking::where('plant_id', $plant) // // ->where('wire_packing_number', $pallet) // ->distinct() // ->count('customer_po'); // $boxLabel = $currentPalletNo . '/' . $totalBoxes; $totalBoxes = WireMasterPacking::where('plant_id', $plant) ->where('customer_po_master_id', $customerId) ->distinct('wire_packing_number') ->count('wire_packing_number'); $completedPallets = WireMasterPacking::where('plant_id', $plant) ->where('customer_po_master_id', $customerId) ->select('wire_packing_number') ->groupBy('wire_packing_number') ->havingRaw( 'COUNT(*) = COUNT(CASE WHEN wire_packing_status = ? THEN 1 END)', ['Completed'] ) ->orderBy('wire_packing_number') ->pluck('wire_packing_number') ->values(); $index = $completedPallets->search($pallet); $currentPalletNo = ($index !== false) ? $index + 1 : 0; $boxLabel = $currentPalletNo . '/' . $totalBoxes; // $completedPallets = WireMasterPacking::where('plant_id', $plant) // ->select('wire_packing_number') // ->groupBy('wire_packing_number') // ->havingRaw('COUNT(*) = COUNT(CASE WHEN wire_packing_status = ? THEN 1 END)', ['Completed']) // ->orderBy('wire_packing_number') // ->pluck('wire_packing_number') // ->values(); // $currentPalletNo = $completedPallets->search($pallet) != false // ? $completedPallets->search($pallet) + 1 // : 0; // $boxLabel = $currentPalletNo . '/' . $totalBoxes; $grossWeight = $items->sum('weight'); $widthPt = 85 * 2.83465; // 85mm → points $heightPt = 100 * 2.83465; // 100mm → points $plantName = Plant::where('id', $plant)->value('name'); $plantAddress = Plant::where('id', $plant)->value('address'); $pdf = Pdf::loadView('pdf.wire-pallet', [ 'product' => 'Submersible Winding Wire', 'plantName' => $plantName, 'plantAddress' => $plantAddress, 'monthYear' => now()->format('M-y'), 'branch' => '', 'customerCode' => $customerCode, 'customerName' => $customerName, 'masterBox' => $boxLabel, 'items' => $items, 'grossWeight' => $grossWeight, 'netWeight' => $grossWeight - 3.05, 'pallet' => $pallet, ])->setPaper([0, 0, $widthPt, $heightPt], 'portrait'); return $pdf->stream("Pallet-{$pallet}.pdf"); // $pdfPath = storage_path("app/public/Pallet-{$pallet}.pdf"); // $pdf->save($pdfPath); // $printerName = 'Tsc'; // $output = []; // $returnVar = 0; // exec("lp -d {$printerName} " . escapeshellarg($pdfPath), $output, $returnVar); // if ($returnVar == 0) { // return response()->json([ // 'status' => 'success', // 'message' => "PDF sent to printer $printerName successfully." // ]); // } else { // return response()->json([ // 'status' => 'error', // 'message' => "Failed to send PDF to printer $printerName.", // 'output' => $output, // 'code' => $returnVar // ], 500); // } } /** * Store a newly created resource in storage. */ // public function print(Request $request, $pallet, $plant) // { // $customerId = $request->query('customer'); // // $customerName = $request->query('customer_name'); // // $items = WireMasterPacking::with('item') // // ->where('plant_id', $plant) // // ->where('wire_packing_number', $pallet) // // ->get() // // ->groupBy('item_id') // // ->map(function ($rows) { // // $first = $rows->first(); // // return (object) [ // // 'code' => $first->item->code, // // 'description' => $first->item->description, // // 'box_count' => $rows->count(), // // 'weight' => $rows->sum('weight'), // // ]; // // }) // // ->values(); // $items = WireMasterPacking::with('item') // ->where('plant_id', $plant) // ->where('wire_packing_number', $pallet) // ->get() // ->map(function ($row) { // return (object) [ // 'code' => $row->item->code, // 'description' => $row->item->description, // 'box_count' => 1, // each row = one box // 'weight' => $row->weight, // ]; // }); // $masterBox = WireMasterPacking::where('plant_id', $plant) // ->where('wire_packing_number', $pallet) // ->value('customer_po_master_id'); // $customer = CustomerPoMaster::find($masterBox); // $customerCode = $customer->customer_po ?? ''; // $customerName = $customer->customer_name ?? ''; // // $masterBox = WireMasterPacking::where('plant_id', $plant) // // ->where('wire_packing_number', $pallet) // // ->distinct('customer_po') // // ->count('customer_po'); // // $pallets = WireMasterPacking::where('plant_id', $plant) // // ->select('wire_packing_number', 'updated_at') // // ->distinct('wire_packing_number') // // ->orderBy('wire_packing_number') // // ->orderBy('updated_at', 'asc') // // ->get() // // ->pluck('wire_packing_number') // // ->values(); // // $currentPalletNo = $pallets->search($pallet) + 1; // // $totalBoxes = WireMasterPacking::where('plant_id', $plant) // // // ->where('wire_packing_number', $pallet) // // ->distinct() // // ->count('customer_po'); // // $boxLabel = $currentPalletNo . '/' . $totalBoxes; // $totalBoxes = WireMasterPacking::where('plant_id', $plant) // ->where('customer_po_master_id', $customerId) // ->distinct('wire_packing_number') // ->count('wire_packing_number'); // $completedPallets = WireMasterPacking::where('plant_id', $plant) // ->where('customer_po_master_id', $customerId) // ->select('wire_packing_number') // ->groupBy('wire_packing_number') // ->havingRaw( // 'COUNT(*) = COUNT(CASE WHEN wire_packing_status = ? THEN 1 END)', // ['Completed'] // ) // ->orderBy('wire_packing_number') // ->pluck('wire_packing_number') // ->values(); // $index = $completedPallets->search($pallet); // $currentPalletNo = ($index !== false) ? $index + 1 : 0; // $boxLabel = $currentPalletNo . '/' . $totalBoxes; // // $completedPallets = WireMasterPacking::where('plant_id', $plant) // // ->select('wire_packing_number') // // ->groupBy('wire_packing_number') // // ->havingRaw('COUNT(*) = COUNT(CASE WHEN wire_packing_status = ? THEN 1 END)', ['Completed']) // // ->orderBy('wire_packing_number') // // ->pluck('wire_packing_number') // // ->values(); // // $currentPalletNo = $completedPallets->search($pallet) != false // // ? $completedPallets->search($pallet) + 1 // // : 0; // // $boxLabel = $currentPalletNo . '/' . $totalBoxes; // $grossWeight = $items->sum('weight'); // $widthPt = 85 * 2.83465; // 85mm → points // $heightPt = 100 * 2.83465; // 100mm → points // $plantName = Plant::where('id', $plant)->value('name'); // $plantAddress = Plant::where('id', $plant)->value('address'); // // Generate PDF with mPDF // $mpdf = new Mpdf([ // 'format' => [85, 100], // 'margin_left' => 0, // 'margin_right' => 0, // 'margin_top' => 0, // 'margin_bottom' => 0, // ]); // $html = view('pdf.wire-pallet', [ // 'product' => 'Submersible Winding Wire', // 'plantName' => $plantName, // 'plantAddress' => $plantAddress, // 'monthYear' => now()->format('M-y'), // 'customerCode' => $customerCode, // 'customerName' => $customerName, // 'masterBox' => $pallet, // 'items' => $items, // 'grossWeight' => $grossWeight, // 'netWeight' => $grossWeight - 3.05, // 'pallet' => $pallet, // ])->render(); // $mpdf->WriteHTML($html); // return $mpdf->Output("Pallet-{$pallet}.pdf", 'I'); // 'I' = inline view in browser // } public function store(Request $request) { // } /** * Display the specified resource. */ public function show(string $id) { // } /** * Update the specified resource in storage. */ public function update(Request $request, string $id) { // } /** * Remove the specified resource from storage. */ public function destroy(string $id) { // } }