o
    >:h%                     @   s   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	m
Z
mZmZmZmZ ee	G dd dejZee
G d	d
 d
ejZG dd dejZeeG dd dejZeeG dd dejZeeG dd dejZdS )    )admin)format_html)reverse)	mark_safe   )PlantaProduccionMaquinaMaquinaReferenciaMantenimiento
Reparacion
Referenciac                   @   sJ   e Zd ZdZdZdZddgZdd Zde_d	d
 Z	de	_dd Z
de
_dS )PlantaProduccionAdmin)nombrecontacto_producciontelefono_contactoemail_contactoactivomaquinas_countr   )r   	direccionr   activar_plantasdesactivar_plantasc                 C   s
   |j  S N)maquinascountselfobj r   )/var/www/html/public/fabricacion/admin.pyr      s   
z$PlantaProduccionAdmin.maquinas_countu   # Máquinasc                 C      |j dd d S )NTr   updater   requestquerysetr   r   r   r         z%PlantaProduccionAdmin.activar_plantaszActivar plantas seleccionadasc                 C   r    )NFr   r!   r#   r   r   r   r      r&   z(PlantaProduccionAdmin.desactivar_plantasz Desactivar plantas seleccionadasN)__name__
__module____qualname__list_displaylist_filtersearch_fieldsactionsr   short_descriptionr   r   r   r   r   r   r      s    	
r   c                   @   s   e Zd ZdZdZdZdZdZddgZddd	iffZ	d
d Z
de
_dd Zde_dd Zde_dd Zde_dd Zde_dd Zde_dd Zde_dS )MaquinaAdmin)r   planta_linkmostrar_tiempo_configuracionmostrar_periodo_mantenimientoactivaproxima_mantenimientoreferencias_count)plantar3   )r   planta__nombre)r6   activar_maquinasdesactivar_maquinasNfields)r6   r   )tiempo_configuracionperiodo_mantenimientor3   c                 C   sB   zt d|jjgd}td| d|j dW S  ty    Y dS w )Nz)admin:fabricacion_plantaproduccion_changeargs	<a href=""></a>-)r   r6   idr   	Exceptionr   r   urlr   r   r   r0   @   s   zMaquinaAdmin.planta_linkPlantac                 C   $   z|j  dW S  ty   Y dS w )Nz hrB   )r;   rD   r   r   r   r   r1   H   
   z)MaquinaAdmin.mostrar_tiempo_configuracionz#Tiempo para poner operativa (horas)c                 C   rH   )N    díasrB   )r<   rD   r   r   r   r   r2   O   rI   z*MaquinaAdmin.mostrar_periodo_mantenimientou%   Período entre mantenimientos (días)c                 C   s8   z|j  }|dkrtdW S |W S  ty   Y dS w )Nr   z#<span style="color: #bbb;">0</span>rB   )referencias_maquinar   r   rD   )r   r   r   r   r   r   r5   V   s   

zMaquinaAdmin.referencias_countz# Referenciasc                 C   sH   z|j jddd }|rd|j dW S W dS  ty#   Y dS w )NT)	realizadoz-fecha_realizacionzCada rJ   zNunca mantenidarB   )mantenimientosfilterorder_byfirstr<   rD   )r   r   last_maintenancer   r   r   r4   `   s   z"MaquinaAdmin.proxima_mantenimientou   Próxima mantenimientoc                 C   r    )NTr3   r!   r#   r   r   r   r8   j   r&   zMaquinaAdmin.activar_maquinasu   Activar máquinas seleccionadasc                 C   r    )NFrR   r!   r#   r   r   r   r9   n   r&   z MaquinaAdmin.desactivar_maquinasu"   Desactivar máquinas seleccionadas)r'   r(   r)   r*   r+   r,   list_select_relatedraw_id_fieldsr-   	fieldsetsr0   r.   r1   r2   r5   r4   r8   r9   r   r   r   r   r/   #   s2    

r/   c                   @   s    e Zd ZeZdZdZdZdZdS )MaquinaReferenciaInliner   )maquinaunidades_por_minutolead_time_totalminimo_unidadesempaquerY   rW   r[   N)	r'   r(   r)   r	   modelextrar:   readonly_fieldsautocomplete_fieldsr   r   r   r   rV   q   s    rV   c                       s|   e Zd ZdZdZdZdZdZdZdZ	dd	d
iffZ
dd Zde_dd Zde_dddZd fdd	ZG dd dZ  ZS )MaquinaReferenciaAdmin
referenciar]   )rd   maquina_linkrX   rY   rZ   produccion_estimada)maquina__plantarW   )referencia__skureferencia__descripcionmaquina__nombre)rd   rW   rg   r[   r\   Nr:   )rc   )rW   )rX   rZ   )lead_time_generar_ordenlead_time_produccionr\   )r[   unidades_por_empaquec                 C   s    t d|jjgd}td||jS )N admin:fabricacion_maquina_changer=   z<a href="{}">{}</a>)r   rW   rC   r   rE   r   r   r   re      s   z#MaquinaReferenciaAdmin.maquina_link   Máquinac                 C   s   | dddS )Ni  z.1fz
 min/1000u)tiempo_estimado_produccionr   r   r   r   rf      s   z*MaquinaReferenciaAdmin.produccion_estimadazTiempo 1000uc                 C   s0   |r|j s	tdS td|j j d|j j dS )Nu  
                <div class="form-row"><label>SKU:</label><div id="id_sku_referencia" class="readonly"></div></div>
                <div class="form-row"><label>Descripción:</label><div id="id_descripcion_referencia" class="readonly"></div></div>
            zc
            <div class="form-row"><label>SKU:</label><div id="id_sku_referencia" class="readonly">u   </div></div>
            <div class="form-row"><label>Descripción:</label><div id="id_descripcion_referencia" class="readonly">z</div></div>
        )rd   r   skudescripcion)r   r$   r   r   r   r   render_extra_referencia_info   s   

z3MaquinaReferenciaAdmin.render_extra_referencia_infoF c                    s8   t d|d jjd _t d|d< t ||||||S )Nz&Selecciona una referencia con la lupa.	adminformrd   uK  
            <div id="referencia-info-extra" style="margin-top: 5px;">
                <div><strong>SKU:</strong> <span id="id_sku_referencia" style="color: #555;">-</span></div>
                <div><strong>Descripción:</strong> <span id="id_descripcion_referencia" style="color: #555;">-</span></div>
            </div>
        
extra_info)r   formr:   	help_textsuperrender_change_form)r   r$   contextaddchangeform_urlr   	__class__r   r   rz      s   z)MaquinaReferenciaAdmin.render_change_formc                   @   s   e Zd ZdZdS )zMaquinaReferenciaAdmin.Media)zjs/maquina_referencia_admin.jsN)r'   r(   r)   jsr   r   r   r   Media   s    r   r   )FFrt   N)r'   r(   r)   rT   ra   r*   r+   r,   rS   r`   rU   re   r.   rf   rs   rz   r   __classcell__r   r   r   r   rb   ~   s&    	
rb   c                   @   J   e Zd ZdZdZdZdZdZdddiffZd	d
 Z	de	_
dd Zde_
dS )MantenimientoAdmin)re   fecha_programadarL   fecha_realizaciontiempo_mantenimientoconcepto_short)rg   rL   r   rj   conceptorW   rg   r   Nr:   )rW   r   rL   r   r   r   c                 C   *   t d|jjgd}td| d|j dS Nrn   r=   r?   r@   rA   r   rW   rC   r   rE   r   r   r   re         zMantenimientoAdmin.maquina_linkro   c                 C   &   t |jdkr|jd d d S |jS N2   z...lenr   r   r   r   r   r         &z!MantenimientoAdmin.concepto_shortConceptor'   r(   r)   r*   r+   r,   rS   date_hierarchyrU   re   r.   r   r   r   r   r   r      s    	
r   c                   @   r   )ReparacionAdmin)re   fecha_reparaciontiempo_arreglor   )rg   r   r   r   r   Nr:   )rW   r   r   r   observacionesc                 C   r   r   r   rE   r   r   r   re     r   zReparacionAdmin.maquina_linkro   c                 C   r   r   r   r   r   r   r   r     r   zReparacionAdmin.concepto_shortr   r   r   r   r   r   r      s    
r   N)django.contribr   django.utils.htmlr   django.urlsr   django.utils.safestringr   modelsr   r   r	   r
   r   r   register
ModelAdminr   r/   TabularInlinerV   rb   r   r   r   r   r   r   <module>   s     MG+