feat(workshop): add vehicle from new order modal too
The '+ Nuevo' vehicle button is now available in both the edit and new service order modals.
This commit is contained in:
@@ -22,6 +22,7 @@ var Workshop = (function() {
|
||||
var selectedEditCustomer = null;
|
||||
var vehicleSearchTimer = null;
|
||||
var selectedEditVehicle = null;
|
||||
var newVehicleContext = null;
|
||||
var currentView = 'list';
|
||||
var currentPage = 1;
|
||||
var perPage = 25;
|
||||
@@ -704,7 +705,8 @@ var Workshop = (function() {
|
||||
}
|
||||
}
|
||||
|
||||
function openNewVehicleModal() {
|
||||
function openNewVehicleModal(context) {
|
||||
newVehicleContext = context || 'edit';
|
||||
document.getElementById('newVehicleModal').classList.add('is-open');
|
||||
document.getElementById('nvPlate').value = '';
|
||||
document.getElementById('nvVIN').value = '';
|
||||
@@ -715,6 +717,10 @@ var Workshop = (function() {
|
||||
document.getElementById('nvOwner').value = '';
|
||||
}
|
||||
|
||||
function openNewVehicleModalFromNewOrder() {
|
||||
openNewVehicleModal('new');
|
||||
}
|
||||
|
||||
function closeNewVehicleModal() {
|
||||
document.getElementById('newVehicleModal').classList.remove('is-open');
|
||||
}
|
||||
@@ -734,14 +740,27 @@ var Workshop = (function() {
|
||||
year: document.getElementById('nvYear').value ? parseInt(document.getElementById('nvYear').value, 10) : null,
|
||||
color: document.getElementById('nvColor').value.trim() || null,
|
||||
owner_name: document.getElementById('nvOwner').value.trim() || null,
|
||||
branch_id: currentOrder ? currentOrder.branch_id : null
|
||||
branch_id: (currentOrder ? currentOrder.branch_id : null) || (window.POS_USER ? window.POS_USER.branch_id : null)
|
||||
};
|
||||
try {
|
||||
var res = await api('POST', '/vehicles', payload);
|
||||
var label = plate + (payload.make ? ' · ' + payload.make : '') + (payload.model ? ' ' + payload.model : '');
|
||||
selectedEditVehicle = {id: res.id, label: label.trim()};
|
||||
document.getElementById('eoVehicleSearch').value = selectedEditVehicle.label;
|
||||
document.getElementById('eoVehicleId').value = res.id;
|
||||
if (newVehicleContext === 'new') {
|
||||
var sel = document.getElementById('noVehicle');
|
||||
var opt = document.createElement('option');
|
||||
opt.value = res.id;
|
||||
opt.textContent = label.trim();
|
||||
sel.appendChild(opt);
|
||||
sel.value = res.id;
|
||||
// also add to cached vehicles array if present
|
||||
if (typeof vehicles !== 'undefined') {
|
||||
vehicles.push({id: res.id, plate: plate, vin: vin, make: payload.make, model: payload.model, year: payload.year, color: payload.color, owner_name: payload.owner_name});
|
||||
}
|
||||
} else {
|
||||
selectedEditVehicle = {id: res.id, label: label.trim()};
|
||||
document.getElementById('eoVehicleSearch').value = selectedEditVehicle.label;
|
||||
document.getElementById('eoVehicleId').value = res.id;
|
||||
}
|
||||
toast('Vehículo creado');
|
||||
closeNewVehicleModal();
|
||||
} catch (e) {
|
||||
@@ -1159,6 +1178,7 @@ var Workshop = (function() {
|
||||
searchCustomersForSO: searchCustomersForSO,
|
||||
searchVehiclesForSO: searchVehiclesForSO,
|
||||
openNewVehicleModal: openNewVehicleModal,
|
||||
openNewVehicleModalFromNewOrder: openNewVehicleModalFromNewOrder,
|
||||
closeNewVehicleModal: closeNewVehicleModal,
|
||||
saveNewVehicle: saveNewVehicle,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user