src/Controller/api/ApiStatsController.php line 366

Open in your IDE?
  1. <?php
  2. namespace App\Controller\api;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  9. use App\ControllerModel\user\paramUtilTrait;
  10. use App\Repository\track\LocalisationRepository;
  11. use App\Repository\prod\CertificationRepository;
  12. use App\Repository\user\AbonneRepository;
  13. use App\Repository\prod\ProducteurRepository;
  14. use App\Repository\stock\FournisseurRepository;
  15. use App\Repository\prod\SurfaceAnneeRepository;
  16. use App\Repository\inspection\InspectionRempliRepository;
  17. use App\Repository\stock\ImageRepository;
  18. use App\Repository\client\EtatClientRepository;
  19. use DateTime;
  20. /**
  21.  * User controller.
  22.  * @Route("traite/stats")
  23.  */
  24. class ApiStatsController extends AbstractController {
  25.     
  26.     private $etatClientRepository;
  27.     private $userPasswordHasherInterface;
  28.     private $surfaceAnneeRepository;
  29.     private $inspectionRempliRepository;
  30.     private $producteurRepository;
  31.     private $certificationRepository;
  32.     private $imageRepository;
  33.     private $abonneRepository;
  34.     private $fournisseurRepository;
  35.     private $localisationRepository;
  36.     public function __constructEtatClientRepository  $etatClientRepositoryUserPasswordHasherInterface $userPasswordHasherInterface,
  37.     SurfaceAnneeRepository $surfaceAnneeRepositoryInspectionRempliRepository $inspectionRempliRepositoryProducteurRepository $producteurRepository,
  38.     ImageRepository $imageRepositoryAbonneRepository $abonneRepositoryCertificationRepository $certificationRepositoryFournisseurRepository $fournisseurRepository,
  39.     LocalisationRepository $localisationRepository) {
  40.         $this->etatClientRepository $etatClientRepository;
  41.         $this->userPasswordHasherInterface $userPasswordHasherInterface;
  42.         $this->surfaceAnneeRepository $surfaceAnneeRepository
  43.         $this->inspectionRempliRepository $inspectionRempliRepository
  44.         $this->producteurRepository $producteurRepository
  45.         $this->imageRepository$imageRepository
  46.         $this->abonneRepository$abonneRepository
  47.         $this->certificationRepository $certificationRepository;
  48.         $this->fournisseurRepository $fournisseurRepository;
  49.         $this->localisationRepository =$localisationRepository;
  50.     }
  51.     use paramUtilTrait;
  52.     /**
  53.      * Traitement dess synthèses 
  54.      *
  55.      * @Route("/producteur", name="app_api_stats_producteur")
  56.      * @Method({"POST"})
  57.      * 
  58.      */
  59.     public function apiStatsProducteurAction(Request $request
  60.     ) {
  61.         $parameters json_decode($request->getContent(), true);
  62.         $zoneId $parameters['zoneId']; //
  63.         $groupementId $parameters['groupementId']; //
  64.         $produitId $parameters['produitId']; //
  65.         $abonneId $parameters['abonneId']; //
  66.         $agentId $parameters['agentId']; //
  67.         $campagneId $parameters['campagneId']; //
  68.         $nbParPageInt5;
  69.         $em $this->getDoctrine()->getManager();
  70.         $infoPartenaire  $this->getInfoPartenaire($em$this->getAbonne($em$abonneId,$this->abonneRepository));
  71.         $listeCert['nbreTotal']  = $this->producteurRepository->getAllProducteur($typeprod=0$zoneId$village=0$region=0$ville=0$groupementId$produitId$nbParPage=0$pageActuelle=0,0,5,$tabVille=array(),$num=0,$abonneId$sexe=0$agentId,1,0,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction'],$campagneId,$signe=0,$valeurSigne=0);
  72.         $listeCert['nbreTotalFemme']  = $this->producteurRepository->getAllProducteur($typeprod=0$zoneId$village=0$region=0$ville=0$groupementId$produitId$nbParPage=0$pageActuelle=0,0,5,$tabVille=array(),$num=0,$abonneId$sexe=1$agentId,1,0,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction'],$campagneId,$signe=0,$valeurSigne=0);
  73.         $listeCert['nbreTotalHomme']  = $this->producteurRepository->getAllProducteur($typeprod=0$zoneId$village=0$region=0$ville=0$groupementId$produitId$nbParPage=0$pageActuelle=0,0,5,$tabVille=array(),$num=0,$abonneId$sexe=2$agentId,1,0,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction'],$campagneId,$signe=0,$valeurSigne=0);
  74.       
  75.         //Liste des derniers producteurs ajoutés dans l'application
  76.         $listeCert['listeDernierProducteur']  = $this->producteurRepository->getAllLastProducteur($groupementId$agentId,$zoneId$abonneId$nbParPageInt);
  77.         //liste des producteurs par certification
  78.         $listeCert['listeProducteurCertification']  = $this->certificationRepository->getApiAllProducteurByCertification($abonneId);
  79.         $dataSend =  $this->get('serializer')->serialize(array('data' =>$listeCert ), 'json');
  80.         $response = new Response($dataSend);
  81.         $response->headers->set('Content-Type''application/json');
  82.         return $response;
  83.   
  84.       }
  85.       /**
  86.      * Traitement dess synthèses 
  87.      *
  88.      * @Route("/producteur/detail/sexe", name="app_api_stats_producteur_detail_sexe")
  89.      * @Method({"POST"})
  90.      * 
  91.      */
  92.     public function apiInfoDetailSexeAction(Request $request
  93.     ) {
  94.         $parameters json_decode($request->getContent(), true);
  95.         $zoneId $parameters['zoneId']; //
  96.         $groupementId $parameters['groupementId']; //
  97.         $produitId $parameters['produitId']; //
  98.         $abonneId $parameters['abonneId']; //
  99.         $agentId $parameters['agentId']; //
  100.         $campagneId $parameters['campagneId']; //
  101.         $nbParPageInt5;
  102.         $em $this->getDoctrine()->getManager();
  103.         $infoPartenaire  $this->getInfoPartenaire($em$this->getAbonne($em$abonneId,$this->abonneRepository));
  104.         $nbreTotalFemme  $this->producteurRepository->getAllProducteur($typeprod=0$zoneId$village=0$region=0$ville=0$groupementId$produitId$nbParPage=0$pageActuelle=0,0,5,$tabVille=array(),$num=0,$abonneId$sexe=1$agentId,1,0,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction'],$campagneId,$signe=0,$valeurSigne=0);
  105.         $nbreTotalHomme  $this->producteurRepository->getAllProducteur($typeprod=0$zoneId$village=0$region=0$ville=0$groupementId$produitId$nbParPage=0$pageActuelle=0,0,5,$tabVille=array(),$num=0,$abonneId$sexe=2$agentId,1,0,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction'],$campagneId,$signe=0,$valeurSigne=0);
  106.       
  107.         if($nbreTotalFemme  != null )
  108.           $nbreTotalFemme $nbreTotalFemme [0]['nbreTotal'];
  109.         if($nbreTotalHomme  != null )
  110.           $nbreTotalHomme $nbreTotalHomme [0]['nbreTotal'];
  111.         //Liste des derniers producteurs ajoutés dans l'application
  112.         $listeCert =['labels'=>['Homme''Femme'], 'data'=>[$nbreTotalFemme$nbreTotalHomme]]  ;
  113.         //liste des producteurs par certification
  114.         $dataSend =  $this->get('serializer')->serialize(array('data' =>$listeCert ), 'json');
  115.         $response = new Response($dataSend);
  116.         $response->headers->set('Content-Type''application/json');
  117.         return $response;
  118.   
  119.       }
  120.      /**
  121.      * Traitement dess synthèses 
  122.        *
  123.      * @Route("/stats/en/nombre", name="app_api_stats_en_nombre")
  124.      * @Method({"POST"})
  125.      * 
  126.      */
  127.     public function apiStatsEnNombreAction(Request $request
  128.     ) {
  129.         $parameters json_decode($request->getContent(), true);
  130.         $zoneId $parameters['zoneId']; //
  131.         $groupementId $parameters['groupementId']; //
  132.         $produitId $parameters['produitId']; //
  133.         $typeAction $parameters['typeAction']; //
  134.         $abonneId $parameters['abonneId']; //
  135.         $agentId $parameters['agentId']; //
  136.         $campagneId $parameters['campagneId']; //
  137.         $inspectionId $parameters['inspectionId'];
  138.         $nbParPageInt5;
  139.         $em $this->getDoctrine()->getManager();
  140.         $infoPartenaire  $this->getInfoPartenaire($em$this->getAbonne($em$abonneId,$this->abonneRepository));
  141.         if($typeAction == 1){
  142.             $nbreTotalProducteur=0;
  143.             $infoTotalProducteur $this->producteurRepository->getAllProducteur($typeprod=0$zoneId$village=0$region=0$ville=0$groupementId$produitId$nbParPage=0$pageActuelle=0,0,5,$tabVille=array(),$num=0,$abonneId$sexe=0$agentId,1,0,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction'],$campagneId,$signe=0,$valeurSigne=0);
  144.             if($infoTotalProducteur!=null)
  145.               $nbreTotalProducteur=$infoTotalProducteur[0]['nbreTotal'];
  146.             $listeCert = ['labels'=>'Nombre de producteur''data'=> $nbreTotalProducteur ];
  147.         }elseif($typeAction == 2){
  148.             $nbreTotalParcelle 0;
  149.             $infoTotalParcelle  $this->surfaceAnneeRepository->getSumIntentionProducteurByAbonne($abonneId$groupementId$tabVille=array(),$type=1,0,$agentId,$zoneId,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
  150.             if($infoTotalParcelle!=null)
  151.               $nbreTotalParcelle=$infoTotalParcelle[0]['valSurface'];
  152.             $listeCert = ['labels'=>'Nombre de parcelle''data'=> $nbreTotalParcelle ];
  153.         }elseif($typeAction == 3){
  154.             $nbreTotalSuperficie =0;
  155.             $infoTotalSuperficie  $this->surfaceAnneeRepository->getSumIntentionProducteurByAbonne($abonneId$groupementId$tabVille=array(),$type=0,0,$agentId,$zoneId,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
  156.             if($infoTotalSuperficie!=null)
  157.               $nbreTotalSuperficie=$infoTotalSuperficie[0]['valSurface'];
  158.             $listeCert = ['labels'=>'Nombre de superficie''data'=> $nbreTotalSuperficie ];
  159.         }elseif($typeAction == 4){
  160.             $countFournissueur =0;
  161.             $infoFournissueur  $this->fournisseurRepository->getCountAndSimpleAllFournisseur($type=1$abonneId,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction'], $modele=0);
  162.             if($infoFournissueur!=null)
  163.               $countFournissueur=$infoFournissueur[0]['total'];
  164.             
  165.             $listeCert = ['labels'=>'Nombre de fournisseur''data'=> $countFournissueur ];
  166.         }
  167.         $dataSend =  $this->get('serializer')->serialize(array('data' =>$listeCert ), 'json');
  168.         $response = new Response($dataSend);
  169.         $response->headers->set('Content-Type''application/json');
  170.         return $response;
  171.   
  172.       }
  173.     
  174.     /**
  175.      * Traitement dess synthèses 
  176.        *
  177.      * @Route("/parcelle", name="app_api_stats_parcelle")
  178.      * @Method({"POST"})
  179.      * 
  180.      */
  181.     public function apiStatsParcelleAction(Request $request
  182.     ) {
  183.         $parameters json_decode($request->getContent(), true);
  184.         $zoneId $parameters['zoneId']; //
  185.         $groupementId $parameters['groupementId']; //
  186.         $produitId $parameters['produitId']; //
  187.         $abonneId $parameters['abonneId']; //
  188.         $agentId $parameters['agentId']; //
  189.         $campagneId $parameters['campagneId']; //
  190.         $inspectionId $parameters['inspectionId'];
  191.         $nbParPageInt5;
  192.         $em $this->getDoctrine()->getManager();
  193.         $infoPartenaire  $this->getInfoPartenaire($em$this->getAbonne($em$abonneId,$this->abonneRepository));
  194.         $listeCert['nbreTotalParcelle']  = $this->surfaceAnneeRepository->getSumIntentionProducteurByAbonne($abonneId$groupementId$tabVille=array(),$type=1,0,$agentId,$zoneId,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
  195.         $listeCert['nbreTotalSuperficie']  = $this->surfaceAnneeRepository->getSumIntentionProducteurByAbonne($abonneId$groupementId$tabVille=array(),$type=0,0,$agentId,$zoneId,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
  196.         $siLocalisation $this->getStatGeolocalisationAction($em,$abonneId$groupementId$zoneId0$infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
  197.         $siLocalisationtotal $this->getStatGeolocalisationTotalAction($em,$abonneId$groupementId$zoneId0$infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
  198.         $listeCert['infoLocalisation'] =  [$siLocalisation,$siLocalisationtotal ]  ;
  199.         $listeCert['siPolygon'] = $this->getStatPolygonAction($em,$abonneId$groupementId$zoneId$siP=1$infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
  200.       
  201.         $siInspection $this->getStatInspectionParcelleAction($em,$abonneId$groupementId$zoneId,  $inspectionId0$infoPartenaire['partenaireId'], $infoPartenaire['typeAction']) ;
  202.         $noInspection $this->getStatInspectionParcelleAction($em,$abonneId$groupementId$zoneId,  $inspectionId1$infoPartenaire['partenaireId'], $infoPartenaire['typeAction'])  ;
  203.         $listeCert['infoLocalisation'] =  [$siInspection,$noInspection]  ;
  204.         $listeCert['inspectionByMonth'] = $this->getChatBatInspection($em,$abonneId$inspectionId );
  205.         
  206.         $dataSend =  $this->get('serializer')->serialize(array('data' =>$listeCert ), 'json');
  207.         $response = new Response($dataSend);
  208.         $response->headers->set('Content-Type''application/json');
  209.         return $response;
  210.   
  211.       }
  212.       /**
  213.      * Traitement dess synthèses 
  214.         *
  215.      * @Route("/get/info/parcelle", name="app_api_stats_get_info_parcelle")
  216.      * @Method({"POST"})
  217.      * 
  218.      */
  219.     public function apiGetParcelleAction(Request $request
  220.     ) {
  221.         $parameters json_decode($request->getContent(), true);
  222.         $zoneId $parameters['zoneId']; //
  223.         $groupementId $parameters['groupementId']; //
  224.         $produitId $parameters['produitId']; //
  225.         $abonneId $parameters['abonneId']; //
  226.         $agentId $parameters['agentId']; //
  227.         $campagneId $parameters['campagneId']; //
  228.         $nbParPageInt5;
  229.         $em $this->getDoctrine()->getManager();
  230.         $infoPartenaire  $this->getInfoPartenaire($em$this->getAbonne($em$abonneId,$this->abonneRepository));
  231.         
  232.         $listeCert['listeParcelle']  = $this->surfaceAnneeRepository->getSumIntentionProducteurByAbonne($abonneId$groupementId$tabVille=array(),$type=0,0,$agentId,$zoneId,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction']);
  233.     
  234.         $listeCert['minListeParcelle']  = $this->surfaceAnneeRepository->getIntentionMinMaxProducteur($abonneId$groupementId$tabVille=array(),$type=1,0,$agentId,$zoneId,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction'],  $siPolygon=0,$region=0$ville=0$produit=0$sexe=0$agent=0$nbParPageInt);
  235.         $listeCert['maxListeParcelle']  = $this->surfaceAnneeRepository->getIntentionMinMaxProducteur($abonneId$groupementId$tabVille=array(),$type=2,0,$agentId,$zoneId,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction'],  $siPolygon=0,$region=0$ville=0$produit=0$sexe=0$agent=0$nbParPageInt);
  236.     
  237.         
  238.         $dataSend =  $this->get('serializer')->serialize(array('data' =>$listeCert ), 'json');
  239.         $response = new Response($dataSend);
  240.         $response->headers->set('Content-Type''application/json');
  241.         return $response;
  242.   
  243.       }
  244.     /**
  245.      * Traitement dess synthèses 
  246.      *
  247.      * @Route("/inspection", name="app_api_stats_inspection")
  248.      * @Method({"POST"})
  249.      * 
  250.      */
  251.     public function apiGetStatsInspectionAction(Request $request
  252.     ) {
  253.         $parameters json_decode($request->getContent(), true);
  254.         $zoneId $parameters['zoneId']; //
  255.         $groupementId $parameters['groupementId']; //
  256.         $inspectionId $parameters['inspectionId']; //
  257.         $abonneId $parameters['abonneId']; //
  258.         $agentId $parameters['agentId']; //
  259.         $campagneId $parameters['campagneId']; //
  260.         $nbParPageInt5;
  261.         $em $this->getDoctrine()->getManager();
  262.         $infoPartenaire  $this->getInfoPartenaire($em$this->getAbonne($em$abonneId,$this->abonneRepository));
  263.         $listeCert['inspectionAgent']  = $this->getStatInspectionByAgentAction($em,$abonneId$agentId$inspectionId);
  264.         
  265.         $dataSend =  $this->get('serializer')->serialize(array('data' =>$listeCert ), 'json');
  266.         $response = new Response($dataSend);
  267.         $response->headers->set('Content-Type''application/json');
  268.         return $response;
  269.   
  270.       }
  271.     /**
  272.      * Traitement dess synthèses 
  273.      *
  274.      * @Route("/fournisseur", name="app_api_stats_fournisseur")
  275.      * @Method({"POST"})
  276.      * 
  277.      */
  278.     public function apiGetStatsFournisseurAction(Request $request
  279.     ) {
  280.         $parameters json_decode($request->getContent(), true);
  281.         $zoneId $parameters['zoneId']; //
  282.         $groupementId $parameters['groupementId']; //
  283.         $produitId $parameters['produitId']; //
  284.         $abonneId $parameters['abonneId']; //
  285.         $agentId $parameters['agentId']; //
  286.         $campagneId $parameters['campagneId']; //
  287.         $nbParPageInt5;
  288.         $em $this->getDoctrine()->getManager();
  289.         $infoPartenaire  $this->getInfoPartenaire($em$this->getAbonne($em$abonneId,$this->abonneRepository));
  290.         $listeCert['countFournissueur']  = $this->fournisseurRepository->getCountAndSimpleAllFournisseur($type=1$abonneId,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction'], $modele=0);
  291.         $listeCert['listeFournissueur']  = $this->fournisseurRepository->getCountAndSimpleAllFournisseur($type=1$abonneId,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction'], $modele=1);
  292.        
  293.         $dataSend =  $this->get('serializer')->serialize(array('data' =>$listeCert ), 'json');
  294.         $response = new Response($dataSend);
  295.         $response->headers->set('Content-Type''application/json');
  296.         return $response;
  297.   
  298.       }
  299.        /**
  300.      * Traitement dess synthèses 
  301.      *
  302.      * @Route("/localisation", name="app_api_stats_localisation")
  303.      * @Method({"POST"})
  304.      * 
  305.      */
  306.     public function apiGetStatsLocalisationAction(Request $request
  307.     ) {
  308.         $parameters json_decode($request->getContent(), true);
  309.         $zoneId $parameters['zoneId']; //
  310.         $groupementId $parameters['groupementId']; //
  311.         $produitId $parameters['produitId']; //
  312.         $abonneId $parameters['abonneId']; //
  313.         $agentId $parameters['agentId']; //
  314.         $campagneId $parameters['campagneId']; //
  315.         $nbParPageInt5;
  316.         $em $this->getDoctrine()->getManager();
  317.         $infoPartenaire  $this->getInfoPartenaire($em$this->getAbonne($em$abonneId,$this->abonneRepository));
  318.         $listeCert['localisation']  = $this->localisationRepository->getAllProducteurLocalisation($typeprod=0$zoneId$village=0$region=0$ville=0$groupementId$produitId$nbParPage=0$pageActuelle=0,0,5,$tabVille=array(),$num=0,$abonneId$sexe=0$agentId,1,0,$infoPartenaire['partenaireId'], $infoPartenaire['typeAction'],$campagneId,$signe=0,$valeurSigne=0);;
  319.               
  320.         $dataSend =  $this->get('serializer')->serialize(array('data' =>$listeCert ), 'json');
  321.         $response = new Response($dataSend);
  322.         $response->headers->set('Content-Type''application/json');
  323.         return $response;
  324.   
  325.       }
  326.       
  327. }
  328.