diff --git a/InvenTree/templates/js/translated/order.js b/InvenTree/templates/js/translated/order.js index 8a8f45103c..c6dd773373 100644 --- a/InvenTree/templates/js/translated/order.js +++ b/InvenTree/templates/js/translated/order.js @@ -78,7 +78,13 @@ function createPurchaseOrder(options={}) { } }, onSuccess: function(data) { - location.href = `/order/purchase-order/${data.pk}/`; + + if (options.onSuccess) { + options.onSuccess(data); + } else { + // Default action is to redirect browser to the new PO + location.href = `/order/purchase-order/${data.pk}/`; + } }, title: '{% trans "Create Purchase Order" %}', }); @@ -109,27 +115,47 @@ function newSupplierPartFromOrderWizard(e) { var part = $(src).attr('part'); - console.log('part: ' + part); - if (!part) { part = $(src).closest('button').attr('part'); console.log('parent: ' + part); } - launchModalForm("/supplier-part/new/", { - modal: '#modal-form-secondary', - data: { - part: part, - }, - success: function(response) { - /* A new supplier part has been created! */ + createSupplierPart({ + part: part, + onSuccess: function(data) { + + // TODO: 2021-08-23 - This whole form wizard needs to be refactored. + // In the future, use the API forms functionality to add the new item + // For now, this hack will have to do... - var dropdown = '#id_supplier_part_' + part; + var dropdown = `#id_supplier_part_${part}`; - var option = new Option(response.text, response.pk, true, true); + var pk = data.pk; - $('#modal-form').find(dropdown).append(option).trigger('change'); - }, + inventreeGet( + `/api/company/part/${pk}/`, + { + supplier_detail: true, + }, + { + success: function(response) { + var text = ''; + + if (response.supplier_detail) { + text += response.supplier_detail.name; + text += " | "; + } + + text += response.SKU; + + var option = new Option(text, pk, true, true); + + $('#modal-form').find(dropdown).append(option).trigger('change'); + } + } + ) + + } }); } @@ -145,21 +171,41 @@ function newPurchaseOrderFromOrderWizard(e) { var supplier = $(src).attr('supplierid'); - launchModalForm("/order/purchase-order/new/", { - modal: '#modal-form-secondary', - data: { - supplier: supplier, - }, - success: function(response) { - /* A new purchase order has been created! */ + createPurchaseOrder({ + supplier: supplier, + onSuccess: function(data) { - var dropdown = '#id-purchase-order-' + supplier; + // TODO: 2021-08-23 - The whole form wizard needs to be refactored + // In the future, the drop-down should be using a dynamic AJAX request + // to fill out the select2 options! - var option = new Option(response.text, response.pk, true, true); + var pk = data.pk; - $('#modal-form').find(dropdown).append(option).trigger('change'); - }, - }); + inventreeGet( + `/api/order/po/${pk}/`, + { + supplier_detail: true, + }, + { + success: function(response) { + var text = global_settings.PURCHASEORDER_REFERENCE_PREFIX || ''; + + text += response.reference; + + if (response.supplier_detail) { + text += ` ${response.supplier_detail.name}`; + } + + var dropdown = `#id-purchase-order-${supplier}`; + + var option = new Option(text, pk, true, true); + + $('#modal-form').find(dropdown).append(option).trigger('change'); + } + } + ) + } + }); } function editPurchaseOrderLineItem(e) {