§
    Ÿ˜j½  ã                  ó`   — d dl mZ d dlZd dlmZ  ej        d¦  «        Z G d„ d¦  «        ZdS )é    )ÚannotationsN)ÚAnyzdscons.invoice_truth.handlersc                  ó"   — e Zd ZdZdd„Zdd„ZdS )ÚTruthSyncHandlersMixinz8Item-level insertion handlers for Truth synchronization.Úcurr   Ú
company_idÚstrÚinv_idÚseriesÚinv_numÚsellerÚissue_dtÚ
project_idú
str | NoneÚitemúdict[str, Any]ÚclassificationÚeq_codeÚstatsÚreturnÚNonec                ó$  — ddddddddd	d
ddd	dddœ}ddddddddddddddœ}|
d         }|                      |d¦  «        }|                      |d¦  «        }|                     d|t          |¦  «        d d…         t          |	d         ¦  «        d d…         t          |¦  «        d d…         t          |
d         ¦  «        d d…         |||d |› d!|› d"|› d#|› d$t          |	d%         ¦  «        d&›d'�||› d!|› �d d…         t          |	d(         ¦  «        t          |¦  «        d d…         f¦  «         |d)xx         d*z  cc<   |d+                              ||	d         |
d         |
d         t          |	d(         ¦  «        |› d!|› �|d,œ¦  «         d S )-Ni S i`Ì i â i h iÀ'	 i�Ð iðI i0W i ¿ i q ià" i@ )Ú	excavatorÚ	bulldozerÚrollerÚtruckÚcraneÚ	generatorÚmixerÚpumpÚconcrete_cutterÚsteel_benderÚwelderÚdrillÚ	compactorÚ
compressorÚotherg     €0@g      ,@g      $@g      (@g      2@g      @g      @gÍÌÌÌÌÌü?g        g      @)r   r   r   r   r   r   r!   r%   r&   r$   r#   r"   r'   Úequipment_typea<  
            INSERT INTO erp_equipment (
                company_id, equipment_code, equipment_name, equipment_type,
                brand_model, ownership_type, hourly_rate_standard, fuel_norm_per_hour,
                current_project_id, status, notes,
                purchase_invoice_id, purchase_invoice_series_number,
                purchase_cost_vnd, supplier_name, created_at, updated_at
            ) VALUES (
                %s, %s, %s, %s,
                %s, 'owned', %s, %s,
                %s, 'available', %s,
                %s, %s,
                %s, %s, NOW(), NOW()
            )
            ON CONFLICT (equipment_code) DO UPDATE
            SET equipment_name = EXCLUDED.equipment_name,
                brand_model = EXCLUDED.brand_model,
                purchase_cost_vnd = EXCLUDED.purchase_cost_vnd,
                purchase_invoice_id = EXCLUDED.purchase_invoice_id,
                purchase_invoice_series_number = EXCLUDED.purchase_invoice_series_number,
                supplier_name = EXCLUDED.supplier_name,
                updated_at = NOW();
        éd   Ú	item_nameéÿ   Úbrand_modelé–   u*   TÃ i sáº£n mua sáº¯m thá»±c táº¿ theo HÄ� ú-õ    ngÃ y u    tá»« u   . Ä�Æ¡n giÃ¡: Ú
unit_pricez,.0fu    VNÄ�.Útotal_amountÚequipment_assets_addedé   Úequipment_details)ÚcodeÚnameÚtyper,   Úpurchase_cost_vndÚinvoicer   )ÚgetÚexecuter	   ÚfloatÚappend)Úselfr   r   r
   r   r   r   r   r   r   r   r   r   Úrate_mapÚfuel_mapÚeq_typeÚhourly_rateÚ	fuel_norms                     úRC:\Projects\DSCons\app\modules\invoices\application\invoice_truth\sync_handlers.pyÚ_sync_owned_equipmentz,TruthSyncHandlersMixin._sync_owned_equipment   s|  € ð   ØØØØØØØØ%Ø"ØØØØ Øð
ð 
ˆð$ ØØØØØØ"ØØØØØØð
ð 
ˆð !Ð!1Ô2ˆØ—l’l 7¨FÑ3Ô3ˆØ—L’L ¨#Ñ.Ô.ˆ	à�Šðð0 Ý�G‘”˜T˜c˜TÔ"Ý�D˜Ô%Ñ&Ô& t¨ tÔ,Ý�G‘”˜T˜c˜TÔ"Ý�N =Ô1Ñ2Ô2°4°C°4Ô8ØØØð c¸Vð  cð  cÀgð  cð  cÐV^ð  cð  cÐflð  cð  cõ  }Bð  CGð  HTô  CUñ  }Vô  }Vð  cð  cð  cð  cØØÐ%Ð%˜GÐ%Ð% d s dÔ+Ý�d˜>Ô*Ñ+Ô+Ý�F‘”˜D˜S˜DÔ!ðñ1'	
ô '	
ð '	
ðP 	Ð&Ð'Ð'Ô'¨1Ñ,Ð'Ð'Ñ'ØÐ!Ô"×)Ò)àØ˜[Ô)Ø&Ð'7Ô8Ø-¨mÔ<Ý%*¨4°Ô+?Ñ%@Ô%@Ø$Ð0Ð0 wÐ0Ð0Ø ðð ñ
	
ô 
	
ð 
	
ð 
	
ð 
	
ó    Úmat_codeÚ	mat_groupÚ
seller_mstÚwbs_idc                óÌ  — |                      d|t          |¦  «        d d…         t          |d         ¦  «        d d…         t          |¦  «        d d…         t          |d         ¦  «        d d…         t          |d         ¦  «        t          |d         ¦  «        t          |d         ¦  «        t          |d	         ¦  «        t          |¦  «        d d…         t          |¦  «        d d…         ||                     d
¦  «        |	› d|
› �d d…         |||d|	› d|
› d|› d|› d�	f¦  «         |dxx         dz  cc<   |d                              |d¦  «        dz   |d         |<   d S )Nup  
            INSERT INTO erp_warehouse_inventory (
                company_id, item_code, item_name, material_group,
                unit, quantity_received, quantity_remaining,
                unit_price_vnd, total_value_vnd,
                supplier_name, supplier_tax_code,
                source_invoice_id, source_invoice_item_id,
                invoice_series_number, receipt_date,
                warehouse_location, status,
                allocated_project_id, allocated_wbs_id, notes,
                created_at, updated_at
            ) VALUES (
                %s, %s, %s, %s,
                %s, %s, %s,
                %s, %s,
                %s, %s,
                %s, %s,
                %s, %s,
                'KHO Tá»”NG CÃ”NG TY (Háº¢I PHÃ’NG)', 'CHá»œ_XUáº¤T_CÃ”NG_TRÆ¯á»œNG',
                %s, %s, %s,
                NOW(), NOW()
            );
        r)   r*   r+   Úunité2   Úquantityr0   r1   Úidr.   u   Nháº­p kho tá»« HÄ� sá»‘ r/   u    cá»§a ú.Úwarehouse_materials_stagedr3   Úmaterial_summaryr   )r;   r	   r<   r:   )r>   r   r   rG   r   rH   r   rI   r
   r   r   r   r   rJ   r   s                  rD   Ú_sync_warehouse_materialz/TruthSyncHandlersMixin._sync_warehouse_materialt   s�  € ð" 	�Šðð0 Ý�H‘”˜d˜s˜dÔ#Ý�D˜Ô%Ñ&Ô& t¨ tÔ,Ý�I‘”˜t ˜tÔ$Ý�D˜”LÑ!Ô! # 2 #Ô&Ý�d˜:Ô&Ñ'Ô'Ý�d˜:Ô&Ñ'Ô'Ý�d˜<Ô(Ñ)Ô)Ý�d˜>Ô*Ñ+Ô+Ý�F‘”˜D˜S˜DÔ!Ý�J‘”   Ô$ØØ—’˜‘”ØÐ%Ð%˜GÐ%Ð% d s dÔ+ØØØØ_¨FÐ_Ð_°WÐ_Ð_ÀXÐ_Ð_ÐV\Ð_Ð_Ð_ð%ñ1,	
ô ,	
ð ,	
ðZ 	Ð*Ð+Ð+Ô+¨qÑ0Ð+Ð+Ñ+àÐ$Ô%×)Ò)¨)°QÑ7Ô7¸!Ñ;ð 	Ð Ô! )Ñ,Ð,Ð,rF   N)r   r   r   r	   r
   r	   r   r	   r   r	   r   r	   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   )r   r   r   r	   rG   r	   r   r   rH   r	   r   r	   rI   r	   r
   r	   r   r	   r   r	   r   r   r   r   rJ   r   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rE   rS   © rF   rD   r   r   	   sM   € € € € € ØBÐBðf
ð f
ð f
ð f
ðPA
ð A
ð A
ð A
ð A
ð A
rF   r   )Ú
__future__r   ÚloggingÚtypingr   Ú	getLoggerÚloggerr   rX   rF   rD   ú<module>r^      s�   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð à	ˆÔ	Ð:Ñ	;Ô	;€ðl
ð l
ð l
ð l
ð l
ñ l
ô l
ð l
ð l
ð l
rF   