예제 #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 setRecurso($method, $data, $optData = null)
 {
     $obj = new Recurso($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 recurso, y si se encuentra inactivo lo active
     $conditions = empty($obj->id) ? "modulo='{$obj->modulo}' AND controlador='{$obj->controlador}' AND accion='{$obj->accion}'" : "modulo='{$obj->modulo}' AND controlador='{$obj->controlador}' AND accion='{$obj->accion}' AND id != '{$obj->id}'";
     $old = new Recurso();
     if ($old->find_first($conditions)) {
         if ($method == 'create' && $old->activo != Recurso::ACTIVO) {
             $obj->id = $old->id;
             $obj->activo = Recurso::ACTIVO;
             $method = 'update';
         } else {
             MkcMessage::info('Ya existe un recurso registrado bajo esos parámetros.');
             return FALSE;
         }
     }
     return $obj->{$method}() ? $obj : FALSE;
 }