§
    s�’jð  ã                  óP   — d dl mZ d dlmZ d dlmZ d dlmZ  G d„ d¦  «        ZdS )é    )Úannotations)ÚDecimal)ÚAny)ÚIPC03aExportRequestc                  ó   — e Zd ZdZd
d„Zd	S )ÚToolDispatcherMixinz1Tool execution and dispatch mixin for MCP server.Ú	tool_nameÚstrÚargsúdict[str, Any]Úreturnr   c                óú  ‡— |dk    rn|                      dd¦  «        Š|                      dd¦  «        }| j                             ¦   «         }ˆfd„|D ¦   «         d|…         }dt          |¦  «        |d	œS |d
k    rN|                      dd¦  «        }|dk    r| j                             ¦   «         S | j                             ¦   «         S |dk    r=|                      dd¦  «        }| j                             |¬¦  «        }d„ |D ¦   «         S |dk    rÓt          |                      dd¦  «        |                      dd¦  «        t          t          |                      dd¦  «        ¦  «        ¦  «        t          t          |                      dd¦  «        ¦  «        ¦  «        t          d¦  «        ¬¦  «        }	| j         
                    |	¦  «        }
|
                     ¦   «         S |dk    rr|                      dd¦  «        }|dk    r+| j                             ¦   «                              ¦   «         S | j                             ¦   «                              ¦   «         S |dk    rd d!d"d#d$œS t          d%|› �¦  «        ‚)&u3   Thá»±c thi nghiá»‡p vá»¥ cá»¥ thá»ƒ theo tÃªn Tool.Úsearch_dscons_knowledgeÚqueryÚ Útop_ké   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_namer   ÚnotesN)ÚlowerÚget)Ú.0ÚwordÚds     €ú8C:\Projects\DSCons\app\mcp\server_pkg\tool_dispatcher.pyú	<genexpr>z?ToolDispatcherMixin._execute_tool.<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>z5ToolDispatcherMixin._execute_tool.<locals>.<listcomp>   ss   øø€ ð ð ð àÝð ð ð ð ð !&§¢¡¤¨b¨q¨bÔ 1ðñ ô ñ ô ðØðð ð r   NÚSUCCESS)ÚstatusÚcountÚresultsÚquery_erp_ledgerÚentity_typeÚ	equipmentÚaudit_3way_matchingÚproject_codezDA-KM-BENKEM-2025-2026)r,   c                ó6   — g | ]}|                      ¦   «         ‘ŒS © )Ú
model_dump)r   Úrs     r   r#   z5ToolDispatcherMixin._execute_tool.<locals>.<listcomp>'   s    € Ð0Ð0Ð0 q�A—L’L‘N”NÐ0Ð0Ð0r   Úcalculate_ipc_03aÚ
project_idÚstage_numberé   Úadvance_deduction_pctg      $@Úretention_pctg      @z8.0000)r,   Úperiod_numberÚadvance_recovery_rate_pctÚretention_rate_pctÚvat_rate_pctÚaudit_equipment_and_fuelÚpartner_vat_codeÚ
0200149705Úcheck_fidic_complianceu3   Luáº­t XÃ¢y dá»±ng 2025 (Luáº­t sá»‘ 135/2025/QH15)z:Clause 14.3 (Application for Interim Payment Certificates)Ú	COMPLIANTuX   TuÃ¢n thá»§ cháº·t cháº½ Ä‘á»‹nh má»©c xÃ¢y dá»±ng 2026 vÃ  há»£p Ä‘á»“ng FIDIC chuáº©n.)Úlaw_referenceÚfidic_clauseÚvalidityr   u$   KhÃ´ng nháº­n diá»‡n Ä‘Æ°á»£c tool: )r   Úpostgres_clientÚlist_documentsÚlenÚlist_equipmentÚfour_pillarsÚget_3way_matching_detailsr   r   r
   Úgenerate_ipc_documentr/   Úreconcile_sludge_transportÚreconcile_equipment_rentalÚ
ValueError)Úselfr	   r   r   ÚdocsÚmatchedr)   r,   ÚresÚreqÚdossierÚvatr   s               @r   Ú_execute_toolz!ToolDispatcherMixin._execute_tool   s§  ø€ àÐ1Ò1Ð1Ø—H’H˜W bÑ)Ô)ˆEØ—H’H˜W aÑ(Ô(ˆEØÔ'×6Ò6Ñ8Ô8ˆDðð ð ð àðñ ô ð ˆuˆfôˆGð (µ#°g±,´,È7ÐSÐSÐSàÐ,Ò,Ð,ØŸ(š( =°+Ñ>Ô>ˆKØ˜kÒ)Ð)ØÔ+×:Ò:Ñ<Ô<Ð<àÔ+×:Ò:Ñ<Ô<Ð<àÐ/Ò/Ð/ØŸ8š8 NÐ4LÑMÔMˆLØÔ#×=Ò=È<Ð=ÑXÔXˆCØ0Ð0¨CÐ0Ñ0Ô0Ð0àÐ-Ò-Ð-Ý%Ø!ŸXšX lÐ4LÑMÔMØ"Ÿhšh ~°qÑ9Ô9Ý*1Ý˜ŸšÐ!8¸$Ñ?Ô?Ñ@Ô@ñ+ô +õ $+­3¨t¯xªx¸ÈÑ/MÔ/MÑ+NÔ+NÑ#OÔ#OÝ$ XÑ.Ô.ðñ ô ˆCð Ô'×=Ò=¸cÑBÔBˆGØ×%Ò%Ñ'Ô'Ð'àÐ4Ò4Ð4Ø—(’(Ð-¨|Ñ<Ô<ˆCØ�lÒ"Ð"ØÔ(×CÒCÑEÔE×PÒPÑRÔRÐRàÔ(×CÒCÑEÔE×PÒPÑRÔRÐRàÐ2Ò2Ð2à!VØ \Ø'Øsð	ð ð õ ÐOÀIÐOÐOÑPÔPÐPr   N)r	   r
   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rT   r.   r   r   r   r   	   s4   € € € € € Ø;Ð;ð:Qð :Qð :Qð :Qð :Qð :Qr   r   N)	Ú
__future__r   Údecimalr   Útypingr   Úapp.models.four_pillars_schemasr   r   r.   r   r   ú<module>r]      s‰   ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à ?Ð ?Ð ?Ð ?Ð ?Ð ?ð=Qð =Qð =Qð =Qð =Qñ =Qô =Qð =Qð =Qð =Qr   