COMO INSTALAR, CONFIGURAR E USAR O SISTEMA ------------------------------------------- Olá, a instalação desta aplicação é muito simples e ocorrerá sem qualquer problema desde que você fique atento aos detalhes de configuração da aplicação em si e da criação da base de dados MySQL e suas tabelas correspondentes. O primeiro passo é configurar o nome da aplicação, sua URL e caminho no servidor. Isso é feito no arquivo config.php, na raiz da aplicação. Se estiver em dúvida sobre como obter o caminho da sua hospedagem, basta consultar o seu suporte. Feitas as devidas alterações no arquivo config.php, basta prosseguir com a criação da base de dados. COMO CRIAR A BASE DE DADOS E AS TABELAS MYSQL ------------------------------------------- 1) Criando a base de dados -------------------------------------- O primeiro passo para a configuração do banco de dados é a criação da base de dados MySQL. Se você ainda não domina essa tarefa, consulte alguns tutoriais no Google ou o suporte da sua hospedagem. O nome da base de dados pode ser algo como "estoque", "controle_estoque", etc. Após sua criação, tenha a certeza de que seu nome reflete as configurações de acesso ao banco de dados no arquivo config.php. 2) Criando a tabela de usuários do sistema ------------------------------------------- Depois de criada a base de dados, o passo seguinte é a criação da tabela 'usuarios'. Veja o seu código SQL abaixo: CREATE TABLE usuarios ( id int(11) NOT NULL AUTO_INCREMENT, usuario varchar(15) NOT NULL, senha varchar(20) NOT NULL, nome varchar(150) NOT NULL, email varchar(50) NOT NULL, telefone varchar(15) NOT NULL, nivel int(11) NOT NULL, info mediumtext NOT NULL, foto varchar(20) NOT NULL, ultimo_acesso datetime NOT NULL DEFAULT current_timestamp(), data_cadastro datetime DEFAULT NULL, bloqueado varchar(1) NOT NULL DEFAULT 'N', usuario_cadastro int(11) NOT NULL, PRIMARY KEY (id), UNIQUE KEY usuario_unico (usuario), FOREIGN KEY (usuario_cadastro) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Depois de criada a tabela de usuários, vamos inserir o usuário admin. Veja: INSERT INTO usuarios (id, usuario, senha, nome, email, telefone, nivel, info, foto, ultimo_acesso, data_cadastro, bloqueado, usuario_cadastro) VALUES (1, 'admin', 'admin', 'Osmar J. Silva', 'osmar@arquivodecodigos.com.br', '62 98553-6711 ', 1, 'Administrador do site', '', NOW(), NOW(), 'N', 1); 3) Criando a tabela de categorias de produtos ------------------------------------------- Agora vamos criar a tabela de categorias de produtos. Veja o seu código SQL: CREATE TABLE categorias ( id int(11) NOT NULL AUTO_INCREMENT, nome varchar(250) NOT NULL, descricao mediumtext NOT NULL, data_cadastro datetime NOT NULL, usuario int(11) NOT NULL, PRIMARY KEY (id), UNIQUE KEY nome_unico (nome), FOREIGN KEY (usuario) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 4) Criando a tabela de produtos ------------------------------------------- Parece que estamos indo bem, né? Agora que já temos a tabela de categorias, já podemos criar a tabela de produtos. Fique atento(a) às chaves primárias e chaves estrangeiras, pois são elas que fazem as ligações dos dados entre as tabelas e evitam que dados fiquem orfãos no sistema. Eis o código SQL para a tabela de produtos: CREATE TABLE produtos ( id int(11) NOT NULL AUTO_INCREMENT, referencia varchar(20) NOT NULL, nome varchar(200) NOT NULL, descricao text NOT NULL, categoria int(11) NOT NULL, preco_compra double NOT NULL, preco_venda double NOT NULL, estoque int(11) NOT NULL, estoque_min int(11) NOT NULL, unidade varchar(10) NOT NULL, foto varchar(50) NOT NULL, data_cadastro datetime NOT NULL, usuario_cadastro int(11) NOT NULL, PRIMARY KEY (id), UNIQUE KEY referencia_unica (referencia), FOREIGN KEY (usuario_cadastro) REFERENCES usuarios(id), FOREIGN KEY (categoria) REFERENCES categorias(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 5) Criando a tabela de fornecedores ------------------------------------------- Segue agora o código SQL para a tabela de fornecedores: CREATE TABLE fornecedores ( id int(11) NOT NULL AUTO_INCREMENT, fantasia varchar(120) NOT NULL, razao_social varchar(120) NOT NULL, cpf_cnpj varchar(20) NOT NULL, email varchar(50) NOT NULL, telefone varchar(15) NOT NULL, endereco varchar(200) NOT NULL, cidade varchar(50) NOT NULL, estado varchar(2) NOT NULL, info mediumtext NOT NULL, foto varchar(20) NOT NULL, data_cadastro datetime DEFAULT NULL, usuario_cadastro int(11) NOT NULL, PRIMARY KEY (id), UNIQUE KEY fantasia_unica (fantasia), FOREIGN KEY (usuario_cadastro) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 6) Criando a tabela de entradas ------------------------------------------- Agora que já temos as categorias de produtos, os fornecedores e os produtos, já podemos inserir produtos no estoque. Para isso temos que criar a tabela entradas, que representa cada entrada no estoque. Veja o código SQL: CREATE TABLE entradas ( id int(11) NOT NULL AUTO_INCREMENT, num_nota varchar(20) NOT NULL, fornecedor int(11) NOT NULL, valor_nota double NOT NULL, desconto double NOT NULL, acrescimo double NOT NULL, quant_produtos int(11) NOT NULL, quant_itens int(11) NOT NULL, data_emissao date NOT NULL, data_entrada date NOT NULL, info mediumtext NOT NULL, data_cadastro datetime DEFAULT NULL, usuario_cadastro int(11) NOT NULL, PRIMARY KEY (id), UNIQUE KEY num_nota_f_unico (num_nota, fornecedor), FOREIGN KEY (fornecedor) REFERENCES fornecedores(id), FOREIGN KEY (usuario_cadastro) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 8) Criando a tabela de itens de entradas ------------------------------------------- Calma, estamos quase finalizando. Para cada entrada no estoque, temos que inserir os itens da entrada, ou seja, os produtos que fazem parte da entrada no estoque. Veja o seu código SQL: CREATE TABLE itens_entrada ( id int(11) NOT NULL AUTO_INCREMENT, id_produto int(11) NOT NULL, id_entrada int(11) NOT NULL, valor_unitario double NOT NULL, quantidade int(11) NOT NULL, data_cadastro datetime NOT NULL, id_usuario int(11) NOT NULL, PRIMARY KEY (id), UNIQUE KEY itens_entradas_unico (id_produto, id_entrada), FOREIGN KEY (id_entrada) REFERENCES entradas(id), FOREIGN KEY (id_produto) REFERENCES produtos(id), FOREIGN KEY (id_usuario) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 9) Criando a tabela de saídas ------------------------------------------- Assim como há entradas no estoque, há também saídas. Para isso, vamos criar nossa próxima tabela. Veja o código SQL: CREATE TABLE saidas ( id int(11) NOT NULL AUTO_INCREMENT, num_doc varchar(20) NOT NULL, responsavel varchar(150) NOT NULL, valor double NOT NULL, desconto double NOT NULL, acrescimo double NOT NULL, quant_produtos int(11) NOT NULL, quant_itens int(11) NOT NULL, data_emissao date NOT NULL, data_saida date NOT NULL, info mediumtext NOT NULL, data_cadastro datetime DEFAULT NULL, usuario_cadastro int(11) NOT NULL, PRIMARY KEY (id), UNIQUE KEY num_doc_unico (num_doc), FOREIGN KEY (usuario_cadastro) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 10) Criando a tabela de itens de saída ------------------------------------------- Agora já estamos quase finalizando mesmo. Para cada saída no estoque, nós temos que inserir os itens da saída, ou seja, os produtos que fazem parte da retirada no estoque. Veja o seu código SQL: CREATE TABLE itens_saida ( id int(11) NOT NULL AUTO_INCREMENT, id_produto int(11) NOT NULL, id_saida int(11) NOT NULL, valor_unitario double NOT NULL, quantidade int(11) NOT NULL, data_cadastro datetime NOT NULL, id_usuario int(11) NOT NULL, PRIMARY KEY (id), UNIQUE KEY itens_saidas_unico (id_produto, id_saida), FOREIGN KEY (id_saida) REFERENCES saidas(id), FOREIGN KEY (id_produto) REFERENCES produtos(id), FOREIGN KEY (id_usuario) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 11) Criando a tabela de logs de atividades ------------------------------------------- Um sistema só é completo quando ele pode ser auditado. Por isso, vamos criar em seguida a tabela de logs de atividades, para sabermos, em tempo real, o que cada usuário está fazendo e quais partes do sistema ele está acessando. Veja o código SQL: CREATE TABLE logs ( id int(11) NOT NULL AUTO_INCREMENT, usuario int(11) NOT NULL, texto varchar(250) NOT NULL, data datetime NOT NULL, nome_usuario varchar(20) NOT NULL, ip varchar(20) NOT NULL, PRIMARY KEY (id), FOREIGN KEY (usuario) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Pronto. O banco de dados já está completo. Agora é só começar a usar.