# Documentação do Sistema de Precificação (SaaS) ## 1. Visão Geral do Sistema O Sistema de Precificação é uma aplicação web desenvolvida em PHP com banco de dados MySQL, projetada para auxiliar empresas na precificação de produtos, especialmente no setor alimentício. O sistema opera em modelo SaaS (Software as a Service), permitindo múltiplas empresas utilizarem a mesma plataforma com dados separados. ### 1.1 Principais Funcionalidades - Cadastro e gerenciamento de ingredientes - Cadastro e controle de embalagens - Cálculo de custos fixos - Precificação de produtos com base em ingredientes, tempo de preparo e custos fixos - Geração de relatórios de lucro e balanços - Integração com sistema de pagamentos ASAAS - Suporte a múltiplas empresas (modelo SaaS) - Sistema de autenticação e controle de usuários - Recuperação de senha via e-mail ## 2. Arquitetura do Sistema ### 2.1 Estrutura de Diretórios - `/` - Arquivos principais do sistema e páginas de login - `/css/` - Arquivos de estilo CSS - `/database/` - Scripts SQL para criação e atualização do banco de dados - `/dompdf/` - Biblioteca para geração de PDFs - `/img/` - Imagens do sistema - `/js/` - Arquivos JavaScript - `/lib/` - Bibliotecas e classes de integração (ASAAS, PIX, etc.) - `/logs/` - Arquivos de log do sistema - `/PHPMailer-6.10.0/` - Biblioteca para envio de e-mails - `/phpqrcode/` - Biblioteca para geração de QR codes - `/recuperacao/` - Sistema de recuperação de senha - `/rel/` - Relatórios e classes para geração de relatórios - `/saas/` - Módulos específicos do modelo SaaS - `/sis/` - Interface principal do sistema após login - `/webhook/` - Endpoints para receber notificações de serviços externos - `/documentacao/` - Documentação organizada do sistema (técnica, usuário e legal) ### 2.2 Tecnologias Utilizadas - **Backend**: PHP 8.2 - **Banco de Dados**: MySQL (MariaDB 10.4) - **Frontend**: HTML5, CSS3, JavaScript - **Bibliotecas**: - DOMPDF (geração de PDFs) - PHPMailer (envio de e-mails) - PHPQRCode (geração de QR codes PIX) - **Integrações**: - ASAAS (pagamentos) - PIX (pagamentos) ## 3. Banco de Dados ### 3.1 Principais Tabelas #### 3.1.1 Tabela `usuarios` Armazena dados dos usuários do sistema, incluindo níveis de acesso. Campos importantes: - `id` - Identificador único - `empresa` - ID da empresa à qual o usuário pertence (0 para administrador SaaS) - `nome` - Nome do usuário - `cpf` - CPF do usuário - `email` - E-mail (usado para login) - `senha_crip` - Senha criptografada - `ativo` - Status do usuário (Sim, Não, Pré) - `foto` - Caminho para a foto do usuário - `nivel` - Nível de acesso (saas, Administrador, etc.) - `token_recuperacao` - Token para recuperação de senha - `token_expiracao` - Data/hora de expiração do token #### 3.1.2 Tabela `empresas` Armazena dados das empresas cadastradas no sistema. Campos importantes: - `id` - Identificador único - `nome` - Nome da empresa - `email` - E-mail da empresa - `telefone` - Telefone de contato - `ativo` - Status da empresa - `data_cad` - Data de cadastro #### 3.1.3 Tabela `categorias` Categorias para classificação de ingredientes. #### 3.1.4 Tabela `ingredientes` Cadastro de ingredientes utilizados na precificação. #### 3.1.5 Tabela `embalagens` Cadastro de embalagens utilizadas na precificação. #### 3.1.6 Tabela `custos_fixos` Registro dos custos fixos que afetam a precificação. #### 3.1.7 Tabela `receber` Registro de contas a receber, incluindo pagamentos via ASAAS. #### 3.1.8 Tabela `config` Configurações gerais do sistema, tanto para o SaaS quanto para cada empresa. ### 3.2 Relacionamentos - Um usuário pertence a uma empresa (exceto administradores SaaS) - Uma empresa pode ter vários usuários - Ingredientes, embalagens e custos fixos estão vinculados a uma empresa específica - Cada categoria pode ter vários ingredientes ## 4. Módulos do Sistema ### 4.1 Módulo de Autenticação #### 4.1.1 Login O sistema utiliza autenticação baseada em e-mail/CPF e senha. As senhas são armazenadas de forma segura utilizando hash (password_hash). Arquivos principais: - `index.php` - Formulário de login - `autenticar.php` - Processa a autenticação #### 4.1.2 Recuperação de Senha Sistema completo de recuperação de senha via e-mail, com geração de token seguro e link para redefinição. Arquivos principais: - `recuperacao/index.php` - Página principal de recuperação - `recuperacao/recuperar.php` - Processa a solicitação e envia e-mail - `recuperacao/redefinir.php` - Permite redefinir a senha com token válido - `recuperacao/configuracoes.php` - Configurações do sistema de recuperação ### 4.2 Módulo de Precificação #### 4.2.1 Cadastro de Ingredientes Permite cadastrar ingredientes com preços, unidades de medida e categorias. #### 4.2.2 Cadastro de Embalagens Gerencia embalagens utilizadas nos produtos, com controle de custo unitário. #### 4.2.3 Custos Fixos Permite definir custos fixos como aluguel, energia, etc., e calcular o impacto por minuto de produção. #### 4.2.4 Cálculo de Preços Combina ingredientes, embalagens, custos fixos e tempo de preparo para calcular preços ideais com margem de lucro. ### 4.3 Módulo Financeiro #### 4.3.1 Contas a Receber Gerencia pagamentos pendentes, com integração ao ASAAS para cobranças. #### 4.3.2 Integração ASAAS Sistema completo de integração com a plataforma ASAAS para geração de cobranças, monitoramento de pagamentos e recebimento de notificações via webhook. Arquivos principais: - `lib/asaas_integracao.php` - Classe de integração com a API do ASAAS - `lib/asaas_config.php` - Configurações da integração - `lib/verificar_pagamentos.php` - Verifica status de pagamentos pendentes - `webhook/asaas_webhook.php` - Recebe notificações do ASAAS #### 4.3.3 Integração PIX Permite geração de QR codes PIX para pagamentos imediatos. Arquivos principais: - `lib/pix_qrcode.php` - Geração de QR codes PIX - `rel/gerar_pix.php` - Interface para geração de PIX ### 4.4 Módulo de Relatórios Sistema completo de geração de relatórios em PDF e HTML, utilizando a biblioteca DOMPDF. Tipos de relatórios: - Relatório de ingredientes - Relatório de embalagens - Relatório de empresas - Relatório de lucro - Relatório de balanço (positivo/negativo) Arquivos principais estão no diretório `/rel/`, organizados em pares de arquivos PHP (exibição) e PHP class (geração do PDF). ### 4.5 Módulo SaaS (Multi-empresas) #### 4.5.1 Gestão de Empresas Permite ao administrador SaaS gerenciar as empresas cadastradas, ativando ou desativando acesso. #### 4.5.2 Controle de Acesso Implementa níveis de acesso diferenciados: - `saas` - Administrador global do sistema - `Administrador` - Administrador de uma empresa específica - Outros níveis podem ser definidos para cada empresa ## 5. Segurança ### 5.1 Autenticação - Senhas armazenadas com hash seguro (password_hash) - Controle de sessão para acesso às páginas - Verificação de nível de acesso para funcionalidades específicas ### 5.2 Segurança de Dados - Proteção contra SQL Injection usando PDO com parâmetros - Validação de entrada de dados - Tokens seguros para recuperação de senha ### 5.3 Proteção de Arquivos - Verificação de acesso direto aos arquivos de biblioteca - Redirecionamento para login quando necessário ## 6. Configuração e Instalação ### 6.1 Requisitos do Sistema - Servidor Web Apache - PHP 8.0 ou superior - MySQL/MariaDB - Extensões PHP: PDO, mbstring, gd ### 6.2 Processo de Instalação 1. Clonar/Extrair os arquivos no diretório do servidor web 2. Criar banco de dados 'precificacao_saas' 3. Importar arquivo SQL `database/SQUEMA.sql` 4. Configurar conexão em `conexao.php` 5. Acessar o sistema usando: - Login: ormizio@gmail.com - Senha: 123 ### 6.3 Configurações Iniciais O sistema cria automaticamente: - Um usuário administrador SaaS - Uma empresa de teste - Configurações básicas ## 7. Integração com Serviços Externos ### 7.1 ASAAS (Pagamentos) - Ambiente de homologação configurado por padrão - Para produção, alterar configurações em `lib/asaas_config.php` - Webhook configurado para receber notificações automáticas ### 7.2 Serviço de E-mail - Configurado via PHPMailer - Utilizado para envio de links de recuperação de senha - Configurações definidas no painel administrativo ## 8. Manutenção e Logs ### 8.1 Logs do Sistema - Logs de verificação de pagamentos armazenados em `/logs/` - Formato: `verificacao_pagamentos_YYYY-MM-DD.log` ### 8.2 Monitoramento - Verificação automática de pagamentos pode ser agendada via cron job - Script para verificação: `verificar_todos_pagamentos.php` ## 9. Suporte e Contato Para suporte técnico ou dúvidas sobre o sistema, entre em contato: - E-mail: ormizio@gmail.com --- Documentação gerada em 15 de junho de 2025.