{ PROGRAMA : LIMPIACCTBO1 OBJETIVO : BORRAR TRANSACCIONES EN CERO DE LAS CUENTAS POR COBRAR CCTB00001 DESARROLLADO POR : ING. JUAN SOTO FECHA CREACION : 11/06/2019 } DEFINE idx INT, fecha char(10) MAIN DEFER INTERRUPT CONNECT to "marmotech" USER 'jsoto' USING 'lmmjvsd2014' CALL busca_clientes() END MAIN FUNCTION busca_clientes() DEFINE ptipo,psec INT LET fecha = '12/31/2017' DECLARE busca CURSOR FOR SELECT DISTINCT a.tipo_cliente,a.sec_cliente FROM cctb00001 a WHERE a.fecha_orig <=fecha LET idx = 1 FOREACH busca INTO ptipo,psec CALL busca_balance(ptipo,psec) END FOREACH END FUNCTION FUNCTION busca_balance(ktipo,ksec) DEFINE ktipo,ksec INT, valor1,valor2,balance DEC(12,2) LET balance = 0 SELECT SUM(a.valor+a.monto_Desc) INTO valor1 FROM cctb00001 a WHERE (a.tipo_cliente = ktipo AND a.sec_cliente = ksec) AND a.tipo_doc IN ('AV') AND a.fecha_orig <= fecha AND a.status_t IS NULL IF valor1 IS NULL THEN LET valor1 =0 END IF SELECT SUM(a.valor+a.monto_Desc) INTO valor2 FROM cctb00001 a WHERE (a.tipo_cliente = ktipo AND a.sec_cliente = ksec) AND a.tipo_doc not in ('AV','PC','AP') AND a.fecha_orig <= fecha AND a.status_t IS NULL IF valor2 IS NULL THEN LET valor2 =0 END IF LET balance = valor1 - valor2 IF balance = 0 THEN CALL borrar_cliente(ktipo,ksec) END IF END FUNCTION FUNCTION borrar_cliente(xtipo,xsec) DEFINE xtipo,xsec INT DELETE FROM cctb00001 WHERE tipo_cliente = xtipo AND sec_cliente = xsec AND fecha_orig <=fecha DISPLAY "CLIENTE BORRADO ",xtipo," ",xsec," no clientes borrados ",idx LET idx = idx +1 END FUNCTION