Fórum Forma de Pagamento #335336

28/12/2006

0

Bom Dia a todos
estou precisando de uma ajuda em como desenvolver o cadastro de forma de pagamento
exemplo tenho uma fatura de R$1.000,00 quero dividir em 5x dai jah é gerada 5 duplicatas de R$200,00 com as datas de vencimento caindo sempre em apenas dias uteis...
não estou conseguindo manipular as datas para gerar cada duplicata para cada mês..se fosse possivel gostaria de gerar dentro de um grid para poder alterar os dias dos venciementos.......
obrigado pelo ajuda

$UCE$$O a todos em 2007


$grandaum$

$grandaum$

Responder

Posts

30/12/2006

Aroldo Zanela

Colega,

Geralmente, utilizo um formulário denominado ´Negociação´ e uma das etapas tem algo parecido com o que você procura:

var I, N: SmallInt;
Data: TDateTime;
    Restante, Parcela: Currency;
    Coincidir: Boolean;
begin
cds.EmptyDataSet;

  if rxLiquido.Value<=0 then
  begin
  MessageDlg(´Nenhum valor líquido para parcelar.´, mtInformation, [mbCancel], 0);
    exit;
end;

  if cbxFormas.Text=´´ then
  begin
  MessageDlg(´Selecione a forma de pagamento.´, mtInformation, [mbOK], 0);
    exit;
  end;

  Parcela:= RoundTo(rxLiquido.Value / rxQtdeParcelas.AsInteger, -2);
  Restante  := rxLiquido.Value;
  N:= rxQtdeParcelas.AsInteger;
Data:= dtpPrimeira.Date;
Coincidir:= false;

  if (rxIntervalo.Value=30) and (MessageDlg(´Ajustar data de vencimento para o mesmo dia?´, mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
  begin
Coincidir:= true;
  end;
  
for I := 1 to N do
  begin

  cds.Append;
    CDSDATA.Value:= Data;
    CDSVALOR.Value:= ifThen(I<>N, Parcela, Restante);
    cds.Post;

    if Coincidir then
    Data:= IncMonth(Data, 1)
    else
  Data:= dtpPrimeira.Date+(I*rxIntervalo.AsInteger);
  Restante := Restante - Parcela;
  end;
  
end;


CDS = ClientDataSet


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar