{ 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