Files
MBS/PROYECTO/otrodir/pendiente_ordenes.4gl
T

41 lines
1.5 KiB
Plaintext

FUNCTION pendiente_ordenes(ptipo,psec)
DEFINE pnum_doc,ptipo,psec INT,
pcodn,pcodgrupo,pcodtipo,pcodsec SMALLINT,
pcantidad,pcantidad_desp,obalance DEC(12,4),
pprecio,valor_balance DEC(12,2)
LET valor_balance = 0
LET obalance = 0
DECLARE busca CURSOR FOR
SELECT a.num_oc,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.cantidad,AVG(c.precio)
FROM prtb00013 a,prtb00012 b,vetb00051 c
WHERE b.tipo_cliente = ptipo AND
b.sec_cliente = psec AND
a.num_oc = b.num_oc AND
a.cod_n = c.cod_n AND
a.cod_grupo = c.cod_grupo AND
a.cod_tipo = c.cod_tipo AND
a.cod_Sec = c.cod_sec AND
b.cotizacion_no = c.cotizacion_no AND
b.cerrada = 'N' AND b.status_t IS NULL
GROUP BY a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.cantidad,a.num_oc
FOREACH busca INTO pnum_doc,pcodn,pcodgrupo,pcodtipo,pcodsec,pcantidad,pprecio
LET pcantidad_desp=0
SELECT SUM(a.cantidad_2) INTO pcantidad_desp
FROM iptb00006 a
WHERE a.cod_n = pcodn AND
a.cod_grupo = pcodgrupo AND
a.cod_tipo =pcodtipo AND
a.cod_sec =pcodsec AND
a.num_oc = pnum_doc AND
a.cod_mov IN (30,31,55,56,12,13) AND
a.status_t IS NULL
IF pcantidad_desp IS NULL THEN
LET pcantidad_desp = 0
END IF
LET obalance = pcantidad - pcantidad_desp
LET valor_balance = (obalance * pprecio) + valor_balance
END FOREACH
RETURN valor_balance
END FUNCTION