/**
  *
  * @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');
 }
Exemplo n.º 2
0
 /**
  *
  * makeBean
  * @param array $resultset
  * @return \Application\Model\Bean\PrintingTechnique
  */
 protected function makeBean($resultset)
 {
     return PrintingTechniqueFactory::createFromArray($resultset);
 }