src/Controller/Api/ApiController.php line 245

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api;
  3. use App\Entity\User;
  4. use App\Entity\SchoolYear;
  5. use App\Service\SMSSender;
  6. use Informagenie\OrangeSDK;
  7. use App\Entity\TreasuryCashRegister;
  8. use App\Repository\AccountingExpenseRepository;
  9. use App\Repository\AccountingStudentRegistrationFeeRepository;
  10. use App\Repository\AccountingStudentRegistrationPaymentRepository;
  11. use App\Repository\SchoolYearRepository;
  12. use App\Repository\EstablishmentRepository;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. use App\Repository\EstablishmentGroupRepository;
  16. use App\Repository\RegistrationStudentRegistrationRepository;
  17. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  18. class ApiController extends AbstractController
  19. {
  20.     /**
  21.      * @Route("/api/_student_registrations", name="api_registration_student_registrations", methods={"GET","POST"})
  22.      */
  23.     public function _student_registrations(RegistrationStudentRegistrationRepository $registrationStudentRegistrationRepositoryAccountingStudentRegistrationFeeRepository $accountingStudentRegistrationFeeRepositoryAccountingStudentRegistrationPaymentRepository $accountingStudentRegistrationPaymentRepositoryAccountingExpenseRepository $accountingExpenseRepository): Response
  24.     {
  25.         /**@var User $user */
  26.         $user $this->getUser();
  27.         $establishment $user->getEstablishment();
  28.         $schoolYear $user->getSchoolYear();
  29.         $accountingExpense $accountingExpenseRepository->createQueryBuilder('entity')
  30.         ->innerJoin('entity.establishment''establishment')
  31.         ->addSelect('establishment')
  32.         ->andWhere('establishment.establishmentGroup = :establishmentGroup')
  33.         ->setParameter('establishmentGroup'$establishment->getEstablishmentGroup())
  34.         ->andWhere('entity.create_date BETWEEN :startDate AND :endDate')
  35.         ->setParameter('startDate'date('Y').'-01-01')
  36.         ->setParameter('endDate'date('Y').'-12-31')
  37.         
  38.         /* ->andWhere('entity.schoolYear = :schoolYear')
  39.         ->setParameter('schoolYear', $schoolYear) */
  40.         ->andWhere('entity.is_canceled = :is_canceled')
  41.         ->setParameter('is_canceled'0)
  42.         ->andWhere('entity.is_paid = :is_paid')
  43.         ->setParameter('is_paid'1)
  44.         ->select('SUM(entity.amount) as amount')
  45.         ->getQuery()
  46.         ->getSingleScalarResult();
  47.         $accountingStudentRegistrationFee $accountingStudentRegistrationFeeRepository->createQueryBuilder('entity')
  48.         ->innerJoin('entity.studentRegistration''studentRegistration')
  49.         ->addSelect('studentRegistration')
  50.         ->andWhere('studentRegistration.establishment = :establishment')
  51.         ->setParameter('establishment'$establishment)
  52.         
  53.         ->andWhere('studentRegistration.schoolYear = :schoolYear')
  54.         ->setParameter('schoolYear'$schoolYear)
  55.         ->andWhere('entity.is_cancel = :is_cancel')
  56.         ->setParameter('is_cancel'0)
  57.         ->andWhere('entity.is_archived = :is_archived')
  58.         ->setParameter('is_archived'0)
  59.         ->select('SUM(entity.amount) as amount')
  60.         ->getQuery()
  61.         ->getSingleScalarResult();
  62.         $accountingStudentRegistrationPayment $accountingStudentRegistrationPaymentRepository->createQueryBuilder('entity')
  63.         ->innerJoin('entity.studentRegistration''studentRegistration')
  64.         ->addSelect('studentRegistration')
  65.         ->andWhere('studentRegistration.establishment = :establishment')
  66.         ->setParameter('establishment'$establishment)
  67.         
  68.         ->andWhere('studentRegistration.schoolYear = :schoolYear')
  69.         ->setParameter('schoolYear'$schoolYear)
  70.         ->select('SUM(entity.amount) as amount')
  71.         ->getQuery()
  72.         ->getSingleScalarResult();
  73.         $registration_student_registrations $registrationStudentRegistrationRepository->createQueryBuilder('entity')
  74.         ->innerJoin('entity.student''student')
  75.         ->addSelect('student')
  76.         ->andWhere('entity.establishment = :establishment')
  77.         ->setParameter('establishment'$establishment)
  78.         
  79.         ->andWhere('entity.schoolYear = :schoolYear')
  80.         ->setParameter('schoolYear'$schoolYear)
  81.         ->getQuery()
  82.         ->getResult();
  83.         $registration_student_registration_women $registrationStudentRegistrationRepository->createQueryBuilder('entity')
  84.         ->innerJoin('entity.student''student')
  85.         ->addSelect('student')
  86.         ->andWhere('entity.establishment = :establishment')
  87.         ->setParameter('establishment'$establishment)
  88.         
  89.         ->andWhere('entity.schoolYear = :schoolYear')
  90.         ->setParameter('schoolYear'$schoolYear)
  91.         ->andWhere('student.gender = :gender')
  92.         ->setParameter('gender''FEMININ')
  93.         ->getQuery()
  94.         ->getResult();
  95.         $registration_student_registration_men $registrationStudentRegistrationRepository->createQueryBuilder('entity')
  96.         ->innerJoin('entity.student''student')
  97.         ->addSelect('student')
  98.         ->andWhere('entity.establishment = :establishment')
  99.         ->setParameter('establishment'$establishment)
  100.         
  101.         ->andWhere('entity.schoolYear = :schoolYear')
  102.         ->setParameter('schoolYear'$schoolYear)
  103.         ->andWhere('student.gender = :gender')
  104.         ->setParameter('gender''MASCULIN')
  105.         ->getQuery()
  106.         ->getResult();
  107.         $registration_student_registration_affecteds $registrationStudentRegistrationRepository->createQueryBuilder('entity')
  108.         ->innerJoin('entity.student''student')
  109.         ->addSelect('student')
  110.         ->andWhere('entity.establishment = :establishment')
  111.         ->setParameter('establishment'$establishment)
  112.         
  113.         ->andWhere('entity.schoolYear = :schoolYear')
  114.         ->setParameter('schoolYear'$schoolYear)
  115.         ->andWhere('student.is_affected = :is_affected')
  116.         ->setParameter('is_affected'1)
  117.         ->getQuery()
  118.         ->getResult();
  119.         return $this->renderForm('api/render/student_registrations.html.twig', [
  120.             'registration_student_registrations' => count($registration_student_registrations),
  121.             'registration_student_registration_women' => count($registration_student_registration_women),
  122.             'registration_student_registration_men' => count($registration_student_registration_men),
  123.             'registration_student_registration_affecteds' => count($registration_student_registration_affecteds),
  124.             'accountingStudentRegistrationFee' => $accountingStudentRegistrationFee,
  125.             'accountingStudentRegistrationPayment' => $accountingStudentRegistrationPayment,
  126.             'accountingExpense' => $accountingExpense
  127.         ]);
  128.     }
  129.     /**
  130.      * @Route("/api/_gender_echart", name="api_gender_echart", methods={"GET","POST"})
  131.      */
  132.     public function _gender_echart(RegistrationStudentRegistrationRepository $registrationStudentRegistrationRepository): Response
  133.     {
  134.         /**@var User $user */
  135.         $user $this->getUser();
  136.         $establishment $user->getEstablishment();
  137.         $schoolYear $user->getSchoolYear();
  138.         $registration_student_registrations $registrationStudentRegistrationRepository->createQueryBuilder('entity')
  139.         ->innerJoin('entity.student''student')
  140.         ->addSelect('student')
  141.         ->andWhere('entity.establishment = :establishment')
  142.         ->setParameter('establishment'$establishment)
  143.         
  144.         ->andWhere('entity.schoolYear = :schoolYear')
  145.         ->setParameter('schoolYear'$schoolYear)
  146.         ->getQuery()
  147.         ->getResult();
  148.         $registration_student_registration_women $registrationStudentRegistrationRepository->createQueryBuilder('entity')
  149.         ->innerJoin('entity.student''student')
  150.         ->addSelect('student')
  151.         ->andWhere('entity.establishment = :establishment')
  152.         ->setParameter('establishment'$establishment)
  153.         
  154.         ->andWhere('entity.schoolYear = :schoolYear')
  155.         ->setParameter('schoolYear'$schoolYear)
  156.         ->andWhere('student.gender = :gender')
  157.         ->setParameter('gender''FEMININ')
  158.         ->getQuery()
  159.         ->getResult();
  160.         $registration_student_registration_men $registrationStudentRegistrationRepository->createQueryBuilder('entity')
  161.         ->innerJoin('entity.student''student')
  162.         ->addSelect('student')
  163.         ->andWhere('entity.establishment = :establishment')
  164.         ->setParameter('establishment'$establishment)
  165.         
  166.         ->andWhere('entity.schoolYear = :schoolYear')
  167.         ->setParameter('schoolYear'$schoolYear)
  168.         ->andWhere('student.gender = :gender')
  169.         ->setParameter('gender''MASCULIN')
  170.         ->getQuery()
  171.         ->getResult();
  172.         return $this->json([
  173.             'code' => 200
  174.             'registration_student_registrations' => count($registration_student_registrations), 
  175.             'women' => count($registration_student_registrations) > floatval(number_format(((count($registration_student_registration_women) * 100) / count($registration_student_registrations)), 2'.''')) : 0
  176.             'men' => count($registration_student_registrations) > floatval(number_format(((count($registration_student_registration_men) * 100) / count($registration_student_registrations)), 2'.''')) : 0
  177.             
  178.             'count_women' => count($registration_student_registration_women), 
  179.             'count_men' => count($registration_student_registration_men), 
  180.             'message' => "Validation effectuĂ©e :)"
  181.         ], 200);
  182.     }
  183.     /**
  184.      * @Route("/api/_status_echart", name="api_status_echart", methods={"GET","POST"})
  185.      */
  186.     public function _status_echart(RegistrationStudentRegistrationRepository $registrationStudentRegistrationRepository): Response
  187.     {
  188.         /**@var User $user */
  189.         $user $this->getUser();
  190.         $establishment $user->getEstablishment();
  191.         $schoolYear $user->getSchoolYear();
  192.         $registration_student_registrations $registrationStudentRegistrationRepository->createQueryBuilder('entity')
  193.         ->innerJoin('entity.student''student')
  194.         ->addSelect('student')
  195.         ->andWhere('entity.establishment = :establishment')
  196.         ->setParameter('establishment'$establishment)
  197.         
  198.         ->andWhere('entity.schoolYear = :schoolYear')
  199.         ->setParameter('schoolYear'$schoolYear)
  200.         ->getQuery()
  201.         ->getResult();
  202.         $registration_student_registration_affecteds $registrationStudentRegistrationRepository->createQueryBuilder('entity')
  203.         ->innerJoin('entity.student''student')
  204.         ->addSelect('student')
  205.         ->andWhere('entity.establishment = :establishment')
  206.         ->setParameter('establishment'$establishment)
  207.         
  208.         ->andWhere('entity.schoolYear = :schoolYear')
  209.         ->setParameter('schoolYear'$schoolYear)
  210.         ->andWhere('student.is_affected = :is_affected')
  211.         ->setParameter('is_affected'1)
  212.         ->getQuery()
  213.         ->getResult();
  214.         $registration_student_registration_not_affecteds $registrationStudentRegistrationRepository->createQueryBuilder('entity')
  215.         ->innerJoin('entity.student''student')
  216.         ->addSelect('student')
  217.         ->andWhere('entity.establishment = :establishment')
  218.         ->setParameter('establishment'$establishment)
  219.         
  220.         ->andWhere('entity.schoolYear = :schoolYear')
  221.         ->setParameter('schoolYear'$schoolYear)
  222.         ->andWhere('student.is_affected = :is_affected')
  223.         ->setParameter('is_affected'0)
  224.         ->getQuery()
  225.         ->getResult();
  226.         return $this->json([
  227.             'code' => 200
  228.             'registration_student_registrations' => count($registration_student_registrations), 
  229.             'affecteds' => count($registration_student_registrations) > floatval(number_format(((count($registration_student_registration_affecteds) * 100) / count($registration_student_registrations)), 2'.''')) : 0
  230.             'count_affecteds' => count($registration_student_registration_affecteds), 
  231.             'not_affecteds' => count($registration_student_registrations) > floatval(number_format(((count($registration_student_registration_not_affecteds) * 100) / count($registration_student_registrations)), 2'.''')) : 0
  232.             'count_not_affecteds' => count($registration_student_registration_not_affecteds), 
  233.             'message' => "Validation effectuĂ©e :)"
  234.         ], 200);
  235.     }
  236. }