/**
  * Ajax function for subscribing on a date
  */
 public function subscribeCroissantAction()
 {
     $request = $this->getRequest();
     if ($request->isXmlHttpRequest()) {
         $response = new Response();
         $dayOfSubscription = DateTime::createFromFormat("dmY", $request->request->get('date'));
         $dayOfSubscription->setTime(0, 0);
         $roleSubscription = $request->request->get('role');
         $username = $request->request->get('username');
         $em = $this->getDoctrine()->getManager();
         $repositoryFS = $em->getRepository('STXCroissantsBundle:Friday_Subscriptions');
         $friday_subscriber = $repositoryFS->findOneBy(array('date' => $dayOfSubscription));
         /**
          * If the subscriptions doesn't exist or the main subscriber is empty,
          * then add the user as subscriber
          *
          */
         if (is_null($friday_subscriber)) {
             $userManager = $this->get('fos_user.user_manager');
             $user = new User();
             $user = $userManager->findUserBy(array('username' => $username));
             if (strcmp($this->getUser()->getUsername(), $user->getUsername()) == 0) {
                 $newSubscription = new Friday_Subscriptions();
                 $newSubscription->setDate($dayOfSubscription);
                 if ($roleSubscription == 1) {
                     $newSubscription->setUser($user);
                 } else {
                     $newSubscription->setBackupUser($user);
                 }
                 $em->persist($newSubscription);
                 $em->flush();
                 $output = array('success' => TRUE, 'message' => 'Subscription complete!', 'user' => $user->getUsername());
             } else {
                 $output = array('success' => FALSE, 'message' => 'The subscriber must be the same as the user logged in!');
             }
         } elseif ($roleSubscription == 1 and is_null($friday_subscriber->getUser()) or $roleSubscription == 0 and is_null($friday_subscriber->getBackupUser())) {
             $userManager = $this->get('fos_user.user_manager');
             $user = new User();
             $user = $userManager->findUserBy(array('username' => $username));
             if (strcmp($this->getUser()->getUsername(), $user->getUsername()) == 0) {
                 if ($roleSubscription == 1) {
                     $friday_subscriber->setUser($user);
                 } else {
                     $friday_subscriber->setBackupUser($user);
                 }
                 $em->persist($friday_subscriber);
                 $em->flush();
                 $output = array('success' => TRUE, 'message' => 'Subscription complete!', 'user' => $user->getUsername());
             } else {
                 $output = array('success' => FALSE, 'message' => 'The subscriber must be the same as the user logged in!');
             }
         } else {
             $output = array('success' => FALSE, 'message' => 'A user is already subscribed!');
         }
         $response->headers->set('Content-Type', 'application/json');
         $response->setContent(json_encode($output));
         return $response;
     }
     $output = array('success' => FALSE, 'message' => 'isXmlHttpRequest FAILED!');
     $response = new Response();
     $response->headers->set('Content-Type', 'application/json');
     $response->setContent(json_encode($output));
     return $response;
 }