Commit e75905fd by François C.

Merge branch '2997-reception-error-bip-products' into 'dev_cooperatic'

REC: fix product scanned 2nd time

See merge request !176
parents 26bae4b3 d9189217
Pipeline #2197 failed with stage
in 1 minute 29 seconds
...@@ -80,6 +80,7 @@ function select_product_from_bc(barcode) { ...@@ -80,6 +80,7 @@ function select_product_from_bc(barcode) {
var foundProduct = {data: null, place: null}; var foundProduct = {data: null, place: null};
// Does the product come from to_process ?
$.each(list_to_process, function(i, e) { $.each(list_to_process, function(i, e) {
if (e.product_id[0] == scannedProduct.data[barcodes['keys']['id']]) { if (e.product_id[0] == scannedProduct.data[barcodes['keys']['id']]) {
foundProduct.data = e; foundProduct.data = e;
...@@ -87,11 +88,12 @@ function select_product_from_bc(barcode) { ...@@ -87,11 +88,12 @@ function select_product_from_bc(barcode) {
} }
}); });
// Does the product come from processed ?
if (foundProduct.data == null) { if (foundProduct.data == null) {
$.each(list_processed, function(i, e) { $.each(list_processed, function(i, e) {
if (e.product_id[0] == scannedProduct.data[barcodes['keys']['id']]) { if (e.product_id[0] == scannedProduct.data[barcodes['keys']['id']]) {
foundProduct.data = JSON.parse(JSON.stringify(e)); foundProduct.data = JSON.parse(JSON.stringify(e));
foundProduct.data.product_qty = null; foundProduct.data.product_qty = null; // Set qty to null from product already scanned
foundProduct.place = 'processed'; foundProduct.place = 'processed';
} }
}); });
...@@ -101,6 +103,7 @@ function select_product_from_bc(barcode) { ...@@ -101,6 +103,7 @@ function select_product_from_bc(barcode) {
if (foundProduct.data.product_uom[0] == 21) { //if qty is in weight if (foundProduct.data.product_uom[0] == 21) { //if qty is in weight
if (scannedProduct.rule === 'weight') { if (scannedProduct.rule === 'weight') {
editing_product = foundProduct.data; editing_product = foundProduct.data;
foundProduct.weightAddition = true; // product weight is directly added
editProductInfo(foundProduct.data, scannedProduct.qty); editProductInfo(foundProduct.data, scannedProduct.qty);
editing_product = null; editing_product = null;
} else if (scannedProduct.rule === 'price_to_weight') { } else if (scannedProduct.rule === 'price_to_weight') {
...@@ -113,11 +116,13 @@ function select_product_from_bc(barcode) { ...@@ -113,11 +116,13 @@ function select_product_from_bc(barcode) {
if (foundProduct.data.product_uom[0] != 21) { if (foundProduct.data.product_uom[0] != 21) {
setLineEdition(foundProduct.data); setLineEdition(foundProduct.data);
} }
if (foundProduct.place === 'to_process') { if (foundProduct.place === 'to_process') {
let row = table_to_process.row($('#'+foundProduct.data.product_id[0])); let row = table_to_process.row($('#'+foundProduct.data.product_id[0]));
remove_from_toProcess(row, foundProduct.data); remove_from_toProcess(row, foundProduct.data);
} }
// Don't remove product from processed list
} }
} }
} }
...@@ -1038,26 +1043,34 @@ function editProductInfo (productToEdit, value = null, batch = false) { ...@@ -1038,26 +1043,34 @@ function editProductInfo (productToEdit, value = null, batch = false) {
newValue = isFinite(newValue) ? newValue : 0; newValue = isFinite(newValue) ? newValue : 0;
} }
// addition mode = weight is directly added from scanned product
$.each(list_processed, function(i, e) { $.each(list_processed, function(i, e) {
if (e.product_id[0] == productToEdit.product_id[0]) { if (
e.product_id[0] == productToEdit.product_id[0]
&& "weightAddition" in productToEdit
&& productToEdit.weightAddition === true
) {
addition = true; addition = true;
productToEdit = e; productToEdit = e;
newValue = Number((newValue + productToEdit.product_qty).toFixed(3)); newValue = Number((newValue + productToEdit.product_qty).toFixed(3));
} }
}); });
// If qty edition & Check if qty changed // If qty edition & Check if qty changed
if (reception_status == "False") { if (reception_status == "False") {
firstUpdate = (index == -1); //first update firstUpdate = (index == -1); //first update
if (productToEdit.product_qty != newValue) { if (productToEdit.product_qty != newValue) {
if (firstUpdate) { if (firstUpdate) {
productToEdit.old_qty = productToEdit.product_qty; productToEdit.old_qty = productToEdit.product_qty;
} else { } else {
//if it is not the first update AND newValue is equal to the validation qty then the product is valid //if it is not the first update AND newValue is equal to the validation qty then the product is valid (qty not changed)
isValid = (newValue === productToEdit.old_qty); isValid = (newValue === productToEdit.old_qty);
} }
// Edit product info // Edit product info
productToEdit.product_qty = newValue; productToEdit.product_qty = newValue;
/* /*
If qty has changed, we choose to set detailed values as follow: If qty has changed, we choose to set detailed values as follow:
1 package (product_qty_package) of X products (package_qty) 1 package (product_qty_package) of X products (package_qty)
...@@ -1131,8 +1144,10 @@ function editProductInfo (productToEdit, value = null, batch = false) { ...@@ -1131,8 +1144,10 @@ function editProductInfo (productToEdit, value = null, batch = false) {
//if product is valid -> remove from updated_products list and add to valid_products list //if product is valid -> remove from updated_products list and add to valid_products list
//removing from updated_products //removing from updated_products
for (i in orders[productToEdit.id_po]['updated_products']) { for (i in orders[productToEdit.id_po]['updated_products']) {
if (orders[productToEdit.id_po]['updated_products'][i]['product_id'][0] if (
== productToEdit['product_id'][0]) { orders[productToEdit.id_po]['updated_products'][i]['product_id'][0]
== productToEdit['product_id'][0]
) {
orders[productToEdit.id_po]['updated_products'].splice(i, 1); orders[productToEdit.id_po]['updated_products'].splice(i, 1);
} }
} }
...@@ -1160,7 +1175,10 @@ function editProductInfo (productToEdit, value = null, batch = false) { ...@@ -1160,7 +1175,10 @@ function editProductInfo (productToEdit, value = null, batch = false) {
update_distant_order(productToEdit.id_po); update_distant_order(productToEdit.id_po);
} }
if (addition) { // Remove product from processed list if:
// - we're adding directly weight from scanned product
// - product comes from processed list
if (addition === true || firstUpdate === false) {
let row = table_processed.row($('#'+productToEdit.product_id[0])); let row = table_processed.row($('#'+productToEdit.product_id[0]));
remove_from_processed(row, productToEdit); remove_from_processed(row, productToEdit);
......
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