Compare commits

...

5 Commits

8 changed files with 29 additions and 27 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,12 +4360,13 @@ 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):
context = super().get_context_data(**kwargs)
context["url_kwargs"] = self.kwargs
context["coa_pk"] = self.kwargs["coa_pk"]
return context
@ -4411,18 +4412,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 +4441,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 +4546,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 +11445,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 +11694,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'

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 KiB

View File

@ -46,7 +46,7 @@
</section>
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">{% trans "Our Refund Policy" %}</h5>

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">
@ -8,7 +9,7 @@
</div>
<div class="flex-grow-1">
<h5 class="fw-bold mb-0">
{{ coa_model.name }}
{% if coa_model.is_default %}
<span class="badge bg-light text-primary ms-2 d-none d-sm-inline">{% trans 'DEFAULT' %}</span>
{% endif %}
@ -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>

View File

@ -200,7 +200,7 @@
</div>
</div>
{% else %}
{% url "account_create" request.dealer.slug as create_account_url %}
{% url 'account_create' request.dealer.slug coa_pk as create_account_url %}
{% include "empty-illustration-page.html" with value="account" url=create_account_url %}
{% endif %}
{% endblock %}