Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal.
Tô precisando gerar vencimento de duplicatas mas estou com problemas e não é por falta
de material na internet não. Se alguém puder me orientar agradeço muito. Tô usando
delphi 7, interbase 7.5 e componente da peleta interbase.
Na tabela tenho os campos condição de pagamento, número de parcelas, prazo1,prazo2,até
prazo6.
No formulário tenho um EditCondPagamento, Um EdtNumParcelas desativado e outros 6 Edits invisiveis:EdtPrazo1,....,6.
Se condição de pagamento é <> de avista então o EditeNúmero de parcelas é ativado e entra-se com o número de parcela. De acordo com esse número de parcela os Edits de prazo ficam visíveis. Nesses Edits de prazo entra-se com o número de dias para o vencimento de cada duplicata. Ex: EdtPrazo1=30 dias, Edtprazo2=60 dias.
Fiz um programinha de teste separado para tentar descobrir como gerar os vencimentos e estou usando seguinte código que algum colega postou na internet:
procedure TForm1.ParcelarVenda(Valor: double; Condicao: string);
var
dias: TStringList;
i: integer;
espaco: shortint;
datavencimento: TDate;
parcela, valorparcela: double;
begin
if AnsiUpperCase( Condicao ) = 'A VISTA' then
Condicao := '0';
espaco := pos(' ',condicao);
if espaco > 0
then Condicao := Copy(Condicao,1,espaco-1);
dias := TStringList.Create;
dias.Delimiter := '/';
dias.DelimitedText := Condicao;
try
valorparcela := RoundTo(Valor / dias.Count,-2);
except
valorparcela := RoundTo(Valor,-2);
end;
for i := 0 to dias.Count-1 do
begin
// calcula a data de vencvimento e o valor da parcela
datavencimento := date + StrToIntDef( dias*,0 );*
if i = (dias.Count-1)
then parcela := valor - ((dias.Count-1) valorparcela) *
else parcela := valorparcela;
inclui o registro no dataset
dataset.append;
dataset.fieldbyname('vencimento').asdate := datavencimento;
dataset.fieldbyname('valor').asdate := parcela;
{demais campos}
dataset.post;
end;
dias.Free;
end;
Tá dando erro na função RoundTo.Não está declarada.
Se algum colega puder me dar uma orientação fico muito grato.
obrigado.
Carregando comentários...