
    8ju                     @    d dl mZmZmZ  G d dej                  ZdS )    )apifieldsmodelsc                       e Zd ZdZdZdZddgZdZ ej	        ddd	d	
          Z
 ej	        dd	          Z ej	        dd	          Z ej	        dd	d	          Z ej        dd          Z ej        dddd          Z ej        ddddd	d          Z ej        ddddd	d          Z ej        dddd d	d          Z ej        d!d"          Z ej        d#d          Z ej        d$d          Z ej        d%d&d	d	'          Z ej        d%d(d)d	d*+          Z ej        d,d-d./          Z ej        d0d12          Z ej        d3/          Z ej         d	4          Z! e"j#        d5d6d7          d8             Z$d9 Z%d: Z&d; Z'd< Z( e"j)        d=          d>             Z* e"j#        d=          d?             Z+ fd@Z, e"j#        dA          dB             Z-dC Z. xZ/S )DRelsumMachineu   Máquina del cliente (alternador, motor, grupo electrógeno…).

    Una máquina puede tener N OTs históricas — permite trazabilidad cruzada
    por número de serie a lo largo de los años.
    zrelsum.machineu   Máquina del clientezmail.threadzmail.activity.mixinzmarca, tipo, numero_serieu   Identificación_compute_nameT)stringcomputestoreindexMarca)r	   trackingzTipo / Modelou   Nº de serie)r	   r   r   zVoltios (V))
      )r	   digitsu   Factor de potencia (cos φ))r      g333333?ua   Factor de potencia típico en motores industriales: 0.85. Usado para convertir entre kVA y kW/CV.)r	   r   defaulthelpzPotencia (kVA)_compute_power_fields_inverse_kvaF)r	   r   r
   inverser   readonlyzPotencia (kW)_inverse_kwzPotencia (CV)_inverse_cvRPM)r   r   zAmperios (A)zFrecuencia (Hz)zres.partnerPropietario)r	   r   r   u   Planta / Ubicaciónz [('parent_id', '=', partner_id)]uS   Sede del cliente donde está instalada la máquina (contacto hijo del propietario).)r	   domainr   r   repair.orderrelsum_machine_idu   Histórico de OTs)r	   u
   Nº de OTs_compute_repair_count)r	   r
   Notas)r   marcatiponumero_seriec                     | D ]>}d |j         |j        |j        fD             }|rd                    |          nd|_        ?d S )Nc                     g | ]}||S  r'   ).0ps     :/opt/odoo/custom_addons/ot_relsum/models/relsum_machine.py
<listcomp>z/RelsumMachine._compute_name.<locals>.<listcomp>x   s    MMM11MQMMM    z / z(sin identificar))r"   r#   r$   joinname)selfrecpartss      r*   r   zRelsumMachine._compute_nameu   s`     	K 	KCMMCHc6F GMMME,1Juzz%(((7JCHH	K 	Kr,   c                     d S Nr'   r/   s    r*   r   z#RelsumMachine._compute_power_fields{   s	     	r,   c                 d    | D ],}|j         r#|j        |j         z  |_        |j        dz  |_        -d S N̯ ?)cos_phikvakwcvr/   r0   s     r*   r   zRelsumMachine._inverse_kva   sD     	* 	*C{ *3;.')	* 	*r,   c                 d    | D ],}|j         r|j        |j         z  |_        |j        dz  |_        -d S r6   )r8   r:   r9   r;   r<   s     r*   r   zRelsumMachine._inverse_kw   sE     	& 	&C{ /&3;.Vg%CFF	& 	&r,   c                 ^    | D ])}|j         dz  }||_        |j        r||j        z  |_        *d S r6   )r;   r:   r8   r9   )r/   r0   r:   s      r*   r   zRelsumMachine._inverse_cv   sG     	+ 	+C'!BCF{ +s{*		+ 	+r,   r8   c                 F    | j         r| j        r| j        rddddiS d S d S d S )Nwarningu   ¿Recalcular potencia?u   Esta máquina ya tiene kVA, kW y CV establecidos. Si guardas con este nuevo factor de potencia, kW y CV se recalcularán automáticamente a partir de kVA y el nuevo cos φ, sobrescribiendo los valores actuales de kW y CV.)titlemessage)r9   r:   r;   r4   s    r*   _onchange_cos_phi_warningz'RelsumMachine._onchange_cos_phi_warning   s[    8 	 	DG 	57	 	 	 	 	 	 	 	r,   c                     d S r3   r'   r4   s    r*   !_compute_recalc_on_cos_phi_changez/RelsumMachine._compute_recalc_on_cos_phi_change   s	    
 	r,   c                    d|v rd|vrd|vrd|vr| D ]}|j         rg|j        r`|j        rY|d         }|rO|j         |z  }t          |          }||d<   |dz  |d<   t	          t
          |                              |           pt	          t
          |                              |           dS t	                                          |          S )Nr8   r9   r:   r;   r7   T)r9   r:   r;   dictsuperr   write)r/   valsr0   new_cos_phinew_kwvals_rec	__class__s         r*   rI   zRelsumMachine.write   s    
 d!2!2t47G7GDX\L\L\ 
6 
67 !sv !#& !"&y/K" !!$;!6#'::)/)/')9mS1177AAA mS))//55554ww}}T"""r,   repair_order_idsc                 B    | D ]}t          |j                  |_        d S r3   )lenrO   repair_countr<   s     r*   r    z#RelsumMachine._compute_repair_count   s1     	9 	9C"3#788C	9 	9r,   c                 f    |                                   dd| j        z  dddd| j        j        fgdS )Nzir.actions.act_windowz	OTs de %sr   z	list,formidin)typer.   	res_model	view_moder   )
ensure_oner.   rO   idsr4   s    r*   action_view_repair_ordersz'RelsumMachine.action_view_repair_orders   sG    +$)+'$dD$9$=>?
 
 	
r,   )0__name__
__module____qualname____doc___name_description_inherit_orderr   Charr.   r"   r#   r$   Floatvoltiosr8   r9   r:   r;   rpmamperioshzMany2one
partner_id	planta_idOne2manyrO   IntegerrR   TextnotesBooleanactiver   dependsr   r   r   r   r   onchangerC   rE   rI   r    r[   __classcell__)rN   s   @r*   r   r      s        
 E)L45H(F6; 	  D FKw666E6;o===D6;nD4PPPL fl-@@@Gfl,7	  G &,'  C 
'
 
 
B 
'
 
 
B &,eG
4
4
4Cv|>'BBBH	.w	?	?	?B !	  J  $1b  I 'v"  
 "6>'  L
 FKw'''EV^D)))F S[&.11K K 21K
  * * *& & &+ + + S\)   S[  # # # # #( S[#$$9 9 %$9
 
 
 
 
 
 
r,   r   N)odoor   r   r   Modelr   r'   r,   r*   <module>rx      sc    $ $ $ $ $ $ $ $ $ $T
 T
 T
 T
 T
FL T
 T
 T
 T
 T
r,   