§
    �
•jq  ã                  ó€   — d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	  ej
        d¦  «        Z G d„ d¦  «        ZdS )	é    )ÚannotationsN)ÚDecimal)ÚAny)ÚIPC03aExportRequestzdscons.deepseek.tools_datac                  óD   — e Zd ZdZ	 ddd	„Z	 ddd„Z	 	 	 	 d d!d„Zd"d„Zd
S )#ÚDeepSeekToolsDataMixinz>Data query and computation tools for DeepSeek reasoning agent.é   ÚqueryÚstrÚtop_kÚintÚreturnúdict[str, Any]c                óT  ‡— t          j         ¦   «         }	 | j                             ¦   «         }ˆfd„|D ¦   «         d|…         }t          j         ¦   «         |z
  dz  }dt          |¦  «        |t	          |d¦  «        dœS # t
          $ r}dt          |¦  «        dd	œcY d}~S d}~ww xY w)
uh   Tool: Tra cá»©u tri thá»©c há»“ sÆ¡ dá»± Ã¡n tháº­t vÃ  ThÆ° viá»‡n PhÃ¡p cháº¿ Luáº­t XÃ¢y dá»±ng 2025.c                ó€   •‡— g | ]9Št          ˆfd „‰                     ¦   «         dd…         D ¦   «         ¦  «        ¯7‰‘Œ:S )c              3  ó¾   •K  — | ]W}|                      ¦   «         ‰                     d d¦  «        ‰                     dd¦  «        z                         ¦   «         v V — ŒXdS )Údocument_nameÚ ÚnotesN)ÚlowerÚget)Ú.0ÚwordÚds     €úPC:\Projects\DSCons\app\modules\agents\application\deepseek_harness\tools_data.pyú	<genexpr>zQDeepSeekToolsDataMixin.tool_hybrid_search_knowledge.<locals>.<listcomp>.<genexpr>   sw   øè è € ð ð ð ð —J’J‘L”LØŸš˜o¨rÑ2Ô2°Q·U²U¸7ÀBÑ5GÔ5GÑG×NÒNÑPÔPðQðð ð ð ð ð ó    Né   )ÚanyÚsplit)r   r   r
   s    @€r   ú
<listcomp>zGDeepSeekToolsDataMixin.tool_hybrid_search_knowledge.<locals>.<listcomp>   ss   øø€ ð ð ð àÝð ð ð ð ð !&§¢¡¤¨b¨q¨bÔ 1ðñ ô ñ ô ðØðð ð r   Néè  ÚSUCCESSé   )ÚstatusÚmatched_countÚresultsÚexecution_msÚERRORç        ©r%   Úmessager(   )ÚtimeÚpostgres_clientÚlist_documentsÚlenÚroundÚ	Exceptionr   )Úselfr
   r   Ústart_tÚdocsÚmatchedÚelapsedÚexcs    `      r   Útool_hybrid_search_knowledgez3DeepSeekToolsDataMixin.tool_hybrid_search_knowledge   sì   ø€ õ ”)‘+”+ˆð	QàÔ'×6Ò6Ñ8Ô8ˆDðð ð ð àðñ ô ð ˆuˆfôˆGõ ”y‘{”{ WÑ,°Ñ4ˆGà#Ý!$ W¡¤Ø"Ý % g¨qÑ 1Ô 1ð	ð ð øõ ð 	Qð 	Qð 	QØ%µ#°c±(´(ÈCÐPÐPÐPÐPÐPÐPÐPÐPøøøøð	Qøøøs   –A)B  Â 
B'Â
B"ÂB'Â"B'NÚentity_typeÚfilter_paramsúdict[str, Any] | Nonec                ód  — t          j         ¦   «         }	 |pi }|dk    rC| j                             |                     d¦  «        |                     d¦  «        ¬¦  «        }nâ|dk    rC| j                             |                     d¦  «        |                     d¦  «        ¬¦  «        }n™|dk    rz	 d	d
l}t          ddd¬¦  «        5 }|                     |¦  «        }|                     dg ¦  «        }d
d
d
¦  «         n# 1 swxY w Y   n8# t          $ r}dd|› �ig}Y d
}~n!d
}~ww xY w| j                             ¦   «         }t          j         ¦   «         |z
  dz  }	d|t          |¦  «        |d
d…         t          |	d¦  «        dœS # t          $ r}
dt          |
¦  «        ddœcY d
}
~
S d
}
~
ww xY w)u`   Tool: Truy xuáº¥t sá»• cÃ¡i hoáº¡t Ä‘á»™ng ERP (Thiáº¿t bá»‹, NhÃ¢n sá»±, HÃ³a Ä‘Æ¡n, Dá»± Ã¡n).Ú	equipmentÚ
project_idr%   )r?   r%   Ú	documentsÚdocument_type)r?   rA   Úinvoicer   Nz	dump.jsonÚrzutf-8)ÚencodingÚinvoicesÚerrorz#Failed to load invoices from dump: r"   r#   é
   r$   )r%   r:   ÚcountÚrecordsr(   r)   r*   r+   )r-   r.   Úlist_equipmentr   r/   ÚjsonÚopenÚloadr2   r0   r1   r   )r3   r:   r;   r4   ÚdatarK   ÚfÚ	dump_dataÚer7   r8   s              r   Útool_query_erp_ledgerz,DeepSeekToolsDataMixin.tool_query_erp_ledger,   sO  € õ ”)‘+”+ˆð 	QØ)Ð/¨RˆMØ˜kÒ)Ð)ØÔ+×:Ò:Ø,×0Ò0°Ñ>Ô>Ø(×,Ò,¨XÑ6Ô6ð ;ñ ô ��ð  Ò+Ð+ØÔ+×:Ò:Ø,×0Ò0°Ñ>Ô>Ø"/×"3Ò"3°OÑ"DÔ"Dð ;ñ ô ��ð  	Ò)Ð)ðRØ�K�K�KÝ˜k¨3¸ÐAÑAÔAð =ÀQØ$(§I¢I¨a¡L¤L˜	Ø(Ÿ}š}¨Z¸Ñ<Ô<˜ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =øøõ !ð Rð Rð RØ$Ð&OÈAÐ&OÐ&OÐPÐQ�D�D�D�D�D�DøøøøðRøøøð Ô+×:Ò:Ñ<Ô<�å”y‘{”{ WÑ,°Ñ4ˆGà#Ø*Ý˜T™œØ   œ9Ý % g¨qÑ 1Ô 1ðð ð øõ ð 	Qð 	Qð 	QØ%µ#°c±(´(ÈCÐPÐPÐPÐPÐPÐPÐPÐPøøøøð	Qøøøsm   •BF Â2D Ã,D Ã4D Ä DÄD ÄDÄD ÄF Ä
D(ÄD#ÄF Ä#D(Ä(AF Æ
F/ÆF*Æ$F/Æ*F/úDA-KM-BENKEM-2025-2026r$   ç      $@ç      @r?   Ústage_numberÚadvance_deduction_pctÚfloatÚretention_pctc           
     óÚ  — t          j         ¦   «         }	 t          ||t          t          |¦  «        ¦  «        t          t          |¦  «        ¦  «        t          d¦  «        ¬¦  «        }| j                             |¦  «        }t          j         ¦   «         |z
  dz  }d|                     ¦   «         t          |d¦  «        dœS # t          $ r}	dt          |	¦  «        dd	œcY d
}	~	S d
}	~	ww xY w)uh   Tool: TÃ­nh toÃ¡n bÃ³c tÃ¡ch BOQ vÃ  láº­p Báº£ng phá»¥ lá»¥c 03a Nghiá»‡m thu thanh toÃ¡n giai Ä‘oáº¡n.z8.0000)Úproject_codeÚperiod_numberÚadvance_recovery_rate_pctÚretention_rate_pctÚvat_rate_pctr"   r#   r$   )r%   Úipc_dossierr(   r)   r*   r+   N)	r-   r   r   r   Úfour_pillars_serviceÚgenerate_ipc_documentÚ
model_dumpr1   r2   )
r3   r?   rV   rW   rY   r4   Úreqr`   r7   r8   s
             r   Útool_boq_and_ipc_calculationz3DeepSeekToolsDataMixin.tool_boq_and_ipc_calculationS   s  € õ ”)‘+”+ˆð	QÝ%Ø'Ø*Ý*1µ#Ð6KÑ2LÔ2LÑ*MÔ*MÝ#*­3¨}Ñ+=Ô+=Ñ#>Ô#>Ý$ XÑ.Ô.ðñ ô ˆCð Ô3×IÒIÈ#ÑNÔNˆKÝ”y‘{”{ WÑ,°Ñ4ˆGà#Ø*×5Ò5Ñ7Ô7Ý % g¨qÑ 1Ô 1ðð ð øõ
 ð 	Qð 	Qð 	QØ%µ#°c±(´(ÈCÐPÐPÐPÐPÐPÐPÐPÐPøøøøð	Qøøøs   •B-C Ã
C*ÃC%ÃC*Ã%C*ÚactionrN   c                óè   — t          j         ¦   «         }	 t          j         ¦   «         |z
  dz  }dd|› d|› d�|t          |d¦  «        dœS # t          $ r}dt          |¦  «        d	d
œcY d}~S d}~ww xY w)u^   Tool: [QUYá»€N CHUáº¨N Y] Ghi sá»• cÃ¡i, cáº­p nháº­t hoáº·c chá»‘t dá»¯ liá»‡u vÃ o CSDL ERP.r"   r#   u   Dá»¯ liá»‡u u6    Ä‘Ã£ Ä‘Æ°á»£c ghi/cáº­p nháº­t thÃ nh cÃ´ng (Action: z).r$   )r%   r,   Úrecorded_datar(   r)   r*   r+   N)r-   r1   r2   r   )r3   r:   rf   rN   r4   r7   r8   s          r   Útool_write_erp_ledgerz,DeepSeekToolsDataMixin.tool_write_erp_ledgern   s­   € õ ”)‘+”+ˆð
	Qå”y‘{”{ WÑ,°Ñ4ˆGà#Øw¨+ÐwÐwÐmsÐwÐwÐwØ!%Ý % g¨qÑ 1Ô 1ð	ð ð øõ ð 	Qð 	Qð 	QØ%µ#°c±(´(ÈCÐPÐPÐPÐPÐPÐPÐPÐPøøøøð	Qøøøs   •4A
 Á

A1ÁA,Á&A1Á,A1)r	   )r
   r   r   r   r   r   )N)r:   r   r;   r<   r   r   )rS   r$   rT   rU   )
r?   r   rV   r   rW   rX   rY   rX   r   r   )r:   r   rf   r   rN   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r9   rR   re   ri   © r   r   r   r      s©   € € € € € ØHÐHð ()ðQð Qð Qð Qð Qð: HLð%Qð %Qð %Qð %Qð %QðR 3ØØ'+Ø"ðQð Qð Qð Qð Qð6Qð Qð Qð Qð Qð Qr   r   )Ú
__future__r   Úloggingr-   Údecimalr   Útypingr   Úapp.models.four_pillars_schemasr   Ú	getLoggerÚloggerr   rn   r   r   ú<module>rv      s¸   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à ?Ð ?Ð ?Ð ?Ð ?Ð ?à	ˆÔ	Ð7Ñ	8Ô	8€ðpQð pQð pQð pQð pQñ pQô pQð pQð pQð pQr   