
    >:h!                        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mZ  G d dej                  Z ej        e	           G d	 d
e                      Z ej        e
           G d de                      Z ej        e           G d de                      Z ej        e           G d de                      Z ej        e           G d de                      Z G d dej                  Z ej        e           G d de                      Z ej        e           G d de                      Z G d dej                  ZdS )    )admin)format_html)reverse)Count   )UnidadMedida	FormaPagoEmpaqueCompraEmpaqueProduccionClasificacionProductoGrupoProductoSubgrupoProductoc                   H     e Zd ZdZdZdZdZdgZd Zde_	         fdZ
 xZS )BaseConfigAdminu   
    Clase base para todos los modelos de configuración
    Proporciona funcionalidades comunes como filtros, búsqueda y acciones
       Tduplicate_selectedc                     d}|D ]P}d |_         |j         d|_        t          |d          r|j         d|_        |                                 |dz  }Q|                     || d           d S )Nr   z (Copia)abreviatura_cr   z$ registros duplicados correctamente.)idnombrehasattrr   savemessage_user)selfrequestquerysetcountobjs        CC:\Users\a_gir\Desktop\Interacto\siip\listas_configuracion\admin.pyr   z"BaseConfigAdmin.duplicate_selected   s     	 	CCFJ000CJsM** 9%(_"8"8"8HHJJJQJEE'e#Q#Q#QRRRRR    z$Duplicar los registros seleccionadosc                 J    t                                          |          }|S )N)superget_querysetr   r   qs	__class__s      r    r$   zBaseConfigAdmin.get_queryset,   s    WW!!'**	r!   )__name__
__module____qualname____doc__list_per_pagesave_on_topshow_full_result_countactionsr   short_descriptionr$   __classcell__r'   s   @r    r   r      s|          MK! $$GS S S ,R(        r!   r   c                   R    e Zd Zg dZdgZddgZddgZddddgifgZd Zd	e_	        dS )
UnidadMedidaAdmin)r   r   tipocolored_tipor5   r   r   Nfields)r   r   c                     ddddd}|                     |j        d          }t          d||                                          S )u7   Muestra el tipo con un color distintivo según su valorgreenbluepurpleorange)pesolongitudvolumenunidadgrayz5<span style="color: {}; font-weight: bold;">{}</span>)getr5   r   get_tipo_display)r   r   colorscolors       r    r6   zUnidadMedidaAdmin.colored_tipo=   sY     	
 
 

38V,,R!5!5!7!79 9 	9r!   zTipo de Unidad)
r(   r)   r*   list_displaylist_filtersearch_fieldslist_display_links	fieldsetsr6   r0    r!   r    r4   r4   1   so        DDDL(K}-M"M2	0&9
 	I
9 
9 
9 &6L"""r!   r4   c                   n    e Zd Zg dZdgZddgZddddgifddgdgd	fgZd
 Zde_        d Z	de	_        dS )FormaPagoAdmin)r   
plazo_dias	tipo_pagodescripcion_cortarN   r   descripcionNr7   u   Información Adicionalcollapser7   classesc                 T    |j         dk    rt          d          S t          d          S )u7   Muestra si es contado o crédito con formato distintivor   zm<span style="background-color: #c8e6c9; padding: 3px 8px; border-radius: 4px; color: #2e7d32;">Contado</span>un   <span style="background-color: #ffcdd2; padding: 3px 8px; border-radius: 4px; color: #c62828;">Crédito</span>)rN   r   r   r   s     r    rO   zFormaPagoAdmin.tipo_pago[   sE    >Q   O  P  P  P   P  Q  Q  Qr!   Tipoc                 r    |j         r*t          |j                   dk    r|j         dd          dS |j         S u1   Muestra una versión abreviada de la descripción2   Nz...rQ   lenrV   s     r    rP   z FormaPagoAdmin.descripcion_cortad   B    ? 	0s3?33b88ocrc*////r!      Descripción)
r(   r)   r*   rF   rG   rH   rJ   rO   r0   rP   rK   r!   r    rM   rM   L   s        MMML.K}-M	x.
 	 
"$o"|$
 $
 		IQ Q Q #)I   +9'''r!   rM   c                   R    e Zd ZddgZddgZdddgifddgdgdfgZd	 Zd
e_        dS )EmpaqueCompraAdminr   rP   rQ   Nr7   DetallesrR   rS   c                 r    |j         r*t          |j                   dk    r|j         dd          dS |j         S rY   r[   rV   s     r    rP   z$EmpaqueCompraAdmin.descripcion_corta{   r]   r!   r^   r(   r)   r*   rF   rH   rJ   rP   r0   rK   r!   r    r`   r`   m   x        12L}-M	xj
 	 
$o"|
 
 		I   +9'''r!   r`   c                   R    e Zd ZddgZddgZdddgifddgdgdfgZd	 Zd
e_        dS )EmpaqueProduccionAdminr   rP   rQ   Nr7   ra   rR   rS   c                 r    |j         r*t          |j                   dk    r|j         dd          dS |j         S rY   r[   rV   s     r    rP   z(EmpaqueProduccionAdmin.descripcion_corta   r]   r!   r^   rc   rK   r!   r    rf   rf      rd   r!   rf   c                       e Zd ZdgZdgZdS )ClasificacionProductoAdminr   N)r(   r)   r*   rF   rH   rK   r!   r    ri   ri      s        :LJMMMr!   ri   c                       e Zd ZeZdZdZdZdS )SubgrupoInliner   Subgrupo	SubgruposN)r(   r)   r*   r   modelextraverbose_nameverbose_name_pluralrK   r!   r    rk   rk      s%        EEL%r!   rk   c                   T     e Zd ZddgZdgZegZ fdZd Zde_	        de_
         xZS )GrupoProductoAdminr   contar_subgruposc                     t                                          |          }|                    t          d                    S )N	subgrupos)subgrupos_count)r#   r$   annotater   r%   s      r    r$   zGrupoProductoAdmin.get_queryset   s6    WW!!'**{{5+=+={>>>r!   c                 x    |j         }t          d          d|j         z   }t          d|||dk    rdnd          S )u6   Muestra el número de subgrupos asociados a este grupo6admin:listas_configuracion_subgrupoproducto_changelistz?grupo__id__exact=z<a href="{}">{} subgrupo{}</a>r   s )rw   r   r   r   )r   r   r   urls       r    rt   z#GrupoProductoAdmin.contar_subgrupos   sP    #NOORogjgmRoRoo;S%PUYZPZPZ`bcccr!   rm   rw   )r(   r)   r*   rF   rH   rk   inlinesr$   rt   r0   admin_order_fieldr1   r2   s   @r    rs   rs      sp        01LJMG? ? ? ? ?d d d *5&):&&&&&r!   rs   c                   L    e Zd ZddgZdgZddgZdgZd Zde_        de_	        dS )SubgrupoProductoAdminr   
grupo_linkgrupogrupo__nombrec                 f    t          d|j        j        g          }t          d||j                  S )z9Muestra un enlace al grupo al que pertenece este subgrupoz/admin:listas_configuracion_grupoproducto_change)argsz<a href="{}">{}</a>)r   r   r   r   )r   r   r}   s      r    r   z SubgrupoProductoAdmin.grupo_link   s0    Gsy|n]]]0#syAAAr!   GrupoN)
r(   r)   r*   rF   rG   rH   autocomplete_fieldsr   r0   r   rK   r!   r    r   r      sW        l+L)K/M")B B B
 $+J #2J   r!   r   c                   *     e Zd ZdZdZdZ fdZ xZS )ListasConfiguracionAdminSiteu   IAP Planner - Configuraciónu   Panel de Administraciónu   Gestión de Configuracionesc           	      L   t                                          |          }dt          d          dgdt          d          dgdt          d          ddt          d	          dgd
t          d          ddt          d          ddt          d          dgd|d<   |S )NzUnidades de Medidaz2admin:listas_configuracion_unidadmedida_changelist)namer}   zFormas de Pagoz/admin:listas_configuracion_formapago_changelistzEmpaques de Compraz3admin:listas_configuracion_empaquecompra_changelistu   Empaques de Producciónz7admin:listas_configuracion_empaqueproduccion_changelistClasificacionesz;admin:listas_configuracion_clasificacionproducto_changelistGruposz3admin:listas_configuracion_grupoproducto_changelistrm   rz   )zUnidades y Medidasu   Pagos y FacturaciónEmpaquesu   Categorización de Productos
categories)r#   each_contextr   )r   r   contextr'   s      r    r   z)ListasConfiguracionAdminSite.each_context   s    ''&&w// .g>r6s6stt# *':k2l2lmm% .g>s6t6tuu27C|;};}~~
 +7;x3y3yzz!'2g*h*hii$W5m-n-noo-!
 !
" r!   )r(   r)   r*   site_header
site_titleindex_titler   r1   r2   s   @r    r   r      sG        0K+J/K        r!   r   N)django.contribr   django.utils.htmlr   django.urlsr   django.db.modelsr   modelsr   r	   r
   r   r   r   r   
ModelAdminr   registerr4   rM   r`   rf   ri   TabularInlinerk   rs   r   	AdminSiter   rK   r!   r    <module>r      s               ) ) ) ) ) )       " " " " " "                     e&   @ 6 6 6 6 6 6 6 64 	9 9 9 9 9_ 9 9 9@ 9 9 9 9 9 9 9 9, !""9 9 9 9 9_ 9 9 #"9, %&&       '&
& & & & &U( & & & ; ; ; ; ; ; ; ;&  !!3 3 3 3 3O 3 3 "!3     5?     r!   