Exemplo n.º 1
0
 /**
  *
  * makeBean
  * @param array $resultset
  * @return \Application\Model\Bean\NpdSheet
  */
 protected function makeBean($resultset)
 {
     return NpdSheetFactory::createFromArray($resultset);
 }
Exemplo n.º 2
0
 /**
  * This action is used to create a npd sheet into database and redirect to npd list
  *
  * @author Erick Guevara Martínez
  * @return array
  */
 public function createAction()
 {
     if ($this->getRequest()->isPost()) {
         $params = $this->getRequest()->getParams();
         $npdSheet = NpdSheetFactory::createFromArray($params);
         try {
             $this->getCatalog("NpdSheetCatalog")->beginTransaction();
             $idSubfamily = $this->getRequest()->getParam('id_subfamily');
             if ($idSubfamily == '' || !SubfamilyQuery::create()->whereAdd(Subfamily::ID_SUBFAMILY, $idSubfamily)->count()) {
                 $npdSheet->setIdSubfamily(null);
             }
             $npdSheet->setStatus(NpdSheet::$Status["New"]);
             $this->getCatalog("NpdSheetCatalog")->create($npdSheet);
             $this->getEventDispatcherService()->dispatchNPDEvent($npdSheet, NPDEvent::NPD_CREATED);
             foreach ($_FILES as $name => $value) {
                 if ($value["name"] != "") {
                     $fileUploader = new FileUploader($name);
                     if (strstr($name, "image") != false) {
                         $filePath = "files/npd/" . $npdSheet->getIdNpdSheet() . "/files";
                         $uploadPath = 'public/' . $filePath;
                         $fileUploader->saveFile($uploadPath, true);
                         $type = File::$typeFile["typeImage"];
                     } else {
                         //TODO: Cambiar todos los upload de archivos a esta forma
                         $filePath = "files/npd/" . $npdSheet->getIdNpdSheet() . "/files";
                         $uploadPath = 'public/' . $filePath;
                         $fileUploader->saveFile($uploadPath, false);
                         $type = File::$typeFile["typeFile"];
                     }
                     $sheetFile = new File();
                     $sheetFile->setType($type)->setContent($filePath . $fileUploader->getFileName());
                     $this->getCatalog("FileCatalog")->create($sheetFile);
                     $this->getCatalog("NpdSheetCatalog")->linkToFile($npdSheet->getIdNpdSheet(), $sheetFile->getIdFile());
                 }
             }
             foreach ($params["video"] as $video) {
                 if ($video != "") {
                     $sheetFile = new File();
                     $sheetFile->setType(File::$typeFile["typeLink"])->setContent($video);
                     $this->getCatalog("FileCatalog")->create($sheetFile);
                     $this->getCatalog("NpdSheetCatalog")->linkToFile($npdSheet->getIdNpdSheet(), $sheetFile->getIdFile());
                 }
             }
             foreach ($params["color"] as $color) {
                 if ($color > 0) {
                     $this->getCatalog("NpdSheetCatalog")->linkToColor($npdSheet->getIdNpdSheet(), $color);
                 }
             }
             $this->getCatalog("NpdSheetCatalog")->commit();
             $this->setFlash('ok', $this->i18n->_("Has been saved successfully"));
         } catch (Exception $e) {
             $this->getCatalog("NpdSheetCatalog")->rollBack();
             $this->setFlash('error', $this->i18n->_($e->getMessage()));
         }
     }
     $this->_redirect('npd-sheet/list');
 }