mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-17 12:35:46 +00:00
Adds basic "index" page for Return Order model
This commit is contained in:
@ -29,6 +29,7 @@
|
||||
completePendingShipments,
|
||||
createPurchaseOrder,
|
||||
createPurchaseOrderLineItem,
|
||||
createReturnOrder,
|
||||
createSalesOrder,
|
||||
createSalesOrderLineItem,
|
||||
createSalesOrderShipment,
|
||||
@ -41,6 +42,7 @@
|
||||
loadPurchaseOrderLineItemTable,
|
||||
loadPurchaseOrderExtraLineTable
|
||||
loadPurchaseOrderTable,
|
||||
loadReturnOrderTable,
|
||||
loadSalesOrderAllocationTable,
|
||||
loadSalesOrderLineItemTable,
|
||||
loadSalesOrderExtraLineTable
|
||||
@ -536,9 +538,7 @@ function salesOrderFields(options={}) {
|
||||
title: '{% trans "Add Customer" %}',
|
||||
fields: function() {
|
||||
var fields = companyFormFields();
|
||||
|
||||
fields.is_customer.value = true;
|
||||
|
||||
return fields;
|
||||
}
|
||||
}
|
||||
@ -573,10 +573,10 @@ function createSalesOrder(options={}) {
|
||||
constructForm('{% url "api-so-list" %}', {
|
||||
method: 'POST',
|
||||
fields: fields,
|
||||
title: '{% trans "Create Sales Order" %}',
|
||||
onSuccess: function(data) {
|
||||
location.href = `/order/sales-order/${data.pk}/`;
|
||||
},
|
||||
title: '{% trans "Create Sales Order" %}',
|
||||
});
|
||||
}
|
||||
|
||||
@ -4662,3 +4662,163 @@ function loadSalesOrderExtraLineTable(table, options={}) {
|
||||
columns: columns,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Construct a set of fields for a ReturnOrder form
|
||||
*/
|
||||
function returnOrderFields(options={}) {
|
||||
|
||||
let fields = {
|
||||
reference: {
|
||||
icon: 'fa-hashtag',
|
||||
},
|
||||
description: {},
|
||||
customer: {
|
||||
icon: 'fa-user-tie',
|
||||
secondary: {
|
||||
title: '{% trans "Add Customer" %}',
|
||||
fields: function() {
|
||||
var fields = companyFormFields();
|
||||
fields.is_customer.value = true;
|
||||
return fields;
|
||||
}
|
||||
}
|
||||
},
|
||||
customer_reference: {},
|
||||
link: {
|
||||
icon: 'fa-link',
|
||||
},
|
||||
responsible: {
|
||||
icon: 'fa-user',
|
||||
}
|
||||
};
|
||||
|
||||
return fields;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Create a new Return Order
|
||||
*/
|
||||
function createReturnOrder(options={}) {
|
||||
let fields = returnOrderFields(options);
|
||||
|
||||
if (options.customer) {
|
||||
fields.customer.value = options.customer;
|
||||
}
|
||||
|
||||
constructForm('{% url "api-return-order-list" %}', {
|
||||
method: 'POST',
|
||||
fields: fields,
|
||||
title: '{% trans "Create Return Order" %}',
|
||||
onSuccess: function(data) {
|
||||
location.href = `/order/return-order/${data.pk}/`;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Load a table of return orders
|
||||
*/
|
||||
function loadReturnOrderTable(table, options={}) {
|
||||
|
||||
// Ensure the table starts in a known state
|
||||
$(table).bootstrapTable('destroy');
|
||||
|
||||
options.params = options.params || {};
|
||||
options.params['customer_detail'] = true;
|
||||
|
||||
var filters = loadTableFilters('returnorder');
|
||||
|
||||
for (var key in options.params) {
|
||||
filters[key] = options.params[key];
|
||||
}
|
||||
|
||||
setupFilterList('returnorder', $(table), '#filter-list-returnorder', {download: true});
|
||||
|
||||
let display_mode = inventreeLoad('returnorder-table-display-mode', 'list');
|
||||
|
||||
let is_calendar = display_mode == 'calendar';
|
||||
|
||||
$(table).inventreeTable({
|
||||
url: '{% url "api-return-order-list" %}',
|
||||
queryParams: filters,
|
||||
name: 'returnorder',
|
||||
sidePagination: 'server',
|
||||
original: options.params,
|
||||
showColumns: !is_calendar,
|
||||
search: !is_calendar,
|
||||
showCustomViewButton: false,
|
||||
showCustomView: is_calendar,
|
||||
disablePagination: is_calendar,
|
||||
formatNoMatches: function() {
|
||||
return '{% trans "No return orders found" %}';
|
||||
},
|
||||
onRefresh: function() {
|
||||
loadReturnOrderTable(table, options);
|
||||
},
|
||||
onLoadSuccess: function() {
|
||||
// TODO
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
title: '',
|
||||
checkbox: true,
|
||||
visible: true,
|
||||
switchable: false,
|
||||
},
|
||||
{
|
||||
sortable: true,
|
||||
field: 'reference',
|
||||
title: '{% trans "Return Order" %}',
|
||||
formatter: function(value, row) {
|
||||
var html = renderLink(value, `/order/return-order/${row.pk}/`);
|
||||
return html;
|
||||
},
|
||||
},
|
||||
{
|
||||
sortable: true,
|
||||
sortName: 'customer__name',
|
||||
field: 'customer_detail',
|
||||
title: '{% trans "Customer" %}',
|
||||
formatter: function(value, row) {
|
||||
|
||||
if (!row.customer_detail) {
|
||||
return '{% trans "Invalid Customer" %}';
|
||||
}
|
||||
|
||||
return imageHoverIcon(row.customer_detail.image) + renderLink(row.customer_detail.name, `/company/${row.customer}/sales-orders/`);
|
||||
}
|
||||
},
|
||||
{
|
||||
sortable: true,
|
||||
field: 'customer_reference',
|
||||
title: '{% trans "Customer Reference" %}',
|
||||
},
|
||||
{
|
||||
sortable: false,
|
||||
field: 'description',
|
||||
title: '{% trans "Description" %}',
|
||||
},
|
||||
{
|
||||
sortable: true,
|
||||
field: 'status',
|
||||
title: '{% trans "Status" %}',
|
||||
formatter: function(value, row) {
|
||||
return 'todo';
|
||||
return salesOrderStatusDisplay(row.status);
|
||||
}
|
||||
},
|
||||
{
|
||||
sortable: true,
|
||||
field: 'creation_date',
|
||||
title: '{% trans "Creation Date" %}',
|
||||
formatter: function(value) {
|
||||
return renderDate(value);
|
||||
}
|
||||
},
|
||||
]
|
||||
});
|
||||
}
|
||||
|
@ -47,18 +47,23 @@
|
||||
<ul class='dropdown-menu' aria-labelledby="buyMenuDropdown">
|
||||
<li><a class='dropdown-item' href="{% url 'supplier-index' %}"><span class='fas fa-building icon-header'></span>{% trans "Suppliers" %}</a></li>
|
||||
<li><a class='dropdown-item' href="{% url 'manufacturer-index' %}"><span class='fas fa-industry icon-header'></span>{% trans "Manufacturers" %}</a></li>
|
||||
<li><a class='dropdown-item' href="{% url 'po-index' %}"><span class='fas fa-list icon-header'></span>{% trans "Purchase Orders" %}</a></li>
|
||||
<li><a class='dropdown-item' href="{% url 'purchase-order-index' %}"><span class='fas fa-list icon-header'></span>{% trans "Purchase Orders" %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if roles.sales_order.view %}
|
||||
{% if roles.sales_order.view or roles.returns.view %}
|
||||
<li class='nav-item dropdown'>
|
||||
<a class='nav-link dropdown-toggle' href='#' id='sellMenuDropdown' role='button' data-bs-toggle='dropdown'>
|
||||
<span class='fas fa-truck icon-header'></span>{% trans "Sell" %}
|
||||
</a>
|
||||
<ul class='dropdown-menu'>
|
||||
<li><a class='dropdown-item' href="{% url 'customer-index' %}"><span class='fas fa-user-tie icon-header'></span>{% trans "Customers" %}</a>
|
||||
<li><a class='dropdown-item' href="{% url 'so-index' %}"><span class='fas fa-list icon-header'></span>{% trans "Sales Orders" %}</a></li>
|
||||
{% if roles.sales_order.view %}
|
||||
<li><a class='dropdown-item' href="{% url 'sales-order-index' %}"><span class='fas fa-list icon-header'></span>{% trans "Sales Orders" %}</a></li>
|
||||
{% endif %}
|
||||
{% if roles.returns.view %}
|
||||
<li><a class='dropdown-item' href="{% url 'return-order-index' %}"><span class='fas fa-undo icon-header'></span>{% trans "Returns" %}</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
Reference in New Issue
Block a user