public function executeImport(sfWebRequest $request) { $this->forward404Unless($request->isXmlHttpRequest()); $decision = DecisionTable::getInstance()->getDecisionForUser($this->getUser()->getGuardUser(), $request->getParameter('decision_id', false)); $fileValidator = new sfValidatorFile(array('required' => true)); $importer = new AlternativeImporter(); $importer->setDecision($decision); $importer->setCreatedAndUpdatedBy(Alternative::generateUpdateAndCreatedBy($this->getUser()->getGuardUser())); foreach ($request->getFiles('files') as $file) { $validatedFile = $fileValidator->clean($file); $importer->setFile($validatedFile); $importer->setGuardUser($this->getUser()->getGuardUser()); $importer->advancedImport(); } $this->setLayout(false); $this->getResponse()->setHttpHeader('Content-Type', 'application/json; charset=utf-8'); return $this->renderText(json_encode(array(array()))); }
/** * @param sfWebRequest $request * @return sfView * @throws Doctrine_Collection_Exception * @throws sfError404Exception */ public function executeImportFromExcel(sfWebRequest $request) { $decision_id = $request->getParameter('decision_id', false); $decision = DecisionTable::getInstance()->getDecisionForUser($this->getUser()->getGuardUser(), $decision_id); $this->forward404Unless(is_object($decision)); $fileValidator = new sfValidatorFile(array('required' => true, 'mime_types' => array('application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/msexcel', 'application/x-msexcel', 'application/x-ms-excel', 'application/x-excel', 'application/x-dos_ms_excel', 'application/xls', 'application/x-xls', 'application/vnd.ms-office', 'application/zip'))); try { $validatedFile = $fileValidator->clean($request->getFiles('file')); } catch (Exception $e) { return $this->renderText(json_encode(array('status' => 'error', 'message' => $e->getMessage()))); } $importer = new AlternativeImporter(); $importer->setDecision($decision); $importer->setFile($validatedFile); return $this->renderText(json_encode(array('status' => 'success', 'html' => $this->getComponent('alternative', 'importCustomFields', array('data' => $importer->prepareData(), 'decision_id' => $decision_id))))); }
public function executeAlternativeImport(sfWebRequest $request) { $this->forward404Unless($request->isXmlHttpRequest()); $decision_id = $request->getParameter('decision_id', false); /** @var Decision $decision */ $decision = DecisionTable::getInstance()->getDecisionForUser($this->getUser()->getGuardUser(), $decision_id); $fileValidator = new sfValidatorFile(array('required' => true)); $importer = new AlternativeImporter(); $importer->setDecision($decision); $importer->setCreatedAndUpdatedBy(Alternative::generateUpdateAndCreatedBy($this->getUser()->getGuardUser())); foreach ($request->getFiles('files') as $file) { $validatedFile = $fileValidator->clean($file); $importer->setFile($validatedFile); $importer->import(); } $dashboard_role = $decision->getDashboardRole(); if ($dashboard_role) { foreach ($importer->getAlternatives() as $alternative) { foreach ($decision->getCriterion() as $criterion) { $planned_alternative_measurement = new PlannedAlternativeMeasurement(); $planned_alternative_measurement->setAlternative($alternative); $planned_alternative_measurement->setCriterion($criterion); $dashboard_role->PlannedAlternativeMeasurement->add($planned_alternative_measurement); } } $dashboard_role->PlannedAlternativeMeasurement->save(); } $this->setLayout(false); $this->getResponse()->setHttpHeader('Content-Type', 'application/json; charset=utf-8'); return $this->renderText(json_encode(array(array()))); }