103 lines
3.4 KiB
Plaintext
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
|