From 43e1c7640faee2f25a2feb31255c822a865aed87 Mon Sep 17 00:00:00 2001 From: gitea Date: Tue, 21 Jan 2025 12:09:22 +0000 Subject: [PATCH] save --- inventory/views.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/inventory/views.py b/inventory/views.py index ef25286e..a013d1fb 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -3099,13 +3099,16 @@ def bill_mark_as_paid(request,pk): def bill_create(request): dealer = get_user_type(request) entity = dealer.entity + if request.method == "POST": data = json.loads(request.body) vendor_id = data.get("vendor") terms = data.get("terms") vendor = entity.get_vendors().filter(pk=vendor_id).first() + items = data.get("item", []) quantities = data.get("quantity", []) + if not all([items, quantities]): return JsonResponse( {"status": "error", "message": "Items and Quantities are required"}, @@ -3121,6 +3124,7 @@ def bill_create(request): return JsonResponse( {"status": "error", "message": "Quantity must be greater than zero"} ) + bill = entity.create_bill(vendor_model=vendor, terms=terms) if isinstance(items, list): item_quantity_map = {} @@ -3131,6 +3135,7 @@ def bill_create(request): item_quantity_map[item] = int(quantity) item_list = list(item_quantity_map.keys()) quantity_list = list(item_quantity_map.values()) + items_list = [ {"item_id": item_list[i], "quantity": quantity_list[i]} for i in range(len(item_list)) @@ -3148,6 +3153,7 @@ def bill_create(request): "total_amount": car.finances.cost_price * quantity, } ) + bill_itemtxs = { item.get("item_number"): { "unit_cost": item.get("unit_cost"), @@ -3166,11 +3172,13 @@ def bill_create(request): "total_amount": instance.finances.cost_price * Decimal(quantities), } } + bill_itemtxs = bill.migrate_itemtxs( itemtxs=bill_itemtxs, commit=True, operation=BillModel.ITEMIZE_APPEND, ) + url = reverse("bill_detail", kwargs={"pk": bill.pk}) return JsonResponse( { @@ -3179,6 +3187,7 @@ def bill_create(request): "url": f"{url}", } ) + form = forms.BillModelCreateForm(entity_model=entity) form.initial.update( { @@ -3204,6 +3213,7 @@ def bill_create(request): for x in car_list ], } + return render(request, "ledger/bills/bill_form.html", context) def BillDeleteView(request, pk):