public function getDiscount(MedOrder $order) { $services = $order->getServices(); $servicesIds = []; foreach ($services as $service) { $servicesIds[] = (int) $service->getId(); } $sex = $order->getSex(); $sql = 'SELECT max(d.percent) FROM discount d LEFT JOIN discount_services ds ON d.id = ds.discount_id LEFT JOIN med_service ms ON ds.service_id = ms.id'; if (count($servicesIds) > 0) { $sql .= ' WHERE ms.id in ( ' . implode(', ', $servicesIds) . ' )'; } if (!is_null($sex)) { $sql .= ' AND d.sex IS NOT NULL AND d.sex = ' . $sex; } else { $sql .= ' AND d.sex IS NULL'; } $stmt = $this->getEntityManager()->getConnection()->prepare($sql); $stmt->execute(); return $stmt->fetchAll(); }
/** * @Route("/", name="homepage") * @param Request $request * @return Response */ public function indexAction(Request $request) { $order = new MedOrder(); $order->addService((new MedService())->setName('service 1')); $order->addService((new MedService())->setName('service 2')); $form = $this->createForm(MedOrderType::class, $order); return $this->render('service_calc/form.html.twig', ['form' => $form->createView()]); }