Use available quantities in part table, enhance stock badge

This commit is contained in:
Kálmán Rózsahegyi 2022-04-02 15:58:04 +02:00
parent a9f7457c12
commit d912846e41

View File

@ -1160,12 +1160,14 @@ function partGridTile(part) {
if (!part.in_stock) { if (!part.in_stock) {
stock = `<span class='badge rounded-pill bg-danger'>{% trans "No Stock" %}</span>`; stock = `<span class='badge rounded-pill bg-danger'>{% trans "No Stock" %}</span>`;
} else if (!part.unallocated_stock) {
stock = `<span class='badge rounded-pill bg-warning'>{% trans "Not available" %}</span>`;
} }
rows += `<tr><td><b>{% trans "Stock" %}</b></td><td>${stock}</td></tr>`; rows += `<tr><td><b>{% trans "Stock" %}</b></td><td>${stock}</td></tr>`;
if (part.on_order) { if (part.ordering) {
rows += `<tr><td><b>{$ trans "On Order" %}</b></td><td>${part.on_order}</td></tr>`; rows += `<tr><td><b>{% trans "On Order" %}</b></td><td>${part.ordering}</td></tr>`;
} }
if (part.building) { if (part.building) {
@ -1322,31 +1324,47 @@ function loadPartTable(table, url, options={}) {
columns.push(col); columns.push(col);
col = { col = {
field: 'in_stock', field: 'unallocated_stock',
title: '{% trans "Stock" %}', title: '{% trans "Available" %}',
searchable: false, searchable: false,
formatter: function(value, row) { formatter: function(value, row) {
var link = '?display=part-stock'; var link = '?display=part-stock';
if (value) { if (row.in_stock) {
// There IS stock available for this part // There IS stock available for this part
// Is stock "low" (below the 'minimum_stock' quantity)? // Is stock "low" (below the 'minimum_stock' quantity)?
if (row.minimum_stock && row.minimum_stock > value) { if (row.minimum_stock && row.minimum_stock > row.in_stock) {
value += `<span class='badge badge-right rounded-pill bg-warning'>{% trans "Low stock" %}</span>`; value += `<span class='badge badge-right rounded-pill bg-warning'>{% trans "Low stock" %}</span>`;
} else if (value == 0) {
if (row.ordering) {
// There is no available stock, but stock is on order
value = `0<span class='badge badge-right rounded-pill bg-info'>{% trans "On Order" %}: ${row.ordering}</span>`;
link = '?display=purchase-orders';
} else if (row.building) {
// There is no available stock, but stock is being built
value = `0<span class='badge badge-right rounded-pill bg-info'>{% trans "Building" %}: ${row.building}</span>`;
link = '?display=build-orders';
} else {
// There is no available stock
value = `0<span class='badge badge-right rounded-pill bg-warning'>{% trans "Not available" %}</span>`;
}
} }
} else if (row.on_order) {
// There is no stock available, but stock is on order
value = `0<span class='badge badge-right rounded-pill bg-info'>{% trans "On Order" %}: ${row.on_order}</span>`;
link = '?display=purchase-orders';
} else if (row.building) {
// There is no stock available, but stock is being built
value = `0<span class='badge badge-right rounded-pill bg-info'>{% trans "Building" %}: ${row.building}</span>`;
link = '?display=build-orders';
} else { } else {
// There is no stock available // There IS NO stock available for this part
value = `0<span class='badge badge-right rounded-pill bg-danger'>{% trans "No Stock" %}</span>`;
if (row.ordering) {
// There is no stock, but stock is on order
value = `0<span class='badge badge-right rounded-pill bg-info'>{% trans "On Order" %}: ${row.ordering}</span>`;
link = '?display=purchase-orders';
} else if (row.building) {
// There is no stock, but stock is being built
value = `0<span class='badge badge-right rounded-pill bg-info'>{% trans "Building" %}: ${row.building}</span>`;
link = '?display=build-orders';
} else {
// There is no stock
value = `0<span class='badge badge-right rounded-pill bg-danger'>{% trans "No Stock" %}</span>`;
}
} }
return renderLink(value, `/part/${row.pk}/${link}`); return renderLink(value, `/part/${row.pk}/${link}`);