desenvolvimento de um mÓdulo de planejamento de...

144
UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE COMPRAS APLICANDO O CONCEITO DE OPEN TO BUY FABRÍCIO DE SOUZA BLUMENAU 2009 2009/1-05

Upload: vuthuan

Post on 21-Jan-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

UNIVERSIDADE REGIONAL DE BLUMENAU

CENTRO DE CIÊNCIAS EXATAS E NATURAIS

CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO

DESENVOLVIMENTO DE UM MÓDULO DE

PLANEJAMENTO DE COMPRAS APLICANDO O

CONCEITO DE OPEN TO BUY

FABRÍCIO DE SOUZA

BLUMENAU 2009

2009/1-05

Page 2: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

FABRÍCIO DE SOUZA

DESENVOLVIMENTO DE UM MÓDULO DE

PLANEJAMENTO DE COMPRAS APLICANDO O

CONCEITO DE OPEN TO BUY

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 Sistemas de Informação— Bacharelado.

Prof. Wilson Pedro Carli, Mestre - Orientador

BLUMENAU 2009

2009/1-05

Page 3: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

DESENVOLVIMENTO DE UM MÓDULO DE

PLANEJAMENTO DE COMPRAS APLICANDO O

CONCEITO DE OPEN TO BUY

Por

FABRÍCIO 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. Wilson Pedro Carli, Mestre – Orientador, FURB

______________________________________________________ Membro: Prof. Alexander Roberto Valdameri, Mestre – FURB

______________________________________________________ Membro: Prof. Everaldo Artur Grahl, Mestre – FURB

Blumenau, 09 de julho de 2009

Page 4: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

Dedico este trabalho à minha família, pelo apoio irrestrito em todos os momentos de minha vida, e a todos que, de alguma forma, contribuíram para a conclusão de mais esta etapa.

Page 5: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

AGRADECIMENTOS

Agradeço a Deus pela vida, por estar presente em todos os momentos, e por ter me

proporcionado saúde e inteligência para conclusão deste trabalho.

Ao meu pai Jair, minha mãe Lidia e à minha irmã Elaís, pelo imenso amor e atenção

com que sempre me trataram, e pela paciência que tiveram durante o último ano de conclusão

deste curso.

Agradeço também, e muito, pela determinação de meus pais, que ao longo da vida,

com muito esforço, proporcionaram a base da minha educação e personalidade.

À minha namorada Cintya Sayuri Abiko, por todo o amor dedicado à minha pessoa,

pelo apoio e incentivo, e também pelos incontáveis dias que deixei de estar ao seu lado para

que este trabalho pudesse ser concretizado.

Aos meus amigos e colegas de turma que me ajudaram durante os anos que passamos

juntos.

Ao professor e amigo Marcos Rogério Cardoso, por ter sido meu orientador na

primeira etapa da elaboração deste trabalho, e por ter acreditado e apoiado esta idéia.

Ao meu orientador, professor Wilson Pedro Carli, pela amizade, confiança e

continuidade dada a este trabalho.

Aos demais professores que estiveram presentes durante esta caminha, pelo grande

conhecimento compartilhado.

Aos meus companheiros de desenvolvimento do módulo Comercial do Sistema

Sapiens, em especial, o supervisor deste trabalho, Sr. Fernando da Silva, por ter acreditado e

dado todo o apoio e conhecimento necessário durante a sua realização.

Page 6: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

Aos meus parceiros do módulo de Compras, Jonas Ivan de Abreu e Maikon Frech, por

proporcionarem um grande conhecimento e auxílio, os quais foram muito importantes para a

concretização deste trabalho.

Ao gerente de sistemas da Senior Sistemas Corporativos Ltda, Sr. Agnaldo Montibeler,

por permitir a utilização do Sistema Sapiens e toda a tecnologia da Senior necessária para a

realização deste trabalho.

Aos meus amigos de trabalho, Thiago Wilvert e Mabel Oackley Molina, pela ajuda e

incentivo.

A todos os demais colegas da Senior Sistemas Corporativos, que embora não

mencionados nominalmente, sabem o quão importante foram os auxílios recebidos.

À Senior Sistemas Corporativos como um todo, pelos desafios vividos diariamente e

pelo conhecimento por eles proporcionados.

À minha amiga Giovana Santos, pela ajuda e suas valiosas dicas.

Aos autores dos livros que li durante a realização deste trabalho, certamente seus

conhecimentos foram de grande valia.

E a todas as outras pessoas que embora não citadas nominalmente, contribuíram para a

realização deste trabalho.

A todos vocês, o meu sincero muito obrigado!

Page 7: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

“O mal que os homens fazem vive para sempre.”

The evil that men do – Iron Maiden

Page 8: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

RESUMO

O presente trabalho descreve os procedimentos utilizados na elaboração de um sistema de planejamento de compras para a área comercial de uma empresa, aplicando o conceito de Open to Buy no Sistema de Gestão Empresarial Sapiens da empresa Senior Sistemas Corporativos Ltda. A aplicação do estudo acontece em forma de desenvolvimento de um módulo de planejamento de compras, onde os gestores poderão planejar suas compras baseando-se em um orçamento financeiro para os materiais comprados, a ser administrado em um determinado período.

Palavras-chave: Compras. Planejamento de compras. Open to buy.

Page 9: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

ABSTRACT

This paper describes the procedures used to develop a purchasing planning system for the commercial area of a company, applying the Open to Buy concept in Sapiens E.R.P. (Enterprise Resource Planning) of Senior Corporate Systems Ltda. The application of this study case is in how to develop a planning purchases module, where the administrators can plan their purchases based on a financial budget for materials purchased, to be administered in a certain period.

Key Words: Purchases, Purchases Planning, Open to buy.

Page 10: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

LISTA DE ILUSTRAÇÕES

Quadro 1 – Evolução da Administração de Materiais .............................................................. 20

Quadro 2 – Comparativo entre as atividades da área de compras no passado e no presente ... 21

Quadro 3 – Meta de Compras do mês ...................................................................................... 29

Quadro 4 – Exemplo simplificado da lógica do orçamento de compras .................................. 29

Quadro 5 – Cálculo do Open to Buy para o mês corrente ........................................................ 31

Quadro 6 – Cálculo do Open to Buy dos próximos meses ....................................................... 31

Quadro 7 – Exemplo de controle do Open to Buy .................................................................... 32

Figura 1 – Divisão dos módulos existentes no Sistema Sapiens .............................................. 36

Figura 2 – Menu principal do Sistema Sapiens ........................................................................ 37

Figura 3 – Fluxograma do sub-módulo compras do Sistema Sapiens ...................................... 40

Figura 4 – Exemplo de geração de Nota Fiscal de Entrada via Ordem de Compra no Sistema

Sapiens ................................................................................................................... 42

Figura 5 – Fluxograma do sub-módulo vendas do Sistema Sapiens ........................................ 43

Figura 6 – Fluxograma do sub-módulo estoques do Sistema Sapiens ..................................... 45

Figura 7 – Planejamento integrado de mercadorias e sortimento na solução SAP Retail MAP

............................................................................................................................... 47

Quadro 8 – Requisitos funcionais ............................................................................................. 51

Quadro 9 – Requisitos não funcionais ...................................................................................... 51

Figura 8 – Diagrama de casos de uso gerente de compras ....................................................... 52

Figura 9 – Diagrama de casos de uso comprador ..................................................................... 54

Figura 10 – Pacotes do módulo de planejamento de compras .................................................. 56

Figura 11 – Pacote ObjetosPlanejamento ..................................................................... 57

Figura 12 – Pacote InterfacesPlanejamento .............................................................. 59

Figura 13 – Pacote AuxiliaresPlanejamento .............................................................. 61

Figura 14 – Diagrama de estados da classe TPlanejamento .............................................. 62

Figura 15 – Diagrama de atividades do planejamento de compras .......................................... 64

Figura 16 – Diagrama entidade relacionamento ....................................................................... 66

Figura 17 – Interface da ferramenta CBDS .............................................................................. 68

Figura 18 – Interface do gerador de relatórios do Sistema Sapiens ......................................... 69

Figura 19 – Menu do módulo de planejamento de compras..................................................... 70

Figura 20 – Tela de seleção dos relatórios gerais do módulo Comercial ................................. 71

Page 11: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

Figura 21 – Tela de permissões de acesso do Sistema Sapiens ................................................ 71

Figura 22 – Tela de cadastro de planejamentos de compras .................................................... 73

Figura 23 – Exemplo de hierarquia de produtos existente no Sistema Sapiens ....................... 75

Figura 24 – Exemplo de hierarquia de produtos utilizando agrupamento de produtos ............ 75

Figura 25 – Mensagem de aviso para escolha correta do início de uma quinzena ................... 76

Figura 26 – Mensagem de confirmação para aplicação correta da data final da quinzena ...... 76

Figura 27 – Mensagem de advertência para a não utilização de período passado ................... 77

Figura 28 – Exemplo de dados do cabeçalho já informados em um planejamento.................. 77

Figura 29 – Tela de cálculo do OTB para período corrente ..................................................... 78

Figura 30 – Tela de cálculo do OTB para período futuro ........................................................ 79

Quadro 10 – Campos da grid de “Itens do Planejamento” ....................................................... 81

Figura 31 – Tela de base para geração do planejamento de compras....................................... 81

Figura 32 – Exemplo de histórico de compras ......................................................................... 82

Figura 33 – Exemplo de histórico utilizando tipo de período quinzenal .................................. 84

Figura 34 – Exemplo de histórico utilizando tipo de período mensal ...................................... 84

Figura 35 – Consulta de produto base para planejamento via tela de pesquisa de registro ...... 85

Figura 36 – Itens do planejamento após utilização da base para geração ................................ 86

Figura 37 – Valores e saldos dos itens de planejamento .......................................................... 86

Figura 38 – Tela de cadastro de ordens de compra .................................................................. 88

Figura 39 – Aba de Produtos do cadastro de ordens de compra............................................... 88

Figura 40 – Exemplo de aviso de produto não planejado ........................................................ 89

Figura 41 – Exemplo de bloqueio de compra de produto não planejado ................................. 89

Figura 42 – Exemplo de aviso de produto com condição de pagamento não planejada .......... 89

Figura 43 – Exemplo de bloqueio de compra de produto com condição de pagamento não

planejada ................................................................................................................ 90

Figura 44 – Item de produto digitado na ordem de compra ..................................................... 90

Figura 45 – Relacionamento de um item de planejamento com item de ordem de compra ..... 91

Figura 46 – Demais informações disponibilizadas através do relacionamento ........................ 91

Figura 47 – Informações atualizadas no planejamento de compras ......................................... 92

Figura 48 – Exemplo de falta de saldo financeiro para o produto planejado ........................... 93

Figura 49 – Exemplo de falta de saldo físico para o produto planejado .................................. 93

Figura 50 – Exemplo de falta de saldo financeiro para a origem de produto planejada .......... 93

Figura 51 – Consistência efetuada na alteração de quantidade de um item de planejamento já

utilizado ................................................................................................................. 94

Page 12: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

Figura 52 – Consistência efetuada na alteração de valor de um item de planejamento já

utilizado ................................................................................................................. 94

Figura 53 – Consistência efetuada na tentativa de inativação de um planejamento de compras

já utilizado ............................................................................................................. 94

Figura 54 – Consistência efetuada na tentativa de exclusão de um planejamento de compras já

utilizado ................................................................................................................. 95

Figura 55 – Consistência efetuada na tentativa de alteração do código de origem de um item

utilizado ................................................................................................................. 95

Figura 56 – Consistência efetuada na tentativa de exclusão de um item já utilizado ............... 95

Figura 57 – Consistência efetuada na tentativa de ativação de um planejamento de compras já

finalizado ............................................................................................................... 95

Figura 58 – Tela de consulta de ordens de compra da nota fiscal de entrada .......................... 96

Figura 59 – Aba de Produtos do cadastro de notas fiscais de entrada ...................................... 97

Figura 60 – Tela de consulta de planejamentos de compras .................................................... 98

Figura 61 – Tela de consulta de quantidades e valores já utilizados (NFEs) ........................... 99

Figura 62 – Tela de consulta de saldos disponíveis para compras ......................................... 100

Figura 63 – Demais informações da consulta de saldos disponíveis para compras ............... 101

Figura 64 – Tela de consulta de desempenho com relação às vendas .................................... 103

Figura 65 – Demais informações da grid de “Itens Detalhados” da consulta de desempenho

com relação às vendas ......................................................................................... 104

Figura 66 – Relatório resumido de planejamentos de compras .............................................. 105

Figura 67 – Relatório detalhado de planejamentos de compras ............................................. 106

Quadro 11 – Tabela EMPRESA ............................................................................................. 115

Quadro 12 – Tabela FILIAL ................................................................................................... 115

Quadro 13 – Tabela PLANEJCOMPRAS .............................................................................. 116

Quadro 14 – Tabela ITENSPLANEJAMENTO .................................................................... 116

Quadro 15 – Tabela ORDEMCOMPRA ................................................................................ 117

Quadro 16 – Tabela ITENSPROOC ....................................................................................... 117

Quadro 17 – Tabela NFENTRADA ....................................................................................... 117

Quadro 18 – Tabela ITENSPRONFE ..................................................................................... 118

Quadro 19 – Código fonte dos métodos mais relevantes da classe TPlanejamento ............... 124

Quadro 20 – Código fonte dos métodos mais relevantes da classe TItemPlanejamento ....... 125

Quadro 21 – Código fonte dos métodos mais relevantes da classe Frm_CadastraPlanejamento

............................................................................................................................. 127

Page 13: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

Quadro 22 – Código fonte do método Mostrar da classe Frm_BasePlanejamento ................ 144

Page 14: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

LISTA DE SIGLAS

CBDS – Central de Banco de Dados Senior

CTRC – Conhecimento de Transporte Rodoviário de Cargas

EA – Enterprise Architect

ECF – Emissor de Cupom Fiscal

ERP – Enterprise Resource Planning

IDV – Instituto para Desenvolvimento do Varejo

NFE – Nota Fiscal de Entrada

OC – Ordem de Compra

OTB – Open to Buy

PDV – Ponto de Venda

RF – Requisitos Funcionais

RH – Recursos Humanos

RNF – Requisitos Não Funcionais

SEBRAE – Serviço Brasileiro de Apoio às Micro e Pequenas Empresas

SGBD – Sistema Gerenciador de Banco de Dados

SGQ – Sistema de Gestão da Qualidade

SIG – Sistema de Informação Gerencial

SQL – Structured Query Language

SVCL – Senior Visual Component Library

TEF – Transferência Eletrônica de Fundos

UML – Unified Modeling Language

Page 15: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

SUMÁRIO

1 INTRODUÇÃO .................................................................................................................. 17

1.1 OBJETIVOS DO TRABALHO ........................................................................................ 18

1.2 ESTRUTURA DO TRABALHO ...................................................................................... 18

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

2.1 ADMINISTRAÇÃO DE MATERIAIS ............................................................................ 19

2.2 COMPRAS NO CONTEXTO EMPRESARIAL .............................................................. 20

2.2.1 Varejo: Compras no segmento comercial ....................................................................... 23

2.3 PLANEJAMENTO DE COMPRAS ................................................................................. 27

2.3.1 Organização financeira de compras x Objetivos da alta administração .......................... 27

2.3.2 Orçamento de compras .................................................................................................... 28

2.3.3 Open to Buy ..................................................................................................................... 30

2.3.4 Planejamento unitário das compras ................................................................................. 32

2.3.5 Como comprar bem utilizando o planejamento de compras na visão do SEBRAE ....... 33

2.4 SISTEMA SAPIENS ......................................................................................................... 35

2.4.1 Módulo Comercial do Sistema Sapiens .......................................................................... 38

2.4.1.1 Compras ........................................................................................................................ 39

2.4.1.1.1 Ordem de Compra (OC) ........................................................................................... 40

2.4.1.1.2 Nota Fiscal de Entrada (NFE) .................................................................................. 41

2.4.1.2 Vendas .......................................................................................................................... 42

2.4.1.3 Estoques ........................................................................................................................ 44

2.4.1.4 Distribuição ................................................................................................................... 45

2.4.1.5 Transporte ..................................................................................................................... 46

2.5 TRABALHOS CORRELATOS ........................................................................................ 47

3 DESENVOLVIMENTO DO MÓDULO DE PLANEJAMENTO DE COMPRA S..... 49

3.1 REQUISITOS .................................................................................................................... 50

3.1.1 Requisitos funcionais ...................................................................................................... 50

3.1.2 Requisitos não funcionais ............................................................................................... 51

3.2 ESPECIFICAÇÃO ............................................................................................................ 51

3.2.1 Diagramas de Casos de Uso ............................................................................................ 52

3.2.1.1 Diagrama de Casos de Uso do Gerente de Compras .................................................... 52

3.2.1.2 Diagrama de Casos de Uso do Comprador ................................................................... 53

Page 16: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

3.2.2 Diagramas de Classes ...................................................................................................... 55

3.2.2.1 Pacote ObjetosPlanejamento ............................................................................. 56

3.2.2.2 Pacote InterfacesPlanejamento ...................................................................... 58

3.2.2.3 Pacote AuxiliaresPlanejamento ...................................................................... 60

3.2.3 Diagrama de Estados ....................................................................................................... 62

3.2.4 Diagrama de Atividades .................................................................................................. 63

3.2.5 Diagrama Entidade Relacionamento ............................................................................... 65

3.3 IMPLEMENTAÇÃO ........................................................................................................ 66

3.3.1 Técnicas e ferramentas utilizadas.................................................................................... 67

3.3.1.1 Central de Banco de Dados Senior (CBDS) ................................................................. 68

3.3.1.2 Gerador de Relatórios Sapiens ...................................................................................... 69

3.3.2 Operacionalidade da implementação .............................................................................. 69

3.3.2.1 Tela de “Cadastro de Planejamentos de Compras” ...................................................... 72

3.3.2.2 Processo de abatimento de saldos via tela de “Cadastro de Ordens de Compra” ......... 87

3.3.2.3 Processo de relacionamento Ordem de Compra – Nota Fiscal de Entrada .................. 96

3.3.2.4 Tela de “Consulta de Planejamentos de Compras” ...................................................... 97

3.3.2.5 Tela de “Consulta de Quantidades e Valores já Utilizados (NFEs)” ............................ 98

3.3.2.6 Tela de “Consulta de Saldos Disponíveis para Compras” ............................................ 99

3.3.2.7 Tela de “Consulta de Desempenho com Relação às Vendas” .................................... 102

3.3.2.8 Relatório “Planejamento de Compras - Resumido” ................................................... 105

3.3.2.9 Relatório “Planejamento de Compras - Detalhado” ................................................... 106

3.4 RESULTADOS E DISCUSSÃO .................................................................................... 107

4 CONCLUSÕES ................................................................................................................ 109

4.1 EXTENSÕES .................................................................................................................. 110

REFERÊNCIAS BIBLIOGRÁFICAS ............................................................................... 111

APÊNDICE A – Definições das tabelas e campos envolvidos no desenvolvimento do

módulo de planejamento de compras ................................................................................. 115

APÊNDICE B – Métodos de maior relevância de algumas das classes utilizadas no

desenvolvimento do módulo de planejamento de compras ............................................... 119

Page 17: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

17

1 INTRODUÇÃO

Segundo Parente (2000), as atividades de planejamento são essenciais à sobrevivência

de qualquer empresa onde servem, principalmente, para antecipar e organizar as atividades a

fim de alcançar um objetivo. O planejamento estratégico é de extrema importância, visto que

o mesmo é responsável por envolver a determinação de intenções e objetivos de longo prazo,

além do planejamento tático, que envolve as atividades de marketing de curto prazo.

Para atingir os objetivos de lucro e crescimento das empresas, existem várias etapas e

processos que devem ser seguidos a fim de obter resultados positivos. Neste contexto, um dos

processos, talvez o mais importante, é o planejamento de compras, pois, segundo Grazziotin

(2003, p. 23), comprar bem já é a metade da venda, ou seja, no ato da compra já se inicia a

venda. Para o autor, quando se assina um pedido já se define a metade do lucro, portanto, o

lucro está na compra e a venda é uma decorrência de uma boa compra.

No Brasil, assim como em grandes empresas internacionais, também existem

problemas com relação à área de compras onde, de acordo com Dias e Costa (2006, p. 29),

muitos profissionais da área acabam sendo forçados a atuar na fase de execução dos trabalhos,

deixando em segundo plano ou, pior, ignorando a importante fase de planejamento.

Segundo as definições de missão e objetivos da área de compras especificadas por

Coronado (2001), Costa (2002) e Dias e Costa (2006), pode-se definir que esta área tem como

principais objetivos: comprar a quantidade de material e mercadoria correta, bem como

também adquirir serviços, no momento certo, da fonte certa, com a qualidade desejada, e ao

menor custo possível.

Diante do exposto, neste trabalho desenvolveu-se um módulo de planejamento de

compras na área comercial de uma empresa, através do Sistema de Gestão Empresarial

(Enterprise Resource Planning - ERP)1 Sapiens da empresa Senior Sistemas Corporativos

Ltda. O trabalho aplica o conceito de Open to Buy (OTB), ou seja, o tratamento dos saldos de

recursos financeiros disponíveis para compras no ERP Sapiens, pois, para Parente (2000, p.

224), uma vez estabelecido o planejamento de compras, o Open to Buy precisa ser

desenvolvido para que haja a monitoração do cumprimento das previsões de compra.

1 ERP são sistemas que permitem que as decisões e as bases de dados de todas as partes de uma organização sejam integradas de forma que as consequências das decisões de uma parte da organização sejam refletidas nos sistemas de planejamento e controle do resto da organização (SLACK; CHAMBERS; JOHNSTON; BETTS, 2007, p. 338).

Page 18: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

18

1.1 OBJETIVOS DO TRABALHO

O objetivo deste trabalho foi o desenvolvimento de um módulo de planejamento de

compras para a área comercial de empresas varejistas aplicando o conceito de Open to Buy,

atribuído ao ERP Sapiens da empresa Senior Sistemas Corporativos.

Os objetivos específicos do trabalho foram:

a) desenvolver um módulo que automatiza os processos de planejamento de

compras no ERP Sapiens;

b) possibilitar que o sistema gerencie o andamento das compras conforme definido

no planejamento;

c) disponibilizar, através do planejamento de compras, informações sobre o

controle de gastos inerentes a esta área, bem como o saldo disponível para

compras.

1.2 ESTRUTURA DO TRABALHO

O presente trabalho está estruturado em quatro capítulos.

No primeiro capítulo apresenta-se a introdução, o objetivo geral, bem como os

objetivos específicos e a estrutura do trabalho, disponibilizando uma visão geral do mesmo e

o contexto em que está inserido.

O segundo capítulo apresenta a fundamentação teórica necessária para o

desenvolvimento do trabalho onde são apresentados os principais conceitos de Administração

de Materiais, Compras no contexto empresarial, Planejamento de Compras e Open to Buy. O

capítulo também mostra características do ERP Sapiens e de alguns trabalhos correlatos.

No terceiro capítulo é apresentado o desenvolvimento do módulo de planejamento de

compras no ERP Sapiens, mostrando a apresentação dos requisitos, diagramas e ferramentas

utilizadas no desenvolvimento, bem como é feita também uma demonstração do

funcionamento do módulo.

O quarto capítulo apresenta as conclusões finais e sugestões para trabalhos futuros.

Page 19: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

19

2 FUNDAMENTAÇÃO TEÓRICA

Neste capítulo são apresentados os aspectos teóricos relacionados aos conceitos

envolvidos na Administração de Materiais e Compras, os quais devem ser compreendidos

para um melhor entendimento dos conceitos de Planejamento de Compras e Open to Buy. Os

conceitos de Administração de Materiais também contribuirão para uma melhor compreensão

do conteúdo exposto sobre o ERP Sapiens e os trabalhos correlatos que também são

apresentados ao final do capítulo.

2.1 ADMINISTRAÇÃO DE MATERIAIS

A Administração de Materiais é uma das atividades de gestão mais importantes para as

empresas. A manutenção da competitividade está ligada diretamente à forma com que os

materiais são administrados, os quais devem possuir níveis compatíveis com suas demandas,

como também as compras necessitam ser cada vez mais ágeis para poder atender às

necessidades de aumento da velocidade da renovação dos estoques. Reduzir os níveis de

armazenamento sem causar desabastecimento é o grande desafio para a gestão de materiais,

visto que a manutenção da lucratividade da empresa é altamente dependente deste processo

(COSTA, 2002, p. 17).

Outra definição a respeito da Administração de Materiais é apresentada por Severo

Filho (2006, p. 15):

Administração de Recursos Materiais é utilizar os princípios básicos da

Administração, com um padrão de qualidade sistemática, com a finalidade de bem

aplicar os recursos financeiros e materiais, destinados às atividades operacionais de

uma organização, seja de natureza industrial, comercial ou de serviços.

Segundo Francischini e Gurgel (2002, p. 4), a evolução da Administração de Materiais

processou-se em várias fases:

a) atividade exercida diretamente pelo proprietário da empresa, pois comprar era a

essência do negócio;

Page 20: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

20

b) atividades de compras como apoio às atividades produtivas e, portanto, integradas

à área de produção;

c) condenação dos serviços envolvendo materiais, começando com o planejamento

das matérias-primas e a entrega de produtos acabados, em uma organização

independente da área produtiva;

d) agregação à área logística das atividades de suporte à área de marketing;

e) modelo atual da área de logística da qual faz parte a Administração de Materiais.

Os pontos anteriormente mencionados podem ser resumidos conforme mostrado no

Quadro 1.

Percepção Empresarial

Situação Inicial

Processo de Evolução

Estágio Avançado

Situação Atual

O administrador de materiais

Pessoa de recados

Funcionário a serviço da produção

Executivo conhecedor do mercado de abastecimento

Executivo que administra 60% dos custos e das despesas

Perfil do profissional

Pessoa bem considerada

Burocrata eficiente

Conhecedor de administração comercial e de mercados

Executivo com preparo técnico, econômico e legal

Progresso do profissional

Sem possibilidades

Comprador Planejamento do negócio

Diretor Executivo

Atividades da Administração de Materiais

Faz despesas Evita faltas e desmobiliza estoques excedentes

Planejamento estratégico

Concentração em uma visão de melhoria dos resultados

Fonte: Francischini e Gurgel (2002, p. 4). Quadro 1 – Evolução da Administração de Materiais

2.2 COMPRAS NO CONTEXTO EMPRESARIAL

Nos últimos anos, em todo o mundo, a área de compras vem passando por grandes

transformações e o grande motivo está no fato de que passou a ter importância equivalente à

finanças, marketing ou produção, e hoje integra as decisões estratégicas das empresas, sendo

que nenhuma organização financeiramente bem sucedida pode abstrair-se da contribuição de

compras/suprimentos em seu planejamento estratégico (DIAS; COSTA, 2006, p. 11).

No Quadro 2 é apresentado um comparativo entre as principais atividades da área de

compras no passado e no presente.

Page 21: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

21

NO PASSADO NO PRESENTE • era um mal necessário • é vantagem competitiva • função isolada, normalmente vinculada à produção

• função integrada, normalmente vinculada à alta direção

• objetiva redução de custos • objetiva otimização de custos

• gerenciava crises • antevê problemas e busca soluções

• operava manualmente ou usava o computador precariamente

• opera com sistemas integrados de gestão, muitos deles ligados aos fornecedores

• trabalhava com muitos fornecedores

• trabalha com poucos fornecedores

• utilizava inspeções de qualidade

• utiliza qualidade assegurada

• denominava o público interno de usúarios

• denomina o público interno de clientes internos

• pedidos de compras isolados • contratos de longo prazo • profissional: comprador • profissional: empreendedor • informações dispersas • gerenciamento das

informações Fonte: Dias e Costa (2006, p. 12).

Quadro 2 – Comparativo entre as atividades da área de compras no passado e no presente

Com esta comparação pode-se perceber que o profissional desta área atualmente possui

características típicas de um empreendedor, e não mais apenas de comprador, visto que

atualmente o mercado exige destes profissionais conhecimentos técnicos, comerciais e de

gerenciamento.

Costa (2002), afirma que a função de comprador é mais que uma atividade

administrativa, ela é de vital importância para o sucesso das atividades logísticas de uma

empresa. Ele ainda afirma que: “A Área de Compras é, por muitos, vista de forma equivocada

como uma área excessivamente burocrática e geradora de despesas, mas na realidade pode

trazer resultados bem diferentes, desde que suas funções sejam bem executadas”.

Constata-se facilmente que a questão da compra, de modo geral, não tem um

tratamento mais sério, mais profissional. Um teste simples comprova isso: basta

entrar numa livraria e verificar quantos títulos existem sobre vendas e quantos, sobre

compras. A venda é algo que dá mais tesão, é mais agradável, e achamos muito

importante vender – é o nosso negócio. Continuo, porém, acreditando que comprar é

mais importante. (GRAZZIOTIN, 2003, p. 24).

Sabe-se que no contexto empresarial a administração de compras já é reconhecida

como uma atividade estratégica crucial, e que no mundo acadêmico esta área também já

Page 22: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

22

possui seu reconhecimento, com disciplinas acadêmicas e grande número de professores

universitários dedicados ao estudo desta área.

Com relação à grande importância da área de compras, Dias e Costa (2006), afirmam

que essa importância é relativa em vários fatores, tais como a natureza da organização ou o

seu grau de dependência de terceiros. Porém, independente de qualquer fator, está

comprovado que muito pode ser feito de positivo, em uma empresa, a partir do desempenho

de uma área de compras bem estruturada.

Como já mencionado, sabe-se que a área de compras tem como principais objetivos

comprar a quantidade de material e mercadoria correta, bem como também adquirir serviços,

no momento certo, da fonte certa, com a qualidade desejada, e ao menor custo possível. Baily

et al. (2000, p. 31), ainda propõe a seguinte definição ampla de objetivos da área de compras

no contexto empresarial:

a) suprir a organização com um fluxo seguro de materiais e serviços para atender a

suas necessidades;

b) assegurar continuidade de suprimento para manter relacionamentos efetivos com

fontes existentes, desenvolvendo outras fontes de suprimentos alternativas, ou para

atender a necessidades emergentes ou planejadas;

c) comprar eficiente e sabiamente, obtendo por meios éticos o melhor valor por

centavo gasto;

d) administrar estoques para proporcionar o melhor serviço possível aos usuários e ao

menor custo;

e) manter relacionamentos cooperativos sólidos com outros departamentos,

fornecendo informações e aconselhamentos necessários para assegurar a operação

eficaz de toda a organização;

f) desenvolver funcionários, políticas, procedimentos e organização para assegurar o

alcance dos objetivos previstos.

Além disso, Baily et al. (2000) ainda acrescenta alguns objetivos mais específicos

como:

a) selecionar os melhores fornecedores do mercado;

b) ajudar a gerar o desenvolvimento eficaz de novos produtos;

c) proteger a estrutura de custos da empresa;

d) manter o equilíbrio de qualidade/valor;

e) monitorar as tendências do mercado de suprimentos;

f) negociar eficazmente para trabalhar com fornecedores que buscarão benefício

Page 23: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

23

mútuo por meio de desempenho economicamente superior.

Embora no contexto empresarial tem-se conhecimento que a maioria das operações de

aquisição envolve a parte financeira de uma organização, Severo Filho (2006, p. 23) propõe

uma justificativa do por que não tratar-se a função ‘aquisição’ como ‘compra’. Segundo ele, o

sentido da palavra ‘aquisição’ significa várias maneiras ou formas de adquirimos alguma

coisa. Pode-se adquirir através de compra, doação, leilão, empréstimo, leasing, ou até mesmo

utilizando meios ilegais, porém, todas estas formas seguem um processo, que utiliza-se de

meios e estratégias.

Severo Filho (2006), afirma que a função ‘Aquisição’ depende especificamente da

Gerência de Estoques, onde o comprador por meios de relatórios gerenciais possui

diariamente a posição dos estoques e, conseqüentemente, as quantidades a serem adquiridas,

bem como quando essas aquisições devem ser feitas. As informações destes relatórios

representam as necessidades de aquisição de determinado material, dando início ao ciclo de

aquisição.

2.2.1 Varejo: Compras no segmento comercial

Segundo Dias e Costa (2006, p. 531), embora os princípios fundamentais sejam

semelhantes, existem algumas diferenças conceituais nas aquisições para empresas comerciais

relativamente às industriais. Na indústria sabe-se que os materiais adquiridos serão

manufaturados e, durante este processo será agregado valor ao produto final, resultando em

um valor global muito superior ao somatório dos custos individuais dos componentes

empregados. O mesmo não acontece no varejo, pois a empresa que comercializa vende os

produtos exatamente como foram recebidos, ou seja, a função do varejo é realizar a

distribuição, colocando ao alcance do público as mercadorias desejadas.

Uma primeira dificuldade diz respeito ao problema da “marca”. No âmbito

industrial, o profissional de compras pode consultar vários fornecedores, detentores

de marcas diferentes. Basta que estas estejam aprovadas pelo controle de qualidade.

A compra, então, será decidida em função das melhores condições comerciais

oferecidas, independentemente da marca, pois todas são aceitáveis. No varejo, a

situação é diferente. Muitos consumidores têm preferência por marcas especificas.

Mesmo quando determinado fabricante pratica preço muito acima da concorrência,

Page 24: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

24

seu produto deve ser adquirido para não desfalcar a “gôndola”. (DIAS; COSTA,

2006, p. 532).

Diante do exposto, Dias e Costa (2006, p. 532) elencam alguns aspectos relevantes

sobre a atuação do comprador varejista:

a) acompanhamento do giro do estoque: como o ressuprimento é atribuição do

analista de compras, conhecer o nível dos estoques dos itens, verificando quais

estão sendo mais comercializados, é imperativo para garantir a não ocorrência de

faltas e, também, que não existam mercadorias “encalhadas” nas prateleiras;

b) atrasos nos pedidos colocados: diferentemente do procedimento padrão para a

indústria e o serviço, no comércio a substituição de fornecedores é tarefa muito

difícil. Aqui existe o conceito da “marca”. O consumidor tem preferências, e essas

não podem ser ignoradas pelo comprador. A ocorrência de atrasos é dos maiores

problemas, pois, apesar do mau atendimento de alguns fornecedores, não podemos

simplesmente cancelar o pedido e substituir esses fornecedores. A receita é

justamente oposta a essa recomendação padrão. Ao invés de cancelar o pedido, o

procedimento mais usado é colocarmos outro, garantindo nosso lugar na fila de

atendimento e resguardando-nos de outros atrasos, mais para frente;

c) compras especulativas: no varejo, a perspectiva de aumento nos preços de uma

mercadoria pode desencadear uma aquisição especulativa. O comprador aumenta

os níveis de estoque para beneficiar-se dessa elevação potencial. Com essa

providência, poderá optar por acompanhar os preços dos concorrentes,

aumentando seus lucros, ou manter os preços e vender volume acima da média

normal;

d) desenvolvimento de marcas alternativas: como o parâmetro preço é um dos

determinantes na decisão de compra do consumidor, o comprador deve ficar atento

para novas marcas colocadas no mercado. Geralmente, essas são oferecidas em

condições especiais, com a finalidade de conquistar parcela do mercado. Sabendo

explorar essas oportunidades, é possível oferecer produtos mais baratos, atraindo

consumidores de baixa renda, ou realizar promoções para aumentar a venda de

outros produtos os quais poderão ser vendidos aos clientes que procurarem ofertas;

e) contatos com clientes nos PDVs2: uma atividade de suma importância no trabalho

2 PDV é uma sigla comumente utilizada para designar o estabelecimento comercial, cujo significado é Ponto de Venda (DIAS; COSTA, 2006, p.533).

Page 25: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

25

do profissional do varejo é o permanente contato com os clientes nos PDVs.

Como, muitas vezes, a decisão sobre “o que” e “quanto” comprar é deles, torna-se

fundamental conhecer as preferências dos consumidores. Identificar modelos,

marcas, cores ou tamanhos mais procurados propiciará mais segurança à decisão

de compra, evitando os “encalhes” ou faltas dos itens mais vendidos;

f) terceirização com fornecedores: prática ainda pouco difundida no Brasil, a

transferência para alguns fornecedores da gestão do estoque do varejista, cuidando

para que a reposição aconteça na mesma velocidade das vendas ao consumidor

final, começa a ser exercida. Esse conceito sedimenta-se na premissa de que o

fornecedor, por conhecer profundamente o seu segmento de mercado, desfruta de

melhores condições de responder às flutuações da demanda, assim como, por ter a

responsabilidade pela reposição, tenderia a conceder mais prioridade aos clientes

que se enquadram nessa categoria. O comprador passa a administrar os contratos,

cuidando para que os estoques não sejam maiores do que o desejado, exercendo o

controle do processo, especialmente no que se refere aos preços praticados, e

assegurando seu sucesso;

g) utilização do regime de consignação: outra prática muito usual é a consignação de

mercadorias. O fornecedor remete determinado volume de produtos para

pagamento posterior, em conformidade com as vendas futuras, assumindo o

compromisso de receber de volta as unidades não vendidas. Essa sistemática

facilita demais a decisão de compra, pois risco de arcar com o estoque não vendido

passa a ser do fornecedor e não do varejista. Cuidado fundamental, contudo, é não

utilizar esse instrumento de modo indesejado. Apenas porque o risco é do

fornecedor, alguns compradores solicitam volumes excessivos de mercadorias.

Muitas vezes, ocorre a obsolescência ou as devoluções de grandes quantidades. É

fácil perceber que, caso essa conduta se estenda por muito tempo, o fornecedor

desiste do procedimento e passa a ter sérios problemas financeiros, porque o seu

estoque vai-se tornar excessivamente elevado, em função das devoluções;

h) trabalhar com margens negativas: muitos varejistas usam o rendimento financeiro

como substituto da margem operacional. O comprador, ao negociar com os

fornecedores, obtém prazos de pagamento elevados. Como muitas mercadorias são

vendidas à vista, o recurso financeiro pode ser mantido aplicado até o efetivo

pagamento. Assim, fazendo o cálculo tradicional de margem, partindo-se do valor

de aquisição versus o preço de venda, essa é muito pequena ou, até negativa, mas,

Page 26: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

26

considerando o rendimento financeiro, o resultado final será satisfatório. Isso tudo,

porém, somente será possível se o comprador conseguir prazos de pagamento

realmente longos;

i) conhecimento dos principais impostos incidentes: com o elenco de impostos

existentes, o comprador do varejo deve estar permanentemente atento. Existem

tributos estaduais e, por essa razão, variáveis em função da localização geográfica

do fornecedor. Muitas vezes, uma condição de preço, aparentemente atrativa, é

inferior a outra, fato visível com uma simples avaliação tributária. Outra

preocupação com os impostos diz respeito à recuperação desses. Determinados

tributos podem ser compensados ou recuperados. Recomendamos ao comprador

varejista consultar o departamento fiscal da sua organização para obter a

orientação sobre como proceder em cada situação particular;

j) compras com bonificação: muitos fornecedores não podem conceder descontos

sobre os seus preços, por serem estes padronizados. Muitos, contudo, podem

oferecer bonificações, isto é, acrescentam determinado volume à quantidade

constante do pedido, pelo mesmo valor total original, o que, na prática, representa

concessão no preço unitário. Cabe ao profissional de compras, avaliar os

benefícios decorrentes desse incremento e implementar no âmbito da empresa

varejista.

Ainda neste contexto, é importante salientar três conceitos muito importantes para uma

melhor condução das tarefas do comprador varejista, principalmente no acompanhamento

rigoroso das mercadorias integrantes do estoque da empresa, que deve ser exercido pelo

comprador. Tais conceitos também são explicados por Dias e Costa (2006, p. 536) conforme

visto a seguir:

a) variedade: identifica o número de linhas de mercadorias componentes do estoque

da empresa colocado à disposição do público. Está relacionada ao conceito de

família, sugerindo afinidade entre elas;

b) sortimento: quantidade de produtos integrantes de cada linha. Pode-se dispor de

poucos produtos para cada linha, situação característica de reduzido sortimento, ou

gama muito variada de mercadorias, sugestiva de grande sortimento;

c) uniformidade: identifica o grau de inter-relação das diversas linhas entre si. Diz-se

que existe uniformidade quando a correlação entre linhas ou mercadorias é

elevada. Esta seria situação típica de loja de cama, mesa e banho, por exemplo, em

que todas as mercadorias estão associadas.

Page 27: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

27

2.3 PLANEJAMENTO DE COMPRAS

De acordo com Parente (2000, p. 222), o processo de compras envolve, provavelmente,

a atividade mais crítica de uma empresa do ramo de varejo. À medida que as vendas são

realizadas, os estoque das lojas necessitam ser reabastecidos para que novas vendas possam

ocorrer. O ciclo de abastecimento consiste em uma função vital para a sobrevivência e

expansão de qualquer empresa varejista. Com base na importância da área de compras perante

os outros setores da empresa, percebe-se que os profissionais desta área precisam estar

preparados para que a organização como um todo consiga alcançar os objetivos financeiros

planejados pela alta administração, para tanto, a seguir serão abordados os principais aspectos

relacionados ao planejamento de compras.

2.3.1 Organização financeira de compras x Objetivos da alta administração

Segundo Levy e Weitz (2000), os planos financeiros começam no topo da organização

de varejo e são divididos em categorias, enquanto os compradores e planejadores de

mercadorias fazem os seus próprios planos e os negociam com os níveis mais altos da

organização. Os gerentes superiores precisam tomar decisões que irão definir a imagem

comercial da empresa, por outro lado, os compradores e planejadores de mercadorias estudam

o desempenho passado de suas categorias, verificam as tendências de mercado e tentam

efetuar uma projeção das necessidades de suas mercadorias para as vendas futuras.

De acordo com Parente (2000), diversas práticas são adotadas nos procedimentos de

planejamento e gestão de compras, estes procedimentos podem ser estruturados em torno de

três abordagens:

a) de cima para baixo: começa com a gerência determinando um montante em

unidade monetária a ser estabelecido para as compras, para toda a empresa. Os

gestores de compras, então, distribuem esse montante entre as várias categorias,

por loja;

b) de baixo para cima: começa com a estimativa no nível de produto, passando pelo

nível de categoria, departamento, e consolidados no nível da empresa;

c) interativa: linhas gerais de orçamentos financeiros de compras são estabelecidos

Page 28: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

28

pela gerência. Os compradores, então, seguem a abordagem “de baixo para cima”

com revisões e modificações feitas pela gerência para assegurar que tanto as metas

financeiras como as estratégicas de marketing e de abastecimento do produto

sejam cumpridas. Essa abordagem pressupõe que a organização possua um bom

sistema de informações e de coordenação.

Para as empresas menores, o planejamento financeiro também é semelhante, embora

não existam tantos níveis de gerenciamento envolvidos.

2.3.2 Orçamento de compras

Segundo Parente (2000, p. 223), em qualquer ramo varejista, as compras constituem a

conta de despesa de maior importância no relatório de lucros e perdas da empresa.

Para Santos (2006, p. 19), o orçamento de compras de uma empresa varejista

determina o valor a ser comprado mensalmente pela empresa em função do volume de vendas

previsto, e define os objetivos de venda, margens e níveis de estoque desejados pela empresa.

Quando houver alterações nas previsões de venda, o orçamento de compras poderá ser

modificado, tem-se como exemplo, o caso em que as vendas superam o objetivo planejado,

neste caso, a área de compras deve ser ágil para acelerar as entregas dos fornecedores quando

identificado que irá ocorrer a falta dos produtos comercializados pela empresa.

Elaborar um bom orçamento de compras ainda é uma tarefa difícil para a maioria

das empresas varejistas, uma vez que as mudanças no cenário econômico, nos gostos

dos consumidores e na alteração do padrão de compra, podem afetar o volume de

vendas e conseqüentemente, exigir mudanças nas quantidades a serem compradas.

(SANTOS, 2006, p. 19).

Neste contexto, Parente (2000, p. 223) sugere que a Meta de Compras do mês seja

adquirida através da fórmula apresentada no Quadro 3.

Page 29: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

29

Estoque planejado para o final do mês

- Estoque inicial do mês + Previsão de vendas do mês

+ Demarcações previstas __________________________

= Meta de Compras do mês

Fonte: Parente (2000, p. 223). Quadro 3 – Meta de Compras do mês

O Quadro 4 apresenta um exemplo simplificado da lógica do orçamento de compras.

Período 1 (R$ 1.000)

Período 2 (R$ 1.000)

Período 3 (R$ 1.000)

Estoque inicial do mês (preço de venda) 400 430 390 Estoque planejado final do mês (preço de venda) 400 400 400 Previsão de vendas do mês (preço de venda) 200 210 205 Meta de compras do mês (preço de venda) 200 180 215 Vendas do mês (preço de venda) 170 220 .......... Fonte: Parente (2000, p. 223).

Quadro 4 – Exemplo simplificado da lógica do orçamento de compras

Parente (2000, p. 223) explica que, conforme se pode observar no Quadro 4, no

primeiro período a empresa iniciou o mês com valor dos estoques iguais ao estoque planejado

para o final do mês (R$ 400 mil). A Meta de Compras é então equivalente à previsão das

vendas do mês (R$ 200 mil). Percebe-se que as vendas no primeiro período (RS 170 mil)

foram inferiores ao valor previsto, o que resultou em uma elevação no valor de estoque inicial

do segundo período.

No segundo período o valor do estoque do início do mês (R$ 430 mil) é maior do que

o valor do estoque planejado para o final do mês (R$ 400 mil), então, neste caso foi

estabelecida uma Meta de Compras (R$ 180 mil) menor que a previsão de vendas (R$ 210

mil), isto para que o volume dos estoques seja corrigido para atingir o objetivo inicial do

terceiro período.

No terceiro período a empresa encontra-se em situação oposta à do segundo período,

possuindo um valor de estoque baixo (R$ 390 mil), desta forma, a Meta de Compras (R$ 215

mil) deverá atender as necessidades das vendas (R$ 215 mil) e repor a defasagem do estoque

(R$ 10 mil).

Em muitas empresas, ocorre a prática das demarcações de preço, estas por sua vez,

assumem uma magnitude expressiva, sendo necessário ajustar a Meta de Compras do mês. As

demarcações devem incluir não somente as reduções de preços das mercadorias, mas também

as quebras, causadas por estragos ou roubos. Desta forma, as demarcações reduzem o valor

dos estoques e, portanto, as compras precisam repô-las.

Parente (2000), explica ainda que, se o volume de demarcações planejadas no segundo

Page 30: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

30

período fosse de R$ 10 mil, a Meta de Compras para este período passaria a ser R$ 190 mil,

conforme o cálculo: Meta de Compras do Mês = (R$ 400.000 – R$ 430.000) + (R$210.000) +

(R$ 10.000) = R$ 190.000.

2.3.3 Open to Buy

Segundo Parente (2000, p. 224), uma vez estabelecido o planejamento de compras, é

necessário que os gestores de compras desenvolvam instrumentos de controle, denominados

Open to Buy (“saldo disponível para compras”), para que as compras de determinado período

não ultrapassem o que foi projetado. Este controle deve registrar não somente as compras já

entregues, mas também as compras efetuadas que ainda não foram recebidas.

Um bom controle de estoque é fundamental para assegurar um nível adequado de

estoque para as vendas que serão efetuadas. Estoque excessivo ou mercadorias erradas

estocadas durante determinados períodos podem atrapalhar o fluxo de caixa e acarretar uma

redução dos lucros com excessivas demarcações. Para resolver este problema, utiliza-se o

Open to Buy, onde o varejista pode ter a certeza de estar armazenando a quantidade certa de

suas mercadorias (WATERS, 2009, tradução nossa).

Tudo começa com o planejamento de compras, mas, à medida que o tempo passa, o

Open to Buy torna-se o método pelo qual o comprador acompanha o desempenho efetivo com

relação ao que foi planejado e se ajusta conforme as condições do mercado. O Open to Buy

nada mais é do que as mercadorias necessárias menos as mercadorias disponíveis, incluindo o

que já foi pedido (THEOBALD, 2000, p. 169, tradução nossa).

O Open to Buy está diretamente ligado às mercadorias do ramo de varejo. Ele está

estruturado especificamente para atender as necessidades dos varejistas. É uma ferramenta

desenhada para ajudar os varejistas a gerir e reabastecer os estoques (HURLBUT, 2006,

tradução nossa).

Open to Buy é um orçamento, começa com o processo de planejamento, orientando os

processos futuros, fornecendo informações sobre o quanto comprar, bem como pontos de

referência para avaliar os progressos e ajustar os planejamentos futuros (HURLBUT, 2006,

tradução nossa).

Embora possa ser utilizado, o Open to Buy não é adequado para todas as categorias de

mercadorias, para mercadorias com um ciclo de vida longo, as ferramentas de reposição

Page 31: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

31

automática são mais sugeridas. O Open to Buy é muito adequado para o ramo de moda, onde

produtos específicos podem mudar constantemente, no entanto, as suas classificações e

subclassificações permanecem relativamente estáveis. É muito adequado também para as

mercadorias sazonais, que precisam estar no estoque logo no início da época de vendas e

precisam ser gerenciados com um nível pré-determinado, para que não sobrem mercadorias

no final da época de vendas (HURLBUT, 2006, tradução nossa).

Embora o Open to Buy possa ser aplicado para qualquer período, geralmente este

possui aplicação mensal, desta forma, segundo Westerman (2001, p. 261, tradução nossa), o

Open to Buy do mês corrente pode ser calculado através da fórmula apresentada no Quadro 5.

Estoque planejado para o próximo mês

+ Vendas planejadas para o mês corrente + Demarcações planejadas para o mês corrente + Retratibilidade planejada para o mês corrente

- Estoque atual do mês corrente ________________________________ = Open to Buy para o mês corrente

Fonte: Westerman (2001, p. 261, tradução nossa). Quadro 5 – Cálculo do Open to Buy para o mês corrente

Ainda segundo Westerman (2001, tradução nossa), o Open to Buy dos próximos meses

pode ser calculado através da fórmula apresentada no Quadro 6.

Compras planejadas para o mês - Pedidos de compras para o mês

________________________ = Open to Buy para o mês

Fonte: Westerman (2001, p. 261, tradução nossa). Quadro 6 – Cálculo do Open to Buy dos próximos meses

Conforme pode ser observado no Quadro 5, de certa forma, o cálculo do Open to Buy

apresentado por Westerman (2001) para o mês corrente, já inclui em sua fórmula a Meta de

Compras apresentada por Parente (2000), apenas incrementando a retratibilidade, que são os

furtos de mercadorias no estabelecimento e demais formas de perdas de produtos. No cálculo

do Open to Buy dos próximos meses apresentado no Quadro 6, as compras planejadas nada

mais são do que a Meta de Compras definida através do cálculo apresentado por Parente

(2000).

O Quadro 7 apresenta um exemplo de controle do Open to Buy.

Page 32: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

32

Data Valores (R$ mil)

Saldo para compras (R$ mil)

Estoque planejado final 400 Estoque inicial 430 Previsão de vendas 210 Demarcações previstas 10

1/fev. Meta de compras – fevereiro 190 190 5/fev. Mercadorias recebidas em 5/fev. 30 160 20/fev. Mercadorias recebidas entre 6 e 20/fev. 120 40 21/fev. Pedido colocado em 21/fev. 25 15 21/fev. Saldo para compras – Open to Buy – 15

Fonte: Parente (2000, p. 224). Quadro 7 – Exemplo de controle do Open to Buy

Um aumento relativamente pequeno nas vendas, muitas vezes, conduz a compras

excessivas, e depois, quando as vendas desaceleram, várias demarcações são feitas para

eliminar o excesso de mercadorias, que por sua vez, conduz para um menor lucro bruto.

Deve-se aprender a utilizar o Open to Buy para comprar de forma mais eficaz, ele requer

algum trabalho e muita disciplina, mas vale à pena, pois, contribui para um melhor fluxo de

caixa e lucros mais elevados (MATYJEWICZ, 2001, tradução nossa).

O Open to Buy mostra quanto de estoque deve-se ter em mãos no início de qualquer

mês e como as mercadorias devem ser recebidas durante o mês. Desta forma, pode-se estimar

com antecedência o valor financeiro que será necessário para ser investido em estoques de

mês para mês, para a próxima época (MATYJEWICZ, 2001, tradução nossa).

Por fim, o Open to Buy também ajuda a assegurar o montante adequado de estoque que

será necessário para suportar as vendas planejadas, fornecendo o controle dos compromissos

para que não se receba as novas mercadorias antes do previsto (MATYJEWICZ, 2001,

tradução nossa).

2.3.4 Planejamento unitário das compras

Para Parente (2000), do ponto de vista da gestão financeira, do fluxo de caixa e da

avaliação de indicadores de desempenho, os valores relacionados às vendas, estoques e

compras, devem ser expressos em unidades monetárias.

Quando se trabalha com agrupamentos de produtos, como departamentos ou

categorias, adota-se a unidade monetária, por consistirem um denominador comum

Page 33: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

33

de unidade de medida. Para produtos individuais, pode-se trabalhar tanto com

previsões em unidades monetárias como em unidades físicas (ex.: quilos, litros e

quantidades unitárias). (PARENTE, 2000, p. 224).

Desta forma, quando se está decidindo sobre o volume de compras de um item

específico, a estimativa para o planejamento de compras é desenvolvida com base em

unidades físicas. Tem-se ainda que, do ponto de vista da gestão das compras, os produtos

podem ser classificados em “contínuos” e “descontínuos”, dependendo do tipo de produto, o

comprador do varejo deve adotar métodos diferentes de planejamento de compras. Os

produtos contínuos são aqueles com um ciclo de vida longo e que tem uma demanda contínua

durante muito tempo, como exemplo, pode-se citar os alimentos, produtos de limpeza,

perfumaria, eletrodomésticos entre outros. Os produtos descontínuos são aqueles com um

ciclo de vida curto, que estão presentes na loja apenas durante certo período de tempo. Como

exemplo para estes produtos, pode-se citar os artigos de confecção, que apresentam

características de moda e estações do ano e também os produtos que são novidades no

mercado, que em muitos casos, atingem bons picos de venda, entretanto, possuem um ciclo de

vida muito curto.

2.3.5 Como comprar bem utilizando o planejamento de compras na visão do SEBRAE

O Serviço Brasileiro de Apoio às Micro e Pequenas Empresas (SEBRAE) sugere em

forma de um instrumento de apoio gerencial, uma séria de regras básicas para comprar bem.

Estas regras servem somente como sugestão, sendo que cada empresa pode adaptá-las

conforme suas características. Tais informações servem também para evitar os erros mais

comuns nas operações de compra, possibilitando desta forma, que a empresa execute o seu

planejamento de compras com sucesso. Sendo assim, segundo o SEBRAE (2005), ao se

aproximar da época prevista para as compras, as atividades devem seguir uma rotina que pode

ser dividida nas seguintes etapas:

a) preparar a previsão de vendas;

b) ajustar a previsão às possibilidades da empresa;

c) decidir o que vai comprar;

d) elaborar orçamento para as compras previstas durante um período;

Page 34: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

34

e) elaborar orçamento de mercadorias por seção;

f) efetivar as compras;

g) acompanhar os pedidos.

A previsão de vendas, geralmente, é realizada para um determinado período, conforme

as necessidades de cada empresa. Em muitas empresas, a etapa da previsão está diretamente

ligada à área de compras, entretanto, esta não parece ser a melhor solução. Se a etapa da

previsão fica por conta do setor de compras, o setor de vendas, maior interessado, entra na

elaboração da previsão apenas como um simples informante, não assumindo a

responsabilidade por ela. Desta forma, o mais correto é fazer com que a previsão de vendas

seja um trabalho conjunto dos setores de compras e de vendas. É aconselhável que se faça

uma previsão para cada seção da empresa, estas devem ser consideradas individualmente e,

somente mais tarde, reunidas em uma só, para fins de planejamento. De posse da previsão de

vendas, a área de compras poderá então estabelecer a relação estoque/venda para atender às

vendas previstas.

Após preparadas as previsões de vendas, estas devem ser discutidas em reuniões, onde

além do empresário, devem participar os gestores dos setores de compras, vendas e financeiro

da empresa, sendo que a participação do gestor do departamento financeiro é de vital

importância, pois é ele que conhece a real situação financeira da empresa, suas limitações e

possibilidades. Mesmo o gestor de vendas apresentando bons argumentos para a compra de

uma grande quantidade de determinado produto, somente o gestor do setor financeiro é quem

poderá dizer se a empresa terá condições de assumir estes compromissos financeiros.

Baseado na previsão de vendas, a área de compras toma a decisão do que realmente irá

comprar, considerando o plano de desembolso mensal. A área financeira, por sua vez, irá

planejar os desembolsos mensais necessários para as compras, bem como, indicar como e

onde buscar se necessários, os recursos para complementar o capital de giro da empresa, este

processo deve levar em consideração a relação estoque/venda fornecida pelo setor de

compras. O controle financeiro determina um orçamento para a área de compras, para que

este possa colocar em prática as aquisições programadas para determinado período. Este

orçamento prevê o cronograma dos desembolsos, mês a mês. Após elaborado o orçamento

que atende às aquisições de mercadorias previstas para determinado período, é preciso

detalhar o orçamento para cada uma das seções da empresa.

O orçamento de mercadorias por seção somente poderá ser realizado quando a empresa

estiver de posse da previsão de vendas aprovada, do orçamento que vai dispor para o período

considerado, do conhecimento das mercadorias necessárias à complementação do estoque e

Page 35: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

35

quando a mesma souber com precisão, o que será necessário adquirir no que se refere às

novidades no mercado. Com estes dados, o gestor da área de compras tem condições de

organizar um orçamento de mercadorias para cada uma das seções da empresa, estabelecendo

as cotas de compras mensais.

Se as etapas anteriores estiverem bem organizadas, a efetivação das compras torna-se

uma etapa fácil de ser cumprida, bastando apenas o setor de compras fazer seus pedidos de

forma a atender às limitações ditadas pelo cronograma de desembolso mensal. Conforme a

área de compras vai efetuando as aquisições, as áreas de vendas e financeiras devem ser

informadas sobre as mercadorias e as datas previstas para sua chegada. Além disso, a área

financeira deve ser constantemente informada sobre o recebimento e a aceitação das

mercadorias compradas e mercadorias que, por algum motivo, foram rejeitadas, bem como os

cancelamentos de pedidos que possam ocorrer. O acompanhamento dos pedidos é uma etapa

muito importante e é essencial que o gestor de compras acompanhe os pedidos que ainda não

foram entregues. O gestor de compras deve constantemente acompanhar os pedidos, a fim de

fazer com que não ocorram atrasos nas entregas, pois, caso isto venha a ocorrer o

planejamento ficará prejudicado, principalmente o planejamento dos produtos descontínuos

(SEBRAE, 2005).

2.4 SISTEMA SAPIENS

O Sistema Corporativo Sapiens é um sistema de gestão empresarial desenvolvido pela

empresa Senior Sistemas Corporativos, sediada na cidade de Blumenau, no estado de Santa

Catarina. A Senior Sistemas também desenvolve soluções para outros segmentos de mercado,

os quais se destacam o Vetorh, sistema voltado para o gerenciamento estratégico de recursos

humanos (RH) e o Ronda, sistema para controle de acesso e segurança. O ERP Sapiens atende

diversos segmentos de negócios nas áreas administrativa, financeira, comercial, industrial,

logística e recursos humanos, além de atender a vários outros segmentos específicos. A

integração e independência dos módulos do sistema distribuem as informações por toda a

estrutura organizacional, permitindo ainda, a integração total com outros sistemas

corporativos, como os direcionadores para a área de recursos humanos (SENIOR SISTEMAS,

2009a).

Com relação à tecnologia, a parte de aplicação do sistema é totalmente desenvolvida

Page 36: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

36

para a plataforma Windows, com arquitetura cliente/servidor. Além da arquitetura

cliente/servidor, o Sistema Sapiens também pode ser executado em outras formas de

aplicação, como uma versão web (funcionalidade parcial do sistema), WindowsAccess

(execução em ambiente remoto para desktop Windows), e BrowserAccess (acesso completo

ao sistema 100% web) (SENIOR SISTEMAS, 2009b).

O Sapiens é composto por um conjunto de módulos integrados que incluem todos os

processos empresariais com versatilidade, envolvendo todas as etapas de decisões e

produtividade de uma empresa, conforme ilustrado na Figura 1.

Fonte: Senior Sistemas (2009c).

Figura 1 – Divisão dos módulos existentes no Sistema Sapiens

O Sistema Sapiens é uma ferramenta ERP moderna, eficiente e flexível, idealizada

dentro do conceito “toque único”, em que um só lançamento no sistema alimenta com

informações toda a empresa (SENIOR SISTEMAS, 2009d).

A Figura 2 apresenta o menu principal do Sistema Sapiens.

Page 37: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

37

Figura 2 – Menu principal do Sistema Sapiens

Conforme pode ser visto na Figura 2, o sistema possui uma divisão de áreas nos menus

que podem ser definidos da seguinte forma:

a) núcleo de informações gerais: são itens apresentados nos menus Tabelas e

Cadastros. As informações cadastradas nestes menus são na maior parte

informações de uso comum entre todos os módulos, sendo que no menu Tabelas

existe uma divisão de concentração das informações separadas por módulos, e no

menu Cadastros todas as demais informações necessárias para o funcionamento

das rotinas executadas diariamente em uma empresa. Pode-se desta forma fazer

uma analogia, e dizer que estes menus formam o coração do sistema;

b) módulos do sistema: são os itens de menus que representam na sua concepção, as

grandes áreas de uma organização, são eles: Comercial, Financeiro, Contábil,

Produção, Custos, e Sistema de Gestão da Qualidade (SGQ). Estes módulos

concentram todas as informações inerentes a estas áreas em uma organização,

sendo que existe uma integração total entre as mesmas;

c) recursos do sistema: neste item de menu são concentradas uma série de recursos

disponibilizados no sistema que facilitam o dia a dia de uma organização. Alguns

exemplos destes recursos são: gerador de relatórios (cada empresa pode

desenvolver os seus próprios relatórios), gerador de cubos (trabalha com dados no

Page 38: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

38

formato de matriz, permitindo análises multidimensionais das informações

pertinentes a empresa), gerador de telas (cada empresa pode criar seus próprios

formulários para cadastramento de informações), além de importação e exportação

de dados, regras definidas pelos próprios usuários que permitem que o sistema

fique ainda mais aderente aos processos de cada cliente, entre outros;

d) diversos: neste item de menu o sistema disponibiliza alguns facilitadores e

configurações diversas, tais como: personalização de menus, personalização de

barras, configurações de acesso, entre outros.

2.4.1 Módulo Comercial do Sistema Sapiens

O módulo Comercial é um dos principais módulos do sistema. Tem integração com

todos os outros módulos, fornecendo e recebendo informações destes. No que se refere ao

ramo varejista, segundo o Instituto para Desenvolvimento do Varejo (IDV), a importância

deste setor no cenário econômico brasileiro vem sendo cada vez mais reconhecida e

destacada. Além de gerador do maior número de empregos formais no país, o setor exibe,

especialmente nos últimos quatro anos, números expressivos de crescimento e consistentes

indicadores de modernização (IDV, 2009).

Na utilização do Sapiens no segmento varejista, a alimentação dos dados do PDV no

módulo Comercial é feita através de um sistema de automação comercial integrado com o

Sistema Sapiens, este sistema de PDV é desenvolvido pela empresa Megasul Informática,

também sediada em Blumenau, Santa Catarina. Esta integração tem o objetivo de atender a

área comercial do ramo varejista com o sistema da Megasul trabalhando em pontos de venda

utilizando o equipamento Emissor de Cupom Fiscal (ECF), deixando o Sapiens realizar todas

as suas atividades de gestão empresarial como um sistema de retaguarda. Desta forma, o

Sistema Sapiens é constantemente alimentado com as informações comerciais realizadas nos

pontos de venda, sendo assim, o mesmo, juntamente com o sistema da Megasul é

comercializado como solução para o ramo de varejo. O Sistema Sapiens como solução para o

varejo, traz funcionalidades que auxiliam no gerenciamento de todos os processos comerciais,

de crédito, contábeis, de estoque, entre outros. (SENIOR SISTEMAS CORPORATIVOS,

2009).

O Sapiens como solução para o varejo permite agilidade no atendimento ao cliente,

Page 39: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

39

reduzindo filas, gerando segurança no processo de vendas, além de bloqueio de descontos e

limites, análise imediata de crédito, transações de Transferência Eletrônica de Fundos (TEF),

atendimento à Legislação Fiscal e Tributária e emissão de carnês automaticamente. (SENIOR

SISTEMAS CORPORATIVOS, 2009).

O módulo Comercial é dividido em três principais sub-módulos, sendo eles: Compras,

Vendas e Estoques. Como complemento para o módulo Comercial, este possui ainda os sub-

módulos de Distribuição e Transporte.

2.4.1.1 Compras

O sub-módulo de Compras está diretamente ligado ao módulo de Estoques no que se

refere às requisições de materiais e solicitações de compras, além de ser integrado, também,

com o módulo de Contas a Pagar. Este módulo contempla também as etapas de cotação com

fornecedores até a entrada da nota fiscal, passando pela atualização dos estoques que é

transparente dentro do processo de compras. A Figura 3 apresenta um fluxograma das

atividades envolvidas neste módulo. Conforme Senior Sistemas (2009e), as principais

funcionalidades deste módulo são:

a) administra solicitações de compras, com proposição automática dos preços dos

fornecedores nas cotações;

b) gera solicitações de compra automaticamente a partir da análise de estoques, via

requisição e necessidade de produção;

c) possibilita análise entre as condições das ordens de compra e respectivas notas

fiscais;

d) gera ordens de compra via cotações, automaticamente;

e) controla ordens de compra e compradores responsáveis;

f) considera opcionalmente as ordens de compra no fluxo de caixa;

g) permite envio de e-mail automático ao fornecedor com cópia da ordem de compra;

h) permite condições flexíveis de pagamento;

i) controla o cadastro de fornecedores, incluindo tabelas de preços;

j) controla contratos;

k) permite gerar cotações de compra via web;

l) possibilita controle orçamentário das compras por centro de custo;

m) aceita qualquer unidade de medida de produto no recebimento de mercadoria,

Page 40: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

40

através de conversão automática;

n) sugere a melhor cotação, trazendo o valor presente;

o) permite a entrada de notas fiscais via códigos de barra;

p) controla o processo de entrada e saída de mercadorias através da interface com

balanças.

Fonte: Senior Sistemas Corporativos (2009).

Figura 3 – Fluxograma do sub-módulo compras do Sistema Sapiens

2.4.1.1.1 Ordem de Compra (OC)

Segundo Francischini e Gurgel (2002, p. 24), “a ordem de compra é, sem dúvida, um

importante documento que, por suas diversas vias, permitirá uma amarração geral dos

serviços de compra”. Para o Sapiens, a Ordem e Compra faz a oficialização junto ao

Page 41: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

41

fornecedor, nela são calculados os valores totais e líquidos dos produtos/serviços, impostos,

frete e seguro. Desta forma, tem-se a visualização prévia dos dados da Nota Fiscal que

possivelmente será emitida pelo fornecedor. O Sapiens permite que no momento da

negociação com o fornecedor sejam definidos todos os detalhes da compra. Assim, na entrada

da Nota Fiscal de Compra, basta indicar as OCs a que a nota se refere e fazer uma conferência

com os dados já previamente calculados, desta forma, não é necessária a digitação da mesma,

adquirindo agilidade e segurança (SENIOR SISTEMAS, 2009i).

2.4.1.1.2 Nota Fiscal de Entrada (NFE)

A Nota Fiscal de Entrada é o documento que comprova a existência de um ato

comercial. O Sapiens permite efetuar a geração de uma Nota Fiscal manualmente ou via

confronto e confirmação com as Ordens de Compra previamente negociadas. Uma vez que os

dados necessários à composição da Nota Fiscal foram previamente calculados com base na

Ordem de Compra, o Sapiens organiza a Nota e as respectivas parcelas de pagamento. Após a

finalização da Nota Fiscal de Entrada, que se concretiza com o fechamento da mesma, são

atualizados os saldos e movimentação do estoque, títulos a pagar, saldos e dados históricos do

fornecedor, situação da própria Ordem de Compra, documentos de requisição, bem como o

rateio de valores por contas e centros de custos (SENIOR SISTEMAS, 2009j).

A Figura 4 apresenta um exemplo do processo de geração de Nota Fiscal de Entrada

via Ordem de Compra no Sistema Sapiens. Pode-se perceber através da figura que em uma

Nota Fiscal de Entrada podem estar vinculadas uma ou mais ordens de compra, e que a

quantidade do item de produto/serviço não necessariamente precisa ser a mesma da OC, ou

seja, pode ser total ou parcial.

Page 42: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

42

Figura 4 – Exemplo de geração de Nota Fiscal de Entrada via Ordem de Compra no Sistema Sapiens

2.4.1.2 Vendas

O módulo de Vendas é responsável por administrar os pedidos de venda, bem como

efetuar a geração de notas fiscais de saída. Possibilita também faturamentos por pedido,

cálculo de comissões via faturamento, além de colocar à disposição dos usuários, informações

gerenciais baseadas em estatísticas de vendas. A Figura 5 apresenta um fluxograma das

atividades envolvidas neste módulo.

Page 43: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

43

Fonte: Senior Sistemas Corporativos (2009).

Figura 5 – Fluxograma do sub-módulo vendas do Sistema Sapiens

Conforme Senior Sistemas (2009f), as principais funcionalidades deste módulo são:

a) permite entrada de pedidos com produtos configuráveis;

b) permite o agendamento de visitas a clientes;

c) efetua análise de embarque gerando preparação para faturamento e montando as

embalagens para expedição de forma automática;

d) possibilita faturamento por pedido, por lote e/ou especiais (produtos e serviços);

e) controla pedidos de vendas, orçamentos e previsões de produção;

f) considera opcionalmente os pedidos de venda no fluxo de caixa;

g) analisa disponibilidades de estoques para vendas;

h) reajusta, gera e emite tabelas de preços de venda;

i) emite notas fiscais com layout adaptável;

j) calcula comissões via faturamento;

k) controla crédito, cadastros e históricos de clientes;

l) controla representantes, cotas e comissões;

Page 44: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

44

m) permite condições flexíveis de pagamento;

n) mantêm históricos de tabelas de preços de venda de produtos e de serviços;

o) rastreia pedidos na produção;

p) controla contratos;

q) permite entrada de pedidos via web;

r) coloca à disposição informações gerenciais baseadas em estatísticas de vendas por

região, por representantes e por clientes (SIG – Sistema de Informação Gerencial);

s) permite a entrada de pedidos e notas fiscais via códigos de barra;

t) controla o processo de entrada e saída de mercadorias através da interface com

balanças;

u) aceita qualquer unidade de medida para venda, por meio de conversão automática.

2.4.1.3 Estoques

O sub-módulo de Estoques é responsável por atender às requisições de materiais,

emitir solicitações de compra para materiais sem saldo em estoque, bem como emitir

solicitações de compra de materiais para a produção. Em resumo, seu objetivo é controlar os

estoques de uma empresa com toda a movimentação (entrada e saída) de mercadorias que

ocorre nos sub-módulos de compras e vendas. A Figura 6 apresenta um fluxograma das

atividades envolvidas neste módulo. Conforme Senior Sistemas (2009g), as principais

funcionalidades deste módulo são:

a) controla estoques de produtos multidepósitos, por lotes, por prazos de validade e

por séries;

b) possui rotinas de requisição de materiais/serviços, aprovação, atendimento e

solicitação de compras;

c) calcula preço médio, de custo, de reposição e última entrada;

d) possui rotina de inventário com recontagem e acertos automáticos, permitindo

também o inventário por lote/série;

e) operacionaliza estoques com códigos de barras;

f) controla consignações (clientes e fornecedores);

g) analisa reposições de estoques;

h) gerencia curva ABC;

i) gera acúmulos mensais de Consumos, Entradas e Devoluções;

Page 45: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

45

j) possibilita a formação de embalagens de estocagem;

k) possibilita aprovações e requisições via web;

l) permite a geração e o controle de numeração de produtos (séries);

m) gera solicitações de compra automaticamente a partir da análise de estoques, via

requisição e necessidades de produção;

n) permite controle de aprovação multinível por valor e centros de custos para ordens

de compra e solicitações de compras;

o) permite controle de localização através da máscara do código de depósito.

Fonte: Senior Sistemas Corporativos (2009).

Figura 6 – Fluxograma do sub-módulo estoques do Sistema Sapiens

2.4.1.4 Distribuição

O sub-módulo de Distribuição tem como objetivos disponibilizar complementos de

Page 46: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

46

funcionalidades de pedidos do módulo de vendas, bem como processos de carga, acertos e

faturamentos. Conforme Senior Sistemas (2009f), as principais funcionalidades deste módulo

são:

a) forma cargas obedecendo rotas de entrega;

b) efetua faturamento conforme cargas geradas;

c) permite o acerto de contas no retorno das cargas;

d) permite entrada de pedidos via telemarketing ativo ou passivo;

e) permite gerar e receber informações de venda via palmtop;

f) possibilita o fracionamento dos produtos em estoque;

g) efetua ordens de compra com programação de entrega;

h) permite inclusão de pendências financeiras na formação da carga.

2.4.1.5 Transporte

O sub-módulo de Transporte tem como objetivo atender as necessidades de empresas

de logística de transporte de mercadorias, realizando processos de coleta de mercadorias,

contratação de motoristas, geração de Conhecimento de Transporte Rodoviário de Cargas

(CTRC), Manifesto, entre outros. Conforme Senior Sistemas (2009f), as principais

funcionalidades deste módulo são:

a) controla o cadastro de veículos e motoristas;

b) possibilita o cadastramento de tabelas de preço de frete;

c) permite o cadastramento de solicitações para coletas de mercadorias, controlando

remetente, destinatário e consignatário;

d) efetua a cotação de preços para transporte das mercadorias, controlando a

disponibilidade do motorista e a rota de entrega que ele atende;

e) controla a contratação dos motoristas/veículos que farão o transporte;

f) gera o conhecimento de transporte através das coletas cadastradas;

g) permite a geração do Manifesto, gerando títulos no Contas a Pagar para o

motorista contratado.

Page 47: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

47

2.5 TRABALHOS CORRELATOS

No que diz respeito ao planejamento de compras e aplicação do Open to Buy, existem

alguns sistemas de gestão no mercado que desempenham papel semelhante ao proposto por

este trabalho, no entanto, poucos trabalhos acadêmicos foram desenvolvidos acerca destes

conceitos.

A Solução SAP Retail Merchandise and Assortment Planning, mais conhecida como

SAP Retail MAP, é uma ferramenta voltada para o varejo, baseada no planejamento de

mercadorias e sortimentos. O software é produto da empresa alemã SAP, desenvolvedora de

soluções para gestão empresarial. Além das quatro áreas principais, planejamento estratégico,

de local, de produtos e de seleção de mercadorias, o SAP Retail MAP também faz interação

com o planejamento de redução de preços, otimização da exposição de produtos,

gerenciamento de estilo, compras e recursos de alocação, além de fazer integração, entre o

planejamento OTB e o sistema de compras. Conforme pode ser visto na Figura 7, o SAP

Retail MAP foi concebido para atender aos desafios do complexo setor de varejo, desta

forma, diminuindo a distância entre a análise, a simulação, o planejamento e a execução (SAP

AG, 2005).

Fonte: SAP AG (2005).

Figura 7 – Planejamento integrado de mercadorias e sortimento na solução SAP Retail MAP

Page 48: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

48

A Millennium NetWork, empresa brasileira também desenvolvedora de softwares para

gestão empresarial, comercializa o Millennium Business Manager (Millennium BM), uma

ferramenta ERP voltada para o mercado de vestuário e decoração. O Millennium BM é um

sistema modular, flexível, integrável, e que cobre os processos produtivos, administrativos e

comerciais de empresas ligadas ao ramo da moda e vestuário (MILLENNIUM NETWORK,

2006a).

A metodologia do planejamento de compras da Millennium envolve, também, o

planejamento de abastecimento de lojas, diminuição das quebras de estoque e remarcação

contínua, incluindo também um modelo parametrizável de Open to Buy (MILLENNIUM

NETWORK, 2006b).

No meio acadêmico, Santos (2006) apresentou uma dissertação de Mestrado no

Programa de Pós-Graduação e Pesquisa em Administração e Economia da Faculdade de

Economia e Finanças IBMEC, cujo título é “Propostas para Aumento do Desempenho da

Área de Compras em Empresa Varejista”. Nesta dissertação, a autora realizou um estudo de

caso em uma empresa varejista de material de construção, onde foi necessário identificar as

principais mudanças ocorridas na área de compras da referida empresa após a entrada da

concorrência, em relação aos quatro tópicos estratégicos: planejamento de compras, estrutura

organizacional, relacionamento com fornecedores e sistemas de informação, bem como

diagnosticar o estágio de evolução da área de compras nesta empresa. No que se refere ao

planejamento de compras, a autora faz algumas propostas para aumento do desempenho da

área de compras da empresa analisada, fazendo um comparativo entre o planejamento

utilizado pela empresa e as propostas apresentadas, elencando os possíveis benefícios da

aplicação de suas propostas.

Page 49: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

49

3 DESENVOLVIMENTO DO MÓDULO DE PLANEJAMENTO DE COMPRA S

Neste capítulo são demonstradas as etapas de desenvolvimento do módulo de forma

detalhada, tais como, elaboração dos requisitos funcionais e não funcionais, diagramas de

casos de uso, diagrama de atividades, diagrama de estados, diagramas de classes, diagrama

entidade relacionamento, ferramentas utilizadas, bem como a operacionalidade da

implementação e os resultados obtidos acerca do presente trabalho.

O módulo de planejamento de compras desenvolvido possui a tarefa de automatizar os

processos de planejamento do setor de compras das empresas varejistas, bem como

disponibilizar informações sobre o controle de gastos utilizados nos pedidos de compra

emitidos pelos compradores através dos saldos disponíveis para compras.

As compras podem ser planejadas de acordo com os dados históricos de compras e

vendas, permitindo aplicar percentuais de crescimento para geração dos dados do

planejamento. O comprador pode considerar em todas as etapas do gerenciamento do seu

planejamento, variáveis como: estoque inicial planejado, estoque final planejado, previsões de

venda e metas de compra. Com o cálculo do Open to Buy é possível fazer estimativas de

compras com grande antecedência e conseqüentemente saber o valor financeiro necessário

para ser investido em determinado período. Quando o planejamento elaborado entrar em

vigência, o valor das compras será abatido do saldo disponível a cada fechamento de ordem

de compra registrada no sistema.

Neste contexto, a utilização deste módulo possibilita aos compradores uma melhor

utilização do desenvolvimento de estratégias que permitam facilitar a gestão da função

compras, evidenciando uma grande melhoria neste processo, permitindo ao gerente de

compras cadastrar planejamentos de acordo com a realidade orçamentária da empresa.

Durante toda a etapa de vigência do planejamento, é possível acompanhar o andamento do

mesmo, visualizando as quantidades já compradas e o saldo disponível para compras. Com a

utilização do planejamento de compras no Sistema Sapiens, os compradores podem

desenvolver suas funções de forma programada e profissional, visto que outros processos são

altamente dependentes desta função em uma empresa.

Como instrumento de modelagem do sistema para descrever o módulo, optou-se por

trabalhar com a Unified Modeling Language (UML), que segundo Booch, Rumbaugh e

Jacobson (2000), é uma linguagem-padrão para elaboração da estrutura de projetos de

software.

Page 50: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

50

3.1 REQUISITOS

Os requisitos descrevem as funcionalidades e características que o sistema deve

apresentar. Para tanto, a seguir estão listados os requisitos do módulo desenvolvido, divididos

em requisitos funcionais (RF) e requisitos não funcionais (RNF).

3.1.1 Requisitos funcionais

O Quadro 8 apresenta os requisitos funcionais atendidos pelo módulo de planejamento

de compras e sua rastreabilidade, ou seja, vinculação com os casos de uso associados que são

posteriormente apresentados.

Requisitos Funcionais (RF) Caso de Uso

RF01: O sistema deverá permitir ao gerente de compras projetar o saldo

disponível para compras (OTB) para determinado período.

UC01

RF02: O sistema deverá permitir ao gerente de compras gerenciar o cadastro

de planejamentos de compras.

UC02

RF03: O sistema deverá permitir a geração dos planejamentos com base no

histórico de compras ou vendas.

UC03

RF04: O sistema deverá permitir ao comprador efetuar a atualização dos

saldos disponíveis para compras através do fechamento de ordens de compra

lançadas no sistema.

UC04

RF05: O sistema deverá permitir a visualização do andamento dos

planejamentos de compras.

UC05

RF06: O sistema deverá permitir ao comprador consultar as quantidades já

compradas.

UC06

RF07: O sistema deverá permitir ao comprador consultar os saldos disponíveis

para compras.

UC07

RF08: O sistema deverá permitir ao comprador a visualização do desempenho

do planejamento com relação às vendas.

UC08

RF09: O sistema deverá permitir ao comprador emitir relatório resumido dos UC09

Page 51: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

51

planejamentos de compras.

RF10: O sistema deverá permitir ao comprador emitir relatório detalhado dos

planejamentos de compras.

UC10

Quadro 8 – Requisitos funcionais

3.1.2 Requisitos não funcionais

O Quadro 9 apresenta os requisitos não funcionais atendidos pelo sistema.

Requisitos Não Funcionais (RNF)

RNF01: O sistema deverá ser implementado utilizando o ambiente de desenvolvimento

Delphi e a Biblioteca de Componentes Visuais da Senior Sistemas.

RNF02: O sistema deverá utilizar um dos SGBDs homologados pela Senior Sistemas

Corporativos (Oracle, Sybase Server, Sybase SQL Anywhere, MS SQL Server ou DB2).

RNF03: O sistema deverá rodar em arquitetura cliente/servidor, ambiente remoto, e acesso

web, através das formas de acesso disponibilizadas pela Senior Sistemas.

Quadro 9 – Requisitos não funcionais

3.2 ESPECIFICAÇÃO

Neste item são apresentadas as especificações dos diagramas de casos de uso,

diagramas de classes, diagrama de estados e diagrama de atividades, bem como a

especificação do diagrama entidade relacionamento. Para a elaboração dos diagramas de

casos de uso, de classes, de estados e de atividades, utilizou-se a ferramenta Enterprise

Architect (EA), já para a elaboração do diagrama entidade relacionamento foi utilizada a

ferramenta MySql Workbench.

Page 52: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

52

3.2.1 Diagramas de Casos de Uso

Os casos de uso têm como função representar as principais funcionalidades que se

pode observar em um sistema e dos elementos externos que interagem com o mesmo

(BEZERRA, 2002). A seguir são apresentados os diagramas de casos de uso modelados na

fase de especificação do módulo de planejamento de compras.

3.2.1.1 Diagrama de Casos de Uso do Gerente de Compras

O gerente de compras é a pessoa responsável pelo cadastramento dos planejamentos

que envolvem as projeções de saldo a serem utilizados, bem como a possibilidade de

utilização do histórico para geração destes planejamentos. Na Figura 8, é ilustrado o diagrama

de casos de uso do módulo desenvolvido no sistema disponível ao gerente de compras.

Figura 8 – Diagrama de casos de uso gerente de compras

A seguir é fornecida uma breve descrição para os casos de uso do gerente de compras:

a) projetar saldo disponível para compras para determinado período: permite que o

Page 53: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

53

gerente de compras calcule o Open to Buy para o período de vigência de um

planejamento de compras;

b) cadastrar planejamento de compras: permite que o gerente de compras cadastre o

planejamento a ser utilizado em determinado período de vigência, informando os

dados gerais do planejamento, permitindo definir a maneira como o planejamento

irá se comportar durante o seu período de vigência, bem como informar os itens

que farão parte do planejamento;

c) efetuar planejamento com base no histórico de compras ou vendas: permite que o

gerente de compras utilize dados históricos de compras ou vendas para sugestão

automática de quebras de valores por período na geração do planejamento. Permite

que seja utilizado o histórico de ordens de compra, notas fiscais de entrada, notas

fiscais de saída e pedidos, bem como utilizar filtros para a busca dos dados

históricos.

3.2.1.2 Diagrama de Casos de Uso do Comprador

Os compradores são subordinados ao gerente de compras, eles são responsáveis por

efetuar as compras com os fornecedores, ficando limitados aos saldos disponíveis para

compras estipulados pelo gerente. Na Figura 9, é ilustrado o diagrama de casos de uso do

módulo desenvolvido no sistema disponível aos compradores.

Page 54: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

54

Figura 9 – Diagrama de casos de uso comprador

Como se pode observar na Figura 9, além das permissões apresentadas no diagrama de

casos de uso gerente de compras, o gerente também podem realizar todas as atividades

comuns entre os compradores a ele subordinado. A seguir é fornecida uma breve descrição

para os casos de uso do comprador:

a) efetuar fechamento de ordens de compra: permite que o comprador efetive o

pedido de compra com o fornecedor através da ordem de compra, onde neste

momento serão atualizados os saldos disponíveis para compras;

b) visualizar andamento do planejamento de compras: permite que o comprador a

qualquer momento faça consultas para obter detalhes sobre o respectivo

planejamento. Permite que sejam visualizadas informações inerentes aos dados

gerais do planejamento, bem como informações dos itens que fazem parte do

planejamento;

c) consultar quantidades já compradas: permite ao comprador consultar as notas

fiscais já fechadas para saber quais compras já foram realmente efetivadas;

d) consultar saldos disponíveis para compras: permite ao comprador obter

informações detalhadas acerca dos saldos que ainda possui disponíveis para

Page 55: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

55

comprar;

e) visualizar desempenho do planejamento com relação às vendas: permite que o

comprador visualize os dados do planejamento confrontando-os com os dados das

vendas efetuadas. Estes dados referem-se às quantidades e valores envolvidos no

planejamento, nas compras (notas fiscais) e nas vendas (notas fiscais) do item

planejado;

f) emitir relatório resumido do planejamento de compras: permite que o comprador

efetue a emissão de um relatório resumido dos planejamentos gravados no sistema,

a fim de obter apenas algumas das informações mais importantes dos mesmos,

como informações inerentes aos dados gerais e totalizadores de valores e saldos;

g) emitir relatório detalhado do planejamento de compras: permite que o comprador

efetue a emissão de um relatório detalhado dos planejamentos gravados no

sistema, a fim de obter todas as informações importantes dos mesmos, como

informações inerentes aos dados gerais, informações dos itens, bem como

totalizadores de valores e saldos.

3.2.2 Diagramas de Classes

Os diagramas de classes expressam a estrutura estática de um sistema e a possibilidade

de interações entre as classes (TONSIG, 2003). Segundo Guedes (2004), seu principal

enfoque é permitir a visualização das classes que irão compor o sistema com os respectivos

métodos e atributos. Cada classe do diagrama costuma possuir atributos, que guardam dados

dos objetos da classe e os métodos, que são funções que uma instância da classe pode

executar. Como são muitas as classes necessárias para o desenvolvimento do módulo de

planejamento de compras, elas estão reunidas, de acordo com as ligações lógicas entre si, em

pacotes, conforme apresentado na Figura 10.

Page 56: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

56

Figura 10 – Pacotes do módulo de planejamento de compras

3.2.2.1 Pacote ObjetosPlanejamento

O primeiro pacote é denominado ObjetosPlanejamento e contém classes relativas à

implementação das regras de negócio e demais tratamentos envolvidos na criação de um

planejamento de compras. Conforme pode ser visto na Figura 11, fazem parte deste pacote as

seguintes classes:

a) TPlanejamento: classe que implementa todos os métodos e atributos necessários

para a criação e manipulação dos dados gerais do planejamento de compras, bem

como as regras de negócio a ele associadas;

b) TItemPlanejamento: classe que implementa todos os métodos e atributos

necessários para a criação de um item de planejamento de compras, bem como as

regras de negócio associadas ao mesmo.

Segundo Braude (2005, p. 88), mostrar mais detalhes do que o necessário pode tornar

um diagrama confuso e mais difícil de entender, neste contexto, o pacote

ObjetosPlanejamento apresenta apenas os atributos e métodos mais importantes de cada

classe, com o objetivo de não poluir o diagrama.

Page 57: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

57

cd ObjetosPlanejamento

TPlanejamento

+ fCodEmp: int+ fCodFil: int+ fNumPla: long+ fCodUsu: long+ fDesPla: string+ fTipPrg: EnumTipPrg+ fBloCpr: char+ fTipPer: ENumTipPrd+ fBloCpg: EnumCriBlo+ fSitPla: ENumSitReg+ fIniVig: date+ fFimVig: date+ fDatCad: date+ fDatAlt: date+ fVlrBru: double+ fVlrLiq: double+ fQtdItp: double+ fVlrLit: long+ fTipCtl: char+ SldTot: double+ UtiTot: double+ OtbTot: double+ estado: TEstado+ gravado: boolean

+ Create()+ Destroy()- SetFCodEmp(int)- SetFCodFil(int)- SetFNumPla(long)- SetFCodUsu(long)- SetFDesPla(string)- SetFTipPrg(char)- SetFTipPer(char)- SetFBloCpr(char)- SetFBloCpg(char)- SetFSitPla(char)- SetFIniVig(date)- SetFFimVig(date)- SetFDatCad(date)- SetFDatAlt(date)- SetFTipCtl(char)+ Carrega() : boolean+ Init()+ IniciaLeituraItens()+ CriaItemPlanejamento(long) : long+ DestroiItemPlanejamento()+ RetornaPrimeiroItemPlanejamento() : TItemPlanejamento+ RetornaProximoItemPlanejamento() : TItemPlanejamento+ PosicionaItemPlanejamento(long)+ RetornaPonteiroItem() : Pointer+ CalculaValoresItemPlanejamento(TRecalc, DadosItemPlanej, boolean)+ AcumulaValores()+ Diminuivalores()+ Altera()+ Grava()+ AlteraItem()+ GravaItem()+ AlteraNumeroPlanejamentoItens()+ AtualizaLiquido()+ ExcluiPlanejamento(boolean)+ ExcluiItensPlanejamento()+ BuscaPlanejamentoAtivo() : long+ CalculaVlrLit() : double+ CalculaSldTot() : double+ CalculaUtiTot() : double+ CalculaOtbTot() : double

TItemPlanejamento

+ fCodEmp: int+ fCodFil: int+ fNumPla: long+ fSeqPla: long+ fCodOri: string+ fCodFam: string+ fCodPro: string+ fCodAgp: string+ fQtdPla: double+ fCodCpg: string+ fDatIni: date+ fDatFim: date+ fPerCre: double+ fVlrBru: double+ fVlrCre: double+ fVlrLiq: double+ fSldIte: double+ fOtbIte: double+ fVlrUti : double+ fQtdDpr: double+ fQtdUti: double+ fQtdDis: double+ estado: TEstado

+ Create(TObject, int, int, long, long)+ CreateCarrega(TObject, int, int, long, long)+ Destroy()+ Grava()+ Altera()+ CriaCustom()+ CalculaValores(boolean)+ CalculaItemPlanejamento(DadosItemPlanej)

1..*1

Figura 11 – Pacote ObjetosPlanejamento

Page 58: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

58

3.2.2.2 Pacote InterfacesPlanejamento

O segundo pacote é denominado InterfacesPlanejamento e contém classes relativas

à implementação das interfaces disponibilizadas ao usuário para manipulação do

planejamento de compras e seus itens. Conforme pode ser visto na Figura 12, como recursos

relativos à implementação das interfaces do usuário, têm-se as seguintes classes:

a) Frm_CadastraPlanejamento: classe que implementa a tela de cadastro de

planejamento de compras. Ela permite a criação de uma instância de planejamento,

bem como instâncias de itens do planejamento, além de disponibilizar vários

outros métodos que auxiliam na manipulação do planejamento de compras;

b) Frm_CalculaOTB: classe que implementa a tela de cálculo do Open to Buy para

que o gerente de compras possa incluir os itens que irão compor o planejamento de

forma consciente, sabendo o valor disponibilizado através da fórmula existente no

conceito de Open to Buy;

c) Frm_BasePlanejamento: classe que implementa a tela de base para geração do

planejamento. Esta classe disponibiliza os métodos necessários para a manipulação

dos dados históricos de compras e vendas que poderão ser utilizados ou não pelo

gerente para geração do planejamento;

d) Frm_ConsultaPlanejamento: classe que implementa a tela de consulta de

planejamentos de compras;

e) Frm_ConsultaSaldosDisponiveis: classe que implementa a tela de consulta de

saldos disponíveis nos planejamentos de compras, onde é possível visualizar os

saldos dos itens de forma agrupada e detalhada;

f) Frm_ConsultaQtdsVlrsUtilizados: classe que implementa a tela de consulta de

quantidades e valores efetivamente já utilizados, através da consulta de notas

fiscais inerentes ao planejamento de compras;

g) Frm_ConsultaDesempRelacaoVendas: classe que implementa a tela de consulta

de desempenho com relação às vendas. Esta classe disponibiliza os métodos

necessários para que a interface possa dispor ao usuário os dados dos

planejamentos e das vendas efetuadas de forma agrupada e detalhada.

Page 59: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

59

cd InterfacesPlanejamento

Frm_CadastraPlanejamento

+ planejamento: TPlanejamento+ itemPlanejamento: TItemPlanejamento+ regItem: TRegItem- codigoItemAnterior: string

- Create()- Destroy()- LimpaCampos()- DesabilitaCamposCabecalho()- PosicionaPrimeiroCampoGrid()- Processar()- Excluir()- Cancelar()- ConsisteCamposCabecalho()- ConsisteGeraisLinhaGrid()- SetaCorLabelSituacao()- Atual izaLBPlanejamentoAtivo()- Habil itaDesabili taBtAtivarPlanejamento()- Habil itaDesabili taBtInativarPlanejamento()- CalculaSaldoDisponivelCompras()- EscondeMostraCampos()- AplicaMascarasDatasVigencia()- EhDiaPrimeiroOuDia16(date) : boolean- EhDia15OuUltimoDiaDoMes(date) : boolean- DataMenorQueUltimoDiaDaQuinzena(date, date) : boolean- RetornaDataFinalQuinzena(date) : date- RetornaDataDecimoSextoDiaMes(date) : date- RetornaDataPrimeiroDiaMes(date) : date- RetornaDataUltimoDiaMes(date) : date- ExisteVinculoItemPlanejamentoComOrdensDeCompra(long, long) : boolean- BuscaValorJaUtil izadoParaCompras(int, int, long, long) : double- BuscaQuantidadeJaUtilizadaParaCompras(int, int, long, long) : double

Frm_BasePlanejamento

- regAgr: TRegAgr- regDet: TRegDet

- Create()- Destroy()- Marcar()- Desmarcar()- Cancelar()- Mostrar()- Processar()- LimpaCampos()- HabilitaDesabil itaCabecalho(boolean)- EscondeMostraCampos()- HabilitaDesabil itaClienteFornecedor()- HabilitaDesabil itaBotoesConsulta()- AplicaMascarasDatasVigencia()- RetornaProximoDomingoDaSemana(date) : date- RetornaProximoSabadoDaSemana(date) : date- DataEhSabado(date) : date- RetornaInicioProximaQuinzena(date) : date- RetornaFimProximaQuinzena(date) : date

Frm_ConsultaPlanejamento

- regPla: TRegPla- regIte: TRegIte

- Create()- Destroy()- Mostrar()- Cancelar()- LimpaCampos()- Habili taDesabi litaBotoesConsulta()- ConsultaOrigem()- ConsultaFamilia()- ConsultaProduto()- ConsultaAgrupamentoProduto()- ConsultaProdutoDerivacao()- EscondeMostraCampos()- ConsultaNFEsPlanejamento()

Frm_ConsultaQtdsVlrsUtilizados

- regNfc: TRegNfc- regIpc: TRegIpc

- Create()- Destroy()- Mostrar()- Cancelar()- LimpaCampos()- Habil itaBotoesConsulta()- MostrarTotais()- ConsultaOrdem()- ConsultaItensOC()- ConsultaInfFornecedor()

Frm_ConsultaSaldosDisponiv eis

- regAgr: TRegAgr- regDet: TRegDet

- Create()- Destroy()- Mostrar()- Cancelar()- LimpaCampos()- Habili taBotoesConsulta()- ConsultaOrigem()- ConsultaFamilia()- ConsultaProduto()- ConsultaProdutoDerivacao()- ConsultaAgrupamentoProduto()- MostrarTotais()

Frm_ConsultaDesempRelacaoVendas

- regAgr: TRegAgr- regDet: TRegDet

- Create()- Destroy()- Mostrar()- Cancelar()- LimpaCampos()- Habi litaBotoesConsulta()- ConsultaOrigem()- ConsultaFamil ia()- ConsultaProduto()- ConsultaProdutoDerivacao()- ConsultaAgrupamentoProduto()

Frm_CalculaOTB

- Create()- Calcular()- Cancelar()- LimpaCampos()- Habi litaDesabil itaCampos(char)

1

1

1

1

Figura 12 – Pacote InterfacesPlanejamento

Page 60: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

60

3.2.2.3 Pacote AuxiliaresPlanejamento

O terceiro pacote é denominado AuxiliaresPlanejamento e contém classes já

existentes no sistema, que tiveram novos métodos implementados ou que sofreram alterações

em alguns métodos para contemplar as regras de negócio do planejamento de compras, bem

como contém também algumas enumerações utilizadas no planejamento. Conforme pode ser

visto na Figura 13, fazem parte deste pacote as seguintes classes e enumerações:

a) Frm_CadastraOrdemCompra: classe que implementa a tela de cadastro de ordens

de compra. Nesta classe foram adicionados novos métodos para tratamento do

vínculo de itens de planejamento de compras com itens de ordens de compra.

Foram implementados também métodos para atualização dos saldos disponíveis

para compras em diversas situações;

b) Frm_CadastraNFEntrada: classe que implementa a tela de cadastro de notas

fiscais de entrada. Esta classe sofreu alterações em alguns métodos para que seja

possível fazer o vínculo de um item de ordem de compra com um item de nota

fiscal de entrada, atribuindo a chave do planejamento à nota, para fins de

amarração entre todos os documentos envolvidos no processo de planejamento;

c) Frm_ConsultaOCGeracaoNFE: classe que implementa a tela de consulta de ordens

de compra a serem processadas para geração da nota fiscal de entrada. Esta classe

também sofreu alterações para contemplar o vínculo com o planejamento de

compras;

d) ENumSitReg: enumeração que define a situação do planejamento de compras,

possuindo os possíveis valores: ativo ou inativo;

e) ENumTipPrd: enumeração que define o tipo de período a ser considerado no

planejamento de compras, possuindo os possíveis valores: semanal, quinzenal ou

mensal;

f) ENumTipPrg: enumeração que define o tipo da programação de compras efetuada

no planejamento, possuindo os possíveis valores: programação por origem,

família, produto ou agrupamento de produtos;

g) ENumTipCtl: enumeração que define o tipo de controle de saldo do planejamento,

possuindo os possíveis valores: quantidade (controle físico), valor (controle

financeiro) ou ambos (controle físico e financeiro);

h) ENumCriBlo: enumeração que define qual o tipo de bloqueio de compras de

Page 61: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

61

produtos não planejados e também o tipo de bloqueio de compras com condição de

pagamento não planejada no item de produto, possuindo os possíveis valores:

libera, avisa ou bloqueia.

cd AuxiliaresPlanejamento

Frm_CadastraOrdemCompra

- regRegOrdemCompra: TRegOrdemCompra- regItemProdutoOC: TRegItemProdutoOC

- TrataVinculoPlanejamentoComprasItemProduto()- ConsisteCondicaoPgtoPlanejamento(DadosItemPlanej)- BuscaOrigemProduto(int, string) : string- BuscaAgrupamentoComercialProduto(int, string) : string- BuscaDescricaoPlanejamentoCompras(int, int, long) : string- AtualizaOpenToBuyItemPlanejamento_FechamentoItem_AlteracaoValorItemJaFechado(DadosItemOC, DadosItemOCOLD, boolean)- AtualizaOpenToBuyItemPlanejamento_CancelamentoOC(ListaProdutos)- AtualizaOpenToBuyItemPlanejamento_CancelamentoItemJaFechado_Reabil itacaoOC(DadosItemOC)

Classe já existente no sistema, nesta são apresentados apenas os atributos mais importantes e os métodos que foram implementadosno desenvolvimento do planejamento de compras.

«enumeration»ENumSitReg

+ ativo: + inativo:

«enumeration»EnumTipPrg

+ produto: + familia: + origem: + agrupamentoProduto:

«enumeration»ENumTipPrd

+ semanal: + quinzenal: + mensal:

«enumeration»ENumTipCtl

+ quantidade: + valor: + ambos:

«enumeration»EnumCriBlo

+ avisa: + l ibera: + bloqueia:

Frm_CadastraNFEntrada

- RegNotaEntrada: TRegNotaEntrada- RegItemProdutoNFE: TRegItemProdutoNFE

- TrataSaidaSequenciaItemProdutoGrid()- ProcessaItens()- CarregaDadosProduto()

Frm_ConsultaOCGeracaoNFE

- RegOrdemCompra: TRegOrdemCompra- RegItemProdutoOC: TRegItemProdutoOC

- Mostrar()- Processar()

Classes já existentes no sistema, nestas são apresentados apenas os atributos mais importantes e os métodos que sofreram alterações para contemplar o planejamento de compras.

1

1

Figura 13 – Pacote AuxiliaresPlanejamento

Page 62: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

62

3.2.3 Diagrama de Estados

Segundo Braude (2005, p. 100), “um diagrama de transição de estado mostra os

estados dos objetos de uma classe, os eventos aos quais os objetos são sensíveis e as

transições resultantes entre eles”. A Figura 14 apresenta o diagrama de estados da classe

TPlanejamento .

Figura 14 – Diagrama de estados da classe TPlanejamento

No diagrama apresentado na Figura 14, observa-se que o planejamento de compras

quando cadastrado, inicia seu estado como inativo, ficando a critério do gerente de compras

efetuar sua ativação quando achar necessário. Nota-se ainda, que a ativação do planejamento

não indica o uso do mesmo pelos compradores, a sua utilização como ferramenta para

controle de saldos somente é feita quando o estado muda para ativo em andamento, o que

indica que as datas que estão sendo efetuadas as ordens de compra estão dentro do período de

vigência estabelecido pelo gerente de compras.

Page 63: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

63

3.2.4 Diagrama de Atividades

Um diagrama de atividade descreve o comportamento de um processo ou função

através da especificação da sequência de operações e decisões que permitem determinar

quando e como elas são realizadas. De maneira geral, consiste numa série de atividades

ligadas por transições (SILVA; VIDEIRA, 2005). A Figura 15 apresenta o diagrama de

atividades do módulo de planejamento de compras, onde é ilustrado o fluxo de trabalho deste

módulo.

Observa-se que o diagrama apresentado na Figura 15 faz a simulação de um

planejamento que possui a característica de bloquear compras de produtos sem saldo (físico

ou financeiro) disponível para tal finalidade, portanto, para poder efetuar o fechamento de

uma ordem de compra, ou seja, a concretização de um pedido com determinado fornecedor, é

necessário que o item de produto possua saldo disponível para compras.

No caso do item não possuir saldo, ou a quantidade ou valor financeiro do mesmo

ultrapassar o disponível no planejamento, o comprador deverá entrar em contato com o

gerente, a fim de conseguir um aumento do saldo disponibilizado inicialmente.

Page 64: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

64

Figura 15 – Diagrama de atividades do planejamento de compras

Page 65: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

65

3.2.5 Diagrama Entidade Relacionamento

Para Rezende (2005, p. 174), a notação fundamental para a modelagem de dados é o

diagrama entidade relacionamento. Segundo o autor, o principal propósito deste diagrama é

representar os objetos de dados e suas relações, sendo que cada entidade termina representada

por pelo menos uma tabela de dados. O diagrama entidade relacionamento do módulo

desenvolvido no presente trabalho é apresentado na Figura 16, o mesmo foi elaborado

utilizando-se a notação Crows Foot.

Um ponto a ser observado no diagrama entidade relacionamento da Figura 16, é que,

não foi preciso criar todas as tabelas apresentadas no diagrama. Foram criadas apenas as

tabelas PLANEJCOMPRAS (armazenamento dos dados gerais do planejamento de compras)

e ITENSPLANEJAMENTO (armazenamento dos itens do planejamento), isto porque o

planejamento de compras usufrui também de outras tabelas já existentes no Sistema Sapiens.

As tabelas ITENSPROOC (itens de produto de ordem de compra) e ITENSPRONFE

(itens de produto de nota fiscal de entrada) sofreram alterações para armazenar a chave do

item de planejamento que estará vinculado ao item de produto destas tabelas.

Outro ponto a ser observado é que um item de produto de ordem de compra pode ser

utilizado em mais de um item de nota fiscal de entrada, porém somente em notas fiscais

diferentes. Esta observação se faz necessária, pois, se fizéssemos um relacionamento um para

um nestas tabelas, entenderíamos que um item de ordem de compra só poderia estar presente

em um único item de nota fiscal de entrada, seja ela qual for, o que não é verdade.

No diagrama da Figura 16, foram apresentadas somente as tabelas que possuem algum

vínculo direto com o planejamento, a fim de não poluir o diagrama. O modelo de dados de

todo o sistema pode ser considerado de alta complexidade, isto se justifica pelo grande

volume de tabelas existentes, atualmente, são mais de 1200 tabelas. O grande número de

tabelas existentes ocorre devido à necessidade de o sistema precisar se adaptar a vários tipos

de mercado, bem como uma série de outros controles necessários para a realização de

diversos processos. No Apêndice A, encontram-se as definições das tabelas e campos

envolvidos no desenvolvimento do módulo de planejamento de compras.

Page 66: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

66

Figura 16 – Diagrama entidade relacionamento

3.3 IMPLEMENTAÇÃO

Neste item referente à implementação são descritas as técnicas e ferramentas utilizadas

no desenvolvimento do módulo de planejamento de compras, bem como é apresentada

também a operacionalidade da implementação.

Page 67: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

67

3.3.1 Técnicas e ferramentas utilizadas

Nesta seção são apresentadas as técnicas e ferramentas utilizadas para a

implementação do módulo desenvolvido no sistema, tais como: Borland Delphi, Sybase SQL

Anywhere (SGBD), Central de Banco de Dados Senior (CBDS) e Gerador de Relatórios

Sapiens.

O módulo de planejamento de compras foi implementado na linguagem Object Pascal,

utilizando o ambiente de desenvolvimento Delphi 5 e a Senior Visual Component Library

(SVCL), que é uma Biblioteca de Componentes Visuais desenvolvida por uma equipe de

tecnologia da Senior Sistemas utilizada no desenvolvimento de seus produtos. O Delphi 5 está

dividido em três versões, que foram projetadas de modo a se adaptar a uma série de diferentes

necessidades: Delphi 5 Standard, Delphi 5 Professional e Delphi 5 Enterprise. Cada uma

dessas versões é indicada para um tipo diferente de programador.

O Delphi 5 Enterprise foi a versão utilizada no desenvolvimento do módulo de

planejamento de compras, ela se destina a programadores que trabalham em ambiente

cliente/servidor de grandes corporações, incluindo tudo o que está disponível nas duas outras

edições do Delphi 5, além de uma série de outros recursos (TEIXEIRA; PACHECO, 2000, p.

4).

O Sybase SQL Anywhere é um pacote abrangente que fornece tecnologias de

gerenciamento e de troca de dados, que possibilitam rápido desenvolvimento e

implementação de aplicativos ativados por banco de dados. Este pacote oferece bancos de

dados de nível corporativo, que se adaptam tanto a servidores de 64 bits com milhares de

usuários quanto a pequenos dispositivos portáteis. As tecnologias de troca de dados do SQL

Anywhere estendem as informações dos aplicativos e sistemas corporativos a bancos de dados

executados em ambientes de linha de frente de missão crítica. As ferramentas de design e de

gerenciamento do SQL Anywhere permitem que os desenvolvedores implementem e usem

aplicativos de linha de frente e habilitem os administradores a gerenciar e oferecer suporte aos

desenvolvedores com grande facilidade (SYBASE, 2009).

Apesar de o Sistema Sapiens estar homologado para ser utilizado em diversos Sistemas

Gerenciadores de Banco de Dados (SGBDs), o Sybase SQL Anywhere na sua versão 9.0.1 foi

o SGBD utilizado durante todo o período de desenvolvimento do módulo de planejamento de

compras, sendo que ainda como etapa de validação final, o módulo foi testado em todos os

outros SGBDs já mencionados, homologados pela Senior Sistemas Corporativos.

Page 68: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

68

3.3.1.1 Central de Banco de Dados Senior (CBDS)

Conforme Senior Sistemas (2009h), a Central de Banco de Dados Senior (CBDS) é

uma ferramenta desenvolvida pela Senior utilizada na linha de frente para a customização dos

sistemas no atendimento aos requisitos dos clientes. Entre os diversos recursos disponíveis

nesta ferramenta, destacam-se os seguintes itens:

a) manutenção e criação de novas tabelas, campos, índices, stored procedures e

usuários;

b) backup e restore de base de dados de diferentes SGBDs;

c) engenharia reversa;

d) configurações de armazenamento;

e) permissão e monitoramento de tabelas e campos;

f) editor de SQL;

g) consistência de bases de dados;

h) diversos relatórios referentes à base de dados;

A Figura 17 apresenta a interface do CBDS.

Figura 17 – Interface da ferramenta CBDS

Page 69: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

69

3.3.1.2 Gerador de Relatórios Sapiens

O gerador de relatórios é uma ferramenta adicional dos sistemas da Senior que

possibilita a adaptação e criação de relatórios gráficos por parte dos usuários para atender as

suas necessidades (SENIOR SISTEMAS, 2004). Cada relatório criado no sistema é

denominado ‘modelo’, sendo que cada um destes modelos possuem uma categoria que indica

qual o módulo ou processo do sistema o mesmo está relacionado. Ao criar um modelo, é

gerado um arquivo criptografado que somente pode ser interpretado pelos sistemas da Senior.

A Figura 18 apresenta a interface do gerador de relatórios no Sistema Sapiens.

Figura 18 – Interface do gerador de relatórios do Sistema Sapiens

3.3.2 Operacionalidade da implementação

O módulo de Planejamento de Compras desenvolvido no ERP Sapiens tem por

Page 70: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

70

objetivo automatizar e gerenciar todo o processo de programação de compras efetuadas pelo

gerente desta respectiva área, em um determinado período. Para tanto, o gerente poderá

cadastrar um planejamento informando suas características de funcionamento e quais

mercadorias irão fazer parte deste planejamento, bem como seus limites de compra, tanto

físico quanto financeiro.

Conforme pode ser visto na Figura 19, no módulo Comercial do sistema é

disponibilizado um menu contendo a tela de cadastro de planejamentos e as telas de consultas

inerentes aos mesmos. Para as consultas são apresentadas as seguintes telas: consulta de

planejamentos, consulta de quantidades e valores já utilizados para compras (notas fiscais de

entrada), consulta de saldos disponíveis para compras e consulta de desempenho do

planejamento com relação às vendas.

Figura 19 – Menu do módulo de planejamento de compras

Além da tela de cadastro e telas de consultas, são disponibilizados também através do

caminho “Comercial > Relatórios Gerais”, dois relatórios de planejamentos de compras,

sendo um relatório resumido e outro detalhado, conforme pode ser visto na Figura 20.

Page 71: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

71

Figura 20 – Tela de seleção dos relatórios gerais do módulo Comercial

Antes de iniciar o processo de planejamento de compras, o administrador do sistema

deve informar às pessoas que terão acesso a tela de cadastro de planejamentos. Esta tela pode

ser considerada o coração do módulo de planejamento de compras, pois, é através dela que

são feitas as manutenções dos saldos de compras quando necessário, ou seja, o aumento do

saldo disponível quando este não for mais suficiente para que as compras possam ser

realizadas com os fornecedores. A permissão ou não permissão de acesso para determinada

tela do sistema é feita através de um recurso já existente no Sistema Sapiens, conforme pode

ser visto na Figura 21.

Figura 21 – Tela de permissões de acesso do Sistema Sapiens

Page 72: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

72

Conforme apresentado na Figura 21, no caso do planejamento de compras, o único

usuário com acesso a tela de cadastro de planejamentos deve ser o gerente de compras, para

tanto, o administrador do sistema deve liberar acesso para o gerente de compras e negar

acesso para todos os demais usuários. Desta forma, a tela de cadastro somente ficará visível

no menu do sistema para o usuário com tal permissão de acesso, ou seja, o gerente de

compras. Este critério é adotado apenas para a tela de cadastro, sendo que não existe nenhuma

restrição para as telas de consulta, porém, este critério pode variar de empresa para empresa,

ou, de filial para filial.

Após a configuração de permissão de acesso, o sistema estará apto a trabalhar com

planejamentos de compras. A seguir, são apresentadas as telas implementadas no sistema com

o objetivo de ilustrar a operacionalidade do módulo desenvolvido, sendo que, no Apêndice B

encontram-se os métodos de maior relevância de algumas das classes implementadas no

desenvolvimento deste módulo.

3.3.2.1 Tela de “Cadastro de Planejamentos de Compras”

Através da tela de cadastros de planejamentos, o gerente de compras pode cadastrar os

mesmos, bem como efetuar manutenções quando for necessário. Através da mesma também é

possível fazer um acompanhamento, visualizando o andamento do planejamento durante todo

o seu período de vigência. A Figura 22 apresenta a tela de cadastro de planejamentos de

compras quando iniciada.

Page 73: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

73

Figura 22 – Tela de cadastro de planejamentos de compras

O primeiro passo para a criação de um planejamento é definir a descrição do mesmo,

sendo que, para o número do planejamento o sistema atribui um número seqüencial. A

descrição do planejamento deve ser elaborada de forma que sua leitura seja de fácil

compreensão, pois ela aparecerá nas demais etapas do planejamento de compras.

O próximo campo a ser informado é o Tipo de Período a ser considerado para o

planejamento, além de servir como controle no momento da informação do período de

vigência, este campo é responsável também por definir as quebras de datas de previsão de

entregas das mercadorias quando utilizado a tela de base para geração do planejamento. Os

valores disponíveis para o campo Tipo de Período são: Semanal, Quinzenal e Mensal.

O planejamento inicia seu estado como inativo e após o efetivo cadastro através do

botão “Processar”, caso não exista nenhum planejamento ativo no momento, o sistema

questiona ao gerente se o mesmo deseja ativá-lo. Caso a decisão seja não ativar o

planejamento, o mesmo poderá ser ativado posteriormente quando for conveniente, ou quando

chegar ao período de vigência do planejamento. O sistema não permite trabalhar com mais de

um planejamento ativo ao mesmo tempo, então, para ativar um planejamento de compras, o

Page 74: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

74

planejamento anterior, caso exista, deverá ser inativado.

O próximo campo a ser informado é o indicativo se o planejamento deve bloquear

compras de produtos não planejados. Os seguintes valores estão disponíveis para este campo:

a) libera: na geração de ordens de compra, quando o comprador informar um produto

que não consta no planejamento, o sistema não fará nenhuma consistência com

relação ao bloqueio da compra deste produto;

b) avisa: esta opção indica que na geração de ordens de compra, quando o comprador

informar um produto que não consta no planejamento, o sistema não bloqueará a

compra deste produto, porém, irá alertar o comprador de tal situação;

c) bloqueia: esta opção indica que na geração de ordens de compra, quando o

comprador informar um produto que não consta no planejamento, o sistema não

permitirá a sua utilização, informando que o item não está disponível para compras

no planejamento de compras.

Semelhante ao campo anteriormente mencionado, também está disponível no

planejamento o indicativo se o planejamento deve bloquear compras de produtos com

condição de pagamento não planejada. Este campo segue o mesmo critério do campo anterior,

porém a consistência na ordem de compra é feita com uma informação dos dados gerais da

ordem, e não dos itens, neste caso, a condição de pagamento. O período de vigência é uma das

informações mais importantes do planejamento, além de definir o período que o mesmo será

executado, ele define também as consistências dos períodos de previsão de entrega dos itens,

de forma que estas previsões somente possam ser planejadas dentro do período informado no

cabeçalho do planejamento.

O próximo campo a ser informado é o indicativo se o planejamento efetua o controle

de saldos de forma física ou financeira. Os seguintes valores estão disponíveis para este

campo:

a) quantidade (controle físico): indica que o sistema irá efetuar o abatimento apenas

nos saldos de quantidades dos itens planejados;

b) valor (controle financeiro): indica que o sistema irá efetuar o abatimento somente

nos saldos de valores dos itens planejados, ou seja, irá controlar o Open to Buy;

c) ambos (controle físico e financeiro): esta opção indica que o sistema efetuará tanto

o controle de saldo físico quanto financeiro.

Após informado o tipo de controle de saldo, deve-se informar o tipo de programação

de compras que será efetuado no planejamento. Estão disponíveis as opções: origem, família,

produto e agrupamento de produtos comerciais. Estas opções seguem a hierarquia do cadastro

Page 75: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

75

de produtos existente no Sistema Sapiens, sendo que a única opção não disponível no

planejamento é a derivação de um produto. A derivação de um produto no Sistema Sapiens

não foi implementada no planejamento por ser uma categoria de um baixo nível muito

expressivo para o ramo de varejo, o que na maioria dos casos inviabiliza o planejamento das

compras, sendo que, o mais adequado seria trabalhar com a programação de produtos ao invés

de derivações. A Figura 23 ilustra um exemplo de hierarquia de produtos existente no Sistema

Sapiens.

Figura 23 – Exemplo de hierarquia de produtos existente no Sistema Sapiens

A Figura 24 ilustra um exemplo de hierarquia de produtos utilizando agrupamento de

produtos.

Figura 24 – Exemplo de hierarquia de produtos utilizando agrupamento de produtos

Além dos campos já mencionados, o planejamento de compras armazena também o

código do usuário responsável pelo cadastro, ou seja, o gerente de compras, bem como a data

de cadastro e a data de alteração, que será alimentada sempre que for efetuada alguma

manutenção no planejamento.

Um ponto a ser observado, é que, dependendo do tipo de período informado, o

planejamento se comporta de forma diferente com relação às datas do período de vigência,

como exemplo, têm-se a alteração das máscaras destes campos quando utilizado o tipo de

período mensal, para se trabalhar apenas com mês e ano nas datas de vigência. Diversas

Page 76: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

76

consistências são feitas com relação às datas do período de vigência, como exemplo, pode-se

citar o período quinzenal. Entende-se que em um mês existem apenas duas quinzenas, e que

para o comércio, a primeira quinzena inicia no 1° dia do mês, indo até a metade do respectivo

mês, ou seja, o 15° dia. A segunda quinzena inicia-se logo após o término da primeira, ou

seja, no 16° dia, indo até o último dia do mês. Neste sentido, são necessárias algumas

consistências no planejamento. Um exemplo pode ser visto na mensagem emitida ao usuário

conforme demonstrado na Figura 25.

Figura 25 – Mensagem de aviso para escolha correta do início de uma quinzena

No exemplo da Figura 25, o gerente de compras está no mês de junho de 2009,

planejando as suas compras para os próximos três meses, ao informar uma data qualquer do

mês de julho que não seja dia 1° ou 16°, o sistema sugere as possíveis datas para o início do

período de vigência do planejamento. Ainda utilizando a quinzena como exemplo, caso o

gerente optar por fazer o planejamento para apenas uma quinzena, informando uma data final

para o período onde esta seja menor que o último dia da referida quinzena, o sistema

questiona ao usuário se o mesmo deseja aplicar a única data possível, conforme apresentado

na Figura 26.

Figura 26 – Mensagem de confirmação para aplicação correta da data final da quinzena

Outra consistência feita com relação às datas do período de vigência, é que, a data

inicial do período não pode ser menor que a data atual, ou seja, não fez sentido o gerente fazer

um planejamento para um período que já passou. Uma exceção ocorre no tipo de período

mensal, onde o gerente pode efetuar o planejamento do mês corrente mesmo que o mês já

tenha sido iniciado. Um exemplo de consistência para data de início de vigência informada

menor que a data atual é apresentada na Figura 27, onde o tipo de período a ser trabalhado é o

Page 77: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

77

semanal.

Figura 27 – Mensagem de advertência para a não utilização de período passado

Outro ponto a ser observado, é que, embora o planejamento disponibilize os tipos de

períodos para se trabalhar, nada impede que o gerente efetue o seu planejamento para um

período maior que um mês, ou seja, o mesmo pode fazer programações de compra para

qualquer período. Por exemplo, o gerente pode trabalhar com programações de compras

semanais, quinzenais, mensais, trimestrais, ou até mesmo anuais, onde neste último caso,

estando em dezembro de 2009, o mesmo pode fazer as programações para todo o ano de

2010, ficando a sua escolha qual a melhor forma de se trabalhar com a vigência de um

planejamento. Conforme pode ser observado na Figura 22 demonstrada anteriormente, alguns

campos já iniciam com um valor padrão que é sugerido pelo sistema. Cada gerente de

compras precisa analisar qual a melhor forma de aplicação destas opções e quais os impactos

as mesmas terão no departamento de compras.

A Figura 28 ilustra um exemplo dos dados gerais informados no cabeçalho de um

planejamento de compras.

Figura 28 – Exemplo de dados do cabeçalho já informados em um planejamento

A próxima etapa é efetuar o cálculo do Open to Buy para o período de vigência do

planejamento, isto caso o mesmo utilize o controle financeiro, pois para planejamentos com

apenas controle físico dos produtos não existe necessidade de considerar o Open to Buy. Este

cálculo é feito pelo gerente de compras em uma tela desenvolvida especificamente para tal

funcionalidade. Esta tela é denominada “Cálculo do Open to Buy” e pode ser acessada através

do botão “Cálculo OTB $”, disponível no rodapé da tela de cadastro.

Page 78: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

78

Embora os autores apliquem a fórmula para obter o Open to Buy do mês corrente ou

dos próximos meses, característica do mercado varejista, o módulo de planejamento de

compras desenvolvido no presente trabalho não se limita a trabalhar apenas com

planejamentos mensais, conforme mencionado anteriormente. Para tanto, os tipos de períodos

disponibilizados no cálculo do OTB foram denominados “período corrente” e “período

futuro”, ao invés de “mês corrente” e “mês futuro” (próximos meses). A Figura 29 apresenta a

tela de Cálculo do Open to Buy para o período corrente.

Figura 29 – Tela de cálculo do OTB para período corrente

No exemplo da Figura 29, pode-se observar que a fórmula para o cálculo do Open to

Buy para período o corrente é muito simples, porém, a sua simplicidade ajuda os compradores

a evitarem problemas futuros relacionados à área financeira da empresa. Após lançados os

valores no cálculo, descobre-se que o valor ideal para gastar com compras no período é de R$

183.500,00. Para o cálculo do Open to Buy de um período futuro, a fórmula também é muito

simples e semelhante ao cálculo do período corrente. As mudanças mais significativas para

esta fórmula com relação ao período corrente são:

a) deve ser considerado o estoque planejado para o final do período, ao invés do

estoque planejado para próximo período;

b) deve ser considerado o estoque planejado para o início do período, ao invés do

estoque atual do período corrente;

c) após calculado o valor das compras planejadas, deve ser considerado o valor total

Page 79: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

79

de possíveis ordens de compra programadas com os fornecedores para o período.

A Figura 30 apresenta a tela de Cálculo do Open to Buy para um período futuro.

Figura 30 – Tela de cálculo do OTB para período futuro

No exemplo da Figura 30, pode-se observar que após lançados os valores no cálculo,

descobre-se que o valor ideal para gastar com compras no período, quando o mesmo chegar, é

de R$ 210.500,00. Com o Open to Buy calculado, a próxima etapa do cadastro é informar os

itens que farão parte do planejamento na grid denominada “Itens do Planejamento”. A

inserção de itens nesta grid pode ocorrer de duas formas: inserção manual, ou fazendo uso da

tela de “Base para Planejamento”. O Quadro 10 apresenta o significado de cada campo

utilizado na grid de “Itens do Planejamento”, bem como suas funcionalidades/características.

Seq. Sequência do Item: identifica a sequência do item do planejamento de

compras. Sua numeração é incrementada automaticamente pelo

sistema a cada novo item inserido na grid.

Origem Código da Origem de Produto: este campo fica visível na grid somente

quando o tipo de programação for Origem.

Família Código da família de produto: este campo fica visível na grid somente

quando o tipo de programação for Família.

Produto Código do produto: este campo fica visível na grid somente quando o

tipo de programação for Produto.

Page 80: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

80

Agrupamento de Produtos Código do agrupamento de produtos: este campo fica visível na grid

somente quando o tipo de programação for Agrupamento Produto

Comercial.

Início Prev. Entrega Data inicial da previsão de entrega: indica o início do período

programado para a entrega do item. Este período será utilizado na

identificação do item de planejamento nas ordens de compra para

amarração entre os documentos e abatimentos de saldos. É permitido

informar apenas previsões de entrega que estejam dentro do período de

vigência do planejamento.

Fim Prev. Entrega Data final da previsão de entrega: semelhante ao campo Início Prev.

Entrega, porém, indica o fim do período programado para a entrega do

item.

Quantidade Quantidade planejada para compra: indica a quantidade prevista para o

item a ser adquirido pelos compradores.

Valor Item Valor do item do planejamento: indica o valor total previsto para o

item a ser adquirido pelos compradores.

Cond. Pgto. Código da condição de pagamento do item: indica qual é a condição de

pagamento prevista para as compras do item.

Desc. Cond. Pgto. Descrição da condição de pagamento.

% Crescimento Percentual de crescimento aplicado no item: este percentual é aplicado

sobre o valor disponível para compras no período, a fim de simular um

possível crescimento das vendas de determinando item e

conseqüentemente a necessidade de um aumento nas compras.

Vlr. Crescimento Valor de crescimento aplicado no item.

Valor Disponível p/ Compras

no Período

Valor disponível para compras no período de entrega previsto: este

campo recebe o valor do campo Valor Item e somente é alterado

quando informado um percentual de crescimento.

Valor Utilizado p/ Compras Valor já utilizado para compras: este campo indica o valor do item já

utilizado pelos compradores no fechamento de ordens de compra. Este

valor somente é atualizado caso o planejamento utilize o controle

financeiro para abatimento de saldos.

Saldo Disponível p/ Compras

(OTB)

Saldo disponível para compras do item do planejamento, ou Open to

Buy do item: este saldo também é atualizado no fechamento de ordens

de compra, da mesma forma que o valor utilizado para compras,

seguindo o mesmo critério de controle financeiro para abatimento de

saldos.

Page 81: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

81

Qtd. Disponível p/ Compras

no Período

Quantidade disponível para compras no período de entrega previsto.

Qtd. Utilizada p/ Compras Quantidade já utilizada para compras: este campo indica a quantidade

do item já utilizada pelos compradores no fechamento de ordens de

compra. Esta quantidade somente é atualizada caso o planejamento

utilize o controle físico para abatimento de saldos.

Saldo de Qtd. Disponível p/

Compras

Saldo de quantidade disponível para compras do item do planejamento:

este saldo também é atualizado no fechamento de ordens de compra, da

mesma forma que a quantidade utilizada para compras, seguindo o

mesmo critério de controle físico para abatimento de saldos.

Quadro 10 – Campos da grid de “Itens do Planejamento”

Todos os campos editáveis anteriormente mencionados são informações obrigatórias,

com exceção do percentual de crescimento.

A tela de “Base para Planejamento” funciona como um grande facilitador para a

geração do planejamento. Através dela é possível fazer uma análise mais detalhada, onde o

gerente de compras pode definir quais itens e quantidades irão fazer parte do planejamento

baseando-se no histórico de compras ou vendas. Esta tela é acessada através do botão “Base

Planej.”, disponível no rodapé da tela de cadastro. A Figura 31 apresenta a tela de base para

planejamento de compras no momento de sua inicialização.

Figura 31 – Tela de base para geração do planejamento de compras

Conforme se pode observar na Figura 31, a tela de base para planejamento possui

Page 82: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

82

várias opções de filtro disponíveis. Inicialmente, é preciso selecionar qual o histórico

(compras ou vendas) se deseja visualizar, são disponibilizadas as opções: Ordem Compra,

Notas Entrada, Pedidos e Notas Saída.

O período do histórico sugerido pelo sistema é sempre o mesmo período da vigência,

porém do ano anterior. Esta é apenas a sugestão do sistema, sendo que o gerente de compras

pode utilizar qualquer data para carregar o histórico. Como exemplo, pode-se querer utilizar o

histórico de notas fiscais de saída dos meses de junho e julho de 2008 para a geração do

planejamento de julho de 2009, pressupondo que às vendas aumentarão de tal forma, que

serão vendidas em apenas um mês, as mercadorias que foram vendidas em dois meses do ano

anterior. A Figura 32 demonstra um exemplo de histórico já carregado na tela de base para

planejamento.

Figura 32 – Exemplo de histórico de compras

Como pode ser visto na Figura 32, o exemplo demonstra a utilização de um histórico

de compras baseado nas ordens de compra efetivadas no mês de dezembro de 2008. A tela

apresenta duas grids, sendo uma para visualização dos dados de forma agrupada e outra para

visualização de forma detalhada. No exemplo, percebe-se que o tipo de período a ser

trabalhado é o semanal e o tipo de programação é por produtos.

Page 83: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

83

O carregamento do histórico possui uma regra diferente para cada tipo de período, por

exemplo, para trabalhar com tipo de período semanal, entende-se que uma semana começa no

domingo e termina no sábado, então, no carregamento detalhado dos itens é feito uma quebra

para que seja obedecido tal critério. Percebe-se então, que, a primeira semana do mês de

dezembro de 2008 começa no primeiro dia do mês, independente se este é ou não domingo,

indo até o último dia da semana (06/12/2008). As semanas seguintes obedecem ao critério de

início e fim da semana, sendo que o último dia da última semana equivale ao último dia do

mês, ou seja, a última semana do mês de dezembro de 2008 equivale ao período de

28/12/2008 à 31/12/2008, porém, como se pode perceber na Figura 32, nesta semana não

houve compras para o produto utilizado no filtro da carga dos dados históricos.

Na Figura 32, percebe-se também que no mês de dezembro de 2008 foram compradas

814 unidades (pares) do produto TENISADIDAS, a um preço médio de R$ 99,04. Nota-se

que valor total aproximado desta compra foi de R$ 80.620,00, e que depois de informado o

valor de 10% de crescimento, o valor do saldo sugerido para ser utilizado no Open to Buy do

item, que inicialmente era o mesmo valor que o total da compra, passou a ser R$ 88.682,00. O

mesmo critério adotado na carga dos valores do histórico agrupado é utilizado para a carga do

histórico detalhado, segundo as regras de quebras semanais.

As quebras dos dados da grid de histórico detalhado nos tipos de período quinzenal e

mensal acontecem da mesma forma que o tipo de período semanal, porém, ao invés de as

quebras acontecerem por semana, no tipo de período quinzenal estas são feitas conforme as

duas quinzenas existentes no mês, já no tipo mensal, é feito a soma de todas as compras do

mês. A Figura 33 apresenta um exemplo de histórico de famílias de produto de notas fiscais

de entrada utilizando o tipo de período quinzenal.

Page 84: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

84

Figura 33 – Exemplo de histórico utilizando tipo de período quinzenal

Na Figura 34 é apresentado um exemplo de histórico de agrupamento de produtos de

notas ficais de saída utilizando o tipo de período mensal.

Figura 34 – Exemplo de histórico utilizando tipo de período mensal

Page 85: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

85

É necessário também, que antes do processamento, o gerente de compras informe uma

condição de pagamento a ser utilizada nos itens, sendo que caso seja necessário efetuar a

alteração de condição de pagamento de algum item, isto pode ser feito na tela de cadastro

após a geração dos itens através do botão “Processar” da tela de base para planejamento. Na

grid de histórico agrupado existe o campo “Sel.” o qual permite que sejam selecionados

apenas os itens que realmente se deseja incluir no planejamento de compras.

No rodapé da tela de base para planejamento existem botões de consulta, estas

consultas referem-se à visualização de todos os dados do item posicionado na grid de

histórico agrupado. O botão relacionado à consulta do item fica habilitado conforme o tipo de

programação escolhida, ou seja, ao se trabalhar com programação de agrupamentos de

produtos, somente o botão “Agrup. Prod.” ficará habilitado. Este mesmo critério também é

utilizado para os outros tipos de programação, sendo que para programação por produtos são

dois botões que ficam habilitados, um para consulta padrão via tela de pesquisa de registro

existente no Sistema Sapiens e outro para consulta detalhada do produto e suas derivações.

A Figura 35 apresenta um exemplo de consulta dos dados de um produto via tela de

pesquisa de registro do Sistema Sapiens.

Figura 35 – Consulta de produto base para planejamento via tela de pesquisa de registro

Após processado os itens selecionados na tela de base para planejamento, os mesmos

são incluídos automaticamente na grid de “Itens do Planejamento” da tela de cadastro, sendo

que esta inserção obedece algumas regras durante o processamento. Ao processar os itens na

tela de base para planejamento, o sistema efetua novamente as quebras de valores e também

dos períodos de previsão de entrega, para que estes se ajustem conforme o período de

vigência do planejamento, seguindo os mesmos critérios de quebras de períodos utilizados no

carregamento da base do planejamento. A Figura 36 apresenta um exemplo dos itens de

Page 86: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

86

produto de um planejamento inseridos no cadastro após o processamento da base do

planejamento.

Figura 36 – Itens do planejamento após utilização da base para geração

A Figura 37 apresenta os demais campos da grid de “Itens do Planejamento” não

visualizados na Figura 36.

Figura 37 – Valores e saldos dos itens de planejamento

Page 87: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

87

No exemplo apresentado nas Figuras 36 e 37, foi utilizado o mês de dezembro de 2008

para geração dos itens de planejamento do mês de julho de 2009. Com relação ao período de

previsão de entrega previsto para os itens, nota-se que foi utilizado o tipo de período semanal,

portanto, os períodos foram inseridos nos itens seguindo o conceito de início e fim das

semanas, conforme explicado anteriormente. Percebe-se também, que a distribuição dos

valores e quantidades da grid de “Itens do Planejamento” ocorreu de forma proporcional aos

valores e quantidades visualizados anteriormente na grid de “Histórico Agrupado” da tela de

base para planejamento.

A tela de cadastro apresenta ainda alguns totalizadores, dentre eles, destacam-se o

valor total utilizado para compras e o saldo total disponível para compras (OTB), pois, através

destes totalizadores o gerente de compras saberá de maneira geral como está o andamento de

suas compras planejadas. Através dos assuntos apresentados relacionados ao cadastro do

planejamento de compras, pode-se perceber a sua importância perante a utilização do mesmo

quando se inicia o período de vigência. Tal importância se justifica pelo fato de que é através

do cadastro que é definido o comportamento do sistema quando da ocorrência de uma

oficialização de compra junto a um fornecedor através de uma ordem de compra.

3.3.2.2 Processo de abatimento de saldos via tela de “Cadastro de Ordens de Compra”

Conforme já mencionado, a partir de uma ordem de compra é possível ter a

visualização prévia dos dados de uma nota fiscal de entrada. A partir de uma ordem de

compra são definidos todos os detalhes da compra com determinado fornecedor, a qual será

oficializada no momento da geração da nota fiscal.

O processo de abatimento dos saldos (físico ou financeiro) dos itens de um

planejamento acontece por intermédio do fechamento de uma ordem de compra. A tela de

cadastro de ordens de compra a ser utilizado é uma tela já existente no Sistema Sapiens, a

qual foi necessário implementar todos os tratamentos envolvidos no processo de abatimento

de saldos. A tela de cadastro de ordens de compra utilizada no planejamento é acessada

através do caminho “Comercial > Compras > Ordens Compra > Agrupada”. A Figura 38

apresenta a tela de cadastro de ordens de compra quando iniciada.

Page 88: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

88

Figura 38 – Tela de cadastro de ordens de compra

A Figura 39 apresenta a aba de produtos de uma ordem de compra, onde são feitos os

vínculos de um item de planejamento com um item de ordem de compra.

Figura 39 – Aba de Produtos do cadastro de ordens de compra

Ao digitar um produto na ordem de compra, o sistema verifica se o produto, origem,

família ou agrupamento de produtos ao qual o mesmo está relacionado se encontra cadastrado

no planejamento ativo (conforme o tipo de programação). Caso o item não esteja cadastrado o

Page 89: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

89

sistema se comporta conforme o que foi definido no indicativo do planejamento se o sistema

bloqueia compras de produtos não planejados. A Figura 40 apresenta um exemplo de

consistência de digitação de um produto não cadastrado onde o planejamento está configurado

para apenas avisar o usuário de tal situação.

Figura 40 – Exemplo de aviso de produto não planejado

Já a Figura 41 apresenta um exemplo onde o planejamento está configurado para

efetuar o bloqueio de produtos não planejados.

Figura 41 – Exemplo de bloqueio de compra de produto não planejado

Caso o planejamento esteja configurado para liberar compras de produtos não

planejados, ao digitar um produto qualquer que não esteja presente no planejamento, o

sistema não apresenta as mensagens de consistência, permitindo a compra deste produto. O

mesmo tratamento anteriormente mencionado é aplicado também para a condição de

pagamento da ordem de compra, conforme configurado no indicativo se o sistema bloqueia

compras de produtos com condição de pagamento não planejada. Um exemplo de aviso sobre

esta situação pode ser visto na Figura 42.

Figura 42 – Exemplo de aviso de produto com condição de pagamento não planejada

Outro exemplo de consistência da condição de pagamento pode ser visto na Figura 43.

Page 90: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

90

Figura 43 – Exemplo de bloqueio de compra de produto com condição de pagamento não planejada

Conforme pode se visto na Figura 44, depois de digitado o item de produto e

constatado que o mesmo se encontra disponível no planejamento, através da identificação do

produto ou sua definição hierárquica e a previsão de entrega do mesmo, o sistema faz o

relacionamento do item de produto da ordem de compra com o item de planejamento, sendo

possível a visualização de alguns dados importantes do item do planejamento, conforme pode

ser visto nas Figuras 45 e 46.

Figura 44 – Item de produto digitado na ordem de compra

Page 91: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

91

Figura 45 – Relacionamento de um item de planejamento com item de ordem de compra

Figura 46 – Demais informações disponibilizadas através do relacionamento

Ao efetuar o fechamento da ordem de compra (efetivação do pedido com o

fornecedor), caso o item de planejamento possua saldo disponível (conforme tipo de controle,

Page 92: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

92

físico ou financeiro), o sistema realiza a atualização dos saldos e estas informações já podem

ser visualizadas pelo gerente de compras através da tela de cadastro, bem como por outros

compradores através das telas de consulta. A Figura 47 apresenta um exemplo de quantidades,

valores e saldos de um item de planejamento atualizados após o fechamento de uma ordem de

compra.

Figura 47 – Informações atualizadas no planejamento de compras

Se no momento do fechamento de uma ordem de compra, o item a ser utilizado não

possuir saldo disponível, o sistema bloqueia o fechamento desta ordem de compra. Desta

forma, o comprador deve solicitar ao gerente de compras um aumento do saldo disponível

(físico ou financeiro) e somente depois de concedido o aumento de saldo a ordem de compra

poderá ser fechada.

A Figura 48 apresenta um exemplo de bloqueio de fechamento de ordem de compra

quando ultrapassado o saldo financeiro de um produto planejado, ou seja, o Open to Buy do

item de planejamento.

Page 93: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

93

Figura 48 – Exemplo de falta de saldo financeiro para o produto planejado

Na Figura 49, é apresentado um exemplo de bloqueio de fechamento de ordem de

compra quando ultrapassado o saldo físico de um produto planejado.

Figura 49 – Exemplo de falta de saldo físico para o produto planejado

Na Figura 50, é apresentado um exemplo de bloqueio de fechamento de ordem de

compra quando ultrapassado o saldo financeiro de uma origem de produto planejada.

Figura 50 – Exemplo de falta de saldo financeiro para a origem de produto planejada

Page 94: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

94

Depois de fechada uma ordem de compra, a mesma ainda pode ser cancelada,

reabilitada (volta à situação inicial, ou seja, não fechada) ou até mesmo sofrer algumas

alterações que também influenciam diretamente nos saldos disponíveis. Para tanto, o sistema

efetua atualizações (estorno) de valores, quantidades e saldos nas seguintes situações:

a) cancelamento da ordem de compra;

b) reabilitação da ordem de compra;

c) cancelamento de um item de ordem de compra;

d) alteração de um item de ordem de compra.

Após o fechamento de uma ordem de compra, não é possível diminuir a quantidade e

valor disponível de um item de planejamento de determinado período para uma quantidade ou

valor menor que o já utilizado para compras. A quantidade e valor somente podem ser

alterados no cadastro do planejamento para uma quantidade ou valor maior que o atual, como

forma de aumento de saldo por parte do gerente de compras. As Figuras 51 e 52 exemplificam

tal situação.

Figura 51 – Consistência efetuada na alteração de quantidade de um item de planejamento já utilizado

Figura 52 – Consistência efetuada na alteração de valor de um item de planejamento já utilizado

Da mesma forma que a situação anterior, depois de fechada a ordem de compra, o

sistema não permite que o planejamento seja inativado antes do fim do seu período de

vigência, conforme pode ser observado no exemplo da Figura 53.

Figura 53 – Consistência efetuada na tentativa de inativação de um planejamento de compras já utilizado

Page 95: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

95

O planejamento somente poderá ser excluído se ainda não tiverem sido geradas ordens

de compra, independente se as mesmas foram fechadas ou não, ou seja, havendo qualquer

ligação de item de planejamento com item de ordem de compra não será possível a exclusão

do planejamento. A Figura 54 ilustra a situação em que o planejamento já foi utilizado, não

permitindo sua exclusão.

Figura 54 – Consistência efetuada na tentativa de exclusão de um planejamento de compras já utilizado

Depois de utilizado para geração de ordens de compra, um item de planejamento

(origem, família, produto ou agrupamento de produtos) não pode ser alterado e nem excluído,

conforme demonstrado nas Figuras 55 e 56.

Figura 55 – Consistência efetuada na tentativa de alteração do código de origem de um item utilizado

Figura 56 – Consistência efetuada na tentativa de exclusão de um item já utilizado

Por fim, a Figura 57 demonstra a situação em que o planejamento de compras já foi

finalizado, através do fim do seu período de vigência e de sua inativação, onde o sistema não

permite que o mesmo seja ativado novamente.

Figura 57 – Consistência efetuada na tentativa de ativação de um planejamento de compras já finalizado

Page 96: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

96

3.3.2.3 Processo de relacionamento Ordem de Compra – Nota Fiscal de Entrada

Para geração de uma nota fiscal de entrada relacionada a uma ordem de compra com

item de produto vinculado a um planejamento, é utilizada uma tela já existente no sistema. A

tela a ser utilizada é a tela de “Cadastro de Notas Fiscais de Entrada” que se encontra no

caminho “Comercial > Compras > Notas Fiscais de Entrada > Agrupada”.

Nesta tela foi necessário implementar os tratamentos para que exista a amarração do

planejamento de compras também na nota fiscal. Esta amarração entre os documentos pode

ser feitas de duas maneiras: informando manualmente o item da ordem de compra no item da

nota ou buscando estas informações através da tela de consulta de ordens de compra da nota

fiscal de entrada. É importante lembrar que na nota fiscal não existe abatimento de saldos,

sendo que este processo é feito exclusivamente no fechamento das ordens de compra. A

Figura 58 apresenta a tela de consulta de ordens de compra da nota fiscal de entrada, através

da qual é possível selecionar os itens de ordens de compra que irão gerar itens da nota fiscal.

Figura 58 – Tela de consulta de ordens de compra da nota fiscal de entrada

Page 97: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

97

A Figura 59 apresenta a tela de cadastro de nota fiscal de entrada depois de

processados os itens de ordens de compra na tela de consulta de ordens de compra.

Figura 59 – Aba de Produtos do cadastro de notas fiscais de entrada

Depois de fechada a nota fiscal de entrada, existirá uma amarração completa entre os

documentos envolvidos no planejamento de compras.

3.3.2.4 Tela de “Consulta de Planejamentos de Compras”

A tela de “Consulta de Planejamentos de Compras” foi desenvolvida de modo que se

possam visualizar todos os dados dos planejamentos, tanto pelo gerente de compras, quanto

pelos compradores. A Figura 60 apresenta um exemplo de consulta de planejamentos de

compras.

Page 98: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

98

Figura 60 – Tela de consulta de planejamentos de compras

Conforme se pode observar na Figura 60, esta tela possui alguns filtros no cabeçalho

para facilitar a busca de determinado planejamento, bem como uma opção para exibir

somente o planejamento ativo. Na grid de “Dados Gerais” são apresentados os dados

cadastrados no cabeçalho do planejamento, entre outros totalizadores, já na grid de “Itens”

são apresentados todos os dados dos itens de planejamento relacionados ao planejamento

posicionado na grid de “Dados Gerais”. Esta tela possui também no rodapé os botões de

consulta do item cadastrado no sistema, bem como um botão para acesso a tela de “Consulta

de Quantidades e Valores já Utilizados (NFEs)”.

3.3.2.5 Tela de “Consulta de Quantidades e Valores já Utilizados (NFEs)”

A tela de “Consulta de Quantidades e Valores já Utilizados (NFEs)” permite que sejam

consultadas todas as notas fiscais inerentes a um planejamento de compras. A Figura 61

apresenta um exemplo de consulta de notas fiscais de entrada do planejamento de compras.

Page 99: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

99

Figura 61 – Tela de consulta de quantidades e valores já utilizados (NFEs)

Como pode ser visto na Figura 61, esta tela possui na grid de “Itens de Produto” a

informação da ordem de compra que originou o item de nota fiscal, bem como a informação

do item de planejamento que deu início ao processo vinculando-se ao item de ordem de

compra. Além dos filtros disponibilizados no cabeçalho da tela, a mesma possui também no

rodapé os botões de consulta do item cadastrado no sistema, um botão para acesso a uma tela

de consulta dos itens da ordem de compra e um botão para acesso a uma tela de consulta de

informações do fornecedor.

3.3.2.6 Tela de “Consulta de Saldos Disponíveis para Compras”

A tela de “Consulta de Saldos Disponíveis para Compras” é uma tela desenvolvida

especificamente para permitir consultas dos saldos físico e financeiro dos itens de

Page 100: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

100

planejamento. A mesma serve principalmente como apoio aos compradores antes de inserir

um item na ordem de compra, fazendo com que os mesmos não tenham surpresas

desagradáveis ao tentar oficializar as ordens de compra com os fornecedores. As Figuras 62 e

63 ilustram uma consulta de saldos disponíveis para compras.

Figura 62 – Tela de consulta de saldos disponíveis para compras

Page 101: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

101

Figura 63 – Demais informações da consulta de saldos disponíveis para compras

Conforme pode ser visto nas Figuras 62 e 63, esta tela permite a visualização dos

dados de forma agrupada e detalhada. A mesma possui diversos filtros no cabeçalho da tela,

botões de consulta do item cadastrado no sistema no rodapé, bem como os totalizadores

disponibilizados.

Page 102: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

102

3.3.2.7 Tela de “Consulta de Desempenho com Relação às Vendas”

A tela de “Consulta de Desempenho com Relação às Vendas” permite que os dados

sejam visualizados a partir de três visões: visão do planejamento, das compras, e visão das

vendas efetuadas. Nesta tela são visualizados os itens do planejamento confrontando com os

dados das compras e das vendas. A mesma serve principalmente como apoio ao gerente de

compras, pois, através dela é possível visualizar a diferença do que foi previsto e do que foi

realizado.

Esta tela também possui diversos filtros no cabeçalho, o que facilita a busca de

determinado item planejado. Na mesma também é possível visualizar os itens de forma

agrupada e detalhada, sendo que na grid de “Itens Agrupados” são apresentados os dados dos

itens envolvidos nos planejamentos de compras de forma agrupada, já na grid de “Itens

Detalhados” são apresentados os dados detalhados por planejamento.

Os dados das compras são referentes às compras já efetivadas, ou seja, são

apresentados valores de notas fiscais de entrada já fechadas lançadas no sistema, assim como

as vendas são referentes às notas fiscais de saída também já fechadas. É importante destacar

que um item de planejamento de compras não possui nenhum vínculo com itens de notas

fiscais de saída, sendo que a busca das vendas neste caso obedece apenas os respectivos

períodos do item do planejamento de compras, ao invés de utilizar a chave do item do

planejamento como ocorre na busca dos dados das notas fiscais de entrada. As Figuras 64 e 65

ilustram uma consulta de desempenho com relação às vendas.

Page 103: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

103

Figura 64 – Tela de consulta de desempenho com relação às vendas

Page 104: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

104

Figura 65 – Demais informações da grid de “Itens Detalhados” da consulta de desempenho com relação às vendas

Conforme pode ser visto nas Figuras 64 e 65, esta tela também apresenta os botões de

consulta do item cadastrado no sistema no rodapé, bem como uma opção no cabeçalho para

exibição somente do planejamento ativo.

Page 105: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

105

3.3.2.8 Relatório “Planejamento de Compras - Resumido”

O relatório “Planejamento de Compras - Resumido” permite que o comprador ou

gerente de compras visualize apenas alguns dados gerais dos planejamentos, a fim de obter

algumas informações de maior relevância. A Figura 66 apresenta um exemplo de emissão de

um relatório resumido.

Figura 66 – Relatório resumido de planejamentos de compras

Page 106: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

106

3.3.2.9 Relatório “Planejamento de Compras - Detalhado”

O relatório “Planejamento de Compras - Detalhado” permite que o comprador ou

gerente de compras visualize a maioria das informações disponíveis em um planejamento.

Este relatório além de apresentar os dados gerais do planejamento, apresenta também as

informações mais importantes dos itens, bem como os totalizadores de valores e saldo do

planejamento que também se encontram disponíveis no relatório resumido. A Figura 67

apresenta um exemplo de emissão de um relatório detalhado.

Figura 67 – Relatório detalhado de planejamentos de compras

Page 107: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

107

3.4 RESULTADOS E DISCUSSÃO

No contexto empresarial de um departamento de compras, percebe-se que a

complexidade existente em qualquer organização exige que os sistemas de informação atuem

de forma a retratar a realidade e a dinâmica destes departamentos. Ou seja, o nível de

detalhamento dos processos inerentes a esta área faz com que exista uma enorme

complexidade nestes sistemas, sendo que o maior desafio é fazer com estes realmente possam

ajudar nas atividades de curto e longo prazo de forma programada.

Embora o módulo desenvolvido ainda não tenha sido disponibilizado para o mercado

até o término do presente trabalho, pode se perceber através de testes feitos juntamente com a

equipe de qualidade de software da empresa Senior Sistemas Corporativos que a metodologia

do Open to Buy mostrou-se eficaz no que se refere ao gerenciamento das compras em uma

empresa varejista. O módulo desenvolvido pode ser aplicado também a outros segmentos

comercias que não sejam do ramo varejista, pois, o mesmo não se resume apenas ao cálculo

do Open to Buy, e sim, a uma série de controles disponíveis para o gerenciamento das

compras em uma empresa. No conceito de Open to Buy, não há a exigência de que este

controle seja feito de forma automatizada em um sistema computacional, porém, recomenda-

se fortemente esta prática. O controle manual, feito em planilhas eletrônicas ou até mesmo em

formulários de papel, torna o gerenciamento praticamente inexistente em um ambiente com

um nível elevado de complexidade. Ainda que possa ser melhorado, o módulo desenvolvido

atende a necessidade e pode ser utilizado em qualquer empresa que deseje dar um passo

inicial para a prática do gerenciamento de compras de forma programada.

Com relação aos trabalhos correlatos, percebeu-se que o módulo de planejamento de

compras desenvolvido possui alguns conceitos semelhantes aos dois sistemas apresentados

disponíveis no mercado, uma vez que o mesmo possui como base o conceito do Open to Buy.

No trabalho correlato de Santos (2006), a autora torna evidente a importância do

gerenciamento de um planejamento de compras como ferramenta para auxiliar a empresa a

atingir seus objetivos de negócio, focando seu estudo de caso em uma empresa varejista de

material de construção. Por ressaltar esta importância, Santos (2006) enfatiza propostas para o

aumento de desempenho da área de compras da empresa analisada, sendo assim, pode se

traçar um paralelo entre o presente trabalho e os assuntos abordados pela autora. Ao realizar o

estudo de caso, Santos (2006) constatou que a empresa em questão adotou medidas após a

entrada da concorrência que possibilitaram diversas melhorias na organização das compras.

Page 108: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

108

Durante a pesquisa, descobriu-se que no passado as metas de compras da empresa eram

determinadas pelo comprador, e após a entrada da concorrência, estas metas passaram a ser

estabelecidas pela gerência de compras, com base na projeção de vendas, possibilitando

otimização nos estoques e uma melhoria no fluxo de caixa. Descobriu-se também, que no

passado os compradores adquiriam grandes volumes de mercadorias dos fornecedores em

troca de bonificações e, após a entrada da concorrência, os compradores passaram a avaliar as

propostas dos fornecedores, considerando o custo do investimento em estoque.

Na empresa analisada por Santos (2006), foram criados bloqueios no sistema de

compras com o objetivo de impedir a compra dos produtos acima do limite de cobertura.

Estes procedimentos também contribuíram para a otimização nos estoques e uma melhoria no

fluxo de caixa, além de evitar desbalanceamento do estoque, ou seja, o excesso de alguns

produtos e falta de outros. Com relação às propostas sugeridas pela autora para a referida

empresa, a mesma menciona a alteração da abordagem “de cima para baixo” para a

abordagem “interativa”, porém, conforme mencionado pela própria autora, às propostas foram

recomendadas com base no estudo de caso, não permitindo generalizações para outras

empresas. Desta forma, características semelhantes foram observadas entre o estudo de caso

de Santos (2006) e o módulo de planejamento de compras desenvolvido no presente trabalho.

Page 109: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

109

4 CONCLUSÕES

Elaborar planejamentos de compras é fundamental para as empresas que desejam

manterem-se competitivas no mercado, sendo que, estes planejamentos focam suas atenções

no desenvolvimento de estratégias que permitam uma melhoria significativa na gestão do

departamento de compras e das despesas de uma organização. Neste contexto, conclui-se que

o objetivo principal deste trabalho foi atingido, pois, o módulo desenvolvido permite que os

gerentes de compras possam efetuar suas compras de forma programada, de modo a otimizar

os estoques e melhorar o fluxo de caixa da empresa.

Foram feitos testes juntamente com um representante da área de qualidade de software

com grande experiência e domínio do Módulo Comercial do Sistema Sapiens, onde pode se

perceber que o Open to Buy foi um conceito importante aplicado no módulo de planejamento

de compras, sendo que, o mesmo sugere o valor ideal para ser utilizado em compras em um

determinado período. Com a automatização dos processos de planejamentos de compras no

módulo desenvolvido, pode se observar que esta importante etapa presente no departamento

de compras ficou mais fácil e intuitiva de se trabalhar, visto que, o mesmo auxilia desde a

etapa de avaliação de históricos para base do planejamento até o gerenciamento permanente

dos saldos disponíveis para compras.

O objetivo específico de desenvolver um módulo para automatizar os processos de

planejamentos de compras no ERP Sapiens foi atingido. Foi disponibilizado o cadastro de

planejamentos, e com este, todos os recursos e configurações necessárias para que a

programação de compras e o controle das mesmas se adaptem às necessidades de cada

empresa varejista.

Para o objetivo específico de possibilitar que o sistema gerencie o andamento das

compras conforme definido no planejamento, ficou claro que o módulo desenvolvido atende

este objetivo, pois, o controle dos saldos disponíveis para compras é feito no fechamento das

ordens de compra. O sistema possibilita ainda que os compradores sejam avisados ou

impedidos de realizar compras acima dos limites planejados.

O objetivo específico de disponibilizar através do planejamento de compras,

informações sobre o controle de gastos inerentes a esta área, bem como o saldo disponível

para compras, também foi atendido. Foram disponibilizadas diversas telas de consulta através

das quais se pode fazer um acompanhamento completo de todo o planejamento de compras.

Durante a realização deste trabalho, observou-se que a adoção de uma ferramenta de

Page 110: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

110

software para gerenciamento das etapas de planejamento de compras é relevante para as

empresas que almejam liderança de mercado. Observou-se também, que normalmente as

empresas varejistas de pequeno porte adotam o controle destes processos através de sistemas

baseado em papel ou planilhas eletrônicas, sendo que, conforme o volume de dados aumenta,

este tipo de controle passa a não atender com agilidade o departamento de compras. Para as

empresas varejistas de médio e grande porte, o planejamento de compras torna-se

indispensável, sendo que, o mesmo terá ainda um grande diferencial se implementado em um

sistema ERP, pois, permitirá desta forma, a visualização das informações relacionadas à área

de compras também em outros departamentos da empresa.

4.1 EXTENSÕES

Com o objetivo de tornar este trabalho ainda mais abrangente e completo, três

extensões que não faziam parte dos objetivos iniciais do mesmo são sugeridas para trabalhos

futuros:

a) desenvolvimento de um módulo de planejamento de vendas com integração com o

módulo de planejamento de compras desenvolvido, a fim de contribuir com

informações importantes para a geração do planejamento de compras;

b) desenvolvimento de um módulo de planejamento de produção com integração com

o módulo de planejamento de compras desenvolvido;

c) desenvolvimento de um módulo de planejamento contábil.

Como melhorias no módulo desenvolvido no presente trabalho, são sugeridas as

seguintes extensões:

a) aplicação do controle dos saldos disponíveis para compras também nos demais

processos existentes no sistema que possibilitam a geração de ordens de compra,

como por exemplo, ordens de compra via cotação, via solicitação de compra, via

contrato, via pedido, entre outros;

b) implementação de uma rotina de envio de e-mail, onde os compradores poderiam

optar por enviar ou não no caso de bloqueio de compras, um e-mail padrão e pré-

formatado, ao gerente de compras, onde este conteria as informações importantes

necessárias para o concedimento de aumento de saldo disponível para compras.

Page 111: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

111

REFERÊNCIAS BIBLIOGRÁFICAS

BAILY, Peter; FARMER, David; JESSOP, David; JONES, David. Compras: princípios e administração. 8. ed. São Paulo: Atlas, 2000.

BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com UML. Rio de Janeiro: Campus, 2002.

BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML : guia do usuário. Rio de Janeiro: Campus, 2000.

BRAUDE, Eric. Projeto de software: da programação à arquitetura: uma abordagem baseada em Java. Porto Alegre: Bookman, 2005.

CORONADO, Osmar. Controladoria no atacado e varejo: logística integrada e modelo de gestão sob a óptica da gestão econômica logisticon. São Paulo: Atlas, 2001.

COSTA, Fábio J. C. Leal. Introdução à administração de materiais em sistemas informatizados. São Paulo: iEditora, 2002.

DIAS, Mario; COSTA, Roberto Figueiredo. Manual do comprador: conceitos, técnicas e práticas indispensáveis em um departamento de compras. 4. ed. São Paulo: Edicta, 2006.

FRANCISCHINI, Paulino G.; GURGEL, Floriano do Amaral. Administração de materiais e do patrimônio. São Paulo: Pioneira, 2002.

GRAZZIOTIN, Gilson Valentin. A arte do varejo: o pulo do gato está na compra. 3. ed. São Paulo: Senac, 2003.

GUEDES, Gilleanes T. A. UML : uma abordagem prática. São Paulo: Novatec, 2004.

HURLBUT, Ted. So What exactly is a retail open-to-buy? [S.l.], 2006. Disponível em: <http://www.hurlbutassociates.com/Resource-Details/So-What-Exactly-Is-An-Open-To-Buy-_34.html>. Acesso em: 18 abr. 2009.

IDV. Varejo em números: o comércio brasileiro em números. [S.l.], jun. 2009. Disponível em: <http://www.idv.org.br/varejo-dados-index.aspx>. Acesso em: 02 jun. 2009.

LEVY, Michael; WEITZ, Barton A. Administração de varejo. São Paulo: Atlas, 2000.

MATYJEWICZ, George. Open to buy. [S.l.], 2001. Disponível em: <http://www.etailersdigest.com/resources/Specials/Open_To_Buy.htm>. Acesso em: 18 abr. 2009.

Page 112: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

112

MILLENNIUM NETWORK. Millennium . [S.l.], 2006a. Disponível em: <http://www.millennium.com.br/bm.asp>. Acesso em: 23 maio 2009.

______. Varejo: operação. [S.l.], 2006b. Disponível em: <http://www.millennium.com.br/varejooperacao.asp>. Acesso em: 23 maio 2009.

PARENTE, Juracy. Varejo no Brasil: gestão e estratégia. São Paulo: Atlas, 2000.

REZENDE, Denis Alcides. Engenharia de software e sistemas de informação. 3. ed. Rio de Janeiro: Brasport, 2005.

SAP AG. SAP retail merchandise and assortment planning. [S.l.], abr. 2005. Disponível em: <https://www.sap.com/brazil/pdf/company/Arte_BWP_MAP.pdf>. Acesso em: 23 maio 2009.

SANTOS, Rosangela Vilela dos. Propostas para aumento do desempenho da área de compras em empresa varejista. 2006. 96 f. Dissertação (Mestrado Profissionalizante em Administração) - Programa de Pós-Graduação e Pesquisa em Administração e Economia, Faculdade de Economia e Finanças IBMEC, Rio de janeiro.

SEBRAE. Regras básicas para comprar bem. [S.l.], 2005. Disponível em: <http://www.biblioteca.sebrae.com.br/bds/BDS.nsf/80EF7685D096336F03256F9E004D39EE/$File/NT000A38D2.pdf >. Acesso em: 09 maio. 2009.

SENIOR SISTEMAS. Solução sapiens: características. Blumenau, 2009a. Disponível em: <http://www.senior.com.br/website/pt/sapiens-caracteristicas.php>. Acesso em: 16 maio 2009.

______. Soluções de tecnologia sapiens: aplicações cliente. Blumenau, 2009b. Disponível em: <http://www.senior.com.br/website/pt/sapiens-tecnologia.php?txt=5>. Acesso em: 16 maio 2009.

______. Solução sapiens: módulos/funcionalidades. Blumenau, 2009c. Disponível em: <http://www.senior.com.br/website/pt/sapiens-modulos.php>. Acesso em: 16 maio 2009.

______. Solução sapiens: gestão empresarial. Blumenau, 2009d. Disponível em: <http://www.senior.com.br/website/pt/sapiens-principal.php>. Acesso em: 16 maio 2009.

______. Solução sapiens: compras. Blumenau, 2009e. Disponível em: <http://www.senior.com.br/website/pt/sapiens-modulos-compras.php>. Acesso em: 17 maio 2009.

______. Solução sapiens: vendas. Blumenau, 2009f. Disponível em: <http://www.senior.com.br/website/pt/sapiens-modulos-vendas.php>. Acesso em: 17 maio 2009.

Page 113: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

113

______. Solução sapiens: estoques. Blumenau, 2009g. Disponível em: <http://www.senior.com.br/website/pt/sapiens-modulos-estoques.php>. Acesso em: 17 maio 2009.

______. Soluções de tecnologia sapiens: implementações. Blumenau, 2009h. Disponível em: <http://www.senior.com.br/website/pt/sapiens-tecnologia.php?txt=2>. Acesso em: 16 maio 2009.

______. Processos do módulo de compras: ordem de compra. Fabiano Stimamiglio Ferreira; Gilson Rogério Manke: Senior Sistemas, 2009i.

______. Processos do módulo de compras: nota fiscal de entrada. Fabiano Stimamiglio Ferreira; Gilson Rogério Manke: Senior Sistemas, 2009j.

______. Ferramentas de apoio: gerador de relatórios.Versão 2.0. Blumenau, 2004. Documento eletrônico disponibilizado com o Sistema Sapiens versão 5.5.1.12.

SENIOR SISTEMAS CORPORATIVOS. Sistema sapiens: ajuda do sapiens. Versão 5.5.1.12. Blumenau, 2009. Documento eletrônico disponibilizado com o Sistema Sapiens versão 5.5.1.12.

SEVERO Filho, João. Administração de logística integrada: materiais, PCP e marketing. 2. ed. Rio de Janeiro: E-papers, 2006.

SILVA, Alberto Manuel Rodrigues da; VIDEIRA, Carlos Alberto Escaleira. UML, metodologias e ferramentas CASE. 2. ed. Portugal: Centro Atlântico, 2005.

SLACK, Nigel; CHAMBERS, Stuart; JOHNSTON, Robert; BETTS, Alan. Gerenciamento de operações e de processos: princípios e prática de impacto estratégico. Porto Alegre: Bookman, 2007.

SYBASE. SQL anywhere. [S.l.], 2009. Disponível em: <http://www.sybase.com.br/products/databasemanagement/sqlanywhere>. Acesso em: 30 maio 2009.

TEIXEIRA, Steve; PACHECO, Xavier. Delphi 5: guia do desenvolvedor. Rio de Janeiro: Campus, 2000.

THEOBALD, Mary Miley. Museum store management. 2. ed. [S.l.]: Altamira Press, 2000.

TONSIG, Sérgio Luiz. Engenharia de software: análise e projetos de sistemas. São Paulo: Futura, 2003.

WATERS, Shari. Open-to-buy planning: controlling your inventory. [S.l.], 2009. Disponível em: <http://retail.about.com/od/merchandisingbuying/a/open_to_buy.htm>. Acesso em: 19 abr. 2009.

Page 114: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

114

WESTERMAN, Paul. Data warehousing: using the Wal-Mart model. San Francisco: Morgan Kaufmann, 2001.

Page 115: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

115

APÊNDICE A – Definições das tabelas e campos envolvidos no desenvolvimento do módulo de planejamento de compras

Nos Quadros 11, 12, 13, 14, 15, 16, 17 e 18 são apresentadas as definições das

principais tabelas e campos envolvidos no desenvolvimento do módulo de planejamento de

compras.

Tabela: EMPRESA – Empresas Campo Descrição Tipo Tamanho CodEmp Código da empresa Númerico 4 NomEmp Nome da empresa Alfanumérico 100

Quadro 11 – Tabela EMPRESA

Tabela: FILIAL – Filiais Campo Descrição Tipo Tamanho CodEmp Código da empresa Númerico 4 CodFil Código da filial Númerico 4 NomFil Nome da filial Alfanumérico 100

Quadro 12 – Tabela FILIAL

Tabela: PLANEJCOMPRAS – Planejamentos de Compras – Dados Gerais Campo Descrição Tipo Tamanho CodEmp Código da empresa Númerico 4 CodFil Código da filial Númerico 4 NumPla Número do planejamento de compras Númerico 6 DesPla Descrição do planejamento de compras Alfanumérico 50 CodUsu Código do usuário gerador do planejamento Númerico 10 TipPrg Tipo da programação de compras efetuada no

planejamento (O – Por Origem, F – Por Família, P – Por Produto ou A – Por Agrupamento de Produtos)

Alfanumérico 1

TipPer Tipo de período (S – Semanal, Q – Quinzenal ou M – Mensal)

Alfanumérico 1

SitPla Situação do planejamento (A – Ativo ou I – Inativo) Alfanumérico 1 IniVig Data inicial da vigência do planejamento Data dd/mm/yyyy FimVig Data final da vigência do planejamento Data dd/mm/yyyy DatCad Data de cadastro Data dd/mm/yyyy DatAlt Data da última alteração Data dd/mm/yyyy VlrBru Valor bruto do planejamento de compras Numérico 15,2 VlrLiq Valor líquido do planejamento de compras Numérico 15,2 QtdItp Quantidade de itens do planejamento de compras Numérico 3 BloCpr Indicativo se o sistema deve bloquear compras

(Ordens de Compra) de produtos não planejados (L – Libera, A – Avisa ou B – Bloqueia)

Alfanumérico 1

BloCpg Indicativo se o sistema deve bloquear compras (Ordens de Compra) com condição de pagamento não planejada (L – Libera, A – Avisa ou B – Bloqueia)

Alfanumérico 1

Page 116: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

116

Campo Descrição Tipo Tamanho SldTot Valot total disponível para compras no período de

vigência Númerico 15,2

UtiTot Valor total já utilizado para compras Númerico 15,2 OtbTot Saldo total disponível para compras no período de

vigência (Open to Buy) Númerico 15,2

TipCtl Tipo de controle do planejamento (Q - Quantidade (Controle Físico), V - Valor (Controle Financeiro) ou A - Ambos (Controle Físico e Financeiro))

Alfanumérico 1

Quadro 13 – Tabela PLANEJCOMPRAS

Tabela: ITENSPLANEJAMENTO – Planejamentos de Compras – Itens Campo Descrição Tipo Tamanho CodEmp Código da empresa Númerico 4 CodFil Código da filial Númerico 4 NumPla Número do planejamento de compras Númerico 6 SeqPla Sequência do item do planejamento de compras Númerico 3 CodOri Código da origem do produto Alfanumérico 3 CodFam Código da família de produto Alfanumérico 6 CodPro Código do produto Alfanumérico 14 CodAgp Código do agrupamento de produtos Alfanumérico 5 QtdPla Quantidade planejada para compra Numérico 14,5 CodCpg Condição de pagamento prevista para a compra do

item Alfanumérico 6

DatIni Data inicial da previsão de entrega Data dd/mm/yyyy DatFim Data final da previsão de entrega Data dd/mm/yyyy PerCre Percentual de crescimento aplicado no item Númerico 3 VlrCre Valor de crescimento aplicado no item Númerico 15,2 VlrLit Valor do item Númerico 15,2 VlrBru Valor total bruto do item Númerico 15,2 VlrLiq Valor total líquido do item Númerico 15,2 SldIte Valor disponível para compras no período Númerico 15,2 VlrUti Valor já utilizado para compras (fechamento de

Ordens de Compra) Númerico 15,2

OtbIte Saldo disponível para compras (Open to Buy do item) Númerico 15,2 QtdDpr Quantidade disponível para compras no período Númerico 14,5 QtdUti Quantidade já utilizada para compras (fechamento de

Ordens de Compra) Númerico 14,5

QtdDis Saldo de quantidade disponível para compras Númerico 14,5 Quadro 14 – Tabela ITENSPLANEJAMENTO

Tabela: ORDEMCOMPRA – Ordens de Compra – Dados Gerais Campo Descrição Tipo Tamanho CodEmp Código da empresa Númerico 4 CodFil Código da filial Númerico 4 NumOcp Número da ordem de compra Númerico 8 CodFor Código do fornecedor da ordem de compra Númerico 9 DatEmi Data de emissão da ordem de compra Data dd/mm/yyyy CodCpg Código da condição de pagamento Alfanumérico 6 VlrLiq Valor líquido da ordem de compra Númerico 15,2

Page 117: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

117

Campo Descrição Tipo Tamanho SitOcp Situação da ordem de compra (1 – Aberto Total,

2 – Aberto Parcial, 4 – Liquidada, 5 – Cancelada, 9 – Não Fechada, entre outras)

Númerico 1

Quadro 15 – Tabela ORDEMCOMPRA

Tabela: ITENSPROOC – Ordens de Compra – Itens de Produto Campo Descrição Tipo Tamanho CodEmp Código da empresa Númerico 4 CodFil Código da filial Númerico 4 NumOcp Número da ordem de compra Númerico 8 SeqIpo Sequência de item da ordem de compra Númerico 3 CodPro Código do produto da ordem de compra Alfanumérico 14 QtdPed Quantidade do produto da ordem de compra Númerico 14,5 QtdRec Quantidade recebida do produto da ordem de compra Númerico 14,5 QtdCan Quantidade cancelada do produto da ordem de compra Númerico 14,5 QtdAbe Quantidade em aberto do produto da ordem de compra Númerico 14,5 VlrLiq Valor líquido do produto da ordem de compra Númerico 15,2 DatEnt Data de previsão de entrega para o produto da ordem

de compra Data dd/mm/yyyy

SitIpo Situação do item da ordem de compra (1 – Aberto Total, 2 – Aberto Parcial, 4 – Liquidado, 5 – Cancelado, 9 – Não Fechado, entre outros)

Númerico 1

EmpPla Código da empresa do planejamento de compras Númerico 4 FilPla Código da filial do planejamento de compras Númerico 4 NumPla Número do planejamento de compras Númerico 6 SeqPla Sequência do item do planejamento de compras Númerico 3

Quadro 16 – Tabela ITENSPROOC

Tabela: NFENTRADA – Notas Fiscais de Entrada – Dados Gerais Campo Descrição Tipo Tamanho CodEmp Código da empresa Númerico 4 CodFil Código da filial Númerico 4 CodFor Código do fornecedor da nota fiscal de entrada Númerico 9 NumNfc Número da nota fiscal de entrada Númerico 9 CodSnf Código da série da nota fiscal de entrada Alfanumérico 3 DatEmi Data de emissão da nota fiscal de entrada Data dd/mm/yyyy CodCpg Código da condição de pagamento Alfanumérico 6 VlrLiq Valor líquido da nota fiscal de entrada Númerico 15,2 SitNfc Situação da nota fiscal de entrada (1 – Digitada,

2 – fechada ou 3 – Cancelada) Númerico 1

Quadro 17 – Tabela NFENTRADA

Tabela: ITENSPRONFE – Notas Fiscais de Entrada – Itens de Produto Campo Descrição Tipo Tamanho CodEmp Código da empresa Númerico 4 CodFil Código da filial Númerico 4 CodFor Código do fornecedor da nota fiscal de entrada Númerico 9 NumNfc Número da nota fiscal de entrada Númerico 9 CodSnf Código da série da nota fiscal de entrada Alfanumérico 3

Page 118: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

118

Campo Descrição Tipo Tamanho SeqIpc Sequência do item na nota fiscal de entrada Númerico 4 FilOcp Código da filial da ordem de compra Numérico 4 NumOcp Número da ordem de compra Numérico 8 SeqIpo Sequência do item de produto na ordem de compra Numérico 3 CodPro Código do produto da nota fiscal de entrada Alfanumérico 14 QtdRec Quantidade recebida do produto da ordem de compra Numérico 14,5 VlrLiq Valor líquido do produto da ordem de compra Numérico 15,2 EmpPla Código da empresa do planejamento de compras Númerico 4 FilPla Código da filial do planejamento de compras Númerico 4 NumPla Número do planejamento de compras Númerico 6 SeqPla Sequência do item do planejamento de compras Númerico 3

Quadro 18 – Tabela ITENSPRONFE

Page 119: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

119

APÊNDICE B – Métodos de maior relevância de algumas das classes utilizadas no desenvolvimento do módulo de planejamento de compras

No Quadro 19 é apresentada a codificação de alguns dos métodos mais relevantes da

classe TPlanejamento.

constructor TPlanejamento.Create; begin inherited Create; CustomPla := TExCustomRecord.Create(False); CustomPla.BeginAddFields; CustomPla.AddField2('CodEmp', rdtWord, 00,False); CustomPla.AddField2('CodFil', rdtWord, 00,False); CustomPla.AddField2('NumPla', rdtInteger, 00,False) ; CustomPla.AddField2('CodUsu', rdtInteger, 00,False) ; CustomPla.AddStringField('DesPla', smkShort, 50); CustomPla.AddStringField('TipPrg', smkChar, 01); CustomPla.AddStringField('TipPer', smkChar, 01); CustomPla.AddStringField('SitPla', smkChar, 01); CustomPla.AddField2('PerDes', rdtDouble, 00,False) ; CustomPla.AddDateField('IniVig', True); CustomPla.AddDateField('FimVig', True); CustomPla.AddDateField('DatCad', True); CustomPla.AddDateField('DatAlt', True); CustomPla.AddField2('VlrLiq', rdtDouble, 00,False); CustomPla.AddField2('VlrBru', rdtDouble, 00,False); CustomPla.AddField2('QtdItp',rdtWord,0,False); CustomPla.AddStringField('BloCpr', smkChar, 01); CustomPla.AddStringField('BloCpg', smkChar, 01); CustomPla.AddField2('SldTot', rdtDouble, 00,False); CustomPla.AddField2('UtiTot', rdtDouble, 00,False); CustomPla.AddField2('OtbTot', rdtDouble, 00,False); CustomPla.AddStringField('TipCtl', smkChar, 01); CustomPla.EndAddFields; LItens := TList.Create; FGravado := False; FEstado := stInserindo; FItensNaoGravados := False; Init; end; destructor TPlanejamento.Destroy; var i : SWord; begin if (LItens.Count > 0) then begin for i := 0 to LItens.Count - 1 do TItemPlanejamento(LItens.Items[i]).Destroy; end; LItens.Free; CustomPla.Destroy; inherited Destroy; end; procedure TPlanejamento.Grava; var DadosPlanejamento, DadosAuxPlanejamento: RecDa dosPlanejamento; begin FillChar(DadosPlanejamento,SizeOF(DadosPlanejamento ),0);

Page 120: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

120

if (RegPlanejamento.CodUsu = 0) then RegPlanejamento.CodUsu := UserDef.Code; if (RegPlanejamento.DatCad = 0) then RegPlanejamento.DatCad := SDatas.DataHoje; Move(RegPlanejamento, DadosPlanejamento,sizeof(Dado sPlanejamento)); FillChar(DadosAuxPlanejamento,SizeOf(DadosAuxPlanej amento),0); DadosAuxPlanejamento.CodEmp := DadosPlanejamento.Co dEmp; DadosAuxPlanejamento.CodFil := DadosPlanejamento.Co dFil; DadosAuxPlanejamento.NumPla := DadosPlanejamento.Nu mPla; if (AccessSQL(TablePlanejamento,'SELECT NUMPLA FR OM PLANEJCOMPRAS + ' 'WHERE CODEMP = {CODEMP} AND + ' CODFIL = {CODFIL} AND + ' NUMPLA = {NUMPLA}',rmSingleRow, @DadosAu xPlanejamento) = 0) then SMessage(smRaise,TransStrFmt('', 'Planejamento de compras %d já cadastrado. + ' 'Possivelmente o mesmo pode ter sido + ' 'gravado por o utro usuário durante a + ' 'digitação!', [DadosAuxPlane jamento.NumPla], True)); if (Access(TablePlanejamento,aoWrite,@RegPlanejam ento) <> 0) then begin SMessage(smRaise,TransStrFmt('', 'Não foi poss ível gravar o planejamento + ' 'de compras % d. Possivelmente já existe + ' 'um planejame nto gravado com este mesmo + ' 'número!', [DadosAuxPlan ejamento.NumPla], True)); end; FGravado := True; end; procedure TPlanejamento.PosicionaItemPlanejamento(P SeqPla : SWord); var i : SInteger; begin IniciaLeituraItens; for i := 0 to (LItens.Count - 1) do begin if (TItemPlanejamento(LItens.Items[i]).FCodEmp = R egPlanejamento.CodEmp) and (TItemPlanejamento(LItens.Items[i]).FCodFil = Reg Planejamento.CodFil) and (TItemPlanejamento(LItens.Items[i]).FNumPla = Reg Planejamento.NumPla) and (TItemPlanejamento(LItens.Items[i]).FSeqPla = PSe qPla) then begin PosIte := i; break; end; end; end; procedure TPlanejamento.AlteraItem; begin TItemPlanejamento(LItens.Items[PosIte]).Altera; end; procedure TPlanejamento.GravaItem; begin TItemPlanejamento(LItens.Items[PosIte]).Grava; end;

Page 121: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

121

procedure TPlanejamento.AlteraNumeroPlanejamentoIte ns; var i : SWord; begin if (LItens.Count > 0) then begin for i := 0 to LItens.Count - 1 do TItemPlanejamento(LItens.Items[i]).FNumPl a := RegPlanejamento.NumPla; end; end; function TPlanejamento.RetornaPrimeiroItemPlanejame nto : TItemPlanejamento; begin PosIte := 0; if (LItens.Count > 0) then result := TItemPlanejamento(LItens.Items[PosIt e]) else result := nil; end; function TPlanejamento.RetornaProximoItemPlanejamen to : TItemPlanejamento; begin inc(PosIte); if (LItens.Count >= PosIte + 1) then result := TItemPlanejamento(LItens.Items[PosIt e]) else result := nil; end; procedure TPlanejamento.InicializaListaItens; var i : SWord; begin if Assigned(LItens) then begin if LItens.Count > 0 then for i := 0 to LItens.Count -1 do TItemPlanejamento(LItens.Items[i]).F ree; LItens.Clear; end; end; function TPlanejamento.CriaItemPlanejamento(PSeqPla : SWord) : Integer; begin Result := LItens.Add(TItemPlanejamento.Create(self, RegPlanejamento.CodEmp, RegPlanejamento.CodFil,RegPlan ejamento.NumPla,PSeqPla)); RegPlanejamento.QtdItp := RegPlanejamento.QtdItp + 1; end; function TPlanejamento.CalculaOtbTot : SDouble; var i : SWord; ItemAux : TItemPlanejamento; OtbTotAux : SDouble; begin OtbTotAux := 0; if (LItens.Count > 0) then begin for i := 0 to LItens.Count - 1 do begin ItemAux := TItemPlanejamento(LItens.Items [i]); OtbTotAux := SRound(OtbTotAux + ItemAux.F OtbIte, 2); end; end; Result := OtbTotAux; end;

Page 122: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

122

function TPlanejamento.Carrega : SBoolean; var QueryPla : trTQuery; QueryItem : trTQuery; begin Result := False; QueryPla := DataBase.NewQuery; try QueryPla.Command := 'SELECT * FROM PLANEJCOMPRAS ' + 'WHERE CODEMP = {CODEMP} AND 'CODFIL = {CODFIL } AND 'NUMPLA = {NUMPLA }'; QueryPla.FindParam('CodEmp').AsInteger := RegPlane jamento.CodEmp; QueryPla.FindParam('CodFil').AsInteger := RegPlane jamento.CodFil; QueryPla.FindParam('NumPla').AsInteger := FNumPla; QueryPla.Open; if not(QueryPla.EOF) then begin FillChar(RegPlanejamento, SizeOf(RegPlanejamento) ,0); QueryPla.FieldsToRecord(CustomPla,RegPlanejamento ); FGravado := True; FEstado := stEditando; AtualizaLiquido; QueryItem := nil; try QueryItem := DataBase.NewQuery; QueryItem.Command := 'SELECT SEQPLA FROM ITENSPL ANEJAMENTO ' + 'WHERE CODEMP={CODEMP} AND ' + 'CODFIL={CODFIL} AND ' + 'NUMPLA={NUMPLA} ' + 'ORDER BY SEQPLA'; QueryItem.FindParam('CodEmp').AsInteger := RegPlanejamento.CodEmp; QueryItem.FindParam('CodFil').AsInteger := RegPlanejamento.CodFil; QueryItem.FindParam('NumPla').AsInteger := FNumP la; QueryItem.Bidirectional := True; QueryItem.Open; LItens.Clear; while not(QueryItem.EOF) do begin LItens.Add(TItemPlanejame nto.CreateCarrega(self, RegPlanejamen to.CodEmp, RegPlanejamen to.CodFil, FNumPla, QueryItem.Fin dField('SeqPla').AsInteger)); FMaximaSequenciaItens := QueryItem.FindField('SeqPla').AsInteger; QueryItem.Next; end; finally QueryItem.Free; end; Result := True; end else FGravado := False; finally QueryPla.Free; end; end;

Page 123: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

123

procedure TPlanejamento.DestroiItemPlanejamento; var DadosItemPlanejamento : RecDadosItemPlanejamen to; UpdItemPla : trTUpdate; ItemGravado : SBoolean; begin ItemGravado := False; TItemPlanejamento(LItens.Items[PosIte]).Estado := i tExcluindo; DataBase.StartTransaction; try if (Database.Select('SELECT 1 FROM ITENSPLAN EJAMENTO ' + 'WHERE CODEMP = {1} AN D CODFIL = {2} AND ' + 'NUMPLA = {3} AN D SEQPLA = {4}', [RegPlanejamento.CodEmp, RegPlanejamento.CodFil, RegPlanejamento.NumPla, TItemPlanejamento(LIten s.Items[PosIte]).FSeqPla], TableItensPlanejamento, DadosItemPlanejamento)) then begin ItemGravado := True; UpdItemPLa := DataBase.NewUpdate; try UpdItemPla.Command := 'DELETE FROM I TENSPLANEJAMENTO ' + 'WHERE CODEM P = {CODEMP} AND ' + 'CODFI L = {CODFIL} AND ' + 'NUMPL A = {NUMPLA} AND ' + 'SEQPL A = {SEQPLA}'; UpdItemPla.FindParam('CodEmp').AsInt eger := RegPlanejamento.CodEmp; UpdItemPla.FindParam('CodFil').AsInt eger := RegPlanejamento.CodFil; UpdItemPla.FindParam('NumPla').AsInt eger := RegPlanejamento.NumPLa; UpdItemPla.FindParam('SeqPla').AsInt eger := TItemPlanejamento(LItens.Items[PosIt e]).FSeqPla; UpdItemPla.Execute; RegPlanejamento.QtdItp := RegPlaneja mento.QtdItp - 1; // se gravado, chama o método de alt eração do planejamento // para que o cabeçalho seja atualiz ado na base de dados if (Gravado) then Altera; finally UpdItemPla.free; end; end; TItemPlanejamento(LItens.Items[PosIte]).Destro y; LItens.Delete(PosIte); // se o item estiver gravado na base, a quanti dade já foi incrementada if not(ItemGravado) then RegPlanejamento.QtdItp := RegPlanejamento .QtdItp - 1; except DataBase.Rollback; SMessage(smRaise,SExceptionMsg); end; Database.Commit; end; // Retorna True se o planejamento for excluído com sucesso function TPlanejamento.ExcluiPlanejamento : SBoolea n; var DadosPlanejamento : RecDadosPlanejamento; begin Result := False;

Page 124: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

124

if (SMessage(smReturn,TransStr('', 'Deseja realme nte excluir o planejamento ' + 'e seus itens? [&Sim,&Não]', True)) = 0) then begin ExcluiItensPlanejamento; DadosPlanejamento.CodEmp := RegPlanejamento.Co dEmp; DadosPlanejamento.CodFil := RegPlanejamento.Co dFil; DadosPlanejamento.NumPla := RegPlanejamento.Nu mPla; if (Access(TablePlanejamento,aoDelete,@ Dado sPlanejamento) <> 0) then SMessage(smRaise,TransStr('', 'Não foi possível exc luir o planejamento!', True)) else Result := True; end else Result := False; end;

Quadro 19 – Código fonte dos métodos mais relevantes da classe TPlanejamento

No Quadro 20 é apresentada a codificação de alguns dos métodos mais relevantes da

classe TItemPlanejamento.

constructor TItemPlanejamento.Create(PDadosGerais : TObject; PCodEmp,PCodFi l : SWord; PNumPla : SLon gint; PSeqPla : SWor d); begin inherited Create; CriaCustom; FillChar(RegItem ,SizeOf(RegItem), 0); FillChar(BRegItem,SizeOf(BRegItem),0); FillChar(RegItemBase,SizeOf(RegItemBase),0); DadosGerais := PDadosGerais; RegItem.CodEmp := PCodEmp; RegItem.CodFil := PCodFil; RegItem.NumPla := TPlanejamento(DadosGerais).FNumPl a; RegItem.SeqPla := PSeqPla; FIndCon := True; FEstado := itInserindo; end; constructor TItemPlanejamento.CreateCarrega(PDadosG erais : TObject; PCodEmp ,PCodFil : SWord; PNumPla : SLongint; PSeqPla : SWord); var Query : TRTQuery; begin inherited Create; CriaCustom; // Executa método semelhante ao Create da classe TPlanejamento DadosGerais := PDadosGerais; Query := nil; try Query := DataBase.NewQuery; Query.Command := 'SELECT * FROM ITENSPLANEJAMENTO ' + 'WHERE CODEMP = {CODEMP} AND 'CODFIL = {CODFIL} AND ' + 'NUMPLA = {NUMPLA} AND 'SEQPLA = {SEQPLA}' ; Query.FindParam('CodEmp').AsInteger := PCodEmp; Query.FindParam('CodFil').AsInteger := PCodFil; Query.FindParam('NumPla').AsInteger := PNumPla; Query.FindParam('SeqPla').AsInteger := PSeqPla; Query.Open; if not(Query.EOF) then begin

Page 125: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

125

FillChar(RegItem, SizeOf(RegItem),0); Query.FieldsToRecord(CustomItem,RegItem); Query.FieldsToRecord(CustomItem,BRegIt em); Query.FieldsToRecord(CustomItem,RegIte mBase); FEstado := itModificando; FIndCon := True; end; finally Query.free; end; FIndCon := True; end; destructor TItemPlanejamento.Destroy; begin CustomItem.Destroy; inherited destroy; end; procedure TItemPlanejamento.Altera; begin RegItem.NumPla := TPlanejamento(DadosGerais).FNumPl a; if (Access(TableItensPlanejamento,aoReWrite,@RegI tem) <> 0) then SMessage(smRaise,TransStr('', 'Não foi possível gr avar os ' + 'itens do plan ejamento!', True)); Move(RegItem,RegItemBase,SizeOf(RegItemBase)); end; procedure TItemPlanejamento.Grava; begin RegItem.NumPla := TPlanejamento(DadosGerais).FNumPl a; if (Access(TableItensPlanejamento,aoWrite,@RegIte m) <> 0) then SMessage(smRaise,TransStr('', 'Não foi possíve l gravar os ' + 'itens do planej amento)!', True)); FEstado := itModificando; Move(RegItem,RegItemBase,SizeOf(RegItemBase)); end; procedure TItemPlanejamento.CalculaValores(RegTotai s : TRegTotais); var DadosItemPlanejamento : RecDadosItemPlanejamen to; begin TPlanejamento(DadosGerais).DiminuiValores(RegTotais ); Move(RegItem,BRegItem,SizeOf(RegItem)); Move(RegItem, DadosItemPlanejamento,sizeof(DadosIte mPlanejamento)); CalculaItemPlanejamento(DadosItemPlanejamento); Move(DadosItemPlanejamento,RegItem,sizeof(DadosItem Planejamento)); end;

Quadro 20 – Código fonte dos métodos mais relevantes da classe TItemPlanejamento

No Quadro 21 é apresentada a codificação de alguns dos métodos mais relevantes da

classe Frm_CadastraPlanejamento.

Page 126: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

126

procedure Frm_CadastraPlanejamento.Processar; var DadosItemPlanejamento: RecDadosItemPlanejament o; begin ConsisteCamposCabecalho; if (GridItens.Counts = 0) then sMessage(smRaise,TransStr('', 'Não existem itens n o planejamento ' + 'para processar !', True)); try Database.StartTransaction; try if (ControlandoMultiUsuario) then Database.CompareNm('Form_CadastraPla nejamento'); // objeto instanciado da classe TPlanejam ento if (Planejamento.Estado <> stEditando) then Planejamento.Grava else Planejamento.Altera; GridItens.DisconnectTable; try GridItens.First; repeat Planejamento.PosicionaItemPlane jamento(RegItem.SeqPla); FillChar(DadosItemPlanejamento, SDadosItemPlanejamento,0); if (Database.Select('SELECT 1 F ROM ITENSPLANEJAMENTO ' + 'WHERE CODEMP = {1} AND ' + ' CODFIL = {2} AND ' + ' NUMPLA = {3} AND ' + ' SEQPLA={4}', [Planejam ento.FCodEmp, Planejam ento.FCodFil, Planejam ento.FNumPla, RegItem. SeqPla], TableIte nsPlanejamento, DadosIte mPlanejamento)) then begin Planejamento.AlteraItem; end else begin Planejamento.GravaItem; end; until not(GridItens.Next); finally GridItens.ConnectTable; end; if (Planejamento.BuscaPlanejamentoAtivo = 0) then begin if (SMessage(smReturn,TransStr('', 'Deseja ativar ' + 'o planejamento? ' + '[&Sim,&Não]', True)) = 0) then AtivaPlanejamento; end; Database.Commit; except Database.RollBack; SMessage(smRaise,SExceptionMsg); end; except if (Planejamento.Estado <> stEditando) then Planejamento.Gravado := False; SMessage(smRaise,TransStr('', 'Não foi possíve l processar ' + 'o planejamento - ',True) + SExceptionMsg); end;

Page 127: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

127

Planejamento.Free; GridItens.ClearList; LimpaCampos; SMessage(smReturn,TransStr('', 'Processamento execu tado com sucesso! [&OK]',True)); end; procedure Frm_CadastraPlanejamento.Excluir; begin if ExisteVinculoItensPlanejamentoComOrdensDeCompr a(Planejamento.FNumPla, False) then SMessage(smRaise, TransStr('', 'Exclusão não p ermitida, já existem ordens ' + 'de compra liga das a este planejamento!', True)); if (ControlandoMultiUsuario) then Database.CompareNm('Form_CadastraPlanejamento' ); try Database.StartTransaction; if (Planejamento.ExcluiPlanejamento) then ClickCancelar; Database.Commit; except DataBase.RollBack; SMessage(smRaise,SExceptionMsg); end; end;

Quadro 21 – Código fonte dos métodos mais relevantes da classe Frm_CadastraPlanejamento

No Quadro 22 é apresentada a codificação do método Mostrar da classe

Frm_BasePlanejamento.

procedure Frm_BasePlanejamento.Mostrar; var NroLinhasAgr : SLongint; Conta : SLongint; SQLAux : String; SQLAGR : TrtQuery; SQLDET : TrtQuery; QtdSugestoesDataFinal : SInteger; procedure CarregaDocumentos; var FiltroOrigem : String; FiltroFamilia : String; FiltroProduto : String; FiltroAgrupamentoProduto : String; FiltroFornecedor : String; FiltroCliente : String; procedure AplicaSelectFamiliaOrdensCompra ; begin SQLAux := 'SELECT ITENSPROOC.CODFAM, ' + 'SUM(ITENSPROOC.QTDPED - I TENSPROOC.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) AS VAL OR, ' + '((SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI))/ ' + // Valor '(SUM(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN))) ' + // Qtd 'AS PRECOMEDIO ' + 'FROM ITENSPROOC,ORDEMCOMP RA,PRODUTO,FAMILIA ' + 'WHERE ORDEMCOMPRA.CODEMP = {CODEMP} AND ' + 'ORDEMCOMPRA.CODFIL = {CODFIL} AND ' + 'ITENSPROOC.CODEMP = O RDEMCOMPRA.CODEMP AND ' + 'ITENSPROOC.CODFIL = O RDEMCOMPRA.CODFIL AND ' +

Page 128: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

128

'ITENSPROOC.NUMOCP = O RDEMCOMPRA.NUMOCP AND ' + 'PRODUTO.CODEMP = ITEN SPROOC.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPROOC.CODPRO AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + 'ITENSPROOC.CODFAM <> '' '' AND ' + 'FAMILIA.CODEMP = PROD UTO.CODEMP AND ' + 'FAMILIA.CODFAM = PROD UTO.CODFAM AND ' + 'FAMILIA.TIPPRO = ''C' ' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroFornecedor + '(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) > 0 AND ' + '((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) > 0 AND ' + // Aberto Total, Abert o Parcial ou Liquidado 'ITENSPROOC.SITIPO IN (1,2,4) AND ' + 'ORDEMCOMPRA.DATFEC BE TWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY ITENSPROOC.CODFAM ' + 'ORDER BY ITENSPROOC.CODFAM' ; end; procedure AplicaSelectFamiliaPedidos; begin SQLAux := 'SELECT ITENSPROPEDIDO.CODFAM, ' + 'SUM(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) * ' + 'ITENSPROPEDIDO.PREUNI) AS VALOR, ' + '((SUM((ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) * ' + 'ITENSPROPEDIDO.PREUNI))/ ' + '(SUM(ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN))) ' + 'AS PRECOMEDIO FROM ITENSP ROPEDIDO,PEDIDO,PRODUTO, ' + 'FAMILIA ' + 'WHERE PEDIDO.CODEMP = {CODE MP} AND ' + 'PEDIDO.CODFIL = {CODF IL} AND ' + 'ITENSPROPEDIDO.CODEMP = PEDIDO.CODEMP AND ' + 'ITENSPROPEDIDO.CODFIL = PEDIDO.CODFIL AND ' + 'ITENSPROPEDIDO.NUMPED = PEDIDO.NUMPED AND ' + 'PRODUTO.CODEMP = ITEN SPROPEDIDO.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPROPEDIDO.CODPRO AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + 'ITENSPROPEDIDO.CODFAM <> '' '' AND ' + 'FAMILIA.CODEMP = PROD UTO.CODEMP AND ' + 'FAMILIA.CODFAM = PROD UTO.CODFAM AND ' + 'FAMILIA.TIPPRO = ''C' ' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroCliente + '(ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) ' + '> 0 AND ' + '((ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) * ' + 'ITENSPROPEDIDO.PREUNI ) > 0 AND ' + // Aberto Total, Abert o Parcial ou Liquidado 'ITENSPROPEDIDO .SITIPD IN (1,2,4) AND ' + 'PEDIDO.DATFEC BETWEEN {EDATBAS INI} AND {EDATBASFIM} ' + 'GROUP BY ITENSPROPEDIDO.COD FAM ' + 'ORDER BY ITENSPROPEDIDO.COD FAM'; end;

Page 129: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

129

procedure AplicaSelectFamiliaNotasEntrada ; begin SQLAux := 'SELECT ITENSPRONFE.CODFAM, ' + 'SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI) AS VA LOR, ' + '((SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI))/ ' + '(SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV))) ' + 'AS PRECOMEDIO FROM ITENSP RONFE,NFENTRADA,PRODUTO, ' + 'FAMILIA ' + 'WHERE NFENTRADA.CODEMP = {C ODEMP} AND ' + 'NFENTRADA.CODFIL = {C ODFIL} AND ' + 'ITENSPRONFE.CODEMP = NFENTRADA.CODEMP AND ' + 'ITENSPRONFE.CODFIL = NFENTRADA.CODFIL AND ' + 'ITENSPRONFE.CODFOR = NFENTRADA.CODFOR AND ' + 'ITENSPRONFE.NUMNFC = NFENTRADA.NUMNFC AND ' + 'ITENSPRONFE.CODSNF = NFENTRADA.CODSNF AND ' + 'PRODUTO.CODEMP = ITEN SPRONFE.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPRONFE.CODPRO AND ' + 'ITENSPRONFE.CODFAM <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + 'FAMILIA.CODEMP = PROD UTO.CODEMP AND ' + 'FAMILIA.CODFAM = PROD UTO.CODFAM AND ' + 'FAMILIA.TIPPRO = ''C' ' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroFornecedor + '(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) > 0 AND ' + '((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI) > 0 AND ' + 'NFENTRADA.SITNFC = 2 AND ' + // Nota fechada 'NFENTRADA.DATEMI BETW EEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY ITENSPRONFE.CODFAM ' + 'ORDER BY ITENSPRONFE.CODFAM '; end; procedure AplicaSelectFamiliaNotasSaida; begin SQLAux := 'SELECT ITENSPRONFS.CODFAM, ' + 'SUM(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI) AS VA LOR, ' + '((SUM((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI))/ ' + '(SUM(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV))) ' + 'AS PRECOMEDIO FROM ITENSP RONFS,NFSAIDA,PRODUTO, ' + 'FAMILIA ' + 'WHERE NFSAIDA.CODEMP = {COD EMP} AND ' + 'NFSAIDA.CODFIL = {COD FIL} AND ' + 'ITENSPRONFS.CODEMP = NFSAIDA.CODEMP AND ' + 'ITENSPRONFS.CODFIL = NFSAIDA.CODFIL AND ' + 'ITENSPRONFS.NUMNFV = NFSAIDA.NUMNFV AND ' + 'ITENSPRONFS.CODSNF = NFSAIDA.CODSNF AND ' + 'PRODUTO.CODEMP = ITEN SPRONFS.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPRONFS.CODPRO AND ' + 'ITENSPRONFS.CODFAM <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + 'FAMILIA.CODEMP = PROD UTO.CODEMP AND ' + 'FAMILIA.CODFAM = PROD UTO.CODFAM AND ' + 'FAMILIA.TIPPRO = ''C' ' AND ' +

Page 130: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

130

FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroCliente + '(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) > 0 AND ' + '((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI) > 0 AND ' + 'NFSAIDA.SITNFV = 2 AN D ' + // Nota fechada 'NFSAIDA.DATEMI BETWEE N {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY ITENSPRONFS.CODFAM ' + 'ORDER BY ITENSPRONFS.CODFAM '; end; procedure AplicaSelectProdutoOrdensCompra ; begin SQLAux := 'SELECT ITENSPROOC.CODPRO, ' + 'SUM(ITENSPROOC.QTDPED - I TENSPROOC.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) AS VAL OR, ' + '((SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI))/ ' + '(SUM(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN))) ' + 'AS PRECOMEDIO FROM ITENSP ROOC,ORDEMCOMPRA,PRODUTO ' + 'WHERE ORDEMCOMPRA.CODEMP = {CODEMP} AND ' + 'ORDEMCOMPRA.CODFIL = {CODFIL} AND ' + 'ITENSPROOC.CODEMP = O RDEMCOMPRA.CODEMP AND ' + 'ITENSPROOC.CODFIL = O RDEMCOMPRA.CODFIL AND ' + 'ITENSPROOC.NUMOCP = O RDEMCOMPRA.NUMOCP AND ' + 'PRODUTO.CODEMP = ITEN SPROOC.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPROOC.CODPRO AND ' + 'ITENSPROOC.CODPRO <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroFornecedor + '(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) > 0 AND ' + '((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) > 0 AND ' + // Aberto Total, Abert o Parcial ou Liquidado 'ITENSPROOC.SITIPO IN (1,2,4) AND ' + 'ORDEMCOMPRA.DATFEC BE TWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY ITENSPROOC.CODPRO ' + 'ORDER BY ITENSPROOC.CODPRO' ; end; procedure AplicaSelectProdutoPedidos; begin SQLAux := 'SELECT ITENSPROPEDIDO.CODPRO, ' + 'SUM(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) * ' + 'ITENSPROPEDIDO.PREUNI) AS VALOR, ' + '((SUM((ITENSPROPEDIDO.QTD PED - ITENSPROPEDIDO.QTDCAN) * 'ITENSPROPEDIDO.PREUNI))/ ' + '(SUM(ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN))) ' + 'AS PRECOMEDIO FROM ITENSP ROPEDIDO,PEDIDO,PRODUTO ' + 'WHERE PEDIDO.CODEMP = {CODE MP} AND ' + 'PEDIDO.CODFIL = {CODF IL} AND ' + 'ITENSPROPEDIDO.CODEMP = PEDIDO.CODEMP AND ' + 'ITENSPROPEDIDO.CODFIL = PEDIDO.CODFIL AND ' + 'ITENSPROPEDIDO.NUMPED = PEDIDO.NUMPED AND ' +

Page 131: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

131

'PRODUTO.CODEMP = ITEN SPROPEDIDO.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPROPEDIDO.CODPRO AND ' + 'ITENSPROPEDIDO.CODPRO <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroCliente + '(ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) ' + '> 0 AND ' + '((ITENSPROPEDIDO.QTDP ED - ITENSPROPEDIDO.QTDCAN) * 'ITENSPROPEDIDO.PREUNI ) > 0 AND ' + // Aberto Total, Abert o Parcial ou Liquidado 'ITENSPROPEDIDO.SITIPD IN (1,2,4) AND ' + 'PEDIDO.DATFEC BETWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY ITENSPROPEDIDO.COD PRO ' + 'ORDER BY ITENSPROPEDIDO.COD PRO'; end; procedure AplicaSelectProdutoNotasEntrada ; begin SQLAux := 'SELECT ITENSPRONFE.CODPRO, ' + 'SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI) AS VA LOR, ' + '((SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI))/ ' + '(SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV))) ' + 'AS PRECOMEDIO FROM ITENSP RONFE,NFENTRADA,PRODUTO ' + 'WHERE NFENTRADA.CODEMP = {C ODEMP} AND ' + 'NFENTRADA.CODFIL = {C ODFIL} AND ' + 'ITENSPRONFE.CODEMP = NFENTRADA.CODEMP AND ' + 'ITENSPRONFE.CODFIL = NFENTRADA.CODFIL AND ' + 'ITENSPRONFE.CODFOR = NFENTRADA.CODFOR AND ' + 'ITENSPRONFE.NUMNFC = NFENTRADA.NUMNFC AND ' + 'ITENSPRONFE.CODSNF = NFENTRADA.CODSNF AND ' + 'PRODUTO.CODEMP = ITEN SPRONFE.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPRONFE.CODPRO AND ' + 'ITENSPRONFE.CODPRO <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroFornecedor + '(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) > 0 AND ' + '((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * 'ITENSPRONFE.PREUNI) > 0 AND ' + 'NFENTRADA.SITNFC = 2 AND ' + // Nota fechada 'NFENTRADA.DATEMI BETW EEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY ITENSPRONFE.CODPRO ' + 'ORDER BY ITENSPRONFE.CODPRO '; end; procedure AplicaSelectProdutoNotasSaida; begin SQLAux := 'SELECT ITENSPRONFS.CODPRO, ' + 'SUM(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI) AS VA LOR, ' + '((SUM((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' +

Page 132: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

132

'ITENSPRONFS.PREUNI))/ ' + '(SUM(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV))) ' + 'AS PRECOMEDIO FROM ITENSP RONFS,NFSAIDA,PRODUTO ' + 'WHERE NFSAIDA.CODEMP = {COD EMP} AND ' + 'NFSAIDA.CODFIL = {COD FIL} AND ' + 'ITENSPRONFS.CODEMP = NFSAIDA.CODEMP AND ' + 'ITENSPRONFS.CODFIL = NFSAIDA.CODFIL AND ' + 'ITENSPRONFS.NUMNFV = NFSAIDA.NUMNFV AND ' + 'ITENSPRONFS.CODSNF = NFSAIDA.CODSNF AND ' + 'PRODUTO.CODEMP = ITEN SPRONFS.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPRONFS.CODPRO AND ' + 'ITENSPRONFS.CODPRO <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroCliente + '(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) > 0 AND ' + '((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI) > 0 AND ' + 'NFSAIDA.SITNFV = 2 AN D ' + // Nota fechada 'NFSAIDA.DATEMI BETWEE N {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY ITENSPRONFS.CODPRO ' + 'ORDER BY ITENSPRONFS.CODPRO '; end; procedure AplicaSelectOrigemOrdensCompra; begin SQLAux := 'SELECT PRODUTO.CODORI, ' + 'SUM(ITENSPROOC.QTDPED - I TENSPROOC.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) AS VAL OR, ' + '((SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI))/ ' + '(SUM(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN))) ' + 'AS PRECOMEDIO FROM ITENSP ROOC,ORDEMCOMPRA,PRODUTO, ' + 'ORIGEM ' + 'WHERE ORDEMCOMPRA.CODEMP = {CODEMP} AND ' + 'ORDEMCOMPRA.CODFIL = {CODFIL} AND ' + 'ITENSPROOC.CODEMP = O RDEMCOMPRA.CODEMP AND ' + 'ITENSPROOC.CODFIL = O RDEMCOMPRA.CODFIL AND ' + 'ITENSPROOC.NUMOCP = O RDEMCOMPRA.NUMOCP AND ' + 'PRODUTO.CODEMP = ITEN SPROOC.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPROOC.CODPRO AND ' + 'PRODUTO.CODORI <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + 'ORIGEM.CODEMP = PRODU TO.CODEMP AND ' + 'ORIGEM.CODORI = PRODU TO.CODORI AND ' + 'ORIGEM.TIPPRO = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroFornecedor + '(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) > 0 AND ' + '((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) > 0 AND ' + // Aberto Total, Abert o Parcial ou Liquidado 'ITENSPROOC.SITIPO IN (1,2,4) AND ' + 'ORDEMCOMPRA.DATFEC BE TWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY PRODUTO.CODORI ' +

Page 133: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

133

'ORDER BY PRODUTO.CODORI'; end; procedure AplicaSelectOrigemPedidos; begin SQLAux := 'SELECT PRODUTO.CODORI, ' + 'SUM(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) * ' + 'ITENSPROPEDIDO.PREUNI) AS VALOR, ' + '((SUM((ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) * ' + 'ITENSPROPEDIDO.PREUNI))/ ' + '(SUM(ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN))) ' + 'AS PRECOMEDIO FROM ITENSP ROPEDIDO,PEDIDO,PRODUTO, ' + 'ORIGEM ' + 'WHERE PEDIDO.CODEMP = {CODE MP} AND ' + 'PEDIDO.CODFIL = {CODF IL} AND ' + 'ITENSPROPEDIDO.CODEMP = PEDIDO.CODEMP AND ' + 'ITENSPROPEDIDO.CODFIL = PEDIDO.CODFIL AND ' + 'ITENSPROPEDIDO.NUMPED = PEDIDO.NUMPED AND ' + 'PRODUTO.CODEMP = ITEN SPROPEDIDO.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPROPEDIDO.CODPRO AND ' + 'PRODUTO.CODORI <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + 'ORIGEM.CODEMP = PRODU TO.CODEMP AND ' + 'ORIGEM.CODORI = PRODU TO.CODORI AND ' + 'ORIGEM.TIPPRO = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroCliente + '(ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) ' + '> 0 AND ' + '((ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) * ' + 'ITENSPROPEDIDO.PREUNI ) > 0 AND ' + // Aberto Total, Abert o Parcial ou Liquidado 'ITENSPROPEDIDO.SITIPD IN (1,2,4) AND ' + 'PEDIDO.DATFEC BETWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY PRODUTO.CODORI ' + 'ORDER BY PRODUTO.CODORI'; end; procedure AplicaSelectOrigemNotasEntrada; begin SQLAux := 'SELECT PRODUTO.CODORI, ' + 'SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI) AS VA LOR, ' + '((SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI))/ ' + '(SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV))) ' + 'AS PRECOMEDIO FROM ITENSP RONFE,NFENTRADA,PRODUTO, ' + 'ORIGEM ' + 'WHERE NFENTRADA.CODEMP = {C ODEMP} AND ' + 'NFENTRADA.CODFIL = {C ODFIL} AND ' + 'ITENSPRONFE.CODEMP = NFENTRADA.CODEMP AND ' + 'ITENSPRONFE.CODFIL = NFENTRADA.CODFIL AND ' + 'ITENSPRONFE.CODFOR = NFENTRADA.CODFOR AND ' + 'ITENSPRONFE.NUMNFC = NFENTRADA.NUMNFC AND ' + 'ITENSPRONFE.CODSNF = NFENTRADA.CODSNF AND ' + 'PRODUTO.CODEMP = ITEN SPRONFE.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPRONFE.CODPRO AND ' + 'PRODUTO.CODORI <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' +

Page 134: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

134

'PRODUTO.INDVEN = ''S' ' AND ' + 'ORIGEM.CODEMP = PRODU TO.CODEMP AND ' + 'ORIGEM.CODORI = PRODU TO.CODORI AND ' + 'ORIGEM.TIPPRO = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroFornecedor + '(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) > 0 AND ' + '((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI) > 0 AND ' + 'NFENTRADA.SITNFC = 2 AND ' + // Nota fechada 'NFENTRADA.DATEMI BETW EEN {EDATBASINI} AND '{EDATBASFIM} ' + 'GROUP BY PRODUTO.CODORI ' + 'ORDER BY PRODUTO.CODORI'; end; procedure AplicaSelectOrigemNotasSaida; begin SQLAux := 'SELECT PRODUTO.CODORI, ' + 'SUM(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI) AS VA LOR, ' + '((SUM((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI))/ ' + '(SUM(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV))) ' + 'AS PRECOMEDIO FROM ITENSP RONFS,NFSAIDA,PRODUTO,ORIGEM ' + 'WHERE NFSAIDA.CODEMP = {COD EMP} AND ' + 'NFSAIDA.CODFIL = {COD FIL} AND ' + 'ITENSPRONFS.CODEMP = NFSAIDA.CODEMP AND ' + 'ITENSPRONFS.CODFIL = NFSAIDA.CODFIL AND ' + 'ITENSPRONFS.NUMNFV = NFSAIDA.NUMNFV AND ' + 'ITENSPRONFS.CODSNF = NFSAIDA.CODSNF AND ' + 'PRODUTO.CODEMP = ITEN SPRONFS.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPRONFS.CODPRO AND ' + 'PRODUTO.CODORI <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + 'ORIGEM.CODEMP = PRODU TO.CODEMP AND ' + 'ORIGEM.CODORI = PRODU TO.CODORI AND ' + 'ORIGEM.TIPPRO = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroCliente + '(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) > 0 AND ' + '((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI) > 0 AND ' + 'NFSAIDA.SITNFV = 2 AN D ' + // Nota fechada 'NFSAIDA.DATEMI BETWEE N {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY PRODUTO.CODORI ' + 'ORDER BY PRODUTO.CODORI'; end; procedure AplicaSelectAgrupamentoProdutoO rdensCompra; begin SQLAux := 'SELECT PRODUTO.CODAGC, ' + 'SUM(ITENSPROOC.QTDPED - I TENSPROOC.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) AS VAL OR, ' + '((SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI))/ ' +

Page 135: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

135

'(SUM(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN))) ' + 'AS PRECOMEDIO ' + 'FROM ITENSPROOC,ORDEMCOMP RA,PRODUTO,AGRUPAMENTO ' + 'WHERE ORDEMCOMPRA.CODEMP = {CODEMP} AND ' + 'ORDEMCOMPRA.CODFIL = {CODFIL} AND ' + 'ITENSPROOC.CODEMP = O RDEMCOMPRA.CODEMP AND ' + 'ITENSPROOC.CODFIL = O RDEMCOMPRA.CODFIL AND ' + 'ITENSPROOC.NUMOCP = O RDEMCOMPRA.NUMOCP AND ' + 'PRODUTO.CODEMP = ITEN SPROOC.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPROOC.CODPRO AND ' + // Ignora produtos que não possuem agrupamento // para comercial cada strados 'PRODUTO.CODAGC <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + 'AGRUPAMENTO.CODEMP = PRODUTO.CODEMP AND ' + 'AGRUPAMENTO.CODAGP = PRODUTO.CODAGC AND ' + 'AGRUPAMENTO.TIPAGP = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroFornecedor + '(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) > 0 AND ' + '((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) > 0 AND ' + // Aberto Total, Abert o Parcial ou Liquidado 'ITENSPROOC .SITIPO IN (1,2,4) AND ' + 'ORDEMCOMPRA.DATFEC BE TWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY PRODUTO.CODAGC ' + 'ORDER BY PRODUTO.CODAGC'; end; procedure AplicaSelectAgrupamentoProdutoP edidos; begin SQLAux := 'SELECT PRODUTO.CODAGC, ' + 'SUM(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) * ' + 'ITENSPROPEDIDO.PREUNI) AS VALOR, ' + '((SUM((ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) * ' + 'ITENSPROPEDIDO.PREUNI))/ ' + '(SUM(ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN))) ' + 'AS PRECOMEDIO ' + 'FROM ITENSPROPEDIDO,PEDID O,PRODUTO,AGRUPAMENTO ' + 'WHERE PEDIDO.CODEMP = {CODE MP} AND ' + 'PEDIDO.CODFIL = {CODF IL} AND ' + 'ITENSPROPEDIDO.CODEMP = PEDIDO.CODEMP AND ' + 'ITENSPROPEDIDO.CODFIL = PEDIDO.CODFIL AND ' + 'ITENSPROPEDIDO.NUMPED = PEDIDO.NUMPED AND ' + 'PRODUTO.CODEMP = ITEN SPROPEDIDO.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPROPEDIDO.CODPRO AND ' + 'PRODUTO.CODAGC <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + 'AGRUPAMENTO.CODEMP = PRODUTO.CODEMP AND ' + 'AGRUPAMENTO.CODAGP = PRODUTO.CODAGC AND ' + 'AGRUPAMENTO.TIPAGP = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroCliente + '(ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) ' + '> 0 AND ' + '((ITENSPROPEDIDO.QTDPE D - ITENSPROPEDIDO.QTDCAN) * ' + 'ITENSPROPEDIDO.PREUNI ) > 0 AND ' +

Page 136: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

136

// Aberto Total, Abert o Parcial ou Liquidado 'ITENSPROPEDIDO.SITIPD IN (1,2,4) AND ' + 'PEDIDO.DATFEC BETWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY PRODUTO.CODAGC ' + 'ORDER BY PRODUTO.CODAGC'; end; procedure AplicaSelectAgrupamentoProdutoN otasEntrada; begin SQLAux := 'SELECT PRODUTO.CODAGC, ' + 'SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI) AS VA LOR, ' + '((SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI))/ ' + '(SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV))) ' + 'AS PRECOMEDIO ' + 'FROM ITENSPRONFE,NFENTRAD A,PRODUTO,AGRUPAMENTO ' + 'WHERE NFENTRADA.CODEMP = {C ODEMP} AND ' + 'NFENTRADA.CODFIL = {C ODFIL} AND ' + 'ITENSPRONFE.CODEMP = NFENTRADA.CODEMP AND ' + 'ITENSPRONFE.CODFIL = NFENTRADA.CODFIL AND ' + 'ITENSPRONFE.CODFOR = NFENTRADA.CODFOR AND ' + 'ITENSPRONFE.NUMNFC = NFENTRADA.NUMNFC AND ' + 'ITENSPRONFE.CODSNF = NFENTRADA.CODSNF AND ' + 'PRODUTO.CODEMP = ITEN SPRONFE.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPRONFE.CODPRO AND ' + 'PRODUTO.CODAGC <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + 'AGRUPAMENTO.CODEMP = PRODUTO.CODEMP AND ' + 'AGRUPAMENTO.CODAGP = PRODUTO.CODAGC AND ' + 'AGRUPAMENTO.TIPAGP = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroFornecedor + '(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) > 0 AND ' + '((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI) > 0 AND ' + 'NFENTRADA.SITNFC = 2 AND ' + // Nota fechada 'NFENTRADA.DATEMI BETW EEN {EDATBASINI} 'AND {EDATBASFIM} ' + 'GROUP BY PRODUTO.CODAGC ' + 'ORDER BY PRODUTO.CODAGC'; end; procedure AplicaSelectAgrupamentoProdutoN otasSaida; begin SQLAux := 'SELECT PRODUTO.CODAGC, ' + 'SUM(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) 'AS QUANTIDADE, ' + 'SUM((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI) AS VA LOR, ' + '((SUM((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI))/ ' + '(SUM(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV))) ' + 'AS PRECOMEDIO ' + 'FROM ITENSPRONFS,NFSAIDA, PRODUTO,AGRUPAMENTO ' + 'WHERE NFSAIDA.CODEMP = {COD EMP} AND ' + 'NFSAIDA.CODFIL = {COD FIL} AND ' + 'ITENSPRONFS.CODEMP = NFSAIDA.CODEMP AND ' + 'ITENSPRONFS.CODFIL = NFSAIDA.CODFIL AND ' + 'ITENSPRONFS.NUMNFV = NFSAIDA.NUMNFV AND ' + 'ITENSPRONFS.CODSNF = NFSAIDA.CODSNF AND ' +

Page 137: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

137

'PRODUTO.CODEMP = ITEN SPRONFS.CODEMP AND ' + 'PRODUTO.CODPRO = ITEN SPRONFS.CODPRO AND ' + 'PRODUTO.CODAGC <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C' ' AND ' + 'PRODUTO.INDVEN = ''S' ' AND ' + 'AGRUPAMENTO.CODEMP = PRODUTO.CODEMP AND ' + 'AGRUPAMENTO.CODAGP = PRODUTO.CODAGC AND ' + 'AGRUPAMENTO .TIPAGP = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProd uto + FiltroCliente + '(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) > 0 AND ' + '((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI) > 0 AND ' + 'NFSAIDA.SITNFV = 2 AN D ' + // Nota fechada 'NFSAIDA.DATEMI BETWEE N {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY PRODUTO.CODAGC ' + 'ORDER BY PRODUTO.CODAGC'; end; begin LMemGridAgr.ClearList; LMemGridDet.ClearList([oclCancelFilter, oclCan celRange]); LMemGridAgr.DisConnectTable; wwGridAgr.CheckMasterRange; FormBarraProgresso := TFrm_BarraProgresso.Crea te(Application); SQLAGR := DataBase.NewQuery; SQLDET := DataBase.NewQuery; try // Select Agrupado case Ctrl('RGHistorico').ItemIndex of 0 : // Tratamento Ordens de Compra begin if not(SIsNull(Ctrl('ECodFam' ).Text,fkString)) then FiltroFamilia:= '(' + SELE CTIONFILTER('ITENSPROOC.CODFAM', Ctrl('E CodFam').Text) + ') AND '; if not(SIsNull(Ctrl('ECodPro' ).Text,fkString)) then FiltroProduto:= '(' + SELE CTIONFILTER('ITENSPROOC.CODPRO', Ctrl('E CodPro').Text) + ') AND '; if not(SIsNull(Ctrl('ECodFor').Text,fkString)) th en FiltroFornecedor := '(' + SELECTIONFILTER( 'ORDE MCOMPRA.CODFOR', Ctrl ('ECodFor').Text) + ') AND '; if not(SIsNull(Ctrl('ECodOri' ).Text,fkString)) then FiltroOrigem := '('+ SELEC TIONFILTER('PRODUTO.CODORI', Ctrl('EC odOri').Text) + ') AND '; if not(SIsNull(Ctrl('ECodAgp' ).Text,fkString)) then FiltroAgrupamentoProduto : = '(' + SELECTIONFILTER( 'PRODUTO.CODAGC', Ctrl('ECodAgp').Text) + ') AND '; case TipoProgramacao of 'O' : AplicaSelectOrigemOr densCompra; 'F' : AplicaSelectFamiliaO rdensCompra; 'P' : AplicaSelectProdutoO rdensCompra; 'A' : AplicaSelectAgrupame ntoProdutoOrdensCompra; end; end;

Page 138: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

138

1 : // Tratamento Pedidos begin if not(SIsNull(Ctrl('ECodFam' ).Text,fkString)) then FiltroFamilia := '(' + SEL ECTIONFILTER( 'ITENSP ROPEDIDO.CODFAM', Ctrl(' ECodFam').Text) + ') AND '; if not(SIsNull(Ctrl('ECodPro' ).Text,fkString)) then FiltroProduto := '(' + SEL ECTIONFILTER( 'ITENSPRO PEDIDO.CODPRO', Ctrl('E CodPro').Text) + ') AND '; if not(SIsNull(Ctrl('ECodCli' ).Text,fkString)) then FiltroCliente := '(' + SEL ECTIONFILTER('PEDIDO.CODCLI', Ctrl('E CodCli').Text) + ') AND '; if not(SIsNull(Ctrl('ECodOri' ).Text,fkString)) then FiltroOrigem := '('+ SELEC TIONFILTER('PRODUTO.CODORI', Ctrl('EC odOri').Text) + ') AND '; if not(SIsNull(Ctrl('ECodAgp' ).Text,fkString)) then FiltroAgrupamentoProduto : = '(' + SELECTIONFILTER( 'PRODUTO.CODAGC', Ctrl('ECodAgp').Text) + ') AND '; case TipoProgramacao of 'O' : AplicaSelectOrigemPe didos; 'F' : AplicaSelectFamiliaP edidos; 'P' : AplicaSelectProdutoP edidos; 'A' : AplicaSelectAgrupame ntoProdutoPedidos; end; end; 2 : // Tratamento Notas Fiscais de Entrada begin if not(SIsNull(Ctrl('ECodFam' ).Text,fkString)) then FiltroFamilia:='(' + SELEC TIONFILTER('ITENSPRONFE.CODFAM', Ctrl('EC odFam').Text) + ') AND '; if not(SIsNull(Ctrl('ECodPro' ).Text,fkString)) then FiltroProduto:='(' + SELEC TIONFILTER('ITENSPRONFE.CODPRO', Ctrl('EC odPro').Text) + ') AND '; if not(SIsNull(Ctrl('ECodFor' ).Text,fkString)) then FiltroFornecedor := '(' + SELECTIONFILTER( 'NFENT RADA.CODFOR', Ctrl( 'ECodFor').Text) + ') AND '; if not(SIsNull(Ctrl('ECodOri' ).Text,fkString)) then FiltroOrigem := '('+ SELEC TIONFILTER('PRODUTO.CODORI', Ctrl('ECo dOri').Text) + ') AND '; if not(SIsNull(Ctrl('ECodAgp' ).Text,fkString)) then FiltroAgrupamentoProduto : = '(' + SELECTIONFILTER( 'PRODUTO.CODAGC', Ctrl('ECodAgp').Text) + ') AND '; case TipoProgramacao of 'O' : AplicaSelectOrigemNo tasEntrada; 'F' : AplicaSelectFamiliaN otasEntrada; 'P' : AplicaSelectProdutoN otasEntrada; 'A' : AplicaSelectAgrupame ntoProdutoNotasEntrada; end; end;

Page 139: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

139

3 : // Tratamento Notas Fiscais de Saída begin if not(SIsNull(Ctrl('ECodFam' ).Text,fkString)) then FiltroFamilia:='(' + SELEC TIONFILTER('ITENSPRONFS.CODFAM', Ctrl('EC odFam').Text) + ') AND '; if not(SIsNull(Ctrl('ECodPro' ).Text,fkString)) then FiltroProduto:='(' + SELEC TIONFILTER('ITENSPRONFS.CODPRO', Ctrl('EC odPro').Text) + ') AND '; if not(SIsNull(Ctrl('ECodCli' ).Text,fkString)) then FiltroCliente := '(' + SEL ECTIONFILTER('NFSAIDA.CODCLI', Ctrl('EC odCli').Text) + ') AND '; if not(SIsNull(Ctrl('ECodOri' ).Text,fkString)) then FiltroOrigem := '('+ SELEC TIONFILTER('PRODUTO.CODORI', Ctrl('ECo dOri').Text) + ') AND '; if not(SIsNull(Ctrl('ECodAgp' ).Text,fkString)) then FiltroAgrupamentoProduto : = '(' + SELECTIONFILTER( 'PRODUTO.CODAGC', Ctrl('ECodAgp').Text) + ') AND '; case TipoProgramacao of 'O' : AplicaSelectOrigemNo tasSaida; 'F' : AplicaSelectFamiliaN otasSaida; 'P' : AplicaSelectProdutoN otasSaida; 'A' : AplicaSelectAgrupame ntoProdutoNotasSaida; end; end; end; SQLAGR.Command := SQLAux; SQLAGR.Bidirectional := True; SQLAGR.FindParam('CODEMP').AsInteger := C EMPRESA.EMPRESA.CodEmp; SQLAGR.FindParam('CODFIL').AsInteger := C FILIAL.FILIAL.CodFil; if (EDatBasIni = 0) then SQLAGR.FindParam('EDATBASINI').AsDat eTime:= SStrToDate('01/01/1901') else SQLAGR.FindParam('EDATBASINI').AsDat eTime:= SDateToDateTime(EDatBasIni); if (EDatBasFim = 0) then SQLAGR.FindParam('EDATBASFIM').AsDat eTime := SDatas.DataHoje else SQLAGR.FindParam('EDATBASFIM').AsDat eTime:= SDateToDateTime(EDatBasFim); SQLAGR.Open; if (not SQLAGR.Eof) then begin FormBarraProgresso.Show; FormBarraProgresso.ProgressBar.Posit ion := 0; case TipoProgramacao of 'O' : FormBarraProgresso.Atuali zaBarra(TransStr('', 'Carregando Origens...'), '',False,taStrAll); 'F' : FormBarraProgresso. Atual izaBarra(TransStr('', 'Carregando Famílias...'), '',False,taStrAll); 'P' : FormBarraProgresso. Atual izaBarra(TransStr('', 'Carregando Produtos...'), '',False,taStrAll); 'A' : FormBarraProgresso. Atual izaBarra(TransStr('', 'Carregando A grupamentos de Produtos...'), '',False,taStrAll); end; FormBarraProgresso.ProgressBar.Max : = SQLAGR.Count; NroLinhasAgr := SQLAGR.Count; Conta := 0;

Page 140: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

140

while not(SQLAGR.Eof) do begin QtdSugestoesDataFinal := 0; // Inicializa datas EDatBasIniAux := EDatBasIni; case ETipPer of 'S' : EDatBasFimAux := RetornaProximoSabadoDaSemana(EDatBasIni); 'Q' : EDatBasFimAux := RetornaDa taFinalQuinzena(EDatBasIni); 'M' : EDatBasFimAux := RetornaDa taUltimoDiaMes(EDatBasIni); end; if (EDatBasFimAux > EDatBasFi m) then EDatBasFimAux := EDatBasFi m; Inc(Conta); FillChar(RegAgr, SizeOf(RegAgr) , 0); RegAgr.SelAgr := 0; RegAgr.CodEmp := CEMPRESA.EMPRE SA.CodEmp; case TipoProgramacao of 'O' : RegAgr.CodOri:= SQLA GR.FindField('CODORI').AsString; 'F' : RegAgr.CodFam:= SQLA GR.FindField('CODFAM').AsString; 'P' : RegAgr.CodPro:= SQLA GR.FindField('CODPRO').AsString; 'A' : RegAgr.CodAgp:= SQLA GR.FindField('CODAGC').AsString; end; RegAgr.QtdTot := sRound(SQLAGR.Fin dField('QUANTIDADE').AsFloat,5); RegAgr.PreMed := sRound(SQLAGR.Fin dField('PRECOMEDIO').AsFloat,5); RegAgr.VlrTot := sRound(SQLAGR. FindField('VALOR').AsFloat,5); RegAgr.SldTot := SRound(RegAgr. VlrTot + (RegAgr.VlrTot * (EPerCr e / 100)),5); RegAgr.TipPer := Ctrl('LDesTip' ).Text + ' Agrupado'; if (EDatBasIni = 0) then RegAgr.IniPer := SStrToDat e('01/01/1901') else RegAgr.IniPer := EDatBasIn i; if (EDatBasFim = 0) then RegAgr.FimPer := SDatas.Da taHoje else RegAgr.FimPer := EDatBasFi m; LMemGridAgr.Add; // Alimenta filtro para ser uti lizado no select detalhado FiltroFamilia := ''; FiltroProduto := ''; case Ctrl('RGHistorico').ItemIn dex of // Ordens de Compra 0 : case TipoProgramacao of 'O' : FiltroOrig em := '(PRODUTO.CODORI = ''' + RegAgr.CodOri + ''') AND '; 'F' : FiltroFami lia:='(ITENSPROOC.CODFAM = ''' + RegAgr.CodFam + ''') AND '; 'P' : FiltroProd uto:='(ITENSPROOC.CODPRO = ''' + RegAgr.CodPro + ''') AND '; 'A' : FiltroAgru pamentoProduto := '(PRODUTO.CODAGC = ''' + RegAgr.CodAgp + ''') AND '; end; 1 : case TipoProgramacao of // Pedidos 'O' : FiltroOrig em := '(PRODUTO.CODORI = ''' + RegAgr.CodOri + ''') AND '; 'F' : FiltroFami lia := '(ITENSPROPEDIDO.CODFAM = ''' + RegAgr.CodFam + ''') AND '; 'P' : FiltroProd uto := '(ITENSPROPEDIDO.CODPRO = ''' + RegAgr.CodPro + ''') AND '; 'A' : FiltroAgru pamentoProduto :=

Page 141: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

141

'(PRODUTO.CODAGC = ''' + RegAgr.CodAgp + ''') AND '; end; 2 : case TipoProgramacao of // Notas Fiscais de Entrada 'O' : FiltroOrig em := '(PRODUTO.CODORI = ''' + RegAgr.CodOri + ''') AND '; 'F' :FiltroFamil ia:='(ITENSPRONFE.CODFAM = ''' + RegAgr.CodFam + ''') AND '; 'P' :FiltroProdu to:='(ITENSPRONFE.CODPRO = ''' + RegAgr.CodPro + ''') AND '; 'A' : FiltroAgru pamentoProduto := '(PRODUTO.CODAGC = ''' + RegAgr.CodAgp + ''') AND '; end; 3 : case TipoProgramacao of // Notas Fiscais de Saída 'O' : FiltroOrig em := '(PRODUTO.CODORI = ''' + RegAgr.CodOri + ''') AND '; 'F' :FiltroFamil ia:='(ITENSPRONFS.CODFAM = ''' + RegAgr.CodFam + ''') AND '; 'P' :FiltroProdu to:='(ITENSPRONFS.CODPRO = ''' + RegAgr.CodPro + ''') AND '; 'A' : FiltroAgru pamentoProduto := '(PRODUTO.CODAGC = ''' + RegAgr.CodAgp + ''') AND '; end; end; // Select Detalhado while (EDatBasFimAux <= EDatBas Fim) and (QtdSugestoesDataFinal <= 1) do begin // É necessário aplicar no vamente o select para // o detalhe, pois, os fil tros foram alterados case Ctrl('RGHistorico').I temIndex of 0 : case TipoProgram acao of // Ordens de Compra 'O' : Aplic aSelectOrigemOrdensCompra; 'F' : Aplic aSelectFamiliaOrdensCompra; 'P' : Aplic aSelectProdutoOrdensCompra; 'A' : AplicaSelec tAgrupamentoProdutoOrdensCompra; end; 1 : case TipoProgram acao of // Pedidos 'O' : Aplic aSelectOrigemPedidos; 'F' : Aplic aSelectFamiliaPedidos; 'P' : Aplic aSelectProdutoPedidos; 'A' : AplicaSelec tAgrupamentoProdutoPedidos; end; 2 : case TipoProgram acao of // Notas de Entrada 'O' : Aplic aSelectOrigemNotasEntrada; 'F' : Aplic aSelectFamiliaNotasEntrada; 'P' : Aplic aSelectProdutoNotasEntrada; 'A' : AplicaSelec tAgrupamentoProdutoNotasEntrada; end; 3 : case TipoProgram acao of // Notas de Saída 'O' : Aplic aSelectOrigemNotasSaida; 'F' : Aplic aSelectFamiliaNotasSaida; 'P' : Aplic aSelectProdutoNotasSaida; 'A' : AplicaSelec tAgrupamentoProdutoNotasSaida; end; end; SQLDET.Close; SQLDET.Command := SQLAux; SQLDET.Bidirectional := Tr ue; SQLDET.FindParam('CODEMP') .AsInteger := CEMPRESA.EMPRESA.CodEmp;

Page 142: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

142

SQLDET.FindParam('CODFIL') .AsInteger := CFILIAL.FILIAL.CodFil; if (EDatBasIniAux = 0) t hen SQLDET.FindParam('EDA TBASINI').AsDateTime := SStrToDate('01/01/1901') else SQLDET.FindParam('EDA TBASINI').AsDateTime := SDateToDateTime(EDatBasIniAux); if (EDatBasIniAux = 0) t hen SQLDET.FindParam('EDA TBASFIM').AsDateTime := SDatas.DataHoje else SQLDET.FindParam('EDA TBASFIM').AsDateTime := SDateToDateTime(EDatBasFimAux); SQLDET.Open; LMemGridDet.DisconnectTabl e; try if not(SQLDET.Eof) then begin FillChar(RegDet, SizeOf(RegDet), 0); RegDet.CodEmp := CEMPRESA.EMPRESA.CodEmp; case TipoProgram acao of 'O' : RegDe t.CodOri := SQLD ET.FindField('CODORI').AsString; 'F' : RegDe t.CodFam := SQLD ET.FindField('CODFAM').AsString; 'P' : RegDe t.CodPro := SQLD ET.FindField('CODPRO').AsString; 'A' : RegDe t.CodAgp := SQLD ET.FindField('CODAGC').AsString; end; RegDet.QtdIte := sRound(SQLDET.Fin dField('QUANTIDADE').AsFloat,5); RegDet.PreMed := sRound(SQLDET.Fin dField('PRECOMEDIO').AsFloat,5); RegDet.VlrIte := sRound(SQLDE T.FindField('VALOR').AsFloat,5); RegDet.SldIte := SRound(RegDet.VlrIte + (RegD et.VlrIte * (EPerCre / 100)),5); RegDet.TipPer := 'Quebra ' + Ctrl('LDesTip').Text; if (EDatBasIni = 0) then RegDet.IniP er := SStrToDate('01/01/1901') else RegDet.IniP er := EDatBasIniAux; if (EDatBasFim = 0) then RegDet.FimP er := SDatas.DataHoje else RegDet.FimP er := EDatBasFimAux; LMemGridDet.Add; end; finally LMemGridDet.First; LMemGridDet.ConnectTa ble; case ETipPer of 'S' : begin EDatBasIni Aux := RetornaProximoDom ingoDaSemana(EDatBasIniAux + 1); EDatBasFim Aux := RetornaProximoSa badoDaSemana(EDatBasFimAux + 1); end; 'Q' : begin EDatBasIni Aux := RetornaInicioPro ximaQuinzena(EDatBasIniAux + 1); EDatBasFim Aux := RetornaFimPro ximaQuinzena(EDatBasFimAux + 1); end;

Page 143: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

143

'M' : begin // Está po sicionando no último dia do mês, // então s ó incrementa um para pegar // o próxi mo dia 1° EDatBasIni Aux := EDatBasFimAux + 1; EDatBasFim Aux := Retorna DataUltimoDiaMes(EDatBasIniAux); end; end; if (EDatBasFimAux > EDatBasFim) then begin EDatBasFimAux := EDatBasFim; inc(QtdSugestoes DataFinal); end; end; end; SQLAGR.Next; case TipoProgramacao of 'O': FormBarraProgresso. A tualizaBarra(Format(TransStr('', ' Carregando Origens...%s de %s'), [IntToStr( Conta),IntToStr(NroLinhasAgr)]), ' ', True,taStrAll); 'F': FormBarraProgresso. A tualizaBarra(Format(TransStr('', 'C arregando Famílias...%s de %s'), [IntToStr( Conta),IntToStr(NroLinhasAgr)]), '' , True,taStrAll); 'P': FormBarraProgresso. A tualizaBarra(Format(TransStr('', 'C arregando Produtos...%s de %s'), [IntToStr( Conta),IntToStr(NroLinhasAgr)]), '' , True,taStrAll); 'A': FormBarraProgresso. A tualizaBarra(Format(TransStr('', 'Carregando Agrupa mentos de Produtos...%s de %s'), [IntToStr( Conta),IntToStr(NroLinhasAgr)]), '' , True,taStrAll); end; end; end; finally SQLAGR.Free; SQLDET.Free; FormBarraProgresso.Free; LMemGridAgr.ConnectTable; TratamentoEntradaLinhaGridAgrupada; end; end; // Início método Mostrar begin if (EDatBasIni = 0) and (EDatBasFim = 0) then begin Ctrl('EDatBasIni').SetFocus; if (ETipPer in ['S','Q']) then SMessage(smRaise,TransStr('', 'É necessário i nformar data ' + 'inicial e dat a final!', True)) else SMessage(smRaise,TransStr('', 'É necessár io informar mês ' + 'inicial e mês final!', True)) end; Ctrl('GridAgr').Enabled := False; Ctrl('GridDet').Enabled := False; Ctrl('Processar').Enabled := False; Ctrl('Marcar').Enabled := False; Ctrl('Desmarcar').Enabled := False;

Page 144: DESENVOLVIMENTO DE UM MÓDULO DE PLANEJAMENTO DE …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2009-1-05-VF-Fabricio... · baseando-se em um orçamento financeiro para os materiais

144

CarregaDocumentos; // Tratamentos finais if (not LMemGridAgr.First) then SMessage(smReturn,TransStr('', 'Nenhum documen to encontrado![&OK]', True)) else begin Ctrl('Processar').Enabled := True; Ctrl('Marcar').Enabled := True; Ctrl('Desmarcar').Enabled := True; HabilitaDesabilitaCabecalho(False); if LMemGridAgr.First then begin Ctrl('GridAgr').Enabled := True; Ctrl('GridDet').Enabled := True; HabilitaDesabilitaBotoesConsulta; end; end; end;

Quadro 22 – Código fonte do método Mostrar da classe Frm_BasePlanejamento