public function addElements(Request $request, Basket $basket) { $n = 0; $records = RecordsRequest::fromRequest($this->app, $request, true); $em = $this->getEntityManager(); foreach ($records as $record) { if ($basket->hasRecord($this->app, $record)) { continue; } $basket_element = new BasketElement(); $basket_element->setRecord($record); $basket_element->setBasket($basket); $em->persist($basket_element); $basket->addElement($basket_element); if (null !== ($validationSession = $basket->getValidation())) { $participants = $validationSession->getParticipants(); foreach ($participants as $participant) { $validationData = new ValidationData(); $validationData->setParticipant($participant); $validationData->setBasketElement($basket_element); $em->persist($validationData); } } $n++; } $em->flush(); $data = ['success' => true, 'message' => $this->app->trans('%quantity% records added', ['%quantity%' => $n])]; if ($request->getRequestFormat() === 'json') { return $this->app->json($data); } return $this->app->redirectPath('prod_workzone_show'); }
/** * {@inheritDoc} */ public function hasRecord(\Alchemy\Phrasea\Application $app, \record_adapter $record) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'hasRecord', array($app, $record)); return parent::hasRecord($app, $record); }