First Commit
This commit is contained in:
Executable
+9
@@ -0,0 +1,9 @@
|
||||
SysCMS Commercial License
|
||||
|
||||
Copyright (c) 2026 Marco Costa. All rights reserved.
|
||||
|
||||
This software is licensed, not sold. Permission is granted to use this software subject to the terms of the SysCMS Commercial License.
|
||||
|
||||
Redistribution, sublicensing, resale, or disclosure of this software, in whole or in part, is strictly prohibited without prior written permission from the author.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
Executable
+31
@@ -0,0 +1,31 @@
|
||||
# ERP Module for SysCMS
|
||||
|
||||
Central module of the Enterprise Resource Planning (ERP) system.
|
||||
|
||||
## Features
|
||||
- Dashboard with overview of ERP modules
|
||||
- Module management and navigation
|
||||
- Integration with other ERP sub-modules
|
||||
- Company-specific configuration
|
||||
|
||||
## Dependencies
|
||||
- `auth`: Requires authentication module
|
||||
|
||||
## Installation
|
||||
1. Upload the `erp.zip` file through the module manager or extract it to the `modules/` directory.
|
||||
2. Run the migrations to register the module.
|
||||
3. Ensure the `auth` module is installed and configured.
|
||||
|
||||
## Permissions
|
||||
- `erp.view`: Access ERP dashboard
|
||||
- `erp.manage`: Manage ERP settings and modules
|
||||
|
||||
## Menu
|
||||
The module adds an ERP entry to the admin dashboard menu with the following configuration:
|
||||
- Icon: `bi bi-building`
|
||||
- Route: `/admin/erp`
|
||||
- Permission required: `erp.view`
|
||||
|
||||
## License
|
||||
Copyright (c) 2026 Marco Costa. All rights reserved.
|
||||
Licensed under the SysCMS Commercial License.
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Erp\Controllers;
|
||||
|
||||
use App\Controllers\BaseAdminController;
|
||||
use Modules\Erp\Models\Customer;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
class CustomerController extends BaseAdminController
|
||||
{
|
||||
public function index(Request $request): Response
|
||||
{
|
||||
$page = (int)$request->query->get('page', 1);
|
||||
$perPage = 15;
|
||||
$offset = ($page - 1) * $perPage;
|
||||
|
||||
$query = Customer::query();
|
||||
|
||||
// Busca
|
||||
$search = $request->query->get('q');
|
||||
if (!empty($search)) {
|
||||
$query->where(function($q) use ($search) {
|
||||
$q->where('cliente_razaosocial', 'like', "%{$search}%")
|
||||
->orWhere('cliente_nfantasia', 'like', "%{$search}%")
|
||||
->orWhere('cliente_email', 'like', "%{$search}%")
|
||||
->orWhere('cliente_cnpj', 'like', "%{$search}%")
|
||||
->orWhere('cliente_ccpf', 'like', "%{$search}%");
|
||||
});
|
||||
}
|
||||
|
||||
$total = $query->count();
|
||||
$customers = $query->orderBy('cliente_id', 'desc')
|
||||
->skip($offset)
|
||||
->take($perPage)
|
||||
->get();
|
||||
|
||||
return $this->renderAdminView('@erp/admin/customers/index.twig', [
|
||||
'customers' => $customers,
|
||||
'total' => $total,
|
||||
'page' => $page,
|
||||
'perPage' => $perPage,
|
||||
'totalPages' => ceil($total / $perPage),
|
||||
'search' => $search
|
||||
]);
|
||||
}
|
||||
}
|
||||
+269
@@ -0,0 +1,269 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SysCMS - Content Management System
|
||||
*
|
||||
* Copyright (c) 2026 SysCMS Team
|
||||
* All rights reserved.
|
||||
*
|
||||
* Author: SysCMS Team
|
||||
* Project: SysCMS
|
||||
*/
|
||||
|
||||
namespace Modules\Erp\Controllers;
|
||||
|
||||
use App\Controllers\BaseAdminController;
|
||||
use Kernel\View;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use App\Models\Module;
|
||||
|
||||
/**
|
||||
* ERPController - Controller for handling ERP central dashboard
|
||||
*
|
||||
* @package Modules\Erp\Controllers
|
||||
*/
|
||||
class ERPController extends BaseAdminController
|
||||
{
|
||||
/**
|
||||
* ERPController constructor
|
||||
*
|
||||
* @param View $view
|
||||
*/
|
||||
public function __construct(View $view)
|
||||
{
|
||||
parent::__construct($view);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the User Manual.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function manual(): Response
|
||||
{
|
||||
return $this->renderAdminView('@erp/admin/manual.twig', [
|
||||
'title' => __('erp.user_manual') ?? 'Manual do Usuário'
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the Implementation Guide.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function implementationGuide(): Response
|
||||
{
|
||||
return $this->renderAdminView('@erp/admin/implementation_guide.twig', [
|
||||
'title' => __('erp.admin.implementation_guide') ?? 'Guia de Implantação ERP'
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* index - Display the ERP central dashboard
|
||||
*
|
||||
* @param Request $request
|
||||
* @return Response
|
||||
*/
|
||||
public function index(Request $request): Response
|
||||
{
|
||||
$user = $this->getCurrentUser();
|
||||
|
||||
// Block Super Admin from accessing ERP
|
||||
if ($user && $user->isSuperAdmin()) {
|
||||
return $this->renderAdminView('errors/unauthorized.twig', [
|
||||
'message' => 'Super Admin não tem permissão para acessar o módulo ERP.'
|
||||
]);
|
||||
}
|
||||
|
||||
// Allow access ONLY to Admin and Member
|
||||
$hasAccess = $user && (
|
||||
$user->isAdmin() ||
|
||||
$user->isMember()
|
||||
);
|
||||
|
||||
if (!$hasAccess) {
|
||||
$this->addFlash('error', __('auth.unauthorized'));
|
||||
return $this->redirect('/admin');
|
||||
}
|
||||
|
||||
// Get all active modules
|
||||
$activeModules = Module::query()
|
||||
->where('modules_ative', true)
|
||||
->get();
|
||||
|
||||
$modules = [];
|
||||
|
||||
// Define specific configurations for known modules (URL overrides, colors, icons if missing in DB)
|
||||
$moduleConfigs = [
|
||||
'company' => [
|
||||
'url' => '/admin/companies',
|
||||
'icon' => 'bi bi-building-gear',
|
||||
'color' => '#0d6efd'
|
||||
],
|
||||
'erpclients' => [
|
||||
'url' => '/admin/erp/clients',
|
||||
'color' => '#0dcaf0'
|
||||
],
|
||||
'erpmemberpermissions' => [
|
||||
'url' => '/admin/erp/permissions',
|
||||
'icon' => 'bi bi-person-lock',
|
||||
'color' => '#198754'
|
||||
],
|
||||
'erphrm' => [
|
||||
'url' => '/admin/erp/hrm',
|
||||
'color' => '#6f42c1'
|
||||
],
|
||||
'erpprojects' => [
|
||||
'url' => '/admin/erp/projects',
|
||||
'color' => '#6610f2'
|
||||
],
|
||||
'erpservtags' => [
|
||||
'url' => '/admin/erp/servtags',
|
||||
'icon' => 'bi bi-tags',
|
||||
'color' => '#d63384'
|
||||
],
|
||||
'erpcarriers' => [
|
||||
'url' => '/admin/erp/carriers',
|
||||
'color' => '#0dcaf0'
|
||||
],
|
||||
'erpproducts' => [
|
||||
'url' => '/admin/erp/products',
|
||||
'color' => '#6610f2'
|
||||
],
|
||||
'erpsales' => [
|
||||
'url' => '/admin/erp/sales',
|
||||
'color' => '#198754'
|
||||
],
|
||||
'erpvehicles' => [
|
||||
'url' => '/admin/erp/vehicles',
|
||||
'color' => '#fd7e14'
|
||||
],
|
||||
'erpcrm' => [
|
||||
'url' => '/admin/erp/crm',
|
||||
'icon' => 'bi bi-people',
|
||||
'color' => '#fd7e14'
|
||||
],
|
||||
'erpfinance' => [
|
||||
'url' => '/admin/erp/finance',
|
||||
'color' => '#198754'
|
||||
],
|
||||
'erpstock' => [
|
||||
'url' => '/admin/erp/stock',
|
||||
'color' => '#fd7e14'
|
||||
],
|
||||
'erprawmaterials' => [
|
||||
'url' => '/admin/erp/rawmaterials',
|
||||
'color' => '#6f42c1'
|
||||
],
|
||||
'erpvendors' => [
|
||||
'url' => '/admin/erp/vendors',
|
||||
'icon' => 'bi bi-shop',
|
||||
'color' => '#0dcaf0'
|
||||
],
|
||||
'erporganization' => [
|
||||
'url' => '/admin/erp/organization',
|
||||
'color' => '#0d6efd'
|
||||
],
|
||||
'erpgercom' => [
|
||||
'url' => '/admin/erp/gercom',
|
||||
'color' => '#ffc107'
|
||||
],
|
||||
'erppoe' => [
|
||||
'url' => '/admin/erp/poe',
|
||||
'icon' => 'bi bi-clipboard-check',
|
||||
'color' => '#6c757d'
|
||||
],
|
||||
'erpproduction' => [
|
||||
'url' => '/admin/erp/production',
|
||||
'icon' => 'bi bi-gear-wide-connected',
|
||||
'color' => '#fd7e14'
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($activeModules as $module) {
|
||||
// Use module path (folder name) as the robust identifier/slug
|
||||
// Fallback to name if path is empty (though path should exist)
|
||||
$slug = !empty($module->modules_path) ? basename($module->modules_path) : strtolower(str_replace(' ', '', trim($module->modules_name)));
|
||||
$slug = strtolower($slug); // Ensure lowercase
|
||||
|
||||
// Skip main ERP module
|
||||
if ($slug === 'erp') continue;
|
||||
|
||||
// Filter only Company or ERP modules
|
||||
if ($slug !== 'company' && !str_starts_with($slug, 'erp')) continue;
|
||||
|
||||
// Check permission
|
||||
// Use slug for permission check (standard convention: slug.view)
|
||||
$permission = $slug . '.view';
|
||||
|
||||
// If admin, bypass check. If not admin, check permission.
|
||||
if (!$user->isAdmin() && !$user->hasPermission($permission)) {
|
||||
// Fallback: check permission based on name if slug fails (legacy support)
|
||||
$legacyName = strtolower(str_replace(' ', '', trim($module->modules_name)));
|
||||
if ($legacyName !== $slug && !$user->hasPermission($legacyName . '.view')) {
|
||||
continue;
|
||||
}
|
||||
// If neither permission exists, skip
|
||||
if ($legacyName === $slug) continue;
|
||||
}
|
||||
|
||||
// Determine URL
|
||||
// Check config by slug
|
||||
$config = $moduleConfigs[$slug] ?? null;
|
||||
|
||||
if ($config && isset($config['url'])) {
|
||||
$url = url($config['url']);
|
||||
} else {
|
||||
// Auto-generate URL from slug
|
||||
$suffix = str_replace('erp', '', $slug);
|
||||
if ($slug === 'company') $suffix = 'companies';
|
||||
|
||||
$url = url('/admin/erp/' . $suffix);
|
||||
}
|
||||
|
||||
// Determine Icon
|
||||
$icon = $module->modules_icon;
|
||||
if (empty($icon)) {
|
||||
$icon = isset($config['icon']) ? $config['icon'] : 'bi bi-box';
|
||||
}
|
||||
|
||||
// Determine Color
|
||||
$color = isset($config['color']) ? $config['color'] : '#6c757d';
|
||||
|
||||
// Determine Name and Description (Try translation, fallback to DB)
|
||||
$suffix = str_replace('erp', '', $slug);
|
||||
if ($slug === 'company') $suffix = 'company';
|
||||
|
||||
$nameKey = "erp.modules.{$suffix}.name";
|
||||
$descKey = "erp.modules.{$suffix}.description";
|
||||
|
||||
// Get platformName using PlatformService
|
||||
$platformService = new \App\Services\PlatformService();
|
||||
$platformName = $platformService->getPlatformName();
|
||||
|
||||
$displayName = __($nameKey, ['platformName' => $platformName]);
|
||||
if ($displayName === $nameKey) {
|
||||
$displayName = $module->modules_display_name ?: ucfirst($slug);
|
||||
}
|
||||
|
||||
$description = __($descKey, ['platformName' => $platformName]);
|
||||
if ($description === $descKey) {
|
||||
$description = $module->modules_description ?: '';
|
||||
}
|
||||
|
||||
$modules[] = [
|
||||
'name' => $displayName,
|
||||
'url' => $url,
|
||||
'icon' => $icon,
|
||||
'color' => $color,
|
||||
'description' => $description
|
||||
];
|
||||
}
|
||||
|
||||
return $this->renderAdminView('@erp/admin/index.twig', [
|
||||
'title' => __('erp.admin.title'),
|
||||
'modules' => $modules
|
||||
]);
|
||||
}
|
||||
}
|
||||
Executable
+58
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Erp\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class Customer extends Model
|
||||
{
|
||||
protected $table = 'sis_cadclientes';
|
||||
protected $primaryKey = 'cliente_id';
|
||||
public $timestamps = false;
|
||||
|
||||
protected $fillable = [
|
||||
'cliente_razaosocial',
|
||||
'cliente_nfantasia',
|
||||
'cliente_contato',
|
||||
'cliente_email',
|
||||
'cliente_endereco',
|
||||
'cliente_bairro',
|
||||
'cliente_cidade',
|
||||
'cliente_cep',
|
||||
'cliente_uf',
|
||||
'cliente_cnpj', // CNPJ
|
||||
'cliente_ccpf', // CPF
|
||||
'cliente_telefone',
|
||||
'cliente_ative',
|
||||
'cliente_data',
|
||||
'cliente_horadecad',
|
||||
'cliente_idbus'
|
||||
];
|
||||
|
||||
/**
|
||||
* Boot the model.
|
||||
*/
|
||||
protected static function boot()
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
static::addGlobalScope('company', function (Builder $builder) {
|
||||
if (isset($_SESSION['user_idbus']) && $_SESSION['user_idbus'] !== null && (!isset($_SESSION['user_role']) || $_SESSION['user_role'] !== 'super_admin')) {
|
||||
$builder->where('cliente_idbus', $_SESSION['user_idbus']);
|
||||
}
|
||||
});
|
||||
|
||||
static::creating(function ($model) {
|
||||
if (empty($model->cliente_data)) {
|
||||
$model->cliente_data = date('d/m/Y');
|
||||
}
|
||||
if (empty($model->cliente_horadecad)) {
|
||||
$model->cliente_horadecad = date('H:i:s');
|
||||
}
|
||||
if (empty($model->cliente_ative)) {
|
||||
$model->cliente_ative = 'yes';
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SysCMS - Content Management System
|
||||
*
|
||||
* Copyright (c) 2026 SysCMS Team
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
use Illuminate\Database\Capsule\Manager as Capsule;
|
||||
|
||||
class InsertErpModule
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
$moduleName = 'erp';
|
||||
$moduleData = [
|
||||
'modules_name' => $moduleName,
|
||||
'modules_display_name' => 'ERP',
|
||||
'modules_description' => 'Módulo central do Enterprise Resource Planning (ERP).',
|
||||
'modules_version' => '1.0.0',
|
||||
'modules_author' => 'SysCMS Team',
|
||||
'modules_ative' => 1,
|
||||
'modules_public' => 0,
|
||||
'modules_blocked' => 0,
|
||||
'modules_dependencies' => json_encode(['auth']),
|
||||
'modules_permissions' => json_encode([
|
||||
"erp.view",
|
||||
"erp.manage"
|
||||
]),
|
||||
'modules_settings' => json_encode([
|
||||
"menu" => [
|
||||
"dashboard" => [
|
||||
"icon" => "bi bi-building",
|
||||
"label" => "ERP",
|
||||
"route" => "admin/erp",
|
||||
"order" => 50,
|
||||
"permission" => "erp.view"
|
||||
]
|
||||
]
|
||||
]),
|
||||
'modules_path' => 'modules/erp',
|
||||
'modules_namespace' => 'Modules\\Erp',
|
||||
'modules_icon' => 'bi bi-building',
|
||||
'menu_side_bar' => 1,
|
||||
'menu_nav_bar' => 0,
|
||||
'modules_order' => 50,
|
||||
'modules_install_date' => date('Y-m-d H:i:s'),
|
||||
'modules_update_date' => date('Y-m-d H:i:s')
|
||||
];
|
||||
|
||||
$existingModule = Capsule::table('modules')->where('modules_name', $moduleName)->first();
|
||||
|
||||
if (!$existingModule) {
|
||||
$moduleId = Capsule::table('modules')->insertGetId($moduleData);
|
||||
|
||||
// Associar a todas as empresas existentes
|
||||
if (Capsule::schema()->hasTable('bus')) {
|
||||
$companies = Capsule::table('bus')->get();
|
||||
foreach ($companies as $company) {
|
||||
Capsule::table('bus_modules')->insert([
|
||||
'bus_modules_bus_id' => $company->bus_id,
|
||||
'bus_modules_module_id' => $moduleId,
|
||||
'bus_modules_is_enabled' => 1,
|
||||
'bus_modules_show_public_nav' => 0,
|
||||
'bus_modules_show_dashboard_nav' => 1,
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'updated_at' => date('Y-m-d H:i:s')
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
$module = Capsule::table('modules')->where('modules_name', 'erp')->first();
|
||||
if ($module) {
|
||||
Capsule::table('bus_modules')->where('bus_modules_module_id', $module->modules_id)->delete();
|
||||
Capsule::table('modules')->where('modules_id', $module->modules_id)->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
Executable
+99
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"admin": {
|
||||
"title": "ERP - Enterprise Resource Planning",
|
||||
"breadcrumb": "Painel ERP",
|
||||
"no_modules": "Nenhum submódulo do ERP configurado no momento.",
|
||||
"about_title": "Sobre o ERP",
|
||||
"about_text": "O Enterprise Resource Planning (ERP) é o sistema central de gestão integrada. Aqui você encontrará o acesso a todos os módulos financeiros, administrativos e operacionais do sistema.",
|
||||
"module_label": "Módulo ERP",
|
||||
"access_module": "Acessar Módulo",
|
||||
"module_under_construction": "Módulo em construção. Em breve novas funcionalidades.",
|
||||
"back_to_erp": "Voltar ao ERP"
|
||||
},
|
||||
"modules": {
|
||||
"company": {
|
||||
"name": "Configuração da Empresa",
|
||||
"description": "Gerenciamento de dados da empresa, logos e configurações gerais da tabela 'bus'."
|
||||
},
|
||||
"hrm": {
|
||||
"name": "RH (Recursos Humanos)",
|
||||
"description": "Gestão completa de colaboradores, cargos e setores."
|
||||
},
|
||||
"vendors": {
|
||||
"name": "Fornecedores",
|
||||
"description": "Vollständige Lieferantenverwaltung für das :platformName ERP."
|
||||
},
|
||||
"suppliers": {
|
||||
"name": "Fornecedores (Novo)",
|
||||
"description": "Gestão de Fornecedores e Cotações."
|
||||
},
|
||||
"carriers": {
|
||||
"name": "Transportadoras",
|
||||
"description": "Gestão de Transportadoras e Fretes."
|
||||
},
|
||||
"permissions": {
|
||||
"name": "Permissões de Membros ERP",
|
||||
"description": "Gerencie quais módulos do ERP cada membro da sua empresa pode acessar."
|
||||
},
|
||||
"products": {
|
||||
"name": "Produtos",
|
||||
"description": "Gestão completa de produtos do sistema."
|
||||
},
|
||||
"clients": {
|
||||
"name": "Clientes",
|
||||
"description": "Gestão completa de clientes e contatos."
|
||||
},
|
||||
"stock": {
|
||||
"name": "Estoque",
|
||||
"description": "Gestão de estoque e armazéns."
|
||||
},
|
||||
"finance": {
|
||||
"name": "Financeiro",
|
||||
"description": "Gestão de contas a pagar, receber e movimentações."
|
||||
},
|
||||
"gercom": {
|
||||
"name": "Gerência Comercial",
|
||||
"description": "Gestão de vendedores, prazos e configurações comerciais."
|
||||
},
|
||||
"sales": {
|
||||
"name": "Vendas ao Cliente",
|
||||
"description": "Gestão de pedidos de venda e serviços ao cliente."
|
||||
},
|
||||
"production": {
|
||||
"name": "Produção (PCP)",
|
||||
"description": "Planejamento e controle de produção."
|
||||
},
|
||||
"rawmaterials": {
|
||||
"name": "Matérias-Primas",
|
||||
"description": "Gestão completa de matérias-primas e insumos."
|
||||
},
|
||||
"projects": {
|
||||
"name": "Gestão de Projetos",
|
||||
"description": "Gerenciamento de projetos e tarefas (Kanban)."
|
||||
},
|
||||
"kanban": {
|
||||
"name": "Kanban de Tarefas",
|
||||
"description": "Quadro Kanban para gestão visual de tarefas."
|
||||
},
|
||||
"servtags": {
|
||||
"name": "Service Tags",
|
||||
"description": "Gerenciamento de tags de serviço e produtos."
|
||||
},
|
||||
"vehicles": {
|
||||
"name": "Fahrzeuge und Flotten",
|
||||
"description": "Verwaltung von Firmenfahrzeugen, Fahrern, Abteilungen und Serviceaufträgen."
|
||||
},
|
||||
"medical": {
|
||||
"name": "ERP Médico",
|
||||
"description": "Gestão de clínicas, pacientes e agendamentos."
|
||||
},
|
||||
"syscrm": {
|
||||
"name": "SysCRM e OS",
|
||||
"description": "CRM e Ordens de Serviço."
|
||||
},
|
||||
"organization": {
|
||||
"name": "Organização",
|
||||
"description": "Gestão de organogramas e fluxos de processos."
|
||||
}
|
||||
}
|
||||
}
|
||||
Executable
+100
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"title": "ERP",
|
||||
"admin": {
|
||||
"title": "ERP - Enterprise Resource Planning",
|
||||
"breadcrumb": "Painel ERP",
|
||||
"no_modules": "Nenhum submódulo do ERP configurado no momento.",
|
||||
"about_title": "Sobre o ERP",
|
||||
"about_text": "O Enterprise Resource Planning (ERP) é o sistema central de gestão integrada. Aqui você encontrará o acesso a todos os módulos financeiros, administrativos e operacionais do sistema.",
|
||||
"module_label": "Módulo ERP",
|
||||
"access_module": "Acessar Módulo",
|
||||
"module_under_construction": "Módulo em construção. Em breve novas funcionalidades.",
|
||||
"back_to_erp": "Voltar ao ERP"
|
||||
},
|
||||
"modules": {
|
||||
"company": {
|
||||
"name": "Configuração da Empresa",
|
||||
"description": "Gerenciamento de dados da empresa, logos e configurações gerais da tabela 'bus'."
|
||||
},
|
||||
"hrm": {
|
||||
"name": "RH (Recursos Humanos)",
|
||||
"description": "Gestão completa de colaboradores, cargos e setores."
|
||||
},
|
||||
"vendors": {
|
||||
"name": "Fornecedores",
|
||||
"description": "Complete vendor management for the :platformName ERP."
|
||||
},
|
||||
"suppliers": {
|
||||
"name": "Fornecedores (Novo)",
|
||||
"description": "Gestão de Fornecedores e Cotações."
|
||||
},
|
||||
"carriers": {
|
||||
"name": "Transportadoras",
|
||||
"description": "Gestão de Transportadoras e Fretes."
|
||||
},
|
||||
"permissions": {
|
||||
"name": "Permissões de Membros ERP",
|
||||
"description": "Gerencie quais módulos do ERP cada membro da sua empresa pode acessar."
|
||||
},
|
||||
"products": {
|
||||
"name": "Produtos",
|
||||
"description": "Gestão completa de produtos do sistema."
|
||||
},
|
||||
"clients": {
|
||||
"name": "Clientes",
|
||||
"description": "Gestão completa de clientes e contatos."
|
||||
},
|
||||
"stock": {
|
||||
"name": "Estoque",
|
||||
"description": "Gestão de estoque e armazéns."
|
||||
},
|
||||
"finance": {
|
||||
"name": "Financeiro",
|
||||
"description": "Gestão de contas a pagar, receber e movimentações."
|
||||
},
|
||||
"gercom": {
|
||||
"name": "Gerência Comercial",
|
||||
"description": "Gestão de vendedores, prazos e configurações comerciais."
|
||||
},
|
||||
"sales": {
|
||||
"name": "Vendas ao Cliente",
|
||||
"description": "Gestão de pedidos de venda e serviços ao cliente."
|
||||
},
|
||||
"production": {
|
||||
"name": "Produção (PCP)",
|
||||
"description": "Planejamento e controle de produção."
|
||||
},
|
||||
"rawmaterials": {
|
||||
"name": "Matérias-Primas",
|
||||
"description": "Gestão completa de matérias-primas e insumos."
|
||||
},
|
||||
"projects": {
|
||||
"name": "Gestão de Projetos",
|
||||
"description": "Gerenciamento de projetos e tarefas (Kanban)."
|
||||
},
|
||||
"kanban": {
|
||||
"name": "Kanban de Tarefas",
|
||||
"description": "Quadro Kanban para gestão visual de tarefas."
|
||||
},
|
||||
"servtags": {
|
||||
"name": "Service Tags",
|
||||
"description": "Gerenciamento de tags de serviço e produtos."
|
||||
},
|
||||
"vehicles": {
|
||||
"name": "Vehicles and Fleets",
|
||||
"description": "Management of company vehicles, drivers, sectors and service orders."
|
||||
},
|
||||
"medical": {
|
||||
"name": "ERP Médico",
|
||||
"description": "Gestão de clínicas, pacientes e agendamentos."
|
||||
},
|
||||
"syscrm": {
|
||||
"name": "SysCRM e OS",
|
||||
"description": "CRM e Ordens de Serviço."
|
||||
},
|
||||
"organization": {
|
||||
"name": "Organização",
|
||||
"description": "Gestão de organogramas e fluxos de processos."
|
||||
}
|
||||
}
|
||||
}
|
||||
Executable
+100
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"title": "ERP",
|
||||
"admin": {
|
||||
"title": "ERP - Enterprise Resource Planning",
|
||||
"breadcrumb": "Painel ERP",
|
||||
"no_modules": "Nenhum submódulo do ERP configurado no momento.",
|
||||
"about_title": "Sobre o ERP",
|
||||
"about_text": "O Enterprise Resource Planning (ERP) é o sistema central de gestão integrada. Aqui você encontrará o acesso a todos os módulos financeiros, administrativos e operacionais do sistema.",
|
||||
"module_label": "Módulo ERP",
|
||||
"access_module": "Acessar Módulo",
|
||||
"module_under_construction": "Módulo em construção. Em breve novas funcionalidades.",
|
||||
"back_to_erp": "Voltar ao ERP"
|
||||
},
|
||||
"modules": {
|
||||
"company": {
|
||||
"name": "Configuração da Empresa",
|
||||
"description": "Gerenciamento de dados da empresa, logos e configurações gerais da tabela 'bus'."
|
||||
},
|
||||
"hrm": {
|
||||
"name": "RH (Recursos Humanos)",
|
||||
"description": "Gestão completa de colaboradores, cargos e setores."
|
||||
},
|
||||
"vendors": {
|
||||
"name": "Fornecedores",
|
||||
"description": "Gestão completa de fornecedores para o ERP :platformName."
|
||||
},
|
||||
"suppliers": {
|
||||
"name": "Fornecedores (Novo)",
|
||||
"description": "Gestão de Fornecedores e Cotações."
|
||||
},
|
||||
"carriers": {
|
||||
"name": "Transportadoras",
|
||||
"description": "Gestão de Transportadoras e Fretes."
|
||||
},
|
||||
"permissions": {
|
||||
"name": "Permissões de Membros ERP",
|
||||
"description": "Gerencie quais módulos do ERP cada membro da sua empresa pode acessar."
|
||||
},
|
||||
"products": {
|
||||
"name": "Produtos",
|
||||
"description": "Gestão completa de produtos do sistema."
|
||||
},
|
||||
"clients": {
|
||||
"name": "Clientes",
|
||||
"description": "Gestão completa de clientes e contatos."
|
||||
},
|
||||
"stock": {
|
||||
"name": "Estoque",
|
||||
"description": "Gestão de estoque e armazéns."
|
||||
},
|
||||
"finance": {
|
||||
"name": "Financeiro",
|
||||
"description": "Gestão de contas a pagar, receber e movimentações."
|
||||
},
|
||||
"gercom": {
|
||||
"name": "Gerência Comercial",
|
||||
"description": "Gestão de vendedores, prazos e configurações comerciais."
|
||||
},
|
||||
"sales": {
|
||||
"name": "Vendas ao Cliente",
|
||||
"description": "Gestão de pedidos de venda e serviços ao cliente."
|
||||
},
|
||||
"production": {
|
||||
"name": "Produção (PCP)",
|
||||
"description": "Planejamento e controle de produção."
|
||||
},
|
||||
"rawmaterials": {
|
||||
"name": "Matérias-Primas",
|
||||
"description": "Gestão completa de matérias-primas e insumos."
|
||||
},
|
||||
"projects": {
|
||||
"name": "Gestão de Projetos",
|
||||
"description": "Gerenciamento de projetos e tarefas (Kanban)."
|
||||
},
|
||||
"kanban": {
|
||||
"name": "Kanban de Tarefas",
|
||||
"description": "Quadro Kanban para gestão visual de tarefas."
|
||||
},
|
||||
"servtags": {
|
||||
"name": "Service Tags",
|
||||
"description": "Gerenciamento de tags de serviço e produtos."
|
||||
},
|
||||
"vehicles": {
|
||||
"name": "Vehículos y Flotas",
|
||||
"description": "Gestión de vehículos de la empresa, conductores, sectores y órdenes de servicio."
|
||||
},
|
||||
"medical": {
|
||||
"name": "ERP Médico",
|
||||
"description": "Gestão de clínicas, pacientes e agendamentos."
|
||||
},
|
||||
"syscrm": {
|
||||
"name": "SysCRM e OS",
|
||||
"description": "CRM e Ordens de Serviço."
|
||||
},
|
||||
"organization": {
|
||||
"name": "Organização",
|
||||
"description": "Gestão de organogramas e fluxos de processos."
|
||||
}
|
||||
}
|
||||
}
|
||||
Executable
+99
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"admin": {
|
||||
"title": "ERP - Enterprise Resource Planning",
|
||||
"breadcrumb": "Painel ERP",
|
||||
"no_modules": "Nenhum submódulo do ERP configurado no momento.",
|
||||
"about_title": "Sobre o ERP",
|
||||
"about_text": "O Enterprise Resource Planning (ERP) é o sistema central de gestão integrada. Aqui você encontrará o acesso a todos os módulos financeiros, administrativos e operacionais do sistema.",
|
||||
"module_label": "Módulo ERP",
|
||||
"access_module": "Acessar Módulo",
|
||||
"module_under_construction": "Módulo em construção. Em breve novas funcionalidades.",
|
||||
"back_to_erp": "Voltar ao ERP"
|
||||
},
|
||||
"modules": {
|
||||
"company": {
|
||||
"name": "Configuração da Empresa",
|
||||
"description": "Gerenciamento de dados da empresa, logos e configurações gerais da tabela 'bus'."
|
||||
},
|
||||
"hrm": {
|
||||
"name": "RH (Recursos Humanos)",
|
||||
"description": "Gestão completa de colaboradores, cargos e setores."
|
||||
},
|
||||
"vendors": {
|
||||
"name": "Fornecedores",
|
||||
"description": "Gestion complète des fournisseurs pour l'ERP :platformName."
|
||||
},
|
||||
"suppliers": {
|
||||
"name": "Fornecedores (Novo)",
|
||||
"description": "Gestão de Fornecedores e Cotações."
|
||||
},
|
||||
"carriers": {
|
||||
"name": "Transportadoras",
|
||||
"description": "Gestão de Transportadoras e Fretes."
|
||||
},
|
||||
"permissions": {
|
||||
"name": "Permissões de Membros ERP",
|
||||
"description": "Gerencie quais módulos do ERP cada membro da sua empresa pode acessar."
|
||||
},
|
||||
"products": {
|
||||
"name": "Produtos",
|
||||
"description": "Gestão completa de produtos do sistema."
|
||||
},
|
||||
"clients": {
|
||||
"name": "Clientes",
|
||||
"description": "Gestão completa de clientes e contatos."
|
||||
},
|
||||
"stock": {
|
||||
"name": "Estoque",
|
||||
"description": "Gestão de estoque e armazéns."
|
||||
},
|
||||
"finance": {
|
||||
"name": "Financeiro",
|
||||
"description": "Gestão de contas a pagar, receber e movimentações."
|
||||
},
|
||||
"gercom": {
|
||||
"name": "Gerência Comercial",
|
||||
"description": "Gestão de vendedores, prazos e configurações comerciais."
|
||||
},
|
||||
"sales": {
|
||||
"name": "Vendas ao Cliente",
|
||||
"description": "Gestão de pedidos de venda e serviços ao cliente."
|
||||
},
|
||||
"production": {
|
||||
"name": "Produção (PCP)",
|
||||
"description": "Planejamento e controle de produção."
|
||||
},
|
||||
"rawmaterials": {
|
||||
"name": "Matérias-Primas",
|
||||
"description": "Gestão completa de matérias-primas e insumos."
|
||||
},
|
||||
"projects": {
|
||||
"name": "Gestão de Projetos",
|
||||
"description": "Gerenciamento de projetos e tarefas (Kanban)."
|
||||
},
|
||||
"kanban": {
|
||||
"name": "Kanban de Tarefas",
|
||||
"description": "Quadro Kanban para gestão visual de tarefas."
|
||||
},
|
||||
"servtags": {
|
||||
"name": "Service Tags",
|
||||
"description": "Gerenciamento de tags de serviço e produtos."
|
||||
},
|
||||
"vehicles": {
|
||||
"name": "Véhicules et Flottes",
|
||||
"description": "Gestion des véhicules de l'entreprise, des conducteurs, des secteurs et des ordres de service."
|
||||
},
|
||||
"medical": {
|
||||
"name": "ERP Médico",
|
||||
"description": "Gestão de clínicas, pacientes e agendamentos."
|
||||
},
|
||||
"syscrm": {
|
||||
"name": "SysCRM e OS",
|
||||
"description": "CRM e Ordens de Serviço."
|
||||
},
|
||||
"organization": {
|
||||
"name": "Organização",
|
||||
"description": "Gestão de organogramas e fluxos de processos."
|
||||
}
|
||||
}
|
||||
}
|
||||
Executable
+101
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"title": "ERP",
|
||||
"admin": {
|
||||
"title": "ERP - Enterprise Resource Planning",
|
||||
"breadcrumb": "Painel ERP",
|
||||
"no_modules": "Nenhum submódulo do ERP configurado no momento.",
|
||||
"about_title": "Sobre o ERP",
|
||||
"about_text": "O Enterprise Resource Planning (ERP) é o sistema central de gestão integrada. Aqui você encontrará o acesso a todos os módulos financeiros, administrativos e operacionais do sistema.",
|
||||
"module_label": "Módulo ERP",
|
||||
"access_module": "Acessar Módulo",
|
||||
"implementation_guide": "Guia de Implantação ERP",
|
||||
"module_under_construction": "Módulo em construção. Em breve novas funcionalidades.",
|
||||
"back_to_erp": "Voltar ao ERP"
|
||||
},
|
||||
"modules": {
|
||||
"company": {
|
||||
"name": "Configuração da Empresa",
|
||||
"description": "Gerenciamento de dados da empresa, logos e configurações gerais da tabela 'bus'."
|
||||
},
|
||||
"hrm": {
|
||||
"name": "RH (Recursos Humanos)",
|
||||
"description": "Gestão completa de colaboradores, cargos e setores."
|
||||
},
|
||||
"vendors": {
|
||||
"name": "Fornecedores",
|
||||
"description": "Gestão completa de fornecedores para o ERP :platformName."
|
||||
},
|
||||
"suppliers": {
|
||||
"name": "Fornecedores (Novo)",
|
||||
"description": "Gestão de Fornecedores e Cotações."
|
||||
},
|
||||
"carriers": {
|
||||
"name": "Transportadoras",
|
||||
"description": "Gestão de Transportadoras e Fretes."
|
||||
},
|
||||
"permissions": {
|
||||
"name": "Permissões de Membros ERP",
|
||||
"description": "Gerencie quais módulos do ERP cada membro da sua empresa pode acessar."
|
||||
},
|
||||
"products": {
|
||||
"name": "Produtos",
|
||||
"description": "Gestão completa de produtos do sistema."
|
||||
},
|
||||
"clients": {
|
||||
"name": "Clientes",
|
||||
"description": "Gestão completa de clientes e contatos."
|
||||
},
|
||||
"stock": {
|
||||
"name": "Estoque",
|
||||
"description": "Gestão de estoque e armazéns."
|
||||
},
|
||||
"finance": {
|
||||
"name": "Financeiro",
|
||||
"description": "Gestão de contas a pagar, receber e movimentações."
|
||||
},
|
||||
"gercom": {
|
||||
"name": "Gerência Comercial",
|
||||
"description": "Gestão de vendedores, prazos e configurações comerciais."
|
||||
},
|
||||
"sales": {
|
||||
"name": "Vendas ao Cliente",
|
||||
"description": "Gestão de pedidos de venda e serviços ao cliente."
|
||||
},
|
||||
"production": {
|
||||
"name": "Produção (PCP)",
|
||||
"description": "Planejamento e controle de produção."
|
||||
},
|
||||
"rawmaterials": {
|
||||
"name": "Matérias-Primas",
|
||||
"description": "Gestão completa de matérias-primas e insumos."
|
||||
},
|
||||
"projects": {
|
||||
"name": "Gestão de Projetos",
|
||||
"description": "Gerenciamento de projetos e tarefas (Kanban)."
|
||||
},
|
||||
"kanban": {
|
||||
"name": "Kanban de Tarefas",
|
||||
"description": "Quadro Kanban para gestão visual de tarefas."
|
||||
},
|
||||
"servtags": {
|
||||
"name": "Service Tags",
|
||||
"description": "Gerenciamento de tags de serviço e produtos."
|
||||
},
|
||||
"vehicles": {
|
||||
"name": "Veículos e Frotas",
|
||||
"description": "Gestão de veículos da empresa, motoristas, setores e ordens de serviço."
|
||||
},
|
||||
"medical": {
|
||||
"name": "ERP Médico",
|
||||
"description": "Gestão de clínicas, pacientes e agendamentos."
|
||||
},
|
||||
"syscrm": {
|
||||
"name": "SysCRM e OS",
|
||||
"description": "CRM e Ordens de Serviço."
|
||||
},
|
||||
"organization": {
|
||||
"name": "Organização",
|
||||
"description": "Gestão de organogramas e fluxos de processos."
|
||||
}
|
||||
}
|
||||
}
|
||||
Executable
+36
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "erp",
|
||||
"display_name": "ERP",
|
||||
"description": "Módulo central do Enterprise Resource Planning (ERP).",
|
||||
"version": "1.0.0",
|
||||
"author": "SysCMS Team",
|
||||
"dependencies": [
|
||||
"auth"
|
||||
],
|
||||
"permissions": [
|
||||
"erp.view",
|
||||
"erp.manage"
|
||||
],
|
||||
"providers": [],
|
||||
"routes": {
|
||||
"web": "routes/web.php"
|
||||
},
|
||||
"menu": {
|
||||
"admin": [
|
||||
{
|
||||
"id": "ERP",
|
||||
"label": "ERP",
|
||||
"url": "/admin/erp",
|
||||
"icon": "bi bi-building",
|
||||
"permission": "erp.view"
|
||||
}
|
||||
]
|
||||
},
|
||||
"views": "views",
|
||||
"locales": "locales",
|
||||
"module_active": true,
|
||||
"module_public": false,
|
||||
"module_blocked": false,
|
||||
"ready": false,
|
||||
"tables": []
|
||||
}
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* SysCMS - Content Management System
|
||||
*
|
||||
* Copyright (c) 2026 SysCMS Team
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
use Kernel\Application;
|
||||
use Modules\Erp\Controllers\ERPController;
|
||||
use Modules\Erp\Controllers\CustomerController;
|
||||
|
||||
return function (Application $app) {
|
||||
$app->addRoute('GET', '/admin/erp/manual', [ERPController::class, 'manual']);
|
||||
$app->addRoute('GET', '/admin/erp/implementation-guide', [ERPController::class, 'implementationGuide']);
|
||||
$app->addRoute('GET', '/admin/erp', [ERPController::class, 'index']);
|
||||
$app->addRoute('GET', '/admin/erp/customers', [CustomerController::class, 'index']);
|
||||
};
|
||||
Executable
+72
@@ -0,0 +1,72 @@
|
||||
{% extends "layouts/dashboard.twig" %}
|
||||
|
||||
{% block title %}Clientes - ERP{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
|
||||
<h1 class="h2">Clientes</h1>
|
||||
<div class="btn-toolbar mb-2 mb-md-0">
|
||||
<div class="btn-group me-2">
|
||||
<a href="{{ url('admin/erp') }}" class="btn btn-sm btn-outline-secondary">Voltar</a>
|
||||
<a href="{{ url('admin/erp/customers/new') }}" class="btn btn-sm btn-outline-primary"><i class="bi bi-plus-lg"></i> Novo Cliente</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card shadow mb-4">
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-hover" id="customersTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Razão Social</th>
|
||||
<th>Nome Fantasia</th>
|
||||
<th>Contato</th>
|
||||
<th>Email</th>
|
||||
<th>Telefone</th>
|
||||
<th>Ações</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for customer in customers %}
|
||||
<tr>
|
||||
<td>{{ customer.cliente_id }}</td>
|
||||
<td>{{ customer.cliente_razaosocial }}</td>
|
||||
<td>{{ customer.cliente_nfantasia }}</td>
|
||||
<td>{{ customer.cliente_contato }}</td>
|
||||
<td>{{ customer.cliente_email }}</td>
|
||||
<td>{{ customer.cliente_telefone }}</td>
|
||||
<td>
|
||||
<div class="btn-group">
|
||||
<a href="{{ url('admin/erp/customers/' ~ customer.cliente_id ~ '/edit') }}" class="btn btn-sm btn-info" title="Editar"><i class="bi bi-pencil"></i></a>
|
||||
<button type="button" class="btn btn-sm btn-danger" onclick="if(confirm('Tem certeza que deseja excluir este cliente?')) { document.getElementById('delete-form-{{ customer.cliente_id }}').submit(); }" title="Excluir"><i class="bi bi-trash"></i></button>
|
||||
</div>
|
||||
<form id="delete-form-{{ customer.cliente_id }}" action="{{ url('admin/erp/customers/' ~ customer.cliente_id ~ '/delete') }}" method="POST" style="display: none;">
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
if ($('#customersTable').length) {
|
||||
$('#customersTable').DataTable({
|
||||
"language": {
|
||||
"url": "//cdn.datatables.net/plug-ins/1.13.7/i18n/pt-BR.json"
|
||||
},
|
||||
"order": [[0, "desc"]],
|
||||
"pageLength": 10,
|
||||
"responsive": true
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
+379
@@ -0,0 +1,379 @@
|
||||
{% extends "layouts/dashboard.twig" %}
|
||||
|
||||
{% block title %}{{ title }} - {{ platformName }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container-fluid px-4">
|
||||
<h1 class="mt-4">{{ title }}</h1>
|
||||
<ol class="breadcrumb mb-4">
|
||||
<li class="breadcrumb-item"><a href="/admin/dashboard">{{ __('dashboard.title') }}</a></li>
|
||||
<li class="breadcrumb-item"><a href="/admin/erp">{{ __('erp.title') }}</a></li>
|
||||
<li class="breadcrumb-item active">{{ title }}</li>
|
||||
</ol>
|
||||
|
||||
{% include '@erp/admin/nav.twig' %}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xl-3 col-md-4">
|
||||
<div class="card mb-4 sticky-top" style="top: 80px; z-index: 100;">
|
||||
<div class="card-header bg-dark text-white">
|
||||
<i class="bi bi-list-check me-1"></i>
|
||||
Fases da Implantação
|
||||
</div>
|
||||
<div class="list-group list-group-flush small">
|
||||
<a href="#fase1" class="list-group-item list-group-item-action">1. Preparação e Planejamento</a>
|
||||
<a href="#fase2" class="list-group-item list-group-item-action">2. Processos e Organogramas</a>
|
||||
<a href="#fase3" class="list-group-item list-group-item-action">3. Cadastros de Apoio (Base)</a>
|
||||
<a href="#fase4" class="list-group-item list-group-item-action">4. Configurações por Módulo</a>
|
||||
<a href="#fase5" class="list-group-item list-group-item-action">5. Saneamento e Migração</a>
|
||||
<a href="#fase6" class="list-group-item list-group-item-action">6. Sequência Lógica (SysCMS)</a>
|
||||
<a href="#fase7" class="list-group-item list-group-item-action">7. Treinamento e Simulação</a>
|
||||
<a href="#fase8" class="list-group-item list-group-item-action">8. Go-Live e Sustentação</a>
|
||||
<a href="#fase9" class="list-group-item list-group-item-action">9. Melhoria Contínua (IA)</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xl-9 col-md-8">
|
||||
<div class="alert alert-info shadow-sm mb-4">
|
||||
<i class="bi bi-info-circle-fill me-2"></i>
|
||||
Este guia foi desenvolvido com base nas melhores práticas do mercado para garantir que sua empresa aproveite ao máximo as ferramentas do <strong>ERP {{ platformName }}</strong>.
|
||||
</div>
|
||||
|
||||
<div class="card mb-4 bg-light border-0 shadow-sm">
|
||||
<div class="card-body p-4">
|
||||
<h5 class="fw-bold text-dark mb-3"><i class="bi bi-award me-2 text-warning"></i>O Propósito do ERP</h5>
|
||||
<p class="mb-0">
|
||||
Independente do tamanho da sua empresa, do número de sócios ou da quantidade de funcionários, o objetivo central do ERP é
|
||||
<strong>organizar a gestão, padronizar processos e centralizar a informação</strong>. Ele atua como o "cérebro" do negócio,
|
||||
eliminando planilhas isoladas e garantindo que todos falem a mesma língua, permitindo que a empresa cresça de forma escalável e segura.
|
||||
</p>
|
||||
<div class="mt-3 p-3 bg-primary bg-opacity-10 border-start border-4 border-primary rounded">
|
||||
<h6 class="fw-bold text-primary mb-2"><i class="bi bi-cpu me-2"></i>O Diferencial: Inteligência Artificial Integrada</h6>
|
||||
<p class="small mb-0 text-dark">
|
||||
Diferente de sistemas convencionais, nosso ERP conta com <strong>Inteligência Artificial (IA) nativa</strong> em diversos módulos.
|
||||
Isso significa que, além de registrar dados, o sistema ajuda na tomada de decisão, automatiza tarefas repetitivas, gera insights preditivos
|
||||
e auxilia no SEO e marketing, transformando dados brutos em inteligência competitiva real para o seu negócio.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fase 1 -->
|
||||
<div class="card mb-4 border-start border-4 border-primary shadow-sm" id="fase1">
|
||||
<div class="card-header bg-white py-3">
|
||||
<h5 class="mb-0 text-primary fw-bold">1. Preparação e Planejamento</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>A implantação de um ERP não é apenas um projeto de TI, mas uma mudança organizacional profunda.</p>
|
||||
<ul class="list-group list-group-flush mb-3">
|
||||
<li class="list-group-item"><i class="bi bi-check2-circle text-success me-2"></i> <strong>Definição de Objetivos:</strong> O que queremos resolver? Reduzir estoque? Agilizar faturamento?</li>
|
||||
<li class="list-group-item"><i class="bi bi-check2-circle text-success me-2"></i> <strong>Comitê de Implantação:</strong> Envolva a liderança e escolha os "Key Users" (usuários-chave) de cada departamento.</li>
|
||||
<li class="list-group-item"><i class="bi bi-check2-circle text-success me-2"></i> <strong>Cronograma Realista:</strong> Evite datas agressivas demais. Uma boa implantação leva tempo para maturação.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fase 2 -->
|
||||
<div class="card mb-4 border-start border-4 border-secondary shadow-sm" id="fase2">
|
||||
<div class="card-header bg-white py-3">
|
||||
<h5 class="mb-0 text-secondary fw-bold">2. Mapeamento de Processos e Fluxogramas</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>Entenda como a empresa funciona hoje (<strong>AS IS</strong>) e como ela funcionará dentro do sistema (<strong>TO BE</strong>).</p>
|
||||
|
||||
<div class="bg-light p-3 rounded mb-3 border">
|
||||
<h6 class="fw-bold"><i class="bi bi-diagram-3-fill me-2 text-primary"></i>A Força do Módulo de {{ __('erp.modules.organization.name') }}</h6>
|
||||
<p>Antes de configurar qualquer outro módulo, utilize o módulo de <strong>{{ __('erp.modules.organization.name') }}</strong> para desenhar a realidade do seu negócio. Isso traz clareza e evita erros de configuração:</p>
|
||||
<ul>
|
||||
<li><strong>Organogramas Funcionais:</strong> Defina quem responde a quem. Isso é vital para as permissões de acesso e fluxos de aprovação de compras e vendas.</li>
|
||||
<li><strong>Fluxogramas de Processo:</strong> Desenhe o caminho que um pedido percorre, desde a cotação até a entrega. Ter isso documentado visualmente ajuda a equipe a entender o "porquê" de cada etapa no ERP.</li>
|
||||
<li><strong>Workflow de Trabalho:</strong> Identifique gargalos antes mesmo de começar a usar o sistema. Se um processo é confuso no papel, ele será confuso no software.</li>
|
||||
</ul>
|
||||
<p class="mb-0 small text-muted"><strong>Dica:</strong> Um processo bem desenhado no módulo de Organização reduz em até 50% o tempo de treinamento da equipe.</p>
|
||||
</div>
|
||||
|
||||
<p>O ERP {{ platformName }} possui fluxos padronizados. Muitas vezes, é mais vantajoso adaptar o processo da empresa à "Melhor Prática" do software do que customizar o sistema.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fase 3 -->
|
||||
<div class="card mb-4 border-start border-4 border-info shadow-sm" id="fase3">
|
||||
<div class="card-header bg-white py-3">
|
||||
<h5 class="mb-0 text-info fw-bold">3. Pré-requisitos: Cadastros de Apoio (Tabelas de Base)</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>Antes de iniciar o uso efetivo ou a migração de grandes volumes de dados, é fundamental configurar as tabelas de apoio. Sem elas, os cadastros principais ficarão incompletos.</p>
|
||||
|
||||
<div class="row g-3">
|
||||
<div class="col-md-6">
|
||||
<div class="p-3 border rounded h-100 bg-light">
|
||||
<h6 class="fw-bold"><i class="bi bi-diagram-3 me-2"></i>Estrutura Interna</h6>
|
||||
<p class="small text-muted mb-0">Cadastre primeiro os <strong>Setores</strong> e <strong>Cargos</strong>. Eles são a base para o cadastro de funcionários e definição de permissões.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="p-3 border rounded h-100 bg-light">
|
||||
<h6 class="fw-bold"><i class="bi bi-people me-2"></i>Capital Humano</h6>
|
||||
<p class="small text-muted mb-0">Cadastre os <strong>Funcionários</strong> e <strong>Vendedores</strong>. Eles serão vinculados a pedidos de venda e ordens de produção.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="p-3 border rounded h-100 bg-light">
|
||||
<h6 class="fw-bold"><i class="bi bi-house-door me-2"></i>Logística</h6>
|
||||
<p class="small text-muted mb-0">Defina seus <strong>Almoxarifados, Depósitos e Armazéns</strong>. Sem eles, o sistema não saberá onde armazenar o estoque.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="p-3 border rounded h-100 bg-light">
|
||||
<h6 class="fw-bold"><i class="bi bi-tags me-2"></i>Classificação</h6>
|
||||
<p class="small text-muted mb-0">Crie a árvore de <strong>Grupos, Subgrupos e Categorias</strong> para seus produtos e serviços.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3 p-3 bg-warning bg-opacity-10 border border-warning rounded">
|
||||
<i class="bi bi-exclamation-triangle-fill text-warning me-2"></i>
|
||||
<strong>Atenção:</strong> Respeite esta sequência para evitar ter que "parar" um cadastro no meio por falta de uma informação de apoio.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fase 4 -->
|
||||
<div class="card mb-4 border-start border-4 border-primary shadow-sm" id="fase4">
|
||||
<div class="card-header bg-white py-3">
|
||||
<h5 class="mb-0 text-primary fw-bold">4. Configurações Específicas por Módulo</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>Cada módulo do ERP {{ platformName }} possui pré-requisitos técnicos que devem ser configurados para garantir o funcionamento correto dos fluxos de trabalho.</p>
|
||||
|
||||
<div class="accordion shadow-sm" id="accordionConfig">
|
||||
<!-- Organização e RH -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="headingOrg">
|
||||
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOrg" aria-expanded="true">
|
||||
<i class="bi bi-diagram-3 me-2"></i> Organização e RH
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseOrg" class="accordion-collapse collapse show" data-bs-parent="#accordionConfig">
|
||||
<div class="accordion-body small">
|
||||
<ul>
|
||||
<li><strong>Setores e Organogramas:</strong> Defina a estrutura hierárquica e os departamentos.</li>
|
||||
<li><strong>Cargos e Salários:</strong> Configure os cargos antes de cadastrar funcionários.</li>
|
||||
<li><strong>Funcionários:</strong> Vincule cada colaborador a um setor e cargo para habilitar fluxos de aprovação.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Produtos e Estoque -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="headingProd">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseProd">
|
||||
<i class="bi bi-box-seam me-2"></i> Produtos e Estoque
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseProd" class="accordion-collapse collapse" data-bs-parent="#accordionConfig">
|
||||
<div class="accordion-body small">
|
||||
<ul>
|
||||
<li><strong>Categorias e Grupos:</strong> Organize seu catálogo para relatórios precisos.</li>
|
||||
<li><strong>Unidades de Medida:</strong> Defina como você compra e vende (UN, KG, M, etc.).</li>
|
||||
<li><strong>Almoxarifados:</strong> Cadastre todos os locais físicos de armazenamento. Sem um almoxarifado padrão, o sistema não poderá processar entradas ou saídas.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Financeiro -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="headingFin">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseFin">
|
||||
<i class="bi bi-cash-stack me-2"></i> Financeiro
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseFin" class="accordion-collapse collapse" data-bs-parent="#accordionConfig">
|
||||
<div class="accordion-body small">
|
||||
<ul>
|
||||
<li><strong>Plano de Contas:</strong> Configure a árvore de contas (Receitas, Despesas, Ativos).</li>
|
||||
<li><strong>Centros de Custo:</strong> Opcional, mas recomendado para rateio de despesas por departamento.</li>
|
||||
<li><strong>Bancos e Contas Correntes:</strong> Cadastre as contas bancárias para conciliação.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Vendas e Comercial -->
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="headingSales">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSales">
|
||||
<i class="bi bi-cart-check me-2"></i> Vendas e Comercial
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseSales" class="accordion-collapse collapse" data-bs-parent="#accordionConfig">
|
||||
<div class="accordion-body small">
|
||||
<ul>
|
||||
<li><strong>Tabelas de Preço:</strong> Defina diferentes margens para atacado, varejo ou promoções.</li>
|
||||
<li><strong>Condições de Pagamento:</strong> Configure prazos e parcelamentos (ex: 30/60/90 dias).</li>
|
||||
<li><strong>Vendedores:</strong> Cadastre os vendedores e suas respectivas comissões.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fase 5 -->
|
||||
<div class="card mb-4 border-start border-4 border-warning shadow-sm" id="fase5">
|
||||
<div class="card-header bg-white py-3">
|
||||
<h5 class="mb-0 text-warning fw-bold">5. Saneamento e Migração de Dados</h5>
|
||||
</div>
|
||||
<div class="card-body text-dark">
|
||||
<div class="bg-light p-3 rounded mb-3 border">
|
||||
<strong>Regra de Ouro:</strong> Se você inserir "lixo" (dados ruins), o sistema entregará relatórios ruins.
|
||||
</div>
|
||||
<ul>
|
||||
<li><strong>Limpeza:</strong> Remova clientes inativos há anos ou fornecedores duplicados.</li>
|
||||
<li><strong>Padronização:</strong> Defina como os produtos serão cadastrados (ex: NOME + MARCA + MEDIDA).</li>
|
||||
<li><strong>Módulos Relacionados:</strong> Utilize os módulos de <strong>{{ __('erp.modules.clients.name') }}</strong>, <strong>{{ __('erp.modules.vendors.name') }}</strong> e <strong>{{ __('erp.modules.products.name') }}</strong> para esta fase.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fase 6 -->
|
||||
<div class="card mb-4 border-start border-4 border-success shadow-sm" id="fase6">
|
||||
<div class="card-header bg-white py-3">
|
||||
<h5 class="mb-0 text-success fw-bold">6. Sequência Lógica de Implantação (Recomendada)</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>Para o ERP {{ platformName }}, sugerimos a seguinte ordem de ativação e uso dos módulos:</p>
|
||||
|
||||
<div class="timeline-steps">
|
||||
<div class="mb-4">
|
||||
<h6 class="fw-bold"><span class="badge bg-primary me-2">Nível 1</span> Fundação e Cadastros Base</h6>
|
||||
<p class="small text-muted">Configuração da estrutura organizacional e cadastros que todos os outros módulos usarão.</p>
|
||||
<div class="d-flex flex-wrap gap-2">
|
||||
<span class="badge border text-dark">{{ __('erp.modules.organization.name') }}</span>
|
||||
<span class="badge border text-dark">{{ __('users.breadcrumb.users') }}</span>
|
||||
<span class="badge border text-dark">{{ __('erp.modules.products.name') }}</span>
|
||||
<span class="badge border text-dark">{{ __('erp.modules.clients.name') }}</span>
|
||||
<span class="badge border text-dark">{{ __('erp.modules.vendors.name') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<h6 class="fw-bold"><span class="badge bg-info me-2">Nível 2</span> Operacional e Financeiro Essencial</h6>
|
||||
<p class="small text-muted">Controlar o que entra, o que sai e o que se deve pagar ou receber.</p>
|
||||
<div class="d-flex flex-wrap gap-2">
|
||||
<span class="badge border text-dark">{{ __('erp.modules.stock.name') }}</span>
|
||||
<span class="badge border text-dark">{{ __('erp.modules.finance.name') }}</span>
|
||||
<span class="badge border text-dark">Compras</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<h6 class="fw-bold"><span class="badge bg-warning me-2">Nível 3</span> Comercial e Relacionamento</h6>
|
||||
<p class="small text-muted">Focar no crescimento das vendas e atendimento ao cliente.</p>
|
||||
<div class="d-flex flex-wrap gap-2">
|
||||
<span class="badge border text-dark">{{ __('erp.modules.syscrm.name') }}</span>
|
||||
<span class="badge border text-dark">{{ __('erp.modules.sales.name') }}</span>
|
||||
<span class="badge border text-dark">{{ __('erp.modules.gercom.name') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<h6 class="fw-bold"><span class="badge bg-danger me-2">Nível 4</span> Produção, Projetos e Capital Humano</h6>
|
||||
<p class="small text-muted">Módulos de maior complexidade técnica e operacional.</p>
|
||||
<div class="d-flex flex-wrap gap-2">
|
||||
<span class="badge border text-dark">{{ __('erp.modules.production.name') }}</span>
|
||||
<span class="badge border text-dark">{{ __('erp.modules.projects.name') }}</span>
|
||||
<span class="badge border text-dark">{{ __('erp.modules.hrm.name') }}</span>
|
||||
<span class="badge border text-dark">Engenharia</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<h6 class="fw-bold"><span class="badge bg-secondary me-2">Nível 5</span> Logística e Gestão de Ativos</h6>
|
||||
<p class="small text-muted">Apoio operacional final.</p>
|
||||
<div class="d-flex flex-wrap gap-2">
|
||||
<span class="badge border text-dark">{{ __('erp.modules.carriers.name') }}</span>
|
||||
<span class="badge border text-dark">{{ __('erp.modules.vehicles.name') }}</span>
|
||||
<span class="badge border text-dark">{{ __('erp.modules.servtags.name') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fase 7 -->
|
||||
<div class="card mb-4 border-start border-4 border-info shadow-sm" id="fase7">
|
||||
<div class="card-header bg-white py-3">
|
||||
<h5 class="mb-0 text-info fw-bold">7. Treinamento e Simulação (Pilotagem)</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>O treinamento deve ser baseado em **processos**, não apenas em botões. Exemplo: "Como fazer uma venda do início ao fim", passando por CRM, Pedido, Estoque e Financeiro.</p>
|
||||
|
||||
<div class="bg-light p-3 rounded mb-3 border-start border-4 border-warning">
|
||||
<h6 class="fw-bold"><i class="bi bi-laptop me-2"></i>Dica de Infraestrutura e Mobilidade</h6>
|
||||
<p class="small mb-2">Nem toda área da empresa (como chão de fábrica ou expedição) possui um computador disponível 100% do tempo. Para estas situações, siga esta prática:</p>
|
||||
<ul class="small mb-0">
|
||||
<li>Utilize os formulários impressos do módulo <strong>POE (Procedimentos Operacionais Estruturados)</strong> para coletar os dados manualmente.</li>
|
||||
<li>Defina uma rotina para que esses dados sejam lançados no sistema <strong>uma ou duas vezes por dia</strong> por um responsável administrativo.</li>
|
||||
<li>Isso garante que o ERP continue alimentado e preciso, mesmo em áreas sem digitalização imediata.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p>Realize um **Piloto (Test Drive)**: Pegue documentos reais do dia anterior e tente processar tudo no novo sistema. Identifique onde a equipe teve dúvidas.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fase 8 -->
|
||||
<div class="card mb-4 border-start border-4 border-dark shadow-sm" id="fase8">
|
||||
<div class="card-header bg-white py-3">
|
||||
<h5 class="mb-0 text-dark fw-bold">8. Go-Live e Sustentação</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>O dia da virada de chave! Garanta que haja suporte total nos primeiros dias.</p>
|
||||
<p>É normal que a produtividade caia ligeiramente na primeira semana enquanto a equipe ganha confiança. O foco deve ser a precisão dos dados, não a velocidade.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Fase 9 -->
|
||||
<div class="card mb-4 border-start border-4 border-magenta shadow-sm" id="fase9" style="border-left-color: #d63384 !important;">
|
||||
<div class="card-header bg-white py-3">
|
||||
<h5 class="mb-0 fw-bold" style="color: #d63384;">9. Melhoria Contínua e IA</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>Com o sistema rodando, utilize os módulos de inteligência para obter insights:</p>
|
||||
<ul>
|
||||
<li><strong>Agente de IA do ERP</strong>: Use para analisar tendências de vendas e comportamento de estoque.</li>
|
||||
<li><strong>Plano de Negócios</strong>: Revise o planejamento estratégico com base nos dados reais coletados.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.timeline-steps {
|
||||
padding-left: 20px;
|
||||
border-left: 2px dashed #dee2e6;
|
||||
}
|
||||
.timeline-steps > div {
|
||||
position: relative;
|
||||
}
|
||||
.timeline-steps > div::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: -27px;
|
||||
top: 5px;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
border-radius: 50%;
|
||||
background: #dee2e6;
|
||||
border: 2px solid #fff;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
Executable
+63
@@ -0,0 +1,63 @@
|
||||
{% extends "layouts/dashboard.twig" %}
|
||||
|
||||
{% block title %}{{ title }} - {{ platformName }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container-fluid px-4">
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
<h1 class="mt-4">{{ title }}</h1>
|
||||
</div>
|
||||
|
||||
<ol class="breadcrumb mb-4">
|
||||
<li class="breadcrumb-item active">{{ __('erp.admin.breadcrumb') }}</li>
|
||||
</ol>
|
||||
{% include '@erp/admin/nav.twig' %}
|
||||
|
||||
<div class="row">
|
||||
{% for module in modules %}
|
||||
<div class="col-xl-3 col-md-6 mb-4">
|
||||
<div class="card shadow h-100 py-2" style="border-left: 0.25rem solid {{ module.color }};">
|
||||
<div class="card-body">
|
||||
<div class="row no-gutters align-items-center">
|
||||
<div class="col mr-2">
|
||||
<div class="text-xs font-weight-bold text-uppercase mb-1" style="color: {{ module.color }};">
|
||||
{{ __('erp.admin.module_label') }}
|
||||
</div>
|
||||
<div class="h5 mb-0 font-weight-bold text-gray-800">{{ module.name }}</div>
|
||||
<p class="small text-muted mb-0">{{ module.description }}</p>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<i class="{{ module.icon }} fs-2 text-gray-300"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer bg-white border-0 text-center">
|
||||
<a class="btn btn-sm btn-outline-primary w-100 font-weight-bold" href="{{ module.url }}">
|
||||
<i class="bi bi-arrow-right-circle me-1"></i> {{ __('erp.admin.access_module') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="col-12">
|
||||
<div class="alert alert-info">
|
||||
<i class="bi bi-info-circle me-2"></i> {{ __('erp.admin.no_modules') }}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div class="row mt-4">
|
||||
<div class="col-12">
|
||||
<div class="card shadow mb-4">
|
||||
<div class="card-header py-3">
|
||||
<h6 class="m-0 font-weight-bold text-primary">{{ __('erp.admin.about_title') }}</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>{{ __('erp.admin.about_text') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Executable
+103
@@ -0,0 +1,103 @@
|
||||
{% extends "layouts/dashboard.twig" %}
|
||||
|
||||
{% block title %}{{ title }} - {{ platformName }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container-fluid px-4">
|
||||
<h1 class="mt-4">{{ title }}</h1>
|
||||
<ol class="breadcrumb mb-4">
|
||||
<li class="breadcrumb-item"><a href="/admin/dashboard">{{ __('dashboard.title') }}</a></li>
|
||||
<li class="breadcrumb-item"><a href="/admin/erp">{{ __('erp.title') }}</a></li>
|
||||
<li class="breadcrumb-item active">{{ title }}</li>
|
||||
</ol>
|
||||
|
||||
{% include '@erp/admin/nav.twig' %}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xl-3 col-md-4">
|
||||
<div class="card mb-4 sticky-top" style="top: 80px; z-index: 100;">
|
||||
<div class="card-header">
|
||||
<i class="bi bi-list-ul me-1"></i>
|
||||
Índice
|
||||
</div>
|
||||
<div class="list-group list-group-flush">
|
||||
<a href="#introducao" class="list-group-item list-group-item-action">Introdução</a>
|
||||
<a href="#visao-geral" class="list-group-item list-group-item-action">Visão Geral</a>
|
||||
<a href="#modulos" class="list-group-item list-group-item-action">Módulos Integrados</a>
|
||||
<a href="#faq" class="list-group-item list-group-item-action">Perguntas Frequentes</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xl-9 col-md-8">
|
||||
<!-- Introdução -->
|
||||
<div class="card mb-4" id="introducao">
|
||||
<div class="card-header bg-primary text-white">
|
||||
<i class="bi bi-info-circle me-1"></i>
|
||||
Introdução
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="lead">Bem-vindo ao Manual Geral do ERP {{ platformName }}.</p>
|
||||
<p>O ERP (Enterprise Resource Planning) é o núcleo de gestão empresarial do sistema, integrando diversos módulos para controle financeiro, comercial, produção e muito mais.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Visão Geral -->
|
||||
<div class="card mb-4" id="visao-geral">
|
||||
<div class="card-header">
|
||||
<i class="bi bi-speedometer2 me-1"></i>
|
||||
Visão Geral
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>O Dashboard principal do ERP oferece uma visão consolidada dos módulos ativos e atalhos rápidos para as principais funcionalidades.</p>
|
||||
<p>A partir daqui, você pode navegar para áreas específicas como Vendas, Compras, Financeiro, RH, etc.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Módulos Integrados -->
|
||||
<div class="card mb-4" id="modulos">
|
||||
<div class="card-header">
|
||||
<i class="bi bi-grid-3x3-gap me-1"></i>
|
||||
Módulos Integrados
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>O ERP (Enterprise Resource Planning) é o núcleo de gestão empresarial do sistema {{ platformName }}, integrando diversos módulos para controle financeiro, comercial, produção e muito mais.</p>
|
||||
<ul>
|
||||
<li><strong>Vendas (Sales):</strong> Gestão de pedidos, orçamentos e clientes.</li>
|
||||
<li><strong>Compras (Purchases):</strong> Controle de pedidos de compra e fornecedores.</li>
|
||||
<li><strong>Financeiro:</strong> Contas a pagar/receber, fluxo de caixa e relatórios.</li>
|
||||
<li><strong>Estoque (Stock):</strong> Controle de inventário e movimentações.</li>
|
||||
<li><strong>Produção (PCP):</strong> Ordens de produção e controle de chão de fábrica.</li>
|
||||
<li><strong>RH (HRM):</strong> Gestão de colaboradores e folha de pagamento.</li>
|
||||
</ul>
|
||||
<p>Cada módulo possui seu próprio manual específico, acessível através do botão "Manual" na barra de navegação de cada seção.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- FAQ -->
|
||||
<div class="card mb-4" id="faq">
|
||||
<div class="card-header">
|
||||
<i class="bi bi-question-circle me-1"></i>
|
||||
Perguntas Frequentes
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="accordion" id="faqAccordion">
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="headingOne">
|
||||
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
|
||||
Como ativar um novo módulo?
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body">
|
||||
A ativação de módulos é feita na seção de Configurações do Sistema ou através do suporte técnico.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Executable
+16
@@ -0,0 +1,16 @@
|
||||
<div class="mb-4 d-print-none">
|
||||
<div class="btn-group" role="group" aria-label="Navegação ERP">
|
||||
<a href="/admin/erp" class="btn btn-outline-primary">
|
||||
<i class="bi bi-speedometer2"></i> Dashboard
|
||||
</a>
|
||||
<a href="/admin/erp/customers" class="btn btn-outline-primary">
|
||||
<i class="bi bi-people"></i> Clientes (Legado)
|
||||
</a>
|
||||
<a href="/admin/erp/manual" class="btn btn-outline-primary {% if request_path == '/admin/erp/manual' %}active{% endif %}">
|
||||
<i class="bi bi-book"></i> Manual
|
||||
</a>
|
||||
<a href="/admin/erp/implementation-guide" class="btn btn-outline-info {% if request_path == '/admin/erp/implementation-guide' %}active{% endif %}">
|
||||
<i class="bi bi-journal-check"></i> {{ __('erp.admin.implementation_guide') ?? 'Guia de Implantação' }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user