public function createOrUpdate(Competitor $competitor, $drvClubId, \DateTime $dateTime, LoggerInterface $logger) { /** @var Membership $dbItem */ $dbItem = null; /** @var Membership $m */ foreach ($competitor->getMemberships() as $m) { if ($m->getClub()->getDrvId() == $drvClubId) { if (null != $m->getSince() && $m->getSince() < $dateTime) { if (null != $m->getUntil() && $m->getUntil() > $dateTime) { // The membership has an end, but this import falls into the active period. $dbItem = $m; } elseif (null == $m->getUntil()) { // no ending $dbItem = $m; } } } } // If no matching membership was found, create one if (null == $dbItem) { $club = $this->getEntityManager()->getRepository('AppBundle:Club')->findOneByDrvId($drvClubId); if (null != $club) { $dbItem = new Membership(); $dbItem->setPerson($competitor)->setClub($club)->setSince($dateTime); $this->getEntityManager()->persist($dbItem); $logger->info("Created new membership for " . "[{$competitor->getLastName()}, {$competitor->getFirstName()}, {$competitor->getId()}]"); } else { $message = "Found no club with DRV-ID {$drvClubId}! No membership created for " . "[{$competitor->getLastName()}, {$competitor->getFirstName()}, {$competitor->getId()}]"; $logger->warning($message); throw new \Exception($message); } } return $dbItem; }
/** * Displays a form to create a new Membership entity. * * @Route("/new/{clientId}", name="membership_new") * @Method("GET") * @Template() */ public function newAction($clientId = null) { $membership = new Membership(); if (null != $clientId) { $em = $this->getDoctrine()->getManager(); $client = $em->getRepository('AppBundle:Client')->find($clientId); if ($client) { $membership->setClient($client); } } $form = $this->createCreateForm($membership); return array('entity' => $membership, 'form' => $form->createView()); }
/** * Creates a form to delete a Membership entity. * * @param Membership $membership The Membership entity * * @return \Symfony\Component\Form\Form The form */ private function createDeleteForm(Membership $membership) { return $this->createFormBuilder()->setAction($this->generateUrl('membership_delete', array('id' => $membership->getId())))->setMethod('DELETE')->getForm(); }
/** * @param Request $request * @param Membership $membership * @param Document $document * @return Response * * @Route("/member/membership/{membership}/document/{document}/delete", * name="app_member_membership_document_delete", * methods={"GET","POST"}, * requirements={"membership"="\d+","document"="\d+"}) */ public function documentDeleteAction(Request $request, Membership $membership, Document $document) { // Delete form $formDelete = $this->createForm(DocumentDeleteType::class, $document); $formDelete->handleRequest($request); if ($formDelete->isSubmitted() && $formDelete->isValid()) { // Delete document if ($document == $membership->getMedicalCertificate()) { $membership->setMedicalCertificate(null); } elseif ($document == $membership->getRegistrationForm()) { $membership->setRegistrationForm(null); } $dm = $this->get('app.document_manager'); $dm->delete($document); // Flash message $this->addFlash('success', $this->get('translator')->trans('document_delete.success.deleted', array(), 'member')); // Redirect return $this->redirectToRoute('app_member_membership_edit', ['membership' => $membership->getId()]); } // Render return $this->render('member/membership/document/delete.html.twig', ['document' => $document, 'formDelete' => $formDelete->createView(), 'membership' => $membership]); }