Artigo Clube Delphi 88 - Contas a Pagar e Cobrança

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Neste artigo, vamos criar mais uma tela de cadastro, que sem dúvida é uma das principais portas de entrada de dados, o de Contas a Pagar.

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

Mini-Curso

Contas a Pagar e Cobrança

Crie um sistema completo com Delphi, Firebird 2.0 e dbExpress - Parte 2

 

Na edição anterior de ClubeDelphi, iniciamos o curso de Contas a Pagar e Cobrança desenvolvendo as primeiras telas que farão parte do sistema chamado SysPague, onde vimos as principais dicas e detalhes referentes ao projeto.

Neste artigo, vamos criar mais uma tela de cadastro, que sem dúvida é uma das principais portas de entrada de dados, o de Contas a Pagar. Nela, o usuário final poderá incluir, alterar e baixar os lançamentos de contas a pagar, tais como contas de água, luz, telefone, gastos com office-boy e moto-boy etc.

Para iniciarmos nosso artigo, veremos rapidamente o que foi criado no exemplo anterior:

·         Banco de dados Firebird 2.0;

·         Tela principal;

·         Cadastro de Clientes;

·         Cadastro de Fornecedores;

·         Cadastro de Contas Correntes;

·         Data Module principal;

Daremos continuidade ao curso desenvolvendo o cadastro de contas a pagar como mencionado anteriormente, para isso, precisamos alterar o banco de dados, incluindo mais uma tabela.

Alterando o banco de dados de exemplo

Inicie o IBExpert e vamos criar a tabela Contas_Pagar. Após conectar ao banco de dados no IBExpert, 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_Pagar”.

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 Contas_Pagar

CREATE TABLE CONTAS_PAGAR (

    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_PAGAR

ADD CONSTRAINT PK_CONTAS_PAGAR

PRIMARY KEY (CODIGO, CNPJ);

 

ALTER TABLE CONTAS_PAGAR

ADD CONSTRAINT FK_CONTAS_PAGAR_BANCO

FOREIGN KEY (BANCO, AGENCIA, CONTA)

REFERENCES CONTAS (BANCO, AGENCIA, CONTA)

ON UPDATE CASCADE;

 

ALTER TABLE CONTAS_PAGAR

ADD CONSTRAINT FK_CONTAS_PAGAR_CNPJ

FOREIGN KEY (CNPJ) REFERENCES FORNECEDORES (CNPJ)

ON UPDATE CASCADE;

 

Nota: O campo CODIGO é do tipo VarChar para armazenar o número da conta a pagar. No caso, pode ser o número de uma nota fiscal, número de referência da conta de água etc. Caso deseje, crie um campo CODIGO como auto-incremento da tabela e crie um campo NUMERO_DOCUMENTO, por exemplo.

 

O interessante e mais importante nesse momento é que criaremos chaves estrangeiras para um maior controle de integridade dos dados manipulados pelo sistema. Note que na nova tabela temos os campos CNPJ, Banco, Agencia e Conta. O primeiro campo deverá conter o mesmo conteúdo do campo de mesmo nome, da tabela Fornecedores, isso porque obrigaremos o usuário final a escolher um fornecedor válido para inclusão do lançamento de contas a pagar.

Também nesses mesmos moldes, será necessário que o usuário informe o banco, agência e conta que o lançamento foi pago no ato da baixa. Feito isso, teremos que atentar ao seguinte detalhe: e se houver a necessidade de alterar o CNPJ do fornecedor, embora chave primária, ou mesmo alterar o número da conta corrente? Como ficarão nossos lançamentos no contas a pagar?

Pensando nisso usaremos um recurso bastante útil no banco de dados: Foreing Key, ou, Chave Estrangeira. As chaves estrangeiras informam para o banco, que determinado campo está associado a outro campo de outra tabela. Sendo assim, toda vez que um registro origem é alterado ou apagado, os mesmo são refletidos nas tabelas que contém essas chaves estrangeiras, mantendo a integridade dos dados.

A criação de chaves estrangeiras no banco é muito simples. Após criada a tabela Contas_Pagar, clique duas vezes nela e note que ao abrir, o IBExpert mostra algumas abas. Uma delas é a Constraints. Primeiramente criaremos uma chave primária para a base de dados usando a aba Primary Key (siga os passos a seguir, se não usou o código da Listagem 1).

Clique com o botão direito na área em branco e selecione New primary key. Em Contraint Name digite “PK_CONTAS_PAGAR”. Clique em On Field e na tela que se abre, selecione os campos Codigo e CNPJ movendo-os para a direita e depois clicando no “X” no canto esquerdo inferior da caixa de diálogo. Repita o nome do índice em Index Name e marque como Ascending em Index Sorting. Por fim clique no botão com o símbolo de um raio para confirmar a criação do índice primário.

Agora criaremos nossas chaves estrangeiras. Para isso, clique na aba Foreing Key e em seguida clique com o botão direito em uma área "

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?