Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Foram criadas formulas que irão flexibilizar o calculo do Reajuste. Essas formulas serão vinculadas no cadastro dos componentes de CM (Correção Monetária) e Juros de Contrato. Com isso será possível calcular um valor para taxa, um valor para base de calculo e se o reajuste pode ser executado.

Informações
titleImportante!

Para acessar todas as funções de fórmula do TCGI: Gestão - Funções de Fórmulas - Contratos de Venda

VALORBASEREAJUSTERetorna o base da parcela para o cálculo do reajuste/geração de plano do contexto de juros/CM.                                                                                   

Usa como contexto o reajuste.
SINTAXEVALORBASEREAJUSTE
VALORINDICEREAJUSTERetorna o índice da parcela para o cálculo do reajuste/geração de plano do contexto de juros/CM.                                                                             
CONTEXTOUsa como contexto o reajuste.
SINTAXEVALORINDICEREAJUSTE
EANIVERSARIOPERIODICIDADERetorna 1 para verdadeiro e 0 para false, caso o período do reajuste é o aniversário da periodicidade para juros/CM.                                   
CONTEXTOUsa como contexto o reajuste.
SINTAXEEANIVERSARIOPERIODICIDADE
DATAULTIMOANIVERSARIOPERIODICIDADECalcula a data do último aniversário em relação a data de reajuste juros/cm com periodicidade > 1                                           

Usa como contexto o reajuste.
SINTAXEDATAULTIMOANIVERSARIOPERIODICIDADE
CALCULARJUROSCMPROPORCIONALANTECIPACAORetorna 1 para verdadeiro e 0 para false, caso o período do reajuste é para calcular o valor proporcional de Juros/CM para antecipação de parcela com periodicidade > 1 e não seja o aniversário da periodicidade.          
CONTEXTOUsa como contexto o reajuste.
SINTAXECALCULARJUROSCMPROPORCIONALANTECIPACAO
GETVALORCMACUMULADACalcula a Variação da Correção Monetária (Índice Acumulado). Primeiro argumento moeda. Segundo argumento data início correção. Terceiro argumento data fim correção. Quarto argumento defasagem do índice.                                                                                                      
CONTEXTOUsa como contexto o reajuste.
SINTAXEGETVALORCMACUMULADA('IGPM', '01/01/2020', '01/09/2020', 2)
GETVALORCMMENSALCalcula a Variação da Correção Monetária (Índice Mensal). Primeiro argumento moeda. Segundo argumento data início correção. Terceiro argumento data fim correção. Quarto argumento defasagem do índice.                                                                                                                           
CONTEXTOUsa como contexto o reajuste.
SINTAXEGETVALORCMMENSAL('IGPM', '01/01/2020', '01/09/2020', 2)
TABREGRARetorna o valor de um campo da tabela de regra da venda. Primeiro argumento nome do campo. Segundo argumento tipo do campo. Legenda: (V = Valor; I = Inteiro; S = Conjunto de Caracteres; D = Data e Hora)
CONTEXTOUsa como contexto a chave da tabela "XREGRACOMPONENTEVENDA".
SINTAXETABREGRA('CampoReferencia','TipoDeRetorno')

Exemplo

TABREGRA('VR_TX_PER','V')

GETTABPARCELANUMPARCELARetorna o valor de um campo da tabela de parcela para um número da parcela dentro do grupo da venda do contexto. Primeiro argumento número da parcela,  segundo argumento nome do campo e terceiro argumento tipo do campo. Legenda: (V = Valor; I = Inteiro; S = Conjunto de Caracteres; D = Data e Hora)
CONTEXTOUsa o cotexto da "XPARCELAPAGAMENTO"
SINTAXEGETTABPARCELANUMPARCELA(10, 'NUN_VENDA', 'S');
SETRESIDUODISTRIBUIDOLIMPALimpa os campos de código do grupo do resíduo e a data de distribuição do resíduo. Tabela XVendaParcela
CONTEXTOUsa o cotexto da "XPARCELAPAGAMENTO" e do reajuste
SINTAXESETRESIDUODISTRIBUIDOLIMPA(10);
SETRESIDUODISTRIBUIDOMARCARMarca os campos de código do grupo do resíduo e a data de distribuição do resíduo com os dados do grupo do contexto da parcela e o período do reajuste.  Tabela XVendaParcela
CONTEXTOUsa o cotexto da "XPARCELAPAGAMENTO" e do reajuste
SINTAXESETRESIDUODISTRIBUIDOMARCAR(10);

SETVALORRESIDUO, SETVALORRESIDUOCMANTES, SETVALORRESIDUOCMAPOS, SETVALORRESIDUOJUROSANTES, SETVALORRESIDUOJUROSAPOS

Armazena o valor calculado no campo Valor Resíduo. Tabela XVendaParcela
CONTEXTOUsa o cotexto da "XPARCELAPAGAMENTO" e do reajuste
SINTAXESETVALORRESIDUO(100.01);
REAJUSTARCOMPONENTEREGRAPERIODOREAJUSTERetorna 1 para verdadeiro e 0 para false, caso o período do reajuste em relação a database e a data do reajsute é para reajustar Juros/CM
CONTEXTOUsa o cotexto da "XPARCELAPAGAMENTO" e do reajuste
SINTAXESE REAJUSTARCOMPONENTEREGRAPERIODOR = 1 ENTAO ... FIMSE
REAJUSTARCOMPONENTEREGRAVENCIMENTORetorna 1 para verdadeiro e 0 para false, caso o período do reajuste em relação ao vencimento é para reajustar Juros/CM.
CONTEXTOUsa o cotexto da "XPARCELAPAGAMENTO" e do reajuste
SINTAXESE REAJUSTARCOMPONENTEREGRAVENCIMENTO= 1 ENTAO ... FIMSE
GETSALDODEVEDORTEORICOREGRARESIDUORetorna o valor do saldo devedor téorico do componente principal do valor financiado da regra até o vencimento do contexto da parcela atual. Valor do Financiamento do grupo da parcela do contexto +(mais) valor sumarizado do campo Valor Resíduo somente da parcelas que tenham o vencimento até a data do reajuste - (menos) os valores sumarizados dos campos de valor original mais CM mais juros que tenham o vencimento até a data do reajuste.
CONTEXTOUsa o cotexto da "XPARCELAPAGAMENTO" e do reajuste
SINTAXEGETSALDODEVEDORTEORICOREGRARESIDUO
GETSALDODEVEDORTEORICOVENDARESIDUORetorna o valor do saldo devedor téorico da venda até o vencimento do contexto da parcela atual. Valor do Financiamento do grupo da parcela do contexto +(mais) valor sumarizado do campo Valor Resíduo somente da parcelas que tenham o vencimento até a data do reajuste - (menos) os valores sumarizados dos campos de valor original mais CM mais juros que tenham o vencimento até a data do reajuste.
CONTEXTOUsa o cotexto da "XPARCELAPAGAMENTO" e do reajuste
SINTAXEGETSALDODEVEDORTEORICOVENDARESIDUO
GETNUMPARCELAMESANIVERSARIOREAJUSTE

Retorna o numero da parcela que tenha o vencimento que fez aniversário no mesmo mês da data do reajuste. 

Através desta parcela será definido o limite entre o período do reajuste anual anterior e o novo período.

CONTEXTOUsa o cotexto da "XPARCELAPAGAMENTO" e do reajuste
SINTAXEGETNUMPARCELAMESANIVERSARIOREAJUSTE
GETNUMPARCELAPORDATAVENCIMENTO

Retorna o numero da parcela que tenha o vencimento que fez aniversário no mesmo mês da data do reajuste. O primeiro argumeto é a data pesquisada e o segudo é 1 para a data exata pesquisada ou 0 para o mês/ano pesquisado 

Através desta parcela será definido o limite entre o período do reajuste anual anterior e o novo período.

CONTEXTOUsa o cotexto da "XPARCELAPAGAMENTO" e do reajuste
SINTAXEGETNUMPARCELAPORDATAVENCIMENTO('01/01/2020', 1)
ADICIONADIASPRORATA

Adiciona número de dias Pro-Rata a uma data passada por parâmetro. Ou Seja, não deixa a data mudar de mês.

CONTEXTOUsa o cotexto da "XVENDA"
SINTAXEADICIONADIASPRORATA('01/01/2022', 30)
DIADOCONTRATO

Retorna o dia do aniversário do contrato (Data da Venda)

CONTEXTOUsa o cotexto da "XVENDA" 
SINTAXEDIADOCONTRATO
DATACONTRATOREAJUSTE

Retorna a data do reajuste com base no dia do aniversário do contrato e a defasagem para Correção Monetária com moeda diária.

CONTEXTOUsa o cotexto da "XPARCELAPAGAMENTO" e do reajuste
SINTAXEDATACONTRATOREAJUSTE


Exemplo

TABREGRA('VR_TX_PER','V')

Exemplo de fórmula que que irá validar se o Reajuste pode ou não executar o calculo em determinado mês.

SE  NUMVENDA = 123 OU NUMVENDA = 456 ENTAO
       EANIVERSARIOPERIODICIDADE
SENAO
       SE DATREAJUSTE <> CONVERTDATE('01/03/2018') ENTAO
             1
       SENAO
             0
       FIMSE
FIMSE



Exemplo de fórmula para calcular o índice de Juros ou CM.

SE NUMVENDA = 4445 ENTAO
      SE CODCOMPN = 3 ENTAO
            VALORINDICEREAJUSTE * 12
      SENAO
           VALORINDICEREAJUSTE
      FIMSE
SENAO
       SE DATREAJUSTE = CONVERTDATE('01/05/2018') ENTAO
            ARREDONDA(VALORINDICEREAJUSTE*1.1,9)
       SENAO
             VALORINDICEREAJUSTE
       FIMSE
FIMSE

Exemplo de fórmula que que irá validar se o Reajuste pode ou não executar o calculo em determinado mês.

SE
NUMVENDA = 123 OU NUMVENDA = 456
ENTAO
EANIVERSARIOPERIODICIDADE
SENAO
SE
DATREAJUSTE <> CONVERTDATE('01/03/2018')
ENTAO
1
SENAO
0
FIMSE
FIMSE

OU

/*Se a periodicidade for o seu aniversário e é para aplicar  a proporcionalização do CM, então reaajusta */
Se EANIVERSARIOPERIODICIDADE = 1 OR
    CALCULARJUROSCMPROPORCIONALANTECIPACAO = 1 Entao
  1
Senao
  0
FimSe

Exemplo de fórmula para calcular o índice de Juros ou CM.

SE
NUMVENDA = 4445 OU NUMVENDA = 4438
ENTAO
SE CODCOMPN = 3 E NUMVENDA = 4445
ENTAO
VALORINDICEREAJUSTE * 12
SENAO
VALORINDICEREAJUSTE
FIMSE
SENAO
SE
DATREAJUSTE = CONVERTDATE('01/05/2018')
ENTAO
ARREDONDA(VALORINDICEREAJUSTE*1.1,9)
SENAO
VALORINDICEREAJUSTE
FIMSE
FIMSE

OU

/*Se a periodicidade for o seu aniversário  utilizo o índice anua, se não for o aniversário e for para aplicar a proporcionalização do CM , utilizo o índice mensal */

Se EANIVERSARIOPERIODICIDADE = 1   Entao
       GETVALORCMACUMULADA('IGPM_ANUAL',     

       DATAULTIMOANIVERSARIOPERIODICIDADE,

       DATREAJUSTE, 1)
Senao
  Se CALCULARJUROSCMPROPORCIONALANTECIPACAO= 1         Entao
         GETVALORCMACUMULADA('IGPM',

         DATAULTIMOANIVERSARIOPERIODICIDADE,         

         DATREAJUSTE, 1)
    Senao
       0
    FimSe

FimSe


Exemplo de fórmula para calcular o valor Base de incidência de Juros ou CM

SE
NUMVENDA = 123 OU NUMVENDA = 456
ENTAO
      VALORBASEREAJUSTE
SENAO
      SE
DATREAJUSTE = CONVERTDATE('01/04/2018')
ENTAO
            VALORBASEREAJUSTE/2
SENAO
VALORBASEREAJUSTE
FIMSE       SENAO
            VALORBASEREAJUSTE
       FIMSE
FIMSE