Banco de Dados Fluxo diário de caixa

(bitsystems) #1

Pessoal,

Estou precisando montar um sistema que inicie o caixa as 07:00hs e encerre o caixa as 19:00hs. Neste sistema estarei adicionando todos os tipos de moedas desde a de 1 centavo até nota de 100 reais, notas de crédito e débito e contas/canes pagos.
Alguém já montou o banco de dados deste tipo que inicie e encerre e que caso ocorra a queda do sistema não perca as informações, tipo elas já são atualizadas no banco de dados conforme a movimentação do dia que possa compartilhar ou me fornecer o ponto de partida para eu buscar informações? pois o google não esta me ajudando…

Aguardo contato.
Obrigado pela atenção.

Tiago Sanches

(bitsystems) #2

Bom eu consegui fazer, depois de quebrar muito a cabeça, acho interessante contribuir, pois alguém pode também querer fazer.
Primeiro eu criei um banco de dados contendo tudo o que preciso:

CREATE TABLE IF NOT EXISTS fluxodiario (
datadiario date NOT NULL,
horainiciodiario varchar(5) NOT NULL,
horafimdiario varchar(5) NOT NULL,
userdiarioinicio varchar(50) NOT NULL,
userdiariofim varchar(50) NOT NULL,
dinheiroiniciodiario float(10,2) NOT NULL,
dinheirofimdiario float(10,2) NOT NULL,
chequediario float(10,2) NOT NULL,
cartaodebitodiario float(10,2) NOT NULL,
cartaocreditodiario float(10,2) NOT NULL,
carnediario float(10,2) NOT NULL,
umcentavo float(10,2) NOT NULL,
cincocentavos float(10,2) NOT NULL,
dezcentavos float(10,2) NOT NULL,
vinteecincocentavos float(10,2) NOT NULL,
cinquentacentavos float(10,2) NOT NULL,
umreal float(10,2) NOT NULL,
doisreais float(10,2) NOT NULL,
cincoreais float(10,2) NOT NULL,
dezreais float(10,2) NOT NULL,
vintereais float(10,2) NOT NULL,
cinquentareais float(10,2) NOT NULL,
cemreais float(10,2) NOT NULL,
boletodiario float(10,2) NOT NULL,
boletotipocontajf bigint(20) NOT NULL,
PRIMARY KEY (datadiario)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

A idéia é ter um controle diário de quem abriu o caixa e de quem fechou o caixa. no momento de abertura do caixa além de preencher o campo “dinheiroiniciodiario” o campo “dinheirofimdiario” recebe o valor iniciar e acrescenta e decrescenta conforme as movimentações de vendas e de contas a pagar se selecionar o dinheiro do caixa. No final do dia, terá o valor total e o caixa conta todas as notas e moedas e adiciona no sistema para controle.
Adicionei uma funcionalidade que, se for boleto bancário recebido, a pessoa pode escolher entre física e jurídica que são os dois níveis de contas que tem no meu sistema.
Além de tudo isto, estou controlando quem abriu e fechou o caixa para ter o controle correto, porém tem campos que são apenas labels para que o usuário não altere os valores manualmente.
Ficou jóia.
Se alguém quiser contribuir e apresentar rotinas para melhorar o desenpenho da aplicação acho interessante.

Grato,
TSANCHES

(bitsystems) #3

Alguém tem alguma idéia?

(Cleyton Euler) #4

Neste caso vc tem que distribuir seu projeto SC para que possamos importar e ver o que cada um tem a contribuir.

Somente com sua tabela nao podemos fazer nada, pois teríamos que fazer a aplicação SC do zero…

(bitsystems) #5

Cleyton,

Gostei de suas respostas e te agradeço pelo tempo que vc disponibilizou para responde-las. Eu to realmente perdido com relação ao banco de dados e o scriptcase, estou estudando a fundo o mysql e php e estou também estudando MER, DER, DSD. Assim que concluir este estudo, creio que vou ter uma maior noção sobre os problemas que estou enfrentando e poderei ser mais específico em minhas perguntas.

Muito obrigado pela resposta
Vou adicionar aqui assim que concluir meus estudos os resultados positivos e negativos sobre este assunto e ver como podemos gerar histórico, pois acredito que essa aplicação poderá ajudar muita gente.

Abraço,
TSANCHES

(Cleyton Euler) #6

Tranquilo parceiro…

Vc está aprendendo e não existe pergunta idiota. Qualquer dúvida poste que todos aqui do fórum sempre tem boa vontade em responder, na medida que o tempo e a experiência de cada um permite.

Seja bem-vindo!!!

(Haroldo) #7

Olhando sua tabela, notei que num mesmo registro você controla a abertura e o fechamento do dia.
Eu usaria um registro para abertura e outro para fechamento:

Tabela_1:
id
DataHora
TipoAberturaFecham (‘A’,‘F’)
User
ValorTotal (dec(14,2))
Boleto
BoletoTipoConta

Tabela_2 (Controle Din)
id
Tabela_1_Id
ValorTotal
Quantidade (int) <— Aqui se guarda quantidades
TipoMoeda (1=cincocentavos,2=dezcentavos,3=vinteecincocentavos,4=cinquentacentavos,5=umrea,6=doisreais,7=cincoreais,8=dezreais,9=vintereais,10=cinquentareais,11=cemreais)

Tabela_3 (Controle CDeb)
Id
Tabela_1_id
AdminCartao <- Caso queira controlar por Administradora : Estatisticas Futuras Deve fazer parte Indice Exclusivo
ValorTotCDeb

Tabela_4 (Controle CCred)
Id
Tabela_1_id
BandeiraCartao <- Caso queira controlar por bandeira : Estatisticas Futuras Deve fazer parte Indice Exclusivo
ValorTotCCred

Tabela_5 (Controle Cheques)
Id
Tabela_1_id
ValorCheque
CMC7 (Aqui vc tem Banco, Agencia, ContaCorrente, NroCheque capturado por leitora de cheque)
CNPJCPF (Emitente do Cheque,em caso de extravio ou roubo tem como localizar a pessoa)
Telefone

*Não esqueça de criar índices adequados.
*Uma modelagem bem feita, determina o que quanto o sistema vai sofrer de modificações no futuro, por isso um bom levantamento dos processos, etapas, e resultados gerenciais que se deseja deve ser feito.
*Uma sugestão superficial do um fechamento e abertura de caixa.