Merge pull request 'Añadida vista resumen de compra' (#16) from summary_view_purchase into main
Reviewed-on: #16
This commit is contained in:
		| @@ -45,6 +45,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) | ||||
|   | ||||
| @@ -0,0 +1,7 @@ | ||||
| <h1>Resumen de compra</h1> | ||||
| <dl> | ||||
| <dt>Date</dt> <dd>{{ purchase.date }}</dd> | ||||
| <dt>ID</dt> <dd>{{ purchase.id }}</dd> | ||||
| <dt>Customer</dt> <dd>{{ purchase.customer }}</dd> | ||||
| <dt>Total</dt> <dd>{{ purchase.get_total }}</dd> | ||||
| </dl> | ||||
| @@ -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')) | ||||
|          | ||||
| @@ -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/<int:id>", views.purchase_summary, name="purchase_summary"), | ||||
| ] | ||||
|   | ||||
| @@ -102,6 +102,15 @@ def reconciliate_jar(request): | ||||
| def reconciliations(request): | ||||
|     return HttpResponse('<h1>Reconciliaciones</h1>') | ||||
|  | ||||
| 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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user