diff --git a/tienda_ilusion/don_confiao/models.py b/tienda_ilusion/don_confiao/models.py
index ec3782c..68d184a 100644
--- a/tienda_ilusion/don_confiao/models.py
+++ b/tienda_ilusion/don_confiao/models.py
@@ -41,6 +41,11 @@ class Sale(models.Model):
return f"{self.date} {self.customer}"
+ def get_total(self):
+ lines = self.saleline_set.all()
+ return sum([l.quantity * l.unit_price for l in lines])
+
+
class SaleLine(models.Model):
sale = models.ForeignKey(Sale, on_delete=models.CASCADE)
diff --git a/tienda_ilusion/don_confiao/templates/don_confiao/purchase_summary.html b/tienda_ilusion/don_confiao/templates/don_confiao/purchase_summary.html
new file mode 100644
index 0000000..5b5c3de
--- /dev/null
+++ b/tienda_ilusion/don_confiao/templates/don_confiao/purchase_summary.html
@@ -0,0 +1,7 @@
+
Resumen de compra
+
+- Date
- {{ purchase.date }}
+- ID
- {{ purchase.id }}
+- Customer
- {{ purchase.customer }}
+- Total
- {{ purchase.get_total }}
+
\ No newline at end of file
diff --git a/tienda_ilusion/don_confiao/tests/test_summary_view_purchase.py b/tienda_ilusion/don_confiao/tests/test_summary_view_purchase.py
new file mode 100644
index 0000000..4287c5c
--- /dev/null
+++ b/tienda_ilusion/don_confiao/tests/test_summary_view_purchase.py
@@ -0,0 +1,31 @@
+from django.test import TestCase, Client
+from ..models import Sale, Product, SaleLine
+
+class TestSummaryViewPurchase(TestCase):
+ def setUp(self):
+ self.client = Client()
+ purchase = Sale()
+ purchase.customer = "Alejo Mono"
+ purchase.date = "2024-07-30"
+ purchase.clean()
+ purchase.save()
+
+ product = Product()
+ product.name = "cafe"
+ product.price = "72500"
+ product.save()
+
+ line = SaleLine()
+ line.sale = purchase
+ line.product = product
+ line.quantity = "2"
+ line.unit_price = "72500"
+ line.save()
+ self.purchase = purchase
+
+ def test_summary_has_customer(self):
+ response = self.client.get("/don_confiao/resumen_compra/" + str(self.purchase.id))
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(response.context["purchase"].customer, self.purchase.customer)
+ self.assertIn('Alejo Mono', response.content.decode('utf-8'))
+
diff --git a/tienda_ilusion/don_confiao/urls.py b/tienda_ilusion/don_confiao/urls.py
index 7879ccb..7de794e 100644
--- a/tienda_ilusion/don_confiao/urls.py
+++ b/tienda_ilusion/don_confiao/urls.py
@@ -12,4 +12,5 @@ urlpatterns = [
path("importar_productos", views.import_products, name="import_products"),
path("cuadrar_tarro", views.reconciliate_jar, name="reconciliate_jar"),
path("cuadres", views.reconciliate_jar, name="reconciliations"),
+ path("resumen_compra/", views.purchase_summary, name="purchase_summary"),
]
diff --git a/tienda_ilusion/don_confiao/views.py b/tienda_ilusion/don_confiao/views.py
index eabd664..563a6a6 100644
--- a/tienda_ilusion/don_confiao/views.py
+++ b/tienda_ilusion/don_confiao/views.py
@@ -102,6 +102,15 @@ def reconciliate_jar(request):
def reconciliations(request):
return HttpResponse('Reconciliaciones
')
+def purchase_summary(request, id):
+ purchase = Sale.objects.get(pk=id)
+ return render(
+ request,
+ "don_confiao/purchase_summary.html",
+ {
+ "purchase" : purchase
+ }
+ )
def _categories_from_csv_string(categories_string, separator="&"):
categories = categories_string.split(separator)