§
    ¥°–jx  ã                  óª   — d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 ddlmZ dd	lmZ dd
lmZ  ej        e¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsN)Údate)ÚAny)ÚBasePostgresClient)ÚProjectCrudRepositoryé   )Úbuild_docx_buffer)Úrender_dossier_html_document)ÚIpcCalculatorMixinc                  ó(   — e Zd ZdZddd„Z	 ddd„ZdS )ÚDossierGeneratorServicezNEnterprise service for generating pre-filled KCS and legal document templates.NÚrepoúProjectCrudRepository | NoneÚreturnÚNonec                ó0   — |pt          ¦   «         | _        d S ©N)r   r   )Úselfr   s     úOC:\Projects\DSCons\app\modules\dossier\application\dossier_generator\service.pyÚ__init__z DossierGeneratorService.__init__   s   € ØÐ3Õ1Ñ3Ô3ˆŒ	ˆ	ˆ	ó    Úbien_ban_nghiem_thu_noi_boÚ
finding_idÚstrÚtemplate_typeúdict[str, Any]c           
     óø  — d}d}| j                              ¦   «         5 }|                     ¦   «         5 }|                     |||f¦  «         |                     ¦   «         }ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |sddiS |d         }|d         }| j                              |¦  «        }	|	sddiS |	                     d¦  «        pd	}
|	                     d
¦  «        pd}|	                     d¦  «        pd}|	                     d¦  «        pd}|	                     d¦  «        p%t          j        ¦   «          	                    d¦  «        }d}d|v sd| 
                    ¦   «         v rd}nGd| 
                    ¦   «         v rd}n.d| 
                    ¦   «         v sd| 
                    ¦   «         v rd}t          ||
||||¬¦  «        }t          ||
|||¬¦  «        }||||||du|› d|› d�dœS ) u_   Tá»± Ä‘á»™ng sinh tÃ i liá»‡u Ä‘iá»�n sáºµn thÃ´ng tin há»£p Ä‘á»“ng cho há»“ sÆ¡ cÃ²n thiáº¿u.zç
            SELECT f.*, r.project_code
            FROM dossier_review_findings f
            JOIN dossier_review_sessions r ON f.review_session_id = r.review_session_id
            WHERE f.id = %s OR f.finding_code = %s;
        NÚerroru0   KhÃ´ng tÃ¬m tháº¥y Ä‘iá»ƒm thiáº¿u sÃ³t há»“ sÆ¡Úproject_codeÚdocument_typeu)   KhÃ´ng tÃ¬m tháº¥y dá»± Ã¡n tÆ°Æ¡ng á»©ngÚproject_nameu#   Dá»± Ã¡n Thá»§y lá»£i & Háº¡ táº§ngÚclient_nameu   UBND Huyá»‡n / Ban QLDAÚcontract_numberu   Sá»‘ 08/2026/HÄ�-XDÚlocationu   Háº£i PhÃ²ngÚcontract_signing_datez%Y-%m-%du#   BIÃŠN Báº¢N NGHIá»†M THU Ná»˜I Bá»˜r   Ú
nghiem_thuu<   BIÃŠN Báº¢N NGHIá»†M THU Ná»˜I Bá»˜ CÃ”NG VIá»†C XÃ‚Y Dá»°NGÚnhat_kyu%   NHáº¬T KÃ� THI CÃ”NG HIá»†N TRÆ¯á»œNGÚphap_lyÚhop_dongu)   BIÃŠN Báº¢N THÆ¯Æ NG THáº¢O Há»¢P Ä�á»’NG)Ú	doc_titler!   r#   Úsigning_dater"   r$   )r*   r!   r#   r"   r$   Ú_z.html)r   r   Údocument_titler   Úhtml_previewÚhas_docx_exportÚgenerated_filename)r   Úget_connectionÚcursorÚexecuteÚfetchoneÚget_project_detailÚgetr   ÚtodayÚstrftimeÚlowerr
   r	   )r   r   r   Úsql_findingÚfindingÚconnÚcurr   Údoc_typeÚprojectr!   r"   r#   r$   r+   r*   Úhtml_contentÚdocx_bufs                     r   Úgenerate_dossier_templatez1DossierGeneratorService.generate_dossier_template   sß  € ðˆð ˆØŒY×%Ò%Ñ'Ô'ð 	%¨4°·²±´ð 	%À#Ø�KŠK˜ j°*Ð%=Ñ>Ô>Ð>Ø—l’l‘n”nˆGð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð ð 	QØÐOÐPÐPà˜~Ô.ˆØ˜?Ô+ˆà”)×.Ò.¨|Ñ<Ô<ˆØð 	JØÐHÐIÐIà—{’{ >Ñ2Ô2Ð[Ð6[ˆØ—k’k -Ñ0Ô0ÐMÐ4MˆØ!Ÿ+š+Ð&7Ñ8Ô8ÐQÐ<QˆØ—;’;˜zÑ*Ô*Ð<¨nˆØ—{’{Ð#:Ñ;Ô;ð 
½t¼z¹|¼|×?TÒ?TØñ@
ô @
ˆð :ˆ	à(¨MÐ9Ð9Ø˜xŸ~š~Ñ/Ô/Ð/Ð/àVˆIˆIØ˜(Ÿ.š.Ñ*Ô*Ð*Ð*Ø?ˆIˆIØ˜(Ÿ.š.Ñ*Ô*Ð*Ð*¨j¸H¿NºNÑ<LÔ<LÐ.LÐ.LØCˆIå3ØØ%Ø+Ø%Ø#Øð
ñ 
ô 
ˆõ %ØØ%Ø+Ø#Øð
ñ 
ô 
ˆð %Ø(Ø'Ø*Ø(Ø'¨tÐ3Ø%1Ð"CÐ"C°HÐ"CÐ"CÐ"Cð
ð 
ð 	
s4   žB³-A,Á BÁ,A0	Á0BÁ3A0	Á4BÂBÂ
Br   )r   r   r   r   )r   )r   r   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rB   © r   r   r   r      sX   € € € € € ØXÐXð4ð 4ð 4ð 4ð 4ð :ðF
ð F
ð F
ð F
ð F
ð F
ð F
r   r   )Ú
__future__r   ÚloggingÚdatetimer   Útypingr   Úapp.core.postgres.baser   Ú)app.core.postgres.project_crud_repositoryr   Údocx_generatorr	   Úhtml_templater
   Úipc_calculatorr   Ú	getLoggerrC   Úloggerr   rG   r   r   ú<module>rS      sï   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø KÐ KÐ KÐ KÐ KÐ Kà -Ð -Ð -Ð -Ð -Ð -Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø .Ð .Ð .Ð .Ð .Ð .à	ˆÔ	˜8Ñ	$Ô	$€ðL
ð L
ð L
ð L
ð L
Ð0ñ L
ô L
ð L
ð L
ð L
r   