Caixa - debito credito
27/12/2005
0
D = Débito
C = Crédito
como seria uma função para listar todos os ítens do dia separar o que é dédito e separar o crédito e somar dando um valor final..tipo
10,00 D
20,00 D
30,00 C
60,00 C
O valor seria 60,00 de crédito, más para isto tenho que fazer com qie as letras se trnsformem em operadores aí que tá pegando...alguém tem alguma idéia ?
Gigatel
Posts
27/12/2005
Eixox
Variaveis
Debito = 30,00
Credito = 90,00
resultado = Credito - Débito
resultado = 60,00
Se resultado > 0 then 60,00 Reais de Credito
else XXXX reais de Débito
Não esqueça que na verdade o processo é inverso. O que entra é negativo e o que sai é positivo. Nesse caso Credito = R$ -60,00
Débito = R$ 30,00
27/12/2005
Martins
Condicionalmente vc vai somar seus créditos (C) e atribuir o valor a uma variável e com os débitos a mesma coisa, depois é só ver Crédito - Débito = Saldo.
Como o colega eixox falou aí do inverso, algo q é muito aplica em contabilidade é q para todo débito tem q aver um crédito e vice versa, digamos q vc vai pagar uma conta de luz, e esse pagamento saira do caixa, então vc crédita o caixa vc vai fazer um retirada do banco para o caixa então vc credita o banco e debita o caixa, acho q é isso, ou me perdi, hehehehe!!!!
28/12/2005
Aerreira
Criar uma query com o seguinte código:
select sum(credito) as TotCred from Tabela where tipo=´C´
- Abrir a query
- armazenar o resultado de TotCred numa variável.
- Fechar a query
Alterar o código da query para:
select sum(debito) as TotDeb from Tabela where tipo=´D´
- Abrir a query
- armazenar o resultado de TotDeb numa variável.
- Fechar a query
Calcular mSaldo := mTotCred - mTotDeb
Mostrar o valor de mSaldo.
28/12/2005
Martins
Pode ser !!!
Ele pode usar essa query, assim como poderá criar uma SP para isso, dependendo do Banco de Dados q ele usa.
Falow!!
28/12/2005
Gigatel
É isto aí mesmo... vou estudar a sua idéia...
28/12/2005
Gigatel
28/12/2005
Martins
Coloca uma instrução no OnShow ou na Abertura da Query do Form com uma instrução SQL checando se a data da movimentação é igual a data atual
28/12/2005
Aerreira
Acho que a mesma rotina poderia ficar no onShow do form e a cada alteração ou inclusão em sua lista de movimentação.
Nessa única rotina, com base na data de movimentação você abre primeiro aquelas queries de debitos e créditos, porém informa:
where TIPO=´C´ and [b:4f3d93c6a5]DATA < DATAMOVTO[/b:4f3d93c6a5]
e armazena com isso os totais de debitos e créditos anteriores (mTotCredAnt e mTotDebAnt) ao dia da movimentação, e calcula o mSaldoAnterior.
Depois executa novamente as mesmas queries modificando o where para:
where TIPO=´C´ and [b:4f3d93c6a5]DATA = DATAMOVTO[/b:4f3d93c6a5]
Assim obterá os totais do dia e conseguentemente o saldo atual, que será:
mSALDO := mSaltoAnterior + mTotCred - mTotDeb
Acho que isso vai resolver seu caso.
29/12/2005
Gigatel
Más vou prescisar de uma tabela independente ?
29/12/2005
Edilcimar
datamoimento, crédito, débito e saldo,
aí vc pega o saldo e faz as contas com o crédito ou débito que foi inserido e já calcula o novo saldo, então quando pegar uma data qualquer vc tem todos os créditos, todos os débitos e o saldo de cada operação
29/12/2005
Aerreira
O correto é NÃO, não precisa de tabela independente pra isso não. Basta criar as queries para localização de saldos anteriores e atuais, sempre varrendo a sua única tabela de movimento.
Porém, se você tiver muitas contas (mas muitas mesmo) e muitos lançamentos (mas muitos mesmo), talvez essa localização de saldos anteriores ao longo do tempo vá se tornando muito lenta, pois terá muitos registros para varrer. Então neste caso uma solução seria o uso de uma tabela de saldos, assim você encontraria os saldos anteriores muito mais rapidamente, mas para isso precisaria de rotinas específicas para atualizar essa tabela de saldos. Nenhum bicho de sete cabeças, mas um pouco mais complicado.
Acredito que no seu caso, não precisa de tabela extra nenhuma. Faça tudo na mesma tabela de movimento mesmo.
Alguém mais teria alguma outra sugestão?
02/01/2006
Sergioaugustomatos
por exemplo vc poderia atualizar a tabela de saldos no fechamendo de cada mes e utilizar as queries citadas pelo amigo aerreira, desta forma vc teria um melhor desempenho no calculo do saldo anterior.
espero ter ajudado.
12/01/2006
Fx|hand
SELECT SUM(valor) AS total, dc as tipo FROM t GROUP BY tipo union SELECT (select sum(valor) as total from t where dc = ´c´) - (select sum(valor) from t where dc = ´d´) as Total, ´SubTotal´ as tipo;
axo q issu resolve !
Clique aqui para fazer login e interagir na Comunidade :)