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

103 lines
3.4 KiB
Plaintext

{
PROGRAMA : CXCBALANCES
OBJETIVO : COMPARAR LOS BALANCES DE C CON E
DESARROLLADO : ING. JUAN SOTO
FECHA : 19/06/2019
} DEFINE clientes RECORD
tipo_cliente,sec_cliente INT, nombre_c VARCHAR(100),
balance_c DEC(12,2),
balance_e DEC(12,2)
END RECORD ,cuenta,idx INT
MAIN
CONNECT TO "marmotech" AS "SQL_E" USER "jsoto" USING "lmmjvsd2014"
CONNECT TO "smarmotech" AS "SQL_C" USER "jsoto" USING "lmmjvsd2014"
CALL busca_balances()
END MAIN
FUNCTION busca_balances()
SELECT COUNT(*) INTO cuenta FROM vetb00004 WHERE (tipo_cliente > 14 AND
tipo_cliente NOT IN (18,19)) and status_t IS NULL
DISPLAY "TOTAL CLIENTE ",cuenta
DECLARE busca_clientes CURSOR FOR
SELECT a.tipo_cliente,a.sec_cliente,a.nombre FROM vetb00004 a WHERE (a.tipo_cliente > 14 AND
a.tipo_cliente NOT IN (18,19)) and
a.status_t IS NULL
DELETE FROM tmpbalances
LET idx = 1
FOREACH busca_clientes INTO clientes.*
CALL busca_be() RETURNING clientes.balance_e
CALL busca_bc() RETURNING clientes.balance_c
INSERT INTO tmpbalances(tipo_cliente,sec_cliente,balance_a,balance_b) VALUES (clientes.tipo_cliente,clientes.sec_cliente,clientes.balance_c,clientes.balance_e)
DISPLAY "CLIENTES INSERTADOS ",cuenta," / ",idx
LET idx = idx + 1
END FOREACH
END FUNCTION
FUNCTION busca_bc()
DEFINE sbalance,sbalance1 DEC(12,2)
SET CONNECTION "SQL_C"
# BUSCA BALANCE DEL CLIENTE PARA IMPRIMIRLO
SELECT SUM(a.valor+a.monto_desc) INTO sbalance
FROM cctb00001 a
WHERE (a.tipo_cliente = clientes.tipo_cliente AND
a.sec_cliente = clientes.sec_cliente) AND
(a.fecha_orig <= '12/31/2019') AND
a.tipo_doc NOT IN ("AV","PC","AP") AND
a.status_t IS NULL
SELECT SUM(a.valor+a.monto_desc) INTO sbalance1
FROM cctb00001 a
WHERE (a.tipo_cliente = clientes.tipo_cliente AND
a.sec_cliente = clientes.sec_cliente) AND
(a.fecha_orig <= '12/31/2019') AND
(a.tipo_doc IN ("AV") AND
a.num_doc=a.aplica_a) AND
a.status_t IS NULL
IF sbalance IS NULL THEN
LET sbalance = 0
END IF
IF sbalance1 IS NULL THEN
LET sbalance1 = 0
END IF
LET sbalance = sbalance - sbalance1
RETURN Sbalance
END FUNCTION
FUNCTION busca_be()
DEFINE sbalance,sbalance1 DEC(12,2)
SET CONNECTION "SQL_E"
# BUSCA BALANCE DEL CLIENTE PARA IMPRIMIRLO
SELECT SUM(a.valor+a.monto_desc) INTO sbalance
FROM cctb00001 a
WHERE (a.tipo_cliente = clientes.tipo_cliente AND
a.sec_cliente = clientes.sec_cliente) AND
(a.fecha_orig <= '12/31/2019') AND
a.tipo_doc NOT IN ("AV","PC","AP") AND
a.status_t IS NULL
SELECT SUM(a.valor+a.monto_desc) INTO sbalance1
FROM cctb00001 a
WHERE (a.tipo_cliente = clientes.tipo_cliente AND
a.sec_cliente = clientes.sec_cliente) AND
(a.fecha_orig <= '12/31/2019') AND
(a.tipo_doc IN ("AV") AND
a.num_doc=a.aplica_a) AND
a.status_t IS NULL
IF sbalance IS NULL THEN
LET sbalance = 0
END IF
IF sbalance1 IS NULL THEN
LET sbalance1 = 0
END IF
LET sbalance = sbalance - sbalance1
RETURN Sbalance
END FUNCTION