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;
 }
示例#5
0
 /**
  * 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;
 }