Você está na página 1de 3

/* CORRIGINDO: AGRUPANTO E SOMANDO AS CONTAS ANALITICAS DA CONTA SINTETICA, CONTA

SINTETICA COM 8 DIGITOS, CONTAS ANALITICA COM 12 DIGITOS, AGRUPA AS CONTAS COM 12
DIGITOS E SOMA, RESULTADO IGUAL UTILMA_CONTA DA CONTA SINTETICA */

DECLARE

CURSOR DENT_COR IS

SELECT '02.447.722/0001-14' as EMPRESA_ID,


CONTA_MINIMIZADA,
COUNT(*) AS CONTADOR_REGISTROS
FROM (SELECT C.EMPRESA_ID,
C.CONTA,
SUBSTR(CONTA, 1, 8) AS CONTA_MINIMIZADA
FROM CTB_CONTAS C
WHERE C.EMPRESA_ID = '02.447.722/0001-14')
WHERE LENGTH(CONTA_MINIMIZADA) = 8
GROUP BY CONTA_MINIMIZADA;

BEGIN
FOR Z in DENT_COR LOOP
SIAC_DETERMINA_SISTEMA('EXPSIAC');

UPDATE CTB_CONTAS CC
SET CC.Ultima_Conta = Z.CONTADOR_REGISTROS
WHERE CC.CONTA = Z.CONTA_MINIMIZADA
AND CC.EMPRESA_ID = Z.EMPRESA_ID;
COMMIT;
END LOOP;
END;

/* CORRIGINDO: AGRUPANTO E SOMANDO AS CONTAS ANALITICAS DA CONTA SINTETICA, CONTA


SINTETICA COM 4 DIGITOS, CONTAS ANALITICA COM 6 DIGITOS, AGRUPA AS CONTAS COM 6
DIGITOS E SOMA, RESULTADO IGUAL UTILMA_CONTA DA CONTA SINTETICA */

DECLARE

CURSOR DENT_COR IS

SELECT '02.447.722/0001-14' as EMPRESA_ID,


CONTA_MINIMIZADA,
COUNT(*) AS CONTADOR_REGISTROS
FROM (SELECT SUBSTR(C.CONTA, 1, 4) CONTA_MINIMIZADA
FROM CTB_CONTAS C
WHERE C.EMPRESA_ID = '02.447.722/0001-14'
AND LENGTH(C.CONTA) < 8
AND LENGTH(C.CONTA) >= 4)
WHERE LENGTH(CONTA_MINIMIZADA) = 4
GROUP BY CONTA_MINIMIZADA;

BEGIN
FOR Z in DENT_COR LOOP
SIAC_DETERMINA_SISTEMA('EXPSIAC');

UPDATE CTB_CONTAS CC
SET CC.Ultima_Conta = Z.CONTADOR_REGISTROS
WHERE CC.CONTA = Z.CONTA_MINIMIZADA
AND CC.EMPRESA_ID = Z.EMPRESA_ID;
COMMIT;
END LOOP;
END;

/* CORRIGINDO: AGRUPANTO E SOMANDO AS CONTAS ANALITICAS DA CONTA SINTETICA, CONTA


SINTETICA COM 2 DIGITOS, CONTAS ANALITICA COM 4 DIGITOS, AGRUPA AS CONTAS COM 4
DIGITOS E SOMA, RESULTADO IGUAL UTILMA_CONTA DA CONTA SINTETICA */

DECLARE

CURSOR DENT_COR IS

SELECT '02.447.722/0001-14' as EMPRESA_ID,


CONTA_MINIMIZADA,
COUNT(*) AS CONTADOR_REGISTROS
FROM (SELECT SUBSTR(C.CONTA, 1, 2) CONTA_MINIMIZADA
FROM CTB_CONTAS C
WHERE C.EMPRESA_ID = '02.447.722/0001-14'
AND LENGTH(C.CONTA) < 6)
WHERE LENGTH(CONTA_MINIMIZADA) = 2
GROUP BY CONTA_MINIMIZADA;

BEGIN
FOR Z in DENT_COR LOOP
SIAC_DETERMINA_SISTEMA('EXPSIAC');

UPDATE CTB_CONTAS CC
SET CC.Ultima_Conta = Z.CONTADOR_REGISTROS
WHERE CC.CONTA = Z.CONTA_MINIMIZADA
AND CC.EMPRESA_ID = Z.EMPRESA_ID;
COMMIT;
END LOOP;
END;

/* CORRIGINDO: AGRUPANTO E SOMANDO AS CONTAS ANALITICAS DA CONTA SINTETICA, CONTA


SINTETICA COM 1 DIGITOS, CONTAS ANALITICA COM 2 DIGITOS, AGRUPA AS CONTAS COM 2
DIGITOS E SOMA, RESULTADO IGUAL UTILMA_CONTA DA CONTA SINTETICA */

DECLARE

CURSOR DENT_COR IS

SELECT EMPRESA_ID,
CONTA_MINIMIZADA,
CONTADOR_REGISTROS,
TRUE,
CASE
WHEN CONTADOR_REGISTROS <= TRUE THEN
TRUE + 1
ELSE
CONTADOR_REGISTROS
END NOVO_CONTADOR
FROM (SELECT '02.447.722/0001-14' as EMPRESA_ID,
CONTA_MINIMIZADA,
COUNT(*) AS CONTADOR_REGISTROS,
MAX(TRUE) TRUE
FROM (SELECT SUBSTR(C.CONTA, 1, 1) CONTA_MINIMIZADA,
CONTA,
NVL(SUBSTR(C.CONTA, 2, 1), 0) TRUE
FROM CTB_CONTAS C
WHERE C.EMPRESA_ID = '02.447.722/0001-14'
AND LENGTH(C.CONTA) < 4)
WHERE LENGTH(CONTA_MINIMIZADA) = 1
GROUP BY CONTA_MINIMIZADA);

BEGIN
FOR Z in DENT_COR LOOP
SIAC_DETERMINA_SISTEMA('EXPSIAC');

UPDATE CTB_CONTAS CC
SET CC.Ultima_Conta = Z.NOVO_CONTADOR
WHERE CC.CONTA = Z.CONTA_MINIMIZADA
AND CC.EMPRESA_ID = Z.EMPRESA_ID;
COMMIT;
END LOOP;
END;

Você também pode gostar