diff --git a/app/Livewire/SerialValidationData.php b/app/Livewire/SerialValidationData.php
index 057d981..e27d919 100644
--- a/app/Livewire/SerialValidationData.php
+++ b/app/Livewire/SerialValidationData.php
@@ -2,20 +2,24 @@
namespace App\Livewire;
+use App\Models\SerialValidation;
use App\Models\StickerMaster;
use Filament\Facades\Filament;
use Filament\Notifications\Notification;
use Livewire\Component;
-use App\Models\SerialValidation;
-
+use Livewire\WithPagination;
class SerialValidationData extends Component
{
+
+ use WithPagination;
+
public $invoiceData = [];
public $plantId = 0;
public string $invoiceNumber = '';
+
public string $serialNumber = '';
public bool $completedInvoice = false;
@@ -30,22 +34,22 @@ class SerialValidationData extends Component
public bool $showCapacitorInput = false;
- // protected $listeners = ['refreshInvoiceData' => 'loadData',];
+ // protected $listeners = ['refreshInvoiceData' => 'loadData',];
protected $listeners = [
'refreshCompletedInvoice' => 'loadCompletedData',
'refreshEmptyInvoice' => 'loadEmptyData',
'refreshInvoiceData' => 'loadData',
'refreshMaterialInvoiceData' => 'loadMaterialData',
- 'focusCapacitor' => 'focusCapacitorInput'
- //'openCapacitorModal' => 'showCapacitorInputBox',
+ 'focusCapacitor' => 'focusCapacitorInput',
+ // 'openCapacitorModal' => 'showCapacitorInputBox',
];
public $capacitorInput = '';
public $panel_box_supplier;
- public $panel_box_item_code;
+ public $panel_box_code;
public $panel_box_serial_number;
@@ -96,43 +100,155 @@ class SerialValidationData extends Component
// $this->showCapacitorInput = false;
}
- public function loadData($invoiceNumber, $plantId)
+ // public function loadData($invoiceNumber, $plantId)
+ // {
+ // $this->plantId = $plantId;
+ // $this->invoiceNumber = $invoiceNumber;
+ // $this->completedInvoice = false;
+ // $this->isSerial = true;
+ // $this->emptyInvoice = false;
+ // $this->hasSearched = true;
+ // $this->materialInvoice = false;
+ // // $this->showCapacitorInput = false;
+
+ // // ->where('serial_number', '!=', '')
+ // $this->invoiceData = SerialValidation::where('invoice_number', $this->invoiceNumber)
+ // ->where('plant_id', $plantId)->where('scanned_status', null)
+ // ->get()
+ // ->map(function ($record) {
+ // return [
+ // 'sticker_master_id' => $record->sticker_master_id,
+ // 'serial_number' => $record->serial_number,
+ // 'motor_scanned_status' => $record->motor_scanned_status ?? '',
+ // 'pump_scanned_status' => $record->pump_scanned_status ?? '',
+ // 'capacitor_scanned_status' => $record->capacitor_scanned_status ?? '',
+ // 'scanned_status_set' => $record->scanned_status_set ?? '',
+ // 'scanned_status' => $record->scanned_status ?? '', //
+ // 'panel_box_code' => $record->panel_box_code ?? '',
+ // 'panel_box_supplier' => $record->panel_box_supplier ?? '',
+ // 'panel_box_serial_number' => $record->panel_box_serial_number ?? '',
+ // 'created_at' => $record->created_at,
+ // 'operator_id' => $record->operator_id,
+ // ];
+ // })
+ // ->toArray();
+
+ // // Loop through and replace 'code' using related StickerMaster > Item > code
+ // foreach ($this->invoiceData as &$row) {
+ // // $stickerMaster = \App\Models\StickerMaster::with('item')->find($row['sticker_master_id'] ?? null);
+ // $row['code'] = StickerMaster::with('item')->find($row['sticker_master_id'] ?? null)?->item?->code ?? 'N/A';
+ // }
+ // }
+
+ public function loadData($invoiceNumber, $plantId, $onCapFocus = false)
{
- $this->plantId = $plantId;
$this->invoiceNumber = $invoiceNumber;
+ $this->plantId = $plantId;
+
$this->completedInvoice = false;
$this->isSerial = true;
+ $this->onCapFocus = $onCapFocus;
$this->emptyInvoice = false;
$this->hasSearched = true;
$this->materialInvoice = false;
- // $this->showCapacitorInput = false;
- //->where('serial_number', '!=', '')
- $this->invoiceData = SerialValidation::where('invoice_number', $this->invoiceNumber)
- ->where('plant_id', $plantId)->where('scanned_status', null)
- ->get()
- ->map(function ($record) {
- return [
- 'sticker_master_id' => $record->sticker_master_id,
- 'serial_number' => $record->serial_number,
- 'motor_scanned_status' => $record->motor_scanned_status ?? '',
- 'pump_scanned_status' => $record->pump_scanned_status ?? '',
- 'capacitor_scanned_status' => $record->capacitor_scanned_status ?? '',
- 'scanned_status_set' => $record->scanned_status_set ?? '',
- 'scanned_status' => $record->scanned_status ?? '',
- 'panel_box_supplier' => $record->panel_box_supplier ?? '',
- 'panel_box_serial_number' => $record->panel_box_serial_number ?? '',
- 'created_at' => $record->created_at,
- 'operator_id' => $record->operator_id,
- ];
- })
- ->toArray();
+ $this->resetPage();
+ $this->packageCount = 0;
- //Loop through and replace 'code' using related StickerMaster > Item > code
- foreach ($this->invoiceData as &$row) {
- // $stickerMaster = \App\Models\StickerMaster::with('item')->find($row['sticker_master_id'] ?? null);
- $row['code'] = StickerMaster::with('item')->find($row['sticker_master_id'] ?? null)?->item?->code ?? 'N/A';
- }
+ $records = SerialValidation::with('stickerMasterRelation')
+ ->where('invoice_number', $this->invoiceNumber)
+ ->where('plant_id', $this->plantId)
+ ->get();
+
+ $this->packageCount = $records->sum(function ($record) {
+
+ $sm = $record->stickerMasterRelation;
+
+ if (! $sm) {
+ return 0;
+ }
+
+ $stickCount = 0;
+ $scannedCount = 0;
+
+ if (! empty($sm->panel_box_code)) {
+ $stickCount++;
+
+ if ($record->capacitor_scanned_status == 1) {
+ $scannedCount++;
+ }
+ }
+
+ // $sm->tube_sticker_motor == 1 || $sm->tube_sticker_pump == 1 || $sm->tube_sticker_pumpset == 1
+ if (! empty($sm->tube_sticker_motor) || ! empty($sm->tube_sticker_pump) || ! empty($sm->tube_sticker_pumpset)) {
+
+ if (! empty($sm->tube_sticker_motor)) {
+ $stickCount++;
+ if ($record->motor_scanned_status == 1) {
+ $scannedCount++;
+ }
+ }
+
+ // ($sm->tube_sticker_pumpset != 1 && $sm->tube_sticker_pump != 1 && $sm->pack_slip_pump == 1)
+ if (! empty($sm->tube_sticker_pump) || (empty($sm->tube_sticker_pumpset) && empty($sm->tube_sticker_pump) && ! empty($sm->pack_slip_pump))) {
+ $stickCount++;
+ if ($record->pump_scanned_status == 1) {
+ $scannedCount++;
+ }
+ }
+
+ if (! empty($sm->tube_sticker_pumpset)) {
+ $stickCount++;
+ if ($record->scanned_status_set == 1) {
+ $scannedCount++;
+ }
+ }
+ } elseif (! empty($sm->pack_slip_motor) || ! empty($sm->pack_slip_pump) || ! empty($sm->pack_slip_pumpset)) {
+ if (! empty($sm->pack_slip_motor)) {
+ $stickCount++;
+ if ($record->motor_scanned_status == 1) {
+ $scannedCount++;
+ }
+ }
+
+ if (! empty($sm->pack_slip_pump)) {
+ $stickCount++;
+ if ($record->pump_scanned_status == 1) {
+ $scannedCount++;
+ }
+ }
+
+ if (! empty($sm->pack_slip_pumpset)) {
+ $stickCount++;
+ if ($record->scanned_status_set == 1) {
+ $scannedCount++;
+ }
+ }
+ }
+
+ return max($stickCount - $scannedCount, 0);
+ });
+
+ $this->dispatch(
+ $onCapFocus ? 'focus-capacitor-input' : 'focus-serial-number'
+ );
+ }
+
+ public function getInvoiceRecordsProperty()
+ {
+ return SerialValidation::with('stickerMasterRelation.item')
+ ->where('invoice_number', $this->invoiceNumber)
+ ->where('plant_id', $this->plantId)
+ ->where(function ($query) {
+ $query->whereNull('scanned_status')
+ ->orWhere('scanned_status', '');
+ })
+ // ->when($this->hasSearched, function ($query) {
+ // $query->where('invoice_number', $this->invoiceNumber)
+ // ->where('plant_id', $this->plantId)
+ // ->where('scanned_status', '=', '');
+ // })
+ ->paginate(6);
}
public function loadMaterialData($invoiceNumber, $plantId)
@@ -146,43 +262,36 @@ class SerialValidationData extends Component
$this->materialInvoice = true;
// $this->showCapacitorInput = false;
- //->where('serial_number', '!=', '')
+ // ->where('serial_number', '!=', '')
$this->invoiceData = SerialValidation::where('invoice_number', $this->invoiceNumber)->where('plant_id', $plantId)->where('serial_number', null)
- ->get()
- ->map(function ($record) {
- return [
- 'sticker_master_id' => $record->sticker_master_id,
- // 'material_type' => StickerMaster::where('id', $record->sticker_master_id)->first()->material_type ?? '',
- 'quantity' => $record->quantity ?? '',
- 'serial_number' => $record->serial_number ?? '',
- 'batch_number' => $record->batch_number ?? '',
- 'created_at' => $record->created_at,
- 'operator_id' => $record->operator_id,
- ];
- })
- ->toArray();
+ ->get()
+ ->map(function ($record) {
+ return [
+ 'sticker_master_id' => $record->sticker_master_id,
+ // 'material_type' => StickerMaster::where('id', $record->sticker_master_id)->first()->material_type ?? '',
+ 'quantity' => $record->quantity ?? '',
+ 'serial_number' => $record->serial_number ?? '',
+ 'batch_number' => $record->batch_number ?? '',
+ 'created_at' => $record->created_at,
+ 'operator_id' => $record->operator_id,
+ ];
+ })
+ ->toArray();
- //Loop through and replace 'code' using related StickerMaster > Item > code
+ // Loop through and replace 'code' using related StickerMaster > Item > code
foreach ($this->invoiceData as &$row) {
- // $stickerMaster = \App\Models\StickerMaster::with('item')->find($row['sticker_master_id'] ?? null);
- $row['code'] = StickerMaster::with('item')->find($row['sticker_master_id'] ?? null)?->item?->code ?? 'N/A';
- $matType = StickerMaster::where('id', $row['sticker_master_id'] ?? null)->first()->material_type ?? '';
- if($matType === 1)
- {
+ // $stickerMaster = \App\Models\StickerMaster::with('item')->find($row['sticker_master_id'] ?? null);
+ $row['code'] = StickerMaster::with('item')->find($row['sticker_master_id'] ?? null)?->item?->code ?? 'N/A';
+ $matType = StickerMaster::where('id', $row['sticker_master_id'] ?? null)->first()->material_type ?? '';
+ if ($matType === 1) {
$row['material_type'] = 'Individual';
- }
- else if($matType === 2)
- {
+ } elseif ($matType === 2) {
$row['material_type'] = 'Bundle';
- }
- else if($matType === 3)
- {
+ } elseif ($matType === 3) {
$row['material_type'] = 'Quantity';
- }
- else
- {
+ } else {
$row['material_type'] = 'N/A';
- }
+ }
}
}
@@ -216,11 +325,11 @@ class SerialValidationData extends Component
$user = Filament::auth()->user();
$operatorName = $user->name;
- if (!$this->capacitorInput) {
+ if (! $this->capacitorInput) {
return;
}
- if (!preg_match('/^[^\/]+\/[^\/]+\/.+$/', $this->capacitorInput)) {
+ if (! preg_match('/^[^\/]+\/[^\/]+\/.+$/', $this->capacitorInput)) {
Notification::make()
->title('Invalid Panel Box QR Format:')
->body('Scan the valid panel box QR code to proceed!')
@@ -228,6 +337,7 @@ class SerialValidationData extends Component
// ->duration(3000)
->seconds(2)
->send();
+
return;
}
@@ -239,9 +349,9 @@ class SerialValidationData extends Component
$existsInStickerMaster = StickerMaster::where('panel_box_code', $itemCode)->where('plant_id', $this->plantId)->whereHas('item', function ($query) {
$query->where('code', $this->currentItemCode);
})
- ->exists();
+ ->exists();
- if (!$existsInStickerMaster) {
+ if (! $existsInStickerMaster) {
Notification::make()
->title('Unknown: Panel Box Code')
->body("Unknown panel box code: $itemCode found for item code: $this->currentItemCode")
@@ -250,6 +360,7 @@ class SerialValidationData extends Component
->seconds(2)
->send();
$this->capacitorInput = '';
+
return;
}
@@ -259,7 +370,7 @@ class SerialValidationData extends Component
($row['serial_number'] ?? '') === $this->currentSerialNumber
) {
$row['panel_box_supplier'] = $supplier;
- $row['panel_box_item_code'] = $itemCode;
+ $row['panel_box_code'] = $itemCode;
$row['panel_box_serial_number'] = $serialNumber;
$row['capacitor_scanned_status'] = 1;
// $row['scanned_status_set'] = true;
@@ -286,47 +397,41 @@ class SerialValidationData extends Component
$packCnt = 1;
$scanCnt = 1;
// if($hadMotorQr === $hasMotorQr && $hadPumpQr === $hasPumpQr && $hadPumpSetQr === $hasPumpSetQr)
- if($hasMotorQr || $hasPumpQr || $hasPumpSetQr)
- {
+ if ($hasMotorQr || $hasPumpQr || $hasPumpSetQr) {
$packCnt = $hasMotorQr ? $packCnt + 1 : $packCnt;
$packCnt = $hasPumpQr ? $packCnt + 1 : $packCnt;
$packCnt = $hasPumpSetQr ? $packCnt + 1 : $packCnt;
- $scanCnt = $hadMotorQr ? $scanCnt + 1: $scanCnt;
- $scanCnt = $hadPumpQr ? $scanCnt + 1: $scanCnt;
- $scanCnt = $hadPumpSetQr ? $scanCnt + 1: $scanCnt;
+ $scanCnt = $hadMotorQr ? $scanCnt + 1 : $scanCnt;
+ $scanCnt = $hadPumpQr ? $scanCnt + 1 : $scanCnt;
+ $scanCnt = $hadPumpSetQr ? $scanCnt + 1 : $scanCnt;
- if($packCnt === $scanCnt)
- {
+ if ($packCnt === $scanCnt) {
$matchingValidation->update([
'panel_box_supplier' => $supplier,
- 'panel_box_item_code' => $itemCode,
+ 'panel_box_code' => $itemCode,
'panel_box_serial_number' => $serialNumber,
'capacitor_scanned_status' => 1,
'scanned_status' => 'Scanned',
- 'operator_id'=> $operatorName,
+ 'operator_id' => $operatorName,
]);
- }
- else
- {
+ } else {
$matchingValidation->update([
'panel_box_supplier' => $supplier,
- 'panel_box_item_code' => $itemCode,
+ 'panel_box_code' => $itemCode,
'panel_box_serial_number' => $serialNumber,
'capacitor_scanned_status' => 1,
- 'operator_id'=> $operatorName,
+ 'operator_id' => $operatorName,
]);
}
- }
- else
- {
+ } else {
$matchingValidation->update([
'panel_box_supplier' => $supplier,
- 'panel_box_item_code' => $itemCode,
+ 'panel_box_code' => $itemCode,
'panel_box_serial_number' => $serialNumber,
'capacitor_scanned_status' => 1,
'scanned_status' => 'Scanned',
- 'operator_id'=> $operatorName,
+ 'operator_id' => $operatorName,
]);
}
@@ -341,15 +446,14 @@ class SerialValidationData extends Component
$totalQuantity = SerialValidation::where('invoice_number', $matchingValidation->invoice_number)->where('plant_id', $this->plantId)->count();
$scannedQuantity = SerialValidation::where('invoice_number', $matchingValidation->invoice_number)->where('plant_id', $this->plantId)->where('scanned_status', 'Scanned')->count();
// $this->form->fill([
- // 'plant_id' => $matchingValidation->plant_id,
- // 'invoice_number' => $matchingValidation->invoice_number,
- // 'serial_number' => null,
- // 'total_quantity' => $totalQuantity,
- // 'scanned_quantity'=> $scannedQuantity,
- // ]);
+ // 'plant_id' => $matchingValidation->plant_id,
+ // 'invoice_number' => $matchingValidation->invoice_number,
+ // 'serial_number' => null,
+ // 'total_quantity' => $totalQuantity,
+ // 'scanned_quantity'=> $scannedQuantity,
+ // ]);
- if($totalQuantity === $scannedQuantity)
- {
+ if ($totalQuantity === $scannedQuantity) {
Notification::make()
->title('Completed: Serial Invoice')
->body("Serial invoice '$matchingValidation->invoice_number' completed the scanning process.
Scan the next 'Serial Invoice' to proceed!")
@@ -357,9 +461,7 @@ class SerialValidationData extends Component
->seconds(2)
->send();
$this->loadCompletedData($matchingValidation->invoice_number, $matchingValidation->plant_id, true);
- }
- else
- {
+ } else {
$this->loadData($matchingValidation->invoice_number, $matchingValidation->plant_id);
}
}
@@ -373,7 +475,8 @@ class SerialValidationData extends Component
public function render()
{
- return view('livewire.serial-validation-data');
+ return view('livewire.serial-validation-data', [
+ 'records' => $this->invoiceRecords,
+ ]);
}
-
}
diff --git a/resources/views/livewire/serial-validation-data.blade.php b/resources/views/livewire/serial-validation-data.blade.php
index 9be0f81..ff2240f 100644
--- a/resources/views/livewire/serial-validation-data.blade.php
+++ b/resources/views/livewire/serial-validation-data.blade.php
@@ -45,52 +45,57 @@
{{-- Modal for serial invoice--}}
@if ($hasSearched)
-
| No | -Material Code | -Serial Number | -Motor Scanned Status | -Pump Scanned Status | -Capacitor Scanned Status | -Scanned Status Set | -Scanned Status | -Time Stamp | -Operator ID | -Panel Box Supplier | -Panel Box Serial Number | +|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| No | +Material Code | +Serial Number | +Motor Scanned Status | +Pump Scanned Status | +Capacitor Scanned Status | +Scanned Status Set | +Scanned Status | +Time Stamp | +Operator ID | + {{--Panel Box Code | --}} +Panel Box Supplier | +Panel Box Serial Number | +
| {{ $records->firstItem() + $index }} | +{{ $record->stickerMasterRelation?->item?->code ?? 'N/A' }} | +{{ $record->serial_number ?? 'N/A' }} | +{{ $record->motor_scanned_status ? '1' : '' }} | +{{ $record->pump_scanned_status ? '1' : '' }} | +{{ $record->capacitor_scanned_status ? '1' : '' }} | +{{ $record->scanned_status_set ? '1' : '' }} | +{{ $record->scanned_status ?? '' }} | +{{ optional($record->created_at)->format('d-m-Y H:i:s') }} | +{{ $record->operator_id ?? '' }} | + {{--{{ $record->panel_box_code ?? '' }} | --}} +{{ $record->panel_box_supplier ?? '' }} | +{{ $record->panel_box_serial_number ?? '' }} |
| {{ $index + 1 }} | -{{ $row['code'] ?? 'N/A' }} | -{{ $row['serial_number'] ?? 'N/A' }} | -{{ $row['motor_scanned_status'] ?? '' }} | -{{ $row['pump_scanned_status'] ?? '' }} | -{{ $row['capacitor_scanned_status'] ?? '' }} | -{{ $row['scanned_status_set'] ?? '' }} | -{{ $row['scanned_status'] ?? '' }} | -{{ $row['created_at'] ?? '' }} | -{{ $row['operator_id'] ?? '' }} | -{{ $row['panel_box_supplier'] ?? '' }} | -{{ $row['panel_box_serial_number'] ?? '' }} | -|
| - No data found for the invoice number {{ $invoiceNumber }}. - | -||||||||||||