update the coa filter

This commit is contained in:
ismail 2025-09-07 15:32:26 +03:00
parent 5d79ea90d7
commit 4998888172
3 changed files with 25 additions and 24 deletions

View File

@ -21,8 +21,8 @@ def is_negative(value):
try:
return float(value) < 0
except (ValueError, TypeError):
return False
return False
@register.filter
def get_percentage(value, total):
try:
@ -498,7 +498,7 @@ def bill_item_formset_table(context, item_formset):
form.fields["item_model"].queryset = form.fields["item_model"].queryset.exclude(
item_role="product"
)
for item in item_formset:
for item in item_formset:
if item:
print(item.fields["item_model"])
item.initial["quantity"] = item.instance.po_quantity if item.instance.po_quantity else item.instance.quantity
@ -710,3 +710,13 @@ def invoice_item_formset_table(context, itemtxs_formset):
"total_amount__sum": context["total_amount__sum"],
"itemtxs_formset": itemtxs_formset,
}
@register.filter
def filter_by_status(queryset, status):
if status == "active":
return queryset.filter(active=True)
elif status == "locked":
return queryset.filter(locked=True)
else:
return queryset

View File

@ -4360,7 +4360,7 @@ class AccountListView(LoginRequiredMixin, PermissionRequiredMixin, ListView):
def get_queryset(self):
query = self.request.GET.get("q")
dealer = get_user_type(self.request)
coa = ChartOfAccountModel.objects.get(entity=dealer.entity,pk=self.kwargs["coa_pk"]) or self.request.entity.get_default_coa()
coa = ChartOfAccountModel.objects.get(entity=dealer.entity,pk=self.kwargs["coa_pk"]) or self.request.entity.get_default_coa()
accounts = coa.get_coa_accounts()
return apply_search_filters(accounts, query)
def get_context_data(self, **kwargs):
@ -4411,18 +4411,8 @@ class AccountCreateView(
permission_required = ["django_ledger.add_accountmodel"]
def form_valid(self, form):
dealer = get_user_type(self.request)
instance = form.save(commit=False)
dealer = get_user_type(self.request)
coa = ChartOfAccountModel.objects.get(entity=dealer.entity,pk=self.kwargs["coa_pk"]) or self.request.entity.get_default_coa()
# coa.insert_account(account_model=instance)
account = coa.entity.create_account(
coa_model=coa,
code=instance.code,
name=instance.name,
role=instance.role,
balance_type=_(instance.balance_type),
active=True,
)
form.instance.entity_model = dealer.entity
form.instance.coa_model = coa
form.instance.depth = 0
@ -4450,13 +4440,13 @@ class AccountCreateView(
def get_context_data(self,**kwargs):
context = super().get_context_data(**kwargs)
context["url_kwargs"] = self.kwargs
coa_pk = context["url_kwargs"]["coa_pk"]
coa_pk = context["url_kwargs"]["coa_pk"]
try:
context["coa_model"] = ChartOfAccountModel.objects.get(entity=self.request.entity,pk=coa_pk)
except Exception:
context["coa_model"] = self.request.entity.get_default_coa()
return context
class AccountDetailView(LoginRequiredMixin, PermissionRequiredMixin, DetailView):
"""
Represents the detailed view for an account with additional context data related to account
@ -4555,11 +4545,11 @@ class AccountUpdateView(
form.fields["_ref_node_id"].widget = HiddenInput()
form.fields["_position"].widget = HiddenInput()
return form
def form_valid(self, form):
form.instance.coa_model = ChartOfAccountModel.objects.get(pk=self.kwargs['coa_pk']) or self.request.entity.get_default_coa()
return super().form_valid(form)
def get_success_url(self):
return reverse_lazy(
"account_list", kwargs={"dealer_slug": self.kwargs["dealer_slug"],"coa_pk":self.kwargs["coa_pk"]}
@ -11454,7 +11444,7 @@ def staff_password_reset_view(request, dealer_slug, user_pk):
if request.method == 'POST':
form = forms.CustomSetPasswordForm(staff.user, request.POST)
if form.is_valid():
print(form.cleaned_data['new_password1'])
print(form.cleaned_data['new_password2'])
@ -11703,7 +11693,7 @@ def ticket_update(request, ticket_id):
# permission_required = 'django_ledger.view_chartofaccountmodel'
class ChartOfAccountModelCreateView(ChartOfAccountModelCreateViewBase):
template_name = 'chart_of_accounts/coa_create.html'
permission_required = 'django_ledger.add_chartofaccountmodel'
permission_required = 'django_ledger.add_chartofaccountmodel'
class ChartOfAccountModelListView(ChartOfAccountModelListViewBase):
template_name = 'chart_of_accounts/coa_list.html'
permission_required = 'django_ledger.view_chartofaccountmodel'

View File

@ -1,4 +1,5 @@
{% load django_ledger %}
{% load custom_filters %}
{% load i18n %}
{% now "Y" as current_year %}
<div class="card shadow-sm border-0 mb-4">
@ -47,15 +48,15 @@
<div class="col-sm-6">
<div class="mb-2">
<span class="fw-bold"><i class="fas fa-list-alt me-1"></i> {% trans 'Total Accounts' %}:</span>
<span class="ms-2">{{ coa_model.accountmodel_total__count }}</span>
<span class="ms-2">{{ coa_model.accountmodel_set.all|length }}</span>
</div>
<div class="mb-2">
<span class="fw-bold text-info"><i class="fas fa-check-circle me-1"></i> {% trans 'Active Accounts' %}:</span>
<span class="ms-2">{{ coa_model.accountmodel_active__count }}</span>
<span class="ms-2">{{ coa_model.accountmodel_set|filter_by_status:'active'|length }}</span>
</div>
<div class="mb-2">
<span class="fw-bold text-danger"><i class="fas fa-lock me-1"></i> {% trans 'Locked Accounts' %}:</span>
<span class="ms-2">{{ coa_model.accountmodel_locked__count }}</span>
<span class="ms-2">{{ coa_model.accountmodel_set|filter_by_status:'locked'|length }}</span>
</div>
</div>
</div>