update the default bill account settings

This commit is contained in:
ismail 2025-09-18 16:31:20 +03:00
parent 7c794a6390
commit a09ef86248

View File

@ -4218,7 +4218,7 @@ class BankAccountCreateView(
def get_form(self, form_class=None):
dealer = get_object_or_404(models.Dealer, slug=self.kwargs["dealer_slug"])
form = super().get_form(form_class)
account_qs = dealer.entity.get_get_default_coa_accounts().filter(
account_qs = dealer.entity.get_default_coa_accounts().filter(
role__in=[
roles.ASSET_CA_CASH,
roles.LIABILITY_CL_ACC_PAYABLE,
@ -5122,9 +5122,9 @@ class EstimatePrintView(EstimateDetailView):
It reuses the data-fetching logic from EstimateDetailView but
uses a dedicated, stripped-down print template.
"""
def get(self, request, *args, **kwargs):
self.object = self.get_object()
@ -5132,20 +5132,20 @@ class EstimatePrintView(EstimateDetailView):
# lang = request.GET.get('lang', 'ar')
if request.GET.get('lang')=='en':
template_path = "sales/estimates/estimate_preview_en.html"
template_path = "sales/estimates/estimate_preview_en.html"
else:
template_path = "sales/estimates/estimate_preview_ar.html"
html_string = render_to_string(template_path, context)
base_url = request.build_absolute_uri('/')
pdf_file = HTML(string=html_string, base_url=base_url).write_pdf()
response = HttpResponse(pdf_file, content_type='application/pdf')
response['Content-Disposition'] = f'attachment; filename="estimate_{self.object.estimate_number}.pdf"'
@ -5891,32 +5891,32 @@ class InvoicePreviewView(LoginRequiredMixin, PermissionRequiredMixin, DetailView
kwargs["customer_obj"]=invoice.customer.customer_set.first()
return super().get_context_data(**kwargs)
def get(self, request, *args, **kwargs):
self.object = self.get_object()
context = self.get_context_data(object=self.object)
# lang = request.GET.get('lang', 'ar')
if request.GET.get('lang')=='en':
template_path = "sales/invoices/invoice_preview_en.html"
template_path = "sales/invoices/invoice_preview_en.html"
elif request.GET.get('lang')=='ar':
template_path = "sales/invoices/invoice_preview_ar.html"
else:
# just for preview not for download
return render(request,'sales/invoices/invoice_preview.html',context)
html_string = render_to_string(template_path, context)
base_url = request.build_absolute_uri('/')
pdf_file = HTML(string=html_string, base_url=base_url).write_pdf()
response = HttpResponse(pdf_file, content_type='application/pdf')
response['Content-Disposition'] = f'attachment; filename="invoice_{self.object.invoice_number}.pdf"'
return response
@ -8177,8 +8177,13 @@ class BillModelCreateView(LoginRequiredMixin, PermissionRequiredMixin,SuccessMes
return {"date_draft": get_localdate()}
def get_form(self, form_class=None):
# form = super().get_form(form_class)
dealer = get_object_or_404(models.Dealer, slug=self.kwargs["dealer_slug"])
return BillModelCreateForm(entity_model=dealer.entity, **self.get_form_kwargs())
form = BillModelCreateForm(entity_model=dealer.entity, **self.get_form_kwargs())
form.initial['prepaid_account'] = models.DealerSettings.objects.filter(dealer=dealer).first().bill_prepaid_account or None
form.initial['unearned_account'] = models.DealerSettings.objects.filter(dealer=dealer).first().bill_unearned_account or None
form.initial['cash_account'] = models.DealerSettings.objects.filter(dealer=dealer).first().bill_cash_account or None
return form
def form_valid(self, form):
dealer = get_object_or_404(models.Dealer, slug=self.kwargs["dealer_slug"])
@ -8281,7 +8286,19 @@ class BillModelCreateView(LoginRequiredMixin, PermissionRequiredMixin,SuccessMes
"bill_pk": bill_model.uuid,
},
)
def get_queryset(self):
qs = super().get_queryset()
return qs.select_related(
"ledger",
"ledger__entity",
"vendor",
"cash_account",
"prepaid_account",
"unearned_account",
"cash_account__coa_model",
"prepaid_account__coa_model",
"unearned_account__coa_model",
)
class BillModelDetailView(BillModelDetailViewBase):
template_name = "bill/bill_detail.html"
@ -11086,11 +11103,11 @@ class PurchaseOrderDetailView(LoginRequiredMixin, PermissionRequiredMixin, Detai
"purchase_orders/po_detail_ar_pdf.html",
context
)
base_url = request.build_absolute_uri('/')
pdf = HTML(string=html_string, base_url=base_url).write_pdf()
response = HttpResponse(pdf, content_type="application/pdf")
response["Content-Disposition"] = f'attachment; filename="PO_{self.object.po_number}.pdf"'
return response