diff --git a/inventory/__pycache__/services.cpython-311.pyc b/inventory/__pycache__/services.cpython-311.pyc index 6d167297..7451acb6 100644 Binary files a/inventory/__pycache__/services.cpython-311.pyc and b/inventory/__pycache__/services.cpython-311.pyc differ diff --git a/inventory/__pycache__/views.cpython-311.pyc b/inventory/__pycache__/views.cpython-311.pyc index a1f04797..6f6f4da3 100644 Binary files a/inventory/__pycache__/views.cpython-311.pyc and b/inventory/__pycache__/views.cpython-311.pyc differ diff --git a/inventory/services.py b/inventory/services.py index f4e90bf9..cc782106 100644 --- a/inventory/services.py +++ b/inventory/services.py @@ -36,11 +36,10 @@ def decodevin(vin): if result:=decode_vin(vin): return result - elif result:=decode_vin_haikalna(vin): - return result elif result:=elm(vin): return result - + elif result:=decode_vin_haikalna(vin): + return result else: return None diff --git a/inventory/views.py b/inventory/views.py index bbdca039..f4c1a98e 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -1814,15 +1814,14 @@ class AccountCreateView(LoginRequiredMixin, SuccessMessageMixin, CreateView): success_message = "Account created successfully." def form_valid(self, form): - form.instance.entity_model = self.request.user.dealer.entity + dealer = get_user_type(self.request) + form.instance.entity_model = dealer.entity form.instance.depth = 0 return super().form_valid(form) def get_form_kwargs(self): - """ - Override this method to pass additional keyword arguments to the form. - """ - entity = self.request.user.dealer.entity + dealer = get_user_type(self.request) + entity = dealer.entity kwargs = super().get_form_kwargs() kwargs["coa_model"] = entity.get_default_coa() @@ -1833,6 +1832,28 @@ class AccountDetailView(LoginRequiredMixin, DetailView): model = AccountModel template_name = "ledger/coa_accounts/account_detail.html" context_object_name = "account" + slug_field = 'uuid' + DEFAULT_TXS_DAYS = 30 + extra_context = { + 'DEFAULT_TXS_DAYS': DEFAULT_TXS_DAYS, + 'header_subtitle_icon': 'ic:round-account-tree' + } + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + account_model: AccountModel = context['object'] + context['header_title'] = f'Account {account_model.code} - {account_model.name}' + context['page_title'] = f'Account {account_model.code} - {account_model.name}' + txs_qs = account_model.transactionmodel_set.all().posted().order_by( + 'journal_entry__timestamp' + ).select_related( + 'journal_entry', + 'journal_entry__entity_unit', + 'journal_entry__ledger__billmodel', + 'journal_entry__ledger__invoicemodel', + ) + + return context class AccountUpdateView(LoginRequiredMixin, SuccessMessageMixin, UpdateView): @@ -1862,7 +1883,8 @@ class EstimateListView(LoginRequiredMixin, ListView): context_object_name = "estimates" def get_queryset(self): - entity = self.request.user.dealer.entity + dealer = get_user_type(self.request) + entity = dealer.entity return entity.get_estimates() @@ -2160,7 +2182,7 @@ class DraftInvoiceModelUpdateFormView(LoginRequiredMixin, UpdateView): def get_form_kwargs(self): kwargs = super().get_form_kwargs() - dealer = get_user_type(self.request.user.dealer) + dealer = get_user_type(self.request) kwargs["entity_slug"] = dealer.entity kwargs["user_model"] = dealer.entity.admin return kwargs @@ -2174,7 +2196,7 @@ class ApprovedInvoiceModelUpdateFormView(LoginRequiredMixin, UpdateView): def get_form_kwargs(self): kwargs = super().get_form_kwargs() - dealer = get_user_type(self.request.user.dealer) + dealer = get_user_type(self.request) kwargs["entity_slug"] = dealer.entity kwargs["user_model"] = dealer.entity.admin return kwargs @@ -2191,7 +2213,7 @@ class PaidInvoiceModelUpdateFormView(LoginRequiredMixin, UpdateView): def get_form_kwargs(self): kwargs = super().get_form_kwargs() - dealer = get_user_type(self.request.user.dealer) + dealer = get_user_type(self.request) kwargs["entity_slug"] = dealer.entity kwargs["user_model"] = dealer.entity.admin return kwargs @@ -2240,7 +2262,8 @@ def invoice_mark_as(request, pk): def invoice_create(request, pk): estimate = get_object_or_404(EstimateModel, pk=pk) - entity = request.user.dealer.entity + dealer = get_user_type(request) + entity = dealer.entity form = InvoiceModelCreateForm(entity_slug=entity.slug, user_model=entity.admin) if request.method == "POST": @@ -2323,7 +2346,8 @@ class InvoicePreviewView(LoginRequiredMixin, DetailView): def PaymentCreateView(request, pk=None): invoice = InvoiceModel.objects.filter(pk=pk).first() - entity = request.user.dealer.entity + dealer = get_user_type(request) + entity = dealer.entity form = forms.PaymentForm() if request.method == "POST": form = forms.PaymentForm(request.POST) @@ -2658,14 +2682,14 @@ class ItemExpenseCreateView(CreateView): success_url = reverse_lazy("item_expense_list") def get_form_kwargs(self): - dealer = get_user_type(self.request.user.dealer) + dealer = get_user_type(self.request) kwargs = super().get_form_kwargs() kwargs["entity_slug"] = dealer.entity.slug kwargs["user_model"] = dealer.entity.admin return kwargs def form_valid(self, form): - dealer = get_user_type(self.request.user.dealer) + dealer = get_user_type(self.request) form.instance.entity = dealer.entity return super().form_valid(form) @@ -2677,14 +2701,14 @@ class ItemExpenseUpdateView(UpdateView): success_url = reverse_lazy("item_expense_list") def get_form_kwargs(self): - dealer = get_user_type(self.request.user.dealer) + dealer = get_user_type(self.request) kwargs = super().get_form_kwargs() kwargs["entity_slug"] = dealer.entity.slug kwargs["user_model"] = dealer.entity.admin return kwargs def form_valid(self, form): - dealer = get_user_type(self.request.user.dealer) + dealer = get_user_type(self.request) form.instance.entity = dealer.entity return super().form_valid(form) diff --git a/templates/inventory/car_form.html b/templates/inventory/car_form.html index 609a647a..2dbaf02e 100644 --- a/templates/inventory/car_form.html +++ b/templates/inventory/car_form.html @@ -346,7 +346,7 @@ } document.addEventListener("DOMContentLoaded", function () { - const csrfToken = getCookie("token"); + const csrfToken = getCookie("csrftoken"); const vinInput = document.getElementById("{{ form.vin.id_for_label }}"); const decodeVinBtn = document.getElementById("decodeVinBtn"); diff --git a/templates/inventory/inventory_stats.html b/templates/inventory/inventory_stats.html index 650032bf..b7d98f06 100644 --- a/templates/inventory/inventory_stats.html +++ b/templates/inventory/inventory_stats.html @@ -12,9 +12,9 @@
{% trans "Total Cars in Inventory" %}
-Emails Sent
+{{ _("Reserved")}}
{{ _("Bank Account Details") }}
+{{ header_title|upper }}
{{ _("Active") }}: {{ account.active }}
| {{ _("JE Number")}} | +{{ _("Date") }} | +{{ _("Debit") }} | +{{ _("Credit") }} | +{{ _("Description") }} | +{{ _("Unit") }} | +{{ _("Actions") }} | +
|---|---|---|---|---|---|---|
| {{ tx.journal_entry.je_number }} | +{{ tx.journal_entry.timestamp }} | +{% if tx.tx_type == 'debit' %}${{ tx.amount }}{% endif %} | +{% if tx.tx_type == 'credit' %}${{ tx.amount }}{% endif %} | +{{ tx.description }} | +{{ tx.journal_entry.entity_unit.name }} | +
+
+
+
+
+
+
+ |
+
| + | Total | +${{ total_credits }} | +${{ total_debits }} | ++ | + | + |