GLOBALS "ipprgb000.4gl" FUNCTION buscadoc(numid,codmov) DEFINE numid,codmov INT SELECT a.numero_Doc,a.cod_mov,a.fecha,a.num_oc,a.tipo_cliente,a.sec_cliente,a.nombre,a.bodega,a.bodega_destino, a.estado,a.url_destino,b.descripcion,a.observacion INTO p_iptb57.numero_doc,p_iptb57.cod_mov,p_iptb57.fecha,p_iptb57.num_oc,p_iptb57.tipo_cliente,p_iptb57.sec_cliente, p_iptb57.cliente,p_iptb57.bodega,p_iptb57.bodega_destino,p_iptb57.estado, p_iptb57.url_file,p_iptb57.observacion FROM iptb00057 a, iptb00061 b WHERE a.numero_doc = numid AND a.cod_mov = codmov AND a.idestado = b.idestado #BODEGA DESTINO IF p_iptb57.bodega_destino IS NOT NULL THEN SELECT a.descripcion INTO nombreBodegaDestino FROM intb00009 a WHERE a.cod_bodega = p_iptb57.bodega_destino END IF DECLARE buscardetalle CURSOR FOR SELECT a.area,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descripcion,a.unidad_med, a.cantidad_1,a.cantidad_2,b.factor_conv, c.id_etiqueta, c.lado_1,c.lado_2,c.lado_3,c.cantidad,c.medida FROM iptb00058 a,iptb00001 b LEFT OUTER JOIN iptb00060 c ON c.cod_n =b.cod_n AND c.cod_grupo = b.cod_grupo AND c.cod_tipo = b.cod_tipo AND c.cod_sec = b.cod_Sec AND c.id_despiece = numid WHERE a.numero_Doc = numid AND a.cod_mov = codmov AND a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec LET idx = 1 CALL arr_iptb58.clear() LET total_cantidad =0 LET total_medida =0 LET tienedespiece = FALSE FOREACH buscardetalle INTO arr_iptb58[idx].area, arr_iptb58[idx].cod_n, arr_iptb58[idx].cod_grupo, arr_iptb58[idx].cod_tipo, arr_iptb58[idx].cod_sec, arr_iptb58[idx].descripcion, arr_iptb58[idx].unidad_med, arr_iptb58[idx].cantidad_1, arr_iptb58[idx].cantidad, arr_iptb58[idx].factor_conv, despiece[idx].id_etiqueta, despiece[idx].lado_1, despiece[idx].lado_2, despiece[idx].lado_3, despiece[idx].cantidad, despiece[idx].medida IF despiece[idx].cantidad > 0 THEN LET tienedespiece= TRUE ELSE LET tienedespiece= FALSE END IF LET total_cantidad = total_cantidad + despiece[idx].cantidad LET total_medida = total_medida + despiece[idx].medida LET idx = idx + 1 END FOREACH LET cuentaimp = idx { #DESPIECE CALL despiece.clear() DECLARE busca_despiecem1 CURSOR FOR SELECT a.id_etiqueta,a.lado_1,a.lado_2,a.lado_3,a.cantidad,a.medida,a.secuencia, a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec FROM iptb00060 a,vetb00026 b WHERE a.id_despiece = p_iptb57.numero_doc AND a.id_etiqueta = b.codid LET total_cantidad = 0 LET idx = 1 FOREACH busca_despiecem1 INTO despiece[idx].id_etiqueta,despiece[idx].lado_1, despiece[idx].lado_2,despiece[idx].lado_3,despiece[idx].cantidad, despiece[idx].medida,despiece[idx].secuencia, despiece[idx].cod_n, despiece[idx].cod_grupo, despiece[idx].cod_tipo, despiece[idx].cod_sec LET total_cantidad = total_cantidad + despiece[idx].cantidad LET idx = idx + 1 END FOREACH } RETURN p_iptb57.*,arr_iptb58 END FUNCTION