Commit a389ffb7 by Damien Moulard

add js func to check for valid ean8 & check in relevant places

parent 5f590324
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!188add js func to check for valid ean8 & check in relevant places,!218Ticket 4292
Pipeline #2284 passed with stage
in 1 minute 27 seconds
......@@ -455,6 +455,27 @@ function eanCheckDigit(s) {
return (10 - (result % 10)) % 10;
}
function isValidEAN8(ean) {
let answer = true;
let key = ean.substring(ean.length-1);
let digits = ean.substring(0, ean.length-1);
let checkSum = digits.split('').reduce(function(previousValue, currentValue, i) {
let temp_val = i % 2 == 0 ? parseInt(currentValue) * 3 : parseInt(currentValue);
return parseInt(previousValue) + temp_val;
}, 0);
let checkKey = 10 - checkSum % 10;
if (checkKey === 10) checkKey = 0;
if (checkKey != key) {
answer = false;
}
return answer;
}
function isValidEAN13(ean) {
var answer = true;
var checkSum = ean.split('').reduce(function(p, v, i) {
......
......@@ -2342,6 +2342,9 @@ function init_dom(partners_display_data) {
} else if (barcode.length == 12 && barcode.indexOf('0') !== 0) {
// User may use a scanner which remove leading 0
barcode = '0' + barcode;
} else if (barcode.length >= 8) {
// For EAN8
barcode = barcode.substring(barcode.length-8);
} else {
//manually submitted after correction
var barcode_input = $('#search_input');
......
......@@ -54,7 +54,8 @@ Number.isSafeInteger = Number.isSafeInteger || function (value) {
function back() {
document.location.href = parent_location;
// document.location.href = parent_location;
barcode_analyzer("42074700");
}
function debounce(func, delay = 100) {
......@@ -94,12 +95,14 @@ function barcode_analyzer(chars) {
if (barcode && barcode.length >=13) {
barcode = barcode.substring(barcode.length-13);
} else if (barcode && barcode.length == 12 && barcode.indexOf('0') !== 0) {
// User may use a scanner which remove leading 0
// User may use a scanner which remove leading 0
barcode = '0' + barcode;
} else if (barcode && barcode.length >= 8) {
// For EAN8
barcode = barcode.substring(barcode.length-8);
} else {
//manually submitted after correction
//manually submitted after correction
var barcode_input = $('#search_input');
barcode = barcode_input.val();
}
......@@ -149,7 +152,7 @@ function select_product_from_bc(barcode) {
var found = null,
qty = null;
if (isValidEAN13(barcode)) {
if (isValidEAN13(barcode) || isValidEAN8(barcode)) {
var scannedProduct = barcodes.get_corresponding_odoo_product(barcode);
if (scannedProduct === null) {
......@@ -163,7 +166,7 @@ function select_product_from_bc(barcode) {
}
}
} else {
alert("Le code-barre " + barcode + " n'est pas reconnu comme un EAN13 valide.'");
alert("Le code-barre " + barcode + " n'est pas reconnu comme un EAN13 ou EAN8 valide.");
return -1;
}
......
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