ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Contas a Receber com Parcelas geradas em um dbgrid

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
rogerioclaro2
Experiente
Experiente


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Ter Abr 07, 2020 11:11 am    Assunto: Contas a Receber com Parcelas geradas em um dbgrid Responder com Citação

Pessoal, bom dia!

Preciso de uma ajuda de vocês.

estou fazendo um sistema sistema simples de contas a receber, nele eu tenho o cliente, data de emissão, e tenho um total de parcelas.

Queria fazer algo para ao digitar a quantidade de parcelas, ele ja criar as parcelas de forma automática.... tipo data de emissão 07.04.2020
total de 2 parcelas ai ele de forma automática ja criaria 1 parcelas com espaçamento de 30 dias entre elas tendo como base a data de emissão, 1 parcela para dia 07.05.2020 e a outra para o dia 07.06.2020.

Atualmente faco de forma manual.. preenchendo um a um.


segue meu código


botão novo


Código:
VAR
cod : Integer;

begin
If Application.MessageBox ('Deseja Agendar no Contas a Receber?',
'Confirmação',mb_yesno+mb_iconquestion) = idyes then
 begin
 //dM.tblmOV.Append;
            dm.tblMov.EmptyDataSet;

       // LimpaCampos();

        cod:=0;

        DM.tblReceber.Last;
        COD:=Dm.tblReceber.FIELDBYNAME('CODBOLETA').ASINTEGER+1;
        DM.tblReceber.Append;
        edtCodigo.Text:=INTTOSTR(COD);



  dm.tblReceber.edit;
  dm.tblReceber.Post;
  dm.tblReceber.edit;
  DM.tblmov.Open;
  dm.tblMov.Append;

///  showmessage('teste');
  dm.tblMov.edit;

  dm.tblMovCodBoleta.Value := dm.tblReceberCodBoleta.Value;

  bbCancelar.Enabled  := True;
  bbGravar.Enabled    := True;
  bbNovo.Enabled      := False;
  bbalterar.Enabled    := False;
  bbExcluir.Enabled   := False end else
  begin
  dm.tblReceber.cancel;
  bbCancelar.Enabled  := False;
  bbGravar.Enabled    := False;
  bbNovo.Enabled      := True;
  bbAlterar.Enabled    := True;
  bbExcluir.Enabled   := True;
 end;
  end;


Botão gravar:

Código:
    If Application.MessageBox ('Deseja Incluir Mais Parcelas?',
    'Confirmação',mb_yesno+mb_iconquestion) = idyes then
      begin
           dm.tblmov.Append;
           DBEdit2.SetFocus;
        end else
      begin
       Screen.Cursor:=crHourGlass;
        dm.tblMov.First;
       While dm.tblmOv.Eof = false do
        begin
        dm.tblMov.edit;
        dm.tblMovCodAluno.Value := dm.tblReceberCodAluno.Value;
        dm.tblMovMes.Text := DateToStr(dm.tblMovVencimento.AsDateTime); //ToString;//FormatDateTime ('mm',dm.tblMovVencimento.Value);
        dm.tblMovReferencia.Text := dm.tblMovMes.ToString  + dm.tblMovVencimento.ToString;
        dm.tblMovEstenso.Value := '(' +    numeroParaExtenso      (dm.tblMovValorParcela.Value) + ')';
        dm.tblMov.Next;
         end;
        dm.tblMov.last;
        dm.tblmov.edit;
        dm.tblReceber.edit;
        dm.tblmov.edit;
        dm.tblmov.post;
        dm.tblMov.ApplyUpdates(0);
        dm.tblReceber.post;
        dm.tblReceber.ApplyUpdates(0);
        label12.Visible := false;
        Showmessage ('Parcelas Geradas Com Sucesso!');
        bbCancelar.Enabled  := False;
        bbGravar.Enabled    := False;
        bbNovo.Enabled      := True;
        bbalterar.Enabled    := True;
        bbExcluir.Enabled   := True;
        Screen.Cursor:=crDefault;
         end;


banco de dados firebird, e usando clientdataset


Mais uma vez obrigado a todos
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 2960
Localização: Belo Horizonte - MG

MensagemEnviada: Ter Abr 07, 2020 11:23 am    Assunto: Responder com Citação

Você pode usar a função IncMonth da unit DateUtils para incrementar o mês em cada parcela.

Veja um exemplo de uso da função IncMonth:

Declare DateUtils na cláusula uses do form.

Código:
var
  dataEmissao: TDate;
  NumParcelas, i: Integer;
begin
  dataEmissao:= Now;

  NumParcelas:= 2;

  for I := 1 to NumParcelas do
    ShowMessage(FormatDateTime('dd/mm/yyyy', IncMonth(dataEmissao, i)));
end;

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
rogerioclaro2
Experiente
Experiente


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Ter Abr 07, 2020 11:31 am    Assunto: Responder com Citação

natanbh1 escreveu:
Você pode usar a função IncMonth da unit DateUtils para incrementar o mês em cada parcela.

Veja um exemplo de uso da função IncMonth:

Declare DateUtils na cláusula uses do form.

Código:
var
  dataEmissao: TDate;
  NumParcelas, i: Integer;
begin
  dataEmissao:= Now;

  NumParcelas:= 2;

  for I := 1 to NumParcelas do
    ShowMessage(FormatDateTime('dd/mm/yyyy', IncMonth(dataEmissao, i)));
end;


Olá natan obrigado... colo ele no onexit do edit aonde coloca a quantidade de parcelas?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rogerioclaro2
Experiente
Experiente


Registrado: Quinta-Feira, 17 de Outubro de 2013
Mensagens: 404

MensagemEnviada: Ter Abr 07, 2020 1:08 pm    Assunto: Responder com Citação

coloque no on exit do edit que sai as parcelas.. ai dei a mensagem de data corretas.. agora teria que ter o valor e jogar no dbgrid ja preenchendo.. alguma dica?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB