Files
dockerfluxodecaixapro/modules/erp/database/migrations/001_insert_erp_module.php
T
2026-09-01 10:46:29 -03:00

84 lines
2.9 KiB
PHP
Executable File

<?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();
}
}
}