diff --git a/app/Livewire/InvoiceDataTable.php b/app/Livewire/InvoiceDataTable.php
index 2983479..dd12ee7 100644
--- a/app/Livewire/InvoiceDataTable.php
+++ b/app/Livewire/InvoiceDataTable.php
@@ -323,12 +323,12 @@ class InvoiceDataTable extends Component
// $this->packageCount = 0;
- // $this->packageCount = InvoiceValidation::with('stickerMasterRelation')
- // ->where('invoice_number', $this->invoiceNumber)
- // ->where('plant_id', $this->plantId)
- // ->whereNull('scanned_status')
- // ->get()
- // ->sum(function ($record) {
+ // $records = InvoiceValidation::with('stickerMasterRelation')
+ // ->where('invoice_number', $this->invoiceNumber)
+ // ->where('plant_id', $this->plantId)
+ // ->get();
+
+ // $this->packageCount = $records->sum(function ($record) {
// $sm = $record->stickerMasterRelation;
// $stickCount = 0;
@@ -336,14 +336,14 @@ class InvoiceDataTable extends Component
// if ($sm) {
- // // if (strlen($sm->panel_box_code) > 0) $stickCount++;
+ // if (strlen($sm->panel_box_code) > 0) $stickCount++;
- // if (!empty($sm->panel_box_code)) {
- // $stickCount++;
- // if (!empty($record->panel_box_serial_number)) {
- // $scannedCount++;
- // }
- // }
+ // // if (!empty($sm->panel_box_code)) {
+ // // $stickCount++;
+ // // if (!empty($record->panel_box_serial_number)) {
+ // // $scannedCount++;
+ // // }
+ // // }
// // Tube stickers
// if ($sm->tube_sticker_motor || $sm->tube_sticker_pump || $sm->tube_sticker_pumpset) {
@@ -365,41 +365,18 @@ class InvoiceDataTable extends Component
// $scannedCount += $record->capacitor_scanned_status == 1 ? 1 : 0;
// $scannedCount += $record->scanned_status_set == 1 ? 1 : 0;
- // // if (!empty($record->panel_box_serial_number)) {
- // // $scannedCount++;
- // // }
// return max($stickCount - $scannedCount, 0);
// });
// $this->dispatch($onCapFocus ? 'focus-capacitor-input' : 'focus-serial-number');
// }
- // public function getInvoiceRecordsProperty()
- // {
- // return InvoiceValidation::with('stickerMasterRelation.item')
- // ->when(! $this->hasSearched, fn ($q) => $q->whereRaw('1 = 0'))
- // ->when($this->hasSearched, fn ($q) =>
- // $q->where('invoice_number', $this->invoiceNumber)
- // ->where('plant_id', $this->plantId)
- // ->whereNull('scanned_status')
- // )
- // ->paginate(7);
- // }
-
- // public function getInvoiceRecordsProperty()
- // {
- // return InvoiceValidation::with('stickerMasterRelation.item')
- // ->where('invoice_number', $this->hasSearched ? $this->invoiceNumber : null)
- // ->where('plant_id', $this->hasSearched ? $this->plantId : null)
- // ->whereNull('scanned_status')
- // ->paginate(7);
- // }
-
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;
@@ -407,77 +384,186 @@ class InvoiceDataTable extends Component
$this->hasSearched = true;
$this->materialInvoice = false;
- // Eager load stickerMasterRelation and item
- $invoiceRecords = InvoiceValidation::with('stickerMasterRelation.item')
- ->where('invoice_number', $invoiceNumber)
- ->where('plant_id', $plantId)
- ->whereNull('scanned_status')
- ->get();
-
- $this->invoiceData = [];
+ $this->resetPage();
$this->packageCount = 0;
- foreach ($invoiceRecords as $record) {
+ $records = InvoiceValidation::with('stickerMasterRelation')
+ ->where('invoice_number', $this->invoiceNumber)
+ ->where('plant_id', $this->plantId)
+ ->get();
+
+ $this->packageCount = $records->sum(function ($record) {
+
$sm = $record->stickerMasterRelation;
- // Compute code
- $rowCode = $sm?->item?->code ?? 'N/A';
+ if (!$sm) {
+ return 0;
+ }
- $stickCount = 0;
+ $stickCount = 0;
$scannedCount = 0;
- if ($sm) {
- // Panel box code
- if (Str::length($sm->panel_box_code) > 0) {
+ if (!empty($sm->panel_box_code)) {
+ $stickCount++;
+
+ if ($record->capacitor_scanned_status == 1) {
+ $scannedCount++;
+ }
+ }
+ if ($sm->tube_sticker_motor == 1 || $sm->tube_sticker_pump == 1 || $sm->tube_sticker_pumpset == 1){
+
+ if ($sm->tube_sticker_motor == 1)
+ {
$stickCount++;
+ if ($record->motor_scanned_status == 1) {
+ $scannedCount++;
+ }
}
- // Tube stickers logic
- if ($sm->tube_sticker_motor == 1 || $sm->tube_sticker_pump == 1 || $sm->tube_sticker_pumpset == 1) {
- if ($sm->tube_sticker_motor == 1) $stickCount++;
- if ($sm->tube_sticker_pump == 1 || ($sm->tube_sticker_pumpset != 1 && $sm->tube_sticker_pump != 1 && $sm->pack_slip_pump == 1)) $stickCount++;
- if ($sm->tube_sticker_pumpset == 1) $stickCount++;
+
+ if (
+ $sm->tube_sticker_pump == 1 ||
+ ($sm->tube_sticker_pumpset != 1 &&
+ $sm->tube_sticker_pump != 1 &&
+ $sm->pack_slip_pump == 1)
+ ) {
+ $stickCount++;
+ if ($record->pump_scanned_status == 1) {
+ $scannedCount++;
+ }
}
- // Pack slip logic (only if tube sticker block didn't apply)
- elseif ($sm->pack_slip_motor == 1 || $sm->pack_slip_pump == 1 || $sm->pack_slip_pumpset == 1) {
- if ($sm->pack_slip_motor == 1) $stickCount++;
- if ($sm->pack_slip_pump == 1) $stickCount++;
- if ($sm->pack_slip_pumpset == 1) $stickCount++;
+
+ if ($sm->tube_sticker_pumpset == 1) {
+ $stickCount++;
+ if ($record->scanned_status_set == 1) {
+ $scannedCount++;
+ }
+ }
+ }
+ elseif ($sm->pack_slip_motor == 1 || $sm->pack_slip_pump == 1 || $sm->pack_slip_pumpset == 1)
+ {
+ if ($sm->pack_slip_motor == 1) {
+ $stickCount++;
+ if ($record->motor_scanned_status == 1) {
+ $scannedCount++;
+ }
+ }
+
+ if ($sm->pack_slip_pump == 1) {
+ $stickCount++;
+ if ($record->pump_scanned_status == 1) {
+ $scannedCount++;
+ }
+ }
+
+ if ($sm->pack_slip_pumpset == 1) {
+ $stickCount++;
+ if ($record->scanned_status_set == 1) {
+ $scannedCount++;
+ }
}
}
- // Count already scanned
- $scannedCount += ($record->motor_scanned_status == 1) ? 1 : 0;
- $scannedCount += ($record->pump_scanned_status == 1) ? 1 : 0;
- $scannedCount += ($record->capacitor_scanned_status == 1) ? 1 : 0;
- $scannedCount += ($record->scanned_status_set == 1) ? 1 : 0;
+ return max($stickCount - $scannedCount, 0);
+ });
- // Increment packageCount
- $this->packageCount += max($stickCount - $scannedCount, 0);
-
- $this->invoiceData[] = [
- '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,
- 'code' => $rowCode,
- 'stickCount' => $stickCount,
- ];
- }
-
- if ($onCapFocus) {
- $this->dispatch('focus-capacitor-input');
- } else {
- $this->dispatch('focus-serial-number');
- }
+ $this->dispatch(
+ $onCapFocus ? 'focus-capacitor-input' : 'focus-serial-number'
+ );
}
+ public function getInvoiceRecordsProperty()
+ {
+ return InvoiceValidation::with('stickerMasterRelation.item')
+ ->when($this->hasSearched, function ($query) {
+ $query->where('invoice_number', $this->invoiceNumber)
+ ->where('plant_id', $this->plantId);
+ })
+ ->paginate(7);
+ }
+
+
+ // public function loadData($invoiceNumber, $plantId, $onCapFocus = false)
+ // {
+ // $this->plantId = $plantId;
+ // $this->invoiceNumber = $invoiceNumber;
+ // $this->completedInvoice = false;
+ // $this->isSerial = true;
+ // $this->onCapFocus = $onCapFocus;
+ // $this->emptyInvoice = false;
+ // $this->hasSearched = true;
+ // $this->materialInvoice = false;
+
+ // // Eager load stickerMasterRelation and item
+ // $invoiceRecords = InvoiceValidation::with('stickerMasterRelation.item')
+ // ->where('invoice_number', $invoiceNumber)
+ // ->where('plant_id', $plantId)
+ // ->whereNull('scanned_status')
+ // ->get();
+
+ // $this->invoiceData = [];
+ // $this->packageCount = 0;
+
+ // foreach ($invoiceRecords as $record) {
+ // $sm = $record->stickerMasterRelation;
+
+ // // Compute code
+ // $rowCode = $sm?->item?->code ?? 'N/A';
+
+ // $stickCount = 0;
+ // $scannedCount = 0;
+
+ // if ($sm) {
+ // // Panel box code
+ // if (Str::length($sm->panel_box_code) > 0) {
+ // $stickCount++;
+ // }
+ // // Tube stickers logic
+ // if ($sm->tube_sticker_motor == 1 || $sm->tube_sticker_pump == 1 || $sm->tube_sticker_pumpset == 1) {
+ // if ($sm->tube_sticker_motor == 1) $stickCount++;
+ // if ($sm->tube_sticker_pump == 1 || ($sm->tube_sticker_pumpset != 1 && $sm->tube_sticker_pump != 1 && $sm->pack_slip_pump == 1)) $stickCount++;
+ // if ($sm->tube_sticker_pumpset == 1) $stickCount++;
+ // }
+ // // Pack slip logic (only if tube sticker block didn't apply)
+ // elseif ($sm->pack_slip_motor == 1 || $sm->pack_slip_pump == 1 || $sm->pack_slip_pumpset == 1) {
+ // if ($sm->pack_slip_motor == 1) $stickCount++;
+ // if ($sm->pack_slip_pump == 1) $stickCount++;
+ // if ($sm->pack_slip_pumpset == 1) $stickCount++;
+ // }
+ // }
+
+ // // Count already scanned
+ // $scannedCount += ($record->motor_scanned_status == 1) ? 1 : 0;
+ // $scannedCount += ($record->pump_scanned_status == 1) ? 1 : 0;
+ // $scannedCount += ($record->capacitor_scanned_status == 1) ? 1 : 0;
+ // $scannedCount += ($record->scanned_status_set == 1) ? 1 : 0;
+
+ // // Increment packageCount
+ // $this->packageCount += max($stickCount - $scannedCount, 0);
+
+ // $this->invoiceData[] = [
+ // '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,
+ // 'code' => $rowCode,
+ // 'stickCount' => $stickCount,
+ // ];
+ // }
+
+ // if ($onCapFocus) {
+ // $this->dispatch('focus-capacitor-input');
+ // } else {
+ // $this->dispatch('focus-serial-number');
+ // }
+ // }
+
public function loadMaterialData($invoiceNumber, $plantId)
{
@@ -547,6 +633,165 @@ class InvoiceDataTable extends Component
$this->dispatch('focus-serial-number');
}
+ // public function processCapacitorInput()
+ // {
+ // $user = Filament::auth()->user();
+ // $operatorName = $user->name;
+
+ // if (! $this->capacitorInput) {
+ // return;
+ // }
+
+ // if (! preg_match('/^[^\/]+\/[^\/]+\/.+$/', $this->capacitorInput)) {
+ // Notification::make()
+ // ->title('Invalid Panel Box QR Format:')
+ // ->body("Scan the valid panel box QR '$this->capacitorInput' to proceed!")
+ // ->danger()
+ // // ->duration(3000)
+ // ->seconds(2)
+ // ->send();
+
+ // $this->capacitorInput = '';
+ // return;
+ // }
+
+ // $parts = explode('/', $this->capacitorInput);
+ // $supplier = $parts[0];
+ // $itemCode = $parts[1];
+ // $serialNumber = implode('/', array_slice($parts, 2)); // Keep rest of the string
+
+ // $existsInStickerMaster = StickerMaster::where('panel_box_code', $itemCode)->where('plant_id', $this->plantId)->whereHas('item', function ($query) {
+ // $query->where('code', $this->currentItemCode);
+ // })
+ // ->exists();
+
+ // if (! $existsInStickerMaster) {
+ // Notification::make()
+ // ->title('Unknown: Panel Box Code')
+ // ->body("Unknown panel box code: $itemCode found for item code: $this->currentItemCode")
+ // ->danger()
+ // // ->duration(4000)
+ // ->seconds(2)
+ // ->send();
+ // $this->capacitorInput = '';
+
+ // return;
+ // }
+
+ // foreach ($this->invoiceData as &$row) {
+
+ // if (($row['code'] ?? '') === $this->currentItemCode && ($row['serial_number'] ?? '') === $this->currentSerialNumber) {
+ // $row['panel_box_supplier'] = $supplier;
+ // $row['panel_box_item_code'] = $itemCode;
+ // $row['panel_box_serial_number'] = $serialNumber;
+ // $row['capacitor_scanned_status'] = 1;
+ // // $row['scanned_status_set'] = true;
+
+ // $matchingValidation = InvoiceValidation::with('stickerMaster.item')
+ // ->where('serial_number', $this->currentSerialNumber)
+ // ->where('plant_id', $this->plantId)
+ // ->get()
+ // ->first(function ($validation) {
+ // return $validation->stickerMaster?->item?->code === $this->currentItemCode;
+ // });
+
+ // // dd($matchingValidation);
+
+ // if ($matchingValidation) {
+ // $hasMotorQr = $matchingValidation->stickerMasterRelation->tube_sticker_motor ?? null;
+ // $hasPumpQr = $matchingValidation->stickerMasterRelation->tube_sticker_pump ?? null;
+ // $hasPumpSetQr = $matchingValidation->stickerMasterRelation->tube_sticker_pumpset ?? null;
+ // // $hasCapacitorQr = $matchingValidation->stickerMasterRelation->panel_box_code ?? null;
+
+ // $hadMotorQr = $matchingValidation->motor_scanned_status ?? null;
+ // $hadPumpQr = $matchingValidation->pump_scanned_status ?? null;
+ // $hadPumpSetQr = $matchingValidation->scanned_status_set ?? null;
+ // // $hadCapacitorQr = $matchingValidation->capacitor_scanned_status ?? null;
+
+ // $packCnt = 1;
+ // $scanCnt = 1;
+ // // if ($hadMotorQr === $hasMotorQr && $hadPumpQr === $hasPumpQr && $hadPumpSetQr === $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;
+
+ // if ($packCnt === $scanCnt) {
+ // $matchingValidation->update([
+ // 'panel_box_supplier' => $supplier,
+ // 'panel_box_item_code' => $itemCode,
+ // 'panel_box_serial_number' => $serialNumber,
+ // 'capacitor_scanned_status' => 1,
+ // 'scanned_status' => 'Scanned',
+ // 'operator_id' => $operatorName,
+ // ]);
+ // } else {
+ // $matchingValidation->update([
+ // 'panel_box_supplier' => $supplier,
+ // 'panel_box_item_code' => $itemCode,
+ // 'panel_box_serial_number' => $serialNumber,
+ // 'capacitor_scanned_status' => 1,
+ // 'operator_id' => $operatorName,
+ // ]);
+ // }
+ // } else {
+ // $matchingValidation->update([
+ // 'panel_box_supplier' => $supplier,
+ // 'panel_box_item_code' => $itemCode,
+ // 'panel_box_serial_number' => $serialNumber,
+ // 'capacitor_scanned_status' => 1,
+ // 'scanned_status' => 'Scanned',
+ // 'operator_id' => $operatorName,
+ // ]);
+ // }
+
+ // // Notification::make()
+ // // ->title('Success: Capacitor QR')
+ // // // ->title("Panel box code scanned: $itemCode")
+ // // ->body("'Capacitor' QR scanned status updated, Scan next QR.")
+ // // ->success() // commented
+ // // ->seconds(2)
+ // // ->send();
+
+ // $totalQuantity = InvoiceValidation::where('invoice_number', $matchingValidation->invoice_number)->where('plant_id', $this->plantId)->count();
+ // $scannedQuantity = InvoiceValidation::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,
+ // // ]);
+
+ // 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!")
+ // ->success()
+ // ->seconds(2)
+ // ->send();
+ // $this->loadCompletedData($matchingValidation->invoice_number, $matchingValidation->plant_id, true);
+ // } else {
+ // $this->loadData($matchingValidation->invoice_number, $matchingValidation->plant_id, false);
+ // }
+ // }
+ // break;
+ // }
+ // }
+
+ // $this->showCapacitorInput = false;
+ // $this->capacitorInput = '';
+ // $this->dispatch('updateScannedQuantity');
+ // // $this->loadData($this->invoiceNumber, $this->plantId);
+ // $this->dispatch('focus-serial-number');
+ // }
+
+
+
public function processCapacitorInput()
{
$user = Filament::auth()->user();
@@ -592,20 +837,17 @@ class InvoiceDataTable extends Component
return;
}
- // $this->package = InvoiceValidation::with('stickerMasterRelation')
- // ->where('invoice_number', $this->invoiceNumber)
- // ->where('plant_id', $this->plantId)
- // ->whereNull('scanned_status')
- // ->get();
+ $this->package = InvoiceValidation::with('stickerMasterRelation')
+ ->where('invoice_number', $this->invoiceNumber)
+ ->where('plant_id', $this->plantId)
+ ->get();
- foreach ($this->invoiceData as &$row) {
+ foreach ($this->package as &$row) {
- if (($row['code'] ?? '') === $this->currentItemCode && ($row['serial_number'] ?? '') === $this->currentSerialNumber) {
- // // if ($row->stickerMasterRelation?->item?->code == $this->currentItemCode && ($row['serial_number'] ?? '') === $this->currentSerialNumber) {
- // $stickerCode = $row->stickerMasterRelation?->item?->code ?? null;
- // $serialNumber = $row->serial_number ?? null;
+ $stickerCode = $row->stickerMasterRelation?->item?->code ?? null;
+ $serialNo = $row->serial_number ?? null;
- // if ($stickerCode === $this->currentItemCode && $serialNumber === $this->currentSerialNumber) {
+ if ($stickerCode === $this->currentItemCode && $serialNo === $this->currentSerialNumber) {
$row['panel_box_supplier'] = $supplier;
$row['panel_box_item_code'] = $itemCode;
$row['panel_box_serial_number'] = $serialNumber;
@@ -715,15 +957,15 @@ class InvoiceDataTable extends Component
$this->dispatch('focus-serial-number');
}
- public function render()
- {
- return view('livewire.invoice-data-table');
- }
-
// public function render()
// {
- // return view('livewire.invoice-data-table', [
- // 'records' => $this->invoiceRecords,
- // ]);
+ // return view('livewire.invoice-data-table');
// }
+
+ public function render()
+ {
+ return view('livewire.invoice-data-table', [
+ 'records' => $this->invoiceRecords,
+ ]);
+ }
}
diff --git a/resources/views/livewire/invoice-data-table.blade.php b/resources/views/livewire/invoice-data-table.blade.php
index 44b30e2..b0f2d60 100644
--- a/resources/views/livewire/invoice-data-table.blade.php
+++ b/resources/views/livewire/invoice-data-table.blade.php
@@ -64,7 +64,7 @@
@endif
{{-- Modal for serial invoice--}}
- @if ($hasSearched)
+ {{-- @if ($hasSearched)