70 lines
3.0 KiB
Plaintext
70 lines
3.0 KiB
Plaintext
FUNCTION busca_facturas()
|
|
DEFINE xcotizacion INT,
|
|
facturadas DYNAMIC ARRAY OF RECORD
|
|
fecha DATE,
|
|
factura INT,
|
|
productos VARCHAR(100),
|
|
cant_fact DEC(12,5),
|
|
cant_cot DEC(12,5),
|
|
cant_dev DEC(12,5),
|
|
residuo DEC(12,5)
|
|
|
|
END RECORD,
|
|
xnombre VARCHAR(60),
|
|
idx SMALLINT
|
|
|
|
OPEN WINDOW w1 WITH FORM "vefmwd008"
|
|
DIALOG ATTRIBUTES(UNBUFFERED)
|
|
INPUT BY NAME xcotizacion
|
|
AFTER FIELD xcotizacion
|
|
SELECT b.nombre INTO xnombre FROM prtb00012 a,vetb00004 b WHERE a.num_oc = xcotizacion AND
|
|
a.tipo_cliente = b.tipo_cliente AND a.sec_cliente =b.sec_cliente AND a.status_t IS NULL
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL fgl_winmessage("INFO","REGISTRO NO EXISTE","INFO")
|
|
NEXT FIELD xcotizacion
|
|
END IF
|
|
DISPLAY BY NAME xnombre
|
|
|
|
DECLARE busca_cotizacion CURSOR FOR
|
|
SELECT CONVERT(CHAR(10),a.fecha_factura,103),a.factura,CAST(b.cod_n AS char(5))||'-'||
|
|
CAST(b.cod_grupo AS char(5))||'-'||
|
|
CAST(b.cod_tipo AS char(5))||'-'||
|
|
CAST(b.cod_sec AS char(5))||'-'||' '||
|
|
c.descrip_esp,SUM(b.cantidad),
|
|
ISNULL((SELECT SUM(d.cantidad) FROM prtb00013 d WHERE b.cod_n = d.cod_n AND b.cod_grupo = d.cod_grupo AND
|
|
b.cod_tipo = d.cod_tipo AND b.cod_sec = d.cod_Sec AND
|
|
d.num_oc = a.orden AND
|
|
d.status_t IS null ),0) ,
|
|
ISNULL((SELECT SUM(f.cantidad_2) FROM iptb00006 f WHERE f.cod_n = b.cod_n AND
|
|
f.cod_grupo = b.cod_grupo AND
|
|
f.cod_tipo = b.cod_tipo AND
|
|
f.cod_Sec = b.cod_sec AND f.cod_mov in(12,13) AND
|
|
f.num_oc = a.orden AND f.status_t IS NULL ),0)
|
|
FROM vetb00002 a,vetb00003 b,iptb00002 c
|
|
WHERE a.factura = b.factura AND
|
|
a.orden = xcotizacion AND
|
|
b.cod_n = c.cod_n AND
|
|
b.cod_grupo = c.cod_grupo AND
|
|
b.cod_tipo = c.cod_tipo AND
|
|
b.cod_sec = c.cod_sec AND
|
|
a.status_t IS NULL
|
|
GROUP BY a.fecha_factura,a.factura,b.cod_n,b.cod_grupo,
|
|
b.cod_tipo,b.cod_sec, c.descrip_esp,a.orden
|
|
ORDER BY b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_Sec
|
|
LET idx = 1
|
|
FOREACH busca_cotizacion INTO facturadas[idx].*
|
|
LET facturadas[idx].residuo = facturadas[idx].cant_cot-facturadas[idx].cant_fact+
|
|
facturadas[idx].cant_dev
|
|
LET idx = idx +1
|
|
END FOREACH
|
|
END INPUT
|
|
DISPLAY ARRAY facturadas TO sfacturadas.*
|
|
END DISPLAY
|
|
ON ACTION CANCEL
|
|
LET INT_FLAG = FALSE
|
|
EXIT DIALOG
|
|
|
|
END DIALOG
|
|
CLOSE WINDOW w1
|
|
|
|
END FUNCTION |