Fórum Parcelamento de valor #214606

16/02/2004

0

Preciso parcelar uma compra qdo ela é parcelada. Eu tinha um prog. em paradox que fazia corretamente. Agora uso Ado com Access, e a única diferença, do PDOX para o ADO é eu tinha uma tabela plano de pagto e nesta eu não preciso. Fiz um loop, e não está saindo do loop. Fiz assim:
Declarei as seguintes variáveis.
INT Intervalo das prestações INTEGER.
PAR Qde de parcelas INTEGER.
VALPARC valor das parcelas que é Total/PAR.
i integer.
As variáveis INT e PAR são lidas de uns edit´s.
begin
for i := 1 to Par-1 do begin
  Pagar.Open;
  REPEAT
  Pagar.Insert;
  Pagardata.Value:=date;
  pagarcodcompra.value:=strtoint(edit1.Text);
  pagarvencto.value:=incmonth(date, (i);
  pagarvalparc.value:=VALPARC;
  pagarnumparc.value:=i;
  pagar.post;
  UNTIL
  i = par;
 end;
end;

Não sai do loop. A diferença para o outro que dá certo, é que eu tinha uma tabela de plano de pagto(neste caso não deve existir), e a ultima linha ficava assim:
i = Planoparcelas.Value; Antes que alguns possam falar, não é erro de SINTAXE. Os códigos compilam normalmente. caso haja alguma coisa aqui, escrita errada, foi erro de digitação. Eu copiei a rotina toda para postar, como eu estou num CYBER, o disquete não funcionou, então eu a reescrevi, mas é isso mesmo, sem faltar nada. Ah! outra coisa, eu dou um INCMONTH, para incrementar um mes. Porem muitas das parcelas são pagas quinzenalmente ou semanalmente. Não consegui fazer, Tentei os seguintes exemplos, baseados na minha rotina:
INCMONTH(DATE, (INT))
INCMONTH(INT, (i)) E NADA. Como fazer?


Paulo

Paulo

Responder

Posts

16/02/2004

Rrsoft

begin
for i := 1 to Par-1 do begin
Pagar.Open;
REPEAT
Pagar.Insert;
Pagardata.Value:=date;
pagarcodcompra.value:=strtoint(edit1.Text);
pagarvencto.value:=incmonth(date, (i);
pagarvalparc.value:=VALPARC;
pagarnumparc.value:=i;
pagar.post;
UNTIL
i = par; //mude aquí para i = par+1
end;
end;

Tente a mudança acima e verifique se funciona!
RRsoft


Responder

Gostei + 0

16/02/2004

Adilsond

var
  I: Integer;
  VlParc: Double;
begin
  VlParc := Trunc((ValorTotal / QtdParc) * 100) / 100;
  Pagar.Open;
  for I := QtdParc downto 1 do
    begin
      Pagar.Insert;
      PagarData.Value := Date;
      PagarCodCompra.Value := StrToInt(Edit1.Text); 
      PagarVencto.Value := IncMonth(Date, I);
      if I = 1 then
         PagarValParc.Value := ValorTotal - (VlParc * (QtdParc - 1))
      else
         PagarValParc.Value := VlParc;
      PagarNumParc.Value := I;
      Pagar.Post;
    end;
  Pagar.Close;
end;



Responder

Gostei + 0

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

Aceitar