
    >:hM                     B   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mZmZmZmZ d dlmZ  G d d	ej                  Z ee
eg d
dd ej        ddi           ej        ddd           ej        ddd           ej        ddi           ej        ddi           ej        ddi           ej        ddi          d
          Z ee
eg d
dd ej        ddi           ej        ddd           ej        ddd           ej        ddi           ej        ddi           ej        ddi           ej        ddi          d
          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! 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 )'    )forms)inlineformset_factory)ValidationError)Decimal   )MovimientoPerdidaProcesoOrdenCompraItemOrdenCompraDevolucionCompraDevolucionMuestraComercialDevolucionProduccionMovimientoDevolucionVentaAjusteInventarioFisicoMuestraComercialRecepcionProduccionMovimientoVenta)MaquinaReferenciac                   (    e Zd Z G d d          ZdS )OrdenCompraFormc            	           e Zd ZeZg dZ ej        ddi           ej        ddd           ej        ddi           ej        ddi           ej	        ddd          dZ
d	S )
OrdenCompraForm.Meta)	proveedorfecha_requerida
forma_pagoestadoobservacionesclassform-controlattrsdatetyper      r   rowsN)__name__
__module____qualname__r	   modelfieldsr   Select	DateInputTextareawidgets     :C:\Users\a_gir\Desktop\Interacto\siip\movimientos\forms.pyMetar   	   s        
 
 
 &Wn,EFFF.u%??      '%,g~-FGGG"el'>)BCCC+U^ .::  

 

r1   r3   Nr'   r(   r)   r3   r0   r1   r2   r   r      s<        
 
 
 
 
 
 
 
 
 
r1   r   )
referenciacantidadprecio_unitarioempaqueproveedor_referencia	lead_timecertificadoTr   r   r   0.0001r   stepzform-check-input)parent_modelr*   r+   extra
can_deleter/   Fc                   (    e Zd Z G d d          ZdS )AjusteInventarioFisicoFormc                       e Zd ZeZdZdS )AjusteInventarioFisicoForm.Meta__all__N)r'   r(   r)   r   r*   r+   r0   r1   r2   r3   rE   `   s        &r1   r3   Nr4   r0   r1   r2   rC   rC   _   s<                 r1   rC   c            	       P   e Zd Z ej        dd ej        ddd                    Z ej        dd ej        ddd                    Z ej        d	d ej        ddd                    Z ej        d
d ej        ddd                    Z	 G d d          Z
dS )MuestraComercialFormstock_antesFr   readonlyr   rJ   r   labelrequiredwidgetstock_despuescosto_unitariovalor_total_salidac                       e Zd ZeZg dZ ej        ddi           ej        ddd           ej	        ddd           ej
        dd	d
           ej        ddi          dZdS )MuestraComercialForm.Meta)r5   fechacantidad_entregadar   entregado_porr   r   r   r!   r"   r<   r=      r%   N)r'   r(   r)   r   r*   r+   r   r,   r-   NumberInputr.   r/   r0   r1   r2   r3   rT      s         
 
 
 '%,g~-FGGG*5?&>1Z1Z[[["3%"3&x; ; # # # ,U^&q3 3    *U\0HIII

 

r1   r3   N)r'   r(   r)   r   	CharField	TextInputrI   rP   rQ   rR   r3   r0   r1   r2   rH   rH   d   sS       !%/u#"&
 &
     K $EOu#"&
 &
     M %U_u#"&
 &
     N )"u#"&
 &
     
 
 
 
 
 
 
 
 
 
r1   rH   c                   @    e Zd Z G d d          Zd Zd Zd Zd ZdS )RecepcionProduccionFormc                      e Zd ZeZg dZ ej        ddi           ej        ddi           ej        ddi           ej        ddd           ej	        dddd	           ej	        ddd
           ej
        ddd           ej	        ddd
           ej
        ddd           ej
        ddd          d
ZdS )RecepcionProduccionForm.Meta)
r5   plantamaquinarU   cantidad_antescantidad_producidacantidad_despuescosto_unitario_produccionnuevo_costo_ponderadovalor_totalr   r   r   r!   r"   r<   rJ   r   r>   rJ   r=   rK   N)r'   r(   r)   r   r*   r+   r   r,   r-   rY   r[   r/   r0   r1   r2   r3   r_      s       #
 
 
 '%,g~-FGGG"el'>)BCCC#u|7N*CDDD$U_F>+R+RSSS/e/&h*7 7    #4%"3&h; ; # # # !0&*7 7 ! ! ! *;):&hB B * * * &5U_&*< < & & & +5?&*2 2   +
 
r1   r3   c                 ~   | j                             d          }| j                             d          }| j                             d          }|rl|rj|h	 t          j                            ||          }n"# t          j        $ r t          d          w xY w||j        k     rt          d|j         d          |S )Nrc   ra   r5   )ra   r5   u$   Máquina no produce esta referencia.u   Mínimo de z
 unidades.)cleaned_datagetr   objectsDoesNotExistr   minimo_unidades)selfr6   ra   r5   mrs        r2   clean_cantidad_producidaz0RecepcionProduccionForm.clean_cantidad_producida   s    $(()=>>#''	22&**<88
 
	z 
	h&:N&.22#
 3   %1 N N N%&LMMMN",,,%@""4@@@   s   !A8 8Bc                     | j                             |d          }|                    dd          }	 t          |          S # t          $ r t          d|           w xY w)zBHelper para extraer, normalizar coma->punto y convertir a Decimal. ,.   Formato inválido en )datark   replacer   	Exceptionr   )ro   
field_nameraws      r2   _parse_decimalz&RecepcionProduccionForm._parse_decimal   sr    immJ++kk#s##	H3<< 	H 	H 	H!"F*"F"FGGG	Hs   A Ac                 P    |                      d          }t          d|           |S )Nrg   u   🐞 clean_valor_total:r|   printro   vals     r2   clean_valor_totalz)RecepcionProduccionForm.clean_valor_total   s+    !!-00'---
r1   c                 P    |                      d          }t          d|           |S )Nrf   u!   🐞 clean_nuevo_costo_ponderado:r~   r   s     r2   clean_nuevo_costo_ponderadoz3RecepcionProduccionForm.clean_nuevo_costo_ponderado   s,    !!"9::13777
r1   N)r'   r(   r)   r3   rq   r|   r   r   r0   r1   r2   r]   r]      s|        &
 &
 &
 &
 &
 &
 &
 &
P  $H H H  
    r1   r]   c                   .    e Zd Z G d d          Zd ZdS )MovimientoVentaFormc                       e Zd ZeZg dZ ej        ddi           ej        dddd           ej        dddd           ej	        d	dd
           ej        ddi          dZ
dS )MovimientoVentaForm.Meta)r5   r6   precio_unitario_ventarU   
creado_porr   r   r   r<   )r   r>   min0.010r!   r"   N)r'   r(   r)   r   r*   r+   r   r,   rY   r-   r/   r0   r1   r2   r3   r      s        
 
 
 %1EL7O$P$P$P$5E$5^[cjr<s<s$t$t$t$5E$5^[ahk<l<l$m$m$m$3EO&Q_:`:`$a$a$a$0EL7O$P$P$P
 
r1   r3   c                 T    | j         d         }|dk    rt          j        d          |S Nr6   r   z$La cantidad debe ser mayor que cero.)rj   r   r   )ro   qtys     r2   clean_cantidadz"MovimientoVentaForm.clean_cantidad   s/    
+!88'(NOOO
r1   N)r'   r(   r)   r3   r   r0   r1   r2   r   r      sK        
 
 
 
 
 
 
 
"    r1   r   c                   v    e Zd Z ej        dddd ej        dddd          	          Z ej        d
ddd ej        dddd          	          Z ej        dddd ej        dddd          	          Z ej        dddd ej        dddd          	          Z	 G d d          Z
 fdZd Z xZS )DevolucionCompraFormzCantidad antesF      r   r<   rJ   rh   )rM   rN   
max_digitsdecimal_placesrO   u   Cantidad despuészNuevo precio ponderadozValor total   rX   r   c            	           e Zd ZeZg dZ ej        ddi           ej        ddi           ej        ddd           ej	        ddd           ej	        ddd          d	Z
d
S )DevolucionCompraForm.Meta)	itemr5   rU   rb   cantidad_devueltard   precio_unitario_devueltonuevo_precio_ponderadorg   r   r   r   r!   r"   r<   r=   )r   r5   rU   r   r   N)r'   r(   r)   r   r*   r+   r   r,   r-   rY   r/   r0   r1   r2   r3   r   *  s         

 

 

 !EL'@AAA&%,g~-FGGG$U_F^+T+TUUU!2!2': : " " " ):(9'A A ) ) )

 

r1   r3   c                 H    t                      j        |i | | j        r~| j        j        rt| j        j        | j        d         _        | j        j        | j        d         _        | j        j        | j        d         _        | j        j	        | j        d         _        d S d S d S )Nrb   rd   r   rg   )
super__init__instancepkrb   r+   initialrd   r   rg   ro   argskwargs	__class__s      r2   r   zDevolucionCompraForm.__init__C  s    $)&)))= 	KT]- 	K48M4PDK()16:m6TDK*+3<@M<`DK019151JDK&...		K 	K 	K 	Kr1   c                 h    | j                             d          }||dk    rt          d          |S Nr   r   z-La cantidad devuelta debe ser mayor que cero.rj   rk   r   ro   dvs     r2   clean_cantidad_devueltaz,DevolucionCompraForm.clean_cantidad_devueltaK  :    ""#677>bAgg!"QRRR	r1   )r'   r(   r)   r   DecimalFieldrY   rb   rd   r   rg   r3   r   r   __classcell__r   s   @r2   r   r     s       'U'a u #""
 "
    N *u)!Ea u #""
 "
     0U/&a u #""
 "
     %%$ea u #""
 "
    K
 
 
 
 
 
 
 
2K K K K K      r1   r   c            
       ^   e Zd Z ej        dd ej        dddd                    Z ej        d	d ej        ddd
d                    Z ej        dd ej        dddd                    Z ej        dd ej        dddd                    Z	 G d d          Z
d ZdS )DevolucionMuestraComercialFormStock antesFr   rJ   id_stock_antes)r   rJ   idr   rL      Stock despuésid_stock_despueszCosto unitarioid_costo_unitariozValor total salidaid_valor_total_salidac                   
   e Zd ZeZg dZ ej        ddd           ej        ddd           ej        dddd	           ej	        d
ddd           ej        ddd           ej
        dddd          dZdS )#DevolucionMuestraComercialForm.Meta)muestrar5   r6   rU   usuario
comentarior   
id_muestra)r   r   r   id_referenciar<   id_cantidad)r   r>   r   r!   id_fecha)r#   r   r   
id_usuariorX   id_comentario)r   r&   r   N)r'   r(   r)   r   r*   r+   r   r,   rY   r-   r.   r/   r0   r1   r2   r3   r   w  s        *
 
 
 $u|N,*W*WXXX&%,~_-]-]^^^)).RZbo0p0pqqq$U_F^[e+f+fggg#u|N,*W*WXXX(%.QRZi/j/jkkk
 
r1   r3   c                 h    | j                             d          }||dk    rt          d          |S r   r   )ro   cs     r2   r   z-DevolucionMuestraComercialForm.clean_cantidad  9    !!*--=Q!VV!"HIIIr1   N)r'   r(   r)   r   rZ   r[   rI   rP   rQ   rR   r3   r   r0   r1   r2   r   r   U  sj       !%/eu#""&
 &
     K $EOu#"$&
 &
     M %U_u#"%&
 &
     N )"Uu#")&
 &
     
 
 
 
 
 
 
 
&    r1   r   c            	           e Zd Z ej        dd ej        ddd                    Z ej        dd ej        ddd                    Z ej        d	d ej        ddd                    Z ej        d
d ej        ddd                    Z	 ej        dd ej        ddd                    Z
 G d d          Z fdZd Zd Zd Zd Z xZS )DevolucionProduccionFormr   Fr   rJ   rK   r   rL   r   zPrecio costo anteszNuevo precio costozValor inventarioc            
           e Zd ZeZg dZ ej        ddi           ej        ddi           ej        ddd           ej        ddd           ej	        ddd           ej
        dd	d
          dZdS )DevolucionProduccionForm.Meta)	recepcionr5   r   rQ   rU   r   r   r   r   r<   r=   r!   r"   rX   r%   N)r'   r(   r)   r   r*   r+   r   r,   rY   r-   r.   r/   r0   r1   r2   r3   r     s        $
 
 
 &Wn,EFFF&%,g~-FGGG!2!2>[c9d9d!e!e!e/e/X`6a6abbb$U_F^+T+TUUU+U^NTU2V2VWWW
 
r1   r3   c                     t                      j        |i | | j        r| j        j        r| j        j        | j        d         _        | j        j        | j        d         _        | j        j        | j        d         _        | j        j	        | j        d         _        | j        j
        | j        d         _        d S d S d S )NrI   rP   precio_costo_antesnuevo_precio_costovalor_inventario)r   r   r   r   rI   r+   r   rP   r   r   r   r   s      r2   r   z!DevolucionProduccionForm.__init__  s    $)&)))= 	UT]- 	U151JDK&.37=3NDK(08<8XDK,-58<8XDK,-56:m6TDK*+333	U 	U 	U 	Ur1   c                 h    | j                             d          }||dk    rt          d          |S r   r   r   s     r2   r   z0DevolucionProduccionForm.clean_cantidad_devuelta  r   r1   c                     | j                             |d                              dd          }	 t          |          S #  t	          d|           xY w)Nrs   rt   ru   rv   )rw   rk   rx   r   r   )ro   fnr{   s      r2   r|   z'DevolucionProduccionForm._parse_decimal  sZ    immB##++C55	@3<<	@!">"">">???s   A   Ac                 ,    |                      d          S )Nr   r|   ro   s    r2   clean_valor_inventarioz/DevolucionProduccionForm.clean_valor_inventario  s    ""#5666r1   c                 ,    |                      d          S )Nr   r   r   s    r2   clean_nuevo_precio_costoz1DevolucionProduccionForm.clean_nuevo_precio_costo  s    ""#7888r1   )r'   r(   r)   r   rZ   r[   rI   rP   r   r   r   r3   r   r   r|   r   r   r   r   s   @r2   r   r     s       !%/eu~:%V%VWWW  K $EOu~:%V%VWWW  M )"Uu~:%V%VWWW   )"Uu~:%V%VWWW   'u 5u~:%V%VWWW  

 
 
 
 
 
 
 
&U U U U U  @ @ @7 7 79 9 9 9 9 9 9r1   r   c            	          e Zd Z ej        dd ej        ddd                    Z ej        dd ej        ddd                    Z ej        d	d ej        ddd                    Z G d
 d          Z	d Z
dS )MovimientoDevolucionVentaFormr   Fr   rJ   rK   r   rL   r   zPrecio venta ponderadoc            
           e Zd ZeZg dZ ej        ddi           ej        ddi           ej        ddd           ej        ddd           ej	        ddd	           ej
        dd
d          dZdS )"MovimientoDevolucionVentaForm.Meta)ventar5   r6   precio_venta_unitariorU   r   r   r   r   r<   r=   r   r!   r"   rX   r%   N)r'   r(   r)   r   r*   r+   r   r,   rY   r-   r.   r/   r0   r1   r2   r3   r     s        )
 
 
 "U\.(ABBB&%,g~-FGGG)).QY0Z0Z[[[%6U%6~^d=e=e%f%f%f$U_FN+S+STTT+U^NST2U2UVVV
 
r1   r3   c                 h    | j                             d          }||dk    rt          d          |S r   r   )ro   qs     r2   r   z,MovimientoDevolucionVentaForm.clean_cantidad  r   r1   N)r'   r(   r)   r   rZ   r[   rI   rP   precio_venta_pondr3   r   r0   r1   r2   r   r     s        !%/eu~*%U%UVVV  K $EOu~*%U%UVVV  M (&u~*%U%UVVV  

 
 
 
 
 
 
 
&    r1   r   c                   (    e Zd Z G d d          ZdS )PerdidaProcesoFormc                   D    e Zd ZeZg dZd ej        ddi          iZdS )PerdidaProcesoForm.Meta)r5   r6   motivor   r5   r   r   r   N)	r'   r(   r)   r   r*   r+   r   r,   r/   r0   r1   r2   r3   r     s>        (FFF,%,dO-DEEE
r1   r3   Nr4   r0   r1   r2   r   r     s<        
 
 
 
 
 
 
 
 
 
r1   r   N)&djangor   django.forms.modelsr   django.core.exceptionsr   decimalr   modelsr   r	   r
   r   r   r   r   r   r   r   r   fabricacion.modelsr   	ModelFormr   r,   rY   CheckboxInputItemOrdenCompraFormSetItemOrdenCompraManualFormSetrC   rH   r]   r   r   r   r   r   r   r0   r1   r2   <module>r      s         5 5 5 5 5 5 2 2 2 2 2 2       z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z  z 0 0 0 0 0 0
 
 
 
 
eo 
 
 
0 /.
   "el'>)BCCC%E%*H==
 
 
 -5,*H==
 
 
  5<w&?@@@ ,G^3L M M M&U&g~-FGGG*u*./
 
 
    B  54
   "el'>)BCCC%E%*H==
 
 
 -5,*H==
 
 
  5<w&?@@@ ,G^3L M M M&U&g~-FGGG*u*./
 
 
       <       
6
 6
 6
 6
 6
5? 6
 6
 6
pL L L L Leo L L L\    %/   4K K K K K5? K K Kb9 9 9 9 9U_ 9 9 9~C9 C9 C9 C9 C9u C9 C9 C9R% % % % %EO % % %L
 
 
 
 
 
 
 
 
 
r1   