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 "finantotal", "controle_financas", 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. É comum, em instalações padrões do XAMP e WAMP, o usuário do MySQL ser definido como "root" e a senha em branco "". 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'. Todas as atividades realizadas no sistema são atreladas à um usuário. Veja o seu código SQL abaixo: Obs: Para a criação das tabelas abaixo, copie e cole o código no campo SQL do phpMyAdmin ou da sua ferramenta favorita. Ao fazer isso, as chaves primárias e estrangeiras serão criadas corretamente. 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 tipos de contas --------------------------------------------- O sistema permite a criação de um plano de contas (por exemplo: ALUGUEL, MENSALIDADES, TAXAS BANCÁRIAS, SALÁRIO, ACADEMIA, etc) e essas contas são divididas em débito e crédito. Assim, vamos criar a tabela tipos_contas: CREATE TABLE tipos_contas ( id int(11) NOT NULL AUTO_INCREMENT, nome varchar(50) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Agora vamos inserir dois registros nessa tabela: INSERT INTO tipos_contas (id, nome) VALUES (1, 'DÉBITO'); INSERT INTO tipos_contas (id, nome) VALUES (2, 'CRÉDITO'); Não se esqueça: Os dois registros devem estar nessa ordem, ou seja, o id 1 para DÉBITO e o id 2 para CRÉDITO. 4) Criando a tabela de planos de contas --------------------------------------------- Agora que já temos a tabela com o tipo de contas, vamos criar a tabela plano_contas: CREATE TABLE plano_contas ( id int(11) NOT NULL AUTO_INCREMENT, id_tipo_conta int(11) NOT NULL, nome varchar(250) NOT NULL, obs text NOT NULL, data_cadastro datetime DEFAULT NULL, usuario_cadastro int(11) NOT NULL, PRIMARY KEY (id), FOREIGN KEY (usuario_cadastro) REFERENCES usuarios(id), FOREIGN KEY (id_tipo_conta) REFERENCES tipos_contas(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 5) Criando a tabela de formas de pagamento e recebimento -------------------------------------------------------- Ao registrar um novo pagamento ou recebimento no sistema, nós podemos indicar como esse pagamento ou recebimento foi feito, ou seja, EM DINHEIRO, CARTÃO, PIX, TRANSFEREÊNCIA, etc. Veja o código para a tabela formas_pagamento_recebimento: CREATE TABLE formas_pagamento_recebimento ( id int(11) NOT NULL AUTO_INCREMENT, tipo int(11) NOT NULL, nome varchar(80) NOT NULL, obs text NOT NULL, data_cadastro datetime DEFAULT NULL, usuario_cadastro int(11) NOT NULL, PRIMARY KEY (id), FOREIGN KEY (usuario_cadastro) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 6) A tabela contas e saldos ------------------------------------------- Quando lançamos pagamentos ou recebimentos no sistema, nós podemos informar de onde ou para onde o valor está saindo ou entrando. Para isso nós temos a tabela contas_saldos. Veja o seu código SQL: CREATE TABLE contas_saldos ( id int(11) NOT NULL AUTO_INCREMENT, nome varchar(250) NOT NULL, obs text NOT NULL, saldo double NOT NULL, data_cadastro datetime NOT NULL, usuario_cadastro int(11) NOT NULL, PRIMARY KEY (id), FOREIGN KEY (usuario_cadastro) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 7) Criando a tabela de clientes_fornecedores ------------------------------------------- Segue agora o código SQL para a tabela de clientes/fornecedores: Atenção: O tipo 1 é cliente e o tipo 2 é fornecedor. Pode haver casos em que um cliente também é um fornecedor, neste caso, o tipo é 3 (pode ser marcado na edição do cadastro de um cliente ou fornecedor ou na hora de cadastrar ambos). CREATE TABLE clientes_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, responsavel varchar(120) NOT NULL, telefone_responsavel varchar(15) NOT NULL, endereco varchar(200) NOT NULL, setor varchar(150) NOT NULL, cidade varchar(50) NOT NULL, estado varchar(2) NOT NULL, cep varchar(15) NOT NULL, info text NOT NULL, foto varchar(20) NOT NULL, data_cadastro datetime DEFAULT NULL, usuario_cadastro int(11) NOT NULL, tipo int(11) NOT NULL, PRIMARY KEY (id), UNIQUE KEY fantasia_unica (fantasia), FOREIGN KEY (usuario_cadastro) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 8) A tabela de pagamentos e recebimentos ------------------------------------------------------ Ao lançar um novo pagamento ou recebimento, temos a opção de informar um cliente ou fornecedor, o plano de contas, a forma de pagamento ou recebimento e a conta que receberá ou terá recursos retirados, atualizando o saldo. Veja o SQL completo para esta tabela: CREATE TABLE pagamentos_recebimentos ( id int(11) NOT NULL AUTO_INCREMENT, id_cliente_fornecedor int(11) NOT NULL, tipo int(11) NOT NULL, id_plano int(11) NOT NULL, id_forma_pagamento_recebimento int(11) NOT NULL, id_conta_saldo int(11) NOT NULL, descricao text NOT NULL, valor double NOT NULL, acrescimo double NOT NULL, abatimento double NOT NULL, data_cadastro datetime DEFAULT NULL, usuario_cadastro int(11) NOT NULL, data_pagamento_recebimento date DEFAULT NULL, id_unico bigint(20) NOT NULL, PRIMARY KEY (id), FOREIGN KEY (id_plano) REFERENCES plano_contas(id), FOREIGN KEY (id_forma_pagamento_recebimento) REFERENCES formas_pagamento_recebimento(id), FOREIGN KEY (id_conta_saldo) REFERENCES contas_saldos(id), FOREIGN KEY (usuario_cadastro) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 9) A tabela de contas a pagar e a receber --------------------------------------------------- Chegou a hora da tabela de contas a pagar e a receber. Veja o SQL para a sua criação: CREATE TABLE contas_pagar_receber ( id int(11) NOT NULL AUTO_INCREMENT, id_cliente_fornecedor int(11) NOT NULL, tipo int(11) NOT NULL, id_plano int(11) NOT NULL, descricao text NOT NULL, valor double NOT NULL, data_cadastro datetime DEFAULT NULL, usuario_cadastro int(11) NOT NULL, vencimento date DEFAULT NULL, PRIMARY KEY (id), FOREIGN KEY (id_plano) REFERENCES plano_contas(id), FOREIGN KEY (usuario_cadastro) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 10) A tabela de atendimentos ------------------------------------------------------ O sistema permite registrar e manter um histórico dos atendimentos feitos a clientes e fornecedores. Eis o código SQL para a sua criação: CREATE TABLE atendimentos ( id int(11) NOT NULL AUTO_INCREMENT, id_cliente_fornecedor int(11) NOT NULL, texto text NOT NULL, resolvido varchar(1) NOT NULL, data_cadastro datetime DEFAULT NULL, usuario_cadastro int(11) NOT NULL, id_unico bigint(20) NOT NULL, PRIMARY KEY (id), FOREIGN KEY (id_cliente_fornecedor) REFERENCES clientes_fornecedores(id), FOREIGN KEY (usuario_cadastro) REFERENCES usuarios(id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 11) A tabela dos anexos dos atendimentos --------------------------------------------------- Ao registrar um novo atendimento para um cliente ou fornecedor, o sistema permite que documentos e prints sejam anexos. Para isso nós precisamos criar a anexos_atendimentos: CREATE TABLE anexos_atendimentos ( id int(11) NOT NULL AUTO_INCREMENT, arquivo varchar(250) NOT NULL, tipo int(11) NOT NULL, id_pai int(11) NOT NULL, data_cadastro datetime NOT NULL, usuario_cadastro int(11) NOT NULL, id_unico bigint(20) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 12) A tabela de anexos para pagamentos e recebimentos ------------------------------------------------------ O sistema também permite a inserção de documentos e prints para pagamentos e recebimentos. Para isso temos que criar a tabela anexos_pagamentos_recebimentos: CREATE TABLE anexos_pagamentos_recebimentos ( id int(11) NOT NULL AUTO_INCREMENT, arquivo varchar(250) NOT NULL, tipo int(11) NOT NULL, id_pai int(11) NOT NULL, data_cadastro datetime NOT NULL, usuario_cadastro int(11) NOT NULL, id_unico bigint(20) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 13) 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.