
    >:h                     `    d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZ d Zd Zd Zd	S )
    )renderredirectget_object_or_404)
Referencia)ListaMaterialesComponenteListaMateriales)Decimal)messagesc                 8   	 t           j                            | d          }nQ# t           j        $ r? | j        | j        | j        j        |                                 t          d          g dcY S w xY w| j        | j        | j        j        |                                 t          d          g d}|j
                                                            dd          D ];}t          |j                  }|j        |d<   |d                             |           <|S )	NA)
referenciaestadoz1.0)skudescripcionunidadtipocantidadcomponentesr   referencia__unidadr   r   )r   objectsgetDoesNotExistr   r   r   abreviaturaget_tipo_displayr	   r   allselect_relatedobtener_bom_completor   cantidad_totalappend)r   bom	resultado
componente	sub_arbols        BC:\Users\a_gir\Desktop\Interacto\siip\lista_de_materiales\views.pyr   r      s6   

%))Z)LL' 
 
 
>%1 '3//11
 
 	
 	
 	

 ~!-#/++--ENN I o))++::<I]^^ 3 3
()>??	 * 9	*- ''	2222s   !$ AA21A2c           	         t           j                            ddg                              d          }t           j                            d                              d          }d }d }| j        dk    rI| j                            d          }t           j                            |	          }t          |          }t          | d
||||d          S )NPPPT)tipo__inr   T)activoPOSTr   r   zbom/arbol_bom_interactivo.html)referencias
estructurareferencias_posiblessku_seleccionado)	r   r   filterr   methodr*   r   r   r   )requestreferencias_pp_ptr.   r-   r/   r   s         r$   arbol_bom_selector_viewr4   &   s    "*11D$<1HHWWX`aa%-44D4AAPPQYZZJ~"<++E22'++0@+AA
)*55
';(  4,	> >       c           
         | j         dk    r| j                            d          }| j                            d          }| j                            d          }| j                            d          }t	          t
          |          }t          j                            |dd| j	        d	|j
         d
|j
         dd          \  }}d}t          |||          D ]\  }	}
}|	r|
s	 t
          j                            |	          }t          |
          }|rt          |          nt          d          }n# t
          j        t          f$ r Y tw xY wt          j                            ||||           |dz  }t#          j        | d| d|j         d           t)          d          S t#          j        | d           t)          d          S )Nr*   	padre_skuzreferencias[]zcantidades[]zdesperdicios[]r+   r      u!   BOM creado automáticamente para zBOM-z-1)version
creado_porr   codigo)r   r   defaultsr   )pk0)lista_materialesr   r   desperdiciozSe agregaron z componentes al BOM .arbol_bom_selectorz Error al procesar el formulario.)r1   r*   r   getlistr   r   r   r   get_or_createuserr   zipr	   r   
ValueErrorr   creater
   successr;   r   error)r2   r7   r,   
cantidadesdesperdicios	padre_ref	bom_padre_creadosref_idcantdespref_objr   r@   s                  r$   agregar_componente_bomrU   9   s
   ~L$$[11	l**?;;\)).99
|++,<==%ji@@@	&.<< %lR9=RR2222	  = 	
 	
	1 "%k:|"L"L 	 	FD$  $,00F0;;"4==/3Egdmmm+Z8    &-44!*"!'	 5    qLGG"b'"b"byO_"b"b"bccc,---N7>???()))s   *AD::EEN)django.shortcutsr   r   r   referencias.modelsr   lista_de_materiales.modelsr   r   decimalr	   django.contribr
   r   r4   rU    r5   r$   <module>r\      s    @ @ @ @ @ @ @ @ @ @ ) ) ) ) ) ) Q Q Q Q Q Q Q Q       # # # # # #  <  &+* +* +* +* +*r5   