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

63 lines
1.8 KiB
Plaintext

{
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