feat: add new api and fix some problems

This commit is contained in:
xoliqberdiyev
2026-05-06 17:57:07 +05:00
parent 67558e77de
commit 6a9cf9fa1f
10 changed files with 265 additions and 28 deletions

View File

@@ -11,6 +11,7 @@ from weasyprint import HTML
from core.apps.evaluation.models import AutoEvaluationModel
from core.apps.evaluation.choices.auto import ObjectOwnerType
from core.apps.documents.models import ExecutorInfoModel
from core.apps.documents.serializers.contract import ContractPDFRequestSerializer
from core.services import CurrencyService
@@ -194,6 +195,7 @@ class ValuationReportPDFView(APIView):
contract_ctx = self._contract_context(auto, report_date)
inspection_ctx = self._inspection_context(payload)
rates_ctx = self._rates_context(valuation_date)
executor_ctx = self._executor_context()
ctx = {
"logo_url": "",
@@ -211,8 +213,9 @@ class ValuationReportPDFView(APIView):
"owner": owner_ctx,
"contract": contract_ctx,
"company": {
"director": "",
"director": executor_ctx.get("evaluator_full_name") or "",
},
"executor": executor_ctx,
"rates": rates_ctx,
"inspection": inspection_ctx,
"cost": {
@@ -372,6 +375,40 @@ class ValuationReportPDFView(APIView):
"eur": rates.get("EUR", ""),
}
def _executor_context(self):
instance = ExecutorInfoModel.objects.order_by("-created_at").first()
if not instance:
return {
"name": "",
"address": "",
"account_number": "",
"tin": "",
"bank": "",
"mfo": "",
"oked": "",
"email": "",
"phone": "",
"evaluator_full_name": "",
"evaluator_certificate": "",
"license_info": "",
"insurance_info": "",
}
return {
"name": instance.name or "",
"address": instance.address or "",
"account_number": instance.account_number or "",
"tin": instance.tin or "",
"bank": instance.bank or "",
"mfo": instance.mfo or "",
"oked": instance.oked or "",
"email": instance.email or "",
"phone": instance.phone or "",
"evaluator_full_name": instance.evaluator_full_name or "",
"evaluator_certificate": instance.evaluator_certificate or "",
"license_info": instance.license_info or "",
"insurance_info": instance.insurance_info or "",
}
def _empty_analog(self):
return {
"source": "",