>

 

Neste artigo veremos

·                         Criação das páginas para liberação de locação;

·                         Bloqueio de locações para usuários devedores;

·                Bloqueio de novas reservas para usuários devedores.

Qual a finalidade

·                Com o bloqueio de reservas e multas para usuários devedores, evitamos que o mesmo faça novas reservas sem antes liquidar seus débitos e atrasos nas devoluções.

Quais situações utilizam esses recursos?

·                A principal situação está no fato de evitar mais problemas com um determinado usuário que costuma atrasar a entrega do filme e não pagar as devidas multas.

 

Resumo DevMan

Na última parte de nosso mini-curso veremos como bloquear novas reservas para clientes devedores. Esse recurso é bastante útil no dia-a-dia e evita que o cliente alugue muitos filmes sem antes eliminar todos os seus débitos.

Outro recurso interessante que veremos será incluído na área administrativa que possibilitará o operador da locadora bloquear, ou não, o cliente inadimplente ou com filmes em atraso.

 

Finalizando, neste artigo, o desenvolvimento da nossa aplicação ASP.NET com Delphi for .NET, sobre um sistema on-line de vídeo-locadora, veremos uma funcionalidade de grande valia para que você possa implementar em seu sistema, o controle de atrasos e multas. Criaremos uma nova tabela na base de dados onde armazenaremos todos os registros dos valores de multas aplicados a clientes decorrentes de atrasos na devolução de suas locações.

Para o processo de reservas de locações pelo cliente, faremos uma verificação no momento da reserva, onde apenas usuários sem registros de atrasos ou multas estarão aptos a novas reservas. Para o controle da locadora, nas páginas onde os administradores possuem acesso, criaremos também uma verificação no momento em que um usuário é selecionado, bem como a regra de criação de multa em devoluções de locações atrasadas, e posterior criação de páginas para pagamento das mesmas. Veja que as implementações não terão grandes dificuldades ao serem desenvolvidas. Mãos na massa!

 

Adicionando a tabela de multas ao banco de dados

Utilizando o gerenciador de banco de dados IBExpert, ative o registro da base de dados da locadora on-line e abra o SQL Editor (“F12”) onde iremos digitar os comandos SQL para criação da tabelas de “MULTAS”, Primary Keys e Foreign Keys, além também da criação de um mecanismo de auto-incremento para a chave primária da tabela.

Digite no editor SQL a instrução da Listagem 1 e logo após execute-a (“F9”). Para compilar e gravar a ação utilize o botão Commit Transaction (Ctrl+Shift+C), observando no DataBase Explorer que a nova tabela acabou de ser adicionada.

 

Listagem 1. Adicionando tabela de multas à base de dados

CREATE TABLE MULTAS(

  COD_MULTA INTEGER NOT NULL,

  COD_LOCACAO INTEGER,

  PAGO CHAR(1) DEFAULT 'N',

  DATA_PGTO DATE DEFAULT 'TODAY',

  VALOR DECIMAL(12,2) DEFAULT 0);

ALTER TABLE MULTAS

ADD CONSTRAINT PK_MULTAS

PRIMARY KEY (COD_MULTA);

CREATE GENERATOR GEN_MULTAS_ID;

SET TERM ^;

 

CREATE TRIGGER MULTAS_BI FOR MULTAS

ACTIVE BEFORE INSERT POSITION 0

AS

BEGIN

  IF (NEW.COD_MULTA IS NULL) THEN

    NEW.COD_MULTA = GEN_ID(GEN_MULTAS_ID,1);

END

^

SET TERM ; ^

 

ALTER TABLE MULTAS

ADD CONSTRAINT FK_MULTAS

FOREIGN KEY (COD_LOCACAO)

REFERENCES LOCACAO(COD_LOCACAO);

 

Ao observar o código, veja que nas primeiras linhas estamos criando as tabelas e os respectivos campos, definindo a cada um dos mesmos um tipo e tamanho se necessário. Na seqüência, a criação da chave-primária da tabela, à qual também atribuímos um Generator e uma Trigger que irá definir um valor automático para o campo, caso o mesmo não seja informado no momento de uma nova inclusão. Na segunda parte da instrução, criamos uma chave estrangeira relacionada à tabela LOCACAO por onde conseguiremos obter o registro causador da multa, nome do vídeo que está atrasado e cliente da locação. Realizadas as mudanças na base de dados, passaremos à implementação das rotinas de programação na aplicação.

 

Criando uma unit para controle de multas e atrasos

No Delphi 2006, abra o projeto que estamos desenvolvendo e crie uma nova Unit através do menu File>New>Other>Delphi for .NET Projects>New Files>Unit. Nesta Unit criaremos duas funções e um procedimento, onde, as funções farão verificações de registros de locações em atraso de um usuário e dos registros de multas sem pagamento. O procedimento será utilizado para adicionar novos registros de multas no momento em que uma devolução for feita com atraso.

Criada a Unit salve-a com o nome uControleMultas.pas e após isso adicione os códigos de acordo com a Listagem 2 onde todas as linhas codificadas encontram-se comentadas de acordo com a ação que executa. Adicionaremos também nesta Unit uma constante contendo o Path de conexão com a base de dados. Durante a codificação das functions e procedures note que também estamos declarando todas as variáveis de comunicação com a base de dados, que serão criadas e configuradas em tempo de execução.

A partir destas funções e procedimento teremos todo o controle relacionado aos atrasos e multas de usuários, bastando que agora sejam codificadas as páginas para que passem a utilizar as verificações criadas nesta Unit. Nosso primeiro passo será realizar as verificações na página de acesso do cliente, onde ele próprio tem a opção de realizar uma nova reserva, opção que passará a ser bloqueada caso alguma irregularidade seja encontrada. Antes disso vejamos o que estamos fazendo em cada procedimento.

A função UsuarioPossuiLocacaoAtrasada será utilizada para verificar se o usuário possui uma locação atrasada conforme o próprio nome diz. Em primeiro lugar estamos criando um componente de conexão, (Conn) atribuindo a ele a string de conexão, e logo em seguida, conectamos a base de dados. Na seqüência atribuímos a propriedade SelectCommand do DataAdapter o comando SQL para seleção dos vídeos. Note que estamos fazendo um Inner Join com a tabela Locacao, assim conseguimos saber se este usuário possui alguma locação ...

Quer ler esse conteúdo completo? Tenha acesso completo