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)