diff --git a/ci4/app/Config/Basics.php b/ci4/app/Config/Basics.php index 02535dfc..ed7067e9 100644 --- a/ci4/app/Config/Basics.php +++ b/ci4/app/Config/Basics.php @@ -24,68 +24,72 @@ namespace Config; use CodeIgniter\Config\BaseConfig; -class Basics extends BaseConfig { +class Basics extends BaseConfig +{ - public $appName = 'Safekat'; + public $appName = 'Safekat'; - public $i18n = 'es-ES'; - - public $languages = [ - 'en' => 'English', - 'es' => 'Spanish', - ]; + public $i18n = 'es-ES'; - public $languageFlags = [ - 'en' => 'us', - 'es' => 'es', - ]; + public $vista_impresion = 'impresion'; + public $vista_maquetacion = 'maquetacion'; + public $vista_digitalizacion = 'digitalizacion'; + + public $languages = [ + 'en' => 'English', + 'es' => 'Spanish', + ]; - public $authImplemented = false; + public $languageFlags = [ + 'en' => 'us', + 'es' => 'es', + ]; + public $authImplemented = false; - public $theme = [ - 'name' => 'vuexy', - 'body-sm' => false, - 'navbar' => [ - 'bg' => 'gray', - 'type' => 'dark', - 'border' => true, - 'user' => [ - 'visible' => true, - 'shadow' => 0, - ], - ], - 'sidebar' => [ - 'type' => 'dark', - 'shadow' => 4, - 'border' => false, - 'compact' => true, - 'links' => [ - 'bg' => 'black', // only works with AdminLTE theme - 'shadow' => 1, - ], - 'brand' => [ - 'bg' => 'gray-dark', - 'logo' => [ - 'icon' => 'favicon.ico', // path to image | this example icon on public root folder. - 'text' => 'sk_test', - 'shadow' => 2, - ], - ], - 'user' => [ - 'visible' => true, - 'shadow' => 2, - ], - ], - 'footer' => [ - 'fixed' => false, - 'organization' => 'Your Awesome Company', - 'orglink' => 'https://www.ozar.net/', - ], - ]; + public $theme = [ + 'name' => 'vuexy', + 'body-sm' => false, + 'navbar' => [ + 'bg' => 'gray', + 'type' => 'dark', + 'border' => true, + 'user' => [ + 'visible' => true, + 'shadow' => 0, + ], + ], + 'sidebar' => [ + 'type' => 'dark', + 'shadow' => 4, + 'border' => false, + 'compact' => true, + 'links' => [ + 'bg' => 'black', // only works with AdminLTE theme + 'shadow' => 1, + ], + 'brand' => [ + 'bg' => 'gray-dark', + 'logo' => [ + 'icon' => 'favicon.ico', // path to image | this example icon on public root folder. + 'text' => 'sk_test', + 'shadow' => 2, + ], + ], + 'user' => [ + 'visible' => true, + 'shadow' => 2, + ], + ], + 'footer' => [ + 'fixed' => false, + 'organization' => 'Your Awesome Company', + 'orglink' => 'https://www.ozar.net/', + ], + ]; } diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index 4c206ee7..9089a5ad 100644 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -29,6 +29,7 @@ $routes->setAutoRoute(true); //------------------------------------------------------------------ $routes->get('/', 'Home::index'); $routes->get('lang/{locale}', 'Language::index'); +$routes->get('viewmode/(:alpha)', 'Viewmode::index/$1'); //API ROUTER ------------------------------------------------------ //------------------------------------------------------------------ @@ -75,7 +76,7 @@ $routes->group('tarifaacabado', ['namespace' => 'App\Controllers\Tarifas'], func $routes->post('menuitems', 'Tarifaacabado::menuItems', ['as' => 'menuItemsOfTarifasacabado']); }); -$routes->group('users', ['namespace' => 'App\Controllers\Usuarios'], function ($routes) { +$routes->group('users', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) { $routes->get('', 'Users::index', ['as' => 'userList']); $routes->get('index', 'Users::index', ['as' => 'userIndex']); $routes->get('list', 'Users::index', ['as' => 'userList2']); @@ -88,7 +89,7 @@ $routes->group('users', ['namespace' => 'App\Controllers\Usuarios'], function ($ $routes->post('menuitems', 'Users::menuItems', ['as' => 'menuItemsOfUsers']); }); -$routes->group('group', ['namespace' => 'App\Controllers\Usuarios'], function ($routes) { +$routes->group('group', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) { $routes->get('', 'Group::index', ['as' => 'userGroupList']); $routes->get('index', 'Group::index', ['as' => 'groupIndex']); $routes->post('edit/(:num)', 'Group::edit/$1', ['as' => 'updateGroup']); diff --git a/ci4/app/Controllers/Configuracion/Correo.php b/ci4/app/Controllers/Configuracion/Correo.php deleted file mode 100644 index c28e78b7..00000000 --- a/ci4/app/Controllers/Configuracion/Correo.php +++ /dev/null @@ -1,21 +0,0 @@ -request->getLocale(); $session->remove('lang'); $session->set('lang', $locale); - $url = base_url(); + $url = previous_url(); return redirect()->to($url); } } diff --git a/ci4/app/Controllers/Compras/Compras.php b/ci4/app/Controllers/Servicioscompras/Compras.php similarity index 76% rename from ci4/app/Controllers/Compras/Compras.php rename to ci4/app/Controllers/Servicioscompras/Compras.php index c775b03c..791aee00 100644 --- a/ci4/app/Controllers/Compras/Compras.php +++ b/ci4/app/Controllers/Servicioscompras/Compras.php @@ -1,6 +1,6 @@ getSegment(1) . '/' . $uri->getSegment(2); - echo view(getenv('theme.path').'main/demo_view', $data); + echo 'Digitalización'; } diff --git a/ci4/app/Controllers/Serviciosmaquetacion/Maquetacion.php b/ci4/app/Controllers/Serviciosmaquetacion/Maquetacion.php new file mode 100644 index 00000000..c47d5c1c --- /dev/null +++ b/ci4/app/Controllers/Serviciosmaquetacion/Maquetacion.php @@ -0,0 +1,24 @@ +viewData['pageTitle'] = lang('Group.moduleTitle'); + self::$viewPath = getenv('theme.path').'form/group/'; + + parent::initController($request, $response, $logger); + + } + + public function index() + { + $this->viewData['usingClientSideDataTable'] = true; + $this->viewData['pageSubTitle'] = lang('Basic.global.ManageAllRecords', [lang('Groups.group')]); + // IMN + $this->group_user_model = new GroupUserModel(); + $this->viewData['model'] = $this->group_user_model; + + parent::index(); + } + + public function add() + { + + $requestMethod = $this->request->getMethod(); + + if ($requestMethod === 'post') : + + $nullIfEmpty = true; // !(phpversion() >= '8.1'); + + $postData = $this->request->getPost(); + + + + $title = $postData['title']; + $dashboard = $postData['dashboard']; + unset($postData['title']); + unset($postData['dashboard']); + unset($postData['id_group']); + unset($postData['save']); + + $controller = null; + $rules_access = null; + + foreach ($postData as $key=>$value){ + $exp = explode('_',$key); + $controller[] = $exp[0]; + } + + if($controller != null){ + foreach (array_unique($controller) as $item){ + $rules_access[$item] = []; + + foreach ($postData as $key=>$value){ + $exp = explode('_',$key); + if($exp[0] == $item){ + array_push($rules_access[$item],str_replace($exp[0].'_','',$key)) ; + } + } + } + } + + + + $temp_data['rules'] = json_encode($rules_access??'{}'); + $temp_data['token'] = md5(uniqid(rand(), true));; + $temp_data['title'] = $title; + $temp_data['dashboard'] = $dashboard; + + $sanitizedData = $this->sanitized($temp_data, $nullIfEmpty); + + $noException = true; + if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) : + + + if ($this->canValidate()) : + try { + $successfulResult = $this->model->skipValidation(true)->save($sanitizedData); + } catch (\Exception $e) { + $noException = false; + $this->dealWithException($e); + } + else: + $this->viewData['errorMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('Group.userGroup'))]); + $this->session->setFlashdata('formErrors', $this->model->errors()); + endif; + + $thenRedirect = true; // Change this to false if you want your user to stay on the form after submission + endif; + if ($noException && $successfulResult) : + + $id = $this->model->db->insertID(); + + $message = lang('Basic.global.saveSuccess', [mb_strtolower(lang('Group.userGroup'))]).'.'; + $message .= anchor( "admin/user-groups/{$id}/edit" , lang('Basic.global.continueEditing').'?'); + $message = ucfirst(str_replace("'", "\'", $message)); + + if ($thenRedirect) : + if (!empty($this->indexRoute)) : + return redirect()->to(route_to( $this->indexRoute ) )->with('sweet-success', $message); + else: + return $this->redirect2listView('sweet-success', $message); + endif; + else: + $this->viewData['successMessage'] = $message; + endif; + + endif; // $noException && $successfulResult + + endif; // ($requestMethod === 'post') + + $this->viewData['group'] = isset($sanitizedData) ? new UserGroupModel($sanitizedData) : new UserGroupModel(); + + $this->viewData['formAction'] = route_to('createGroup'); + + $this->viewData['boxTitle'] = lang('Basic.global.addNew').' '.lang('Group.moduleTitle').' '.lang('Basic.global.addNewSuffix'); + + + return $this->displayForm(__METHOD__); + } + + + public function edit($requestedId = null) { + + helper('general'); + $session = session(); + + if ($requestedId == null) : + return $this->redirect2listView(); + endif; + $id = filter_var($requestedId, FILTER_SANITIZE_URL); + $groupEntity = $this->model->find($id); + + if ($groupEntity == false) : + $message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('Group.userGroup')), $id]); + return $this->redirect2listView('errorMessage', $message); + endif; + + $requestMethod = $this->request->getMethod(); + + if ($requestMethod === 'post') : + + $nullIfEmpty = true; // !(phpversion() >= '8.1'); + + $postData = $this->request->getPost(); + + $id_group = $groupEntity->id_group; + $token = $groupEntity->token; + $title = $postData['title']; + $dashboard = $postData['dashboard']; + + unset($postData['id_group']); + unset($postData['title']); + unset($postData['dashboard']); + + $controller = null; + $rules_access = null; + + foreach ($postData as $key=>$value){ + $exp = explode('_',$key); + $controller[] = $exp[0]; + } + + if($controller != null){ + foreach (array_unique($controller) as $item){ + $rules_access[$item] = []; + + foreach ($postData as $key=>$value){ + $exp = explode('_',$key); + if($exp[0] == $item){ + array_push($rules_access[$item],str_replace($exp[0].'_','',$key)) ; + } + } + } + } + + $temp_data['id_group'] = $id_group; + $temp_data['rules'] = json_encode($rules_access??'{}'); + $temp_data['token'] = $token; + $temp_data['title'] = $title; + $temp_data['dashboard'] = $dashboard; + + $sanitizedData = $this->sanitized($temp_data, $nullIfEmpty); + + + $noException = true; + if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) : + + + + if ($this->canValidate()) : + try { + $successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData); + } catch (\Exception $e) { + $noException = false; + $this->dealWithException($e); + } + else: + $this->viewData['warningMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('Group.userGroup'))]); + $this->session->setFlashdata('formErrors', $this->model->errors()); + + endif; + + $groupEntity->fill($sanitizedData); + + $thenRedirect = true; + endif; + if ($noException && $successfulResult) : + $id = $groupEntity->id ?? $id; + $message = lang('Basic.global.updateSuccess', [mb_strtolower(lang('Group.userGroup'))]).'.'; + $message .= anchor(route_to('editGroup', $id), lang('Basic.global.continueEditing').'?'); + $message = ucfirst(str_replace("'", "\'", $message)); + + if($session->get('group') == $this->request->getPost('token')){ + $session->set('rules', $temp_data['rules']); + } + if ($thenRedirect) : + if (!empty($this->indexRoute)) : + return redirect()->to(route_to($this->indexRoute))->with('successMessage', $message); + else: + return $this->redirect2listView('successMessage', $message); + endif; + else: + $this->viewData['successMessage'] = $message; + endif; + + endif; // $noException && $successfulResult + endif; // ($requestMethod === 'post') + + $this->viewData['group'] = $groupEntity; + + $this->viewData['formAction'] = route_to('updateGroup', $id); + + $this->viewData['boxTitle'] = lang('Basic.global.edit2').' '.lang('Group.userGroup').' '.lang('Basic.global.edit3'); + + + return $this->displayForm(__METHOD__, $id); + } // end function edit(...) + + + + public function allItemsSelect() { + if ($this->request->isAJAX()) { + $onlyActiveOnes = true; + $reqVal = $this->request->getPost('val') ?? 'id'; + $menu = $this->model->getAllForMenu($reqVal.', nombre', 'nombre', $onlyActiveOnes, false); + $nonItem = new \stdClass; + $nonItem->id = ''; + $nonItem->nombre = '- '.lang('Basic.global.None').' -'; + array_unshift($menu , $nonItem); + + $newTokenHash = csrf_hash(); + $csrfTokenName = csrf_token(); + $data = [ + 'menu' => $menu, + $csrfTokenName => $newTokenHash + ]; + return $this->respond($data); + } else { + return $this->failUnauthorized('Invalid request', 403); + } + } + + public function menuItems() { + if ($this->request->isAJAX()) { + $searchStr = goSanitize($this->request->getPost('searchTerm'))[0]; + $reqId = goSanitize($this->request->getPost('id'))[0]; + $reqText = goSanitize($this->request->getPost('text'))[0]; + $onlyActiveOnes = false; + $columns2select = [$reqId ?? 'id', $reqText ?? 'nombre']; + $onlyActiveOnes = false; + $menu = $this->model->getSelect2MenuItems($columns2select, $columns2select[1], $onlyActiveOnes, $searchStr); + $nonItem = new \stdClass; + $nonItem->id = ''; + $nonItem->text = '- '.lang('Basic.global.None').' -'; + array_unshift($menu , $nonItem); + + $newTokenHash = csrf_hash(); + $csrfTokenName = csrf_token(); + $data = [ + 'menu' => $menu, + $csrfTokenName => $newTokenHash + ]; + return $this->respond($data); + } else { + return $this->failUnauthorized('Invalid request', 403); + } + } +} diff --git a/ci4/app/Controllers/Usuarios/Usersold.php b/ci4/app/Controllers/Usuarios/Usersold.php new file mode 100644 index 00000000..49a3d83b --- /dev/null +++ b/ci4/app/Controllers/Usuarios/Usersold.php @@ -0,0 +1,310 @@ +group_model = new UserGroupModel(); + $this->group_user_model = new GroupUserModel(); + $this->user_model = new UserModel(); + + $this->viewData['pageTitle'] = lang('Users.moduleTitle'); + parent::initController($request, $response, $logger); + + } + + public function index() { + + $this->viewData['usingClientSideDataTable'] = true; + + $this->viewData['pageSubTitle'] = lang('Basic.global.ManageAllRecords', [lang('Users.user')]); + + $this->viewData['user_model'] = $this->user_model; + + parent::index(); + + } + + public function add() { + + $requestMethod = $this->request->getMethod(); + + if ($requestMethod === 'post') : + + $nullIfEmpty = true; // !(phpversion() >= '8.1'); + + $postData = $this->request->getPost(); + + if(!empty($postData['password'])){ + $phpass = new PasswordHash(8, true); + $postData['password'] = $phpass->HashPassword($this->request->getPost('password')); + } + + $currentGroups = $postData['group']; + unset($postData['group']); + + $sanitizedData = $this->sanitized($postData, $nullIfEmpty); + + if ($this->request->getPost('last_ip') == null ) { + $sanitizedData['last_ip'] = '::1'; + } + + $sanitizedData['token'] = md5(uniqid(rand(), true)); + + $noException = true; + if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) : + + + if ($this->canValidate()) : + try { + $successfulResult = $this->model->skipValidation(true)->save($sanitizedData); + } catch (\Exception $e) { + $noException = false; + $this->dealWithException($e); + } + else: + $this->viewData['errorMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('Users.user'))]); + $this->session->setFlashdata('formErrors', $this->model->errors()); + endif; + + $thenRedirect = true; // Change this to false if you want your user to stay on the form after submission + endif; + if ($noException && $successfulResult) : + + $id = $this->model->db->insertID(); + foreach($currentGroups as $group){ + $group_user_data = [ + 'token_user' => $sanitizedData['token'], + 'token_group' => $group + ]; + $this->group_user_model->insert($group_user_data); + } + + $message = lang('Basic.global.saveSuccess', [mb_strtolower(lang('Users.user'))]) . 'Downloads'; + $message .= anchor(route_to('editUser', $id), lang('Basic.global.continueEditing').'?'); + $message = ucfirst(str_replace("'", "\'", $message)); + + if ($thenRedirect) : + if (!empty($this->indexRoute)) : + return redirect()->to(route_to($this->indexRoute))->with('successMessage', $message); + else: + return $this->redirect2listView('successMessage', $message); + endif; + else: + $this->viewData['successMessage'] = $message; + endif; + + endif; // $noException && $successfulResult + + endif; // ($requestMethod === 'post') + + $this->viewData['user'] = isset($sanitizedData) ? new UserEntity($sanitizedData) : new UserEntity(); + $this->viewData['paisList'] = $this->getPaisListItems(); + + $this->viewData['formAction'] = route_to('createUser'); + $this->viewData['groups'] = $this->group_model->select('token,title')->findAll(); + + $this->viewData['boxTitle'] = lang('Basic.global.addNew') . ' Users.php' .lang('Users.user').' '.lang('Basic.global.addNewSuffix'); + + + return $this->displayForm(__METHOD__); + } // end function add() + + public function edit($requestedId = null) { + + if ($requestedId == null) : + return $this->redirect2listView(); + endif; + $id = filter_var($requestedId, FILTER_SANITIZE_URL); + $user = $this->model->find($id); + + if ($user == false) : + $message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('Users.user')), $id]); + return $this->redirect2listView('errorMessage', $message); + endif; + + $requestMethod = $this->request->getMethod(); + + if ($requestMethod === 'post') : + + $nullIfEmpty = true; // !(phpversion() >= '8.1'); + + $postData = $this->request->getPost(); + $currentGroups = $postData['group']; + unset($postData['group']); + + if(!empty($postData['password'])){ + $phpass = new PasswordHash(8, true); + $postData['password'] = $phpass->HashPassword($this->request->getPost('password')); + } + + $sanitizedData = $this->sanitized($postData, $nullIfEmpty); + if ($this->request->getPost('tfa') == null ) { + $sanitizedData['tfa'] = false; + } + if ($this->request->getPost('blocked') == null ) { + $sanitizedData['blocked'] = false; + } + if ($this->request->getPost('last_ip') == null ) { + $sanitizedData['last_ip'] = '::1'; + } + + $noException = true; + if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) : + + + + if ($this->canValidate()) : + try { + $successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData); + } catch (\Exception $e) { + $noException = false; + $this->dealWithException($e); + } + else: + $this->viewData['warningMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('Users.user'))]); + $this->session->setFlashdata('formErrors', $this->model->errors()); + + endif; + + + $user->fill($sanitizedData); + + + + $thenRedirect = true; + endif; + if ($noException && $successfulResult) : + $postData = $this->request->getPost(); + + $this->group_user_model->where('token_user', $user->token)->delete(); + foreach($currentGroups as $group){ + $group_user_data = [ + 'token_user' => $user->token, + 'token_group' => $group + ]; + $this->group_user_model->insert($group_user_data); + } + + $id = $user->id_user ?? $id; + $message = lang('Basic.global.updateSuccess', [mb_strtolower(lang('Users.user'))]) . 'Downloads'; + $message .= anchor(route_to('editUser', $id), lang('Basic.global.continueEditing').'?'); + $message = ucfirst(str_replace("'", "\'", $message)); + + if ($thenRedirect) : + if (!empty($this->indexRoute)) : + return redirect()->to(route_to($this->indexRoute))->with('successMessage', $message); + else: + return $this->redirect2listView('successMessage', $message); + endif; + else: + $this->viewData['successMessage'] = $message; + endif; + + endif; // $noException && $successfulResult + endif; // ($requestMethod === 'post') + + $this->viewData['user'] = $user; + $this->viewData['paisList'] = $this->getPaisListItems(); + + $this->viewData['formAction'] = route_to('updateUser', $id); + + $this->viewData['selectedGroups'] = $this->group_user_model->select('token_group')->where('token_user', $user->token)->findAll(); + $this->viewData['groups'] = $this->group_model->select('token,title')->findAll(); + + $this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' Users.php' .lang('Users.user').' '.lang('Basic.global.edit3'); + + + return $this->displayForm(__METHOD__, $id); + } // end function edit(...) + + + + public function allItemsSelect() { + if ($this->request->isAJAX()) { + $onlyActiveOnes = true; + $reqVal = $this->request->getPost('val') ?? 'id_user'; + $menu = $this->model->getAllForMenu($reqVal.', first_name', 'first_name', $onlyActiveOnes, false); + $nonItem = new \stdClass; + $nonItem->id_user = ''; + $nonItem->first_name = '- '.lang('Basic.global.None').' -'; + array_unshift($menu , $nonItem); + + $newTokenHash = csrf_hash(); + $csrfTokenName = csrf_token(); + $data = [ + 'menu' => $menu, + $csrfTokenName => $newTokenHash + ]; + return $this->respond($data); + } else { + return $this->failUnauthorized('Invalid request', 403); + } + } + + public function menuItems() { + if ($this->request->isAJAX()) { + $searchStr = goSanitize($this->request->getPost('searchTerm'))[0]; + $reqId = goSanitize($this->request->getPost('id'))[0]; + $reqText = goSanitize($this->request->getPost('text'))[0]; + $onlyActiveOnes = false; + $columns2select = [$reqId ?? 'id_user', $reqText ?? 'first_name']; + $onlyActiveOnes = false; + $menu = $this->model->getSelect2MenuItems($columns2select, $columns2select[1], $onlyActiveOnes, $searchStr); + $nonItem = new \stdClass; + $nonItem->id = ''; + $nonItem->text = '- '.lang('Basic.global.None').' -'; + array_unshift($menu , $nonItem); + + $newTokenHash = csrf_hash(); + $csrfTokenName = csrf_token(); + $data = [ + 'menu' => $menu, + $csrfTokenName => $newTokenHash + ]; + return $this->respond($data); + } else { + return $this->failUnauthorized('Invalid request', 403); + } + } + + + protected function getPaisListItems() { + $data = [''=>lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Pais.pais'))])]; + $paisModel = model('App\Models\Configuracion\PaisModel'); + + $registers = $paisModel->findAll(); + + return $registers; + } + +} diff --git a/ci4/app/Controllers/Viewmode.php b/ci4/app/Controllers/Viewmode.php new file mode 100644 index 00000000..1be08ba3 --- /dev/null +++ b/ci4/app/Controllers/Viewmode.php @@ -0,0 +1,18 @@ +remove('view_mode'); + $session->set('view_mode', $viewMode); + $url = previous_url(); + return redirect()->to($url); + } +} diff --git a/ci4/app/Filters/LoginAuthFilter.php b/ci4/app/Filters/LoginAuthFilter.php index a1cce1a3..1f24268e 100644 --- a/ci4/app/Filters/LoginAuthFilter.php +++ b/ci4/app/Filters/LoginAuthFilter.php @@ -107,15 +107,18 @@ class LoginAuthFilter implements FilterInterface 'Clientes', 'Compras', 'Configuracion', - 'ServiciosDigitalizacion', + 'EnviosLogistica', 'Facturacion', 'Informes', 'Importacion', - 'EnviosLogistica', 'Pedidos', 'Presupuestos', 'Produccion', 'Proveedores', + 'ServiciosCompras', + 'ServiciosMaquetacion', + 'ServiciosMensajeria', + 'ServiciosDigitalizacion', 'Tarifas', 'Usuarios', ]; @@ -141,9 +144,10 @@ class LoginAuthFilter implements FilterInterface 'Integration', 'Migrate', 'Test', + 'Viewmode', 'GoBaseController', 'GoBaseResourceController', - 'My', 'Activity', 'Notification' // PARA LA DEMO + 'My', 'Usuarios', 'Notification' // PARA LA DEMO ]; } diff --git a/ci4/app/Language/en/App.php b/ci4/app/Language/en/App.php index 469cd940..d3641a7b 100644 --- a/ci4/app/Language/en/App.php +++ b/ci4/app/Language/en/App.php @@ -692,6 +692,10 @@ return [ "menu_trabajo" => "Works", "menu_trabajo" => "Tipologies", + "menu_mensajes" => "Messages", + + "menu_maquetacion" => "Maquetación", + "menu_digitalizacion" => "Digitalisation", "menu_importacion" => "Import", @@ -708,6 +712,12 @@ return [ "menu_logistica_tracking" => "Tracking", + "menu_compras" => "Procurement", + "menu_compras_ajustes" => "Settings", + "menu_productos" => "Products", + "menu_proveedores" => "Providers", + + "menu_facturación" => "Billing", "menu_albaran" => "Delivery notes", "menu_facturas" => "Invoices", diff --git a/ci4/app/Language/es/App.php b/ci4/app/Language/es/App.php index 59f5b4cc..60fcdd62 100644 --- a/ci4/app/Language/es/App.php +++ b/ci4/app/Language/es/App.php @@ -691,7 +691,11 @@ return [ "menu_tiposimpresion" => "Tipos de impresion", "menu_trabajo" => "Trabajos", "menu_tipologias" => "Tipologías", - + + "menu_mensajes" => "Mensajes", + + "menu_maquetacion" => "Maquetación", + "menu_digitalizacion" => "Digitalización", "menu_importacion" => "Importación", @@ -709,6 +713,11 @@ return [ "menu_logistica_tracking" => "Tracking", + "menu_compras" => "Compras", + "menu_compras_ajustes" => "Ajustes", + "menu_productos" => "Productos", + "menu_proveedores" => "Proveedores", + "menu_facturación" => "Facturación", "menu_albaran" => "Albaranes", @@ -739,8 +748,6 @@ return [ "menu_pedidoproduccion" => "Pedidos", "menu_ordentrabajo" => "Orden de trabajo", - "menu_proveedores" => "Proveedores", - "menu_tarifas" => "Tarifas", "menu_tarifapreimpresion" => "Preimpresión", "menu_tarifamanipulado" => "Manipulado", @@ -758,7 +765,7 @@ return [ "menu_general" => "General", "menu_logout" => "Salir", "menu_profile" => "Mi Perfil", - "menu_activity" => "Ocupaciones", + "menu_activity" => "Actividad", "menu_notification" => "Notificaciones", "menu_list" => "Lista", "menu_add" => "Agregar", diff --git a/ci4/app/Views/themes/backend/vuexy/main/all.php b/ci4/app/Views/themes/backend/vuexy/main/all.php index 2f1bcbe2..db682dd1 100644 --- a/ci4/app/Views/themes/backend/vuexy/main/all.php +++ b/ci4/app/Views/themes/backend/vuexy/main/all.php @@ -96,7 +96,7 @@ if (!empty($token) && $tfa == false) {
- +
@@ -153,7 +153,8 @@ if (!empty($token) && $tfa == false) {
- +
@@ -197,7 +198,8 @@ if (!empty($token) && $tfa == false) {
- +
@@ -243,7 +245,8 @@ if (!empty($token) && $tfa == false) {
- +
@@ -289,7 +292,8 @@ if (!empty($token) && $tfa == false) {
- +
@@ -311,7 +315,8 @@ if (!empty($token) && $tfa == false) {
- +
@@ -367,9 +372,60 @@ if (!empty($token) && $tfa == false) { + + + +