ranjith-dev #268
@@ -2,7 +2,10 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Filament\Facades\Filament;
|
||||||
|
use Filament\Notifications\Notification;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
use Mpdf\Mpdf;
|
use Mpdf\Mpdf;
|
||||||
use Mpdf\QrCode\Output;
|
use Mpdf\QrCode\Output;
|
||||||
use Mpdf\QrCode\QrCode;
|
use Mpdf\QrCode\QrCode;
|
||||||
@@ -73,6 +76,168 @@ class PalletController extends Controller
|
|||||||
// $mpdf->Output('qr-label.pdf', 'I');
|
// $mpdf->Output('qr-label.pdf', 'I');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function downloadReprintProcess($plant,$item,$process_order,$coil_number,$name)
|
||||||
|
{
|
||||||
|
// dd($plant,$item,$process_order,$coil_number);
|
||||||
|
|
||||||
|
$processOrder = \App\Models\ProcessOrder::where('plant_id', $plant)
|
||||||
|
->where('item_id', $item)
|
||||||
|
->where('process_order', $process_order)
|
||||||
|
->where('coil_number', $coil_number)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if (!$processOrder) {
|
||||||
|
return response()->json(['error' => 'Process order not found'], 404);
|
||||||
|
}
|
||||||
|
|
||||||
|
$receivedQuantity = $processOrder->received_quantity;
|
||||||
|
$machineName = $processOrder->machine_name;
|
||||||
|
$user = $processOrder->created_by;
|
||||||
|
|
||||||
|
$icode = \App\Models\Item::find($item);
|
||||||
|
|
||||||
|
$pCode = \App\Models\Plant::find($plant);
|
||||||
|
|
||||||
|
$plCode = $pCode->code;
|
||||||
|
|
||||||
|
if (!$plCode) {
|
||||||
|
Notification::make()
|
||||||
|
->title('Unknown Plant')
|
||||||
|
->body('Plant not found.')
|
||||||
|
->warning()
|
||||||
|
->send();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$icode) {
|
||||||
|
Notification::make()
|
||||||
|
->title('Unknown Item')
|
||||||
|
->body('Item not found.')
|
||||||
|
->warning()
|
||||||
|
->send();
|
||||||
|
}
|
||||||
|
|
||||||
|
$itCode = $icode->code;
|
||||||
|
|
||||||
|
$itemAgaPlant = \App\Models\Item::where('code', $itCode)
|
||||||
|
->where('plant_id', $plant)
|
||||||
|
->first();
|
||||||
|
|
||||||
|
|
||||||
|
if (!$itemAgaPlant) {
|
||||||
|
Notification::make()
|
||||||
|
->title('Unknown Item')
|
||||||
|
->body("Item not found against plant code $plCode.")
|
||||||
|
->warning()
|
||||||
|
->send();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$itemDescription = $itemAgaPlant->description;
|
||||||
|
}
|
||||||
|
|
||||||
|
$nowDT = now()->format('d-m-Y H:i:s');
|
||||||
|
|
||||||
|
// Build QR content
|
||||||
|
$qrContent = "{$receivedQuantity}|{$itCode}|{$process_order}-{$coil_number}";
|
||||||
|
|
||||||
|
$qrCode = new QrCode($qrContent);
|
||||||
|
$output = new Output\Png();
|
||||||
|
$qrBinary = $output->output($qrCode, 100);
|
||||||
|
$qrBase64 = base64_encode($qrBinary);
|
||||||
|
|
||||||
|
return '
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<style>
|
||||||
|
@page {
|
||||||
|
size: 60mm 30mm;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 60mm;
|
||||||
|
height: 30mm;
|
||||||
|
font-size: 9pt;
|
||||||
|
font-family: "DejaVu Sans Condensed", "FreeSans", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sticker-table {
|
||||||
|
width: 60mm;
|
||||||
|
height: 30mm;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-cell {
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: top;
|
||||||
|
font-size: 9pt;
|
||||||
|
padding-left: 2mm;
|
||||||
|
padding-top: 6mm;
|
||||||
|
font-weight: bold;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
width: 40mm; /* Left side for text */
|
||||||
|
}
|
||||||
|
|
||||||
|
.qr-cell {
|
||||||
|
width: 20mm; /* Right side for QR */
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lbl {
|
||||||
|
display: inline-block;
|
||||||
|
width: 11mm;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-cell b {
|
||||||
|
font-size: 12pt;
|
||||||
|
font-weight: bold; /* bold value, same font size */
|
||||||
|
}
|
||||||
|
|
||||||
|
img.qr {
|
||||||
|
width: 12mm;
|
||||||
|
height: 12mm;
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<table class="sticker-table">
|
||||||
|
<tr>
|
||||||
|
<td class="text-cell">
|
||||||
|
<span class="lbl">D/T</span>: ' . htmlspecialchars($nowDT) . '<br>
|
||||||
|
<span class="lbl">OP ID</span>: ' . htmlspecialchars($user) . '<br>
|
||||||
|
<span class="lbl">PO NO</span>: ' . htmlspecialchars($process_order) . '<br>
|
||||||
|
<span class="lbl">M/C</span>: ' . htmlspecialchars($itCode) . '<br>
|
||||||
|
<span class="lbl">DES</span>: ' . htmlspecialchars($itemDescription) . '<br>
|
||||||
|
<span class="lbl">WGT</span>: <b>' . htmlspecialchars($receivedQuantity) . ' KGS</b><br>
|
||||||
|
<span class="lbl">MAC</span>: ' . htmlspecialchars($machineName) . '
|
||||||
|
</td>
|
||||||
|
<td class="qr-cell">
|
||||||
|
<img class="qr" src="data:image/png;base64,' . $qrBase64 . '" alt="QR" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.onload = function () {
|
||||||
|
window.print();
|
||||||
|
setTimeout(function () { window.close(); }, 500);
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
';
|
||||||
|
}
|
||||||
|
|
||||||
public function downloadQrPdf($palletNo)
|
public function downloadQrPdf($palletNo)
|
||||||
{
|
{
|
||||||
$qrCode = new QrCode($palletNo);
|
$qrCode = new QrCode($palletNo);
|
||||||
|
|||||||
Reference in New Issue
Block a user