· 6 years ago · Mar 02, 2020, 04:52 PM
1// az összes rendelést kilistázó API végpont
2public function getAllOrdersAction(Request $request)
3 {
4 $objUser = $this->getDoctrine()->getRepository(User::class)->findUserByApiKey($request->headers->get('X-AUTH-TOKEN'));
5
6 if (!$objUser) {
7 return $this->container->get('response_handler')->errorHandler('invalid_token', 'Nem létező felhasználó!', 422);
8 }
9
10 $objRestaurant = $objUser->getRestaurant();
11
12 if (!$objRestaurant) {
13 return $this->container->get('response_handler')->errorHandler('no_restaurant', 'Ehhez a felhasználóhoz nem tartozik étterem!', 404);
14 }
15
16 $objOrders = $this->getDoctrine()
17 ->getRepository(Orders::class)
18 ->findAllOrder();
19
20 $orders = [];
21
22 foreach ($objOrders as $key => $order) {
23 $orders[$key] = [
24 'id' => $order->getId(),
25 'orderID' => $order->getOrderID(),
26 'orderDate' => $order->getCreatedAt()->format('Y.m.d H:i'),
27 'orderUserName' => $order->getUser()->getFullName(),
28 'isTaken' => $order->getTookedAt() ? true : false
29 ];
30
31 foreach ($order->getOrderedFoods() as $orderedFood) {
32 if ($orderedFood->getRestaurant()->getId() == $objRestaurant->getId()) {
33 $food = $orderedFood->getFood();
34
35 $orders[$key]['orderedFoods'][] = [
36 'orderedFood' => $food->getName(),
37 'orderedFoodPrice' => number_format($food->getNewPrice(), 0, '.', ','),
38 'quantity' => $orderedFood->getQuantity(),
39 'consumption' => $orderedFood->getConsumption() == 'local' ? 'Helyben' : 'Elvitelre',
40 ];
41 }
42 }
43 }
44
45 return $this->container->get('response_handler')->successHandler($orders, []);
46 }
47
48// rendelés azonostó generálás segédfüggvény
49 public function generateOrderID()
50 {
51 $unique = 0;
52 $amount = 100;
53 $previousValues = array();
54
55 for ($i = 0; $i < $amount; $i++){
56 $rand = rand(111111, 999999);
57
58 while (in_array($rand, $previousValues)){
59 $rand = rand(111111, 999999);
60 }
61
62 $previousValues[] = $rand;
63 $today = date("Ymd");
64 $unique = $today . '-' . $rand;
65 }
66
67 return $unique;
68 }
69
70//lejárt kosár tartalom ürítése segédfüggvény
71 public function clearUserCart($cartItem, $cartItemFoods)
72 {
73 $entityManager = $this->entityManager;
74 $response['isCleared'] = false;
75
76 $now = new \DateTime();
77 $nowFormatted = $now->format('Y-m-d H:i:s');
78
79 if ($cartItem) {
80 $expired = $cartItem->getExpiredAt();
81 $expiredFormatted = $expired->format('Y-m-d H:i:s');
82
83 $todayTime = strtotime($nowFormatted);
84 $expireTime = strtotime($expiredFormatted);
85
86 if ($expireTime < $todayTime) {
87
88 if ($cartItemFoods) {
89 foreach ($cartItemFoods as $cartItemFood) {
90 $objFood = $entityManager->getRepository(Food::class)->find($cartItemFood->getFood()->getId());
91 $objFood->setAmount($objFood->getAmount() + $cartItemFood->getQuantity());
92 $entityManager->persist($objFood);
93 $entityManager->flush();
94
95 $entityManager->remove($cartItemFood);
96 $entityManager->flush();
97 }
98 }
99
100 $entityManager->remove($cartItem);
101 $entityManager->flush();
102
103 $response['isCleared'] = true;
104 }
105 }
106
107 return $response;
108 }