mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
277 lines
7.7 KiB
JavaScript
277 lines
7.7 KiB
JavaScript
{% load i18n %}
|
|
{% load inventree_extras %}
|
|
|
|
function removeOrderRowFromOrderWizard(e) {
|
|
/* Remove a part selection from an order form. */
|
|
|
|
e = e || window.event;
|
|
|
|
var src = e.target || e.srcElement;
|
|
|
|
var row = $(src).attr('row');
|
|
|
|
$('#' + row).remove();
|
|
}
|
|
|
|
function newSupplierPartFromOrderWizard(e) {
|
|
/* Create a new supplier part directly from an order form.
|
|
* Launches a secondary modal and (if successful),
|
|
* back-populates the selected row.
|
|
*/
|
|
|
|
e = e || window.event;
|
|
|
|
var src = e.target || e.srcElement;
|
|
|
|
var part = $(src).attr('part-id');
|
|
|
|
launchModalForm("/supplier-part/new/", {
|
|
modal: '#modal-form-secondary',
|
|
data: {
|
|
part: part,
|
|
},
|
|
success: function(response) {
|
|
/* A new supplier part has been created! */
|
|
|
|
var dropdown = '#id_supplier_part_' + part;
|
|
|
|
var option = new Option(response.text, response.pk, true, true);
|
|
|
|
$('#modal-form').find(dropdown).append(option).trigger('change');
|
|
},
|
|
});
|
|
}
|
|
|
|
function newPurchaseOrderFromOrderWizard(e) {
|
|
/* Create a new purchase order directly from an order form.
|
|
* Launches a secondary modal and (if successful),
|
|
* back-fills the newly created purchase order.
|
|
*/
|
|
|
|
e = e || window.event;
|
|
|
|
var src = e.target || e.srcElement;
|
|
|
|
var supplier = $(src).attr('supplier-id');
|
|
|
|
launchModalForm("/order/purchase-order/new/", {
|
|
modal: '#modal-form-secondary',
|
|
data: {
|
|
supplier: supplier,
|
|
},
|
|
success: function(response) {
|
|
/* A new purchase order has been created! */
|
|
|
|
var dropdown = '#id-purchase-order-' + supplier;
|
|
|
|
var option = new Option(response.text, response.pk, true, true);
|
|
|
|
$('#modal-form').find(dropdown).append(option).trigger('change');
|
|
},
|
|
});
|
|
}
|
|
|
|
function editPurchaseOrderLineItem(e) {
|
|
|
|
/* Edit a purchase order line item in a modal form.
|
|
*/
|
|
|
|
e = e || window.event;
|
|
|
|
var src = e.target || e.srcElement;
|
|
|
|
var url = $(src).attr('url');
|
|
|
|
launchModalForm(url, {
|
|
reload: true,
|
|
});
|
|
}
|
|
|
|
function removePurchaseOrderLineItem(e) {
|
|
|
|
/* Delete a purchase order line item in a modal form
|
|
*/
|
|
|
|
e = e || window.event;
|
|
|
|
var src = e.target || e.srcElement;
|
|
|
|
var url = $(src).attr('url');
|
|
|
|
launchModalForm(url, {
|
|
reload: true,
|
|
});
|
|
}
|
|
|
|
|
|
function loadPurchaseOrderTable(table, options) {
|
|
/* Create a purchase-order table */
|
|
|
|
options.params = options.params || {};
|
|
|
|
options.params['supplier_detail'] = true;
|
|
|
|
var filters = loadTableFilters("purchaseorder");
|
|
|
|
for (var key in options.params) {
|
|
filters[key] = options.params[key];
|
|
}
|
|
|
|
setupFilterList("purchaseorder", $(table));
|
|
|
|
$(table).inventreeTable({
|
|
url: options.url,
|
|
queryParams: filters,
|
|
name: 'purchaseorder',
|
|
groupBy: false,
|
|
original: options.params,
|
|
formatNoMatches: function() { return "{% trans "No purchase orders found" %}"; },
|
|
columns: [
|
|
{
|
|
field: 'pk',
|
|
title: 'ID',
|
|
visible: false,
|
|
switchable: false,
|
|
},
|
|
{
|
|
sortable: true,
|
|
field: 'reference',
|
|
title: '{% trans "Purchase Order" %}',
|
|
formatter: function(value, row, index, field) {
|
|
|
|
var prefix = "{% inventree_setting 'PURCHASEORDER_REFERENCE_PREFIX' %}";
|
|
|
|
if (prefix) {
|
|
value = `${prefix}${value}`;
|
|
}
|
|
|
|
return renderLink(value, `/order/purchase-order/${row.pk}/`);
|
|
}
|
|
},
|
|
{
|
|
sortable: true,
|
|
field: 'supplier_detail',
|
|
title: '{% trans "Supplier" %}',
|
|
formatter: function(value, row, index, field) {
|
|
return imageHoverIcon(row.supplier_detail.image) + renderLink(row.supplier_detail.name, `/company/${row.supplier}/purchase-orders/`);
|
|
}
|
|
},
|
|
{
|
|
field: 'supplier_reference',
|
|
title: '{% trans "Supplier Reference" %}',
|
|
sortable: true,
|
|
},
|
|
{
|
|
sortable: true,
|
|
field: 'description',
|
|
title: '{% trans "Description" %}',
|
|
},
|
|
{
|
|
sortable: true,
|
|
field: 'status',
|
|
title: '{% trans "Status" %}',
|
|
formatter: function(value, row, index, field) {
|
|
return purchaseOrderStatusDisplay(row.status, row.status_text);
|
|
}
|
|
},
|
|
{
|
|
sortable: true,
|
|
field: 'creation_date',
|
|
title: '{% trans "Date" %}',
|
|
},
|
|
{
|
|
sortable: true,
|
|
field: 'line_items',
|
|
title: '{% trans "Items" %}'
|
|
},
|
|
],
|
|
});
|
|
}
|
|
|
|
function loadSalesOrderTable(table, options) {
|
|
|
|
options.params = options.params || {};
|
|
options.params['customer_detail'] = true;
|
|
|
|
var filters = loadTableFilters("salesorder");
|
|
|
|
for (var key in options.params) {
|
|
filters[key] = options.params[key];
|
|
}
|
|
|
|
setupFilterList("salesorder", $(table));
|
|
|
|
$(table).inventreeTable({
|
|
url: options.url,
|
|
queryParams: filters,
|
|
name: 'salesorder',
|
|
groupBy: false,
|
|
original: options.params,
|
|
formatNoMatches: function() { return "{% trans "No sales orders found" %}"; },
|
|
columns: [
|
|
{
|
|
field: 'pk',
|
|
title: 'ID',
|
|
visible: false,
|
|
switchable: false,
|
|
},
|
|
{
|
|
sortable: true,
|
|
field: 'reference',
|
|
title: '{% trans "Sales Order" %}',
|
|
formatter: function(value, row, index, field) {
|
|
|
|
var prefix = "{% inventree_setting 'SALESORDER_REFERENCE_PREFIX' %}";
|
|
|
|
if (prefix) {
|
|
value = `${prefix}${value}`;
|
|
}
|
|
|
|
return renderLink(value, `/order/sales-order/${row.pk}/`);
|
|
},
|
|
},
|
|
{
|
|
sortable: true,
|
|
field: 'customer_detail',
|
|
title: '{% trans "Customer" %}',
|
|
formatter: function(value, row, index, field) {
|
|
return imageHoverIcon(row.customer_detail.image) + renderLink(row.customer_detail.name, `/company/${row.customer}/sales-orders/`);
|
|
}
|
|
},
|
|
{
|
|
field: 'customer_reference',
|
|
title: '{% trans "Customer Reference" %}',
|
|
sotrable: true,
|
|
},
|
|
{
|
|
sortable: true,
|
|
field: 'description',
|
|
title: '{% trans "Description" %}',
|
|
},
|
|
{
|
|
sortable: true,
|
|
field: 'status',
|
|
title: '{% trans "Status" %}',
|
|
formatter: function(value, row, index, field) {
|
|
return salesOrderStatusDisplay(row.status, row.status_text);
|
|
}
|
|
},
|
|
{
|
|
sortable: true,
|
|
field: 'creation_date',
|
|
title: '{% trans "Creation Date" %}',
|
|
},
|
|
{
|
|
sortable: true,
|
|
field: 'shipment_date',
|
|
title: "{% trans "Shipment Date" %}",
|
|
},
|
|
{
|
|
sortable: true,
|
|
field: 'line_items',
|
|
title: '{% trans "Items" %}'
|
|
},
|
|
],
|
|
});
|
|
}
|