/** * * @return array */ public function updateAction() { $form = $this->getForm(); if ($this->getRequest()->isPost()) { $params = $this->getRequest()->getParams(); if (!$form->isValid($params)) { $this->view->setTpl("New"); $this->view->form = $form; return; } $id = $this->getRequest()->getParam('id'); $questionMatrixResponse = QuestionMatrixResponseQuery::create()->findByPKOrThrow($id, $this->i18n->_("It does not exist the QuestionMatrixResponse with id {$id}")); try { $this->getQuestionMatrixResponseCatalog()->beginTransaction(); QuestionMatrixResponseFactory::populate($questionMatrixResponse, $form->getValues()); $this->getQuestionMatrixResponseCatalog()->update($questionMatrixResponse); $this->getQuestionMatrixResponseCatalog()->commit(); $this->setFlash('ok', $this->i18n->_("Se actualizo correctamente el QuestionMatrixResponse")); } catch (Exception $e) { $this->getQuestionMatrixResponseCatalog()->rollBack(); $this->setFlash('error', $this->i18n->_($e->getMessage())); } } $this->_redirect('question-matrix-response/list'); }
/** * Metodo para actualizar varios QuestionMatrixResponses de tipo Coll en la base de datos * @param array $headers array de objetos QuestionMatrixResponse * @param array $updateHeaders array compuesto por id y nueva descripción */ public function updateCols($headers, $updateHeaders, $idQuestion) { try { foreach ($updateHeaders as $updateHeader) { if ($updateHeader["id_matrix_response"] > 0) { QuestionMatrixResponseFactory::populate($headers[$updateHeader["id_matrix_response"]], $updateHeader); $this->update($headers[$updateHeader["id_matrix_response"]]); unset($headers[$updateHeader["id_matrix_response"]]); } else { $header = new QuestionMatrixResponse(); $header->setDescription($updateHeader["description"])->setHeaderType(QuestionMatrixResponse::$HeaderType["Col"])->setIdQuestion($idQuestion); $this->create($header); } } foreach ($headers as $header) { $header->setStatus(QuestionMatrixResponse::$Status["Inactive"]); $this->update($header); } } catch (Exception $e) { $this->throwException("The QuestionMatrixResponses can't be saved \n", $e); } }