o
    >:hE                     @   sh   d dl mZ d dlmZmZmZmZ d dlmZ d dl	Z	dd Z
G dd dejZG d	d
 d
ejZdS )    )models)UnidadMedidaClasificacionProductoGrupoProductoSubgrupoProducto)slugifyNc                 C   s   t | jj}tjd||S )Nreferencias_images)r   
referenciaskuospathjoin)instancefilenamesku_slug r   */var/www/html/public/referencias/models.pyreferencia_image_upload_path
   s   r   c                   @   s&  e Zd Zg dZg dZddgZejddddZej	d	d
Z
ejeejddZejdddddZejdeddZejdeddZejeejddZejeejddZejeejddZejdeddZejdddZejdddddZejdddddZd d! ZG d"d# d#Zd$d% Z e!d&d' Z"d(S ))
Referencia))MPzMateria Prima)PPzProducto en Proceso)PTzProducto Terminado))AzA - Alta prioridad)BzB - Media prioridad)CzC - Baja prioridad)MTAz&Make to Availability (Stock constante))MTOzMake to Order (Bajo pedido)2   Tu
   SKU único)
max_lengthuniqueverbose_nameu   Descripción completa)r    zUnidad de medida)	on_deleter          r   zStock disponible)
max_digitsdecimal_placesdefaultr       zTipo de referencia)r   choicesr       u   Clasificación ABCu   ClasificaciónGrupoSubgrupo   zTipo de abastecimientoActivo)r&   r    zPrecio de costo actualzPrecio de venta unitarioc                 C   sP   ddl m} | jdv r"|| }|r$|| jkr&|| _| jdgd d S d S d S d S )Nr   )costo_desde_bom)r   r   precio_costo)update_fields)
siip.utilsr.   tipor/   save)selfr.   nuevor   r   r   refresh_precio_costoY   s   
zReferencia.refresh_precio_costoc                   @   s   e Zd ZdZdZdgZdS )zReferencia.Metar   Referenciasr
   N)__name__
__module____qualname__r    verbose_name_pluralorderingr   r   r   r   Metab   s    
r=   c                 C   s   | j  d| jd d  S )Nz - r   )r
   descripcionr4   r   r   r   __str__g   s   zReferencia.__str__c                 C   s
   | j  S )z2Devuelve la primera imagen asociada como principal)imagenesfirstr?   r   r   r   imagen_principalj   s   
zReferencia.imagen_principalN)#r8   r9   r:   TIPO_REFERENCIA_CHOICESSKU_ABC_CHOICESTIPO_ABASTECIMIENTO_CHOICESr   	CharFieldr
   	TextFieldr>   
ForeignKeyr   PROTECTunidadDecimalFieldstockr2   sku_abcr   clasificacionr   grupor   subgrupotipo_abastecimientoBooleanFieldactivor/   precio_venta_unitarior6   r=   r@   propertyrC   r   r   r   r   r      s    	r   c                   @   sD   e Zd ZejeejdddZeje	ddZ
G dd dZdd	 Zd
S )ReferenciaImagenrA   zReferencia asociada)r!   related_namer    zArchivo de imagen)	upload_tor    c                   @   s$   e Zd ZdZdZejdgdgZdS )zReferenciaImagen.MetazImagen de referenciau   Imágenes de referenciasr	   )fieldsN)r8   r9   r:   r    r;   r   Indexindexesr   r   r   r   r=   {   s
    r=   c                 C   s   d| j j S )NzImagen para )r	   r
   r?   r   r   r   r@      s   zReferenciaImagen.__str__N)r8   r9   r:   r   rI   r   CASCADEr	   
ImageFieldr   imagenr=   r@   r   r   r   r   rW   o   s    rW   )	django.dbr   listas_configuracion.modelsr   r   r   r   django.utils.textr   r   r   Modelr   rW   r   r   r   r   <module>   s   `