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()))); }
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()))); }