gerenciador de transporte rodoviÁrio: software para emissÃo de conhecimento de transporte

251
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

Upload: joao-marcos-faxina

Post on 28-Jul-2015

349 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 2: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 3: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 4: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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)

Page 5: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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)

Page 6: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

A experiência que não é convertida em conhecimento é apenas informação!

Denílson Alves

Page 7: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 8: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 9: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 10: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 11: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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)

Page 12: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 13: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

APÊNDICE G

Diagrama de Entidade e Relacionamento (DER) ................................... 87

APÊNDICE H

Manual do Sistema CTRC ........................................................................ 88

Page 14: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 15: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 16: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 17: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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:

Page 18: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 19: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 20: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 21: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 22: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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),

Page 23: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 24: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 25: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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,

Page 26: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 27: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 28: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 29: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 30: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 31: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 32: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 33: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 34: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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 é

Page 35: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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,

Page 36: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 37: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 38: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 39: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 40: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 41: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 42: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 43: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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)

Page 44: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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 é

Page 45: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 46: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 47: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 48: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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:

Page 49: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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:

Page 50: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 51: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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);

Page 52: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 53: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 54: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 55: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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:

Page 56: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 57: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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, é

Page 58: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 59: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 60: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 61: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 62: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 63: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 64: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 65: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 66: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 67: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 68: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 69: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 70: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

70

ANEXO A

Ordem de Carregamento

Page 71: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

71

ANEXO B

Nota CTRC

Page 72: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

72

APÊNDICE A

Cronograma do Projeto

Page 73: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 74: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 75: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 76: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 77: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 78: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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)

Page 79: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 80: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 81: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 82: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 83: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 84: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

84

APÊNDICE D

DFD (Dados Faturista/Administrador)

Page 85: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

85

APÊNDICE E

DFD do Usuário

Page 86: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

86

APÊNDICE F

DFD do CTRC

Page 87: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

87

APÊNDICE G

Diagrama de Entidade e Relacionamento (DER)

Page 88: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

88

APÊNDICE H

Manual do Sistema CTRC

Page 89: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 90: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 91: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 92: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 93: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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,

Page 94: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 95: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 96: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 97: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 98: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 99: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 100: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 101: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 102: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 103: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 104: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 105: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 106: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 107: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 108: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 109: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 110: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 111: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 112: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 113: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 114: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 115: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 116: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 117: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 118: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 119: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 120: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 121: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 122: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 123: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 124: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 125: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 126: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 127: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 128: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 129: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 130: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 131: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 132: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 133: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 134: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 135: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 136: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 137: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 138: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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,

Page 139: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 140: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 141: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 142: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 143: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 144: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 145: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 146: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 147: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 148: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 149: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 150: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 151: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 152: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 153: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 154: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 155: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 156: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 157: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 158: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 159: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 160: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 161: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 162: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 163: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 164: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 165: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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:

Page 166: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 167: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 168: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 169: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 170: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 171: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 172: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 173: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 174: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 175: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 176: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 177: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 178: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 179: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 180: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 181: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 182: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 183: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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 é

Page 184: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 185: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 186: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 187: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 188: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 189: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 190: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 191: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 192: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 193: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 194: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 195: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 196: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 197: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 198: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 199: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 200: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 201: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 202: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 203: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 204: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 205: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 206: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 207: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 208: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 209: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 210: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 211: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 212: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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).

Page 213: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 214: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 215: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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:

Page 216: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 217: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 218: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 219: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 220: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 221: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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 .

Page 222: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 223: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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:

Page 224: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 225: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 226: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 227: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 228: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 229: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 230: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 231: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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;

Page 232: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 233: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO 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

Page 234: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 235: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 236: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 237: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

150

FIGURA 183

Page 238: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 239: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 240: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 241: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 242: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

155

FIGURA 190

Page 243: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 244: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 245: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 246: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 247: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.).

Page 248: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 249: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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

Page 250: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

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.

Page 251: GERENCIADOR DE TRANSPORTE RODOVIÁRIO: SOFTWARE PARA EMISSÃO DE CONHECIMENTO DE TRANSPORTE

AUTORES

João Marcos Faxina Lucio Flávio Boaventura

Marcos Vassoler

Rodrigo Marcolino Vérlei Ricardo da Silva