1 Commits

Author SHA1 Message Date
2599963006 Update dependency barryvdh/laravel-debugbar to v4
Some checks failed
renovate/artifacts Artifact file update failure
Gemini PR Review / Gemini PR Review (pull_request) Failing after 18s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Successful in 15s
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (pull_request) Successful in 14s
Laravel Larastan / larastan (pull_request) Failing after 2m48s
Laravel Pint / pint (pull_request) Failing after 4m16s
2026-06-07 00:01:27 +00:00
12 changed files with 116 additions and 196 deletions

View File

@@ -36,18 +36,12 @@ class ImportTransitExporter extends Exporter
->label('SHIPPER INVOICE'), ->label('SHIPPER INVOICE'),
ExportColumn::make('shipper_invoice_date') ExportColumn::make('shipper_invoice_date')
->label('SHIPPER INVOICE DATE'), ->label('SHIPPER INVOICE DATE'),
ExportColumn::make('inv_value')
->label('Inv Value'),
ExportColumn::make('freight_charge')
->label('Freight Charge'),
ExportColumn::make('customs_agent_name') ExportColumn::make('customs_agent_name')
->label('CUSTOMS AGENT NAME'), ->label('CUSTOMS AGENT NAME'),
ExportColumn::make('eta_date') ExportColumn::make('eta_date')
->label('ETA DATE'), ->label('ETA DATE'),
ExportColumn::make('status') ExportColumn::make('status')
->label('STATUS'), ->label('STATUS'),
ExportColumn::make('insurance_status')
->label('Insurance Status'),
ExportColumn::make('delivery_location') ExportColumn::make('delivery_location')
->label('DELIVERY LOCATION'), ->label('DELIVERY LOCATION'),
ExportColumn::make('etd_date') ExportColumn::make('etd_date')

View File

@@ -75,7 +75,7 @@ class ImportTransitImporter extends Importer
->label('Status'), ->label('Status'),
ImportColumn::make('insurance_status') ImportColumn::make('insurance_status')
->exampleHeader('Insurance Status') ->exampleHeader('Insurance Status')
->example('Yes') ->example('Receipted')
->label('Insurance Status'), ->label('Insurance Status'),
ImportColumn::make('delivery_location') ImportColumn::make('delivery_location')
->exampleHeader('Delivery Location') ->exampleHeader('Delivery Location')
@@ -176,7 +176,6 @@ class ImportTransitImporter extends Importer
return ImportTransit::updateOrCreate([ return ImportTransit::updateOrCreate([
'cri_rfq_number' => $criRfqNumber, 'cri_rfq_number' => $criRfqNumber,
'shipper_invoice' => $shipperInvoice,
], ],
[ [
'mail_received_date' => $this->formatDate($mailRecDate), 'mail_received_date' => $this->formatDate($mailRecDate),
@@ -188,6 +187,7 @@ class ImportTransitImporter extends Importer
'requester' => $requester, 'requester' => $requester,
'shipper' => $shipper, 'shipper' => $shipper,
'shipper_location' => $shipperLocation, 'shipper_location' => $shipperLocation,
'shipper_invoice' => $shipperInvoice,
'inv_value' => $invValue, 'inv_value' => $invValue,
'freight_charge' => $freightCharge, 'freight_charge' => $freightCharge,
'custom_agent_name' => $customsAgentname, 'custom_agent_name' => $customsAgentname,

View File

@@ -54,17 +54,6 @@ class GateOutEntry extends Page implements HasForms
$entry = VisitorEntry::where('register_id', $gatePass)->first(); $entry = VisitorEntry::where('register_id', $gatePass)->first();
if ($entry) { if ($entry) {
if (!empty($entry->out_time)) {
Notification::make()
->title('Already Exited')
->body('Gate pass has already been processed. Out time was already punched.')
->warning()
->send();
$this->filters['scan_out_gate_pass'] = '';
return;
}
else{
$entry->out_time = now(); $entry->out_time = now();
$entry->save(); $entry->save();
@@ -74,7 +63,6 @@ class GateOutEntry extends Page implements HasForms
->success() ->success()
->send(); ->send();
$this->filters['scan_out_gate_pass'] = ''; $this->filters['scan_out_gate_pass'] = '';
}
} else { } else {
Notification::make() Notification::make()
->title('Invalid Gate Pass') ->title('Invalid Gate Pass')

View File

@@ -3507,17 +3507,6 @@ class QualityValidationResource extends Resource
return; return;
} }
if (strpos($state, '|') !== false) {
$state = explode('|', $state)[0];
if ($state != $expectedValue){
$set('part_validation1_error', 'Invalid input for part validation 1.');
}
else{
$set('part_validation1', $state);
$set('part_validation1_error', null);
}
}
if ($state == $expectedValue) { if ($state == $expectedValue) {
$set('part_validation1_error', null); $set('part_validation1_error', null);
} else { } else {

View File

@@ -244,26 +244,16 @@ class VisitorEntryResource extends Resource
->alignCenter() ->alignCenter()
->searchable() ->searchable()
->sortable(), ->sortable(),
Tables\Columns\TextColumn::make('mobile_number')
->label('Visitor Mobile Number')
->alignCenter()
->searchable()
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('name') Tables\Columns\TextColumn::make('name')
->label('Visitor Name') ->label('Visitor Name')
->sortable() ->sortable()
->alignCenter() ->alignCenter()
->searchable(), ->searchable(),
Tables\Columns\TextColumn::make('company') Tables\Columns\TextColumn::make('mobile_number')
->label('Visitor Company') ->label('Visitor Mobile Number')
->sortable()
->alignCenter()
->searchable(),
Tables\Columns\TextColumn::make('employeeMaster.plant.name')
->label('Visited Plant')
->alignCenter() ->alignCenter()
->searchable() ->searchable()
->searchable()
->sortable(), ->sortable(),
Tables\Columns\TextColumn::make('employeeMaster.name') Tables\Columns\TextColumn::make('employeeMaster.name')
->label('Recipient Name') ->label('Recipient Name')
@@ -285,11 +275,6 @@ class VisitorEntryResource extends Resource
->searchable() ->searchable()
->alignCenter() ->alignCenter()
->sortable(), ->sortable(),
Tables\Columns\TextColumn::make('purpose_of_visit')
->label('Purpose of Visit')
->searchable()
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('in_time') Tables\Columns\TextColumn::make('in_time')
->label('In Time') ->label('In Time')
->searchable() ->searchable()
@@ -636,5 +621,4 @@ class VisitorEntryResource extends Resource
SoftDeletingScope::class, SoftDeletingScope::class,
]); ]);
} }
} }

View File

@@ -22,14 +22,13 @@ class CreateVisitorEntry extends CreateRecord
public function processMobile($mobile) public function processMobile($mobile)
{ {
$visitor = VisitorEntry::where('mobile_number', $mobile)->latest()->first(); $visitor = VisitorEntry::where('mobile_number', $mobile)->latest()->first();
$registerId = $this->form->getState()['register_id'] ?? '';
if ($visitor) { if ($visitor) {
$employee = EmployeeMaster::where('id', $visitor->employee_master_id)->first(); $employee = EmployeeMaster::where('id', $visitor->employee_master_id)->first();
$this->form->fill([ $this->form->fill([
'register_id' => $registerId, 'register_id' => $visitor->register_id ?? '',
'mobile_number' => $mobile ?? '', 'mobile_number' => $mobile ?? '',
'name' => $visitor->name ?? '', 'name' => $visitor->name ?? '',
'company' => $visitor->company ?? '', 'company' => $visitor->company ?? '',
@@ -40,18 +39,19 @@ class CreateVisitorEntry extends CreateRecord
]); ]);
} }
else { else {
$this->form->fill([
'register_id' => $registerId,
'mobile_number' => $mobile,
'name' => '',
'company' => '',
'type' => '',
'department' => '',
'employee_master_id' => null,
'code' => '',
]);
return; $registerId = $this->form->getState()['register_id'] ?? '';
$this->form->fill([
'register_id' => $registerId ?? '',
'mobile_number' => $mobile ?? '',
'name' => $visitor->name ?? '',
'company' => $visitor->company ?? '',
'type' => $visitor->type ?? '',
'department' => $employee->department ?? '',
'employee_master_id' => $visitor->employee_master_id->name ?? '',
'code' => $employee->code ?? '',
]);
} }
} }

View File

@@ -35,7 +35,7 @@
"tpetry/laravel-postgresql-enhanced": "^2.3" "tpetry/laravel-postgresql-enhanced": "^2.3"
}, },
"require-dev": { "require-dev": {
"barryvdh/laravel-debugbar": "^3.15", "barryvdh/laravel-debugbar": "^4.0",
"barryvdh/laravel-ide-helper": "^3.5", "barryvdh/laravel-ide-helper": "^3.5",
"beyondcode/laravel-dump-server": "^2.1", "beyondcode/laravel-dump-server": "^2.1",
"fakerphp/faker": "^1.23", "fakerphp/faker": "^1.23",

View File

@@ -41,13 +41,6 @@
background-color: #f3f4f6; background-color: #f3f4f6;
} }
.status-column {
text-align: left !important;
white-space: normal !important;
min-width: 250px;
width: 250px;
vertical-align: top;
}
.footer { .footer {
text-align: center; text-align: center;
font-size: 13px; font-size: 13px;
@@ -71,6 +64,7 @@
<tr> <tr>
<th>No</th> <th>No</th>
<th>CRI RFQ Number</th> <th>CRI RFQ Number</th>
<th>Ref Number</th>
<th>Requestor</th> <th>Requestor</th>
<th>Shipper</th> <th>Shipper</th>
<th>Shipper Location</th> <th>Shipper Location</th>
@@ -91,7 +85,7 @@
<td>{{ $row['cri_rfq_number'] }}</td> <td>{{ $row['cri_rfq_number'] }}</td>
{{-- <td>{{ $row['mail_received_date'] }}</td> --}} {{-- <td>{{ $row['mail_received_date'] }}</td> --}}
{{-- <td>{{ \Carbon\Carbon::parse($row['mail_received_date'])->format('Y-m-d') }}</td> --}} {{-- <td>{{ \Carbon\Carbon::parse($row['mail_received_date'])->format('Y-m-d') }}</td> --}}
{{-- <td>{{ $row['pricol_ref_number'] }}</td> --}} <td>{{ $row['pricol_ref_number'] }}</td>
<td>{{ $row['requester'] }}</td> <td>{{ $row['requester'] }}</td>
<td>{{ $row['shipper'] }}</td> <td>{{ $row['shipper'] }}</td>
<td>{{ $row['shipper_location'] }}</td> <td>{{ $row['shipper_location'] }}</td>
@@ -101,10 +95,7 @@
<td>{{ $row['customs_agent_name'] }}</td> <td>{{ $row['customs_agent_name'] }}</td>
{{-- <td>{{ $row['eta_date'] }}</td> --}} {{-- <td>{{ $row['eta_date'] }}</td> --}}
<td>{{ \Carbon\Carbon::parse($row['eta_date'])->format('Y-m-d') }}</td> <td>{{ \Carbon\Carbon::parse($row['eta_date'])->format('Y-m-d') }}</td>
{{-- <td>{{ $row['status'] }}</td> --}} <td>{{ $row['status'] }}</td>
<td class="status-column">
{{ $row['status'] }}
</td>
<td>{{ $row['delivery_location'] }}</td> <td>{{ $row['delivery_location'] }}</td>
{{-- <td>{{ $row['etd_date'] }}</td> --}} {{-- <td>{{ $row['etd_date'] }}</td> --}}
<td>{{ \Carbon\Carbon::parse($row['etd_date'])->format('Y-m-d') }}</td> <td>{{ \Carbon\Carbon::parse($row['etd_date'])->format('Y-m-d') }}</td>

View File

@@ -1,7 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8">
<style> <style>
@page { @page {
margin: 0; margin: 0;

View File

@@ -1,7 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8">
<style> <style>
@page { @page {
margin: 0; margin: 0;

View File

@@ -1,7 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8">
<style> <style>
@page { @page {
margin: 0; margin: 0;

View File

@@ -41,26 +41,32 @@
.badge-header { .badge-header {
background: #1a1a2e; background: #1a1a2e;
color: #fff; color: #fff;
padding: 1.5mm 2mm; text-align: center;
padding: 2mm 2mm 1.5mm;
font-size: 8pt; font-size: 8pt;
font-weight: bold; font-weight: bold;
letter-spacing: 1px; letter-spacing: 1px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
flex-shrink: 0;
} }
.badge-header .type { font-size: 9pt; letter-spacing: 2px; } .badge-header .type {
.badge-header .badge-id { font-size: 7pt; opacity: 0.85; } font-size: 9pt;
letter-spacing: 2px;
}
.badge-header .badge-id {
font-size: 7pt;
opacity: 0.85;
}
/* ── Body ── */ /* ── Body ── */
.badge-body { .badge-body {
display: flex; display: flex;
flex: 1; flex: 1;
padding: 1.5mm 2mm; padding: 2mm;
gap: 2mm; gap: 2mm;
overflow: hidden;
} }
/* ── Fields (left) ── */ /* ── Fields (left) ── */
@@ -68,104 +74,82 @@
flex: 1; flex: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
overflow: hidden; gap: 1.2mm;
} }
.field-row { .field-row {
display: grid; display: grid;
grid-template-columns: 16mm 3mm 1fr; grid-template-columns: 16mm 3mm 1fr;
line-height: 1.25; line-height: 1.3;
margin-bottom: 0.6mm; margin-bottom: 0.7mm;
align-items: start;
} }
.field-label { .field-label {
color: #000; color: #000; /* was #555 — now pure black */
font-size: 6.5pt; font-size: 6.5pt;
font-weight: 700; font-weight: 700; /* was normal — now bold */
white-space: nowrap;
} }
.field-colon { .field-colon {
color: #000; color: #000; /* was #555 — now pure black */
font-size: 6.5pt; font-size: 6.5pt;
font-weight: 700; font-weight: 700; /* added bold */
text-align: center; text-align: center;
} }
.field-value { .field-value {
font-weight: 700; font-weight: 700; /* was 600 — now fully bold */
font-size: 6.5pt; font-size: 6.5pt;
color: #000; color: #000; /* was #111 — now pure black */
/* Prevent wrapping — truncate with ellipsis if too long */
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
} }
/* ── Photo column (right) ── */ /* ── Photo (right) ── */
.badge-photo { .badge-photo {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
gap: 1mm;
width: 18mm; width: 18mm;
flex-shrink: 0;
gap: 0.5mm;
} }
.badge-photo img { .badge-photo img {
width: 16mm; width: 16mm;
height: 16mm; height: 18mm;
object-fit: cover; object-fit: cover;
border: 1px solid #000; border: 1px solid #ccc;
} }
.badge-photo .no-photo { .badge-photo .no-photo {
width: 16mm; width: 16mm;
height: 16mm; height: 18mm;
border: 1.5px dashed #000; border: 1.5px dashed #000; /* was #aaa — darker border */
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
font-size: 6pt; font-size: 6pt; /* slightly larger */
color: #000; color: #000; /* was #aaa */
font-weight: 700; font-weight: 700;
text-align: center; text-align: center;
} }
.host-sign { .host-sign {
font-size: 6pt; font-size: 6pt; /* was 5.5pt — slightly larger */
color: #000; color: #000; /* was #555 — now pure black */
font-weight: 700; font-weight: 700; /* added bold */
text-align: center; text-align: center;
border-top: 1px solid #000; border-top: 1px solid #000; /* was 0.5px #aaa — darker line */
padding-top: 0.5mm; padding-top: 0.5mm;
width: 100%; width: 100%;
} }
/* ── QR code ── */
.visitor-qr {
margin-top: 1mm;
width: 18mm;
display: flex;
justify-content: center;
}
.visitor-qr svg {
width: 16mm !important;
height: 16mm !important;
display: block;
}
/* ── Footer ── */ /* ── Footer ── */
.badge-footer { .badge-footer {
border-top: 1px solid #000; border-top: 1px solid #000; /* was 0.5px #ddd — darker line */
padding: 0.8mm 2mm; padding: 1mm 2mm;
text-align: right; text-align: right;
font-size: 6pt; font-size: 6pt; /* was 5.5pt — slightly larger */
color: #000; color: #000; /* was #888 — now pure black */
font-weight: 700; font-weight: 700; /* added bold */
flex-shrink: 0;
} }
@media print { @media print {
@@ -174,9 +158,9 @@
} }
</style> </style>
</head> </head>
<body> <body onload="window.print()">
{{-- ── Print / Close buttons (screen only) ── --}} {{-- ── Print button (visible on screen only, hidden when printing) ── --}}
<div class="no-print" style="padding: 8px; text-align:center; background:#f3f4f6;"> <div class="no-print" style="padding: 8px; text-align:center; background:#f3f4f6;">
<button onclick="window.print()" style="padding:6px 18px; background:#1a1a2e; color:#fff; border:none; border-radius:6px; cursor:pointer; font-size:13px;"> <button onclick="window.print()" style="padding:6px 18px; background:#1a1a2e; color:#fff; border:none; border-radius:6px; cursor:pointer; font-size:13px;">
🖨️ Print Badge 🖨️ Print Badge
@@ -191,7 +175,7 @@
{{-- Header --}} {{-- Header --}}
<div class="badge-header"> <div class="badge-header">
<span class="type">{{ strtoupper($visitor->type ?? 'VISITOR') }}</span> <span class="type">{{ strtoupper($visitor->type ?? 'VISITOR') }}</span>
<span class="badge-id">#{{ $visitor->register_id ?? str_pad($visitor->id, 5, '0', STR_PAD_LEFT) }}</span> <span class="badge-id">#{{ str_pad($visitor->register_id, 5, '0', STR_PAD_LEFT) }}</span>
</div> </div>
{{-- Body --}} {{-- Body --}}
@@ -236,26 +220,25 @@
</div> </div>
</div> </div>
{{-- Right: photo + host sign + QR --}} {{-- Right: photo + host sign --}}
<div class="badge-photo"> <div class="badge-photo">
@if($photoUrl) @if($photoUrl)
<img src="{{ $photoUrl }}" alt="Visitor Photo" /> <img src="{{ $photoUrl }}" alt="Visitor Photo" />
@else @else
<div class="no-photo">No Photo</div> <div class="no-photo">No Photo</div>
@endif @endif
<div class="host-sign">Host Sign</div> <div class="host-sign">Host Sign</div>
<div class="visitor-qr" style="margin-top:2mm;">
{{-- QR Code high res, with quiet zone and high error correction --}} {{-- {!! QrCode::size(25)
->margin(0)
->generate($visitor->register_id) !!} --}}
@if(!empty($visitor->register_id)) @if(!empty($visitor->register_id))
<div class="visitor-qr"> {!! QrCode::size(35)
{!! QrCode::size(300) ->margin(0)
->margin(2)
->errorCorrection('H')
->generate((string) $visitor->register_id) !!} ->generate((string) $visitor->register_id) !!}
</div>
@endif @endif
</div> </div>
</div>
</div> </div>
@@ -264,11 +247,5 @@
</div> </div>
<script>
window.addEventListener('load', function () {
setTimeout(function () { window.print(); }, 300);
});
</script>
</body> </body>
</html> </html>