view: calculando resumen de compra.

This commit is contained in:
2024-07-27 17:12:52 -05:00
parent 599b62771c
commit b4b6144611
5 changed files with 77 additions and 5 deletions

View File

@@ -0,0 +1,33 @@
const complete_form = document.getElementById('complete_form_purchase')
const quantityLines = document.getElementById('id_quantity_lines');
const quantityProducts = document.getElementById('id_quantity_products');
const ammountInput = document.getElementById('id_ammount');
const idPrefix = 'id_saleline_set-';
complete_form.addEventListener('change', function(event){
if (event.target.matches('[id^="${idPrefix}"][id$="-quantity"]')) {
calculateSummary();
}
if (event.target.matches('[id^="id_saleline_set-"][id$="-unit_price"]')) {
calculateSummary();
}
});
function calculateSummary() {
let quantity = 0;
let ammount = 0;
const quantityInputs = document.querySelectorAll('[id^="id_saleline_set-"][id$="-quantity"]');
const ids = Array.prototype.map.call(quantityInputs, function(input) {
return input.id.match(/\d+/)[0];
});
ids.forEach(function(id) {
let lineQuantity = document.getElementById(`id_saleline_set-${id}-quantity`)
let linePrice = document.getElementById(`id_saleline_set-${id}-unit_price`)
quantity += parseFloat(lineQuantity.value);
ammount += parseFloat(linePrice.value) * parseFloat(lineQuantity.value);
});
quantityProducts.value = quantity;
quantityLines.value = quantityInputs.length;
ammountInput.value = ammount;
}