protected function execute(InputInterface $input, OutputInterface $output) { $cronLog = new CronLog(); $cronLog->setStartAt(new DateTime()); $cronLog->setDescription('Process SCA log files'); $cronLog->setScript('spm:process-sca-logs'); $this->_em = $this->getContainer()->get('doctrine')->getManager(); /** * @var ImapService $imap */ $imap = $this->getContainer()->get('app_core.imap'); $messages = $imap->getMessages('Inbox/Sportmaster/SCA', null, ImapService::F_UNFLAGGED); foreach ($messages as $message) { if (!$message->getAttachments()) { continue; } foreach ($message->getAttachments() as $attachment) { $savePath = UploadAbstract::getUploadDir('sportmaster'); if (($savedFile = $attachment->saveToDirectory($savePath)) == true) { $importService = new ImportSpmInterfaceLog($savePath . DIRECTORY_SEPARATOR . $attachment->getFileName(), $this->getContainer()); $importService->parse(); } } $message->setFlag(ImapService::F_FLAGGED); $message->setFlag(ImapService::F_SEEN); } $cronLog->setEndAt(new DateTime()); $this->_em->persist($cronLog); $this->_em->flush(); $this->_em->clear(); $output->writeln('Completed'); }
public function spmInterfaceLogAction(Request $request) { $form = $this->createForm(new Upload(Upload::TYPE_CSV)); $form->handleRequest($request); if ($request->isMethod('POST')) { if ($form->isValid()) { $file = $form->get('file')->getData(); $uploader = new Uploader($file, SportmasterBundle::getBundleName()); try { $filePath = $uploader->upload(); $importService = new ImportSpmInterfaceLog($filePath, $this->container); $importService->parse(); $request->getSession()->getFlashBag()->add('notice', $importService->getMessageService()->dumpAsHtml()); } catch (\Exception $e) { $request->getSession()->getFlashBag()->add('error', $e->getMessage()); } } } //log grid $grid = $this->get('app_core.importLogGrid')->getImportGrid(ImportSpmInterfaceLog::$importName); return $this->render('SportmasterBundle:Import:ref.html.twig', ['header' => 'Import SpmInterfaceLog', 'form' => $form->createView(), 'grid' => $grid]); }