Files
MBS/PROYECTOS/ipdir/buscarequisicion_1.4gl
T

92 lines
4.4 KiB
Plaintext

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