From f0201a86b22cc87cd88e0cc816c3d241871048fd Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Mon, 2 Dec 2024 22:52:04 -0500 Subject: [PATCH] #69 feat(ReconciliationJar): accept post creation. --- .../tests/test_jar_reconciliation.py | 16 ++++++++++++++++ tienda_ilusion/don_confiao/urls.py | 2 +- tienda_ilusion/don_confiao/views.py | 19 +++++++++++++++++-- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/tienda_ilusion/don_confiao/tests/test_jar_reconciliation.py b/tienda_ilusion/don_confiao/tests/test_jar_reconciliation.py index 9a743fc..880cc0d 100644 --- a/tienda_ilusion/don_confiao/tests/test_jar_reconciliation.py +++ b/tienda_ilusion/don_confiao/tests/test_jar_reconciliation.py @@ -112,6 +112,22 @@ class TestJarReconcliation(TestCase): reconciliation.clean() reconciliation.save() + def test_create_reconciliation_with_purchases(self): + url = '/don_confiao/reconciliation_jar/create' + data = { + 'date_time': '2024-12-02T21:07', + 'cashman': 'carlos', + 'total_cash_purchases': 45000, + 'cash_taken': 44000, + 'cash_discrepancy': 1000, + } + response = self.client.post(url, data, format='json') + rawContent = response.content.decode('utf-8') + content = json.loads(rawContent) + + self.assertEqual(response.status_code, 200) + self.assertIn('id', content) + def _create_simple_reconciliation(self): reconciliation = ReconciliationJar() reconciliation.date_time = "2024-07-30" diff --git a/tienda_ilusion/don_confiao/urls.py b/tienda_ilusion/don_confiao/urls.py index c874c4e..3cd4d6c 100644 --- a/tienda_ilusion/don_confiao/urls.py +++ b/tienda_ilusion/don_confiao/urls.py @@ -23,10 +23,10 @@ urlpatterns = [ path("exportar_ventas_para_tryton", views.exportar_ventas_para_tryton, name="exportar_ventas_para_tryton"), - path("cuadrar_tarro", views.reconciliate_jar, name="reconciliate_jar"), path("resumen_compra/", views.purchase_summary, name="purchase_summary"), path("resumen_compra_json/", views.purchase_json_summary, name="purchase_json_summary"), path("payment_methods/all/select_format", views.payment_methods_to_select, name="payment_methods_to_select"), path('purchases/for_reconciliation', views.sales_for_reconciliation, name='sales_for_reconciliation'), + path('reconciliation_jar/create', views.reconciliate_jar, name='reconciliate_jar'), path('api/', include(router.urls)), ] diff --git a/tienda_ilusion/don_confiao/views.py b/tienda_ilusion/don_confiao/views.py index 7fd7329..c6e5f48 100644 --- a/tienda_ilusion/don_confiao/views.py +++ b/tienda_ilusion/don_confiao/views.py @@ -4,7 +4,7 @@ from django.views.generic import ListView from django.db import transaction from .models import ( - Sale, SaleLine, Product, Customer, ProductCategory, Payment, PaymentMethods) + Sale, SaleLine, Product, Customer, ProductCategory, Payment, PaymentMethods, ReconciliationJar) from .forms import ( ImportProductsForm, ImportCustomersForm, @@ -16,6 +16,7 @@ import csv import io import json from decimal import Decimal +from datetime import datetime class DecimalEncoder(json.JSONEncoder): @@ -109,7 +110,21 @@ def import_customers(request): ) def reconciliate_jar(request): - pass + date_format = '%Y-%m-%dT%H:%M' + if request.method == 'POST': + content = request.POST.dict() + reconciliation = ReconciliationJar() + reconciliation.date_time = content.get('date_time') + reconciliation.cashman = content.get('cashman') + reconciliation.total_cash_purchases = float(content.get('total_cash_purchases')) + reconciliation.cash_taken = float(content.get('cash_taken')) + reconciliation.cash_discrepancy = float(content.get('cash_discrepancy')) + reconciliation.clean() + reconciliation.save() + return JsonResponse( + {'id': reconciliation.id}, + safe=False + ) def reconciliations(request):