/** * Get the associated Rol object * * @param PropelPDO $con Optional Connection object. * @param $doQuery Executes a query to get the object if required * @return Rol The associated Rol object. * @throws PropelException */ public function getRol(PropelPDO $con = null, $doQuery = true) { if ($this->aRol === null && $this->idrol !== null && $doQuery) { $this->aRol = RolQuery::create()->findPk($this->idrol, $con); /* The following can be used additionally to guarantee the related object contains a reference to this object. This level of coupling may, however, be undesirable since it could result in an only partially populated collection in the referenced object. $this->aRol->addRolmodulos($this); */ } return $this->aRol; }
public function editarAction() { //Cachamos el valor desde nuestro params $id = (int) $this->params()->fromRoute('id'); //Verificamos que el Id articulo que se quiere modificar exista if (!\RolQuery::create()->filterByIdrol($id)->exists()) { $id = 0; } //Si es incorrecto redireccionavos al action nuevo if (!$id) { return $this->redirect()->toRoute('empleados-roles', array('action' => 'nuevo')); } $request = $this->getRequest(); $rol = \RolQuery::create()->findPk($id); //Modulos disponibles $modulosCollection = \ModuloQuery::create()->find(); $all_modulos = array(); foreach ($modulosCollection as $modulo) { $all_modulos[$modulo->getIdmodulo()] = $modulo->getModuloNombre(); } $modulos = $rol->getRolmodulos()->toArray(); $form = new \Empleados\Form\RolForm(); //Le ponemos los datos de nuestro articulo a nuestro formulario $form->setData($rol->toArray(\BasePeer::TYPE_FIELDNAME)); if ($request->isPost()) { //Si hicieron POST $post_data = $request->getPost(); $filter = new \Empleados\Filter\RolFilter(); $form->setInputFilter($filter->getInputFilter()); //Le ponemos los datos a nuestro formulario $form->setData($request->getPost()); //Validamos nuestro formulario de articulo if ($form->isValid()) { //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Articulo foreach ($form->getData() as $key => $value) { $rol->setByName($key, $value, \BasePeer::TYPE_FIELDNAME); } $rol->save(); //Los modulos los eliminamos foreach ($modulos as $modulo) { $rolmodulo = \RolmoduloQuery::create()->findPk($modulo['Idrolmodulo']); $rolmodulo->delete(); } if (isset($post_data["modulos"])) { foreach ($post_data["modulos"] as $idmodulo) { $rolmodulo = new \Rolmodulo(); $rolmodulo->setIdrol($rol->getIdrol()); $rolmodulo->setIdmodulo($idmodulo); $rolmodulo->save(); } } //Agregamos un mensaje $this->flashMessenger()->addMessage('Rol modifcado exitosamente!'); //Redireccionamos a nuestro list $this->redirect()->toRoute('empleados-roles'); } } return new ViewModel(array('id' => $id, 'form' => $form, 'modulos' => json_encode($modulos), 'all_modulos' => $all_modulos)); }
/** * Removes this object from datastore and sets delete attribute. * * @param PropelPDO $con * @return void * @throws PropelException * @throws Exception * @see BaseObject::setDeleted() * @see BaseObject::isDeleted() */ public function delete(PropelPDO $con = null) { if ($this->isDeleted()) { throw new PropelException("This object has already been deleted."); } if ($con === null) { $con = Propel::getConnection(RolPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $con->beginTransaction(); try { $deleteQuery = RolQuery::create()->filterByPrimaryKey($this->getPrimaryKey()); $ret = $this->preDelete($con); if ($ret) { $deleteQuery->delete($con); $this->postDelete($con); $con->commit(); $this->setDeleted(true); } else { $con->commit(); } } catch (Exception $e) { $con->rollBack(); throw $e; } }
public function editarAction() { //Cachamos el valor desde nuestro params $id = (int) $this->params()->fromRoute('id'); //Verificamos que el Id articulo que se quiere modificar exista if (!\EmpleadoQuery::create()->filterByIdempleado($id)->exists()) { $id = 0; } //Si es incorrecto redireccionavos al action nuevo if (!$id) { return $this->redirect()->toRoute('empleados', array('action' => 'nuevo')); } $request = $this->getRequest(); $empleado = \EmpleadoQuery::create()->findPk($id); //Roles disponibles $rolesCollection = \RolQuery::create()->find(); $rolesArray = array(); foreach ($rolesCollection as $rol) { $rolesArray[$rol->getIdrol()] = $rol->getRolNombre(); } $form = new \Empleados\Form\EmpleadoForm($rolesArray); //Le ponemos los datos de nuestro articulo a nuestro formulario $form->setData($empleado->toArray(\BasePeer::TYPE_FIELDNAME)); //La imagen del empleado $empleado_imagen = $empleado->getEmpleadoImagen(); if (is_null($empleado_imagen)) { $empleado_imagen = '/img/empleados/default_profile.jpg'; } if ($request->isPost()) { //Si hicieron POST $post_data = $request->getPost(); $filter = new \Empleados\Filter\EmpleadoFilter(); $form->setInputFilter($filter->getInputFilter()); //Le ponemos los datos a nuestro formulario $form->setData($request->getPost()); //Validamos nuestro formulario de articulo if ($form->isValid()) { //Recorremos nuestro formulario y seteamos los valores a nuestro objeto Articulo foreach ($form->getData() as $key => $value) { if ($key == 'empleado_password') { if (!empty($value)) { $empleado->setByName($key, md5($value), \BasePeer::TYPE_FIELDNAME); } } else { $empleado->setByName($key, $value, \BasePeer::TYPE_FIELDNAME); } } //La imagen if (!empty($_FILES["empleado_imagen"]["name"])) { $date = new \DateTime(); $upload_folder = '/img/empleados/'; $tipo_archivo = $_FILES['empleado_imagen']['type']; $tipo_archivo = explode('/', $tipo_archivo); $tipo_archivo = $tipo_archivo[1]; $nombre_archivo = 'empleado-' . $date->getTimestamp() . '.' . $tipo_archivo; $tmp_archivo = $_FILES['empleado_imagen']['tmp_name']; $archivador = $upload_folder . $nombre_archivo; if (!move_uploaded_file($tmp_archivo, $_SERVER["DOCUMENT_ROOT"] . $archivador)) { return $this->getResponse()->setContent(\Zend\Json\Json::encode(array('response' => false, 'msg' => 'Ocurrio un error al subir el archivo. No pudo guardarse.', 'status' => 'error'))); } //Tiene alguna imagen actualmente? if (!is_null($empleado->getEmpleadoImagen())) { $empleado_imagen = $empleado->getEmpleadoImagen(); unlink($_SERVER["DOCUMENT_ROOT"] . $empleado_imagen); } $empleado->setEmpleadoImagen($archivador); } $empleado->save(); //Agregamos un mensaje $this->flashMessenger()->addMessage('Empleado modifcado exitosamente!'); //Redireccionamos a nuestro list $this->redirect()->toRoute('empleados'); } } return new ViewModel(array('id' => $id, 'form' => $form, 'empleado_imagen' => $empleado_imagen)); }