Vencimento de Parcelas

Discussão em 'Progress 4GL' iniciado por lunho, Fevereiro 9, 2012.

  1. lunho

    lunho Membro Participativo

    Pessoal, to enrolado com as datas, to com muita dificuldade nisso.
    agora do precisando quando o usuario digitar a data, eu jogar o vencimento para o mesmo dia do mês seguinte ( levando em consideração que serão varias parcelas) , alguem sabe isso?
    Agradeço a atenção.
  2. eriutoncharles

    eriutoncharles Membro Participativo

    Bom dia meu Caro.

    Daqui uns dias vão lhe reclamar por ficar abrindo vários tópicos pelo mesmo problema, só dando um toque aki!

    Esta questão sua não tem muita lógica. Veja Só, Quando compramos algo pra 30, 60 e 90 por exemplo, o cálculo é hoje + 30, hoje + 60, hoje + 90, porque ser tivermos no dia 31, e neste seu raciocínio, o sistema iria colocar 31/02, 31/03/ e 31/04 e iria dá erro em 31/02 e 31/04 por exemplo.


    Esta questão não tem lógica, não tem como colocar no mesmo dia, vai dá erro... o que se faz é por exemplo.. temos uma variável v-data.. dai queremos parcelar em 3.
    Código:
    DEF VAR v-data AS DATE NO-UNDO. 
    DEF VAR vdt-Parcela AS DATE NO-UNDO.
    DEF VAR i AS INT NO-UNDO.
    DO i = 1 To 3. 
          ASSIGN vdt-parcela = v-data + 30. 
          ASSIGN vData = vdt-Parcela. 
    END.
    Mas se sua questão é colocar no Mesmo dia do mes Seguinte.. o Comando é este:
    Código:
    DEF VAR v-data AS DATE NO-UNDO.
    DEF VAR v-NovaData AS DATE NO-UNDO.
    
    UPDATE v-data.
    ASSIGN vNova-Data = DATE(MONTH(v-data) + 1, DAY(v-data), YEAR(v-Data)).
    MESSAGE vNova-Data VIEW-AS ALERT-BOX.
    
    
    DATE( MONTH(),DAY(),YEAR() )... assim vc monta uma data, nos parenteses passa um paramentro de uma variável que tenha uma data ou pode fazer assim
    DATE(01,01,2012), e ai troca estes valores por variáveis suas, tipo DATE(vMes,vDia,vAno).

    Mas desta última forma vai dá erro nas datas.
  3. lunho

    lunho Membro Participativo

    não existe uma função pra somar um mês na data digitada?
  4. eriutoncharles

    eriutoncharles Membro Participativo

    Consideramos um mês comercial como 30 dias .

    Entao ficaria ASSIGN vDataDigitada = vDataDigitada + 30.
  5. LeandroSantos

    LeandroSantos Membro Participativo

    Use o add-interval assim o sistema faz o tramento dos meses que tem 30,31,28 ou 29 dias.

    Exemplo:
    Código:
    def var vencimento as date.
    def var parcela    as int.
    def var iCont      as int.
    
    update
       vencimento parcela
       with frame a.
    
    do iCont = 1 to parcela:
       disp
          iCont add-interval(vencimento,iCont,"month")
          with frame b down.
       down with frame b.
    end.
    
  6. lunho

    lunho Membro Participativo

    Obrigado pelas respostas.
    Porém não estou conseguindo utilizar o add-interval (essa função funciona do Progress 9.1c ?) é o que tem aqui na empresa, caso não, existe outra alternativa?

Compartilhe esta Página