Compare commits
	
		
			4 Commits
		
	
	
		
			8d29202d3a
			...
			521d3b63fa
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 521d3b63fa | |||
|  | 6decc963f6 | ||
|  | 91bb2bce93 | ||
|  | 108d983d74 | 
| @@ -45,6 +45,11 @@ class Sale(models.Model): | |||||||
|         return f"{self.date} {self.customer}" |         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): | class SaleLine(models.Model): | ||||||
|  |  | ||||||
|     sale = models.ForeignKey(Sale, on_delete=models.CASCADE) |     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("importar_productos", views.import_products, name="import_products"), | ||||||
|     path("cuadrar_tarro", views.reconciliate_jar, name="reconciliate_jar"), |     path("cuadrar_tarro", views.reconciliate_jar, name="reconciliate_jar"), | ||||||
|     path("cuadres", views.reconciliate_jar, name="reconciliations"), |     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): | def reconciliations(request): | ||||||
|     return HttpResponse('<h1>Reconciliaciones</h1>') |     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="&"): | def _categories_from_csv_string(categories_string, separator="&"): | ||||||
|     categories = categories_string.split(separator) |     categories = categories_string.split(separator) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user