Example #1
0
 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())));
 }
Example #2
0
 /**
  * @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)))));
 }
Example #3
0
 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())));
 }