diff --git a/tienda_ilusion/don_confiao/forms.py b/tienda_ilusion/don_confiao/forms.py index 72b4b9c..ba9d351 100644 --- a/tienda_ilusion/don_confiao/forms.py +++ b/tienda_ilusion/don_confiao/forms.py @@ -30,6 +30,7 @@ class PurchaseLineForm(forms.ModelForm): "quantity", "unit_price", "description", + "total", ] diff --git a/tienda_ilusion/don_confiao/migrations/0012_saleline_total.py b/tienda_ilusion/don_confiao/migrations/0012_saleline_total.py new file mode 100644 index 0000000..7d2828e --- /dev/null +++ b/tienda_ilusion/don_confiao/migrations/0012_saleline_total.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.6 on 2024-07-27 15:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('don_confiao', '0011_alter_product_name'), + ] + + operations = [ + migrations.AddField( + model_name='saleline', + name='total', + field=models.IntegerField(null=True), + ), + ] diff --git a/tienda_ilusion/don_confiao/migrations/0013_alter_saleline_total.py b/tienda_ilusion/don_confiao/migrations/0013_alter_saleline_total.py new file mode 100644 index 0000000..665bdd5 --- /dev/null +++ b/tienda_ilusion/don_confiao/migrations/0013_alter_saleline_total.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.6 on 2024-07-27 16:02 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('don_confiao', '0012_saleline_total'), + ] + + operations = [ + migrations.AlterField( + model_name='saleline', + name='total', + field=models.FloatField(null=True), + ), + ] diff --git a/tienda_ilusion/don_confiao/models.py b/tienda_ilusion/don_confiao/models.py index a3c2432..61f44f9 100644 --- a/tienda_ilusion/don_confiao/models.py +++ b/tienda_ilusion/don_confiao/models.py @@ -14,12 +14,12 @@ class Sale(models.Model): class SaleLine(models.Model): - sale = models.ForeignKey(Sale, on_delete=models.CASCADE) product = models.CharField(max_length=100) quantity = models.IntegerField(null=True) unit_price = models.DecimalField(max_digits=9, decimal_places=2) description = models.CharField(max_length=255, null=True, blank=True) + total = models.DecimalField(max_digits=9, decimal_places=2) def __str__(self): return f"{self.sale} - {self.product}" diff --git a/tienda_ilusion/don_confiao/static/js/calculate_total_amount_line.js b/tienda_ilusion/don_confiao/static/js/calculate_total_amount_line.js new file mode 100644 index 0000000..de55ea9 --- /dev/null +++ b/tienda_ilusion/don_confiao/static/js/calculate_total_amount_line.js @@ -0,0 +1,28 @@ +// const quantityInput=document.getElementById('id_saleline_set-0-quantity'); +// const unitPriceInput=document.getElementById('id_saleline_set-0-unit_price'); +// const totalOutput = document.getElementById('id_saleline_set-0-total'); +// quantityInput.addEventListener('input', calculateTotal); + +// function calculateTotal(){ +// const quantity = parseFloat(quantityInput.value); +// const unitPrice = parseFloat(unitPriceInput.value); +// const total = quantity * unitPrice; + +// totalOutput.value = total.toFixed(2); +// } + +document.addEventListener('DOMContentLoaded', function() { + const cantidadInput = document.getElementById('id_saleline_set-0-quantity');; + const precioUnitarioInput = document.getElementById('id_saleline_set-0-unit_price'); + const totalSpan = document.getElementById('id_saleline_set-0-total'); + + function updateTotal() { + const cantidad = parseFloat(cantidadInput.value) || 0; + const precioUnitario = parseFloat(precioUnitarioInput.value) || 0; + const total = cantidad * precioUnitario; + totalSpan.textContent = total.toFixed(2); + } + + cantidadInput.addEventListener('input', updateTotal); + precioUnitarioInput.addEventListener('input', updateTotal); +}); diff --git a/tienda_ilusion/don_confiao/templates/don_confiao/purchase.html b/tienda_ilusion/don_confiao/templates/don_confiao/purchase.html index d174357..6abe890 100644 --- a/tienda_ilusion/don_confiao/templates/don_confiao/purchase.html +++ b/tienda_ilusion/don_confiao/templates/don_confiao/purchase.html @@ -9,6 +9,7 @@