Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled
154 lines
4.3 KiB
PHP
154 lines
4.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Plant;
|
|
use App\Models\ProductionOrder;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Http\Request;
|
|
// use SimpleSoftwareIO\QrCode\Facades\QrCode;
|
|
use Illuminate\Support\Facades\Log;
|
|
use Mpdf\QrCode\QrCode;
|
|
use Mpdf\QrCode\Output;
|
|
use Barryvdh\DomPDF\Facade\Pdf;
|
|
|
|
class ProductionOrderController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*/
|
|
public function index()
|
|
{
|
|
//
|
|
}
|
|
|
|
public function print($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);
|
|
$qrBase64 = base64_encode($qrBinary);
|
|
|
|
$stickers[] = [
|
|
'serial' => $serial,
|
|
'qr' => 'data:image/png;base64,' . $qrBase64,
|
|
'production_order' => $production_order,
|
|
'description' => $itemDes ?? ''
|
|
];
|
|
}
|
|
|
|
$pdf = Pdf::loadView('production-orders.print', compact('stickers'))
|
|
->setPaper([0, 0, 170, 40]);
|
|
|
|
return $pdf->stream('stickers.pdf');
|
|
}
|
|
}
|
|
|
|
public function printpanel($production_order, $plantCode){
|
|
$order = ProductionOrder::where('production_order', $production_order)->first();
|
|
|
|
$wareHouseNo = Plant::where('code', $plantCode)->first();
|
|
|
|
$wareNo = $wareHouseNo->warehouse_number;
|
|
|
|
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 ?? '';
|
|
$now = Carbon::now();
|
|
$year = $now->format('y');
|
|
$month = $now->format('m');
|
|
|
|
$stickers = [];
|
|
|
|
for ($i = $fromSerial; $i <= $toSerial; $i++)
|
|
{
|
|
|
|
$serial = str_pad($i, 6, '0', STR_PAD_LEFT);
|
|
$serialCount = substr(str_pad($i, 6, '0', STR_PAD_LEFT), -6);
|
|
|
|
$qrData = $plantCode . $wareNo . '/' . $itemCode . '/' . $year.$month . '/' . $serialCount;
|
|
|
|
$panel = $plantCode . $wareNo . '/' . $itemCode . '/' . $year.$month . '/' . $serialCount;
|
|
|
|
$qrCode = new QrCode($qrData);
|
|
$output = new Output\Png;
|
|
$qrBinary = $output->output($qrCode, 100);
|
|
$qrBase64 = base64_encode($qrBinary);
|
|
|
|
$stickers[] = [
|
|
'serial' => $panel,
|
|
'qr' => 'data:image/png;base64,' . $qrBase64,
|
|
'production_order' => $production_order,
|
|
'description' => $itemDes ?? ''
|
|
];
|
|
}
|
|
|
|
$pdf = Pdf::loadView('production-orders.printpanel', compact('stickers'))
|
|
->setPaper([0, 0, 113.39, 113.39]);
|
|
|
|
return $pdf->stream('stickers.pdf');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Store a newly created resource in storage.
|
|
*/
|
|
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)
|
|
{
|
|
//
|
|
}
|
|
}
|