Sales order tables (#3225)

* Add buttons to expand / collapse shipment tables

(cherry picked from commit 0af9fc473e)

* Updates for sales order lines table

(cherry picked from commit d99ec062ad)
This commit is contained in:
Oliver 2022-06-18 22:22:00 +10:00 committed by GitHub
parent eb255e84d8
commit 652e6fb83e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 45 additions and 17 deletions

View File

@ -275,13 +275,8 @@
</div>
{% if build.has_tracked_bom_items %}
<button id='outputs-expand' class='btn btn-outline-secondary' type='button' title='{% trans "Expand all build output rows" %}'>
<span class='fas fa-expand'></span>
</button>
<button id='outputs-collapse' class='btn btn-outline-secondary' type='button' title='{% trans "Collapse all build output rows" %}'>
<span class='fas fa-compress'></span>
</button>
{% include "expand_rows.html" with label="outputs" %}
{% include "collapse_rows.html" with label="outputs" %}
{% endif %}
{% include "filter_list.html" with id='incompletebuilditems' %}

View File

@ -28,6 +28,8 @@
<div class='panel-content'>
<div id='order-toolbar-buttons' class='btn-group' style='float: right;'>
<div class='btn-group'>
{% include "expand_rows.html" with label="sales-lines" %}
{% include "collapse_rows.html" with label="sales-lines" %}
{% include "filter_list.html" with id="sales-order-lines" %}
</div>
</div>
@ -86,6 +88,8 @@
{% if roles.sales_order.change %}
<div id='pending-shipment-toolbar' class='btn-group' style='float: right;'>
<div class='btn-group' role='group'>
{% include "expand_rows.html" with label="pending-shipments" %}
{% include "collapse_rows.html" with label="pending-shipments" %}
{% include "filter_list.html" with id="pending-shipments" %}
</div>
</div>
@ -102,6 +106,8 @@
<div class='panel-content'>
<div id='completed-shipment-toolbar' class='btn-group' style='float: right;'>
<div class='btn-group' role='group'>
{% include "expand_rows.html" with label="completed-shipments" %}
{% include "collapse_rows.html" with label="completed-shipments" %}
{% include "filter_list.html" with id="completed-shipments" %}
</div>
</div>

View File

@ -0,0 +1,5 @@
{% load i18n %}
<button id='{{ label }}-collapse' class='btn btn-outline-secondary' type='button' title='{% trans "Collapse all rows" %}'>
<span class='fas fa-compress'></span>
</button>

View File

@ -0,0 +1,5 @@
{% load i18n %}
<button id='{{ label }}-expand' class='btn btn-outline-secondary' type='button' title='{% trans "Expand all rows" %}'>
<span class='fas fa-expand'></span>
</button>

View File

@ -2540,6 +2540,17 @@ function loadSalesOrderShipmentTable(table, options={}) {
setupFilterList('salesordershipment', $(table), options.filter_target);
// Add callbacks for expand / collapse buttons
var prefix = options.shipped ? 'completed' : 'pending';
$(`#${prefix}-shipments-expand`).click(function() {
$(table).bootstrapTable('expandAllRows');
});
$(`#${prefix}-shipments-collapse`).click(function() {
$(table).bootstrapTable('collapseAllRows');
});
function makeShipmentActions(row) {
// Construct "actions" for the given shipment row
var pk = row.pk;
@ -3416,6 +3427,15 @@ function loadSalesOrderLineItemTable(table, options={}) {
// Show detail view if the PurchaseOrder is PENDING or SHIPPED
var show_detail = pending || shipped;
// Add callbacks for expand / collapse buttons
$('#sales-lines-expand').click(function() {
$(table).bootstrapTable('expandAllRows');
});
$('#sales-lines-collapse').click(function() {
$(table).bootstrapTable('collapseAllRows');
});
// Table columns to display
var columns = [
/*
@ -3543,29 +3563,26 @@ function loadSalesOrderLineItemTable(table, options={}) {
title: '{% trans "Available Stock" %}',
formatter: function(value, row) {
var available = row.available_stock;
var total = row.part_detail.stock;
var required = Math.max(row.quantity - row.allocated - row.shipped, 0);
var html = '';
if (total > 0) {
if (available > 0) {
var url = `/part/${row.part}/?display=part-stock`;
var text = available;
if (total != available) {
text += ` / ${total}`;
}
html = renderLink(text, url);
} else {
html += `<span class='badge rounded-pill bg-danger'>{% trans "No Stock Available" %}</span>`;
}
if (available >= required) {
html += `<span class='fas fa-check-circle icon-green float-right' title='{% trans "Sufficient stock available" %}'></span>`;
} else {
html += `<span class='fas fa-times-circle icon-red float-right' title='{% trans "Insufficient stock available" %}'></span>`;
if (required > 0) {
if (available >= required) {
html += `<span class='fas fa-check-circle icon-green float-right' title='{% trans "Sufficient stock available" %}'></span>`;
} else {
html += `<span class='fas fa-times-circle icon-red float-right' title='{% trans "Insufficient stock available" %}'></span>`;
}
}
return html;