Commit e5f44f2b by François C.

Merge branch '2947-merged-orders-order-by-po' into 'dev_cooperatic'

[REC] for grouped orders display order in list for ordering

See merge request !170
parents acd357d1 79cebb4d
Pipeline #2178 passed with stage
in 1 minute 29 seconds
......@@ -355,6 +355,10 @@
- RECEPTION_SHELF_LABEL_PRINT = True
- DISPLAY_COL_AUTRES = True
Display "Autres" column (showing select with action "rupture fournisseur")
- COEFF_MAG_ID = 1
DB coeff id, needed to compute product shelf price
......
......@@ -188,6 +188,11 @@ div#container_edition {
padding-bottom: 15px;
}
.title_partner_key {
font-weight: bolder;
font-size: 2rem;
}
/* Accordion style */
/* Style the buttons that are used to open and close the accordion panel */
......@@ -247,5 +252,9 @@ hr {
#main_content {width: 100%;}
.select_product_action {
max-width: 15px;
max-width: 5px;
}
.toProcess_line_edit, .toProcess_line_valid {
min-width: 11px;
}
\ No newline at end of file
......@@ -365,9 +365,7 @@ function display_orders_table() {
table_orders.clear().destroy();
$('#orders').empty();
}
for (let j in orders) {
console.log(orders[j].id);
}
table_orders = $('#orders').DataTable({
data: orders,
columns:[
......
......@@ -282,6 +282,11 @@ function fetch_data() {
}
} else {
// Add order key in products
let order_full_data = orders[order_data.id_po];
order_data.po[i].order_key = order_full_data.key;
// Add product to list_to_process
list_to_process.push(order_data.po[i]);
......@@ -310,7 +315,7 @@ function fetch_data() {
// Init Data & listeners
function initLists() {
try {
// Un-disable validation buttons now the data's here
// Enable validation buttons now the data's here
if (reception_status == "False") {
document.getElementById("valid_qty").disabled = false;
document.getElementById("valid_all_qties").disabled = false;
......@@ -344,10 +349,18 @@ function initLists() {
}
}
// Init table for to_process content
table_to_process = $('#table_to_process').DataTable({
data: list_to_process,
columns:[
let columns_to_process = [];
let columns_processed = [];
// In case of group orders, add "Order" as first column for ordering
if (Object.keys(orders).length > 1) {
columns_to_process.push({
data:"order_key", title: "n°", className: "dt-body-center",
width: "20px"
});
}
columns_to_process = columns_to_process.concat([
{data:"product_id.0", title: "id", visible: false},
{data:"shelf_sortorder", title: "Rayon", className: "dt-body-center"},
{
......@@ -382,41 +395,26 @@ function initLists() {
},
{
title:"Editer",
defaultContent: "<a class='btn' id='toProcess_line_edit' href='#'><i class='far fa-edit'></i></a>",
defaultContent: "<a class='btn toProcess_line_edit' href='#'><i class='far fa-edit'></i></a>",
className:"dt-body-center",
orderable: false
},
{
title:"Valider",
defaultContent: "<a class='btn' id='toProcess_line_valid' href='#'><i class='far fa-check-square'></i></a>",
defaultContent: "<a class='btn toProcess_line_valid' href='#'><i class='far fa-check-square'></i></a>",
className:"dt-body-center",
orderable: false
},
{
title:"Autres",
title:"",
defaultContent: "<select class='select_product_action'><option value=''></option><option value='supplier_shortage'>Rupture fournisseur</option></select>",
className:"dt-body-center",
orderable: false,
visible: display_autres === "True"
}
],
rowId : "product_id.0",
order: [
[
0,
"asc"
]
],
scrollY: "33vh",
scrollCollapse: true,
paging: false,
dom: 'lrtip', // Remove the search input from that table
language: {url : '/static/js/datatables/french.json'}
});
// Init table for processed content
table_processed = $('#table_processed').DataTable({
data: list_processed,
columns:[
]);
columns_processed = [
{data:"row_counter", title:"row_counter", visible: false}, // Hidden counter to display last row first
{data:"shelf_sortorder", title: "Rayon", className:"dt-body-center"},
{
......@@ -487,7 +485,33 @@ function initLists() {
+ "</select>";
}
}
];
console.log(columns_to_process);
// Init table for to_process content
table_to_process = $('#table_to_process').DataTable({
data: list_to_process,
columns: columns_to_process,
rowId : "product_id.0",
order: [
[
0,
"asc"
]
],
scrollY: "33vh",
scrollCollapse: true,
paging: false,
dom: 'lrtip', // Remove the search input from that table
language: {url : '/static/js/datatables/french.json'}
});
// Init table for processed content
table_processed = $('#table_processed').DataTable({
data: list_processed,
columns: columns_processed,
rowId : "product_id.0",
order: [
[
......@@ -509,7 +533,7 @@ function initLists() {
/* Listeners */
// Direct valid from to_process
$('#table_to_process tbody').on('click', 'a#toProcess_line_valid', function () {
$('#table_to_process tbody').on('click', 'a.toProcess_line_valid', function () {
if (is_time_to('reception_direct_valid_order_line', 500)) {
try {
let row = table_to_process.row($(this).parents('tr'));
......@@ -542,7 +566,7 @@ function initLists() {
});
// Edit to_process line
$('#table_to_process tbody').on('click', 'a#toProcess_line_edit', function () {
$('#table_to_process tbody').on('click', 'a.toProcess_line_edit', function () {
try {
// Prevent editing mutiple lines at a time
if (editing_product == null) {
......@@ -1657,7 +1681,7 @@ function init_dom(partners_display_data) {
};
}
dbc.bulkDocs(Object.values(orders)).then((response) => {
dbc.bulkDocs(Object.values(orders)).then(() => {
back();
})
.catch((err) => {
......@@ -1964,12 +1988,13 @@ $(document).ready(function() {
include_docs: true
}).then(function (result) {
// for each order in the group
for (let order_id of group_ids) {
for (let i in group_ids) {
// find order
let order_id = group_ids[i];
let order = result.rows.find(el => el.id == 'order_' + order_id);
order = order.doc;
order.key = parseInt(i) + 1;
orders[order_id] = order;
// Add each order's already updated and validated products to common list
......@@ -1982,7 +2007,7 @@ $(document).ready(function() {
}
// Prepare data to display in 'partner name' area
partners_display_data.push(order['partner'] + ' du ' + order['date_order']);
partners_display_data.push(`<span class="title_partner_key">${order.key}.</span> ${order.partner} du ${order.date_order}`);
}
// Set current reception status: take first order's
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment