From 74097718727275345e1f473e5e0314a0039e53a3 Mon Sep 17 00:00:00 2001
From: Arturo Corro <arturo@koneko.mx>
Date: Fri, 7 Mar 2025 00:45:33 -0600
Subject: [PATCH] sertings

---
 .gitignore                      |   3 +-
 composer.json                   |  10 +-
 database/data/rbac-config.json  | 201 +-------------------------------
 database/data/users.csv         |   5 +-
 database/seeders/UserSeeder.php |  10 +-
 scripts/show-instructions.php   |  13 ---
 setup.sh                        |  55 +++++++++
 7 files changed, 68 insertions(+), 229 deletions(-)
 delete mode 100644 scripts/show-instructions.php
 create mode 100755 setup.sh

diff --git a/.gitignore b/.gitignore
index d3ccdf3..7c20656 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,5 @@
 /.phpunit.cache
 /node_modules
-/public/vendor
 /public/build
 /public/hot
 /public/storage
@@ -12,6 +11,8 @@
 .env.production
 .phpactor.json
 .phpunit.result.cache
+composer.lock
+package-lock.json
 Homestead.json
 Homestead.yaml
 npm-debug.log
diff --git a/composer.json b/composer.json
index bfe66f6..9339bb8 100644
--- a/composer.json
+++ b/composer.json
@@ -48,16 +48,10 @@
             "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
         ],
         "post-create-project-cmd": [
-            "@php artisan key:generate --ansi",
-            "@php artisan storage:link",
-            "@php artisan vendor:publish --tag=sat-catalogs-seeders --ansi",
-            "@php artisan vendor:publish --tag=vuexy-admin-config --ansi",
-            "@php artisan vendor:publish --tag=vuexy-admin-images --ansi",
-            "@php artisan vendor:publish --tag=vuexy-admin-seeders --ansi",
-            "@php scripts/show-instructions.php"
+            "[ ! -f .env ] && (bash -c './setup.sh' || echo 'Error en setup.sh') || echo '.env ya existe, saltando configuración'"
         ],
         "post-update-cmd": [
-            "@php artisan vendor:publish --tag=laravel-assets --ansi --force",
+            "@php artisan vendor:publish --tag=laravel-assets --ansi",
             "@php artisan vendor:publish --tag=sat-catalogs-seeders --ansi --force"
         ],
         "dev": [
diff --git a/database/data/rbac-config.json b/database/data/rbac-config.json
index 249d102..d595652 100644
--- a/database/data/rbac-config.json
+++ b/database/data/rbac-config.json
@@ -9,8 +9,6 @@
                 "admin.store-manager.company.view",
                 "admin.store-manager.stores.view",
                 "admin.store-manager.stores.view",
-                "admin.finance.banxico.allow",
-                "admin.finance.banking.allow",
                 "admin.sales.ticket-config.allow",
                 "admin.billing.csds-settings.allow",
                 "admin.billing.stamping-package.allow",
@@ -20,21 +18,6 @@
                 "admin.core.roles.view",
                 "admin.core.permissions.view",
                 "admin.core.import-sat-catalogs.allow",
-                "admin.ai.dashboard.view",
-                "admin.ai.content.create",
-                "admin.ai.analytics.view",
-                "admin.chatbot.config.view",
-                "admin.chatbot.flows.manage",
-                "admin.chatbot.history.view",
-                "admin.iot.devices.view",
-                "admin.iot.sensors.manage",
-                "admin.iot.monitoring.view",
-                "admin.facial-recognition.profiles.manage",
-                "admin.facial-recognition.live.verify",
-                "admin.facial-recognition.history.view",
-                "admin.print.queue.view",
-                "admin.print.history.view",
-                "admin.print.settings.manage",
                 "admin.website.general-settings.allow",
                 "admin.website.legal.view",
                 "admin.website.faq.view",
@@ -45,18 +28,6 @@
                 "admin.contacts.contacts.view",
                 "admin.contacts.employees.view",
                 "admin.contacts.employees.create",
-                "admin.rrhh.jobs.view",
-                "admin.rrhh.organization.view",
-                "admin.recruitment.jobs.view",
-                "admin.recruitment.candidates.view",
-                "admin.recruitment.interviews.view",
-                "admin.payroll.contracts.view",
-                "admin.payroll.process.view",
-                "admin.payroll.receipts.view",
-                "admin.payroll.reports.view",
-                "admin.attendance.records.view",
-                "admin.attendance.biometric.view",
-                "admin.attendance.absences.view",
                 "admin.inventory.product-categories.view",
                 "admin.inventory.product-catalogs.view",
                 "admin.inventory.products.view",
@@ -74,14 +45,6 @@
                 "admin.sales.credit-notes.create",
                 "admin.sales.credit-notes.view",
                 "admin.sales.credit-notes.view",
-                "admin.accounting.dashboard.view",
-                "admin.accounting.charts.view",
-                "admin.finance.accounts-payable.view",
-                "admin.finance.accounts-receivable.view",
-                "admin.accounting.balance.view",
-                "admin.accounting.income-statement.view",
-                "admin.accounting.ledger.view",
-                "admin.accounting.entries.view",
                 "admin.expenses.dashboard.view",
                 "admin.expenses.expenses.create",
                 "admin.expenses.expenses.view",
@@ -111,35 +74,8 @@
                 "admin.inventory.shipping-carriers.view",
                 "admin.inventory.shipping-rates.view",
                 "admin.inventory.assets.view",
-                "admin.inventory.asset-maintenance.view",
                 "admin.inventory.asset-lifecycle.view",
-                "admin.inventory.asset-assignments.view",
-                "admin.projects.dashboard.view",
-                "admin.projects.view",
-                "admin.projects.create",
-                "admin.projects.tasks.view",
-                "admin.projects.history.view",
-                "admin.production.orders.view",
-                "admin.production.orders.create",
-                "admin.production.process.view",
-                "admin.production.history.view",
-                "admin.quality.inspections.view",
-                "admin.quality.inspections.create",
-                "admin.quality.reports.view",
-                "admin.quality.history.view",
-                "admin.workflows.view",
-                "admin.workflows.create",
-                "admin.workflows.automations.view",
-                "admin.workflows.history.view",
-                "admin.contracts.view",
-                "admin.contracts.sign",
-                "admin.contracts.automated.view",
-                "admin.contracts.history.view",
-                "admin.ticketing.dashboard.view",
-                "admin.ticketing.tickets.view",
-                "admin.ticketing.tickets.create",
-                "admin.ticketing.categories.view",
-                "admin.ticketing.analytics.view"
+                "admin.inventory.asset-assignments.view"
             ]
         },
         "Admin" : {
@@ -163,8 +99,6 @@
                 "admin.contacts.employees.create",
                 "admin.contacts.customers.view",
                 "admin.contacts.customers.create",
-                "admin.rrhh.jobs.view",
-                "admin.rrhh.organization.view",
                 "admin.inventory.product-categories.view",
                 "admin.inventory.product-catalogs.view",
                 "admin.inventory.products.view",
@@ -179,7 +113,6 @@
                 "admin.inventory.movements.view",
                 "admin.inventory.transfers.view",
                 "admin.inventory.assets.view",
-                "admin.inventory.asset-maintenance.view",
                 "admin.inventory.asset-lifecycle.view",
                 "admin.inventory.asset-assignments.view"
             ]
@@ -209,14 +142,6 @@
             "style": "info",
             "permissions" : []
         },
-        "Recursos humanos" : {
-            "style": "success",
-            "permissions" : []
-        },
-        "Nómina" : {
-            "style": "success",
-            "permissions" : []
-        },
         "Activos fijos" : {
             "style": "secondary",
             "permissions" : []
@@ -245,10 +170,6 @@
             "style": "danger",
             "permissions" : []
         },
-        "Finanzas" : {
-            "style": "info",
-            "permissions" : []
-        },
         "Auditor" : {
             "style": "dark",
             "permissions" : [
@@ -259,15 +180,6 @@
                 "admin.core.users.view",
                 "admin.core.roles.view",
                 "admin.core.permissions.view",
-                "admin.ai.dashboard.view",
-                "admin.ai.analytics.view",
-                "admin.chatbot.config.view",
-                "admin.chatbot.history.view",
-                "admin.iot.devices.view",
-                "admin.iot.monitoring.view",
-                "admin.facial-recognition.history.view",
-                "admin.print.queue.view",
-                "admin.print.history.view",
                 "admin.website.legal.view",
                 "admin.website.faq.view",
                 "admin.blog.categories.view",
@@ -275,22 +187,9 @@
                 "admin.blog.articles.view",
                 "admin.blog.comments.view",
                 "admin.contacts.contacts.view",
-                "admin.crm.marketing-campaigns.view",
                 "admin.crm.leads.view",
                 "admin.crm.newsletter.view",
                 "admin.contacts.employees.view",
-                "admin.rrhh.jobs.view",
-                "admin.rrhh.organization.view",
-                "admin.recruitment.jobs.view",
-                "admin.recruitment.candidates.view",
-                "admin.recruitment.interviews.view",
-                "admin.payroll.contracts.view",
-                "admin.payroll.process.view",
-                "admin.payroll.receipts.view",
-                "admin.payroll.reports.view",
-                "admin.attendance.records.view",
-                "admin.attendance.biometric.view",
-                "admin.attendance.absences.view",
                 "admin.inventory.product-categories.view",
                 "admin.inventory.product-catalogs.view",
                 "admin.inventory.products.view",
@@ -303,14 +202,6 @@
                 "admin.sales.remissions.view",
                 "admin.sales.credit-notes.view",
                 "admin.sales.credit-notes.view",
-                "admin.accounting.dashboard.view",
-                "admin.accounting.charts.view",
-                "admin.finance.accounts-payable.view",
-                "admin.finance.accounts-receivable.view",
-                "admin.accounting.balance.view",
-                "admin.accounting.income-statement.view",
-                "admin.accounting.ledger.view",
-                "admin.accounting.entries.view",
                 "admin.expenses.dashboard.view",
                 "admin.expenses.expenses.view",
                 "admin.expenses.categories.view",
@@ -334,29 +225,8 @@
                 "admin.inventory.shipping-carriers.view",
                 "admin.inventory.shipping-rates.view",
                 "admin.inventory.assets.view",
-                "admin.inventory.asset-maintenance.view",
                 "admin.inventory.asset-lifecycle.view",
-                "admin.inventory.asset-assignments.view",
-                "admin.projects.dashboard.view",
-                "admin.projects.view",
-                "admin.projects.tasks.view",
-                "admin.projects.history.view",
-                "admin.production.orders.view",
-                "admin.production.process.view",
-                "admin.production.history.view",
-                "admin.quality.inspections.view",
-                "admin.quality.reports.view",
-                "admin.quality.history.view",
-                "admin.workflows.view",
-                "admin.workflows.automations.view",
-                "admin.workflows.history.view",
-                "admin.contracts.view",
-                "admin.contracts.automated.view",
-                "admin.contracts.history.view",
-                "admin.ticketing.dashboard.view",
-                "admin.ticketing.tickets.view",
-                "admin.ticketing.categories.view",
-                "admin.ticketing.analytics.view"
+                "admin.inventory.asset-assignments.view"
             ]
         }
     },
@@ -367,8 +237,6 @@
         "admin.store-manager.company.view",
         "admin.store-manager.stores.view",
         "admin.store-manager.stores.view",
-        "admin.finance.banxico.allow",
-        "admin.finance.banking.allow",
         "admin.sales.ticket-config.allow",
         "admin.billing.csds-settings.allow",
         "admin.billing.stamping-package.allow",
@@ -378,21 +246,6 @@
         "admin.core.roles.view",
         "admin.core.permissions.view",
         "admin.core.import-sat-catalogs.allow",
-        "admin.ai.dashboard.view",
-        "admin.ai.content.create",
-        "admin.ai.analytics.view",
-        "admin.chatbot.config.view",
-        "admin.chatbot.flows.manage",
-        "admin.chatbot.history.view",
-        "admin.iot.devices.view",
-        "admin.iot.sensors.manage",
-        "admin.iot.monitoring.view",
-        "admin.facial-recognition.profiles.manage",
-        "admin.facial-recognition.live.verify",
-        "admin.facial-recognition.history.view",
-        "admin.print.queue.view",
-        "admin.print.history.view",
-        "admin.print.settings.manage",
         "admin.website.general-settings.allow",
         "admin.website.legal.view",
         "admin.website.faq.view",
@@ -402,23 +255,10 @@
         "admin.blog.comments.view",
         "admin.contacts.contacts.view",
         "admin.contacts.contacts.create",
-        "admin.crm.marketing-campaigns.view",
         "admin.crm.leads.view",
         "admin.crm.newsletter.view",
         "admin.contacts.employees.view",
         "admin.contacts.employees.create",
-        "admin.rrhh.jobs.view",
-        "admin.rrhh.organization.view",
-        "admin.recruitment.jobs.view",
-        "admin.recruitment.candidates.view",
-        "admin.recruitment.interviews.view",
-        "admin.payroll.contracts.view",
-        "admin.payroll.process.view",
-        "admin.payroll.receipts.view",
-        "admin.payroll.reports.view",
-        "admin.attendance.records.view",
-        "admin.attendance.biometric.view",
-        "admin.attendance.absences.view",
         "admin.inventory.product-categories.view",
         "admin.inventory.product-catalogs.view",
         "admin.inventory.products.view",
@@ -437,14 +277,6 @@
         "admin.sales.credit-notes.create",
         "admin.sales.credit-notes.view",
         "admin.sales.credit-notes.view",
-        "admin.accounting.dashboard.view",
-        "admin.accounting.charts.view",
-        "admin.finance.accounts-payable.view",
-        "admin.finance.accounts-receivable.view",
-        "admin.accounting.balance.view",
-        "admin.accounting.income-statement.view",
-        "admin.accounting.ledger.view",
-        "admin.accounting.entries.view",
         "admin.expenses.dashboard.view",
         "admin.expenses.expenses.create",
         "admin.expenses.expenses.view",
@@ -475,35 +307,8 @@
         "admin.inventory.shipping-carriers.view",
         "admin.inventory.shipping-rates.view",
         "admin.inventory.assets.view",
-        "admin.inventory.asset-maintenance.view",
         "admin.inventory.asset-lifecycle.view",
-        "admin.inventory.asset-assignments.view",
-        "admin.projects.dashboard.view",
-        "admin.projects.view",
-        "admin.projects.create",
-        "admin.projects.tasks.view",
-        "admin.projects.history.view",
-        "admin.production.orders.view",
-        "admin.production.orders.create",
-        "admin.production.process.view",
-        "admin.production.history.view",
-        "admin.quality.inspections.view",
-        "admin.quality.inspections.create",
-        "admin.quality.reports.view",
-        "admin.quality.history.view",
-        "admin.workflows.view",
-        "admin.workflows.create",
-        "admin.workflows.automations.view",
-        "admin.workflows.history.view",
-        "admin.contracts.view",
-        "admin.contracts.sign",
-        "admin.contracts.automated.view",
-        "admin.contracts.history.view",
-        "admin.ticketing.dashboard.view",
-        "admin.ticketing.tickets.view",
-        "admin.ticketing.tickets.create",
-        "admin.ticketing.categories.view",
-        "admin.ticketing.analytics.view"
+        "admin.inventory.asset-assignments.view"
     ]
 }
 
diff --git a/database/data/users.csv b/database/data/users.csv
index 403ec91..7a3a9a8 100644
--- a/database/data/users.csv
+++ b/database/data/users.csv
@@ -1,8 +1,6 @@
 name,email,role,password
 Administrador Web,webadmin@concierge.test,Administrador Web,LAdmin123
 Productos y servicios,productos@concierge.test,Productos y servicios,LAdmin123
-Recursos humanos,rrhh@concierge.test,Recursos humanos,LAdmin123
-Nómina,nomina@concierge.test,Nómina,LAdmin123
 Activos fijos,activos@concierge.test,Activos fijos,LAdmin123
 Compras y gastos,compras@concierge.test,Compras y gastos,LAdmin123
 CRM,crm@concierge.test,CRM,LAdmin123
@@ -10,5 +8,4 @@ Vendedor,vendedor@concierge.test,Vendedor,LAdmin123
 Gerente,gerente@concierge.test,Gerente,LAdmin123
 Facturación,facturacion@concierge.test,Facturación,LAdmin123
 Facturación avanzado,facturacion_avanzado@concierge.test,Facturación avanzado,LAdmin123
-Finanzas,finanzas@concierge.test,Finanzas,LAdmin123
-Auditor,auditor@concierge.test,Auditor,LAdmin123
+Almacenista,almacenista@concierge.test,Almacenista,LAdmin123
diff --git a/database/seeders/UserSeeder.php b/database/seeders/UserSeeder.php
index eec74d7..8565e42 100644
--- a/database/seeders/UserSeeder.php
+++ b/database/seeders/UserSeeder.php
@@ -31,7 +31,7 @@ class UserSeeder extends Seeder
             // Super admin
         $user = User::create([
             'name' => 'Koneko Admin',
-            'email' => 'arturo@koneko.mx',
+            'email' => 'sadmin@koneko.mx',
             'email_verified_at' => now(),
             'password' => bcrypt('LAdmin123'),
             'status' => User::STATUS_ENABLED,
@@ -58,14 +58,14 @@ class UserSeeder extends Seeder
             'koneko-03.png'
         ));
 
-        // Almacenista
+        // Auditor
         $user = User::create([
-            'name' => 'Almacenista',
-            'email' => 'almacenista@koneko.mx',
+            'name' => 'Auditor',
+            'email' => 'auditor@koneko.mx',
             'email_verified_at' => now(),
             'password' => bcrypt('LAdmin123'),
             'status' => User::STATUS_ENABLED,
-        ])->assignRole('Almacenista');
+        ])->assignRole('Auditor');
 
         $avatarImageService->updateProfilePhoto($user, new UploadedFile(
             'public/vendor/vuexy-admin/img/logo/koneko-03.png',
diff --git a/scripts/show-instructions.php b/scripts/show-instructions.php
deleted file mode 100644
index cae19a4..0000000
--- a/scripts/show-instructions.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-// Colores ANSI
-$blue = "\033[44m";
-$red = "\033[41m";
-$yellow = "\033[93m";
-$reset = "\033[0m";
-
-echo PHP_EOL;
-echo "La instalación inicial está completa." . PHP_EOL . PHP_EOL;
-echo "{$red}⚠️ IMPORTANTE:{$reset} Debes configurar la base de datos en .env antes de continuar." . PHP_EOL . PHP_EOL;
-echo "Para inicializar la base de datos, ejecuta:" . PHP_EOL;
-echo "    {$yellow}php -d memory_limit=1G artisan migrate:fresh --seed{$reset}" . PHP_EOL . PHP_EOL;
diff --git a/setup.sh b/setup.sh
new file mode 100755
index 0000000..c49420a
--- /dev/null
+++ b/setup.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+# Definir colores ANSI
+YELLOW='\033[1;33m'  # Amarillo brillante
+BLUE='\033[44m'       # Fondo azul con texto blanco
+WHITE='\033[1;37m'    # Texto blanco brillante
+GREEN='\033[1;32m'    # Verde brillante
+RED='\033[1;31m'      # Rojo brillante
+RESET='\033[0m'       # Reset de color
+
+# Generar APP_KEY solo si no está definida
+echo -e "🔑 Verificando clave de aplicación..."
+if ! grep -q "^APP_KEY=" .env || grep -q "^APP_KEY=$" .env; then
+    echo -e "  ➡️ Generando nueva APP_KEY..."
+    php artisan key:generate --ansi
+else
+    echo -e "  ✅ APP_KEY ya está definida, no se regenerará.\n"
+fi
+
+# Crear enlace simbólico para almacenamiento
+echo -e "🔗 Creando enlace de almacenamiento..."
+php artisan storage:link
+
+# Publicar configuraciones y seeders
+echo -e "🛠️ Publicando configuraciones..."
+php artisan vendor:publish --tag=vuexy-admin-config --ansi
+php artisan vendor:publish --tag=vuexy-admin-images --ansi
+php artisan vendor:publish --tag=vuexy-admin-seeders --ansi
+php artisan vendor:publish --tag=sat-catalogs-seeders --ansi
+echo -e "✅ Configuraciones publicadas con éxito.\n"
+
+# Verificar si la base de datos está configurada en .env
+DB_READY=false
+if grep -q "^DB_HOST=" .env && grep -q "^DB_DATABASE=" .env && grep -q "^DB_USERNAME=" .env && grep -q "^DB_PASSWORD=" .env; then
+    echo -e "\n🔍 Verificando conexión a la base de datos..."
+
+    # Intentar obtener el estado de las migraciones
+    if php artisan migrate:status --no-interaction > /dev/null 2>&1; then
+        echo -e "  ${GREEN}✅ Conexión a la base de datos exitosa.${RESET}\n"
+        DB_READY=true
+    else
+        echo -e "  ${RED}❌ No se pudo conectar a la base de datos.${RESET}\n"
+    fi
+else
+    echo -e "  ${RED}⚠️ La configuración de la base de datos en .env está incompleta.${RESET}\n"
+fi
+
+# Mensaje final con colores
+if [ "$DB_READY" = false ]; then
+    echo -e "${YELLOW}⚠️ IMPORTANTE:${RESET} Debes configurar la base de datos en .env antes de continuar."
+    echo -e "  Para inicializar la base de datos, ejecuta:\n"
+    echo -e "      ${WHITE} php -d memory_limit=1G artisan migrate:fresh --seed ${RESET}\n"
+else
+    echo -e "${GREEN}🎉 La base de datos ya está configurada correctamente.${RESET}\n"
+fi