Esse artigo faz parte da revista Clube Delphi Edição 89. Clique aqui para ler todos os artigos desta edição

N: left" align=left>Daremos continuidade ao curso desenvolvendo o cadastro de contas a receber como mencionado anteriormente, para isso precisamos alterar o banco de dados incluindo mais uma tabela.

 

Alterando o banco de dados de exemplo

Assim como fizemos nos artigos anteriores criaremos mais uma tabela no banco de dados utilizando o aplicativo IBExpert. Após conectar ao banco de dados, clique com o botão direito sobre o item Tables e escolha a opção New Table. No alto da janela, aparecerá o nome da tabela sugerido, troque-o para “Contas_Receber”.

Em seguida para criar um campo, digite o nome em Field Name, selecione seu tipo em Field Type e marque o item Not Null (caso seja necessário). Caso prefira, execute o script da Listagem 1.

 

Listagem 1. Criação da tabela e índices da Contas_Receber

CREATE TABLE CONTAS_RECEBER (

  CODIGO        VARCHAR(20) NOT NULL,

  CNPJ          VARCHAR(18) NOT NULL,

  DESCRICAO     VARCHAR(60) NOT NULL,

  VLR_REAL      NUMERIC(15,2),

  VLR_PAGO      NUMERIC(15,2),

  JUROS         NUMERIC(15,2),

  MORA          NUMERIC(15,2),

  DT_CADASTRO   TIMESTAMP,

  DT_VECTO      TIMESTAMP,

  DT_PAGTO      TIMESTAMP,

  BANCO         INTEGER,

  AGENCIA       VARCHAR(10),

  CONTA         VARCHAR(10),

  STATUS        VARCHAR(1),

  DT_ALTERACAO  TIMESTAMP

);

 

ALTER TABLE CONTAS_RECEBER ADD CONSTRAINT

  PK_CONTAS_RECEBER PRIMARY KEY (CODIGO, CNPJ);

ALTER TABLE CONTAS_RECEBER ADD CONSTRAINT

  FK_CONTAS_RECEBER_BANCO FOREIGN KEY

  (BANCO, AGENCIA, CONTA) REFERENCES CONTAS

  (BANCO, AGENCIA, CONTA) ON UPDATE CASCADE;

ALTER TABLE CONTAS_RECEBER ADD CONSTRAINT

  FK_CONTAS_RECEBER_CNPJ FOREIGN KEY (CNPJ)

  REFERENCES CLIENTES (CNPJ) ON UPDATE CASCADE;

 

Note que estamos criando uma tabela exatamente igual a criada no artigo anterior (Contas_Pagar). Poderíamos ter criado uma única tabela onde diferenciaríamos cada registro usando uma flag para indicar se o registro é uma entrada ou saída, ou seja, um campo que recebesse tal indicação.

Resolvi criar tabelas diferentes, assim temos tranqüilidade no futuro, caso ocorram mudanças de conceito em nossa aplicação que façam com que ambos os lançamentos se diferenciem demais um do outro. Também estamos prevendo a criação das chaves primárias e chaves estrangeiras, necessárias para garantir a integridade do sistema.

Precisamos apenas entender que cada lançamento em contas a receber é referente a cada fatura disparada contra um cliente, ou seja, é entrada de dinheiro em nosso fluxo de caixa. Isso significa que nossas chaves estrangeiras precisam ser vinculadas a tabela CLIENTES.

No código a seguir (extraído da Listagem 1), criamos uma chave estrangeira incluindo BANCO, AGENCIA e CONTA em que a fatura foi paga. Isso é importante para controlarmos o saldo bancário da conta:

 

ALTER TABLE CONTAS_RECEBER ADD CONSTRAINT

  FK_CONTAS_RECEBER_BANCO FOREIGN KEY

...

Quer ler esse conteúdo completo? Tenha acesso completo