예제 #1
0
 /**
  * Método para crear/modificar un objeto de base de datos
  * 
  * @param string $medthod: create, update
  * @param array $data: Data para autocargar el modelo
  * @param array $optData: Data adicional para autocargar
  * 
  * return object ActiveRecord
  */
 public static function setMenu($method, $data, $optData = null)
 {
     $obj = new Menu($data);
     //Se carga los datos con los de las tablas
     if ($optData) {
         //Se carga información adicional al objeto
         $obj->dump_result_self($optData);
     }
     //Verifico que no exista otro menu, y si se encuentra inactivo lo active
     $conditions = empty($obj->id) ? "recurso_id='{$obj->recurso_id}' AND visibilidad={$obj->visibilidad}" : "recurso_id='{$obj->recurso_id}' AND visibilidad={$obj->visibilidad} AND id != '{$obj->id}'";
     $old = new Menu();
     if ($old->find_first($conditions)) {
         if ($method == 'create' && $old->activo != Menu::ACTIVO) {
             $obj->id = $old->id;
             $obj->activo = Menu::ACTIVO;
             $method = 'update';
         } else {
             DwMessage::info('Ya existe un menú registrado para ese recurso y visibilidad.');
             return FALSE;
         }
     }
     return $obj->{$method}() ? $obj : FALSE;
 }
예제 #2
0
 /**
  * Método para eliminar
  */
 public function eliminar($key)
 {
     if (!($id = Security::getKey($key, 'eliminar_menu', 'int'))) {
         return Redirect::toAction('listar');
     }
     $menu = new Menu();
     if (!$menu->find_first($id)) {
         Flash::error('Lo sentimos, pero no se ha podido establecer la información del menú');
         return Redirect::toAction('listar');
     }
     if ($menu->id <= 2) {
         Flash::warning('Lo sentimos, pero este menú no se puede eliminar.');
         return Redirect::toAction('listar');
     }
     try {
         if ($menu->delete()) {
             Flash::valid('El menú se ha eliminado correctamente!');
         } else {
             Flash::warning('Lo sentimos, pero este menú no se puede eliminar.');
         }
     } catch (KumbiaException $e) {
         Flash::error('Este menú no se puede eliminar porque se encuentra relacionado con otro registro.');
     }
     return Redirect::toAction('listar');
 }
예제 #3
0
 /**
  * Método para actualizar el archivo config.ini según los parámetros enviados
  * 
  * @param type $data Campos de los formularios
  * @param type $source Production o Deveploment
  * @param type $createDb Indica si se crea o no la base de datos
  * @return boolean
  */
 public static function setConfig($data, $source = 'application')
 {
     //Verifico si tiene permisos de escritura para crear y editar un archvivo.ini
     if (!is_writable(APP_PATH . 'config')) {
         MkcMessage::warning('Asigna temporalmente el permiso de escritura a la carpeta "config" de tu app!.');
         return false;
     }
     //Filtro el array
     $data = Filter::data($data, null, 'trim');
     $rs = MkcConfig::write('config', $data, $source);
     if ($rs && $source == 'custom') {
         //Para verificar si está habilitado el manejo de sucursales
         $config = MkcConfig::read('config', 'custom');
         $menu = new Menu();
         $menu->find_first(Menu::SUCURSAL);
         $menu->activo = $config['app_office'] == 'Off' ? Menu::INACTIVO : Menu::ACTIVO;
         $menu->update();
     }
     if ($rs) {
         MkcAudit::info('Se ha actualizado el archivo de configuración del sistema');
     }
     return $rs;
 }
예제 #4
0
 /**
  * Método para eliminar
  */
 public function eliminar($key)
 {
     if (!($id = MkcSecurity::isValidKey($key, 'eliminar_menu', 'int'))) {
         return MkcRedirect::toAction('listar');
     }
     $menu = new Menu();
     if (!$menu->find_first($id)) {
         MkcMessage::get('id_no_found');
         return MkcRedirect::toAction('listar');
     }
     if ($menu->id <= 2) {
         MkcMessage::warning('Lo sentimos, pero este menú no se puede eliminar.');
         return MkcRedirect::toAction('listar');
     }
     try {
         if ($menu->delete()) {
             MkcMessage::valid('El menú se ha eliminado correctamente!');
         } else {
             MkcMessage::warning('Lo sentimos, pero este menú no se puede eliminar.');
         }
     } catch (KumbiaException $e) {
         MkcMessage::error('Este menú no se puede eliminar porque se encuentra relacionado con otro registro.');
     }
     return MkcRedirect::toAction('listar');
 }