63 lines
1.8 KiB
Plaintext
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 |