
    >:h                     D   d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ  e	            Z G d	 d
ej                  Z G d dej                  Z G d dej                  Z G d dej                  Z G d dej                  ZdS )    )models)EmpaqueProduccion)
Referencia)ListaMateriales)get_user_model)ValidationError)timezone)	timedeltac                      e Zd Z ej        ddd          Z ej        d          Z ej        dd          Z ej        d	d
          Z	 ej
        d          Z ej        dd          Z G d d          Zd ZdS )PlantaProducciond   TzNombre de planta)
max_lengthuniqueverbose_nameu
   Direcciónr   u   Contacto producciónr   r      u   Teléfono contactozEmail contactoActivodefaultr   c                       e Zd ZdZdZdgZdS )PlantaProduccion.Metau   Planta de Producciónu   Plantas de ProducciónnombreN__name__
__module____qualname__r   verbose_name_pluralordering     ;C:\Users\a_gir\Desktop\Interacto\siip\fabricacion\models.pyMetar      s         .6:r!   r#   c                     | j         S N)r   selfs    r"   __str__zPlantaProduccion.__str__   s
    {r!   N)r   r   r   r   	CharFieldr   	TextField	direccioncontacto_producciontelefono_contacto
EmailFieldemail_contactoBooleanFieldactivor#   r(   r    r!   r"   r   r      s        VTHZ[[[F  l;;;I*&*cH^___((BEYZZZ&V&4DEEEN V HEEEF       
    r!   r   c                       e Zd Z ej        eej        d          Z ej        dd          Z	 ej
        d          Z ej
        d          Z ej        d	d
          Z G d d          Zd ZdS )Maquinamaquinas	on_deleterelated_namer   u   Nombre de máquinar   z#Tiempo para poner operativa (horas)r   u%   Período entre mantenimientos (días)TActivar   c                   "    e Zd ZdZdZddgZdZdS )Maquina.Metau   Máquinau	   Máquinasplantar   r;   r   N)r   r   r   r   r   r   unique_togetherr    r!   r"   r#   r:   -   s(        !)h'.r!   r#   c                 $    | j          d| j         S )N - r<   r&   s    r"   r(   zMaquina.__str__3   s    +//$+///r!   N)r   r   r   r   
ForeignKeyr   CASCADEr;   r)   r   PositiveIntegerFieldtiempo_configuracionperiodo_mantenimientor0   activar#   r(   r    r!   r"   r3   r3      s        V.  F
 V;OPPPF666:   8F7<   !V HEEEF/ / / / / / / /0 0 0 0 0r!   r3   c                       e Zd Z ej        eej        d          Z ej        eej        d          Z	 ej
        d          Z ej
        d          Z ej
        dd	          Z ej
        d
          Z ej        eej        d          Z ej
        d          Z ej        ddd          Z G d d          Z fdZd Zd Z xZS )MaquinaReferenciareferencias_maquinar5   maquinas_referenciaz!Lead time generar orden (Minutos)r   u   Lead time producción (Minutos)zLead time total (Minutos)F)r   editableu   Mínimo unidades por loteu   Empaque de producción)r6   r   zUnidades por empaque
      zUnidades producidas por minuto)
max_digitsdecimal_placesr   c                       e Zd ZdZdZdZdS )MaquinaReferencia.Metau   Relación Máquina-Referenciau   Relaciones Máquina-Referencia)maquina
referenciaN)r   r   r   r   r   r=   r    r!   r"   r#   rP   ^   s        6>3r!   r#   c                 b    | j         | j        z   | _         t                      j        |i | d S r%   )lead_time_generar_ordenlead_time_produccionlead_time_totalsupersave)r'   argskwargs	__class__s      r"   rX   zMaquinaReferencia.savec   s7    #;d>WWd%f%%%%%r!   c                 6    | j          d| j         d| j         dS )Nu    → z (Velocidad: z/min))rQ   rR   unidades_por_minutor&   s    r"   r(   zMaquinaReferencia.__str__g   s(    ,bbT_bb4C[bbbbr!   c                 L    | j         dk    rdS t          || j         z  d          S )zR
        Calcula el tiempo estimado para producir X unidades (en minutos)
        r   rL   )r]   round)r'   cantidads     r"   tiempo_estimado_produccionz,MaquinaReferencia.tiempo_estimado_produccionk   s/     #q((1X 88!<<<r!   )r   r   r   r   r@   r3   rA   rQ   r   rR   rB   rT   rU   rV   minimo_unidadesr   PROTECTempaqueunidades_por_empaqueDecimalFieldr]   r#   rX   r(   ra   __classcell__)r[   s   @r"   rG   rG   7   s       f.*  G
 #".*  J
 :f98   7666   2f10  O 2f10  O  f.-  G
 766+   .&-5  4 4 4 4 4 4 4 4
& & & & &c c c= = = = = = =r!   rG   c                      e Zd Z ej        eej        d          Z ej        d          Z	 ej
        d          Z ej        d          Z ej        dd	          Z ej        d
d
d          Z G d d          Zd ZdS )Mantenimientomantenimientosr5   zConcepto del mantenimientor   zTiempo estimado (horas)zFecha programadaF	Realizador   Tu   Fecha de realización)nullblankr   c                       e Zd ZdZdZdgZdS )Mantenimiento.Metari   Mantenimientosfecha_programadaNr   r    r!   r"   r#   ro      s!        &.&'r!   r#   c                 &    d| j          d| j         S )NzMantenimiento r?   )rQ   rq   r&   s    r"   r(   zMantenimiento.__str__   s    HHH1FHHHr!   N)r   r   r   r   r@   r3   rA   rQ   r*   conceptorB   tiempo_mantenimiento	DateFieldrq   r0   	realizadofecha_realizacionr#   r(   r    r!   r"   ri   ri   s   s        f.%  G
  v-IJJJH666.   (v'5GHHH##ELLLI((,  ( ( ( ( ( ( ( (
I I I I Ir!   ri   c                       e Zd Z ej        eej        d          Z ej        d          Z	 ej
        d          Z ej        d          Z ej        dd	          Z G d
 d          Zd ZdS )
Reparacionreparacionesr5   u   Concepto de la reparaciónr   zTiempo empleado (horas)u   Fecha de reparaciónTzObservaciones adicionales)rm   r   c                       e Zd ZdZdZdgZdS )Reparacion.Metau   ReparaciónReparacionesz-fecha_reparacionNr   r    r!   r"   r#   r|      s!        $,'(r!   r#   c                 &    d| j          d| j         S )Nu   Reparación r?   )rQ   fecha_reparacionr&   s    r"   r(   zReparacion.__str__   s    FdlFFt/DFFFr!   N)r   r   r   r   r@   r3   rA   rQ   r*   rs   rB   tiempo_arregloru   r   observacionesr#   r(   r    r!   r"   ry   ry      s        f.#  G
  v-IJJJH0V0>WXXXN'v'5KLLL$F$0  M
) ) ) ) ) ) ) )
G G G G Gr!   ry   N)	django.dbr   listas_configuracion.modelsr   referencias.modelsr   lista_de_materiales.modelsr   django.contrib.authr   django.core.exceptionsr   django.utilsr	   datetimer
   UserModelr   r3   rG   ri   ry   r    r!   r"   <module>r      s         9 9 9 9 9 9 ) ) ) ) ) ) 6 6 6 6 6 6 ) ) ) ) ) ) . . . . . . 2 2 2 2 2 2 ! ! ! ! ! !      ~    v|    0 0 0 0 0fl 0 0 02:= := := := := := := :=xI I I I IFL I I I4G G G G G G G G G Gr!   