/**
  * @Route("/receive-stock", name="stock_notify", methods={"POST"})
  * @param Request $request
  * @return Response
  * @internal param Request $request
  */
 public function receiveStockAction(Request $request)
 {
     // Receber um title e um quantity
     $title = $request->get('title');
     $quantity = $request->get('quantity');
     if (!$title) {
         return new Response("Parameter 'title' not found ", 400);
     } else {
         if (!$quantity) {
             return new Response("Parameter 'quantity' not found ", 400);
         }
     }
     // Criar se necessario o livro
     $book = $this->get('doctrine_mongodb')->getRepository('AppBundle:Book')->findOneBy(['title' => $title]);
     if (!$book) {
         return new Response("Book {$book} not found", 400);
     }
     // Adicionar stock ao livro
     $book->stock += $quantity;
     $this->get('doctrine_mongodb')->getManager()->persist($book);
     $orders = $this->get('doctrine_mongodb')->getRepository('AppBundle:Order')->findBy(['title' => $title, 'state' => Order::WAITING_EXPEDITION]);
     // Se nao há orders pendentes (Waiting_expedition)
     if (count($orders) == 0) {
         return new JsonResponse([]);
     }
     /** @var Order $order */
     foreach ($orders as $order) {
         if ($order->quantity <= $book->stock) {
             $book->stock -= $order->quantity;
             $order->state = Order::TO_BE_DISPATCHED;
             $this->get('doctrine_mongodb')->getManager()->persist($order);
             Email::orderReadyToBeDispatched($order);
         }
         if ($book->stock == 0) {
             break;
         }
     }
     $this->get('doctrine_mongodb')->getManager()->flush();
     return new JsonResponse([]);
 }