MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Parcelas diárias

    Compartilhe

    JOSEMORAES
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 161
    Registrado : 23/02/2011

    [Resolvido]Parcelas diárias

    Mensagem  JOSEMORAES em 27/7/2018, 00:58

    Ola pessoal, estou com um duvida, que os amigos possam me ajudar

    Tenho um gerador de parcelas, que roda certinho, tanto por mês, como por dias.

    Ele pula os finais de semana caso a data caia nesses dias, mas esse é o problema caso a parcela seja diária

    Explico: Gero 10 parcelas com intervalos de 1 dia, com data de inicio 27/07 e fica assim:


    Dt Venc
    27/07/2018
    30/07/2018
    30/07/2018
    30/07/2018

    31/07/2018
    01/08/2018
    02/08/2018
    03/08/2018
    06/08/2018
    06/08/2018


    Veja que ela roda as 10 parcelas, mas os dia que cai no sabado e domingo ele se acumula tudo na segunda

    A ideia é nao contar o final de semana e deveria ficar assim

    Dt Venc
    27/07/2018
    30/07/2018
    31/07/2018
    01/08/2018
    31/08/2018
    01/08/2018
    02/08/2018
    03/08/2018
    05/08/2018
    06/08/2018

    o código que utilizo é esse

    Dim sDT As String
    Dim DT As Date
    Dim freqNum As Long
    Dim freq As String
    Dim db As DAO.Database, rs As DAO.Recordset
    Dim ValParc As Currency, i As Byte

    Set db = CurrentDb()
    Set rs = db.OpenRecordset("TblLancamento") 'Abre tbl_Parcelas

    If Me.fraFrequencia.Value = 0 Then
    freqNum = Me.TxtMes
    freq = "M"
    Else
    freqNum = Me.txtNumDias
    freq = "d"
    End If

    ValParc = Me.TxtValor 'Valor de cada Parcela
    For i = 1 To Me.txtNumParcelas 'Insere as Parcela na Tabela
    rs.AddNew
    rs("Lancamento_Banco") = TxtBanco
    rs("Lancamento_Parcela") = i
    rs("Lancamento_Valor") = ValParc
    rs("Lancamento_Banco") = TxtFavorecido
    rs("Lancamento_Banco") = TxtCCorrente
    'Calcula as datas de Vencto através da função DateAdd()

    sDT = DateAdd(freq, i * freqNum, Me.TxtData)
    DT = CDate(sDT) '' Converto a data (string) em data (date)
    '' Abaixo, testo se o vencimento cai no sábado ou domingo,
    '' se cair, passo para a primeira segunda-feira
    If Weekday(DT) = 1 Then
    DT = DateAdd("d", 1, DT)
    ElseIf Weekday(DT) = 7 Then
    DT = DateAdd("d", 2, DT)
    End If
    rs("Lancamento_DtVencimento") = DT
    rs.Update
    Next
    rs.Close
    db.Close

    Call Confirma("Confirmação de dados!", "* " & txtNumParcelas & "", "Parcelas geradas com sucesso.", _
    "REG_ContaPagar")
    Me.BtTxt.SetFocus
    MakeTransparent Me.hWnd, 100

    Obrigado e aguardo um possível ajuda


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.]

    delsonk
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 102
    Registrado : 26/11/2013

    Re: [Resolvido]Parcelas diárias

    Mensagem  delsonk em 27/7/2018, 17:30

    Boa tarde.

    acredito que a sua lógica está equivocada na seguinte parte do algoritmo.

    1. A parcela anterior vence hoje sexta, 27/07/2018, e a próxima vencerá amanhã dia 28/07 (sábado) então o sistema acrescentará dois dias e vencerá no dia 30/07 (segunda);
    2. No próximo Loop, o sistema acrescentará um dia a partir de 28/07 para o vencimento da próxima parcela, ou seja, vencerá no dia 29/07 (domingo) então segundo a sua programação acrescenta um dia e vencerá dia 30/07 (segunda);
    3. Seguindo na mesma lógica a ultima parcela venceu no dia 29/07 (domingo) e acrescentando um dia a próxima vencerá no dia 30/07 (segunda).

    Logo teremos três parcelas vencendo no dia 30/07/2018 (segunda-feira) porque você esqueceu de acrescentar os um ou dois dias quando o vencimento recai sobre os dias não úteis (sábado e domingo).

    Atenciosamente, Delson

    JOSEMORAES
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 161
    Registrado : 23/02/2011

    Re: [Resolvido]Parcelas diárias

    Mensagem  JOSEMORAES em 27/7/2018, 23:39

    Olá Delson.

    Então já fiz esses testes, inclusive tentei fazer alguns ajustes, mas não roda, continua acumulado as datas para segunda.

    Mesmo porque , eu entendi o seu pensamento, mas acontece que muitas parcelas sai assim por diária

    Geralmente por cada conta que o cliente vai lançar, ele vai pedir as quantidades de parcelas e o intervalo entre elas e muitas vezes assim:

    Parcelas
    30 Parcelas com intervalo de 1 dia
    45 Parcelas com intervalo de 1 dia
    50 Parcelas com intervalo de 1 dia
    75 Parcelas com intervalo de 1 dia

    Então fica inviável acrescentar os um ou dois dias quando o vencimento recai sobre os dias não úteis (sábado e domingo).

    Mas obrigado pela atenção

    Vou fica pensando ema algo


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.]

    delsonk
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 102
    Registrado : 26/11/2013

    Re: [Resolvido]Parcelas diárias

    Mensagem  delsonk em 28/7/2018, 00:09

    Posta o BD que dou uma olhada para você.

    Delson

    JOSEMORAES
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 161
    Registrado : 23/02/2011

    Re: [Resolvido]Parcelas diárias

    Mensagem  JOSEMORAES em 28/7/2018, 11:50

    Ok, vou montar e postar...


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.]

    JOSEMORAES
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 161
    Registrado : 23/02/2011

    Re: [Resolvido]Parcelas diárias

    Mensagem  JOSEMORAES em 30/7/2018, 00:52

    Delson

    Segue o link para baixar o exemplo

    Fico no aguarde

    4shared.com/folder/FacASEXg/_online.html


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.]

    JOSEMORAES
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 161
    Registrado : 23/02/2011

    Re: [Resolvido]Parcelas diárias

    Mensagem  JOSEMORAES em 30/7/2018, 23:40

    up


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.]

    delsonk
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 102
    Registrado : 26/11/2013

    Re: [Resolvido]Parcelas diárias

    Mensagem  delsonk em 31/7/2018, 02:53

    Boa noite.

    Envio o BD anexo. Teste e verifique se ficou de acordo.

    A lógica é a seguinte: cada vez que a data do vencimento da parcela é sábado (acrescento 2 dias); quando a data do vencimento é domingo (acrescento 1 dias) e vou acumulando até o final das parcelas.
    Nesta parte fiz a modificação:
    criei a variável Fim_semana 'para acumular a quantidade de dias de fim de semana.

    sDT = DateAdd(freq, ((i - freqNum) + Fim_semana), Me.TxtDtVencimento)

    If Weekday(DT) = 1 Then
       DT = DateAdd("d", 1, DT)
       Fim_semana = (Fim_semana + 1)
       ElseIf Weekday(DT) = 7 Then
       DT = DateAdd("d", 2, DT)
       Fim_semana = (Fim_semana + 2)
    End If



    Abraço, Delson
    Anexos
    Parcela.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (59 Kb) Baixado 18 vez(es)

    JOSEMORAES
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 161
    Registrado : 23/02/2011

    Re: [Resolvido]Parcelas diárias

    Mensagem  JOSEMORAES em 31/7/2018, 10:53

    Perfeito.

    Muito obrigado pela atenção e pela ajuda


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.]

    JOSEMORAES
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 161
    Registrado : 23/02/2011

    Re: [Resolvido]Parcelas diárias

    Mensagem  JOSEMORAES em 31/7/2018, 13:07

    Ola Delson.

    Antes obrigado novamente, mas estava fazendo novos testes aqui, e tem um engano nos cálculos.

    As parcelas geradas diariamente fechou, esta correta, mas se eu for gerar por mês, ela da um erro, pois pula alguns meses, consegueria dar mais uma analisada?



    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.]

    delsonk
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 102
    Registrado : 26/11/2013

    Re: [Resolvido]Parcelas diárias

    Mensagem  delsonk em 1/8/2018, 02:59

    Boa noite,

    Fiz algumas correções por causa da frequência mensal.

    Verifique como ficou e informe os resultados!

    Abraço, Delson
    Anexos
    Parcela.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (69 Kb) Baixado 25 vez(es)

    JOSEMORAES
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 161
    Registrado : 23/02/2011

    Re: [Resolvido]Parcelas diárias

    Mensagem  JOSEMORAES em 1/8/2018, 04:44

    Obrigado, deu certo

    Valeu pela atenção


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.]

    JOSEMORAES
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 161
    Registrado : 23/02/2011

    Re: [Resolvido]Parcelas diárias

    Mensagem  JOSEMORAES em 17/8/2018, 22:48

    Olá Delson.

    Novamente venho pedir seu auxilio em relação ao código que me passou.

    Seguinte, quando informamos a sequencia do parcelamento para 1 dia ou para cada 1 mês, ele funciona normalmente, mas quando informamos essa frequência acima de 2 tanto para o mês, como para o dia ele não obedece,

    Poderia da uma analisada ?


    Obrigado e desde já te agradeço.



    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.]

    delsonk
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 102
    Registrado : 26/11/2013

    Re: [Resolvido]Parcelas diárias

    Mensagem  delsonk em 18/8/2018, 13:23

    Bom dia.
    Acredito que havia um erro na sua função.
    Veja a parte em vermelho. Ao invés de subtração tem que ser multiplicação.
    Acerte no seu código e teste!

    'Calcula as datas de Vencto através da função DateAdd()
       If freq = "d" Then
          sDT = DateAdd(freq, ((i * freqNum) + Fim_semana), Me.TxtDtVencimento)
       Else
          sDT = DateAdd(freq, i * freqNum, Me.TxtDtVencimento)
       End If
       DT = CDate(sDT) '' Converto a data (string) em data (date)
       '' Abaixo, testo se o vencimento cai no sábado ou domingo,
       '' se cair, passo para a primeira segunda-feira
       If Weekday(DT) = 1 Then
       DT = DateAdd("d", 1, DT)
       Fim_semana = (Fim_semana + 1)
       ElseIf Weekday(DT) = 7 Then
       DT = DateAdd("d", 2, DT)
       Fim_semana = (Fim_semana + 2)
       End If
       rs("Lancamento_DtVencimento") = DT
       rs.Update
       Next
       End Function


    Abraço, Delson

    JOSEMORAES
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 161
    Registrado : 23/02/2011

    Re: [Resolvido]Parcelas diárias

    Mensagem  JOSEMORAES em 18/8/2018, 14:26

    Muito obrigado DELSON, funcionou corretamente

    Mas ainda teria um pequeno detalhe, o código não esta partindo da data de vencimento.

    Desde já muito obrigado



    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.]

    delsonk
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 102
    Registrado : 26/11/2013

    Re: [Resolvido]Parcelas diárias

    Mensagem  delsonk em 19/8/2018, 21:27

    Ajuste a parte em vermelho e teste!

    'Calcula as datas de Vencto através da função DateAdd()
          If freq = "d" Then
          sDT = DateAdd(freq, (i * freqNum - freqNum - 1) + Fim_semana, Me.TxtDtVencimento)
       Else
          sDT = DateAdd(freq, i * freqNum - freqNum, Me.TxtDtVencimento)
       End If
       DT = CDate(sDT) '' Converto a data (string) em data (date)
       '' Abaixo, testo se o vencimento cai no sábado ou domingo,
       '' se cair, passo para a primeira segunda-feira
       If Weekday(DT) = 1 Then
       DT = DateAdd("d", 1, DT)
       Fim_semana = (Fim_semana + 1)
       ElseIf Weekday(DT) = 7 Then
       DT = DateAdd("d", 2, DT)
       Fim_semana = (Fim_semana + 2)
       End If
       rs("Lancamento_DtVencimento") = DT
       rs.Update
       Next
       End Function


    Abraço, Delson

    JOSEMORAES
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 161
    Registrado : 23/02/2011

    Re: [Resolvido]Parcelas diárias

    Mensagem  JOSEMORAES em 20/8/2018, 00:17

    Perfeito, muito obrigado


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.]

    delsonk
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 102
    Registrado : 26/11/2013

    Re: [Resolvido]Parcelas diárias

    Mensagem  delsonk em 20/8/2018, 22:41

    Obrigado pelo retorno.

    Bons estudos, Delson

      Data/hora atual: 13/12/2018, 18:26