public static function init($row, $id = null) { $objGrupo = new Grupo(); try { if (is_null($id)) { $objGrupo->setId($row->gru_id); } else { $objGrupo->setId($row->{$id}); throw new \Exception(); } $objGrupo->setActivo($row->gru_activo); $objGrupo->setHabilitado($row->gru_habilitado); $objGrupo->setNombre($row->gru_nombre); $objGrupo->setDescripcion($row->gru_descripcion); $objGrupo->setFechaAlta($row->gru_fecha_alta); $objGrupo->setFechaMod($row->gru_fecha_mod); $objGrupo->setFechaBaja($row->gru_fecha_baja); $objGrupo->isFromDb(true); } catch (\Exception $e) { return $objGrupo; } return $objGrupo; }
public function saveAction() { $this->layout('layout/empty'); if ('POST' == $_SERVER['REQUEST_METHOD']) { $gru_id = $_POST["gru_id"]; $nombre = $_POST["nombre"]; $descripcion = $_POST["descripcion"]; $habilitado = $_POST["habilitado"]; $id_permisos = array(); foreach ($_POST as $key => $value) { $substring = substr($key, 0, 10); if ("id_gru_pe_" == $substring) { $id_permisos[$value] = $value; } } $id_usuarios = array(); foreach ($_POST as $key => $value) { $substring = substr($key, 0, 11); if ("id_gru_usu_" == $substring) { $id_usuarios[$value] = $value; } } //TODO: Crear las constantes para los Eventos de los permisos # eve_id: 2 = Crear Grupo; 3 = Modificar Grupo if ((int) $gru_id > 0) { $message = "Grupo modificado correctamente"; $eve_id = 3; } else { $message = "Grupo creado correctamente"; $eve_id = 2; } $grupoDao = new GrupoDao($this->getServiceLocator()); $grupoPermisoDAO = new GrupoPermisoDao($this->getServiceLocator()); $grupoUsuarioDAO = new GrupoUsuarioDao($this->getServiceLocator()); try { if (!Validator::required($nombre)) { throw new Exception(); } #Requerido if (!Validator::inSize($nombre, 3, 32)) { throw new Exception(); } #Min: 3 - #Max: 32 if (!Validator::onlySentence($nombre)) { throw new Exception(); } #Oración if (!Validator::inSizeNullable($descripcion, 3, 500)) { throw new Exception(); } #Min: 3 - #Max: 500 if (!Validator::onlySentence($descripcion)) { throw new Exception(); } #Oración if (!Validator::onlyBoolean($habilitado)) { throw new Exception(); } #Oración $objGrupo = new Grupo(); $objGrupo->setId($gru_id); $objGrupo->setNombre($nombre); $objGrupo->setDescripcion($descripcion); $objGrupo->setHabilitado($habilitado); $objGrupo->setActivo(1); //TODO: Da error cuando quiero guardar y no le hago una modificación a descripción if ($grupoDao->save($objGrupo)) { #Success $code = RestResponse::OK; $data["objectID"] = $objGrupo->getId(); } else { #Fail $code = RestResponse::SERVER_ERROR; $message = "Error a guardar Grupo"; ExpLogSeguridad::save($this->getServiceLocator(), $eve_id, $code, $message, $objGrupo->getJSON(), null); throw new Exception($message); //TODO: El parámetro de Usuario debe ser completado con el usuario que inicia sesión } $grupoPermisoDAO->deleteByGrupo($objGrupo->getId()); foreach ($id_permisos as $id_permiso) { $objGrupoPermiso = new GrupoPermiso(); $objGrupoPermiso->getPermiso()->setId($id_permiso); $objGrupoPermiso->getGrupo()->setId($objGrupo->getId()); if (!$grupoPermisoDAO->save($objGrupoPermiso)) { $code = RestResponse::SERVER_ERROR; $message = "Error a guardar Grupo"; ExpLogSeguridad::save($this->getServiceLocator(), $eve_id, $code, $message, $objGrupo->getJSON(), null); throw new Exception($message); } } ExpLogSeguridad::save($this->getServiceLocator(), $eve_id, $code, $message, $objGrupo->getJSON(), null); //TODO: El parámetro de Usuario debe ser completado con el usuario que inicia sesión RestResponse::createResponse($code, $data, $message); } catch (Exception $e) { $code = RestResponse::SERVER_ERROR; $message = "No se pudieron guardar los cambios en el Grupo. " . $e->getMessage(); ExpLogSeguridad::save($this->getServiceLocator(), $eve_id, $code, $message, null, null); RestResponse::createResponse($code, null, $message); } } }