Status | 'C' – Concluido |
CNTA310 - 4 |
Desenvolver função de reajuste do contrato CN310Reaj()
CN310Reaj(aContrato)
A função de reajuste do contrato é responsável pelo controle do reajuste que será executado automaticamente.
Poderá ser executado reajuste com inclusão de revisão, inclusive sendo necessário a aprovação das entidades contábeis quando cabíveis, ou a alteração direta no contrato vigente. Estes dois modos são definidos pelo parâmetro MV_CNRJREV.
A função deve verificar o parâmetro MV_CNRJREV e caso este esteja ativo, o modelo do contrato (CNTA300/CNTA301) deve ser iniciado como uma nova revisão. Caso o parâmetro MV_CNRJREV esteja desativado, o modelo de contrato deve ser iniciado como uma alteração do contrato vigente.
Em ambos os casos deve-se atentar ao parâmetro MV_CNREVMD(Campo CN9), que gera revisões das medições já encerradas quando um contrato sofre revisão. Este parâmetro deve ser inibido.
Deverá ser realizado as alterações necessárias no modelo automáticamente, como inclusão de tipo de revisão (CN9_TIPREV), Data de Referência (CN9_DREFRJ), Data de Reajuste (CN9_DTREAJ) e Justificativa (CN9_JUSTIF). Após as alterações deve ser executada a função CN300REAJU, que executará as quebras dos itens do contrato. (Utilizar o fonte TECA870 como exemplo).
Após a quebra dos itens ser realizada o array aContrato deve ser atualizado com as novas informações, anteriormente como vazias.
As alterações devem ser validadas utilizando a função oModel:VldData() e oModel:CommitData(), verificando se ocorreu alguma falha ao salvar.
Se o parâmetro MV_CNRJREV estiver ativo, verificar se a revisão gerada foi bloqueada por alçadas, [Alltrim(CN9->CN9_SITUAC) == '09' .And. !Empty(CN9->CN9_APROV)], caso não tenha sido bloqueada, deverá ser realizada a aprovação automática da revisão com a chamada da função CN300Aprov().
Esta função deve retornar verdadeiro (.T.) caso as alterações sejam efetivadas sem falhas, ou falso (.F.) caso ocorra qualquer tipo de erro. | CNTA310 - 6 |
Atualizar função A300VlrInd para calcular ProRata.
Deverá ser atualizada a função A300VlrInd para receber como parâmetro lProRata para que, com estas informações calcule a proporcionalidade da aplicação.
O default para este parâmetro será .F.
O calculo do Pro-Rata é realizado da seguinte forma: - Define-se a grandeza da periodicidade de reajuste do item, ou planilha, ou contrato (respeitando-se esta hierarquia), esta grandeza sempre será uma escala a menos do que a informada no campode Un. Periodicidade, sendo o mínimo possível dias (Anos -> Meses, Meses -> Dias, Dias -> Dias).
É realizada a equação
Pro Rata= Dt. Reajuste-Dt. Reaj. AnteriorDt. Prev. Reajuste-Dt.Reaj. Anterior
O Pro Rata deve ser multiplicado pelo valor do índice calculado, gerando um índice já reajustado.
| CNTA310 - 2 |
Atualizar a função CN300Reaju()
Deverá ser validado o ProRata da Planilha (CNA_PRORAT) e do Contrato (CN9_PRORAT) na execução do reajuste.
Para reajuste de itens, deve ser considerado o valor de ProRata da planilha relacionada ao item, caso esta respeite o contrato, deve ser utilizado o valor de Pro Rata do contrato.
As chamadas da função A300VlrInd() devem constar o terceiro parâmetro lProRata como verdadeiro (.T.) quando for necessário realizar o calculo do índice proporcionalizado. | CNTA300R -1 |
Atualizar datas previstas de reajuste de itens, planilhas e contratos
No Commit do modelo, deverão ser atualizados os campos Dt. Prox. Reajuste de itens (CNB_PROXRJ), planilhas (CNA_PROXRJ) e contrato (CN9_PROXRJ), para conter a data do próximo reajuste (data do reajuste + periodicidade do índice de reajuste). | CNTA300R - 4 |
Os item a seguir referem-se ao Reajuste Retroativo de Contratos. | |
Desenvolver função CN310Retro()
Quando informado uma revisão que possua o campo Retroativo (CN0_RETRO) com valor "SIM" no pergunte, deverá ser gerada uma medição extraordinária contendo a diferença dos valores atuais dos valores medidos anteriormente.
Para isto, para cada contrato, na geração da medição será utilizado a quantidade medida (CNB_QTDMED) do item reajustado como quantidade (CNE_QUANT) da medição e a diferença entre o valor atual (CNB_VLUNI) e o valor antes do reajuste (CNB_QTDORI) como valor unitário (CNE_VLUNIT) do item da medição.
Esta medição deve ser totalmente bloqueada
Fazer o tratamento na medição | CNTA310 - 12 |
Gerar medição retroativa na vigência da revisão 1
Deverá ser alterada a função CN300Aprov para ao tornar a revisão vigente, deverá ser verificado se o tipo de revisão é Retroativa (CN0_RETRO) e, em caso afirmativo, deverá ser chamada a função CN310Retro() para gerar a medição retroativa.
A300Aprov() | CNTA300 -0 |
Gerar medição retroativa na vigência da revisão 2
Deverá ser alterada a função GCTAlcEnt para ao tornar a revisão vigente (cTipDoc == RV ou cTipDoc == IR), deverá ser verificado se o tipo de revisão é Retroativa (CN1_RETRO) e, em caso afirmativo, deverá ser chamada a função CN310Retro() para gerar a medição retroativa. | CNTXFUN -0 |
Os item a seguir referem-se a visualização do Log dos reajustes na manutenção do contrato. | |
Incluir visualização de Logs de Reajuste na manutenção do contrato.
Na rotina de manutenção de contratos, se o parâmetro MV_CNRJMNT estiver ativo, ao visualizar-se um contrato, deverá ser exibida um folder chamado "Reajustes" onde poderão ser visualizadas as alterações de todos os itens da planilha selecionada.
Deverá ser relacionada as planilhas do contrato (CNA) com os itens alterados no reajuste (CXL). Deverá ser possível visualização de todos itens da revisão do contrato visualizado. | CNTA300 / CNTA301 (2) |
Os item a seguir referem-se a alterações necessárias para utilização dos novos campos. | |
Validação dos novos campos de reajuste - Para o cabeçalho do contrato, deverão ser validados os seguinte campos:
Os campos Indice (CN9_INDICE), Periodicidade (CN9_PERI), Un. Periodicidade (CN9_UNPERI), Modo (CN9_MODORJ) e Pro Rata (CN9_PRORAT) são bloqueados e com valores padrão ou zerados caso o campo Reajuste (CN9_FLREAJ) possuir valor "NÃO". Caso o valor do campo Reajuste (CN9_FLREAJ) for "SIM", estes campos tornam-se editáveis e obrigatórios. O Campo Prox. Reajuste (CN9_PROXRJ) deve ser calculado automaticamente após o preenchimento do campo Un. Periodicidade (CNA_UNPERI). Para isso adiciona-se a periodicidade (CN9_PERI x CN9_UNIPERI) na Dt. Reajuste (CN9_DTREAJ) ou data de inicio do contrato (CN9_DTINIC) caso a Dt. Reajuste possuir valor vazio. [É possível utilizar como exemplo a vigência do contrato]. - Para as planilhas do contrato, deverão ser validados os seguinte campos:
Os campos Indice (CNA_INDICE), Periodicidade (CNA_PERI), Un. Periodicidade (CNA_UNPERI), Modo (CNA_MODORJ) e Pro Rata (CNA_PRORAT) são bloqueados e com valores padrão ou zerados caso o campo Reajuste (CNA_FLREAJ) possuir valor "NÃO". Caso o valor do campo Reajuste (CNA_FLREAJ) for "SIM", estes campos tornam-se editáveis.
O Campo Prox. Reajuste (CNA_PROXRJ) deve ser calculado automaticamente após o preenchimento do campo Un. Periodicidade (CNA_UNPERI). Para isso adiciona-se a periodicidade (CNA_PERI x CNA_UNIPERI) na Dt. Reajuste (CNA_DTREAJ) ou data de inicio do contrato (CN9_DTINIC) caso a Dt. Reajuste possuir valor vazio. [É possível utilizar como exemplo a vigência do contrato]. - Para os items da planilha, deverão ser validados os seguinte campos:
Os campos Indice (CNB_INDICE), Periodicidade (CNB_PERI), Un. Periodicidade (CNB_UNPERI), Modo (CNB_MODORJ) e Pro Rata (CNB_PRORAT) são bloqueados e com valores padrão ou zerados caso o campo Reajuste (CNB_FLREAJ) possuir valor "NÃO". Caso o valor do campo Reajuste (CNB_FLREAJ) for "SIM", estes campos tornam-se editáveis.
O Campo Prox. Reajuste (CNB_PROXRJ) deve ser calculado automaticamente após o preenchimento do campo Un. Periodicidade (CNB_UNPERI). Para isso adiciona-se a periodicidade (CNB_PERI x CNB_UNIPERI) na Dt. Reajuste (CNB_DTREAJ) ou data de inicio do contrato (CN9_DTINIC) caso a Dt. Reajuste possuir valor vazio. [É possível utilizar como exemplo a vigência do contrato].
| CNTA300 / CNTA301 -8 |
Validação do novo campo Retroativo no cadastro de tipo de revisão.
O novo campo Retroativo (CN0_RETRO) deve ser bloqueado com valor vazio. Caso o Tipo (CN0_TIPO) seja de Reajuste (valor 2), o campo deve ser desbloqueado para edição e obrigatório na validação do commit.
O novo campo Reajuste (CNB_FLREAJ) deve ser atualizado para "1"(Sim) caso a planilha relacionada ao item (CNA_NUMERO x CNB_NUMERO) possua Reajuste (CNA_FLREAJ) com valor "1" (Sim) e o campo índice (CNB_INDICE) possua valor. Caso contratrio, deve ser atualizado para "2"(Não). | CNTA100 -1 |
Alteração na liberação de campos para revisão do tipo indice.
Ao iniciar-se uma revisão do tipo troca de indice, deverão ser liberados os campos abaixo caso não possuam valor e o Reajuste (CN9_FLREAJ, CNA_FLREAJ, CNB_FLREAJ) possuam valor "1"(Sim).
Indice (CN9_INDICE, CNA_INDICE e CNB_INDICE) Periodicidade (CN9_PERI, CNA_PERI e CNB_PERI) Un. Periodicidade (CN9_UNPERI, CNA_UNPERI e CNB_UNPERI) Modo (CN9_MODO, CNA_MODO e CNB_MODO) Pro Rata (CN9_PRORAT, CNA_ PRORAT e CNB_ PRORAT)
Os campos Dt. Reajuste ( CNA_DTREAJ e CNB_DTREAJ) serão preenchidos automaticamente com a data de reajuste do contrato (CN9_DTREAJ).
Os campos Prox. Reajuste (CN9_PROXRJ, CNA_PROXRJ e CNB_PROXRJ) deverão ser calculados adicionando-se a periodicidade na Dt. Reajuste.
Os campos deverão ser tratados normalmente na validação do modelo, respeitando as regras para inclusão. | CNTA300R -1 |
O item a seguir refere-se a geração do RUP necessárias para utilização dos novos campos. | |
Gerar RUP de atualização dos novos campos.
Gerar RUP para atualização dos campos conforme descritos a seguir: - Retroativo (CN0_RETRO)
Deverá possuir valor "2" (Não) para todos os tipos de revisão já existentes do Tipo (CN0_TIPO) Reajuste (valor 2).
| RUPMAT – 1,5 |