diff --git a/pos/static/js/workshop.js b/pos/static/js/workshop.js
index f70075f..61ed494 100644
--- a/pos/static/js/workshop.js
+++ b/pos/static/js/workshop.js
@@ -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,
};
diff --git a/pos/templates/workshop.html b/pos/templates/workshop.html
index d5e2b5a..b682f6a 100644
--- a/pos/templates/workshop.html
+++ b/pos/templates/workshop.html
@@ -15,7 +15,7 @@
-
+