• Nenhum resultado encontrado

Protótipo de sistema de gestão de livrarias : implementação dos módulos de consignação, pedidos e vendas

N/A
N/A
Protected

Academic year: 2021

Share "Protótipo de sistema de gestão de livrarias : implementação dos módulos de consignação, pedidos e vendas"

Copied!
71
0
0

Texto

(1)

UNIJUÍ - UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL

DETEC - DEPARTAMENTO DE TECNOLOGIA

PROTÓTIPO DE SISTEMA DE GESTÃO DE LIVRARIAS: IMPLEMENTAÇÃO DOS MÓDULOS DE CONSIGNAÇÃO,

PEDIDOS E VENDAS

CRISTIAN RANIELI ABREU SULIMAN

IJUÍ (RS) 2010

(2)

CRISTIAN RANIELI ABREU SULIMAN

PROTÓTIPO DE SISTEMA DE GESTÃO DE LIVRARIAS:

IMPLEMENTAÇÃO DOS MÓDULOS CONSIGNAÇÃO, PEDIDOS E

VENDAS

Monografia final apresentada ao curso de Informática: Sistemas de Informações, Departamento de Tecnologia – DETEC, da Universidade Regional do Noroeste do Estado do Rio Grande do Sul – UNIJUI, requisito para obtenção do certificado de Bacharel em Informática: Sistemas de Informações.

Orientador: Prof. Dr. Sandro Sawicki

IJUÍ (RS) 2010

(3)

"O sucesso nasce do querer, da determinação e persistência em se chegar a um objetivo. Mesmo não atingindo o alvo, quem busca e vence obstáculos, no mínimo fará coisas admiráveis."

(4)

DEDICATÓRIA

Dedico este trabalho aos meus pais, Altivo e Denise, ao meu irmão Matheus e a minha noiva Ana Paula. Pessoas que amo muito e que sempre me apoiaram e me incentivaram para que fosse possível a realização de mais um sonho.

(5)

AGRADECIMENTOS

A Deus por ter me acompanhado ao longo dessa jornada e por ter me abençoado na realização deste trabalho.

Ao meu pai e a minha mãe pela educação, pelos ensinamentos e principalmente pelo amor, carinho, incentivo e apoio incondicional em todos os momentos. Sem eles eu não teria chegado até aqui.

Ao meu irmão Matheus pelo apoio e carinho.

À minha noiva pelo amor, carinho, incentivo, apoio, por acreditar no meu sonho e por me dar forças em todos os momentos que precisei.

Ao meu orientador Sandro Sawicki pela dedicação atribuída ao meu trabalho, pelo profissionalismo e incentivo na realização deste trabalho.

Ao professor Romário Lopes Alcântara por ter aceitado o convite para fazer parte da banca na defesa do meu trabalho de conclusão de curso.

A todos os professores do curso de Informática: Sistemas de Informações pelo conhecimento e aprendizado adquirido nesse período.

A UNIJUI e a todos os funcionários pelo ambiente de estudos disponibilizado. A todos os colegas e amigos pela convivência e amizade nesse período.

(6)

RESUMO

O presente trabalho aborda o estudo de caso para desenvolver um sistema de

informações com características específicas para gerenciar uma livraria. O mercado

de livros vem sofrendo grandes mudanças, muitas se devem ao avanço da

tecnologia que permite aos leitores comprar livros pela internet ou até mesmo ler

livros de forma digital em um computador portátil desenvolvido especialmente para este fim. Isso faz com que o leitor sinta-se atraído pela tecnologia e deixe de ir a uma livraria comprar livros para praticar a leitura tradicional. Para atrair os leitores para dentro das livrarias novamente é necessário oferecer um serviço de qualidade e garantir bom atendimento. Fazer com que os livros mais vendidos cheguem até o público leitor com a mesma velocidade que a internet oferece, mas para isso acontecer as livrarias precisam estar preparadas. Portanto o objetivo deste trabalho é realizar uma análise dos processos de uma livraria, ver como eles funcionam para aperfeiçoá-los com a ajuda de um sistema de informações.

(7)

LISTA DE ABREVIATURAS

TI Tecnologia da Informação PHP Hypertext Preprocessor MVC Model, View e Controller

UML Linguagem de Modelagem Unificada CSS Cascading Style Sheets

OMG Object Management Group HTML HyperText Markup Language W3C World Wide Web Consortium

SGBD Sistema Gerenciador de Banco de Dados SQL Structured Query Language

(8)

LISTA DE TABELAS

Tabela 1 - Projeto lógico da tabela: modulo ... 29

Tabela 2 - Projeto lógico da tabela: grupo_has_modulo ... 29

Tabela 3 - Projeto lógico da tabela: grupo ... 29

Tabela 4 - Projeto lógico da tabela: usuário ... 30

Tabela 5 - Projeto lógico da tabela: estado ... 30

Tabela 6 - Projeto lógico da tabela: cidade ... 30

Tabela 7 - Projeto lógico da tabela: pessoa ... 30

Tabela 8 - Projeto lógico da tabela: item_consignacao ... 31

Tabela 9 - Projeto lógico da tabela: consignação ... 31

Tabela 10 - Projeto lógico da tabela: acerto ... 32

Tabela 11 - Projeto lógico da tabela: item_acerto ... 32

Tabela 12 - Projeto lógico da tabela: banco ... 32

Tabela 13 - Projeto lógico da tabela: convenio ... 32

Tabela 14 - Projeto lógico da tabela: cliente ... 33

Tabela 15 - Projeto lógico da tabela: forma_pagto... 33

Tabela 16 - Projeto lógico da tabela: fornecedor ... 33

Tabela 17 - Projeto lógico da tabela: grupo_fiscal ... 33

Tabela 18 - Projeto lógico da tabela: livro... 34

(9)

Tabela 20 - Projeto lógico da tabela: autor ... 35

Tabela 21 - Projeto lógico da tabela: assunto ... 35

Tabela 22 - Projeto lógico da tabela: natureza_operacao ... 35

Tabela 23 - Projeto lógico da tabela: transportadora ... 35

Tabela 24 - Projeto lógico da tabela: item_venda ... 36

Tabela 25 - Projeto lógico da tabela: venda ... 36

Tabela 26 - Projeto lógico da tabela: caixa ... 36

Tabela 27 - Projeto lógico da tabela: contas_pagar ... 37

Tabela 28 - Projeto lógico da tabela: contas_receber ... 37

Tabela 29 - Projeto lógico da tabela: reserva ... 38

Tabela 30 - Projeto lógico da tabela: pedido ... 38

Tabela 31 - Projeto lógico da tabela: distribuicao ... 38

(10)

LISTA DE FIGURAS

Figura 1 - Diagrama de caso de uso: Cadastros ... 39

Figura 2 - Diagrama de caso de uso: Emitir pedido para cliente ... 40

Figura 3 - Diagrama de caso de uso: Relatórios ... 40

Figura 4 - Diagrama de classe: Pedido cliente ... 41

Figura 5 - Fluxo de dados da arquitetura de camadas MVC ... 45

Figura 6 - Tela inicial do sistema ... 50

Figura 7 - Tela esqueceu a senha? ... 51

Figura 8 - Tela inicial após acesso ao sistema ... 51

Figura 9 - Tela cadastro de usuários ... 52

Figura 10 - Tela de busca de livros ... 57

Figura 11 - Tela com detalhes do livro ... 58

Figura 12 - Tela de busca de clientes ... 61

Figura 13 - Tela de Cadastro de clientes ... 62

Figura 14 - Tela para cadastrar o pedido do cliente ... 63

Figura 15 - Cadastro de distribuição de livros ... 63

Figura 16 - Tela para selecionar o fornecedor ... 64

Figura 17 - Tela para gerar pedido ... 66

Figura 18 - Tela para registrar o recebimento do livro ... 67

(11)

LISTA DE CODIFICAÇÕES

Codificação 1 - Função do controller para cadastrar um usuário ... 55

Codificação 2 - Função do controller para cadastrar novo usuário ... 55

Codificação 3 - Função criada no model para inserir os dados da pessoa cadastrada ... 56

Codificação 4 - Função do controller para exibir um livro ... 58

Codificação 5 - Função do model livro para buscar dos dados do livro no banco de dados... 59

Codificação 6 - View index do livro para exibir os dados do livro selecionado ... 60

(12)

SUMÁRIO 1 INTRODUÇÃO ... 13 1.1 Justificativa ... 14 1.2 Objetivo Geral ... 15 1.3 Objetivos Específicos ... 15 1.4 Plano de Apresentação ... 16 2 CONTEXTUALIZAÇÃO DO TEMA ... 17 2.1 A Empresa ... 17 2.2 O Mercado Livreiro ... 17 2.3 Descrevendo o Problema ... 19

2.4 Proposta para a solução ... 19

3.1 Análise de Requisitos ... 20 3.2 Módulos do Sistema ... 25 3.3 Processo de Software ... 25 3.4 Cenário Principal ... 25 3.4.1 Cenários Primários ... 26 3.4.2 Cenários Secundários ... 27

3.5 Identificação dos Possíveis Casos de Uso... 27

3.6 O Banco de Dados ... 28

3.6.1 Projeto Lógico das Tabelas ... 29

3.7 Diagramas de Caso de Uso ... 39

3.7.1 Diagrama de Caso de Uso, Cadastros ... 39

3.7.2 Diagrama de Caso de Uso, pedido cliente (principal) ... 40

3.7.3 Diagrama de Caso de Uso, relatórios ... 40

3.7.4 Diagrama de Classe, pedido cliente (principal) ... 41

4 IMPLEMENTAÇÃO ... 42

4.1 Tecnologias usadas ... 42

4.1.1 Servidor Apache ... 42

4.1.2 MySQL ... 42

4.1.3 MySQL Workbench Community Edition ... 43

4.1.4 UML ... 43 4.1.5 PHP ... 43 4.1.6 Codeigniter (MVC) ... 44 4.1.7 CSS ... 45 4.1.8 HTML ... 46 4.1.9 JavaScript ... 46

(13)

4.1.10 jQuery ... 47 4.2 Módulos implementados ... 47 4.2.1 Pedido ... 47 4.2.2 Consignação ... 48 4.2.3 Venda... 49 4.3 Protótipo ... 50 4.3.1 Acesso ao Sistema ... 50

4.3.1.1 Esqueceu sua senha? ... 50

4.3.1.2 Tela inicial após o acesso ao sistema ... 51

4.3.1.3 Cadastro de usuários ... 52

4.3.2 Operação fazer pedido para um cliente ... 56

4.3.2.1 Busca de livros ... 56

4.3.2.2 Verificação do Estoque do Livro ... 57

4.3.2.3 Busca de clientes ... 60

4.3.2.4 Cadastrar cliente ... 61

4.3.2.5 Registrando um Novo Pedido ... 62

4.3.2.6 Selecionar um Fornecedor para o Pedido ... 63

4.3.2.7 Gerar Pedido para Fornecedor ... 66

4.3.2.8 Registrando o Recebimento de um Pedido ... 66

4.3.2.9 Pedido finalizado ... 67

5 CONCLUSÃO ... 68

5.1.2 Trabalhos Futuros ... 69

(14)

1 INTRODUÇÃO

Nos dias de hoje é difícil gerenciar ou administrar uma empresa sem sistemas de informação. Para que as empresas possam entrar no mercado em condições de ganhar espaço é necessário uma gestão equilibrada e bem estruturada para que com isso possa transmitir segurança e confiabilidade para seus clientes.

Uma organização empresarial tem como principal função gerar produtos ou serviços com o intuito de obter lucro. Assim, um objetivo extremamente importante para sua existência é promover melhorias no seu processo de produção dos produtos, bens ou serviços, a fim de maximizar lucros e minimizar despesas e perdas. Conforme Batista (2006). Para alcançar uma gestão de sucesso os administradores podem contar com os profissionais da tecnologia da informação. São esses que vão analisar a estrutura e os processos da empresa para buscar alternativas para automatizar esses processos e dar subsídio aos gestores desta empresa para obter sucesso na administração e alcançar o objetivo de produzir mais e gastar menos.

O fato de conhecer o negócio é essencial no desenvolvimento de um sistema de informação. Através desse fato despertou-se a vontade de desenvolver um sistema para uma empresa da qual se conhece o negócio, a estrutura e os processos. A empresa para a qual será desenvolvido o software é do ramo livreiro, ou seja, o seu principal produto é o livro. Surge então o desafio, desenvolver um sistema que possa atender a todas as necessidades específicas de uma livraria, desde a saída do livro da editora até chegar às livrarias e enfim estar ao alcance do leitor.

Cada vez mais distribuidoras de livros, editoras e livrarias dependem de sistemas específicos e eficientes. O processo que procede após a escrita do livro

(15)

pelo autor deve ocorrer de forma rápida e bem estruturada para que o livro chegue ao leitor o mais breve possível. Além disso, a internet está cada vez mais preocupando os admiradores da boa leitura, do hábito saudável de ler. Com a evolução desse meio de comunicação as pessoas estão perdendo o hábito de freqüentar livrarias e bibliotecas em busca do prazer de ler. Porém estão buscando comprar livros via internet, pela praticidade, clareza de informações sobre o livro e pelo processo de compra que vem se tornando cada dia mais seguro e barato.

O público leitor está se dirigindo para as compras on-line em busca de novidades e agilidade no processo de compra. Para atender esse público as livrarias precisam usufruir de um sistema semelhante ao e-commerce. Um sistema que dê mais velocidade ao processo de venda e encomenda de livros fazendo com que o cliente que optar por comprar seus livros em uma livraria possa ter mais benefícios do que ele teria na compra através da internet.

Apesar de conhecer o negócio uma nova análise sempre terá algo novo para contribuir para o desenvolvimento da modelagem do sistema, pois é na modelagem que se identifica o que a empresa precisa e no que o sistema vai ajudar a empresa. É a modelagem que vai garantir que o sistema a ser desenvolvido vai atender as necessidades da empresa depois de implementado. Como o nome já diz modelagem é baseado em modelos, após a análise é interessante demonstrar os resultados de forma gráfica com modelos que vão dar uma idéia mais concreta de como o sistema irá funcionar, o que vai fazer e como vai fazer. A modelagem não só servirá para entender o sistema e visualizar como ele deverá ser ou se comportar, mas também seus modelos serão os guias na implementação deste projeto e também servirá como guia nos trabalhos futuros.

O objetivo deste trabalho é realizar uma análise dos processos e tramites da empresa. Analisar como isso funciona para automatizar e aperfeiçoar esses processos com a ajuda de um sistema de informação. E como conseqüência disso melhor atender os clientes

1.1 Justificativa

A experiência de mais de cinco anos em diferentes departamentos de uma livraria foram decisivos para constatar a necessidade de inovar para se manter no mercado que está cada vez mais competitivo. Agregado a isso, juntou-se o desafio

(16)

de criar um sistema de informação que realmente ajude a empresa a alcançar seus objetivos.

A necessidade de buscar novos clientes faz com que as empresas busquem novas opções para atraí-los, precisam muitas vezes inovar, melhorando o ambiente, o atendimento, os produtos ou serviços, ou seja, força as empresas a buscar algo novo para preencher pontos vazios no mercado, porém para encontrar esses pontos vazios e as opções para preenche-los a empresa precisa estar bem estruturada e organizada, precisa também melhorar em qualidade de informação.

Esse pode ser um bom diferencial para começar a inovar para ganhar destaque frente aos concorrentes e alcançar o sucesso.

O fato de conhecer o “negócio” e a motivação de saber que é possível fazer algo útil e funcional para a empresa justifica a escolha desse tema.

1.2 Objetivo Geral

O objetivo deste trabalho é modelar um sistema de informação específico para livrarias e implementar os principais módulos.

A ênfase se dará em desenvolver todo o sistema pra rodar na internet, seja um servidor local ou fora da empresa. A idéia é ter um sistema acessível de qualquer lugar, apenas tendo um computador com acesso à internet.

Como o sistema vai rodar através de um browser também será dada ênfase no layout das páginas do sistema para tenha um aspecto leve e simples, proporcionando ao usuário um conforto visual ao utilizar o sistema.

1.3 Objetivos Específicos

Os objetivos específicos do trabalho são apresentados nos seguintes tópicos: o Criar um sistema que permite aos administradores acessá-lo através da internet

o Estudo dos processos da empresa o Levantamento de requisitos

o Definir as tecnologias a serem usadas

o Fazer a modelagem do sistema, identificando os possíveis casos de usos

(17)

o Projetar e criar o banco de dados

o Desenvolver o sistema, implementando os principais módulos, sendo que os demais serão implementados em trabalhos futuros

o Apresentar este trabalho de forma clara e objetiva, com o uso de exemplos para facilitar a compreensão de todos

1.4 Plano de Apresentação

O trabalho está dividido em cinco capítulos, incluindo a introdução.

O segundo capítulo apresenta a contextualização do tema, onde é descrita a empresa e o ramo de atividade da mesma. A descrição do problema e a proposta de solução para o problema

O terceiro capítulo foca na modelagem que é a base do sistema e serve como guia para o restante do projeto. Levantamento de requisitos, definição dos módulos do sistema, cenários, projeto do banco de dados, casos de uso e diagrama de classe, serão os assuntos desse capítulo.

O quarto capítulo trata da implementação. As tecnologias que foram usadas, os módulos que foram implementados e a utilização do sistema com apresentação de telas do sistema. Como estudo de caso, descreve-se a principal operação do sistema que é a realização de um pedido para um cliente.

O quinto capítulo, por sua vez, trata da conclusão do trabalho, considerações finais e trabalhos futuros.

(18)

2 CONTEXTUALIZAÇÃO DO TEMA

Este capítulo aborda a empresa que foi alvo do estudo de caso. Um breve histórico da empresa é apresentado e, posteriormente, é abordado o problema e suas necessidades.

2.1 A Empresa

Há 15 anos no mercado a Livraria Nova Geração vem incentivando a cultura e levando até seus clientes a oportunidade da leitura e do conhecimento. Fundada em julho de 1995, na época localizava-se na Rua do Comércio, 1279, espaço modesto no prédio onde funcionou até o ano de 2005. Posteriormente passou a contar com um novo espaço em frente ao antigo endereço, onde esta hoje atendendo seus clientes e amigos.

A Livraria Nova Geração faz também um trabalho em parceria com escolas e municípios realizando eventos culturais e feiras do livro em toda a região. Tem parcerias com editoras e instituições de ensino que contribuem para levar até as escolas da região autores conhecidos no cenário nacional.

A Livraria Nova geração é um estímulo ao ramo livreiro, ampliando, construindo e fazendo com que o conhecimento, a cultura e o lazer estejam sempre à disposição dos que buscam por isso.

2.2 O Mercado Livreiro

Assim como o comportamento das pessoas vem mudando de acordo com a evolução da tecnologia o mercado dos negócios também sofreu mudanças.

(19)

Vive-se atualmente uma revolução no relacionamento entre pessoas e principalmente entre empresas e pessoas. Cada vez mais os clientes estão exigindo um melhor atendimento e um bom relacionamento pós-venda por parte da empresa. Isso faz com que a empresa além de oferecer simplesmente o produto, precisará oferecer o melhor produto com o melhor atendimento.

Se tratando de uma livraria o fato de oferecer o melhor produto para seu cliente significa ter na prateleira os livros mais vendidos em grande quantidade. Mas para manter um estoque de qualidade a empresa tem um custo relativamente alto, porém as editoras e distribuidores oferecem uma solução. É o que chamamos de consignação. São livros selecionados que as editoras enviam para as livrarias, geralmente os lançamentos e os mais vendidos conforme o contrato firmado entre ambas as partes. O diferencial da consignação comparada com uma compra normal, é que na consignação a livraria paga apenas pelos itens que ela vendeu no mês. Com isso a editora vende seus livros e a livraria consegue ter um bom estoque com um custo viável e totalmente controlado.

O preço dos livros é outro detalhe importante no mercado de livreiro. Os livros têm preço tabelado, saem da editora já com o preço que deve ser vendido. Preço esse que acompanha a nota fiscal juntamente com o desconto praticado por cada editora. Isso faz com que a empresa que compra em grande quantidade e aquelas mais próximas dos grandes centros onde estão localizadas as maiores editoras tenham certa vantagem frente às livrarias do interior.

E por fim o que vem revolucionando o mercado livreiro é a venda de livros através da internet pelas grandes empresas do e-commerce. Essas empresas usam o livro para atrair mais consumidores para suas lojas virtuais, para isso aplicam um super desconto sobre o preço de capa do livro e acabam seduzindo o cliente que compra contente pelo bom desconto que está ganhando. Porém essas grandes empresas acabando lucrando muito pouco com a venda de livros, pois usam o livro como isca para atrais os clientes. Mas com isso as livrarias que tem o livro como seu principal e às vezes único produto deixam de vender e acabam tendo dificuldades para se manter neste competitivo mercado.

Portanto o mercado de livros é um tanto complicado. Mas com um bom sistema de informações dando apoio para o gerenciamento de uma livraria seja mais fácil enfrentar as dificuldades que o mercado apresenta.

(20)

2.3 Descrevendo o Problema

Atualmente na Livraria Nova Geração existe um software de automação comercial adaptado para trabalhar com livros. Porém este software não dá apoio e nem automatiza os principais processos dentro da livraria, que são: pedidos e consignações.

O controle das consignações e acertos mensais é feito manualmente com a utilização de planilhas do Excel. O responsável pela consignação faz uma contagem no estoque de todos os livros da determinada consignação e compara com a quantidade do mês anterior para verificar se houve venda para informar a editora.

Assim como as consignações, os pedidos são todos registrados em uma planilha do Excel e ali são gerenciados conforme a demanda. O comprador que é quem gerencia os pedidos conta apenas com o auxilio de catálogos com as listas de editoras que cada fornecedor trabalha. Os descontos de cada livro de acordo com a editora são inseridos de forma manual a cada pedido realizado.

2.4 Proposta para a solução

Projetar um sistema que automatize e dê apoio ao gerenciamento dos principais processos de uma livraria. Assim como também atender a todas as necessidades para proporcionar um gerenciamento de qualidade para a empresa, tanto em problemas globais de uma empresa como nos específicos do ramo.

A solução é fazer um sistema que integre os processos simples com os complexos, assim como os processos de rotina de uma empresa com os específicos de uma livraria. Isso facilitará o trabalho do gerente ao tomar suas decisões, pois o sistema deve dar total apoio na tomada de decisões sejam elas referente a uma compra ou a uma venda.

Com uma solução integrada será possível evitar que procedimentos rotineiros e importantes para a gerência sejam feitos em um ambiente separado do sistema de informação da empresa. Proporcionando um controle de alto nível para os administradores.

(21)

3 Modelagem do sistema

Este capítulo descreve a modelagem do sistema. Aborda a análise de requisitos, os cenários, os casos de usos, o banco de dados e por fim apresenta os diagramas de casos de usos e diagrama de classes.

3.1 Análise de Requisitos

A análise dos requisitos está apresentada na forma de tópicos conforme segue:

• A livraria tem como principal produto de venda o livro. Trabalha com todas as editoras do mercado e com livros de todas as áreas. Além dos livros em estoque disponível para venda a pronta entrega o cliente tem a opção de encomendar o livro que deseja adquirir.

• A empresa tem por padrão uma estrutura dividida em quatro setores para melhor administrar seus processos, são eles, pedido, consignação, venda e financeiro. Para que de forma organizada possa dividir as tarefas e responsabilidades dos seus colaboradores.

• O cliente vem até a loja pede o livro que deseja. Geralmente o cliente já vem com títulos ou autores específicos que facilitam na procura. Primeiramente é feito uma consulta para ver se tem no estoque da loja, caso não tenha e seja do interesse do cliente é feito a pesquisa de preço diretamente na editora através da internet e a encomenda do livro para o mesmo. Essa encomenda requer um controle, logo o pedido do cliente recebe um número para facilitar no controle, sendo que são requisitadas algumas informações do cliente, como nome completo,

(22)

telefone e dados do livro, como título, autor, editora e o valor pesquisado e informado ao cliente no ato da encomenda.

• Os pedidos dos clientes são organizados em uma planilha seguindo a ordem numérica pré-estabelecida e a data da encomenda. Na mesma são colocadas somente as informações do livro que é disponibilizada para o comprador para que este faça a seleção dos distribuidores de acordo com a editora e as condições de venda da mesma. Sendo que após a implementação do sistema, este deverá pré selecionar os distribuidores possíveis para cada pedido, fazendo isso de acordo com as editoras que cada fornecedor distribui.

• Os pedidos para fornecedores são feitos toda a semana por um responsável com contato direto com os mesmos, em média uma vez na semana ou dependendo do período até mais de uma vez em casos de muita urgência do cliente ou devido à grande demanda que geralmente ocorre no período de volta as aulas. Essa função exige muitos contatos, a livraria trabalha com diversos fornecedores, a maioria localiza-se em Porto Alegre ou São Paulo.

• Um fornecedor distribui diversas editoras, e uma editora pode ser distribuída por diversos distribuidores, porém o que pode variar de um para outro é o desconto, o prazo de entrega e de pagamento e o frete, se CIF (pago pelo fornecedor) ou FOB (pago pelo comprador). Dentre essas variações o desconto é fixo ele não depende de nenhuma negociação e nem de requisitos para ser concedido. Já os demais itens dependem da negociação do comprador com o fornecedor de acordo com a quantidade que esta sendo pedida, a urgência solicitada e até mesmo a data.

• Assim que são recebidos os pedidos, que chegam por meio de uma transportadora, os funcionários usando as informações deixadas pelos clientes, entram em contato para assim comunicá-los do recebimento dos itens do pedido realizado.

• Todos os clientes da livraria devem possuir cadastro contendo os seguintes dados, CPF, RG, Nome completo, Endereço completo, Telefones, E-mail e a data do cadastro.

• A livraria tem por costume parabenizar os clientes em seus aniversários, portanto a data de nascimento deve ser registrada no cadastro.

(23)

• De acordo com a legislação em vigor o produto livro é isento de impostos, porém essa informação deve estar disponível no cadastro do livro.

• Quando é recebida uma mercadoria vinda de algum fornecedor o controlador do estoque recebe a mercadoria, coloca os preços de venda nos livros e cadastra estes livros no atual sistema, neste cadastro deve constar o código de barras do livro e também o ISBN, além do título, autor, editora, assunto, preço e a edição juntamente com o ano da mesma.

• Todas as notas de compras que chegam são cadastradas no sistema atual, para que o gerente financeiro possa controlar os pagamentos. Consta nesse cadastro a data de vencimento de cada parcela, o nome do fornecedor, o numero da nota e o valor da parcela, quando a mesma nota tem mais de uma parcela é agregado mais dois dígitos ao numero da nota fiscal, por exemplo, se o numero da nota é 122034 e têm duas parcelas, elas são lançadas com os seguintes números 122034/1 e 122034/2. Lembrado que no momento de lançar a nota deve ser especificado se tem juros ou descontos caso o boleto seja pago em algum dia que não corresponde ao do vencimento.

• No momento que o cliente faz a compra ele pode optar pela condição de pagamento que melhor lhe agradar, a livraria oferece as opções de pagamento com dinheiro, cartões de crédito, cheque e outros convênios aceitos pela livraria. Em alguns casos permite o crediário da própria empresa, necessitando aprovação de crédito. Então fica a cargo do cliente usar uma das opções ou mais de uma, por exemplo, o cliente pode pagar uma parcela à vista com dinheiro e outra parcela a prazo com cheque ou cartão de crédito.

• Os prazos de pagamento estipulados pela empresa variam muito de cliente para cliente, pois a livraria trabalha com licitações, vendas diretas em escolas e prefeituras e ainda faz feiras e promoções que muitas vezes exigem um prazo especial.

• São aceitas encomendas dos clientes por telefone e também por e-mail, o cliente não tem a necessidade de ir até a loja e nem de pagar o valor do livro antes de recebê-lo. Lembrando que a livraria tem por tradição fazer pedidos de livros.

• A livraria além de comprar os livros de seus fornecedores também tem a opção de pedir os livros em consignação, neste caso tem dois tipos, a

(24)

consignação temporária e a consignação permanente. A temporária é uma consignação solicitada para feiras e eventos, nesse tipo de consignação a livraria não recebe reposição dos livros e também é feito acerto uma única vez, no momento da devolução, quando é feita uma nota fiscal encaminhando os livros não vendidos de volta ao distribuidor. Já a consignação permanente além de poder ser levada a feiras e eventos ela permanece na loja, com direito a reposição dos livros vendidos, pois são feitos acertos a cada 30 dias, quando é enviada uma relação ao distribuidor constando a quantidade e os livros vendidos no período, após receber essa relação o distribuidor envia uma nota de venda destes livros. Lembrando que alguns distribuidores têm uma política de devolução anual, ou seja, no final de cada ano é necessária uma devolução total dos livros, então a consignação é enviada de volta à livraria, juntamente com as novidades e a reposição dos livros vendidos no início do próximo ano.

• Cada identificador, seja, ele o código para o pedido ou o código de barras criado para os livros que não o tiverem deve ser único.

• O cadastro de uma pessoa deve ser único no sistema, seja, ela pessoa física ou jurídica, cliente ou fornecedor. Por exemplo, se a “Maria” for cliente da livraria e ao mesmo tempo a “Maria” é usuária do sistema, pois ela trabalha na livraria e é responsável por um departamento “X”, logo o cadastro da “Maria” deve ser único, ou seja, ela não terá um cadastro como cliente e outro como usuário do sistema, ela deve ter um cadastro único como pessoa.

• O sistema deve dar subsídios para gerente financeiro de modo com que ele possa criar seu próprio plano de contas, ou seja, que ele possa adicionar categorias e subcategorias de acordo com a necessidade da empresa e com o seu conhecimento.

• No final do dia o responsável pelo caixa precisa informar ao financeiro o total vendido, o total vendido em cada forma de pagamento, o total vendido por vendedor e também o valor da abertura do caixa.

• Cada vendedor recebe comissão pelas vendas da loja, é um percentual do total das vendas da loja dividido entre os vendedores da loja. O pagamento e a verificação desse valor são feitos pelo setor financeiro.

• No cadastro dos livros deve ter a opção do desconto dado pelo fornecedor na ultima compra, logo o preço de custo deve ser preenchido

(25)

automaticamente. Também deve ser exibida uma média do desconto do livro no seu cadastro, pois um mesmo livro que comprado mais de uma vez pode ser comprado com descontos diferentes.

• Toda e qualquer processo realizado no sistema deve ser vinculado a uma pessoa responsável, de preferência que a pessoa responsável seja a que participou diretamente do processo.

• Todo o usuário, lembrando que somente o proprietário e os funcionários podem ser usuários do sistema, deve fazer parte de um grupo de usuários que tem permissões de acesso ao sistema de acordo com a sua função, por exemplo, se o usuário for vendedor ele tem acesso somente a pesquisas e ao processo de venda, assim como o comprador tem acesso somente aos pedidos, diferentes do administrador da empresa que tem acesso a todas as funções da empresa, ou seja, é o cara que tem permissão para executar todos os processos na empresa.

• Por padrão devem ser definidos os seguintes grupos de usuários: Administrador, Comprador, Vendedor, Contador. Todos os usuários devem ser encaixados em um desses grupos de acordo com o seu cargo na empresa.

• O comprador deve emitir uma ordem de compra para cada fornecedor, contendo apenas os dados do livro encomendado, ou seja, jamais podem sair da empresa os dados do cliente. Esta ordem de compra é enviada via e-mail. A empresa tem como política reduzir o máximo o uso de papel, portanto os relatórios do sistema devem ser de fácil visualização no mesmo sem que seja necessário imprimir o relatório para ter acesso ao seu conteúdo.

• O responsável pelo financeiro da empresa tem acesso aos valores que entram na empresa diariamente e principalmente aos que estão por entrar, para que seja fácil programar os pagamentos que também são mostrados no contas a pagar.

• A empresa precisa do máximo possível de informações, para isso necessita da possibilidade de gerar relatórios para saber como estão o andamento dos lucros, pagamentos, clientes, fornecedores, transação de valores e também de produtos.

• O financeiro tem o cadastro dos bancos com que a livraria trabalha e tem conta ativa para facilitar algumas das transações financeiras e também auxiliar nos pagamentos.

(26)

3.2 Módulos do Sistema

Conforme os requisitos a Livraria tem seus processos e sua estrutura dividida em setores. Baseado nisso vamos dividir o sistema em módulos da seguinte forma:

• Módulo Pedido – Este módulo agrupará todas as movimentações referentes aos pedidos que o cliente solicitar na livraria. Envolve todos os processos que ocorrem desde o momento que este pedido é registrado até ele ser concluído.

• Módulo Consignação – Neste módulo se dará todo o gerenciamento de consignações vinda de editoras e fornecedores.

• Módulo Venda – O módulo de venda, como o nome já diz será onde serão realizadas as vendas dos livros para os clientes. Neste módulo terá o caixa com o registro de todas as vendas do dia.

• Módulo Financeiro – No módulo financeiro é onde serão gerenciadas todas as receitas, despesas e investimentos da empresa. Subdividido em contas a pagar e contas a receber é neste módulo que será concentrado o maior número de relatórios gerencias da livraria.

3.3 Processo de Software

O processo de software a ser utilizado para nortear o sistema será o modelo ou ciclo evolutivo, este que tem a finalidade de controlar versões, proporcionando rapidez no desenvolvimento.

3.4 Cenário Principal

O cliente vai até a livraria solicita o livro desejado. Caso não tenha disponível o livro na loja é pesquisado o preço diretamente na editora e posteriormente caso seja de interesse do cliente é feito o pedido do livro, o vendedor faz o cadastro do cliente, o cadastro do livro para então fazer o pedido.

O comprador seleciona o fornecedor que melhor atende a necessidade e emite a ordem de compra para este fornecedor, depois do prazo, estabelecido pelo fornecedor e pela transportadora selecionada, os livros são entregues na livraria. O responsável pelo estoque faz a conferência dos livros e coloca as etiquetas de preço nos livros, conforme consta na nota fiscal do fornecedor, após isso é o comprador

(27)

registra o recebimento do pedido no sistema. Feito os procedimentos até aqui com sucesso, os livros ficam disponíveis para que o vendedor responsável possa entrar em contato via telefone com os clientes dos respectivos pedidos e avisá-los que suas encomendas estão disponíveis para retirada. Feito a retirada do pedido pelo cliente o pedido é finalizado pelo sistema. No momento em que é registrado o recebimento dos livros no sistema o mesmo mostra os pedidos em aberto referente aquele livro e permite selecionar o pedido que será atendido com aquele exemplar, caso haja mais de uma encomenda para o mesmo livro. Permite também a opção de enviar um e-mail para o cliente informando que sua encomenda já pode ser retirada na livraria, mesmo que o vendedor avisa via telefone esta opção permanece disponível para ser usada.

Por fim o cliente retira seu livro, ocorre então um processo de venda. O vendedor seleciona o cliente, seleciona o livro a ser comprado, neste caso o livro pedido. Quando o vendedor selecionar um livro que tem pedido que esteja marcado como recebido o sistema vai solicitar ao vendedor que selecione qual o pedido que está sendo atendido e irá marca esse pedido como entregue, o que caracteriza a conclusão do processo de pedido de livro.

Para finalizar volta-se à venda. O vendedor já selecionou o cliente e os itens da venda. Agora deve oferecer ao cliente as opções de pagamento e selecionar a solicitada pelo mesmo e enfim encerrar a venda para que seja emitida a nota fiscal que faz parte do módulo financeiro.

3.4.1 Cenários Primários

- O cliente se identifica. - O cliente solicita um livro.

- O vendedor pesquisa o livro no estoque. - O vendedor pesquisa na editora.

- O cliente é checado (se já tem cadastro na livraria). - O cliente solicita a encomenda do livro.

- O vendedor busca e seleciona o livro desejado. - O vendedor faz a encomenda.

- O comprador emite uma ordem de compra para o fornecedor correspondente.

(28)

- A livraria recebe o livro do fornecedor após o prazo previsto. - O vendedor avisa o cliente da disponibilidade do livro.

- O cliente solicita a retirada do livro. - O vendedor faz a venda.

- O cliente escolha a condição de pagamento. - O vendedor finaliza a venda.

- O sistema encerra o pedido como entregue e concluí a operação com sucesso.

3.4.2 Cenários Secundários

- O livro não consta no estoque.

Ofereça ao vendedor a opção de encomendar. - O cliente não tem cadastro.

Cadastrar novo cliente.

- O livro solicitado não consta cadastrado na livraria. Cadastrar novo livro.

- O livro encomendado está em falta no fornecedor.

Informar o cliente e confirmar se o mesmo aguarda o novo prazo. - O vendedor não consegue contato com o cliente.

Tentar mais tarde e usar outro meio de comunicação se possível.

3.5 Identificação dos Possíveis Casos de Uso

1- Cadastro de usuários 2- Cadastro de clientes 3- Cadastro de editoras 4- Cadastro de fornecedores

5- Cadastro de distribuição de livros 6- Cadastro de transportadoras 7- Cadastro de convênios 8- Cadastro de grupos fiscais 9- Cadastro de assuntos

(29)

11- Cadastro de situação 12- Cadastro de autores 13- Cadastro de livros 14- Cadastro de bancos

15- Cadastro natureza de operação 16- Cadastro de contas a receber 17- Cadastro de contas a pagar

18- Emitir pedido de livro para cliente (principal)

19- Emitir ordem de compra dos pedidos para fornecedor 20- Registrar recebimento do livro pedido

21- Registrar nova situação do pedido caso o livro não seja enviado pelo fornecedor

22- Solicitar consignação para fornecedor 23- Iniciar novo caixa

24- Efetuar venda para o cliente 25- Encerrar caixa

26- Resumo do caixa do dia 27- Resumo mensal de vendas 28- Relatório de vendas por vendedor

29- Relatório de vendas por forma de pagamento 30- Relatório mensal de compras

31- Relatório do percentual de compras atendidas por fornecedor 32- Relatório do percentual de pedidos atendidos por período 33- Relatório do percentual de pedidos por editora

34- Listas as editoras distribuídas por fornecedor, com o desconto 35- Relatório de contas a receber por dia, mês e ano

36- Relatório de contas a pagar por dia, mês e ano

37- Relatório de notas fiscais de compra por ano mês a mês 38- Relatório de notas fiscais de venda por ano mês a mês

3.6 O Banco de Dados

Esta etapa destina-se ao projeto do banco de dados. Aqui são definidas as tabelas e os possíveis campos de cada tabela, representando em forma de um

(30)

projeto lógico de tabelas para mostrar como os dados serão armazenados e gerenciados. O nome do banco de dados deverá ser padrão, para evitar eventuais perdas de dados acidentais por ambigüidades de nomes, ou coisas do gênero, por isso o nome escolhido será BDNova_Geracao.

Neste projeto, um dos limitantes é o custo para a empresa, como não poderia de ser, utilizará um banco de dados gratuito, ou seja, um software livre, gratuito. O sistema de gerenciamento de banco de dados será o MySQL 5. Este sistema de gerenciamento de banco de dados é ótimo para aplicações que demandam rapidez e aplicações baseadas na web, possui segurança suficiente para o tipo de projeto escolhido, e possui vasta documentação facilmente encontrada na internet.

3.6.1 Projeto Lógico das Tabelas

Tabela 1 - Projeto lógico da tabela: modulo Modulo

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

nome varchar 255

descricao text

status char 1 0 inativo, 1 ativo

Tabela 2 - Projeto lógico da tabela: grupo_has_modulo grupo_has_modulo

Chave Atributo Tipo de dado Tamanho Observações

@ grupo_id int 11 Chave Estrangeira

@ moduloid int 11 Chave Estrangeira

Tabela 3 - Projeto lógico da tabela: grupo grupo

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

grupo varchar 255

descricao text

(31)

Tabela 4 - Projeto lógico da tabela: usuário usuario

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

senha varchar 255

last_login datetime 2010-01-01 00:00:00

@ grupo_id int 11 Chave Estrangeira

@ pessoa_id int 11 Chave Estrangeira

@ usuario_id int 11 Chave Estrangeira

Tabela 5 - Projeto lógico da tabela: estado estado

Chave Atributo Tipo de dado Tamanho Observações/Mascara

@ id int 11 Chave Primária

nome varchar 255

sigla char 2 XX

Tabela 6 - Projeto lógico da tabela: cidade cidade

Chave Atributo Tipo de dado Tamanho Observações/Mascara

@ id int 11 Chave Primária

nome varchar 255

@ estado_id varchar 60 Chave Estrangeira

Tabela 7 - Projeto lógico da tabela: pessoa pessoa

Chave Atributo Tipo de dado Tamanho Observações/Mascara

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

doc1 varchar 255 CPF ou CNPJ

doc2 varchar 255

nome varchar 255 Nome ou Nome Fantasia

razao_social varchar 255

data date Nascimento ou Fundação

endereco varchar 255

nro varchar 255 9999

(32)

bairro varchar 255 fone1 varchar 255 99 9999 9999 fone2 varchar 255 99 9999 9999 fone3 varchar 255 99 9999 9999 email varchar 255 site varchar 255 obs text

tipo char 1 1 juridica, 2 fisica

status char 1 0 inativo, 1 ativo

@ cidade_id int 11 Chave Estrangeira

Tabela 8 - Projeto lógico da tabela: item_consignacao item_consignacao

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

quantidade int 6

desconto decimal 4,2

valor decimal 12,2

valor_total decimal 12,2

@ livro_id int 11 Chave Estrangeira

@ consignacao_id int 11 Chave Estrangeira

@ usuario_id int 11 Chave Estrangeira

Tabela 9 - Projeto lógico da tabela: consignação consignacao

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

nf varchar 255

valor decimal 12,2

status char 1 0 inativo, 1 ativo

@ fornecedor_id int 11 Chave Estrangeira

(33)

Tabela 10 - Projeto lógico da tabela: acerto acerto

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

valor decimal 12,2

@ consignacao_id int 11 Chave Estrangeira

@ usuario_id int 11 Chave Estrangeira

Tabela 11 - Projeto lógico da tabela: item_acerto item_acerto

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

quantidade int 11

valor decimal 12,2

valor_total decimal 12,2

@ acerto_id int 11 Chave Estrangeira

@ livro_id int 11 Chave Estrangeira

Tabela 12 - Projeto lógico da tabela: banco banco

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

agencia varchar 255

conta varchar 255

gerente varchar 255

fone varchar 255 99 9999 9999

@ usuario_id int 11 Chave Estrangeira

Tabela 13 - Projeto lógico da tabela: convenio convenio

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

nome varchar 255

fone varchar 255

status char 1 0 inativo, 1 ativo

(34)

Tabela 14 - Projeto lógico da tabela: cliente cliente

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

@ pessoa_id int 11 Chave Estrangeira

@ usuario_id int 11 Chave Estrangeira

Tabela 15 - Projeto lógico da tabela: forma_pagto forma_pagto

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

nome varchar 255

periodo int 11 intervalo de dias

parcela_a_vista boleano 1 Sim ou Não

nro_parcelas int 11

status char 1 0 inativo, 1 ativo

@ usuario_id int 11 Chave Estrangeira

Tabela 16 - Projeto lógico da tabela: fornecedor fornecedor

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

@ pessoa_id int 11 Chave Estrangeira

@ usuario_id int 11 Chave Estrangeira

Tabela 17 - Projeto lógico da tabela: grupo_fiscal grupo_fiscal

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

nome varchar 255

valor decimal 12,2

status char 1 0 inativo, 1 ativo

(35)

Tabela 18 - Projeto lógico da tabela: livro livro

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

codigo_barra varchar 255 somente números

isbn varchar 255 somente números

titulo varchar 255

edicao varchar 255 somente números

ano_edicao varchar 255 somente números

valor_venda decimal 12,2 desconto decimal 6,2 media_desconto decimal 6,2 valor_compra decimal 12,2 estoque int 11 estoque_minimo int 11 estoque_maximo int 11 sinopse text

status char 1 0 inativo, 1 ativo

@ usuario_id int 11 Chave Estrangeira

@ autor_id int 11 Chave Estrangeira

@ editora_id int 11 Chave Estrangeira

@ assunto_id int 11 Chave Estrangeira

@ grupo_fiscal int 11 Chave Estrangeira

Tabela 19 - Projeto lógico da tabela: editora editora

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

@ pessoa_id int 11 Chave Estrangeira

(36)

Tabela 20 - Projeto lógico da tabela: autor autor

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

nome varchar 255

sobrenome_meio

sobrenome_ultimo

status char 1 0 inativo, 1 ativo

@ usuario_id int 11 Chave Estrangeira

Tabela 21 - Projeto lógico da tabela: assunto assunto

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

nome varchar 255

status char 1 0 inativo, 1 ativo

@ usuario_id int 11 Chave Estrangeira

Tabela 22 - Projeto lógico da tabela: natureza_operacao natureza_operacao

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

codigo int 11 CFOP

nome varchar 255

@ usuario_id int 11 Chave Estrangeira

Tabela 23 - Projeto lógico da tabela: transportadora transportadora

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

@ pessoa_id int 11 Chave Estrangeira

(37)

Tabela 24 - Projeto lógico da tabela: item_venda item_venda

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

quantidade int 11

valor decimal 12,2

valor_total decimal 12,2

@ livro_id int 11 Chave Estrangeira

@ venda_id int 11 Chave Estrangeira

Tabela 25 - Projeto lógico da tabela: venda venda

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00 cf int 11 999.999 nf int 11 999.999 valor decimal 12,2 desconto decimal 6,2 % valor_total decimal 12,2

@ cliente_id int 11 Chave Estrangeira

@ forma_pagto_id int 11 Chave Estrangeira

@ usuario_id int 11 Chave Estrangeira

Tabela 26 - Projeto lógico da tabela: caixa caixa

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00 abertura decimal 12,2 dinheiro decimal 12,2 cheque_avista decimal 12,2 cheque_aprazo decimal 12,2 cartao_debito decimal 12,2 cartao_credito decimal 12,2 total decimal 12,2

(38)

Tabela 27 - Projeto lógico da tabela: contas_pagar contas_pagar

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00 emissao date 2010-01-01 vencimento date 2010-01-01 recebimento date 2010-01-01 documento date 2010-01-01 valor decimal 12,2 juros decimal 6,2 % desconto decimal 6,2 % valor_total decimal 12,2

@ forma_pagto int 11 Chave Estrangeira

@ cliente_id int 11 Chave Estrangeira

@ usuario_id int 11 Chave Estrangeira

Tabela 28 - Projeto lógico da tabela: contas_receber contas_receber

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00 emissao date 2010-01-01 vencimento date 2010-01-01 recebimento date 2010-01-01 documento date 2010-01-01 valor decimal 12,2 juros decimal 6,2 desconto decimal 6,2 valor_total decimal 12,2

@ forma_pagto int 11 Chave Estrangeira

@ fornecedor_id int 11 Chave Estrangeira

(39)

Tabela 29 - Projeto lógico da tabela: reserva reserva

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

dias_reserva char 3 Número de dias

@ cliente_id int 11 Chave Estrangeira

@ livro_id int 11 Chave Estrangeira

@ usuario_id int 11 Chave Estrangeira

Tabela 30 - Projeto lógico da tabela: pedido pedido

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00 qtd int 11 previsao_cliente date 2010-01-01 previsao_fornecedor date 2010-01-01 recebimento date 2010-01-01 entrega date 2010-01-01 valor decimal 12,2

status char 1 0 inativo, 1 ativo

@ cliente_id int 11 Chave Estrangeira

@ livro_id int 11 Chave Estrangeira

@ distribuicao_id int 11 Chave Estrangeira

@ situacao_id int 11 Chave Estrangeira

@ usuario_id int 11 Chave Estrangeira

Tabela 31 - Projeto lógico da tabela: distribuicao distribuicao

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

data_registro datetime 2010-01-01 00:00:00

desconto decimal 6,2

@ fornecedor_id int 11 Chave Estrangeira

@ editora_id int 11 Chave Estrangeira

status char 1 0 inativo, 1 ativo

(40)

Tabela 32 - Projeto lógico da tabela: distribuicao image

Chave Atributo Tipo de dado Tamanho Observações

@ id int 11 Chave Primária

thumb varchar 255

normal varchar 255

grande varchar 255

descricao text

tipo char 1

@ livro_id int 11 Chave Estrangeira

3.7 Diagramas de Caso de Uso

Este item apresenta os diagramas dos principais casos de usos.

3.7.1 Diagrama de Caso de Uso, Cadastros

(41)

3.7.2 Diagrama de Caso de Uso, pedido cliente (principal)

Figura 2 - Diagrama de caso de uso: Emitir pedido para cliente 3.7.3 Diagrama de Caso de Uso, relatórios

(42)

3.7.4 Diagrama de Classe, pedido cliente (principal)

(43)

4 IMPLEMENTAÇÃO

Este capítulo apresenta o protótipo do sistema proposto. As tecnologias envolvidas neste trabalho, os módulos que implementados e algumas das funcionalidades do sistema.

4.1 Tecnologias usadas

Este item apresenta as tecnologias usadas no desenvolvimento deste trabalho.

4.1.1 Servidor Apache

O Apache é um servidor web, de código aberto, mantido pela Apache Software Foundation, está na versão 2.2.x, disponível para diversos sistemas operacionais, entre eles Windows e Linux.

O Apache é considerado sem dúvida alguma o servidor web mais amplamente difundido na internet [Gabardo 2010].

4.1.2 MySQL

O MySQL é um sistema de gerenciamento de banco de dados (SGBD) baseado em comandos SQL, é um software livre, mantido pela Oracle Corporation. É um dos bancos de dados mais usados no mundo, está na versão 5.1, versão que foi utilizada neste trabalho.

(44)

Grandes empresas como Google, Yahoo e Wikipédia utilizam MySQL o que comprova a sua boa performance.

4.1.3 MySQL Workbench Community Edition

O MySQL Workbench Community Edition é a versão gratuita e de código aberto do MySQL Worknbench que é uma ferramenta visual desenvolvida pela equipe do MySQL que permite projetar, modelar e gerenciar um banco de dados.

Está ferramenta foi usada no trabalho para projetar o banco de dados. Foi criado o modelo de entidade e relacionamentos que permite uma melhor visualização do projeto.

O MySQL Workbench facilita a manutenção do banco de dados, pois permite sincronizar com a base de dados já existente.

4.1.4 UML

A Linguagem de Modelagem Unificada (UML) é a linguagem visual padrão para especificar, construir e documentar os artefatos dos sistemas [OMG].

A UML foi proposta 1995 por Rumbaugh, Booch e Jacobson e em 1997 foi aprovada como padrão pela OMG (Object Management Group), consórcio internacional que aprova padrões na área de orientação a objetos.

Qualquer sistema com características que por mais específicas que possam ser é passível de documentação. A UML permite para o desenvolvedor documentar o seu sistema através da criação de modelos que vão proporcionar uma visualização do produto final através de diagramas padronizados. Seria como criar o sistema antes de começar a programar. Isso permite corrigir erros no projeto que iriam ocorrer durante a codificação.

4.1.5 PHP

PHP (Hypertext Preprocessor) é uma linguagem de programação interpretada, muito usada no desenvolvimento de websites e sistemas para web, atualmente está na versão 5.2.5, utilizada neste trabalho.

(45)

O PHP vem sofrendo muitas melhorias no suporte a orientação a objetos e com isso vem ganhando ainda mais espaço como linguagem de programação para sistemas mais complexos, soluções mais robustas e aplicações personalizadas de bussiness intelligence por exemplo. E não só para o desenvolvimento de websites.

4.1.6 Codeigniter (MVC)

O CodeIgniter é um framework para PHP que segue o padrão MVC (model, view, controller) que atende perfeitamente as necessidades da orientação a objetos. Foi criado por Rick Ellis que PE fundador da empresa Ellislab a qual é responsável pelo desenvolvimento do framework.

O padrão MVC é composto por três camadas, model, view e controller. Cada camada irá executar funções específicas dentro da aplicação e o núcleo do framework será responsável pela comunicação das camadas.

A camada model (modelo) é a camada que irá interagir com o bando de dados. Todas as operações com o banco de dados são feitas por esta camada. Na camada controller (controlador) é definida uma classe que será acessada por uma URL. Essa camada é a regra de negócio, nela são feitas as validações de formulários, redirecionamentos e toda a programação para controlar a aplicação. Já a camada view (visão) é a interface de apresentação do conteúdo ao usuário, tudo o que vai ser visível ao usuário deve estar nessa camada.

A figura 5 mostra a comunicação entre as camadas e como as requisições são tratadas.

(46)

Figura 5 - Fluxo de dados da arquitetura de camadas MVC

É um dos mais bem documentados frameworks, caracterizado pela simplicidade e por ter uma curva de aprendizado menor que os demais frameworks disponíveis atualmente o CodeIgniter está na versão 1.7.2 que foi usada neste trabalho. Rico em bibliotecas para tarefas de uso comum, oferece uma interface simples e estrutura lógica para acessar as bibliotecas permitindo que o desenvolvedor se concentre no desenvolvimento do seu projeto.

O CodeIgniter é um framework versátil e leve que possibilita a construção de aplicações e sistemas sob o paradigma da orientação a objetos e seguindo o design pattern MVC [Gabardo 2010].

4.1.7 CSS

CSS (Cascading Style Sheets) é uma linguagem de estilo com o objetivo de definir a apresentação de documentos escritos em uma linguagem de marcação, como o HTML, por exemplo.

Com CSS é possível separar o formato de exibição e o conteúdo de um mesmo documento. Com isso ao invés de criar a formatação dentro do documento é possível criar essa formatação em folhas de estilos e apenas criar um link dentro do documento HTML para chamar a folha de estilo com a formatação desejada. Isso

(47)

facilita muito para o desenvolvedor, principalmente na manutenção do sistema, pois alterando apenas um arquivo pode formatar a exibição de vários documentos do sistema.

A CSS é desenvolvida pela W3C (World Wide Web Consortium), consórcio internacional responsável pela criação de padrões web. Atualmente a versão CSS3 está em processo de testes, porém muitos desenvolvedores já estão usando muitos recursos da nova versão, sendo que a maioria dos browsers já tem suporte a grande parte dos recursos dessa nova versão.

4.1.8 HTML

HTML (HyperText Markup Language) é uma linguagem de marcação utilizada para a criação de páginas na web. A linguagem HTML é interpretada pelo browser que mostra o resultado final ao usuário, sem necessidade de compilação.

Assim como a CSS, HTML é também desenvolvida pela W3C. Está com a sua versão HTML5 em fase de aprovação a última versão estável é o HTML4.

O HTML lhe oferece uma maneira de dizer ao browser como é a estrutura de sua página. O que é estrutura? Como você já viu, é uma maneira de marcar seu texto para que o browser saiba o que é título, que texto aparece em um parágrafo, que texto é um subtítulo e assim por diante. Uma vez que o browser tenha poucas informações sobre estrutura, poderá exibir sua página de uma maneira mais significativa e legível [Freeman 2008].

4.1.9 JavaScript

JavaScript é uma linguagem de programação inventada por Brendan Eich, surgiu em 1995. É uma linguagem interpretada, ou seja, não precisa ser compilada.

A linguagem foi criada para adicionar interatividade com as páginas HTML. Na maioria dos casos JavaScript é embutida diretamente no documento HTML.

O JavaScript move a chave que transforma uma página Web em uma experiência interativa. Ele capacita coisas que podem ouvir as suas necessidades, processar sua entrada e atender aos seus desejos mais profundos. Tudo bem, talvez seja um esforço, mas o JavaScript pode transformar uma página Web em um

(48)

aplicativo interativo, em oposição a uma página estática e sem vida, e isso é bom [Morrison 2008].

4.1.10 jQuery

JQuery é uma biblioteca JavaScript que permite ao desenvolvedor escrever JavaScript de maneira rápida e simples. Ajuda na incompatibilidade com os browsers, permite maior interação com HTML com maior custo benefício, ou seja, usando jQuery o programador escreve menos e faz mais.

A biblioteca jQuery foi criada por John Resig e disponibilizada como software livre e de código aberto. O projeto jQuery pertence a Software Freedom Conservancy, organização sem fins lucrativos que ajuda a promover, melhorar, desenvolver e a defender projetos de software livre. jQuery é utilizado por grandes empresas como Google, Dell e Mozilla.

jQuery é uma poderosa biblioteca JavaScript criada para simplificar a criação de efeitos visuais e de interatividade em web sites. Desenvolvedores especialistas em JavaScript, ao conhecerem as maravilhas de que a biblioteca é capaz, com certeza vão se perguntar: "Por que não pensei nisso antes?" Iniciantes, com noções rudimentares de JavaScript, experimentarão uma curva de aprendizado inimaginável para aqueles experientes com a linguagem [Silva 2010].

4.2 Módulos implementados

Este tópico apresenta uma breve descrição de cada um dos módulos implementados no protótipo, destacando algumas funcionalidade de cada um deles.

4.2.1 Pedido

O módulo Pedido é o principal módulo do sistema, pois é responsável pelo gerenciamento dos pedidos de clientes e pelos pedidos destinados ao estoque da livraria.

Todas as encomendas feitas por clientes estarão registradas nesse módulo, assim como também a conclusão de cada pedido, de acordo com a situação. Isso permite gerar um relatório do percentual de pedidos atendidos por cliente, por

(49)

fornecedor ou por período o que gera informações para que o comprador juntamente com o gerente possa analisar cada caso e com ajuda do sistema escolher o melhor fornecedor para cada pedido em situações diferentes.

Assim como em todas as telas de cadastro na tela inicial do módulo Pedido há dicas para que o usuário do sistema possa utilizar o sistema de forma correta. Realizando todas as operações com qualidade e agilidade, contribuindo para o bom funcionamento do sistema.

Conforme pré-definido somente os usuários do grupo Administrador e do grupo Comprador tem acesso total a este módulo. Os usuários do grupo Vendedor têm acesso somente ao cadastro de um novo pedido.

No momento em que o pedido é criado ele não tem nenhum fornecedor selecionado e a sua situação é determinada como pedido em aberto. Todo o pedido que estiver em aberto deve ter um fornecedor selecionado. Com base na editora do livro correspondente ao pedido o sistema exibe todas as opções de fornecedores que podem ser selecionados para determinado pedido, destacando o desconto que cada fornecedor oferece.

Quando o sistema identifica um ou mais pedidos que estejam em aberto e com fornecedor selecionado ele oferece ao comprador a opção de gerar um pedido a um desses fornecedores. Assim que este pedido for gerado itens correspondentes a este fornecedor passam da situação de pedido em aberto para a situação ‘pedido’. Essa situação significa que o pedido foi solicitado ao seu fornecedor e o comprador deve aguardar uma posição do fornecedor para registrar o recebimento deste pedido ou encerrá-lo informando uma nova situação, por exemplo, em falta ou esgotado no fornecedor.

O módulo Pedido exibe sempre os últimos pedidos registrados, com opção de busca, o formulário para cadastrar um novo pedido e se o usuário tiver acesso aos pedidos para fornecedor será exibida a opção para gerar um novo pedido para determinado fornecedor.

4.2.2 Consignação

O módulo consignação é responsável pelo gerenciamento das consignações adquiridas junto as editoras. Uma consignação pode ser de dois tipos: temporária ou permanente. Permanente é quando ela permanece um longo período na livraria e o

(50)

acerto é feito a cada mês. E temporária quando ela é solicitada para um determinado evento e deve ser devolvida no momento do primeiro acerto, ou seja, a consignação temporária é encerrada no momento que é feito o primeiro acerto.

Acerto é a lista dos livros que correspondem à consignação e que tenham sido vendidos no período correspondente ao acerto. Este período é compreendido do intervalo de tempo entre um acerto e outro, o primeiro acerto deve ser feito 30 dias após a data de registro da consignação.

Neste módulo são exibidas as últimas consignações em uma tabela onde é possível consultar todas as consignações registradas no sistema, também é possível ordenar os registros de acordo com o fornecedor, a situação ou a data. Logo abaixo da tabela de gerenciamento aparece o formulário para cadastrar nova consignação ao lado das dicas referentes a esse módulo.

Através da tabela de gerenciamento o usuário tem a opção de visualizar uma consignação. O sistema exibe os dados como, data, editora, itens consignados, situação e os acertos já efetuados para está consignação. Além disso, disponibiliza a opção de gerar novo acerto e visualizar os dados dos acertos efetuados até o momento.

4.2.3 Venda

O módulo venda concentra todas as operações referentes à venda de livros aos clientes. Porém no protótipo criado este módulo será implementado parcialmente, pois tudo o que está relacionado à nota fiscal, contas a pagar e contas a receber faz parte do módulo Financeiro que não será implementado neste protótipo.

Neste módulo será possível criar um novo caixa, que tem um vendedor responsável e um valor de abertura que deve ser inserido no momento da criação do caixa ao inicio de cada dia. No final do dia esse caixa é encerrado e com isso o sistema gera o resumo do caixa, que é um relatório com a soma das vendas do dia.

No momento da venda o vendedor inicialmente seleciona o cliente, os livros que ele deseja comprar e informa ao cliente o valor total de sua compra para que o cliente possa escolher a forma de pagamento que deseja utilizar, após a selecionada a forma de pagamento a venda pode ser encerrada.

Referências

Documentos relacionados

Figura 4.10 – Fluxo de CO2 para as áreas de footprint de três torres localizadas em unidades experimentais submetidas a diferentes tipos de manejo pastoril Rotativo,

Neste tipo de situações, os valores da propriedade cuisine da classe Restaurant deixam de ser apenas “valores” sem semântica a apresentar (possivelmente) numa caixa

Conforme Muller (2000), a necessidade de maior agilidade na difusão do conhecimento fez com que o periódico viesse à tona. Os periódicos vêm ganhando cada vez mais espaço

Esse pessimismo parte do princípio segundo o qual não adianta entender a mecânica quântica (Feynman, na verdade, segue Bohr), bastaria instrumentalizá-la. Na última citação de

[r]

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

insights into the effects of small obstacles on riverine habitat and fish community structure of two Iberian streams with different levels of impact from the

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on