
    i(                     .    S SK JrJr  S SKJr  S SKrS rg)    )jsonifyrequest)get_connectionERPNc                 2    U R                  SS/S9S 5       ng )Nz/api/get_bomGET)methodsc                  R  ^^ [         R                  R                  S5      n U (       d  [        SS05      S4$ [	        SU  35        [        5       mTc  [	        S5        [        SS05      S4$  TR                  5       nUR                  S	U 45        UR                  5       nU(       d8  [	        S
U  35        [        SS05      S4TR                  5         [	        S5        $ Uu  p4pVpxU(       a  UO[        R                  R                  5       n	SU SUUU(       a  [        U5      OSU(       a  [        U5      OS[        U5      SSSSSS/ S.n
SUU4S jjmT" U SU	5      U
S'   [        U
/5      TR                  5         [	        S5        $ ! TR                  5         [	        S5        f = f)Njob_numerrorzDebe proporcionar un JobNumi  u"   Obteniendo árbol BOM para JobNum uB   Error: no se pudo establecer la conexión con la base de datos ERPu!   Conexión a base de datos fallidai  zSELECT PartNum, PartDescription, ProdQty, QtyCompleted, JobComplete, ClosedDate FROM Erp.JobHead WHERE JobNum = ? AND Company = 'IGSA'u'   No se encontró el JobHead para JobNum z?Trabajo no creado, favor de revisarlo en Seguimiento de trabajoi  u$   Conexión a la base de datos cerrada1         u   Ensamblaje raízNodoJobNumSeqPartNumDescripcionQtyRequerida
QtyEmitida
CompletadoTLAMaterialCostTLALaborCostTLABurdenCostTLASubcontractCostTLAMtlBurCostTipochildrenc                   > / nT)R                  5       nUR                  SU 45        UR                  5       n[        USS9 GH  u  pU	u	  pppnnnU SU 3nUSU
b  [	        U
5      OSUUU(       a  [        U5      OSU-  U(       a  [        U5      OSU-  [        U5      SSSSSS/ S.nUS:X  Ga  T)R                  5       nUR                  S	U UU
45        UR                  5       nU(       Ga  US
   nSUS'   T)R                  5       nUR                  SU45        UR                  5       nU(       a  US
   (       a  US   O[        R                  R                  5       nUUS'   T)R                  5       nUR                  SU45        UR                  5       nU(       a[  Uu  nnnn n!UR                  [        U5      U-  [        U5      U-  [        U5      U-  [        U 5      U-  [        U!5      U-  S.5        T*" UUUX45      US'   GOT)R                  5       n"U"R                  SUUU45        U"R                  5       n#U#(       GaX  U#S
   nSUS'   T)R                  5       nUR                  SU45        UR                  5       n$U$(       a  U$u  n%n&n'OS
n%U%(       a  [        U5      [        U%5      -  n(OSn(T)R                  5       nUR                  SU45        UR                  5       nU(       aj  Uu  nnnn n!UR                  [        U5      U-  U(-  [        U5      U-  U(-  [        U5      U-  U(-  [        U 5      U-  U(-  [        U!5      U-  U(-  S.5        W&(       a	  W'(       a  U'O[        R                  R                  5       nUUS'   T*" UUUUU(-  U(5      US'   OSUS'   SUS'   OSUS'   SUS'   / US'   UR                  U5        GM     U$ )Na  SELECT jm.MtlSeq, jm.PartNum, jm.Description, jm.RequiredQty, jm.IssuedQty, jm.IssuedComplete, jm.RevisionNum, jm.AssemblySeq, p.TypeCode FROM Erp.JobMtl jm INNER JOIN Erp.Part p ON p.PartNum = jm.PartNum AND p.Company = jm.Company WHERE jm.JobNum = ? AND jm.Company = 'IGSA'   )start.r   r   r   MzySELECT JobNum FROM Erp.JobProd WHERE Company = 'IGSA' AND TargetJobNum = ? AND TargetAssemblySeq = ? AND TargetMtlSeq = ?r   zManufacturado cruzador   zUSELECT JobComplete, ClosedDate FROM Erp.JobHead WHERE JobNum = ? AND Company = 'IGSA'r   zSELECT TLAMaterialCost, TLALaborCost, TLABurdenCost, TLASubcontractCost, TLAMtlBurCost FROM Erp.JobAsmbl WHERE JobNum = ? AND AssemblySeq = 0 AND Company = 'IGSA')r   r   r   r   r   r   zSELECT TOP 1 JobNum, TranDate FROM Erp.PartTran WHERE Company = 'IGSA' AND PartNum = ? AND RevisionNum = ? AND TranType = 'MFG-STK' AND TranDate <= ? ORDER BY TranDate DESCzManufacturado (sin cruce)z^SELECT ProdQty, JobComplete, ClosedDate FROM Erp.JobHead WHERE JobNum = ? AND Company = 'IGSA'zNo trazableMaterial)cursorexecutefetchall	enumerateintfloatboolfetchonedatetimenowupdateappend)+r
   prefix
referenciacost_factor
qty_factorcomponentesr%   mtl_rowsidxmtlmtl_seqmtl_partmtl_descreq_qty
issued_qtyissued_completerev_numasm_seq	type_codenode_id	nodo_compcursor_prodprod	child_job	cursor_jh
child_info	child_refcursor_costc_rowc_matc_labc_burc_subc_mtlbur	cursor_ptpt
child_headchild_prodqtychild_completechild_closeproration_factor
connectionobtener_componentess+                                            ڀC:\Users\victor.barrera\Documents\proyectos\elepV3\Elep\src\App\SupyCtrol_Module\GerenteSyC\UtilityMaterials\GSYCGetBomGenset.pyrY   Nfunciones_GetBomGenset.<locals>.obtener_arbol_bom.<locals>.obtener_componentes7   s^    #**,B
 J "??, )(! <HCuxrGx*W^`gir!'#/G !("$/6/Bs7|#+'/;Bwz(Y<FuZ'8CS]&]&*?&;+.(+),.1), "$&!I$ !C'&0&7&7&9#++y$gw7
  +335(,QI0GIf-(2(9(9(;I%-- w!* *3););)=J9C
ST
1[c[l[l[p[p[rI2;Ih/*4*;*;*=K'//!n!*
 %0$8$8$:E$GL DueUH ) 0 07<U|k7Q49%L;4N5:5\K5O:?,:T5:8_{5R2" !# 5H	SZ\egr4Ij1(2(9(9(;I%--!K "*7J ?	 "+!3!3!5B!,.qE	4O	& 1,6,=,=,?	 ) 1 1 %E%.L!" .7-?-?-A
#-Q[$NM>;45M#07<W~mH\7\$47:$4.8.?.?.A + 3 3%r%.L!"
 )4(<(<(>#(KP$HE5%$-$4$4;@<+;UXh;h8=e{8RUe8e9>u9SVf9f>CEl[>X[k>k9>x;9VYi9i6& %' <JkK_g_p_p_t_t_v	6?	( 38KIW^`ikv  zJ  lJ  L\  9]	* 54O	& 16C	( 3,6	&).0	(+02	*-&&y1e !=f #"    r   )      ?r]   )r   argsgetr   printr   r%   r&   r,   closer-   r.   r*   r+   )jobNum_inputr%   rowpart_num	part_descprod_qtyqty_completedjob_complete
close_dateref_date	root_noderX   rY   s              @@rZ   obtener_arbol_bom1funciones_GetBomGenset.<locals>.obtener_arbol_bom
   s   ||''	2G%BCDcII2<.AB&(
VWG%HIJCOOh	:&&(FNNI
 //#C?~NO)jklnqqz 89y VYRH,%1zx7H7H7L7L7NH &#(3;h6CeM2"<0#& #!$&)!$*I$@# @#D %8c8$TIj!I;' 89 89s   .AF	  BF	 	F&)route)apprl   s     rZ   funciones_GetBomGensetrp   	   s%    YY~wY/s: 0s:r\   )flaskr   r   Consultas_SQL.conexionr   r-   rp    r\   rZ   <module>rt      s   
 # 4 u:r\   