/** * * @return array */ public function updateAction() { if ($this->getRequest()->isPost()) { $params = $this->getRequest()->getParams(); $id = $this->getRequest()->getParam('id'); $printingTechnique = PrintingTechniqueQuery::create()->findByPKOrThrow($id, $this->i18n->_("Not exists the PrintingTechnique with id {$id}")); try { $this->getPrintingTechniqueCatalog()->beginTransaction(); PrintingTechniqueFactory::populate($printingTechnique, $params); $this->getPrintingTechniqueCatalog()->update($printingTechnique); foreach ($params['printingSizes'] as $idPrintingSize => $price) { if (PrintingTechniqueSizeQuery::create()->whereAdd(PrintingTechniqueSize::ID_PRINTING_SIZE, $idPrintingSize)->whereAdd(PrintingTechniqueSize::ID_PRINTING_TECHNIQUE, $id)->count()) { $printingTechniqueSize = PrintingTechniqueSizeQuery::create()->whereAdd(PrintingTechniqueSize::ID_PRINTING_SIZE, $idPrintingSize)->whereAdd(PrintingTechniqueSize::ID_PRINTING_TECHNIQUE, $id)->findOne(); $printingTechniqueSize->setPrice($price); $this->getPrintingTechniqueSizeCatalog()->update($printingTechniqueSize); } else { $printingTechniqueSize = new PrintingTechniqueSize(); $printingTechniqueSize->setIdPrintingTechnique($printingTechnique->getIdPrintingTechnique()); $printingTechniqueSize->setIdPrintingSize($idPrintingSize); $printingTechniqueSize->setPrice($price); $this->getPrintingTechniqueSizeCatalog()->create($printingTechniqueSize); } } // echo '<pre>'; // print_r($printingTechnique); // print_r($params); // die; $this->getPrintingTechniqueCatalog()->commit(); $this->setFlash('ok', $this->i18n->_("It has been updated the Printing Technique with id " . $printingTechnique->getIdPrintingTechnique())); } catch (Exception $e) { $this->getPrintingTechniqueCatalog()->rollBack(); $this->setFlash('error', $this->i18n->_($e->getMessage())); } } $this->_redirect('printing-technique/list'); }
/** * * makeBean * @param array $resultset * @return \Application\Model\Bean\PrintingTechnique */ protected function makeBean($resultset) { return PrintingTechniqueFactory::createFromArray($resultset); }