41 lines
1.5 KiB
Plaintext
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 |