/** * @param Request $request * @return JsonResponse */ private function step1Control(Request $request) { $user = $this->getUser(); $em = $this->getDoctrine()->getManager(); /** @var Journal $selectedJournal */ $selectedJournal = $this->get("ojs.journal_service")->getSelectedJournal(); $competingInterestFile = new File(); $competingInterestFile->setName('Competing Interest File'); $competingInterestFile->setSize($request->get('competing_interest_file_size')); $competingInterestFile->setMimeType($request->get('competing_interest_file_mime_type')); $competingInterestFile->setPath($request->get('competing_interest_file')); $competingInterestFile->setTranslatableLocale($request->getDefaultLocale()); $em->persist($competingInterestFile); $em->flush(); $article = new Article(); $article->setJournal($selectedJournal); $article->setSubmitterId($user->getId()); $article->setSetupStatus(0); $article->setTitle(''); $article->setTranslatableLocale($request->getDefaultLocale()); $article->setCompetingInterestFile($competingInterestFile); $em->persist($article); $em->flush(); $articleSubmission = new ArticleSubmissionProgress(); $articleSubmission->setArticle($article); $articleSubmission->setUser($user); $articleSubmission->setJournal($selectedJournal); $articleSubmission->setChecklist(json_encode($request->get('checklistItems'))); $articleSubmission->setSubmitted(false); $articleSubmission->setCurrentStep(2); $em->persist($articleSubmission); $em->flush(); return new JsonResponse(['success' => "1", 'resumeLink' => $this->generateUrl('article_submission_resume', ['submissionId' => $articleSubmission->getId()]) . '#2']); }