Re: [firebase-br] OFF - Opinião sobre tabelas...
Edvaldo (bol)
evgomes em bol.com.br
Dom Maio 28 00:01:40 -03 2006
Arno,
Se vc tem uma tabela de título, quanto a isso blz..
Então vc cria outra tabela que é para gravar as baixas.
Exemplo : DOCUMENTO e DOCUMENTOBAIXA.
Para cada valor baixado vc faz um lançamento na tabela DOCUMENTOBAIXA, com o
valor que está sendo baixado a data da baixa, quem está baixando, no caso o
usuário, o tipo de baixa, dinheiro, cheque, cartão.. etc.
Um titulo no valor de 300,00 e o individuo paga somente 200,00, vc faz um
lançamento de 200,00 na tabela DOCUMENTOBAIXA, conforme expliquei acima e o
resto fica de saldo. Este saldo vc pode criar o campo na tabela DOCUMENTO,
vc também deve criar um campo chamado STATUS na tabela DOCUMENTO, quando for
baixa parcial, no caso do 200,00 vc coloca P de parcial, quando o titulo não
tiver nenhuma baixa vc coloca A de Aberto, e quando o título estiver
totalmente baixado, vc coloca B de baixado.
Veja como fica
DOCUMENTO:
Documento Dt.Emissao Dt.Vecto Valor ValorBaixado Saldo
Situacao
0001923 25/05/2006 10/05/2006 300,00 200,00 100,00
Parcial
DOCUMENTOBAIXA
Documento Valor baixa Data Baixa Usuario Tipo
Baixa
FK do documento 200,00 10/05/2006 José Dinheiro
FK do documento 100,00 30/05/2006 José Dinheiro
Quando for feito o lançamento do segundo registro de 100,00 a situação do
documento muda para Baixado o SALDO = 0 e o Valor Baixado = 300,00
Qualque dúvida.
Edvaldo
----- Original Message -----
From: "Arno" <arno35 em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Friday, May 26, 2006 4:09 PM
Subject: [firebase-br] OFF - Opinião sobre tabelas...
Olá pessoal,
tenho acompanhado a lista a algum tempo e tenho percebido que esta é uma
lista muito boa, talvez uma das melhores do país.
Por isso, venho pedir uma ajuda sobre modelagem de banco de dados, peguei um
sistema para dar manutenção, ele está rodando o Delphi 6 + zeoslib 5.5 +
mysql 4.0.
Estou mudando todo o banco, tornando ele um banco relacional, porque da
forma como se encontra hoje, ele não tem integridade de chave entre as
tabelas.
Para isso estou utilizando o Delphi 6 + zeoslib 6.1 + firebird 1.53.
Mas o meu problema está no seguinte:
Tem duas tabelas em uma parte semi-contábil do sistema, que controlam os
títulos a pagar e a receber.
Hoje, a cada novo título lançado no sistema, é feito automaticamente o
número de lançamentos correspondentes a quantidade de parcelas, por exemplo:
se um título tiver parcela única, será efetuado um único lançamento dentro
do banco mas, se um título tiver duas ou mais parcelas, é feito o lançamento
do mesmo título tantas vezes quanto forem o número de parcelas.
Para efetuar a baixa, o sistema escreve em outra tabela, uma cópia do título
digitado acima, e faz a baixa do mesmo, ou seja, ele está reescrevendo o
registro do lançamento e anexando alguns campos, como data da baixa e
outros...
Basicamento o desenho das tabelas são estes:
=====================================================
tabela titulos
id -> chave primária
idclifor -> chave da tabela de clientes/fornecedores
nrdoc -> nr do documento
datalanc -> data do lançamento
tipodoc -> tipo do documento
valor -> valor da parcela
valordoc -> valor total do documento
nrparcela -> número da parcela
qparcela -> quantidade de parcelas
tabela de movimentação
id -> chave primária
idclifor -> chave da tabela de clientes/fornecedores
nrdoc -> número do documento
databaixa -> data da baixa do documento
tipodoc -> tipo do documento
valor -> valor da parcela
nrparcela -> número da parcela
========================================================
Entre outros campos, estes são os principais.
Bom, montei um modelo relacional no qual o título era lançado uma única vez
dentro da tabela de títulos, não havendo mais a repetição de campos e
registros, e de acordo com a quantidade de parcelas era feito o lançamento
dentro da tabela de movimentação, aguardando assim a data da baixa com o
respectivo número da parcela, deste modo o cliente pode escolher qual
parcela pagar, como ainda é feito hoje. Ou seja, a tabela de movimentação
ficou com uma chave estrangeira da tabela de títulos e sem os campos
repetidos.
Na semana passada percebí um problema neste sistema que estou montando. Como
a quantidade de parcelas determina o número de lançamentos dentro da tabela
de movimentação, o sistema não comporta pagamento de parcelas parciais, ou
seja, se uma parcela for de R$ 300,00 e for efetuado o pagamento de somente
R$ 200,00, ficam sobrando R$ 100,00 que não tenho aonde colocá-lo. E isso é
uma prática comum para este cliente.
Bom, tenho que repensar estas duas tabelas novamente, e estou precisando de
uma ajuda, se alguém tiver uma idéia ou sugestão de como resolver o problema
e quiser compartilhá-lha, pode entrar em contato em pvt comigo.
arno35 em gmail.com
Agradeço a todos que perderam tempo lendo este jornal...
Arno.
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.7.2/349 - Release Date: 26/05/2006
Mais detalhes sobre a lista de discussão lista