Parcelamento de valor
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.
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?
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
Curtidas 0
Respostas
Rrsoft
16/02/2004
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
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
GOSTEI 0
Adilsond
16/02/2004
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;
GOSTEI 0