Fórum Sistema Locadora #158255
06/05/2003
0
Sou iniciante em Delphi e recentemente fiz um treinamento Delphi 6 acessando Interbase, SQL Server e Oracle.
Consegui um cliente e onde o mesmo me solicitou que eu desenvolve-se um sistema de video locadora.
O problema é que estou com dúvida de como fazer a modelagem de dados na parte de locação e devolução de Fitas / DVD, ou seja, tenho todas as tabelas montadas menos a de Locação e Devolução onde não tenho idéia de como fazer as tabela e seu relacionamento.
Por favor quem já passou por esse problema, me ajude porque tenho um prazo para entregar e o que pensei que fosse facil, se tornou-se complicado ainda mais para quem não tem experiência como no meu caso.
[]s
Bestbrain
Bestbrain
Curtir tópico
+ 0Posts
06/05/2003
Sandrad
CodCli
CodFita
DatLocacao
DatparaDevolucao
DatDevolvido
Não sei se voce está fazendo assim, mas sugiro que crie uma table para títulos e uma para as cópias, entedeu? No cadastro de títulos, você coloca as informações comuns a todas as copias, como título, gêneros, atores, etc. e no cadastro de cópias, as informações variáveis, como idioma (dublado,legendado) e mídia (VHS, DVD).
Espero ter ajudado.
Qq coisa, estou sempre por aqui.
Gostei + 0
07/05/2003
Crash
/* Table: LOCACAO, Owner: SYSDBA */
CREATE TABLE LOCACAO
(
CODINTEGER,
CLIENTEINTEGER,
DATATIMESTAMP,
HORAVARCHAR(8),
FUNCVARCHAR(5),
AUTORIZADOVARCHAR(10),
SALDO_ANTNUMERIC(15, 2),
PAG_ANTNUMERIC(15, 2),
QTD_TITULOSSMALLINT
);
/* Table: ITENS_LOCACAO, Owner: SYSDBA */
CREATE TABLE ITENS_LOCACAO
(
COD_LOCACAOINTEGER,
CLIENTEINTEGER,
COD_TITULOINTEGER,
SITUACAOVARCHAR(1),
PROMOCAOVARCHAR(1),
PRECONUMERIC(15, 2)
);
/* Table: LOCADAS, Owner: SYSDBA */
CREATE TABLE LOCADAS
(
COD_CLIENTEINTEGER,
COD_TITULOINTEGER,
DATA_LOCTIMESTAMP,
HORA_LOCVARCHAR(5),
FUNC_LOCVARCHAR(3),
DATA_ENTTIMESTAMP,
DATA_DEVTIMESTAMP,
HORA_DEVVARCHAR(5),
FUNC_DEVVARCHAR(3),
PROMOCAOVARCHAR(1),
PRECONUMERIC(15, 2),
AUTORIZADOINTEGER,
DOCVARCHAR(8)
);
No caso voce nao cria uma tabela de devolucao, mais sim uma tabela de itens locados. para facilitar futuramente por exemplo voce extrair da tabela o histórico do cliente.
É bom vc levar em conta que:
*Pode haver cancelamento da locacao;
*Se vc nao gravar informacoes na tabela de itens por exemplo e se o preco da locacao do titulo aumentar, o cliente deve pagar o valor anterior se ele estiver com o título antes da modificacao;
Qualquer coisa eu te passo a analise que eu fiz
flws
Gostei + 0
07/05/2003
Vinciguerra
NUMERO_EMPRESTIMO
COD_CLIENTE
NOME
DATA_RETIRADA
DATA_PARA_DEVOLUCAO
DATA_DEVOLUCAO
COD_FILME
VALOR
PAGO (SIM | NAO)
MULTA_ATRASO
JUROS
Já no form de locações você pode fazer inúmeras coisas como:
-mostrar todas as locações;
-mostrar as locações de um cliente;
-locações em aberto (não devolvidas)
-locações pagas e não pagas do cliente ou total;
-etc - use a imaginação.
Espero que tenha conseguido ajudar um pouco.
Mais dúvidas, mande e-mail.
Gostei + 0
07/05/2003
Crash
a devolução voce faz da seguinte forma:
abre a tabela de itens fazendo o filtro pelo cliente, insere os dados dos títulos devolvidos na tabela de locadas, e exclui o registro...
foi assim que eu fiz se voce encontrar uma maneira melhor...
Gostei + 0
07/05/2003
Sandrad
Master:
NumLoc,+,*
CodCli,I
DatLocacao,D
ValorLoc,$ **
Detail:
NumLoc,I
CodFita,I
DatparaDevolucao,D
DatDevolvido,D
Desconto,N
Juros,N
ValTot,N (Vl.Locacao - Desconto + Juros)
DtPago
** Quanto ao valor da locação, acho que é muito relativo. Pessoalmente, prefiro usar o campo ValorLoc da master table apenas como informativo. Ele trás a soma do campo Valor da detail table (você pode usar SQL para fazer isso). Muitas vezes o cliente (da locadora) pega fita em grupo e prefere pagar somente algumas fitas na locação, por exemplo, e o restante depois.
Nesta hipótese, acho interessante criar um controle de crédito. Por exemplo: A locação total de 3 fitas ficou em 14,00. O cliente quer deixar 10,00. Você informa o valor pago, o sistema liquida a locação de duas fitas (8,00) e joga 2,00 como crédito. No próximo pagamento que ele fizer, você soma os créditos disponíveis.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)