Fórum Baixa de Contas a Receber #337098
01/02/2007
0
Boa tarde galera!
Fiz um form pra baixar contas a receber,,, no botao baixar tem issu:
daew o seguinte ... digamos q tenha 2 contas :
Doc 1 ************** 10,00
Doc 2 ************** 12,00
e o user informa q vai ser baixado 20,00 , nesse caso ele faz certo baixa as duas contas - altera o valor do Doc 2 para 10,00 e cria uma nova conta de 2,00
agora o problema ta se estiver invertido as ordens,, por exemplo c estiver assim:
Doc 1 ************** 12,00
Doc 2 ************** 10,00
Dai ele c embanana td ,,, nesse caso c o user informar q vai se baixado 20 tb, ele faz o seguinte:
Cria 2 novas contas
Restante Doc 1 **** 4,00 e
Restante Doc 2 **** 2,00
e baixa assim:
Baixa Parcial Doc 1 **** 8,00 e
Baixa Parcial Doc 2 **** 8,00
pq sera essa bagunça tda ...
Por favor.... alguem consegui me entender????? Entao ! pode me ajudar???
Fikarei no aguardo ..;.. vlw pessoal mais uma vez;..
Fiz um form pra baixar contas a receber,,, no botao baixar tem issu:
if (grd.SelectedRows.Count > 1) and (StrToFloat(txtValor.Text) < StrToFloat(txtSelecionado.Text)) then begin ValorBaixar:= StrToFloat(txtValor.Text); for i:= 1 to grd.SelectedRows.Count do begin qry.GotoBookmark(Pointer(grd.SelectedRows.Items[i - 1])); ID_CLIENTE:= qryID_CLIENTE.Text; DATA_EMISSAO:= qryDATA_EMISSAO.Value; DATA_VCTO:= qryDATA_VCTO.Value; DOC:= qryDOC.Value; HISTORICo:= qryHISTORICO.Value; VALOR:= qryVALOR.Value; if ValorBaixar > qryValor.Value then begin ValorBaixar:= ValorBaixar - qryValor.Value; qry.Edit; qryDATA_PGTO.Value:= Date; qryPENDENTE.Value:= False; qry.Post; end; if ValorBaixar < qryValor.Value then begin qry.Edit; qryDATA_PGTO.Value:= Date; qryPENDENTE.Value:= False; qryValor.Value:= ValorBaixar; qryHistorico.Text:= ´Baixar Parcial Conta de: ´ + FloatToStr(Valor) + HISTORICO; qry.Post; qry.Insert; qryPENDENTE.Value:= True; qryValor.Value:= Valor - ValorBaixar; qryHistorico.Text:= ´Restante Conta de: ´ + FloatToStr(Valor) + HISTORICO; qryID_CLIENTE.Text:= ID_CLIENTE; qryDATA_VCTO.Value:= DATA_VCTO; qryDATA_EMISSAO.Value:= DATA_EMISSAO; qryDOC.Text:= DOC; qry.Post; end; end; qry.Close; qry.Open; end; end;
daew o seguinte ... digamos q tenha 2 contas :
Doc 1 ************** 10,00
Doc 2 ************** 12,00
e o user informa q vai ser baixado 20,00 , nesse caso ele faz certo baixa as duas contas - altera o valor do Doc 2 para 10,00 e cria uma nova conta de 2,00
agora o problema ta se estiver invertido as ordens,, por exemplo c estiver assim:
Doc 1 ************** 12,00
Doc 2 ************** 10,00
Dai ele c embanana td ,,, nesse caso c o user informar q vai se baixado 20 tb, ele faz o seguinte:
Cria 2 novas contas
Restante Doc 1 **** 4,00 e
Restante Doc 2 **** 2,00
e baixa assim:
Baixa Parcial Doc 1 **** 8,00 e
Baixa Parcial Doc 2 **** 8,00
pq sera essa bagunça tda ...
Por favor.... alguem consegui me entender????? Entao ! pode me ajudar???
Fikarei no aguardo ..;.. vlw pessoal mais uma vez;..
Output
Curtir tópico
+ 0
Responder
Posts
01/02/2007
Gatoledo
Olá Rodrigo,
Na minha opinião você tem que fazer 2 alterações no seu código (elas estão comentadas):
Espero ter ajudado.
Gabriel
Na minha opinião você tem que fazer 2 alterações no seu código (elas estão comentadas):
if (grd.SelectedRows.Count > 1) and (StrToFloat(txtValor.Text) < StrToFloat(txtSelecionado.Text)) then begin ValorBaixar:= StrToFloat(txtValor.Text); for i:= 1 to grd.SelectedRows.Count do begin qry.GotoBookmark(Pointer(grd.SelectedRows.Items[i - 1])); ID_CLIENTE:= qryID_CLIENTE.Text; DATA_EMISSAO:= qryDATA_EMISSAO.Value; DATA_VCTO:= qryDATA_VCTO.Value; DOC:= qryDOC.Value; HISTORICo:= qryHISTORICO.Value; VALOR:= qryVALOR.Value; // Altere o operador para >= if ValorBaixar >= qryValor.Value then begin ValorBaixar:= ValorBaixar - qryValor.Value; qry.Edit; qryDATA_PGTO.Value:= Date; qryPENDENTE.Value:= False; qry.Post; end // Ao invés de fazer 2 ifs, coloque um else else begin qry.Edit; qryDATA_PGTO.Value:= Date; qryPENDENTE.Value:= False; qryValor.Value:= ValorBaixar; qryHistorico.Text:= ´Baixar Parcial Conta de: ´ + FloatToStr(Valor) + HISTORICO; qry.Post; qry.Insert; qryPENDENTE.Value:= True; qryValor.Value:= Valor - ValorBaixar; qryHistorico.Text:= ´Restante Conta de: ´ + FloatToStr(Valor) + HISTORICO; qryID_CLIENTE.Text:= ID_CLIENTE; qryDATA_VCTO.Value:= DATA_VCTO; qryDATA_EMISSAO.Value:= DATA_EMISSAO; qryDOC.Text:= DOC; qry.Post; // Neste caso não haverá mais valor disponível para baixar o // CTR, então a rotina pode sair do for Break; end; end; qry.Close; qry.Open; end; end;
Espero ter ajudado.
Gabriel
Responder
Gostei + 0
01/02/2007
Output
bah kra... vlw msm [b:508097374d]gatoledo[/b:508097374d] ...
exatamente issu q eu qria ...
vlw pela dica
exatamente issu q eu qria ...
vlw pela dica
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)