Sistema Locadora

Delphi

06/05/2003

Pessoal me ajudem.

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

Bestbrain

Curtidas 0

Respostas

Sandrad

Sandrad

06/05/2003

Que tal algo assim:

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
Crash

Crash

06/05/2003

Kra é meio complexo mais da pra faze. eu tenho uma pronta:

/* 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
Vinciguerra

Vinciguerra

06/05/2003

A colega sandradaimaru esta certa, porém eu definiria a tabela da seguinte forma:

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
Crash

Crash

06/05/2003

ha esqueci.

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
Sandrad

Sandrad

06/05/2003

Você também pode trabalhar com duas tables, mestre e detalhe:

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
POSTAR