public function findAvailableAndAllowedByStudent(Student $student) { $productIds = function (Student $student) { $productIds = []; foreach ($student->getProducts() as $product) { $productIds[] = $product->getId(); } return implode(',', $productIds); }; $builder = $this->_em->createQueryBuilder(); $query = $this->_em->createQueryBuilder()->select('p')->from('AppBundle:Product\\Product', 'p')->leftJoin('p.productVendingGroups', 'pvg')->leftJoin('pvg.vendingMachines', 'vm')->where('vm.school = :school'); if ($productIds = $productIds($student)) { $query->andWhere($builder->expr()->notIn('p.id', $productIds)); } $query = $query->setParameter('school', $student->getSchool())->orderBy('p.displayOrder', 'ASC')->getQuery(); return $query->getResult(); }
/** * @Method({"GET", "POST"}) * @Route( * "/student/create", * name="student_create", * host="{domain_dashboard}", * defaults={"_locale" = "%locale%", "domain_dashboard" = "%domain_dashboard%"}, * requirements={"_locale" = "%locale%", "domain_dashboard" = "%domain_dashboard%"} * ) */ public function createAction(Request $request) { if (!$this->_studentBoundlessAccess->isGranted(StudentBoundlessAccess::STUDENT_CREATE)) { throw $this->createAccessDeniedException('Access denied'); } $studentType = new StudentType($this->_translator, $this->_studentBoundlessAccess->isGranted(StudentBoundlessAccess::STUDENT_CREATE)); $form = $this->createForm($studentType, $student = new Student(), ['action' => $this->generateUrl('student_create')]); $form->handleRequest($request); if (!$form->isValid()) { $this->_breadcrumbs->add('student_read')->add('student_create'); return $this->render('AppBundle:Entity/Student/CRUD:createItem.html.twig', ['form' => $form->createView()]); } else { // Set employee who created student $student->setEmployee($this->getUser()); $this->_manager->persist($student); $this->_manager->flush(); $this->_messages->markCreateSuccess(); if ($form->has('create_and_return') && $form->get('create_and_return')->isClicked()) { return $this->redirectToRoute('student_read'); } else { return $this->redirectToRoute('student_update', ['id' => $student->getId()]); } } }
public function getDescription(Student $student) { $nfcTagNumber = $student->getNfcTag() ? $student->getNfcTag()->getNumber() : NULL; return "Поповнення рахунку для студента {$student->getFullName()}" . ($nfcTagNumber ? " (за номером картки {$nfcTagNumber})" : ""); }
public function validateStudentBalanceForSms(Student $student, SettingDecimal $settingStudentWarningLimit) { $compare = bccomp($student->getTotalLimit(), $settingStudentWarningLimit->getSettingValue(), 2); return $compare === 1; }
/** * Add student * * @param \AppBundle\Entity\Student\Student $student * @return Customer */ public function addStudent(\AppBundle\Entity\Student\Student $student) { $student->setCustomer($this); $this->students[] = $student; return $this; }