/** * * makeBean * @param array $resultset * @return \Application\Model\Bean\NpdSheet */ protected function makeBean($resultset) { return NpdSheetFactory::createFromArray($resultset); }
/** * 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'); }