Exemplo n.º 1
0
 public function uploadAction(Request $request)
 {
     $form = $this->createForm(new Import\Upload());
     $form->handleRequest($request);
     $typeArray = array('invoice', 'gtd', 'article');
     $error = null;
     if ($request->isMethod('POST')) {
         if ($form->isValid()) {
             $type = $form->get('type')->getData();
             if (in_array($type, $typeArray)) {
                 $file = $form->get('file')->getData();
                 $uploadService = $this->get('app_core.upload');
                 $uploadService->init($file, 'HP');
                 $filename = $uploadService->process();
                 try {
                     $import = Factory\ImportFactory::create($type, $filename, $this->container);
                     $import->parse();
                 } catch (\Exception $ex) {
                     $error = $ex->getMessage();
                 }
             } else {
                 $error = "Wrong type import is selected";
             }
         }
     }
     return $this->render('HpBundle:Import:upload.html.twig', ['error' => $error, 'form' => $form->createView()]);
 }
Exemplo n.º 2
0
 protected function parseDirectory($dir)
 {
     $di = new \DirectoryIterator($dir);
     foreach ($di as $filename) {
         if ($filename != '.' && $filename != '..') {
             $file = $dir . '/' . $filename;
             $error = false;
             foreach ($this->_validators as $validator) {
                 if (!$validator->validate($file)) {
                     $errorMessage = $validator->getMessage();
                     $error = true;
                 }
             }
             if (true === $error) {
                 echo $errorMessage;
                 continue;
             }
             try {
                 $parser = Factory\ImportFactory::create($this->getType($filename), $file, $this->getContainer());
                 $parser->parse();
                 unlink($file);
             } catch (\Exception $ex) {
                 $this->_logger->error($ex->getMessage() . ' IN ' . $ex->getFile() . ' LINE ' . $ex->getLine());
             }
         }
     }
 }