Sunteți pe pagina 1din 144

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CINCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAO BACHARELADO

DESENVOLVIMENTO DE UM MDULO DE PLANEJAMENTO DE COMPRAS APLICANDO O CONCEITO DE OPEN TO BUY

FABRCIO DE SOUZA

BLUMENAU 2009 2009/1-05

FABRCIO DE SOUZA

DESENVOLVIMENTO DE UM MDULO DE PLANEJAMENTO DE COMPRAS APLICANDO O CONCEITO DE OPEN TO BUY

Trabalho de Concluso de Curso submetido Universidade Regional de Blumenau para a obteno dos crditos na disciplina Trabalho de Concluso de Curso II do curso de Sistemas de Informao Bacharelado. Prof. Wilson Pedro Carli, Mestre - Orientador

BLUMENAU 2009 2009/1-05

DESENVOLVIMENTO DE UM MDULO DE PLANEJAMENTO DE COMPRAS APLICANDO O CONCEITO DE OPEN TO BUY

Por

FABRCIO DE SOUZA

Trabalho aprovado para obteno dos crditos na disciplina de Trabalho de Concluso de Curso II, pela banca examinadora formada por:

Presidente:

______________________________________________________ Prof. Wilson Pedro Carli, Mestre Orientador, FURB ______________________________________________________ Prof. Alexander Roberto Valdameri, Mestre FURB ______________________________________________________ Prof. Everaldo Artur Grahl, Mestre FURB

Membro:

Membro:

Blumenau, 09 de julho de 2009

Dedico este trabalho minha famlia, pelo apoio irrestrito em todos os momentos de minha vida, e a todos que, de alguma forma, contriburam para a concluso de mais esta etapa.

AGRADECIMENTOS

Agradeo a Deus pela vida, por estar presente em todos os momentos, e por ter me proporcionado sade e inteligncia para concluso deste trabalho. Ao meu pai Jair, minha me Lidia e minha irm Elas, pelo imenso amor e ateno com que sempre me trataram, e pela pacincia que tiveram durante o ltimo ano de concluso deste curso. Agradeo tambm, e muito, pela determinao de meus pais, que ao longo da vida, com muito esforo, proporcionaram a base da minha educao e personalidade. minha namorada Cintya Sayuri Abiko, por todo o amor dedicado minha pessoa, pelo apoio e incentivo, e tambm pelos incontveis 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 Rogrio Cardoso, por ter sido meu orientador na primeira etapa da elaborao deste trabalho, e por ter acreditado e apoiado esta idia. Ao meu orientador, professor Wilson Pedro Carli, pela amizade, confiana 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 mdulo Comercial do Sistema Sapiens, em especial, o supervisor deste trabalho, Sr. Fernando da Silva, por ter acreditado e dado todo o apoio e conhecimento necessrio durante a sua realizao.

Aos meus parceiros do mdulo de Compras, Jonas Ivan de Abreu e Maikon Frech, por proporcionarem um grande conhecimento e auxlio, os quais foram muito importantes para a concretizao deste trabalho. Ao gerente de sistemas da Senior Sistemas Corporativos Ltda, Sr. Agnaldo Montibeler, por permitir a utilizao do Sistema Sapiens e toda a tecnologia da Senior necessria para a realizao 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 no mencionados nominalmente, sabem o quo importante foram os auxlios 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 realizao deste trabalho, certamente seus conhecimentos foram de grande valia. E a todas as outras pessoas que embora no citadas nominalmente, contriburam para a realizao deste trabalho. A todos vocs, o meu sincero muito obrigado!

O mal que os homens fazem vive para sempre. The evil that men do Iron Maiden

RESUMO

O presente trabalho descreve os procedimentos utilizados na elaborao de um sistema de planejamento de compras para a rea comercial de uma empresa, aplicando o conceito de Open to Buy no Sistema de Gesto Empresarial Sapiens da empresa Senior Sistemas Corporativos Ltda. A aplicao do estudo acontece em forma de desenvolvimento de um mdulo de planejamento de compras, onde os gestores podero planejar suas compras baseando-se em um oramento financeiro para os materiais comprados, a ser administrado em um determinado perodo. Palavras-chave: Compras. Planejamento de compras. Open to buy.

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.

LISTA DE ILUSTRAES

Quadro 1 Evoluo da Administrao 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 ms ...................................................................................... 29 Quadro 4 Exemplo simplificado da lgica do oramento de compras .................................. 29 Quadro 5 Clculo do Open to Buy para o ms corrente ........................................................ 31 Quadro 6 Clculo do Open to Buy dos prximos meses ....................................................... 31 Quadro 7 Exemplo de controle do Open to Buy .................................................................... 32 Figura 1 Diviso dos mdulos existentes no Sistema Sapiens .............................................. 36 Figura 2 Menu principal do Sistema Sapiens ........................................................................ 37 Figura 3 Fluxograma do sub-mdulo compras do Sistema Sapiens...................................... 40 Figura 4 Exemplo de gerao de Nota Fiscal de Entrada via Ordem de Compra no Sistema Sapiens ................................................................................................................... 42 Figura 5 Fluxograma do sub-mdulo vendas do Sistema Sapiens ........................................ 43 Figura 6 Fluxograma do sub-mdulo estoques do Sistema Sapiens ..................................... 45 Figura 7 Planejamento integrado de mercadorias e sortimento na soluo SAP Retail MAP ............................................................................................................................... 47 Quadro 8 Requisitos funcionais............................................................................................. 51 Quadro 9 Requisitos no 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 mdulo 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 relatrios do Sistema Sapiens ......................................... 69 Figura 19 Menu do mdulo de planejamento de compras..................................................... 70 Figura 20 Tela de seleo dos relatrios gerais do mdulo Comercial ................................. 71

Figura 21 Tela de permisses 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 incio de uma quinzena ................... 76 Figura 26 Mensagem de confirmao para aplicao correta da data final da quinzena ...... 76 Figura 27 Mensagem de advertncia para a no utilizao de perodo passado ................... 77 Figura 28 Exemplo de dados do cabealho j informados em um planejamento.................. 77 Figura 29 Tela de clculo do OTB para perodo corrente ..................................................... 78 Figura 30 Tela de clculo do OTB para perodo futuro ........................................................ 79 Quadro 10 Campos da grid de Itens do Planejamento ....................................................... 81 Figura 31 Tela de base para gerao do planejamento de compras....................................... 81 Figura 32 Exemplo de histrico de compras ......................................................................... 82 Figura 33 Exemplo de histrico utilizando tipo de perodo quinzenal .................................. 84 Figura 34 Exemplo de histrico utilizando tipo de perodo mensal ...................................... 84 Figura 35 Consulta de produto base para planejamento via tela de pesquisa de registro...... 85 Figura 36 Itens do planejamento aps utilizao da base para gerao ................................ 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 no planejado ........................................................ 89 Figura 41 Exemplo de bloqueio de compra de produto no planejado ................................. 89 Figura 42 Exemplo de aviso de produto com condio de pagamento no planejada .......... 89 Figura 43 Exemplo de bloqueio de compra de produto com condio de pagamento no 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 informaes disponibilizadas atravs do relacionamento ........................ 91 Figura 47 Informaes 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 fsico para o produto planejado .................................. 93 Figura 50 Exemplo de falta de saldo financeiro para a origem de produto planejada .......... 93 Figura 51 Consistncia efetuada na alterao de quantidade de um item de planejamento j utilizado ................................................................................................................. 94

Figura 52 Consistncia efetuada na alterao de valor de um item de planejamento j utilizado ................................................................................................................. 94 Figura 53 Consistncia efetuada na tentativa de inativao de um planejamento de compras j utilizado ............................................................................................................. 94 Figura 54 Consistncia efetuada na tentativa de excluso de um planejamento de compras j utilizado ................................................................................................................. 95 Figura 55 Consistncia efetuada na tentativa de alterao do cdigo de origem de um item utilizado ................................................................................................................. 95 Figura 56 Consistncia efetuada na tentativa de excluso de um item j utilizado............... 95 Figura 57 Consistncia efetuada na tentativa de ativao 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 disponveis para compras ......................................... 100 Figura 63 Demais informaes da consulta de saldos disponveis para compras ............... 101 Figura 64 Tela de consulta de desempenho com relao s vendas .................................... 103 Figura 65 Demais informaes da grid de Itens Detalhados da consulta de desempenho com relao s vendas ......................................................................................... 104 Figura 66 Relatrio resumido de planejamentos de compras .............................................. 105 Figura 67 Relatrio 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 Cdigo fonte dos mtodos mais relevantes da classe TPlanejamento ............... 124 Quadro 20 Cdigo fonte dos mtodos mais relevantes da classe TItemPlanejamento ....... 125 Quadro 21 Cdigo fonte dos mtodos mais relevantes da classe Frm_CadastraPlanejamento ............................................................................................................................. 127

Quadro 22 Cdigo fonte do mtodo Mostrar da classe Frm_BasePlanejamento ................ 144

LISTA DE SIGLAS

CBDS Central de Banco de Dados Senior CTRC Conhecimento de Transporte Rodovirio 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 No Funcionais SEBRAE Servio Brasileiro de Apoio s Micro e Pequenas Empresas SGBD Sistema Gerenciador de Banco de Dados SGQ Sistema de Gesto da Qualidade SIG Sistema de Informao Gerencial SQL Structured Query Language SVCL Senior Visual Component Library TEF Transferncia Eletrnica de Fundos UML Unified Modeling Language

SUMRIO

1 INTRODUO .................................................................................................................. 17 1.1 OBJETIVOS DO TRABALHO ........................................................................................ 18 1.2 ESTRUTURA DO TRABALHO ...................................................................................... 18 2 FUNDAMENTAO TERICA .................................................................................... 19 2.1 ADMINISTRAO 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 Organizao financeira de compras x Objetivos da alta administrao .......................... 27 2.3.2 Oramento de compras .................................................................................................... 28 2.3.3 Open to Buy ..................................................................................................................... 30 2.3.4 Planejamento unitrio das compras ................................................................................. 32 2.3.5 Como comprar bem utilizando o planejamento de compras na viso do SEBRAE ....... 33 2.4 SISTEMA SAPIENS ......................................................................................................... 35 2.4.1 Mdulo 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 Distribuio................................................................................................................... 45 2.4.1.5 Transporte ..................................................................................................................... 46 2.5 TRABALHOS CORRELATOS ........................................................................................ 47 3 DESENVOLVIMENTO DO MDULO DE PLANEJAMENTO DE COMPRAS..... 49 3.1 REQUISITOS .................................................................................................................... 50 3.1.1 Requisitos funcionais ...................................................................................................... 50 3.1.2 Requisitos no funcionais ............................................................................................... 51 3.2 ESPECIFICAO ............................................................................................................ 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

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 IMPLEMENTAO ........................................................................................................ 66 3.3.1 Tcnicas e ferramentas utilizadas.................................................................................... 67 3.3.1.1 Central de Banco de Dados Senior (CBDS) ................................................................. 68 3.3.1.2 Gerador de Relatrios Sapiens...................................................................................... 69 3.3.2 Operacionalidade da implementao .............................................................................. 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 Disponveis para Compras ............................................ 99 3.3.2.7 Tela de Consulta de Desempenho com Relao s Vendas .................................... 102 3.3.2.8 Relatrio Planejamento de Compras - Resumido ................................................... 105 3.3.2.9 Relatrio Planejamento de Compras - Detalhado ................................................... 106 3.4 RESULTADOS E DISCUSSO .................................................................................... 107 4 CONCLUSES ................................................................................................................ 109 4.1 EXTENSES .................................................................................................................. 110 REFERNCIAS BIBLIOGRFICAS ............................................................................... 111 APNDICE A Definies das tabelas e campos envolvidos no desenvolvimento do mdulo de planejamento de compras ................................................................................. 115 APNDICE B Mtodos de maior relevncia de algumas das classes utilizadas no desenvolvimento do mdulo de planejamento de compras ............................................... 119

17 1 INTRODUO

Segundo Parente (2000), as atividades de planejamento so essenciais sobrevivncia de qualquer empresa onde servem, principalmente, para antecipar e organizar as atividades a fim de alcanar um objetivo. O planejamento estratgico de extrema importncia, visto que o mesmo responsvel por envolver a determinao de intenes e objetivos de longo prazo, alm do planejamento ttico, que envolve as atividades de marketing de curto prazo. Para atingir os objetivos de lucro e crescimento das empresas, existem vrias 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 decorrncia de uma boa compra. No Brasil, assim como em grandes empresas internacionais, tambm existem problemas com relao rea de compras onde, de acordo com Dias e Costa (2006, p. 29), muitos profissionais da rea acabam sendo forados a atuar na fase de execuo dos trabalhos, deixando em segundo plano ou, pior, ignorando a importante fase de planejamento. Segundo as definies de misso 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 tambm adquirir servios, no momento certo, da fonte certa, com a qualidade desejada, e ao menor custo possvel. Diante do exposto, neste trabalho desenvolveu-se um mdulo de planejamento de compras na rea comercial de uma empresa, atravs do Sistema de Gesto 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 disponveis 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 monitorao do cumprimento das previses de compra.

ERP so sistemas que permitem que as decises e as bases de dados de todas as partes de uma organizao sejam integradas de forma que as consequncias das decises de uma parte da organizao sejam refletidas nos sistemas de planejamento e controle do resto da organizao (SLACK; CHAMBERS; JOHNSTON; BETTS, 2007, p. 338).

18 1.1 OBJETIVOS DO TRABALHO

O objetivo deste trabalho foi o desenvolvimento de um mdulo de planejamento de compras para a rea comercial de empresas varejistas aplicando o conceito de Open to Buy, atribudo ao ERP Sapiens da empresa Senior Sistemas Corporativos. Os objetivos especficos do trabalho foram: a) desenvolver um mdulo 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, atravs do planejamento de compras, informaes sobre o controle de gastos inerentes a esta rea, bem como o saldo disponvel para compras.

1.2 ESTRUTURA DO TRABALHO

O presente trabalho est estruturado em quatro captulos. No primeiro captulo apresenta-se a introduo, o objetivo geral, bem como os objetivos especficos e a estrutura do trabalho, disponibilizando uma viso geral do mesmo e o contexto em que est inserido. O segundo captulo apresenta a fundamentao terica necessria para o desenvolvimento do trabalho onde so apresentados os principais conceitos de Administrao de Materiais, Compras no contexto empresarial, Planejamento de Compras e Open to Buy. O captulo tambm mostra caractersticas do ERP Sapiens e de alguns trabalhos correlatos. No terceiro captulo apresentado o desenvolvimento do mdulo de planejamento de compras no ERP Sapiens, mostrando a apresentao dos requisitos, diagramas e ferramentas utilizadas no desenvolvimento, bem como feita tambm uma demonstrao do funcionamento do mdulo. O quarto captulo apresenta as concluses finais e sugestes para trabalhos futuros.

19 2 FUNDAMENTAO TERICA

Neste captulo so apresentados os aspectos tericos relacionados aos conceitos envolvidos na Administrao 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 Administrao de Materiais tambm contribuiro para uma melhor compreenso do contedo exposto sobre o ERP Sapiens e os trabalhos correlatos que tambm so apresentados ao final do captulo.

2.1

ADMINISTRAO DE MATERIAIS

A Administrao de Materiais uma das atividades de gesto mais importantes para as empresas. A manuteno da competitividade est ligada diretamente forma com que os materiais so administrados, os quais devem possuir nveis compatveis com suas demandas, como tambm as compras necessitam ser cada vez mais geis para poder atender s necessidades de aumento da velocidade da renovao dos estoques. Reduzir os nveis de armazenamento sem causar desabastecimento o grande desafio para a gesto de materiais, visto que a manuteno da lucratividade da empresa altamente dependente deste processo (COSTA, 2002, p. 17). Outra definio a respeito da Administrao de Materiais apresentada por Severo Filho (2006, p. 15):

Administrao de Recursos Materiais utilizar os princpios bsicos da Administrao, com um padro de qualidade sistemtica, com a finalidade de bem aplicar os recursos financeiros e materiais, destinados s atividades operacionais de uma organizao, seja de natureza industrial, comercial ou de servios.

Segundo Francischini e Gurgel (2002, p. 4), a evoluo da Administrao de Materiais processou-se em vrias fases: a) atividade exercida diretamente pelo proprietrio da empresa, pois comprar era a essncia do negcio;

20 b) atividades de compras como apoio s atividades produtivas e, portanto, integradas rea de produo; c) condenao dos servios envolvendo materiais, comeando com o planejamento das matrias-primas e a entrega de produtos acabados, em uma organizao independente da rea produtiva; d) agregao rea logstica das atividades de suporte rea de marketing; e) modelo atual da rea de logstica da qual faz parte a Administrao de Materiais. Os pontos anteriormente mencionados podem ser resumidos conforme mostrado no Quadro 1.
Percepo Empresarial O administrador de materiais Situao Inicial Pessoa de recados Processo de Evoluo Funcionrio a servio da produo Burocrata eficiente Estgio Avanado Executivo conhecedor do mercado de abastecimento Conhecedor de administrao comercial e de mercados Planejamento do negcio Planejamento estratgico Situao Atual Executivo que administra 60% dos custos e das despesas Executivo com preparo tcnico, econmico e legal Diretor Executivo Concentrao em uma viso de melhoria dos resultados

Perfil do profissional

Pessoa bem considerada

Progresso do profissional Atividades da Administrao de Materiais

Sem possibilidades Faz despesas

Comprador Evita faltas e desmobiliza estoques excedentes

Fonte: Francischini e Gurgel (2002, p. 4).

Quadro 1 Evoluo da Administrao de Materiais

2.2

COMPRAS NO CONTEXTO EMPRESARIAL

Nos ltimos anos, em todo o mundo, a rea de compras vem passando por grandes transformaes e o grande motivo est no fato de que passou a ter importncia equivalente finanas, marketing ou produo, e hoje integra as decises estratgicas das empresas, sendo que nenhuma organizao financeiramente bem sucedida pode abstrair-se da contribuio de compras/suprimentos em seu planejamento estratgico (DIAS; COSTA, 2006, p. 11). No Quadro 2 apresentado um comparativo entre as principais atividades da rea de compras no passado e no presente.

21
NO PASSADO era um mal necessrio funo isolada, normalmente vinculada produo objetiva reduo de custos gerenciava crises operava manualmente ou usava o computador precariamente trabalhava com muitos fornecedores utilizava inspees de qualidade denominava o pblico interno de usarios pedidos de compras isolados profissional: comprador informaes dispersas NO PRESENTE vantagem competitiva funo integrada, normalmente vinculada alta direo objetiva otimizao de custos antev problemas e busca solues opera com sistemas integrados de gesto, muitos deles ligados aos fornecedores trabalha com poucos fornecedores utiliza qualidade assegurada denomina o pblico interno de clientes internos contratos de longo prazo profissional: empreendedor gerenciamento das informaes

Fonte: Dias e Costa (2006, p. 12).

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

Com esta comparao pode-se perceber que o profissional desta rea atualmente possui caractersticas tpicas de um empreendedor, e no mais apenas de comprador, visto que atualmente o mercado exige destes profissionais conhecimentos tcnicos, comerciais e de gerenciamento. Costa (2002), afirma que a funo de comprador mais que uma atividade administrativa, ela de vital importncia para o sucesso das atividades logsticas de uma empresa. Ele ainda afirma que: A rea de Compras , por muitos, vista de forma equivocada como uma rea excessivamente burocrtica e geradora de despesas, mas na realidade pode trazer resultados bem diferentes, desde que suas funes sejam bem executadas.

Constata-se facilmente que a questo da compra, de modo geral, no tem um tratamento mais srio, mais profissional. Um teste simples comprova isso: basta entrar numa livraria e verificar quantos ttulos existem sobre vendas e quantos, sobre compras. A venda algo que d mais teso, mais agradvel, e achamos muito importante vender o nosso negcio. Continuo, porm, acreditando que comprar mais importante. (GRAZZIOTIN, 2003, p. 24).

Sabe-se que no contexto empresarial a administrao de compras j reconhecida como uma atividade estratgica crucial, e que no mundo acadmico esta rea tambm j

22 possui seu reconhecimento, com disciplinas acadmicas e grande nmero de professores universitrios dedicados ao estudo desta rea. Com relao grande importncia da rea de compras, Dias e Costa (2006), afirmam que essa importncia relativa em vrios fatores, tais como a natureza da organizao ou o seu grau de dependncia de terceiros. Porm, 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 tambm adquirir servios, no momento certo, da fonte certa, com a qualidade desejada, e ao menor custo possvel. Baily et al. (2000, p. 31), ainda prope a seguinte definio ampla de objetivos da rea de compras no contexto empresarial: a) suprir a organizao com um fluxo seguro de materiais e servios 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 servio possvel aos usurios e ao menor custo; e) manter relacionamentos cooperativos slidos com outros departamentos, fornecendo informaes e aconselhamentos necessrios para assegurar a operao eficaz de toda a organizao; f) desenvolver funcionrios, polticas, procedimentos e organizao para assegurar o alcance dos objetivos previstos. Alm disso, Baily et al. (2000) ainda acrescenta alguns objetivos mais especficos 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 equilbrio de qualidade/valor; e) monitorar as tendncias do mercado de suprimentos; f) negociar eficazmente para trabalhar com fornecedores que buscaro benefcio

23 mtuo por meio de desempenho economicamente superior. Embora no contexto empresarial tem-se conhecimento que a maioria das operaes de aquisio envolve a parte financeira de uma organizao, Severo Filho (2006, p. 23) prope uma justificativa do por que no tratar-se a funo aquisio como compra. Segundo ele, o sentido da palavra aquisio significa vrias maneiras ou formas de adquirimos alguma coisa. Pode-se adquirir atravs de compra, doao, leilo, emprstimo, leasing, ou at mesmo utilizando meios ilegais, porm, todas estas formas seguem um processo, que utiliza-se de meios e estratgias. Severo Filho (2006), afirma que a funo Aquisio depende especificamente da Gerncia de Estoques, onde o comprador por meios de relatrios gerenciais possui diariamente a posio dos estoques e, conseqentemente, as quantidades a serem adquiridas, bem como quando essas aquisies devem ser feitas. As informaes destes relatrios representam as necessidades de aquisio de determinado material, dando incio ao ciclo de aquisio.

2.2.1

Varejo: Compras no segmento comercial

Segundo Dias e Costa (2006, p. 531), embora os princpios fundamentais sejam semelhantes, existem algumas diferenas conceituais nas aquisies para empresas comerciais relativamente s industriais. Na indstria sabe-se que os materiais adquiridos sero manufaturados e, durante este processo ser agregado valor ao produto final, resultando em um valor global muito superior ao somatrio dos custos individuais dos componentes empregados. O mesmo no acontece no varejo, pois a empresa que comercializa vende os produtos exatamente como foram recebidos, ou seja, a funo do varejo realizar a distribuio, colocando ao alcance do pblico as mercadorias desejadas.

Uma primeira dificuldade diz respeito ao problema da marca. No mbito industrial, o profissional de compras pode consultar vrios fornecedores, detentores de marcas diferentes. Basta que estas estejam aprovadas pelo controle de qualidade. A compra, ento, ser decidida em funo das melhores condies comerciais oferecidas, independentemente da marca, pois todas so aceitveis. No varejo, a situao diferente. Muitos consumidores tm preferncia por marcas especificas. Mesmo quando determinado fabricante pratica preo muito acima da concorrncia,

24
seu produto deve ser adquirido para no desfalcar a gndola. (DIAS; COSTA, 2006, p. 532).

Diante do exposto, Dias e Costa (2006, p. 532) elencam alguns aspectos relevantes sobre a atuao do comprador varejista: a) acompanhamento do giro do estoque: como o ressuprimento atribuio do analista de compras, conhecer o nvel dos estoques dos itens, verificando quais esto sendo mais comercializados, imperativo para garantir a no ocorrncia de faltas e, tambm, que no existam mercadorias encalhadas nas prateleiras; b) atrasos nos pedidos colocados: diferentemente do procedimento padro para a indstria e o servio, no comrcio a substituio de fornecedores tarefa muito difcil. Aqui existe o conceito da marca. O consumidor tem preferncias, e essas no podem ser ignoradas pelo comprador. A ocorrncia de atrasos dos maiores problemas, pois, apesar do mau atendimento de alguns fornecedores, no podemos simplesmente cancelar o pedido e substituir esses fornecedores. A receita justamente oposta a essa recomendao padro. Ao invs 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 preos de uma mercadoria pode desencadear uma aquisio especulativa. O comprador aumenta os nveis de estoque para beneficiar-se dessa elevao potencial. Com essa providncia, poder optar por acompanhar os preos dos concorrentes, aumentando seus lucros, ou manter os preos e vender volume acima da mdia normal; d) desenvolvimento de marcas alternativas: como o parmetro preo um dos determinantes na deciso de compra do consumidor, o comprador deve ficar atento para novas marcas colocadas no mercado. Geralmente, essas so oferecidas em condies especiais, com a finalidade de conquistar parcela do mercado. Sabendo explorar essas oportunidades, possvel oferecer produtos mais baratos, atraindo consumidores de baixa renda, ou realizar promoes para aumentar a venda de outros produtos os quais podero ser vendidos aos clientes que procurarem ofertas; e) contatos com clientes nos PDVs2: uma atividade de suma importncia no trabalho
2

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

25 do profissional do varejo o permanente contato com os clientes nos PDVs. Como, muitas vezes, a deciso sobre o que e quanto comprar deles, torna-se fundamental conhecer as preferncias dos consumidores. Identificar modelos, marcas, cores ou tamanhos mais procurados propiciar mais segurana deciso de compra, evitando os encalhes ou faltas dos itens mais vendidos; f) terceirizao com fornecedores: prtica ainda pouco difundida no Brasil, a transferncia para alguns fornecedores da gesto do estoque do varejista, cuidando para que a reposio acontea na mesma velocidade das vendas ao consumidor final, comea a ser exercida. Esse conceito sedimenta-se na premissa de que o fornecedor, por conhecer profundamente o seu segmento de mercado, desfruta de melhores condies de responder s flutuaes da demanda, assim como, por ter a responsabilidade pela reposio, tenderia a conceder mais prioridade aos clientes que se enquadram nessa categoria. O comprador passa a administrar os contratos, cuidando para que os estoques no sejam maiores do que o desejado, exercendo o controle do processo, especialmente no que se refere aos preos praticados, e assegurando seu sucesso; g) utilizao do regime de consignao: outra prtica muito usual a consignao 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 no vendidas. Essa sistemtica facilita demais a deciso de compra, pois risco de arcar com o estoque no vendido passa a ser do fornecedor e no do varejista. Cuidado fundamental, contudo, no utilizar esse instrumento de modo indesejado. Apenas porque o risco do fornecedor, alguns compradores solicitam volumes excessivos de mercadorias. Muitas vezes, ocorre a obsolescncia ou as devolues de grandes quantidades. fcil perceber que, caso essa conduta se estenda por muito tempo, o fornecedor desiste do procedimento e passa a ter srios problemas financeiros, porque o seu estoque vai-se tornar excessivamente elevado, em funo das devolues; h) trabalhar com margens negativas: muitos varejistas usam o rendimento financeiro como substituto da margem operacional. O comprador, ao negociar com os fornecedores, obtm prazos de pagamento elevados. Como muitas mercadorias so vendidas vista, o recurso financeiro pode ser mantido aplicado at o efetivo pagamento. Assim, fazendo o clculo tradicional de margem, partindo-se do valor de aquisio versus o preo de venda, essa muito pequena ou, at negativa, mas,

26 considerando o rendimento financeiro, o resultado final ser satisfatrio. Isso tudo, porm, somente ser possvel 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 razo, variveis em funo da localizao geogrfica do fornecedor. Muitas vezes, uma condio de preo, aparentemente atrativa, inferior a outra, fato visvel com uma simples avaliao tributria. Outra preocupao com os impostos diz respeito recuperao desses. Determinados tributos podem ser compensados ou recuperados. Recomendamos ao comprador varejista consultar o departamento fiscal da sua organizao para obter a orientao sobre como proceder em cada situao particular; j) compras com bonificao: muitos fornecedores no podem conceder descontos sobre os seus preos, por serem estes padronizados. Muitos, contudo, podem oferecer bonificaes, isto , acrescentam determinado volume quantidade constante do pedido, pelo mesmo valor total original, o que, na prtica, representa concesso no preo unitrio. Cabe ao profissional de compras, avaliar os benefcios decorrentes desse incremento e implementar no mbito da empresa varejista. Ainda neste contexto, importante salientar trs conceitos muito importantes para uma melhor conduo das tarefas do comprador varejista, principalmente no acompanhamento rigoroso das mercadorias integrantes do estoque da empresa, que deve ser exercido pelo comprador. Tais conceitos tambm so explicados por Dias e Costa (2006, p. 536) conforme visto a seguir: a) variedade: identifica o nmero de linhas de mercadorias componentes do estoque da empresa colocado disposio do pblico. Est relacionada ao conceito de famlia, sugerindo afinidade entre elas; b) sortimento: quantidade de produtos integrantes de cada linha. Pode-se dispor de poucos produtos para cada linha, situao caracterstica de reduzido sortimento, ou gama muito variada de mercadorias, sugestiva de grande sortimento; c) uniformidade: identifica o grau de inter-relao das diversas linhas entre si. Diz-se que existe uniformidade quando a correlao entre linhas ou mercadorias elevada. Esta seria situao tpica de loja de cama, mesa e banho, por exemplo, em que todas as mercadorias esto associadas.

27 2.3 PLANEJAMENTO DE COMPRAS

De acordo com Parente (2000, p. 222), o processo de compras envolve, provavelmente, a atividade mais crtica de uma empresa do ramo de varejo. medida que as vendas so realizadas, os estoque das lojas necessitam ser reabastecidos para que novas vendas possam ocorrer. O ciclo de abastecimento consiste em uma funo vital para a sobrevivncia e expanso de qualquer empresa varejista. Com base na importncia da rea de compras perante os outros setores da empresa, percebe-se que os profissionais desta rea precisam estar preparados para que a organizao como um todo consiga alcanar os objetivos financeiros planejados pela alta administrao, para tanto, a seguir sero abordados os principais aspectos relacionados ao planejamento de compras.

2.3.1

Organizao financeira de compras x Objetivos da alta administrao

Segundo Levy e Weitz (2000), os planos financeiros comeam no topo da organizao de varejo e so divididos em categorias, enquanto os compradores e planejadores de mercadorias fazem os seus prprios planos e os negociam com os nveis mais altos da organizao. Os gerentes superiores precisam tomar decises que iro definir a imagem comercial da empresa, por outro lado, os compradores e planejadores de mercadorias estudam o desempenho passado de suas categorias, verificam as tendncias de mercado e tentam efetuar uma projeo das necessidades de suas mercadorias para as vendas futuras. De acordo com Parente (2000), diversas prticas so adotadas nos procedimentos de planejamento e gesto de compras, estes procedimentos podem ser estruturados em torno de trs abordagens: a) de cima para baixo: comea com a gerncia determinando um montante em unidade monetria a ser estabelecido para as compras, para toda a empresa. Os gestores de compras, ento, distribuem esse montante entre as vrias categorias, por loja; b) de baixo para cima: comea com a estimativa no nvel de produto, passando pelo nvel de categoria, departamento, e consolidados no nvel da empresa; c) interativa: linhas gerais de oramentos financeiros de compras so estabelecidos

28 pela gerncia. Os compradores, ento, seguem a abordagem de baixo para cima com revises e modificaes feitas pela gerncia para assegurar que tanto as metas financeiras como as estratgicas de marketing e de abastecimento do produto sejam cumpridas. Essa abordagem pressupe que a organizao possua um bom sistema de informaes e de coordenao. Para as empresas menores, o planejamento financeiro tambm semelhante, embora no existam tantos nveis de gerenciamento envolvidos.

2.3.2

Oramento de compras

Segundo Parente (2000, p. 223), em qualquer ramo varejista, as compras constituem a conta de despesa de maior importncia no relatrio de lucros e perdas da empresa. Para Santos (2006, p. 19), o oramento de compras de uma empresa varejista determina o valor a ser comprado mensalmente pela empresa em funo do volume de vendas previsto, e define os objetivos de venda, margens e nveis de estoque desejados pela empresa. Quando houver alteraes nas previses de venda, o oramento 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 oramento de compras ainda uma tarefa difcil para a maioria das empresas varejistas, uma vez que as mudanas no cenrio econmico, nos gostos dos consumidores e na alterao do padro de compra, podem afetar o volume de vendas e conseqentemente, exigir mudanas nas quantidades a serem compradas. (SANTOS, 2006, p. 19).

Neste contexto, Parente (2000, p. 223) sugere que a Meta de Compras do ms seja adquirida atravs da frmula apresentada no Quadro 3.

29

Estoque planejado para o final do ms - Estoque inicial do ms + Previso de vendas do ms + Demarcaes previstas __________________________ = Meta de Compras do ms Fonte: Parente (2000, p. 223).

Quadro 3 Meta de Compras do ms

O Quadro 4 apresenta um exemplo simplificado da lgica do oramento de compras.


Perodo 1 (R$ 1.000) 400 400 200 200 170 Perodo 2 (R$ 1.000) 430 400 210 180 220 Perodo 3 (R$ 1.000) 390 400 205 215 ..........

Estoque inicial do ms (preo de venda) Estoque planejado final do ms (preo de venda) Previso de vendas do ms (preo de venda) Meta de compras do ms (preo de venda) Vendas do ms (preo de venda)
Fonte: Parente (2000, p. 223).

Quadro 4 Exemplo simplificado da lgica do oramento de compras

Parente (2000, p. 223) explica que, conforme se pode observar no Quadro 4, no primeiro perodo a empresa iniciou o ms com valor dos estoques iguais ao estoque planejado para o final do ms (R$ 400 mil). A Meta de Compras ento equivalente previso das vendas do ms (R$ 200 mil). Percebe-se que as vendas no primeiro perodo (RS 170 mil) foram inferiores ao valor previsto, o que resultou em uma elevao no valor de estoque inicial do segundo perodo. No segundo perodo o valor do estoque do incio do ms (R$ 430 mil) maior do que o valor do estoque planejado para o final do ms (R$ 400 mil), ento, neste caso foi estabelecida uma Meta de Compras (R$ 180 mil) menor que a previso de vendas (R$ 210 mil), isto para que o volume dos estoques seja corrigido para atingir o objetivo inicial do terceiro perodo. No terceiro perodo a empresa encontra-se em situao oposta do segundo perodo, 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 prtica das demarcaes de preo, estas por sua vez, assumem uma magnitude expressiva, sendo necessrio ajustar a Meta de Compras do ms. As demarcaes devem incluir no somente as redues de preos das mercadorias, mas tambm as quebras, causadas por estragos ou roubos. Desta forma, as demarcaes reduzem o valor dos estoques e, portanto, as compras precisam rep-las. Parente (2000), explica ainda que, se o volume de demarcaes planejadas no segundo

30 perodo fosse de R$ 10 mil, a Meta de Compras para este perodo passaria a ser R$ 190 mil, conforme o clculo: Meta de Compras do Ms = (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, necessrio que os gestores de compras desenvolvam instrumentos de controle, denominados Open to Buy (saldo disponvel para compras), para que as compras de determinado perodo no ultrapassem o que foi projetado. Este controle deve registrar no somente as compras j entregues, mas tambm as compras efetuadas que ainda no foram recebidas. Um bom controle de estoque fundamental para assegurar um nvel adequado de estoque para as vendas que sero efetuadas. Estoque excessivo ou mercadorias erradas estocadas durante determinados perodos podem atrapalhar o fluxo de caixa e acarretar uma reduo dos lucros com excessivas demarcaes. 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, traduo nossa). Tudo comea com o planejamento de compras, mas, medida que o tempo passa, o Open to Buy torna-se o mtodo pelo qual o comprador acompanha o desempenho efetivo com relao ao que foi planejado e se ajusta conforme as condies do mercado. O Open to Buy nada mais do que as mercadorias necessrias menos as mercadorias disponveis, incluindo o que j foi pedido (THEOBALD, 2000, p. 169, traduo 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, traduo nossa). Open to Buy um oramento, comea com o processo de planejamento, orientando os processos futuros, fornecendo informaes sobre o quanto comprar, bem como pontos de referncia para avaliar os progressos e ajustar os planejamentos futuros (HURLBUT, 2006, traduo nossa). Embora possa ser utilizado, o Open to Buy no adequado para todas as categorias de mercadorias, para mercadorias com um ciclo de vida longo, as ferramentas de reposio

31 automtica so mais sugeridas. O Open to Buy muito adequado para o ramo de moda, onde produtos especficos podem mudar constantemente, no entanto, as suas classificaes e subclassificaes permanecem relativamente estveis. muito adequado tambm para as mercadorias sazonais, que precisam estar no estoque logo no incio da poca de vendas e precisam ser gerenciados com um nvel pr-determinado, para que no sobrem mercadorias no final da poca de vendas (HURLBUT, 2006, traduo nossa). Embora o Open to Buy possa ser aplicado para qualquer perodo, geralmente este possui aplicao mensal, desta forma, segundo Westerman (2001, p. 261, traduo nossa), o Open to Buy do ms corrente pode ser calculado atravs da frmula apresentada no Quadro 5.
Estoque planejado para o prximo ms + Vendas planejadas para o ms corrente + Demarcaes planejadas para o ms corrente + Retratibilidade planejada para o ms corrente - Estoque atual do ms corrente ________________________________ = Open to Buy para o ms corrente Fonte: Westerman (2001, p. 261, traduo nossa).

Quadro 5 Clculo do Open to Buy para o ms corrente

Ainda segundo Westerman (2001, traduo nossa), o Open to Buy dos prximos meses pode ser calculado atravs da frmula apresentada no Quadro 6.
Compras planejadas para o ms - Pedidos de compras para o ms ________________________ = Open to Buy para o ms Fonte: Westerman (2001, p. 261, traduo nossa).

Quadro 6 Clculo do Open to Buy dos prximos meses

Conforme pode ser observado no Quadro 5, de certa forma, o clculo do Open to Buy apresentado por Westerman (2001) para o ms corrente, j inclui em sua frmula a Meta de Compras apresentada por Parente (2000), apenas incrementando a retratibilidade, que so os furtos de mercadorias no estabelecimento e demais formas de perdas de produtos. No clculo do Open to Buy dos prximos meses apresentado no Quadro 6, as compras planejadas nada mais so do que a Meta de Compras definida atravs do clculo apresentado por Parente (2000). O Quadro 7 apresenta um exemplo de controle do Open to Buy.

32
Data Estoque planejado final Estoque inicial Previso de vendas Demarcaes previstas Meta de compras fevereiro Mercadorias recebidas em 5/fev. Mercadorias recebidas entre 6 e 20/fev. Pedido colocado em 21/fev. Saldo para compras Open to Buy Valores (R$ mil) 400 430 210 10 190 30 120 25 Saldo para compras (R$ mil)

1/fev. 5/fev. 20/fev. 21/fev. 21/fev.

190 160 40 15 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, vrias demarcaes so 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, traduo nossa). O Open to Buy mostra quanto de estoque deve-se ter em mos no incio de qualquer ms e como as mercadorias devem ser recebidas durante o ms. Desta forma, pode-se estimar com antecedncia o valor financeiro que ser necessrio para ser investido em estoques de ms para ms, para a prxima poca (MATYJEWICZ, 2001, traduo nossa). Por fim, o Open to Buy tambm ajuda a assegurar o montante adequado de estoque que ser necessrio para suportar as vendas planejadas, fornecendo o controle dos compromissos para que no se receba as novas mercadorias antes do previsto (MATYJEWICZ, 2001, traduo nossa).

2.3.4

Planejamento unitrio das compras

Para Parente (2000), do ponto de vista da gesto financeira, do fluxo de caixa e da avaliao de indicadores de desempenho, os valores relacionados s vendas, estoques e compras, devem ser expressos em unidades monetrias.

Quando se trabalha com agrupamentos de produtos, como departamentos ou categorias, adota-se a unidade monetria, por consistirem um denominador comum

33
de unidade de medida. Para produtos individuais, pode-se trabalhar tanto com previses em unidades monetrias como em unidades fsicas (ex.: quilos, litros e quantidades unitrias). (PARENTE, 2000, p. 224).

Desta forma, quando se est decidindo sobre o volume de compras de um item especfico, a estimativa para o planejamento de compras desenvolvida com base em unidades fsicas. Tem-se ainda que, do ponto de vista da gesto das compras, os produtos podem ser classificados em contnuos e descontnuos, dependendo do tipo de produto, o comprador do varejo deve adotar mtodos diferentes de planejamento de compras. Os produtos contnuos so aqueles com um ciclo de vida longo e que tem uma demanda contnua durante muito tempo, como exemplo, pode-se citar os alimentos, produtos de limpeza, perfumaria, eletrodomsticos entre outros. Os produtos descontnuos so aqueles com um ciclo de vida curto, que esto presentes na loja apenas durante certo perodo de tempo. Como exemplo para estes produtos, pode-se citar os artigos de confeco, que apresentam caractersticas de moda e estaes do ano e tambm os produtos que so 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 viso do SEBRAE

O Servio Brasileiro de Apoio s Micro e Pequenas Empresas (SEBRAE) sugere em forma de um instrumento de apoio gerencial, uma sria de regras bsicas para comprar bem. Estas regras servem somente como sugesto, sendo que cada empresa pode adapt-las conforme suas caractersticas. Tais informaes servem tambm para evitar os erros mais comuns nas operaes 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 previso de vendas; b) ajustar a previso s possibilidades da empresa; c) decidir o que vai comprar; d) elaborar oramento para as compras previstas durante um perodo;

34 e) elaborar oramento de mercadorias por seo; f) efetivar as compras; g) acompanhar os pedidos. A previso de vendas, geralmente, realizada para um determinado perodo, conforme as necessidades de cada empresa. Em muitas empresas, a etapa da previso est diretamente ligada rea de compras, entretanto, esta no parece ser a melhor soluo. Se a etapa da previso fica por conta do setor de compras, o setor de vendas, maior interessado, entra na elaborao da previso apenas como um simples informante, no assumindo a responsabilidade por ela. Desta forma, o mais correto fazer com que a previso de vendas seja um trabalho conjunto dos setores de compras e de vendas. aconselhvel que se faa uma previso para cada seo da empresa, estas devem ser consideradas individualmente e, somente mais tarde, reunidas em uma s, para fins de planejamento. De posse da previso de vendas, a rea de compras poder ento estabelecer a relao estoque/venda para atender s vendas previstas. Aps preparadas as previses de vendas, estas devem ser discutidas em reunies, onde alm do empresrio, devem participar os gestores dos setores de compras, vendas e financeiro da empresa, sendo que a participao do gestor do departamento financeiro de vital importncia, pois ele que conhece a real situao financeira da empresa, suas limitaes 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 condies de assumir estes compromissos financeiros. Baseado na previso de vendas, a rea de compras toma a deciso do que realmente ir comprar, considerando o plano de desembolso mensal. A rea financeira, por sua vez, ir planejar os desembolsos mensais necessrios para as compras, bem como, indicar como e onde buscar se necessrios, os recursos para complementar o capital de giro da empresa, este processo deve levar em considerao a relao estoque/venda fornecida pelo setor de compras. O controle financeiro determina um oramento para a rea de compras, para que este possa colocar em prtica as aquisies programadas para determinado perodo. Este oramento prev o cronograma dos desembolsos, ms a ms. Aps elaborado o oramento que atende s aquisies de mercadorias previstas para determinado perodo, preciso detalhar o oramento para cada uma das sees da empresa. O oramento de mercadorias por seo somente poder ser realizado quando a empresa estiver de posse da previso de vendas aprovada, do oramento que vai dispor para o perodo considerado, do conhecimento das mercadorias necessrias complementao do estoque e

35 quando a mesma souber com preciso, o que ser necessrio adquirir no que se refere s novidades no mercado. Com estes dados, o gestor da rea de compras tem condies de organizar um oramento de mercadorias para cada uma das sees da empresa, estabelecendo as cotas de compras mensais. Se as etapas anteriores estiverem bem organizadas, a efetivao das compras torna-se uma etapa fcil de ser cumprida, bastando apenas o setor de compras fazer seus pedidos de forma a atender s limitaes ditadas pelo cronograma de desembolso mensal. Conforme a rea de compras vai efetuando as aquisies, as reas de vendas e financeiras devem ser informadas sobre as mercadorias e as datas previstas para sua chegada. Alm disso, a rea financeira deve ser constantemente informada sobre o recebimento e a aceitao 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 no foram entregues. O gestor de compras deve constantemente acompanhar os pedidos, a fim de fazer com que no ocorram atrasos nas entregas, pois, caso isto venha a ocorrer o planejamento ficar prejudicado, principalmente o planejamento dos produtos descontnuos (SEBRAE, 2005).

2.4

SISTEMA SAPIENS

O Sistema Corporativo Sapiens um sistema de gesto empresarial desenvolvido pela empresa Senior Sistemas Corporativos, sediada na cidade de Blumenau, no estado de Santa Catarina. A Senior Sistemas tambm desenvolve solues para outros segmentos de mercado, os quais se destacam o Vetorh, sistema voltado para o gerenciamento estratgico de recursos humanos (RH) e o Ronda, sistema para controle de acesso e segurana. O ERP Sapiens atende diversos segmentos de negcios nas reas administrativa, financeira, comercial, industrial, logstica e recursos humanos, alm de atender a vrios outros segmentos especficos. A integrao e independncia dos mdulos do sistema distribuem as informaes por toda a estrutura organizacional, permitindo ainda, a integrao total com outros sistemas corporativos, como os direcionadores para a rea de recursos humanos (SENIOR SISTEMAS, 2009a). Com relao tecnologia, a parte de aplicao do sistema totalmente desenvolvida

36 para a plataforma Windows, com arquitetura cliente/servidor. Alm da arquitetura cliente/servidor, o Sistema Sapiens tambm pode ser executado em outras formas de aplicao, como uma verso web (funcionalidade parcial do sistema), WindowsAccess (execuo em ambiente remoto para desktop Windows), e BrowserAccess (acesso completo ao sistema 100% web) (SENIOR SISTEMAS, 2009b). O Sapiens composto por um conjunto de mdulos integrados que incluem todos os processos empresariais com versatilidade, envolvendo todas as etapas de decises e produtividade de uma empresa, conforme ilustrado na Figura 1.

Fonte: Senior Sistemas (2009c).

Figura 1 Diviso dos mdulos existentes no Sistema Sapiens

O Sistema Sapiens uma ferramenta ERP moderna, eficiente e flexvel, idealizada dentro do conceito toque nico, em que um s lanamento no sistema alimenta com informaes toda a empresa (SENIOR SISTEMAS, 2009d). A Figura 2 apresenta o menu principal do Sistema Sapiens.

37

Figura 2 Menu principal do Sistema Sapiens

Conforme pode ser visto na Figura 2, o sistema possui uma diviso de reas nos menus que podem ser definidos da seguinte forma: a) ncleo de informaes gerais: so itens apresentados nos menus Tabelas e Cadastros. As informaes cadastradas nestes menus so na maior parte informaes de uso comum entre todos os mdulos, sendo que no menu Tabelas existe uma diviso de concentrao das informaes separadas por mdulos, e no menu Cadastros todas as demais informaes necessrias para o funcionamento das rotinas executadas diariamente em uma empresa. Pode-se desta forma fazer uma analogia, e dizer que estes menus formam o corao do sistema; b) mdulos do sistema: so os itens de menus que representam na sua concepo, as grandes reas de uma organizao, so eles: Comercial, Financeiro, Contbil, Produo, Custos, e Sistema de Gesto da Qualidade (SGQ). Estes mdulos concentram todas as informaes inerentes a estas reas em uma organizao, sendo que existe uma integrao total entre as mesmas; c) recursos do sistema: neste item de menu so concentradas uma srie de recursos disponibilizados no sistema que facilitam o dia a dia de uma organizao. Alguns exemplos destes recursos so: gerador de relatrios (cada empresa pode desenvolver os seus prprios relatrios), gerador de cubos (trabalha com dados no

38 formato de matriz, permitindo anlises multidimensionais das informaes pertinentes a empresa), gerador de telas (cada empresa pode criar seus prprios formulrios para cadastramento de informaes), alm de importao e exportao de dados, regras definidas pelos prprios usurios 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 configuraes diversas, tais como: personalizao de menus, personalizao de barras, configuraes de acesso, entre outros.

2.4.1

Mdulo Comercial do Sistema Sapiens

O mdulo Comercial um dos principais mdulos do sistema. Tem integrao com todos os outros mdulos, fornecendo e recebendo informaes destes. No que se refere ao ramo varejista, segundo o Instituto para Desenvolvimento do Varejo (IDV), a importncia deste setor no cenrio econmico brasileiro vem sendo cada vez mais reconhecida e destacada. Alm de gerador do maior nmero de empregos formais no pas, o setor exibe, especialmente nos ltimos quatro anos, nmeros expressivos de crescimento e consistentes indicadores de modernizao (IDV, 2009). Na utilizao do Sapiens no segmento varejista, a alimentao dos dados do PDV no mdulo Comercial feita atravs de um sistema de automao comercial integrado com o Sistema Sapiens, este sistema de PDV desenvolvido pela empresa Megasul Informtica, tambm sediada em Blumenau, Santa Catarina. Esta integrao 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 gesto empresarial como um sistema de retaguarda. Desta forma, o Sistema Sapiens constantemente alimentado com as informaes comerciais realizadas nos pontos de venda, sendo assim, o mesmo, juntamente com o sistema da Megasul comercializado como soluo para o ramo de varejo. O Sistema Sapiens como soluo para o varejo, traz funcionalidades que auxiliam no gerenciamento de todos os processos comerciais, de crdito, contbeis, de estoque, entre outros. (SENIOR SISTEMAS CORPORATIVOS, 2009). O Sapiens como soluo para o varejo permite agilidade no atendimento ao cliente,

39 reduzindo filas, gerando segurana no processo de vendas, alm de bloqueio de descontos e limites, anlise imediata de crdito, transaes de Transferncia Eletrnica de Fundos (TEF), atendimento Legislao Fiscal e Tributria e emisso de carns automaticamente. (SENIOR SISTEMAS CORPORATIVOS, 2009). O mdulo Comercial dividido em trs principais sub-mdulos, sendo eles: Compras, Vendas e Estoques. Como complemento para o mdulo Comercial, este possui ainda os submdulos de Distribuio e Transporte.

2.4.1.1

Compras

O sub-mdulo de Compras est diretamente ligado ao mdulo de Estoques no que se refere s requisies de materiais e solicitaes de compras, alm de ser integrado, tambm, com o mdulo de Contas a Pagar. Este mdulo contempla tambm as etapas de cotao com fornecedores at a entrada da nota fiscal, passando pela atualizao dos estoques que transparente dentro do processo de compras. A Figura 3 apresenta um fluxograma das atividades envolvidas neste mdulo. Conforme Senior Sistemas (2009e), as principais funcionalidades deste mdulo so: a) administra solicitaes de compras, com proposio automtica dos preos dos fornecedores nas cotaes; b) gera solicitaes de compra automaticamente a partir da anlise de estoques, via requisio e necessidade de produo; c) possibilita anlise entre as condies das ordens de compra e respectivas notas fiscais; d) gera ordens de compra via cotaes, automaticamente;

e) controla ordens de compra e compradores responsveis; f) considera opcionalmente as ordens de compra no fluxo de caixa; g) permite envio de e-mail automtico ao fornecedor com cpia da ordem de compra; h) permite condies flexveis de pagamento; i) j) controla o cadastro de fornecedores, incluindo tabelas de preos; controla contratos;

k) permite gerar cotaes de compra via web; l) possibilita controle oramentrio das compras por centro de custo;

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

40 atravs de converso automtica; n) sugere a melhor cotao, trazendo o valor presente; o) permite a entrada de notas fiscais via cdigos de barra; p) controla o processo de entrada e sada de mercadorias atravs da interface com balanas.

Fonte: Senior Sistemas Corporativos (2009).

Figura 3 Fluxograma do sub-mdulo 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 dvida, um importante documento que, por suas diversas vias, permitir uma amarrao geral dos servios de compra. Para o Sapiens, a Ordem e Compra faz a oficializao junto ao

41 fornecedor, nela so calculados os valores totais e lquidos dos produtos/servios, impostos, frete e seguro. Desta forma, tem-se a visualizao prvia dos dados da Nota Fiscal que possivelmente ser emitida pelo fornecedor. O Sapiens permite que no momento da negociao 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 conferncia com os dados j previamente calculados, desta forma, no necessria a digitao da mesma, adquirindo agilidade e segurana (SENIOR SISTEMAS, 2009i).

2.4.1.1.2

Nota Fiscal de Entrada (NFE)

A Nota Fiscal de Entrada o documento que comprova a existncia de um ato comercial. O Sapiens permite efetuar a gerao de uma Nota Fiscal manualmente ou via confronto e confirmao com as Ordens de Compra previamente negociadas. Uma vez que os dados necessrios composio da Nota Fiscal foram previamente calculados com base na Ordem de Compra, o Sapiens organiza a Nota e as respectivas parcelas de pagamento. Aps a finalizao da Nota Fiscal de Entrada, que se concretiza com o fechamento da mesma, so atualizados os saldos e movimentao do estoque, ttulos a pagar, saldos e dados histricos do fornecedor, situao da prpria Ordem de Compra, documentos de requisio, bem como o rateio de valores por contas e centros de custos (SENIOR SISTEMAS, 2009j). A Figura 4 apresenta um exemplo do processo de gerao de Nota Fiscal de Entrada via Ordem de Compra no Sistema Sapiens. Pode-se perceber atravs 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/servio no necessariamente precisa ser a mesma da OC, ou seja, pode ser total ou parcial.

42

Figura 4 Exemplo de gerao de Nota Fiscal de Entrada via Ordem de Compra no Sistema Sapiens

2.4.1.2

Vendas

O mdulo de Vendas responsvel por administrar os pedidos de venda, bem como efetuar a gerao de notas fiscais de sada. Possibilita tambm faturamentos por pedido, clculo de comisses via faturamento, alm de colocar disposio dos usurios, informaes gerenciais baseadas em estatsticas de vendas. A Figura 5 apresenta um fluxograma das atividades envolvidas neste mdulo.

43

Fonte: Senior Sistemas Corporativos (2009).

Figura 5 Fluxograma do sub-mdulo vendas do Sistema Sapiens

Conforme Senior Sistemas (2009f), as principais funcionalidades deste mdulo so: a) permite entrada de pedidos com produtos configurveis; b) permite o agendamento de visitas a clientes; c) efetua anlise de embarque gerando preparao para faturamento e montando as embalagens para expedio de forma automtica; d) possibilita faturamento por pedido, por lote e/ou especiais (produtos e servios); e) controla pedidos de vendas, oramentos e previses de produo; 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 preos de venda; i) j) emite notas fiscais com layout adaptvel; calcula comisses via faturamento;

k) controla crdito, cadastros e histricos de clientes; l) controla representantes, cotas e comisses;

44 m) permite condies flexveis de pagamento; n) mantm histricos de tabelas de preos de venda de produtos e de servios; o) rastreia pedidos na produo; p) controla contratos; q) permite entrada de pedidos via web; r) coloca disposio informaes gerenciais baseadas em estatsticas de vendas por regio, por representantes e por clientes (SIG Sistema de Informao Gerencial); s) permite a entrada de pedidos e notas fiscais via cdigos de barra; t) controla o processo de entrada e sada de mercadorias atravs da interface com balanas; u) aceita qualquer unidade de medida para venda, por meio de converso automtica.

2.4.1.3

Estoques

O sub-mdulo de Estoques responsvel por atender s requisies de materiais, emitir solicitaes de compra para materiais sem saldo em estoque, bem como emitir solicitaes de compra de materiais para a produo. Em resumo, seu objetivo controlar os estoques de uma empresa com toda a movimentao (entrada e sada) de mercadorias que ocorre nos sub-mdulos de compras e vendas. A Figura 6 apresenta um fluxograma das atividades envolvidas neste mdulo. Conforme Senior Sistemas (2009g), as principais funcionalidades deste mdulo so: a) controla estoques de produtos multidepsitos, por lotes, por prazos de validade e por sries; b) possui rotinas de requisio de materiais/servios, aprovao, atendimento e solicitao de compras; c) calcula preo mdio, de custo, de reposio e ltima entrada; d) possui rotina de inventrio com recontagem e acertos automticos, permitindo tambm o inventrio por lote/srie; e) operacionaliza estoques com cdigos de barras; f) controla consignaes (clientes e fornecedores); g) analisa reposies de estoques; h) gerencia curva ABC; i) gera acmulos mensais de Consumos, Entradas e Devolues;

45 j) possibilita a formao de embalagens de estocagem;

k) possibilita aprovaes e requisies via web; l) permite a gerao e o controle de numerao de produtos (sries);

m) gera solicitaes de compra automaticamente a partir da anlise de estoques, via requisio e necessidades de produo; n) permite controle de aprovao multinvel por valor e centros de custos para ordens de compra e solicitaes de compras; o) permite controle de localizao atravs da mscara do cdigo de depsito.

Fonte: Senior Sistemas Corporativos (2009).

Figura 6 Fluxograma do sub-mdulo estoques do Sistema Sapiens

2.4.1.4

Distribuio

O sub-mdulo de Distribuio tem como objetivos disponibilizar complementos de

46 funcionalidades de pedidos do mdulo de vendas, bem como processos de carga, acertos e faturamentos. Conforme Senior Sistemas (2009f), as principais funcionalidades deste mdulo so: 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 informaes de venda via palmtop; f) possibilita o fracionamento dos produtos em estoque; g) efetua ordens de compra com programao de entrega; h) permite incluso de pendncias financeiras na formao da carga.

2.4.1.5

Transporte

O sub-mdulo de Transporte tem como objetivo atender as necessidades de empresas de logstica de transporte de mercadorias, realizando processos de coleta de mercadorias, contratao de motoristas, gerao de Conhecimento de Transporte Rodovirio de Cargas (CTRC), Manifesto, entre outros. Conforme Senior Sistemas (2009f), as principais funcionalidades deste mdulo so: a) controla o cadastro de veculos e motoristas; b) possibilita o cadastramento de tabelas de preo de frete; c) permite o cadastramento de solicitaes para coletas de mercadorias, controlando remetente, destinatrio e consignatrio; d) efetua a cotao de preos para transporte das mercadorias, controlando a disponibilidade do motorista e a rota de entrega que ele atende; e) controla a contratao dos motoristas/veculos que faro o transporte; f) gera o conhecimento de transporte atravs das coletas cadastradas; g) permite a gerao do Manifesto, gerando ttulos no Contas a Pagar para o motorista contratado.

47 2.5 TRABALHOS CORRELATOS

No que diz respeito ao planejamento de compras e aplicao do Open to Buy, existem alguns sistemas de gesto no mercado que desempenham papel semelhante ao proposto por este trabalho, no entanto, poucos trabalhos acadmicos foram desenvolvidos acerca destes conceitos. A Soluo 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 solues para gesto empresarial. Alm das quatro reas principais, planejamento estratgico, de local, de produtos e de seleo de mercadorias, o SAP Retail MAP tambm faz interao com o planejamento de reduo de preos, otimizao da exposio de produtos, gerenciamento de estilo, compras e recursos de alocao, alm de fazer integrao, 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 distncia entre a anlise, a simulao, o planejamento e a execuo (SAP AG, 2005).

Fonte: SAP AG (2005).

Figura 7 Planejamento integrado de mercadorias e sortimento na soluo SAP Retail MAP

48 A Millennium NetWork, empresa brasileira tambm desenvolvedora de softwares para gesto empresarial, comercializa o Millennium Business Manager (Millennium BM), uma ferramenta ERP voltada para o mercado de vesturio e decorao. O Millennium BM um sistema modular, flexvel, integrvel, e que cobre os processos produtivos, administrativos e comerciais de empresas ligadas ao ramo da moda e vesturio (MILLENNIUM NETWORK, 2006a). A metodologia do planejamento de compras da Millennium envolve, tambm, o planejamento de abastecimento de lojas, diminuio das quebras de estoque e remarcao contnua, incluindo tambm um modelo parametrizvel de Open to Buy (MILLENNIUM NETWORK, 2006b). No meio acadmico, Santos (2006) apresentou uma dissertao de Mestrado no Programa de Ps-Graduao e Pesquisa em Administrao e Economia da Faculdade de Economia e Finanas IBMEC, cujo ttulo Propostas para Aumento do Desempenho da rea de Compras em Empresa Varejista. Nesta dissertao, a autora realizou um estudo de caso em uma empresa varejista de material de construo, onde foi necessrio identificar as principais mudanas ocorridas na rea de compras da referida empresa aps a entrada da concorrncia, em relao aos quatro tpicos estratgicos: planejamento de compras, estrutura organizacional, relacionamento com fornecedores e sistemas de informao, bem como diagnosticar o estgio de evoluo 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 possveis benefcios da aplicao de suas propostas.

49 3 DESENVOLVIMENTO DO MDULO DE PLANEJAMENTO DE COMPRAS

Neste captulo so demonstradas as etapas de desenvolvimento do mdulo de forma detalhada, tais como, elaborao dos requisitos funcionais e no 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 implementao e os resultados obtidos acerca do presente trabalho. O mdulo de planejamento de compras desenvolvido possui a tarefa de automatizar os processos de planejamento do setor de compras das empresas varejistas, bem como disponibilizar informaes sobre o controle de gastos utilizados nos pedidos de compra emitidos pelos compradores atravs dos saldos disponveis para compras. As compras podem ser planejadas de acordo com os dados histricos de compras e vendas, permitindo aplicar percentuais de crescimento para gerao dos dados do planejamento. O comprador pode considerar em todas as etapas do gerenciamento do seu planejamento, variveis como: estoque inicial planejado, estoque final planejado, previses de venda e metas de compra. Com o clculo do Open to Buy possvel fazer estimativas de compras com grande antecedncia e conseqentemente saber o valor financeiro necessrio para ser investido em determinado perodo. Quando o planejamento elaborado entrar em vigncia, o valor das compras ser abatido do saldo disponvel a cada fechamento de ordem de compra registrada no sistema. Neste contexto, a utilizao deste mdulo possibilita aos compradores uma melhor utilizao do desenvolvimento de estratgias que permitam facilitar a gesto da funo compras, evidenciando uma grande melhoria neste processo, permitindo ao gerente de compras cadastrar planejamentos de acordo com a realidade oramentria da empresa. Durante toda a etapa de vigncia do planejamento, possvel acompanhar o andamento do mesmo, visualizando as quantidades j compradas e o saldo disponvel para compras. Com a utilizao do planejamento de compras no Sistema Sapiens, os compradores podem desenvolver suas funes de forma programada e profissional, visto que outros processos so altamente dependentes desta funo em uma empresa. Como instrumento de modelagem do sistema para descrever o mdulo, optou-se por trabalhar com a Unified Modeling Language (UML), que segundo Booch, Rumbaugh e Jacobson (2000), uma linguagem-padro para elaborao da estrutura de projetos de software.

50 3.1 REQUISITOS

Os requisitos descrevem as funcionalidades e caractersticas que o sistema deve apresentar. Para tanto, a seguir esto listados os requisitos do mdulo desenvolvido, divididos em requisitos funcionais (RF) e requisitos no funcionais (RNF).

3.1.1

Requisitos funcionais

O Quadro 8 apresenta os requisitos funcionais atendidos pelo mdulo de planejamento de compras e sua rastreabilidade, ou seja, vinculao com os casos de uso associados que so posteriormente apresentados. Requisitos Funcionais (RF) RF01: O sistema dever permitir ao gerente de compras projetar o saldo disponvel para compras (OTB) para determinado perodo. RF02: O sistema dever permitir ao gerente de compras gerenciar o cadastro de planejamentos de compras. RF03: O sistema dever permitir a gerao dos planejamentos com base no histrico de compras ou vendas. RF04: O sistema dever permitir ao comprador efetuar a atualizao dos saldos disponveis para compras atravs do fechamento de ordens de compra lanadas no sistema. RF05: O sistema dever permitir a visualizao do andamento dos planejamentos de compras. RF06: O sistema dever permitir ao comprador consultar as quantidades j compradas. RF07: O sistema dever permitir ao comprador consultar os saldos disponveis para compras. RF08: O sistema dever permitir ao comprador a visualizao do desempenho do planejamento com relao s vendas. RF09: O sistema dever permitir ao comprador emitir relatrio resumido dos UC09 UC08 UC07 UC06 UC05 UC04 UC03 UC02 Caso de Uso UC01

51 planejamentos de compras. RF10: O sistema dever permitir ao comprador emitir relatrio detalhado dos planejamentos de compras.
Quadro 8 Requisitos funcionais

UC10

3.1.2

Requisitos no funcionais

O Quadro 9 apresenta os requisitos no funcionais atendidos pelo sistema. Requisitos No 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, atravs das formas de acesso disponibilizadas pela Senior Sistemas.
Quadro 9 Requisitos no funcionais

3.2 ESPECIFICAO

Neste item so apresentadas as especificaes dos diagramas de casos de uso, diagramas de classes, diagrama de estados e diagrama de atividades, bem como a especificao do diagrama entidade relacionamento. Para a elaborao dos diagramas de casos de uso, de classes, de estados e de atividades, utilizou-se a ferramenta Enterprise Architect (EA), j para a elaborao do diagrama entidade relacionamento foi utilizada a ferramenta MySql Workbench.

52 3.2.1 Diagramas de Casos de Uso

Os casos de uso tm como funo representar as principais funcionalidades que se pode observar em um sistema e dos elementos externos que interagem com o mesmo (BEZERRA, 2002). A seguir so apresentados os diagramas de casos de uso modelados na fase de especificao do mdulo de planejamento de compras.

3.2.1.1

Diagrama de Casos de Uso do Gerente de Compras

O gerente de compras a pessoa responsvel pelo cadastramento dos planejamentos que envolvem as projees de saldo a serem utilizados, bem como a possibilidade de utilizao do histrico para gerao destes planejamentos. Na Figura 8, ilustrado o diagrama de casos de uso do mdulo desenvolvido no sistema disponvel ao gerente de compras.

Figura 8 Diagrama de casos de uso gerente de compras

A seguir fornecida uma breve descrio para os casos de uso do gerente de compras: a) projetar saldo disponvel para compras para determinado perodo: permite que o

53 gerente de compras calcule o Open to Buy para o perodo de vigncia de um planejamento de compras; b) cadastrar planejamento de compras: permite que o gerente de compras cadastre o planejamento a ser utilizado em determinado perodo de vigncia, informando os dados gerais do planejamento, permitindo definir a maneira como o planejamento ir se comportar durante o seu perodo de vigncia, bem como informar os itens que faro parte do planejamento; c) efetuar planejamento com base no histrico de compras ou vendas: permite que o gerente de compras utilize dados histricos de compras ou vendas para sugesto automtica de quebras de valores por perodo na gerao do planejamento. Permite que seja utilizado o histrico de ordens de compra, notas fiscais de entrada, notas fiscais de sada e pedidos, bem como utilizar filtros para a busca dos dados histricos.

3.2.1.2

Diagrama de Casos de Uso do Comprador

Os compradores so subordinados ao gerente de compras, eles so responsveis por efetuar as compras com os fornecedores, ficando limitados aos saldos disponveis para compras estipulados pelo gerente. Na Figura 9, ilustrado o diagrama de casos de uso do mdulo desenvolvido no sistema disponvel aos compradores.

54

Figura 9 Diagrama de casos de uso comprador

Como se pode observar na Figura 9, alm das permisses apresentadas no diagrama de casos de uso gerente de compras, o gerente tambm podem realizar todas as atividades comuns entre os compradores a ele subordinado. A seguir fornecida uma breve descrio 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 atravs da ordem de compra, onde neste momento sero atualizados os saldos disponveis para compras; b) visualizar andamento do planejamento de compras: permite que o comprador a qualquer momento faa consultas para obter detalhes sobre o respectivo planejamento. Permite que sejam visualizadas informaes inerentes aos dados gerais do planejamento, bem como informaes 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 disponveis para compras: permite ao comprador obter informaes detalhadas acerca dos saldos que ainda possui disponveis para

55 comprar; e) visualizar desempenho do planejamento com relao 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 relatrio resumido do planejamento de compras: permite que o comprador efetue a emisso de um relatrio resumido dos planejamentos gravados no sistema, a fim de obter apenas algumas das informaes mais importantes dos mesmos, como informaes inerentes aos dados gerais e totalizadores de valores e saldos; g) emitir relatrio detalhado do planejamento de compras: permite que o comprador efetue a emisso de um relatrio detalhado dos planejamentos gravados no sistema, a fim de obter todas as informaes importantes dos mesmos, como informaes inerentes aos dados gerais, informaes dos itens, bem como totalizadores de valores e saldos.

3.2.2

Diagramas de Classes

Os diagramas de classes expressam a estrutura esttica de um sistema e a possibilidade de interaes entre as classes (TONSIG, 2003). Segundo Guedes (2004), seu principal enfoque permitir a visualizao das classes que iro compor o sistema com os respectivos mtodos e atributos. Cada classe do diagrama costuma possuir atributos, que guardam dados dos objetos da classe e os mtodos, que so funes que uma instncia da classe pode executar. Como so muitas as classes necessrias para o desenvolvimento do mdulo de planejamento de compras, elas esto reunidas, de acordo com as ligaes lgicas entre si, em pacotes, conforme apresentado na Figura 10.

56

Figura 10 Pacotes do mdulo de planejamento de compras

3.2.2.1

Pacote ObjetosPlanejamento

O primeiro pacote denominado ObjetosPlanejamento e contm classes relativas implementao das regras de negcio e demais tratamentos envolvidos na criao 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 mtodos e atributos necessrios para a criao e manipulao dos dados gerais do planejamento de compras, bem como as regras de negcio a ele associadas; b) TItemPlanejamento: classe que implementa todos os mtodos e atributos necessrios para a criao de um item de planejamento de compras, bem como as regras de negcio associadas ao mesmo. Segundo Braude (2005, p. 88), mostrar mais detalhes do que o necessrio pode tornar um diagrama confuso e mais difcil de entender, neste contexto, o pacote

ObjetosPlanejamento

apresenta apenas os atributos e mtodos mais importantes de cada

classe, com o objetivo de no poluir o diagrama.

57
cd Obj etosPlanej amento TPlanej amento + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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

TItemPlanej amento + + + + + + + + 1..* + + + + + + + + + + + + + + + + + + + + + + + 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)

Figura 11 Pacote ObjetosPlanejamento

58 3.2.2.2 Pacote InterfacesPlanejamento

O segundo pacote denominado InterfacesPlanejamento e contm classes relativas implementao das interfaces disponibilizadas ao usurio para manipulao do planejamento de compras e seus itens. Conforme pode ser visto na Figura 12, como recursos relativos implementao das interfaces do usurio, tm-se as seguintes classes: a) Frm_CadastraPlanejamento: classe que implementa a tela de cadastro de planejamento de compras. Ela permite a criao de uma instncia de planejamento, bem como instncias de itens do planejamento, alm de disponibilizar vrios outros mtodos que auxiliam na manipulao do planejamento de compras; b) Frm_CalculaOTB: classe que implementa a tela de clculo do Open to Buy para que o gerente de compras possa incluir os itens que iro compor o planejamento de forma consciente, sabendo o valor disponibilizado atravs da frmula existente no conceito de Open to Buy; c) Frm_BasePlanejamento: classe que implementa a tela de base para gerao do planejamento. Esta classe disponibiliza os mtodos necessrios para a manipulao dos dados histricos de compras e vendas que podero ser utilizados ou no pelo gerente para gerao 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 disponveis nos planejamentos de compras, onde possvel 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, atravs da consulta de notas fiscais inerentes ao planejamento de compras; g) Frm_ConsultaDesempRelacaoVendas: classe que implementa a tela de consulta de desempenho com relao s vendas. Esta classe disponibiliza os mtodos necessrios para que a interface possa dispor ao usurio os dados dos planejamentos e das vendas efetuadas de forma agrupada e detalhada.

59
cd InterfacesPlanejamento Frm_CadastraPlanej amento + + + planejamento: TPlanejamento itemPlanejamento: TItemPlanejamento regItem: TRegItem codigoItemAnterior: string Create() Destroy() LimpaCampos() DesabilitaCamposCabecalho() PosicionaPrimeiroCampoGrid() Processar() Excluir() Cancelar() ConsisteCamposCabecalho() ConsisteGeraisLinhaGrid() SetaCorLabelSituacao() AtualizaLBPlanejamentoAtivo() HabilitaDesabilitaBtAtivarPlanejamento() HabilitaDesabilitaBtInativarPlanejamento() 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 BuscaValorJaUtilizadoParaCompras(int, int, long, long) : double BuscaQuantidadeJaUtilizadaParaCompras(int, int, long, long) : double 1 1 Frm_ConsultaPlanej amento regPla: TRegPla regIte: TRegIte Create() Destroy() Mostrar() Cancelar() LimpaCampos() HabilitaDesabilitaBotoesConsulta() ConsultaOrigem() ConsultaFamilia() ConsultaProduto() ConsultaAgrupamentoProduto() ConsultaProdutoDerivacao() EscondeMostraCampos() ConsultaNFEsPlanejamento() Frm_CalculaOTB Create() Calcular() Cancelar() LimpaCampos() HabilitaDesabilitaCampos(char) Frm_BasePlanej amento regAgr: TRegAgr regDet: TRegDet Create() Destroy() Marcar() Desmarcar() Cancelar() Mostrar() Processar() LimpaCampos() HabilitaDesabilitaCabecalho(boolean) EscondeMostraCampos() HabilitaDesabilitaClienteFornecedor() HabilitaDesabilitaBotoesConsulta() AplicaMascarasDatasVigencia() RetornaProximoDomingoDaSemana(date) : date RetornaProximoSabadoDaSemana(date) : date DataEhSabado(date) : date RetornaInicioProximaQuinzena(date) : date RetornaFimProximaQuinzena(date) : date 1 1 Frm_ConsultaDesempRelacaoVendas regAgr: TRegAgr regDet: TRegDet Create() Destroy() Mostrar() Cancelar() LimpaCampos() HabilitaBotoesConsulta() ConsultaOrigem() ConsultaFamilia() ConsultaProduto() ConsultaProdutoDerivacao() ConsultaAgrupamentoProduto()

Frm_ConsultaSaldosDisponiv eis Frm_ConsultaQtdsVlrsUtilizados regNfc: TRegNfc regIpc: TRegIpc Create() Destroy() Mostrar() Cancelar() LimpaCampos() HabilitaBotoesConsulta() MostrarTotais() ConsultaOrdem() ConsultaItensOC() ConsultaInfFornecedor() regAgr: TRegAgr regDet: TRegDet Create() Destroy() Mostrar() Cancelar() LimpaCampos() HabilitaBotoesConsulta() ConsultaOrigem() ConsultaFamilia() ConsultaProduto() ConsultaProdutoDerivacao() ConsultaAgrupamentoProduto() MostrarTotais()

Figura 12 Pacote InterfacesPlanejamento

60 3.2.2.3 Pacote AuxiliaresPlanejamento

O terceiro pacote denominado AuxiliaresPlanejamento e contm classes j existentes no sistema, que tiveram novos mtodos implementados ou que sofreram alteraes em alguns mtodos para contemplar as regras de negcio do planejamento de compras, bem como contm tambm algumas enumeraes utilizadas no planejamento. Conforme pode ser visto na Figura 13, fazem parte deste pacote as seguintes classes e enumeraes: a) Frm_CadastraOrdemCompra: classe que implementa a tela de cadastro de ordens de compra. Nesta classe foram adicionados novos mtodos para tratamento do vnculo de itens de planejamento de compras com itens de ordens de compra. Foram implementados tambm mtodos para atualizao dos saldos disponveis para compras em diversas situaes; b) Frm_CadastraNFEntrada: classe que implementa a tela de cadastro de notas fiscais de entrada. Esta classe sofreu alteraes em alguns mtodos para que seja possvel fazer o vnculo de um item de ordem de compra com um item de nota fiscal de entrada, atribuindo a chave do planejamento nota, para fins de amarrao 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 gerao da nota fiscal de entrada. Esta classe tambm sofreu alteraes para contemplar o vnculo com o planejamento de compras; d) ENumSitReg: enumerao que define a situao do planejamento de compras, possuindo os possveis valores: ativo ou inativo; e) ENumTipPrd: enumerao que define o tipo de perodo a ser considerado no planejamento de compras, possuindo os possveis valores: semanal, quinzenal ou mensal; f) ENumTipPrg: enumerao que define o tipo da programao de compras efetuada no planejamento, possuindo os possveis valores: programao por origem, famlia, produto ou agrupamento de produtos; g) ENumTipCtl: enumerao que define o tipo de controle de saldo do planejamento, possuindo os possveis valores: quantidade (controle fsico), valor (controle financeiro) ou ambos (controle fsico e financeiro); h) ENumCriBlo: enumerao que define qual o tipo de bloqueio de compras de

61 produtos no planejados e tambm o tipo de bloqueio de compras com condio de pagamento no planejada no item de produto, possuindo os possveis valores: libera, avisa ou bloqueia.
cd AuxiliaresPlanej amento enumeration ENumSitReg + ativo: + inativo: + + + + enumeration EnumTipPrg produto: familia: origem: agrupamentoProduto: enumeration ENumTipPrd + semanal: + quinzenal: + mensal: enumeration ENumTipCtl + quantidade: + valor: + ambos: enumeration EnumCriBlo + avisa: + libera: + bloqueia:

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_ReabilitacaoOC(DadosItemOC)

Frm_ConsultaOCGeracaoNFE Classe j existente no sistema, nesta so apresentados apenas os atributos mais importantes e os mtodos que foram implementados no desenvolvimento do planejamento de compras. 1 RegOrdemCompra: TRegOrdemCompra RegItemProdutoOC: TRegItemProdutoOC Mostrar() Processar()

Frm_CadastraNFEntrada RegNotaEntrada: TRegNotaEntrada RegItemProdutoNFE: TRegItemProdutoNFE TrataSaidaSequenciaItemProdutoGrid() ProcessaItens() CarregaDadosProduto()

1 Classes j existentes no sistema, nestas so apresentados apenas os atributos mais importantes e os mtodos que sofreram alteraes para contemplar o planejamento de compras.

Figura 13 Pacote AuxiliaresPlanejamento

62 3.2.3 Diagrama de Estados

Segundo Braude (2005, p. 100), um diagrama de transio de estado mostra os estados dos objetos de uma classe, os eventos aos quais os objetos so sensveis e as transies 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 critrio do gerente de compras efetuar sua ativao quando achar necessrio. Nota-se ainda, que a ativao do planejamento no indica o uso do mesmo pelos compradores, a sua utilizao como ferramenta para controle de saldos somente feita quando o estado muda para ativo em andamento, o que indica que as datas que esto sendo efetuadas as ordens de compra esto dentro do perodo de vigncia estabelecido pelo gerente de compras.

63 3.2.4 Diagrama de Atividades

Um diagrama de atividade descreve o comportamento de um processo ou funo atravs da especificao da sequncia de operaes e decises que permitem determinar quando e como elas so realizadas. De maneira geral, consiste numa srie de atividades ligadas por transies (SILVA; VIDEIRA, 2005). A Figura 15 apresenta o diagrama de atividades do mdulo de planejamento de compras, onde ilustrado o fluxo de trabalho deste mdulo. Observa-se que o diagrama apresentado na Figura 15 faz a simulao de um planejamento que possui a caracterstica de bloquear compras de produtos sem saldo (fsico ou financeiro) disponvel para tal finalidade, portanto, para poder efetuar o fechamento de uma ordem de compra, ou seja, a concretizao de um pedido com determinado fornecedor, necessrio que o item de produto possua saldo disponvel para compras. No caso do item no possuir saldo, ou a quantidade ou valor financeiro do mesmo ultrapassar o disponvel no planejamento, o comprador dever entrar em contato com o gerente, a fim de conseguir um aumento do saldo disponibilizado inicialmente.

64

Figura 15 Diagrama de atividades do planejamento de compras

65 3.2.5 Diagrama Entidade Relacionamento

Para Rezende (2005, p. 174), a notao fundamental para a modelagem de dados o diagrama entidade relacionamento. Segundo o autor, o principal propsito deste diagrama representar os objetos de dados e suas relaes, sendo que cada entidade termina representada por pelo menos uma tabela de dados. O diagrama entidade relacionamento do mdulo desenvolvido no presente trabalho apresentado na Figura 16, o mesmo foi elaborado utilizando-se a notao Crows Foot. Um ponto a ser observado no diagrama entidade relacionamento da Figura 16, que, no 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 tambm 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 alteraes 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, porm somente em notas fiscais diferentes. Esta observao se faz necessria, pois, se fizssemos um relacionamento um para um nestas tabelas, entenderamos 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 no verdade. No diagrama da Figura 16, foram apresentadas somente as tabelas que possuem algum vnculo direto com o planejamento, a fim de no 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, so mais de 1200 tabelas. O grande nmero de tabelas existentes ocorre devido necessidade de o sistema precisar se adaptar a vrios tipos de mercado, bem como uma srie de outros controles necessrios para a realizao de diversos processos. No Apndice A, encontram-se as definies das tabelas e campos envolvidos no desenvolvimento do mdulo de planejamento de compras.

66

Figura 16 Diagrama entidade relacionamento

3.3 IMPLEMENTAO

Neste item referente implementao so descritas as tcnicas e ferramentas utilizadas no desenvolvimento do mdulo de planejamento de compras, bem como apresentada tambm a operacionalidade da implementao.

67 3.3.1 Tcnicas e ferramentas utilizadas

Nesta seo so apresentadas as tcnicas e ferramentas utilizadas para a implementao do mdulo desenvolvido no sistema, tais como: Borland Delphi, Sybase SQL Anywhere (SGBD), Central de Banco de Dados Senior (CBDS) e Gerador de Relatrios Sapiens. O mdulo 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 trs verses, que foram projetadas de modo a se adaptar a uma srie de diferentes necessidades: Delphi 5 Standard, Delphi 5 Professional e Delphi 5 Enterprise. Cada uma dessas verses indicada para um tipo diferente de programador. O Delphi 5 Enterprise foi a verso utilizada no desenvolvimento do mdulo de planejamento de compras, ela se destina a programadores que trabalham em ambiente cliente/servidor de grandes corporaes, incluindo tudo o que est disponvel nas duas outras edies do Delphi 5, alm de uma srie 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 rpido desenvolvimento e implementao de aplicativos ativados por banco de dados. Este pacote oferece bancos de dados de nvel corporativo, que se adaptam tanto a servidores de 64 bits com milhares de usurios quanto a pequenos dispositivos portteis. As tecnologias de troca de dados do SQL Anywhere estendem as informaes dos aplicativos e sistemas corporativos a bancos de dados executados em ambientes de linha de frente de misso crtica. 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 verso 9.0.1 foi o SGBD utilizado durante todo o perodo de desenvolvimento do mdulo de planejamento de compras, sendo que ainda como etapa de validao final, o mdulo foi testado em todos os outros SGBDs j mencionados, homologados pela Senior Sistemas Corporativos.

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 customizao dos sistemas no atendimento aos requisitos dos clientes. Entre os diversos recursos disponveis nesta ferramenta, destacam-se os seguintes itens: a) manuteno e criao de novas tabelas, campos, ndices, stored procedures e usurios; b) backup e restore de base de dados de diferentes SGBDs; c) engenharia reversa; d) configuraes de armazenamento; e) permisso e monitoramento de tabelas e campos; f) editor de SQL; g) consistncia de bases de dados; h) diversos relatrios referentes base de dados; A Figura 17 apresenta a interface do CBDS.

Figura 17 Interface da ferramenta CBDS

69 3.3.1.2 Gerador de Relatrios Sapiens

O gerador de relatrios uma ferramenta adicional dos sistemas da Senior que possibilita a adaptao e criao de relatrios grficos por parte dos usurios para atender as suas necessidades (SENIOR SISTEMAS, 2004). Cada relatrio criado no sistema denominado modelo, sendo que cada um destes modelos possuem uma categoria que indica qual o mdulo 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 relatrios no Sistema Sapiens.

Figura 18 Interface do gerador de relatrios do Sistema Sapiens

3.3.2

Operacionalidade da implementao

O mdulo de Planejamento de Compras desenvolvido no ERP Sapiens tem por

70 objetivo automatizar e gerenciar todo o processo de programao de compras efetuadas pelo gerente desta respectiva rea, em um determinado perodo. Para tanto, o gerente poder cadastrar um planejamento informando suas caractersticas de funcionamento e quais mercadorias iro fazer parte deste planejamento, bem como seus limites de compra, tanto fsico quanto financeiro. Conforme pode ser visto na Figura 19, no mdulo Comercial do sistema disponibilizado um menu contendo a tela de cadastro de planejamentos e as telas de consultas inerentes aos mesmos. Para as consultas so apresentadas as seguintes telas: consulta de planejamentos, consulta de quantidades e valores j utilizados para compras (notas fiscais de entrada), consulta de saldos disponveis para compras e consulta de desempenho do planejamento com relao s vendas.

Figura 19 Menu do mdulo de planejamento de compras

Alm da tela de cadastro e telas de consultas, so disponibilizados tambm atravs do caminho Comercial > Relatrios Gerais, dois relatrios de planejamentos de compras, sendo um relatrio resumido e outro detalhado, conforme pode ser visto na Figura 20.

71

Figura 20 Tela de seleo dos relatrios gerais do mdulo Comercial

Antes de iniciar o processo de planejamento de compras, o administrador do sistema deve informar s pessoas que tero acesso a tela de cadastro de planejamentos. Esta tela pode ser considerada o corao do mdulo de planejamento de compras, pois, atravs dela que so feitas as manutenes dos saldos de compras quando necessrio, ou seja, o aumento do saldo disponvel quando este no for mais suficiente para que as compras possam ser realizadas com os fornecedores. A permisso ou no permisso de acesso para determinada tela do sistema feita atravs de um recurso j existente no Sistema Sapiens, conforme pode ser visto na Figura 21.

Figura 21 Tela de permisses de acesso do Sistema Sapiens

72 Conforme apresentado na Figura 21, no caso do planejamento de compras, o nico usurio 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 usurios. Desta forma, a tela de cadastro somente ficar visvel no menu do sistema para o usurio com tal permisso de acesso, ou seja, o gerente de compras. Este critrio adotado apenas para a tela de cadastro, sendo que no existe nenhuma restrio para as telas de consulta, porm, este critrio pode variar de empresa para empresa, ou, de filial para filial. Aps a configurao de permisso de acesso, o sistema estar apto a trabalhar com planejamentos de compras. A seguir, so apresentadas as telas implementadas no sistema com o objetivo de ilustrar a operacionalidade do mdulo desenvolvido, sendo que, no Apndice B encontram-se os mtodos de maior relevncia de algumas das classes implementadas no desenvolvimento deste mdulo.

3.3.2.1

Tela de Cadastro de Planejamentos de Compras

Atravs da tela de cadastros de planejamentos, o gerente de compras pode cadastrar os mesmos, bem como efetuar manutenes quando for necessrio. Atravs da mesma tambm possvel fazer um acompanhamento, visualizando o andamento do planejamento durante todo o seu perodo de vigncia. A Figura 22 apresenta a tela de cadastro de planejamentos de compras quando iniciada.

73

Figura 22 Tela de cadastro de planejamentos de compras

O primeiro passo para a criao de um planejamento definir a descrio do mesmo, sendo que, para o nmero do planejamento o sistema atribui um nmero seqencial. A descrio do planejamento deve ser elaborada de forma que sua leitura seja de fcil compreenso, pois ela aparecer nas demais etapas do planejamento de compras. O prximo campo a ser informado o Tipo de Perodo a ser considerado para o planejamento, alm de servir como controle no momento da informao do perodo de vigncia, este campo responsvel tambm por definir as quebras de datas de previso de entregas das mercadorias quando utilizado a tela de base para gerao do planejamento. Os valores disponveis para o campo Tipo de Perodo so: Semanal, Quinzenal e Mensal. O planejamento inicia seu estado como inativo e aps o efetivo cadastro atravs do boto Processar, caso no exista nenhum planejamento ativo no momento, o sistema questiona ao gerente se o mesmo deseja ativ-lo. Caso a deciso seja no ativar o planejamento, o mesmo poder ser ativado posteriormente quando for conveniente, ou quando chegar ao perodo de vigncia do planejamento. O sistema no permite trabalhar com mais de um planejamento ativo ao mesmo tempo, ento, para ativar um planejamento de compras, o

74 planejamento anterior, caso exista, dever ser inativado. O prximo campo a ser informado o indicativo se o planejamento deve bloquear compras de produtos no planejados. Os seguintes valores esto disponveis para este campo: a) libera: na gerao de ordens de compra, quando o comprador informar um produto que no consta no planejamento, o sistema no far nenhuma consistncia com relao ao bloqueio da compra deste produto; b) avisa: esta opo indica que na gerao de ordens de compra, quando o comprador informar um produto que no consta no planejamento, o sistema no bloquear a compra deste produto, porm, ir alertar o comprador de tal situao; c) bloqueia: esta opo indica que na gerao de ordens de compra, quando o comprador informar um produto que no consta no planejamento, o sistema no permitir a sua utilizao, informando que o item no est disponvel para compras no planejamento de compras. Semelhante ao campo anteriormente mencionado, tambm est disponvel no planejamento o indicativo se o planejamento deve bloquear compras de produtos com condio de pagamento no planejada. Este campo segue o mesmo critrio do campo anterior, porm a consistncia na ordem de compra feita com uma informao dos dados gerais da ordem, e no dos itens, neste caso, a condio de pagamento. O perodo de vigncia uma das informaes mais importantes do planejamento, alm de definir o perodo que o mesmo ser executado, ele define tambm as consistncias dos perodos de previso de entrega dos itens, de forma que estas previses somente possam ser planejadas dentro do perodo informado no cabealho do planejamento. O prximo campo a ser informado o indicativo se o planejamento efetua o controle de saldos de forma fsica ou financeira. Os seguintes valores esto disponveis para este campo: a) quantidade (controle fsico): 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 fsico e financeiro): esta opo indica que o sistema efetuar tanto o controle de saldo fsico quanto financeiro. Aps informado o tipo de controle de saldo, deve-se informar o tipo de programao de compras que ser efetuado no planejamento. Esto disponveis as opes: origem, famlia, produto e agrupamento de produtos comerciais. Estas opes seguem a hierarquia do cadastro

75 de produtos existente no Sistema Sapiens, sendo que a nica opo no disponvel no planejamento a derivao de um produto. A derivao de um produto no Sistema Sapiens no foi implementada no planejamento por ser uma categoria de um baixo nvel 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 programao de produtos ao invs de derivaes. 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

Alm dos campos j mencionados, o planejamento de compras armazena tambm o cdigo do usurio responsvel pelo cadastro, ou seja, o gerente de compras, bem como a data de cadastro e a data de alterao, que ser alimentada sempre que for efetuada alguma manuteno no planejamento. Um ponto a ser observado, que, dependendo do tipo de perodo informado, o planejamento se comporta de forma diferente com relao s datas do perodo de vigncia, como exemplo, tm-se a alterao das mscaras destes campos quando utilizado o tipo de perodo mensal, para se trabalhar apenas com ms e ano nas datas de vigncia. Diversas

76 consistncias so feitas com relao s datas do perodo de vigncia, como exemplo, pode-se citar o perodo quinzenal. Entende-se que em um ms existem apenas duas quinzenas, e que para o comrcio, a primeira quinzena inicia no 1 dia do ms, indo at a metade do respectivo ms, ou seja, o 15 dia. A segunda quinzena inicia-se logo aps o trmino da primeira, ou seja, no 16 dia, indo at o ltimo dia do ms. Neste sentido, so necessrias algumas consistncias no planejamento. Um exemplo pode ser visto na mensagem emitida ao usurio conforme demonstrado na Figura 25.

Figura 25 Mensagem de aviso para escolha correta do incio de uma quinzena

No exemplo da Figura 25, o gerente de compras est no ms de junho de 2009, planejando as suas compras para os prximos trs meses, ao informar uma data qualquer do ms de julho que no seja dia 1 ou 16, o sistema sugere as possveis datas para o incio do perodo de vigncia 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 perodo onde esta seja menor que o ltimo dia da referida quinzena, o sistema questiona ao usurio se o mesmo deseja aplicar a nica data possvel, conforme apresentado na Figura 26.

Figura 26 Mensagem de confirmao para aplicao correta da data final da quinzena

Outra consistncia feita com relao s datas do perodo de vigncia, que, a data inicial do perodo no pode ser menor que a data atual, ou seja, no fez sentido o gerente fazer um planejamento para um perodo que j passou. Uma exceo ocorre no tipo de perodo mensal, onde o gerente pode efetuar o planejamento do ms corrente mesmo que o ms j tenha sido iniciado. Um exemplo de consistncia para data de incio de vigncia informada menor que a data atual apresentada na Figura 27, onde o tipo de perodo a ser trabalhado o

77 semanal.

Figura 27 Mensagem de advertncia para a no utilizao de perodo passado

Outro ponto a ser observado, que, embora o planejamento disponibilize os tipos de perodos para se trabalhar, nada impede que o gerente efetue o seu planejamento para um perodo maior que um ms, ou seja, o mesmo pode fazer programaes de compra para qualquer perodo. Por exemplo, o gerente pode trabalhar com programaes de compras semanais, quinzenais, mensais, trimestrais, ou at mesmo anuais, onde neste ltimo caso, estando em dezembro de 2009, o mesmo pode fazer as programaes para todo o ano de 2010, ficando a sua escolha qual a melhor forma de se trabalhar com a vigncia de um planejamento. Conforme pode ser observado na Figura 22 demonstrada anteriormente, alguns campos j iniciam com um valor padro que sugerido pelo sistema. Cada gerente de compras precisa analisar qual a melhor forma de aplicao destas opes e quais os impactos as mesmas tero no departamento de compras. A Figura 28 ilustra um exemplo dos dados gerais informados no cabealho de um planejamento de compras.

Figura 28 Exemplo de dados do cabealho j informados em um planejamento

A prxima etapa efetuar o clculo do Open to Buy para o perodo de vigncia do planejamento, isto caso o mesmo utilize o controle financeiro, pois para planejamentos com apenas controle fsico dos produtos no existe necessidade de considerar o Open to Buy. Este clculo feito pelo gerente de compras em uma tela desenvolvida especificamente para tal funcionalidade. Esta tela denominada Clculo do Open to Buy e pode ser acessada atravs do boto Clculo OTB $, disponvel no rodap da tela de cadastro.

78 Embora os autores apliquem a frmula para obter o Open to Buy do ms corrente ou dos prximos meses, caracterstica do mercado varejista, o mdulo de planejamento de compras desenvolvido no presente trabalho no se limita a trabalhar apenas com planejamentos mensais, conforme mencionado anteriormente. Para tanto, os tipos de perodos disponibilizados no clculo do OTB foram denominados perodo corrente e perodo futuro, ao invs de ms corrente e ms futuro (prximos meses). A Figura 29 apresenta a tela de Clculo do Open to Buy para o perodo corrente.

Figura 29 Tela de clculo do OTB para perodo corrente

No exemplo da Figura 29, pode-se observar que a frmula para o clculo do Open to Buy para perodo o corrente muito simples, porm, a sua simplicidade ajuda os compradores a evitarem problemas futuros relacionados rea financeira da empresa. Aps lanados os valores no clculo, descobre-se que o valor ideal para gastar com compras no perodo de R$ 183.500,00. Para o clculo do Open to Buy de um perodo futuro, a frmula tambm muito simples e semelhante ao clculo do perodo corrente. As mudanas mais significativas para esta frmula com relao ao perodo corrente so: a) deve ser considerado o estoque planejado para o final do perodo, ao invs do estoque planejado para prximo perodo; b) deve ser considerado o estoque planejado para o incio do perodo, ao invs do estoque atual do perodo corrente; c) aps calculado o valor das compras planejadas, deve ser considerado o valor total

79 de possveis ordens de compra programadas com os fornecedores para o perodo. A Figura 30 apresenta a tela de Clculo do Open to Buy para um perodo futuro.

Figura 30 Tela de clculo do OTB para perodo futuro

No exemplo da Figura 30, pode-se observar que aps lanados os valores no clculo, descobre-se que o valor ideal para gastar com compras no perodo, quando o mesmo chegar, de R$ 210.500,00. Com o Open to Buy calculado, a prxima etapa do cadastro informar os itens que faro parte do planejamento na grid denominada Itens do Planejamento. A insero de itens nesta grid pode ocorrer de duas formas: insero 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/caractersticas.
Seq. Sequncia do Item: identifica a sequncia do item do planejamento de compras. Sua numerao incrementada automaticamente pelo sistema a cada novo item inserido na grid. Origem Cdigo da Origem de Produto: este campo fica visvel na grid somente quando o tipo de programao for Origem. Famlia Cdigo da famlia de produto: este campo fica visvel na grid somente quando o tipo de programao for Famlia. Produto Cdigo do produto: este campo fica visvel na grid somente quando o tipo de programao for Produto.

80
Agrupamento de Produtos Cdigo do agrupamento de produtos: este campo fica visvel na grid somente quando o tipo de programao for Agrupamento Produto Comercial. Incio Prev. Entrega Data inicial da previso de entrega: indica o incio do perodo programado para a entrega do item. Este perodo ser utilizado na identificao do item de planejamento nas ordens de compra para amarrao entre os documentos e abatimentos de saldos. permitido informar apenas previses de entrega que estejam dentro do perodo de vigncia do planejamento. Fim Prev. Entrega Data final da previso de entrega: semelhante ao campo Incio Prev. Entrega, porm, indica o fim do perodo 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. Cdigo da condio de pagamento do item: indica qual a condio de pagamento prevista para as compras do item. Desc. Cond. Pgto. % Crescimento Descrio da condio de pagamento. Percentual de crescimento aplicado no item: este percentual aplicado sobre o valor disponvel para compras no perodo, a fim de simular um possvel crescimento das vendas de determinando item e

conseqentemente a necessidade de um aumento nas compras. Vlr. Crescimento Valor de crescimento aplicado no item.

Valor Disponvel p/ Compras Valor disponvel para compras no perodo de entrega previsto: este no Perodo 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 Disponvel p/ Compras Saldo disponvel para compras do item do planejamento, ou Open to (OTB) Buy do item: este saldo tambm atualizado no fechamento de ordens de compra, da mesma forma que o valor utilizado para compras, seguindo o mesmo critrio de controle financeiro para abatimento de saldos.

81
Qtd. Disponvel p/ Compras no Perodo 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 fsico para abatimento de saldos. Saldo de Qtd. Disponvel p/ Compras Saldo de quantidade disponvel para compras do item do planejamento: este saldo tambm atualizado no fechamento de ordens de compra, da mesma forma que a quantidade utilizada para compras, seguindo o mesmo critrio de controle fsico para abatimento de saldos. Quadro 10 Campos da grid de Itens do Planejamento Quantidade disponvel para compras no perodo de entrega previsto.

Todos os campos editveis anteriormente mencionados so informaes obrigatrias, com exceo do percentual de crescimento. A tela de Base para Planejamento funciona como um grande facilitador para a gerao do planejamento. Atravs dela possvel fazer uma anlise mais detalhada, onde o gerente de compras pode definir quais itens e quantidades iro fazer parte do planejamento baseando-se no histrico de compras ou vendas. Esta tela acessada atravs do boto Base Planej., disponvel no rodap da tela de cadastro. A Figura 31 apresenta a tela de base para planejamento de compras no momento de sua inicializao.

Figura 31 Tela de base para gerao do planejamento de compras

Conforme se pode observar na Figura 31, a tela de base para planejamento possui

82 vrias opes de filtro disponveis. Inicialmente, preciso selecionar qual o histrico (compras ou vendas) se deseja visualizar, so disponibilizadas as opes: Ordem Compra, Notas Entrada, Pedidos e Notas Sada. O perodo do histrico sugerido pelo sistema sempre o mesmo perodo da vigncia, porm do ano anterior. Esta apenas a sugesto do sistema, sendo que o gerente de compras pode utilizar qualquer data para carregar o histrico. Como exemplo, pode-se querer utilizar o histrico de notas fiscais de sada dos meses de junho e julho de 2008 para a gerao do planejamento de julho de 2009, pressupondo que s vendas aumentaro de tal forma, que sero vendidas em apenas um ms, as mercadorias que foram vendidas em dois meses do ano anterior. A Figura 32 demonstra um exemplo de histrico j carregado na tela de base para planejamento.

Figura 32 Exemplo de histrico de compras

Como pode ser visto na Figura 32, o exemplo demonstra a utilizao de um histrico de compras baseado nas ordens de compra efetivadas no ms de dezembro de 2008. A tela apresenta duas grids, sendo uma para visualizao dos dados de forma agrupada e outra para visualizao de forma detalhada. No exemplo, percebe-se que o tipo de perodo a ser trabalhado o semanal e o tipo de programao por produtos.

83 O carregamento do histrico possui uma regra diferente para cada tipo de perodo, por exemplo, para trabalhar com tipo de perodo semanal, entende-se que uma semana comea no domingo e termina no sbado, ento, no carregamento detalhado dos itens feito uma quebra para que seja obedecido tal critrio. Percebe-se ento, que, a primeira semana do ms de dezembro de 2008 comea no primeiro dia do ms, independente se este ou no domingo, indo at o ltimo dia da semana (06/12/2008). As semanas seguintes obedecem ao critrio de incio e fim da semana, sendo que o ltimo dia da ltima semana equivale ao ltimo dia do ms, ou seja, a ltima semana do ms de dezembro de 2008 equivale ao perodo de 28/12/2008 31/12/2008, porm, como se pode perceber na Figura 32, nesta semana no houve compras para o produto utilizado no filtro da carga dos dados histricos. Na Figura 32, percebe-se tambm que no ms de dezembro de 2008 foram compradas 814 unidades (pares) do produto TENISADIDAS, a um preo mdio 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 critrio adotado na carga dos valores do histrico agrupado utilizado para a carga do histrico detalhado, segundo as regras de quebras semanais. As quebras dos dados da grid de histrico detalhado nos tipos de perodo quinzenal e mensal acontecem da mesma forma que o tipo de perodo semanal, porm, ao invs de as quebras acontecerem por semana, no tipo de perodo quinzenal estas so feitas conforme as duas quinzenas existentes no ms, j no tipo mensal, feito a soma de todas as compras do ms. A Figura 33 apresenta um exemplo de histrico de famlias de produto de notas fiscais de entrada utilizando o tipo de perodo quinzenal.

84

Figura 33 Exemplo de histrico utilizando tipo de perodo quinzenal

Na Figura 34 apresentado um exemplo de histrico de agrupamento de produtos de notas ficais de sada utilizando o tipo de perodo mensal.

Figura 34 Exemplo de histrico utilizando tipo de perodo mensal

85 necessrio tambm, que antes do processamento, o gerente de compras informe uma condio de pagamento a ser utilizada nos itens, sendo que caso seja necessrio efetuar a alterao de condio de pagamento de algum item, isto pode ser feito na tela de cadastro aps a gerao dos itens atravs do boto Processar da tela de base para planejamento. Na grid de histrico 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 botes de consulta, estas consultas referem-se visualizao de todos os dados do item posicionado na grid de histrico agrupado. O boto relacionado consulta do item fica habilitado conforme o tipo de programao escolhida, ou seja, ao se trabalhar com programao de agrupamentos de produtos, somente o boto Agrup. Prod. ficar habilitado. Este mesmo critrio tambm utilizado para os outros tipos de programao, sendo que para programao por produtos so dois botes que ficam habilitados, um para consulta padro via tela de pesquisa de registro existente no Sistema Sapiens e outro para consulta detalhada do produto e suas derivaes. 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

Aps processado os itens selecionados na tela de base para planejamento, os mesmos so includos automaticamente na grid de Itens do Planejamento da tela de cadastro, sendo que esta insero 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 tambm dos perodos de previso de entrega, para que estes se ajustem conforme o perodo de vigncia do planejamento, seguindo os mesmos critrios de quebras de perodos utilizados no carregamento da base do planejamento. A Figura 36 apresenta um exemplo dos itens de

86 produto de um planejamento inseridos no cadastro aps o processamento da base do planejamento.

Figura 36 Itens do planejamento aps utilizao da base para gerao

A Figura 37 apresenta os demais campos da grid de Itens do Planejamento no visualizados na Figura 36.

Figura 37 Valores e saldos dos itens de planejamento

87 No exemplo apresentado nas Figuras 36 e 37, foi utilizado o ms de dezembro de 2008 para gerao dos itens de planejamento do ms de julho de 2009. Com relao ao perodo de previso de entrega previsto para os itens, nota-se que foi utilizado o tipo de perodo semanal, portanto, os perodos foram inseridos nos itens seguindo o conceito de incio e fim das semanas, conforme explicado anteriormente. Percebe-se tambm, que a distribuio dos valores e quantidades da grid de Itens do Planejamento ocorreu de forma proporcional aos valores e quantidades visualizados anteriormente na grid de Histrico 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 disponvel para compras (OTB), pois, atravs destes totalizadores o gerente de compras saber de maneira geral como est o andamento de suas compras planejadas. Atravs dos assuntos apresentados relacionados ao cadastro do planejamento de compras, pode-se perceber a sua importncia perante a utilizao do mesmo quando se inicia o perodo de vigncia. Tal importncia se justifica pelo fato de que atravs do cadastro que definido o comportamento do sistema quando da ocorrncia de uma oficializao de compra junto a um fornecedor atravs 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 possvel ter a visualizao prvia dos dados de uma nota fiscal de entrada. A partir de uma ordem de compra so definidos todos os detalhes da compra com determinado fornecedor, a qual ser oficializada no momento da gerao da nota fiscal. O processo de abatimento dos saldos (fsico ou financeiro) dos itens de um planejamento acontece por intermdio 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 necessrio implementar todos os tratamentos envolvidos no processo de abatimento de saldos. A tela de cadastro de ordens de compra utilizada no planejamento acessada atravs do caminho Comercial > Compras > Ordens Compra > Agrupada. A Figura 38 apresenta a tela de cadastro de ordens de compra quando iniciada.

88

Figura 38 Tela de cadastro de ordens de compra

A Figura 39 apresenta a aba de produtos de uma ordem de compra, onde so feitos os vnculos 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, famlia ou agrupamento de produtos ao qual o mesmo est relacionado se encontra cadastrado no planejamento ativo (conforme o tipo de programao). Caso o item no esteja cadastrado o

89 sistema se comporta conforme o que foi definido no indicativo do planejamento se o sistema bloqueia compras de produtos no planejados. A Figura 40 apresenta um exemplo de consistncia de digitao de um produto no cadastrado onde o planejamento est configurado para apenas avisar o usurio de tal situao.

Figura 40 Exemplo de aviso de produto no planejado

J a Figura 41 apresenta um exemplo onde o planejamento est configurado para efetuar o bloqueio de produtos no planejados.

Figura 41 Exemplo de bloqueio de compra de produto no planejado

Caso o planejamento esteja configurado para liberar compras de produtos no planejados, ao digitar um produto qualquer que no esteja presente no planejamento, o sistema no apresenta as mensagens de consistncia, permitindo a compra deste produto. O mesmo tratamento anteriormente mencionado aplicado tambm para a condio de pagamento da ordem de compra, conforme configurado no indicativo se o sistema bloqueia compras de produtos com condio de pagamento no planejada. Um exemplo de aviso sobre esta situao pode ser visto na Figura 42.

Figura 42 Exemplo de aviso de produto com condio de pagamento no planejada

Outro exemplo de consistncia da condio de pagamento pode ser visto na Figura 43.

90

Figura 43 Exemplo de bloqueio de compra de produto com condio de pagamento no planejada

Conforme pode se visto na Figura 44, depois de digitado o item de produto e constatado que o mesmo se encontra disponvel no planejamento, atravs da identificao do produto ou sua definio hierrquica e a previso de entrega do mesmo, o sistema faz o relacionamento do item de produto da ordem de compra com o item de planejamento, sendo possvel a visualizao 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

91

Figura 45 Relacionamento de um item de planejamento com item de ordem de compra

Figura 46 Demais informaes disponibilizadas atravs do relacionamento

Ao efetuar o fechamento da ordem de compra (efetivao do pedido com o fornecedor), caso o item de planejamento possua saldo disponvel (conforme tipo de controle,

92 fsico ou financeiro), o sistema realiza a atualizao dos saldos e estas informaes j podem ser visualizadas pelo gerente de compras atravs da tela de cadastro, bem como por outros compradores atravs das telas de consulta. A Figura 47 apresenta um exemplo de quantidades, valores e saldos de um item de planejamento atualizados aps o fechamento de uma ordem de compra.

Figura 47 Informaes atualizadas no planejamento de compras

Se no momento do fechamento de uma ordem de compra, o item a ser utilizado no possuir saldo disponvel, o sistema bloqueia o fechamento desta ordem de compra. Desta forma, o comprador deve solicitar ao gerente de compras um aumento do saldo disponvel (fsico 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.

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 fsico de um produto planejado.

Figura 49 Exemplo de falta de saldo fsico 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

94 Depois de fechada uma ordem de compra, a mesma ainda pode ser cancelada, reabilitada (volta situao inicial, ou seja, no fechada) ou at mesmo sofrer algumas alteraes que tambm influenciam diretamente nos saldos disponveis. Para tanto, o sistema efetua atualizaes (estorno) de valores, quantidades e saldos nas seguintes situaes: a) cancelamento da ordem de compra; b) reabilitao da ordem de compra; c) cancelamento de um item de ordem de compra; d) alterao de um item de ordem de compra. Aps o fechamento de uma ordem de compra, no possvel diminuir a quantidade e valor disponvel de um item de planejamento de determinado perodo 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 situao.

Figura 51 Consistncia efetuada na alterao de quantidade de um item de planejamento j utilizado

Figura 52 Consistncia efetuada na alterao de valor de um item de planejamento j utilizado

Da mesma forma que a situao anterior, depois de fechada a ordem de compra, o sistema no permite que o planejamento seja inativado antes do fim do seu perodo de vigncia, conforme pode ser observado no exemplo da Figura 53.

Figura 53 Consistncia efetuada na tentativa de inativao de um planejamento de compras j utilizado

95 O planejamento somente poder ser excludo se ainda no tiverem sido geradas ordens de compra, independente se as mesmas foram fechadas ou no, ou seja, havendo qualquer ligao de item de planejamento com item de ordem de compra no ser possvel a excluso do planejamento. A Figura 54 ilustra a situao em que o planejamento j foi utilizado, no permitindo sua excluso.

Figura 54 Consistncia efetuada na tentativa de excluso de um planejamento de compras j utilizado

Depois de utilizado para gerao de ordens de compra, um item de planejamento (origem, famlia, produto ou agrupamento de produtos) no pode ser alterado e nem excludo, conforme demonstrado nas Figuras 55 e 56.

Figura 55 Consistncia efetuada na tentativa de alterao do cdigo de origem de um item utilizado

Figura 56 Consistncia efetuada na tentativa de excluso de um item j utilizado

Por fim, a Figura 57 demonstra a situao em que o planejamento de compras j foi finalizado, atravs do fim do seu perodo de vigncia e de sua inativao, onde o sistema no permite que o mesmo seja ativado novamente.

Figura 57 Consistncia efetuada na tentativa de ativao de um planejamento de compras j finalizado

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

Para gerao 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 necessrio implementar os tratamentos para que exista a amarrao do planejamento de compras tambm na nota fiscal. Esta amarrao entre os documentos pode ser feitas de duas maneiras: informando manualmente o item da ordem de compra no item da nota ou buscando estas informaes atravs da tela de consulta de ordens de compra da nota fiscal de entrada. importante lembrar que na nota fiscal no 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, atravs da qual possvel selecionar os itens de ordens de compra que iro gerar itens da nota fiscal.

Figura 58 Tela de consulta de ordens de compra da nota fiscal de entrada

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

98

Figura 60 Tela de consulta de planejamentos de compras

Conforme se pode observar na Figura 60, esta tela possui alguns filtros no cabealho para facilitar a busca de determinado planejamento, bem como uma opo para exibir somente o planejamento ativo. Na grid de Dados Gerais so apresentados os dados cadastrados no cabealho do planejamento, entre outros totalizadores, j na grid de Itens so apresentados todos os dados dos itens de planejamento relacionados ao planejamento posicionado na grid de Dados Gerais. Esta tela possui tambm no rodap os botes de consulta do item cadastrado no sistema, bem como um boto 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.

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 informao da ordem de compra que originou o item de nota fiscal, bem como a informao do item de planejamento que deu incio ao processo vinculando-se ao item de ordem de compra. Alm dos filtros disponibilizados no cabealho da tela, a mesma possui tambm no rodap os botes de consulta do item cadastrado no sistema, um boto para acesso a uma tela de consulta dos itens da ordem de compra e um boto para acesso a uma tela de consulta de informaes do fornecedor.

3.3.2.6

Tela de Consulta de Saldos Disponveis para Compras

A tela de Consulta de Saldos Disponveis para Compras uma tela desenvolvida especificamente para permitir consultas dos saldos fsico e financeiro dos itens de

100 planejamento. A mesma serve principalmente como apoio aos compradores antes de inserir um item na ordem de compra, fazendo com que os mesmos no tenham surpresas desagradveis ao tentar oficializar as ordens de compra com os fornecedores. As Figuras 62 e 63 ilustram uma consulta de saldos disponveis para compras.

Figura 62 Tela de consulta de saldos disponveis para compras

101

Figura 63 Demais informaes da consulta de saldos disponveis para compras

Conforme pode ser visto nas Figuras 62 e 63, esta tela permite a visualizao dos dados de forma agrupada e detalhada. A mesma possui diversos filtros no cabealho da tela, botes de consulta do item cadastrado no sistema no rodap, bem como os totalizadores disponibilizados.

102 3.3.2.7 Tela de Consulta de Desempenho com Relao s Vendas

A tela de Consulta de Desempenho com Relao s Vendas permite que os dados sejam visualizados a partir de trs vises: viso do planejamento, das compras, e viso das vendas efetuadas. Nesta tela so 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, atravs dela possvel visualizar a diferena do que foi previsto e do que foi realizado. Esta tela tambm possui diversos filtros no cabealho, o que facilita a busca de determinado item planejado. Na mesma tambm possvel visualizar os itens de forma agrupada e detalhada, sendo que na grid de Itens Agrupados so apresentados os dados dos itens envolvidos nos planejamentos de compras de forma agrupada, j na grid de Itens Detalhados so apresentados os dados detalhados por planejamento. Os dados das compras so referentes s compras j efetivadas, ou seja, so apresentados valores de notas fiscais de entrada j fechadas lanadas no sistema, assim como as vendas so referentes s notas fiscais de sada tambm j fechadas. importante destacar que um item de planejamento de compras no possui nenhum vnculo com itens de notas fiscais de sada, sendo que a busca das vendas neste caso obedece apenas os respectivos perodos do item do planejamento de compras, ao invs 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 relao s vendas.

103

Figura 64 Tela de consulta de desempenho com relao s vendas

104

Figura 65 Demais informaes da grid de Itens Detalhados da consulta de desempenho com relao s vendas

Conforme pode ser visto nas Figuras 64 e 65, esta tela tambm apresenta os botes de consulta do item cadastrado no sistema no rodap, bem como uma opo no cabealho para exibio somente do planejamento ativo.

105 3.3.2.8 Relatrio Planejamento de Compras - Resumido

O relatrio Planejamento de Compras - Resumido permite que o comprador ou gerente de compras visualize apenas alguns dados gerais dos planejamentos, a fim de obter algumas informaes de maior relevncia. A Figura 66 apresenta um exemplo de emisso de um relatrio resumido.

Figura 66 Relatrio resumido de planejamentos de compras

106 3.3.2.9 Relatrio Planejamento de Compras - Detalhado

O relatrio Planejamento de Compras - Detalhado permite que o comprador ou gerente de compras visualize a maioria das informaes disponveis em um planejamento. Este relatrio alm de apresentar os dados gerais do planejamento, apresenta tambm as informaes mais importantes dos itens, bem como os totalizadores de valores e saldo do planejamento que tambm se encontram disponveis no relatrio resumido. A Figura 67 apresenta um exemplo de emisso de um relatrio detalhado.

Figura 67 Relatrio detalhado de planejamentos de compras

107 3.4 RESULTADOS E DISCUSSO

No contexto empresarial de um departamento de compras, percebe-se que a complexidade existente em qualquer organizao exige que os sistemas de informao atuem de forma a retratar a realidade e a dinmica destes departamentos. Ou seja, o nvel 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 mdulo desenvolvido ainda no tenha sido disponibilizado para o mercado at o trmino do presente trabalho, pode se perceber atravs 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 mdulo desenvolvido pode ser aplicado tambm a outros segmentos comercias que no sejam do ramo varejista, pois, o mesmo no se resume apenas ao clculo do Open to Buy, e sim, a uma srie de controles disponveis para o gerenciamento das compras em uma empresa. No conceito de Open to Buy, no h a exigncia de que este controle seja feito de forma automatizada em um sistema computacional, porm, recomendase fortemente esta prtica. O controle manual, feito em planilhas eletrnicas ou at mesmo em formulrios de papel, torna o gerenciamento praticamente inexistente em um ambiente com um nvel elevado de complexidade. Ainda que possa ser melhorado, o mdulo desenvolvido atende a necessidade e pode ser utilizado em qualquer empresa que deseje dar um passo inicial para a prtica do gerenciamento de compras de forma programada. Com relao aos trabalhos correlatos, percebeu-se que o mdulo de planejamento de compras desenvolvido possui alguns conceitos semelhantes aos dois sistemas apresentados disponveis 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 importncia do gerenciamento de um planejamento de compras como ferramenta para auxiliar a empresa a atingir seus objetivos de negcio, focando seu estudo de caso em uma empresa varejista de material de construo. Por ressaltar esta importncia, Santos (2006) enfatiza propostas para o aumento de desempenho da rea de compras da empresa analisada, sendo assim, pode se traar 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 questo adotou medidas aps a entrada da concorrncia que possibilitaram diversas melhorias na organizao das compras.

108 Durante a pesquisa, descobriu-se que no passado as metas de compras da empresa eram determinadas pelo comprador, e aps a entrada da concorrncia, estas metas passaram a ser estabelecidas pela gerncia de compras, com base na projeo de vendas, possibilitando otimizao nos estoques e uma melhoria no fluxo de caixa. Descobriu-se tambm, que no passado os compradores adquiriam grandes volumes de mercadorias dos fornecedores em troca de bonificaes e, aps a entrada da concorrncia, 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 tambm contriburam para a otimizao nos estoques e uma melhoria no fluxo de caixa, alm de evitar desbalanceamento do estoque, ou seja, o excesso de alguns produtos e falta de outros. Com relao s propostas sugeridas pela autora para a referida empresa, a mesma menciona a alterao da abordagem de cima para baixo para a abordagem interativa, porm, conforme mencionado pela prpria autora, s propostas foram recomendadas com base no estudo de caso, no permitindo generalizaes para outras empresas. Desta forma, caractersticas semelhantes foram observadas entre o estudo de caso de Santos (2006) e o mdulo de planejamento de compras desenvolvido no presente trabalho.

109 4 CONCLUSES

Elaborar planejamentos de compras fundamental para as empresas que desejam manterem-se competitivas no mercado, sendo que, estes planejamentos focam suas atenes no desenvolvimento de estratgias que permitam uma melhoria significativa na gesto do departamento de compras e das despesas de uma organizao. Neste contexto, conclui-se que o objetivo principal deste trabalho foi atingido, pois, o mdulo 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 experincia e domnio do Mdulo Comercial do Sistema Sapiens, onde pode se perceber que o Open to Buy foi um conceito importante aplicado no mdulo de planejamento de compras, sendo que, o mesmo sugere o valor ideal para ser utilizado em compras em um determinado perodo. Com a automatizao dos processos de planejamentos de compras no mdulo desenvolvido, pode se observar que esta importante etapa presente no departamento de compras ficou mais fcil e intuitiva de se trabalhar, visto que, o mesmo auxilia desde a etapa de avaliao de histricos para base do planejamento at o gerenciamento permanente dos saldos disponveis para compras. O objetivo especfico de desenvolver um mdulo 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 configuraes necessrias para que a programao de compras e o controle das mesmas se adaptem s necessidades de cada empresa varejista. Para o objetivo especfico de possibilitar que o sistema gerencie o andamento das compras conforme definido no planejamento, ficou claro que o mdulo desenvolvido atende este objetivo, pois, o controle dos saldos disponveis 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 especfico de disponibilizar atravs do planejamento de compras, informaes sobre o controle de gastos inerentes a esta rea, bem como o saldo disponvel para compras, tambm foi atendido. Foram disponibilizadas diversas telas de consulta atravs das quais se pode fazer um acompanhamento completo de todo o planejamento de compras. Durante a realizao deste trabalho, observou-se que a adoo de uma ferramenta de

110 software para gerenciamento das etapas de planejamento de compras relevante para as empresas que almejam liderana de mercado. Observou-se tambm, que normalmente as empresas varejistas de pequeno porte adotam o controle destes processos atravs de sistemas baseado em papel ou planilhas eletrnicas, sendo que, conforme o volume de dados aumenta, este tipo de controle passa a no atender com agilidade o departamento de compras. Para as empresas varejistas de mdio e grande porte, o planejamento de compras torna-se indispensvel, sendo que, o mesmo ter ainda um grande diferencial se implementado em um sistema ERP, pois, permitir desta forma, a visualizao das informaes relacionadas rea de compras tambm em outros departamentos da empresa.

4.1 EXTENSES

Com o objetivo de tornar este trabalho ainda mais abrangente e completo, trs extenses que no faziam parte dos objetivos iniciais do mesmo so sugeridas para trabalhos futuros: a) desenvolvimento de um mdulo de planejamento de vendas com integrao com o mdulo de planejamento de compras desenvolvido, a fim de contribuir com informaes importantes para a gerao do planejamento de compras; b) desenvolvimento de um mdulo de planejamento de produo com integrao com o mdulo de planejamento de compras desenvolvido; c) desenvolvimento de um mdulo de planejamento contbil. Como melhorias no mdulo desenvolvido no presente trabalho, so sugeridas as seguintes extenses: a) aplicao do controle dos saldos disponveis para compras tambm nos demais processos existentes no sistema que possibilitam a gerao de ordens de compra, como por exemplo, ordens de compra via cotao, via solicitao de compra, via contrato, via pedido, entre outros; b) implementao de uma rotina de envio de e-mail, onde os compradores poderiam optar por enviar ou no no caso de bloqueio de compras, um e-mail padro e prformatado, ao gerente de compras, onde este conteria as informaes importantes necessrias para o concedimento de aumento de saldo disponvel para compras.

111 REFERNCIAS BIBLIOGRFICAS

BAILY, Peter; FARMER, David; JESSOP, David; JONES, David. Compras: princpios e administrao. 8. ed. So Paulo: Atlas, 2000. BEZERRA, Eduardo. Princpios de anlise e projeto de sistemas com UML. Rio de Janeiro: Campus, 2002. BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML: guia do usurio. Rio de Janeiro: Campus, 2000. BRAUDE, Eric. Projeto de software: da programao arquitetura: uma abordagem baseada em Java. Porto Alegre: Bookman, 2005. CORONADO, Osmar. Controladoria no atacado e varejo: logstica integrada e modelo de gesto sob a ptica da gesto econmica logisticon. So Paulo: Atlas, 2001. COSTA, Fbio J. C. Leal. Introduo administrao de materiais em sistemas informatizados. So Paulo: iEditora, 2002. DIAS, Mario; COSTA, Roberto Figueiredo. Manual do comprador: conceitos, tcnicas e prticas indispensveis em um departamento de compras. 4. ed. So Paulo: Edicta, 2006. FRANCISCHINI, Paulino G.; GURGEL, Floriano do Amaral. Administrao de materiais e do patrimnio. So Paulo: Pioneira, 2002. GRAZZIOTIN, Gilson Valentin. A arte do varejo: o pulo do gato est na compra. 3. ed. So Paulo: Senac, 2003. GUEDES, Gilleanes T. A. UML: uma abordagem prtica. So Paulo: Novatec, 2004. HURLBUT, Ted. So What exactly is a retail open-to-buy? [S.l.], 2006. Disponvel 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 nmeros: o comrcio brasileiro em nmeros. [S.l.], jun. 2009. Disponvel em: <http://www.idv.org.br/varejo-dados-index.aspx>. Acesso em: 02 jun. 2009. LEVY, Michael; WEITZ, Barton A. Administrao de varejo. So Paulo: Atlas, 2000. MATYJEWICZ, George. Open to buy. [S.l.], 2001. Disponvel em: <http://www.etailersdigest.com/resources/Specials/Open_To_Buy.htm>. Acesso em: 18 abr. 2009.

112 MILLENNIUM NETWORK. Millennium. [S.l.], 2006a. Disponvel em: <http://www.millennium.com.br/bm.asp>. Acesso em: 23 maio 2009. ______. Varejo: operao. [S.l.], 2006b. Disponvel em: <http://www.millennium.com.br/varejooperacao.asp>. Acesso em: 23 maio 2009. PARENTE, Juracy. Varejo no Brasil: gesto e estratgia. So Paulo: Atlas, 2000. REZENDE, Denis Alcides. Engenharia de software e sistemas de informao. 3. ed. Rio de Janeiro: Brasport, 2005. SAP AG. SAP retail merchandise and assortment planning. [S.l.], abr. 2005. Disponvel 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. Dissertao (Mestrado Profissionalizante em Administrao) - Programa de Ps-Graduao e Pesquisa em Administrao e Economia, Faculdade de Economia e Finanas IBMEC, Rio de janeiro. SEBRAE. Regras bsicas para comprar bem. [S.l.], 2005. Disponvel em: <http://www.biblioteca.sebrae.com.br/bds/BDS.nsf/80EF7685D096336F03256F9E004D39E E/$File/NT000A38D2.pdf >. Acesso em: 09 maio. 2009. SENIOR SISTEMAS. Soluo sapiens: caractersticas. Blumenau, 2009a. Disponvel em: <http://www.senior.com.br/website/pt/sapiens-caracteristicas.php>. Acesso em: 16 maio 2009. ______. Solues de tecnologia sapiens: aplicaes cliente. Blumenau, 2009b. Disponvel em: <http://www.senior.com.br/website/pt/sapiens-tecnologia.php?txt=5>. Acesso em: 16 maio 2009. ______. Soluo sapiens: mdulos/funcionalidades. Blumenau, 2009c. Disponvel em: <http://www.senior.com.br/website/pt/sapiens-modulos.php>. Acesso em: 16 maio 2009. ______. Soluo sapiens: gesto empresarial. Blumenau, 2009d. Disponvel em: <http://www.senior.com.br/website/pt/sapiens-principal.php>. Acesso em: 16 maio 2009. ______. Soluo sapiens: compras. Blumenau, 2009e. Disponvel em: <http://www.senior.com.br/website/pt/sapiens-modulos-compras.php>. Acesso em: 17 maio 2009. ______. Soluo sapiens: vendas. Blumenau, 2009f. Disponvel em: <http://www.senior.com.br/website/pt/sapiens-modulos-vendas.php>. Acesso em: 17 maio 2009.

113 ______. Soluo sapiens: estoques. Blumenau, 2009g. Disponvel em: <http://www.senior.com.br/website/pt/sapiens-modulos-estoques.php>. Acesso em: 17 maio 2009. ______. Solues de tecnologia sapiens: implementaes. Blumenau, 2009h. Disponvel em: <http://www.senior.com.br/website/pt/sapiens-tecnologia.php?txt=2>. Acesso em: 16 maio 2009. ______. Processos do mdulo de compras: ordem de compra. Fabiano Stimamiglio Ferreira; Gilson Rogrio Manke: Senior Sistemas, 2009i. ______. Processos do mdulo de compras: nota fiscal de entrada. Fabiano Stimamiglio Ferreira; Gilson Rogrio Manke: Senior Sistemas, 2009j. ______. Ferramentas de apoio: gerador de relatrios.Verso 2.0. Blumenau, 2004. Documento eletrnico disponibilizado com o Sistema Sapiens verso 5.5.1.12. SENIOR SISTEMAS CORPORATIVOS. Sistema sapiens: ajuda do sapiens. Verso 5.5.1.12. Blumenau, 2009. Documento eletrnico disponibilizado com o Sistema Sapiens verso 5.5.1.12. SEVERO Filho, Joo. Administrao de logstica 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 Atlntico, 2005. SLACK, Nigel; CHAMBERS, Stuart; JOHNSTON, Robert; BETTS, Alan. Gerenciamento de operaes e de processos: princpios e prtica de impacto estratgico. Porto Alegre: Bookman, 2007. SYBASE. SQL anywhere. [S.l.], 2009. Disponvel 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, Srgio Luiz. Engenharia de software: anlise e projetos de sistemas. So Paulo: Futura, 2003. WATERS, Shari. Open-to-buy planning: controlling your inventory. [S.l.], 2009. Disponvel em: <http://retail.about.com/od/merchandisingbuying/a/open_to_buy.htm>. Acesso em: 19 abr. 2009.

114 WESTERMAN, Paul. Data warehousing: using the Wal-Mart model. San Francisco: Morgan Kaufmann, 2001.

115 APNDICE A Definies das tabelas e campos envolvidos no desenvolvimento do mdulo de planejamento de compras

Nos Quadros 11, 12, 13, 14, 15, 16, 17 e 18 so apresentadas as definies das principais tabelas e campos envolvidos no desenvolvimento do mdulo de planejamento de compras.
Campo CodEmp NomEmp Tabela: EMPRESA Empresas Descrio Cdigo da empresa Nome da empresa Quadro 11 Tabela EMPRESA Campo CodEmp CodFil NomFil Tabela: FILIAL Filiais Descrio Cdigo da empresa Cdigo da filial Nome da filial Quadro 12 Tabela FILIAL Campo CodEmp CodFil NumPla DesPla CodUsu TipPrg Tabela: PLANEJCOMPRAS Planejamentos de Compras Dados Gerais Descrio Tipo Tamanho Cdigo da empresa Nmerico 4 Cdigo da filial Nmerico 4 Nmero do planejamento de compras Nmerico 6 Descrio do planejamento de compras Alfanumrico 50 Cdigo do usurio gerador do planejamento Nmerico 10 Tipo da programao de compras efetuada no Alfanumrico 1 planejamento (O Por Origem, F Por Famlia, P Por Produto ou A Por Agrupamento de Produtos) Tipo de perodo (S Semanal, Q Quinzenal ou Alfanumrico 1 M Mensal) Situao do planejamento (A Ativo ou I Inativo) Alfanumrico 1 Data inicial da vigncia do planejamento Data dd/mm/yyyy Data final da vigncia do planejamento Data dd/mm/yyyy Data de cadastro Data dd/mm/yyyy Data da ltima alterao Data dd/mm/yyyy Valor bruto do planejamento de compras Numrico 15,2 Valor lquido do planejamento de compras Numrico 15,2 Quantidade de itens do planejamento de compras Numrico 3 Indicativo se o sistema deve bloquear compras Alfanumrico 1 (Ordens de Compra) de produtos no planejados (L Libera, A Avisa ou B Bloqueia) Indicativo se o sistema deve bloquear compras Alfanumrico 1 (Ordens de Compra) com condio de pagamento no planejada (L Libera, A Avisa ou B Bloqueia) Tipo Tamanho Nmerico 4 Nmerico 4 Alfanumrico 100 Tipo Tamanho Nmerico 4 Alfanumrico 100

TipPer SitPla IniVig FimVig DatCad DatAlt VlrBru VlrLiq QtdItp BloCpr

BloCpg

116
Campo SldTot UtiTot OtbTot TipCtl Descrio Tipo Valot total disponvel para compras no perodo de Nmerico vigncia Valor total j utilizado para compras Nmerico Saldo total disponvel para compras no perodo de Nmerico vigncia (Open to Buy) Tipo de controle do planejamento (Q - Quantidade Alfanumrico (Controle Fsico), V - Valor (Controle Financeiro) ou A - Ambos (Controle Fsico e Financeiro)) Quadro 13 Tabela PLANEJCOMPRAS Tamanho 15,2 15,2 15,2 1

Campo CodEmp CodFil NumPla SeqPla CodOri CodFam CodPro CodAgp QtdPla CodCpg DatIni DatFim PerCre VlrCre VlrLit VlrBru VlrLiq SldIte VlrUti OtbIte QtdDpr QtdUti QtdDis

Tabela: ITENSPLANEJAMENTO Planejamentos de Compras Itens Descrio Tipo Tamanho Cdigo da empresa Nmerico 4 Cdigo da filial Nmerico 4 Nmero do planejamento de compras Nmerico 6 Sequncia do item do planejamento de compras Nmerico 3 Cdigo da origem do produto Alfanumrico 3 Cdigo da famlia de produto Alfanumrico 6 Cdigo do produto Alfanumrico 14 Cdigo do agrupamento de produtos Alfanumrico 5 Quantidade planejada para compra Numrico 14,5 Condio de pagamento prevista para a compra do Alfanumrico 6 item Data inicial da previso de entrega Data dd/mm/yyyy Data final da previso de entrega Data dd/mm/yyyy Percentual de crescimento aplicado no item Nmerico 3 Valor de crescimento aplicado no item Nmerico 15,2 Valor do item Nmerico 15,2 Valor total bruto do item Nmerico 15,2 Valor total lquido do item Nmerico 15,2 Valor disponvel para compras no perodo Nmerico 15,2 Valor j utilizado para compras (fechamento de Nmerico 15,2 Ordens de Compra) Saldo disponvel para compras (Open to Buy do item) Nmerico 15,2 Quantidade disponvel para compras no perodo Nmerico 14,5 Quantidade j utilizada para compras (fechamento de Nmerico 14,5 Ordens de Compra) Saldo de quantidade disponvel para compras Nmerico 14,5 Quadro 14 Tabela ITENSPLANEJAMENTO Tabela: ORDEMCOMPRA Ordens de Compra Dados Gerais Descrio Tipo Cdigo da empresa Nmerico Cdigo da filial Nmerico Nmero da ordem de compra Nmerico Cdigo do fornecedor da ordem de compra Nmerico Data de emisso da ordem de compra Data Cdigo da condio de pagamento Alfanumrico Valor lquido da ordem de compra Nmerico Tamanho 4 4 8 9 dd/mm/yyyy 6 15,2

Campo CodEmp CodFil NumOcp CodFor DatEmi CodCpg VlrLiq

117
Campo SitOcp Descrio Tipo Situao da ordem de compra (1 Aberto Total, Nmerico 2 Aberto Parcial, 4 Liquidada, 5 Cancelada, 9 No Fechada, entre outras) Quadro 15 Tabela ORDEMCOMPRA Tabela: ITENSPROOC Ordens de Compra Itens de Produto Descrio Tipo Cdigo da empresa Nmerico Cdigo da filial Nmerico Nmero da ordem de compra Nmerico Sequncia de item da ordem de compra Nmerico Cdigo do produto da ordem de compra Alfanumrico Quantidade do produto da ordem de compra Nmerico Quantidade recebida do produto da ordem de compra Nmerico Quantidade cancelada do produto da ordem de compra Nmerico Quantidade em aberto do produto da ordem de compra Nmerico Valor lquido do produto da ordem de compra Nmerico Data de previso de entrega para o produto da ordem Data de compra Situao do item da ordem de compra (1 Aberto Nmerico Total, 2 Aberto Parcial, 4 Liquidado, 5 Cancelado, 9 No Fechado, entre outros) Cdigo da empresa do planejamento de compras Nmerico Cdigo da filial do planejamento de compras Nmerico Nmero do planejamento de compras Nmerico Sequncia do item do planejamento de compras Nmerico Quadro 16 Tabela ITENSPROOC Tabela: NFENTRADA Notas Fiscais de Entrada Dados Gerais Descrio Tipo Cdigo da empresa Nmerico Cdigo da filial Nmerico Cdigo do fornecedor da nota fiscal de entrada Nmerico Nmero da nota fiscal de entrada Nmerico Cdigo da srie da nota fiscal de entrada Alfanumrico Data de emisso da nota fiscal de entrada Data Cdigo da condio de pagamento Alfanumrico Valor lquido da nota fiscal de entrada Nmerico Situao da nota fiscal de entrada (1 Digitada, Nmerico 2 fechada ou 3 Cancelada) Quadro 17 Tabela NFENTRADA Tamanho 1

Campo CodEmp CodFil NumOcp SeqIpo CodPro QtdPed QtdRec QtdCan QtdAbe VlrLiq DatEnt SitIpo

Tamanho 4 4 8 3 14 14,5 14,5 14,5 14,5 15,2 dd/mm/yyyy 1

EmpPla FilPla NumPla SeqPla

4 4 6 3

Campo CodEmp CodFil CodFor NumNfc CodSnf DatEmi CodCpg VlrLiq SitNfc

Tamanho 4 4 9 9 3 dd/mm/yyyy 6 15,2 1

Campo CodEmp CodFil CodFor NumNfc CodSnf

Tabela: ITENSPRONFE Notas Fiscais de Entrada Itens de Produto Descrio Tipo Tamanho Cdigo da empresa Nmerico 4 Cdigo da filial Nmerico 4 Cdigo do fornecedor da nota fiscal de entrada Nmerico 9 Nmero da nota fiscal de entrada Nmerico 9 Cdigo da srie da nota fiscal de entrada Alfanumrico 3

118
Campo SeqIpc FilOcp NumOcp SeqIpo CodPro QtdRec VlrLiq EmpPla FilPla NumPla SeqPla Descrio Sequncia do item na nota fiscal de entrada Cdigo da filial da ordem de compra Nmero da ordem de compra Sequncia do item de produto na ordem de compra Cdigo do produto da nota fiscal de entrada Quantidade recebida do produto da ordem de compra Valor lquido do produto da ordem de compra Cdigo da empresa do planejamento de compras Cdigo da filial do planejamento de compras Nmero do planejamento de compras Sequncia do item do planejamento de compras Quadro 18 Tabela ITENSPRONFE Tipo Nmerico Numrico Numrico Numrico Alfanumrico Numrico Numrico Nmerico Nmerico Nmerico Nmerico Tamanho 4 4 8 3 14 14,5 15,2 4 4 6 3

119 APNDICE B Mtodos de maior relevncia de algumas das classes utilizadas no desenvolvimento do mdulo de planejamento de compras

No Quadro 19 apresentada a codificao de alguns dos mtodos 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: RecDadosPlanejamento; begin FillChar(DadosPlanejamento,SizeOF(DadosPlanejamento),0);

120
if if (RegPlanejamento.CodUsu = RegPlanejamento.CodUsu := (RegPlanejamento.DatCad = RegPlanejamento.DatCad := 0) then UserDef.Code; 0) then SDatas.DataHoje;

Move(RegPlanejamento, DadosPlanejamento,sizeof(DadosPlanejamento)); FillChar(DadosAuxPlanejamento,SizeOf(DadosAuxPlanejamento),0); DadosAuxPlanejamento.CodEmp := DadosPlanejamento.CodEmp; DadosAuxPlanejamento.CodFil := DadosPlanejamento.CodFil; DadosAuxPlanejamento.NumPla := DadosPlanejamento.NumPla; if (AccessSQL(TablePlanejamento,'SELECT NUMPLA FROM PLANEJCOMPRAS + ' 'WHERE CODEMP = {CODEMP} AND + ' CODFIL = {CODFIL} AND + ' NUMPLA = {NUMPLA}',rmSingleRow, @DadosAuxPlanejamento) = 0) then SMessage(smRaise,TransStrFmt('', 'Planejamento de compras %d j cadastrado. + ' 'Possivelmente o mesmo pode ter sido + ' 'gravado por outro usurio durante a + ' 'digitao!', [DadosAuxPlanejamento.NumPla], True));

if

(Access(TablePlanejamento,aoWrite,@RegPlanejamento) <> 0) then begin SMessage(smRaise,TransStrFmt('', 'No foi possvel gravar o planejamento + ' 'de compras %d. Possivelmente j existe + ' 'um planejamento gravado com este mesmo + ' 'nmero!', [DadosAuxPlanejamento.NumPla], True)); end; FGravado := True; end;

procedure TPlanejamento.PosicionaItemPlanejamento(PSeqPla : SWord); var i : SInteger; begin IniciaLeituraItens; for i := 0 to (LItens.Count - 1) do begin if (TItemPlanejamento(LItens.Items[i]).FCodEmp = RegPlanejamento.CodEmp) and (TItemPlanejamento(LItens.Items[i]).FCodFil = RegPlanejamento.CodFil) and (TItemPlanejamento(LItens.Items[i]).FNumPla = RegPlanejamento.NumPla) and (TItemPlanejamento(LItens.Items[i]).FSeqPla = PSeqPla) 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;

121
procedure TPlanejamento.AlteraNumeroPlanejamentoItens; var i : SWord; begin if (LItens.Count > 0) then begin for i := 0 to LItens.Count - 1 do TItemPlanejamento(LItens.Items[i]).FNumPla := RegPlanejamento.NumPla; end; end;

function TPlanejamento.RetornaPrimeiroItemPlanejamento : TItemPlanejamento; begin PosIte := 0; if (LItens.Count > 0) then result := TItemPlanejamento(LItens.Items[PosIte]) else result := nil; end;

function TPlanejamento.RetornaProximoItemPlanejamento : TItemPlanejamento; begin inc(PosIte); if (LItens.Count >= PosIte + 1) then result := TItemPlanejamento(LItens.Items[PosIte]) 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]).Free; LItens.Clear; end; end;

function TPlanejamento.CriaItemPlanejamento(PSeqPla : SWord) : Integer; begin Result := LItens.Add(TItemPlanejamento.Create(self,RegPlanejamento.CodEmp, RegPlanejamento.CodFil,RegPlanejamento.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.FOtbIte, 2); end; end; Result := OtbTotAux; end;

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 := RegPlanejamento.CodEmp; QueryPla.FindParam('CodFil').AsInteger := RegPlanejamento.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 ITENSPLANEJAMENTO ' + '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 := FNumPla; QueryItem.Bidirectional := True; QueryItem.Open; LItens.Clear; while not(QueryItem.EOF) do begin LItens.Add(TItemPlanejamento.CreateCarrega(self, RegPlanejamento.CodEmp, RegPlanejamento.CodFil, FNumPla, QueryItem.FindField('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;

123
procedure TPlanejamento.DestroiItemPlanejamento; var DadosItemPlanejamento : RecDadosItemPlanejamento; UpdItemPla : trTUpdate; ItemGravado : SBoolean; begin ItemGravado := False; TItemPlanejamento(LItens.Items[PosIte]).Estado := itExcluindo; DataBase.StartTransaction; try if (Database.Select('SELECT 1 FROM ITENSPLANEJAMENTO ' + 'WHERE CODEMP = {1} AND CODFIL = {2} AND ' + 'NUMPLA = {3} AND SEQPLA = {4}', [RegPlanejamento.CodEmp, RegPlanejamento.CodFil, RegPlanejamento.NumPla, TItemPlanejamento(LItens.Items[PosIte]).FSeqPla], TableItensPlanejamento,DadosItemPlanejamento)) then begin ItemGravado := True; UpdItemPLa := DataBase.NewUpdate; try UpdItemPla.Command := 'DELETE FROM ITENSPLANEJAMENTO ' + 'WHERE CODEMP = {CODEMP} AND ' + 'CODFIL = {CODFIL} AND ' + 'NUMPLA = {NUMPLA} AND ' + 'SEQPLA = {SEQPLA}'; UpdItemPla.FindParam('CodEmp').AsInteger := RegPlanejamento.CodEmp; UpdItemPla.FindParam('CodFil').AsInteger := RegPlanejamento.CodFil; UpdItemPla.FindParam('NumPla').AsInteger := RegPlanejamento.NumPLa; UpdItemPla.FindParam('SeqPla').AsInteger := TItemPlanejamento(LItens.Items[PosIte]).FSeqPla; UpdItemPla.Execute; RegPlanejamento.QtdItp := RegPlanejamento.QtdItp - 1; // se gravado, chama o mtodo de alterao do planejamento // para que o cabealho seja atualizado na base de dados if (Gravado) then Altera; finally UpdItemPla.free; end; end; TItemPlanejamento(LItens.Items[PosIte]).Destroy; LItens.Delete(PosIte); // se o item estiver gravado na base, a quantidade 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 excludo com sucesso function TPlanejamento.ExcluiPlanejamento : SBoolean; var DadosPlanejamento : RecDadosPlanejamento; begin Result := False;

124
if (SMessage(smReturn,TransStr('', 'Deseja realmente excluir o planejamento ' + 'e seus itens?[&Sim,&No]', True)) = 0) then begin ExcluiItensPlanejamento; DadosPlanejamento.CodEmp := RegPlanejamento.CodEmp; DadosPlanejamento.CodFil := RegPlanejamento.CodFil; DadosPlanejamento.NumPla := RegPlanejamento.NumPla; if (Access(TablePlanejamento,aoDelete,@ DadosPlanejamento) <> 0) then SMessage(smRaise,TransStr('', 'No foi possvel excluir o planejamento!',

True)) else Result := True; end else Result := False; end;

Quadro 19 Cdigo fonte dos mtodos mais relevantes da classe TPlanejamento

No Quadro 20 apresentada a codificao de alguns dos mtodos mais relevantes da classe TItemPlanejamento.
constructor TItemPlanejamento.Create(PDadosGerais : TObject; PCodEmp,PCodFil : SWord; PNumPla : SLongint; PSeqPla : SWord); 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).FNumPla; RegItem.SeqPla := PSeqPla; FIndCon := True; FEstado := itInserindo; end;

constructor TItemPlanejamento.CreateCarrega(PDadosGerais : TObject; PCodEmp,PCodFil : SWord; PNumPla : SLongint; PSeqPla : SWord); var Query : TRTQuery; begin inherited Create; CriaCustom; // Executa mtodo 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 Query.FindParam('CodFil').AsInteger Query.FindParam('NumPla').AsInteger Query.FindParam('SeqPla').AsInteger Query.Open; if not(Query.EOF) then begin := := := := PCodEmp; PCodFil; PNumPla; PSeqPla;

125
FillChar(RegItem, SizeOf(RegItem),0); Query.FieldsToRecord(CustomItem,RegItem); Query.FieldsToRecord(CustomItem,BRegItem); Query.FieldsToRecord(CustomItem,RegItemBase); 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).FNumPla; if (Access(TableItensPlanejamento,aoReWrite,@RegItem) <> 0) then SMessage(smRaise,TransStr('', 'No foi possvel gravar os ' + 'itens do planejamento!', True)); Move(RegItem,RegItemBase,SizeOf(RegItemBase)); end;

procedure TItemPlanejamento.Grava; begin RegItem.NumPla := TPlanejamento(DadosGerais).FNumPla; if (Access(TableItensPlanejamento,aoWrite,@RegItem) <> 0) then SMessage(smRaise,TransStr('', 'No foi possvel gravar os ' + 'itens do planejamento)!', True));

FEstado := itModificando; Move(RegItem,RegItemBase,SizeOf(RegItemBase)); end;

procedure TItemPlanejamento.CalculaValores(RegTotais : TRegTotais); var DadosItemPlanejamento : RecDadosItemPlanejamento; begin TPlanejamento(DadosGerais).DiminuiValores(RegTotais); Move(RegItem,BRegItem,SizeOf(RegItem)); Move(RegItem, DadosItemPlanejamento,sizeof(DadosItemPlanejamento)); CalculaItemPlanejamento(DadosItemPlanejamento); Move(DadosItemPlanejamento,RegItem,sizeof(DadosItemPlanejamento)); end;

Quadro 20 Cdigo fonte dos mtodos mais relevantes da classe TItemPlanejamento

No Quadro 21 apresentada a codificao de alguns dos mtodos mais relevantes da classe Frm_CadastraPlanejamento.

126
procedure Frm_CadastraPlanejamento.Processar; var DadosItemPlanejamento: RecDadosItemPlanejamento; begin ConsisteCamposCabecalho; if (GridItens.Counts = 0) then sMessage(smRaise,TransStr('', 'No existem itens no planejamento ' + 'para processar!', True)); try Database.StartTransaction; try if (ControlandoMultiUsuario) then Database.CompareNm('Form_CadastraPlanejamento'); // objeto instanciado da classe TPlanejamento if (Planejamento.Estado <> stEditando) then Planejamento.Grava else Planejamento.Altera; GridItens.DisconnectTable; try GridItens.First; repeat Planejamento.PosicionaItemPlanejamento(RegItem.SeqPla); FillChar(DadosItemPlanejamento,SDadosItemPlanejamento,0); if (Database.Select('SELECT 1 FROM ITENSPLANEJAMENTO ' + 'WHERE CODEMP = {1} AND ' + 'CODFIL = {2} AND ' + 'NUMPLA = {3} AND ' + 'SEQPLA={4}', [Planejamento.FCodEmp, Planejamento.FCodFil, Planejamento.FNumPla, RegItem.SeqPla], TableItensPlanejamento, DadosItemPlanejamento)) then begin Planejamento.AlteraItem; end else begin Planejamento.GravaItem; end; until not(GridItens.Next); finally GridItens.ConnectTable; end; (Planejamento.BuscaPlanejamentoAtivo = 0) then begin if (SMessage(smReturn,TransStr('', 'Deseja ativar ' + 'o planejamento? ' + '[&Sim,&No]', 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('', 'No foi possvel processar ' + 'o planejamento - ',True) + SExceptionMsg); end; if

127
Planejamento.Free; GridItens.ClearList; LimpaCampos; SMessage(smReturn,TransStr('', 'Processamento executado com sucesso! [&OK]',True)); end;

procedure Frm_CadastraPlanejamento.Excluir; begin if ExisteVinculoItensPlanejamentoComOrdensDeCompra(Planejamento.FNumPla, False) then SMessage(smRaise, TransStr('', 'Excluso no permitida, j existem ordens ' + 'de compra ligadas 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 Cdigo fonte dos mtodos mais relevantes da classe Frm_CadastraPlanejamento

No Quadro 22 apresentada a codificao do mtodo 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 - ITENSPROOC.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) AS VALOR, ' + '((SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI))/ ' + // Valor '(SUM(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN))) ' + // Qtd 'AS PRECOMEDIO ' + 'FROM ITENSPROOC,ORDEMCOMPRA,PRODUTO,FAMILIA ' + 'WHERE ORDEMCOMPRA.CODEMP = {CODEMP} AND ' + 'ORDEMCOMPRA.CODFIL = {CODFIL} AND ' + 'ITENSPROOC.CODEMP = ORDEMCOMPRA.CODEMP AND ' + 'ITENSPROOC.CODFIL = ORDEMCOMPRA.CODFIL AND ' +

128
'ITENSPROOC.NUMOCP = ORDEMCOMPRA.NUMOCP AND ' + 'PRODUTO.CODEMP = ITENSPROOC.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPROOC.CODPRO AND ' + 'PRODUTO.TIPPRO = ''C'' AND ' + 'PRODUTO.INDVEN = ''S'' AND ' + 'ITENSPROOC.CODFAM <> '' '' AND ' + 'FAMILIA.CODEMP = PRODUTO.CODEMP AND ' + 'FAMILIA.CODFAM = PRODUTO.CODFAM AND ' + 'FAMILIA.TIPPRO = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProduto + FiltroFornecedor + '(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) > 0 AND ' + '((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) > 0 AND ' + // Aberto Total, Aberto Parcial ou Liquidado 'ITENSPROOC.SITIPO IN (1,2,4) AND ' + 'ORDEMCOMPRA.DATFEC BETWEEN {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.QTDPED - ITENSPROPEDIDO.QTDCAN) * ' 'ITENSPROPEDIDO.PREUNI) AS VALOR, ' + '((SUM((ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) * ' 'ITENSPROPEDIDO.PREUNI))/ ' + '(SUM(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN))) ' 'AS PRECOMEDIO FROM ITENSPROPEDIDO,PEDIDO,PRODUTO, ' + 'FAMILIA ' + 'WHERE PEDIDO.CODEMP = {CODEMP} AND ' + 'PEDIDO.CODFIL = {CODFIL} AND ' + 'ITENSPROPEDIDO.CODEMP = PEDIDO.CODEMP AND ' + 'ITENSPROPEDIDO.CODFIL = PEDIDO.CODFIL AND ' + 'ITENSPROPEDIDO.NUMPED = PEDIDO.NUMPED AND ' + 'PRODUTO.CODEMP = ITENSPROPEDIDO.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPROPEDIDO.CODPRO AND ' + 'PRODUTO.TIPPRO = ''C'' AND ' + 'PRODUTO.INDVEN = ''S'' AND ' + 'ITENSPROPEDIDO.CODFAM <> '' '' AND ' + 'FAMILIA.CODEMP = PRODUTO.CODEMP AND ' + 'FAMILIA.CODFAM = PRODUTO.CODFAM AND ' + 'FAMILIA.TIPPRO = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProduto + FiltroCliente + '(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) ' + '> 0 AND ' + '((ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) * ' 'ITENSPROPEDIDO.PREUNI) > 0 AND ' + // Aberto Total, Aberto Parcial ou Liquidado 'ITENSPROPEDIDO.SITIPD IN (1,2,4) AND ' + 'PEDIDO.DATFEC BETWEEN {EDATBASINI} AND {EDATBASFIM} ' + 'GROUP BY ITENSPROPEDIDO.CODFAM ' + 'ORDER BY ITENSPROPEDIDO.CODFAM'; end;

+ + +

129
procedure AplicaSelectFamiliaNotasEntrada; begin SQLAux := 'SELECT ITENSPRONFE.CODFAM, ' + 'SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI) AS VALOR, ' + '((SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI))/ ' + '(SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV))) ' + 'AS PRECOMEDIO FROM ITENSPRONFE,NFENTRADA,PRODUTO, ' + 'FAMILIA ' + 'WHERE NFENTRADA.CODEMP = {CODEMP} AND ' + 'NFENTRADA.CODFIL = {CODFIL} 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 = ITENSPRONFE.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPRONFE.CODPRO AND ' + 'ITENSPRONFE.CODFAM <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C'' AND ' + 'PRODUTO.INDVEN = ''S'' AND ' + 'FAMILIA.CODEMP = PRODUTO.CODEMP AND ' + 'FAMILIA.CODFAM = PRODUTO.CODFAM AND ' + 'FAMILIA.TIPPRO = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProduto + FiltroFornecedor + '(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) > 0 AND ' + '((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI) > 0 AND ' + 'NFENTRADA.SITNFC = 2 AND ' + // Nota fechada 'NFENTRADA.DATEMI BETWEEN {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 VALOR, ' + '((SUM((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * 'ITENSPRONFS.PREUNI))/ ' + '(SUM(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV))) ' 'AS PRECOMEDIO FROM ITENSPRONFS,NFSAIDA,PRODUTO, ' 'FAMILIA ' + 'WHERE NFSAIDA.CODEMP = {CODEMP} AND ' + 'NFSAIDA.CODFIL = {CODFIL} AND ' + 'ITENSPRONFS.CODEMP = NFSAIDA.CODEMP AND ' + 'ITENSPRONFS.CODFIL = NFSAIDA.CODFIL AND ' + 'ITENSPRONFS.NUMNFV = NFSAIDA.NUMNFV AND ' + 'ITENSPRONFS.CODSNF = NFSAIDA.CODSNF AND ' + 'PRODUTO.CODEMP = ITENSPRONFS.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPRONFS.CODPRO AND ' + 'ITENSPRONFS.CODFAM <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C'' AND ' + 'PRODUTO.INDVEN = ''S'' AND ' + 'FAMILIA.CODEMP = PRODUTO.CODEMP AND ' + 'FAMILIA.CODFAM = PRODUTO.CODFAM AND ' + 'FAMILIA.TIPPRO = ''C'' AND ' +

+ ' + + +

130
FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProduto + FiltroCliente + '(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) > 0 AND ' + '((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI) > 0 AND ' + 'NFSAIDA.SITNFV = 2 AND ' + // Nota fechada 'NFSAIDA.DATEMI BETWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY ITENSPRONFS.CODFAM ' + 'ORDER BY ITENSPRONFS.CODFAM'; end; procedure AplicaSelectProdutoOrdensCompra; begin SQLAux := 'SELECT ITENSPROOC.CODPRO, ' + 'SUM(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) AS VALOR, ' + '((SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI))/ ' + '(SUM(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN))) ' + 'AS PRECOMEDIO FROM ITENSPROOC,ORDEMCOMPRA,PRODUTO ' + 'WHERE ORDEMCOMPRA.CODEMP = {CODEMP} AND ' + 'ORDEMCOMPRA.CODFIL = {CODFIL} AND ' + 'ITENSPROOC.CODEMP = ORDEMCOMPRA.CODEMP AND ' + 'ITENSPROOC.CODFIL = ORDEMCOMPRA.CODFIL AND ' + 'ITENSPROOC.NUMOCP = ORDEMCOMPRA.NUMOCP AND ' + 'PRODUTO.CODEMP = ITENSPROOC.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPROOC.CODPRO AND ' + 'ITENSPROOC.CODPRO <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C'' AND ' + 'PRODUTO.INDVEN = ''S'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProduto + FiltroFornecedor + '(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) > 0 AND ' + '((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) > 0 AND ' + // Aberto Total, Aberto Parcial ou Liquidado 'ITENSPROOC.SITIPO IN (1,2,4) AND ' + 'ORDEMCOMPRA.DATFEC BETWEEN {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.QTDPED - ITENSPROPEDIDO.QTDCAN) * ' + 'ITENSPROPEDIDO.PREUNI) AS VALOR, ' + '((SUM((ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) * 'ITENSPROPEDIDO.PREUNI))/ ' + '(SUM(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN))) ' + 'AS PRECOMEDIO FROM ITENSPROPEDIDO,PEDIDO,PRODUTO ' + 'WHERE PEDIDO.CODEMP = {CODEMP} AND ' + 'PEDIDO.CODFIL = {CODFIL} AND ' + 'ITENSPROPEDIDO.CODEMP = PEDIDO.CODEMP AND ' + 'ITENSPROPEDIDO.CODFIL = PEDIDO.CODFIL AND ' + 'ITENSPROPEDIDO.NUMPED = PEDIDO.NUMPED AND ' +

131
'PRODUTO.CODEMP = ITENSPROPEDIDO.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPROPEDIDO.CODPRO AND ' + 'ITENSPROPEDIDO.CODPRO <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C'' AND ' + 'PRODUTO.INDVEN = ''S'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProduto + FiltroCliente + '(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) ' + '> 0 AND ' + '((ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) * 'ITENSPROPEDIDO.PREUNI) > 0 AND ' + // Aberto Total, Aberto Parcial ou Liquidado 'ITENSPROPEDIDO.SITIPD IN (1,2,4) AND ' + 'PEDIDO.DATFEC BETWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY ITENSPROPEDIDO.CODPRO ' + 'ORDER BY ITENSPROPEDIDO.CODPRO'; end; procedure AplicaSelectProdutoNotasEntrada; begin SQLAux := 'SELECT ITENSPRONFE.CODPRO, ' + 'SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI) AS VALOR, ' + '((SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI))/ ' + '(SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV))) ' + 'AS PRECOMEDIO FROM ITENSPRONFE,NFENTRADA,PRODUTO ' + 'WHERE NFENTRADA.CODEMP = {CODEMP} AND ' + 'NFENTRADA.CODFIL = {CODFIL} 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 = ITENSPRONFE.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPRONFE.CODPRO AND ' + 'ITENSPRONFE.CODPRO <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C'' AND ' + 'PRODUTO.INDVEN = ''S'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProduto + FiltroFornecedor + '(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) > 0 AND ' + '((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * 'ITENSPRONFE.PREUNI) > 0 AND ' + 'NFENTRADA.SITNFC = 2 AND ' + // Nota fechada 'NFENTRADA.DATEMI BETWEEN {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 VALOR, ' + '((SUM((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' +

132
'ITENSPRONFS.PREUNI))/ ' + '(SUM(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV))) ' + 'AS PRECOMEDIO FROM ITENSPRONFS,NFSAIDA,PRODUTO ' + 'WHERE NFSAIDA.CODEMP = {CODEMP} AND ' + 'NFSAIDA.CODFIL = {CODFIL} AND ' + 'ITENSPRONFS.CODEMP = NFSAIDA.CODEMP AND ' + 'ITENSPRONFS.CODFIL = NFSAIDA.CODFIL AND ' + 'ITENSPRONFS.NUMNFV = NFSAIDA.NUMNFV AND ' + 'ITENSPRONFS.CODSNF = NFSAIDA.CODSNF AND ' + 'PRODUTO.CODEMP = ITENSPRONFS.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPRONFS.CODPRO AND ' + 'ITENSPRONFS.CODPRO <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C'' AND ' + 'PRODUTO.INDVEN = ''S'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProduto + FiltroCliente + '(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) > 0 AND ' + '((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI) > 0 AND ' + 'NFSAIDA.SITNFV = 2 AND ' + // Nota fechada 'NFSAIDA.DATEMI BETWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY ITENSPRONFS.CODPRO ' + 'ORDER BY ITENSPRONFS.CODPRO'; end;

procedure AplicaSelectOrigemOrdensCompra; begin SQLAux := 'SELECT PRODUTO.CODORI, ' + 'SUM(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) AS VALOR, ' + '((SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI))/ ' + '(SUM(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN))) ' + 'AS PRECOMEDIO FROM ITENSPROOC,ORDEMCOMPRA,PRODUTO, ' + 'ORIGEM ' + 'WHERE ORDEMCOMPRA.CODEMP = {CODEMP} AND ' + 'ORDEMCOMPRA.CODFIL = {CODFIL} AND ' + 'ITENSPROOC.CODEMP = ORDEMCOMPRA.CODEMP AND ' + 'ITENSPROOC.CODFIL = ORDEMCOMPRA.CODFIL AND ' + 'ITENSPROOC.NUMOCP = ORDEMCOMPRA.NUMOCP AND ' + 'PRODUTO.CODEMP = ITENSPROOC.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPROOC.CODPRO AND ' + 'PRODUTO.CODORI <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C'' AND ' + 'PRODUTO.INDVEN = ''S'' AND ' + 'ORIGEM.CODEMP = PRODUTO.CODEMP AND ' + 'ORIGEM.CODORI = PRODUTO.CODORI AND ' + 'ORIGEM.TIPPRO = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProduto + FiltroFornecedor + '(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) > 0 AND ' + '((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) > 0 AND ' + // Aberto Total, Aberto Parcial ou Liquidado 'ITENSPROOC.SITIPO IN (1,2,4) AND ' + 'ORDEMCOMPRA.DATFEC BETWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY PRODUTO.CODORI ' +

133
'ORDER BY PRODUTO.CODORI'; end; procedure AplicaSelectOrigemPedidos; begin SQLAux := 'SELECT PRODUTO.CODORI, ' + 'SUM(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) * ' 'ITENSPROPEDIDO.PREUNI) AS VALOR, ' + '((SUM((ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) * ' 'ITENSPROPEDIDO.PREUNI))/ ' + '(SUM(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN))) ' 'AS PRECOMEDIO FROM ITENSPROPEDIDO,PEDIDO,PRODUTO, ' + 'ORIGEM ' + 'WHERE PEDIDO.CODEMP = {CODEMP} AND ' + 'PEDIDO.CODFIL = {CODFIL} AND ' + 'ITENSPROPEDIDO.CODEMP = PEDIDO.CODEMP AND ' + 'ITENSPROPEDIDO.CODFIL = PEDIDO.CODFIL AND ' + 'ITENSPROPEDIDO.NUMPED = PEDIDO.NUMPED AND ' + 'PRODUTO.CODEMP = ITENSPROPEDIDO.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPROPEDIDO.CODPRO AND ' + 'PRODUTO.CODORI <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C'' AND ' + 'PRODUTO.INDVEN = ''S'' AND ' + 'ORIGEM.CODEMP = PRODUTO.CODEMP AND ' + 'ORIGEM.CODORI = PRODUTO.CODORI AND ' + 'ORIGEM.TIPPRO = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProduto + FiltroCliente + '(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) ' + '> 0 AND ' + '((ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) * ' 'ITENSPROPEDIDO.PREUNI) > 0 AND ' + // Aberto Total, Aberto 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 VALOR, ' + '((SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * 'ITENSPRONFE.PREUNI))/ ' + '(SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV))) ' 'AS PRECOMEDIO FROM ITENSPRONFE,NFENTRADA,PRODUTO, 'ORIGEM ' + 'WHERE NFENTRADA.CODEMP = {CODEMP} AND ' + 'NFENTRADA.CODFIL = {CODFIL} 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 = ITENSPRONFE.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPRONFE.CODPRO AND ' + 'PRODUTO.CODORI <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C'' AND ' +

+ + +

+ ' + + ' +

134
'PRODUTO.INDVEN = ''S'' AND ' + 'ORIGEM.CODEMP = PRODUTO.CODEMP AND ' + 'ORIGEM.CODORI = PRODUTO.CODORI AND ' + 'ORIGEM.TIPPRO = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProduto + FiltroFornecedor + '(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) > 0 AND ' + '((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI) > 0 AND ' + 'NFENTRADA.SITNFC = 2 AND ' + // Nota fechada 'NFENTRADA.DATEMI BETWEEN {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 VALOR, ' + '((SUM((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI))/ ' + '(SUM(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV))) ' + 'AS PRECOMEDIO FROM ITENSPRONFS,NFSAIDA,PRODUTO,ORIGEM ' + 'WHERE NFSAIDA.CODEMP = {CODEMP} AND ' + 'NFSAIDA.CODFIL = {CODFIL} AND ' + 'ITENSPRONFS.CODEMP = NFSAIDA.CODEMP AND ' + 'ITENSPRONFS.CODFIL = NFSAIDA.CODFIL AND ' + 'ITENSPRONFS.NUMNFV = NFSAIDA.NUMNFV AND ' + 'ITENSPRONFS.CODSNF = NFSAIDA.CODSNF AND ' + 'PRODUTO.CODEMP = ITENSPRONFS.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPRONFS.CODPRO AND ' + 'PRODUTO.CODORI <> '' '' AND ' + 'PRODUTO.TIPPRO = ''C'' AND ' + 'PRODUTO.INDVEN = ''S'' AND ' + 'ORIGEM.CODEMP = PRODUTO.CODEMP AND ' + 'ORIGEM.CODORI = PRODUTO.CODORI AND ' + 'ORIGEM.TIPPRO = ''C'' AND ' + FiltroOrigem + FiltroFamilia + FiltroProduto + FiltroAgrupamentoProduto + FiltroCliente + '(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) > 0 AND ' + '((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI) > 0 AND ' + 'NFSAIDA.SITNFV = 2 AND ' + // Nota fechada 'NFSAIDA.DATEMI BETWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY PRODUTO.CODORI ' + 'ORDER BY PRODUTO.CODORI'; end; procedure AplicaSelectAgrupamentoProdutoOrdensCompra; begin SQLAux := 'SELECT PRODUTO.CODAGC, ' + 'SUM(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) AS VALOR, ' + '((SUM((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI))/ ' +

135
'(SUM(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN))) ' + 'AS PRECOMEDIO ' + 'FROM ITENSPROOC,ORDEMCOMPRA,PRODUTO,AGRUPAMENTO ' + 'WHERE ORDEMCOMPRA.CODEMP = {CODEMP} AND ' + 'ORDEMCOMPRA.CODFIL = {CODFIL} AND ' + 'ITENSPROOC.CODEMP = ORDEMCOMPRA.CODEMP AND ' + 'ITENSPROOC.CODFIL = ORDEMCOMPRA.CODFIL AND ' + 'ITENSPROOC.NUMOCP = ORDEMCOMPRA.NUMOCP AND ' + 'PRODUTO.CODEMP = ITENSPROOC.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPROOC.CODPRO AND ' + // Ignora produtos que no possuem agrupamento // para comercial cadastrados '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 + FiltroAgrupamentoProduto + FiltroFornecedor + '(ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) > 0 AND ' + '((ITENSPROOC.QTDPED - ITENSPROOC.QTDCAN) * ' + 'ITENSPROOC.PREUNI) > 0 AND ' + // Aberto Total, Aberto Parcial ou Liquidado 'ITENSPROOC.SITIPO IN (1,2,4) AND ' + 'ORDEMCOMPRA.DATFEC BETWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY PRODUTO.CODAGC ' + 'ORDER BY PRODUTO.CODAGC'; end; procedure AplicaSelectAgrupamentoProdutoPedidos; begin SQLAux := 'SELECT PRODUTO.CODAGC, ' + 'SUM(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) * ' 'ITENSPROPEDIDO.PREUNI) AS VALOR, ' + '((SUM((ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) * ' 'ITENSPROPEDIDO.PREUNI))/ ' + '(SUM(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN))) ' 'AS PRECOMEDIO ' + 'FROM ITENSPROPEDIDO,PEDIDO,PRODUTO,AGRUPAMENTO ' + 'WHERE PEDIDO.CODEMP = {CODEMP} AND ' + 'PEDIDO.CODFIL = {CODFIL} AND ' + 'ITENSPROPEDIDO.CODEMP = PEDIDO.CODEMP AND ' + 'ITENSPROPEDIDO.CODFIL = PEDIDO.CODFIL AND ' + 'ITENSPROPEDIDO.NUMPED = PEDIDO.NUMPED AND ' + 'PRODUTO.CODEMP = ITENSPROPEDIDO.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPROPEDIDO.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 + FiltroAgrupamentoProduto + FiltroCliente + '(ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) ' + '> 0 AND ' + '((ITENSPROPEDIDO.QTDPED - ITENSPROPEDIDO.QTDCAN) * ' 'ITENSPROPEDIDO.PREUNI) > 0 AND ' +

+ + +

136
// Aberto Total, Aberto 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 AplicaSelectAgrupamentoProdutoNotasEntrada; begin SQLAux := 'SELECT PRODUTO.CODAGC, ' + 'SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) ' + 'AS QUANTIDADE, ' + 'SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI) AS VALOR, ' + '((SUM((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI))/ ' + '(SUM(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV))) ' + 'AS PRECOMEDIO ' + 'FROM ITENSPRONFE,NFENTRADA,PRODUTO,AGRUPAMENTO ' + 'WHERE NFENTRADA.CODEMP = {CODEMP} AND ' + 'NFENTRADA.CODFIL = {CODFIL} 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 = ITENSPRONFE.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPRONFE.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 + FiltroAgrupamentoProduto + FiltroFornecedor + '(ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) > 0 AND ' + '((ITENSPRONFE.QTDEST - ITENSPRONFE.QTDDEV) * ' + 'ITENSPRONFE.PREUNI) > 0 AND ' + 'NFENTRADA.SITNFC = 2 AND ' + // Nota fechada 'NFENTRADA.DATEMI BETWEEN {EDATBASINI} 'AND {EDATBASFIM} ' + 'GROUP BY PRODUTO.CODAGC ' + 'ORDER BY PRODUTO.CODAGC'; end; procedure AplicaSelectAgrupamentoProdutoNotasSaida; begin SQLAux := 'SELECT PRODUTO.CODAGC, ' + 'SUM(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) 'AS QUANTIDADE, ' + 'SUM((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI) AS VALOR, ' + '((SUM((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI))/ ' + '(SUM(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV))) ' + 'AS PRECOMEDIO ' + 'FROM ITENSPRONFS,NFSAIDA,PRODUTO,AGRUPAMENTO ' + 'WHERE NFSAIDA.CODEMP = {CODEMP} AND ' + 'NFSAIDA.CODFIL = {CODFIL} AND ' + 'ITENSPRONFS.CODEMP = NFSAIDA.CODEMP AND ' + 'ITENSPRONFS.CODFIL = NFSAIDA.CODFIL AND ' + 'ITENSPRONFS.NUMNFV = NFSAIDA.NUMNFV AND ' + 'ITENSPRONFS.CODSNF = NFSAIDA.CODSNF AND ' +

137
'PRODUTO.CODEMP = ITENSPRONFS.CODEMP AND ' + 'PRODUTO.CODPRO = ITENSPRONFS.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 + FiltroAgrupamentoProduto + FiltroCliente + '(ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) > 0 AND ' + '((ITENSPRONFS.QTDFAT - ITENSPRONFS.QTDDEV) * ' + 'ITENSPRONFS.PREUNI) > 0 AND ' + 'NFSAIDA.SITNFV = 2 AND ' + // Nota fechada 'NFSAIDA.DATEMI BETWEEN {EDATBASINI} AND ' + '{EDATBASFIM} ' + 'GROUP BY PRODUTO.CODAGC ' + 'ORDER BY PRODUTO.CODAGC'; end; begin LMemGridAgr.ClearList; LMemGridDet.ClearList([oclCancelFilter, oclCancelRange]); LMemGridAgr.DisConnectTable; wwGridAgr.CheckMasterRange; FormBarraProgresso := TFrm_BarraProgresso.Create(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:= '(' + SELECTIONFILTER('ITENSPROOC.CODFAM', Ctrl('ECodFam').Text) + ') AND '; if not(SIsNull(Ctrl('ECodPro').Text,fkString)) then FiltroProduto:= '(' + SELECTIONFILTER('ITENSPROOC.CODPRO', Ctrl('ECodPro').Text) + ') AND '; not(SIsNull(Ctrl('ECodFor').Text,fkString)) then FiltroFornecedor := '(' + SELECTIONFILTER( 'ORDEMCOMPRA.CODFOR', Ctrl('ECodFor').Text) + ') AND '; not(SIsNull(Ctrl('ECodOri').Text,fkString)) then FiltroOrigem := '('+ SELECTIONFILTER('PRODUTO.CODORI', Ctrl('ECodOri').Text) + ') AND ';

if

if

if

not(SIsNull(Ctrl('ECodAgp').Text,fkString)) then FiltroAgrupamentoProduto := '(' + SELECTIONFILTER( 'PRODUTO.CODAGC', Ctrl('ECodAgp').Text) + ') AND '; case TipoProgramacao of 'O' : AplicaSelectOrigemOrdensCompra; 'F' : AplicaSelectFamiliaOrdensCompra; 'P' : AplicaSelectProdutoOrdensCompra; 'A' : AplicaSelectAgrupamentoProdutoOrdensCompra; end; end;

138
1 : // Tratamento Pedidos begin if not(SIsNull(Ctrl('ECodFam').Text,fkString)) then FiltroFamilia := '(' + SELECTIONFILTER( 'ITENSPROPEDIDO.CODFAM', Ctrl('ECodFam').Text) + ') AND '; if not(SIsNull(Ctrl('ECodPro').Text,fkString)) then FiltroProduto := '(' + SELECTIONFILTER( 'ITENSPROPEDIDO.CODPRO', Ctrl('ECodPro').Text) + ') AND '; not(SIsNull(Ctrl('ECodCli').Text,fkString)) then FiltroCliente := '(' + SELECTIONFILTER('PEDIDO.CODCLI', Ctrl('ECodCli').Text) + ') AND '; not(SIsNull(Ctrl('ECodOri').Text,fkString)) then FiltroOrigem := '('+ SELECTIONFILTER('PRODUTO.CODORI', Ctrl('ECodOri').Text) + ') AND '; not(SIsNull(Ctrl('ECodAgp').Text,fkString)) then FiltroAgrupamentoProduto := '(' + SELECTIONFILTER( 'PRODUTO.CODAGC', Ctrl('ECodAgp').Text) + ') AND ';

if

if

if

case TipoProgramacao of 'O' : AplicaSelectOrigemPedidos; 'F' : AplicaSelectFamiliaPedidos; 'P' : AplicaSelectProdutoPedidos; 'A' : AplicaSelectAgrupamentoProdutoPedidos; end; end; 2 : // Tratamento Notas Fiscais de Entrada begin if not(SIsNull(Ctrl('ECodFam').Text,fkString)) then FiltroFamilia:='(' + SELECTIONFILTER('ITENSPRONFE.CODFAM', Ctrl('ECodFam').Text) + ') AND '; if not(SIsNull(Ctrl('ECodPro').Text,fkString)) then FiltroProduto:='(' + SELECTIONFILTER('ITENSPRONFE.CODPRO', Ctrl('ECodPro').Text) + ') AND '; not(SIsNull(Ctrl('ECodFor').Text,fkString)) then FiltroFornecedor := '(' + SELECTIONFILTER( 'NFENTRADA.CODFOR', Ctrl('ECodFor').Text) + ') AND '; not(SIsNull(Ctrl('ECodOri').Text,fkString)) then FiltroOrigem := '('+ SELECTIONFILTER('PRODUTO.CODORI', Ctrl('ECodOri').Text) + ') AND '; not(SIsNull(Ctrl('ECodAgp').Text,fkString)) then FiltroAgrupamentoProduto := '(' + SELECTIONFILTER( 'PRODUTO.CODAGC', Ctrl('ECodAgp').Text) + ') AND ';

if

if

if

case TipoProgramacao of 'O' : AplicaSelectOrigemNotasEntrada; 'F' : AplicaSelectFamiliaNotasEntrada; 'P' : AplicaSelectProdutoNotasEntrada; 'A' : AplicaSelectAgrupamentoProdutoNotasEntrada; end; end;

139
3 : // Tratamento Notas Fiscais de Sada begin if not(SIsNull(Ctrl('ECodFam').Text,fkString)) then FiltroFamilia:='(' + SELECTIONFILTER('ITENSPRONFS.CODFAM', Ctrl('ECodFam').Text) + ') AND '; if not(SIsNull(Ctrl('ECodPro').Text,fkString)) then FiltroProduto:='(' + SELECTIONFILTER('ITENSPRONFS.CODPRO', Ctrl('ECodPro').Text) + ') AND '; not(SIsNull(Ctrl('ECodCli').Text,fkString)) then FiltroCliente := '(' + SELECTIONFILTER('NFSAIDA.CODCLI', Ctrl('ECodCli').Text) + ') AND '; not(SIsNull(Ctrl('ECodOri').Text,fkString)) then FiltroOrigem := '('+ SELECTIONFILTER('PRODUTO.CODORI', Ctrl('ECodOri').Text) + ') AND '; not(SIsNull(Ctrl('ECodAgp').Text,fkString)) then FiltroAgrupamentoProduto := '(' + SELECTIONFILTER( 'PRODUTO.CODAGC', Ctrl('ECodAgp').Text) + ') AND ';

if

if

if

case TipoProgramacao of 'O' : AplicaSelectOrigemNotasSaida; 'F' : AplicaSelectFamiliaNotasSaida; 'P' : AplicaSelectProdutoNotasSaida; 'A' : AplicaSelectAgrupamentoProdutoNotasSaida; end; end; end; SQLAGR.Command := SQLAux; SQLAGR.Bidirectional := True; SQLAGR.FindParam('CODEMP').AsInteger := CEMPRESA.EMPRESA.CodEmp; SQLAGR.FindParam('CODFIL').AsInteger := CFILIAL.FILIAL.CodFil; if (EDatBasIni = 0) then SQLAGR.FindParam('EDATBASINI').AsDateTime:= SStrToDate('01/01/1901') else SQLAGR.FindParam('EDATBASINI').AsDateTime:= SDateToDateTime(EDatBasIni); if (EDatBasFim = 0) then SQLAGR.FindParam('EDATBASFIM').AsDateTime := SDatas.DataHoje else SQLAGR.FindParam('EDATBASFIM').AsDateTime:= SDateToDateTime(EDatBasFim); SQLAGR.Open; if (not SQLAGR.Eof) then begin FormBarraProgresso.Show; FormBarraProgresso.ProgressBar.Position := 0; case TipoProgramacao of 'O' : FormBarraProgresso.AtualizaBarra(TransStr('', 'Carregando Origens...'), '',False,taStrAll); 'F' : FormBarraProgresso. AtualizaBarra(TransStr('', 'Carregando Famlias...'), '',False,taStrAll); 'P' : FormBarraProgresso. AtualizaBarra(TransStr('', 'Carregando Produtos...'), '',False,taStrAll); 'A' : FormBarraProgresso. AtualizaBarra(TransStr('', 'Carregando Agrupamentos de Produtos...'), '',False,taStrAll); end; FormBarraProgresso.ProgressBar.Max := SQLAGR.Count; NroLinhasAgr := SQLAGR.Count; Conta := 0;

140
while not(SQLAGR.Eof) do begin QtdSugestoesDataFinal := 0; // Inicializa datas EDatBasIniAux := EDatBasIni; case ETipPer of 'S' : EDatBasFimAux := RetornaProximoSabadoDaSemana(EDatBasIni); 'Q' : EDatBasFimAux := RetornaDataFinalQuinzena(EDatBasIni); 'M' : EDatBasFimAux := RetornaDataUltimoDiaMes(EDatBasIni); end; if (EDatBasFimAux > EDatBasFim) then EDatBasFimAux := EDatBasFim;

Inc(Conta); FillChar(RegAgr, SizeOf(RegAgr), 0); RegAgr.SelAgr := 0; RegAgr.CodEmp := CEMPRESA.EMPRESA.CodEmp; case TipoProgramacao of 'O' : RegAgr.CodOri:= SQLAGR.FindField('CODORI').AsString; 'F' : RegAgr.CodFam:= SQLAGR.FindField('CODFAM').AsString; 'P' : RegAgr.CodPro:= SQLAGR.FindField('CODPRO').AsString; 'A' : RegAgr.CodAgp:= SQLAGR.FindField('CODAGC').AsString; end; RegAgr.QtdTot := sRound(SQLAGR.FindField('QUANTIDADE').AsFloat,5); RegAgr.PreMed := sRound(SQLAGR.FindField('PRECOMEDIO').AsFloat,5); RegAgr.VlrTot := sRound(SQLAGR.FindField('VALOR').AsFloat,5); RegAgr.SldTot := SRound(RegAgr.VlrTot + (RegAgr.VlrTot * (EPerCre / 100)),5); RegAgr.TipPer := Ctrl('LDesTip').Text + ' Agrupado'; if (EDatBasIni = 0) then RegAgr.IniPer := SStrToDate('01/01/1901') else RegAgr.IniPer := EDatBasIni; if (EDatBasFim = 0) then RegAgr.FimPer := SDatas.DataHoje else RegAgr.FimPer := EDatBasFim; LMemGridAgr.Add; // Alimenta filtro para ser utilizado no select detalhado FiltroFamilia := ''; FiltroProduto := ''; case Ctrl('RGHistorico').ItemIndex of // Ordens de Compra 0 : case TipoProgramacao of 'O' : FiltroOrigem := '(PRODUTO.CODORI = ''' + RegAgr.CodOri + ''') AND '; 'F' : FiltroFamilia:='(ITENSPROOC.CODFAM = ''' + RegAgr.CodFam + ''') AND '; 'P' : FiltroProduto:='(ITENSPROOC.CODPRO = ''' + RegAgr.CodPro + ''') AND '; 'A' : FiltroAgrupamentoProduto := '(PRODUTO.CODAGC = ''' + RegAgr.CodAgp + ''') AND '; end; 1 : case TipoProgramacao of // Pedidos 'O' : FiltroOrigem := '(PRODUTO.CODORI = ''' + RegAgr.CodOri + ''') AND '; 'F' : FiltroFamilia := '(ITENSPROPEDIDO.CODFAM = ''' + RegAgr.CodFam + ''') AND '; 'P' : FiltroProduto := '(ITENSPROPEDIDO.CODPRO = ''' + RegAgr.CodPro + ''') AND '; 'A' : FiltroAgrupamentoProduto :=

141
'(PRODUTO.CODAGC = ''' + RegAgr.CodAgp + ''') AND '; 2 : end; case TipoProgramacao of // Notas Fiscais de Entrada 'O' : FiltroOrigem := '(PRODUTO.CODORI = ''' + RegAgr.CodOri + ''') AND '; 'F' :FiltroFamilia:='(ITENSPRONFE.CODFAM = ''' + RegAgr.CodFam + ''') AND '; 'P' :FiltroProduto:='(ITENSPRONFE.CODPRO = ''' + RegAgr.CodPro + ''') AND '; 'A' : FiltroAgrupamentoProduto := '(PRODUTO.CODAGC = ''' + RegAgr.CodAgp + ''') AND '; end; case TipoProgramacao of // Notas Fiscais de Sada 'O' : FiltroOrigem := '(PRODUTO.CODORI = ''' + RegAgr.CodOri + ''') AND '; 'F' :FiltroFamilia:='(ITENSPRONFS.CODFAM = ''' + RegAgr.CodFam + ''') AND '; 'P' :FiltroProduto:='(ITENSPRONFS.CODPRO = ''' + RegAgr.CodPro + ''') AND '; 'A' : FiltroAgrupamentoProduto := '(PRODUTO.CODAGC = ''' + RegAgr.CodAgp + ''') AND '; end;

3 :

end; // Select Detalhado while (EDatBasFimAux <= EDatBasFim) and (QtdSugestoesDataFinal <= 1) do begin // necessrio aplicar novamente o select para // o detalhe, pois, os filtros foram alterados case Ctrl('RGHistorico').ItemIndex of 0 : case TipoProgramacao of // Ordens de Compra 'O' : AplicaSelectOrigemOrdensCompra; 'F' : AplicaSelectFamiliaOrdensCompra; 'P' : AplicaSelectProdutoOrdensCompra; 'A' : AplicaSelectAgrupamentoProdutoOrdensCompra; end; 1 : case TipoProgramacao of // Pedidos 'O' : AplicaSelectOrigemPedidos; 'F' : AplicaSelectFamiliaPedidos; 'P' : AplicaSelectProdutoPedidos; 'A' : AplicaSelectAgrupamentoProdutoPedidos; end; 2 : case TipoProgramacao of // Notas de Entrada 'O' : AplicaSelectOrigemNotasEntrada; 'F' : AplicaSelectFamiliaNotasEntrada; 'P' : AplicaSelectProdutoNotasEntrada; 'A' : AplicaSelectAgrupamentoProdutoNotasEntrada; end; 3 : case TipoProgramacao of // Notas de Sada 'O' : AplicaSelectOrigemNotasSaida; 'F' : AplicaSelectFamiliaNotasSaida; 'P' : AplicaSelectProdutoNotasSaida; 'A' : AplicaSelectAgrupamentoProdutoNotasSaida; end; end; SQLDET.Close; SQLDET.Command := SQLAux; SQLDET.Bidirectional := True; SQLDET.FindParam('CODEMP').AsInteger := CEMPRESA.EMPRESA.CodEmp;

142
SQLDET.FindParam('CODFIL').AsInteger := CFILIAL.FILIAL.CodFil; if (EDatBasIniAux = 0) then SQLDET.FindParam('EDATBASINI').AsDateTime := SStrToDate('01/01/1901') else SQLDET.FindParam('EDATBASINI').AsDateTime := SDateToDateTime(EDatBasIniAux); if (EDatBasIniAux = 0) then SQLDET.FindParam('EDATBASFIM').AsDateTime := SDatas.DataHoje else SQLDET.FindParam('EDATBASFIM').AsDateTime := SDateToDateTime(EDatBasFimAux); SQLDET.Open; LMemGridDet.DisconnectTable; try if not(SQLDET.Eof) then begin FillChar(RegDet, SizeOf(RegDet), 0); RegDet.CodEmp := CEMPRESA.EMPRESA.CodEmp; case TipoProgramacao of 'O' : RegDet.CodOri := SQLDET.FindField('CODORI').AsString; 'F' : RegDet.CodFam := SQLDET.FindField('CODFAM').AsString; 'P' : RegDet.CodPro := SQLDET.FindField('CODPRO').AsString; 'A' : RegDet.CodAgp := SQLDET.FindField('CODAGC').AsString; end; RegDet.QtdIte := sRound(SQLDET.FindField('QUANTIDADE').AsFloat,5); RegDet.PreMed := sRound(SQLDET.FindField('PRECOMEDIO').AsFloat,5); RegDet.VlrIte := sRound(SQLDET.FindField('VALOR').AsFloat,5); RegDet.SldIte := SRound(RegDet.VlrIte + (RegDet.VlrIte * (EPerCre / 100)),5); RegDet.TipPer := 'Quebra ' + Ctrl('LDesTip').Text; if (EDatBasIni = 0) then RegDet.IniPer := SStrToDate('01/01/1901') else RegDet.IniPer := EDatBasIniAux; if (EDatBasFim = 0) then RegDet.FimPer := SDatas.DataHoje else RegDet.FimPer := EDatBasFimAux; LMemGridDet.Add; end; finally LMemGridDet.First; LMemGridDet.ConnectTable; case ETipPer of 'S' : begin EDatBasIniAux := RetornaProximoDomingoDaSemana(EDatBasIniAux EDatBasFimAux := RetornaProximoSabadoDaSemana(EDatBasFimAux end; 'Q' : begin EDatBasIniAux := RetornaInicioProximaQuinzena(EDatBasIniAux EDatBasFimAux := RetornaFimProximaQuinzena(EDatBasFimAux end;

+ 1); + 1);

+ 1); + 1);

143
'M' : begin // Est posicionando no ltimo dia do ms, // ento s incrementa um para pegar // o prximo dia 1 EDatBasIniAux := EDatBasFimAux + 1; EDatBasFimAux := RetornaDataUltimoDiaMes(EDatBasIniAux); end; end; if (EDatBasFimAux > EDatBasFim) then begin EDatBasFimAux := EDatBasFim; inc(QtdSugestoesDataFinal); end;

end; end; SQLAGR.Next; case TipoProgramacao of 'O': FormBarraProgresso. AtualizaBarra(Format(TransStr('', 'Carregando Origens...%s de %s'), [IntToStr(Conta),IntToStr(NroLinhasAgr)]), '', True,taStrAll); 'F': FormBarraProgresso. AtualizaBarra(Format(TransStr('', 'Carregando Famlias...%s de %s'), [IntToStr(Conta),IntToStr(NroLinhasAgr)]), '', True,taStrAll); 'P': FormBarraProgresso. AtualizaBarra(Format(TransStr('', 'Carregando Produtos...%s de %s'), [IntToStr(Conta),IntToStr(NroLinhasAgr)]), '', True,taStrAll); 'A': FormBarraProgresso. AtualizaBarra(Format(TransStr('', 'Carregando Agrupamentos 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; // Incio mtodo Mostrar begin if (EDatBasIni = 0) and (EDatBasFim = 0) then begin Ctrl('EDatBasIni').SetFocus; if (ETipPer in ['S','Q']) then SMessage(smRaise,TransStr('', ' necessrio informar data ' + 'inicial e data final!', True)) else SMessage(smRaise,TransStr('', ' necessrio informar ms ' + 'inicial e ms final!', True)) end; Ctrl('GridAgr').Enabled := False; Ctrl('GridDet').Enabled := False; Ctrl('Processar').Enabled := False; Ctrl('Marcar').Enabled := False; Ctrl('Desmarcar').Enabled := False;

144
CarregaDocumentos; // Tratamentos finais if (not LMemGridAgr.First) then SMessage(smReturn,TransStr('', 'Nenhum documento 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 Cdigo fonte do mtodo Mostrar da classe Frm_BasePlanejamento

S-ar putea să vă placă și