Problema com baixa de parcela
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:
é 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..
é 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
Curtidas 0
Respostas
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
01/12/2007
Macario
eu naum entendi oq vc quiz dizer alias naum disse nada a respeito a minha duvida...
:lol:
eu naum entendi oq vc quiz dizer alias naum disse nada a respeito a minha duvida...
:lol:
GOSTEI 0
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...
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
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)
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