SISTEMA DE PEDIDOS PARA REPRESENTANTES DE...

80
UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO SISTEMA DE PEDIDOS PARA REPRESENTANTES DE CONFECÇÕES DIONES ALEX DE SOUZA BLUMENAU 2008 2008/2-07

Transcript of SISTEMA DE PEDIDOS PARA REPRESENTANTES DE...

Page 1: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

UNIVERSIDADE REGIONAL DE BLUMENAU

CENTRO DE CIÊNCIAS EXATAS E NATURAIS

CURSO DE CIÊNCIAS DA COMPUTAÇÃO – BACHARELADO

SISTEMA DE PEDIDOS PARA REPRESENTANTES DE

CONFECÇÕES

DIONES ALEX DE SOUZA

BLUMENAU

2008

2008/2-07

Page 2: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

DIONES ALEX DE SOUZA

SISTEMA DE PEDIDOS PARA REPRESENTANTES DE

CONFECÇÕES

Trabalho de Conclusão de Curso submetido à

Universidade Regional de Blumenau para a

obtenção dos créditos na disciplina Trabalho

de Conclusão de Curso II do curso de Ciências

da Computação — Bacharelado.

Prof. Evaristo Baptista - Orientador

BLUMENAU

2008

2008/2-07

Page 3: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

SISTEMA DE PEDIDOS PARA REPRESENTANTES DE

CONFECÇÕES

Por

DIONES ALEX DE SOUZA

Trabalho aprovado para obtenção dos créditos

na disciplina de Trabalho de Conclusão de

Curso II, pela banca examinadora formada

por:

______________________________________________________

Presidente: Prof. Evaristo Baptista - Orientador, FURB

______________________________________________________

Membro: Prof. Everaldo Artur Grahl, Mestre – FURB

______________________________________________________

Membro: Prof. Ricardo de Alencar Azambuja, Mestre – FURB

Blumenau, 18 de março de 2009

Page 4: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

Dedico este trabalho a minha mãe Maria José

Ferreira que faleceu no dia da entrega do meu

trabalho, mas que sempre estará vivendo em

meu coração.

Page 5: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

AGRADECIMENTOS

A senhor Deus, para sua glória.

Ao meu pai Alexandre e principalmente minha mãe Maria José, que faleceu no dia da

entrega deste trabalho.

Aos meus amigos, Jhony e Carlos que incentivaram e torceram por mim. Em especial

ao meu amigo Dalmir que proporcionou todo apoio para realização do trabalho.

Ao meu orientador, Evaristo Baptista, que teve grande perseverança na conclusão deste

trabalho.

Page 6: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

Nada é impossível para aquele que persiste.

Alexandre, o Grande

Page 7: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

RESUMO

Este trabalho apresenta um sistema de pedidos para representantes, implementado em duas

plataformas: Windows e Linux utilizando a ferramenta Open Source Lazarus/ Free Pascal. A

aplicação possibilita a coleta de pedidos e a transmissão de dados através de arquivos XML,

visando auxiliar a troca de informações e aplicando o conceito de Balanced Scorecard para

acompanhamento do desempenho do representante.

Palavras-chave: Transmissão de dados com XML. Balanced Scorecard.

Page 8: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

ABSTRACT

This paper presents a system of applications for agents, implemented in two platforms:

Windows and Linux using the tools Open Source Lazarus / Free Pascal. The application

allows the collection of applications and data transmission via XML files, to help the

exchange of information and applying the concept of Balanced Scorecard to monitor the

performance of the representative.

Key-words: Transmission of data with XML. Balanced Scorecard.

Page 9: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

LISTA DE ILUSTRAÇÕES

Figura 1 – Perspectivas do Balanced ScoreCard ..................................................................... 19

Quadro 1 – Perspectiva de clientes do Balanced ScoreCard ................................................... 20

Figura 2 – Estrutura de medição do aprendizado e crescimento Balanced ScoreCard ............ 21

Quadro 2 – Exemplo de um arquivo XML ............................................................................... 23

Quadro 3 – Procedimentos para compilar um programa de Windows para Linux .................. 26

Quadro 4 – Requisitos Funcionais ............................................................................................ 31

Quadro 5 – Requisitos Não Funcionais .................................................................................... 31

Figura 3 – Visão geral do sistema ............................................................................................ 32

Figura 4 – Diagrama de casos de uso (Cadastros) .................................................................... 33

Figura 5 – Diagrama de casos de uso (Consultas) .................................................................... 33

Figura 6 – Diagrama de casos de uso das tabelas de apoio (Consultas) ................................... 34

Figura 7 – Diagrama de casos de uso Retaguarda .................................................................... 34

Figura 8 – Descrição de casos de uso cadastrar clientes .......................................................... 35

Figura 9 – Descrição de casos de uso digitar pedidos .............................................................. 35

Figura 10 – Descrição de casos de uso gerar gráfico BSC ....................................................... 36

Figura 11 – Descrição de casos de uso consultar BSC ............................................................. 36

Figura 12 – Descrição de casos de uso consultar faturamento ................................................. 36

Figura 13 – Descrição de casos de uso consultar títulos pendentes ......................................... 37

Figura 14 – Descrição de casos de uso consultar tabela de preço ............................................ 37

Figura 15 – Descrição de casos de uso consultar comissões .................................................... 37

Figura 16 – Descrição de casos de uso consultar transportadoras ............................................ 38

Figura 17 – Descrição de casos de uso consultar condições de pagamento ............................. 38

Figura 18 – Descrição de casos de uso consultar produtos ...................................................... 38

Figura 19 – Descrição de casos de uso importar ...................................................................... 39

Figura 20 – Descrição de casos de uso exportar ....................................................................... 39

Figura 21 – Diagrama de classes .............................................................................................. 40

Figura 22 – Diagrama de entidade e relacionamentos (DER) .................................................. 41

Quadro 6 – Dicionário de dados – BSC ................................................................................... 42

Quadro 7 – Dicionário de dados – Comissões .......................................................................... 42

Quadro 8 – Dicionário de dados – Condição de pagamento .................................................... 42

Quadro 9 – Dicionário de dados – Parcelas da condição de pagamento .................................. 42

Page 10: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

Quadro 10 – Dicionário de dados – Clientes ............................................................................ 43

Quadro 11 – Dicionário de dados – Itens do faturamento ........................................................ 43

Quadro 12 – Dicionário de dados – Faturamentos ................................................................... 44

Quadro 13 – Dicionário de dados – Pedidos ............................................................................ 44

Quadro 14 – Dicionário de dados – Itens do pedido ................................................................ 44

Quadro 15 – Dicionário de dados – Produtos ........................................................................... 45

Quadro 16 – Dicionário de dados – Tabela de preços .............................................................. 45

Quadro 17 – Dicionário de dados – Títulos .............................................................................. 45

Quadro 18 – Dicionário de dados – Transportadoras ............................................................... 45

Figura 23 – Sistema compilado em duas plataformas: Windows e Linux ............................... 46

Figura 24 – Cadastro de Clientes .............................................................................................. 47

Figura 25 – Cadastro de Pedidos - Cabeçalho .......................................................................... 48

Figura 26 – Cadastro de Pedidos – itens .................................................................................. 48

Figura 27 – Cadastro de Pedidos – Observações ...................................................................... 49

Figura 28 – Cadastro do Balanced ScoreCard - Cabeçalho ..................................................... 49

Figura 29 – Cadastro do Balanced ScoreCard - Ações ............................................................ 50

Figura 30 – Cadastro do Balanced ScoreCard - Indicadores ................................................... 50

Quadro 19 – Explicações sobre os campos do cadastro do BSC.............................................. 51

Figura 31 – Consulta de títulos ................................................................................................. 52

Figura 32 – Consulta de faturamento - Cabeçalho ................................................................... 53

Figura 33 – Consulta de faturamento - itens............................................................................. 53

Figura 34 – Consulta de produtos ............................................................................................. 54

Figura 35 – Consulta de tabela de preço................................................................................... 54

Figura 36 – Consulta de comissões .......................................................................................... 55

Figura 37 – Consulta de condições de pagamentos .................................................................. 55

Figura 38 – Consulta de transportadoras .................................................................................. 56

Figura 39 – Consulta de Balanced Scorecard .......................................................................... 56

Figura 40 – Gráfico de Balanced ScoreCard ........................................................................... 57

Figura 41 – Módulo de retaguarda ........................................................................................... 57

Quadro 20 – Classe DAOGeral – Cliente e busca de dados ..................................................... 71

Quadro 21 – Script de banco de dados - tabela de clientes ...................................................... 72

Quadro 22 – Script de banco de dados - tabela de condição de pagamento ............................. 72

Quadro 23 – Script de banco de dados - tabela de pedidos ...................................................... 73

Quadro 24 – Script de banco de dados - tabela de faturamento ............................................... 74

Page 11: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

Quadro 25 – Script de banco de dados - tabela de titulos......................................................... 74

Quadro 26 – Script de banco de dados - tabela de comissão .................................................... 75

Quadro 27 – Script de banco de dados - tabela de produtos e tabela de preços ....................... 75

Quadro 28 – Script de banco de dados - tabela de transportadora ........................................... 75

Quadro 29 – Script de banco de dados - tabela de BSC. .......................................................... 76

Quadro 30 – Script de banco de dados - chaves primárias ....................................................... 77

Quadro 31 – Arquivo XML de clientes ..................................................................................... 78

Quadro 32 – Arquivo XML de pedidos ..................................................................................... 79

Page 12: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

LISTA DE SIGLAS

BCC – Curso de Ciências da Computação – Bacharelado

BSC – Balanced ScoreCard

DAO – Data Access Object

DRA – Desenvolvimento Rápido de Aplicações

FPC – Free Pascal Compiler

FPL - Free Pascal Lazarus

FTP – File Transfer Protocol

IDE – Integrated Development Environment

LCL - Lazarus Component Library

POO – Programação Orientada a Objetos

SQL – Structured Query Language

TQM – Total Quality Management

UML – Unified Modeling Language

XML - eXtensible Markup Language

Page 13: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

SUMÁRIO

1 INTRODUÇÃO .................................................................................................................. 14

1.1 OBJETIVOS DO TRABALHO ........................................................................................ 15

1.2 ESTRUTURA DO TRABALHO ...................................................................................... 15

2 FUNDAMENTAÇÃO TEÓRICA .................................................................................... 17

2.1 VENDA POR PEDIDO ..................................................................................................... 17

2.2 BALANCED SCORECARD ............................................................................................ 18

2.2.1 Perspectiva Financeira ..................................................................................................... 19

2.2.2 Perspectiva Cliente .......................................................................................................... 20

2.2.3 Perspectiva Processos internos ........................................................................................ 20

2.2.4 Perspectiva Aprendizado e Crescimento ......................................................................... 21

2.3 XML .................................................................................................................................. 22

2.4 LAZARUS E FREE PASCAL .......................................................................................... 23

2.5 BANCO DE DADOS FIREDIRD..................................................................................... 27

2.6 DAO .................................................................................................................................. 27

2.7 TRABALHOS CORRELATOS ........................................................................................ 28

3 DESENVOLVIMENTO .................................................................................................... 30

3.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO ....................... 30

3.2 ESPECIFICAÇÃO ............................................................................................................ 32

3.3 IMPLEMENTAÇÃO ........................................................................................................ 45

3.3.1 Ferramenta Lazarus e o compilador Free Pascal............................................................. 46

3.3.2 Balanced ScoreCard ........................................................................................................ 46

3.3.3 Operacionalidade da implementação .............................................................................. 47

3.3.3.1 Cadastros do sistema ..................................................................................................... 47

3.3.3.2 Consultas do Sistema .................................................................................................... 51

3.3.3.3 Consultas e gráfico do BSC .......................................................................................... 56

3.4 RESULTADOS E DISCUSSÃO ...................................................................................... 58

4 CONCLUSÕES .................................................................................................................. 59

4.1 EXTENSÕES .................................................................................................................... 59

REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................. 61

APÊNDICE A – Classe DAOGeral – parte do código referente a classe de clientes e das

buscas na tabela. ..................................................................................................................... 63

Page 14: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

APÊNDICE B – Script para geração do banco de dados Firebird .................................... 72

APÊNDICE C – Arquivos XML de clientes e pedidos ........................................................ 78

Page 15: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

14

1 INTRODUÇÃO

Os sistemas de vendas são responsáveis pelo registro das vendas dos produtos ou

serviços de uma organização. Dedicam-se a contatar clientes, oferecer produtos e serviços,

fechar pedidos e acompanhar vendas, esta atividade está subdivida em quatro níveis:

operacional, conhecimento, gerencial e estratégico. O nível operacional dedica-se aos

trabalhos de preparação, fechamento e acompanhamento das vendas e necessita de novas

ferramentas para auxiliar no rendimento e agilidade destas funções (LAUDON; LAUDON,

2004, p. 48).

Este trabalho oferece aos representantes e vendedores de confecções, um software que

permite a digitação na hora de coletar o pedido do cliente e a transmissão dos dados destes

pedidos utilizando a praticidade da tecnologia web, incluindo avaliação de desempenho

através da metodologia Balanced ScoreCard (BSC) para gerenciar metas estratégicas. O uso

desta solução permite atender clientes com rapidez e integrar seus dados para outro sistema de

gestão economizando tempo e dinheiro. Digitação de pedidos por parte das empresas,

substituição dos blocos de pedidos manuais enviados por fax, eliminação de erros de

interpretação na hora da digitação e outros custos operacionais, são exemplos de benefícios

gerados pelo sistema.

A ferramenta desenvolvida possui dois módulos: um módulo de pedidos para

representantes e um módulo de retaguarda. Ambos serão desenvolvidos em Object Pascal e o

segundo utiliza o banco de dados Firebird. Foi utilizada a linguagem de marcação eXtensible

Markup Language (XML) para gerar os dados destinados à transmissão.

O módulo de pedidos foi desenvolvido para um dispositivo móvel que recebe

informações cadastrais, tais como: clientes, pedidos, títulos, produtos, tabela de preços, tipo

de cliente, coleção, condição de pagamento, tipo de documento, tipo de cobrança, portador,

transportadora, tipo de frete, moeda, representante, cidade e Unidade Federativa (UF). Neste

módulo são feitos o cadastro de clientes, a digitação de pedidos, consultas BSC, consultas de

títulos pendentes, pedidos pendentes, pedidos faturados e transmissão de dados com o módulo

de retaguarda.

O módulo de retaguarda é responsável por integrar as informações importadas e

exportadas entre o módulo de pedidos e o sistema de gestão, utilizando-se da tecnologia web e

XML para a interação dos dados.

Page 16: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

15

1.1 OBJETIVOS DO TRABALHO

O objetivo deste trabalho é desenvolver um sistema de pedidos para representantes de

empresas de confecções, incluindo a metodologia do BSC para a medição de seu desempenho,

juntamente com uma solução de módulo de retaguarda para alimentar o processamento de

pedidos e outros dados no sistema de gestão das empresas

Os objetivos específicos do trabalho são:

a) receber os indicadores BSC da empresa de confecções tais como: número de

clientes atendidos, número de clientes novos, numero de clientes por UF, venda

bruta, vendas por faixa de valores, % crescimento das vendas por cliente, %

crescimento das vendas por produto;

b) consultar e emitir informações como: consultas e gráficos BSC, pedidos faturados,

títulos pendentes e tabela de preços dos produtos;

c) importar dados do sistema de gestão de uma empresa de confecção,

compreendendo clientes, pedidos, títulos, produtos, tabela de preços, tipo de

cliente, coleção, condição de pagamento, tipo de documento, tipo de cobrança,

portador, transportadora, tipo de frete, moeda, representante, cidade e UF. Todos

os dados mencionados são pertinentes a cada representante;

d) exportar dados de clientes e pedidos, utilizando arquivos XMLe e-mail.

1.2 ESTRUTURA DO TRABALHO

O trabalho está dividido em quatro capítulos.

O primeiro apresenta uma introdução ao tema do trabalho, apresentando objetivos e a

estrutura do mesmo.

O segundo apresenta uma fundamentação teórica descrevendo os temas centrais do

trabalho: Ferramentas Open Source Lazarus e Free Pascal e Firebird, Object Pascal, XML e

Balanced Scorecard.

O terceiro trata da especificação e implementação do sistema. Demonstrado através de

requisitos, diagramas de entidade e relacionamento (DER), casos de uso, classes e seqüência.

Ilustrando algumas telas do sistema com suas devidas considerações;

Page 17: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

16

O ultimo capitulo trata da conclusão do trabalho, descrevendo suas considerações

finais tais como dificuldades enfrentadas, resultados alcançados e sugestões para novas

implementações.

Page 18: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

17

2 FUNDAMENTAÇÃO TEÓRICA

O objetivo deste capítulo é apresentar a fundamentação teórica sobre sistema de pedidos,

BSC, classe DAO e trabalhos correlatos.

2.1 VENDA POR PEDIDO

Venda por pedido é vender algo a alguém através de uma relação de produtos. Neste

tipo de venda o cliente escolhe os produtos de um mostruário que pode ser físico ou virtual,

determinando a quantidade desejada de cada produto a ser comprado. Como este trabalho tem

o objetivo de atender representantes de confecções, a demonstração dos produtos pode ser

feito através de um catálogo impresso, catálogo virtual (multimídia), site e mostruário físico.

Este tipo de venda está dividido em sete etapas descritas, a seguir (KOTLER, 1994, p. 603):

a) Prospecção e Qualificação identificam os clientes em potencial através de

indicação de clientes já firmados. Os clientes podem ser qualificados através de um

exame sobre sua situação financeira, volume de negócios e sua probabilidade de

continuidade no mercado.

b) Pré-abordagem é o planejamento da melhor abordagem, que pode ser uma visita

pessoal, ligação telefônica ou correspondência e a escolha do melhor momento

para a abordagem.

c) Abordagem deve proporcionar ao vendedor obter do comprador a compreensão do

que ele mais necessita, demonstrando as vantagens que a venda proporcionará para

ambas as partes.

d) A apresentação e demonstração o representante detalha todos os dados sobre o

produto, enfatizando os seus benefícios e suas principais características. Tudo isso

para que possa descobrir os principais problemas do cliente e lhe ofertar soluções

através de seus produtos.

e) Superações de objeções ocorrem quando os clientes apresenta uma resistência

sobre a compra dos produtos e o representante precisa manter uma abordagem

positiva, convertendo estas resistências em mais motivos de compra, esclarecendo

as objeções, questionando-as ao fato de que o comprador responda sua própria

Page 19: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

18

objeção.

f) Fechamento é o estágio em que se fecha a venda. Existem vários argumentos para

o fechamento da venda.

g) Acompanhamento (Follow Up) e manutenção esta etapa é necessária para

assegurar a satisfação do cliente e garantir novos negócios.

Além disso, algumas empresas usam as tecnologias de comunicação para adoção de

sistemas que possibilitam ao cliente efetuar seu pedido on-line, ou seja, acessando o estoque

da empresa na hora de efetuar o pedido, adotando a técnica de pedido just in time (meta de

estoque zero). Esta técnica é fundamentada em deixar um estoque reduzido ao máximo,

aumentando a qualidade e produtividade na empresa (KOTLER, 1994, p. 606).

2.2 BALANCED SCORECARD

O Balanced ScoreCard (BSC) é denominado como indicadores balanceados de

desempenho e fornece uma metodologia para monitoramento das metas estratégicas e de

medição dos resultados atingidos. Este método de gestão refere-se aos aspectos mais

importantes do negócio proporcionando uma melhor leitura sobre os objetivos estratégicos,

possibilitando a aplicação das ações estratégicas para os ajustes e medidas necessárias

(BALZANE, 2006).

Kaplan e Norton (1997, p. 9) descrevem que as empresas já trabalham com sistemas de

medidas de desempenho que incorporam medidas financeiras e não-financeiras. Porém o

Balanced ScoreCard (BSC) além dos indicadores de desempenho, traduz a missão e a

estratégia objetivando medidas tangíveis tornando-se um sistema de gestão estratégica.

Segundo Kaplan e Norton (1997, p. 24) é uma ferramenta completa que traduz a visão

e a estratégia da empresa num conjunto coerente de medidas de desempenho organizados em

quatro perspectivas diferentes: financeira, cliente, processos internos e aprendizado.As

perspectivas do BSC podem ser observadas na figura 1.

Page 20: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

19

Fonte: KAPLAN e NORTON (1997).

Figura 1 – Perspectivas do Balanced ScoreCard

2.2.1 Perspectiva Financeira

Os objetivos financeiros servem de foco para os objetivos e medidas das outras

perspectivas do BSC. Qualquer medida selecionada deve fazer parte de uma cadeia de

relações de causa e efeito que culminam com a melhoria do desempenho financeiro. A partir

dos objetivos financeiros de longo prazo são definidas ações que precisam ser tomadas em

relação aos processos financeiros, clientes, processos internos e, por fim, o aprendizado.

(Kaplan e Norton, 1997, p. 49)

Kaplan e Norton, (1997, p. 53) afirmam que objetivos financeiros devem abordar tanto

o lucro como o risco e devem ser relacionados ao crescimento, lucratividade e fluxo de caixa,

enfatizando sempre os melhores retornos sobre os investimentos. Para obtenção destes

resultados são utilizados temas estratégicos como: crescimento e mix de receita, redução de

custos, utilização de ativos e estratégia de investimento.

Page 21: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

20

2.2.2 Perspectiva Cliente

Kaplan e Norton, (1997, p. 67) descrevem que, antes as empresas se concentravam em

suas capacidades internas, enfatizando o desempenho dos produtos e inovações tecnológicas.

No entanto, identifica-se hoje que as empresas devem observar as necessidades dos seus

clientes, oferecendo produtos e serviços que atendam suas preferências. Por isso uma pesquisa

de mercado em profundidade pode revelar os diferentes perfis de clientes e suas preferências.

O BSC como descrição da estratégia da empresa, deve identificar os objetivos relacionados

aos clientes em cada um desses segmentos, permitindo definir medidas essenciais aos

resultados relacionados aos clientes. Indicadores de desempenho utilizados para demonstrar

os resultados na perspectiva dos clientes focando em temas como: participação de mercado,

captação de clientes, retenção de clientes, satisfação de clientes e lucratividade dos clientes.

Cada tema é descrito abaixo no quadro 1. O trabalho abrange esta perspectiva para

demonstrar algumas aplicações deste conceito, objetivando o acompanhamento do alcance das

metas traçadas.

Participação de mercado

Reflete a proporção de negócios num determinado

mercado (em termos de clientes, valores gastos ou

volume unitário vendido).

Captação de Clientes

Mede, em termos absolutos ou relativos, a intensidade

com que uma unidade de negócios atrai ou conquista

novos clientes ou negócios.

Retenção de Clientes

Controla, em termos absolutos ou relativos, a

intensidade com que uma unidade de negócios retém ou

mantém relacionamentos contínuos com seus clientes.

Satisfação dos Clientes

Mede o nível de satisfação de clientes de acordo com

critérios específicos de desempenho dentro da proposta

de valor.

Lucratividade dos clientes

Mede o lucro líquido de cliente e segmentos, depois de

deduzidas as despesas específicas necessárias para

sustentar esses clientes.

Quadro 1 – Perspectiva de clientes do Balanced ScoreCard

2.2.3 Perspectiva Processos internos

Kaplan e Norton, (1997, p. 97) citam que a maioria das empresas concentram-se na

melhoria dos processos operacionais existentes. Para o BSC recomenda-se que se defina a

Page 22: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

21

cadeia de valor completa dos processos internos que tenha início com o processo de inovação,

identificação das necessidades atuais e futuras de clientes e desenvolvimentos de novas

soluções para essas necessidades, prossiga com os processos de operações, entrega dos

produtos e prestação de serviços aos clientes existentes e termine com o serviço de pós venda.

Este procedimento garante a qualidade dos produtos e processos, a inovação, logística e

qualidade das informações, da comunicação interna e das interfaces.

2.2.4 Perspectiva Aprendizado e Crescimento

Kaplan e Norton, (1997, p. 131) afirmam que as três perspectivas anteriores revelam onde a

empresa deve se destacar para obter um desempenho excepcional, porém esta última é

direcionada na capacidade dos funcionários, sistemas e procedimentos para o aprendizado e

crescimento da organização. Isto exige um investimento significativo em pessoal, sistemas e

processos que produzam medidas essências como: satisfação de funcionários, retenção de

funcionários e produtividade dos funcionários. Os vetores situacionais de infra-estrutura e

clima para a ação possibilitam a busca por uma reciclagem estratégica. Os indicadores

monitoram resultados a partir dos investimentos feitos em funcionários, sistemas e

alinhamento organizacional. Na figura 2 é mostrada a estrutura de medição do aprendizado e

crescimento.

Fonte: KAPLAN e NORTON (1997).

Figura 2 – Estrutura de medição do aprendizado e crescimento Balanced ScoreCard

Page 23: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

22

Cimino (2004) desenvolveu um trabalho para apresentar a implantação do Balanced

Scorecard em pequenas empresas. Demonstra como medir seus desempenhos, afim de

aperfeiçoar seus atuais negócios mostrando os benefícios que o BSC pode trazer para estas

organizações. Particularidades como formalização de processos de gerenciamento,

aperfeiçoamento nos níveis de supervisão, informação e consenso criando um processo para

especificar objetivos e medir sua performance para estabelecer seus respectivos planos de

ação.

O Balanced Scorecard foi criado para solucionar o problema de comunicação do

planejamento empresa como um todo, visando utilizar uma visão holística da

administração em beneficio do seu planejamento estratégico. É o planejamento em

ação. Foi escolhido pela Harvard Business Review (HBR) como uma das práticas de

gerenciamento mais importantes dos últimos 75 anos, revela-se como uma

ferramenta capaz de atender às novas exigências de gerenciamento dentro dos

cenários econômicos em constantes mutações, como um instrumento de maior

importância à construção de uma estrutura de indicadores estratégicos que possua

abrangência e coerência compatível com a nova era do conhecimento. O BSC, de

acordo com Campos (2001), não traz qualquer conceito novo, mas repensa temas

antigos, chamando a atenção para pontos que estavam esquecidos ou mal

compreendidos, mostrando a vinculação entre pontos vitais que não estavam

claramente articulados (Balzani, 2006).

2.3 XML

―XML é uma linguagem usada para representar dados como uma string de texto que

inclui uma ‗marcação‘ intercalada, a fim de descrever as propriedades de dados‖ (GRAVES,

2003, p. 08).

A XML é aplicável em qualquer nível de complexidade, sendo auto descritiva. Suas

marcações personalizadas podem ser criadas para qualquer necessidade, além da facilidade de

manutenção, já que possui marcações tendo os links e folhas de estilos em separado, podendo

ser alterado cada um separadamente, facilitando as modificações. Um dos pontos fortes da

XML é sua portabilidade, já que sua sintaxe universal de estrutura de dados permite a troca de

dados independente da plataforma (GRAVES, 2003, p. 02).

Uma tendência forte é o compartilhamento de dados utilizando a XML. Mesmo que

duas organizações possuam metodologias de trabalhos diferentes, poderiam utilizar uma

transmissão de dados em formato combinado conhecido pelas duas. São muito utilizados

arquivos textos delimitados, que são arquivos separados por tabulações marcadas por um

caracter em especial, por exemplo o ponto e virgula (;), que separa um campo de outro. No

Page 24: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

23

entanto, seria necessário integrar estes arquivos a um banco de dados ou uma estrutura de

memória (FURTADO, 2005). Um exemplo de arquivo XML é representado no quadro 2.

<?xml version="1.0" encoding="ISO-8859-1" ?>

<pedidos>

<pedido id="1">

<item descrição="1" qtde="10" />

<item descrição="2" qtde="20"/>

</pedido>

<pedido id="2">

<item descrição="1" qtde="05" />

<item descrição="3" qtde="10"/>

<item descrição="4" qtde="10"/>

</pedido>

<descrições>

<descrição id="1">Blusa floral</descrição>

<descrição id="2">Calça Oxford</descrição>

<descrição id="3">Saia Clean Just</descrição>

<descrição id="4">Vestido Little Kently</descrição>

</descrições>

</pedidos>

Quadro 2 – Exemplo de um arquivo XML

2.4 LAZARUS E FREE PASCAL

A ferramenta Lazarus é um ambiente de desenvolvimento integrado desenvolvido para

o compilador Free Pascal. Compatível com o Delphi, porém suporta diversas arquiteturas e

sistemas operacionais. Possibilita desenvolver a aplicação com Cross-compilaçao, ou seja,

tanto para o sistema operacional Windows, quanto para o sistema operacional Linux, entre

outros. Isto é possível através do compilador Free Pascal que foi desenhado para compilar

código com a sintaxe do Delphi ou dos dialetos Pascal do Macintosh e gerar executáveis para

diferentes plataformas a partir do mesmo código-fonte. Isto graças ao Lazarus Component

Library (LCL) que é um conjunto de classes e componentes visuais e não visuais que

funciona em múltiplas plataformas chamando as funções de diferentes bibliotecas de interface

de usuário em diferentes plataformas (MANZANO, 2006)

Uma linguagem limpa e com a sintaxe clara, não utiliza makefiles, embora seja

suportado através da ferramenta fpcmake, seu compilador é rápido e cada unit tem seus

próprios identificadores, o que ajuda evitar a poluição do namespace. Possui uma IDE

escrita usando a biblioteca FreeVision, que é clone gratuito da biblioteca TurboVision,

distribuída pelos antigos compiladores Turbo Pascal e Turbo C++ da Borland. Excelente

Page 25: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

24

integração com assembly podendo misturar código assembly com código pascal, sendo

compatível com códigos já existentes programados em Turbo Pascal ou Delphi (GOMES,

2008).

Voort (2006) descreve os procedimentos para compilar o programa escrito no Free

Pascal Lazarus (FPL) de uma plataforma para outra. Destacam-se as instruções apresentadas

para compilação do sistema em windows para linux na quadro 3.

Page 26: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

25

Para compilar para Linux do Windows:

Requisitos:

-ftp://freepascal.stack.nl/pub/fpc/contrib/cross/mingw/binutils-2.15-win32-i386-linux.zip - O FPC do repositório CVS (qualquer um acima de 1.9.6).

- Um árvore do Lazarus (qualquer uma construível a partir do mesmo

período).

- Muitas bibliotecs do Linux alvo. Um dos servidores FPC é um SUSE, de onde

eu obtive a lista abaixo:

1) Baixar ftp://freepascal.stack.nl/pub/fpc/contrib/cross/mingw/binutils-2.15-win32-i386-

linux.zip 2) Extraia-o e mova os arquivos i386* para <fpcbindir>\bin\i386-win3 (por

exemplo c:\pp\bin\i386\win32)

3) Vá parra o diretório dos fontes do FPC

4) make clean

5) Faça o OS_TARGET = linux all

6) Faça o OS_TARGET = linux e instale INSTALL_PREFIX = <fpcbindir>

7) Prepare o diretório lib como nas intruções abaixo, eu usei

d:\fpc\linuxlib para estocá-las.

8) Vá para <fpcbindir>\units\i386-linux\rtl e copie o cprt21.o sobre o

cprt0.o

9) Vá para o diretório do Lazarus

10) Edite o lazarus.pp e adicione {$linklib dl} e {$linklib gmodule} em

algum lugar nos fontes.

11) Faça o OS_TARGET = linux all OPT = "-gl -Fld:\fpc\linuxlib -Xr/usr/lib

-FL/usr/lib/ld-linux.so.2"

Se der algum erro do vinculador (mais especificamente linker can't find -

l<something>) então

12) Edite manualmente o link.res se necessário (veja abaixo para

observações sobre gtk ) e adapte os nomes -l<x> no final dos arquivos. I

had to add -1.2 to all gtk

libs, to keep them apart from gtk2

13) Execute o ppas.bat para reiniciar o vinculador

Bibliotecas Existem as bibliotecas que eu coletei para Lazarus e a IDE modo texto(o

Lazarus não precisa da pthread).

Eu as coletei do target system e renomeei todas de lib<name>.so.x.y to

lib<name>.so.

libgcc.a e umas outras são mais fáceis de encontrar fazendo gcc -v e

procurando uma linha como

"Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.5/specs"

então algumas das libs estão em /usr/lib/gcc-lib/i486-linux/3.3.5/ Uma boa

outra localização é /lib /usr/lib /usr/local/lib /usr/x11R6/lib e

/opt/gnome/lib

libpthread.so.0

libdl.so

libc.so

ld-linux.so.2

crtbegin.o

crtbeginS.o

crtbeginT.o

crtend.o

crtendS.o

crtn.o

crti.o

libgcc.a

libX11.so

libXi.so

libglib-1.2.so

libgmodule-1.2.so.0

libgdk_pixbuf.so

Page 27: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

26

libgdk-1.2.so

libgtk-1.2.so

libXext.so

libm.so

libdl.so.2

libgmodule-1.2.so

Note que alguns diretórios estão duplicados, com ou sem sufixo. Elas são

necessárias porque alguma outra lib tem dependência dela.

Nome exato (assim o form lib<name>.so.x) Não podemos symlink no windows,

então eu simplesmente o copiei.

Errar ao renomear não é tão ruim, haverá chances de consertar . Tenha

certeza de que todos os crt* e o arquivo "libc.so" estão disponíveis, senão

gerar o link.res vai dar errado.

No meu caso compilação para o passo 11 vai dar certo mas o vinculador vai

dizer que não pode encontrar o libgtk.so e as outras bibliootecas marcadas

com -1.2. Isso é por causa do target system, libgtk é GTK 2.0 enquanto nós

queremos o gtk1.2 para o Lazarus.

Para consertar isso manualmente eu adicionei -1.2 às linhas -l

correspondentes no final do arquivo link.res que foi gerado no Passo 11.

P.S.: Um bocado de edições do vinculador podem ser resolvidas com os beta

linker control switches (-XLA and friends) em 2.0.4 e 2.1.1. Mas eles são

beta, sem documentação e não necessariamente disponíveis em versões

futuras. Sâo na maioria adicionados a um pacote de construtores (para Linux

distros) e cross-compiladores uma chance de avaliar uma possível opção.

Quadro 3 – Procedimentos para compilar um programa de Windows para Linux

O Lazarus possui suporte para vários bancos de dados, podendo efetuar a instalação do

pacote adequado para acessar o banco escolhido. O acesso aos bancos de dados pode ser feito

por meio de código, ou colocando componentes num formulário ou janela. Os componentes

sensíveis a dados representam os campos de uma tabela representada por um TDataSource.

A conexão entre ambos é feita através de propriedades. A tabela por sua vez está associada a

um banco de dados por meio de componentes específicos, como TPSQLDatabase,

TSQLiteDataset ou outros (LAZARUS, 2008)

Os seguintes bancos de dados são suportados:

a) PostgreSQL requer o pacote PSQL;

b) DBase and FoxPro podem ser acessados sem a necessidade de um servidor ou uma

biblioteca externos através do componente TDbf ;

c) MySql é suportado;

d) SQLite precisa apenas de uma única biblioteca externa e do componente

TsqliteDataset;

e) MSSQL funciona com o Zeoslib;

f) Interbase / Firebird também funcionam com o último Zeoslib.

Page 28: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

27

2.5 BANCO DE DADOS FIREDIRD

O Firebird é evolução do Interbase 6.0 Open Source. Após a Borland disponibilizar o

código, ela decidiu que continuaria mantendo uma versão comercial do produto (código

fechado). Atualmente uma entidade decidiu dar continuidade ao banco de dados, criando

versões do Firebird que são open source, o qual está crescendo e adquirindo novos recursos a

cada dia, sendo mantido atualmente por um grupo denominado Phoenix e pela Fundação

Firebird (FREITAS, 2002). O código é totalmente aberto à comunidade e qualquer um pode

participar na correção de bugs, implementação, documentação e criação de novas ferramentas.

O Firebird oferece uma solução de gerenciador de banco de dados de alta performance,

enquadrando-se nos requerimentos do padrão SQL-92, suportando integridade referencial

declarativa com operações de cascata, atualizações de visões e junções externas. Possui

modelo estruturado de transações, ou seja, envia instruções ao banco de dados em forma de

blocos com a característica que somente serão executadas completamente ou não são

executadas, além de que podem ser apresentadas ao servidor de forma isolada e não serão

afetadas por alterações realizadas por transações concorrentes (SANTOS, 2005).

2.6 DAO

Data Access Object (DAO) é um padrão para persistência de dados que permite

separar regras de negócios das regras de acesso a banco de dados abstraindo as

funcionalidades de banco de dados como conexões, mapear objetos e execução de comandos

SQL. A utilização deste padrão leva a produtividade devido ao reuso, facilidade na

manutenção e encapsulamento do acesso ao banco de dados (SARDAGNA e VAHLDICK,

2008).

Segundo (Decaria, 2007) as classes DAO são responsáveis por realizar o acesso aos

dados, em uma base de dados. As classes DAO podem ser to tipo Singleton, um padrão de

projeto de software. O DAO concentra toda a relação com o banco de dados e o filtro das

informações que são enviadas em um só lugar, facilitando a tomada de medidas de segurança

no desenvolvimento.

Page 29: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

28

2.7 TRABALHOS CORRELATOS

Silva (2007) fez um estudo sobre medição de desempenho baseado nas ferramentas da

produção enxuta. O trabalho apresenta uma pesquisa realizada em uma empresa do setor

metalúrgico que buscou estudar a aplicação de um sistema de medição de desempenho,

identificando as diferenças dos indicadores usuais e sua evolução até os indicadores utilizados

na produção Enxuta. O estudo apresenta a relação entre indicadores estratégicos e os

indicadores operacionais.

O conceito da Produção Enxuta originou-se na indústria automobilística japonesa, mais

precisamente na Toyota, que compreendeu que muitos dos custos de produção do sistema de

produção em massa são gerados por atividades que não agregam valor para o cliente, portanto

devem ser eliminadas, ou, caso não fosse possível, reduzidas ao máximo. Estas atividades que

não agregam valor são chamadas de desperdícios.

Entre os medidores de desempenho apresentados em seu trabalho encontra-se o

método BSC que, segundo o Balanced Scorecard Institute fornece uma descrição clara a

respeito do que as empresas devem medir para equilibrar a perspectiva financeira. É um

sistema de gerenciamento, e não somente um sistema de medição, que permite as

organizações clarear suas visões e estratégias, fornecendo assim, um retorno dos processos

internos do negócio e dos resultados externos para melhorar continuamente o desempenho e

os resultados estratégicos. A metodologia utiliza alguns conceitos de técnicas de

gerenciamento conhecidas como Total Quality Management (TQM), melhoria contínua e

gerenciamento baseado em medição e feedbacks.

Kracik (2002) implementou um protótipo que padroniza informações contábeis

utilizando XML. Esta linguagem possibilita gerar um padrão de comunicação entre sistemas

distintos transferindo e armazenando dados de um modo prático, uma vez que sua estrutura

não passa de um arquivo tipo texto que armazena os dados em forma de árvore e que se utiliza

de marcadores personalizados. Possibilitou desenvolver um servidor que armazena dados

contábeis usando o padrão estabelecido e outro aplicativo cliente que fornece e extrai

informações. Também foram abordadas neste trabalho as tecnologias de XML Schema que

define a estrutura, conteúdo e a semântica dos documentos XML e Simple Object Access

Protocol (SOAP) e web services que são representados por duas classes básicas da linguagem

Object Pascal: Tinvokable e Tremotable, que juntas formam a base da herança dos objetos

que compõem a comunicação entre aplicativos. O Tinvokable é uma classe básica que agrupa

Page 30: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

29

os métodos que representam as mensagens entre cliente e servidor no protocolo SOAP e

Tremotable é a classe que dá origem as classes que representam os elementos que podem ser

enviados através das mensagens.

Werner (2004) desenvolveu uma ferramenta que permite gerenciar o SGBD Firebird,

permitindo fazer a manutenção do banco de dados, além de poder incluir, alterar e excluir

dados na estrutura da base de dados e executar comandos SQL. Trata-se de uma ferramenta

open source destinado ao gerenciamento do SGBD do Firebird utilizando o ambiente de

programação Delphi e usando componentes como o IBObject que facilitam na comunicação

com os dados do banco Firebird, para gerenciar a base de dados. Batizado como FBConsole,

foi desenvolvido para facilitar a visualização de bases de dados e tabelas do Firebird,

execução de comandos em formato SQL, manutenção das propriedades de uma base de dados

e tabelas, manutenção dos dados de uma tabela e permissão de múltiplas conexões com o

SGBD como acontece com o IBConsole em relação ao banco Interbase.

Page 31: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

30

3 DESENVOLVIMENTO

Neste capítulo são detalhadas as especificações e implementações do sistema,

demonstrados através de requisitos, diagramas de entidade e relacionamento (DER), casos de

uso, classes e seqüência e ilustradas através de algumas telas do sistema com suas devidas

considerações;

3.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO

Levantamentos junto a empresas de confecções e representantes, e analisando sistemas

similares, puderam-se definir os seguintes requisitos funcionais para a elaboração deste

trabalho como demonstrado no quadro 4:

Page 32: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

31

Requisitos Funcionais

Casos

de

Uso

RF01: armazenar e recuperar dados de clientes. UC001

RF02: armazenar e recuperar dados de pedidos. UC002

RF03: armazenar e recuperar regras de BSC. UC003

RF04: recuperar dados de produtos. UC004

RF05: consultar informações de pedidos faturados. UC005

RF06: consultar títulos pendentes. UC006

RF07: possibilitar a consulta de preço dos produtos. UC007

RF08: consultar informações de BSC UC008

RF09: gerar gráfico dos resultados do BSC. UC009

RF10: consultar comissões. UC010

RF11: consultar condição de pagamento UC011

RF12: consultar transportadoras. UC012

RF12: importar dados do sistema de gestão como: clientes,

pedidos, títulos, produtos, tabela de preços, condição de

pagamento, transportadora. Todos os dados mencionados são

pertinentes a cada representante. UC013

RF13: exportar dados de clientes e pedidos através de arquivos XML

para o módulo de retaguarda. UC014

Quadro 4 – Requisitos Funcionais

O Quadro 5 lista os requisitos não funcionais do sistema, identificando os requisitos que

foram implementados.

Requisitos Não Funcionais

RNF01: evitar que ocorra duplicidade de informações de clientes e

pedidos em relação aos que são enviados pelo representante e os

cadastrados diretamente na empresa de confecções.

RNF02: utilizar no módulo de sistema de pedido a linguagem de

programação Object Pascal e utilizar um banco de dados open source

como o Firebird.

RNF03: compilar o sistema em duas plataformas Windows e Linux

utilizando o compilador Free Pascal.

RNF04: efetuar as consultas do sistema utilizando comandos SQL.

Quadro 5 – Requisitos Não Funcionais

Page 33: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

32

3.2 ESPECIFICAÇÃO

Para especificação do sistema, tanto do módulo de pedidos quanto do módulo de

retaguarda, foi utilizado à ferramenta Enterprise Architect para criar os diagramas de casos de

uso e diagrama de classes. Para o diagrama de entidade de relacionamento (DER) foi utilizado

o DBDesigner 4, ferramenta freeware, para edição desse tipo de diagrama. O módulo de

retaguarda interage com o sistema de pedido e a empresa de confecção, enviando e recebendo

os arquivos XML através de e-mail ou File Transfer Protocol (FTP) como demonstrado na

figura 3.

Figura 3 – Visão geral do sistema

Os Diagramas de casos de uso estão divididos em pacotes para facilitar a demonstração

de suas funcionalidades. Na Figura 4 é mostrado o diagrama de casos de uso do módulo de

pedidos referente aos cadastros.

Page 34: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

33

Figura 4 – Diagrama de casos de uso (Cadastros)

Na Figura 5 são mostrados os diagramas de casos de uso do módulo de pedidos que

estão relacionadas com a parte das consultas.

Figura 5 – Diagrama de casos de uso (Consultas)

Na Figura 6 são mostrados os diagramas de casos de uso do módulo de pedidos que

estão relacionadas com a parte das consultas de tabelas de apoio.

Page 35: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

34

Figura 6 – Diagrama de casos de uso das tabelas de apoio (Consultas)

Na figura 7 é demonstrado o diagrama de classe do módulo retaguarda que é

responsável pela troca das informações podendo ser executada pelo representante.

Figura 7 – Diagrama de casos de uso Retaguarda

A seguir é descrito as pré e pós-condições, cenário principal e alternativo referente ao

diagrama de casos de uso cadastrar clientes na figura 8.

Page 36: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

35

Figura 8 – Descrição de casos de uso cadastrar clientes

A seguir é descrito as pré e pós-condições, cenário principal e alternativo referente ao

diagrama de casos de uso digitar pedidos na figura 9.

Figura 9 – Descrição de casos de uso digitar pedidos

A seguir é descrito as pré e pós-condições, cenário principal e alternativo referente ao

diagrama de casos de uso gerar gráfico BSC na figura 10.

Page 37: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

36

Figura 10 – Descrição de casos de uso gerar gráfico BSC

A seguir é descrito as pré e pós-condições, cenário principal e alternativo referente ao

diagrama de casos de uso consultar BSC na figura 11.

Figura 11 – Descrição de casos de uso consultar BSC

A seguir é descrito as pré e pós-condições, cenário principal e alternativo referente ao

diagrama de casos de uso consultar faturamento na figura 12.

Figura 12 – Descrição de casos de uso consultar faturamento

A seguir é descrito as pré e pós-condições, cenário principal e alternativo referente ao

diagrama de casos de uso consultar títulos pendentes na figura 13.

Page 38: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

37

Figura 13 – Descrição de casos de uso consultar títulos pendentes

A seguir é descrito as pré e pós-condições, cenário principal e alternativo referente ao

diagrama de casos de uso consultar tabela de preço na figura 14.

Figura 14 – Descrição de casos de uso consultar tabela de preço

A seguir é descrito as pré e pós-condições, cenário principal e alternativo referente ao

diagrama de casos de uso consultar comissões na figura 15.

Figura 15 – Descrição de casos de uso consultar comissões

A seguir é descrito as pré e pós-condições, cenário principal e alternativo referente ao

diagrama de casos de uso consultar transportadoras na figura 16.

Page 39: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

38

Figura 16 – Descrição de casos de uso consultar transportadoras

A seguir é descrito as pré e pós-condições, cenário principal e alternativo referente ao

diagrama de casos de uso consultar condição de pagamento na figura 17.

Figura 17 – Descrição de casos de uso consultar condições de pagamento

A seguir é descrito as pré e pós-condições, cenário principal e alternativo referente ao

diagrama de casos de uso consultar produtos na figura 18.

Figura 18 – Descrição de casos de uso consultar produtos

A seguir é descrito as pré e pós-condições, cenário principal e alternativo referente ao

diagrama de casos de uso importar na figura 19.

Page 40: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

39

Figura 19 – Descrição de casos de uso importar

A seguir é descrito as pré e pós-condições, cenário principal e alternativo referente ao

diagrama de casos de uso exportar na figura 20.

Figura 20 – Descrição de casos de uso exportar

Foi criada uma classe central chamada DAOGeral, onde todas as entidades tratadas

no sistemas herdam suas características, deixando o trabalho de conexão, busca e gravação

das informações com o banco de dados totalmente centralizado. Esta classe conta com dois

métodos principais que devem ser sobrescritos nas classes mais específicas, que são o

classeParaTabela e o tabelaParaClasse, responsáveis enviar as informações para

as classes e buscar as informações da classe para serem salvas no banco de dados.

Outros métodos mais genéricos são implementadas na classe DAOGeral como o

salvar, abrir, novo, proximo e anterior, além de outros métodos acessórios

utilizados internamente pela classe.

A seguir é mostrado o diagrama de classe do módulo do pedido ilustrado na figura 21.

Page 41: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

40

Figura 21 – Diagrama de classes

No apêndice A é demonstrado parte do código fonte da classe DAOGeral referente a

clientes e as funções de buscas na tabela.

Na Figura 22 é mostrado o diagrama de entidade e relacionamento (DER) do módulo

do pedido, desenvolvido na ferramenta DBDesigner 4.0.

Page 42: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

41

Figura 22 – Diagrama de entidade e relacionamentos (DER)

O script para geração do banco de dados Firebird está demonstrado no apêndice B.

O dicionário de dados desenvolvido para especificar o sistema é apresentado na sequência

para cada uma das entidades do DER, através dos quadros de número 6 a 18.

Page 43: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

42

A tabela BSC

Campo Descrição Tipo/Tamanho

COD_BSC Código do BSC INTEGER

COMANDO_SQL

Comando SQL que resultará um

numero inteiro para confrontar com

a meta VARCHAR(100)

MINIMO valor minimo do BSC INTEGER

META valor da meta do BSC INTEGER

OBJETIVO Objetivo a ser alcançado pelo BSC VARCHAR(100)

INDICADOR

Descrição do que se deve fazer

para alcançar o objetivo VARCHAR(100)

DSC_META Descrição da meta VARCHAR(100)

ACAO_PROSPECT_A 1º acao do BSC conforme resultado VARCHAR(100)

ACAO_PROSPECT_B 2º acao do BSC conforme resultado VARCHAR(100)

ACAO_PROSPECT_C 3ª acao do BSC conforme resultado VARCHAR(100)

NOTA_ACOMPANHAMENTO Nota de acompanhamento do BSC VARCHAR(100)

DTA_CADASTRO Data de cadastro DATE

DTA_ATUALIZACAO Data da atualização DATE

Quadro 6 – Dicionário de dados – BSC

Tabela de Comissões

Campo Descrição Tipo/Tamanho

COD_COMISSAO Codigo da comissão INTEGER

DTA_COMISSAO Data da comissão DATE

VLR_COMISSAO Valor da comissão NUMERIC(8,2)

Quadro 7 – Dicionário de dados – Comissões

Tabela de condição de pagamento

Campo Descrição Tipo/Tamanho

COD_COND_PGTO Codigo condição de pagamento CHAR

DSC_COND_PGTO Descrição da condição de pagamento VARCHAR(40)

DESCONTO_COND_PGTO Desconto da condição de pagamento FLOAT

Quadro 8 – Dicionário de dados – Condição de pagamento

Parcelas da condição de pagamento

Campo Descrição Tipo/Tamanho

COD_PARCELA codigo da parcela CHAR

DIAS_PARCELA

Dias referente o vencimento da

parcela INTEGER

PER_PARCELA

percentual da parcela em relação a

fatura FLOAT

Quadro 9 – Dicionário de dados – Parcelas da condição de pagamento

Page 44: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

43

A tabela Clientes

Campo Descrição Tipo/Tamanho

COD_CLIENTE Codigo do cliente INTEGER

NOM_FANTASIA Nome fantasia VARCHAR(30)

BAIRRO Bairro VARCHAR(20)

CEP Cep VARCHAR(10)

CIDADE Cidade VARCHAR(40)

COD_CLIENTE_EXTERNO Codigo externo do cliente VARCHAR(10)

CONTATO Contato VARCHAR(30)

DTA_CADASTRO Data de cadastro DATE

DTA_ATUALIZACAO Data de atualização DATE

DDD DDD CHAR(3)

TELEFONE Telefone VARCHAR(10)

EMAIL Email VARCHAR(60)

ENDERECO Endereço VARCHAR(60)

IE_RG Inscrição Estadual ou RG VARCHAR(20)

FLG_INATIVO

Flag de inativo:

1 - True

0 - False CHAR(1)

FLG_CREDITO

Flag de credito de compra:

1 - True

0 - False CHAR(1)

OBS Observação do cliente VARCHAR(100)

FLG_TIPO_PESSOA

Flag de tipo de pessoa:

1 - Pessoa Juridica

0 - Pessoa Fisica CHAR(1)

RAZAO_SOCIAL Razão Social do cliente VARCHAR(60)

UF Unidade Federativa CHAR(2)

Quadro 10 – Dicionário de dados – Clientes

Tabela dos itens de Faturamentos

Campo Descrição Tipo/Tamanho

num_item Numero do item INTEGER

QTD_ITEM quantidade do item INTEGER

VLR_ITEM valor do item FLOAT

Quadro 11 – Dicionário de dados – Itens do faturamento

Page 45: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

44

Tabela de Faturamentos

Campo Descrição Tipo/Tamanho

COD_NF Codigo da nota fiscal INTEGER

NRO_NF numero da nota fiscal VARCHAR(10)

VLR_NF valor da nota fiscal NUMERIC(8,2)

PESO_BRUTO peso bruto NUMERIC(8,2)

PESO_LIQUIDO peso liquido NUMERIC(8,2)

DTA_EMISSAO data da emissao DATE

DTA_ENTREGA data de entrega DATE

FRETE

Flag de frete:

1 - Cif

2 - Fob CHAR(1)

PER_COMISSAO

percentual de comissão no

faturamento NUMERIC(8,2)

Quadro 12 – Dicionário de dados – Faturamentos

Tabela de Pedidos

Campo Descrição Tipo/Tamanho

COD_PEDIDO Codigo do pedido INTEGER

FLG_APROVADO

Flag de aprovação do pedido:

A - Aprovado pela empresa

R - reprovado

N - No Aguardo CHAR(1)

DTA_CADASTRO Data de cadastro DATE

DTA_ATUALIZACAO Data de atualização DATE

DTA_EMISSAO data da emissão DATE

PEDIDO_CLIENTE Pedido do cliente VARCHAR(10)

PEDIDO_EXTERNO Pedido externo do cliente VARCHAR(10))

PER_COMISSAO percentual de comissão NUMERIC(8,2)

PER_DESCONTO percentual de desconto NUMERIC(8,2)

STATUS_PEDIDO

Flag de status do pedido:

Faturado

Reservado

Em produção VARCHAR(30)

DTA_ENTREGA data de entrega DATE

OBS Observação do pedido VARCHAR(100)

Quadro 13 – Dicionário de dados – Pedidos

Tabela de itens do Pedido

Campo Descrição Tipo/Tamanho

cod_itempedido Codigo do item do pedido INTEGER

cod_produto Codigo do produto VARCHAR(10)

QTD_ITEM_PEDIDO quantidade do item do pedido INTEGER

VLR_ITEM_PEDIDO valor do item do pedido NUMERIC(8,2)

PER_DESCONTO percentual de desconto do item NUMERIC(8,2)

VLR_PRECO preco unitario do item do pedido NUMERIC(8,2)

Quadro 14 – Dicionário de dados – Itens do pedido

Page 46: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

45

Tabela de Produtos

Campo Descrição Tipo/Tamanho

COD_PRODUTO codigo do produto VARCHAR(10)

DSC_PRODUTO descrição do produto VARCHAR(40)

FLG_INATIVO

Flag de inativo:

1 - True

0 - False CHAR(1)

Quadro 15 – Dicionário de dados – Produtos

Tabela de preços

Campo Descrição Tipo/Tamanho

COD_TABELA_PRECO Codigo da tabela de preço INTEGER

DSC_TABELA_PRECO Descrição da tabela de preço VARCHAR(40)

FLG_INATIVO

Flag de inativo:

1 - True

0 - False CHAR(1)

Quadro 16 – Dicionário de dados – Tabela de preços

Títulos

Campo Descrição Tipo/Tamanho

DTA_EMISSAO Data da emissão do titulo DATE

NRO_FATURA numero da fatura VARCHAR(10)

VLR_RECEBIDO valor recebido NUMERIC(8,2)

DTA_VENCIMENTO data do vencimento DATE

VLR_FATURA valor da fatura NUMERIC(8,2)

NRO_PARCELA numero da parcela CHAR(2)

Quadro 17 – Dicionário de dados – Títulos

Transportadoras

Campo Descrição Tipo/Tamanho

COD_TRANSPORTADORA codigo da transportadora INTEGER

NOM_TRANSPORTADORA nome da transportadora VARCHAR

DDD DDD CHAR(3)

TELEFONE Telefone VARCHAR(10))

EMAIL Email VARCHAR(60)

Quadro 18 – Dicionário de dados – Transportadoras

3.3 IMPLEMENTAÇÃO

Os assuntos seguintes descrevem as ferramentas e técnicas utilizadas para o

desenvolvimento do trabalho.

Page 47: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

46

3.3.1 Ferramenta Lazarus e o compilador Free Pascal

A ferramenta de desenvolvimento Lazarus é Open Source e possui integrado a sua IDE

o compilador Free Pascal de Object Pascal que possibilitou desenvolver o sistema nas duas

plataformas Windows e Linux e provê um editor de código personalizável, além de um

ambiente de criação visual semelhante ao DELPHI. A figura 23 mostra o sistema compilado

nas duas plataformas geradas pela ferramenta Lazarus.

Figura 23 – Sistema compilado em duas plataformas: Windows e Linux

Alguns componentes foram instalados para possibilitar a interação do ambiente de

desenvolvimento com o banco de dados Firebird, como por exemplo, o componente Zeoslib,

que possibilitou a conexão ao banco Firebird.

3.3.2 Balanced ScoreCard

O sistema possui consulta e gráfico mostrando indicadores de desempenho, destinado

ao acompanhamento do representante do ponto de vista estratégico, acompanhando seus

objetivos e metas. Os conceitos do BSC apresentados no trabalho concentram-se na

perspectiva de clientes, que pode ser representada por informações relacionadas ao cliente e

às vendas. O representante poderá utilizar o sistema planejando sua estratégia de atuação

antes de sair vendendo, colocando em pauta os principais indicadores para seu sucesso e

possibilitando descrevendo de forma dissertativa seus objetivos e planos de ações conforme o

resultado de seus indicadores.

Page 48: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

47

3.3.3 Operacionalidade da implementação

Para demonstrar a operacionalidade da aplicação, são apresentadas a seguir algumas

telas do sistema visando demonstrar um caso real da utilização do mesmo.

3.3.1.1 Cadastros do sistema

A tela de cadastro de clientes apresenta opções para o representante incluir, alterar, pesquisar,

atualizar e excluir os registros de clientes. O representante poderá consultar o cliente por todos os

campos habilitados tais como: fantasia, razão social, cidade, conforme mostra a figura 24.

Figura 24 – Cadastro de Clientes

A tela de cadastro de pedidos apresenta opções para o representante incluir, alterar,

pesquisar, atualizar e excluir os registros de pedidos. O representante poderá consultar o

pedido por todos os campos habilitados tais como: pedido, cliente, emissão e coleção. A

alteração ou exclusão dos dados será permitida somente se o pedido não estiver aprovado para

garantir a integridade das informações enviadas para o sistema de gestão, conforme mostra a

figura 25, 26 e 27.

Page 49: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

48

Figura 25 – Cadastro de Pedidos - Cabeçalho

Figura 26 – Cadastro de Pedidos – itens

Page 50: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

49

Figura 27 – Cadastro de Pedidos – Observações

A tela de cadastro de BSC apresenta quatro opções para o representante: pesquisar,

novo, excluir e sair. Ao escolher a opção pesquisar o sistema substitui o botão novo pelo

gravar e mostrará os dados do BSC desejado, possibilitando efetuar a alteração dos dados,

conforme mostra a figura 28,29 e 30.

Figura 28 – Cadastro do Balanced ScoreCard - Cabeçalho

Page 51: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

50

Figura 29 – Cadastro do Balanced ScoreCard - Ações

Figura 30 – Cadastro do Balanced ScoreCard - Indicadores

O cadastro do BSC é focado na perspectiva de clientes definido por campos

Page 52: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

51

importantes para que seja atingido o objetivo. A seguir é mostrada a explicação para inclusão

dos dados no quadro 19.

Campos

Descrição e função dos

campos Exemplo

OBJETIVO

Serve para motivar e

comunicar a razão pela

qual a organização está

construindo o BSC e

ajudará a manter o

comprometimento dos

envolvidos

Agredir o mercado

ampliando nossa base de

clientes

INDICADOR

Definição pratica do que

será medido

Captação de novos

clientes

META

Valor da meta a ser

atingida 120

DESC_META

Descrição da meta a ser

atingida

Aumentar em 20% o

numero de clientes

novos

MINIMO

O valor minimo proposto

ao indicador de

desempenho 60

COMANDO_SQL

comando efetuado no

banco de dados para

adquirir o valor do

resultado esperado

select

count(cod_cliente) from

clientes where

data_cadastro >='2008-

11-01'

ACAO_PROSPECT_A

Ação a ser mostrada

quando o resultado estar

menor que 80% da meta

Aumentar o numero de

visitas

ACAO_PROSPECT_B

Ação a ser mostrada

quando o resultado estar

menor que 50% da meta

Divulgar um mix de

produtos na midia

ACAO_PROSPECT_C

Ação a ser mostrada

quando o resultado

estiver inferior a 30%

da meta

Propor uma promoção

junto a empresa de

confecções para

executar uma ação

conjunta para atrair

novos clientes

NOTA_DE_ACOMPANHAMENTO

Observações e relatos

sobre a execução das

ações

Após iniciar a ação A,

houve melhora a

aquisição de novos

clientes

Quadro 19 – Explicações sobre os campos do cadastro do BSC

3.3.1.2 Consultas do Sistema

O sistema permite consultar várias informações importadas do sistema de gestão pelo

módulo retaguarda. Estas telas irão fornecer apenas dados para consulta, não permitindo

Page 53: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

52

qualquer inclusão ou alteração dos dados, conforme é mostrado.

A figura 31, que exibe a tela de consulta de títulos com filtros da fatura, intervalo de

datas referentes à emissão ou vencimento e sobre a situação dos títulos como: em aberto,

recebidos ou todos.

Figura 31 – Consulta de títulos

Na figura 32 e 33, são mostradas as telas de consulta de faturamento, onde o

representante poderá acompanhar os faturamentos efetuados pela empresa de confecções.

Page 54: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

53

Figura 32 – Consulta de faturamento - Cabeçalho

Figura 33 – Consulta de faturamento - itens

Na figura 34, é mostrada a tela de consulta de produtos, com filtros pela descrição ou

código do produto e se estão ou não inativos.

Page 55: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

54

Figura 34 – Consulta de produtos

Na figura 35, é mostrada a tela de consulta de tabela de preços.

Figura 35 – Consulta de tabela de preço

Na figura 36, é mostrada a tela de consulta de comissões, filtros pelo intervalo de datas

de pagamentos de comissões e intervalo de código de clientes

Page 56: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

55

Figura 36 – Consulta de comissões

Na figura 37, é mostrada a tela de consulta de condição de pagamento.

Figura 37 – Consulta de condições de pagamentos

Na figura 38, é mostrada a tela de consulta de transportadora.

Page 57: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

56

Figura 38 – Consulta de transportadoras

3.3.1.3 Consultas e gráfico do BSC

A consulta do BSC serve para indicar seu desempenho em relação aos seus objetivos

estratégicos cadastrados, conforme mostrada na figura 39.

Figura 39 – Consulta de Balanced Scorecard

O gráfico do BSC demonstra de forma clara e objetiva em relação aos seus objetivos

Page 58: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

57

estratégicos cadastrados, conforme mostrado na figura 40.

Figura 40 – Gráfico de Balanced ScoreCard

O módulo retaguarda é responsável pela troca de informações entre o módulo de

pedidos e o sistema de gestão através de arquivos XML, conforme mostrado na figura 41.

Figura 41 – Módulo de retaguarda

Page 59: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

58

Arquivos XML de clientes e pedidos utilizados para importação e exportação pelo

modulo retaguarda está demonstrado no apêndice C.

3.4 RESULTADOS E DISCUSSÃO

O sistema foi desenvolvido primeiramente para interface Windows, implementando a

maioria dos requisitos funcionais do trabalho e baseado nos diagramas de casos de uso

especificados no trabalho.

Os testes comprovam a operacionalidade do sistema como a coleta de pedidos e

consulta de informações importadas através de arquivos XML. Para os testes destas consultas

foram utilizados arquivos XML armazenados em uma pasta simulando os e-mails recebidos

do sistema de gestão, onde se observou as alterações no módulo de pedidos após a importação

dos dados e em outra pasta foi armazenado os arquivos XML exportados pelo sistema

possibilitando efetuar as consultas das tabelas de apoio pelo browser. A alteração e exclusão

de pedidos não é permitida quando o pedido estiver aprovado, para garantir a integridade das

informações processadas na empresa de confecções.

O módulo retaguarda recebe e envia e-mails com os dados das tabelas selecionadas,

através das datas de atualizações. Tabelas provenientes do módulo de pedidos como clientes,

pedidos e BSC são atualizadas conforme haja inclusão ou alteração de novos registros.

Em Silva (2007) fez-se um estudo sobre medição de desempenho baseado nas

ferramentas da produção enxuta. O estudo apresenta a relação entre indicadores estratégicos e

os indicadores operacionais, mostrando o conceito do BSC. Neste trabalho é apresentado um

sistema que, utilizando-se de consultas SQL para gerar resultados em números inteiros para

avaliação dos indicadores, torna a consulta do BSC dinâmica conforme o sistema é

alimentado pelos pedidos de venda.

Em Kracik (2002), é demonstrado o uso de arquivos XML em um protótipo utilizando

dispositivos móveis possibilitando desenvolver um servidor que armazena dados contábeis

usando o padrão estabelecido e outro aplicativo cliente que fornece e extrai as informações.

Além das tecnologias aplicadas como XML Schema que define a estrutura, conteúdo e a

semântica dos documentos XML. Neste trabalho foi utilizado comandos SQL e funções para

adquirir os dados como a soma dos itens de um pedido que exigem maior detalhamento na

geração dos nodos.

Page 60: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

59

4 CONCLUSÕES

O sistema foi desenvolvido para plataforma Windows e Linux e cumpriu os requisitos

especificados, o modulo de pedidos permite o armazenamento e a recuperação dos dados de

clientes, pedidos e BSC, consultas de informações importantes para o representante como

comissões, faturamentos, títulos pendentes entre outras. A implementação do módulo de

retaguarda para troca de informações entre o representante e o sistema de gestão, a qual envia

e recebe emails com as informações em arquivos XML processando-os, também foi

concretizada.

As ferramentas usadas para o desenvolvimento atenderam aos requisitos necessários

para a implementação. A maioria das ferramentas é Open Source, exceto pela ferramenta

Enterprise Architect que possui sua versão licenciada na Furb.

O uso do banco Firebird foi muito importante por ter versões para o sistema

operacional Windows e Linux possibilitando a geração do mesmo programa fonte compilado

em duas plataformas diferentes.

O estudo realizado sobre a metodologia BSC proporcionou um bom conhecimento em

gestão estratégica, aliada a aplicação de seus indicadores de desempenho. Uma ferramenta

ótima para medir resultados da empresa aliado a orientação de planos de ações pré-definidos

pelo representante. O desenvolvimento desta opção proporciona ao representante que planeje

suas estratégias antes de efetuar as visitas aos clientes, orientado por seus indicadores,

podendo executar várias ações diferentes no decorrer de seu desempenho.

O conhecimento adquirido sobre a ferramenta Lazarus proporcionou uma visão sobre o

uso deste ambiente, permitindo divulgar a linguagem Object Pascal e o conceito de

ferramenta Open Source, procurando oferecer uma distribuição livre do programa, tendo

como objetivo disponibilizar seu código fonte.

4.1 EXTENSÕES

Como extensões deste trabalho podem ser sugeridas algumas opções.

O conceito BSC pode ser empregado em vários softwares de gestão estratégica,

também para aplicativos industriais e comerciais fazendo uso dos indicadores de desempenho.

Page 61: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

60

Utilizando objetivos estratégicos, visando orientação através de ações pré-definidas, o

trabalho foca a perspectiva de cliente que possibilita ser demonstrado na aplicação em

questão. O tema BSC pode ser desenvolvido para outras aplicações que possam interagir nas

perspectivas financeiras e processos internos possibilitando finalizar com a perspectiva de

crescimento e aprendizado.

O desenvolvimento deste trabalho utilizando a ferramenta Lazarus e compilador Free

pascal, que é um projeto Open Source destinado a atender programadores adeptos ao Object

Pascal e com a versatilidade de compilação para várias plataformas com o mesmo programa

fonte, favorece a portabilidade para outras plataformas como Windows CE, Linux, MAC e

incentiva a implementação de componentes não existentes no ambiente.

A continuação deste trabalho visando a implementação do cadastro de produtos em

grade, sincronização dos dados através das tecnologias web service e a utilização de outras

ferramentas Open Source, também podem ser objeto de futuras pesquisas e desenvolvimentos.

Page 62: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

61

REFERÊNCIAS BIBLIOGRÁFICAS

ALVAREZ, Miguel A. O que é e para que serve o SQL. São Paulo, [2004]. Disponível em:

< http://www.criarweb.com/artigos/210.php?manual=11>. Acesso em: 26 jul. 2008.

BALZANI, Haylla S. Balanced scorecard – BSC: uma ferramenta de gestão. [S.1.], [2006].

Disponível em: < http://www.administradores.com.br/artigos/balanced_scorecard_bsc_uma_

ferramenta_de_gestao/12951/>. Acesso em: 23 ago. 2008.

BORATTI, Isaias C. Programação orientada a objetos usando Delphi. 2. ed. São Paulo:

Visual Books, 2002.

CIMINO, Julio C. S. Implantação do Balanced ScoreCard (BSC) em pequenas empresas:

um estudo de caso em uma empresa de serviços em juiz de fora-MG. 2004. 50 f. Dissertação

(Mestrado em Engenharia de Produção) – Centro de Ciências Exatas e Naturais, Universidade

Federal de Santa Catarina, Florianópolis

DECARIA, Henrique M. Abstração de base de dados utilizando DAO. [S.1.], [2007].

Disponível em: <http://phpbr.wordpress.com/2007/02/06/abstracao-de-base-de-dados-

utilizando-dao/>. Acesso em: 19 mar. 2009.

FREITAS, Alfredo. A. Firebird Br. [S.1.], [2002]. Disponível em: <http://www.firebird.

com.br/index.php>. Acesso em: 28 jul. 2008.

FURTADO JUNIOR, Miguel. B. Trabalho sobre XML. Rio de Janeiro, [2005]. Disponível

em: < http://www.gta.ufrj.br/grad/00_1/miguel>. Acesso em: 20 mar. 2008.

GRAVES, Mark. Projeto de banco de dados com XML. Tradução Aldair José Coelho

Corrêa da Silva. São Paulo: Pearson, 2003.

GOMES, Rui. Free Pascal. [S.1], [2008?]. Disponível em: < http://portugalcode.com/index.

php?topic=182.0>. Acesso em: 20 mar. 2008.

KAPLAN, Robert S. NORTON, David P. A Estratégia em ação: balanced scorecard. 7. ed.

Rio de Janeiro: Campus, 1997.

KOTLER, Philip. Administração e marketing. Tradução Ailton Bonfim Brandão. São

Paulo: Atlas, 1994.

KRACIK, João. Protótipo de padrão de comunicação e armazenamento de dados

contábeis usando XML. 2002. 109 f. Trabalho de Conclusão de Curso (Bacharelado em

Ciências da Computação) – Centro de Ciências Exatas e Naturais, Universidade Regional de

Blumenau, Blumenau.

LAUDON, Kenneth. C.; LAUDON, Jane. P. Sistemas de informação gerenciais. 5. ed

Tradução Arlete Símile Marques. São Paulo: Pearson, 2004.

Page 63: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

62

LAZARUS, Wiki. Lazarus tutorial/pt. [S.1.], [2008?]. Disponível em: <http://wiki.lazarus.

freepascal.org /Lazarus_Tutorial/pt>. Acesso em: 01 set. 2008.

MANZANO, Augusto. Free Pascal: compilador Pascal e Object Pascal de código aberto.

[S.1.], [2006]. Disponível em: < http://www.freepascal.eti.br/sobre.htm>. Acesso em: 01 ago.

2008.

SANTOS, Paulo. V. Características e especificações do SGBD Firebird 1.0. [S.1.], [2005].

Disponível em: <http://www.comunidade-firebird.org/cflp/downloads/CFLP_O014.PDF>.

Acesso em: 01 fev. 2008.

SARDAGNA, Marcelo. VAHLDICK, Adilson. Aplicações do padrão Data Access Object

(DAO) em projetos desenvolvidos em DELPHI. [S.1.], [2008]. Disponível em: <

http://www.inf.ufsc.br/erbd2008/artigos/2.pdf>. Acesso em: 15 mar. 2009.

SILVA, Thiago F. Estudo sobre sistema de medição de desempenho baseado nas

ferramentas da produção enxuta. 2007. 64 f. Trabalho de Conclusão de Curso

(Bacharelado em Engenharia de Produção) – Departamento de Engenharia de Produção,

Escola de Engenharia de São Carlos da Universidade de São Paulo, São Paulo.

VOORT, Marco. V. Cross compiling. [S.1.], [2006]. Disponível em: < http://wiki.lazarus.

freepascal.org/Cross_compiling/pt#Para_Linux_2>. Acesso em: 01 set. 2008.

WERNER, Carlos E. Ferramenta de gerenciamento para banco de dados Firebird. 2004.

50 f. Trabalho de Conclusão de Curso (Bacharelado em Ciências da Computação) – Centro de

Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau

Page 64: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

63

APÊNDICE A – Classe DAOGeral – parte do código referente a classe de clientes e das

buscas na tabela.

No quadro 20 é apresentado o parte do código da classe DAOGeral referente a classe

de clientes e das buscas nas tabelas.

type

// Tipo de SQL

TpSQL = (tsqlInserir, tsqlAlterar, tsqlExcluir, tsqlConsultar);

{ TDAOGeral }

TDAOGeral = class(TDataModule)

Conexao: TZConnection;

registros: TZQuery;

private

Fid: Integer;

{ private declarations }

nomeTabela: String;

campoId: String;

procedure Setid(const AValue: Integer);

protected

filtros: TStrings;

public

{ public declarations }

constructor Create;

destructor Destroy;

property id: Integer read Fid write Setid;

function BuscaDados(SQL: String): TZQuery;

procedure ExecutaComando(SQL: String);

procedure Novo();

procedure Abrir();

procedure Salvar();

procedure Proximo();

procedure Anterior();

procedure Excluir();

function MontaSQL(Tipo: TpSQL): String;

function buscaCampos(): String;

function buscaValores(): String;

function buscaCamposComValores(): String;

function buscaCondicoes(): String;

procedure initTabela(nome, campo: String);

procedure adicionarFiltro(filtro: String);

procedure limparFiltro();

procedure ClasseParaTabela(); virtual;

procedure TabelaParaClasse(); virtual;

end;

Page 65: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

64

{ TDAOCliente }

TDAOCliente = class(TDAOGeral)

private

Fbairro: string;

Fcep: string;

Fcidade: string;

Fcnpj_cpf: string;

Fcod_cliente: integer;

Fcod_externo: string;

Fcontato: string;

Fdata_atualizacao: TDate;

Fdata_cadastro: TDate;

Fddd: string;

Femail: string;

Fendereco: string;

Ffantasia: string;

Fie_rg: string;

Finativo: Boolean;

Fobs: string;

Frazao_social: string;

Fsem_credito: Boolean;

Ftelefone: string;

Ftip_pessoa: Integer;

Fuf: string;

// controles

inativo_str: String;

sem_credito_str: String;

tip_pessoa_str: String;

// metodos

procedure Setbairro(const AValue: string);

procedure Setcep(const AValue: string);

procedure Setcidade(const AValue: string);

procedure Setcnpj_cpf(const AValue: string);

procedure Setcod_cliente(const AValue: integer);

procedure Setcod_externo(const AValue: string);

procedure Setcontato(const AValue: string);

procedure Setdata_atualizacao(const AValue: TDate);

procedure Setdata_cadastro(const AValue: TDate);

procedure Setddd(const AValue: string);

procedure Setemail(const AValue: string);

procedure Setendereco(const AValue: string);

procedure Setfantasia(const AValue: string);

procedure Setie_rg(const AValue: string);

procedure Setinativo(const AValue: Boolean);

procedure Setobs(const AValue: string);

procedure Setrazao_social(const AValue: string);

procedure Setsem_credito(const AValue: Boolean);

procedure Settelefone(const AValue: string);

procedure Settip_pessoa(const AValue: Integer);

procedure Setuf(const AValue: string);

Page 66: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

65

public

constructor Create;

destructor Destroy;

property cod_cliente: integer read Fcod_cliente write Setcod_cliente;

property cod_externo: string read Fcod_externo write Setcod_externo;

property fantasia: string read Ffantasia write Setfantasia;

property razao_social: string read Frazao_social write Setrazao_social;

property tip_pessoa: Integer read Ftip_pessoa write Settip_pessoa;

property cnpj_cpf: string read Fcnpj_cpf write Setcnpj_cpf;

property ie_rg: string read Fie_rg write Setie_rg;

property contato: string read Fcontato write Setcontato;

property obs: string read Fobs write Setobs;

property inativo: Boolean read Finativo write Setinativo;

property sem_credito: Boolean read Fsem_credito write Setsem_credito;

property cep: string read Fcep write Setcep;

property endereco: string read Fendereco write Setendereco;

property bairro: string read Fbairro write Setbairro;

property cidade: string read Fcidade write Setcidade;

property uf: string read Fuf write Setuf;

property ddd: string read Fddd write Setddd;

property telefone: string read Ftelefone write Settelefone;

property email: string read Femail write Setemail;

property data_cadastro: TDate read Fdata_cadastro write Setdata_cadastro;

property data_atualizacao: TDate read Fdata_atualizacao write Setdata_atualizacao;

procedure ClasseParaTabela(); override;

procedure TabelaParaClasse(); override;

end;

{ TDAOCliente }

procedure TDAOCliente.Setbairro(const AValue: string);

begin

if Fbairro=AValue then exit;

Fbairro:=AValue;

end;

procedure TDAOCliente.Setcep(const AValue: string);

begin

if Fcep=AValue then exit;

Fcep:=AValue;

end;

procedure TDAOCliente.Setcidade(const AValue: string);

begin

if Fcidade=AValue then exit;

Fcidade:=AValue;

end;

procedure TDAOCliente.Setcnpj_cpf(const AValue: string);

Page 67: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

66

begin

if Fcnpj_cpf=AValue then exit;

Fcnpj_cpf:=AValue;

end;

procedure TDAOCliente.Setcod_cliente(const AValue: integer);

begin

if Fcod_cliente=AValue then exit;

Fcod_cliente:=AValue;

end;

procedure TDAOCliente.Setcod_externo(const AValue: string);

begin

if Fcod_externo=AValue then exit;

Fcod_externo:=AValue;

end;

procedure TDAOCliente.Setcontato(const AValue: string);

begin

if Fcontato=AValue then exit;

Fcontato:=AValue;

end;

procedure TDAOCliente.Setdata_atualizacao(const AValue: TDate);

begin

if Fdata_atualizacao=AValue then exit;

Fdata_atualizacao:=AValue;

end;

procedure TDAOCliente.Setdata_cadastro(const AValue: TDate);

begin

if Fdata_cadastro=AValue then exit;

Fdata_cadastro:=AValue;

end;

procedure TDAOCliente.Setddd(const AValue: string);

begin

if Fddd=AValue then exit;

Fddd:=AValue;

end;

procedure TDAOCliente.Setemail(const AValue: string);

begin

if Femail=AValue then exit;

Femail:=AValue;

end;

procedure TDAOCliente.Setendereco(const AValue: string);

begin

if Fendereco=AValue then exit;

Page 68: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

67

Fendereco:=AValue;

end;

procedure TDAOCliente.Setfantasia(const AValue: string);

begin

if Ffantasia=AValue then exit;

Ffantasia:=AValue;

end;

procedure TDAOCliente.Setie_rg(const AValue: string);

begin

if Fie_rg=AValue then exit;

Fie_rg:=AValue;

end;

procedure TDAOCliente.Setinativo(const AValue: Boolean);

begin

if Finativo=AValue then exit;

Finativo:=AValue;

inativo_str:=ifthen(inativo,'S','N');

end;

procedure TDAOCliente.Setobs(const AValue: string);

begin

if Fobs=AValue then exit;

Fobs:=AValue;

end;

procedure TDAOCliente.Setrazao_social(const AValue: string);

begin

if Frazao_social=AValue then exit;

Frazao_social:=AValue;

end;

procedure TDAOCliente.Setsem_credito(const AValue: Boolean);

begin

if Fsem_credito=AValue then exit;

Fsem_credito:=AValue;

sem_credito_str:=ifthen(sem_credito, 'S', 'N');

end;

procedure TDAOCliente.Settelefone(const AValue: string);

begin

if Ftelefone=AValue then exit;

Ftelefone:=AValue;

end;

procedure TDAOCliente.Settip_pessoa(const AValue: Integer);

begin

if Ftip_pessoa=AValue then exit;

Page 69: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

68

Ftip_pessoa:=AValue;

tip_pessoa_str:=IfThen(tip_pessoa = 0,'F','J');

end;

procedure TDAOCliente.Setuf(const AValue: string);

begin

if Fuf=AValue then exit;

Fuf:=AValue;

end;

constructor TDAOCliente.Create;

begin

inherited Create;

initTabela('clientes', 'cod_cliente');

end;

destructor TDAOCliente.Destroy;

begin

inherited Destroy;

end;

procedure TDAOCliente.ClasseParaTabela();

begin

if id > 0 then

registros.FieldByName(campoId).AsInteger := id

else

registros.FieldByName(campoId).Clear;

registros.FieldByName('cod_externo').AsString := cod_externo;

registros.FieldByName('dsc_fantasia').AsString := fantasia;

registros.FieldByName('dsc_razao').AsString := razao_social;

registros.FieldByName('flg_tipo_pessoa').AsString := tip_pessoa_str;

registros.FieldByName('dsc_cnpj_cpf').AsString := cnpj_cpf;

registros.FieldByName('dsc_ie_rg').AsString := ie_rg;

registros.FieldByName('dsc_contato').AsString := contato;

registros.FieldByName('dsc_obs').AsString := obs;

registros.FieldByName('flg_inativo').AsString := inativo_str;

registros.FieldByName('flg_credito').AsString := sem_credito_str;

registros.FieldByName('dsc_cep').AsString := cep;

registros.FieldByName('dsc_endereco').AsString := endereco;

registros.FieldByName('dsc_bairro').AsString := bairro;

registros.FieldByName('dsc_cidade').AsString := cidade;

registros.FieldByName('dsc_uf').AsString := uf;

registros.FieldByName('dsc_ddd').AsString := ddd;

registros.FieldByName('dsc_telefone').AsString := telefone;

registros.FieldByName('dsc_email').AsString := email;

registros.FieldByName('dta_cadastro').AsDateTime := data_cadastro;

registros.FieldByName('dta_atualizacao').AsDateTime:= data_atualizacao;

end;

procedure TDAOCliente.TabelaParaClasse();

Page 70: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

69

begin

if registros.Active and (registros.RecordCount > 0) then

begin

id := registros.FieldByName(campoId).AsInteger;

cod_externo := registros.FieldByName('cod_externo').AsString;

fantasia := registros.FieldByName('dsc_fantasia').AsString;

razao_social:= registros.FieldByName('dsc_razao').AsString;

if registros.FieldByName('flg_tipo_pessoa').AsString = 'F' then

tip_pessoa:= 0

else

tip_pessoa:= 1;

cnpj_cpf := registros.FieldByName('dsc_cnpj_cpf').AsString;

ie_rg := registros.FieldByName('dsc_ie_rg').AsString;

contato := registros.FieldByName('dsc_contato').AsString;

obs := registros.FieldByName('dsc_obs').AsString;

inativo := registros.FieldByName('flg_inativo').AsString = 'S';

sem_credito := registros.FieldByName('flg_credito').AsString = 'S';

cep := registros.FieldByName('dsc_cep').AsString;

endereco := registros.FieldByName('dsc_endereco').AsString;

bairro := registros.FieldByName('dsc_bairro').AsString;

cidade := registros.FieldByName('dsc_cidade').AsString;

uf := registros.FieldByName('dsc_uf').AsString;

ddd := registros.FieldByName('dsc_ddd').AsString;

telefone := registros.FieldByName('dsc_telefone').AsString;

email := registros.FieldByName('dsc_email').AsString;

data_cadastro := registros.FieldByName('dta_cadastro').AsDateTime;

data_atualizacao := registros.FieldByName('dta_atualizacao').AsDateTime;

end;

end;

function TDAOGeral.MontaSQL(Tipo: TpSQL): String;

begin

case Tipo of

tsqlConsultar: Result := 'SELECT ' + buscaCampos() + ' FROM ' + nomeTabela +

buscaCondicoes();

tsqlInserir: Result := 'INSERT INTO ' + nomeTabela + '(' + buscaCampos() + ') VALUES

(' + buscaValores() + ')';

tsqlAlterar: Result := 'UPDATE ' + nomeTabela + ' SET ' + buscaCamposComValores()

+ ' WHERE ' + buscaCondicoes();

tsqlExcluir: Result := 'DELETE FROM ' + nomeTabela + ' WHERE ' +

buscaCondicoes();

end;

end;

function TDAOGeral.BuscaDados(SQL: String): TZQuery;

var tempQuery: TZQuery;

begin

tempQuery := TZQuery.Create(self);

tempQuery.Connection := Conexao;

tempQuery.SQL.Text := SQL;

tempQuery.Open;

Page 71: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

70

Result := tempQuery;

end;

function TDAOGeral.buscaValores(): String;

var i: Integer;

begin

for i := 0 to registros.Fields.Count -1 do

begin

try

if i = 0 then

Result := '''' + registros.FieldByName(registros.Fields[i].FieldName).Value + ''''

else

Result := ', ''' + registros.FieldByName(registros.Fields[i].FieldName).Value + '''';

except

Erro('Quantidade de campos diferente da quantidade de valores!');

end;

end;

end;

function TDAOGeral.buscaCamposComValores(): String;

var i: Integer;

begin

for i := 0 to registros.Fields.Count -1 do

begin

try

if i = 0 then

Result := registros.Fields[i].FieldName + ' = ''' +

registros.FieldByName(registros.Fields[i].FieldName).Value + ''''

else

Result := ', ' + registros.Fields[i].FieldName + ' = ''' +

registros.FieldByName(registros.Fields[i].FieldName).Value + '''';

except

Erro('Quantidade de campos diferente da quantidade de valores!');

end;

end;

end;

function TDAOGeral.buscaCondicoes(): String;

var i: Integer;

begin

if filtros.Count > 0 then Result := ' WHERE ';

for i := 0 to filtros.Count -1 do

begin

if i = 0 then

Result := Result + filtros[i]

else

Result := Result + ' AND ' + filtros[i];

end;

end;

procedure TDAOGeral.ExecutaComando(SQL: String);

Page 72: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

71

var tempQuery: TZQuery;

begin

tempQuery := TZQuery.Create(self);

try

tempQuery.Connection := Conexao;

tempQuery.SQL.Text := SQL;

tempQuery.ExecSQL;

finally

FreeAndNil(tempQuery);

end;

end;

Quadro 20 – Classe DAOGeral – Cliente e busca de dados

Page 73: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

72

APÊNDICE B – Script para geração do banco de dados Firebird

No quadro 21 é apresentado o script do banco de dados utilizado para gerar o banco de

dados para o banco Firebird da tabela de clientes.

---- TABELA DE CLIENTES

CREATE TABLE CLIENTES (

COD_CLIENTE integer NOT NULL auto,

COD_CLIENTE_EXTERNO char(10),

FANTASIA varchar(30) NOT NULL,

RAZAO_SOCIAL varchar(90) NOT NULL,

FLG_TIPO_PESSOA char(1) NOT NULL,

CNPJ_CPF varchar(19) NOT NULL,

IE_RG varchar(19) NOT NULL,

CONTATO varchar(50),

OBS varchar(100),

FLG_INATIVO char(1),

FLG_CREDITO char(1),

CEP char(9),

ENDERECO varchar(90),

BAIRRO varchar(30),

CIDADE varchar(40),

UF char(2),

DDD char(3),

TELEFONE char(10),

EMAIL varchar(60),

DTA_CADASTRO date NOT NULL,

DTA_ATUALIZACAO date NOT NULL

)

;

Quadro 21 – Script de banco de dados - tabela de clientes

No quadro 22 é apresentado o script do banco de dados utilizado para gerar o banco de

dados para o banco Firebird da tabela de condição de pagamento e parcelas.

---- TABELA DE CONDICAO DE PAGAMENTO

CREATE TABLE COND_PGTO (

COD_PGTO char(3),

DSC_COND_PGTO varchar (40),

DESC_COND_PGTO varchar(40)

)

;

---- TABELA DAS PARCELAS DAS CONDICOES DE PAGAMENTO

CREATE TABLE PARCELAS_COND_PGTO(

ID_COND_PGTO char(3),

COD_PARCELA char(2),

DIAS_PARCELA integer NOT NULL,

PORC_PARCELA numeric (3,2)

)

;

Quadro 22 – Script de banco de dados - tabela de condição de pagamento

No quadro 23 é apresentado o script do banco de dados utilizado para gerar o banco de

Page 74: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

73

dados para o banco Firebird da tabela de pedidos e itens pedidos.

--- TABELA DE PEDIDOS

CREATE TABLE PEDIDOS (

COD_PEDIDO integer NOT NULL auto,

DTA_EMISSAO char(10) NOT NULL,

DTA_ENTREGA char(10) NOT NULL,

STATUS_PEDIDO varchar(20),

PEDIDO_EXTERNO char(10),

PEDIDO_CLIENTE char(10),

PER_COMISSAO numeric (8,2),

FLG_APROVADO char(1),

PERC_DESCONTO numeric (8,2),

ID_CLIENTE integer NOT NULL,

ID_TRANSPORTADORA char(6) NOT NULL,

ID_COND_PGTOS char(3) NOT NULL,

ID_TABELA_PRECO char(3) NOT NULL,

DTA_CADASTRO char(10) NOT NULL,

DTA_ATUALIZACAO char(10) NOT NULL

)

;

--- TABELA DOS ITENS DE PEDIDO

CREATE TABLE ITENS_PEDIDOS (

ID_PEDIDO integer NOT NULL,

COD_ITEM_PEDIDO integer NOT NULL,

ID_PRODUTO char(10) NOT NULL,

QTD_ITEM_PEDIDO integer NOT NULL,

VLR_ITEM_PEDIDO numeric (8,2),

PRECO numeric (8,2) NOT NULL,

PER_DESCONTO numeric (8,2)

)

;

Quadro 23 – Script de banco de dados - tabela de pedidos

No quadro 24 é apresentado o script do banco de dados utilizado para gerar o banco de

dados para o banco Firebird da tabela de faturamento.

Page 75: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

74

---- TABELA DE FATURAMENTO

CREATE TABLE FATURAMENTOS (

COD_NF integer NOT NULL auto,

NRO_NF char(10) NOT NULL,

VLR_NF numeric (8,2) NOT NULL,

DTA_EMISSAO char(10) NOT NULL,

ID_TRANSPORTADORA varchar(50),

PESO_BRUTO numeric (8,2),

PESO_LIQUIDO numeric (8,2),

PER_COMISSAO numeric (8,2),

FRETE char(3),

ID_CLIENTE integer

ID_PEDIDO integer NOT NULL

)

;

--- TABELA DOS ITENS DO FATURAMENTO

CREATE TABLE FATURAMENTOS_ITEM (

COD_FATURAMENTOS_ITEM integer NOT NULL auto,

ID_NF integer NOT NULL ,

ID_NRO_NF char(10) NOT NULL,

NUM_ITEM integer NOT NULL,

PRODUTO char(10) NOT NULL,

PRECO numeric (8,2) NOT NULL,

QTD_ITEM integer NOT NULL,

VALOR_ITEM numeric (8,2) NOT NULL,

ID_COD_PEDIDO integer NOT NULL,

ID_ITEM_PEDIDO integer NOT NULL

)

;

Quadro 24 – Script de banco de dados - tabela de faturamento

No quadro 25 é apresentado o script do banco de dados utilizado para gerar o banco de

dados para o banco Firebird da tabela de clientes.

--- TABELA DE TITULOS

CREATE TABLE TITULOS (

ID_NF integer NOT NULL,

NRO_FATURA char(10) NOT NULL,

NRO_PARCELA char(2) NOT NULL,

VLR_FATURA numeric (8,2) NOT NULL,

DTA_EMISSAO char(10) NOT NULL,

VLR_RECEBIDO numeric (8,2),

DTA_VENCIMENTO date,

ID_CLIENTE integer NOT NULL

)

;

Quadro 25 – Script de banco de dados - tabela de titulos

No quadro 26 é apresentado o script do banco de dados utilizado para gerar o banco de

dados para o banco Firebird da tabela de comissões.

Page 76: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

75

--- TABELA DE COMISSAO

CREATE TABLE COMISSOES (

COD_COMISSAO integer NOT NULL,

ID_NF integer NOT NULL,

DTA_COMISSAO char(10) NOT NULL,

VLR_COMISSAO numeric (8,2) NOT NULL,

ID_CLIENTE integer NOT NULL

)

;

Quadro 26 – Script de banco de dados - tabela de comissão

No quadro 27 é apresentado o script do banco de dados utilizado para gerar o banco de

dados para o banco Firebird da tabela de produtos e tabela de preços.

--- TABELA DE PREÇO

CREATE TABLE TABELA_PRECOS (

COD_TABELA_PRECO Char(3) NOT NULL,

DSC_TABELA_PRECO varchar(50),

)

;

--- TABELA DE PRODUTOS

CREATE TABLE PRODUTOS (

COD_PRODUTO char(10) NOT NULL,

DSC_PRODUTO varchar(50) NOT NULL,

INATIVO char(1),

)

;

--- TABELA DE PRECO_PRODUTO

CREATE TABLE PRODUTOS_PRECOS(

COD_TABELA_PRECO Char(3) NOT NULL,

COD_PRODUTO char(10) NOT NULL,

VLR_PRECO_PRODUTO numeric(8,2)

)

;

Quadro 27 – Script de banco de dados - tabela de produtos e tabela de preços

No quadro 28 é apresentado o script do banco de dados utilizado para gerar o banco de

dados para o banco Firebird da tabela de transportadora.

--- TABELA DE TRANSPORTADORA

CREATE TABLE TRANSPORTADORAS (

COD_TRANSPORTADORA char(5),

NOM_TRANSPORTADORA varchar(50),

DDD char(3),

FONE char (10),

EMAIL char (60)

)

;

Quadro 28 – Script de banco de dados - tabela de transportadora

No quadro 29 é apresentado o script do banco de dados utilizado para gerar o banco de

dados para o banco Firebird da tabela de BSC.

Page 77: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

76

--- TABELA DE BALANCED SCORECARD

CREATE TABLE BSC (

COD_BSC integer NOT NULL auto,

COMANDO_SQL varchar(100),

MINIMO integer NOT NULL,

META integer NOT NULL,

OBJETIVO varchar(100),

INDICADOR varchar(100),

DSC_META varchar(100),

ACAO_PROSPECT_A varchar(100),

ACAO_PROSPECT_B varchar(100),

ACAO_PROSPECT_C varchar(100),

NOTA_ACOMPANHAMENTO varchar (100),

DTA_CADASTRO date NOT NULL,

DTA_ATUALIZACAO date NOT NULL

)

;

Quadro 29 – Script de banco de dados - tabela de BSC.

No quadro 30 é apresentado o script do banco de dados utilizado para gerar o banco de

dados para o banco Firebird das chaves primárias.

Page 78: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

77

--------- CRIAÇÃO DAS CHAVES PRIMARIAS

ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES

PRIMARY KEY (COD_CLIENTE)

;

ALTER TABLE COND_PGTO ADD CONSTRAINT PK_COND_PGTO

PRIMARY KEY (COD_PGTO)

;

ALTER TABLE PARCELAS_COND_PGTO ADD CONSTRAINT PK_PARCELAS_COND_PGTO

PRIMARY KEY (ID_COND_PGTO, COD_PARCELA)

;

ALTER TABLE PEDIDOS ADD CONSTRAINT PK_PEDIDOS

PRIMARY KEY (COD_PEDIDO)

;

ALTER TABLE ITENS_PEDIDO ADD CONSTRAINT PK_ITENS_PEDIDO

PRIMARY KEY (ID_PEDIDO, COD_ITEM_PEDIDO)

;

ALTER TABLE FATURAMENTO ADD CONSTRAINT PK_FATURAMENTO

PRIMARY KEY (COD_NF)

;

ALTER TABLE FATURAMENTO_ITEM ADD CONSTRAINT PK_FATURAMENTO_ITEM

PRIMARY KEY (ID_NF, NUM_ITEM)

;

ALTER TABLE TITULOS ADD CONSTRAINT PK_TITULOS

PRIMARY KEY (COD_NF)

;

ALTER TABLE COMISSAO ADD CONSTRAINT PK_COMISSAO

PRIMARY KEY (ID_NF)

;

ALTER TABLE PRODUTOS ADD CONSTRAINT PK_PRODUTOS

PRIMARY KEY (COD_PRODUTO)

;

ALTER TABLE TABELA_PRECO ADD CONSTRAINT PK_TABELA_PRECO

PRIMARY KEY (COD_TABELA_PRECO)

;

ALTER TABLE PRECO_PRODUTO ADD CONSTRAINT PK_PRECO_PRODUTO

PRIMARY KEY (COD_TABELA_PRECO, COD_PRODUTO)

;

ALTER TABLE TRANSPORTADORA ADD CONSTRAINT PK_TRANSPORTADORA

PRIMARY KEY (COD_TRANSPORTADORA)

;

ALTER TABLE BSC ADD CONSTRAINT PK_BSC

PRIMARY KEY (COD_BSC)

;

Quadro 30 – Script de banco de dados - chaves primárias

Page 79: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

78

APÊNDICE C – Arquivos XML de clientes e pedidos

No quadro 31 é apresentado o arquivo XML de clientes que é exportado ou importado

pelo modulo retaguarda.

<?xml version="1.0"?>

<cadastro>

<cliente id="4">

<cod_externo>100234</cod_externo>

<dsc_fantasia>A MODA</dsc_fantasia>

<dsc_razao>ELIANE CRISTINA THOMAZINI BORSOI ME</dsc_razao>

<flg_tipo_pessoa>J</flg_tipo_pessoa>

<dsc_cnpj_cpf>03.500.213/0001-70</dsc_cnpj_cpf>

<dsc_ie_rg>082.017.557</dsc_ie_rg>

<dsc_contato>PEDRO</dsc_contato>

<dsc_obs></dsc_obs>

<flg_inativo>N</flg_inativo>

<flg_credito>N</flg_credito>

<dsc_cep>29850-000</dsc_cep>

<dsc_endereco>AV. SENADOR EURICO REZENDE, 924-C</dsc_endereco>

<dsc_bairro>CENTRO</dsc_bairro>

<dsc_cidade>BOA ESPERANCA</dsc_cidade>

<dsc_uf>ES</dsc_uf>

<dsc_ddd>027</dsc_ddd>

<dsc_telefone>3768-1044</dsc_telefone>

<dsc_email>[email protected]</dsc_email>

<dta_cadastro>2009-02-11</dta_cadastro>

<dta_atualizacao>2009-02-11</dta_atualizacao>

</cliente>

</cadastro>

Quadro 31 – Arquivo XML de clientes

No quadro 32 é apresentado o arquivo XML de pedidos que é exportado ou importado

pelo modulo retaguarda.

<?xml version="1.0"?>

<cadastro>

<pedido id="1">

<dta_emissao>2009-09-20</dta_emissao>

<dta_entrega>2009-01-10</dta_entrega>

<flg_status_pedido> </flg_status_pedido>

<cod_pedido_externo>000234</cod_pedido_externo>

<vlr_perc_comissao>10</vlr_perc_comissao>

<flg_aprovado>N</flg_aprovado>

<vlr_perc_desconto>0</vlr_perc_desconto>

<id_cliente>3</id_cliente>

<id_transportadora>001</id_transportadora>

<id_cond_pgto>002</id_cond_pgto>

<id_tabela_preco>001</id_tabela_preco>

<dta_cadastro>2008-10-13</dta_cadastro>

<dta_atualizacao>2008-11-20</dta_atualizacao>

Page 80: SISTEMA DE PEDIDOS PARA REPRESENTANTES DE …campeche.inf.furb.br/tccs/2008-II/TCC2008-2-07-VF-DionesASouza.pdf · Windows and Linux using the tools Open Source Lazarus / Free Pascal.

79

<itenspedido id_pedido="1">

<id_produto>01.01.0001</id_produto>

<cod_pedido_item>1</cod_pedido_item>

<qtd_item_pedido>999</qtd_item_pedido>

<vlr_item_pedido>260</vlr_item_pedido>

<vlr_preco>20</vlr_preco>

<vlr_perc_desconto>0</vlr_perc_desconto>

</itenspedido>

<itenspedido id_pedido="2">

<id_produto>03.01.0001</id_produto>

<cod_pedido_item>2</cod_pedido_item>

<qtd_item_pedido>888</qtd_item_pedido>

<vlr_item_pedido>900</vlr_item_pedido>

<vlr_preco>50</vlr_preco>

<vlr_perc_desconto>0</vlr_perc_desconto>

</itenspedido>

</pedido>

</cadastro>

Quadro 32 – Arquivo XML de pedidos