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 @@ diff --git a/templates/ledger/coa_accounts/account_list.html b/templates/ledger/coa_accounts/account_list.html index 0d2f39af..aa72ef05 100644 --- a/templates/ledger/coa_accounts/account_list.html +++ b/templates/ledger/coa_accounts/account_list.html @@ -1,13 +1,13 @@ {% extends "base.html" %} {% load i18n static %} -{% block title %}{{ _("Accounts") }}{% endblock title %} +{% block title %}{{ _("Chart of Accounts") }}{% endblock title %} {% block content %}
-

{% trans "Accounts" %}

+

{% trans "Chart of Accounts" %}

{% trans "Add Account" %}
diff --git a/templates/sales/invoices/invoice_list.html b/templates/sales/invoices/invoice_list.html index a30d62e9..8ae0b561 100644 --- a/templates/sales/invoices/invoice_list.html +++ b/templates/sales/invoices/invoice_list.html @@ -13,10 +13,12 @@ {% trans "Invoice Number" %} - {% trans "Customer" %} + {% trans "Customer" %} + {% trans "Date" %} + {% trans "Due Date" %} + {% trans "Paid" %} + {% trans "Due" %} {% trans "Status" %} - {% trans "Status Date" %} - {% trans "Created" %} {% trans "Actions" %} @@ -25,6 +27,10 @@ {{ invoice.invoice_number }} {{ invoice.customer }} + {{ invoice.created }} + {{ invoice.date_due }} + {{ invoice.amount_paid }} + {{ invoice.amount_due }} {% if invoice.is_past_due %} {% trans "Past Due" %} @@ -40,20 +46,6 @@ {% trans "Paid" %} {% endif %} - - {% if invoice.invoice_status == "in_review" %} - {{ invoice.date_in_review }} - {% elif invoice.invoice_status == "approved" %} - {{ invoice.date_approved }} - {% elif invoice.invoice_status == "canceled" %} - {{ invoice.date_canceled }} - {% elif invoice.invoice_status == "draft" %} - {{ invoice.date_draft }} - {% elif invoice.invoice_status == "paid" %} - {{ invoice.date_paid }} - {% endif %} - - {{ invoice.created }}