Updated focus invoice and serial number logic in throughout invoice validation related pages (resource, create, livewire, blade)
This commit is contained in:
@@ -106,9 +106,11 @@ class InvoiceValidationResource extends Resource
|
||||
->readOnly(fn (callable $get) => !empty($get('serial_number')))
|
||||
//->disabled(fn (Get $get) => !empty($get('serial_number')))
|
||||
->extraAttributes([
|
||||
'id' => 'invoice_number_input',
|
||||
'x-data' => '{ value: "" }',
|
||||
'x-model' => 'value',
|
||||
'x-on:keydown.enter.prevent' => '$wire.processInvoice(value)',
|
||||
'wire:keydown.enter.prevent' => 'processInvoice(value)',
|
||||
//'x-on:keydown.enter.prevent' => '$wire.processInvoice(value)',
|
||||
])
|
||||
// ->afterStateHydrated(function (TextInput $component, string $state) {
|
||||
// $component->state(ucwords($state));
|
||||
|
||||
@@ -73,14 +73,32 @@ class CreateInvoiceValidation extends CreateRecord
|
||||
{
|
||||
$totQuan = InvoiceValidation::where('invoice_number', $this->invoiceNumber)->where('plant_id', $this->plantId)->count();
|
||||
$scanSQuan = InvoiceValidation::where('invoice_number', $this->invoiceNumber)->where('scanned_status', 'Scanned')->where('plant_id', $this->plantId)->count();
|
||||
|
||||
$this->dispatch('playNotificationSound');
|
||||
if ($totQuan == $scanSQuan)
|
||||
{
|
||||
$this->form->fill([
|
||||
'plant_id' => $this->plantId,
|
||||
'invoice_number' => null,
|
||||
'serial_number' => null,
|
||||
'total_quantity' => 0,
|
||||
'update_invoice' => false,
|
||||
'scanned_quantity'=> 0
|
||||
]);
|
||||
$this->dispatch('refreshCompletedInvoice', invoiceNumber: $this->invoiceNumber, plantId: $this->plantId, isSerial: true);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->form->fill([
|
||||
'plant_id' => $this->plantId,
|
||||
'invoice_number' => $this->invoiceNumber,
|
||||
'serial_number' => null,
|
||||
'total_quantity' => $totQuan,
|
||||
'update_invoice' => false,
|
||||
'scanned_quantity'=> $scanSQuan,
|
||||
'scanned_quantity'=> $scanSQuan
|
||||
]);
|
||||
$this->dispatch('refreshInvoiceData', invoiceNumber: $this->invoiceNumber, plantId: $this->plantId);
|
||||
}
|
||||
}
|
||||
|
||||
protected function getRedirectUrl(): string
|
||||
@@ -133,6 +151,7 @@ class CreateInvoiceValidation extends CreateRecord
|
||||
'total_quantity' => 0,
|
||||
'scanned_quantity'=> 0,
|
||||
]);
|
||||
|
||||
$this->dispatch('refreshEmptyInvoice', invoiceNumber: $invoiceNumber, plantId: $plantId);
|
||||
}
|
||||
else
|
||||
@@ -854,7 +873,6 @@ class CreateInvoiceValidation extends CreateRecord
|
||||
//$fullPath = $disk->path($filePath);
|
||||
$disk->delete($filePath);
|
||||
}
|
||||
$this->dispatch('playNotificationSound');
|
||||
|
||||
$this->form->fill([
|
||||
'plant_id' => $plantId,
|
||||
|
||||
@@ -65,6 +65,7 @@ class InvoiceDataTable extends Component
|
||||
$this->materialInvoice = false;
|
||||
$this->packageCount = 0;
|
||||
// $this->showCapacitorInput = false;
|
||||
$this->dispatch('focus-invoice-number');
|
||||
}
|
||||
|
||||
public function loadEmptyData($invoiceNumber, $plantId)
|
||||
@@ -178,7 +179,7 @@ class InvoiceDataTable extends Component
|
||||
|
||||
$this->packageCount += $stickCount - $scannedCount;
|
||||
}
|
||||
|
||||
$this->dispatch('focus-serial-number');
|
||||
}
|
||||
|
||||
public function loadMaterialData($invoiceNumber, $plantId)
|
||||
@@ -230,6 +231,7 @@ class InvoiceDataTable extends Component
|
||||
$row['material_type'] = 'N/A';
|
||||
}
|
||||
}
|
||||
$this->dispatch('focus-serial-number');
|
||||
}
|
||||
|
||||
// public function showCapacitorInputBox()
|
||||
@@ -255,6 +257,7 @@ class InvoiceDataTable extends Component
|
||||
public function cancelCapacitorInput()
|
||||
{
|
||||
$this->showCapacitorInput = false;
|
||||
$this->dispatch('focus-serial-number');
|
||||
}
|
||||
|
||||
public function processCapacitorInput()
|
||||
|
||||
@@ -202,7 +202,18 @@
|
||||
input.select();
|
||||
}
|
||||
}, 100);
|
||||
});
|
||||
});
|
||||
|
||||
window.addEventListener('focus-invoice-number', () => {
|
||||
setTimeout(() => {
|
||||
const container = document.getElementById('invoice_number_input');
|
||||
const input = container?.querySelector('input'); // gets the actual input inside
|
||||
|
||||
if (input) {
|
||||
input.focus();
|
||||
input.select();
|
||||
}
|
||||
}, 100);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user