MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


2 participantes

    [Resolvido]Gerar parcelas com select case

    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    [Resolvido]Gerar parcelas com select case Empty [Resolvido]Gerar parcelas com select case

    Mensagem  thiagonsilvaa Seg 30 Jul 2018 - 9:50

    Bom dia a todos !

    Me surgiu uma dúvida relacionada a um projeto que estou desenvolvendo.
    Estou utilizando o seguinte código, que encontrei aqui no fórum, para a geração de parcelas:

    Código:
    If Me.FormaPgto = "1" Then ' FORMA DE PAGAMENTO A VISTA
    Set db = CurrentDb()
        Set rs = db.OpenRecordset("cs_contasaReceber") 'Abre a tabela LC para lançamento dos dados
        ValorParcela = Me.txttotal / Me.parcelas
        For f = 1 To Me.parcelas  'Calcula o Loop
            'Campos e valores a serem preenchidos
            rs.AddNew
            rs("CodVenda") = Me.CodVenda
            rs("Vencimento") = DateAdd("m", f - 1, Me.DtVencimento)
            rs("valorparcela") = ValorParcela
            rs("FormaPgto") = Me.FormaPgto
            rs("Parcelas") = f 'Insere as parcelas no formato 01/10, 02/10, 03/10...
            rs("pagamento") = Date
            rs("valorpago") = ValorParcela
            rs("quitar") = -1
            rs.Update
            'Move para o Proximo
        Next
        'Termina e encerra as conexoes
        rs.Close
        db.Close
    End If
       
    Me.subContasareceber.Requery

    O mesmo repito para a forma de pagamento a prazo, cartão, etc.
    Como o próprio título do tópico diz, há alguma forma de reduzir/limpar esse código usando o select case ou alguma outra maneira a fim de gerar as parcelas de acordo com a forma de pagamento escolhida?

    Aguardo uma resposta.
    Gratidão.
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    [Resolvido]Gerar parcelas com select case Empty Re: [Resolvido]Gerar parcelas com select case

    Mensagem  Marco Messa Ter 31 Jul 2018 - 12:14

    Não testei, porém fiz rapidamente uma adaptação que você poderia fazer, apenas observando que no seu exemplo você diz que quer gerar parcelas mas o comentário do IF diz que é pagamento a vista.

    Crie uma Sub assim:

    Código:

    Sub GerarParcelas(CodVenda as Integer, FormaPgto As Integer, ValorTotal As Double, Parcelas As Integer, DtVencimento As Date)
       Dim ValorParcela As Double
       Set db = CurrentDb()
       Set rs = db.OpenRecordset("cs_contasaReceber") 'Abre a tabela LC para lançamento dos dados
       
       ValorParcela = ValorTotal / Parcelas
       
       For f = 1 To Parcelas 'Calcula o Loop
          'Campos e valores a serem preenchidos
          rs.AddNew
          rs("CodVenda") = CodVenda
          rs("Vencimento") = DateAdd("m", f - 1, DtVencimento)
          rs("valorparcela") = ValorParcela
          rs("FormaPgto") = FormaPgto
          rs("Parcelas") = f
          rs("pagamento") = Date
          rs("valorpago") = ValorParcela
          rs("quitar") = -1
          rs.Update
          'Move para o Proximo
       Next
       'Termina e encerra as conexoes
       rs.Close
       db.Close
    End Sub

    E utilize desta maneira:

    Código:

    Select Case Me.FormaPgto
       Case "1" ' FORMA DE PAGAMENTO A VISTA
          Call PagarAVista() ' Função inventada apenas para dar um exemplo
       Case "2" ' FORMA DE PAGAMENTO PARCELADO
          Call GerarParcelas(Me.CodVenda, Me.FormaPgto, Me.txttotal, Me.parcelas, Me.DtVencimento)
    End Select

    Me.subContasareceber.Requery


    .................................................................................
    Tea with me that I book your face Cool
    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    [Resolvido]Gerar parcelas com select case Empty Re: [Resolvido]Gerar parcelas com select case

    Mensagem  thiagonsilvaa Ter 31 Jul 2018 - 14:49

    Boa tarde meu caro !
    Primeiramente, obrigado pela resposta.

    Em relação ao código que você mencionou, funcionou perfeitamente.
    Pelo que percebi, acredito que vou ter que criar várias subs né ? Pois existem N maneiras de um cliente pagar uma venda.

    Como por exemplo:
    1) Entrada (dinheiro,cartão) + Parcelas
    2) Entrada (dinheiro) + parcelas (cartão ou dinheiro)
    3) Todas as parcelas no dinheiro ou no cartão

    E assim por diante... Creio que será necessário então, a criação de cada sub correspondente, correto ?

    Abraços.
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    [Resolvido]Gerar parcelas com select case Empty Re: [Resolvido]Gerar parcelas com select case

    Mensagem  Marco Messa Ter 31 Jul 2018 - 15:04

    É o ideal separar em Subs pois assim você conseguiria chamar as mesmas em outras partes da aplicação.

    Em relação a parte de ter que criar uma pra cada forma de pagamento, isso depende de como elas se comportam, você pode fazer algo mais genérico para coisas parceladas, a menos que os valores de parcela sejam diferentes quando é em dinheiro, cheque ou cartão. Se os valores são os mesmos para parcelas, você pode utilizar a mesma função, pois a única coisa que mudaria seria o código do tipo de pagamento.

    No mesmo select case você consegue resolver isso, assim:

    Código:

    Select Case Me.FormaPgto
      Case "1" ' FORMA DE PAGAMENTO A VISTA
          Call PagarAVista() ' Função inventada apenas para dar um exemplo
      Case "2", "3" ' FORMA DE PAGAMENTO PARCELADO | 2 = Dinheiro / 3 = Cartão
          Call GerarParcelas(Me.CodVenda, Me.FormaPgto, Me.txttotal, Me.parcelas, Me.DtVencimento)
    End Select


    .................................................................................
    Tea with me that I book your face Cool
    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    [Resolvido]Gerar parcelas com select case Empty Re: [Resolvido]Gerar parcelas com select case

    Mensagem  thiagonsilvaa Ter 31 Jul 2018 - 15:23

    Perfeito.

    E se no caso, por exemplo, o cliente desse uma entrada em dinheiro e parcelasse o restante no cartão ?
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    [Resolvido]Gerar parcelas com select case Empty Re: [Resolvido]Gerar parcelas com select case

    Mensagem  Marco Messa Ter 31 Jul 2018 - 15:38

    Não tenho muito Know How de sistemas financeiros, mas creio que você pode fazer um campo no seu formulário de parcelamento que definirá o valor de entrada, que abaterá do valor de txttotal e será incluído no banco na tabela respectiva.
    Até mesmo a Sub GerarParcelas pode ter um parâmetro chamado Entrada que irá abater do txttotal antes de parcelar.


    .................................................................................
    Tea with me that I book your face Cool
    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    [Resolvido]Gerar parcelas com select case Empty Re: [Resolvido]Gerar parcelas com select case

    Mensagem  thiagonsilvaa Ter 31 Jul 2018 - 15:49

    Perfeito.

    Essa sub mencionada por você ajudou bastante !

    Vou utilizá-la em todos os campos referentes a esta questão, muito mais prático.

    Meu muito obrigado !!!

    Conteúdo patrocinado


    [Resolvido]Gerar parcelas com select case Empty Re: [Resolvido]Gerar parcelas com select case

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Sex 22 Nov 2024 - 11:07