gerenciador de transporte rodoviÁrio: software para emissÃo de conhecimento de transporte
TRANSCRIPT
FACULDADE ORÍGENES LESSA
FACOL
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
JOÃO MARCOS FAXINA LÚCIO FLÁVIO BOAVENTURA
MARCOS VASSOLÉR RODRIGO MARCOLINO
VÉRLEI RICARDO DA SILVA
GERENCIADOR DE TRANSPORTE RODOVIARIO:
SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE
TRANSPORTE
LENÇÓIS PAULISTA
2008
JOÃO MARCOS FAXINA LÚCIO FLÁVIO BOAVENTURA
MARCOS VASSOLÉR RODRIGO MARCOLINO
VÉRLEI RICARDO DA SILVA
GERENCIADOR DE TRANSPORTE RODOVIARIO:
SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE
TRANSPORTE
Trabalho de Conclusão de Curso apresentado como requisito às exigências do Curso de Sistemas de Informação para obtenção do grau de Bacharel.
Orientador: Prof. Mrs. João Paulo Papa
LENÇÓIS PAULISTA
2008
BANCA EXAMINADORA
_____________________________________________ Prof. Mrs. João Paulo Papa (FACOL)
_____________________________________________ Prof. Esp. Frederico José Camiloti Dallalana (FACOL)
_____________________________________________
Prof. Esp. José Francisco Nadaletto (FACOL)
Lençóis Paulista, 21 de Novembro de 2008.
Dedico este trabalho:
Aos meus pais, João e Helena Maria;
Aos meus inrmãos, Luis Gustavo e Daniel Henrique.
(João Marcos)
Dedico este trabalho:
Aos meus pais, Antonio e Aneilda;
Aos neus irmãos Luciano, Gustavo e Bruna;
A todos colegas de classe que nos acompanharam ou
por motivo maior ficaram pelo caminho nesses últimos
4 anos.
(Lucio)
Dedico este trabalho a memória de meu pai, Joaquim,
falecido em Fevereiro de 2007.
(Marcos)
Dedico ao meu Pai.
(Rodrigo)
Dedico este trabalho:
A minha esposa Janíana e aos meus filhos, Vérlei Filho
e Vitor Augusto.
(Vérlei)
Agradecemos ao nosso orientador João Paulo Papa, aos convidados da banca examinadora
e todos aqueles que nos ajudaram para o nosso crescimento pessoal e profissional.
Agradeço Deus, a minha família e aos meus colegas de grupo
pela confiança, apoio e dedicação na elaboração desse trabalho.
Agradeço em especial, todos os colegas de classes e professores, pois
nesses anos nos tornamos amigos e parceiros. (João Marcos)
Agradeço a Deus acima de tudo, a minha família, aos colegas
de grupo e de classe, aos amigos da escola da família que
participaram diretamente durante esses 4 anos e a todos que
acreditaram em nós. (Lucio Flávio)
Agradeço primeiro a Deus. Em segundo a minha mãe, Neuza,
por ser a minha maior incentivadora. Depois agradeço a minha
família, esposa e filhos, pela paciência e carinho demonstrados nesta
etapa de minha vida. Por último, agradeço os professores e amigos da
faculdade, em especial, Vérlei, Rodrigo, Lúcio e João, que estiveram
presentes comigo em todos os trabalhos em grupo deste curso,
inclusive neste último. (Marcos)
Agradeço primeiramente a Deus, em especial a minha Mãe que
me ajudou e apoiou todos esses anos de luta, a minha família, a
minha namorada Juliana que também sempre apoiou o sucesso deste
trabalho, aos meus parceiros João Marcos, Marcos Vassoler, Lucio
Flávio, Vérlei, que no decorrer desses anos, nos tornamos uma
família. (Rodrigo)
Agradeço a Deus por ter me iluminado durante a realização
deste trabalho, a minha família pelas horas que estive fora para
realização de pesquisas e desenvolvimento aos meus amigos João
Marcos, Rodrigo Marcolino, Lúcio Flávio e Marcos Vassoler pelos
quatro anos que passamos juntos desenvolvendo os trabalhos que nos
foram destinados sempre buscando fazer sempre o melhor. (Vérlei)
A experiência que não é convertida em conhecimento é apenas informação!
Denílson Alves
FAXINA, João Marcos; BOAVENTURA, Lucio Flavio; VASSOLÉR, Marcos; MARCOLINO, Rodrigo; SILVA, Vérlei Ricardo. Gerenciador de Transporte Rodoviário: Software para emissão de conhecimento de transporte. Lençóis Paulista, FACOL, 2008.
RESUMO
A logística tem a responsabilidade de gerenciar todos os processos que envolvem a aquisição, armazenamento, uso e transporte de materiais de uma empresa, a qual pode decidir assumir todo o seu processo ou terceirizá-lo. Um importante ramo da logística é o transporte rodoviário, o qual é responsável pelo transporte de cargas e produtos, sendo obrigatório, para toda empresa deste ramo, a emissão do documento denominado Conhecimento de Transporte Rodoviário e Cargas (CTRC). Existem diversas soluções para o ramo de transporte, desenvolvidas por inúmeras empresas de software, as quais apresentam características que não atendem a reais necessidades de certas empresas, ora por serem obsoletas em tecnologia outrora por não serem customizadas. Assim, o presente trabalho tem por objetivo a automação do processo de emissão do CTRC e o desenvolvimento de um sistema customizado para o gerenciamento do transporte rodoviário de cargas. A pesquisa descreve as etapas utilizadas para o desenvolvimento do software, sendo eles a apresentação do projeto, o levantamento de requisitos, diagrama de sistema, a codificação, os testes e a implantação. Como estudo de caso, será utilizado a empresa Adriano Zentil Polzin
ME, situada no município de Lençóis Paulista, São Paulo, a qual realiza, dentre outras áreas, o transporte rodoviário de cargas e demais produtos.
FAXINA, João Marcos; BOAVENTURA, Lucio Flavio; VASSOLÉR, Marcos; MARCOLINO, Rodrigo; SILVA, Vérlei Ricardo. Manager of Road Transport: Software for emission of transport knowledge. Lençóis Paulista, FACOL, 2008.
ABSTRACT
The logistics have the responsibility of managing all the processes that involve the acquisition, storage, using and transporting materials of a company, which can decide to assume all it s process or outsourse it. An important logistics branch is the road transport, which is responsible for the transport of loads and products, being obligatory, for every company of this branch, the document emission denominated Knowledge of Road Transport and Loads (CTRC). Several solutions exist for the transport branch, developed by countless software companies, which present characteristics that don't assist to real needs of certain companies, or for being obsolete in technology formerly or being not customize. Like this, the present work has for objective the process automation of CTRC emission and the evelopment of a system customized for road transport of loads administration. The research describes the stages used for the software development, being them the project presentation , requirements rising, the system diagram, the code, the tests and the implantation. As studied, the Adriano Zentil Polzin - ME company will be used, located in Lençóis Paulista, São Paulo, which accomplishes, among other areas, the road transport of loads and other products.
LISTA DE ILUSTRAÇÕES
FIGURA I
Camadas de Software no Modelo .NET .............................................................. 31
FIGURA II
Formulário de inicialização do Programa .......................................................... 46
FIGURA III
Formulário Principal ......................................................................................... 47
FIGURA IV
Formulário Estado Aba Registro ...................................................................... 48
FIGURA V
Formulário Estado Aba Editar ........................................................................... 49
FIGURA VI
Formulário Estado Aba Filtros ......................................................................... 49
FIGURA VII
Formulário Estado Aba Relatório .................................................................... 50
FIGURA VIII
Janela de Visualização do Relatório dos Estados .......................................... 51
FIGURA IX
Configuração do driver ODBC ......................................................................... 52
FIGURA X
Dados da configuração do driver ODBC ........................................................... 52
LISTA DE TABELAS
TABELA I
Participantes do Projeto ...................................................................................... 26
TABELA II
Lista de Materiais .............................................................................................. 26
TABELA III
Modelo de Levantamento de Requisitos do Sistema ....................................... 27
TABELA IV
Requisitos de Negócio ..................................................................................... 27
TABELA V
Requisitos de Hardware e Software .................................................................. 28
TABELA VI
Requisitos de Hardware e Software ................................................................. 29
TABELA VII
Cardinalidades ................................................................................................ 30
LISTA DE ABREBIATURAS E SIGLAS
ASCII American Standard Code for Information Interchange (Código de Padrão
Americano para o Intercâmbio de Informação)
CIF Coast Insurance Freight (Frete por Conta do destinatário)
CNH Carteira Nacional de Habilitação
DBF Data Base File (Arquivo de Banco de Dados)
FOB Free On Board (Frete por conta do remetente)
GUI Grapfical User Interface (Interface Gráfica do Usuário)
IRRF Imposto de Renda Retido na Fonte
ICMS Imposto sobre Circulação de Mercadorias e Serviços
IP Internet Protocol (Protocolo de Internet)
MRP Material Requirements Planning (Planejamento das Necessidades de Materiais)
ODBC Open Data Base Connectivity (Conectividade Aberta do Banco de Dados)
POO Programação Orientada a Objetos
PL Procedural Language (Idioma Processual)
SCM Supply Chain Management (Administração de Cadeia Ordenada)
SGBD Sistema Gerenciador de Banco de Dados
SQL Structured Query Language (Idioma de Questão Estruturada)
TI Técnologia da Informação
UML Unified Modeling Language (Idioma Modelado Unificado)
SUMÁRIO
INTRODUÇÃO ....................................................................................................................... 14
I
TRANSPORTE RODOVIÁRIO NO BRASIL, SOFTWARES DE LOGÍSTICA
PARA EMPRESAS DE TRANSPORTE E AS FERRAMENTAS PARA O
DESENVOLVIMENTO DE UM SISTEMA ........................................................................ 17
1
O TRANSPORTE RODOVIÁRIO ................................................................................ 17 2
SOFTWARES DE TRANSPORTE ................................................................................ 18 3
ENGENHARIA DE SOFTWARE ................................................................................. 20 4
FERRAMENTAS DE DESENVOLVIMENTO ............................................................ 22 II
DESENVOLVIMENTO DO SOFTWARE GERENCIADOR DE TRANSPORTE
RODOVIÁRIO ........................................................................................................................ 25
1
IDENTIFICAÇÃO DO PROJETO, LEVANTAMENTO DE REQUISITOS E DIAGRAMAÇÃO DO SISTEMA ....................................................................................... 25
1.1
Identificação do projeto ........................................................................................... 25 1.2
Levantamento de requisitos ..................................................................................... 26 1.3
Diagramação do sistema .......................................................................................... 28 1.3.1
DER .................................................................................................................. 28 1.3.2
DFD .................................................................................................................. 28 2
IMPLEMENTAÇÃO E TESTES ................................................................................... 30 2.1
Implementação ......................................................................................................... 30 2.1.1 - Banco de Dados ................................................................................................. 31 2.1.2
Classes .............................................................................................................. 42 2.1.3
Interface homem-máquina ................................................................................ 45 2.2
Testes de Software ................................................................................................... 54 2.2.1
Por que testar e validar o Software? ................................................................. 54 2.2.2
Testes funcionais do Software SGTR versão 1.0 ............................................. 55 2.2.3
Regras de Negócios .......................................................................................... 55 3
Implantação do Sistema SGTR versão 1.0 ..................................................................... 56 3.1
Avaliação e Adequação Física do Ambiente ........................................................... 57 3.2
Familiarização e treinamento dos usuários .............................................................. 57 3.3
Finalização e Análise Críticas da Implantação ........................................................ 58 CONCLUSÃO ......................................................................................................................... 59
REFERENCIAL ..................................................................................................................... 66
ANEXO A
Ordem de Carregamento ................................................................................. 70
ANEXO B
Nota CTRC ........................................................................................................ 71
APÊNDICE A
Cronograma do Projeto ............................................................................. 72
APÊNDICE B
Levantamento de requisitos ....................................................................... 73
APÊNDICE C
Tabelas do Banco de Dados ....................................................................... 78
APÊNDICE D
DFD (Dados Faturista/Administrador) .................................................... 84
APÊNDICE E
DFD do Usuário .......................................................................................... 85
APÊNDICE F
DFD do CTRC ............................................................................................ 86
APÊNDICE G
Diagrama de Entidade e Relacionamento (DER) ................................... 87
APÊNDICE H
Manual do Sistema CTRC ........................................................................ 88
14
INTRODUÇÃO
Inúmeras são as definições relacionadas à palavra empresa. Para Sandroni (2002),
empresa é uma organização destinada a produção e/ou comercialização de bens e serviço,
tendo como objetivo o lucro (SANDRONI, 2002, 203), e para ele elas podem ser distintas
em empresas agriculas, industriais, comerciais e financeiras. A administração de empresas,
contudo, pode ser definida como um conjunto de atividades dirigidas a utilização eficiente e
eficaz dos recursos, no sentido de alcançar um ou mais objetivos ou metas organizacionais
(SILVA, 2001, 6).
Dentre os vários ramos de bens ou serviços que uma empresa pode oferecer encontra-
se a logística, a qual segundo Barbosa e Rabaça (2001), gerência todas as necessidades de
uma empresa, provendo a mesma de recursos, equipamentos e informações. Ainda segundo
eles, a logística em uma empresa envolve as atividades de desenvolvimento, aquisição,
construção, instalação, provisão, armazenamento, transporte, distribuição, [ ]
movimentação, informação, controle (BARBOSA & RABAÇA, 2001, 440) entre outras.
Segundo a Enciclopédia Barsa (2000), a logística na antiguidade e na idade média,
ficava sob tutela dos militares, tendo como principal exemplo os romanos, os quais
necessitavam mover grandes contingentes de homens e recursos, ora para expandir o seu
território outrora para defender suas fronteiras. Para Mira (2004), foi após a Segunda Guerra
Mundial, devido a necessidade de reconstruir as cidades devastadas pela mesma, foi que a
logística, deixou de ser uma estratégia somente militar e passou a fazer parte da estratégia das
empresas. Desta forma, segundo ele, a área de atuação da logística sofreu grandes
transformações, sendo utilizada, principalmente, como ferramenta de satisfação dos clientes
nas décadas seguintes.
Neste período, o gerenciamento dos processos de logística eram executados
manualmente. Toda requisição de reposição e retirada de materiais, bem como a descrição dos
produtos e sua quantidade disponível, eram anotadas em fichas e guardadas em armários. Para
o transporte, todos os dados referentes a transportadores, veículos e clientes eram também
armazenados nestas fichas. Emissões de documentos de qualquer natureza eram feitas em
15
máquinas de escrever ou a mão, processo este que, além de ser lento, não era seguro.
Entretanto, segundo O Brien (2003), com o advento de técnicas de tecnologia de informação
(TI) nas empresas, os processos relacionados a elas, inclusive na área de logística, foram
totalmente modificados e automatizados.
Posteriormente, surgiu o conceito de Material Requirements Planning (MRP), a qual
pode ser definido como uma técnica que permite determinar as necessidades de compras dos
materiais que serão utilizados na fabricação de um certo produto (MARTINS & ALT,
2002,97). Martins e Alt (2002) destacam também o começo do uso da tecnologia para auxiliar
no controle do MRP. A partir da década de 80, a logística passou a ser impulsionada pela
globalização, na qual as empresas passaram a competir em escala mundial. O MRP evoluiu
para o Supply Chain Managment (SCM), conceito administrativo que integra o
gerenciamento da cadeia de suprimentos (O BRIEN,2003,198), através da utilização da TI
para gerenciar a logística de um modo mais eficiente. Para Mira (2004), a introdução do SCM
trouxe um novo impulso a logística, pois ela deixou de ser tratada como um setor a parte, e
passou a trabalhar integrada com todos os setores de uma empresa. Desta forma, as empresas
puderam, segundo O Brien (2003), cortar custos, aumentar o lucro, melhorar seu desempenho
junto a clientes e fornecedores, além de agregar valor aos seus serviços.
Contudo, para muitas empresas segundo Dias (1993), o ato de gerenciar todos os
processos de logística pode ser trabalhoso e muito custoso. Para ele, muitas empresas escolhe
terceirizar certas áreas da logística, entre elas, o transporte, seja pelo modal marítimo,
ferroviária, aéreo ou rodoviário, pois adquirir e manter uma frota própria pode exigir da
empresa um grande investimento. É no ramo de transporte rodoviário que se encontra a
Adriano Zentil Polzin
ME, empresa criada em 2007 no município de Lençóis Paulista,
interior do Estado de São Paulo, a qual é o objeto de estudo da presente pesquisa.
Segundo um estudo previamente executado, a Adriano Zentil Polzin
ME não possui
no momento nenhum software para gerenciamento de seu processo de logística. Embora
existam diversos softwares para o gerenciamento do transporte rodoviário, tais como o
Cargas, o Tecnovia Smal Bussness, o CTRC, o Controle de Transportador 3.0, o CTMS e o
Active Trans, os mesmos têm como principal problema não atender a todas as necessidades da
empresa, ou por não atenderem a certos requisitos, ou por excesso de módulos no software.
Assim, existe atualmente a necessidade desta empresa de um software de controle de
transporte rodoviário customizado, ou seja, um software que seja implementado sob medida
para ela. Desta forma, o software a ser desenvolvido propiciará à empresa um controle sobre
todo o serviço de transporte prestado por ela, permitindo que a mesma adquira informações
16
que a auxiliem em suas estratégias de negócio, permitindo a mesma uma maior
competitividade no mercado.
O objetivo principal desta pesquisa é desenvolver um software gerenciador de
transporte rodoviário que atenda aos requisitos levantados na empresa. Este software tem que
ser desenvolvido em um ambiente gráfico (ambiente Windows®), utilizando componentes
visuais (formulários, botões, caixas de textos, caixas de mensagens, etc.) empregados
atualmente em softwares, onde o usuário, através de módulos (telas) poderá inserir, atualizar,
excluir, selecionar e imprimir dados localizados na base de dados. O software tem que ser
codificado em camadas, separando a parte do cliente, do negócio e do servidor de dados, para
facilitar a compreensão do código, a sua manutenção e o seu reaproveitamento. O programa
tem que ser capaz de gerenciar dados de pessoas físicas e jurídicas, veículos, semi-reboques,
produtos, pedidos, programações de retiradas e ter que emitir as ordens de coleta e,
principalmente, o Conhecimento de Transporte Rodoviário e Cargas (CTRC).
A presente pesquisa terá dois capítulos. O capítulo I aborda a importância do
transporte rodoviário no Brasil, e como a empresa pretende atuar neste mercado. Também são
citados diversos softwares que apresentam características semelhantes ao presente software da
pesquisa. Este capítulo também aborda a Engenharia de Software e seus processos que
auxiliam os desenvolvedores de software. Nele também é descrito as ferramentas necessárias
para codificar o software - o Visual Basic.Net (VB.Net) e o PostgreSQL - além da
importância do Sistema Gerenciador de Banco de Dados (SGBD) e da linguagem SQL
(Structured Query Language).
O capítulo II aborda o desenvolvimento do software. É apresentado o projeto, onde é
definido o que é o sistema, quais ferramentas serão necessárias para seu desenvolvimento, os
participantes e todas as etapas do mesmo. O levantamento de requisitos apresenta os dados
necessários para o funcionamento do software colhidos junto à empresa, assim também como
as regras de negócio que regem o sistema. O Diagrama de Entidade e Relacionamento (DE)
demonstra todas as tabelas que compõem o sistema, com seus campos, tipos de dados,
restrições e relacionamento. O Diagrama de Fluxo de Dados (DFD) apresenta uma visão em
alto nível do fluxo dos dados pelo sistema, com um DFD mais pormenorizado do módulo do
CTRC. A implementação explica a codificação do sistema, abordando a divisão do sistema
em camadas através das funções do banco (camada servidor), das classes (camada de
negócios) e dos módulos (camada cliente). Os testes descrevem como o programa foi testado.
A implantação aborda o sistema funcionando na empresa, como a entrega do manual aos
responsáveis pelo software na mesma.
17
I
TRANSPORTE RODOVIÁRIO NO BRASIL, SOFTWARES DE LOGÍSTICA
PARA EMPRESAS DE TRANSPORTE E AS FERRAMENTAS PARA O
DESENVOLVIMENTO DE UM SISTEMA
Este capítulo discute a importância do transporte rodoviário no Brasil, abordando
como ele detém o monopólio dos transportes no país. Ele também aponta como a empresa
pretende atuar neste ramo, abordando a sua estratégia. Aqui também se apresenta alguns
softwares que gerenciam o setor de transporte, descrevendo algumas de suas características.
Os passos da Engenharia de Software para o desenvolvimento de um software também estão
descritos neste capítulo, assim também como a ferramenta de desenvolvimento Visual
Basic.Net e o Sistema Gerenciador de Banco de Dados PostgreSQL.
1
O TRANSPORTE RODOVIÁRIO
O sistema de distribuição de produtos de uma empresa sempre foi importante e
complexo, pois o transporte é um considerável elemento de custo em toda atividade industrial
e comercial (DIAS, 1993, 319). É por este custo, segundo Dias (1993), que as empresas
discutem a forma de contratar um serviço de transporte, seja pelo sistema CIF ou pelo sistema
FOB. No primeiro deles, o responsável pelo frete é o próprio fornecedor, sendo ele também
que cuidará da escolha do meio de transporte (modal) e do cumprimento dos prazos de
entrega. O segundo transfere esta responsabilidade para o comprador, e segundo Dias (1993)
tem sido o sistema mais negociado entre as empresas.
Dias (1993) discute também todos os tipos de transporte (ferroviário, marítimo, aéreo),
mas destaca principalmente o transporte pelo modal rodoviário, que segundo ele responde por
70% a 80% de todas as cargas movimentadas no Brasil. Ainda segundo Dias (1993), apesar
dos investimentos nos outros modais, o meio rodoviário ainda continuará sendo o mais
utilizado no país. Ele também destaca a grande quantidade de empresas prestadoras deste
serviço, aliada a uma das maiores frotas de veículos do planeta. O fato do transporte pelo
modal rodoviário ser a maioria no Brasil deve-se a quatro principais fatores:
18
- À política do governo que privilegiou a construção de rodovias, que praticamente
interligam o país;
- À implantação e grande crescimento das indústrias automobilísticas no país;
- À criação do parque nacional de refinação de petróleo;
- À grandeza do território nacional, deixando a maioria dos municípios sem cobertura
de outros modais (ferroviário e marítimo principalmente).
Dias (1993) também aponta as formas como as empresas devem conduzir os seus
serviços de transporte. Para ele diferentes tipos de produtos, conforme a quantidade em que
são produzidos pode determinar se uma empresa assume o transporte de seus produtos com
uma frota própria, ou como uma frota terceirizada, ou se repassa todo o transporte a uma
empresa especializada.
É para se encaixar neste mercado da terceirização do transporte, que a Adriano Zentil
Polzin
ME, tem com um de seus objetivos de negócio, o transporte rodoviário de produtos.
Como sendo uma empresa de pequeno porte e com poucos recursos, ela pretende adotar a
estratégia de ser uma empresa prestadora de serviço valendo-se principalmente, dos serviços
prestados por veículos autônomos (proprietários de um único veículo e que trabalham com
este veículo), que segundo Dias (1993), respondem por mais da metade da frota nacional.
Para poder prestar este serviço, toda empresa tem que emitir um documento fiscal
chamado Conhecimento de Transporte Rodoviário e Cargas, o CTRC. A emissão deste
documento é regulamentada pela lei nº 11442, de 05 de janeiro de 2007, especificada em seu
artigo 6º1 com o seguinte texto: O transporte rodoviário de cargas será efetuado sob contrato
ou conhecimento de transporte, que deverá conter informações para a completa identificação
das partes e dos serviços e de natureza fiscal . Para emitir o CTRC e gerenciar todas as
informações necessárias para este fim, a empresa necessita de um software que controle todos
os processos relacionados ao transporte rodoviário de produtos.
2
SOFTWARES DE TRANSPORTE
Existem, atualmente, diversos softwares de gerenciamento de transporte. A Matheus &
Cia. Ltda. e a Zanlorenssi & Cia. Ltda. utilizam a mais de quinze anos o programa Cargas
Controle Emissão de Conhecimento ECO-v40, desenvolvido pela empresa Teorema
Informática. O software contém muitos módulos que a empresa necessita, porém possui
1Disponível em: http://www.planalto.gov.br/CCIVIL/_Ato2007-2010/2007/Lei/L11442.htm, acessado em 10 de Setembro de 2008
19
algumas desvantagens. Entre elas podemos citar o fato de o software ser produzido no início
da década de 90, sendo desenvolvido para o sistema operacional MS-DOS, antecessor do
Microsoft Windows. O MS-DOS tem como principais pontos negativos utilizar linhas de
comando (dificulta interação com o usuário) e ser monoprogramado (executa apenas um
programa por vez). O banco de dados utilizado por este programa é o Data Base File (DBF),
antigo Sistema Gerenciador de Banco de Dados (SGBD) do Dbase, obsoleto atualmente.
Além disto, o software não possui alguns módulos necessários para a empresa, tais como o
controle de pedidos de retirada e programação de retirada, além de seu cadastro de veículos
não permitir a incorporação dos novos tipos que estão sendo lançados atualmente.
Desenvolvido pela Tecnovia Software, o Tecnovia Smal Business, é um software que
agrega uma grande quantidade de ferramentas. Entre as principais estão tabelas que permitem
cálculos de frete, controle de vendas, controle de coleta e entrega de produtos, o controle de
veículos e de motoristas, tabelas de ocorrências, tabela de faturamento e a emissão do CTRC.
A Enter & Plug Informática desenvolve o CTRC, software que têm como principal
finalidade controlar a emissão do Conhecimento de Transporte Rodoviário e Cargas, sendo
focado principalmente em empresas que possuam várias filiais. A Talentum oferece módulos
para o controle de multas e CNH, controle de frota, manutenção entre outros, embora seu
objetivo principal seja empresas de transporte de passageiros.
A Bsoftsistemas desenvolve o Controle de Transportadora 3.00. Este software possui
diversos módulos, entre os principais podem ser citados o cadastro de veículos, motoristas,
clientes, rotas, funcionários, controle bancário, fretes, despesas, controle de manutenção,
financeiro, emissão de ordem de coleta e do CTRC.
A Trust Consultores e Associados
IT Resource também oferece soluções para o setor
de transporte. O seu software, o CTMS, é especializado em gerenciar custos de transporte e
foi desenvolvido para ser utilizado através de um servidor pela Internet. O Active Trans,
desenvolvido pela Active System, oferece ferramentas para o controle de vendas,
faturamento, cadastro de motoristas, contas a pagar, segurança, emissão do CTRC, dentre
outras.
Como pode ser notado, existem muitos softwares para a área de transporte de
materiais. Contudo, alguns não são focados na área de interesse da empresa, objeto de estude
do presente trabalho, e outros possuem ferramentas e módulos que não são necessários para
ela, a qual deseja um software especializado e que atenda somente os requisitos determinados
por ela. Outro fator importante e que deve ser levado em consideração é o custo, pois todos os
softwares citados anteriormente são pagos. Segundo a Adriano Zentil Polzin
ME, outras
20
duas desvantagens destes programas são a sua manutenção e atualização. Para a empresa, é
importante que o desenvolvedor do seu software esteja próximo, permitindo que qualquer
manutenção e/ou atualização do software seja realizada de forma mais rápida possível.
Os requisitos principais levantados pela pesquisa junto à empresa que um software de
gerenciamento de transporte rodoviário deve possuir são, dentre outros, o cadastro e controle
de níveis de usuário e o cadastro de pessoas físicas e jurídicas. O sistema deve também
contemplar o cadastro de vários tipos de veículos e semi-reboques, de transportadores e dados
para a seguradora. Com relação ao aporte financeiro, o software deve cadastrar a tabela do
IRRF (Imposto de Renda Retido na Fonte) e os códigos fiscais, cadastrar produtos, pedidos,
programação e ordem de coleta e, finalmente, emitir o CTRC. Outros objetivos secundários,
mas não menos importantes, é o desenvolvimento do software em ambiente gráfico que
permita o mesmo ser utilizado em um sistema operacional multiusuário e o emprego de um
sistema de banco de dados mais atual. Pretende-se, assim, que o software customizado seja de
fundamental importância para o crescimento da empresa no mercado atual de transportes
rodoviário de produtos.
3
ENGENHARIA DE SOFTWARE
Para o desenvolvimento de um software, torna-se necessária a compreensão da
necessidade das informações para a competitividade da empresa, tornando essencial o
tratamento dado a elas pela gestão da informação, a qual pode ser vista, segundo Pereira2
como um conjunto estruturado de atividades que incluem o modo como as empresas obtêm,
distribuem e usam a informação e o conhecimento . A tecnologia entra como uma ferramenta
para implementar este processo, garantindo que a informação chegue a quem necessite.
Visando uma padronização nas etapas envolvidas no desenvolvimento de um software, várias
determinações foram criadas e são, atualmente, regidas pela engenharia de software, a qual
propicia todas as metodologias para um desenvolvimento de software mais seguro e coeso
com o projeto.
Segundo Fernandes3, a área de engenharia engloba um conjunto de profissões que
possuem características de trabalho em comum . Assim, engenharia de software é um dos
ramos da engenharia dedicados ao auxílio de desenvolvimento de software baseado em certos
padrões e normas. Pfleeger (2004) afirma que a função dos engenheiros de software é utilizar
2Disponível em http://www.fae.edu/intelligentia/opiniao/lerOpiniao.asp?lngIdArtigo=7148&lngIdArea=194, acessado em 10 de Setembro de 2008. 3Disponível em http://www.cic.unb.br/~jhcf/MyBooks/iess/index.html, acessado em 10 de setembro de 2008.
21
seu conhecimento em computação para resolver problemas, sendo estes definidos em torno de
um computador ou sistema computacional. Os principais processos destacados pela
engenharia de software para o desenvolvimento de programas computacionais sãos: a
definição do projeto, análise de requisitos, desenho, implementação, testes e implantação.
Segundo Filho (2000), projeto tem uma data de início e fim, uma equipe [...] e outros
recursos (FILHO, 2000, 13). Algumas características de um projeto são ser, geralmente,
temporário (datas de início e fim pré-estabelecidas), planejado, desenvolvido em etapas e
possuir recursos limitados. Posteriormente ao projeto, inicia-se a parte de maior contato com a
empresa, o levantamento de requisitos, o qual corresponde ao segundo processo.
Segundo Kern4, Requisito é algo que um produto deve fazer, ou uma qualidade que
deve ter . Para Macoratti5 (2006), requisitos expressam as características e restrições do
produto de software do ponto de vista de satisfação das necessidades do usuário [...] sendo a
parte mais crítica e propensa a erros no desenvolvimento de software . Macoratti (2006)
especifica ainda dois tipos de requisitos, funcionais e não funcionais. O primeiro deles
corresponde a tudo o que o sistema é capaz de fazer, ou seja, processos, eventos ou cálculos.
Já requisitos não funcionais compreendem aquilo que o sistema poderia ter, mas não influem
em seu funcionamento. Segundo Filho (2000), existem outros dois importantes tipos de
requisitos, os quais compreendem os requisitos de hardware e de software. Os requisitos de
hardware envolvem toda a parte física que a empresa deve possuir, bem como equipamentos e
infra-estrutura necessária para o desenvolvimento do projeto. Requisitos de software
descrevem o que o software propriamente dito precisa ter para ser funcional e outros
necessários para sua implantação na empresa (Sistema Operacional, Anti Vírus, etc.). Após a
fase de levantamento de requisitos, inicia-se o terceiro processo, responsável pela
diagramação do software através de ferramentas de desenho.
Segundo Filho (2000), é nesta fase em que todas as funções do software são ilustradas
em forma de fluxogramas e/ou outros tipos de diagramas. O desenho propicia uma visão de
alto nível do funcionamento do software, auxiliando também os programadores na sua
codificação, fornecendo uma visão global do sistema e também uma visão particular de cada
módulo. O desenho também tem a função de auxiliar na busca por erros, além de evitar que
funções sejam duplicadas dentro do software. Atualmente, existem muitas formas para
4Disponível em http://209.85.165.104/search?q=cache:t2jGrkQndi4J:webmail.faac.unesp.br/~paula/Paula/requisitos.doc+requisitos&hl=pt-BR&ct=clnk&cd=2&gl=br&lr=lang_pt, acessado em: 10 de Setembro de 2008. 5Disponível em http://imasters.uol.com.br/artigo/3860/des_de_software/a_gestao_de_requisitos/, acessado em 10 de Setembro de 2008.
22
diagramar um software. Entre as principais, Filho (2000) destaca o Diagrama de Entidade e
Relacionamento (DER), que mostra a estrutura do banco de dados e suas relações, o
Diagrama de Fluxo de Dados (DFD) que fornece uma visão em alto nível do fluxo dos dados
pelo sistema, e a Linguagem de Modelagem Unificada (Unified Modeling Language ou
UML), a qual é capaz de unir o DER e o DFD em um só desenho.
A implementação é o quarto processo na etapa no desenvolvimento de software,
compreendendo a etapa de codificação do sistema. Para Filho (2000), é nesta fase em que
todas as funções que manipulam os registros no banco de dados são construídas, como todas
as classes necessárias para o correto funcionamento do sistema. É nesta etapa também que a
interface gráfica, responsável pela interação do usuário com o programa é construída, sendo
dividida em módulos para melhor estruturar o programa.
Finalizado o desenvolvimento, iniciam-se os procedimentos de testes, sendo estes o
quinto processo, os quais têm a função de procurar falhas no sistema através da execução de
seus módulos. Um dos métodos comumente utilizados é submeter ao sistema uma
determinada entrada e verificar se a saída foi condizente com a esperada que o sistema
realizasse. Pfleeger (2004) pontua diversos tipos de testes, tais como o teste de unidade, que
visa encontrar defeitos nos componentes de software; o teste de integração, o qual verifica a
integração do sistema e finalmente o teste geral do sistema, o qual verifica sua funcionalidade
em uma aplicação real.
Finalmente, o sexto e último processo compreende à implantação do sistema. Pfleeger
(2004) entende a implantação não como somente a entrega de um produto a um cliente, mas
sim como o momento que o desenvolvedor ajuda os usuários a entenderem e a se
familiarizarem com o produto (PFLEEGER, 2004, 123). Nesta fase, um treinamento aos
usuários sobre a correta utilização do sistema é aplicado e a sua documentação é entregue aos
responsáveis pelo mesmo. Um manual de consulta ao usuário também deve ser fornecido.
Vale ressaltar que a engenharia de software trata ainda dos processos que vão além da
implantação do sistema para um cliente, abordando ainda a manutenção do mesmo e suas
possíveis atualizações.
4
FERRAMENTAS DE DESENVOLVIMENTO
Para implementar um software é necessário aplicar o uso de ferramentas que
possibilitam a transformação de um problema em solução. Entre elas, podemos citar os
softwares de desenvolvimento e o Sistema Gerenciador de Banco de Dados (SGBD),
23
responsável pelo gerenciamento da base de dados.
Existem diversos softwares que podem ser aplicados na codificação de um sistema.
Entre eles podemos-se citar o Delphi, desenvolvido pela Borland, o Netbeans, desenvolvido
pela comunidade Java e o Visual Basic.Net (VB.Net) da Microsoft. Segundo Cavalcanti
(2006), o VB.Net pode ser utilizado para desenvolver aplicativos para desktop e internet, além
de produzir softwares multiplataformas, ou seja, aplicativos para aparelhos móveis, como o
Palm Top, o Pocket PC e o Smartphone. Outra característica do VB.Net é sua biblioteca
ADO.NET, a qual permite controlar a conexão e acesso a diferentes banco de dados,
melhorando a performance de acesso ao banco. O VB.Net utiliza conceitos de Programação
Orientada a Objetos (POO) que, segundo Winblad (1993), as quais definem classes, métodos,
herança, sobrecarga, polimorfismo, encapsulamento e persistência. Para Cavalcanti (2006), no
VB.Net o tempo todo estamos lidando com classes, objetos, métodos, propriedades e
eventos (CAVALCANTI, 2006, 11).
O VB.Net oferece também suporte a diferentes SGBDs, tais como o Oracle 10g da
Oracle, o SQL Server da Microsoft e o DB2 da IBM, todos comerciais, e também ao MySql e
o PostgreSQL, bancos de código aberto e licença gratuita. O SGBD tem um importante papel
em um projeto de software, pois é ele que armazena o banco de dados do sistema, no qual
todas as informações são armazenadas e depois recuperadas. Segundo Elmasri e Navathe
(2005), banco de dados é uma coleção de dados relacionados. Os dados são fatos que podem
ser gravados e que possuem um significado implícito (ELMASRI & NAVATHE, 2005, 4).
Visto que representam um papel crítico onde existe a necessidade de uso de computadores,
existem diversas formas de banco de dados, tais como: bancos multimídias para armazenar
figuras, vídeos e sons; bancos de informações geográficas, para mapas, dados do tempo e
imagens de satélite; os data warehouses, utilizadas por empresas para grandes quantidades de
informações e os banco de dados ativos e real time, utilizados no controle de processos
industriais e de produção.
Um SGBD pode conter diversos bancos de dados e um sistema de grande porte pode
conter vários SGBDs trabalhando em conjunto, localizados em uma central de dados, o data
warehouse. Para a comunicação entre diferentes bancos de dados armazenados em diferentes
SGBDs, existe uma linguagem universal, a SQL (Structured Query Language). É através dela
que empresas com diferentes bancos de dados conseguem extrair informações e transformá-
las em uma única base de dados. A SQL é a base para uma linguagem procedimental, a
PL/SQL. (Procedural Language/ SQL) que segundo Urman (2002), utiliza um ou mais
comandos SQL dentro um bloco de instruções para acessar dados no banco, atuando de forma
24
integrada como o banco de dados para ser processada de forma mais rápida e eficiente.
Esta linguagem permite a codificação das funções que manipulam informações na
base de dados, diretamente na camada do servidor (banco de dados), melhorando assim o
desempenho do aplicativo. Isto é possível, segundo Urman (2002), graças aos vários recursos
da PL/SQL, entre eles posicionar um ou mais comandos SQL em estrutura de blocos, permitir
o tratamento de erros, manipular variáveis e tipos de dados, oferecer estruturas condicionais,
laços de execução, cursores para simplificar a consulta de dados, montagem de procedimentos
e funções e a construção de pacotes, que permitem agrupar diversos procedimentos e funções
em um único bloco.
Segundo Niederauer (2004), dentre os vários SGBDs existentes atualmente, podemos
citar o PostgreSQL, o qual é um SGBD [...] relacional e orientado a objetos [...], que oferece
suporte a linguagem SQL [...] além de outras características modernas (NIEDERAUER,
2004, 5). O PostgreSql tem suporte a diversos tipos de dados, como texto, numero, data e
monetário, dentre outros, podendo implementar através da PlpgSQL (linguagem procedural
do PostgreSQL) blocos de instruções para manipulação da base de dados, através do uso de
funções e procedimentos, gatilhos para regras de negócios e funções que realizam consultas
mais complexas. O PostgreSql também administra as regras de integridade, visando garantir o
relacionamento e a integridade das tabelas armazenadas no banco, sendo capaz de suportar
grandes bases de dados, provendo segurança e confiança ao sistema. Ele também controla os
níveis de usuários e os privilégios que cada um possui para acessar a base de dados. Para
Niederauer (2004), o PostgreSQL é capaz de realizar o mesmo trabalho que os grandes
SGBDs comerciais realizam, com a vantagem de possuir uma licença gratuita.
25
II
DESENVOLVIMENTO DO SOFTWARE GERENCIADOR DE TRANSPORTE
RODOVIÁRIO
Este capítulo trata do desenvolvimento do software, o qual será realizado em três
etapas: a primeira consiste na identificação do projeto, levantamento de requisitos e
diagramação do sistema, a segunda etapa consiste na implementação, codificação e testes do
sistema e, finalmente, a terceira etapa consiste na implantação e avaliação do software pela
empresa.
1
IDENTIFICAÇÃO DO PROJETO, LEVANTAMENTO DE REQUISITOS E
DIAGRAMAÇÃO DO SISTEMA
A identificação do projeto consiste em abordar o tema, os envolvidos, os materiais
necessários e o tempo de duração. O levantamento de requisitos apresenta os requisitos de
dados levantados na empresa, os requisitos de negócios para o sistema e o requisito de
hardware para a implantação do mesmo. A diagramação apresenta o desenho do sistema,
através do DFD e do DER.
1.1
Identificação do projeto
A identificação do projeto corresponde, dentre outros objetivos, a identifição do tema
bem como a sua metodologia de desenvolvimento, determinando também seus prazos de
início e finalização. Assim, forão realizadas reuniões com os representantes da empresa
contratante do serviço, a Adriano Zentil Polzin
ME, com o intuito de definir os prazos do
projeto. (ver Apendice A
Cronograma do Projeto).
Segundo Pfleeger (2004), é extremamente importante nesta etapa definir também os
participantes do projeto (ver Tabela I
Participantes do Projeto), ou seja, o cliente, os
desenvolvedores e os usuários. O cliente é caracterizado pela entidade que solicitou a
aquisição de um software e detém os recursos; o desenvolvedor é aquele que implementará o
produto, também responsável por definir os responsáveis pelo levantamento de requisitos,
26
diagramação e testes. Finalmente, temos o usuário, isto é, aquele que realmente utilizará o
software.
Participantes do projeto Nomes Funções
Adriano Polzin Cliente Emílio Polzin Usuário João Marcos Faxina Levantamento de Requisitos Vérlei Ricardo da Silva Diagramação Marcos Vassolér Codificação e Implementação Lucio Flávio Boaventura Testes Rodrigo Marcolino Documentação/Implantação
TABELA I
Participantes do Projeto
A lista de materiais apresenta as necessidades para que o projeto seja realizado,
entendendo que a lista identifica os materiais de hardware, software e meios que foram
utilizados para produção do sistema. A tabela a seguir consta os materiais que foram
utilizados. (ver Tabela II
Lista de Materiais).
Lista de Materiais Dois computados desktop s Dois notebooks Software Visual Studio.Net 2005 Express Banco de Dados PostGreSQL Uma impressora matricial para testes de impressão do sistema Uma impressora jato de tinta Um automóvel para deslocamento até a empresa do cliente
TABELA II
Lista de Materiais
1.2
Levantamento de requisitos
No período de 21/04/2008 a 28/04/2008, em reunião com um representante da
empresa Adriano Polzin
ME, foi realizado um levantamento das necessidades do sistema.
Foram levantados os requisitos de dados que o sistema precisa gerenciar os requisitos das
regras de negócio que a empresa adota e os requisitos de hardware e software que determinam
um equipamento padrão que a empresa precisa para poder instalar e usufruir do sistema.
A tabela seguinte (ver Tabela III
Modelo de Levantamento de Requisitos) apresenta
o modelo que foi utilizado para o levantamento dos requisitos de dados levantados na
empresa, sendo que, foram considerados como dados a serem levantados: Nome da Tabela,
Nomes do Campo, Tipos de Dados, Obrigatoriedade e Restrições. Com esse modelo foi
27
gerado uma listagem de dados que deram origem as tabelas do sistema. (ver Apendice B
Levantamento de Requisitos).
DADOS TABELA
Nome do Campo Tipo de dado Obrigatoriedade Restrições
TABELA III
Modelo de Levantamento de Requisitos do Sistema
Para um bom funcionamento do sistema, no levantamento de requisitos realizado junto
com a empresa, ouve a necessidade de requisitos referênte ao negócio da empresa. A
necessidade de restringir ações que podem se tornar problemas na manipulação do sistema,
gerando informações incorretas. A tabela abaixo apresenta os requisitos de negócio da
empresa necessários para a manipulação do sistema. (ver Tabela IV
Requisitos de Negócio).
1º Não fechar o pedido, igualar a quantidade total do pedido com a quantidade de retirada e zerar o saldo. 2º Só cancelar o pedido quando a quantidade de retirada for igual a zero. 3º Não permitir programação com o pedido fechado ou cancelado 4º Não permitir programar retirada com data acima da data de fim da retirada do pedido 5º Não permitir programar quantidade maior que a quantidade do pedido 6º Ao alterar a quantidade total do pedido, alterar a programação 7º Não permitir ordens de coleta para o pedido fechado ou cancelado 8º Não permitir a emissão de ordem de coleta para uma data programada abaixo da data atual 9º Atualizar a programação com data do programador abaixo da data atual que não foi retirada 10º Ajustar quantidade de programação se a necessidade de coleta for acima da programação, retirando quantidade da última data programada 11º Não emitir ordem de coleta para motorista com data do seguro vencida 12º Excluir em bloco quando cancelar pedido e tiver programação 13º Emitir pedido
Emitir programação 14º Atualizar pedido
Atualizar programação 15º Cancelar pedido
Excluir programação 16º Fechar pedido
Normalizar programação
TABELA IV
Requisitos de Negócio
Com base no levantamento de requisitos do sistema e as ferramentas utilizadas para o
desenvolvimento, a necessidade de uma configuração de hardware basica para que o sistema
funcione era eminente. Com base nesse levantamento, foi proposta a empresa adquerir uma
configuração de um computador para dar suporte ao sistema, juntamente com softwares
necessários para o seu funcionamento. A tabela abaixo apresenta os requisitos de hardware e
software que o sistema necessita para ser implantado. (ver Tabela V
Requisitos de
Hardware e Software).
28
Configuração INTEL Configuração AMD - Processador Intel Core 2 Duo - Processador AMD Athlon 64 X2 - Memória 1Gb - Memória 1Gb - Placa de Vídeo 256Mb - Placa de Vídeo 256Mb - Monitor 17
- Monitor 17
- Placa de Rede - Placa de Rede - Impressora Matricial para impressão do conhecimento de transporte
- Impressora Jato de Tinta para impressão de relatórios Softwares Necessários
- Windows XP ou Superior - PostGreeSQL
TABELA V
Requisitos de Hardware e Software
1.3
Diagramação do sistema
A diagramação do sistema consiste em apresentar em desenho como o sistema deve
funcionar, sendo que, para isso a utilização de recursos como: o DER (Diagrama de Entidade
Relacional) e o DFD (Diagrama de Fluxo de Dados) são necessários para o entendimento de
como o sistema funciona e se relaciona com o banco de dados.
1.3.1
DER
Segundo Pressman (2006), o DER representa graficamente um banco de dados e seus
relacionamentos. Através de formas geométricas e simbolos, o desenvolvedor pode indicar
as tabelas de um banco de dados bem como suas cardinalidades, as quais podem e defende
como sendo a especificação do número de ocorrências de um objeto que pode ser relacionado
ao número de ocorrências de outro objeto (PRESSMAN, 2006, 151).
Devido à complexidade da estrutura de dados e aos relacionamentos do sistema em
questão, o DER é de suma importância para a organização dos dados, classificando-os em
tabelas e melhorando a visualização do relacionamento entre as mesmas de uma forma mais
visível. (ver apêndice G
Diagrama de Entidade Relacional).
1.3.2
DFD
Segundo Pressman (2006), o DFD, permite ao engenheiro de software desenvolver
modelos do domínio informacional e do domínio funcional ao mesmo tempo (PRESSMAN,
2006, 160). Para ele, o DFD permite dividir o sistema em níveis, onde o nível 0 representa o
sistema de forma global, e os níveis acima detalham cada processo que o mesmo executa. No
29
DFD, as setas indicam o fluxo dos dados, os retângulos as entradas feitas pelos usuários e a
circunferência, os processos que o sistema chama para realizar outras tarefas. (ver apêndice D
DFD do Dados Faturista/Administrador, apêndice E
DFD do Usuário e apêndice F
DFD do CTRC ).
1.3.2.1
Tabelas no banco de dados
Com o levantamento de requisitos, a diagramação do sistema e análise feita pelos
participantes do projeto a disposição das tabelas no banco de dados foram divididas em vinte
e uma (21) tabelas que compõe a base de dados. A tabela a seguir (ver Tabela VI
Tabela
Cidade), é apresentada como exemplo de estrutura onde as demais tabelas estão inseridas. As
colunas apresentam: Nome do campo, Tipo de dado, Obrigatoriedade e Restrições em
liguagem de banco, que cada uma dispõe para tratar da informação na qual o sistema
necessita. Para as verificar as demais tabelas do banco (ver Apêndice C - Tabelas do Banco de
Dados).
TABELA CIDADE Campo Tipo de dado Obrigatoriedade Restrições
CidID Smalling Not Null Primary Key CidNome Character
Varying(50) Not Null Unique Key
EstID Smalling Not Null Foreign Key
TABELA VI
Requisitos de Hardware e Software
A cardinalidade consiste em demonstrar o relacionamento entre as tabelas.
Exemplificando vamos observar o relacionamento da tabela Cidade com a tabela Estado, a
interação entre ambas é feita a partir do princípio que uma Cidade pode ter um Estado e um
Estado pode ter várias cidades. Assim tomando como base a tabela a seguir (ver Tabela VII
Cardinalidades), é demonstrada como está o processo de cardinalidade incluso no DER (ver
Apêndice G
Diagrama de Entidade Relacional) que cada tabela possui.
CARDINALIDADES TABELA 1 TIPO CARDINALIDADE TABELA 2 Cidade N
PARA
1 Estado CTRC 1 1 Ordem Coleta Histórico N 1 Usuário Ordem Coleta N 1 Programação Ordem Coleta N 1 Transportador
30
Pedido 1 N Programação Pedido N 1 Pessoa Fisica/Juridica Pedido N 1 Codigo Fiscal Pessoa Fisica 1 1 Pessoa Fisica/Juridica Pessoa Fisica/Juridica N 1 Cidade Pessoa Fisica/Juridica N 1 Estado Pessoa Juridica 1 1 Pessoa Fisica/Juridica Pedido N 1 Produto Seguradora 1 1 Pessoa Fisica/Juridica Semi Reboque N 1 Cidade Semi Reboque N 1 Estado Semi Reboque N 1 Tipo Veículo Semi Reboque N 1 Pessoa Fisica/Juridica Transportador 1 1 Pessoa Fisica/Juridica Transportador 1 1 Veiculo Veiculo N 1 Cidade Veiculo N 1 Estado Veiculo N 1 Tipo Veículo Veiculo N 1 Pessoa Fisica/Juridica
TABELA VII
Cardinalidades
2
IMPLEMENTAÇÃO E TESTES
A implementação aborda o codificação do sistema, criação das tabelas e funções
localizadas no banco, criação das classes e a criação da interface gráfica. Os testes descrevem
a fase na qual o sistema é testado, verificando o seu correto funcionamento.
2.1
Implementação
A implementação é a fase da codificação do sistema, a qual foi desenvolvida
utilizando o método das três camadas. Segundo Macoratti (2006), a programação em camadas
constitui a divisão do sistema em partes separadas. A terceira camada é a parte da codificação
realizada diretamente no banco de dados (servidor), sendo responsável por realizar todos os
eventos realizados nele. A segunda camada é a parte na qual são codificadas as regras de
negócios (classes) do sistema, sendo responsável por fazer a ligação entre o cliente e o
servidor. A primeira camada é a parte responsável pela interface gráfica (cliente) do sistema,
sendo ela a responsável por colher as informações do cliente e transmití-las de volta a ele. A
figura a seguir demonstra a relação entre estas camadas. (ver FIGURA I
Camadas de
Software no Modelo .NET).
31
Fonte: http://www.macoratti.net/07/08/vbn_rec3.htm, acessado em 09 de setembro de 2008
FIGURA I
Camadas de Software no Modelo .NET
Para Macoratti (2006), a divisão da codificação em três camadas torna o sistema mais
compreensível, seguro e simplifica a sua manutenção. Outra característica importante é a
reutilização de código, pois torna as camadas independentes dos tipos de ferramentas de
desenvolvimento. Por exemplo, a camada do cliente de um programa desenvolvido para um
SGBD Oracle, pode ser reutilizada para uma aplicação que utiliza um SGBD SQL Server,
pois a camada cliente não possui nenhuma ligação direta com banco de dados.
2.1.1 - Banco de Dados
O PostgreSQL é o SGBD utilizado pelo sistema. Segundo Niederauer (2004), ele é um
banco gratuito e de código aberto, e pode ser comparado aos melhores bancos de dados
comerciais existentes (Niederauer, 2004, 5). Entre as funcionalidades do PostgreSQL estão a
criação de funções (function), seqüenciais (sequence), gatilhos (trigger), restrições
(constraint) e tipos (type) de estruturas. Ele também permite a utilização de comandos SQL e
da linguagem PlPgSQL, que permite a criação de rotinas utilizando comandos SQL.
Niederauer (2004) destaca também outras características do PostgreSQL. Entre elas a
capacidade de gerenciar usuários e os acessos ao banco; uma grande diversidade de tipos de
dados como datas, números e valores alfanuméricos; ferramentas para backup e recuperação
da base de dados; funções prontas, como cálculos geométricos, cálculos de datas e conversões
de dados, dentre muitas outras características.
A utilização deste SGBD permitiu o desenvolvimento da terceira camada do sistema,
responsável por codificar a parte do servidor. Além das tabelas, todas as funções responsáveis
por inserir, atualizar, excluir e consultar dados direto do banco de dados, foram desenvolvidas
32
dentro do próprio banco, utilizando a linguagem SQL, através dos comandos Create, Update,
Delete e Select.
A primeira etapa da codificação do banco consiste em criar um usuário com um nome
de login e uma senha para ser o administrador do banco. Este usuário é considerado pelo
banco, um superusuário, tendo total controle sobre os objetos do banco. Ele tem total
liberdade de criar e excluir estes objetos, além de poder incluir e excluir outros usuários e
fornecer e retirar acesso dos objetos para estes outros usuários. Abaixo segue o comando
responsável por criar um superusuário para o banco:
create role emilio login encrypted password senhaencriptada
superuser inherit createdb
crêaterole;
As características deste comando estão nas palavras encrypted e superuser. A palavra
encrypted determina que a senha seja criptografada, oferecendo maior segurança ao usuário.
A palavra superuser informa ao banco que o usuário criado, Emilío, é um superusuário, ou
seja, um usuário que tem total acesso ao banco de dados, para modificá-lo se houver
necessidade.
Após a criação do superusuário é preciso criar a base de dados. No PostgreSQL, as
bases de dados permitem separar diferentes projetos. Todos os objetos que serão criados para
atender a uma determinada aplicação de um cliente serão armazenados em uma base de dados
própria. Estas divisões dos objetos em base de dados facilitam a manutenção e a identificação
dos mesmos. Abaixo está o comando que cria uma base de dados:
create database ctrc with owner = emilio enconding = 'SQL_ASCII';
As características deste comando estão nas palavras owner e SQL_ASCII. A palavra
owner informa ao banco qual usuário é proprietário da base de dados. A palavra SQL_ASCII
identifica a linguagem que o banco interpretará o comando. Todos os objetos criados para o
sistema pertencerão ao mesmo usuário, emilio, e a mesma base de dados, a ctrc. Com o
usuário e a base de dados criados, é necessário criar os objetos. Estes correspondem a todas as
tabelas e funções que o sistema necessita para executar as atividades nesta camada.
É preciso inicialmente criar as tabelas. Como descrito no DER, o sistema utilizará
vinte e uma tabelas, relacionadas entre si. A criação destas é feita através do comando create
table. Segundo Niederauer (2004), a integridade entre tabelas é fundamental em qualquer
33
construção de base de dados, pois é ela que determina qual campo constituirá a chave
primária (primary key) de uma tabela, qual campo liga uma tabela à outra tabela (foreign key)
e qual campo além da chave primária só pode ser único em uma tabela (unique). Ainda
segundo ele, sem a integridade, na restauração de uma base dados podem ocorrer erros de
duplicação de dados nas tabelas.
Segundo Niederauer (2004), o PostgreSQL cria uma integridade de uma tabela
utilizando suas palavras reservadas e a identificação do campo, mas o correto é criá-las
através de restrições (constraint). Uma constraint é um objeto, que assim como uma tabela,
tem um nome único em uma base de dados, e é capaz de informar qual campo de uma tabela é
uma chave primária ou estrangeira e quais campos são únicos. A constraint também pode
controlar valores que podem ser inseridos em um campo, como exemplo, um salário que não
pode ser menor que o piso adotado por uma empresa. A constraint também facilita a
manutenção do banco, podendo ser alterada e excluída, além de facilitar na identificação de
tentativas de violação das restrições. A constraint é declarada dentro do comando de criação
da tabela, conforme o exemplo abaixo, que cria a tabela veiculo:
create table veiculo
(
veiid integer not null,
veiplaca character varying(8) not null,
cidid smallint not null,
estid smallint not null,
veiano integer not null,
veichassi character varying(20) not null,
veimarca character varying(70),
veicor character varying(40),
veirenavan character varying(10) not null,
veidatacad timestamp with time zone not null,
tipid integer not null,
pfjid integer not null,
constraint pk_veiid_veiculo primary key (veiid),
constraint fk_cidid_veiculo foreign key(cidid) references cidade (cidid) match simple
on update no action on delete no action,
constraint fk_estid_veiculo foreign key (estid) references estado (estid) match simple
34
on update no action on delete no action,
constraint fk_pfjid_veiculo foreign key (pfjid) references pessoafisjur (pfjid) match
simple on update no action on delete no action,
constraint fk_tipid_veiculo foreign key (tipid) references tipoveiculo (tipid) match
simple on update no action on delete no action,
constraint uk_veichassi_veiculo unique (veichassi),
constraint uk_veiplaca_veiculo unique (veiplaca),
constraint uk_veirenavan_veiculo unique (veirenavan)
)
With (oids=false);
Alter table veiculo owner to emilio;
Neste comando destacam-se a identificação dos campos da tabela, com seus
respectivos tipos, acompanhados ou não da expressão not null (indica se o campo é de
preenchimento obrigatório). A chave primária, campo único e crescente, é responsável por
identificar um registro em uma tabela, é criada pela constraint pk_veiid_veiculo, através da
expressão primary key. As constraints fk_cidid_veiculo, fk_estid_veicul, fk_pfjid_veiculo e
fk_tipid_veicul, que possuem a expressão foreign key, criam uma ligação do campo da tabela
com a chave primária de outra tabela, identificada logo após a expressão references, criando
uma relação entre elas. As constraints uk_veichassi_veiculo, uk_veiplaca_veiculo e
uk_veirenavan_veiculo, com a expressão unique, determinam que os valores atribuídos a
estes campos, não se pode repetir em nenhum outro registro da mesma tabela.
Depois de criada as tabelas é preciso criar as funções que manipularão os dados nelas.
Segundo Niederauer (2004), no PostgreSQL, uma função é uma rotina que executa um ou
mais comandos SQL dentro de um bloco, além de permitirem a criação de rotinas
condicionais e de repetição. A função no PostgreSQL sempre retorna um tipo de valor para a
rotina que a chamou, alem de permitir a passagens de parâmetros (dados) para dentro da
função. No sistema, todas as inserções, atualizações, exclusões e seleções de dados nas
tabelas, são feitas através das funções.
A estrutura de uma função é composta pelo comando de criação, com a identificação
do nome e dos parâmetros (se necessários); local de declaração, onde são criadas as possíveis
variáveis que a função venha precisar; delimitação do início e do fim das instruções SQL e a
identificação da linguagem de codificação utilizada pelo banco, sendo a SQL para a execução
de um único comando SQL, e a PlPgSQL, para mais de um comando. A função abaixo é
35
responsável por inserir dados na tabela veículos, utilizando o comando insert:
//comando de criação
Create or replace function fnc_veiculo_inserir (placa character varying, vcidade character
varying, vestado character varying, ano integer, chassi character varying, marca character
varying, cor character varying, renavan character varying, vtipoveiculo character varying,
nomerazao character varying)
returns void as
$BODY$
//local de declaração
declare codvei integer;
codcid integer;
codest integer;
codtpveiculo integer;
codpessoafj integer;
//inicio da rotina
begin
select cidid into codcid from cidade where cidnome = upper(vcidade);
select estid into codest from estado where estnome = upper(vestado);
select pfjid into codpessoafj from pessoafisjur where pfjnomerazao =
upper(nomerazao);
select tipid into codtpveiculo from tipoveiculo where tipdescricao =
upper(vtipoveiculo);
select max(veiid) into codvei from veiculo;
//acrescenta um valor na chave primaria
if codvei is null then
codvei = 1;
else
codvei = codvei + 1;
end if;
//comando SQL que insere um registro na tabela
Insert into veiculo
(
veiid, veiplaca, cidid, estid, veiano, veichassi, veimarca, veicor, veirenavan,
36
veidatacad, tipid, pfjid
)
values
(
codvei, upper(placa), codcid, codest, ano, upper(chassi),
upper(marca), upper(cor), upper(renavan), current_timestamp, codtpveiculo, codpessoafj
);
end;
//fim da rotina
$BODY$
//identificação da linguagem
language 'plpgsql' volatile
Para que uma função no PostgreSQL retorne uma ou mais linhas de registros de uma
tabela, é preciso criar um tipo de estrutura que declare diferentes tipos de dados dentro dela.
Isto é possível através do comando create type, com uma estrutura semelhante ao comando
create table. Abaixo um exemplo da criação de uma estrutura de tipo de dados:
Create type tipogeral
(
Numero integer, nome character varying, data timestamp with time zone
);
Após a sua criação, o tipogeral pode ser utilizado como tipo de retorno por uma
função. Ele representa o conjunto de dados que estão declarados dentro de sua estrutura. Para
ilustrar melhor esta idéia, segue abaixo uma função que retorna todos os registros da tabela
veiculo.
//comando de criação
//esta função não possui parâmetros
Create or replace function fnc_veiculo_selecaogeral ( )
Returns setof tipovei as
$BODY$
//local da declaração
37
//a variável tp recebe como tipo de dado o tipovei
declare tp tipovei%rowtype;
veiculos record;
//inicio rotina
begin
for veiculos in
select
a.veiid, a.veiplaca, b.cidnome, c.estnome, a.veiano, a.veichassi, a.veimarca,
a.veicor, a.veirenavan, a.veidatacad, d.tipdescricao, e.pfjnomerazao
from
veiculo a, cidade b, estado c, tipoveiculo d, pessoafisjur e
where
a.cidid = b.cidid and a.estid = c.estid and b.estid = c.estid and a.tipid = d.tipid and
a.pfjid = e.pfjid
order by
a.veiplaca asc
loop
tp.id = veiculos.veiid;
tp.placa = veiculos.veiplaca;
tp.cidade = veiculos.cidnome;
tp.estado = veiculos.estnome;
tp.ano = veiculos.veiano;
tp.chassi = veiculos.veichassi;
tp.marca = veiculos.veimarca;
tp.cor = veiculos.veicor;
tp.renavan = veiculos.veirenavan;
tp.datacad = to_char(veiculos.veidatacad,'dd/mm/yyyy hh:mm:ss');
tp.tipoveiculo = veiculos.tipdescricao;
tp.proprietario = veiculos.pfjnomerazao;
return next tp;
end loop;
return;
end;
//fim da rotina
38
$BODY$
//identificação da linguagem
language 'plpgsql' volatile
Explicando a função acima:
//comando de criação
create or replace funciotn fnc_veiculo_selecaogeral() returns setof tipovei as
O comando cria ou atualiza a função fnc_veiculo_seleçãogeral, que não recebe
nenhum tipo de parâmetro, mas que retorna para o aplicativo que a chamou, o tipo de
estrutura tipovei. Ele representa um conjunto de dados que serão responsáveis por receber os
valores contidos nos campos da tabela. Toda vez que uma função retorna um conjunto de
dados, o tipo de retorno tem que ser precedido pela palavra reservada setof.
//local da declaração
//variável tp recebe como tipo de dado o tipovei
declare tp tipovei%rowtype;
veiculos record;
Neste local da função, estão sendo declaradas duas variáveis que serão utilizadas por
ela. A variável tp em vez de receber como tipo de dado um numero, uma data ou um texto,
recebe o tipo tipovei. A expressão tipovei%rowtype indica que a variável tp terá a mesma
estrutura que o tipo tipovei possui. A variável veículos recebe um tipo de dado record,
significando que ela representa um conjunto de registro que armazenara os campos do
comando select. Esta condição é controlada pelo próprio PostgreSQL.
//inicio rotina
begin
for veiculos in
select a.veiid, a.veiplaca, b.cidnome, c.estnome, a.veiano, a.veichassi, a.veimarca,
a.veicor, a.veirenavan, a.veidatacad, d.tipdescricao, e.pfjnomerazao
from
veiculo a, cidade b, estado c, tipoveiculo d, pessoafisjur e
39
where
a.cidid = b.cidid and a.estid = c.estid and b.estid = c.estid and a.tipid = d.tipid and a.pfjid
= e.pfjid
order by
a.veiplaca asc
loop
Nesta parte da função tem-se o inicio da rotina, através da palavra reservada begin. O
comando for informa que será executado um laço repetitivo dentro da função, até que uma
condição seja satisfeita, neste caso, enquanto houver registros que combinem com as
condições passadas pelo comando select na clausula where. A variável veículos esta
recebendo como valores os campos das tabelas identificados dentro do comando select. Os
dados estão sendo ordenados de forma crescente pelo campo especificado na clausula order
by.
tp.id = veiculos.veiid;
tp.placa = veiculos.veiplaca;
tp.cidade = veiculos.cidnome;
tp.estado = veiculos.estnome;
tp.ano = veiculos.veiano;
tp.chassi = veiculos.veichassi;
tp.marca = veiculos.veimarca;
tp.cor = veiculos.veicor;
tp.renavan = veiculos.veirenavan;
tp.datacad = to_char(veiculos.veidatacad,'dd/mm/yyyy hh:mm:ss');
tp.tipoveiculo = veiculos.tipdescricao;
tp.proprietario = veiculos.pfjnomerazao;
return next tp;
end loop;
Nesta parte da função, os campos da variável tp, que representa o tipo tipovei, estão
recebendo os valores que foram armazenados na variável veículos através do comando select,
se os mesmos cumpriram as condições do comando. As palavras reservadas return next,
retorna para o aplicativo que chamou a função, a variável tp, e com ela os valores
40
armazenados dentro de seus campos. Dependendo do numero de registros que cumpram a
clausula where, o laço vai se repetindo, retornando um conjunto de registros por vez, até que o
laço chegue ao final.
return;
end;
//fim da rotina
$BODY$
//identificação da linguagem
language 'plpgsql' volatile
Ao fim do comando for esta a palavra reservada return. Ela é responsável por retornar
todos os registros recebidos dentro do comando for para o aplicativo. Por fim, fecha-se a
rotina através da palavra reservado end, e a função através da identificação da linguagem.
No total foram construídas 158 funções no banco de dados. Todas seguem
praticamente o mesmo princípio de construção, respeitando a estruturas das tabelas, e a regras
de integridades impostas a elas através do DER. As funções deixam o código das camadas
superiores mais limpos, por trazerem para elas, a execução dos comandos SQL exigidos pelo
sistema. Elas também permitem uma maior legibilidade do mesmo, além da facilitar a sua
manutenção.
Niederauer (2004) também destaca no PostrgreSQL as ferramentas que permitem
copiar e restaurar um banco de dados. A execução de backup é realizada através de dois
comandos, o pg_dump e o pg_restore. O pg_dump cria um script onde são guardadas, de
acordo com as opções do comando, todas as informações necessárias para restaurar o banco
de dados. O pg_restore executa a restauração através das informações contidas neste script.
Abaixo segue exemplos de uso dos comandos:
pg_dump -i -h localhost -p 5432 -U emilio -F c -b -v -f "f:\copiabd\banco.backup" ctrc;
pg_restore -i -h localhost -p 5432 -U emilio -d ctrc -v "f:\copiabd\banco.backup";
A palavra reservada localhost indica onde esta o servidor do banco de dados, neste
caso na própria máquina do usuário. Para identificar um servidor de banco de dados em outra
máquina, traça-se a opção localhost pelo seu numero IP (Internet Protocol) de rede. A
informação emilio representa o usuário e o ctrc a base de dados. O script será criado com o
nome de banco.backup. Os comandos não podem ser executados dentro de uma função, sendo
41
preciso encontrar uma alternativa, no caso do sistema, dois arquivos com extensão bat.
Abaixo segue dois exemplos, um para o backup, e outro para a restauração:
- Arquivo copia.bat.
@echo off
SET PGUSER=emilio
SET PGPASSWORD=suasenha
c:
chdir c:\copiabd
del banco.backup
echo "Aguarde, realizando a copia do banco"
C:\Arquiv~1\PostgreSQL\8.3\bin\pg_dump -i -h localhost -p 5432 -U emilio -F c -b -v -f
"c:\copiabd\banco.backup" ctrc
Exit
- Arquivo restaurar.bat.
@echo off
SET PGUSER=emilio
SET PGPASSWORD=suasenha
rem(indo para a raiz do disco)
c:
rem(selecionando a pasta onde esta o bachup)
chdir c:\copiabd
echo "Aguarde, realizando a restauracao do banco"
C:\Arquiv~1\PostgreSQL\8.3\bin\pg_restore -i -h localhost -p 5432 -U emilio -d ctrc -v
"c:\copiabd\banco.backup"
Exit
Outro fator importante destacado por Niederauer (2004) é a necessidade de se executar
uma analise periódica das tabelas do banco de dados, ou do próprio banco. Segundo ele, essa
tabela é necessária para atualizar as estatísticas das tabelas no PostgreSQL, que conforme tem
seu volume de dados aumentado constantemente, sofrendo inserções, atualizações e
exclusões, corre-se o risco de a base de dados ter perdas de dados. A análise pode ser feita
através do comando vacuumdb, o qual executa uma análise e atualização das estatísticas em
42
toda a base de dados. Abaixo segue um arquivo bat para executar o comando vacuumdb.
- Arquivo analise.bat
@echo off
@echo "Analize e limpeza do banco de dados"
SET PGUSER=emilio
SET PGPASSWORD=suasenha
c:
chdir c:\copiabd
C:\Arquiv~1\PostgreSQL\8.3\bin\vacuumdb -d ctrc -z -v -h localhost -p 5432 -U emilio
Exit
Após a criação das tabelas e funções do sistema, a camada do servidor esta concluída.
O próximo passo e codificar a camada das regras de negócio, através da criação de classes.
2.1.2
Classes
As classes, na implementação do sistema, representam a camada das regras de
negócios do mesmo. Segundo Macoratti (2006), esta é a camada responsável por fazer a
comunicação entre a camada do servidor e a do cliente.
No sistema foram desenvolvidos dois tipos de classes. O primeiro consiste em
representar os objetos que o sistema necessita, trabalhando seus atributos e métodos. O
segundo tipo trabalha com métodos que acessam diretamente as funções localizadas no banco
de dados. Os dois tipos são interligados através do conceito de herança que, segundo
Cavalcanti (2003), permite a uma classe acessar propriedades e métodos de outra classe.
Apesar desta interligação, o primeiro tipo é totalmente independente do segundo tipo, com a
finalidade de poder ter seu código reutilizado para outra aplicação que apresente
características semelhantes, independente do SGBD que seja utilizado.
Cavalcanti (2003) define classes como códigos que definem um tipo de dado. Elas
são compostas de membros de dados [...], métodos [...] e eventos [...] (Cavalcanti, 2003, 65).
Outros conceitos que se aplicam as classes são os de encapsulamento, sobrecarga, construtor e
polimorfismo, além da própria herança. O Visual Studio.Net (VS.Net) através de suas
linguagens, e entre elas o Visual Basic.Net (VB.Net), oferece aos desenvolvedores a
capacidade de construir suas próprias classes. O VB.Net é a linguagem de codificação
43
empregada na codificação das camadas de negócio e cliente do presente projeto.
Outra ferramenta importante do VB.Net segundo Cavalcante (2003) é a criação de
bibliotecas, as quais são classes criadas pelo desenvolvedor, ou já existentes no próprio
VB.Net, e que podem ser importadas para qualquer aplicativo que esteja sendo desenvolvido
utilizando esta linguagem. Esta capacidade permite ao desenvolvedor a reutilização de código,
diminuindo tempo e obtendo ganho de produção.
O sistema utiliza duas bibliotecas criadas pelos próprios desenvolvedores. A primeira
consiste em manipular objetos do VB.Net, e a segunda é responsável por fazer a conexão do
sistema com o banco de dados.
Esta classe pode ser utilizada por qualquer aplicativo desenvolvido no VB.Net e que
utilize como SGBD o PostgreSQL, somente sendo necessária a mudança no texto de conexão,
o nome da base de dados.
Cada tabela no banco de dados possui uma classe que a represente na camada de
negócio. E cada uma destas classes possui uma classe correspondente que faz a comunicação
direta com o banco de dados. Uma classe no VB.Net é dividida, segundo Cavalcanti (2003),
da seguinte forma:
- atributos: características específicas de cada objeto. Como exemplo, um objeto livro
pode possuir características como tamanho, cor, numero de páginas, titulo, autor, assunto,
etc.;
- propriedades: tipo especial de método que atua diretamente sobre os atributos,
passando ou recuperando informações das mesmas;
- métodos: rotinas que realizam um conjunto de instruções dentro da classe;
- construtores: métodos especiais, chamados automaticamente quando um objeto
qualquer da classe é criado (Cavalcanti, 2003, 70). Os construtores podem passar ou não
parâmetros que serão passados aos atributos;
- encapsulamento: capacidade de uma classe proteger seus atributos, propriedades e
métodos. Os dados internos da classe e os detalhes da implementação do código estão
escondidos atrás da interface. É nesse sentido que se diz às vezes que os objetos são caixa-
pretas (CAVALCANTI, 2003, 131). O encapsulamento é definido através dos seguintes
escopos:
- public (atributos, propriedades e métodos podem ser chamados dentro e fora da
classe),
- private (atributos, propriedades e métodos podem ser chamados somente dentro da
classe)
44
- protected (atributos, propriedades e métodos podem ser chamados pela própria classe
e pela classe filha).
Os métodos se comunicam com o banco de dados através de uma biblioteca do próprio
PostgreSql (Npgsql) e da biblioteca pertecente os VS.Net, a ADO.Net. Segundo Cavalcante
(2003), o ADO.Net disponibiliza recursos que acessam bancos de dados, permitindo a
recuperação, manipulação e atualização de dados, de uma forma simples e efeciente
(CAVALCANTI, 173). Entre os principais objetos destacados por ele estão:
- Dataset: objeto da classe ADO.Net. Armazena na memória os dados das tabelas
carregados pelo comando select;
- Datatable: objeto da classe ADO.Net. Organiza os dados na memória por linha e
colunas;
- Datagrid: objeto da classe ADO.Net. Um dos mais utilizados dentro do VB.Net,
também armazena dados na memória por linha e colunas, e os exibe em um formulário em
forma de tabela;
- Npgsqlconnection: objeto da classe Npgsql que faz a conexao com o banco de dados,
utilizando a string de conexão;
- Npgsqlcommand: objeto da classe Npgsql que passa para objeto Npgsqldataadapter
qual comando sql ele ira executar. A propriedade commandtype permite identificar que uma
Stored Procedure (função) do banco de dados será chamado pelo comando.A propriedade
parameter.add, permite adicionar um parametro que será passado a esta Stored Procedure. A
propriedade executenonquery executa realmente o comando;
- Npgsqldataadapter: objeto da classe Npgsql que permite fazer leituras no banco de
dados. A propriedade selectcommand permite receber um objeto Npgsqlcommand, ou outra
instrução SQL. A sua proprieade fill preenche o obejto dataset com os dados recuperados pelo
comando select, ou por uma função do servidor que executa uma consulta em uma tabela;
Cavalcanti (2003) destaca que estas duas bibliotecas trabalham em conjunto, e que os
objetos da biblioteca do Postgresql são adaptdados conforme o SGBD que estiver sendo
utilizado, como por exemplo: o objeto npgsqlconnection do Postgresql seria o sqlconnection
da biblioteca Sqlclient, pertencente ao SGBD SQL Server.
Outro fator importante, é que os métodos acima possuem o escopo private, sendo
visíveis e acessados somente dentro da classe. Para cada método private, é necessário um
método com o escopo public, pois eles serão acessíveis pelo cliente, que executará as
operações de inserção, atualização, exclusão e seleção no banco, mas não tem acesso e nem
conhecimento do que realmente a classe realiza para executar estas operações. Este processo é
45
encapsulamento da classe, e tem a função de proteger a mesma, oferecendo ao cliente,
somente o que ele necessita.
Todas as tabelas do sistema, como já citado, possuem uma classe que a represente
nesta camada, mais a classe que se comunica como o banco. Todas seguem a mesma
estrutura, sendo adaptadas conforme o numero de campos de cada tabela. Concluída a camada
de negócio, é preciso codificar a camada do cliente, onde se encontra a interface homem-
máquina.
2.1.3
Interface homem-máquina
O cliente corresponde à primeira camada do sistema. É nesta camada que o usuário
passará e receberá informações do sistema. É nesta que a interface homem-máquina é
construida.
Uma interface no VB.Net é composta pela GUI (Grapfical User Interface). Segundo
Deitel (2004) uma GUI [...] permite que usuários interajam visualmente com um programa
(DEITEL, 2004, 388), evitando que o usuário perca tempo em lembrar seqüências de
comandos (sistema de interação do MS-DOS) podendo, assim, se dedicar mais ao sistema.
No VB.Net, a GUI é composta pelos componentes visuais, os quais tem a função de
interagir com o usuário. Entre os principais componentes, Deitel (2004) cita:
- formulários: elemento gráfico que aparece na área de trabalho em forma de janela,
podendo ser minimizada, maximizada e fechada;
- rótulos: textos que informam o usuário, como mensagens, nomes de campos, etc., e
não podem ser editados;
- caixas de texto: caixas que podem receber dados digitados pelo usuário;
- botões: tem a função de desviar o programa ou executar algum evento quando
acionado pelo usuário;
- menus: permitem ao usuário escolher uma opção entre uma lista apresentada a ele, é
muito usado para abrir outros formulários no programa;
- combos: componente semelhante às caixas de texto, mas capaz de armazenar várias
linhas de dados distintos;
- caixas de seleção: permite ao usuário escolher uma opção em um grupo de opções,
onde a escolha de uma desabilita as outras;
- caixas de escolha: permite ao usuário marcar itens em uma lista de seleção, ao
contrário da caixa de escolha, podem-se marcar várias opções em uma mesma lista;
46
- datagridview: fornece uma janela com uma tabela com informações (principalmente
de tabelas de banco) ao usuário, podendo ou não ser editadas pelo mesmo.
O VB.Net oferece uma grande quantidade de componentes, e a escolha dos mesmos
para compor um sistema depende da necessidade do mesmo. Como já citado, o VB.Net
trabalha com o conceito de classes, e os componentes são tratados por ele como sendo classes.
Todos os componentes possuem atributos, propriedades, métodos, construtores,
encapsulamento, etc. Entre os atributos mais comuns aos componentes estão: nome, fonte,
cor, formato, tamanho, posição na tela, texto de rótulo (texto que aparece para o usuário,
como o texto gravar em um botão), entre outros. Alguns componentes possuem atributos
particulares, como o datagridview, que possui a propriedade datasource, responsável por
receber um objeto dataset e popular a tabela como os dados contidos neste.
Outra característica do VB.Net é a sua capacidade em trabalhar com eventos. Segundo
Deitel (2004), um evento é a capacidade de o componente interagir com uma ação do usuário,
como um clicar de mouse, clicar em um botão, selecionar um item de um menu, dentre outros.
Os eventos são passados para o tratador de eventos do VB.Net, que nada mais é do que
métodos que são chamados quando o usuário faz uma ação no sistema.
A primeira ação quando o usuário executa o sistema, é a abertura do formulário de
inicialização do programa, onde o usuário informará o seu login e sua senha, e será executada
a conexão com o banco de dados. O formulário (como qualquer outro componente no
ambiente VB. Net) é uma classe dotada de atributos, propriedades e métodos próprios, os
quais podem ser manipuladas pelo desenvolvedor, mas que também permite ao mesmo criar
seus próprios atributos, propriedades e métodos. No formulário, o desenvolvedor posiciona os
componentes necessários para que o usuário possa interagir com ele, neste caso, rótulos,
caixas de textos e botões. (ver FIGURA II
Formulário de inicialização do Programa).
FIGURA II
Formulário de inicialização do Programa
47
Após a entrada do usuário no sistema, o formulário principal é chamado, o qual possui
como componentes menus e botões. Os menus permitem ao usuário acessar os diversos
módulos do sistema e os botões, acessar funções que são particulares ao superusuário. Quando
o formulário é carregado ele executa seu construtor e recebe do formulário de inicialização, o
nome e o status do usuário. Este recurso tem a função de controlar as restrições que o sistema
precisa ter para cada nível de usuário que acessa o sistema, sendo somente o superusuário do
mesmo que possui liberdade. Este controle é realizado no método do evento load do
formulário principal. (ver FIGURA III
Formulário Principal).
FIGURA III
Formulário Principal
Dentre os vários existentes, o formulário Estado contém um padrão que é utilizado
praticamente por todos os módulos do sistema. Ele é dotado de componentes como menus,
botões, rótulos, caixas de textos, combos, grupoboxes, painéis, datagridview, entre outros,
que permitem ao usuário inserir, atualizar, excluir e filtrar registros da tabela. Ele, assim como
os outros formulários, possui um componente importante do VB.Net, o tabcontrol. Este
componente permite ao desenvolvedor criar várias páginas de componentes dentro de um
mesmo formulário, através da adição de abas, eliminando a necessidade da criação de muitos
48
formulários. O acesso a estas abas são controladas pelo desenvolvedor através de sua
propriedade selectedindex.
Visão do módulo Estado, estando em primeiro plano à aba registros. Nesta aba se
encontra o componente datagridview, que permite ao usuário ter uma visão dos registros
contidos na tabela estado. (ver FIGURAS IV, V, VI e VII).
FIGURA IV
Formulário Estado Aba Registro
Visão do módulo Estado, com a aba Editar ativada:
49
FIGURA V
Formulário Estado Aba Editar
Visão do módulo Estado, com a aba Filtros ativada:
FIGURA VI
Formulário Estado Aba Filtros
Visão do módulo Estado, com a aba Relatório ativada:
50
FIGURA VII
Formulário Estado Aba Relatório
O sistema oferece ao usuário a capacidade de realizar filtros nos registros contidos nas
tabelas do banco de dados. No módulo estado, os filtros podem ser feitos através do nome do
estado ou de sua unidade federal, através dos botões btnfiltrarnome e btnporuf e dos menus
menupornome e menuporuf. O método do evento click destes objetos chama o método
realizarfiltro(), passando para ele uma condição de filtro. Abaixo segue os métodos do evento
click destes componentes.
O VB.Net, segundo Macoratti(2006), oferece várias possibilidades de se gerar
relatórios. Uma delas é através da classe PrintDocument, a qual é representada no método
imprimir, pelo objeto pd. Esta classe permite ao desenvolvedor trabalhar manualmente na
criação de um relatório, permitindo a criação dos tipos de fonte, definição da margens,
campos que serão exibidos, entre outros, através da codificação direta dos mesmos. Dentro do
método imprimir(), é adicionado ao método PrintPage do objeto pd, o método rptestado,
responsável por gerar uma nova página no relatório. É também criado um objeto para
representar a classe PrintPreviewDialog, o objPrintPreview. Este objeto gera uma janela de
interação como o usuário, permitindo uma pré-visualização do relatório. Os dados que contém
os campos da tabela são fornecidos pelo objeto dataset carregado na realização do filtro.
51
Abaixo segue a janela de pré-visualização do relatório gerado:
FIGURA VIII
Janela de Visualização do Relatório dos Estados
Outro modo destacado por Macoratti para gerar um relatório é a utilização do Crystal
Reports, da Crystal Decisions. Ele, ainda segundo Macoratti (2006), é um dos geradores de
relatórios mais utilizados. Através de um assistente é possível configurar todo o relatório de
forma prática e mais produtiva. Para se utilizar o Crystal Reports no VB.Net, é necessário que
o drive ODBC (Open Data Base Connectivity) do banco de dados (no caso o PostgreSQL)
esteja instalado e configurado na máquina em que o SGBD estiver instalado. Este drive é
importante, pois o Crystal Reports precisa fazer uma conexão com o banco de dados, para
poder visualizar as tabelas que estão contidas nele.
Para configurar o drive ODBC, pode-se seguir os seguintes passos:
- menu iniciar;
- configurações;
- painél de controle;
- ferramentas administrativas;
- fonte de dados (ODBC);
52
Será aberta a seguinte janela:
FIGURA IX
Configuração do driver ODBC
Se o drive ODBC do PostegreSQL aparecer na aba Fontes de dados de usuário, basta
selecioná-lo e clicar em configurar. Caso contrário, é preciso adicioná-lo através do botão
adicionar, onde será exibida uma lista com todos os drives para banco de dados instalados na
máquina. Ao clicar no botão configurar, aparecerá a seguinte janela:
FIGURA X
Dados da configuração do driver ODBC
È preciso preencher os campos conforme a configuração utilizada pelo sistema que
esta sendo desenvolvido. No sistema desta pesquisa a configuração esta da forma como se
encontra na figura acima. Com os campos preenchidos, clica-se no botão Test, para verificar
53
se a conexão está funcionando, e depois no botão save. Quando se abre o Crystal Report pela
primeira vez no projeto, determinar a conexão com o banco de dados é uma das primeiras
tarefas a ser feita pelo desenvolvedor. E é nesta lista de fonte de dados de usuário, que o
assistente dele buscará o drive correto, bastando ao desenvolvedor apenas selecioná-lo.
Para que o relatório gerado pelo Crystal Reports imprima os campos contidos no
banco de dados, é preciso que o desenvolvedor selecione as tabelas que comporão este
relatório, e arraste os campos destas tabelas para o formulário, posicionando-os conforme sua
necessidade. O Crystal Reports ainda oferece muitos recursos para a edição do formato do
relatório. O método do evento click do menu MenuImprimir posiciona a tela na aba Relatório
e chama o método imprimirpelocristal.
Private Sub MenuImprimir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuImprimir.Click
Me.tabestado.SelectedIndex = 3
imprimirpelocristal()
End Sub
Na aba Relatório se encontra o componente CrystalReportViewer, que têm a função de
controlar a chamada dos relatórios, através do seu método ReportSource. Pode-se optar por
criar um único formulário que é capaz de chamar todos os relatórios do sistema, ou criar um
objeto para cada módulo, opção esta, adotada por este sistema. Quando o
CrystalReportViewer chama um relatório, ele na verdade chama um objeto que representa este
relatório. Isto por que o Crystal Reports exporta para o VB.Net as classes que ele precisa para
funcionar corretamente. Através deste objeto é possivel usar os metodos destas classes, que
permitem ao desenvolvedor controlar vários fatores de um relatório, tais como tamanho da
página, margens, fontes, cores, impressora padrão, entre outras.
Com o relatório criado, o ciclo do módulo estado está completo. Através dele, o
usuário é capaz inserir, atualizar, excluir, selecionar e filtrar dados nesta tabela. Todo este
ciclo repete-se em todos os módulos que acessam informações no banco de dados, sendo
adaptados conforme as necessidades de cada tabela do banco. Existem tabelas que não
permitem que dados sejam excluídos depois de editados, como a tabela pedido, que após ter
um número de pedido com o campo quantidade retirada acima de zero, só pode ser fechado,
ou a tabela CTRC, que após a impressão do documento Conhecimento de Transporte, não
pode ter o registro excluído se houver algum erro, mas somente cancelado, pelo motivo do
54
numero do registro ser idêntico ao numero do formulário. Todas as telas do sistema e
descrição de seu funcionamento estão descritas no manual do sistema, em anexo neste
documento (ver Apêndice H
Manual do Sistema CTRC). Com o programa codificado, tem
início a fase de testes do sistema.
2.2
Testes de Software
Segundo Palma (2007), o teste de software teve seu início "entre o fim da década de
cinqüenta e início de sessenta, onde começava a ser criado o conceito de teste de software"
(PALMA, 2007). Para realizar testes em um software, o profissional dessa área deve ter o
conhecimento do mesmo desde seu início, processo esse que se torna eficaz à medida que o
analista de testes é capaz de imaginar e descrever o máximo de cenários, de forma criativa e
intuitiva.
2.2.1
Por que testar e validar o Software?
Segundo a SOFIST (Intelligent Software Testing), essa etapa é fundamental para o
bom funcionamento do software, a qual visa garantir a qualidade do memso, tornando-o mais
confiável, com o objetivo de garantir que o produto final atenda aos requisitos especificados,
avaliando os comportamentos funcionais, tais como desempenho, confiabilidade, usabilidade
e segurança do sistema.
Segundo Myers a fase de testes e manutenções consome 60% de tempo e recursos
utilizados no desenvolvimento de software (MYERS, 1979). O seu desenvolvimento envolve
muitas atividades, como a escrita dos códigos, aumentando assim a chance de falhas ou
esquecimentos de algumas funções e funcionalidades do sistema. As falhas podem acontecer
no início da especificação de requisitos e no decorrer do projeto, podendo haver mudanças no
seu planejamento, fase na qual, começam os primeiros erros. Ao encontrar um erro, é
realizada uma depuração, documentação e correção da falha.
Segundo a RSI Informática (2006), ao detectar um erro na sua fase inicial de
levantamento de requisitos, o seu custo é de R$1,00, ao ser detectado nas demais fases do
projeto, o seu valor fica 10 vezes maior, até o seu teste final. Dependendo do tamanho do
projeto os testes são realizados por componentes, grupos, módulos, ou por todo o sistema
antes da liberação ao cliente, garantindo a entrega do software com todas as funcionalidades.
55
2.2.2
Testes funcionais do Software SGTR versão 1.0
Os testes funcionais verificam se o sistema atende os requisitos funcionais
especificados pelo cliente, sendo realizados em todo sistema atendendo as exigências da
especificação. Para verificação de falhas e posteriores correções, os testes descritos abaixo
foram realizados no software SGTR versão 1.0:
- Inserindo um novo registro, verificação dos botões NOVO e no Menu, as suas
funcionalidades, limpar caixas de textos, e trazendo novo ID para o registro;
- Verificação de inibição de botões, conforme acesso de outros botões;
- Verificação de existência de um registro já gravado em banco, com o intuito de evitar
duplicidades, emitindo mensagens de erro na tela;
- Verificação de entrada e saída de dados nas caixas de textos, tais como data, valores;
- Na gravação do registro se, ao gravar o dado no banco ou ocorrer erro de gravação,
emitir status de retorno na tela;
- Atualização de registro, na gravação no banco e emitindo mensagem de erro ou de
gravação na tela;
- Exclusão de registros, retornando mensagens de erro ou de confirmação;
- Listagem de filtros na tela, quando haver erro emitir mensagens, ou imprimir os
dados na tela;
- Emissão de relatórios, realizar a verificação de existências de impressoras instaladas,
ou retornando mensagens de erro geradas pelo sistema;
Foram muitos testes no software desenvolvido, SGTR versão 1.0, para que não
houvesse falhas na sua aprovação junto ao cliente.
2.2.3
Regras de Negócios
No sistema SGTR versão 1.0 do presente trabalho, foram necessárias certas regras de
negócio para atender aos requisitos de software levantados junto a empresa Adriano Polzin
ME. Segundo Pereira (2008), as regras de negócio em um sistema operacional têm como
principal função assegurar que as mesmas sejam obedecidas, garantindo a consistência das
informações e fornecendo dados importantes aos gestores, os quais podem ser usados em
tomadas de decisões
(PEREIRA, 2008), determinando ações rápidas.
No sistema SGTR versão 1.0, foram especificadas as seguintes regras de negócios, na
tabela pedido e tabela ordens de coleta, nos quais essas regras são descritas conforme abaixo:
Tabela Pedido:
56
- Na execução de um novo pedido, só realizar esta tarefa quando a quantidade
retirada for igual a zero;
- Ao fechar um pedido, igualar a quantidade total do pedido com a quantidade
retirada, zerando o seu saldo;
- Não permitir programação com pedido fechado ou cancelado;
- Não permitir programar com data acima da data do fim da retirada do pedido;
- Não permitir programar quantidade maior que a quantidade do pedido;
- Ao alterar a quantidade total do pedido, alterar a programação;
- No cancelamento de pedidos, excluir o pedido da programação;
Tabela Ordens de Coleta:
- Não permitir ordens de coleta para pedidos fechados ou cancelados;
- Não permitir a emissão da ordem de coleta para uma data programada abaixo
da atual;
- Atualizar a programação com data programada abaixo da data atual que não
foi retirada;
- Ajustar quantidade de programação se a necessidade de coleta for acima da
programação, retirando quantidade da última data programada;
- Não emitir ordem de coleta para motorista com data do seguro vencido;
A definição das regras citadas acima é essencial para que o sistema funcione
corretamente, especificando entrada e saída de dados, com o intuito de atender as
especificações do planejamento inicial do sistema.
3
Implantação do Sistema SGTR versão 1.0
Conforme a Engenharia de Software, a implantação do sistema é a penúltima parte do
projeto e o tempo de implantação levantada na análise de requisito, sendo realizada em três
etapas conforme estratégia de implantação: Avaliação e adequação física do ambiente,
familiarização e treinamento dos usuários com sistema em módulo protótipo ou ambiente
teste após implantação em base real, e por último a finalização e análise crítica da
implantação.
A implantação de um sistema é um processo que exige muita atenção e cuidado.
Segundo Dantas e Alves (2002), existem uma série de fatores que torna essa etapa complexa e
devem-se tomar cuidados:
- custos elevados
57
- Alteração dos processos produtivos e administrativos;
- Customizações;
- Resistência com a adoção do Sistema;
3.1
Avaliação e Adequação Física do Ambiente
Eleger em colegiado com o cliente qual será o T.I responsável pelo o contado direto
com o desenvolvedor do sistema, para que todos os usuários passem por ele, filtrando os
assuntos, dúvidas ou correções que surgirão no decorrer da implantação ou após a
implantação.
Avaliação da estrutura das estações onde será implantado o sistema, verificando se o
equipamento suporta rodar o sistema e seus componentes necessários para que o sistema
funcione perfeitamente.
3.2
Familiarização e treinamento dos usuários
Demonstração de todos os módulos do sistema para todos os usuários e diretores da
empresa que farão uso do sistema, para uma familiarização com sua interface gráfica, regras
de negócios
Treinamento dos usuários é realizado individualmente, para verificação dos processos
que o usuário exerce na empresa e passará a usar com a implantação do sistema, como
descreve Pfleeger, "... o treinamento dos usuários tem como base, principalmente, as
principais funções do sistema e a necessidade do usuário de poder acessá-las..." (PFLEEGER,
2007, pg. 367).
O treinamento é realizado de várias maneiras, não importando por quanto tempo seja,
deve fornecer informações para os usuários em todos os momentos, e não apenas quando o
sistema é entregue, conforme relata Pfleeger, "... algumas vezes os usuários se esquecem de
como acessar um arquivo ou utilizar uma nova função, o treinamento inclui métodos para que
o usuário possa encontrar e aprender essa informação ..." (PFLEEGER, 2007, pg. 368).
Após o treinamento dos usuários, é baixada uma cópia do sistema em base teste da rede do
cliente, por durante duas ou três semanas, os usuários irão exercendo paralelamente ao
sistema atual de trabalho as rotinas diárias exercidas, comparando e familiarizando com os
módulos, tirando suas dúvidas, ajustes e implementação do sistema que vierem a ocorrer.
Após a familiarização dos usuários, e correções de possíveis erros, implementações, é
58
baixado em base real o sistema, começando do ponto zero de sua massa de dados, com
acompanhamento no dia-a-dia de um profissional desenvolvedor do software, para qualquer
problema que venha surgir.
3.3
Finalização e Análise Críticas da Implantação
Após realizar a implantação e treinamentos, conforme relata Oliveira ... quando o
sistema começou a ser utilizado no dia-a-dia organizacional tornou-se possível verificar os
acertos e as falhas do projeto, isto é, impactos positivos e negativos ...
(OLIVEIRA, 2008),
será possivel a verificação das funcionalidades estão sendo realizadas de acordo com o projeto
inicial.
Conforme especifica a Engenharia de software, após realizar a implantação de todos
os módulos, e os usuários estando aptos a realizar suas funções, é realizada uma reunião com
o T.I e diretoria do cliente, para realizar os levantamentos de fatores críticos da implantação, o
que foi e o que será realizado, após o final, é assinada uma documentação de fechamento,
concluindo assim a implantação do sistema.
59
CONCLUSÃO
O SGTR Versão 1.0, o qual foi desenvolvido para atender a necessidade de gerenciar a
prestação de serviços de transporte rodoviário da empresa Adriano Polzin - ME. O software
tem como objetivo principal atender aos requisitos levantados na empresa e como objetivo
secundário um ambiente gráfico (interface home-máquina), ser codificado em camadas,
divido em módulos e manipular os dados armazenados no banco de dados.
O levantamento de requisitos é a etapa mais sensível no desenvolvimento, o qual foi
realizado em reuniões com o representante da empresa, onde foram coletadas diversas
informações que a mesma utiliza para gerenciar o seu transporte. A empresa mostrou total
cooperação com o projeto, não negando acesso algum a documentos e dados. O grande
problema desta fase foi a preocupação da não compreensão dos processos de trabalho e das
regras de negócio da empresa. Para certificar a integridade dos mesmos, os dados foram
documentados e estruturados, e depois apresentados a empresa. As regras de negócio foram
revistas e ao final desta etapa, a empresa aprovou a documentação final. Todas as outras
etapas foram desenvolvidas conforme estes requisitos. O DER, que representa graficamente o
banco de dados, foi construído conforme as devidas especificações, garantindo a integridade
dos dados através da implementação de chaves primárias, relacionando as tabelas através das
chaves estrangeiras e garantido que campos importantes como CNPJ, CPF, Renavan, Chassi,
nome de produto, entre outros, não fossem duplicados no banco. Sobre as tabelas e seus
relacionamentos, foi construído o DFD, desenho que representa graficamente o fluxo de
dados pelo sistema e demonstra de uma forma geral todo o sistema, e de forma mais
específica o processo de emissão do CTRC. A etapa de codificação foi desenvolvida
utilizando as informações dos requisitos e regras de negócios da empresa, as tabelas
especificadas no DER e os módulos especificados no DFD. De uma forma geral, pode-se
afirmar que o sistema implementa todos os requisitos levantados na empresa. Mas, ainda que
os requisitos estejam implantados, não existe a garantia da funcionalidade do sistema. Para
responder a essa pergunta, é preciso analisar os objetivos secundários.
60
O primeiro dos objetivos secundários do sistema é a sua interface homem-máquina.
No projeto, houve a preocupação de produzir uma interface amigável e atualizada, seguindo
um padrão adotado por outros programas. O VB.Net oferece uma grande variedade de
componentes de tela, mas foi decidido reduzir este número àqueles mais importantes. Para
cada cadastro no banco de dados foi projetada uma tela própria (formulário), permitindo ao
usuário identificar-se com elas. Estas telas são compostas por menus, barras de ferramentas,
caixas de textos, rótulos, caixas de seleção, calendários, entre outros. Os menus são
importantes em uma interface, pois permitem ao usuário acessar as telas ou outros processos
do sistema. Foi procurado utilizar o menu em quase todas as telas. Outro componente
importante, muito comum em programas com padrão Windows, é a barra de ferramentas,
composta por vários botões. Estes botões executam as mesmas funções que os menus, mas de
uma forma mais direta, pois uma função em que o usuário precisaria seguir um caminho por
vários menus, é executada no único clique do botão. No sistema, foi procurado colocar para
processos importantes como gravar, atualizar, excluir, filtrar, fechar, cancelar, acesso tanto
por menus quanto por botões na barra de ferramentas. Os rótulos e as caixas de textos são
fundamentais para o usuário receber e enviar informações pelo sistema, o qual foi colocado de
forma ao usuário seguir um padrão quando estiver manipulando registros do banco. Um
componente muito interessante e extremamente utilizado no software é o tabcontrol,
componente em forma de um fichário, que permite a criação de diversas telas em um único
formulário. Este componente facilitou o trabalho de desenvolvimento, poupando formulários,
menus, botões, deixando as telas mais amigáveis. O sistema não permite ao usuário modificar
cores de tela, rótulos, caixas, pois este não é objetivo do software. Entretanto, como ele
trabalha em um ambiente Windows, quando o usuário altera os padrões da área de trabalho, o
padrão dos formulários do sistema também é alterado. Para finalizar, pode-se afirmar que a
interface homem-máquina permite uma boa interação do usuário com o sistema, pois ela não
abusa de cores extravagantes que poderiam prejudicar a visão, de excessos de componentes
que poderiam deixar o usuário desorientado e segue um padrão definido, para que o usuário
não tenha que se adaptar a diferentes ambientes para diferentes cadastros.
O segundo dos objetivos secundários do sistema é a codificação do mesmo em
camadas. Essa etapa foi importante, pois permitiu um maior entendimento do funcionamento
do sistema, uma melhor facilidade de manutenção e um possível reaproveitamento do código.
O entendimento do sistema se dá pelo motivo de separar as camadas do programa, onde cada
uma realiza sua tarefa específica sem depender diretamente da outra. A camada do servidor,
responsável por administrar as tabelas e funções que acessam os dados, fica localizada no
61
próprio banco de dados. A camada de negócios é o local no qual se localizam as classes de
objetos e as classes que fazem a ligação da camada do servidor com a camada do cliente. A
camada do cliente é o local do software onde esta localizada a interface gráfica, que é a única
visível para o usuário. A divisão em camadas torna a manutenção mais eficiente, pois se um
problema ocorrer (por exemplo: um processo não grava mais dados na tabela estado) pode-se
isolar uma das camadas para localizá-lo, e se ele não for identificado nesta, faz-se o teste na
próxima camada. O grande objetivo deste método é o reaproveitamento do código. A
programação em camadas foi também muito positiva pelo lado do aprendizado. Através dela,
foi possível empregar conceitos da POO (Programação Orientada a Objetos), utilizados
atualmente por grandes desenvolvedores de software. O uso de classes, atributos,
propriedades, métodos, herança e encapsulamento foram plenamente utilizadas neste projeto,
mas não foi possível implementar dois conceitos importantes da POO, polimorfismo e
interface, já que eles permitem realmente codificar classes totalmente reaproveitáveis. Pelos
seus conceitos serem difíceis de assimilar, e pelo não aprofundamento no estudo destes, até
pelo tempo do projeto, eles não foram utilizados.
O terceiro dos objetivos secundários é a divisão do sistema em módulos, com a tarefa
de facilitar o entendimento do software pelo usuário. Um módulo agrupa cadastros que se
relacionam primeiro, para depois se relacionarem com os outros módulos. Analisando o
funcionamento dos módulos é que pode ser verificado se o sistema esta corretamente
funcional:
O módulo Pessoa é formado pelos cadastros das tabelas Estado, Cidade e Pessoa
Física/Jurídica. Este módulo atendeu a necessidade da empresa em gerenciar os dados de
seus clientes e dos profissionais que dirigem caminhões e simplificou o trabalho do
usuário, ao unir em único formulário, os dados de pessoas físicas e jurídicas. As tabelas
Estado e Cidade permitiram que o lançamento dos dados destas fossem recuperados na
edição de dados na tabela Pessoa Física/Jurídica, poupando trabalho de digitação destes
campos pelo usuário;
O módulo Veículo é formado pelos cadastros das tabelas Tipo Veículo, Veículo, Semi-
Reboque, Transportador e Segurador. O cadastro de Tipo de Veículo permitiu ao usuário
armazenar dados dos diferentes tipos de veículos que fazem transporte no Brasil e
identificar os veículos e semi-reboques sem a necessidade de degitação deste tipo de
informação a cada novo lançamento destes. As tabelas Veículos e Semi-Reboque
atendem a necessidade de cadastrar os veículos e carretas que prestam serviços para a
empresa. Aqui percebeu-se um primeiro erro do projeto. As duas tabelas guardam o
62
mesmo tipo de informação, sendo separadas só pela identificação do tipo de veículo. Elas
poderiam ter sido unificadas, como feito com a tabela Pessoa Física/Jurídica, diminuindo
o numero de processos. A tabela Transportador atendeu a necessidade da empresa de
constituir um cadastro formado pelo conjunto transportador, onde são identificados os
dados do veículo, do semi-reboque, do proprietário e dados do motorista, os quais são
passados para a seguradora, para a liberação do carregamento do motorista. O cadastro
cumpre a função, mas apresentou um problema na atualização de dados. Como regra de
negócio, um motorista só pode dirigir um. Como regra de negócio para a empresa, um
motorista só pode dirigir um único veículo, e um veículo só pode aparecer uma única vez
neste cadastro. Esta se justifica pelo motivo de os dados do motorista e do veículo serem
passados para a seguradora, e se a empresa informa que um motorista e seu veiculo
carregam para uma determinada empresa, este motorista não pode aparecer no mesmo dia
com outro veiculo, transportando para esta mesma ou outra empresa, sendo por isso,
barrado pela seguradora. Para um motorista trocar de veículo e o mesmo já estiverem
cadastrados no banco, é preciso que ele seja excluído do banco de dados, mas a exclusão
não é permitida se o identificador (chave primária) deste registro estiver sendo utilizado
na tabela Ordem de Coleta. Como troca de veículos entre motoristas é algo constante, a
tabela Transportador tornou-se um problema e precisou ser revista no projeto. O cadastro
da tabela Seguro trouxe uma solução para a empresa, pois a mesma não tinha controle
sobre o prazo de validade que a seguradora fornecia a cada motorista após a sua
liberação. Em uma tentativa de emitir uma ordem de coleta, o sistema, através desta
tabela, informa o usuário se o prazo do motorista venceu.
O módulo Carga Tributária é formado pelas tabelas Código Fiscal, IRRF e ICMS. O
cadastro Código Fiscal gerencia a natureza da operação, responsável por informar os
dados do transporte. O cadastro do IRRF gerencia as faixas de cobrança do imposto de
renda. Ele seria utilizado para fazer o cálculo do IRRF sobre o faturamento de motoristas
autônomos, mas a empresa decidiu não mais realizar esta função, por não haver obrigação
de destacar o imposto na emissão do CTRC. Este cadastro não foi retirado a pedido da
própria empresa, prevendo uma possível mudança da lei. O cadastro de ICMS permite ao
usuário identificar a taxa do imposto cobrado por cada estado brasileiro, não precisando
mais digitá-lo na emissão do CTRC, se houver incidência do imposto;
O módulo Retirada é formado pelas tabelas Produto, Pedido, Programação e Ordem de
Coleta. Este módulo apresentou uma solução de gerenciamento de retirada de produtos,
pois a mesma não possuía nenhuma ferramenta que realiza-se esta tarefa. O único
63
controle da empresa é uma ficha manual, na qual ela anota os produtos a serem retirados
e a quantidade que já foi transportada. O cadastro de Produto gerencia todos os produtos
que a empresa transporta. O cadastro Pedido gerencia os pedidos de retirada que a
empresa recebe de seus clientes e traz para ele informações que eram lançadas na emissão
do CTRC, como o produto, local de retirada e entrega, responsável pelo frete, valor do
frete cobrado, valor do frete pago ao motorista, natureza da operação, incidência de
ICMS, etc.. O cadastro de Programação permite a empresa programar a retirada dos
pedidos recebidos dentro dos prazos estabelecidos por eles. A programação é uma
ferramenta a qual a empresa pode verificar o cumprimento de suas metas de retiradas. O
cadastro da Ordem de Coleta permite a empresa gerenciar as autorizações que ela fornece
para seus veículos transportadores. A ordem de coleta pode ser impressa em um
formulário para o motorista apresentá-lo a portaria da empresa, processo este que é feito
manualmente. Este módulo apresenta uma falha na elaboração dos relatórios. Por serem
cadastros de estrema importância, pois são os principais gerenciadores dos negócios da
empresa, seriam necessários relatórios com dados específicos sobre os pedidos e as
programações, objetivando-se principalmente as metas e os resultados. Relatórios
requerem tempo para a aprendizagem, e este não foi o suficiente para a busca de
informações que ajudassem na elaboração dos mesmos.
O módulo CTRC é formado pelo cadastro do CTRC. O usuário, para emitir um novo
documento, precisa lançar manualmente todos os dados que o compõem. Através do
cadastro, o usuário somente identifica a programação e a ordem de coleta para o sistema
recuperar a grande maioria dos dados. Somente dados que são característicos a cada
CTRC são lançado pelo usuário. O cadastro executa automaticamente todos os cálculos
necessários, além de fazer atualizações de saldo no Cadastro Pedido e Programação. A
impressão não é realizada diretamente, pois é aberta uma janela de visualização de
impressão, onde o usuário poderá identificar a integridade do documento antes de
imprimí-lo. A geração da tela de impressão foi o ponto negativo deste módulo, pois
mesmo, em uma máquina com um processador de dois núcleos com 2.0 Ghz de clock e 1
GB de memória, demorou 10 segundos para ser gerada. Esta demora comprometeu o
tempo ganho com recursos do módulo. O ponto positivo é que o usuário ganhou
produtividade para a edição dos dados de um CTRC.
O módulo Usuário permite ao administrador do programa criar novos usuários para o
banco de dados e para o sistema, O módulo não somente permite criar novos usuários,
como também excluí-los. Neste módulo, o administrador decide quais os níveis de acesso
64
que os usuários terão sobre as informações do banco, sendo até um fator positivo, pois
determinadas informações são vitais para a empresa, e o administrador precisa ter um
controle sobre quem acessa tais informações
O módulo Sistema permite ao administrador realizar tarefas do banco de dados, que só
seriam possíveis dentro de um aplicativo administrador do PostgreSQL. Estas tarefas são
o backup, a limpeza do banco, a atualização das estatísticas das tabelas e o processo que
permite restaurar a base de dados. Permitir que o usuário realize estas tarefas sem um
conhecimento específico de banco de dados, é o ponto positivo deste módulo, já que
tarefas de backup são importantes para a preservação dos dados, e a limpeza e atualização
são necessárias quando o banco possuir uma grande quantidade de informações. O
processo de restauração é importante, pois após algum evento que venha a causar danos
no sistema, o usuário pode recuperar sua base de dados com a última atualização do
backup. O ponto negativo é o software não realizar um backup quando o usuário finaliza
o sistema (o backup é realizado na inicialização) e nem emitir qualquer aviso de que ele
deva ser feito, pois o usuário pode utilizar o sistema por um longo período sem executar
um processo de backup e só a saída do sistema ocorrer algum problema, todas as
informações deste período serão perdidas.
Ao final da análise dos objetivos primários e secundários é possível concluir que o
programa é funcional e que atendeu a todos os requisitos levantados na empresa. Muitos dos
problemas detectados nesta análise são provenientes de soluções procuradas para resolver as
necessidades da empresa, a qual não possuía até o presente momento nenhuma ferramenta
para sua utilização. O único cadastro que apresentou um problema que pode causar falhas no
programa, através do relacionamento de dados, é o do Transportador. Ele precisará ser revisto,
com a mudança de algumas regras de restrições, para facilitar a troca de veículos por
motorista. A questão dos conceitos de polimorfismo e interface, referentes à POO, podem ser
aprendidos através da consulta a autores e implementados em outros projetos, assim também
como o aprendizado do uso de relatórios mais elaborados, e que podem trazer mais
informações ao usuário. Todas as tabelas do banco de dados são gerenciadas pelo usuário
pelas telas divididas em módulos, assim também como é possível ao usuário administrar os
recursos do banco de dados, tais como backups e análise de estatísticas para preservar a
integridade do banco. O programa também tinha proposto ser capaz de imprimir o CTRC, o
que é o objetivo final deste software sendo este atingido. O objetivo de usar uma interface
gráfica atual, condizente com os atuais programas também foi mesmo com a utilização
somente de componentes básicos, mas que permitem ao usuário uma boa interação com o
65
programa. O PostgreSQL demonstrou ser um SGBD confiável, estável e seguro, capaz de
oferecer recursos semelhantes aos SGBDs comerciais, e ser uma alternativa viável para
empresas de pequeno e médio porte. Para finalizar, o sistema não é um produto final. Como
qualquer outro, ele precisa passar por manutenções e atualizações e, no decorrer destes
processos, essas falhas serão analisadas e corrigidas com o intuído de aumentar a
confiabilidade do sistema.
66
REFERENCIAL
BARBOSA, G.; RABAÇA C. A.. Dicionário de comunicação. Rio de Janeiro: Campus, 2001
2º Edição.
BRASIL, C/C++. Diagrama Entidade Relacionamento. Disponível em
http://www.cbrasil.org/wiki/index.php?title=Diagrama_Entidade_Relacionamento. Acessado
em 09 de março de 2008.
CAVALCANTI, J. C. D.. VB.NET plataforma profissional : teoria e aplicações práticas da
linguagem. São Paulo: Érica, 2006
2ª Edição.
DANTAS, Daniela Cristina Giorgetti; ALVES, Rafael Ferreira. Sistemas de Informação ERP:
Uma visão gerencial de ciclo de vida de implantação. Disponível em
http://www.abepro.org.br/biblioteca/ENEGEP2002_TR91_0816.pdf. Acessado em 24 de
outubro de 2008.
DIAS, M. A. P.. Administração de materiais: uma abordagem logística. São Paulo: Atlas,
1993
4º Edição.
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. São Paulo: Pearson Addison
Wesley, 2005
4º Edição.
DEITEL, Harvey M. & Paul J.. JAVA: Como Programar. Ed. Prentice-Hall, 2005
6ª Edição.
DOCUMENTATION, KDE. Capitulo 2. Fundamentos da UML. Disponível em
http://docs.kde.org/stable/pt_BR/kdesdk/umbrello/uml-basics.html. Acessado em 09 de março
de 2008.
FERNANDES, J. H. C. Textos e Notas sobre a Engenharia de Software e Sistemas de
Informação. Disponível em http://www.cic.unb.br/~jhcf/MyBooks/iess/index.html. Acessado em
01 de março de 2008.
67
FILHO, W. de P.. Engenharia de Software: fundamento, métodos e padrões. Março de 2000.
Disponível em http://www.wppf.uaivip.com.br/praxis/livro.htm. Acessado em 08 de março de
2008.
INFORMATICA, Talentum. Software Gestor. Disponível em
http://www.talentuminformatica.com.br/produtos.htm. Acessado em: 01 de março de 2008.
KERN, V. M.. O que são requisitos. Disponível em
http://209.85.165.104/search?q=cache:t2jGrkQndi4J:webmail.faac.unesp.br/~paula/Paula/req
uisitos.doc+requisitos&hl=pt-BR&ct=clnk&cd=2&gl=br&lr=lang_pt. Acessado em 09 de
março de 2008.
MACORATTI, J. C.. A gestão de requisitos. Disponível em
http://imasters.uol.com.br/artigo/3860/des_de_software/a_gestao_de_requisitos/. Acessado em 09 de
março de 2008.
MACORATTI, J. C. Aplicação de acesso a dados em 3 camadas. Disponível em
http://www.macoratti.net/vbn_a3c1.htm. Acessado em 18 de abril de 2008.
MARTINS, P. G.; ALT, P. R. C.. Administração de materiais e recursos patrimoniais. São
Paulo: Saraiva, 2002.
MIRA, C. A.. Logística: o último rincão do marketing. São Paulo: Lettera.doc, 2004.
MYERS, G.. The Art of Software Testing. Wiley, 1979.
NIEDERAUER, J.. Guia de consulta rápida PostgreSQL. São Paulo: Novatec Editora Ltda,
2004 - 2ª Edição.
NOVA ENCICLOPÉDIA BARSA. Logística. São Paulo: Encyclopaedia Britannica do Brasil
Publicações, 2000.
O BRIEN, J. A.. Sistemas de Informação e as decisões gerenciais na era da Internet. São
Paulo: Saraiva, 2003 - 9º Edição.
68
OLIVEIRA, Marilene Olivier Ferreira de; JESUS, Renata Gomes de. Implantação de
Sistemas ERP: Tecnologia e Pessoas na Implantação do SAP R/3. Disponível em
http://www.scribd.com/doc/100614/Implementacao-de-ERP. Acessado em 30 de outubro de
2008.
PALMA, Fernando. Artigo
I: Execução de Testes e Gerência de Testes. Abril, 2007.
Disponível em http://testesdesoftware.blogspot.com. Acessado em 09 de setembro de 2008.
PALMA, Fernando. Artigo
II: Como Amadurecer o Processo de Testes. Maio, 2007.
Disponível em http://testesdesoftware.blogspot.com. Acessado em 09 de setembro de 2008.
PALMA, Fernando. Artigo
III: O Custo da Não Qualidade. Maio, 2007. Disponível em
http://testesdesoftware.blogspot.com. Acessado em 09 de setembro de 2008.
PEREIRA, Paulo Sergio. Artigo SQL Magazine 55
Mantendo as regras de negócios no
banco de dados: os prós e os contras. Disponível em
http://www.devmedia.com.br/articles/viewcomp.asp?comp=10350&hl=. Acessado em 23 de
outubro de 2008.
PEREIRA, W. P.. Delphi 2005: aplicações com banco de dados com Interbase 7.5 e MySQL
4.0.23. São Paulo: Érica, 2005
1ª Edição.
PEREIRA, R. O.. O que é a gestão da informação. Disponível em
http://www.fae.edu/intelligentia/opiniao/lerOpiniao.asp?lngIdArtigo=7148&lngIdArea=194.
Acessado em: 08 de março de 2008.
PFLEEGER, S. L.. Engenharia de Software: teoria e prática. São Paulo: Prentice Hall, 2004
2º Edição.
PRESSMAN, R.S.. Engenharia de software. São Paulo: McGraw-Hill, 2006
6 Edição.
SOFIST. Testes de Sistema. Disponível em
http://www.sofist.com.br/solucoes/projeto/testes_sistema/. Acessado em 23 de outubro de
69
2008.
WINBLAD, A. L; EDWARDS S. D.;KING D. P.. Software orientado a objeto. São Paulo:
Makron Books - 1993.
RSI, Informática Modelo de ROI para teste de software. Disponível em
http://www.comuni.com.br/default.asp?link=releases&ativo=clientes&id_releases=511&id_cl
iente=106. Acessado em 17 de outrubro de 2008.
SANDRONI, Paulo. Novíssimo dicionário de economia. São Paulo: Beste Seller. 2002
8
Edição.
SANTOS, S. dos. Sucesso no desenvolvimento de software usando uma metodologia de
desenvolvimento. Disponível em
http://imasters.uol.com.br/artigo/6566/sucesso_no_desenvolvimento_de_software_usando_u
ma_metodologia_de_desenvolvimento. Acessado em 01 de março de 2008.
SILVA, R. O. da. Teoria da administração. São Paulo: Pioneira Thomsom Learning - 2001.
SISTEMAS, BSoft. Sobre o controle de transportadoras. Disponível em
HTTP://www.bsoftsistemas.com/index.php?area=sobre. Acessado em 01 de março de 2008.
SYSTEM, Active. Active Trans. Software de gerenciamento de transportes. Disponível em
http://www.activesystem.com.br/atrans.html?gclid=CIPv_pzH7JECFQZbHgodzAqJqg.
Acessado em 01 de março de 2008.
SILVA, Luiz Inácio Lula da. Lei nº 11.442, de 5 de janeiro de 2007. Disponível em
http://www.planalto.gov.br/CCIVIL/_Ato2007-2010/2007/Lei/L11442.htm. Acessado em 01
de março de 2008.
URMAN, S. Oracle 9i: Programação PL/SQL. Rio de Janeiro, Campus - 2002.
70
ANEXO A
Ordem de Carregamento
71
ANEXO B
Nota CTRC
72
APÊNDICE A
Cronograma do Projeto
73
APÊNDICE B
Levantamento de requisitos
DADOS DO USUÁRIO Campo Tipo de dado Obrigatoriedade Restrições
Código do Usuário Numero Inteiro Sim Chave Primária Nome do Usuário Texto Sim Campo Único Login Texto Sim Campo Único Senha Texto Sim Status Texto Sim Data Dia/Mês/Ano Sim
DADOS DA CIDADE Campo Tipo de dado Obrigatoriedade Restrições
Código da Cidade Numero Inteiro Sim Chave Primária Nome da Cidade Texto Sim Campo Único Herda Estado Numero Inteiro Sim Chave Estrangeira
DADOS DE ESTADO Campo Tipo de dado Obrigatoriedade Restrições
Código do Estado Numero Inteiro Sim Chave Primária Nome do Estado Texto Sim Campo Único UF do Estado Texto Sim Campo Único
DADOS ICMS Campo Tipo de dado Obrigatoriedade Restrições
Código ICMS Numero Inteiro Sim Chave Primária Código do Estado Numero Inteiro Sim Chave Estrangeira Taxa do ICMS Número Sim Campo Único
DADOS PESSOA FÍSICA/JURÍDICA Campo Tipo de dado Obrigatoriedade Restrições
Código Pessoa Física/Jurídica
Numero Inteiro Sim Chave Primária
Nome Razão Texto Sim Campo Único Endereço Texto Sim Bairro Texto Sim Código da Cidade Numero Inteiro Sim Chave Estrangeira Código do Estado Numero Inteiro Sim Chave Estrangeira CEP Texto Sim Caixa Postal Texto Sim Telefone Texto Sim Celular Texto Não E-mail Texto Não Data Cadastro Dia/Mês/Ano Sim Tipo Texto Sim
DADOS PESSOA FÍSICA Campo Tipo de dado Obrigatoriedade Restrições
CPF Texto Sim Chave Primária RG Texto Sim Campo Único Data de Nascimento Dia/Mês/Ano Sim CNH Texto Sim Campo Único CNH Prontuário Texto Sim Letra da CNH Texto Sim
74
Data de Validade da CNH
Dia/Mês/Ano Sim
Nome do Pai Texto Sim Nome da Mãe Texto Sim Numero de Dependentes
Numero Inteiro Não
INSC/INSS Texto Não Código Pessoa Física/Jurídica
Numero Inteiro Sim Chave Estrangeira
DADOS PESSOA JURÍDICA Campo Tipo de dado Obrigatoriedade Restrições
CNPJ Texto Sim Chave Primária IE Texto Sim Campo Único Contato Texto Não Código Pessoa Física/Jurídica
Numero Inteiro Sim Chave Estrangeira
DADOS VEÍCULO Campo Tipo de dado Obrigatoriedade Restrições
Código do Veículo Numero Inteiro Sim Chave Primária Placa Texto Sim Campo Único Código da Cidade Numero Inteiro Sim Chave Estrangeira Código do Estado Numero Inteiro Sim Chave Estrangeira Ano Numero Inteiro Sim Chassis Texto Sim Campo Único Marca Texto Não Cor Texto Não Renavan Texto Sim Campo Único Data Cadastro Dia/Mês/Ano Sim Código do Tipo do Veículo
Numero Inteiro Sim Chave Estrangeira
Código Pessoa Física/Jurídica
Numero Inteiro Sim Chave Estrangeira
DADOS TIPO VEÍCULO Campo Tipo de dado Obrigatoriedade Restrições
Código do Tipo do Veículo
Numero Inteiro Sim Chave Primária
Descrição Texto Sim Campo Único DADOS SEMI REBOQUE
Campo Tipo de dado Obrigatoriedade Restrições Código do Semi Reboque
Numero Inteiro Sim Chave Primária
Placa Texto Sim Campo Único Código da Cidade Numero Inteiro Sim Chave Estrangeira Código do Estado Numero Inteiro Sim Chave Estrangeira Ano Numero Inteiro Sim Chassis Texto Sim Campo Único Marca Texto Não Cor Texto Não Renavan Texto Sim
75
Data Cadastro Dia/Mês/Ano Sim Código do Tipo do Veículo
Numero Inteiro Sim Chave Estrangeira
Código Pessoa Física/Jurídica
Numero Inteiro Sim Chave Estrangeira
DADOS TRANSPORTADOR Campo Tipo de dado Obrigatoriedade Restrições
Código do Transportador
Numero Inteiro Sim Chave Primária
Frota Texto Sim Código Pessoa Física/Jurídica
Numero Inteiro Sim Chave Estrangeira Campo Único
Código do Veículo Numero Inteiro Sim Chave Estrangeira Campo Único
Placa 1 Texto Não Placa 2 Texto Não Placa 3 Texto Não Capacidade de Carga Numero Preciso Não Conjunto Texto Não
DADOS SEGURADORA Campo Tipo de dado Obrigatoriedade Restrições
Código da Seguradora
Numero Inteiro Sim Chave Primária Código Pessoa Física/Jurídica
Numero Inteiro Sim Chave Estrangeira Campo Único
Numero da Seguradora
Numero Inteiro Sim Campo Único
Data de Lançamento Dia/Mês/Ano Sim Data de Validade Dia/Mês/Ano Sim
DADOS ORDEM COLETA Campo Tipo de dado Obrigatoriedade Restrições
Código Ordem de Coleta
Numero Inteiro Sim Chave Primária
Data de Cadastro Dia/Mês/Ano Sim Data de Retirada Dia/Mês/Ano Sim
DADOS PRODUTO Campo Tipo de dado Obrigatoriedade Restrições
Código do Produto Numero Inteiro Sim Chave Primária Descrição Texto Sim Campo Único Volume Texto Sim Sigla Texto Sim
DADOS CÓDIGO FISCAL Campo Tipo de dado Obrigatoriedade Restrições
Código para Código Fiscal
Numero Inteiro Sim Chave Primária
Descrição Texto Sim Campo Único Natureza da Operação Texto Não
DADOS PEDIDO Campo Tipo de dado Obrigatoriedade Restrições
Código do Pedido Numero Inteiro Sim Chave Primária
76
Código do Produto Numero Inteiro Sim Chave Estrangeira Remetente Texto Não Destinatário Texto Não Local de Retirada Texto Não Local de Entrega Texto Não Consignatário Texto Não Data de Lançamento Dia/Mês/Ano Sim Data de Início Dia/Mês/Ano Sim Data de Finalização Dia/Mês/Ano Sim Quantidade do Pedido Numero Preciso Sim Quantidade de Retirada
Numero Preciso Sim
Saldo Numero Preciso Não Valor Frete Total Numero Preciso Não Primeira Condição para Pedido
Texto Não
Valor Frete Motorista Numero Preciso Não Segunda Condição para Pedido
Texto Não
Índice ICMS Texto Sim Taxa ICMS Numero Preciso Sim Status Texto Sim Código Pessoa Física/Jurídica
Numero Inteiro Sim Chave Estrangeira
Código para Código Fiscal
Numero Inteiro Sim Chave Estrangeira
DADOS PROGRAMAÇÃO Campo Tipo de dado Obrigatoriedade Restrições
Código da Programação
Numero Inteiro Sim Chave Primária
Data Dia/Mês/Ano Sim Campo Único Código do Pedido Numero Inteiro Sim Chave Estrangeira Quantidade Programada
Numero Preciso Sim
Quantidade Retirada Numero Preciso Não Saldo Numero Preciso Não
DADOS IRRF Campo Tipo de dado Obrigatoriedade Restrições
Código do IRRF Numero Inteiro Sim Chave Primária IRRF Percentual Numero Inteiro Sim IRRF Faixa Inicial Numero Sim IRRF Faixa Final Numero Sim IRRF Parcela de Dedução
Texto Não
irfdedpordep Numero Inteiro Sim DADOS CTRC
Campo Tipo de dado Obrigatoriedade Restrições Código CTRC Numero Inteiro Sim Chave Primária Data de Emissão Dia/Mês/Ano Sim
77
Código Ordem de Coleta
Numero Inteiro Sim Chave Estrangeira
Numero da Nota Fiscal
Numero Inteiro Sim
Peso Bruto Numero Preciso Sim Peso Líquido Numero Preciso Sim Valor da Nota Fiscal Numero Preciso Sim Quantidade Inteiro Não Descrição Texto Não Taxa de Seguro Numero Preciso Não Valor do Seguro Numero Preciso Não Valor do Frete Numero Preciso Sim Primeiro Vapor Carga Descarga
Numero Preciso Não
Primeiro Valor Pedágio
Numero Preciso Não
Valor Total do Frete Numero Preciso Sim Valor do ICMS Numero Preciso Não Mensagem Texto Não Frete do Motorista Numero Preciso Sim Segundo Valor Carga Descarga
Numero Preciso Não
Segundo Valor Pedágio
Numero Preciso Não
Subtotal do Frete do Motorista
Numero Preciso Não
Valor do IRRF Numero Preciso Não Valor SESTSENAT Numero Preciso Não Adiantamento Numero Preciso Não Valor Final do Frete do Motorista
Numero Preciso Sim
Observações Texto Não Status Texto Não
DADOS HISTÓRICO Campo Tipo de dado Obrigatoriedade Restrições
Código do Histórico Numero Inteiro Sim Chave Primária Data do Histórico Dia/Mês/Ano Sim Tabela Texto Sim Evento Texto Sim Código do Usuário Numero Inteiro Sim Chave Estrangeira
DADOS MENSAGEM Campo Tipo de dado Obrigatoriedade Restrições
Mensagem de Texto Texto Sim Chave Primária
78
APÊNDICE C
Tabelas do Banco de Dados
TABELA CIDADE Campo Tipo de dado Obrigatoriedade Restrições
CidID Smalling Not Null Primary Key CidNome Character
Varying(50) Not Null Unique Key
EstID Smalling Not Null Foreign Key TABELA CÓDIGO FISCAL
Campo Tipo de dado Obrigatoriedade Restrições CodID Integer Not Null Primary Key CodDescricao Character
Varying(50) Not Null Unique Key
CodNaturezaOperacao Character Varying(50)
TABELA CTRC Campo Tipo de dado Obrigatoriedade Restrições
CtrcID Integer Not Null Primary Key CtrcDataEmissao Timestamp With
Time Zone Not Null
OrdID Integer Not Null Foreign Key CtrcNotaFiscal Integer Not Null CtrcPesoBruto Double Precision Not Null CtrcPesoLiquido Double Precision Not Null CtrcValorNotaFiscal Double Precision Not Null CtrcQtde Integer CtrcDescricao Character
Varying(50) CtrcTaxaSeguro Double Precision CtrcValorSeguro Double Precision CtrcValorFrete Double Precision Not Null CtrcCargaDescarga1 Double Precision CtrcPedagio1 Double Precision CtrcValorFreteTotal Double Precision Not Null CtrcValorICMS Double Precision CtrcMensagem Character
Varying(1000) CtrcFreteMotorista Double Precision Not Null CtrcCargaDescarga2 Double Precision CtrcPedagio2 Double Precision CtrcSubTotalFreteMot Double Precision CtrcValorIRRF Double Precision CtrcValorSestSenat Double Precision CtrcAdiantamento Double Precision CtrcValorFinalFreteMot
Double Precision Not Null CtrcObservacoes Character
Varying(1000)
79
CtrcStatus Character Varying(30)
TABELA ESTADO Campo Tipo de dado Obrigatoriedade Restrições
EstID Smallint Not Null Primary Key EstNome Character
Varying(50) Not Null Unique Key
EstUF Character Varying(2) Not Null Unique Key TABELA HISTÓRICO
Campo Tipo de dado Obrigatoriedade Restrições HisID BigInt Not Null Primary Key HisData Timestamp With
Time Zone Not Null
HisTabela Character Varying(50)
Not Null
HisEvento Character Varying(30)
Not Null
UsuID Smallint Not Null Foreign Key TABELA ICMS
Campo Tipo de dado Obrigatoriedade Restrições IcmsID Integer Not Null Primary Key EstID Smallint Not Null Foreign Key IcmsTaxa Double Precision Not Null Unique Key
TABELA IRRF Campo Tipo de dado Obrigatoriedade Restrições
IrfID Integer Not Null Primary Key IrfPercentual Integer Not Null IrfFaixaInicial Numeric(12,2) Not Null IrfFaixaFinal Numeric(12,2) Not Null IrfParDeducao Character
Varying(12) IrfDedPorDep Integer Not Null
TABELA MENSAGEM Campo Tipo de dado Obrigatoriedade Restrições
MensTexto Character Varying(1000)
Not Null Primary Key
TABELA ORDEM COLETA Campo Tipo de dado Obrigatoriedade Restrições
OrdID Integer Not Null Primary Key OrdDataCadastro Timestamp With
Time Zone Not Null
OrdDataRetirada Timestamp With Time Zone
Not Null
ProgID Integer Not Null Foreign Key TraID Integer Not Null Foreign Key OrdQuantidade Double Precision Not Null OrdStatus Character
Varying(20) TABELA PEDIDO
80
Campo Tipo de dado Obrigatoriedade Restrições PedID Integer Not Null Primary Key ProID Integer Not Null Foreign Key PedRemetente Character
Varying(80) PedDestinatario Character
Varying(80) PedLocalRetirada Character
Varying(80) PedLocalEntrega Character
Varying(80) PedConsignatario Character
Varying(80) PedDataLancamento Timestamp With
Time Zone Not Null
PedDataInicio Timestamp With Time Zone
Not Null
PedDataFim Timestamp With Time Zone
Not Null
PedQtdePedido Double Precision Not Null PedQtdeRetirada Double Precision Not Null PedSaldo Double Precision PedValorFreteTotal Double Precision PedCondicao1 Character
Varying(20) PedValorFreteMotorista
Double Precision PedCondicao2 Ccharacter
Varying(20) PedIncideICMS Character
Varying(10) Not Null
PedTaxaICMS Double Precision Not Null PedStatus Character
Varying(50) Not Null
PfjID Integer Not Null Foreign Key CodID integer Not Null Foreign Key
TABELA PESSOA FÍSICA Campo Tipo de dado Obrigatoriedade Restrições
PefCPF Character Varying(14)
Not Null Primary Key
PefRG Character Varying(12)
Not Null Unique Key
PefDataNasc Timestamp Without Time Zone
Not Null
PefCNH Character Varying(15)
Not Null Unique Key
PefCNHProntuario Character Varying(10)
Not Null
PefLetraCarta Character Varying(3)
Not Null
81
PefDataValidade Timestamp Without Time Zone
Not Null
PefPai Character Varying(80)
Not Null
PefMae Character Varying(80)
Not Null
PefNumeroDependentes
Smallint PefInscInss Character
Varying(20) PfjID Integer Not Null Foreign Key
TABELA PESSOA FÍSICA / JURÍDICA Campo Tipo de dado Obrigatoriedade Restrições
PfjID Integer Not Null Primary Key PfjNomeRazao Character
Varying(80) Not Null Unique Key
PfjEndereco Character Varying(100)
Not Null
PfjBairro Character Varying(50)
Not Null
CidID Smallint Not Null Foreign Key EstID Smallint Not Null Foreign Key PfjCep Character Varying(9) Not Null PfjCaixaPostal Character
Varying(30) Not Null
PfjTelefone Character Varying(18)
Not Null
PfjCelular Character Varying(18)
PfjEmail Character Varying(60)
PfjDataCad Timestamp With Time Zone
Not Null
PfjTipo Character Varying(20)
Not Null
TABELA PESSOA JURÍDICA Campo Tipo de dado Obrigatoriedade Restrições
PejCnpj Character Varying(30)
Not Null Primary Key
PejIe Character Varying(30)
Not Null Unique Key
PejContato Character Varying(80)
PfjID Integer Not Null Foreign Key TABELA PRODUTO
Campo Tipo de dado Obrigatoriedade Restrições ProID Integer Not Null Primary Key ProDescricao Character
Varying(70) Not Null Unique Key
ProVolume Character Not Null
82
Varying(50) ProSigla Character Varying(3) Not Null
TABELA PROGRAMAÇÃO Campo Tipo de dado Obrigatoriedade Restrições
ProgID Integer Not Null Primary Key ProgData Timestamp With
Time Zone Not Null Unique Key
PedID Integer Not Null Foreign Key ProgQtdeProgramada
Double Precision Not Null ProgQtdeRetirada Double Precision ProgSaldo Double Precision
TABELA SEGURADORA Campo Tipo de dado Obrigatoriedade Restrições
SegID Integer Not Null Primary Key PfjID Integer Not Null Foreign Key
Unique Key SegNumero Integer Not Null Unique Key SegDataLancamento Timestamp With
Time Zone Not Null
SegDataValidade Timestamp With Time Zone
Not Null
TABELA SEMI REBOQUE Campo Tipo de dado Obrigatoriedade Restrições
SemID Integer Not Null Primary Key SemPlaca Character Varying(8) Not Null Unique Key CidID Smallint Not Null Foreign Key EstID Smallint Not Null Foreign Key SemAno Smallint Not Null SemChassi Character
Varying(20) Not Null Unique Key
SemMarca Character Varying(50)
SemCor Character Varying(30)
SemRenavan Character Varying(10)
Not Null
SemDataCad Timestamp With Time Zone
Not Null
TipID Smallint Not Null Foreign Key PfjID Integer Not Null Foreign Key
TABELA USUÁRIO Campo Tipo de dado Obrigatoriedade Restrições
UsuID Smallint Not Null Primary Key UsuNome Character
Varying(60) Not Null Unique Key
UsuLogin Character Varying(30)
Not Null Unique Key
UsuSenha Character Varying(15)
Not Null
83
UsuStatus Character Varying(30)
Not Null
UsuData Timestamp With Time Zone
Not Null
TABELA TIPO VEÍCULO
Campo Tipo de dado Obrigatoriedade Restrições TipID Integer Not Null Primary Key TipDescricao Character
Varying(100) Not Null Unique Key
TABELA TRANSPORTADOR Campo Tipo de dado Obrigatoriedade Restrições
TraID Integer Not Null Primary Key TraFrota Character
Varying(50) Not Null
PfjID Integer Not Null Foreign Key Unique Key
VeiID Integer Not Null Foreign Key Unique Key
TraPlaca1 Character Varying(8) TraPlaca2 Character Varying(8) TraPlaca3 Character Varying(8) TraCapCarga Double Precision TraConjunto Character
Varying(50) TABELA VEÍCULO
Campo Tipo de dado Obrigatoriedade Restrições VeiID Integer Not Null Primary Key VeiPlaca Character Varying(8) Not Null Unique Key CidID Smallint Not Null Foreign Key EstID Smallint Not Null Foreign Key VeiAno Integer Not Null VeiChassi Character
Varying(20) Not Null Unique Key
VeiMarca Character Varying(20)
VeiCor Character Varying(20)
VeiRenavan Character Varying(20)
Not Null Unique Key
VeiDataCad Timestamp With Time Zone
Not Null
TipID Integer Not Null Foreign Key PfjID Integer Not Null Foreign Key
84
APÊNDICE D
DFD (Dados Faturista/Administrador)
85
APÊNDICE E
DFD do Usuário
86
APÊNDICE F
DFD do CTRC
87
APÊNDICE G
Diagrama de Entidade e Relacionamento (DER)
88
APÊNDICE H
Manual do Sistema CTRC
JOÃO MARCOS FAXINA
LUCIO FLÁVIO BOAVENTURA MARCOS VASSOLER
RODRIGO MARCOLINO VÉRLEI RICARDO DA SILVA
Manual do Usuário (Instalação, Configuração e Operação)
SGTR
Versão 1.0 (Sistema Gerenciador de Transporte Rodoviário)
1ª Edição Setembro de 2008
SUMÁRIO
INTRODUÇÃO ......................................................................................................................... 6
SOBRE ESTE MANUAL ......................................................................................................... 8
INFORMAÇÕES IMPORTANTES ....................................................................................... 9
FUNÇÃO DO BANCO DE DADOS ..................................................................................... 10
REQUISITO DE HARDWARE E SOFTWARE PARA O SISTEMA ............................. 11
I
INSTALAÇÃO DO POSTGRESQL E DO SGTR VERSÃO 1.O ................................ 12
1
INSTALANDO O POSTGRESQL ................................................................................ 12 2
CONFIGURANDO O DRIVE ODBC ........................................................................... 25 3
INSTALANDO O SGTR VERSÃO 1.0 ......................................................................... 27 II
INICIALIZAÇÃO DO SISTEMA E TELA PRINCIPAL ........................................... 31
1
INICIALIZANDO O SGTR VERSÃO 1.0 .................................................................... 31 2
CONEXÃO COM O BANCO DE DADOS ................................................................... 31 3
A TELA PRINCIPAL DO SISTEMA ............................................................................ 32 III
MÓDULO DE GERENCIAMENTO DE PESSOAS FISICAS E JURÍDICAS ....... 35
1
CADASTRO DE ESTADO ............................................................................................ 35 1.1
INSERINDO UM NOVO ESTADO ....................................................................... 37 1.2
ATUALIZANDO E FILTRANDO UM ESTADO ................................................. 38 1.3
EXCLUINDO UM ESTADO .................................................................................. 40 1.4
GERANDO O RELATÓRIO .................................................................................. 41 2
CADASTRO DE CIDADES .......................................................................................... 42 2.1
INSERINDO UMA NOVA CIDADE ..................................................................... 44 2.2
ATUALIZANDO E FILTRANDO UMA CIDADE ............................................... 45 2.3
EXCLUINDO UMA CIDADE ................................................................................ 47 2.4
GERANDO O RELATÓRIO .................................................................................. 47 3
CADATRO PESSOA FÍSICA E JURÍDICA ................................................................. 48 3.1
INSERINDO UMA NOVA PESSOA FÍSICA ....................................................... 51 3.2
INSERINDO UMA NOVA PESSOA JURÍDICA .................................................. 52 3.3
ATUALIZANDO E FILTRANDO UMA PESSOA FÍSICA OU JURÍDICA ......... 53 3.4
EXCLUINDO UMA PESSOA FÍSICA OU JURÍDICA ........................................ 56 3.5
GERANDO O RELATÓRIO GERAL DE PESSOAS FÍSICAS OU JURÍDICAS 56 IV
MÓDULO DE GERENCIAMENTO DE VEÍCULOS ............................................... 57
1
CADASTRO TIPO DE VEÍCULO ................................................................................ 57 1.1
INSERINDO UM NOVO TIPO DE VEÍCULO ..................................................... 59 1.2
ATUALIZANDO E FILTRANDO UM TIPO DE VEÍCULO ................................ 60 1.3
EXCLUINDO UM TIPO DE VEÍCULO ................................................................ 62 1.4
GERANDO O RELATÓRIO GERAL DE TIPOS DE VEÍCULO ......................... 63 2- CADASTRO DE CAVALO MECÂNICO E TRUCK (VEÍCULO) ............................... 63
2.1
INSERINDO UM NOVO VEÍCULO ..................................................................... 66 2.2
ATUALIZANDO E FILTRANDO UM VEÍCULO ................................................ 67 2.3
EXCLUINDO UM VEÍCULO ................................................................................ 70 2.4
GERANDO O RELATÓRIO GERAL DE VEÍCULOS ......................................... 70 3
CADASTRO DE SEMI-REBOQUES ............................................................................ 71 3.1
INSERINDO UM NOVO SEMI-REBOQUE ......................................................... 73
3.2
ATUALIZANDO E FILTRANDO UM SEMI-REBOQUE .................................... 75
3.3
EXCLUINDO UM VEÍCULO ................................................................................ 77
3.4
GERANDO O RELATÓRIO GERAL DE VEÍCULOS ......................................... 77
4
CADASTRO DO TRANSPORTADOR ........................................................................ 78
4.1
INSERINDO UM NOVO TRANSPORTADOR .................................................... 81
4.2
ATUALIZANDO E FILTRANDO UM TRANSPORTADOR ............................... 83
4.3
EXCLUINDO UM TRANSPORTADOR ............................................................... 85 4.4
GERANDO O RELATÓRIO GERAL DE TRANSPORTADORES ..................... 85 5
CONTROLE DA LIBERAÇÃO DO SEGURO ............................................................. 86 5.1
INSERINDO UM NOVO SEGURO ....................................................................... 88 5.2
ATUALIZANDO E FILTRANDO UM SEGURO .................................................. 90 5.3
EXCLUINDO UM SEGURO .................................................................................. 92 5.4
GERANDO O RELATÓRIO GERAL DO SEGURO ............................................ 92 V
MÓDULO DE GERENCIAMENTO DA CARGA TRIBUTÁRIA ............................ 93
1
IRRF ................................................................................................................................ 93 1.1
INSERINDO UMA NOVA FAIXA DE IRRF ........................................................ 95 1.2
ATUALIZANDO UMA FAIXA DE IRRF .............................................................. 96 1.3
EXCLUINDO UMA FAIXA DE IRRF .................................................................. 96 1.4
GERANDO O RELATÓRIO GERAL DE TIPOS DE VEÍCULO ......................... 97 2- CADASTRO DO CÓDIGO FISCAL .............................................................................. 97
2.1
INSERINDO UM NOVO CÓDIGO FISCAL ......................................................... 99 2.2
ATUALIZANDO UM CÓDIGO FISCAL ............................................................. 101 2.3
EXCLUINDO UM CÓDIGO FISCAL ................................................................. 101 2.4
GERANDO O RELATÓRIO GERAL DE CÓDIGO FISCAL ............................ 101 3
CADASTRO DO ICMS (IMPOSTO SOBRE CIRCULAÇÃO DE MERCADORIAS E SERVIÇOS) ........................................................................................................................ 102
3.1
INSERINDO UMA TAXA DE ICMS .................................................................. 104 3.2
ATUALIZANDO UMA TAXA DE ICMS ............................................................ 105 3.3
EXCLUINDO UMA FAIXA DE IRRF ................................................................ 106 3.4
GERANDO O RELATÓRIO GERAL DE TIPOS DE VEÍCULO ....................... 106 VI
MÓDULO DE GERENCIAMENTO DE RETIRADA ............................................ 107
1
CADASTRO DE PRODUTO ....................................................................................... 107 1.1
INSERINDO UM NOVO PRODURO .................................................................. 109 1.2
ATUALIZANDO E FILTRANDO UM PRODUTO ............................................. 110 1.3
EXCLUINDO UM PRODUTO ............................................................................. 112 1.4
GERANDO O RELATÓRIO GERAL DE TRANSPORTADORES ................... 112 2
CADASTRO DE PEDIDO ........................................................................................... 113 2.1
EMITINDO UM NOVO PEDIDO ........................................................................ 115 2.2
ATUALIZANDO E FILTRANDO UM PEDIDO ................................................. 117 2.3
FECHANDO OU CANCELANDO UM PEDIDO ............................................... 119 2.4
GERANDO O RELATÓRIO GERAL DE TRANSPORTADORES ................... 120 3
CADASTRO DE PROGRAMAÇÃO .......................................................................... 121 3.1
EMITINDO UMA NOVA DATA PROGRAMAÇÃO ......................................... 123 3.2
ATUALIZANDO E FILTRANDO UMA PROGRAMAÇÃO .............................. 124 3.3
EXCLUINDO UMA PROGRAMAÇÃO .............................................................. 127 3.4
GERANDO O RELATÓRIO GERAL DE PROGRAMAÇÃO ............................ 127 4
CADASTRO DE ORDEM DE COLETA .................................................................... 128 4.1
EMITINDO UMA NOVA ORDEM DE COLETA .............................................. 131 4.2
FILTRANDO UMA PROGRAMAÇÃO ............................................................... 133
4.3
EXCLUINDO UMA ORDEM DE COLETA ....................................................... 134
4.4
GERANDO O RELATÓRIO GERAL DE ORDEM DE COLETA ..................... 135
VII
MÓDULO DE EMISSÃO DO CTRC (CONHECIMENTO DE TRANSPORTE
RODOVIÁRIO E CARGAS) ............................................................................................... 136
1
CADASTRO CTRC (CONHECIMENTO DE TRANSPORTE RODOVIÁRIO E
CARGAS) ........................................................................................................................... 136 1.1
EMITINDO UM NOVO CTRC ............................................................................ 138 1.2
FILTRANDO UM CTRC ....................................................................................... 146 1.3
EXCLUINDO UM CTRC ..................................................................................... 147 1.4 CANCELANDO UM CTRC .................................................................................. 148 1.5
IMPRIMINDO NOVAMENTE UM CTRC SALVO ........................................... 148 1.6
GERANDO O RELATÓRIO GERAL DO CTRC ................................................ 149 VIII
MÓDULO DE GERENCIAMENTO DE MENSAGENS ..................................... 151
1
CADASTRO DE MENSAGEM ................................................................................... 151 1.1
INSERINDO UMA NOVA MENSAGEM ........................................................... 153 1.2
ATUALIZANDO UMA MENSAGEM ................................................................. 154 1.3
EXCLUINDO UMA MENSAGEM ...................................................................... 154 1.4
GERANDO O RELATÓRIO GERAL DE MENSAGENS .................................. 154 IX
MÓDULO DO USUÁRIO ........................................................................................... 156
1 - CRIANDO UM NOVO USUÁRIO .............................................................................. 156 2
EXCLUINDO UM USUÁRIO ..................................................................................... 158 X
MÓDULO SISTEMA .................................................................................................... 160
1
COPIANDO A BASE DE DADOS .............................................................................. 160 2
RESTAURANDO A BASE DE DADOS .................................................................... 161 3
VARREDURA E LIMPEZA DO BANCO DE DADOS ............................................. 162 XI
MÓDULO DO ADMINISTRADOR .......................................................................... 163
6
INTRODUÇÃO
Diversos especialistas afirmam que estamos vivendo a era da informação. Ter o total
controle sobre ela passou a ser um fator determinante na sobrevivência das empresas no
mundo globalizado, onde uma empresa que concorria com seu vizinho dentro de sua cidade,
passou a concorrer com empresas situadas em outros países.
Ter um controle sobre as informações não é uma tarefa simples. A velocidade em que
elas trafegam pelos inúmeros meios como jornais, revistas, rádio, televisão e principalmente a
Internet, somada a grande sua grande variedade e quantidade, tem obrigado as empresas,
sejam elas pequenas, médias ou grandes, a encontrarem soluções na Tecnologia da
Informação (TI).
Atualmente existe uma grande quantidade de empresas especializadas em
desenvolvimento de softwares. Empresas como a IBM, SUN, Oracle, Microsoft, SAP, entre
outras, apresentam soluções que vão desde pacotes específicos, ou seja, softwares para
atender a área de contabilidade, ou finanças, ou estoque até aos sistemas ERP (Enterprise
Resource Plain), que nada mais são que softwares que englobam toda a cadeia administrativa
de uma empresa. Algumas destas empresas ainda oferecem agregadas aos seus softwares,
soluções em hardware e banco de dados..
Para uma pequena e média empresa, uma determinada solução tecnológica oferecida
por estas grandes empresas pode ser inviável financeiramente, abrindo espaço para pequenos
e médios desenvolvedores de software. E é para atender a empresas de pequeno e médio porte
do ramo de transporte rodoviário, que este software foi desenvolvido.
O SGTR - Software Gerenciador de Transporte Rodoviário Versão 1.0 apresenta
módulos que permitem a uma empresa controlar as informações referentes a clientes,
transportadores, veículos, pedidos, além de oferecer suporte para a programação de retirada e
emissão de ordens de coletas. O programa possui também, como módulo principal, a emissão
do Conhecimento de Transporte Rodoviário e Cargas (CTRC), documento obrigatório para as
empresas deste ramo de atividade.
Este manual ensina o usuário a instalar e a configurar corretamente o SGBD
PostgreSQL, como também instalar o SGTR Versão 1.0. Ele também ensina o usuário a fazer
o backup da base de dados, e a recuperação da mesma, após algum evento cause algum dano
base de dados. O manual também descreve como o usuário deverá interagir com o sistema,
através da explicação de seus módulos. Um módulo consiste em telas, que manipulam
informações relacionadas entre si, formadas por componentes como botões, caixas de texto,
7
rótulos, tabelas com dados do banco de dados, relatório, entre outros, e que constituem a
interface gráfica do usuário. O usuário aprenderá como inserir, atualizar, excluir, recuperar e
filtrar informações localizadas no banco de dados, através da utilização desta interface.
8
SOBRE ESTE MANUAL
Este manual contém as informações necessárias para o usuário utilizar corretamente o
SGTR - Sistema Gerenciador de Transporte Rodoviário Versão 1.0. Ele descreve o
procedimento a ser realizada para a instalação do PostgreSQL e dos passos para a instalação
do SGTR Versão 1.0. O manual descreve como configurar o drive ODBC do SGBD
PostgreSQL, necessário para se trabalhar com os relatórios do sistema. Nele também se
encontra as informações necessárias para o usuário trabalhar com cada módulo, descrevendo
os procedimentos que ele precisa realizar para inserir, atualizar, excluir e consultar registros
no banco de dados. Ele descreve como o usuário procederá para gerar relatórios, criar outros
usuários e controlar o nível de acesso que estes terão dentro do sistema. O manual também
descreve como o usuário executará o backup do sistema e como proceder em uma eventual
recuperação do mesmo. Este manual vem acompanhado do CD contendo o SGTR Versão 1.0,
o instalador do SGBD PostgreSQL versão 8.3.0 e pasta cópiabd, necessária para a criação da
base de dados. No CD também se encontra uma cópia digital deste manual.
9
INFORMAÇÕES IMPORTANTES
O SGTR Versão 1.0 foi desenvolvido de acordo com os procedimentos que regem a
construção dos softwares atualmente. Ele é dividido em camadas que se comunicam entre si,
sendo elas: a camada cliente, onde se localiza a interface gráfica, que permite ao usuário
interagir com o sistema; a camada de negócios, responsável por gerenciar as regras de
funcionamento de cada módulo e a camada do servidor, que se localiza no banco de dados.
É por este motivo, que antes da instalação do sistema, é necessário a instalação do
Sistema Gerenciador de Banco de Dados PostgreSQL e a correta configuração do mesmo.
Depois de sua instalação, é preciso executar o script que constrói toda a camada do servidor.
Este script contém as informações necessárias para a criação das tabelas e das funções que
realizam eventos (inserção, atualização, exclusão e seleção de registros) diretamente no
banco.
É importante também, o usuário do sistema, sempre realizar uma cópia de segurança
do banco de dados, para prevenir uma eventual ocorrência que pode causar danos ao sistema e
para que possa ser realizada uma recuperação do mesmo. É importante também, que ele anote
e comunique aos desenvolvedores do software qualquer falha que este venha a ter, para que os
mesmos possam rastrear estas falhas e buscar soluções para elas.
Este software não foi desenvolvido para trabalhar em rede, mas somente em uma
máquina. Se no futuro, o usuário necessitar que o mesmo seja instalado em um servidor para
ser acessado por estações de trabalho, é preciso fazer alterações no sistema, o que vai gerar
uma nova versão. Isto também ocorrerá para qualquer modificação ou inclusão de módulos no
sistema que for requisitada pelo usuário.
10
FUNÇÃO DO BANCO DE DADOS
O SGBD utilizado pelo sistema é o PostgreSQL. Desenvolvido pela SUN, este banco
tem sua licença livre, o que requer apenas que a empresa somente o registre, mas sem nenhum
custo para ela. Ele é um banco de grande capacidade, capaz de gerenciar grandes bases de
dados. Ele também é dotado de recursos que o igualam a SGBDs comerciais, como o Oracle e
o SQL Server, dois dos bancos mais utilizados por grandes empresas.
O banco de dados é o responsável por armazenar todos os registros utilizados pelo
sistema. Qualquer dano que ele venha a sofrer prejudicará o funcionamento do mesmo. Por
isso é necessário que o administrador do sistema cuide de sua manutenção, garantindo que as
estatísticas dos mesmos sejam sempre atualizadas assim como os backups sejam feitos
constantemente. É função também do administrador verificar quais usuários estão habilitados
no banco, e qual o nível de acesso que eles possuem, pois usuários com livre acesso podem
excluir ou corromper informações do banco que não são mais recuperadas.
11
REQUISITO DE HARDWARE E SOFTWARE PARA O SISTEMA
Abaixo segue a descrição de uma máquina com os requisitos mínimos para a
instalação do SGTR Versão 1.0
Processador Intel Dual Core ou AMD Athlon X2 com 2.0 Ghz
Memória 1 GB DDR 2 533mhz Disco Rígido 160 GB Gravadora DVD/CD Obrigatório Portas USB Recomendável Placa de Rede Recomendável (placa 10/100/1000) Sistema Operacional Windows XP Home ou Vista Home (Não
instalar este sistema nas versões Start Edition do XP e do Vista)
Antivírus Avast, AVG, etc.
12
I
INSTALAÇÃO DO POSTGRESQL E DO SGTR VERSÃO 1.O
Este capítulo descreve como o usuário procederá para instalar o banco de dados,
configurá-lo, executar o script que cria a base dados e configurar o drive ODBC. Este capítulo
descreve também os passos para a instalação do SGTR Versão 1.0.
1
INSTALANDO O POSTGRESQL
Antes de iniciar a instalação dos aplicativos, o usuário deve copiar para a unidade c:\
de sua máquina, as seguintes pastas: Banco de Cados, copiabd e Pacote SGTR. Todas estas
pastas se encontram no DVD do sistema, que acompanha este manual.
O arquivo Setup.exe, que executa a instalação do PostgreSQL, se encontra na pasta
Banco de Dados. Para iniciar a instalação, o administrador deve dar um duplo clique sobre o
arquivo para abrir a tela inicial da instalação. (ver Figura 1).
FIGURA 1
Marque a opção Brazilian Portuguese e tecle no botão Start para seguir para a próxima
tela. (ver Figura 2).
13
FIGURA 2
Tecle no botão Próximo para seguir para a próxima tela. (ver Figura 3).
FIGURA 3
Esta tela apresenta o contrato de licença do PostgreSQL. Tecle no botão Próximo para
seguir para a próxima tela. (ver Figura 4).
14
FIGURA 4
Não marque nenhuma opção nesta tela e aperte o botão Próximo para seguir para a tela
seguinte. (ver Figura 5).
FIGURA 5
Não é preciso alterar nenhuma das caixas desta tela. Se o usuário optar, também não é
preciso definir a senha nesta tela, deixando o sistema criar uma senha automaticamente. Esta
15
senha não e a senha do usuário do banco. Tecle o botão próximo para seguir para a próxima
tela.
FIGURA 6
Se o usuário optou por deixar que o sistema crie a senha na tela anterior, esta
mensagem aparecera, bastando apenas teclar sim para confirmar. (ver Figura 6). Esta
mensagem não aparece se o usuário definiu uma senha na tela anterior. Na seqüência é aberta
a tela que configura o usuário primário do sistema. (ver Figura 7).
FIGURA 7
Nesta tela, o único campo que o usuário deverá preencher é a caixa Senha. O usuário
deve marcar também a caixa Inicializar o agrupamento de banco de dados. A senha escolhida
é a do usuário principal do PostgreSQL, mas não a do sistema. E através dela que o usuário se
conectará com o banco pela primeira vez. Na caixa Senha (novamente), confirme a senha e
tecle no botão próximo, abrindo a próxima tela. (ver Figura 8).
16
FIGURA 8
Confirme a mensagem clicando botão OK. É aberta a próxima tela. (ver Figura 9).
FIGURA 9
Marque a caixa PL/pgsql e tecle no botão próximo, seguindo para próxima a tela. (ver
Figura 10).
FIGURA 10
17
Marque somente a caixa Adminpack e tecle no botão próximo para abrir a próxima
tela. (ver Figura 11).
FIGURA 11
O sistema está pronto para a instalação. Tecle no botão próximo para iniciá-la. A
figura abaixo (ver Figura 12) apresenta a tela da evolução do processo de instalação:
FIGURA 12
Depois de instalado o PostreSQL, a tela de conclusão e apresentada. (ver Figura 13).
18
FIGURA 13
Depois da instalação, o drive ODBC do PostgreSQL precisa ser instalado, mas é
preciso que a máquina possua um acesso a Internet. Se ela possuir, marque a caixa Launch
Stack Build at exit, tecle no botão Concluir e a próxima tela é inicializada. (ver Figura 14). Se
a máquina não possuir uma conexão, desmarque a caixa, tecle no botão concluir e a instalação
estará finalizada.
FIGURA 14
19
Nesta tela é preciso escolher uma entre as opções da caixa. Escolha a mesma
apresentada na figura acima. Depois clique no botão Next, para seguir para a próxima tela.
(ver Figura 15).
FIGURA 15
Procure na lista apresentada na tela, a opção psqlODBC v08.03.0200 e marque a sua
caixa. Depois tecle no botão Next para seguir para a próxima tela. (ver Figura 16).
FIGURA 16
Nesta tela, marque o servidor de Internet em que o aplicativo de instalação buscará o
drive ODBC. O usuário pode optar pelo mesmo servidor marcado nesta tela. Depois tecle no
botão Next para seguir para a próxima tela. (ver Figura 17).
20
FIGURA 17
Nesta tela, selecione a opção que aparece na caixa Selected packages, (ver Figura 17).
A caixa Download directory descreve o caminho em que o drive será instalado. Não é preciso
alterá-lo. Clique no botão Next para seguir para a próxima tela. (ver Figura 18).
FIGURA 18
Nesta tela, o usuário acompanha a instalação do drive. Após o fim da instalação,
confirme a mensagem que aparecerá e encerre o processo. Depois da instalação do
PostgreSQL e do drive ODBC do mesmo, é preciso criar o usuário e a base de dados do
sistema. O nome destes é individual para cada instalação e será fornecido na entrega deste
manual ao responsável da empresa. Para realizar esta tarefa, o usuário precisa abrir o
pgAdmin, software de administração do PostgreSQL, que também foi instalado durante o
processo. Para abri-lo siga os seguintes passos:
Menu iniciar;
Programas;
PostgreSQL 8.3;
21
pgAdmin III.
Será aberta a tela do programa. (ver Figura 19).
FIGURA 19
Clique com o botão direito do mouse sobre o servidor PostgreSQL Database Server
para ativar o menu. (ver Figura 20).
FIGURA 20
Escolha a opção Conectar. É aberta a caixa de conexão. (ver Figura 21).
22
FIGURA 21
Digite a senha do usuário principal do PostgreSQL. Esta senha é a mesma é a mesma
definida no processo de instalação. Clique no botão OK. Se a senha estiver correta, um sinal
de + aparecerá à frente do servidor. Expanda este sinal para visualizar as árvores do pgAdmin.
(ver Figura 22).
FIGURA 22
Descrição das árvores:
Banco de Dados: é nesta árvore que se encontram todas as bases de dados criados para o
sistema;
Templates: esta árvore armazena as funções próprias do PostgreSQL;
Roles de Grupo: nesta árvore podem ser criados grupos de usuários;
Login Roles: árvore em que se encontram todos os usuários do banco de dados.
23
Para a montagem da base de dados do sistema SGTR Versão 1.0, é preciso primeiro
criar o usuário do mesmo. Clique com o botão direito do mouse sobre a árvore Login de Roles
e escolha a opção Nova Login de Role. É aberta a tela de criação de usuário. (ver Figura 23).
FIGURA 23
Na caixa Nome da Role informe o nome do usuário. Na caixa Senha entre com uma
nova senha para ele. Confirme a senha na caixa Senha (novamente). Marque todas as caixas
do grupo Privilégios de Role, conforme a figura acima. Isto é preciso somente para o super
usuário do banco. Clique no botão OK e o pgAdmin criará o novo usuário. Agora, é preciso
criar a base de dados. Clique com o botão direito do mouse sobre a árvore Banco de Dados e
escolha a opção Novo Banco de Dados. É aberta a tela de criação do banco. (ver Figura 24).
24
FIGURA 24
Na caixa Nome informe o nome da base de dados do sistema. Na caixa Dono, informe
o nome do usuário a quem a base de dados pertence. Este usuário é o mesmo criado a pouco.
Na caixa Codificação, procure na lista a opção SQL_ASCII. Na caixa Tablespace, procure na
lista a opção pg_default. Depois selecione a aba Privilégios. (ver Figura 25).
FIGURA 25
25
Marque a caixa ALL para dar todos os privilégios para a base de dados. Clique no
botão OK e o pgAdmin criará a base de dados. Agora, é preciso construir todas as tabelas e
funções que o sistema precisa. O arquivo que executa esta tarefa é o rest.bat. Ele se encontra
na pasta copiabd, a qual o usuário copiou para a unidade c:\ de sua máquina. Certifique-se
realmente de que esta pasta foi copiada para esta unidade. Abra esta pasta e localize o
arquivo. O usuário deve dar um duplo clique sobre o arquivo e o mesmo montará toda a
estrutura da base de dados ctrc. (ver Figura 26).
FIGURA 26
A estrutura do banco de dados do SGTR Versão 1.0 esta pronta. Agora é preciso o
usuário configurar o drive ODBC do PostgreSQL.
2
CONFIGURANDO O DRIVE ODBC
O drive ODBC (Open Database Connectivity) do PostgreSQL é de fundamental
importância para o funcionamento do SGTR Versão 1.0. É através dele que o gerenciador de
relatório do sistema se conecta com o banco de dados. Ele deve ser instalado no mesmo
processo de instalação do PostgreSQL, mas se o mesmo não ocorrer, ele pode ser encontrado
no site www.postgresql.org/br. Para configurar o drive OBDC no Windows XP, o
administrador deve seguir os seguintes passos:
Menu Iniciar;
Configurações;
Painel de controle;
Ferramentas administrativas;
Fonte de dados (ODBC);
Será aberta a seguinte janela. (ver Figura 27).
26
FIGURA 27
Se o drive ODBC PostegreSQL3.0 aparecer na aba Fontes de dados de usuário, basta
selecioná-lo e clicar em configurar. Caso contrário, é preciso adicioná-lo clicando no botão
Adicionar, onde é exibida uma lista com todos os drives para banco de dados instalados na
máquina. (ver Figura 28).
FIGURA 28
Depois de localizar o drive ODBC do PostgreSQL na lista, basta selecioná-lo e apertar
27
o botão Concluir. Depois clique no botão configurar da janela anterior e aparecerá a seguinte
tela: (ver Figura 29).
FIGURA 29
É preciso preencher os campos com a mesma configuração utilizada para configurar o
banco de dados do sistema. É preciso informar o mesmo usuário, a mesma senha e a mesma
base de dados. Com os campos preenchidos, é só clicar no botão Test, para verificar se a
conexão foi realizada corretamente, e depois no botão Save.
3
INSTALANDO O SGTR VERSÃO 1.0
O arquivo Setup.exe que instala o programa SGTR Versão 1.0 se encontra no DVD
que acompanha este manual e pode ser localizado pelo caminho Pacote
SGTR\SetupSGTR\Debug. Para iniciar a instalação, o administrador dará um duplo clique
sobre o ícone do arquivo, abrindo tela de instalação. (ver Figura 30).
28
FIGURA 30
Clique no botão Next para ir para a próxima tela. (ver Figura 31).
FIGURA 31
Nesta tela, o usuário pode escolher uma nova pasta para instalar o programa clicando
no botão Browse. É recomendável aceitar o caminho padrão definido pelo sistema. Após a
definição da pasta de instalação, clique no botão Next para seguir para a próxima tela. (ver
Figura 32).
29
FIGURA 32
Clique no botão Next para iniciar a instalação. A tela abaixo demonstra o processo de
instalação do sistema: (ver Figura 33).
FIGURA 33
30
Na tela abaixo clique no botão Close para finalizar a instalação: (ver Figura 34).
FIGURA 34
Para inicializar o sistema, o usuário tem que executar o arquivo do aplicativo (para
este sistema, o aplicativo se chama AdrianoPolzin) localizado no caminho especificado
durante a instalação. O usuário pode criar um atalho na área de trabalho clicando com o botão
direito do mouse sobre o arquivo e selecionando a opção enviar para a área de trabalho.
31
II
INICIALIZAÇÃO DO SISTEMA E TELA PRINCIPAL
Este capítulo descreve como o usuário deve inicializar o sistema e o funcionamento da
tela principal do sistema.
1
INICIALIZANDO O SGTR VERSÃO 1.0
A primeira inicialização do sistema tem que ser feita pelo administrador. É ele que
detém o login e senha do banco de dados. Quando o usuário clicar duas vezes sobre o ícone
do programa localizado na área de trabalho, é aberta a tela de login. (ver Figura 35).
FIGURA 35
Na caixa LOGIN DO USUÁRIO, o usuário informará seu nome de login, que deve ser
o mesmo do usuário do banco de dados, em letras minúsculas. Ao teclar Enter, o foco passará
para a caixa SENHA DO USUÁRIO, onde ele informará sua senha, também em letras
minúsculas, e que deve ser a mesma em que ele se conecta com o banco de dados. Com os
dois campos preenchidos, o botão CONECTAR será habilitado, bastando ao usuário clicar
neste botão para o sistema se conectar com o banco.
2
CONEXÃO COM O BANCO DE DADOS
Se o usuário informou corretamente os seus dados de login e senha, a tela principal
será exibida, junto com uma mensagem informando o nome do usuário e seu status dentro do
banco. O que o sistema faz neste momento, é enviar os dados através de uma conexão, onde
eles serão autenticados no banco. Se houver algum erro nestas informações, o banco
devolverá para o sistema, uma mensagem de falha na conexão, que será apresentada no
campo MENSAGEM DE CONEXÃO.
Após a conexão realizada, é feita uma analise de estatísticas de todas as tabelas do
banco de dados. Se houver alguma falha nesta análise, por falta de uma tabela, por exemplo, o
sistema não se iniciará, sendo exibida uma mensagem de erro no campo ANÁLISE DE
32
ESTATÍSTICA. Caberá ao administrador, verificar se todas as tabelas do banco foram
realmente criadas.
3
A TELA PRINCIPAL DO SISTEMA
Se tudo ocorrer sem problemas, a tela principal do sistema será inicializada. (ver
Figura 36).
FIGURA 36
A tela principal fornece acesso a todos os módulos do sistema. Ela é dividida em barra
de menus (ver Figura 37), que contém os menus dos módulos, e barra de ferramentas (ver
Figura 38), que fornecem eventos específicos do administrador do sistema.
1 2 3 4 5 6 7 8 9 10 11
FIGURA 37
Componentes da barra de menus. (ver Figura 37).
1
Acesso ao módulo Administrador;
2
Acesso ao módulo Pessoas;
3
Acesso ao módulo Veículo;
4
Acesso ao módulo Carga Tributária;
5
Acesso ao módulo Retirada;
33
6
Acesso ao módulo CRTC;
7
Acesso ao módulo Mensagem;
8
Acesso ao Módulo Usuário;
9 - Acesso ao Módulo Sistema;
10
Acesso ao Módulo Programa;
11
Acesso ao Módulo Ajuda.
1 2 3 4 5 6 7 8
FIGURA 38
Componentes da barra de ferramentas (ver Figura 38).
1
Criar um novo usuário;
2
Excluir um usuário;
3
Fornecer permissões a um usuário;
4
Excluir permissões de um usuário;
5
Fazer backup da base de dados;
6
Restaurar a base de dados;
7
Apresentação de dados sobre o sistema;
8
Fechar o sistema.
O Módulo Administrador oferece ao administrador do sistema, acesso aos usuários
cadastrados no mesmo e ao histórico dos eventos realizados na base de dados. O acesso a este
módulo só e permitido aos usuários com o nível de Administrador. O Módulo Pessoa oferece
acesso ao cadastro de Estados, Cidades e Pessoas Físicas e Jurídicas. O Módulo Veículo
oferece acesso aos cadastros de Tipos de Veículos, Veículos, Semi-Reboques, Transportador
e controle da Seguradora. O Módulo Carga Tributária oferece suporte aos cadastros das faixas
do IRRF (Imposto de Renda Retido na Fonte), dos Códigos Fiscais e das taxas do ICMS
(Imposto de Circulação de Mercadorias e Serviços). O Módulo de Retirada oferece acesso aos
cadastros de Produtos, Pedidos, Programação de Retirada e Ordem de Coleta. O Módulo
CTRC (Conhecimento de Transporte Rodoviário e Cargas) oferece acesso ao cadastro e
emissão do CTRC. O Módulo Mensagem oferece acesso ao cadastro de Mensagens. O
Módulo Usuário permite a criação e exclusão de usuários do sistema, como fornecimento e
34
retirada de permissões de acesso dos mesmos (mesmas funções dos botões 1, 2, 3 e 4 da
Figura 38). O Módulo Sistema permite copiar a base de dados (botão 5 da Figura 38),
restaurar a mesma (botão 6 da Figura 38) e fazer uma atualização das estatísticas do banco de
dados. O Módulo Programa fornece acesso a dado sobre o sistema (botão 7 da Figura 38), a
sair do programa (botão 8 da Figura 38) e a troca de usuário. O Módulo Ajuda acessa este
manual em sua forma digital.
35
III
MÓDULO DE GERENCIAMENTO DE PESSOAS FISICAS E JURÍDICAS
Este capítulo apresenta como o usuário gerenciará o cadastro das tabelas Estado,
Cidade e Pessoa Física e Jurídica, inserindo, atualizando, excluindo, filtrando dados e gerando
relatórios.
1
CADASTRO DE ESTADO
O cadastro de Estado tem a função de armazenar os estados brasileiros que servirão de
base para a tabela Cidade. Neste cadastro o usuário poderá inserir, atualizar, excluir e
selecionar os dados de um Estado. Ele também fornece um relatório geral desta tabela. A tela
a seguir apresenta a tela inicial deste cadastro. (ver Figura 39).
FIGURA 39
A tela é composta pela barra de menus (ver Figura 40), barra de ferramentas, (ver
Figura 41), o componente fichário (ver Figura 42), onde a aba ativa no momento é de
REGISTROS, e o grupo REGISTROS ESTADOS (ver Figura 43), onde são visualizados os
registros da tabela.
1 2 3
FIGURA 40
36
Componentes da barra de menus (ver Figura 40):
1
Menu/Estado;
2
Menu/Filtrar;
3
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 11 12 13
FIGURA 41
Componentes da barra de ferramentas (ver Figura 41):
1 - Botão Novo;
2 - Botão Gravar;
3
Botão Atualizar;
4
Botão Excluir;
5
Botão Filtrar Por Nome;
6
Botão Filtrar Por UF;
7
Botão Cancelar;
8
Botão Fechar;
9
Botão Último Registro;
10
Botão Próximo Registro;
11
Caixa com o número da chave primária do registro selecionado na tabela;
12
Botão Registro Anterior;
13
Botão Primeiro Registro;
1 2 3 4
FIGURA 42
Componentes do fichário (ver Figura 42):
1
Aba Registros;
2
Aba Editar;
3
Aba Filtros;
37
4
Aba Relatórios;
1 2
FIGURA 43
Composição da tabela (ver Figura 43):
1
Colunas da Tabela Estado;
2
Linhas da Tabela Estado;
1.1
INSERINDO UM NOVO ESTADO
Para inserir um novo registro na tabela Estado, o usuário pode clicar no botão NOVO
na barra de Ferramentas, ou pela barra de menus através do caminho Estado/Novo. Será
habilitado a aba EDITAR. (ver Figura 44).
Ao ser iniciada a tela, o campo ID ESTADO guarda o próximo valor da chave
primária da tabela, evitando o problema de violação de restrição desta. Os campos de edição
de dados são inicializados com valores em branco e todos eles são desabilitados. Somente o
campo da caixa NOME ESTADO é habilitado. O usuário sairá de um campo para outro
através da tecla enter, e todos os campos que forem obrigatórios, será informada uma
mensagem de CAMPO NÃO PODE SER EM BRANCO , retornando o foco para o próprio
campo.
Além da chave primária, obrigatória em todas as tabelas do banco de dados, a tabela
Estado possui mais duas restrições, os campos NOME ESTADO e UNIDADE FEDERAL.
Eles não podem ter seus valores duplicados no banco. Se houver uma tentativa de cadastrar
um novo Estado com um nome ou uma unidade federal já existente, o banco retornará uma
38
mensagem de violação de restrição e não permitirá a inserção do registro editado. Ao clicar
OK na mensagem, o sistema desabilitará a aba EDITAR e habilitará a aba REGISTROS.
Com todas as informações fornecidas, o botão Gravar será habilitado após a saída da
caixa UNIDADE FEDERAL. Ao clicar neste botão, o sistema chamará a função localizada na
camada do servidor e se não houver nenhuma violão de restrição, o registro será gravado na
tabela Estado, retornando ao usuário a mensagem ESTADO CADASTRADO . Ao clicar
Ok, o sistema abrirá novamente a aba EDITAR, para o usuário lançar um novo registro.
Caso o usuário precise mais lançar novos registros, basta ele clicar no botão da caixa
de ferramentas CANCELAR e a aba EDITAR será desabilitada e a aba REGISTROS
habilitada. Os registros já se encontram atualizados na tabela da aba REGISTROS.
FIGURA 44
1.2
ATUALIZANDO E FILTRANDO UM ESTADO
O sistema oferece dois métodos de o usuário recuperar uma informação para ser
atualizada ou excluída. O primeiro consiste em o usuário localizar o registro na tabela
localizada na aba REGISTROS. Ele pode navegar pela tabela através dos botões (9, 10, 12 e
13) de navegação localizados na barra de ferramenta (ver Figura 41). O usuário pode alterar a
forma pela a qual a tabela ordena os dados, clicando em cima de uma das colunas com o
campo a qual ele deseja ordenar (crescente e decrescente). Ao localizar o registro, ele precisa
39
efetuar um duplo clique sobre a linha em que ele se encontra, e a aba EDITAR será ativado,
com os campos preenchidos com os dados correspondentes. O usuário pode alterar os dados
do registro, com exceção do campo ID, respeitando as restrições impostas à tabela, mas o
botão ATUALIZAR só será habilitado na saída da caixa UNIDADE FEDERAL. Ao clicar
neste botão, se nenhuma violação de restrição ocorrer, será retornada a mensagem ESTADO
ALTERADO e o sistema retorna a aba REGISTROS.
O segundo método consiste em filtrar o registro na aba FILTROS (ver Figura 45).
Esta aba é ativada quando o usuário clicar nos botões FILTRAR POR NOME e FILTRAR
POR UF na barra de ferramentas (ver Figura 41) ou pelos menus Filtrar/Por Nome e
Filtrar/Por UF.
1 2 3 4 5 6
FIGURA 45
Componentes da aba FILTROS (ver Figura 45).
1
Botão FILTRAR;
2
Botão CARREGAR TODOS OS DADOS;
3
Botão IMPRIMIR;
4
Botão SAIR;
5
Caixa Filtro;
6
Tabela DADOS ESTADOS;
Se o usuário optar filtrar um registro pelo nome do Estado, a Caixa Filtro é carregada
com todos os nomes contidos na tabela Estado. O usuário pode digitar o nome na caixa, e
40
conforme ele preenche o campo, a função auto preenchimento procura por algum registro que
se assemelhe a edição escrita por ele. Ele pode também clicar na seta a direita da caixa e
procurar o registro em uma lista que aparece na tela.
Ao definir o nome do registro que se deseja filtrar, o usuário deve clicar no botão
FILTRAR para o registro ser carregado na tabela DADOS ESTADOS. Para recuperar este
registro para a aba EDITAR, o usuário precisa dar um duplo clique na linha em que ele se
encontra. O registro é recuperado para edição e o usuário procederá da mesma forma que ele
realizou no primeiro método de atualização. Se o usuário quiser gerar um relatório do registro
filtrado, é só ele clicar no botão IMPRIMIR (3) e a tela de visualização (ver Figura 46) de
impressão é ativada. O botão CARREGAR TODOS OS DADOS (2) preenche a tabela
DADOS ESTADOS com todos os registros da tabela Estado. O botão SAIR (4) desabilita a
aba FILTROS e habilita novamente a aba REGISTROS.
FIGURA 46
1.3
EXCLUINDO UM ESTADO
Para excluir um registro da tabela Estado, o usuário procederá da mesma forma em
que ele atualizou um registro. Ele pode escolher o registro a ser excluído na aba REGISTROS
ou filtrá-lo através da aba FILTROS. Em qualquer um dos métodos em que ele escolher,
assim que o registro é recuperado para a aba EDITAR, o botão EXCLUIR é habilitado. Ao
clicar neste botão, a função que executa a exclusão da tabela Estado na camada do servidor, é
chamada e o registro é excluído.
É importante notificar, que um registro somente é excluído do banco de dados, se o
mesmo não estiver fornecendo dados para outra tabela através da sua chave primária. A base
41
de dados do sistema é totalmente relacional, e uma tabela depende de outra. No caso da tabela
Estado, se um determinado registro estiver referenciado na tabela Cidade, este registro não
pode ser excluído, enquanto os registros da tabela Cidade que estiverem utilizando este
registro não forem excluídos. Isto ainda, se, estes registros da tabela Cidade, não estiverem
sendo utilizados por outras tabelas, como a tabela Pessoa Física/jurídica por exemplo. É por
este motivo que o usuário deve ter total consciência quando quiser excluir um registro de
qualquer tabela do banco.
O PostgreSQL realiza este controle automaticamente e ao verificar a tentativa de
exclusão de um registro de uma tabela que esteja sendo utilizado por outra, ele retorna uma
mensagem ao usuário, informando uma tentativa de violação da restrição da chave
estrangeira. Se o registro não estiver sendo utilizado por outra tabela é retornado para o
usuário a mensagem ESTADO EXCLUIDO , e ao clicar ok, a aba EDITAR é desabilitada e
a aba REGISTROS habilitada.
1.4
GERANDO O RELATÓRIO
O menu Arquivo/Gerar Relatório, localizado na barra de menus, gera o relatório geral
da tabela Estado (ver Figura 47).
FIGURA 47
42
2
CADASTRO DE CIDADES
O cadastro de Cidade tem a função de armazenar as cidades brasileiras, que servem de
base para as tabelas Pessoa Físico-Jurídico, Veículo, Semi-Reboque, entre outras. Neste
cadastro o usuário pode inserir, atualizar, excluir e selecionar os dados de uma Cidade. Ele
também fornece um relatório geral desta tabela. A tela inicial do cadastro é apresentada a
seguir. (ver Figura 48).
FIGURA 48
A tela é composta pela barra de menus (ver Figura 49), barra de ferramentas, (ver
Figura 50), o componente fichário (ver Figura 51), onde a aba ativa no momento é de
REGISTROS, e o grupo REGISTROS CIDADES (ver Figura 52), local em que são
visualizados os registros da tabela.
1 2 3
FIGURA 49
Componentes da barra de menus (ver Figura 49):
1
Menu/Cidade;
2
Menu/Filtrar;
3
Menu/Arquivo.
43
1 2 3 4 5 6 7 8 9 10 11 12 13
FIGURA 50
Componentes da barra de ferramentas (ver Figura 50):
1 - Botão Novo;
2 - Botão Gravar;
3
Botão Atualizar;
4
Botão Excluir;
5
Botão FILTRAR POR CIDADE;
6
Botão FILTRAR PO ESTADO;
7
Botão Cancelar;
8
Botão Fechar;
9
Botão Último Registro;
10
Botão Próximo Registro;
11
Caixa com o número da chave primária do registro selecionado na tabela;
12
Botão Registro Anterior;
13
Botão Primeiro Registro.
1 2 3 4
FIGURA 51
Abas do fichário (ver Figura 51):
1
Aba Registros;
2
Aba Editar;
3
Aba Filtros;
4
Aba Relatórios.
44
1 2
FIGURA 52
Componentes da tabela REGISTROS CIDADES (ver Figura 52):
1
Colunas da tabela;
2
Linhas tabela.
2.1
INSERINDO UMA NOVA CIDADE
Para inserir um novo registro na tabela Cidade, o usuário pode clicar no botão NOVO
da barra de Ferramentas ou escolher pelo menu o caminho Cidade/Novo. É ativado a aba
EDITAR. (ver Figura 53).
FIGURA 53
Ao ser iniciada a tela, o campo ID CIDADE guarda o próximo valor da chave primária
da tabela Cidade, evitando o problema de duplicação desta chave. Os campos de edição de
dados são inicializados com valores em branco, e todos eles são desabilitados, com exceção
da caixa NOME CIDADE. O usuário sairá de um campo para outro através da tecla enter, e
45
todos os campos obrigatórios, em uma tentativa do usuário de passá-lo como vazio, informam
a mensagem CAMPO NÃO PODE SER EM BRANCO , retornando o foco para o próprio
campo.
Além da chave primária, a tabela Cidade possui outra restrição, o campo NOME
CIDADE. Ele não pode ter seu valor duplicado no banco. Se houver uma tentativa de
cadastrar uma nova Cidade com um nome já existente, o banco retorna uma mensagem de
violação da restrição de campo único e não permite a inserção do registro na tabela. Ao clicar
OK na mensagem, o sistema desabilita a aba EDITAR e habilita a aba REGISTROS.
Uma característica importante desta tabela, é que ela herda dados da tabela Estado.
Quando o usuário estiver na caixa Estado, todos os nomes dos estados cadastrados no banco
são listados, e o usuário pode escolher um nome na lista.
Após a saída da caixa ESTADO, o botão GRAVAR é. Ao clicar neste botão, o sistema
chama a função localizada na camada do servidor e se não houver nenhuma violão de
restrição, o registro é gravado na tabela Cidade, retornando ao usuário a mensagem CIDADE
CADASTRADA . Ao clicar Ok, o sistema ativa novamente a aba EDITAR, para o usuário
lançar um novo registro.
Caso o usuário não precise lançar novos registros (excluir ou atualizar), basta ele clicar
no botão da barra de ferramentas CANCELAR e a aba EDITAR é desabilitada e a aba
REGISTROS habilitada. Os registros cadastrados estão atualizados na tabela REGISTROS
CIDADES.
2.2
ATUALIZANDO E FILTRANDO UMA CIDADE
Como já citado, o sistema oferece dois métodos de o usuário recuperar uma
informação para ser atualizada ou excluída, praticamente igual aos procedimentos da tabela
Estado. O primeiro método é através da tabela REGISTROS CIDADES, na aba
REGISTROS, onde o usuário pode dar um duplo clique na linha em que ele se encontra, para
ser recuperado para a aba EDITAR. O segundo é pela aba FILTROS (FIGURA 54), onde o
usuário pode filtrar um registro pelo nome da cidade ou pelo nome do estado a que ele
pertence. É bom notificar que se o usuário escolher filtrar registros de cidades por seu Estado,
a tabela DADOS CIDADES é carregada por todos os registros de cidades que pertencerem ao
estado selecionado. Com a tabela DADOS CIDADES preenchida é só o usuário dar um duplo
clique na linha em que o registro se encontra para ele ser recuperado para a aba EDITAR. Ao
clicar no botão ATUALIZAR, é chamada a função localizada na camada do servidor que
46
executa a atualização da tabela, e se nenhuma violação de restrição ocorrer, é retornada a
mensagem CIDADE ALTERADA e o sistema retorna a aba REGISTROS.
1 2 3 4 5 6
FIGURA 54
Componentes da aba FILTROS (FIGURA 54)
1
Botão FILTRAR;
2
Botão CARREGAR TODOS OS DADOS;
3
Botão IMPRIMIR;
4
Botão SAIR;
5
Caixa Filtro;
6
Tabela DADOS CIDADES;
Se o usuário precisar gerar um relatório do registro filtrado, ele deve clicar no botão
IMPRIMIR (3) e a tela de visualização de impressão (FIGURA 55) é ativada. O botão
CARREGAR TODOS OS DADOS (2) preenche a tabela DADOS CIDADES com todos os
registros da tabela Cidade. O botão SAIR (4) desabilita a aba FILTROS e habilita a aba
REGISTROS.
47
FIGURA 55
2.3
EXCLUINDO UMA CIDADE
Para excluir um registro da tabela Cidade, o usuário procederá da mesma forma em
que ele atualizou um registro. Ele pode escolher o registro a ser excluído na aba REGISTROS
ou filtrá-lo através da aba FILTROS. Em qualquer um dos métodos em que ele escolher,
assim que o registro é recuperado na aba EDITAR, o botão EXCLUIR é habilitado. Ao clicar
no botão, a função que executa a exclusão da tabela Cidade na camada do servidor é chamada
e o registro é excluído. É importante notificar que a mesma regra para a exclusão de um
registro na tabela Estado, também é aplicada para a exclusão de dados na tabela Cidade. Se o
registro não estiver sendo utilizado por outra tabela, é retornada ao usuário a mensagem
CIDADE EXCLUIDA e ao clicar ok, a aba EDITAR é desabilitada e a aba REGISTROS
habilitada.
2.4
GERANDO O RELATÓRIO
O menu Arquivo/Gerar Relatório, localizado na barra de menus, gera o relatório geral
da tabela Cidade (Figura 56).
48
FIGURA 56
3
CADATRO PESSOA FÍSICA E JURÍDICA
O cadastro de Pessoas Físicas e Jurídicas tem a função de armazenar dados dos
clientes, proprietários de veículos e motoristas de caminhão. Este cadastro é importante, pois
fornece dados para as tabelas de cadastro de veículos, semi-reboques, pedidos e ordens de
coletas. Neste cadastro o usuário pode inserir, atualizar, excluir e selecionar os dados tanto
das Pessoas Físicas, como das Pessoas Jurídicas. Ele também fornece um relatório geral da
tabela. A FIGURA 57 apresenta a tela inicial do cadastro.
FIGURA 57
49
A tela é composta pela barra de menus (FIGURA 58), barra de ferramentas, (FIGURA
59), o componente fichário (FIGURA 60), onde a aba ativa no momento é de REGISTROS, e
o grupo REGISTROS PESSOAS FÍSICAS/JURÍDICAS (FIGURA 61), onde se encontram as
tabelas PESSOA FÍSICA e PESSOA JURÍDICA.
1 2 3
FIGURA 58
Componentes da barra de menus (FIGURA 58):
1
Menu/Pessoa Física/Jurídica;
2
Menu/Filtrar;
3
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 11 12 13 141516 17 18 19 20 21
FIGURA 59
Componentes da barra de ferramentas (FIGURA 59):
1 - Botão Novo;
2 - Botão Gravar;
3
Botão Atualizar;
4
Botão Excluir;
5
Botão Cancelar;
6
Botão Fechar;
7
Botão Último Registro;
8
Botão Próximo Registro;
9
Caixa com o número da chave primária do registro selecionado na tabela;
10
Botão Registro Anterior;
11
Botão Primeiro Registro;
12
Botão FILTRAR PF POR NOME;
13
Botão FILTRAR PF POR CIDADE;
50
14
Botão FILTRAR PF POR ESTADO;
15
Botão FILTRAR PF POR CPF;
16
Botão FILTRAR PF POR RG;
17
Botão FILTRAR PJ POR NOME;
18
Botão FILTRAR PJ POR CIDADE;
19
Botão FILTRAR PJ POR ESTADO;
20
Botão FILTRAR PJ POR CNPJ;
21
Botão FILTRAR PJ POR INSCRIÇÃO ESTADUAL.
1 2 3 4
FIGURA 60
Abas do fichário (FIGURA 60):
1
Aba REGISTROS;
2
Aba EDITAR;
3
Aba FILTROS;
4
Aba RELATÓRIOS PESSOA FISÍCA/JURÍDICA.
1 2 3 4
FIGURA 61
Componentes do grupo REGISTROS PESSOAS FÍSICA/JURÍDICA:
1
Aba com a tabela de dados da PESSOA FÍSICA;
2
Aba com a tabela de dados da PESSOA JURÍDICA;
3
Colunas da tabela;
51
4
Linhas da tabela.
3.1
INSERINDO UMA NOVA PESSOA FÍSICA
Para inserir uma nova Pessoa Física no banco de dados, o usuário deve clicar no botão
NOVO, ou pelo menu Pessoa Física Jurídica/Novo. É habilitado a aba EDITAR, conforme a
FIGURA 62.
FIGURA 62
Ao ser iniciada a tela, o campo ID PESSOA guarda o próximo valor da chave primária
da tabela Pessoa Física/Jurídica, evitando a duplicação da mesma. Os campos de edição de
dados são inicializados com valores em branco, e todos eles são desabilitados, com exceção
da caixa NOME RAZÃO. O usuário sai de um campo para outro através da tecla enter e todos
os campos obrigatórios, na tentativa do usuário de passá-los como vazio, é informada a
mensagem de CAMPO NÃO PODE SER EM BRANCO , retornando o foco para o próprio
campo.
Além da chave primária, a tabela Pessoa Física/Jurídica possui outras restrições, que
incluem o campo NOME/RAZÃO, numero do CPF, numero do RG e numero da Habilitação
para Pessoas Físicas, e numero do CNPJ e numero da Inscrição Estadual para Pessoas
Jurídicas. Estes campos não podem ter seus valores duplicados no banco. Se houver uma
tentativa de cadastrar uma nova Pessoa Física ou Jurídica com um destes campos já
existentes, o banco retorna a mensagem de tentativa de violação da restrição de campo único,
52
e não permite a inserção do registro. Ao clicar OK na mensagem, o sistema desabilita a aba
EDITAR e habilita a aba REGISTROS.
O usuário inicia a edição de um novo registro pela caixa NOME/RAZÃO, depois pela
caixa ENDEREÇO, depois pela caixa BAIRRO. Na caixa CIDADE, é fornecida uma lista
com todas as cidades cadastradas no Banco, e o usuário deve clicar na seta a direita da caixa
para exibir a lista. Ao selecionar uma cidade, o usuário deve teclar enter para confirmar a
seleção, trazendo automaticamente para a caixa ESTADO, o nome do Estado a qual a Cidade
pertence. Na seqüência o usuário editará as caixas CEP, CAIXA POSTAL, TELEFONE,
CELULAR e EMAIL. A DATA CADASTRO é gerada automaticamente pelo sistema. Na
caixa TIPO PESSOA, o usuário tem duas opções, FISICA ou JURIDICA. O usuário deve
optar pela opção FÍSICA. Ao teclar enter nesta caixa, a aba FISICA é habilitada, e o usuário
editará na seqüência as caixas CPF, RG, DATA NASCIMENTO, CNH, PRONTUÁRIO (da
CNH), LETRA (da CNH), DATA VALIDADE (da CNH), NOME DO PAI, NOME DA
MÃE, NUMERO DE DEPENDENTES e INSCRIÇÃO INSS.
Somente após a saída desta última caixa é que o botão GRAVAR é habilitado. Ao
clicar neste botão, o sistema chama a função localizada na camada do servidor, e se não
houver nenhuma violão de restrição, o registro é gravado na tabela Pessoa Física/Jurídica e os
dados que são específicos somente a Pessoa Física, são gravados na tabela Pessoa Física. É
retornada ao usuário a mensagem PESSOA CADASTRADA . Ao clicar Ok, o sistema
ativará novamente a aba EDITAR, para o usuário lançar um novo registro.
Caso o usuário não precise lançar novos registros (excluir ou atualizar), basta ele clicar
no botão da caixa de ferramentas CANCELAR e a aba EDITAR é desabilitada e a aba
REGISTROS habilitada. Os registros cadastrados estão atualizados na tabela REGISTROS
PESSOA FÍSICA/JURÍDICA.
3.2
INSERINDO UMA NOVA PESSOA JURÍDICA
Para inserir uma nova Pessoa Jurídica no banco de dados, o usuário deve seguir os
mesmos procedimentos realizados para inserir uma nova Pessoa Física. A diferença está no
fato de o usuário, quando for escolher uma opção na caixa TIPO PESSOA, ele deve optar pela
opção JURIDICA, a qual apresenta o formulário conforme a Figura 63.
53
FIGURA 63
Com a escolha da opção JURIDICA, a aba JURIDICA é habilitada. O usuário editará
as caixas do numero do CNPJ, do numero da INSCRIÇÃO ESTADUAL e a caixa do NOME
DO CONTATO (Opcional). Somente após a saída desta última caixa é que o botão
GRAVAR é habilitado. Ao clicar neste botão, o sistema chama a função localizada na camada
do servidor e se não houver nenhuma violão de restrição, o registro é gravado na tabela
Pessoa Física/Jurídica e os dados que são específicos somente a Pessoa Jurídica são gravados
na tabela Pessoa Jurídica. É retornado ao usuário a mensagem PESSOA CADASTRADA .
Ao clicar Ok, o sistema abrirá novamente a aba EDITAR, para o usuário lançar um novo
registro.
Caso o usuário não precise mais lançar novos registros (excluir ou atualizar), basta ele
clicar no botão da caixa de ferramentas CANCELAR, e a aba EDITAR é desabilitada e a aba
REGISTROS habilitada. Os registros cadastrados estão atualizados na tabela REGISTROS
PESSOA FÍSICA/JURÍDICA.
3.3
ATUALIZANDO E FILTRANDO UMA PESSOA FÍSICA OU JURÍDICA
Os procedimentos que o usuário utilizará para atualizar um registro da tabela Pessoa
Física/Jurídica são praticamente os mesmos dos cadastros já citados. O usuário pode
selecionar um registro na aba REGISTROS, onde se encontra as tabela com os dados das
Pessoas Físicas (aba PESSOA FÍSICA) e a tabela com os dados das Pessoas Jurídicas (aba
PESSOA JURIDICA), conforme FIGURA 61. O usuário deve dar um duplo clique no
54
registro que ele deseja atualizar e os dados são recuperados para a aba EDITAR. Conforme o
tipo da pessoa (Física ou Jurídica) o formulário se apresenta como a FIGURA 62 ou como a
FIGURA 63.
O botão Atualizar somente é habilitado após a saída da última caixa de edição
(INSCRIÇÃO INSS para Pessoa Física e NOME CONTATO para Pessoa Jurídica). Ao clicar
neste botão os dados são remetidos ao banco de dados para serem atualizados. Se os mesmos
estiverem corretos e nenhuma restrição for quebrada, uma mensagem de PESSOA
ATUALIZADA é enviada ao usuário. Ao clicar OK, a aba EDITAR é desabilitado, e a aba
REGISTROS é habilitada.
O usuário também poderá selecionar um registro para ser alterado através da aba
FILTROS, conforme a FIGURA 64. O usuário pode filtrar uma Pessoa Física pelo nome, pela
Cidade, pelo Estado, pelo numero do CPF e pelo numero do RG. Uma Pessoa Jurídica pode
ser filtrada pelo nome, pela Cidade, pelo Estado, pelo número do CNPJ e pelo número da
Inscrição Estadual. Os filtros podem ser ativados pelos botões da barra de ferramentas
(FIGURA 59) ou pelos menus Filtrar/Pessoa Física e Filtrar/Pessoa Jurídica.
1 2 3 4 5 6 7
FIGURA 64
Componentes da aba FILTROS (FIGURA 64)
1
Botão FILTRAR;
2
Botão CARREGAR TODOS OS DADOS PF;
55
3
Botão CARREGAR TODOS OS DADOS PJ;
4
Botão IMPRIMIR;
5
Botão SAIR;
6
Caixa Filtro;
7
Tabela com o registro filtrado;
Quando o usuário clica em uma das opções de filtro de dados, a caixa Filtro (6) é
preenchida com os campos específicos do filtro escolhido. Se o usuário escolher filtrar uma
pessoa pelo numero do seu CPF, a caixa Filtro recebe todos os campos de CPF armazenados
no banco. O usuário selecionará um entre as opções e clicara no botão FILTRAR (1) para
realizar o filtro. Com o registro filtrado, é só o usuário dar um duplo clique na linha em que
ele se encontra na tabela DADOS PESSOAS, e ele é recuperado para a aba EDITAR.
Se o usuário precisar gerar um relatório do registro filtrado, ele deve clicar no botão
IMPRIMIR (4), e a tela de visualização de impressão (FIGURA 65) é ativada. O botão
CARREGAR TODOS OS DADOS PF (2) preenche a tabela DADOS PESSOAS(7) com
todos os registros de Pessoas Físicas. O botão CARREGAR TODOS OS DADOS PJ (30)
preenchera a tabela DADOS PESSOAS (7) com todos os registros de Pessoas Jurídicas. O
botão SAIR (5) desaba a aba FILTROS e habilita novamente a aba REGISTROS.
FIGURA 65
56
3.4
EXCLUINDO UMA PESSOA FÍSICA OU JURÍDICA
Para excluir um registro da tabela Pessoa Física/Jurídica, o usuário procederá da
mesma forma em que ele atualizou um registro. Ele pode escolher o registro a ser excluído na
aba REGISTROS, ou filtrá-lo através da aba FILTROS. Em qualquer um dos métodos, assim
que o registro é recuperado na aba EDITAR, o botão EXCLUIR é habilitado. Ao clicar neste
botão, a função que executa a exclusão da tabela Pessoa Física/Jurídica na camada do servidor
é chamada e o registro é excluído.
É importante notificar que a mesma regra para a exclusão de um registro para as outras
tabelas, também é aplicada para a exclusão de dados na tabela Pessoa Física/Jurídica. Se o
registro não estiver sendo utilizado por outra tabela, é retornada ao usuário a mensagem
PESSOA EXCLUIDA , e ao clicar ok, a aba EDITAR é desabilitada e a aba REGISTROS é
habilitada.
3.5
GERANDO O RELATÓRIO GERAL DE PESSOAS FÍSICAS OU JURÍDICAS
O usuário pode gerar um relatório de Pessoas Físicas através do menu Arquivo/Gerar
Relatório/Pessoa Física. Para gerar um relatório de Pessoas Jurídicas, ele deve acessar o menu
Arquivo/Gerar Relatório/Pessoa Jurídica. Em ambos é habilitada a aba RELATÒRIO,
conforme a FIGURA 66.
FIGURA 66
57
IV
MÓDULO DE GERENCIAMENTO DE VEÍCULOS
O Módulo de Gerenciamento de veículos permite ao usuário inserir, atualizar, excluir,
selecionar e filtrar dados dos Tipos de Veículo, Veículos, Semi-Reboques, Transportadores e
Controle da Liberação do Seguro.
1
CADASTRO TIPO DE VEÍCULO
O cadastro de Tipo de Veículo tem a finalidade de armazenar os diferentes tipos de
veículos de carga existentes no Brasil e também os que possam ser lançados no futuro. Tipos
de Veículos engloba os diferentes modelos de caminhões, como os diferentes tipos de semi-
reboques. Este cadastro vai alimentar a tabela Veículos, que cadastra os cavalos mecânicos e
trucks, e também a tabela de cadastro de Semi-Reboques. Neste cadastro o usuário pode
inserir, atualizar, excluir e selecionar os dados dos Tipos de Veículos. Ele também fornece um
relatório geral desta tabela. A FIGURA 67 apresenta a tela inicial do cadastro de Tipo de
Veículos:
FIGURA 67
A tela é composta pela barra de menus (FIGURA 68), barra de ferramentas, (FIGURA
69), o componente fichário (FIGURA 70), onde a aba ativa no momento é de REGISTROS e
58
o grupo REGISTROS TIPOS VEÍCULOS, onde se encontra a tabela do cadastro (FIGURA
71):
1 2 3
FIGURA 68
Componentes da barra de menus (FIGURA 68):
1
Menu/Tipo Veículo;
2
Menu/Filtrar;
3
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 11 12
FIGURA 69
Componentes da barra de ferramentas (FIGURA 69):
1 - Botão Novo;
2 - Botão Gravar;
3
Botão Atualizar;
4
Botão Excluir;
5
Botão FILTRAR POR DESCRIÇÃO;
6
Botão Cancelar;
7
Botão Fechar;
8
Botão Último Registro;
9
Botão Próximo Registro;
10
Caixa com o número da chave primária do registro selecionado na tabela;
11
Botão Registro Anterior;
12
Botão Primeiro Registro;
59
1 2 3 4
FIGURA 70
Abas do fichário (FIGURA 70):
1
Aba REGISTROS;
2
Aba EDITAR;
3
Aba FILTROS;
4
Aba RELATÓRIO.
1 2
FIGURA 71
Componentes da tabela REGISTROS TIPOS DE VEÍCULOS (FIGURA 71):
1
Colunas da tabela;
2
Linhas de Registros da tabela;
1.1
INSERINDO UM NOVO TIPO DE VEÍCULO
Para inserir uma novo Tipo de Veículo no banco de dados, o usuário deve clicar no
botão NOVO, ou pelo menu Tipo Veículo/Novo. É habilitada a aba EDITAR, conforme a
FIGURA 72. Ao ser iniciada a tela, o campo ID TIPO VEÍCULO guarda o próximo valor da
chave primária da tabela Tipo Veículo, evitando o problema de duplicação da mesma. A caixa
DESCRIÇÃO DO TIPO VEÍCULO e inicializada com um valor em branco, e ela é habilitada
para a edição. Este campo não poder ser vazio, e se o usuário tentar passá-lo assim, o sistema
o informará com a mensagem de CAMPO NÃO PODE SER EM BRANCO , retornando o
foco para o próprio campo.
60
FIGURA 72
Além da chave primária, a tabela Pessoa Tipo Veículo possui como restrição o campo
DESCRIÇÃO DO TIPO VEÍCULO. Este campo é do tipo único, e não pode ter seu valor
duplicado no banco. Se houver uma tentativa de cadastrar um novo Tipo de Veículo com um
campo DESCRIÇÃO já existente, o banco retorna a mensagem de violação da restrição do
campo único e não permitirá a inserção do registro. Ao clicar OK na mensagem, o sistema
desabilita a aba EDITAR e habilita a aba REGISTROS.
Somente após a saída da caixa DESCRIÇÃO TIPO VEÍCULO é que o botão
GRAVAR é habilitado. Ao clicar no botão, o sistema chama a função localizada na camada
do servidor, e se não houver nenhuma violação de restrição, o registro é gravado na tabela
Tipo Veículo, e é retornada ao usuário a mensagem TIPO VEÍCULO CADASTRADO . Ao
clicar Ok, o sistema abre novamente a aba EDITAR, para o usuário lançar um novo registro.
Caso o usuário não precise mais lançar novos registros (excluir ou atualizar), basta ele
clicar no botão da caixa de ferramentas CANCELAR e a aba EDITAR é desabilitada e a aba
REGISTROS habilitada. Os registros cadastrados estão atualizados na tabela REGISTROS
TIPOSVEÍCULOS.
1.2
ATUALIZANDO E FILTRANDO UM TIPO DE VEÍCULO
O procedimento que o usuário utilizará para atualizar um registro da tabela Tipo
Veículo segue os mesmos procedimentos das tabelas anteriores. O usuário pode selecionar um
registro na aba REGISTROS, onde se encontra a tabela com os dados dos tipos de veículos. O
61
usuário deve dar um duplo clique no registro que ele deseja atualizar e os dados são
recuperados para a aba EDITAR.
O botão ATUALIZAR somente é habilitado após a saída da caixa DESCRIÇÃO DO
TIPO DE VEÍCULO. Ao clicar no botão os dados são remetidos ao banco de dados para
serem atualizados. Se os mesmos estiverem corretos e nenhuma restrição for quebrada, uma
mensagem de TIPO DE VEÍCULO ATUALIZADO é retornada ao usuário. Ao clicar OK, a
aba EDITAR é desabilitado e a aba REGISTROS habilitada.
O usuário também pode selecionar um registro para ser alterado através da aba
FILTROS, conforme a FIGURA 73. Esta tabela realiza o filtro somente pela descrição do tipo
de veículo. Este filtro pode ser acionado pelo usuário pelo botão FILTRAR POR
DESCRIÇÃO ou pelo menu Filtrar/Por Descrição. Ao acionar o filtro, todos os valores do
campo descrição são listados na caixa Filtro. O usuário após selecionar uma opção na lista,
deve clicar no botão FILTRAR, e os dados do registro filtrado são carregados na tabela
DADOS TIPO VEÍCULO. Para recuperar o registro para a aba Editar, basta somente dar um
duplo clique em cima da linha que ele se encontra.
1 2 3 4 5 6
FIGURA 73
Componentes da aba FILTROS (FIGURA 73)
1
Botão FILTRAR;
62
2
Botão CARREGAR TODOS OS DADOS;
3
Botão IMPRIMIR;
4
Botão SAIR;
5
Caixa Filtro;
6
Tabela DADOS TIPO VEÍCULO;
Se o usuário precisar gerar um relatório do registro filtrado, ele deve clicar no botão
IMPRIMIR (3), e a tela de visualização de impressão (FIGURA 74) é ativada. O botão
CARREGAR TODOS OS DADOS (2) preenche a tabela DADOS TIPO VEÍCULO (6) com
todos os registros de Tipo de Veículo cadastrado no banco. O botão SAIR (4) desabilita a aba
FILTROS e habilita novamente a aba REGISTROS.
FIGURA 74
1.3
EXCLUINDO UM TIPO DE VEÍCULO
Para excluir um registro da tabela Tipo de Veículo, o usuário procederá da mesma
forma em que ele atualizou um registro. Ele pode escolher o registro a ser excluído na aba
REGISTROS, ou filtrá-lo através da aba FILTROS. Em qualquer um dos métodos, assim que
o registro é recuperado para a aba EDITAR, o botão EXCLUIR é habilitado. Ao clicar neste
botão, a função que executa a exclusão da tabela Tipo de Veículo na camada do servidor é
chamada e o registro é excluído.
63
É importante notificar que a mesma regra para a exclusão de um registro para as outras
tabelas, também é aplicada para a exclusão de dados na tabela Tipo de Veículo. Se o registro
não estiver sendo utilizado por outra tabela, é retornada ao usuário a mensagem TIPO DE
VEÍCULO EXCLUIDO , e ao clicar ok, a aba EDITAR é desabilitado e a aba REGISTROS é
habilitada.
1.4
GERANDO O RELATÓRIO GERAL DE TIPOS DE VEÍCULO
O usuário pode gerar um relatório de Tipo de Veículo através do menu Arquivo/Gerar
Relatório. Ao ser acionado pelo usuário, a aba RELATÒRIO (FIGURA 75) é ativada.
FIGURA 75
2- CADASTRO DE CAVALO MECÂNICO E TRUCK (VEÍCULO)
O cadastro de Cavalo Mecânico e Truck têm a finalidade de cadastrar na tabela
Veículo, os caminhões que prestam serviço para a empresa, ou caminhões que compõem a
frota própria da mesma. A diferença entre o cavalo mecânico e o truck, esta no fato de o
primeiro ser engatado a um semi-reboque para poder transportar cargas, enquanto no segundo,
a carroceria é parte integrada do veículo. Entre os dois, também, existe a diferença da
capacidade de carga, que no primeiro, para o transporte rodoviário, pode carregar até 75
toneladas de peso bruto e o segundo, também para o transporte rodoviário, até 25 toneladas de
peso bruto. Este cadastro fornece dados principalmente para a tabela Transportador. Neste
cadastro o usuário pode inserir, atualizar, excluir e selecionar os dados dos veículos. Ele
64
também fornece um relatório geral da tabela. A FIGURA 76 apresenta a tela inicial do
cadastro de Veículos:
FIGURA 76
A tela é composta pela barra de menus (FIGURA 77), barra de ferramentas, (FIGURA
78), o componente fichário (FIGURA 79), onde a aba ativa no momento é a de REGISTROS,
e o grupo REGISTROS DE CAVALO MECÂNCIO/TRUCK, onde se encontra a tabela
(FIGURA 80) com os dados da tabela:
1 2 3
FIGURA 77
Componentes da barra de menus (FIGURA 77):
1
Menu/Veículo;
2
Menu/Filtrar;
3
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
FIGURA 78
65
Componentes da barra de ferramentas (FIGURA 78):
1 - Botão Novo;
2 - Botão Gravar;
3
Botão Atualizar;
4
Botão Excluir;
5
Botão Cancelar;
6
Botão Fechar;
7
Botão Último Registro;
8
Botão Próximo Registro;
9
Caixa com o número da chave primária do registro selecionado na tabela;
10
Botão Registro Anterior;
11
Botão Primeiro Registro;
12
Botão FILTRAR POR PLACA;
13
Botão FILTRAR POR CHASSI;
14
Botão FILTRAR POR RENAVAN;
15
Botão FILTRAR POR TIPO DE VEÍCULO;
16
Botão FILTRAR POR PROPRIETÁRIO;
17
Botão FILTRAR POR ANO;
18
FILTRAR POR CIDADE;
19
Botão FILTRAR POR ESTADO.
1 2 3 4
FIGURA 79
Abas do fichário (FIGURA 79):
1
Aba REGISTROS;
2
Aba EDITAR;
3
Aba FILTROS;
4
Aba RELATÓRIO.
66
1 2
FIGURA 80
Componentes da tabela REGISTROS DE CAVALO MECÂNICO/TRUCK (FIGURA
80):
1
Colunas da tabela;
2
Linhas de Registros da tabela.
2.1
INSERINDO UM NOVO VEÍCULO
Para inserir uma novo Veículo no banco de dados, o usuário deve clicar no botão
NOVO ou pelo menu Veículo/Novo. É ativado a aba EDITAR, conforme a FIGURA 81.
FIGURA 81
Ao ser iniciada a tela, o campo ID VEÍCULO guarda o próximo valor da chave
primária da tabela Veículo, evitando a duplicação da mesma. Todas as caixas são inicializadas
e desabilitadas, sendo somente habilitada a caixa PLACA. Os campos de edição obrigatória,
ou seja, que não podem ser vazios informará a mensagem CAMPO NÃO PODE SER EM
BRANCO se o usuário tentar passá-los em branco, retornando o foco para o próprio campo.
67
O usuário entrará com o número da placa no caixa PLACA. A caixa
EMPLACAMENTO é preenchida com os nomes de todas as cidades cadastradas na tabela
Cidade. Ao selecionar uma cidade na lista e teclar enter, a caixa ESTADO é preenchida com o
nome do Estado a qual a Cidade pertence. Depois, o usuário entrará com o ano do veículo na
caixa ANO, com o número do chassi na caixa CHASSI, a marca do veículo na caixa
MARCA, a cor do veículo na caixa COR e o número do Renavan na caixa RENAVAN. A
caixa DATA CADASTRO é preenchida pelo sistema pela data atual. A caixa TIPO
VEÌCULO lista todos os tipos de veículos cadastrados no banco, bastando ao usuário
selecionar um tipo na lista. A caixa PROPRIETÁRIO lista os nomes de todas as Pessoas
Físicas e Jurídicas cadastradas no banco. O usuário deve selecionar qual pessoa é proprietária
do veículo. Na saída desta última caixa é habilitado o botão GRAVAR.
Além da chave primária, a tabela Veículo possui outras restrições. O número da Placa,
o número do Chassi e o número do Renavan são campos únicos, não podendo ser duplicados
em nenhum outro registro da tabela. Se houver uma tentativa de cadastrar um novo Veículo
duplicando estes campos, o banco retornará uma mensagem identificando a violação da
restrição e não permitirá a inserção do registro. Ao clicar OK na mensagem, o sistema
desabilitará a aba EDITAR e habilitará a aba REGISTROS.
Ao clicar no botão GRAVAR, o sistema chama a função localizada na camada do
servidor, e se não houver nenhuma violação de restrição, o registro é gravado na tabela,
retornando ao usuário a mensagem VEÍCULO CADASTRADO . Ao clicar Ok, o sistema
abre novamente a aba EDITAR, para o usuário lançar um novo registro.
Caso o usuário não precise lançar novos registros (ou excluir ou atualizar), basta ele
clicar no botão da caixa de ferramentas CANCELAR, e a aba EDITAR é desabilitada e a aba
REGISTROS habilitada. Os registros cadastrados estão atualizados na tabela REGISTROS
CAVALO MECÂNICO/TRUCK.
2.2
ATUALIZANDO E FILTRANDO UM VEÍCULO
O procedimento para atualizar um registro da tabela Veículo segue os mesmos
procedimentos das tabelas anteriores. O usuário pode selecionar um registro na aba
REGISTROS, onde se encontra a tabela com os dados dos veículos. O usuário deve dar um
duplo clique no registro que ele deseja atualizar e os dados são recuperados para a aba
EDITAR.
68
O botão Atualizar somente é habilitado após a saída da caixa PROPRIETÁRIO. Ao
clicar no botão, os dados são remetidos ao banco de dados para serem atualizados. Se os
mesmos estiverem corretos e nenhuma restrição for quebrada, uma mensagem de VEÍCULO
ATUALIZADO é retornada ao usuário. Ao clicar OK, a aba EDITAR é desabilitado e a aba
REGISTROS habilitada.
O usuário também pode selecionar um registro para ser alterado através da aba
FILTROS, conforme a FIGURA 82. Esta tabela realiza filtros por Placa, Chassi, Renavan,
Tipo Veículo, Proprietário, Ano, Cidade e Estado. Os filtros podem ser acionados pelo
usuário pelos botões localizados na barra de ferramentas (FIGURA 78) ou pelo menu Filtrar,
localizado na barra de menu (FIGURA 77).
Ao ser executado qualquer um dos filtros possíveis, a caixa filtro será preenchida com
os valores correspondentes do filtro. Como exemplo, se o usuário realizar um filtro por placas,
todas as placas cadastradas na tabela veículo serão listadas na caixa filtro. O usuário após
selecionar uma opção na lista, deve clicar no botão Filtro, e os dados do registro filtrado serão
carregados na tabela DADOS CAVALO MECÂNICO/TRUCK. Para carregar o registro para
a aba Editar, basta somente dar um duplo clique em cima da linha que se encontra o registro.
1 2 3 4 5 6 7 8
FIGURA 82
Componentes da aba FILTROS (FIGURA 82):
1
Botão FILTRAR;
69
2
Botão CARREGAR TODOS OS DADOS;
3
Botão IMPRIMIR;
4
Botão SAIR;
5
Caixa Filtro;
6
Caixa ANO 1;
7
Caixa ANO 2;
8
Tabela DADOS CAVALO MECÂNICO/TRUCK.
Ao ser executado qualquer um dos filtros, a caixa filtro é preenchida pelos valores
correspondentes do filtro. Como exemplo, se o usuário realizar um filtro por placas, todas que
estejam cadastradas na tabela veículo são listadas na caixa filtro. O usuário após selecionar
uma opção na lista, deve clicar no botão FILTRAR, e os dados do registro filtrado são
carregados na tabela DADOS CAVALO MECÂNICO/TRUCK. Para recuperar o registro
para a aba EDITAR, basta somente dar um duplo clique sobre a linha que se encontra o
registro.
Se o usuário precisar gerar um relatório do registro filtrado, é só ele clicar no botão
IMPRIMIR (3), e a tela de visualização de impressão (FIGURA 83) é ativada. O botão
CARREGAR TODOS OS DADOS (2) preenche a tabela (6) com todos os registros dos
veículos cadastrados no banco. O botão SAIR (4) desabilita a aba FILTROS e habilita a aba
REGISTROS.
FIGURA 83
70
2.3
EXCLUINDO UM VEÍCULO
Para excluir um registro da tabela Veículo, o usuário procederá da mesma forma em
que ele atualizou um registro. Ele pode escolher o registro a ser excluído na aba
REGISTROS, ou filtrá-lo através da aba FILTROS. Em qualquer um dos métodos em que ele
escolher, assim que o registro é carregado na aba EDITAR, o botão EXCLUIR é habilitado.
Ao clicar no botão, a função que executa a exclusão da tabela Veículo na camada do servidor
é chamada e o registro é excluído.
É importante notificar que a mesma regra para a exclusão de um registro para as outras
tabelas, também é aplicada para a exclusão de dados na tabela Veículo. Se o registro não
estiver sendo utilizado por outra tabela, é retornada ao usuário a mensagem VEÍCULO
EXCLUIDO , e ao clicar ok, a aba EDITAR é desabilitada e a aba REGISTROS É habilitada.
2.4
GERANDO O RELATÓRIO GERAL DE VEÍCULOS
O usuário pode gerar um relatório da tabela Veículo através do menu Arquivo/Gerar
Relatório. Ao ser acionado pelo usuário é habilitada a aba RELATÒRIO, conforme a
FIGURA 84.
FIGURA 84
71
3
CADASTRO DE SEMI-REBOQUES
O cadastro de Semi-Reboque tem a finalidade de cadastrar as carretas (semi-reboque)
que são utilizadas pelos veículos que prestam serviços para a empresa. Existem diferentes
tipos de semi-reboques para diferentes tipos de produtos transportados, e este cadastro permite
ao usuário identificar qual o tipo de semi-reboque esta sendo cadastrado. Os semi-reboques
também se diferenciam pelo numero de eixos que possuem como a capacidade de carga
permitida para eles, dependendo também, a qual tipo de veículo ele esta engatado. Este
cadastro, assim como o do Veículo, fornece dados principalmente para a tabela Transportador.
Neste cadastro o usuário pode inserir, atualizar, excluir e selecionar os dados dos semi-
reboques. Ele também fornece um relatório geral desta tabela. A FIGURA 85 apresenta a tela
inicial do cadastro:
FIGURA 85
A tela é composta pela barra de menus (FIGURA 86), barra de ferramentas, (FIGURA
87), o componente fichário (FIGURA 88), onde a aba ativa no momento é a de REGISTROS,
e o grupo REGISTROS DE SEMI-REBOQUES, onde se encontra a tabela (FIGURA 89) do
cadastro:
1 2 3
FIGURA 86
72
Componentes da barra de menus (FIGURA 86):
1
Menu/Semi-Reboque;
2
Menu/Filtrar;
3
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
FIGURA 87
Componentes da barra de ferramentas (FIGURA 87).
1 - Botão Novo;
2 - Botão Gravar;
3
Botão Atualizar;
4
Botão Excluir;
5
Botão Cancelar;
6
Botão Fechar;
7
Botão Último Registro;
8
Botão Próximo Registro;
9
Caixa com o número da chave primária do registro selecionado na tabela;
10
Botão Registro Anterior;
11
Botão Primeiro Registro;
12
Botão FILTRAR POR PLACA;
13
Botão FILTRAR POR CHASSI;
14
Botão FILTRAR POR RENAVAN;
15
Botão FILTRAR POR TIPO DE VEÍCULO;
16
Botão FILTRAR POR PROPRIETÁRIO;
17
Botão FILTRAR POR ANO;
18
FILTRAR POR CIDADE;
19
Botão FILTRAR POR ESTADO.
73
1 2 3 4
FIGURA 88
Abas do fichário (FIGURA 88):
1
Aba REGISTROS;
2
Aba EDITAR;
3
Aba FILTROS;
4
Aba RELATÓRIO.
1 2
FIGURA 89
Componentes da tabela REGISTROS DE SEMI-REBOQUES (FIGURA 89):
1
Colunas da tabela;
2
Linhas de Registros da tabela.
3.1
INSERINDO UM NOVO SEMI-REBOQUE
Para inserir uma novo Semi-Reboque no banco de dados, o usuário deve clicar no
botão NOVO, ou pelo menu Semi-Reboque/Novo. É habilitada a aba EDITAR, conforme a
FIGURA 90. Ao ser iniciada a tela, o campo ID SEMI-REBOQUE guarda o próximo valor da
chave primária da tabela Semi-Reboque, evitando a duplicação da mesma. Todas as caixas
são inicializadas e desabilitadas, sendo somente habilitada a caixa PLACA. Os campos de
edição obrigatória, ou seja, que não podem ser vazios informará a mensagem CAMPO NÃO
PODE SER EM BRANCO se o usuário tentar passá-los em branco, retornando o foco para o
próprio campo.
74
FIGURA 90
O usuário entra com o número da placa na caixa PLACA. A caixa
EMPLACAMENTO lista todos os nomes das cidades cadastradas na tabela Cidade. Ao
selecionar uma cidade na lista e teclar enter, a caixa ESTADO é preenchida com o nome do
Estado a qual a Cidade pertence. Depois o usuário entra com o ano do veículo na caixa ANO,
com o número do chassi na caixa CHASSI, a marca do veículo na caixa MARCA, a cor do
veículo na caixa COR e o número do Renavan na caixa RENAVAN. A caixa DATA
CADASTRO é preenchida pela data atual do sistema. A caixa TIPO VEÌCULO lista todos os
tipos de veículos cadastrados na tabela Tipo Veículo, bastando o usuário selecionar um tipo
na lista. A caixa PROPRIETÁRIO lista todas as Pessoas Físicas e Jurídicas cadastradas na
tabela Pessoa Física/Jurídica. O usuário deve selecionar qual pessoa é proprietária do veículo.
Na saída desta última caixa é habilitado o botão GRAVAR.
Além da chave primária, a tabela Semi-Reboque possui outras restrições. O número da
Placa, o número do Chassi e o número do Renavan são campos únicos, não podendo ter seus
valores duplicados em outro registro da tabela. Se houver uma tentativa de cadastrar um novo
Semi-Reboque duplicando estes campos, o banco retorna uma mensagem identificando a
violação da restrição e não permite a inserção do registro editado. Ao clicar OK na
mensagem, o sistema desabilita a aba EDITAR e habilita a aba REGISTROS.
Ao clicar no botão GRAVAR, o sistema chama a função localizada na camada do
servidor, e se não houver nenhuma violação de restrição, o registro é gravado na tabela Semi-
Reboque, retornando ao usuário a mensagem SEMI-REBOQUE CADASTRADO . Ao clicar
Ok, o sistema ativa novamente a aba EDITAR, para o usuário lançar um novo registro.
75
Caso o usuário não precise lançar um novo registro (excluir ou atualizar), basta ele
clicar no botão da caixa de ferramentas CANCELAR, e a aba EDITAR é desabilitada e a aba
REGISTROS habilitada. Os registros cadastrados estão atualizados na tabela REGISTROS
DE SEMI-REBOQUES.
3.2
ATUALIZANDO E FILTRANDO UM SEMI-REBOQUE
O procedimento que o usuário utilizará para atualizar um registro da tabela Semi-
Reboque segue os mesmos procedimentos das tabelas anteriores. O usuário pode selecionar
um registro na aba REGISTROS, onde se encontra as tabela com os dados dos veículos. O
usuário deve dar um duplo clique no registro que ele deseja atualizar e os dados são
recuperados para a aba EDITAR.
O botão ATUALIZAR somente é habilitado após a saída da caixa PROPRIETÁRIO.
Ao clicar no botão, os dados são remetidos ao banco de dados para serem atualizados. Se os
mesmos estiverem corretos e nenhuma restrição for quebrada, uma mensagem de SEMI-
REBOQUE ATUALIZADO é retornada ao usuário. Ao clicar OK, a aba EDITAR é
desabilitado e a aba REGISTROS habilitada.
O usuário também pode selecionar um registro para ser alterado através da aba
FILTROS, conforme a FIGURA 91. Esta tabela realiza filtros por Placa, Chassi, Renavan,
Tipo Veículo, Proprietário, Ano, Cidade e Estado. Os filtros podem ser acionados pelo
usuário pelos botões localizados na barra de ferramentas (FIGURA 87) ou pelo menu Filtrar,
localizado na barra de menu (FIGURA 86).
Ao ser executado qualquer um dos filtros, a caixa filtro é preenchida com os valores
correspondentes do filtro. Como exemplo, se o usuário realizar um filtro por placas, todas elas
que estejam cadastradas no banco são listadas na caixa filtro. O usuário após selecionar uma
opção na lista, deve clicar no botão FILTRAR e os dados do registro filtrado são carregados
na tabela DADOS SEMI-REBOQUE. Para recuperar o registro para a aba Editar, basta
somente dar um duplo clique sobre a linha que se encontra o registro.
76
1 2 3 4 5 6 7 8
FIGURA 91
Componentes da aba FILTROS (FIGURA 91)
1
Botão FILTRAR;
2
Botão CARREGAR TODOS OS DADOS;
3
Botão IMPRIMIR;
4
Botão SAIR;
5
Caixa Filtro;
6
Caixa ANO 1;
7
Caixa ANO 2;
8
Tabela DADOS SEMI-REBOQUE.
Se o usuário precisar gerar um relatório do registro filtrado, é só ele clicar no botão
IMPRIMIR (3), e a tela de visualização de impressão (FIGURA 92) é ativada. O botão
CARREGAR TODOS OS DADOS (2) preenche a tabela (6) DADOS SEMI-REBOQUES
com todos os registros de semi-reboques cadastrados no banco. O botão SAIR (4) desabilita a
aba FILTROS e habilita a aba REGISTROS.
77
FIGURA 92
3.3
EXCLUINDO UM VEÍCULO
Para excluir um registro da tabela Veículo, o usuário procederá da mesma forma em
que ele atualizou um registro. Ele pode escolher o registro a ser excluído na aba
REGISTROS, ou filtrá-lo através da aba FILTROS. Em qualquer um dos métodos em que ele
escolher, assim que o registro é recuperado para a aba EDITAR, o botão EXCLUIR é
habilitado. Ao clicar no botão, a função que executa a exclusão da tabela Semi-Reboque na
camada do servidor é chamada e o registro é excluído.
É importante notificar que a mesma regra para a exclusão de um registro para as outras
tabelas, também é aplicada para a exclusão de dados na tabela Semi-Reboque. Se o registro
não estiver sendo utilizado por outra tabela, é retornada ao usuário a mensagem SEMI-
REBOQUE EXCLUIDO , e ao clicar ok, a aba EDITAR é desabilitada e a aba REGISTROS
habilitada.
3.4
GERANDO O RELATÓRIO GERAL DE VEÍCULOS
O usuário pode gerar um relatório da tabela Semi-Reboque através do menu
Arquivo/Gerar Relatório. Ao ser acionado pelo usuário, a aba RELATÒRIO é habilitada,
conforme a FIGURA 93.
78
FIGURA 93
4
CADASTRO DO TRANSPORTADOR
O cadastro do Transportador tem a finalidade de cadastrar o conjunto de um veículo
transportador que é formado pelo veículo do tipo cavalo mecânico mais o semi-reboque ou
somente por um veículo do tipo truck, mais o motorista. Através deste cadastro, o usuário
emitirá um relatório para a empresa de seguro contratada por ele. Neste relatório têm que estar
destacado, principalmente, os dados do motorista do veículo e do proprietário do mesmo,
além dos dados do próprio veículo. Através destes dados, a seguradora realizará uma consulta
na ficha do motorista e autorizará ou não a empresa a liberar o mesmo para fazer o transporte
para ela. Se a empresa liberar um determinado motorista a carregar uma carga sem a
autorização da seguradora, ela esta assumindo todos os riscos envolvidos no transporte, entre
eles, acidentes e assaltos. Este cadastro fornece dados para a tabela Ordem de Coleta. Neste
cadastro o usuário pode inserir, atualizar, excluir e selecionar os dados dos transportadores.
Ele também fornece um relatório geral da tabela. A FIGURA 94 apresenta a tela inicial do
cadastro:
79
FIGURA 94
A tela é composta pela barra de menus (FIGURA 95), barra de ferramentas, (FIGURA
96), o componente fichário (FIGURA 97), onde a aba ativa no momento é a de REGISTROS,
e o grupo REGISTROS DO TRANSPORTADOR (FIGURA 98) onde se encontra os dados
da tabela:
1 2 3
FIGURA 95
Componentes da barra de menus (FIGURA 95):
1
Menu/Transportador;
2
Menu/Filtrar;
3
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
FIGURA 96
80
Componentes da barra de ferramentas (FIGURA 96):
1 - Botão Novo;
2 - Botão Gravar;
3
Botão Atualizar;
4
Botão Excluir;
5
Botão Cancelar;
6
Botão Fechar;
7
Botão Último Registro;
8
Botão Próximo Registro;
9
Caixa com o número da chave primária do registro selecionado na tabela;
10
Botão Registro Anterior;
11
Botão Primeiro Registro;
12
Botão FILTRAR POR MOTORISTA;
13
Botão FILTRAR POR VEICULO;
14
Botão FILTRAR POR SEMI-REBOQUE;
15
Botão FILTRAR POR CAPACIDADE.
1 2 3 4
FIGURA 97
Abas do fichário (FIGURA 97):
1
Aba REGISTROS;
2
Aba EDITAR;
3
Aba FILTROS;
4
Aba RELATÓRIO.
1 2
FIGURA 98
81
Componentes da tabela REGISTROS DE TRANSPORTADOR (FIGURA 98):
1
Colunas da tabela;
2
Linhas da tabela.
4.1
INSERINDO UM NOVO TRANSPORTADOR
Para inserir uma novo Transportador no banco de dados, o usuário deve clicar no
botão NOVO, ou pelo menu Transportador/Novo. A aba EDITAR é habilitado, conforme a
FIGURA 99. Ao ser iniciada a tela, o campo ID TRANSPORTADOR guarda o próximo valor
da chave primária, evitando a duplicação da mesma. Todas as caixas são inicializadas e
desabilitadas, sendo somente habilitada a caixa TIPO FROTA. Os campos de edição
obrigatória, ou seja, que não podem ser vazios informará a mensagem CAMPO NÃO PODE
SER EM BRANCO se o usuário tentar passá-los em branco, retornando o foco para o
próprio campo.
FIGURA 99
Na caixa TIPO FROTA, o usuário escolherá entre as opções:
1
FROTA: quando o conjunto transportador pertencer à própria empresa;
2
AGREGADO: quando o conjunto transportador pertencer à outra empresa;
3
AUTÔNOMO: quando o veículo transportador pertencer a um proprietário autônomo.
82
Na caixa motorista são listadas todas as pessoas físicas cadastradas no banco. Este
campo é único na tabela Transportador, pois uma pessoa só conduz um único veículo. Na
caixa PLACA VEÍCULO, são listadas todas as placas dos veículos cadastrados. Este campo
também é um campo único e não há permissão para se cadastrar outro transportador com uma
placa já cadastrada. Na caixa CAPACIDADE (TN), o usuário informa a capacidade de carga
do veículo, onde a sigla TN representa tonelada. Na caixa TIPO CONJUNTO, o usuário
poderá escolher entre as opções:
1
TRUCK: para o conjunto formando somente por um veículo do tipo truck. Se for esta
a opção, após a sua saída, é habilitado o botão GRAVAR.
2
CAVALO MECÂNICO E SEMI-REBOQUE: para o conjunto composto por um
veículo do tipo cavalo mecânico e de um semi-reboque. Na saída desta opção é habilitado
a caixa PLACA SEMI-REBOQUE 1. Este campo é único e não pode haver duplicação no
banco, pois uma carreta não pode servir a dois veículos. Após sua saída é habilitado o
botão GRAVAR.
3
BITREM: para o conjunto composto por um veículo do tipo cavalo mecânico e por
dois semi-reboques. Estes semi-reboques possuem medidas que variam entre 7 metros e
7,5 metros, e transportam até 20 toneladas de carga cada um. Para esta opção é habilitada
a caixa PLACA SEMI-REBOQUE 1 e a caixa PLACA SEMI-REBOQUE 2. Assim
como a primeira, a segunda caixa também é um campo único e não pode haver
duplicação no banco. Após a saída da caixa PLACA SEMI-REBOQUE 2, o botão
GRAVAR é habilitado.
4
TRITREM: para o conjunto formado por um veículo do tipo cavalo mecânico e por
três semi-reboques, com as mesmas características do BITREM. Este conjunto é muito
utilizado por empresas que transportam cana de açúcar e madeira para celulose. Além das
duas caixas abertas na opção BITREM, esta opção habilita a caixa PLACA SEMI-
REBOQUE 3, e como as outras duas, esta também é um campo único no banco. Após a
sua saída é habilitada o botão GRAVAR.
Ao clicar no botão GRAVAR, o sistema chama a função localizada na camada do
servidor, e se não houver nenhuma violação de restrição, o registro é gravado na tabela
Transportador, retornando ao usuário a mensagem TRANSPORTADOR CADASTRADO .
Ao clicar Ok, o sistema ativa a aba EDITAR, para o usuário lançar um novo registro.
Caso o usuário não precise lançar um novo registro (excluir ou atualizar), basta ele
clicar no botão da CANCELAR na caixa de ferramentas, e a aba EDITAR é desabilitada e a
83
aba REGISTROS habilitada. Os registros cadastrados estão atualizados na tabela
REGISTROS SEMI-REBOQUES.
4.2
ATUALIZANDO E FILTRANDO UM TRANSPORTADOR
O procedimento que o usuário utilizará para atualizar um registro da tabela
Transportador segue os mesmos procedimentos das tabelas anteriores. O usuário pode
selecionar um registro na aba REGISTROS, onde se encontra as tabela com os dados dos
transportadores. O usuário deve dar um duplo clique no registro que ele deseja atualizar e os
dados são carregados na aba EDITAR.
O usuário deve ter muita atenção para atualizar um registro nesta tabela. Como ela
trabalha com restrição de um veículo, motorista e semi-reboque para cada registro, ele deve
seguir as mesmas regras para atualizar um registro no banco.
A habilitação do botão ATUALIZAR segue as mesmas regras utilizadas para o botão
GRAVAR, assim como a navegação pelas caixas de edição. O usuário pode modificar
livremente o conjunto transportador, como exemplo, transformar um conjunto BITREM para
um TRITREM, e vice-versa. Ao clicar no botão ATUALIZAR, os dados são remetidos ao
banco de dados para serem atualizados. Se os mesmos estiverem corretos e nenhuma restrição
for quebrada, uma mensagem de TRANSPORTADOR ATUALIZADO é retornada ao
usuário. Ao clicar OK, a aba EDITAR é desabilitado e a aba REGISTROS habilitada.
O usuário pode selecionar um registro para ser alterado através da aba FILTROS,
conforme a FIGURA 100. Esta tabela realiza filtros pelo nome do Motorista, pela placa do
Veículo, pela placa do Semi-Reboque e por Capacidade. Os filtros podem ser acionados pelo
usuário pelos botões localizados na barra de ferramentas (FIGURA 96) ou pelo menu Filtrar,
localizado na barra de menus (FIGURA 95).
Ao ser executado qualquer um dos filtros, a caixa filtro é preenchida com os valores
correspondentes do filtro. Como exemplo, se o usuário realizar um filtro pelo nome do
Motorista, todos os nomes de pessoas físicas cadastradas na tabela Pessoa Física/Jurídica são
listadas na caixa filtro. O usuário após selecionar uma opção na lista, deve clicar no botão
FILTRAR, e os dados do registro filtrado são carregados na tabela DADOS
TRANSPORTADOR. Para recuperar o registro para a aba Editar, basta somente dar um duplo
clique sobre a linha que se encontra o registro.
84
1 2 3 4 5 6 7
FIGURA 100
Composição da aba FILTROS (FIGURA 100)
1
Botão FILTRAR;
2
Botão IMPRIMIR;
3
Botão SAIR;
4
Caixa Filtro;
5
Caixa CAPACIDADE 1;
6
Caixa CAPACIDADE 2;
7
Tabela DADOS TRANSPORTADOR.
Se o usuário precisar gerar um relatório do registro filtrado,ele deve clicar no botão
IMPRIMIR (2), e a tela de visualização de impressão (FIGURA 101) será ativada. Este
relatório é o que o usuário enviará para a empresa de seguro. O botão SAIR (3) desabilita a
aba FILTROS e habilita a aba REGISTROS.
85
FIGURA 101
4.3
EXCLUINDO UM TRANSPORTADOR
Para excluir um registro da tabela Transportador, o usuário procederá da mesma forma
em que ele atualizou um registro. Ele pode escolher o registro a ser excluído na aba
REGISTROS, ou filtrá-lo através da aba FILTROS. Em qualquer um dos métodos, assim que
o registro é recuperado para a aba EDITAR, o botão EXCLUIR é habilitado. Ao clicar no
botão, a função que executa a exclusão da tabela Semi-Reboque na camada do servidor é
chamada e o registro é excluído.
É importante notificar que a mesma regra para a exclusão de um registro para as outras
tabelas, também é aplicada para a exclusão de dados na tabela Transportador. Se o registro
não estiver sendo utilizado por outra tabela, é retornada ao usuário a mensagem
TRANSPORTADOR EXCLUIDO e ao clicar ok, a aba EDITAR é desabilitada e a aba
REGISTROS habilitada.
4.4
GERANDO O RELATÓRIO GERAL DE TRANSPORTADORES
O usuário pode gerar um relatório geral da tabela Transportador através do menu
Arquivo/Gerar Relatório. Ao ser acionado pelo usuário é habilitada a aba RELATÒRIO,
conforme a FIGURA 102.
86
FIGURA 102
5
CONTROLE DA LIBERAÇÃO DO SEGURO
O cadastro do Seguro tem a finalidade de controlar o tempo de permissão de trabalho
de um motorista, após a sua liberação pelo seguro. Este tempo corresponde exatamente em
um mês após a data de liberação e após este prazo, o motorista, tem que ter seu cadastro
novamente passado para a seguradora. Nesta tabela, também é cadastrado o número da
liberação fornecido pelo seguro. O motorista que estiver com a data de permissão vencida, o
sistema não permitirá que uma ordem de coleta possa ser emitida para ele. Neste cadastro o
usuário poderá inserir, atualizar, excluir e selecionar os dados do Seguro. Ele também fornece
um relatório geral desta tabela. A FIGURA 103 apresenta a tela inicial do cadastro do Seguro:
FIGURA 103
87
A tela é composta pela barra de menus (FIGURA 104), barra de ferramentas,
(FIGURA 105), o componente fichário (FIGURA 106), onde a aba ativa no momento é a
SEGURADOS, e o grupo LISTA DOS MOTORISTAS SEGURADOS (FIGURA 107), onde
se encontra a tabela com os dados do cadastro:
1 2 3
FIGURA 104
Componentes da barra de menus (FIGURA 104):
1
Menu/Seguradora;
2
Menu/Filtrar;
3
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
FIGURA 105
Componentes da barra de ferramentas (FIGURA 105):
1 - Botão Novo;
2 - Botão Gravar;
3
Botão Atualizar;
4
Botão Excluir;
5
Botão Cancelar;
6
Botão Fechar;
7
Botão Último Registro;
8
Botão Próximo Registro;
9
Caixa com o número da chave primária do registro selecionado na tabela;
10
Botão Registro Anterior;
11
Botão Primeiro Registro;
88
12
Botão FILTRAR POR NUMERO;
13
Botão FILTRAR POR SEGURADO;
14
Botão FILTRAR POR DATA LANÇAMENTO;
15
Botão FILTRAR POR DATA VALIDADE.
1 2 3 4
FIGURA 106
Abas do fichário (FIGURA 106):
1
Aba REGISTROS;
2
Aba EDITAR;
3
Aba FILTROS;
4
Aba RELATÓRIO.
1 2
FIGURA 107
Componentes da tabela LISTA DOS MOTORISTAS SEGURADOS (FIGURA 107):
1
Colunas da tabela;
2
Linhas da tabela.
5.1
INSERINDO UM NOVO SEGURO
Para inserir um novo Seguro no banco de dados, o usuário deve clicar no botão
NOVO, ou pelo menu Seguro/Novo. A aba EDITAR é habilitado, conforme a FIGURA 108.
89
FIGURA 108
Ao ser iniciada a tela, o campo NÚMERO CONTROLE guarda o próximo valor da
chave primária da tabela Seguro, evitando o problema duplicação da mesma. Todas as caixas
são inicializadas e desabilitadas, sendo somente habilitada a caixa NOME DO SEGURADO.
Os campos de edição obrigatória, ou seja, que não podem ser vazios informará a mensagem
CAMPO NÃO PODE SER EM BRANCO se o usuário tentar passá-los em branco,
retornando o foco para o próprio campo.
A caixa NOME DO SEGURADO lista todos os nomes de pessoas físicas cadastradas
na tabela Pessoa Física/Jurídica. O usuário deverá selecionar um nome desta lista. Este campo
é único na tabela e não pode ter seu valor duplicado. Após a saída deste campo é habilitada a
caixa NÚMERO DO SEGURO. Este campo também é único na tabela e o seu valor é
fornecido pela seguradora. As caixas DATA DO LANÇAMENTO e DATA DE VALIDADE
são campos preenchidos automaticamente pelo sistema, onde o primeiro guarda a data em que
registro esta sendo cadastrado e o segundo, a data de validade deste registro, que é exatamente
um mês após o cadastro. Na saída da caixa NÚMERO DO SEGURO é habilitado o botão
GRAVAR.
Ao clicar no botão, o sistema chama a função localizada na camada do servidor, e se
não houver nenhuma violação de restrição, o registro é gravado na tabela Seguro, retornando
ao usuário a mensagem SEGURO CADASTRADO . Ao clicar Ok, o sistema ativa
novamente a aba EDITAR para o usuário lançar um novo registro.
Caso o usuário não precise mais lançar um novo registro (excluir ou atualizar), basta
ele clicar no botão CANCELAR da caixa de ferramentas e a aba EDITAR e desabilitada e a
90
aba SEGURADOS habilitada. Os registros cadastrados estão atualizados na tabela LISTA
DOS MOTORISTAS SEGURADOS.
5.2
ATUALIZANDO E FILTRANDO UM SEGURO
O procedimento que o usuário utilizará para atualizar um registro da tabela Seguro
segue os mesmos procedimentos das tabelas anteriores. O usuário pode selecionar um registro
na aba SEGURADOS, onde se encontra a tabela com os dados dos mesmos. O usuário deve
dar um duplo clique no registro que ele deseja atualizar e os dados são recuperados para a aba
EDITAR.
O botão ATUALIZAR somente é habilitado após a saída da caixa NÚMERO DO
SEGURO. Ao clicar no botão os dados são remetidos ao banco de dados para serem
atualizados. Se os mesmos estiverem corretos e nenhuma restrição for quebrada, uma
mensagem de SEGURO ATUALIZADO é retornada ao usuário. Ao clicar OK, a aba
EDITAR é desabilitado e a aba SEGURADOS habilitada.
O usuário também pode selecionar um registro para ser alterado através da aba
FILTROS, conforme a FIGURA 109. Esta tela realiza filtros por Número, por Segurado, por
Data de Lançamento e por Data de Validade. Os filtros podem ser acionados pelo usuário
pelos botões localizados na barra de ferramentas (FIGURA 105) ou pelo menu Filtrar,
localizado na barra de menus (FIGURA 104).
1 2 3 4 5 6
FIGURA 109
91
Componentes da aba FILTROS (FIGURA 109)
1
Botão FILTRAR;
2
Botão IMPRIMIR;
3
Botão SAIR;
4
Caixa Filtro;
5
Tabela DADOS DO SEGURO;
6
Caixa FILTRO POR DATA.
Ao ser executado qualquer um dos filtros, a caixa filtro é preenchida com os valores
correspondentes do filtro. Como exemplo, se o usuário realizar um filtro por Número, todos
os números de seguro cadastradas na tabela Seguro são listadas na caixa filtro. O usuário após
selecionar uma opção na lista, deve clicar no botão FILTRAR e os dados do registro filtrado
são carregados na tabela DADOS DO SEGURO. Para recuperar o registro para a aba Editar,
basta somente dar um duplo clique sobre a linha que se o mesmo se encontra.
Se o usuário precisar gerar um relatório do registro filtrado, é só ele clicar no botão
IMPRIMIR (2), e a tela de visualização de impressão (FIGURA 110) é ativada. O botão SAIR
(3) desabilita a aba FILTROS e habilita a aba SEGURADOS.
FIGURA 110
92
5.3
EXCLUINDO UM SEGURO
Para excluir um registro da tabela Seguro, o usuário procederá da mesma forma em
que ele atualizou um registro. Ele pode escolher o registro a ser excluído na aba
SEGURADOS ou filtrá-lo através da aba FILTROS. Em qualquer um dos métodos, assim que
o registro é recuperado para a aba EDITAR, o botão EXCLUIR é habilitado. Ao clicar neste
botão, a função que executa a exclusão da tabela Seguro na camada do servidor é chamada e o
registro é excluído.
É importante notificar que a mesma regra para a exclusão de um registro para as outras
tabelas, também é aplicada para a exclusão de dados nesta tabela. Se o registro não estiver
sendo utilizado por outra tabela, é retornada ao usuário a mensagem SEGURO EXCLUIDO
e ao clicar ok, a aba EDITAR é desabilitada e a aba SEGURADOS habilitada.
5.4
GERANDO O RELATÓRIO GERAL DO SEGURO
O usuário pode gerar um relatório geral da tabela Seguro através do menu
Arquivo/Gerar Relatório. Ao ser acionado pelo usuário é habilitada a aba RELATÒRIO,
conforme a FIGURA 111.
FIGURA 111
93
V
MÓDULO DE GERENCIAMENTO DA CARGA TRIBUTÁRIA
O Módulo de Gerenciamento da Carga Tributária permite ao usuário inserir, atualizar,
excluir e selecionar dados dos cadastros do IRRF (Imposto de Renda Retido na Fonte),
Código Fiscal e ICMS (Imposto sobre Circulação de Mercadorias e Serviços).
1
IRRF
O cadastro de IRRF tem a finalidade de cadastrar as diferentes faixas de cobrança do
Imposto de Renda. Estas faixas são utilizadas pelo módulo do conhecimento de transporte
para calcular o valor do IRRF dos motoristas autônomos. Neste cadastro o usuário pode
inserir, atualizar, excluir e selecionar os dados das faixas do IRRF. Ele também fornece um
relatório geral desta tabela. A FIGURA 112 apresenta a tela inicial do cadastro.
FIGURA 112
A tela é composta pela barra de menus (FIGURA 113), barra de ferramentas,
(FIGURA 114), o componente fichário (FIGURA 115), onde a aba ativa no momento é a
IRRF, e o grupo LISTA DAS FAIXAS DE IRRF (FIGURA 116), onde se encontra a tabela
com os dados do cadastro:
1 2
FIGURA 113
94
Componentes da barra de menus (FIGURA 113):
1
Menu/IRRF;
2
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 11
FIGURA 114
Componentes da barra de ferramentas (FIGURA 114):
1 - Botão NOVO;
2 - Botão GRAVAR;
3
Botão ATUALIZAR;
4
Botão EXCLUIR;
5
Botão CANCELAR;
6
Botão FECHAR;
7
Botão ÚLTIMO REGISTRO;
8
Botão PRÓXIMO REGISTRO;
9
Caixa com o número da chave primária do registro selecionado na tabela;
10
Botão REGISTRO ANTERIOR;
11
Botão PRIMEIRO REGISTRO;
1 2 3
FIGURA 115
Abas do fichário (FIGURA 115):
1
Aba IRRF;
2
Aba EDITAR;
3
Aba RELATÓRIO.
95
1 2
FIGURA 116
Componentes da tabela LISTA DAS FAIXAS DE IRRF (FIGURA 116):
1
Colunas da tabela;
2
Linhas da tabela.
1.1
INSERINDO UMA NOVA FAIXA DE IRRF
Para inserir uma nova faixa de Imposto de Renda, o usuário deve clicar no botão
NOVO ou pelo menu IRRF/Novo. A aba EDITAR é habilitado, conforme a FIGURA 117.
FIGURA 117
Ao ser iniciada a tela, o campo ID FAIXA IRRF guarda o próximo valor da chave
primária da tabela, evitando o problema de duplicação da mesma. Todas as caixas são
inicializadas com valores em branco e todas são desabilitadas. Somente a caixa
PERCENTUAL esta habilitada e com o foco do cursor. Todas as caixas são de preenchimento
obrigatório e se o usuário tentar passá-las como vazio, o sistema o informará o usuário com a
mensagem de CAMPO NÃO PODE SER EM BRANCO , retornando o foco para o próprio
campo.
96
Após editar a caixa PERCENTUAL, que armazena a taxa do imposto, o usuário
teclará enter, mudando o foco para a caixa seguinte. A caixa FAIXA INICIAL e a caixa
FAIXA FINAL limitem a faixa de atuação para o percentual do desconto. Por fim o usuário
entrará com os valores nas caixas PARCELA DEDUÇÃO e DEDUÇÃO POR
DEPENDENTE. É importante ressaltar que os valores lançados neste registro não são
determinados pelo usuário, mas pela lei fiscal do país. O usuário tem que ficar atento as
mudanças de faixas e de percentual que o governo venha a implantar na tributação do Imposto
de Renda.
Somente após a saída da caixa DEDUÇÃO POR DEPENDENTE que o botão
GRAVAR será habilitado. Ao clicar no botão, o sistema chama a função localizada na
camada do servidor, e se não houver nenhuma violação de restrição, o registro é gravado na
tabela IRRF, retornando ao usuário a mensagem IRRF CADASTRADO . Ao clicar Ok, o
sistema abrirá novamente a aba EDITAR, para o usuário lançar um novo registro.
Caso o usuário não precise mais lançar novos registros (excluir ou atualizar), basta ele
clicar no botão CANCELAR da caixa de ferramentas e a aba EDITAR é desabilitada e a aba
IRRF habilitada. Os registros cadastrados estão atualizados na tabela LISTA DAS FAIXAS
DE IRRF.
1.2
ATUALIZANDO UMA FAIXA DE IRRF
O procedimento que o usuário utilizará para atualizar um registro da tabela IRRF
segue os mesmos procedimentos das tabelas anteriores, mas esta tabela por ser populada com
poucos registros, não possui o modo filtragem. O usuário selecionará um registro na aba IRRF
onde se encontra a tabela com os dados das faixas de IRRF, e dar um duplo clique sobre o
registro para os dados serem recuperados para a aba EDITAR.
O botão ATUALIZAR é habilitado após a saída da caixa DEDUÇÃO POR
DEPENDENTE. Ao clicar no botão os dados são remetidos ao banco de dados para serem
atualizados. Se os mesmos estiverem corretos e nenhuma restrição for quebrada, uma
mensagem de IRRF ATUALIZADO é retornada ao usuário. Ao clicar OK, a aba EDITAR é
desabilitado e a aba IRRF habilitada.
1.3
EXCLUINDO UMA FAIXA DE IRRF
Se houver mudanças na tributação do IRRF e for preciso excluir um registro da tabela,
ele seguirá os mesmos procedimentos realizados para a atualização. Quando o registro é
97
recuperado para a aba EDITAR, o botão EXCLUIR é habilitado. Ao clicar no botão, a função
que executa a exclusão da tabela IRRF na camada do servidor é chamada e o registro é
excluído, e como esta tabela não possui vínculo direto com nenhuma outra, o registro é
excluído diretamente do banco.
1.4
GERANDO O RELATÓRIO GERAL DE TIPOS DE VEÍCULO
O usuário pode gerar o relatório geral da tabela através do menu Arquivo/Gerar
Relatório. Ao ser acionado pelo usuário é habilitada a aba RELATÒRIO, conforme a
FIGURA 118.
FIGURA 118
2- CADASTRO DO CÓDIGO FISCAL
O cadastro de CÓDIGO FISCAL tem a finalidade de cadastrar as diferentes descrições
da natureza da operação. Ela informa qual o tipo de transporte que esta sendo realizado. Para
uma transportadora com sede no estado de São Paulo, ela precisa informar se o transporte é
realizado deste estado para outro ou para dentro do próprio estado ou de outro estado para
este. A natureza da operação tem interferência direta na determinação da cobrança do ICMS.
Neste cadastro o usuário pode inserir, atualizar, excluir e selecionar os dados do CÓDIGO
FISCAL. Ele também fornece um relatório geral desta tabela. A FIGURA 119 apresenta a tela
inicial do cadastro.
98
FIGURA 119
A tela é composta pela barra de menus (FIGURA 120), barra de ferramentas,
(FIGURA 121), o componente fichário (FIGURA 122), onde a aba ativa no momento é a
CÓDIGO FISCAL, e tabela REGISTROS DO CADASTRO DE CÓDIGOS FISCAIS
(FIGURA 123):
1 2
FIGURA 120
Componentes da barra de menus (FIGURA 120):
1
Menu/CÓDIGO FISCAL;
2
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 11
FIGURA 121
Componentes da barra de ferramentas (FIGURA 121):
1 - Botão NO VO;
2 - Botão GRAVAR;
3
Botão ATUALIZAR;
4
Botão EXCLUIR;
99
5
Botão CANCELAR;
6
Botão FECHAR;
7
Botão ÚLTIMO REGISTRO;
8
Botão PRÓXIMO REGISTRO;
9
Caixa com o número da chave primária do registro selecionado na tabela;
10
Botão REGISTRO ANTERIOR;
11
Botão PRIMEIRO REGISTRO.
1 2 3
FIGURA 122
Abas do fichário (FIGURA 122):
1
Aba CÓDIGO FISCAL;
2
Aba EDITAR;
3
Aba RELATÓRIO.
1 2
FIGURA 123
Componentes da tabela REGISTROS DO CADASTRO DE CÓDIGOS FISCAIS
(FIGURA 123):
1
Colunas da tabela;
2
Linhas da tabela.
2.1
INSERINDO UM NOVO CÓDIGO FISCAL
Para inserir um novo Código Fiscal, o usuário deve clicar no botão NOVO ou pelo
menu CÓDIGO FISCAL/Novo. A aba EDITAR é habilitada, conforme a FIGURA 124.
100
FIGURA 124
Ao ser iniciada a tela, o campo ID DO CÓDIGO FISCAL guarda o próximo valor da
chave primária desta tabela, evitando o problema de duplicação da mesma. Todas as caixas
são inicializadas com valores em branco e todas são desabilitadas. Somente a caixa
DESCRIÇÃO DO CÓDIGO FISCAL é habilitada e com o foco do cursor. Todas as caixas
são de preenchimento obrigatório e se o usuário tentar passá-las como vazio, o sistema o
informará com a mensagem de CAMPO NÃO PODE SER EM BRANCO , retornando o
foco para o próprio campo.
Após editar a caixa DESCRIÇÃO DO CÓDIGO FISCAL, que armazena o código, o
usuário teclará enter, mudando o foco para a caixa seguinte. A caixa NATUREZA DA
OPERAÇÃO descrimina para onde será o transporte. Os dois campos são únicos e não podem
ter seus valores duplicados no banco. Somente após a saída da caixa NATUREZA DA
OPERAÇÃO é que o botão GRAVAR é habilitado. Ao clicar no botão, o sistema chama a
função localizada na camada do servidor, e se não houver nenhuma violação de restrição, o
registro é gravado na tabela Código Fiscal, retornando ao usuário a mensagem CÓDIGO
FISCAL CADASTRADO . Ao clicar Ok, o sistema ativa novamente a aba EDITAR, para o
usuário lançar um novo registro.
Caso o usuário não precise mais lançar novos registros (excluir ou atualizar), basta ele
clicar no botão CANCELAR da caixa de ferramentas e a aba EDITAR é desabilitada e a aba
CÓDIGO FISCAL habilitada. Os registros cadastrados estão atualizados na tabela
REGISTROS DO CADASTRO DE CÓDIGOS FISCAIS.
101
2.2
ATUALIZANDO UM CÓDIGO FISCAL
O procedimento que o usuário utilizará para atualizar um registro da tabela segue os
mesmos procedimentos das tabelas anteriores, mas esta tabela por ser populada com poucos
registros, não possui o modo filtragem. O usuário selecionará um registro na aba CÓDIGO
FISCAL, onde se encontra as tabela com os dados dos códigos fiscais, e dar um duplo clique
sobre o registro para os dados serem recuperados para a aba EDITAR.
O botão ATUALIZAR é habilitado após a saída da caixa NATUREZA DA
OPERAÇÃO. Ao clicar neste botão os dados são remetidos ao banco de dados para serem
atualizados. Se os mesmos estiverem corretos e nenhuma restrição for quebrada, uma
mensagem de CÓDIGO FISCAL ATUALIZADO é retornada ao usuário. Ao clicar OK, a
aba EDITAR é desabilitado e a aba CÓDIGO FISCAL habilitada.
2.3
EXCLUINDO UM CÓDIGO FISCAL
Para o usuário excluir um registro desta tabela, ele seguirá os mesmos procedimentos
realizados para a atualização. Quando o registro é recuperado para a aba EDITAR o botão
EXCLUIR é habilitado. Ao clicar no botão, a função que executa a exclusão do registro na
camada do servidor é chamada e o mesmo é excluído. O registro só não será excluído se ele
estiver sendo utilizado por outra tabela, retornando ao usuário a mensagem de restrição de
exclusão do banco.
2.4
GERANDO O RELATÓRIO GERAL DE CÓDIGO FISCAL
O usuário pode gerar um relatório geral da tabela através do menu Arquivo/Gerar
Relatório. Ao ser acionado pelo usuário é habilitada a aba RELATÒRIO, conforme a
FIGURA 125.
102
FIGURA 125
3
CADASTRO DO ICMS (IMPOSTO SOBRE CIRCULAÇÃO DE
MERCADORIAS E SERVIÇOS)
O cadastro de ICMS tem a finalidade de cadastrar as diferentes taxas do imposto
cobrado pelos estados brasileiros. É importante o usuário sempre acompanhar as mudanças
que cada estado realiza na taxa deste imposto. Neste cadastro o usuário poderá inserir,
atualizar, excluir e selecionar os dados do ICMS. Ele também fornece um relatório geral desta
tabela. A FIGURA 126 apresenta a tela inicial do cadastro de ICMS.
FIGURA 126
103
A tela é composta pela barra de menus (FIGURA 127), barra de ferramentas,
(FIGURA 128), o componente fichário (FIGURA 129), onde a aba ativa no momento é a
ICMS e a tabela REGISTROS DO CADASTRO DE TAXAS DO ICMS (FIGURA 130):
1 2
FIGURA 127
Componentes da barra de menus da FIGURA 127:
1
Menu/ICMS;
2
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 11
FIGURA 128
Componentes da barra de ferramentas (FIGURA 128):
1 - Botão NO VO;
2 - Botão GRAVAR;
3
Botão ATUALIZAR;
4
Botão EXCLUIR;
5
Botão CANCELAR;
6
Botão FECHAR;
7
Botão ÚLTIMO REGISTRO;
8
Botão PRÓXIMO REGISTRO;
9
Caixa com o número da chave primária do registro selecionado na tabela;
10
Botão REGISTRO ANTERIOR;
11
Botão PRIMEIRO REGISTRO.
1 2 3
FIGURA 129
104
Abas do fichário (FIGURA 129):
1
Aba ICMS;
2
Aba EDITAR;
3
Aba RELATÓRIO.
1 2
FIGURA 130
Componentes da tabela REGISTROS DO CADASTRO DE TAXAS DE ICMS
(FIGURA 130):
1
Colunas da tabela;
2
Linhas de Registros da tabela.
3.1
INSERINDO UMA TAXA DE ICMS
Para inserir uma nova taxa de ICMS, o usuário deve clicar no botão NOVO, ou pelo
menu ICMS/Novo. A aba EDITAR é habilitado, conforme a FIGURA 131.
FIGURA 131
105
Ao ser iniciada a tela, o campo ID DO CADASTRO DO ICMS guarda o próximo
valor da chave primária da tabela ICMS, evitando o problema de duplicação da mesma. Todas
as caixas são inicializadas com valores em branco e todas são desabilitadas. Somente a caixa
do campo ESTADO é habilitada e com o foco do cursor. Todas as caixas são de
preenchimento obrigatório e se o usuário tentar passá-las como vazio, o sistema o informará
com a mensagem de CAMPO NÃO PODE SER EM BRANCO , retornando o foco para o
próprio campo.
A caixa do campo ESTADO lista todos os estados cadastrados no banco. Este campo é
único, onde só é permitido um estado ser cadastrado uma única vez. Após editar a caixa, o
usuário teclará enter, mudando o foco para a caixa seguinte. Na caixa TAXA DO ICMS, o
usuário informará a taxa do ICMS para o estado escolhido na caixa anterior.
Após a saída da caixa TAXA DO ICMS, o botão GRAVAR é habilitado. Ao clicar no
botão, o sistema chama a função localizada na camada do servidor, e se não houver nenhuma
violação de restrição, o registro é gravado na tabela ICMS, retornando ao usuário a mensagem
ICMS CADASTRADO . Ao clicar Ok, o sistema ativa novamente a aba EDITAR, para o
usuário lançar um novo registro.
Caso o usuário não precise mais lançar novos registros (excluir ou atualizar), basta ele
clicar no botão CANCELAR da caixa de ferramentas e a aba EDITAR é desabilitada e a aba
ICMS habilitada. Os registros cadastrados estão atualizados na tabela REGISTROS DO
CADASTRO DE TAXAS DO ICMS.
3.2
ATUALIZANDO UMA TAXA DE ICMS
Quando ocorrer qualquer mudança realizada por um estado na taxa de ICMS, o
usuário deverá atualizar o cadastro do ICMS. O procedimento que o usuário utilizará para
atualizar um registro nesta tabela segue os mesmos procedimentos das tabelas anteriores, mas
esta tabela por ser populada com poucos registros, não possui o modo filtragem. O usuário
selecionará um registro na aba ICMS onde se encontra a tabela com os dados das taxas de
ICMS, e dar um duplo clique sobre o registro para os dados serem recuperados para a aba
EDITAR.
O botão ATUALIZAR é habilitado após a saída da caixa TAXA DO ICMS. Ao clicar
neste botão os dados são remetidos ao banco de dados para serem atualizados. Se os mesmos
estiverem corretos e nenhuma restrição for quebrada, uma mensagem de ICMS
106
ATUALIZADO é retornada ao usuário. Ao clicar OK, a aba EDITAR é desabilitado e a aba
ICMS habilitada.
3.3
EXCLUINDO UMA FAIXA DE IRRF
Para excluir um registro da tabela, o usuário seguirá os mesmos procedimentos
realizados para a atualização. Quando o registro é recuperado para a aba EDITAR o botão
EXCLUIR é habilitado. Ao clicar no botão, a função que executa a exclusão da tabela ICMS
na camada do servidor é chamada e o registro é excluído. A exclusão não ocorrerá se o
registro estiver sendo utilizado por outra tabela e uma mensagem de violação de restrição de
chave estrangeira será comunicada ao usuário.
3.4
GERANDO O RELATÓRIO GERAL DE TIPOS DE VEÍCULO
O usuário pode gerar um relatório geral da tabela ICMS através do menu
Arquivo/Gerar Relatório. Ao ser acionado pelo usuário, a aba RELATÒRIO é habilitada,
conforme a FIGURA 132.
FIGURA 132
107
VI
MÓDULO DE GERENCIAMENTO DE RETIRADA
Neste módulo o usuário gerenciará as tabelas Produto, Pedido, Programação e Ordem
de coleta. Através destas tabelas, o usuário pode inserir, atualizar, excluir, selecionar e filtrar
dados. Este módulo é de grande importância para o sistema. Através dele, o usuário pode
lançar os pedidos de retirada, programar esses pedidos e emitir as ordens de coleta para
veículos realizarem as retiradas..
1
CADASTRO DE PRODUTO
A tabela Produto permite ao usuário cadastrar os diferentes produtos que a empresa
pretende transportar. Neste cadastro, o usuário pode inserir, atualizar, excluir, selecionar e
filtrar um produto. A FIGURA 133 apresenta a tela inicial do cadastro de produto:
FIGURA 133
A tela possui é composta pela barra de menus (FIGURA 134), barra de ferramentas,
(FIGURA 135), o componente fichário (FIGURA 136), onde a aba ativa no momento é a
PRODUTOS e a tabela LISTA DOS PRODUTOS CADASTRADOS (FIGURA 137):
1 2 3
FIGURA 134
Componentes da barra de menus (FIGURA 134):
1
Menu/Produto;
108
2
Menu/Filtrar;
3
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 11 12
FIGURA 135
Componentes da barra de ferramentas (FIGURA 135):
1 - Botão Novo;
2 - Botão Gravar;
3
Botão Atualizar;
4
Botão Excluir;
5
Botão Cancelar;
6
Botão Fechar;
7
Botão Último Registro;
8
Botão Próximo Registro;
9
Caixa com o número da chave primária do registro selecionado na tabela;
10
Botão Registro Anterior;
11
Botão Primeiro Registro;
12
Botão FILTRAR POR PRODUTO.
1 2 3 4
FIGURA 136
Abas do fichário (FIGURA 136):
1
Aba PRODUTOS;
2
Aba EDITAR;
3
Aba FILTROS;
4
Aba RELATÓRIO.
109
1 2
FIGURA 137
Componentes da tabela LISTA DOS PRODUTOS CADASTRADOS (FIGURA 137):
1
Colunas da tabela;
2
Linhas de Registros da tabela.
1.1
INSERINDO UM NOVO PRODURO
Para inserir uma novo produto no banco de dados, o usuário deve clicar no botão
NOVO, ou pelo menu Produto/Novo. A aba EDITAR é habilitado, conforme a FIGURA 138.
FIGURA 138
Ao ser iniciada a tela, o campo NUMERO DO PRODUTO guarda o próximo valor da
chave primária da tabela Produto, evitando o problema de duplicação da mesma. Todas as
caixas são inicializadas e desabilitadas, sendo somente habilitada a caixa DESCRIÇÃO DO
PRODUTO. Os campos de edição obrigatória, ou seja, que não podem ser vazios informará a
mensagem CAMPO NÃO PODE SER EM BRANCO se o usuário tentar passá-los em
branco, retornando o foco para o próprio campo.
110
Na caixa DESCRIÇÃO DO PRODUTO o usuário informa o nome do mesmo. Na
caixa VOLUME é descrito como o produto será cobrado pelo seu transporte. O volume pode
ser indicado por tonelada, por quilograma, por caixa, por unidade, entre outras formas. A
caixa SIGLA VOLUME descreve a abreviação para o volume determinado para o produto,
como exemplo, para a tonelada é utilizada a sigla TN, para caixa a sigla CX, etc.. A caixa da
sigla só permite a inserção pelo usuário de dois caracteres.
A caixa DESCRIÇÃO DO PRODUTO é um campo único no banco de dados, e não
pode ter seu valor duplicado. O botão GRAVAR é habilitado após a saída da caixa SIGLA
VOLUME. Ao clicar no botão, o sistema chama a função localizada na camada do servidor, e
se não houver nenhuma violação de restrição, o registro é gravado na tabela Produto,
retornando ao usuário a mensagem PRODUTO CADASTRADO . Ao clicar Ok, o sistema
ativa novamente a aba EDITAR, para o usuário lançar um novo registro.
Caso o usuário não precise lançar novos registros (excluir ou atualizar), basta ele clicar
no botão CANCELAR da caixa de ferramentas e a aba EDITAR é desabilitada e a aba
PRODUTOS habilitada. Os registros cadastrados estão atualizados na tabela LISTA DOS
PRODUTOS CADASTRADOS.
1.2
ATUALIZANDO E FILTRANDO UM PRODUTO
O procedimento que o usuário utilizará para atualizar um registro da tabela Produto
segue os mesmos procedimentos das tabelas anteriores. O usuário pode selecionar um registro
na aba PRODUTOS, onde se encontra as tabela com os dados dos mesmos. O usuário deve
dar um duplo clique sobre o registro que ele deseja atualizar e os dados serão recuperados
para a aba EDITAR.
O botão ATUALIZAR é habilitado após a saída da caixa SIGLA VOLUME. Ao clicar
no botão, os dados são remetidos ao banco de dados para serem atualizados. Se os mesmos
estiverem corretos e nenhuma restrição for quebrada, uma mensagem de PRODUTO
ATUALIZADO é retornada ao usuário. Após clicar OK, a aba EDITAR é desabilitado e a
aba PRODUTOS habilitada.
O usuário também pode selecionar um registro para ser alterado através da aba
FILTROS, conforme a FIGURA 139. Esta tabela realiza o filtro pelo nome do produto através
do menu Filtrar/Por Produto ou pelo botão FILTRAR POR PRODUTO, localizado na barra
de ferramenta (FIGURA 135).
111
1 2 3 4 5
FIGURA 139
Componentes da aba FILTROS (FIGURA 139)
1
Botão FILTRAR;
2
Botão IMPRIMIR;
3
Botão SAIR;
4
Caixa Filtro;
5
Tabela DADOS DO PRODUTO.
Ao ser executado o filtro, a caixa filtro lista todos os nomes dos produtos cadastrados
no banco. O usuário após selecionar uma opção na lista, deve clicar no botão FILTRAR e os
dados do registro filtrado são carregados na tabela DADOS DO PRODUTO. Para recuperar o
registro para a aba Editar, basta somente dar um duplo clique sobre a linha em que se encontra
o registro.
Se o usuário precisar gerar um relatório do registro filtrado, ele deve clicar no botão
IMPRIMIR (2), e a tela de visualização de impressão (FIGURA 140) é ativada. O botão SAIR
(3) desabilita a aba FILTROS e habilita a aba PRODUTOS.
112
FIGURA 140
1.3
EXCLUINDO UM PRODUTO
Para excluir um registro da tabela Produto, o usuário procederá da mesma forma na
atualização. Ele pode escolher o registro a ser excluído na aba PRODUTOS ou filtrá-lo
através da aba FILTROS. Em qualquer um dos métodos, assim que o registro é recuperado
para a aba EDITAR, o botão EXCLUIR é habilitado. Ao clicar no botão, a função que executa
a exclusão da tabela Produto na camada do servidor é chamada e o registro é excluído.
É importante notificar que a mesma regra para a exclusão de um registro para as outras
tabelas, também é aplicada para a exclusão de dados na tabela Produto. Se o registro não
estiver sendo utilizado por outra tabela, é retornada ao usuário a mensagem PRODUTO
EXCLUIDO e ao clicar ok, a aba EDITAR é desabilitada e a aba PRODUTOS habilitada.
1.4
GERANDO O RELATÓRIO GERAL DE TRANSPORTADORES
O usuário pode gerar um relatório geral da tabela Produto através do menu
Arquivo/Gerar Relatório. Ao ser acionado pelo usuário, a aba RELATÒRIO é habilitada,
conforme a FIGURA 141.
113
FIGURA 141
2
CADASTRO DE PEDIDO
O cadastro do Pedido permite ao usuário cadastrar os pedidos de transporte que ele
recebe de seus clientes. Esta tabela possui algumas particularidades que o usuário tem que
seguir para melhor gerenciar o cadastro. O usuário pode emitir novos pedidos, mas a
atualização é restrita a alguns campos. Um pedido não pode ser excluído, mas somente
cancelado ou fechado. O ideal é o usuário fechar o pedido. O usuário pode também realizar
filtros nesta tabela. A FIGURA 142 apresenta a tela inicial do cadastro:
FIGURA 142
114
A tela é composta pela barra de menus (FIGURA 143), barra de ferramentas,
(FIGURA 144), o componente fichário (FIGURA 145), onde a aba ativa no momento é a
REGISTROS, e tabela REGISTROS DOS PEDIDOS (FIGURA 146):
1 2 3
FIGURA 143
Componentes da barra de menus (FIGURA 143):
1
Menu/Lançamento Pedido;
2
Menu/Filtrar;
3
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 1112 13 14 1516
FIGURA 144
Composição da barra de ferramentas (FIGURA 144):
1 - Botão NOVO;
2 - Botão GRAVAR;
3
Botão ATUALIZAR;
4
Botão CANCELAR PEDIDO;
5
Botão FECHAR PEDIDO;
6
Botão CANCELAR;
7
Botão FECHAR;
8
Botão ULTIMO REGISTRO;
9
Botão PRÓXIMO REGISTRO;
10
Caixa com o número da chave primária do registro selecionado na tabela;
11
Botão REGISTRO ANTERIOR;
12
Botão PRIMEIRO REGISTRO;
13
Botão FILTRAR POR PEDIDO;
115
14
Botão FILTRAR POR PRODUTO;
15
Botão FILTRAR POR CLIENTE;
16
Botão FILTRAR POR PERÍODO.
1 2 3 4
FIGURA 145
Abas do fichário (FIGURA 145):
1
Aba REGISTROS;
2
Aba EDITAR;
3
Aba FILTROS;
4
Aba RELATÓRIO.
1 2
FIGURA 146
Componentes da tabela REGISTROS DOS PEDIDOS (FIGURA 146):
1
Colunas da tabela;
2
Linhas da tabela.
2.1
EMITINDO UM NOVO PEDIDO
Para o usuário poder emitir um novo pedido para um determinado cliente, com um
mesmo produto e as mesmas condições de um pedido já existente, é preciso que o usuário
primeiro feche este pedido, pois o sistema bloqueará a criação do novo. Geralmente o pedido
atende a retirada de mercadorias de um cliente para um único mês, sendo aconselhável para
um outro mês, ser aberto um novo pedido.
Para ser emitido um novo pedido no banco de dados, o usuário deve clicar no botão
NOVO, ou pelo menu Lançamento Pedido/Novo. A aba EDITAR é habilitado, conforme a
FIGURA 147.
116
FIGURA 147
Ao ser iniciada a tela, o campo NUMERO PEDIDO guarda o valor do novo pedido,
que também é a chave primária da tabela. Todas as caixas são inicializadas e desabilitadas,
sendo somente habilitada a caixa PRODUTO. Os campos de edição obrigatória, ou seja, que
não podem ser vazios informará a mensagem CAMPO NÃO PODE SER EM BRANCO se
o usuário tentar passá-los em branco, retornando o foco para o próprio campo.
A caixa PRODUTO lista o nome de todos os produtos cadastrados no banco. As
caixas de edição do REMETENTE, DESTINATÁRIO, LOCAL RETIRADA, LOCAL
ENTREGA, CONSIGNATÁRIO e RESPONSÁVEL PELO FRETE têm a mesma finalidade,
ou seja, listar os nomes de todas as pessoas, tanto físicas como jurídicas, para o usuário poder
selecionar uma opção, onde:
Remetente: é aquele que esta remetendo (enviando) a mercadoria;
Destinatário: é aquele a quem a mercadoria se destina;
Local da retirada: local onde a mercadoria vai ser retirada, podendo ser o mesmo do
remetente ou não;
Local da entrega: local onde a mercadoria vai ser entregue, podendo ser a mesma do
destinatário ou não;
Consignatário: é aquele que pode ser o responsável de pagar o frete, mesmo não sendo
ele o cliente, para quem a mercadoria se destina;
117
Responsável pelo frete: é o campo que determina o cliente e que geralmente é o
responsável pelo pagamento do frete.
A caixa DATA LANÇAMENTO é editada automaticamente pelo sistema pela data em
que o pedido estiver sendo emitido. A caixa DATA INÍCIO determina a data de início da
retirada. A caixa DATA FIM determina o fim do prazo para a retirada. A caixa
QUANTIDADE PEDIDO informa a quantidade do volume do pedido. O volume é
determinado na escolha do produto na caixa PRODUTO. A caixa QUANTIDADE
RETIRADA e a caixa SALDO são preenchidas automaticamente quando o usuário sai da
caixa anterior, onde a primeira recebe o valor zero e a segunda, recebe como valor o mesmo
da caixa QUANTIDADE PEDIDO. Na caixa VALOR FRETE TOTAL o usuário informa
qual o valor do frete que será cobrado do cliente. Este valor é determinado pelas opções POR
VOLUME e POR VIAGEM, ocorrendo o mesmo para a caixa VALOR FRETE
MOTORISTA, onde o usuário informa o valor do frete que será pago aos veículos
terceirizados. Na caixa INCIDÊNCIA DE ICMS, o usuário determinará se o pedido sofrerá a
tributação do ICMS. Se a opção for não, a caixa ICMS terá o valor zero e se a opção for sim,
a caixa receberá o valor da taxa do ICMS do estado a qual a cidade do cliente pertence. A
caixa CÓDIGO FISCAL lista todas as descrições da tabela Código Fiscal cadastradas no
banco. A caixa Status será editada com o valor.
O botão GRAVAR é habilitado após a saída da caixa CÓDIGO FISCAL. Ao clicar no
botão, o sistema chama a função localizada na camada do servidor, e se não houver nenhuma
violação de restrição (a existência de um pedido com as mesmas condições que ainda esteja
aberto), o registro é gravado na tabela Pedido, retornando ao usuário a mensagem PEDIDO
CADASTRADO . Ao clicar Ok, o sistema ativa novamente a aba EDITAR, para o usuário
lançar um novo registro.
Caso o usuário não precise lançar um novo registro (excluir ou atualizar), basta ele
clicar no botão CANCELR da caixa de ferramentas, e a aba EDITAR é desabilitada e a aba
REGISTROS habilitada. Os registros cadastrados estão atualizados na tabela REGISTROS
DOS PEDIDOS.
2.2
ATUALIZANDO E FILTRANDO UM PEDIDO
O procedimento que o usuário utilizará para atualizar um registro da tabela Pedido
segue os mesmos procedimentos das tabelas anteriores. O usuário pode selecionar um registro
na aba REGISTROS, onde se encontra a tabela com os dados dos pedidos. O usuário deve dar
118
um duplo sobre o registro que ele deseja atualizar e os dados são recuperados para a aba
EDITAR.
Os únicos campos permitidos para atualização são: caixa DATA INICIO, caixa DATA
FIM, caixa QUANTIDADE PEDIDO, caixa VALOR FRETE TOTAL e a caixa VALOR
FRETE MOTORISTA. Na saída desta última caixa o botão ATUALIZAR é habilitado. Ao
clicar no botão, os dados são remetidos ao banco de dados para serem atualizados. Se os
mesmos estiverem corretos e nenhuma restrição for quebrada, uma mensagem de PEDIDO
ATUALIZADO é emitida para o usuário. Ao clicar OK, a aba EDITAR é desabilitado e a
aba REGISTROS é habilitada.
O usuário também poderá selecionar um registro para ser alterado através da aba
FILTROS, conforme a FIGURA 148. Esta tabela realiza filtros por numero do pedido, por
nome do produto, por nome do cliente e por um período, através do menu Filtrar ou pelos
botões localizados na barra de ferramentas (FIGURA 144).
1 2 3 4 5 6 7
FIGURA 148
Componentes da aba FILTROS (FIGURA 148):
1
Botão FILTRAR;
2
Botão IMPRIMIR;
3
Botão SAIR;
119
4
Caixa Filtro;
5
Tabela DADOS PEDIDO;
6
Caixa DATA 1;
7
Caixa DATA 2.
Ao ser executado um filtro por cliente, a caixa filtro lista todos os nomes das pessoas
físicas e jurídicas cadastradas no banco. Se for executado um filtro por um período, o usuário
terá que informar duas datas, inicial e final, nas caixas DATA 1 e DATA 2. O usuário após
selecionar uma opção na lista ou preencher as datas, deve clicar no botão Filtro e os dados do
registro filtrado são carregados na tabela DADOS PEDIDO. Para recuperar o registro para a
aba Editar, basta somente dar um duplo sobre a da linha em que se encontra o registro.
Se o usuário precisar gerar um relatório do registro filtrado, é só ele clicar no botão
IMPRIMIR (2), e a tela de visualização de impressão (FIGURA 149) é ativada. O botão SAIR
(3) desabilita a aba FILTROS e habilita a aba REGISTROS.
FIGURA 149
2.3
FECHANDO OU CANCELANDO UM PEDIDO
O cadastro Pedido não permite que um registro seja excluído, mas somente fechado ou
cancelado. Para fechar ou cancelar um registro da tabela, o usuário procederá da mesma
forma em que ele atualizou um registro. Ele pode escolher o registro a ser fechado ou
120
cancelado na aba REGISTROS, ou filtrá-lo através da aba FILTROS. Em qualquer um dos
métodos, assim que o registro é recuperado para a aba EDITAR, o botão CANCELAR
PEDIDO e o botão FECHAR PEDIDO são habilitados.
Um pedido somente pode ser cancelado, se o campo QUANTIDADE RETIRADA do
mesmo for igual a zero. Ao clicar no botão cancelar, a função na camada do servidor que
cancela um pedido, verifica esta condição, e se ela for verdadeira a função modifica o campo
STATUS da tabela para CANCELADO. O usuário recebe uma mensagem de PEDIDO
CANCELADO e ao clicar OK, a aba EDITAR é desabilitada e a aba REGISTROS é
habilitada. A partir deste momento o pedido não poder mais ser utilizado pelo sistema, a não
ser apenas para uma eventual consulta.
Ao clicar no botão FECHAR PEDIDO, a função na camada do servidor que fecha um
pedido é chamada. Esta função modifica os campos QUANTIDADE PEDIDO, SALDO e
STATUS. O primeiro passa a ter o mesmo valor do campo QUANTIDADE RETIRADA, o
segundo passa a ter valor zero e o terceiro tem o seu valor modificado para FECHADO. O
usuário recebe uma mensagem de PEDIDO FECHADO e ao clicar OK, a aba EDITAR é
desabilitada e a aba REGISTROS é habilitada. A partir deste momento o pedido não poder
mais ser utilizado pelo sistema, a não ser apenas para consultas.
2.4
GERANDO O RELATÓRIO GERAL DE TRANSPORTADORES
O usuário pode gerar um relatório da tabela Pedido através do menu Arquivo/Gerar
Relatório. Ao ser acionado pelo usuário é habilitada a aba RELATÒRIO, conforme a
FIGURA 150.
FIGURA 150
121
3
CADASTRO DE PROGRAMAÇÃO
A tabela Programação permite ao usuário programar a retirada dos pedidos de
transporte dos seus clientes. O usuário pode programar novas datas de retirada, atualizar
quantidades programadas para uma data, excluir datas programadas, filtrar programação e
emitir relatórios. É por esta tabela que o sistema permite ao usuário emitir a ordem de coleta
para os veículos. Esta tabela é atualizada pelo menos uma vez por dia pelo sistema, onde ele
atualiza os campos quantidade programada e saldo das programações com datas inferiores a
sua data atual e excluir programações que até esta data ainda tenham o seu campo quantidade
retirada igual a zero. A FIGURA 151 apresenta a tela inicial do cadastro de pedido:
FIGURA 151
A tela é composta pela barra de menus (FIGURA 152), barra de ferramentas,
(FIGURA 153), o componente fichário (FIGURA 154), onde a aba ativa no momento é a
REGISTROS, e a REGISTROS PROGRAMAÇÃO (FIGURA 155), onde se encontra os
dados do cadastro:
1 2 3
FIGURA 152
Componentes da barra de menus (FIGURA 152):
1
Menu/Programação;
2
Menu/Filtrar;
122
3
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 1516 17
FIGURA 153
Componentes da barra de ferramentas (FIGURA 153):
1 - Botão NOVO;
2 - Botão GRAVAR;
3
Botão ATUALIZAR;
4
Botão CANCELAR PEDIDO;
5
Botão CANCELAR;
6
Botão FECHAR;
7
Botão ÚLTIMO REGISTRO;
8
Botão PRÓXIMO REGISTRO;
9
Caixa com o número da chave primária do registro selecionado na tabela;
10
Botão REGISTRO ANTERIOR;
11
Botão PRIMEIRO REGISTRO;
12
Botão FILTRAR POR PEDIDO;
13
Botão FILTRAR POR DATA DE PROGRAMAÇÃO;
14
Botão FILTRAR POR CLIENTE;
15
FILTRAR POR DATA E NUMERO DE PEDIDO;
16
FILTRAR POR PERÍODO;
17
POR CLIENTE E PERÍODO.
1 2 3 4
FIGURA 154
Abas do fichário (FIGURA 154):
1
Aba REGISTROS;
2
Aba EDITAR;
123
3
Aba FILTROS;
4
Aba RELATÓRIO.
1 2
FIGURA 155
Componentes da tabela REGISTROS PROGRAMAÇÃO (FIGURA 155):
1
Colunas da tabela;
2
Linhas da tabela.
3.1
EMITINDO UMA NOVA DATA PROGRAMAÇÃO
Para emitir uma nova data de programação de retirada, o usuário deve clicar no botão
NOVO ou pelo menu Programação/Nova Data. A a aba EDITAR é habilitada, conforme a
FIGURA 156. Ao ser iniciada a tela, o campo NUMERO CONTROLE guarda o valor da
chave primária da tabela Programação, evitando a duplicação da mesma. Todas as caixas são
inicializadas e desabilitadas, sendo somente habilitada a caixa NUMERO PEDIDO. Os
campos de edição obrigatória, ou seja, que não podem ser vazios informará a mensagem
CAMPO NÃO PODE SER EM BRANCO se o usuário tentar passá-los em branco,
retornando o foco para o próprio campo.
FIGURA 156
124
A caixa do NUMERO PEDIDO lista para o usuário todos os números dos pedidos
liberados, não sendo exibidos os pedidos que o campo Status esteja como o valor FECHADO
ou CANCELADO. Quando o usuário escolhe um pedido e tecla enter, a caixa DADOS
PEDIDO exibe os dados referentes a este pedido para ele poder conferir o registro. Depois de
escolher o numero do pedido, é determinada a data da programação na caixa DATA DA
RETIRADA. Esta data não pode ser menor que a data de início do pedido e não pode ser
maior que a data de fim do pedido. A data também é campo único para um número de pedido,
ou seja, um mesmo pedido não pode ter duas datas de programação iguais. Quando o usuário
teclar enter na caixa DATA DA RETIRADA, todas as datas que já estejam programadas para
o pedido são listadas na caixa DADOS DA PROGRAMAÇÃO.
Depois de determinar a data, o usuário informará a quantidade de volume do produto
para ser retirada na caixa QTDE PROGRAMADA. A quantidade programada não pode ser
maior que a quantidade especificada no pedido. Para orientar o usuário, após a saída da caixa
NUMERO PEDIDO são preenchidos os campos QUANTIDADE PEDIDO, QUANTIDADE
PROGRAMADA ACUMULADA e DIFERENÇA. O primeiro informa o usuário à
quantidade do pedido, o segundo a quantidade que já foi programada para este pedido e o
terceiro, a quantidade do pedido que ainda possa ser programada. Em uma tentativa do
usuário de lançar na caixa QTDE PROGRAMADA um valor maior do especificado no campo
DIFERENÇA, o sistema informará uma mensagem de erro. Após a saída da caixa QTDE
PROGRAMADA são preenchidas automaticamente as caixas QTDE RETIRADA e SALDO,
sendo também, na saída desta caixa, que o botão GRAVAR é habilitado.
Ao clicar no botão, o sistema chama a função localizada na camada do servidor, e se
não houver nenhuma violação de restrição, o registro é gravado na tabela Programação,
retornando para o usuário a mensagem PROGRAMAÇÃO CADASTRADA . Ao clicar Ok,
o sistema ativa novamente a aba EDITAR, para o usuário lançar uma nova programação.
Caso o usuário não precise lançar um novo registro (excluir ou atualizar), basta ele
clicar no botão CANCELAR da caixa de ferramentas e a aba EDITAR é desabilitado e a aba
REGISTROS habilitada. Os registros cadastrados estão atualizados na tabela REGISTROS
PROGRAMAÇÃO.
3.2
ATUALIZANDO E FILTRANDO UMA PROGRAMAÇÃO
O procedimento que o usuário utilizará para atualizar um registro da tabela segue os
mesmos procedimentos das tabelas anteriores. O usuário pode selecionar um registro na aba
125
REGISTROS, onde se encontra as tabela com os dados das programações. O usuário deve dar
um duplo clique no registro que ele deseja atualizar e os dados são recuperados para a aba
EDITAR.
Quando um registro da tabela Programação é recuperado, todas as caixas da aba
EDITAR são preenchidas com os valores do registro. A caixa DADOS PEDIDO carrega os
dados do pedido da programação e a caixa DADOS DA PROGRAMAÇÃO, carrega todas as
programações cadastradas para o pedido. O usuário pode utilizar esta caixa para recuperar
outras datas de programação que ele precise atualizar através de um duplo clique sobre a linha
em que o registro se encontra.
O único campo permitido para atualização do usuário nesta tabela é a caixa QTDE
PROGRAMADA. Ele pode informar um novo valor de volume a ser retirado, desde que ele
não ultrapasse o valor especificado no campo DIFERENÇA. Após a saída desta caixa é
habilitado o botão ATUALIZAR. Ao clicar neste botão, os dados são remetidos para o banco
de dados, para a função que atualiza a tabela Programação localizada na camada do servidor.
Se a atualização ocorrer corretamente é retornada ao usuário a mensagem
PROGRAMAÇÃO ATUALIZADA .
O usuário também pode selecionar um registro para ser alterado através da aba
FILTROS, conforme a FIGURA 157. Esta tabela filtra dados por numero do pedido, por data
de programação, por cliente, por data e número do pedido, por período e mais o cliente e por
período através do menu Filtrar ou pelos botões localizados na barra de ferramentas (FIGURA
153).
126
1 2 3 4 5 6 7
FIGURA 157
Componentes da aba FILTROS (FIGURA 157)
1
Botão FILTRAR;
2
Botão IMPRIMIR;
3
Botão SAIR;
4
Caixa FILTRO;
5
Tabela DADOS PROGRAMAÇÃO;
6
Caixa DATA 1;
7
Caixa DATA 2.
Ao ser executado um filtro por cliente, a caixa FILTRO lista todos os nomes das
pessoas físicas e jurídicas cadastradas no banco. Se for executado um filtro por um período, o
usuário terá que informar duas datas, inicial e final, nas caixas DATA 1 e DATA 2. Se for
realizado um filtro por cliente e período, o usuário tem que escolher um nome da lista na
caixa FILTRO e depois informar as datas, inicial e final, nas caixas DATA 1 e DATA 2. O
usuário após selecionar uma das opções e preenchido as caixas, deve clicar no botão
FILTRAR e os dados do registro filtrado são carregados na tabela DADOS
PROGRAMAÇÃO. Para recuperar o registro para a aba Editar, basta somente dar um duplo
sobre a linha em que se encontra o registro.
127
Se o usuário precisar gerar um relatório do registro filtrado, ele deve clicar no botão
IMPRIMIR (2), e a tela de visualização de impressão (FIGURA 158) é ativada. O botão SAIR
(3) desabilita a aba FILTROS e habilita novamente a aba REGISTROS.
FIGURA 158
3.3
EXCLUINDO UMA PROGRAMAÇÃO
Para excluir um registro da tabela Programação, o usuário segue os mesmos
procedimentos realizados para a atualização. Quando um registro é recuperado para a aba
EDITAR, o botão EXCLUIR é habilitado. O usuário, somente pode excluir um registro desta
da tabela, quando o campo quantidade retirada for igual a zero. Ao clicar no botão EXCLUIR,
a função na camada do servidor que exclui um registro da tabela Programação é chamada e se
não ocorrer nenhum erro é retornada ao usuário a mensagem PROGRAMAÇÃO
EXCLUIDA .
3.4
GERANDO O RELATÓRIO GERAL DE PROGRAMAÇÃO
O usuário pode gerar um relatório geral da tabela Programação através do menu
Arquivo/Gerar Relatório. Ao ser acionado pelo usuário é habilitada a aba RELATÒRIO,
conforme a FIGURA 159.
128
FIGURA 159
4
CADASTRO DE ORDEM DE COLETA
A tabela Ordem de Coleta emite uma autorização para um veículo transportador poder
retirar um produto em uma empresa. Através do cadastro, o usuário pode emitir uma nova
ordem de coleta como também excluir, mas não tem permissão para atualização. O usuário
também pode selecionar e filtrar registros da tabela, além de poder gerar relatórios. É somente
com a emissão da ordem de coleta e a confirmação de carregamento do veículo através da
nota fiscal da empresa, que o usuário emitirá o conhecimento de transporte. A FIGURA 160
apresenta a tela inicial do cadastro de Ordem de Coleta:
129
FIGURA 160
A tela é composta pela barra de menus (FIGURA 161), barra de ferramentas,
(FIGURA 162), o componente fichário (FIGURA 163), onde a aba ativa no momento é a
REGISTROS, e o grupo REGISTROS ORDEM DE COLETA (FIGURA 164), onde se
encontra todos os registros do cadastro:
1 2 3
FIGURA 161
Componentes da barra de menus (FIGURA 161):
1
Menu/Ordem de Coleta;
2
Menu/Filtrar;
3
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 1112 13 1415 16 17
FIGURA 162
130
Componentes da barra de ferramentas (FIGURA 162):
1 - Botão NOVO;
2 - Botão GRAVAR;
3
Botão EXCLUIR;
4
Botão SALVAR E IMPRIMIR ORDEM DE COLETA;
5
Botão CANCELAR;
6
Botão FECHAR;
7
Botão ÚLTIMO REGISTRO;
8
Botão PRÓXIMO REGISTRO;
9
Caixa com o número da chave primária do registro selecionado na tabela;
10
Botão REGISTRO ANTERIOR;
11
Botão PRIMEIRO REGISTRO;
12
Botão FILTRAR POR MOTORISTA;
13
Botão FILTRAR POR PEDIDO;
14
Botão FILTRAR POR PERÍODO;
15
Botão FILTRAR POR CLIENTE E DATA;
16
Botão FILTRAR POR PEDIDO E DATA;
17
Botão FILTRAR POR PEDIDO E MOTORISTA.
1 2 3 4
FIGURA 163
Abas do fichário (FIGURA 163):
1
Aba REGISTROS;
2
Aba EDITAR;
3
Aba FILTROS;
4
Aba Relatório.
1 2
FIGURA 164
131
Componentes da tabela REGISTROS ORDEM COLETA (FIGURA 164):
1
Colunas da tabela;
2
Linhas da tabela.
4.1
EMITINDO UMA NOVA ORDEM DE COLETA
Para emitir uma nova ordem de coleta, o usuário deve clicar no botão NOVO ou pelo
menu Ordem Coleta/Nova Ordem Coleta. A aba EDITAR é habiltada, conforme a FIGURA
165. Ao ser iniciada a tela, o campo NUMERO ORDEM COLETA guarda o próximo valor
da chave primária da tabela evitando o problema de duplicação da mesma. Todas as caixas
são inicializadas e desabilitadas, sendo somente habilitada a caixa DATA RETIRADA. A
caixa DATA CADASTRO guarda automaticamente a data atual. Os campos de edição
obrigatória, ou seja, que não podem ser vazios informará a mensagem CAMPO NÃO PODE
SER EM BRANCO se o usuário tentar passá-los em branco, retornando o foco para o
próprio campo.
FIGURA 165
Na caixa DATA RETIRADA, o usuário informa a data da programação. Se esta data
for inferior a data atual do sistema, o sistema retorna para o usuário uma mensagem
informando que a data é invalida. É permitida somente datas com valores acima ou igual à
data atual. Após a saída dela, toda programação cadastrada no banco que possua o campo
132
DATA DA RETIRADA igual à data informada pelo usuário, é carregada na caixa LISTA DE
PROGRAMAÇÃO CONFORME DATA RETIRADA, na qual o usuário selecionará um dos
registros através de um duplo clique sobre a linha em que ele se encontra.
Após esta ação do usuário, dados sobre a programação escolhida são recuperadas nas
caixas NUMERO CONTROLE, NUMERO PEDIDO, DATA RETIRADA, QTDE
PROGRAMADA, QTDE RETIRADA E SALDO A RETIRAR. Também são preenchidos os
campos QUANTIDADE PROGRAMADA, QUANTIDADE PROGRAMADA
ACUMULADA e DIFERENÇA, onde o primeiro informa a quantidade programada para o
registro da tabela Programação escolhido pelo usuário, o segundo informa qual o volume já
reservado por emissões de outras ordens de coleta deste registro e o terceiro informa o volume
deste registro que ainda pode ser retirado.
A caixa MOTORISTA DO VEÍCULO lista todas as pessoas físicas cadastradas no
banco. Após o usuário selecionar um nome da lista e teclar enter, o sistema verificará a
situação do motorista na tabela Seguro, através do campo Data de Validade. Se este campo
estiver com a data vencida, o sistema não permite a emissão da ordem de coleta e cancelará o
evento, sendo preciso o usuário solicitar nova liberação da Seguradora. Com a data de
validade ainda no prazo, é liberada a caixa QUANTIDADE A RETIRAR. Esta caixa recupera
o valor padrão de capacidade de carga para o veículo conduzido pelo motorista. O usuário
pode alterar o valor do campo, mas não acima do valor padrão informado na caixa. Após a
saída desta caixa, é habilitado o botão GRAVAR e o botão SALVAR E IMPRIMIR ORDEM
DE COLETA.
Ao clicar no botão GRAVAR, o sistema chama a função localizada na camada do
servidor e se não houver nenhuma violação de restrição, o registro é gravado na tabela Ordem
de Coleta, retornando para o usuário a mensagem ORDEM DE COLETA CADASTRADA .
Ao clicar Ok, o sistema ativa novamente a aba EDITAR, para o usuário lançar uma nova
ordem de coleta. O botão SALVAR E IMPRIMIR ORDEM DE COLETA realiza a mesma
função do botão GRAVAR, com a diferença de imprimir a ordem de coleta em um
formulário, o qual tem que ser apresentado pelo motorista na empresa em que ele for retirar o
produto. Em qualquer uma das opções, o registro quando é gravado no banco, o campo Status
da tabela é preenchido com o valor LIBERADO.
Caso o usuário não precise lançar um novo registro (excluir ou atualizar), basta ele
clicar no botão CANCELAR da caixa de ferramentas e a aba EDITAR é desabilitado e a aba
REGISTROS habilitada. Os registros cadastrados estão atualizados na tabela REGISTROS
ORDEM DE COLETA.
133
4.2
FILTRANDO UMA PROGRAMAÇÃO
Esta tabela não permite atualização, mas o usuário pode realizar filtros, conforme a
FIGURA 166. Esta tabela filtra dados por nome do motorista, por número do pedido, por
período, por cliente e mais a data, por pedido e por nome do motorista junto com o número do
pedido através do menu Filtrar ou pelos botões localizados na barra de ferramentas (FIGURA
162).
1 2 3 4 5 6 7
FIGURA 166
Componentes da aba FILTROS (FIGURA 166)
1
Botão FILTRAR;
2
Botão IMPRIMIR;
3
Botão SAIR;
4
Caixa FILTRO;
5
Tabela DADOS PROGRAMAÇÃO;
6
Caixa DATA 1;
7
Caixa DATA 2.
Ao ser executado um filtro pelo nome do motorista, a caixa FILTRO lista todos os
nomes das pessoas físicas cadastradas no banco. Se for executado um filtro por um período, o
usuário terá que informar duas datas, inicial e final, nas caixas DATA 1 e DATA 2. Se for
realizado um filtro por cliente e data, o usuário tem que escolher um nome da lista na caixa
134
FILTRO e depois informar as datas, inicial e final, nas caixas DATA 1 e DATA 2. O usuário
após selecionar uma das opções e preenchido as caixas, deve clicar no botão FILTRAR, e os
dados do registro filtrado são carregados na tabela DADOS ORDEM COLETA. Para
recuperar o registro para a aba Editar (somente para visualização e exclusão), basta somente
dar um duplo clique sobre a linha em que se encontra o registro.
Se o usuário precisar gerar um relatório do registro filtrado, ele deve clicar no botão
IMPRIMIR (2), e a tela de visualização de impressão (FIGURA 167) é ativada. O botão SAIR
(3) desabilita a aba FILTROS e habilita novamente a aba REGISTROS.
FIGURA 167
4.3
EXCLUINDO UMA ORDEM DE COLETA
Para excluir um registro da tabela Ordem de coleta, o usuário pode selecionar o
registro na tabela da aba REGISTROS, ou filtrá-lo pela aba FILTROS. Quando um registro é
recuperado para a aba EDITAR, o botão EXCLUIR é habilitado. O usuário, somente pode
excluir um registro da tabela se o mesmo ainda não foi utilizado pela tabela CTRC. Ao clicar
no botão EXCLUIR, a função na camada do servidor que exclui um registro da tabela Ordem
de Coleta é chamada e se não ocorrer nenhum erro é retornada ao usuário a mensagem
ORDEM DE COLETA EXCLUIDA .
135
4.4
GERANDO O RELATÓRIO GERAL DE ORDEM DE COLETA
O usuário pode gerar um relatório geral da tabela Programação através do menu
Arquivo/Gerar Relatório. Ao ser acionado pelo usuário é habilitada a aba RELATÒRIO,
conforme a FIGURA 168.
FIGURA 168
136
VII
MÓDULO DE EMISSÃO DO CTRC (CONHECIMENTO DE TRANSPORTE
RODOVIÁRIO E CARGAS)
O módulo de emissão do conhecimento de transporte gerencia o mais importante
cadastro do sistema, o CTRC.
1
CADASTRO CTRC (CONHECIMENTO DE TRANSPORTE RODOVIÁRIO
E CARGAS)
O cadastro permite ao usuário emitir o Conhecimento de Transporte Rodoviário e
Cargas, documento de porte obrigatório para veículos transportadores de carga no Brasil,
conforme a lei nº 11442, de 05 de janeiro de 2007. Através do cadastro, o usuário pode emitir
um novo CTRC, excluir, cancelar, imprimir, filtrar e gerar relatórios. A FIGURA 169
apresenta a tela inicial do cadastro do CTRC:
FIGURA 169
A tela é composta pela barra de menus (FIGURA 170), barra de ferramentas,
(FIGURA 171), o componente fichário (FIGURA 172), onde a aba ativa no momento é a de
CTRCs EMITIDOS e o grupo dos DADOS DOS CONHECIMENTOS DE TRANSPORTE
(FIGURA 173), onde se encontra a tabela com todos os registros cadastros no banco:
137
1 2 3
FIGURA 170
Componentes da barra de menus (FIGURA 170):
1
Menu/CTRC;
2
Menu/Filtrar;
3
Menu/Arquivo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
FIGURA 171
Componentes da barra de ferramentas (FIGURA 171):
1 - Botão NOVO;
2 - Botão GRAVAR;
3
Botão CANCELAR CTRC;
4
Botão EXCLUIR CTRC;
5
Botão SALVAR E IMPRIMIR CTRC;
6
Botão CANCELAR EDIÇÃO;
7
Botão FECHAR;
8
Botão ÚLTIMO REGISTRO;
9
Botão PRÓXIMO REGISTRO;
10
Caixa com o número da chave primária do registro selecionado na tabela;
11
Botão REGISTRO ANTERIOR;
12
Botão PRIMEIRO REGISTRO;
13
Botão FILTRAR POR NUMERO DO CTRC;
14
Botão FILTRAR POR DATA DE EMISSÃO;
15
Botão FILTRAR POR CLIENTE E PERÍODO;
16
Botão FILTRAR POR NUMERO DO PEDIDO.
138
1 2 3 4
FIGURA 172
Componentes da aba fichário (FIGURA 172):
1
Aba CTRCs EMITIDOS;
2
Aba EMISSÃO CTRC;
3
Aba FILTROS;
4
Aba RELATÓRIOS.
1 2
FIGURA 173
Componentes da tabela DADOS DOS CONHECIMENTOS DE TRANSPORTE
(FIGURA 173):
1
Colunas da tabela;
2
Linhas da tabela.
1.1
EMITINDO UM NOVO CTRC
Para emitir um novo conhecimento de transporte, o usuário deve clicar no botão
NOVO ou pelo menu CTRC/Emitir Novo CTRC. A aba EMISSÂO CTRC é habilitada. Nesta
aba se encontra o fichário que separa a edição do registro em cinco telas, conforme a
FIGURA 174, onde a tela ativa é a aba TELA 1, conforme FIGURA 175.
1 2 3 4 5
FIGURA 174
Aba do fichário das telas de edição de um registro (FIGURA 174):
1
Aba TELA 1;
139
2
Aba TELA 2;
3
Aba TELA 3;
4
Aba TELA 4;
5
Aba TELA 5.
FIGURA 175
A caixa do NUMERO DO CTRC guarda o próximo número da chave primária da
tabela, que também tem que ser o número do formulário de impressão do CTRC. A caixa
DATA EMISSÃO é preenchida automaticamente pelo sistema pela data atual. Na caixa
DATA PROGRAMADA RETIRADA é informada a data que o usuário programou a retirada
da mercadoria. Não pode ser informada uma data inferior a data atual. Na saída desta caixa,
todos os registros da tabela Programação que estiverem com o valor do seu campo Data
Retirada igual à data informada pelo usuário, são carregados na caixa LISTA DAS
RETIRADAS PROGRAMADAS.
O usuário deve dar um duplo clique sobre o registro de programação para carregar na
caixa LISTA DAS ORDENS DE COLETAS EMITIDAS PARA A PROGRAMAÇÃO
ESCOLHIDA, todas as ordens de coletas emitidas para esta programação. Aparecerá nesta
caixa todos os registros que somente estiverem com o valor do campo Status como
LIBERADO. O usuário executará um duplo clique sobre a linha da ordem de coleta na qual
ele já pode emitir o CTRC, ou seja, sobre o motorista que já esteja com seu veículo carregado
140
e dotado da nota fiscal empresa. Após este evento, a aba TELA 2 é habilitada, conforme a
FIGURA 176:
FIGURA 176
A partir da aba TELA 2 até a aba TELA 4, o sistema faz uma varredura em todas as
tabelas através dos relacionamentos entre elas. Na aba TELA 2 (FIGURA 176) é informado
para o usuário os dados sobre o pedido. Na caixa NÚMERO é carregado o numero do pedido
e a sua data de emissão carregada na caixa DATA EMISSÂO. O nome do produto é
carregado na caixa PRODUTO. Os dados sobre o remetente, destinatário, local de entrega e
local de retirada são carregado nos grupos REMETENTE, DESTINATÁRIO, LOCAL
RETIRADA e LOCAL ENTREGA. O usuário após visualizar os dados, verificando a
integridade deles, habilitará a aba TELA 3 (FIGURA 177) clicando no botão AVANÇAR.
141
FIGURA 177
A aba TELA 3 (FIGURA 177) continua informando os dados do pedido. Os dados do
consignatário e do responsável pelo frete são carregados nos grupos CONSIGNATÁRIO e
CLIENTE/RESPONSÁVEL PELO FRETE. Os outros valores correspondentes ao pedido são
informados no grupo VALORES DO PEDIDO. Se os dados do pedido estiverem corretos, o
usuário deve clicar no botão CONFIRMA DADOS DO PEDIDO para habilitar a aba TELA 4
(FIGURA 178). Se nesta etapa o usuário perceber que carregou dados do pedido errado, o
usuário pode retornar a primeira tela (TELA 1, FIGURA 175) clicando no botão DEFINIR
NOVAMENTE ORDEM COLETA, para escolher uma outra ordem de coleta. O botão
CANCELAR EMISSÃO cancela a emissão do CTRC, desabilitando a aba EMISSÃO CTRC
e habilitando a aba CTRCs EMITIDOS.
142
FIGURA 178
A aba TELA 4 (FIGURA 178) recupera para o usuário os dados referentes ao
transportador. No grupo VEÌCULO é carregado os dados sobre o veículo, e se este forma um
conjunto formado por cavalo mecânico e semi-reboque ou bitrem ou tritrem, as placas do
mesmo são carregadas no grupo PLACAS PARA CONJUNTO FORMADO POR CAVALO
MECÂNICO E SEMI-REBOQUE. No grupo DADOS DO CONDUTOR DO VEÍCULO são
carregados os dados sobre o motorista e no grupo DADOS DO PROPRIETÁRIO DO
VEÍCULO são carregados os dados do proprietário do mesmo. O usuário, após a visualização
destes dados, e os mesmos estiverem corretos, ele deve clicar no botão CONFIRMA DADOS
DO VEÍCULO para habilitar a aba TELA 5, conforme a FIGURA 179. Qualquer erro
detectado pelo usuário, ele pode novamente escolher outra ordem de coleta através do botão
DEFINIR NOVAMENTE ORDEM COLETA. O Botão CANCELAR EMISSÃO cancela a
emissão do CTRC, desabilitando a aba EMISSÃO CTRC e habilitando a aba CTRCs
EMITIDOS.
143
FIGURA 179
A aba TELA 5 (FIGURA 179) possui os grupos NOTA FISCAL, VALORES DO
FRETE, VALORES DO FRETE DO MOTORISTA e OBSERVAÇÕES. Para começar a
editar os valores, o usuário deve clicar no botão INICIAR VALORES, habilitando a caixa
NUMERO NF. As caixas que não podem ter seus valores vazios informam ao usuário, caso
ele passe a caixa sem editá-la, a mensagem ESTE CAMPO NÃO PODE SER EM
BRANCO , retornando o foco da edição para o mesmo campo. No grupo NOTA FISCAL, o
usuário informará os valores correspondentes a nota fiscal emitida pela empresa nas seguintes
caixas:
NUMERO NF: informar o numero da nota fiscal;
PESO BRUTO: informar o peso bruto da nota fiscal. Se o frete for cobrado pelo volume,
é pelo peso bruto que é executado o cálculo do frete;
PESO LÍQUIDO: informar o peso líquido da nota fiscal. O peso líquido é o peso do
produto retirado qualquer fator, como umidade, embalagem, etc., que não compõem o
mesmo. É pelo peso liquido que as tabelas Programação e Pedido atualizarão o campo
saldo, pois ele informa realmente a quantidade retirada;
VALOR DA NOTA FISCAL: informar o valor total da nota fiscal;
QUANTIDADE: se o produto é embalado por caixas, pallets ou fardos, entre outros, a
quantidade destes deve ser informada;
144
DESCRIÇÃO: informar o tipo de embalagem, como por exemplo, pallet, caixa, fardos,
etc.;
TAXA SEGURO: informar a taxa cobrada pelo seguro;
CÁLCULO SEGURO: é calculado automaticamente o valor da taxa do seguro. Este
cálculo é realizado multiplicando a TAXA SEGURO pelo VALOR DA NOTA FISCAL.
No grupo VALORES DO FRETE, estão as seguintes caixas:
FRETE: o sistema calcula o valor do frete multiplicando o valor da caixa PESO BRUTO
pelo valor do frete da caixa VALOR FRETE TOTAL (TELA 3, FIGURA 177);
ADICIONAL CARGA/DESCARGA: informar um valor que é cobrado pela
transportadora, se houver necessidade do motorista contratar pessoal para a descarga do
produto;
PEDÁGIO: informar cobrança adicional do pedágio, se este for combinado junto ao
cliente;
VALOR TOTAL FRETE: soma das caixas FRETE, ADICIONAL
CARGA/DESCARGA e PEDÁGIO;
TAXA ICMS: a cobrança do ICMS é identificada no pedido, quando o usuário informa se
haverá ou não incidência de ICMS. Se houver, a caixa VALOR ICMS é preenchida com
o valor deste, se não, o valor da caixa é zero;
VALOR ICMS: é o cálculo da incidência do ICMS. É a multiplicação da caixa TAXA
ICMS pela caixa VALOR TOTAL FRETE;
MENSAGENS: o valor desta caixa depende do resultado do cálculo do ICMS. Para um
valor acima de zero, esta caixa passa a ter o valor do imposto a ser destacado. Para um
valor igual a zero, a caixa é preenchida pela mensagem correspondente a isenção do
imposto.
No grupo VALORES DO FRETE DO MOTORISTA estão as seguintes caixas:
FRETE MOTORISTA: cálculo do frete do motorista. É realizado através da
multiplicação da caixa PESO BRUTO pelo valor do frete do motorista na caixa VALOR
FRETE MOT (TELA 3, FIGURA 177);
ADICIONAL CARGA/DESCARGA: é o mesmo valor da caixa do grupo VALORES
DO FRETE;
PEDÁGIO: é o mesmo valor da caixa do grupo VALORES DO FRETE;
SUBTOTAL: é a soma das caixas FRETE MOTORISTA, ADICIONAL
CARGA/DESCARGA e PEDÁGIO;
145
IRRF: cálculo do imposto de renda do motorista realizado durante o mês;
SEST/SENAT: cálculo da taxa do SEST;
DESCONTO ADIANTAMENTO: informar o valor do adiantamento de uma parte do
frete do motorista, caso o mesmo requisitar;
VALOR FINAL FRETE: cálculo final do frete do motorista, subtraindo do valor da caixa
SUBTOTAL os valores das caixas IRRF, SEST/SENAT e DESCONTO
ADIANTAMENTO.
Na caixa OBSERVAÇÕES, o usuário informará dados adicionais que devem estar no
corpo do documento. Após a saída desta última caixa, é habilitado o botão CONFIRMA
VALORES, o qual o usuário deve clicar para confirmar a edição dos dados e habilitar os
botões GRAVAR e SALVAR E IMPRIMIR CTRC.
Quando o usuário clicar no botão GRAVAR, os dados são enviados para a função
localizada na camada do servidor, que é responsável por gravar os dados na tabela CTRC.
Neste botão o CTRC não é enviado para a impressora, e o seu campo STATUS passa a ter o
valor AGUARDANDO. O usuário deve utilizar este botão somente se houver alguma dúvida
na integridade dos dados. No caso do botão SALVAR E IMPRIMIR CTRC, os dados também
são enviados para a gravação, mas também são enviados para a impressora, e o campo
STATUS passa a ter o valor EMITIDO.
Para os dois botões, assim que os dados são gravados no banco de dados, as tabelas
Ordem de Coleta, Programação e Pedido sofrem alterações. A primeira tem o seu campo
STATUS alterado para CARREGADO, não aparecendo mais na caixa LISTA DAS ORDENS
DE COLETAS EMITIDAS PARA A PROGRAMAÇÃO ESCOLHIDA da aba TELA 1
(FIGURA 175). O segundo tem os valores dos campos quantidade retirada e saldo
atualizados, onde o primeiro é acrescido pelo valor informado na caixa PESO LÍQUIDO, e o
segundo é decrescido pelo valor da mesma caixa. O mesmo tipo de atualização sofre a terceira
tabela.
Após a gravação do registro, é retornada para o usuário a mensagem CTRC
CADASTRADO. Caso o usuário não precise lançar um novo registro (ou excluir e atualizar),
basta ele clicar no botão CANCELAR da caixa de ferramentas e a aba EDITAR é desabilitado
e a aba REGISTROS habilitada. Os registros cadastrados estão atualizados na tabela dos
DADOS DOS CONHECIMENTOS DE TRANSPORTE.
146
1.2
FILTRANDO UM CTRC
A tabela CTRC não permite atualização dos seus dados, mas o usuário pode realizar
filtros, conforme a FIGURA 180. Esta tabela filtra dados pelo número do CTRC, pela data de
emissão, pelo nome do cliente junto com um período e pelo numero do pedido através do
menu Filtrar ou pelos botões localizados na barra de ferramentas (FIGURA 171).
1 2 3 4 5 6 7
FIGURA 180
Componentes da aba FILTROS (FIGURA 180):
1
Botão FILTRAR;
2
Botão IMPRIMIR;
3
Botão SAIR;
4
Caixa FILTRO;
5
Tabela DADOS CTRC;
6
Caixa DATA 1;
7
Caixa DATA 2.
Ao ser executado um filtro pelo numero do conhecimento de transporte, a caixa
FILTRO lista todos os documentos gravados na tabela CTRC. Se for executado um filtro pela
147
data de emissão do documento, o usuário informará duas datas, inicial e final, nas caixas
DATA 1 e DATA 2. Se ele for realizado um filtro por cliente e data, o usuário tem que
escolher um nome da lista na caixa FILTRO e depois informar as datas, inicial e final, nas
caixas DATA 1 e DATA 2. O usuário após selecionar uma das opções e preenchido as caixas,
deve clicar no botão FILTRAR, e os dados do registro filtrado são carregados na tabela
DADOS CTRC. Para recuperar o registro para a aba EMISSÃO CTRC (somente para
visualização, exclusão e cancelamento), basta somente dar um duplo clique sobre a linha em
que se encontra o registro.
Se o usuário precisar gerar um relatório do registro filtrado, ele deve clicar no botão
IMPRIMIR (2), e a tela de visualização de impressão (FIGURA 181) é habilitada. O botão
SAIR (3) desabilita a aba FILTROS e habilita a aba CTRCs EMITIDOS.
FIGURA 181
1.3
EXCLUINDO UM CTRC
O usuário pode excluir um conhecimento de transporte, somente se o mesmo ainda
não foi impresso no formulário. Isto é controlado através do campo STATUS, que ainda
possui o seu valor como AGUARDANDO. Este controle ocorre pelo motivo do numero do
CTRC ser igual ao número do formulário, e uma vez em que o documento foi impresso, o
número do formulário não pode ser mais utilizado, restando como única opção em caso de
erro, o cancelamento do documento.
148
Para excluir um registro da tabela CTRC, o usuário pode selecionar o registro na
tabela dos CTRCs EMITIDOS, ou filtrá-lo pela aba FILTROS. Quando um registro é
recuperado para a aba EDITAR, o botão EXCLUIR é habilitado. Ao clicar no botão, a função
na camada do servidor que exclui um registro da tabela CTRC é chamada e se não ocorrer
nenhum erro é retornado para o usuário à mensagem CTRC EXCLUÌDO .
A exclusão executa atualizações nas tabelas Ordem de Coleta, Programação e Pedido.
A primeira volta a ter seu campo STATUS com o valor AGUARDANDO, liberando o
veículo para poder ser novamente incluído na listagem das ordens de coleta. As outras duas
tem os valores dos seus campos de quantidade retirada e saldo novamente corrigidos.
1.4 CANCELANDO UM CTRC
O cancelamento de um conhecimento de transporte só pode ser executado quando o
campo STATUS possuir o valor EMITIDO. O cancelamento é feito quando o usuário
descobre algum erro no documento, e o mesmo já foi impresso. Para fazer o cancelamento,
ele procederá igualmente ao método realizado para excluir um CTRC. Assim que o registro é
recuperado para a aba EMISSÃO CTRC, o botão CANCELAR CTRC é habilitado, e ao ser
clicado, o registro tem seu campo STATUS atualizado para o valor CANCELADO. Assim
como a exclusão, o cancelamento do CTRC também atualiza as tabelas Ordem de Coleta,
Programação e CTRC. A primeira volta a ter seu campo STATUS com o valor
AGUARDANDO, liberando o veículo para poder ser novamente incluído na listagem das
ordens de coleta. As outras duas tem os valores dos seus campos de quantidade retirada e
saldo novamente corrigidos.
1.5
IMPRIMINDO NOVAMENTE UM CTRC SALVO
O usuário pode também, imprimir um registro do CTRC que foi salvo através botão
GRAVAR e que não foi impresso no formulário ou somente imprimir uma cópia em uma
folha em branco. Ele pode realizar esta tarefa recuperando o registro na aba CTRCs
EMITIDOS ou pela aba FILTROS (mesmos procedimentos utilizados para a exclusão e o
cancelamento).
Quando o registro é carregado para a aba EMISSÂO CTRC, o botão SALVAR E
IMPRIMIR CTRC é habilitado. Após clicar neste botão, a tela de impressão do formulário
(FIGURA 182) é aberta, permitindo ao usuário fazer a impressão. O usuário deve ter cuidado
ao imprimir o documento. Se o mesmo já foi impresso, ele deve certificar de a impressora
149
estar sendo alimentada por uma folha em branco. Se ele estiver imprimindo o documento pela
primeira vez (o CTRC foi salvo através do botão GRAVAR), ele deve certificar que o número
do formulário seja o mesmo do numero do CTRC.
FIGURA 182
1.6
GERANDO O RELATÓRIO GERAL DO CTRC
O usuário pode gerar um relatório da tabela CTRC através do menu Arquivo/Gerar
Relatório. Ao ser acionado pelo usuário é habilitada a aba RELATÒRIO, conforme a
FIGURA 183.
150
FIGURA 183
151
VIII
MÓDULO DE GERENCIAMENTO DE MENSAGENS
O módulo gerenciador de mensagens trabalha com o cadastro da tabela Mensagem,
onde o usuário pode inserir, atualizar, excluir e selecionar dados.
1
CADASTRO DE MENSAGEM
O cadastro de Mensagem tem a finalidade de cadastrar as mensagens que envolvem a
não incidência do ICMS no conhecimento de transporte. Neste cadastro o usuário pode
inserir, atualizar, excluir e selecionar os dados das mensagens. Ele também fornece um
relatório geral desta tabela. A FIGURA 184 apresenta a tela inicial do cadastro de Mensagem.
FIGURA 184
A tela é composta pela barra de menus (FIGURA 185), uma barra de ferramentas,
(FIGURA 186), o componente fichário (FIGURA 187), onde a aba ativa no momento é a
MENSAGEM, e a tabela REGISTRO DO CADASTRO DE MENSAGEM (FIGURA 188):
1 2
FIGURA 185
Componentes da barra de menus (FIGURA 185):
1
Menu/Mensagem;
2
Menu/Arquivo.
152
1 2 3 4 5 6 7 8 9 10 11
FIGURA 186
Componentes da barra de ferramentas (FIGURA 186):
1 - Botão NO VO;
2 - Botão GRAVAR;
3
Botão ATUALIZAR;
4
Botão EXCLUIR;
5
Botão CANCELAR;
6
Botão FECHAR;
7
Botão ÚLTIMO REGISTRO;
8
Botão PRÓXIMO REGISTRO;
9
Caixa com o número da chave primária do registro selecionado na tabela;
10
Botão REGISTRO ANTERIOR;
11
Botão PRIMEIRO REGISTRO.
1 2 3
FIGURA 187
Abas do fichário (FIGURA 187):
1
Aba MENSAGEM;
2
Aba EDITAR;
3
Aba RELATÓRIO.
1 2
FIGURA 188
153
Componentes da tabela REGISTRO DO CADASTRO DE MENSAGEM (FIGURA
188):
1
Colunas da tabela;
2
Linhas da tabela.
1.1
INSERINDO UMA NOVA MENSAGEM
Para inserir uma nova mensagem, o usuário deve clicar no botão NOVO, ou pelo
menu Mensagem/Nova Mensagem. A aba EDITAR é habilitada, conforme a FIGURA 189. A
tabela mensagem possui um único campo, capaz de armazenar uma mensagem com até 1000
caracteres, e este campo é também a chave primária da tabela, não sendo permitida a sua
duplicação.
FIGURA 189
Somente após a saída da caixa TEXTO MENSAGEM é que o botão GRAVAR é
habilitado. Ao clicar no botão, o sistema chama a função localizada na camada do servidor, e
se não houver nenhuma violação de restrição, o registro é gravado na tabela Mensagem,
retornando para o usuário a mensagem MENSAGEM CADASTRADA . Ao clicar Ok, o
sistema ativa novamente a aba EDITAR, para o usuário lançar um novo registro.
Caso o usuário não precise mais lançar novos registros (excluir ou atualizar), basta ele
clicar no botão CANCELAR da barra de ferramentas e aba EDITAR é desabilitado e a aba
MENSAGEM habilitada. Os registros cadastrados estão atualizados na tabela REGISTRO
DO CADASTRO DE MENSAGEM.
154
1.2
ATUALIZANDO UMA MENSAGEM
O procedimento que o usuário utilizará para atualizar um registro da tabela Mensagem
segue os mesmos procedimentos das tabelas anteriores, mas esta tabela por ser populada com
poucos registros, não possui o modo filtragem. O usuário selecionará um registro na aba
MENSAGEM onde se encontra a tabela com os dados do cadastro, e dar um duplo clique
sobre ele para os dados serem recuperados para a aba EDITAR.
O botão ATUALIZAR é habilitado após a saída da caixa TEXTO MENSAGEM. Ao
clicar neste botão os dados serão remetidos ao banco de dados para serem atualizados. Se os
mesmos estiverem corretos e nenhuma restrição for quebrada, uma mensagem de
MENSAGEM ATUALIZADA é retornada para o usuário. Ao clicar OK, a aba EDITAR é
desabilitado e a aba MENSAGEM habilitada.
1.3
EXCLUINDO UMA MENSAGEM
Para excluir uma mensagem da tabela, o usuário seguirá os mesmos procedimentos
realizados para a atualização. Quando o registro é recuperado para a aba EDITAR o botão
EXCLUIR é habilitado. Ao clicar no botão, a função que executa a exclusão da tabela
Mensagem na camada do servidor é chamada e o registro é excluído. O registro não será
excluído se ele estiver sendo utilizado por outra tabela. Se a exclusão ocorrer corretamente, é
retornada ao usuário a mensagem MENSAGEM EXCLUÍDA . Ao clicar OK, a aba
EDITAR é desabilitado e a aba MENSAGEM habilitada.
1.4
GERANDO O RELATÓRIO GERAL DE MENSAGENS
O usuário pode gerar um relatório geral da tabela mensagem através do menu
Arquivo/Gerar Relatório. Ao ser acionado pelo usuário é habilitada a aba RELATÒRIO,
conforme a FIGURA 190.
155
FIGURA 190
156
IX
MÓDULO DO USUÁRIO
O módulo de gerenciamento do usuário tem a finalidade de permitir ao administrador
do sistema cadastrar e excluir usuários do sistema e controlar o nível de acesso que este pode
ter sobre os dados. Somente usuários com o status de administrador têm acesso a este módulo.
1 - CRIANDO UM NOVO USUÁRIO
Para criar um novo usuário para o sistema, o usuário tem que esta com a tela principal
(FIGURA 36) ativa, e quando ele clicar no caminho Usuário/Criar Usuário localizado na
barra de menus, o formulário de controle de usuários é ativado (FIGURA 191).
FIGURA 191
O formulário é composto por uma barra de menus (FIGURA 192), uma barra de
ferramenta (FIGURA 193) e pelo grupo DADOS (FIGURA 194).
1 2
FIGURA 192
Componentes da barra de menus (FIGURA 192):
1
Menu Usuário;
2
Menu
Arquivo.
157
1 2 3 4 5
FIGURA 193
Componentes da barra de ferramentas (FIGURA 193):
1
Botão NOVO;
2
Botão GRAVAR;
3
Botão EXCLUIR;
4
Botão CANCELAR;
5
Botão FECHAR.
1 2 3 4 5
6
FIGURA 194
Componentes do grupo DADOS (FIGURA 194):
1
Caixa ID DO USUÁRIO;
2
Caixa NOME DO USUÁRIO;
3
Caixa LOGIN DO USUÁRIO;
4
Caixa SENHA DO USUÁRIO;
5
Caixa NÍVEL DO STATUS DO USUÁRIO;
6
Caixa DATA DO CADASTRO.
Quando o usuário clica no botão NOVO as caixas são inicializadas e desabilitadas. A
caixa ID DO USUÁRIO guarda o valor da chave primária da tabela, evitando o problema da
duplicação do valor da mesma. A caixa NOME DO USUÁRIO é habilitada. O nome do
usuário é um campo único no banco de dados, não podendo ter seu valor duplicado no banco
158
de dados. Todos os campos são de preenchimento obrigatório e se, o usuário tentar passar
uma caixa vazia é informada a mensagem ESTE CAMPO NÃO PODE SE VAZIO e o foco
da edição retorna para a mesma caixa.
As caixas LOGIN DO USUÁRIO e SENHA DO USUÁRIO têm que ser preenchidas
com letra minúsculas, e a segunda é protegida pelo caractere * por ser um campo para
edição da senha. A caixa NÍVEL DO STATUS DO USUÁRIO lista duas opções de níveis,
um como administrador e outro como usuário. A caixa DATA DO CADASTRO é preenchida
automaticamente pela data atual do sistema. Após a saída da caixa NÍVEL DO STATUS DO
USUÁRIO o botão GRAVAR é habilitado.
Ao clicar no botão GRAVAR, é chamada a função localizada na camada do servidor
que executa a inserção do registro na tabela Usuário e o comando que cria o usuário no banco
de dados. O botão CANCELAR faz o cancelamento da edição atual dos dados bloqueando
todos os recursos do formulário, com exceção do botão NOVO. O botão FECHAR fecha o
formulário.
2
EXCLUINDO UM USUÁRIO
Para excluir um usuário do sistema, o usuário tem que estar com a tela principal
(FIGURA 36) ativa, e quando ele clicar no caminho Usuário/Excluir Usuário localizado na
barra de menus, o mesmo formulário (FIGURA 195) utilizado para criar um novo usuário é
ativado, com a diferença de ele habilitar o grupo FILTRO com a caixa NOME DO USUÁRIO
(FIGURA 196).
FIGURA 195
159
FIGURA 196
A caixa NOME DO USUÁRIO lista todos os logins de usuários cadastrados no banco.
Depois de escolher um nome de login da lista e teclar enter, os dados do usuário são
preenchidos nas caixas do grupo DADOS e o botão EXCLUIR é habilitado. Quando o usuário
clicar no botão, a função localizada na camada do servidor, responsável de excluir o registro
da tabela Usuário e também do banco de dados é chamada e o usuário excluído. Se o dado for
excluído corretamente, uma mensagem de USUÁRIO EXCLUÍDO é retornada para o
usuário.
O administrador do banco deve tomar muito cuidado ao excluir usuários do mesmo. Se
ele, em um erro de exclusão, excluir o principal usuário do banco, toda a base de dados será
perdida e será necessário fazer uma restauração da mesma. Se no momento em que um
problema deste ocorrer, os dados da base só serão recuperados até o último backup realizado.
160
X
MÓDULO SISTEMA
Este módulo permite ao usuário gerenciar o processo de manutenção do banco de
dados. O usuário pode fazer cópias (backup) da base de dados para prevenir danos que o
sistema venha a sofrer. Com essa cópia, ele pode fazer a restauração do banco. Neste módulo,
o usuário também pode atualizar as estatísticas do sistema. Este módulo é exclusivo para os
usuários com nível de administrador.
1
COPIANDO A BASE DE DADOS
Fazer backup da base de dados é de extrema importância para qualquer empresa. O
software pode ser novamente instalado através do CD de instalação, assim como o SGBD
PostgreSQL, mas os dados guardados no banco, se não forem copiados constantemente, não
serão mais recuperados depois de algum dano.
O sistema realiza um backup da base de dados toda vez em que ele é inicializado.
Depois desta inicialização, o software pode permanecer em funcionamento por um tempo
indeterminado. Como o sistema executa em uma única máquina, sem regras de espelhamento
do disco, e também não roda em um servidor que executa cópia em tempo integral, é boa
prática de segurança da informação o usuário do sistema, durante o uso do mesmo executar o
comando de cópia por determinados períodos de tempo. Os desenvolvedores do sistema
recomendam a realização de backup de pelo menos uma hora de intervalo de um para o outro.
Para realizar o backup é preciso estar com a tela principal (FIGURA 36) ativada e
seguir o caminho pelo menu Sistema/Copiar Base de Dados, localizado na barra de menus.
Durante o processo de backup, o sistema executa um arquivo chamado copias.bat e é ativada
uma tela (FIGURA 197), que demonstra o andamento do processo. No fim, é criado o arquivo
banco.backup, que guarda todos os dados das tabelas e as informações necessárias para
reconstruir o banco de dados. Estes arquivos estão localizados na pasta c:\copiabd. Para uma
maior segurança é recomendado que o administrador faça cópias de segurança desta pasta
para mídias externas (CD-ROM, DVD-ROM, Pen Drives, etc.).
161
FIGURA 197
2
RESTAURANDO A BASE DE DADOS
Para executar uma recuperação do banco de dados é preciso primeiramente certificar
que o PostgreSQL está instalado. Segundo, é preciso verificar se o usuário principal do
sistema (verificar instalação do sistema no CAPÍTULO I) foi criado. Terceiro, é preciso se
certificar de que o banco (verificar nome do banco para o sistema) também foi criado.
Com tudo corretamente instalado e criado, o usuário deve estar com a tela principal
(FIGURA 36) ativa e seguir o caminho Sistema\Restaurar Base de Dados, localizado na barra
de menus. O sistema executa o arquivo rest.bat, também localizado na pasta c:\copiabd e é
ativada a tela (FIGURA 198) que mostra o andamento do processo de restauração da base
dados. Todo o script que o PostgreSQL precisa para restaurar a base, se encontra no arquivo
banco.backup.
FIGURA 198
162
3
VARREDURA E LIMPEZA DO BANCO DE DADOS
Conforme o sistema vai atualizando a base de dados através das inserções,
atualizações e exclusões nas tabelas é preciso fazer uma varredura para que o PostgreSQL
atualize as suas tabelas de estatísticas. Esta varredura é de extrema importância, pois
conforme o banco de dados vai se tornando maior, há um grande perigo de dados poderem ser
corrompidos ou perdidos, e para que isso não ocorra o PostgreSQL disponibiliza ferramentas
que permitem manter a integridade dos dados.
Assim que o sistema é iniciado, além da cópia de segurança, ele também executa o
arquivo analise.bat, também localizado na pasta c:\copia.bd. Este arquivo executa uma
varredura, limpeza e atualização de estatísticas de todo o banco de dados. O usuário, também
pode realizar uma varredura enquanto ele estiver trabalhando com o sistema. Para fazer uma
varredura manual, é preciso que a tela principal esteja ativa. Para executar o arquivo
analise.bat, o usuário deve seguir o caminho Sistema\Varredura e Limpeza do Banco,
localizado na barra de menus. Durante a execução é ativada a tela (FIGURA 199) que mostra
a execução do processo.
FIGURA 199
163
XI
MÓDULO DO ADMINISTRADOR
Este módulo permite ao administrador gerenciar os dados de todos os usuários
cadastrados no sistema, como também todos os eventos ocorridos no banco de dados através
da tabela Histórico. Somente os usuários com nível de administrador têm permissão de acesso
a este módulo.
AUTORES
João Marcos Faxina Lucio Flávio Boaventura
Marcos Vassoler
Rodrigo Marcolino Vérlei Ricardo da Silva