§
    s�’jë  ã                  óh   — d dl mZ d dlZd dlZd dlmZ  ej        e¦  «        Z G d„ d¦  «        Z	dS )é    )ÚannotationsN)ÚAnyc                  ó*   — e Zd Z	 ddd„Zdd
„Zdd„ZdS )ÚErpEquipmentMixinNÚ
project_idú
str | NoneÚstatusÚreturnúlist[dict[str, Any]]c                ó¦  — d}g }|r|dz  }|                      |¦  «         |r|dz  }|                      |¦  «         |dz  }|                      ¦   «         5 }|                     ¦   «         5 }|                     ||¦  «         |                     ¦   «         cddd¦  «         cddd¦  «         S # 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )uR   Láº¥y danh sÃ¡ch mÃ¡y mÃ³c thiáº¿t bá»‹, lá»�c theo dá»± Ã¡n hoáº·c tráº¡ng thÃ¡i.a6  
            SELECT e.*, p.project_name as current_project_name, emp.full_name as current_operator_name
            FROM erp_equipment e
            LEFT JOIN projects p ON e.current_project_id = p.id
            LEFT JOIN employees emp ON e.current_operator_employee_id = emp.id
            WHERE 1=1
        z AND e.current_project_id = %sz AND e.status = %sz ORDER BY e.equipment_code ASC;N)ÚappendÚget_connectionÚcursorÚexecuteÚfetchall)Úselfr   r	   ÚsqlÚparamsÚconnÚcurs          ú@C:\Projects\DSCons\app\core\postgres\clients\equipment_client.pyÚlist_equipmentz ErpEquipmentMixin.list_equipment   s~  € ðˆð ˆØð 	&ØÐ3Ñ3ˆCØ�MŠM˜*Ñ%Ô%Ð%Øð 	"ØÐ'Ñ'ˆCØ�MŠM˜&Ñ!Ô!Ð!ØÐ0Ñ0ˆà× Ò Ñ"Ô"ð 	" d¨D¯KªK©M¬Mð 	"¸SØ�KŠK˜˜VÑ$Ô$Ð$Ø—<’<‘>”>ð	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s6   ÁCÁ+*B.ÂCÂ.B2	Â2CÂ5B2	Â6CÃC
ÃC
Úpayloadúdict[str, Any]c                óP  — d}|                       ¦   «         5 }|                     ¦   «         5 }|                     ||¦  «         |                     ¦   «          |                     ¦   «         cddd¦  «         cddd¦  «         S # 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )u5   ThÃªm mÃ¡y mÃ³c thiáº¿t bá»‹ má»›i vÃ o há»‡ thá»‘ng.aã  
            INSERT INTO erp_equipment (
                company_id, equipment_code, equipment_name, equipment_type,
                license_plate, brand_model, manufacture_year, ownership_type,
                hourly_rate_standard, fuel_norm_per_hour, current_project_id,
                current_operator_employee_id, status, notes
            ) VALUES (
                %(company_id)s, %(equipment_code)s, %(equipment_name)s, %(equipment_type)s,
                %(license_plate)s, %(brand_model)s, %(manufacture_year)s, %(ownership_type)s,
                %(hourly_rate_standard)s, %(fuel_norm_per_hour)s, %(current_project_id)s,
                %(current_operator_employee_id)s, %(status)s, %(notes)s
            ) RETURNING *;
        N)r   r   r   ÚcommitÚfetchone)r   r   r   r   r   s        r   Úcreate_equipmentz"ErpEquipmentMixin.create_equipment#   s1  € ðˆð × Ò Ñ"Ô"ð 	" d¨D¯KªK©M¬Mð 	"¸SØ�KŠK˜˜WÑ%Ô%Ð%Ø�KŠK‰MŒMˆMØ—<’<‘>”>ð	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s4   —B¬>BÁ*BÂB	ÂBÂ
B	ÂBÂBÂ"Bc                ó¬  — d}i |¥dt          j        |                     dg ¦  «        ¦  «        i¥}|                      ¦   «         5 }|                     ¦   «         5 }|                     ||¦  «         |                     ¦   «          |                     ¦   «         cddd¦  «         cddd¦  «         S # 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )u8   Ghi nháº­n nháº­t kÃ½ ca mÃ¡y & tiÃªu hao nhiÃªn liá»‡u.a>  
            INSERT INTO erp_equipment_logs (
                equipment_id, project_id, operator_employee_id, log_date,
                shift_code, hours_operated, fuel_consumed_liters, work_description,
                meter_start, meter_end, ai_audit_flags
            ) VALUES (
                %(equipment_id)s, %(project_id)s, %(operator_employee_id)s, %(log_date)s,
                %(shift_code)s, %(hours_operated)s, %(fuel_consumed_liters)s, %(work_description)s,
                %(meter_start)s, %(meter_end)s, %(ai_audit_flags)s
            ) RETURNING *;
        Úai_audit_flagsN)ÚjsonÚdumpsÚgetr   r   r   r   r   )r   r   r   r   r   r   s         r   Úadd_equipment_logz#ErpEquipmentMixin.add_equipment_log7   sh  € ð
ˆð
Øð
à�dœj¨¯ªÐ5EÀrÑ)JÔ)JÑKÔKð
ð 
ˆð × Ò Ñ"Ô"ð 	" d¨D¯KªK©M¬Mð 	"¸SØ�KŠK˜˜VÑ$Ô$Ð$Ø�KŠK‰MŒMˆMØ—<’<‘>”>ð	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s6   ÁC	Á>B1ÂC	Â1B5	Â5C	Â8B5	Â9C	Ã	CÃC)NN)r   r   r	   r   r
   r   )r   r   r
   r   )Ú__name__Ú
__module__Ú__qualname__r   r   r$   © ó    r   r   r   
   sX   € € € € € àBFð"ð "ð "ð "ð "ð0"ð "ð "ð "ð("ð "ð "ð "ð "ð "r)   r   )
Ú
__future__r   r!   ÚloggingÚtypingr   Ú	getLoggerr%   Úloggerr   r(   r)   r   ú<module>r/      s‰   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ð Ð à	ˆÔ	˜8Ñ	$Ô	$€ðA"ð A"ð A"ð A"ð A"ñ A"ô A"ð A"ð A"ð A"r)   