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')))
|
->readOnly(fn (callable $get) => !empty($get('serial_number')))
|
||||||
//->disabled(fn (Get $get) => !empty($get('serial_number')))
|
//->disabled(fn (Get $get) => !empty($get('serial_number')))
|
||||||
->extraAttributes([
|
->extraAttributes([
|
||||||
|
'id' => 'invoice_number_input',
|
||||||
'x-data' => '{ value: "" }',
|
'x-data' => '{ value: "" }',
|
||||||
'x-model' => '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) {
|
// ->afterStateHydrated(function (TextInput $component, string $state) {
|
||||||
// $component->state(ucwords($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();
|
$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();
|
$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([
|
$this->form->fill([
|
||||||
'plant_id' => $this->plantId,
|
'plant_id' => $this->plantId,
|
||||||
'invoice_number' => $this->invoiceNumber,
|
'invoice_number' => $this->invoiceNumber,
|
||||||
'serial_number' => null,
|
'serial_number' => null,
|
||||||
'total_quantity' => $totQuan,
|
'total_quantity' => $totQuan,
|
||||||
'update_invoice' => false,
|
'update_invoice' => false,
|
||||||
'scanned_quantity'=> $scanSQuan,
|
'scanned_quantity'=> $scanSQuan
|
||||||
]);
|
]);
|
||||||
|
$this->dispatch('refreshInvoiceData', invoiceNumber: $this->invoiceNumber, plantId: $this->plantId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getRedirectUrl(): string
|
protected function getRedirectUrl(): string
|
||||||
@@ -133,6 +151,7 @@ class CreateInvoiceValidation extends CreateRecord
|
|||||||
'total_quantity' => 0,
|
'total_quantity' => 0,
|
||||||
'scanned_quantity'=> 0,
|
'scanned_quantity'=> 0,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->dispatch('refreshEmptyInvoice', invoiceNumber: $invoiceNumber, plantId: $plantId);
|
$this->dispatch('refreshEmptyInvoice', invoiceNumber: $invoiceNumber, plantId: $plantId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -854,7 +873,6 @@ class CreateInvoiceValidation extends CreateRecord
|
|||||||
//$fullPath = $disk->path($filePath);
|
//$fullPath = $disk->path($filePath);
|
||||||
$disk->delete($filePath);
|
$disk->delete($filePath);
|
||||||
}
|
}
|
||||||
$this->dispatch('playNotificationSound');
|
|
||||||
|
|
||||||
$this->form->fill([
|
$this->form->fill([
|
||||||
'plant_id' => $plantId,
|
'plant_id' => $plantId,
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ class InvoiceDataTable extends Component
|
|||||||
$this->materialInvoice = false;
|
$this->materialInvoice = false;
|
||||||
$this->packageCount = 0;
|
$this->packageCount = 0;
|
||||||
// $this->showCapacitorInput = false;
|
// $this->showCapacitorInput = false;
|
||||||
|
$this->dispatch('focus-invoice-number');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function loadEmptyData($invoiceNumber, $plantId)
|
public function loadEmptyData($invoiceNumber, $plantId)
|
||||||
@@ -178,7 +179,7 @@ class InvoiceDataTable extends Component
|
|||||||
|
|
||||||
$this->packageCount += $stickCount - $scannedCount;
|
$this->packageCount += $stickCount - $scannedCount;
|
||||||
}
|
}
|
||||||
|
$this->dispatch('focus-serial-number');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function loadMaterialData($invoiceNumber, $plantId)
|
public function loadMaterialData($invoiceNumber, $plantId)
|
||||||
@@ -230,6 +231,7 @@ class InvoiceDataTable extends Component
|
|||||||
$row['material_type'] = 'N/A';
|
$row['material_type'] = 'N/A';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$this->dispatch('focus-serial-number');
|
||||||
}
|
}
|
||||||
|
|
||||||
// public function showCapacitorInputBox()
|
// public function showCapacitorInputBox()
|
||||||
@@ -255,6 +257,7 @@ class InvoiceDataTable extends Component
|
|||||||
public function cancelCapacitorInput()
|
public function cancelCapacitorInput()
|
||||||
{
|
{
|
||||||
$this->showCapacitorInput = false;
|
$this->showCapacitorInput = false;
|
||||||
|
$this->dispatch('focus-serial-number');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function processCapacitorInput()
|
public function processCapacitorInput()
|
||||||
|
|||||||
@@ -202,7 +202,18 @@
|
|||||||
input.select();
|
input.select();
|
||||||
}
|
}
|
||||||
}, 100);
|
}, 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>
|
</script>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user