/** * @Route("/admin/stock/{id}/edit") */ public function updateStock(Request $request, $id) { $entityManager = $this->getDoctrine()->getManager(); $soda = $this->getDoctrine()->getRepository('AppBundle:Soda')->find($id); if (!$soda) { throw $this->createNotFoundException('No soda found'); } $stock = $this->getDoctrine()->getRepository('AppBundle:Stock')->find($soda->getStock()->getId()); if ($stock === null) { $stock = new Stock(); } $isSodaInStock = $stock->getSoda($soda->getid()); if (!$isSodaInStock) { $stock->addSoda($soda); $entityManager->persist($stock); $entityManager->flush(); } $form = $this->createForm(new StockType(), $stock, array('method' => 'POST')); $form->add('save', 'submit', array('label' => 'Update Stock for ' . $soda->getName())); $form->handleRequest($request); if ($form->isValid()) { $entityManager->persist($stock); $entityManager->flush(); return $this->redirectToRoute('admin_overview'); } return $this->render('admin/Stock.html.twig', array('form' => $form->createView())); }
/** * Gets quotes by their symbols * * @param $symbols array|string * @return Stock[] */ public function getStock($symbols) { if (is_string($symbols)) { $symbols = [$symbols]; } /** @var Stock[] $storedStocks */ $storedStocks = $this->em->getRepository('AppBundle:Stock')->findBySymbol($symbols); $resultStocks = $stocksToUpdate = $quotes = []; foreach ($symbols as $symbol) { if (isset($storedStocks[$symbol])) { $stock = $storedStocks[$symbol]; $totalTime = $stock->getLastUpdate()->modify($this->ttl); if ($totalTime < new \DateTime()) { $stocksToUpdate[] = $symbol; } else { $resultStocks[] = $stock; } } else { $stocksToUpdate[] = $symbol; } } if ($stocksToUpdate) { $quotes = $this->api->getQuotes($stocksToUpdate); } if ($quotes) { foreach ($quotes as $quote) { $quoteSymbol = strtoupper($quote['Symbol']); if (isset($storedStocks[$quoteSymbol])) { $stock = $storedStocks[$quoteSymbol]; $stock->setChangeInPercent($quote['ChangeinPercent'])->setLastTradePrice($quote['LastTradePriceOnly'])->setLastUpdate(new \DateTime()); $resultStocks[] = $stock; } else { $stock = new Stock(); $stock->setSymbol($quoteSymbol)->setCompanyName($quote['Name'])->setChangeInPercent($quote['ChangeinPercent'])->setLastTradePrice($quote['LastTradePriceOnly'])->setStockExchange($quote['StockExchange']); $this->em->persist($stock); $resultStocks[] = $stock; } } $this->em->flush(); } return $resultStocks; }
/** * @Route("/admin/soda/add") */ public function createNewSoda(Request $request) { $entityManager = $this->getDoctrine()->getManager(); $soda = new Soda(); $form = $this->createForm(new SodaType(), $soda); $form->add('save', 'submit', array('label' => 'Create Soda')); $form->handleRequest($request); if ($form->isValid()) { $entityManager->persist($soda); $entityManager->flush(); $stock = new Stock(); $stock->setId($soda->getId()); $entityManager->persist($stock); $stock->addSoda($soda); $stock->setInStock(0); $entityManager->flush(); return $this->redirectToRoute('admin_overview'); } return $this->render('admin/Soda.html.twig', array('form' => $form->createView())); }
/** * delete stock entity from the product detail table * @Route("/delete_stock_2/{id}",name="deletestock2") * @ParamConverter("stock", class="AppBundle:Stock") */ public function delete_stock_2(Stock $stock) { $user_id = $stock->getUser()->getId(); $em = $this->getDoctrine()->getManager(); $em->remove($stock); $em->flush(); echo "<script>alert('删除成功!')</script>"; return $this->redirectToRoute('productdetail', array('id' => $user_id)); }
/** * delete stock entity from the product detail table * @Route("/delete_stock/{id}",name="deletestock2") * @ParamConverter("stock", class="AppBundle:Stock") */ public function delete_stock(Stock $stock) { $client = $stock->getClient(); $client_id = $client->getId(); $em = $this->getDoctrine()->getManager(); $em->remove($stock); $em->flush(); if (count($client->getStocks()) == 0) { $client->setIfStockPurchased(false); $em->flush(); } return $this->redirectToRoute('productdetail', array('id' => $client_id)); }
public function calculateSeries(Stock $stock) { $this->loader->setCode($stock->getCode()); $this->loader->setCount($stock->getCount()); return array_combine($this->loader->getDates(), $this->loader->getPrices()); }