Problema com baixa de parcela

Delphi

01/12/2007

Olá pessoal to com um probleminha aqui em um sistema tipo no piradox eu fiz blz e ta 100¬ mas agora to com o problema no Firebird...

é o seguinte tenho uma tela aonde eu dou baixas de todas as contas a receber eu tenho... so que se eu tiver um parcelamento no valor de 300,00 cada parcela e o cliente vim e pagar so 200,00 o sistema tem q abater os 200,00 e no caso essa parecla so ficara com 100,00 para pagar...

esse que esta sendo o meu problema ele num esta abatendo a parcela quando eu digito o valor no campo pagamente ele grava o valor q eu coloquei mas quando ele da baixa ai ele baixa o valor total baiuxando toda a conta e naum a metade...

eu criei uma procedure para fazer isso:

//GERA NOVA PARCELA PARA VALOR PAGO A MENOR
procedure TFrmCtaReceberBaixas.GeraParcela;
Var
   sDbDoc,sCliente,sPlano,sRgIE,sFone,sEmissao,sOperador,snVenda,sHist,sCOperador,
   sNF,sValor,sFormaPag,sVcto1,sNNun,sCCliente,sCPlano,Key1:String;
   Resto:Currency;
Begin

  Resto     := ZQ_CtaReceberValor.Value - StrToCurr(FrmCtaReceberBaixas.EditValorPago.Text);

  sCCliente := FrmCtaReceber.EditCliente.Text;
  sCliente  := FrmCtaReceber.DBEdit11.Text;
  sCOperador:= FrmCtaReceber.EditVendedor.Text;
  sOperador := FrmCtaReceber.DBEdit13.Text;
  sCPlano   := FrmCtaReceber.EditPlano.Text;
  sPlano    := FrmCtaReceber.EditNome.Text;
  sFormaPag := FrmCtaReceber.CboFPagto.Text;
  sHist     := FrmCtaReceber.DBMemo2.Text;
  sNF       := FrmCtaReceber.DBEdit8.Text;
  sDbDoc    := FrmCtaReceber.EditDoc.Text;
  sNNun     := FrmCtaReceber.DBEdit1.Text;
  sEmissao  := FrmCtaReceber.EditData.Text;
  sVcto1    := FrmCtaReceber.DBEdit6.Text;
  sValor    := FrmCtaReceber.EditValor.Text;

   ZQ_CtaReceber.Append;

  //MUDANCA DA DATA DE VENCIMENTO
  key1:=InputBox(´Data de Vencimento.´,´Data de Vencimento. Digite DD/MM/AAAA´,sVcto1);

  If ValidarData(Key1)=False then
  Begin
     ShowMessage(´Data digitada é inválida´);
     key1:=InputBox(´Data de Vencimento.´,´Data de Vencimento. Digite DD/MM/AAAA´,sVcto1);
  end;

  If ValidarData(Key1)=False then
  Begin
     ShowMessage(´Data digitada é inválida´);
     key1:=InputBox(´Data de Vencimento.´,´Data de Vencimento. Digite DDD/MM/AAAA´,sVcto1);
  end;

  If ValidarData(Key1)=False then
  Begin
     ShowMessage(´Data digitada é inválida´);
     key1:=InputBox(´Data de Vencimento.´,´Data de Vencimento. Digite DD/MM/AAAA´,sVcto1);
  end;

  If ValidarData(Key1)=False then
  Begin
     ShowMessage(´Data digitada é inválida´);
     key1:=InputBox(´Data de Vencimento.´,´Data de Vencimento. Digite DD/MM/AAAA´,sVcto1);
  end;
  //MUDANDA DA DATA DE VENCIMENTO

  ZQ_CtaReceberVENC.Text       :=Key1;

  ZQ_CtaReceberValor.Text      :=CurrToStr(Resto);

  ZQ_CtaReceber.FieldByName(´NomeCliente´).AsString  := sCliente;
  ZQ_CtaReceber.FieldByName(´NomeVendedor´).AsString := sOperador;
  ZQ_CtaReceber.FieldByName(´FPAGTO´).AsString       := sFormaPag;
  ZQ_CtaReceber.FieldByName(´NomePlano´).AsString    := sPlano;
  ZQ_CtaReceber.FieldByName(´HISTORICO´).AsString    := sHist;
  ZQ_CtaReceber.FieldByName(´NRO_NOTA´).AsString     := sNF;
  ZQ_CtaReceber.FieldByName(´DOCUMENTO´).AsString    := sDbDoc;
  ZQ_CtaReceber.FieldByName(´NOSSONUMERO´).AsString  := sNNun;
  ZQ_CtaReceber.FieldByName(´DATA´).AsString         := sEmissao;
  ZQ_CtaReceber.FieldByName(´VENC´).AsString         := sVcto1;
  ZQ_CtaReceber.FieldByName(´VALOR´).AsString        := sValor;
  ZQ_CtaReceber.Post;
end;
//FIM GERA NOVA PARCELA PARA VALOR PAGO A MENOR


é essa q eu chamo quando clico no batao de baixa chama essa procedure...

no caso ela iria criar outra parcela com o valor restante mas num da nada..


Tchucky

Tchucky

Curtidas 0

Respostas

Macario

Macario

01/12/2007

//GERA NOVA PARCELA PARA VALOR PAGO A MENOR procedure TFrmCtaReceberBaixas.GeraParcela; Var sDbDoc,sCliente,sPlano,sRgIE,sFone,sEmissao,sOperador,snVenda,sHist,sCOperador, sNF,sValor,sFormaPag,sVcto1,sNNun,sCCliente,sCPlano,Key1:String; Resto:Currency; Begin Resto := ZQ_CtaReceberValor.Value - StrToCurr(FrmCtaReceberBaixas.EditValorPago.Text); sCCliente := FrmCtaReceber.EditCliente.Text; sCliente := FrmCtaReceber.DBEdit11.Text; sCOperador:= FrmCtaReceber.EditVendedor.Text; sOperador := FrmCtaReceber.DBEdit13.Text; sCPlano := FrmCtaReceber.EditPlano.Text; sPlano := FrmCtaReceber.EditNome.Text; sFormaPag := FrmCtaReceber.CboFPagto.Text; sHist := FrmCtaReceber.DBMemo2.Text; sNF := FrmCtaReceber.DBEdit8.Text; sDbDoc := FrmCtaReceber.EditDoc.Text; sNNun := FrmCtaReceber.DBEdit1.Text; sEmissao := FrmCtaReceber.EditData.Text; sVcto1 := FrmCtaReceber.DBEdit6.Text; sValor := FrmCtaReceber.EditValor.Text; ZQ_CtaReceber.Append; //MUDANCA DA DATA DE VENCIMENTO key1:=InputBox(´Data de Vencimento.´,´Data de Vencimento. Digite DD/MM/AAAA´,sVcto1); If ValidarData(Key1)=False then Begin ShowMessage(´Data digitada é inválida´); key1:=InputBox(´Data de Vencimento.´,´Data de Vencimento. Digite DD/MM/AAAA´,sVcto1); end; If ValidarData(Key1)=False then Begin ShowMessage(´Data digitada é inválida´); key1:=InputBox(´Data de Vencimento.´,´Data de Vencimento. Digite DDD/MM/AAAA´,sVcto1); end; If ValidarData(Key1)=False then Begin ShowMessage(´Data digitada é inválida´); key1:=InputBox(´Data de Vencimento.´,´Data de Vencimento. Digite DD/MM/AAAA´,sVcto1); end; If ValidarData(Key1)=False then Begin ShowMessage(´Data digitada é inválida´); key1:=InputBox(´Data de Vencimento.´,´Data de Vencimento. Digite DD/MM/AAAA´,sVcto1); end; //MUDANDA DA DATA DE VENCIMENTO ZQ_CtaReceberVENC.Text :=Key1; ZQ_CtaReceberValor.Text :=CurrToStr(Resto); ZQ_CtaReceber.FieldByName(´NomeCliente´).AsString := sCliente; ZQ_CtaReceber.FieldByName(´NomeVendedor´).AsString := sOperador; ZQ_CtaReceber.FieldByName(´FPAGTO´).AsString := sFormaPag; ZQ_CtaReceber.FieldByName(´NomePlano´).AsString := sPlano; ZQ_CtaReceber.FieldByName(´HISTORICO´).AsString := sHist; ZQ_CtaReceber.FieldByName(´NRO_NOTA´).AsString := sNF; ZQ_CtaReceber.FieldByName(´DOCUMENTO´).AsString := sDbDoc; ZQ_CtaReceber.FieldByName(´NOSSONUMERO´).AsString := sNNun; ZQ_CtaReceber.FieldByName(´DATA´).AsString := sEmissao; ZQ_CtaReceber.FieldByName(´VENC´).AsString := sVcto1; [color=darkblue:879267a6fd] // Aqui esta seu erro[/color:879267a6fd] [color=red:879267a6fd] ZQ_CtaReceber.FieldByName(´VALOR´).AsString := sValor;[/color:879267a6fd] ZQ_CtaReceber.Post; end; //FIM GERA NOVA PARCELA PARA VALOR PAGO A MENOR é essa q eu chamo quando clico no batao de baixa chama essa procedure... no caso ela iria criar outra parcela com o valor restante mas num da nada..



GOSTEI 0
Tchucky

Tchucky

01/12/2007

Macario

eu naum entendi oq vc quiz dizer alias naum disse nada a respeito a minha duvida...


:lol:


GOSTEI 0
Tchucky

Tchucky

01/12/2007

A desculpa num tinha visto q timha marcado aonde poderia estar o erro...

mas o sistemo perfeitamente mas ele num esta gerendo a parcela...

mas pq vc axa q o erro é ai...aonde vc destacou...

se vc tiver uma farma mais simplificado eu agradeço...


GOSTEI 0
Macario

Macario

01/12/2007

// Aqui voce calcula o resto

Resto := ZQ_CtaReceberValor.Value - StrToCurr(FrmCtaReceberBaixas.EditValorPago.Text);

// Aqui vc atribui o valor do resto
ZQ_CtaReceberValor.Text :=CurrToStr(Resto);

// Aqui esta seu erro, pois vc sobrepoe o valor que passou anteriormente
[color=red:8091cb0fa4] ZQ_CtaReceber.FieldByName(´VALOR´).AsString := sValor;[/color:8091cb0fa4]

8)


GOSTEI 0
POSTAR