Jump to content

Archived

This topic is now archived and is closed to further replies.

Rodrigo Miss

Grid Fechamento Caixa

Recommended Posts

Tenhum um DBGrid para fechamento de caixa... com os seguinte campos:

Tipo Lancamento | Entrada | Saida | Informado | Diferenca |------------------------------------------------------------------------DINHEIRO..........|150,00......|50,00...|99,00.........|1,00CHEQUE VISTA...|200,00......|0,00.....|200,00.......|0,00------------------------------------------------------------------------

Tipo o Grid deveria ser preenchido com a tabela de Movimento de Caixa q tm os seguintes campos:Tipo LancamentoTipo(Entrada/Saida)Valorentre outros campos...pra preencher o campo tipow Lancamento do DBGrid... eu teria q fazer um select pra pegar todos os registros da tabela q c tratem de dinheiro por exemplo e agrupar colocar dinheiro somente numa linha do DBGrid e somar todos os valores q foram lancados como dinheiro;;; depois com outras formas de pgtos...depois teria q deixar eu editar o campo Informado ,, pro usuario fazer como acima informar digamos o 99,00 e ele calcula automaticamente a diferenca...Alguem teria alguma sugestao... pra clarear minha ideia;;;????Desde ja agradeço... vlw

Share this post


Link to post
Share on other sites

Mas no caso se você agrupar todos os movimentos, não vai ter como você editar, pois você pode estar agrupando digamos 100 movimentos, que juntos somam R$ 1.000,00 e a diferença no final deu R$ 0,10 não teria como editar e salvar, pois qual seria o movimento que não fecha ? O certo seria encontrar um movimento que faz com que a diferença exista...

Share this post


Link to post
Share on other sites

Ops!Mais nesse caso kra... ele naum seria bm editar...o usuario iria somente informar o valor real q tm no caixa e o sistema vai dizer qual eh a diferenca.... mais naum iria editar nenhum movimento ;...issu serviria apenas para ser gravado no numa tabela q o caixa do dia tal... fikou faltando 0,10 entende???Teria ideia de comop eu fazer issu?Ou teria alguma outra dica pra fazer ?

Share this post


Link to post
Share on other sites

No caso eu ja tenho a tabela de movimento de caixa;;. q guarda as entradas e saidas e o id do caixaDigamos q no fexamento o user escolhe o caixa do dia 06/11/2006 com id=1dai deveria filtrar todos os lancamentos o caixa com id=1dai no caso vo t q cria uma tabela pra gravar o fechamento do caixa neh??Kra to bm confuso... teria mais detalhes de como fazer issu???e como eu faço pra agrupar os lancamentos dinheiro por exemplo... e os outros tipow de pgto pra agrupar logo abaixo???? ,,,e pra liberar o campo Informado pra digitar um valor???

Share this post


Link to post
Share on other sites

Você poderia criar uma tabela de Fechamento de Caixa por dia, ou então fazer um lançamento no próprio caixa, no caso lançaria um movimento de Fechamento contendo o valor e demais informações, isto a forma de fazer fica na sua escolha...Depois para trazer os valores você poderia fazer um SQL usando o comando Group By, agrupando todos as formas de pagamento e somando o valor, tendo assim as informações que você precisa...Tente fazer um teste de mesa ou então visualizar qual situação melhor se encaixa no seu caso... Leve em consideração o que seria mais fácil para os seus usuários fazerem...

Share this post


Link to post
Share on other sites

Vlw kra... vou verificar issu em ksa com tempo... tentando usar esses Group By...dai amanha eu t digo no q deu beleza....Mto obrigado pelas dicas..... me ajudou mto... deu uma boa clareada! rs... flw

Share this post


Link to post
Share on other sites

hehe... kra.... na verdade axo q vo me enrolar nessa msm...nunca usei esse group by...como fikaria pra mim agrupar por tipow lancamento ...pra jogar no grid tipow DinheiroCheque preCheque vista...pra somar tb ???? c puder me da + essa dica? rs

Share this post


Link to post
Share on other sites

Tabela AberturaCaixa

Id:Id_Caixa_Dia:Usuario:Data_Abertura:Data_Fechamento:

Tabela Movimento Caixa:

Id:Id_Caixa: // esse id eh o id (numeracao automatica) da tabela abertura de cxTipoLancamento: (Entrada/Saida)TipoPgto:(Dinheiro...)Historico:

O Tipo de pgto eu mando via codigo ... c eh dinheiro ou outra forma de acordo com q o cara escolhe um PageControl....

Share this post


Link to post
Share on other sites

Uma coisa que você poderia fazer, é criar mais dois campos na tabela MovimentoCaixa, Valor_Entrada e Valor_Saida, mas mantendo o campo Valor que você já possui, esses dois campos vai facilitar para fazer comandos SQL futuramente... Podendo fazer SQL agrupando por TipoPagto algo do tipo:

 

select movimentocaixa.tipopagto, sum(movimentocaixa.valor_entrada) as ValorEntrada, sum(movimentocaixa.valor_saida) as ValorSaidafrom movimentocaixagroup by movimentocaixa.tipopagto
Sendo que apenas precisa cuidar, quando for lançamento de Entrada, preenche o campo valor e valor_entrada, e quando for lançamento de Saída, preenche valor e valor_saida

Share this post


Link to post
Share on other sites

kra... o SQL deu beleza... do geito q eu qria msm.... otimo....

 

Agora to fazendo um teste aki ..... e ta dando erro....

 

procedure TForm1.Button1Click(Sender: TObject);beginqry.Close;qry.SQL.Clear;qry.SQL.Add('Select TipoPgto, sum(Valor_entrada) as ValorEntrada, sum(valor_saida) as ValorSaida From Movimento group by TipoPgto');grd.Fields[1].Value:= qry.Parameters.ParamValues['ValorEntrada'];qry.Open;end;

tm ideia do q esteja errado?

Share this post


Link to post
Share on other sites

você não deixa preenchido de forma fixa no projeto ? Ele sempre precisa carregar em tempo de execução ?No caso basta ligar ele com o DBGrid que vai ser preenchido o grid com os campos, remove a linha e testa...

Share this post


Link to post
Share on other sites

c eu setar a proprieda SQL da qry para

 

select * from movimento'

e adc os fields....

 

qdo roda o projeto ele continua dando o erro ,,

 

mesmo removendo a linha

grd.Fields[1].Value:= qry.Parameters.ParamValues['ValorEntrada'];

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.