public static function listModulesAndSubmodules()
 {
     $oBus = new Response_Business();
     $MY =& MY_Controller::get_instance();
     /* @var $mModule Module_Model */
     $mModule =& $MY->mModule;
     $modules_submodules = array();
     try {
         $eModule_Parents = $mModule->listModules(NULL, Module_Model::ORDER_BY_ORDER, Helper_App_Session::isAdminProfile());
         if (!empty($eModule_Parents)) {
             /* @var $eModule_Parent eModule */
             foreach ($eModule_Parents as $eModule_Parent) {
                 // submodulos
                 $eModule_Children = $mModule->listModules($eModule_Parent->id, Module_Model::ORDER_BY_ORDER, Helper_App_Session::isAdminProfile());
                 $modules_submodules[] = array('eModule_Parent' => $eModule_Parent, 'eModule_Children' => $eModule_Children);
             }
         }
         $oBus->isSuccess(TRUE);
     } catch (Exception $ex) {
         $oBus->isSuccess(FALSE);
         $oBus->isSuccess($ex->getMessage());
     }
     $oBus->data(array('modules_submodules' => $modules_submodules));
     return $oBus;
 }
 public static function listProfile($txt_filter, $limit, $offset)
 {
     $oBus = new Response_Business();
     $MY =& MY_Controller::get_instance();
     /* @var $mProfile Profile_Model */
     $mProfile =& $MY->mProfile;
     $eProfiles = array();
     $eRoles = array();
     $count = 0;
     try {
         $filter = new filterProfile();
         $filter->limit = $limit;
         $filter->offset = $offset;
         $filter->text = $txt_filter;
         $filter->isActive = NULL;
         $filter->withSuperAdmin = Helper_App_Session::isSuperAdminProfile();
         $filter->withAdmin = Helper_App_Session::isAdminProfile();
         $filter->isEditable = Helper_App_Session::isSuperAdminProfile() ? NULL : 1;
         $mProfile->filter($filter, $eProfiles, $eRoles, $count);
         $oBus->isSuccess(TRUE);
     } catch (Exception $ex) {
         $oBus->isSuccess(FALSE);
         $oBus->message($ex->getMessage());
     }
     $oBus->data(array('eProfiles' => $eProfiles, 'eRoles' => $eRoles, 'count' => $count));
     return $oBus;
 }
 public static function saveAcount(ePerson $ePerson, eUser $eUser, eUserProfile $eUserProfile, $eUserProfile_CompanyBranches)
 {
     $oBus = new Response_Business();
     $MY =& MY_Controller::get_instance();
     /* @var $mPerson Person_Model */
     $mPerson =& $MY->mPerson;
     /* @var $mUser User_Model */
     $mUser =& $MY->mUser;
     /* @var $mUserProfile User_Profile_Model */
     $mUserProfile =& $MY->mUserProfile;
     /* @var $mUserProfileCompanyBranch User_Profile_Company_Branch_Model */
     $mUserProfileCompanyBranch =& $MY->mUserProfileCompanyBranch;
     $oTransaction = new MY_Business();
     $oTransaction->begin();
     try {
         if (!Helper_App_Session::isAdminProfile() || !Helper_App_Session::isSuperAdminProfile()) {
             if (Business_App_Person::isValidDocument($ePerson->document)) {
                 throw new Exception('Documento Invalido, No permitido');
             }
         }
         $ePersonT = $mPerson->loadByDocument($ePerson->document, $ePerson->id);
         if (!$ePersonT->isEmpty()) {
             throw new Exception('Persona Existente');
         }
         $eUserT = $mUser->load($eUser->username, 'username', $eUser->id);
         if (!$eUserT->isEmpty()) {
             throw new Exception('Usuario Existente');
         }
         $mPerson->save($ePerson);
         $mUser->save($eUser);
         $eUserProfileT = $mUserProfile->loadArray(array('id_user' => $eUser->id, 'id_profile' => $eUserProfile->id_profile));
         $eUserProfile->id_user = $eUser->id;
         $eUserProfile->id = $eUserProfileT->id;
         $mUserProfile->save($eUserProfile);
         $mUserProfileCompanyBranch->deleteByUserProfile($eUserProfile->id);
         if (!empty($eUserProfile_CompanyBranches)) {
             /* @var $eUserProfileCompanyBranch eUserProfileCompanyBranch */
             foreach ($eUserProfile_CompanyBranches as $eUserProfileCompanyBranch) {
                 $eUserProfileCompanyBranch->id_user_profile = $eUserProfile->id;
                 $mUserProfileCompanyBranch->save($eUserProfileCompanyBranch);
             }
         }
         $oTransaction->commit();
         $oBus->isSuccess(TRUE);
         $oBus->message("Guardado exitosamente");
     } catch (Exception $e) {
         $oTransaction->rollback();
         $oBus->isSuccess(FALSE);
         $oBus->message($e->getMessage());
     }
     return $oBus;
 }
 public static function savePerson(ePerson $ePerson)
 {
     $oBus = new Response_Business();
     $MY =& MY_Controller::get_instance();
     /* @var $mPerson Person_Model */
     $mPerson =& $MY->mPerson;
     $oTransaction = new MY_Business();
     $oTransaction->begin();
     try {
         $ePersonT = $mPerson->load($ePerson->id);
         if (!Helper_App_Session::isAdminProfile() || !Helper_App_Session::isSuperAdminProfile()) {
             if (self::isValidDocument($ePerson->document)) {
                 throw new Exception('Documento Invalido: ' + $ePerson->document);
             }
             if ($ePersonT->tipo_documento != $ePerson->tipo_documento) {
                 throw new Exception('No tiene permisos para editar el tipo de documento');
             }
             if ($ePersonT->document != $ePerson->document) {
                 throw new Exception('No tiene permisos para editar el documento');
             }
         }
         $ePersonDocument = $mPerson->loadByDocument($ePerson->document, $ePerson->id);
         if (!$ePersonDocument->isEmpty()) {
             throw new Exception('Documento Existente: ' + $ePerson->document);
         }
         $mPerson->save($ePerson);
         $oBus->isSuccess(TRUE);
         $oBus->message("Guardado exitosamente");
         $oTransaction->commit();
     } catch (Exception $e) {
         $oTransaction->rollback();
         $oBus->isSuccess(FALSE);
         $oBus->message($e->getMessage());
     }
     return $oBus;
 }
 static function layout($view, $arrParams = array(), $arrParamsLayout = array(), $useIframe = FALSE)
 {
     $MY =& MY_Controller::get_instance();
     /* @var $mConfigurationSystem Configuration_System_Model */
     $mConfigurationSystem =& $MY->mConfigurationSystem;
     /* @var $mCompany Company_Model */
     $mCompany =& $MY->mCompany;
     /* @var $mCompanyBranch Company_Branch_Model */
     $mCompanyBranch =& $MY->mCompanyBranch;
     /* @var $mProfile profile_Model */
     $mProfile =& $MY->mProfile;
     /* @var $mUser User_Model */
     $mUser =& $MY->mUser;
     /* @var $mPerson Person_Model */
     $mPerson =& $MY->mPerson;
     /* @var $mUserProfile User_Profile_Model*/
     $mUserProfile =& $MY->mUserProfile;
     /* @var $mUserProfileCompanyBranch User_Profile_Company_Branch_Model */
     $mUserProfileCompanyBranch =& $MY->mUserProfileCompanyBranch;
     /* @var $mAppVersion App_Version_Model */
     $mAppVersion =& $MY->mAppVersion;
     $id_system = Helper_Config::getSystemId();
     $id_company = Helper_App_Session::getCompanyId();
     $id_company_branch = Helper_App_Session::getCompanyBranchId();
     $id_profile = Helper_App_Session::getProfileId();
     $id_user = Helper_App_Session::getUserId();
     /* @var $eConfigurationSystem eConfigurationSystem */
     $eConfigurationSystem = $mConfigurationSystem->load($id_system);
     /* @var $eCompany eCompany */
     $eCompany = $mCompany->load($id_company);
     /* @var $eProfile eProfile */
     $eProfile = $mProfile->load($id_profile);
     /* @var $eUser eUser */
     $eUser = $mUser->load($id_user);
     /* @var $ePerson ePerson */
     $ePerson = $mPerson->load($eUser->id_person);
     /* @var $eAppVersion eAppVersion  */
     $eAppVersion = $mAppVersion->loadArray(array('isActive' => 1, 'isProject' => 1));
     $resources_path = 'resources/assets/app';
     $arrMenu = Helper_App_Permission::getMenu();
     $controller_current = $MY->uri->rsegment(1);
     $function_current = $MY->uri->rsegment(2);
     // ================================================================
     // ================================================================
     $eProfiles = $mUserProfile->listProfilesByUser($id_user, 1);
     $show_combo_perfiles = TRUE;
     $combo_perfiles = Helper_Array::entitiesToIdText($eProfiles, 'id', 'name', 'value', 'text', $id_profile);
     // ================================================================
     // ================================================================
     if (empty($eProfiles)) {
         $flash = new Response_Flash();
         $flash->message('Ningun Perfil disponible!');
         $flash->flashType(Response_Flash::FLASH_ERROR);
         Helper_App_Flash::set($flash);
         $show_combo_perfiles = FALSE;
         $useIframe = TRUE;
         $view = 'app/html/error/403';
     }
     // ================================================================
     // ================================================================
     $eCompanyBranches = Helper_App_Session::isSuperAdminProfile() || Helper_App_Session::isAdminProfile() ? $mCompanyBranch->listByCompany($id_company) : $mUserProfileCompanyBranch->listCompanyBranchsByUserProfile($id_user, $id_profile);
     $show_combo_sedes = TRUE;
     $combo_sedes = Helper_Array::entitiesToIdText($eCompanyBranches, 'id', 'name', 'value', 'text', $id_company_branch);
     if (empty($eCompanyBranches)) {
         $flash = new Response_Flash();
         $flash->message('Ninguna Sucursal disponible!');
         $flash->flashType(Response_Flash::FLASH_ERROR);
         Helper_App_Flash::set($flash);
         $show_combo_sedes = FALSE;
         $useIframe = TRUE;
         $view = 'app/html/error/403';
     }
     $content = '';
     if (is_array($view)) {
         foreach ($view as $v) {
             $content .= $MY->load->view($v, $arrParams, true);
         }
     } else {
         $content = $MY->load->view($view, $arrParams, true);
     }
     $browser = Helper_App_Session::isIExplorer();
     $arrParamsLayoutDefault = array('useIframe' => $useIframe, 'resources_path' => $resources_path, 'content' => $content, 'arrMenu' => $arrMenu, 'controller_current' => $controller_current, 'function_current' => $function_current, 'navegador' => $browser, 'eConfigurationSystem' => $eConfigurationSystem, 'eCompany' => $eCompany, 'eProfile' => $eProfile, 'ePerson' => $ePerson, 'eUser' => $eUser, 'eAppVersion' => $eAppVersion, 'show_combo_perfiles' => $show_combo_perfiles, 'combo_perfiles' => $combo_perfiles, 'show_combo_sedes' => $show_combo_sedes, 'combo_sedes' => $combo_sedes);
     $MY->load->view('app/html/layout/layout', array_merge($arrParamsLayoutDefault, $arrParamsLayout));
 }