a
    0i(                     @   s0   d dl mZmZ d dlmZ d dlZdd ZdS )    )jsonifyrequest)get_connectionERPNc                 C   s   | j ddgddd }d S )Nz/api/get_bomGET)methodsc                     s^  t jd} | s tddidfS td|   t   d u rTtd tddidfS  z  }|d	| f | }|std
|   tddidfW  	  td S |\}}}}}}|r|nt
j
 }	d| d|||rt|nd|rt|ndt|ddddddg d}
d fdd	| d|	|
d< t|
gW  	  td S  	  td 0 d S )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ZNodoJobNumZSeqPartNumZDescripcionZQtyRequeridaZ
QtyEmitidaZ
CompletadoTLAMaterialCostTLALaborCostTLABurdenCostTLASubcontractCostTLAMtlBurCostTipochildren      ?c           )         sH  g }   }|d| f | }t|ddD ]\}}	|	\	}
}}}}}}}}| d| }|d|
d urpt|
nd|||rt|nd| |rt|nd| t|ddddddg d}|dkr    }|d	| ||
f | }|r|d
 }d|d<    }|d|f | }|r,|d
 r,|d ntj	 }||d<    }|d|f | }|r|\}}}} }!|
t|| t|| t|| t| | t|!| d ||||||d< q8   }"|"d|||f |" }#|#r|#d
 }d|d<    }|d|f | }$|$r.|$\}%}&}'nd
}%|%rJt|t|% }(nd}(   }|d|f | }|r|\}}}} }!|
t|| |( t|| |( t|| |( t| | |( t|!| |( d |&r|'r|'ntj	 }||d< |||||( |(|d< nd|d< d|d< nd|d< d|d< g |d< || q.|S )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 trazableZMaterial)cursorexecutefetchall	enumerateintfloatboolfetchonedatetimenowupdateappend))r   prefixZ
referenciaZcost_factorZ
qty_factorZcomponentesr   Zmtl_rowsidxZmtlZmtl_seqZmtl_partZmtl_descZreq_qtyZ
issued_qtyZissued_completeZrev_numZasm_seqZ	type_codeZnode_idZ	nodo_compZcursor_prodprodZ	child_jobZ	cursor_jhZ
child_infoZ	child_refZcursor_costZc_rowZc_matZc_labZc_burZc_subZc_mtlburZ	cursor_ptptZ
child_headZchild_prodqtyZchild_completeZchild_closeZproration_factor
connectionobtener_componentes V/var/www/html/src/App/SupyCtrol_Module/GerenteSyC/UtilityMaterials/GSYCGetBomGenset.pyr-   7   s    
"





zNfunciones_GetBomGenset.<locals>.obtener_arbol_bom.<locals>.obtener_componentesr   )r   r   )r   argsgetr   printr   r   r   r"   closer#   r$   r    r!   )ZjobNum_inputr   rowZpart_numZ	part_descZprod_qtyZqty_completedZjob_completeZ
close_dateref_dateZ	root_noder.   r+   r/   obtener_arbol_bom
   sh       
  z1funciones_GetBomGenset.<locals>.obtener_arbol_bom)route)appr6   r.   r.   r/   funciones_GetBomGenset	   s    r9   )flaskr   r   Consultas_SQL.conexionr   r#   r9   r.   r.   r.   r/   <module>   s   