133 lines
6.0 KiB
PHP
Executable File
133 lines
6.0 KiB
PHP
Executable File
<?php
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class DatabaseSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Seed the application's database.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
$seeders = [
|
|
// SuperAdminSeeder::class, // Questo seeder è ora inglobato in TestSetupSeeder
|
|
TestSetupSeeder::class, // Chiama il seeder principale di setup
|
|
ImpostazioniSeeder::class,
|
|
DocumentiDemoSeeder::class, // Documenti demo persistenti
|
|
UnitaTipologieSeeder::class,
|
|
ChecklistFineAnnoSeeder::class,
|
|
];
|
|
|
|
if (app()->environment(['local', 'development'])) {
|
|
$seeders[] = DemoUsersSeeder::class;
|
|
}
|
|
|
|
// Chiama solo il seeder che abbiamo creato.
|
|
$this->call($seeders);
|
|
|
|
// Registra e attiva i moduli di base (Contabilita e StampeRate) se non presenti
|
|
if (\Illuminate\Support\Facades\Schema::hasTable('modules')) {
|
|
\Illuminate\Support\Facades\DB::table('modules')->updateOrInsert(
|
|
['name' => 'Contabilita'],
|
|
[
|
|
'display_name' => 'Contabilità Avanzata',
|
|
'version' => '1.0.0',
|
|
'description' => 'Modulo per la gestione della contabilità avanzata, include piano dei conti, registrazioni, bilanci e report.',
|
|
'author' => 'Team NetGescon',
|
|
'status' => 'active',
|
|
'license' => 'commercial',
|
|
'price' => 199.00,
|
|
'currency' => 'EUR',
|
|
'billing' => 'yearly',
|
|
'config' => json_encode([
|
|
"path" => "app/Modules/Contabilita",
|
|
"namespace" => "App\\Modules\\Contabilita",
|
|
"auto_install_routes" => true,
|
|
"auto_install_migrations" => true,
|
|
"cache_enabled" => true,
|
|
"api_enabled" => true
|
|
]),
|
|
'dependencies' => json_encode([]),
|
|
'permissions' => json_encode([
|
|
"contabilita_view" => "Visualizzare la contabilità",
|
|
"contabilita_create" => "Creare registrazioni contabili",
|
|
"contabilita_edit" => "Modificare registrazioni contabili",
|
|
"contabilita_delete" => "Eliminare registrazioni contabili",
|
|
"contabilita_admin" => "Amministrazione completa del modulo contabilità"
|
|
]),
|
|
'installed_at' => now(),
|
|
'created_at' => now(),
|
|
'updated_at' => now()
|
|
]
|
|
);
|
|
|
|
\Illuminate\Support\Facades\DB::table('modules')->updateOrInsert(
|
|
['name' => 'StampeRate'],
|
|
[
|
|
'display_name' => 'Stampe Rate Avanzate',
|
|
'version' => '1.0.0',
|
|
'description' => 'Modulo avanzato per la gestione e stampa delle rate condominiali con template personalizzabili',
|
|
'author' => 'NetGescon Team',
|
|
'status' => 'active',
|
|
'license' => 'commercial',
|
|
'price' => 99.00,
|
|
'currency' => 'EUR',
|
|
'billing' => 'yearly',
|
|
'config' => json_encode([
|
|
'path' => 'app/Modules/StampeRate',
|
|
'namespace' => 'App\\Modules\\StampeRate',
|
|
'prezzo_annuale' => 99.00,
|
|
'categoria' => 'Stampe e Comunicazioni',
|
|
'features' => [
|
|
'Generazione PDF multipli',
|
|
'Template personalizzabili',
|
|
'Invio email automatico',
|
|
'Tracking aperture email',
|
|
'Cronologia e statistiche',
|
|
'Export in vari formati'
|
|
],
|
|
'menu_items' => [
|
|
[
|
|
'title' => 'Stampe Rate',
|
|
'route' => 'stampeRate.index',
|
|
'icon' => 'fa-file-pdf',
|
|
'permission' => 'stampe_rate_view'
|
|
],
|
|
[
|
|
'title' => 'Template',
|
|
'route' => 'stampeRate.templates.index',
|
|
'icon' => 'fa-template',
|
|
'permission' => 'stampe_rate_templates_manage'
|
|
],
|
|
[
|
|
'title' => 'Cronologia',
|
|
'route' => 'stampeRate.history.index',
|
|
'icon' => 'fa-history',
|
|
'permission' => 'stampe_rate_view'
|
|
]
|
|
]
|
|
]),
|
|
'dependencies' => json_encode([]),
|
|
'permissions' => json_encode([
|
|
'stampe_rate_view' => 'Visualizzare stampe rate',
|
|
'stampe_rate_create' => 'Creare nuove stampe',
|
|
'stampe_rate_edit' => 'Modificare stampe esistenti',
|
|
'stampe_rate_delete' => 'Eliminare stampe',
|
|
'stampe_rate_templates_manage' => 'Gestire template',
|
|
'stampe_rate_admin' => 'Amministrazione completa modulo'
|
|
]),
|
|
'installed_at' => now(),
|
|
'created_at' => now(),
|
|
'updated_at' => now()
|
|
]
|
|
);
|
|
|
|
// Resetta cache dei moduli
|
|
\Illuminate\Support\Facades\Cache::forget('netgescon.active_modules');
|
|
\Illuminate\Support\Facades\Cache::forget('netgescon.modules_menu');
|
|
\Illuminate\Support\Facades\Cache::forget('netgescon.modules_permissions');
|
|
}
|
|
}
|
|
}
|