Free Trial

Fórum

SOLUCIONADO

Classificação de de datas por períodos

thiago_tanaka
Asteroide

Pessoal, estou com um problema para classificar uns períodos de uma base de valores mensais em contratos aqui da empresa. Para um tipo de contrato (contínuo), eu consegui fazer a classificação, mas tem outro que, por erro sistêmico, vem valores mensais programadas até 31/12/9999. Por isso, eu preciso classificar até o ano 3 de cada lançamento. Vou anexar um arquivo que espero que seja mais visual, mas em suma, por exemplo um contrato nº 00000 tem data calculada em 01/03/2021 com valor X. O mesmo contrato vai ter uma outra linha, talvez com o mesmo valor X, porém com data calculada em 01/04/2021. Os períodos serão classificados a cada 12 meses (último dia do mês anterior ao 12º mês). No caso em que a data calculada é 01/03/2021, a data fim será 28/02/2022 e será classificada como "ANO 01". Tudo antes dessa data calculada e após a classificação de "ANO 03" , devem ser classificadas como "ANO 00". Ocorre que:

 

por exemplo, se um contrato a data fim for 30.09.2023
Ano 1 - 01.03.2021 a 28.02.2022
Ano 2 - 01.03.2022 a 28.02.2023
Ano 3 - 01.03.2023 a 30.09.2023 (eu não estou conseguindo classificar esses casos em que o período não completa os 12 meses)
11 RESPOSTAS 11
Thableaus
17 - Castor
17 - Castor

Olá @thiago_tanaka tudo bem?

 

Acho que ainda está um pouco confuso o problema em si.


Você poderia dar um pouco mais de informações? Acredito que a solução não seja complicada, mas tá um pouco difícil o entendimento do problema, pelo menos pra mim.

 

Abraços,

thiago_tanaka
Asteroide

Opa @Thableaus, tudo bem sim. Vou tentar explicar de outra forma:

 

No arquivo de exemplo que anexei, pode ser vista uma amostra de uma base bem maior, com diversos contratos. O que quero classificar está na coluna "E". 

 

Como estamos no mês de Março, todas as linhas que tiverem datas da coluna "C" anteriores a Março, deverão ser classificadas como "ANO 00". Do mês de Março/21 até um dia antes de completados 12 meses, ou seja 28 (ou 29) /02/2022 será classificado como "ANO 01" e isso ocorrerá até o "ANO 03". Ocorre que na amostra especificamente eu tenho termino do contrato antes de completados os 12 meses do "ANO 03". Portanto ele não pode continuar somando (vou sumarizar depois por essas classificações de ANO) valores que tem após isso. O que vem após o termino do contrato deve ser classificado, também, como "ANO 00".

 

Tudo isso para fechar um relatório de mês. No mês de Abril, os períodos de 12 meses acompanham esse progresso, ou seja, Março passará a integrar a classificação de "ANO 00" e começamos a contagem do ANO 0' a partir de 01/04/2021 até 31/03/2022.

 

Espero ter conseguido traduzir melhor, um pouco do meu drama aqui. Obrigado

marcusblackhill
12 - Quasar
12 - Quasar

Oi @thiago_tanaka ! Tudo bem?

 

Assumo que estou na mesma situação que o @Thableaus . Deixe-me tentar colocar o problema que relatou em outras palavras para ver se entendi, daí me corrija onde estiver errado por favor.

 

Fluxo:

  1. Você precisa olhar a data da coluna C($ Mensal) e comparar com o mês atual que o fluxo está rodando, se for uma data anterior a atual, entra na classificação (Coluna E) como "ANO 00";
  2. A linha que está com a data na coluna C no mesmo mês que o atual, calculamos a data +12 meses, -1 dia. Todas as linhas seguintes que tiverem a data na Coluna C anterior a essa data calculada da primeira linha, deverão ser classificadas como "ANO 1";
  3. A primeira linha após o término da classificação "ANO 1" deverá tem o cálculo de +12 meses , -1 dia também e seguirá a mesma lógica anterior classificando como "ANO 2";
  4. A primeira linha após o término da classificação "ANO 2" deverá ter o cálculo de +12 meses, -1 dia também, mas dessa vez devemos comparar essa data com a data da coluna D (Fim Prev. Contrato), a data mais próxima deve ser usada como as outras para classificar como "ANO 3";
  5. Todas as linhas que vierem depois disso, são classificadas como "ANO 00".
  6. A operação toda deve acontecer por Nº de contrato (Coluna A), pois você terá outros contratos nessa base.

É por aí a questão que está enfrentando?

 

Abraço

thiago_tanaka
Asteroide

Opa @marcusblackhill , bora lá:

 

Fluxo:

  1. Você precisa olhar a data da coluna C($ Mensal) e comparar com o mês atual que o fluxo está rodando, se for uma data anterior a atual, entra na classificação (Coluna E) como "ANO 00"; Isso mesmo! Estamos em Março, a data da coluna C, por exemplo, é 20/02/2021, logo "ANO 00"
  2. A linha que está com a data na coluna C no mesmo mês que o atual, calculamos a data +12 meses, -1 dia. Todas as linhas seguintes que tiverem a data na Coluna C anterior a essa data calculada da primeira linha, deverão ser classificadas como "ANO 1"; Sim! Só pra reforçar o entendimento, por exemplo, a linha atual é do mês de Março (mês atual), logo é "ANO 01", a linha de baixo e conseguintes se também forem Março ou estiverem dentro do período de 12 meses -1 dia, também serão "ANO 01"
  3. A primeira linha após o término da classificação "ANO 1" deverá tem o cálculo de +12 meses , -1 dia também e seguirá a mesma lógica anterior classificando como "ANO 2"; Exato, o que mais nada é que dizer que a partir do primeiro dia depois dos 12 meses -1 dia, será ANO 02 e assim por diante. Exemplo 01/03/2022 a 29/02/2023 = ANO 02
  4. A primeira linha após o término da classificação "ANO 2" deverá ter o cálculo de +12 meses, -1 dia também, mas dessa vez devemos comparar essa data com a data da coluna D (Fim Prev. Contrato), a data mais próxima deve ser usada como as outras para classificar como "ANO 3"; Sim, nesse exemplo sim. ele termina em 31/10/2023. Não daria para classificar com os anteriores. Precisaria ser 01/03/2022 até 31/10/2023. Contudo cada contrato vai ter seu término estimado, podendo acabar no ANO 02 ou até o ANO 01, se assim for.
  5. Todas as linhas que vierem depois disso, são classificadas como "ANO 00". Perfeito!
  6. A operação toda deve acontecer por Nº de contrato (Coluna A), pois você terá outros contratos nessa base. Apesar de terem outros contratos, acho que a operação pode olhar pras datas e premissas dos pontos anteriores, desde que a classificação ocorra por linha, como está na coluna E do exemplo. Depois vou sumarizar tudo, por ANO, contrato e valor
  7. **Ponto adicional: ressaltando a importância levantada no item 1, precisa olhar para o mês atual. Em Abril, por exemplo, a classificação do ANO 01 muda e Março passa a fazer parte do ANO 00

Espero ter podido esclarecer corretamente. Obrigado pelo apoio mais uma vez

carlosteixeira
15 - Aurora
15 - Aurora

Olá meu amigo @thiago_tanaka Tudo bem?

Confesso que também um pouco confuso o problema mas com as explicações para o @marcusblackhill e @Thableaus acho que consegui chegar em uma possivel solução.

 

Dá uma olhada no workflow em anexo.

 

carlosteixeira2005_0-1616773109810.png

 

 

Acho que o resultado está de acordo com a sua necessidade, me avise caso não esteja e assim pensamos em outra solução

 

Abraços

 

 

Carlos A Teixeira
thiago_tanaka
Asteroide

@carlosteixeira Caracas!! Eu ia demorar muito pra chegar numa lógica dessas rsrs. Obrigado mesmo, Carlos. Só tem um detalhe de ajuste pequeno.

 

Na classificação de anos, o período de 12 meses está considerando o final de um ano e início de outro após dezembro, quando na verdade isso deveria ser dinâmico. No exemplo que eu mandei acima nas respostas anteriores eu usei um exemplo de ANO 01 com base no mês atual: 01/03/2021 até 28/02/2022 vai ser ANO 01. Contudo o ANO 01, em Abril, será 01/04/2021 até 31/03/2022. Isso eu vi que tá resolvido com o primeiro dia do mês atual, mas teria que parametrizar também o último dia antes do término dos 12 meses, ou 12 meses - 1 dia.

 

thiago_tanaka_0-1616785866940.png

 

carlosteixeira
15 - Aurora
15 - Aurora

Fala meu amigo @thiago_tanaka tudo bem!

 

Dá uma olhada nessa versão 1 - kkkkk - acho que agora foi.

Precisei mudar um pouquinho a lógica

Agora o ano 2 começa no mes 3 do ano seguinte - Acho que é isso.

carlosteixeira2005_0-1616792030437.png

Abraços

Carlos A Teixeira
thiago_tanaka
Asteroide

@carlosteixeira Sim rsrs, agora está correto, pelo exemplo. Só fico com receio dos próximos meses. Numa das perguntas que respondi acima, eu mostro que essa classificação deveria ser dinâmica, pq esse mês 01/03/2021 vai até 28/02/2022 (12 meses - 1 dia), porém, no mês seguinte, esse período de 12 meses se desloca, por exemplo: 01/04/2021 até 31/03/2022 (12 meses - 1 dia). Será que na lógica que você desenhou vai funcionar assim?

carlosteixeira
15 - Aurora
15 - Aurora

Oi @thiago_tanaka eu creio que sim.

Estou usando a data do sistema.

Então quando virar o mês a lógica muda.

Mas basta testar alterando o campo da data do sistema para uma data retroativa por exemplo.

Não cheguei a testar mas acredito que funcione sim.

 

Me avise se tiver problemas

 

Abraços 

Carlos A Teixeira
Rótulos