diff --git a/inventory/middleware.py b/inventory/middleware.py index c64fb5cb..1d951ac5 100644 --- a/inventory/middleware.py +++ b/inventory/middleware.py @@ -29,16 +29,16 @@ class LogUserActivityMiddleware: return request.META.get('REMOTE_ADDR') -class InjectParamsMiddleware: - def __init__(self, get_response): - self.get_response = get_response +# class InjectParamsMiddleware: +# def __init__(self, get_response): +# self.get_response = get_response - def __call__(self, request): - try: - request.entity = request.user.dealer.entity - except Exception as e: - pass +# def __call__(self, request): +# try: +# request.entity = request.user.dealer.entity +# except Exception as e: +# pass - response = self.get_response(request) +# response = self.get_response(request) - return response \ No newline at end of file +# return response \ No newline at end of file diff --git a/inventory/signals.py b/inventory/signals.py index fca8c26d..ebfcc127 100644 --- a/inventory/signals.py +++ b/inventory/signals.py @@ -153,29 +153,7 @@ def create_ledger_entity(sender, instance, created, **kwargs): name=_("Employee Advance"), balance_type="debit", active=True, - ) - - # Inventory Account - asset_ca_inventory = entity.create_account( - coa_model=coa, - code="1106", - role=roles.ASSET_CA_INVENTORY, - name=_("Inventory"), - balance_type="debit", - active=True, - ) - asset_ca_inventory.role_default = True - asset_ca_inventory.save() - - # VAT Payable Account - liability_ltl_vat_receivable = entity.create_account( - coa_model=coa, - code="1107", - role=roles.ASSET_CA_RECEIVABLES, - name=_("VAT Receivable"), - balance_type="debit", - active=True, - ) + ) # Buildings Accumulated Depreciation Account asset_ppe_buildings_accum_depreciation = entity.create_account( @@ -249,7 +227,6 @@ def create_ledger_entity(sender, instance, created, **kwargs): ) asset_ppe_buildings.role_default = True asset_ppe_buildings.save() - # Accounts Payable Account @@ -336,7 +313,7 @@ def create_ledger_entity(sender, instance, created, **kwargs): # Mortgage Payable Account liability_ltl_mortgage_payable = entity.create_account( coa_model=coa, - code="2202", + code="2203", role=roles.LIABILITY_LTL_MORTGAGE_PAYABLE, name=_("Mortgage Payable"), balance_type="credit", diff --git a/inventory/views.py b/inventory/views.py index e12d5e2f..1e09e9e6 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -2232,28 +2232,15 @@ class PaidInvoiceModelUpdateFormView(LoginRequiredMixin, UpdateView): @login_required def invoice_mark_as(request, pk): invoice = get_object_or_404(InvoiceModel, pk=pk) - entity = EntityModel.objects.first() # will change later - user = entity.admin + dealer = get_user_type(request) mark = request.GET.get("mark") - if mark: - if mark == "accept": - if not invoice.can_approve(): - messages.error(request, "invoice is not ready for approval") - return redirect("invoice_detail", pk=invoice.pk) - invoice.mark_as_approved(entity_slug=entity.slug, user_model=user) - # invoice.post_ledger() - invoice.save() - ledger = ( - entity.get_ledgers().filter(name=f"Invoice {str(invoice.pk)}").first() - ) - if not ledger: - ledger = entity.create_ledger(name=f"Invoice {str(invoice.pk)}") - ledger.invoicemodel = invoice - ledger.save() - # elif mark == "complete": - # if not invoice.can_complete(): - # messages.error(request, "invoice is not ready for completion") + if mark and mark == "accept": + if not invoice.can_approve(): + messages.error(request, "invoice is not ready for approval") return redirect("invoice_detail", pk=invoice.pk) + invoice.mark_as_approved(entity_slug=dealer.entity.slug, user_model=dealer.entity.admin) + invoice.save() + return redirect("invoice_detail", pk=invoice.pk) def invoice_create(request, pk): @@ -2280,7 +2267,7 @@ def invoice_create(request, pk): itemtxs.append( { "item_number": item.item_model.item_number, - "unit_cost": car.finances.total_vat, + "unit_cost": car.finances.cost_price, "unit_revenue": car.finances.total_vat, "quantity": item.ce_quantity, "total_amount": Decimal(car.finances.total_vat) @@ -2363,9 +2350,7 @@ def PaymentCreateView(request, pk=None): if form.is_valid(): amount = form.cleaned_data.get("amount") invoice = form.cleaned_data.get("invoice") - payment_method = form.cleaned_data.get("payment_method") - - ledger = None + payment_method = form.cleaned_data.get("payment_method") try: vat_amount = 0 total_amount = 0 @@ -2374,10 +2359,10 @@ def PaymentCreateView(request, pk=None): for x in invoice.get_itemtxs_data()[0].all(): vat_amount += models.Car.objects.get( vin=x.item_model.name - ).finances.vat_amount + ).finances.vat_amount * Decimal(x.quantity) total_amount += models.Car.objects.get( vin=x.item_model.name - ).finances.total_discount + ).finances.total_discount * Decimal(x.quantity) ledger = LedgerModel.objects.filter( name=str(invoice.pk), entity=entity @@ -2436,11 +2421,13 @@ def PaymentCreateView(request, pk=None): invoice.make_payment(amount) invoice.save() + messages.success(request, "Payment created successfully!") + return redirect("invoice_detail", pk=invoice.pk) except Exception as e: messages.error(request, f"Error creating payment: {str(e)}") - else: - messages.error(request, f"Invalid form data: {str(form.errors)}") - return redirect("invoice_detail", pk=invoice.pk) + else: + messages.error(request, f"Invalid form data: {form.errors.as_text()}") + form = forms.PaymentForm() form.initial["amount"] = invoice.amount_due diff --git a/templates/header.html b/templates/header.html index 87221ba3..0a7e10b9 100644 --- a/templates/header.html +++ b/templates/header.html @@ -203,7 +203,7 @@