Commit da215ede by Damien Moulard

REC: fix product scanned 2nd time

parent bc6ab168
dev_cooperatic #5673_bug_calendrier_echange_service 3832-makeups-and-member-status-update 4081 4444_improve_presence_recording 4709 4778-reception-dont-get-finished-orders 4809-remove-shelf-value-col-to-reduce-server-load 4880-rapports-reception-faux 4950-douchage-appli-reception 5474-et-5462-Voir-les-rattrapages-choisis-dans-admin-bdm-et-corrige-lenteur-affichage-admin-rattrapages 5641-reception-trier-a-la-maj-prix-dans-ordre-de-pointage-quantites 6286_bug_encaissement_souscription_cheque_espece 6813-marking-parent-gone-when-unpairing-binom-does-not-unsuscribe-parent-from-shift-template 6832--certaines-absences-engendrent-une-erreur 7723-7559-change-purchase-order-workflow-django-side 7731-third-party-side-brinks-pos-export-not-working 7747-inventaire-par-article 7800-make-test-solution-work 7848-cannot-validate-qty-with-decimal-on-kg-product adaptation_supercafoutch adaptation_supercoop adaptation_supercoop_supercafoutch adpatation_chouette assistance_import_article coop_dev_necessitant_modules_bdm_odoo_modifies correctif_nb_rattrapages_creation_binome_avec_ajout_automatique_au_point_negatif export_capital_detenu fix_bug_process_picking fusion_custom_graoucoop graoucoop_backup graoucoop_prod graoucoop_tmp hot_fix_shelf_labels_auto_print impression_etiquettes_rayons integration_lien_precommandes_dans_espace_membre lacagette_prod local_branch meal-voucher-and-label-printer-software-bug migration-v12 pour_graoucoop_prod pour_version_prod_cagette refonte_espace_membre_sc retouches_tickets_supercoop sc-setup-stock-app supercafoutch-preprod supercafoutch-prod-20221003 supercafoutch_prod ticket_4146 supercafoutch_20250120_151258 supercafoutch_20250120_150340 supercafoutch_20240909_080630 supercafoutch_20240609_115709 supercafoutch_20240212_082431 supercafoutch_20240107_181851 supercafoutch_prod_until_240107 supercafoutch-prod-20221003 supercafoutch-230911 supercafoutch-230824 supercafoutch-230823 supercafoutch-230823-the-true-one migration-v12-tag lacagette_20240310_074751 lacagette_20240107_122554 lacagette_20240107_120916 graoucoop_20240609_122614 cagette_testtag cagette-230814 cagette-230630
2 merge requests!176REC: fix product scanned 2nd time,!218Ticket 4292
Pipeline #2193 passed with stage
in 1 minute 31 seconds
......@@ -80,6 +80,7 @@ function select_product_from_bc(barcode) {
var foundProduct = {data: null, place: null};
// Does the product come from to_process ?
$.each(list_to_process, function(i, e) {
if (e.product_id[0] == scannedProduct.data[barcodes['keys']['id']]) {
foundProduct.data = e;
......@@ -87,11 +88,12 @@ function select_product_from_bc(barcode) {
}
});
// Does the product come from processed ?
if (foundProduct.data == null) {
$.each(list_processed, function(i, e) {
if (e.product_id[0] == scannedProduct.data[barcodes['keys']['id']]) {
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';
}
});
......@@ -101,6 +103,7 @@ function select_product_from_bc(barcode) {
if (foundProduct.data.product_uom[0] == 21) { //if qty is in weight
if (scannedProduct.rule === 'weight') {
editing_product = foundProduct.data;
foundProduct.weightAddition = true; // product weight is directly added
editProductInfo(foundProduct.data, scannedProduct.qty);
editing_product = null;
} else if (scannedProduct.rule === 'price_to_weight') {
......@@ -113,11 +116,12 @@ function select_product_from_bc(barcode) {
if (foundProduct.data.product_uom[0] != 21) {
setLineEdition(foundProduct.data);
}
if (foundProduct.place === 'to_process') {
let row = table_to_process.row($('#'+foundProduct.data.product_id[0]));
remove_from_toProcess(row, foundProduct.data);
}
// Don't remove product from processed list
}
}
}
......@@ -1038,30 +1042,38 @@ function editProductInfo (productToEdit, value = null, batch = false) {
newValue = isFinite(newValue) ? newValue : 0;
}
// addition mode = weight is directly added from scanned product
$.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;
productToEdit = e;
newValue = Number((newValue + productToEdit.product_qty).toFixed(3));
}
});
// If qty edition & Check if qty changed
if (reception_status == "False") {
firstUpdate = (index == -1); //first update
if (productToEdit.product_qty != newValue) {
if (firstUpdate) {
productToEdit.old_qty = productToEdit.product_qty;
} 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);
}
// Edit product info
productToEdit.product_qty = newValue;
/*
If qty has changed, we choose to set detailed values as follow:
1 package (product_qty_package) of X products (package_qty)
*/
If qty has changed, we choose to set detailed values as follow:
1 package (product_qty_package) of X products (package_qty)
*/
productToEdit.product_qty_package = 1;
productToEdit.package_qty = productToEdit.product_qty;
......@@ -1131,8 +1143,10 @@ function editProductInfo (productToEdit, value = null, batch = false) {
//if product is valid -> remove from updated_products list and add to valid_products list
//removing from updated_products
for (i in orders[productToEdit.id_po]['updated_products']) {
if (orders[productToEdit.id_po]['updated_products'][i]['product_id'][0]
== productToEdit['product_id'][0]) {
if (
orders[productToEdit.id_po]['updated_products'][i]['product_id'][0]
== productToEdit['product_id'][0]
) {
orders[productToEdit.id_po]['updated_products'].splice(i, 1);
}
}
......@@ -1160,9 +1174,11 @@ function editProductInfo (productToEdit, value = null, batch = false) {
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]));
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