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