src/Controller/HomeController.php line 84

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use App\Entity\Categorie;
  5. use App\Entity\Subcategorie;
  6. use App\Entity\Products;
  7. use App\Entity\PvDetails;
  8. use App\Entity\Complaint;
  9. use App\Entity\ExpDays;
  10. use App\Entity\FraudComplaint;
  11. use App\Entity\FraudComplaintProducts;
  12. use App\Entity\Campaign;
  13. use App\Entity\AgentGroup;
  14. use App\Entity\Notifications;
  15. use App\Form\RegistrationFormType;
  16. use File;
  17. use App\Util\Mailer;
  18. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  19. use Doctrine\ORM\EntityManagerInterface;
  20. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  21. use Validator;
  22. use Symfony\Component\Validator\Constraints\IsTrue;
  23. use Symfony\Component\Validator\Constraints\Length;
  24. use Symfony\Component\Validator\Constraints\NotBlank;
  25. use App\Service\FileUploader;
  26. use Doctrine\ORM\EntityManager;
  27. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  28. use Symfony\Component\HttpFoundation\Response;
  29. use Symfony\Component\HttpFoundation\Request;
  30. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  31. use Symfony\Component\Routing\Annotation\Route;
  32. use Symfony\Component\Security\Http\Authentication\UserAuthenticatorInterface;
  33. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  34. use PhpOffice\PhpSpreadsheet\IOFactory;
  35. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  36. use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  37. class HomeController extends AbstractController
  38. {
  39.     private $dispatcher;
  40.     private $mailer;
  41.     private $entityManager;
  42.     public function __construct(
  43.         EventDispatcherInterface $dispatcher,
  44.         Mailer $mailer,
  45.         UrlGeneratorInterface $urlGenerator,
  46.         EntityManagerInterface $entityManager
  47.     ) {
  48.         $this->entityManager $entityManager;
  49.         $this->dispatcher $dispatcher;
  50.         $this->mailer $mailer;
  51.         $this->urlGenerator $urlGenerator;
  52.     }
  53.      /**
  54.      * @Route("/switch_language/{id}/{lang}", name="app_switch_language")
  55.      */
  56.      public function switch_language(User $request,$lang)
  57.      {    
  58.           if($lang == 1){
  59.                $lang='en';
  60.           }else{
  61.                $lang='fr';
  62.           }
  63.           // $user = $this->getUser();
  64.           $em $this->getDoctrine()->getManager();
  65.           $request->setLang($lang);
  66.           $em->persist($request);
  67.           $em->flush();
  68.           if($lang == 'en'){
  69.                $this->addFlash('green''You have successfully change the language.');
  70.           }elseif($lang == 'fr'){
  71.                $this->addFlash('green''Vous avez réussi à changer la langue.');
  72.           }else{
  73.                $this->addFlash('green''You have successfully change the language.');
  74.           }
  75.           return $this->redirect($_SERVER['HTTP_REFERER']); 
  76.      }
  77.      /**
  78.      * @Route("/home", name="app_home")
  79.      */
  80.      public function index(): Response
  81.      {
  82.         
  83.           if ($this->getUser()) {
  84.              $client $this->getUser();
  85.           } else {
  86.               return $this->redirectToRoute('user_login');
  87.           }
  88.           
  89.           $user $this->getUser();
  90.           $type_user=$user->getType();
  91.           $allid=explode(","$user->getRolebyadmin());
  92.           $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  93.           if($type_user == "SuperAdmin" || $type_user == "Client Admin"){
  94.                  $all_user$this->getDoctrine()->getRepository('App\Entity\User')->findAllFieldUserCount();
  95.                  $all_user_count=count($all_user);
  96.                  $all_agent$this->getDoctrine()->getRepository('App\Entity\User')->findAllFieldAgentCount();
  97.                  $all_agent_count=count($all_agent);
  98.                  $all_agent_group$this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findBy(array('status'=>true));
  99.                  $all_agent_group_count=count($all_agent_group);
  100.                  $all_product$this->getDoctrine()->getRepository('App\Entity\Products')->findBy(array('status'=>true));
  101.                  $all_product_count=count($all_product);
  102.                  $all_pv_unpaid$this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findBy(array('status'=>0));
  103.                  $all_pv_unpaid_count=count($all_pv_unpaid);
  104.                  
  105.                  $all_pv_paid$this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findBy(array('status'=>1));
  106.                  $all_pv_paid_count=count($all_pv_paid);
  107.                 $paidamount $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findBy(
  108.                     array('status'=>1),
  109.                     array('id'=>'desc'),
  110.                     );
  111.                 $paidamount_sum 0;
  112.                 foreach ($paidamount as $key => $value) {
  113.                     $pv $this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id' => $value->getFine()));
  114.                     if ($pv) {
  115.                     $paidamount_sum += $pv->amount;
  116.                     } else {
  117.                     $paidamount_sum += 0;
  118.                     }
  119.                 }
  120.                 $unpaidamount $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findBy(
  121.                     array('status'=>0),
  122.                     array('id'=>'desc'),
  123.                     );
  124.                 $unpaidamount_sum 0;
  125.                 foreach ($unpaidamount as $key => $value) {
  126.                     $pv $this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id' => $value->getFine()));
  127.                     if ($pv) {
  128.                     $unpaidamount_sum += $pv->amount;
  129.                     } else {
  130.                     $unpaidamount_sum += 0;
  131.                     }
  132.                 }
  133.                  /*January start*/
  134.                  $Pending_jan $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  135.                      "0","1",date('Y')
  136.                  );
  137.                  $Pending_jan_count=count($Pending_jan);
  138.                  $assigned_jan $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  139.                       "1","1",date('Y')
  140.                  );
  141.                  $assigned_jan_count=count($assigned_jan); 
  142.                  $Resolved_jan $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  143.                       "2","1",date('Y')
  144.                  );
  145.                  $Resolved_jan_count=count($Resolved_jan); 
  146.                  /*January end*/
  147.                  /*February start*/
  148.                  $Pending_feb $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  149.                      "0","2",date('Y')
  150.                  );
  151.                  $Pending_feb_count=count($Pending_feb);
  152.                  $assigned_feb $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  153.                       "1","2",date('Y')
  154.                  );
  155.                  $assigned_feb_count=count($assigned_feb); 
  156.                  $Resolved_feb $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  157.                       "2","2",date('Y')
  158.                  );
  159.                  $Resolved_feb_count=count($Resolved_feb);
  160.                  /*February end*/
  161.                  /*March start*/
  162.                  $Pending_march $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  163.                      "0","3",date('Y')
  164.                  );
  165.                  $Pending_march_count=count($Pending_march);
  166.                  $assigned_march $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  167.                       "1","3",date('Y')
  168.                  );
  169.                  $assigned_march_count=count($assigned_march); 
  170.                  $Resolved_march $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  171.                       "2","3",date('Y')
  172.                  );
  173.                  $Resolved_march_count=count($Resolved_march);
  174.                  /*March end*/
  175.                  /*April start*/
  176.                  $Pending_april $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  177.                      "0","4",date('Y')
  178.                  );
  179.                  $Pending_april_count=count($Pending_april);
  180.                  $assigned_april $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  181.                       "1","4",date('Y')
  182.                  );
  183.                  $assigned_april_count=count($assigned_april); 
  184.                  $Resolved_april $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  185.                       "2","4",date('Y')
  186.                  );
  187.                  $Resolved_april_count=count($Resolved_april);
  188.                  /*April end*/
  189.                  /*May start*/
  190.                  $Pending_may $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  191.                      "0","5",date('Y')
  192.                  );
  193.                  $Pending_may_count=count($Pending_may);
  194.                  $assigned_may $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  195.                       "1","5",date('Y')
  196.                  );
  197.                  $assigned_may_count=count($assigned_may); 
  198.                  $Resolved_may $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  199.                       "2","5",date('Y')
  200.                  );
  201.                  $Resolved_may_count=count($Resolved_may);
  202.                  /*May end*/
  203.                  /*June start*/
  204.                  $Pending_june $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  205.                      "0","6",date('Y')
  206.                  );
  207.                  $Pending_june_count=count($Pending_june);
  208.                  $assigned_june $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  209.                       "1","6",date('Y')
  210.                  );
  211.                  $assigned_june_count=count($assigned_june); 
  212.                  $Resolved_june $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  213.                       "2","6",date('Y')
  214.                  );
  215.                  $Resolved_june_count=count($Resolved_june);
  216.                  /*June end*/
  217.                  /*July start*/
  218.                  $Pending_july $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  219.                      "0","7",date('Y')
  220.                  );
  221.                  $Pending_july_count=count($Pending_july);
  222.                  $assigned_july $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  223.                       "1","7",date('Y')
  224.                  );
  225.                  $assigned_july_count=count($assigned_july); 
  226.                  $Resolved_july $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  227.                       "2","7",date('Y')
  228.                  );
  229.                  $Resolved_july_count=count($Resolved_july);
  230.                  /*July end*/
  231.                  /*August start*/
  232.                  $Pending_aug $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  233.                      "0","8",date('Y')
  234.                  );
  235.                  $Pending_aug_count=count($Pending_aug);
  236.                  $assigned_aug $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  237.                       "1","8",date('Y')
  238.                  );
  239.                  $assigned_aug_count=count($assigned_aug); 
  240.                  $Resolved_aug $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  241.                       "2","8",date('Y')
  242.                  );
  243.                  $Resolved_aug_count=count($Resolved_aug);
  244.                  /*August end*/
  245.                  /*September start*/
  246.                  $Pending_sep $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  247.                      "0","9",date('Y')
  248.                  );
  249.                  $Pending_sep_count=count($Pending_sep);
  250.                  $assigned_sep $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  251.                       "1","9",date('Y')
  252.                  );
  253.                  $assigned_sep_count=count($assigned_sep); 
  254.                  $Resolved_sep $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  255.                       "2","9",date('Y')
  256.                  );
  257.                  $Resolved_sep_count=count($Resolved_sep);
  258.                  /*September end*/
  259.                  /*October start*/
  260.                  $Pending_oct $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  261.                      "0","10",date('Y')
  262.                  );
  263.                  $Pending_oct_count=count($Pending_oct);
  264.                  $assigned_oct $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  265.                       "1","10",date('Y')
  266.                  );
  267.                  $assigned_oct_count=count($assigned_oct); 
  268.                  $Resolved_oct $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  269.                       "2","10",date('Y')
  270.                  );
  271.                  $Resolved_oct_count=count($Resolved_oct);
  272.                  /*October end*/
  273.                  /*November start*/
  274.                  $Pending_nov $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  275.                      "0","11",date('Y')
  276.                  );
  277.                  $Pending_nov_count=count($Pending_nov);
  278.                  $assigned_nov $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  279.                       "1","11",date('Y')
  280.                  );
  281.                  $assigned_nov_count=count($assigned_nov); 
  282.                  $Resolved_nov $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  283.                       "2","11",date('Y')
  284.                  );
  285.                  $Resolved_nov_count=count($Resolved_nov);
  286.                  /*November end*/
  287.                  /*December start*/
  288.                  $Pending_dec $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  289.                      "0","12",date('Y')
  290.                  );
  291.                  $Pending_dec_count=count($Pending_dec);
  292.                  $assigned_dec $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  293.                       "1","12",date('Y')
  294.                  );
  295.                  $assigned_dec_count=count($assigned_dec); 
  296.                  $Resolved_dec $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYearDashboard(
  297.                       "2","12",date('Y')
  298.                  );
  299.                  $Resolved_dec_count=count($Resolved_dec);
  300.                  /*December end*/
  301.                  $all_pending=[$Pending_jan_count,$Pending_feb_count,$Pending_march_count,$Pending_april_count,$Pending_may_count,$Pending_june_count,$Pending_july_count,$Pending_aug_count,$Pending_sep_count,$Pending_oct_count,$Pending_nov_count,$Pending_dec_count];
  302.                  $allnew_complaint_count=implode(','$all_pending);
  303.                  $all_assigned=[$assigned_jan_count,$assigned_feb_count,$assigned_march_count,$assigned_april_count,$assigned_may_count,$assigned_june_count,$assigned_july_count,$assigned_aug_count,$assigned_sep_count,$assigned_oct_count,$assigned_nov_count,$assigned_dec_count];
  304.                  $all_process_complaint_count=implode(','$all_assigned);
  305.                  $all_resolved=[$Resolved_jan_count,$Resolved_feb_count,$Resolved_march_count,$Resolved_april_count,$Resolved_may_count,$Resolved_june_count,$Resolved_july_count,$Resolved_aug_count,$Resolved_sep_count,$Resolved_oct_count,$Resolved_nov_count,$Resolved_dec_count];
  306.                  $all_resolved_complaint_count=implode(','$all_resolved);
  307.                  
  308.           }elseif($type_user == "Supervisor" || $type_user == "Hypervisor" || $type_user =="Operational Manager" || $type_user =="Financial Manager"){
  309.                  $all_user$this->getDoctrine()->getRepository('App\Entity\User')->findAllFieldUserCount();
  310.                  $all_user_count=count($all_user);
  311.                  $all_agent$this->getDoctrine()->getRepository('App\Entity\User')->findAllFieldAgentCount();
  312.                  $all_agent_count=count($all_agent);
  313.                  $all_agent_group$this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findBy(array('status'=>true,'city_id'=>$user->getCityId()));
  314.                  $all_agent_group_count=count($all_agent_group);
  315.                  $all_product$this->getDoctrine()->getRepository('App\Entity\Products')->findBy(array('status'=>true));
  316.                  $all_product_count=count($all_product);
  317.                  $all_pv_unpaid$this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findBy(array('status'=>0,'city'=>$user->getCityId()));
  318.                  $all_pv_unpaid_count=count($all_pv_unpaid);
  319.                  
  320.                  $all_pv_paid$this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findBy(array('status'=>1,'city'=>$user->getCityId()));
  321.                  $all_pv_paid_count=count($all_pv_paid);
  322.                  $paidamount $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findBy(
  323.                     array('status'=>1,'city'=>$user->getCityId()),
  324.                     array('id'=>'desc'),
  325.                     );
  326.                 $paidamount_sum 0;
  327.                 foreach ($paidamount as $key => $value) {
  328.                     $pv $this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id' => $value->getFine()));
  329.                     if ($pv) {
  330.                     $paidamount_sum += $pv->amount;
  331.                     } else {
  332.                     $paidamount_sum += 0;
  333.                     }
  334.                 }
  335.                 $unpaidamount $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findBy(
  336.                     array('status'=>0,'city'=>$user->getCityId()),
  337.                     array('id'=>'desc'),
  338.                     );
  339.                 $unpaidamount_sum 0;
  340.                 foreach ($unpaidamount as $key => $value) {
  341.                     $pv $this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id' => $value->getFine()));
  342.                     if ($pv) {
  343.                     $unpaidamount_sum += $pv->amount;
  344.                     } else {
  345.                     $unpaidamount_sum += 0;
  346.                     }
  347.                 }
  348.                  /*January start*/
  349.                  $Pending_jan $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  350.                      "0",$user->getCityId(),"1",date('Y')
  351.                  );
  352.                  $Pending_jan_count=count($Pending_jan);
  353.                  $assigned_jan $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  354.                       "1",$user->getCityId(),"1",date('Y')
  355.                  );
  356.                  $assigned_jan_count=count($assigned_jan); 
  357.                  $Resolved_jan $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  358.                       "2",$user->getCityId(),"1",date('Y')
  359.                  );
  360.                  $Resolved_jan_count=count($Resolved_jan); 
  361.                  /*January end*/
  362.                  /*February start*/
  363.                  $Pending_feb $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  364.                      "0",$user->getCityId(),"2",date('Y')
  365.                  );
  366.                  $Pending_feb_count=count($Pending_feb);
  367.                  $assigned_feb $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  368.                       "1",$user->getCityId(),"2",date('Y')
  369.                  );
  370.                  $assigned_feb_count=count($assigned_feb); 
  371.                  $Resolved_feb $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  372.                       "2",$user->getCityId(),"2",date('Y')
  373.                  );
  374.                  $Resolved_feb_count=count($Resolved_feb);
  375.                  /*February end*/
  376.                  /*March start*/
  377.                  $Pending_march $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  378.                      "0",$user->getCityId(),"3",date('Y')
  379.                  );
  380.                  $Pending_march_count=count($Pending_march);
  381.                  $assigned_march $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  382.                       "1",$user->getCityId(),"3",date('Y')
  383.                  );
  384.                  $assigned_march_count=count($assigned_march); 
  385.                  $Resolved_march $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  386.                       "2",$user->getCityId(),"3",date('Y')
  387.                  );
  388.                  $Resolved_march_count=count($Resolved_march);
  389.                  /*March end*/
  390.                  /*April start*/
  391.                  $Pending_april $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  392.                      "0",$user->getCityId(),"4",date('Y')
  393.                  );
  394.                  $Pending_april_count=count($Pending_april);
  395.                  $assigned_april $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  396.                       "1",$user->getCityId(),"4",date('Y')
  397.                  );
  398.                  $assigned_april_count=count($assigned_april); 
  399.                  $Resolved_april $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  400.                       "2",$user->getCityId(),"4",date('Y')
  401.                  );
  402.                  $Resolved_april_count=count($Resolved_april);
  403.                  /*April end*/
  404.                  /*May start*/
  405.                  $Pending_may $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  406.                      "0",$user->getCityId(),"5",date('Y')
  407.                  );
  408.                  $Pending_may_count=count($Pending_may);
  409.                  $assigned_may $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  410.                       "1",$user->getCityId(),"5",date('Y')
  411.                  );
  412.                  $assigned_may_count=count($assigned_may); 
  413.                  $Resolved_may $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  414.                       "2",$user->getCityId(),"5",date('Y')
  415.                  );
  416.                  $Resolved_may_count=count($Resolved_may);
  417.                  /*May end*/
  418.                  /*June start*/
  419.                  $Pending_june $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  420.                      "0",$user->getCityId(),"6",date('Y')
  421.                  );
  422.                  $Pending_june_count=count($Pending_june);
  423.                  $assigned_june $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  424.                       "1",$user->getCityId(),"6",date('Y')
  425.                  );
  426.                  $assigned_june_count=count($assigned_june); 
  427.                  $Resolved_june $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  428.                       "2",$user->getCityId(),"6",date('Y')
  429.                  );
  430.                  $Resolved_june_count=count($Resolved_june);
  431.                  /*June end*/
  432.                  /*July start*/
  433.                  $Pending_july $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  434.                      "0",$user->getCityId(),"7",date('Y')
  435.                  );
  436.                  $Pending_july_count=count($Pending_july);
  437.                  $assigned_july $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  438.                       "1",$user->getCityId(),"7",date('Y')
  439.                  );
  440.                  $assigned_july_count=count($assigned_july); 
  441.                  $Resolved_july $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  442.                       "2",$user->getCityId(),"7",date('Y')
  443.                  );
  444.                  $Resolved_july_count=count($Resolved_july);
  445.                  /*July end*/
  446.                  /*August start*/
  447.                  $Pending_aug $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  448.                      "0",$user->getCityId(),"8",date('Y')
  449.                  );
  450.                  $Pending_aug_count=count($Pending_aug);
  451.                  $assigned_aug $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  452.                       "1",$user->getCityId(),"8",date('Y')
  453.                  );
  454.                  $assigned_aug_count=count($assigned_aug); 
  455.                  $Resolved_aug $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  456.                       "2",$user->getCityId(),"8",date('Y')
  457.                  );
  458.                  $Resolved_aug_count=count($Resolved_aug);
  459.                  /*August end*/
  460.                  /*September start*/
  461.                  $Pending_sep $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  462.                      "0",$user->getCityId(),"9",date('Y')
  463.                  );
  464.                  $Pending_sep_count=count($Pending_sep);
  465.                  $assigned_sep $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  466.                       "1",$user->getCityId(),"9",date('Y')
  467.                  );
  468.                  $assigned_sep_count=count($assigned_sep); 
  469.                  $Resolved_sep $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  470.                       "2",$user->getCityId(),"9",date('Y')
  471.                  );
  472.                  $Resolved_sep_count=count($Resolved_sep);
  473.                  /*September end*/
  474.                  /*October start*/
  475.                  $Pending_oct $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  476.                      "0",$user->getCityId(),"10",date('Y')
  477.                  );
  478.                  $Pending_oct_count=count($Pending_oct);
  479.                  $assigned_oct $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  480.                       "1",$user->getCityId(),"10",date('Y')
  481.                  );
  482.                  $assigned_oct_count=count($assigned_oct); 
  483.                  $Resolved_oct $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  484.                       "2",$user->getCityId(),"10",date('Y')
  485.                  );
  486.                  $Resolved_oct_count=count($Resolved_oct);
  487.                  /*October end*/
  488.                  /*November start*/
  489.                  $Pending_nov $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  490.                      "0",$user->getCityId(),"11",date('Y')
  491.                  );
  492.                  $Pending_nov_count=count($Pending_nov);
  493.                  $assigned_nov $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  494.                       "1",$user->getCityId(),"11",date('Y')
  495.                  );
  496.                  $assigned_nov_count=count($assigned_nov); 
  497.                  $Resolved_nov $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  498.                       "2",$user->getCityId(),"11",date('Y')
  499.                  );
  500.                  $Resolved_nov_count=count($Resolved_nov);
  501.                  /*November end*/
  502.                  /*December start*/
  503.                  $Pending_dec $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  504.                      "0",$user->getCityId(),"12",date('Y')
  505.                  );
  506.                  $Pending_dec_count=count($Pending_dec);
  507.                  $assigned_dec $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  508.                       "1",$user->getCityId(),"12",date('Y')
  509.                  );
  510.                  $assigned_dec_count=count($assigned_dec); 
  511.                  $Resolved_dec $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  512.                       "2",$user->getCityId(),"12",date('Y')
  513.                  );
  514.                  $Resolved_dec_count=count($Resolved_dec);
  515.                  /*December end*/
  516.                  $all_pending=[$Pending_jan_count,$Pending_feb_count,$Pending_march_count,$Pending_april_count,$Pending_may_count,$Pending_june_count,$Pending_july_count,$Pending_aug_count,$Pending_sep_count,$Pending_oct_count,$Pending_nov_count,$Pending_dec_count];
  517.                  $allnew_complaint_count=implode(','$all_pending);
  518.                  // $allnew_complaint_count="1000, 2000, 3000, 2500, 2700, 2500, 3000,1000, 2000, 3000, 2500,130";
  519.                  $all_assigned=[$assigned_jan_count,$assigned_feb_count,$assigned_march_count,$assigned_april_count,$assigned_may_count,$assigned_june_count,$assigned_july_count,$assigned_aug_count,$assigned_sep_count,$assigned_oct_count,$assigned_nov_count,$assigned_dec_count];
  520.                  $all_process_complaint_count=implode(','$all_assigned);
  521.                  // $all_process_complaint_count="600, 3000, 1000, 500, 700, 5500, 3000,1000, 2000, 3000, 2500,130";
  522.                  $all_resolved=[$Resolved_jan_count,$Resolved_feb_count,$Resolved_march_count,$Resolved_april_count,$Resolved_may_count,$Resolved_june_count,$Resolved_july_count,$Resolved_aug_count,$Resolved_sep_count,$Resolved_oct_count,$Resolved_nov_count,$Resolved_dec_count];
  523.                  $all_resolved_complaint_count=implode(','$all_resolved);
  524.                  // $all_resolved_complaint_count="100, 200, 4000, 250, 270, 250, 300,100, 200, 300, 250,1300";
  525.           }else{
  526.             $all_user_count='0';
  527.             $all_agent_count='0';
  528.             $all_agent_group_count='0';
  529.             $all_product_count='0';
  530.             $all_pv_unpaid_count='0';
  531.             $all_pv_paid_count='0';
  532.             $allnew_complaint_count='0';
  533.             $all_process_complaint_count='0';
  534.             $all_resolved_complaint_count='0';
  535.             $unpaidamount_sum '0';
  536.             $paidamount_sum '0';
  537.           }
  538.           return $this->render('home/index.html.twig', [
  539.             'controller_name' => 'HomeController',
  540.             'user'=>$user,
  541.             'type_user'=>$type_user,
  542.             'roles_client'=>$roles_client,
  543.             'all_user_count'=>$all_user_count,
  544.             'all_agent_count'=>$all_agent_count,
  545.             'all_agent_group_count'=>$all_agent_group_count,
  546.             'all_product_count'=>$all_product_count,
  547.             'all_pv_paid_count'=>$all_pv_paid_count,
  548.             'all_pv_unpaid_count'=>$all_pv_unpaid_count,
  549.             'allnew_complaint_count'=>$allnew_complaint_count,
  550.             'all_process_complaint_count'=>$all_process_complaint_count,
  551.             'all_resolved_complaint_count'=>$all_resolved_complaint_count
  552.             'unpaidamount_sum' =>$unpaidamount_sum,
  553.             'paidamount_sum'=>$paidamount_sum
  554.           ]);
  555.      }
  556.      /**
  557.      * @Route("/profile", name="app_profile")
  558.      */
  559.      public function profile(Request $requestUserPasswordEncoderInterface $passwordEncoder)
  560.      {
  561.         
  562.           if ($this->getUser()) {
  563.                $client $this->getUser();
  564.           } else {
  565.                return $this->redirectToRoute('user_login');
  566.           }
  567.           $em $this->getDoctrine()->getManager();
  568.         
  569.              if ($request->getMethod() === "POST") {
  570.                  
  571.                  // Change password 
  572.                  if ($request->request->get('newpassword')) {
  573.                      $user $this->getUser();
  574.                      // print_r($request->request->all());die;
  575.                      $old_pwd $request->request->get('oldpassword');
  576.                      $newPassword $request->get('newpassword');
  577.                      $new_pwd_confirm $request->get('pass_confirm');
  578.                      
  579.                      
  580.                      $checkPass $passwordEncoder->isPasswordValid($user$old_pwd);
  581.                      if ($checkPass === true) {
  582.                          
  583.                          if($newPassword === $new_pwd_confirm){
  584.                              $newEncodedPassword $passwordEncoder->encodePassword($user$newPassword);
  585.                              
  586.                              $user->setPassword($newEncodedPassword);
  587.                              $em->persist($user);
  588.                              $em->flush();
  589.                              if($client->getLang() == 'en'){
  590.                                 $this->addFlash('green''Password change successfully..!!');
  591.                              }else{
  592.                                 $this->addFlash('green''Changement de mot de passe réussi..!');
  593.                              }
  594.                          }else{
  595.                               if($client->getLang() == 'en'){
  596.                                  $this->addFlash('red''Password not matching..!!');
  597.                               }else{
  598.                                  $this->addFlash('red''Le mot de passe ne correspond pas..!!');
  599.                               }
  600.                          }
  601.                      } else {
  602.                          if($client->getLang() == 'en'){
  603.                             $this->addFlash('red''Old password is incorrect..!!');
  604.                          }else{
  605.                             $this->addFlash('red'"L'ancien mot de passe est incorrect..!!");
  606.                          }
  607.                      }
  608.                  }
  609.                  
  610.              }
  611.         $user $this->getUser();
  612.         $type_user=$user->getType();
  613.         $allid=explode(","$user->getRolebyadmin());
  614.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  615.         return $this->render('home/profile.html.twig'
  616.             array(
  617.                 // 'form'=>$form->createView(),
  618.                 'client' => $client,
  619.                 'type_user'=>$type_user,
  620.                 'roles_client'=>$roles_client,
  621.                 'implode_pending'=>'',
  622.                 'implode_assigned'=>'',
  623.                 'implode_resolved'=>'',  
  624.                 )
  625.         );
  626.     }
  627.     /**
  628.      * @Route("/update-profile", name="app_update_profile")
  629.      */
  630.     public function update_profile(Request $request )
  631.     {
  632.           if($this->getUser()){
  633.                $client $this->getUser();
  634.           }else{
  635.                return $this->redirectToRoute('user_login');
  636.           }
  637.              $user $this->getUser();
  638.              $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBySomeField(array('value'=>$user->getId()),array('email'=>$request->request->get('email')));
  639.           if (empty($result)) {
  640.             $em $this->getDoctrine()->getManager();
  641.             
  642.             if ($request->getMethod() === "POST") {
  643.                 
  644.                 $user $this->getUser();
  645.                 $name $request->request->get('name');
  646.                 $email $request->get('email');
  647.                 $mobile $request->get('mobile');
  648.                 $user->setName($name);
  649.                 $user->setEmail($email);
  650.                 $user->setMobile($mobile);
  651.                 $em->persist($user);
  652.                 $em->flush();
  653.                if($client->getLang() == 'en'){
  654.                   $this->addFlash('green''Profile updated successfully..!!');
  655.                }else{
  656.                   $this->addFlash('green''Profil mis à jour avec succès..!!');
  657.                }
  658.                 
  659.             }
  660.           }else{
  661.                if($client->getLang() == 'en'){
  662.                   $this->addFlash('red''There is already an account with this email');
  663.                }else{
  664.                   $this->addFlash('red''Il existe déjà un compte avec cette adresse e-mail');
  665.                }
  666.           }
  667.         return $this->redirectToRoute('app_profile');
  668.     }
  669.     
  670.      /**
  671.      * @Route("/manage-pv-detail", name="app_pv_detail")
  672.      */
  673.     public function manage_pv_detail()
  674.     {
  675.         if ($this->getUser()) {
  676.             $client $this->getUser();
  677.         } else {
  678.             return $this->redirectToRoute('user_login');
  679.         }
  680.         
  681.         $user $this->getUser();
  682.         $type_user=$user->getType();
  683.         $allid=explode(","$user->getRolebyadmin());
  684.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  685.         if($type_user == "SuperAdmin" || $type_user == "Client Admin"){
  686.             $datas $this->getDoctrine()->getRepository('App\Entity\PvDetails')->findBy(array(),array('id'=>'desc'));
  687.             $page='home/manage_pv_detail.html.twig';
  688.         }else{
  689.             $page='security/pagenotfound.html.twig';
  690.             $datas "";
  691.         }
  692.         return $this->render($page
  693.             array(
  694.                 'client' => $client,
  695.                 'datas'=>$datas,
  696.                 'type_user'=>$type_user,
  697.                 'roles_client'=>$roles_client,
  698.                 'implode_pending'=>'',
  699.                 'implode_assigned'=>'',
  700.                 'implode_resolved'=>'',  
  701.             )
  702.         );
  703.     }
  704.     /**
  705.      * @Route("/request-pv-detail", name="app_create_pv_detail")
  706.      */
  707.     public function create_pv_detail(Request $request)
  708.     {
  709.         if ($this->getUser()) {
  710.             $client $this->getUser();
  711.         } else {
  712.             return $this->redirectToRoute('user_login');
  713.         }
  714.         $user $this->getUser();
  715.         $user_id=$user->getId();
  716.        
  717.         $em $this->getDoctrine()->getManager();
  718.         if ($request->getMethod() === "POST") {
  719.             if($request->request->get('table_id') !=""){
  720.                 $updateRequest $this->getDoctrine()->getRepository('App\Entity\PvDetails')
  721.                 ->find($request->request->get('table_id'));
  722.                 $updateRequest->setAmount($request->request->get('amount'));
  723.                 $updateRequest->setFineFor($request->request->get('finefor'));
  724.                 $em $this->getDoctrine()->getManager();
  725.                 $em->persist($updateRequest);
  726.                 $em->flush();
  727.                 if($client->getLang() == 'en'){
  728.                   $this->addFlash('green''Pv detail update successfully..!!');
  729.                }else{
  730.                   $this->addFlash('green''Mise à jour des détails du Pv avec succès..!!');
  731.                }
  732.                  
  733.             }else{
  734.                 // print_r($request->request->all());die;
  735.                 $addRequest = new PvDetails;
  736.                 $addRequest->setAmount($request->request->get('amount'));
  737.                 $addRequest->setFineFor($request->request->get('finefor'));
  738.                 $addRequest->setStatus('1');
  739.                 $em $this->getDoctrine()->getManager();
  740.                 $em->persist($addRequest);
  741.                 $em->flush();
  742.                 if($client->getLang() == 'en'){
  743.                   $this->addFlash('green''Pv detail added successfully..!!');
  744.                }else{
  745.                   $this->addFlash('green''Détail Pv ajouté avec succès..!!');
  746.                }
  747.                  
  748.             }
  749.         }
  750.         return $this->redirectToRoute('app_pv_detail');
  751.     }
  752.     /**
  753.      * @Route("/request-pv-detail-delete/{id}", name="app_pv_detail_delete")
  754.      */
  755.     public function pv_detail_delete(PvDetails $request,$id)
  756.     {
  757.         $em $this->getDoctrine()->getManager();
  758.         $request->getId($id);
  759.         $em->remove($request);
  760.         $em->flush();
  761.           if($client->getLang() == 'en'){
  762.              $this->addFlash('green','Pv detail deleted successfully..!!');
  763.           }else{
  764.              $this->addFlash('green','Pv detail deleted successfully..!!');
  765.           }
  766.         return $this->redirectToRoute('app_pv_detail');
  767.     }
  768.     /**
  769.      * @Route("/update-pv-detail-status/{id}/{status}", name="update_pv_detail_status")
  770.      */
  771.     public function updatepvdetailstatus(PvDetails $request,$status)
  772.     {
  773.           if ($this->getUser()) {
  774.             $client $this->getUser();
  775.           } else {
  776.             return $this->redirectToRoute('user_login');
  777.           }
  778.         $em $this->getDoctrine()->getManager();
  779.         $request->setStatus($status);
  780.         $em->persist($request);
  781.         $em->flush();
  782.         if($status == 1){
  783.           if($client->getLang() == 'en'){
  784.              $this->addFlash('green''You have enable the pv detail');
  785.           }else{
  786.              $this->addFlash('green''Vous avez activé le détail pv');
  787.           }     
  788.             
  789.         }else{
  790.           if($client->getLang() == 'en'){
  791.              $this->addFlash('red''You have disable the pv detail');
  792.           }else{
  793.              $this->addFlash('red''Vous avez désactivé les détails de la P.V.');
  794.           }
  795.             
  796.         }
  797.         return $this->redirectToRoute('app_pv_detail');
  798.     }
  799.     
  800.      /**
  801.      * @Route("/manage-products", name="app_manage_product")
  802.      */
  803.     public function manage_product()
  804.     {
  805.         if ($this->getUser()) {
  806.             $client $this->getUser();
  807.         } else {
  808.             return $this->redirectToRoute('user_login');
  809.         }
  810.         
  811.         $user $this->getUser();
  812.         $type_user=$user->getType();
  813.         $allid=explode(","$user->getRolebyadmin());
  814.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  815.         if($type_user == "SuperAdmin" || $type_user == "Client Admin"){
  816.             $datas $this->getDoctrine()->getRepository('App\Entity\Products')->findBy(array(),array('id'=>'desc'));
  817.             $categorie $this->getDoctrine()->getRepository(Categorie::class)->findBy(array(),array('id'=>'desc'));
  818.             $subcategorie $this->getDoctrine()->getRepository(Subcategorie::class)->findBy(array('status'=>'1'));
  819.             $page='home/manage_product.html.twig';
  820.         }else{
  821.             $page='security/pagenotfound.html.twig';
  822.             $datas "";
  823.             $categorie ="";
  824.             $subcategorie ="";
  825.         }
  826.         return $this->render($page
  827.             array(
  828.                 'client' => $client,
  829.                 'datas'=>$datas,
  830.                 'category'=>$categorie,
  831.                 'subcategory'=>$subcategorie,
  832.                 'type_user'=>$type_user,
  833.                 'roles_client'=>$roles_client,
  834.                 'implode_pending'=>'',
  835.                 'implode_assigned'=>'',
  836.                 'implode_resolved'=>'',  
  837.             )
  838.         );
  839.     }
  840.     
  841.     
  842.     /**
  843.      * @Route("/create_product", name="app_create_product")
  844.      */
  845.     public function create_manage_product(Request $request,string $uploadDir,FileUploader $uploader)
  846.     {
  847.         if ($this->getUser()) {
  848.             $client $this->getUser();
  849.         } else {
  850.             return $this->redirectToRoute('user_login');
  851.         }
  852.         $user $this->getUser();
  853.         $user_id=$user->getId();
  854.        
  855.         $em $this->getDoctrine()->getManager();
  856.         if ($request->getMethod() === "POST") {
  857.             $categorie $this->getDoctrine()->getRepository(Categorie::class)->findOneBy(array('id' => $request->request->get('categoryid')));
  858.             $subcategorie $this->getDoctrine()->getRepository(Subcategorie::class)->findOneBy(array('id' => $request->request->get('subcategoryid')));
  859.             if($request->request->get('table_id') !=""){
  860.                 $file $request->files->get('image');
  861.                 if (!empty($file))
  862.                 {
  863.                     $filename $file->getClientOriginalName();
  864.                     $uploader->upload($uploadDir$file$filename);
  865.                 }else{
  866.                     $filename $request->request->get('oldimage');
  867.                 } 
  868.                 $d=$request->request->get('description');
  869.                 if (!empty($d))
  870.                 {
  871.                     $description=$request->request->get('description');
  872.                 }else{
  873.                     $description=$request->request->get('olddescription');
  874.                 }
  875.                 $updateRequest =  $this->getDoctrine()->getRepository('App\Entity\Products')
  876.                 ->find($request->request->get('table_id'));
  877.                 $updateRequest->setProductname($request->request->get('name'));
  878.                 $updateRequest->setCategory($categorie);
  879.                 $updateRequest->setSubcategory($subcategorie);
  880.                 $updateRequest->setDescription($description);
  881.                 $updateRequest->setRetailprice($request->request->get('retailprice'));
  882.                 $updateRequest->setWholesaleprice($request->request->get('wholesaleprice'));
  883.                 $updateRequest->setSemiretailprice($request->request->get('semiretailprice'));
  884.                 $updateRequest->setImage($filename);
  885.                 $updateRequest->setStatus('1');
  886.                 $em $this->getDoctrine()->getManager();
  887.                 $em->persist($updateRequest);
  888.                 $em->flush();
  889.                 if($client->getLang() == 'en'){
  890.                   $this->addFlash('green''Product update successfully..!!'); 
  891.                }else{
  892.                   $this->addFlash('green''Mise à jour du produit réussie..!!'); 
  893.                }
  894.             }else{
  895.                 $file $request->files->get('image');
  896.                 if (!empty($file))
  897.                 {
  898.                     $filename $file->getClientOriginalName();
  899.                     $uploader->upload($uploadDir$file$filename);
  900.                 }else{
  901.                     $filename=null;
  902.                 }
  903.                 $addRequest = new Products;
  904.                 $addRequest->setProductname($request->request->get('name'));
  905.                 $addRequest->setCategory($categorie);
  906.                 $addRequest->setSubcategory($subcategorie);
  907.                 $addRequest->setDescription($request->request->get('description'));
  908.                 $addRequest->setRetailprice($request->request->get('retailprice'));
  909.                 $addRequest->setWholesaleprice($request->request->get('wholesaleprice'));
  910.                 $addRequest->setSemiretailprice($request->request->get('semiretailprice'));
  911.                 $addRequest->setImage($filename);
  912.                 $addRequest->setStatus('1');
  913.                 $em $this->getDoctrine()->getManager();
  914.                 $em->persist($addRequest);
  915.                 $em->flush();
  916.                 if($client->getLang() == 'en'){
  917.                   $this->addFlash('green''Product added successfully..!!');  
  918.                }else{
  919.                   $this->addFlash('green''Produit ajouté avec succès..!!'); 
  920.                }
  921.             }
  922.         }
  923.         return $this->redirectToRoute('app_manage_product');
  924.     }
  925.     /**
  926.      * @Route("/upload-excel", name="xlsx")
  927.      * @param Request $request
  928.      */
  929.     public function xslx(Request $request)
  930.     {
  931.         if ($this->getUser()) {
  932.             $client $this->getUser();
  933.         } else {
  934.             return $this->redirectToRoute('user_login');
  935.         }
  936.        $file $request->files->get('file'); // get the file from the sent request
  937.        $categorie $this->getDoctrine()->getRepository(Categorie::class)->findOneBy(array('id' => $request->request->get('categoryid')));
  938.         $subcategorie $this->getDoctrine()->getRepository(Subcategorie::class)->findOneBy(array('id' => $request->request->get('subcategoryid')));
  939.        $fileFolder __DIR__ '/../../public/images/';  //choose the folder in which the uploaded file will be stored
  940.       
  941.        $filePathName md5(uniqid()) . $file->getClientOriginalName();
  942.           // apply md5 function to generate an unique identifier for the file and concat it with the file extension  
  943.                 try {
  944.                     $file->move($fileFolder$filePathName);
  945.                 } catch (FileException $e) {
  946.                     dd($e);
  947.                 }
  948.          // Open the file
  949.         if (($handle fopen($fileFolder.$filePathName"r")) !== false) {
  950.             // dd($handle);
  951.             $num 1;
  952.             while (($data fgetcsv($handle)) !== false) {
  953.                 // Do the processing: Map line to entity, validate if needed
  954.                 $entityManager $this->getDoctrine()->getManager(); 
  955.                 if( $num ){
  956.                     if(count($data) == 6){
  957.                 // dd($data['1']);
  958.                         if(!empty($data['1'])){
  959.                             if(!empty($data['2'])){
  960.                                 if(is_numeric($data['3']) !== false){
  961.                                     if(is_numeric($data['4']) !== false){
  962.                                         if(is_numeric($data['5']) !== false){
  963.                                             if(!empty($data['6'])){
  964.                                                 $name $data['1']; // store the first_name on each iteration 
  965.                                                 $description $data['2'];   // store the phone on each iteration
  966.                                                 $retailprice $data['3'];
  967.                                                 $wholesaleprice $data['4'];
  968.                                                 $semiretailprice $data['5'];
  969.                                                 $image $data['6'];
  970.                                                 // dd($retailprice);
  971.                                                 $addRequest = new Products;
  972.                                                 $addRequest->setProductname($name);
  973.                                                 $addRequest->setCategory($categorie);
  974.                                                 $addRequest->setSubcategory($subcategorie);
  975.                                                 $addRequest->setDescription($description);
  976.                                                 $addRequest->setRetailprice($retailprice);
  977.                                                 $addRequest->setWholesaleprice($wholesaleprice);
  978.                                                 $addRequest->setSemiretailprice($semiretailprice);
  979.                                                 $addRequest->setImage($image);
  980.                                                 $addRequest->setStatus('1');
  981.                                                 $em $this->getDoctrine()->getManager();
  982.                                                 $em->persist($addRequest);
  983.                                                 $em->flush();
  984.                                                 
  985.                                              
  986.                                             }else{
  987.                                                 if($client->getLang() == 'en'){
  988.                                                      $this->addFlash('red''Something went wrong.Please download the sample file and try again.'); 
  989.                                                 }else{
  990.                                                      $this->addFlash('red'"Quelque chose s'est mal passé. Veuillez télécharger le fichier d'exemple et réessayer."); 
  991.                                                 }  
  992.                                                 return $this->redirectToRoute('app_manage_product');
  993.                                             }
  994.                                         }else{
  995.                                             if($client->getLang() == 'en'){
  996.                                                 $this->addFlash('red''Something went wrong.Please download the sample file and try again.'); 
  997.                                              }else{
  998.                                                 $this->addFlash('red'"Quelque chose s'est mal passé. Veuillez télécharger le fichier d'exemple et réessayer."); 
  999.                                              } 
  1000.                                             return $this->redirectToRoute('app_manage_product');    
  1001.                                         }   
  1002.                                     }else{
  1003.                                         if($client->getLang() == 'en'){
  1004.                                            $this->addFlash('red''Something went wrong.Please download the sample file and try again.'); 
  1005.                                         }else{
  1006.                                            $this->addFlash('red'"Quelque chose s'est mal passé. Veuillez télécharger le fichier d'exemple et réessayer."); 
  1007.                                         }  
  1008.                                         return $this->redirectToRoute('app_manage_product');
  1009.                                     }
  1010.                                 }else{
  1011.                                     if($client->getLang() == 'en'){
  1012.                                            $this->addFlash('red''Something went wrong.Please download the sample file and try again.'); 
  1013.                                         }else{
  1014.                                            $this->addFlash('red'"Quelque chose s'est mal passé. Veuillez télécharger le fichier d'exemple et réessayer."); 
  1015.                                         } 
  1016.                                     return $this->redirectToRoute('app_manage_product');        
  1017.                                 }   
  1018.                             }else{
  1019.                                 if($client->getLang() == 'en'){
  1020.                                       $this->addFlash('red''Something went wrong.Please download the sample file and try again.'); 
  1021.                                    }else{
  1022.                                       $this->addFlash('red'"Quelque chose s'est mal passé. Veuillez télécharger le fichier d'exemple et réessayer."); 
  1023.                                    }
  1024.                                 return $this->redirectToRoute('app_manage_product');             
  1025.                             }
  1026.                         }else{
  1027.                             if($client->getLang() == 'en'){
  1028.                                  $this->addFlash('red''Something went wrong.Please download the sample file and try again.'); 
  1029.                               }else{
  1030.                                  $this->addFlash('red'"Quelque chose s'est mal passé. Veuillez télécharger le fichier d'exemple et réessayer."); 
  1031.                               } 
  1032.                             return $this->redirectToRoute('app_manage_product');                    
  1033.                         }
  1034.                     }else{
  1035.                        if($client->getLang() == 'en'){
  1036.                           $this->addFlash('red''Something went wrong.Please download the sample file and try again.'); 
  1037.                        }else{
  1038.                           $this->addFlash('red'"Quelque chose s'est mal passé. Veuillez télécharger le fichier d'exemple et réessayer."); 
  1039.                       }
  1040.                        return $this->redirectToRoute('app_manage_product');                    
  1041.                     }
  1042.                 }
  1043.                 $num++;
  1044.             }
  1045.             fclose($handle);
  1046.             if($client->getLang() == 'en'){
  1047.                 $this->addFlash('green''Product uploaded successfully.');
  1048.              }else{
  1049.                 $this->addFlash('green''Produit téléchargé avec succès.'); 
  1050.             }
  1051.             
  1052.         }else{
  1053.             if($client->getLang() == 'en'){
  1054.                 $this->addFlash('red''Something went wrong.Please download the sample file and try again.'); 
  1055.              }else{
  1056.                 $this->addFlash('red'"Quelque chose s'est mal passé. Veuillez télécharger le fichier d'exemple et réessayer."); 
  1057.             }
  1058.             return $this->redirectToRoute('app_manage_product');                    
  1059.         }
  1060.         return $this->redirectToRoute('app_manage_product');
  1061.     }
  1062.     /**
  1063.      * @Route("/upload-all-product-image", name="app_product_image_upload")
  1064.      */
  1065.     public function product_image_upload(Request $request,string $uploadDir,FileUploader $uploader)
  1066.     {
  1067.         if ($this->getUser()) {
  1068.             $client $this->getUser();
  1069.         } else {
  1070.             return $this->redirectToRoute('user_login');
  1071.         }
  1072.         $files $request->files->get('image');
  1073.         if(!empty($files)){
  1074.             $imgs=array();
  1075.             $i=1;
  1076.             foreach ($files as $key => $file) {
  1077.                 // code...
  1078.                 if (!empty($file))
  1079.                 {   
  1080.                     $dirimg $this->getDoctrine()->getRepository('App\Entity\Products')->findOneBy(array('image'=>$file->getClientOriginalName()));
  1081.                     if(!empty($dirimg))
  1082.                     {
  1083.                         // unlink($uploadDir."/".($file->getClientOriginalName()));
  1084.                         // dd($dirimg);
  1085.                         // exit;
  1086.                     }
  1087.                     $filename $file->getClientOriginalName();
  1088.                     $uploader->upload($uploadDir$file$filename);
  1089.                 }else{
  1090.                     $filename null;
  1091.                 } 
  1092.             }
  1093.             if($client->getLang() == 'en'){
  1094.                 $this->addFlash('green','Product image uploaded successfully..!!');
  1095.              }else{
  1096.                 $this->addFlash('green',"L'image du produit a été téléchargée avec succès..!!");
  1097.             }
  1098.         }
  1099.         return $this->redirectToRoute('app_manage_product');
  1100.     }
  1101.     /**
  1102.      * @Route("/request-product-delete/{id}", name="app_product_delete")
  1103.      */
  1104.     public function product_delete(Products $request,$id)
  1105.     {
  1106.         $em $this->getDoctrine()->getManager();
  1107.         $request->getId($id);
  1108.         $em->remove($request);
  1109.         $em->flush();
  1110.         $this->addFlash('green','Category deleted successfully..!!');
  1111.         return $this->redirectToRoute('app_manage_product');
  1112.     }
  1113.     /**
  1114.      * @Route("/update-product-status/{id}/{status}", name="update_product_status")
  1115.      */
  1116.     public function updateRequestproductstatus(Products $request,$status)
  1117.     {
  1118.         if ($this->getUser()) {
  1119.             $client $this->getUser();
  1120.         } else {
  1121.             return $this->redirectToRoute('user_login');
  1122.         }
  1123.         $em $this->getDoctrine()->getManager();
  1124.         $request->setStatus($status);
  1125.         $em->persist($request);
  1126.         $em->flush();
  1127.         if($status == 1){
  1128.           if($client->getLang() == 'en'){
  1129.              $this->addFlash('green''You have enable the product');
  1130.           }else{
  1131.              $this->addFlash('green''Vous avez activé le produit');
  1132.           }
  1133.         }else{
  1134.           if($client->getLang() == 'en'){
  1135.              $this->addFlash('red''You have disable the product');
  1136.           }else{
  1137.              $this->addFlash('red''Vous avez désactivé le produit');
  1138.           }
  1139.         }
  1140.         return $this->redirectToRoute('app_manage_product');
  1141.     }
  1142.      /**
  1143.      * @Route("/manage-category", name="app_manage_categories")
  1144.      */
  1145.     public function manage_categories()
  1146.     {
  1147.         if ($this->getUser()) {
  1148.             $client $this->getUser();
  1149.         } else {
  1150.             return $this->redirectToRoute('user_login');
  1151.         }
  1152.         $user $this->getUser();
  1153.         $type_user=$user->getType();
  1154.         $allid=explode(","$user->getRolebyadmin());
  1155.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  1156.         if($type_user == "SuperAdmin" || $type_user == "Client Admin"){
  1157.             $datas $this->getDoctrine()->getRepository('App\Entity\Subcategorie')->findBy(array(),array('id'=>'desc'));
  1158.             $categorie $this->getDoctrine()->getRepository(Categorie::class)->findBy(array(),array('id'=>'desc'));
  1159.             $page='home/manage_categorie.html.twig';
  1160.         }else{
  1161.             $page='security/pagenotfound.html.twig';
  1162.             $datas "";
  1163.             $categorie ="";
  1164.         }
  1165.         return $this->render($page
  1166.             array(
  1167.                 // 'form'=>$form->createView(),
  1168.                 'client' => $client,
  1169.                 'datas'=>$datas,
  1170.                 'category'=>$categorie,
  1171.                 'type_user'=>$type_user,
  1172.                 'roles_client'=>$roles_client,
  1173.                 'implode_pending'=>'',
  1174.                 'implode_assigned'=>'',
  1175.                 'implode_resolved'=>'',  
  1176.             )
  1177.         );
  1178.     }
  1179.     /**
  1180.      * @Route("/manage-days", name="app_manage_days")
  1181.      */
  1182.     public function manage_days()
  1183.     {
  1184.         if ($this->getUser()) {
  1185.             $client $this->getUser();
  1186.         } else {
  1187.             return $this->redirectToRoute('user_login');
  1188.         }
  1189.         $user $this->getUser();
  1190.         $type_user=$user->getType();
  1191.         $allid=explode(","$user->getRolebyadmin());
  1192.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  1193.         if($type_user == "SuperAdmin" || $type_user == "Client Admin"){
  1194.             $datas $this->getDoctrine()->getRepository('App\Entity\ExpDays')->findBy(array(),array('id'=>'desc'));
  1195.             $page='home/manage_days.html.twig';
  1196.         }else{
  1197.             $page='security/pagenotfound.html.twig';
  1198.             $datas "";
  1199.             $categorie ="";
  1200.         }
  1201.         return $this->render($page
  1202.             array(
  1203.                 // 'form'=>$form->createView(),
  1204.                 'client' => $client,
  1205.                 'datas'=>$datas,
  1206.                 'type_user'=>$type_user,
  1207.                 'roles_client'=>$roles_client,
  1208.                 'implode_pending'=>'',
  1209.                 'implode_assigned'=>'',
  1210.                 'implode_resolved'=>'',  
  1211.             )
  1212.         );
  1213.     }
  1214.      /**
  1215.      * @Route("/request-days", name="app_create_days")
  1216.      */
  1217.     public function create_days(Request $request)
  1218.     {
  1219.         if ($this->getUser()) {
  1220.             $client $this->getUser();
  1221.         } else {
  1222.             return $this->redirectToRoute('user_login');
  1223.         }
  1224.         $user $this->getUser();
  1225.         $user_id=$user->getId();
  1226.        
  1227.         $em $this->getDoctrine()->getManager();
  1228.         if ($request->getMethod() === "POST") {
  1229.             if($request->request->get('table_id') !=""){
  1230.                 $updateRequest $this->getDoctrine()->getRepository('App\Entity\ExpDays')
  1231.                 ->find($request->request->get('table_id'));
  1232.                 $updateRequest->setDays($request->request->get('exp_days'));
  1233.                 $em $this->getDoctrine()->getManager();
  1234.                 $em->persist($updateRequest);
  1235.                 $em->flush();
  1236.                 if($client->getLang() == 'en'){
  1237.                   $this->addFlash('green''Days update successfully..!!');
  1238.                }else{
  1239.                   $this->addFlash('green''Jours mis à jour avec succès');
  1240.                }
  1241.                  
  1242.             }else{
  1243.                 // print_r($request->request->all());die;
  1244.                 $addRequest = new ExpDays;
  1245.                 $addRequest->setDays($request->request->get('exp_days'));
  1246.                 $addRequest->setStatus('1');
  1247.                 $em $this->getDoctrine()->getManager();
  1248.                 $em->persist($addRequest);
  1249.                 $em->flush();
  1250.                 if($client->getLang() == 'en'){
  1251.                   $this->addFlash('green''Days added successfully..!!');
  1252.                }else{
  1253.                   $this->addFlash('green''Jours ajouté avec succès..!!');
  1254.                }
  1255.                  
  1256.             }
  1257.         }
  1258.         return $this->redirectToRoute('app_manage_days');
  1259.     }
  1260.      /**
  1261.      * @Route("/update-days-status/{id}/{status}", name="update_days_status")
  1262.      */
  1263.     public function updatedaystatus(ExpDays $request,$status)
  1264.     {
  1265.           if ($this->getUser()) {
  1266.             $client $this->getUser();
  1267.           } else {
  1268.             return $this->redirectToRoute('user_login');
  1269.           }
  1270.         $em $this->getDoctrine()->getManager();
  1271.         $request->setStatus($status);
  1272.         $em->persist($request);
  1273.         $em->flush();
  1274.         if($status == 1){
  1275.           if($client->getLang() == 'en'){
  1276.              $this->addFlash('green''You have enable the days');
  1277.           }else{
  1278.              $this->addFlash('green''Vous avez activé les jours');
  1279.           }     
  1280.             
  1281.         }else{
  1282.           if($client->getLang() == 'en'){
  1283.              $this->addFlash('red''You have disable the days');
  1284.           }else{
  1285.              $this->addFlash('red''Vous avez désactivé les jours');
  1286.           }
  1287.             
  1288.         }
  1289.         return $this->redirectToRoute('app_manage_days');
  1290.     }
  1291.     /**
  1292.      * @Route("/create_category", name="app_create_category")
  1293.      */
  1294.     public function create_manage_category(Request $request)
  1295.     {  
  1296.         // $result= 'Category added successfully..!!'; 
  1297.         $em $this->getDoctrine()->getManager();
  1298.         if ($request->getMethod() === "POST") {
  1299.             $addRequest = new Categorie;
  1300.             $addRequest->setName($request->request->get('name') );
  1301.             $em $this->getDoctrine()->getManager();
  1302.             $em->persist($addRequest);
  1303.             $em->flush();
  1304.             $result'Category added successfully!!';  
  1305.         }
  1306.         
  1307.         return $this->json($result);
  1308.     }
  1309.     
  1310.     /**
  1311.      * @Route("/create_subcategory", name="app_create_subcategory")
  1312.      */
  1313.     public function create_manage_subcategory(Request $request)
  1314.     {
  1315.         if ($this->getUser()) {
  1316.             $client $this->getUser();
  1317.         } else {
  1318.             return $this->redirectToRoute('user_login');
  1319.         }
  1320.         $user $this->getUser();
  1321.         $user_id=$user->getId();
  1322.        
  1323.         $em $this->getDoctrine()->getManager();
  1324.         if ($request->getMethod() === "POST") {
  1325.             $categorie $this->getDoctrine()->getRepository(Categorie::class)->findOneBy(array('id' => $request->request->get('category')));
  1326.             if($request->request->get('table_id') !=""){
  1327.                 $updateRequest $this->getDoctrine()->getRepository('App\Entity\Subcategorie')
  1328.                 ->find($request->request->get('table_id'));
  1329.                 $updateRequest->setCategory($categorie);
  1330.                 $updateRequest->setName($request->request->get('name'));
  1331.                 $em $this->getDoctrine()->getManager();
  1332.                 $em->persist($updateRequest);
  1333.                 $em->flush();
  1334.                 if($client->getLang() == 'en'){
  1335.                   $this->addFlash('green''Subcategory update successfully..!!');
  1336.                }else{
  1337.                   $this->addFlash('green''Mise à jour de la sous-catégorie avec succès..!!');
  1338.                }
  1339.                  
  1340.             }else{
  1341.                 // print_r($request->request->all());die;
  1342.                 $addRequest = new Subcategorie;
  1343.                 $addRequest->setCategory($categorie);
  1344.                 $addRequest->setName($request->request->get('name'));
  1345.                 $addRequest->setStatus('1');
  1346.                 $em $this->getDoctrine()->getManager();
  1347.                 $em->persist($addRequest);
  1348.                 $em->flush();
  1349.                 if($client->getLang() == 'en'){
  1350.                   $this->addFlash('green''Subcategory added successfully..!!'); 
  1351.                }else{
  1352.                   $this->addFlash('green''Sous-catégorie ajoutée avec succès..!!'); 
  1353.                }
  1354.                 
  1355.             }
  1356.         }
  1357.         return $this->redirectToRoute('app_manage_categories');
  1358.     }
  1359.     /**
  1360.      * @Route("/update-request-category-status/{id}/{status}", name="update_category_status")
  1361.      */
  1362.     public function updateRequestcategorystatus(Subcategorie $request,$status)
  1363.     {
  1364.           if ($this->getUser()) {
  1365.             $client $this->getUser();
  1366.           } else {
  1367.             return $this->redirectToRoute('user_login');
  1368.           }
  1369.         $em $this->getDoctrine()->getManager();
  1370.         $request->setStatus($status);
  1371.         $em->persist($request);
  1372.         $em->flush();
  1373.         if($status == 1){
  1374.           if($client->getLang() == 'en'){
  1375.              $this->addFlash('green''You have enable the category');
  1376.           }else{
  1377.              $this->addFlash('green''Vous avez activé la catégorie');
  1378.           }
  1379.             
  1380.         }else{
  1381.           if($client->getLang() == 'en'){
  1382.              $this->addFlash('red''You have disable the category');
  1383.           }else{
  1384.              $this->addFlash('red''Vous avez désactivé la catégorie');
  1385.           }
  1386.             
  1387.         }
  1388.         return $this->redirectToRoute('app_manage_categories');
  1389.     }
  1390.     /**
  1391.      * @Route("/request-subcategory-delete/{id}", name="app_subcategory_delete")
  1392.      */
  1393.     public function subcategory_delete(Subcategorie $request,$id)
  1394.     {
  1395.         $em $this->getDoctrine()->getManager();
  1396.         $request->getId($id);
  1397.         $em->remove($request);
  1398.         $em->flush();
  1399.         $this->addFlash('green','Category deleted successfully..!!');
  1400.         return $this->redirectToRoute('app_manage_categories');
  1401.     }
  1402.     /**
  1403.      * @Route("/manage_agent", name="app_manage_agent")
  1404.      */
  1405.     public function manage_agent()
  1406.     {
  1407.         if ($this->getUser()) {
  1408.             $client $this->getUser();
  1409.         } else {
  1410.             return $this->redirectToRoute('user_login');
  1411.         }
  1412.         $user $this->getUser();
  1413.         $type_user=$user->getType();
  1414.         $allid=explode(","$user->getRolebyadmin());
  1415.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  1416.         $complaint="";
  1417.         if($type_user=='SuperAdmin'){
  1418.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  1419.                 array('type'=>'Agent'),
  1420.                 array('id'=>'desc'),
  1421.             );
  1422.         }elseif($type_user=='Client Admin'){
  1423.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  1424.                 array('type'=>'Agent'),
  1425.                 array('id'=>'desc'),
  1426.             );
  1427.         }elseif($type_user=='Hypervisor'){
  1428.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  1429.                 array('type'=>'Agent','city_id'=>$user->getCityId()),
  1430.                 array('id'=>'desc'),
  1431.             );
  1432.             if(!empty($datas)){
  1433.                 foreach($datas as $key=>$dataid){
  1434.                     $complaint $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(
  1435.                     array('agentid'=>$dataid->getId(),'compstatus'=>'Resolved'),
  1436.                     array('id'=>'desc'),);
  1437.                     $result=count($complaint);
  1438.                     $datas[$key]->complaint_count=$result;
  1439.                 }
  1440.             }else{
  1441.                 $datas ="";
  1442.             }
  1443.         }elseif($type_user=='Supervisor'){
  1444.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  1445.                 array('type'=>'Agent','city_id'=>$user->getCityId()),
  1446.                 array('id'=>'desc'),
  1447.             );
  1448.             if(!empty($datas)){
  1449.                 foreach($datas as $key=>$dataid){
  1450.                     $complaint $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(
  1451.                     array('agentid'=>$dataid->getId(),'compstatus'=>'Resolved'),
  1452.                     array('id'=>'desc'),);
  1453.                     $result=count($complaint);
  1454.                     $datas[$key]->complaint_count=$result;
  1455.                 }
  1456.             }else{
  1457.                 $datas ="";
  1458.             }
  1459.         }elseif($type_user=='Operational Manager'){
  1460.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  1461.                 array('type'=>'Agent','city_id'=>$user->getCityId()),
  1462.                 array('id'=>'desc'),
  1463.             );
  1464.             $complaint $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(
  1465.             array('city_id'=>$user->getCityId(),'agentid'=>'0'),
  1466.             array('id'=>'desc'),);
  1467.         }else{
  1468.             $datas="";
  1469.         }
  1470.         $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findBy(
  1471.             array('code'=>'FR'),
  1472.             array('name'=>'asc'),
  1473.         );
  1474.         $citys $this->getDoctrine()->getRepository('App\Entity\City')->findBy(array(),
  1475.             array('name'=>'asc'),
  1476.         );
  1477.     
  1478.         if($type_user=='SuperAdmin'){
  1479.             $page='home/manage_agent.html.twig';
  1480.         }elseif($type_user=='Client Admin'){
  1481.             $page='home/manage_agent.html.twig';
  1482.         }elseif($type_user=='Hypervisor'){
  1483.             $page='hypervisor/manage_agent.html.twig';
  1484.         }elseif($type_user=='Supervisor'){
  1485.             $page='supervisor/manage_agent.html.twig';
  1486.         }elseif($type_user=='Operational Manager'){
  1487.             $page='operational/manage_agent.html.twig';
  1488.         }else{
  1489.             $page='security/pagenotfound.html.twig';
  1490.         }
  1491.         return $this->render($page
  1492.             array(
  1493.                 // 'form'=>$form->createView(),
  1494.                 'client' => $client,
  1495.                 'datas'=>$datas,
  1496.                 'countrys'=>$countrys,
  1497.                 'citys'=>$citys,
  1498.                 'type_user'=>$type_user,
  1499.                 'roles_client'=>$roles_client,
  1500.                 'implode_pending'=>'',
  1501.                 'implode_assigned'=>'',
  1502.                 'implode_resolved'=>'',  
  1503.                 'complaint'=>$complaint,
  1504.             )
  1505.         );
  1506.     }
  1507.     /**
  1508.      * @Route("/create_manage_agent", name="app_create_manage_agent")
  1509.      */
  1510.     public function create_manage_agent(Request $requestUserPasswordEncoderInterface $passwordEncoder, \Swift_Mailer $mailer)
  1511.     {
  1512.         if ($this->getUser()) {
  1513.             $client $this->getUser();
  1514.         } else {
  1515.             return $this->redirectToRoute('user_login');
  1516.         }
  1517.         $user $this->getUser();
  1518.         $user_id=$user->getId();
  1519.         
  1520.             $em $this->getDoctrine()->getManager();
  1521.             if ($request->getMethod() === "POST") {
  1522.                 $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findOneBy(
  1523.                 array('id'=>$request->request->get('country')),
  1524.                 );
  1525.                 $citys $this->getDoctrine()->getRepository('App\Entity\City')->findOneBy(
  1526.                     array('id'=>$request->request->get('city')),
  1527.                 );  
  1528.                 if($request->request->get('table_id') !=""){
  1529.                     $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBySomeField(array('value'=>$request->request->get('table_id')),array('email'=>$request->request->get('email')));
  1530.                     if (empty($result)) {
  1531.                         $ipadress=$request->getClientIp();
  1532.                         $updateRequest $this->getDoctrine()->getRepository('App\Entity\User')
  1533.                         ->find($request->request->get('table_id') );
  1534.                         $updateRequest->setName($request->request->get('name') );
  1535.                         $updateRequest->setEmail($request->request->get('email'));
  1536.                         $updateRequest->setMobile($request->request->get('mobile'));
  1537.                         $updateRequest->setAgentgroupId('0');
  1538.                         $updateRequest->setCountry($countrys);
  1539.                         $updateRequest->setCity($citys);
  1540.                         $updateRequest->setProvinceId('0');
  1541.                         $updateRequest->setIpaddress($ipadress);
  1542.                         $em $this->getDoctrine()->getManager();
  1543.                         $em->persist($updateRequest);
  1544.                         $em->flush();
  1545.                         if($client->getLang() == 'en'){
  1546.                             $this->addFlash('green''Agent update successfully..!!'); 
  1547.                          }else{
  1548.                             $this->addFlash('green'"Mise à jour de l'agent avec succès..!!"); 
  1549.                          }
  1550.                         
  1551.                     }else{
  1552.                         if($client->getLang() == 'en'){
  1553.                             $this->addFlash('red''There is already an account with this email');
  1554.                          }else{
  1555.                             $this->addFlash('red''Il existe déjà un compte avec cette adresse e-mail');
  1556.                          }
  1557.                     }
  1558.                 }else{
  1559.                     $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('email'=>$request->request->get('email')),array('id'=>'desc'));
  1560.                     if(empty($result)){
  1561.                         $agid$this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('type'=>'Agent'),array('id'=>'desc'),);
  1562.                         if(!empty($agid)){
  1563.                             $idno=explode("AG"$agid->getUserId());
  1564.                             $n=$idno[1];
  1565.                             $n2 str_pad($n 150STR_PAD_LEFT);
  1566.                         }else{
  1567.                             $n2="00001";
  1568.                         }
  1569.                         // dd($n2);
  1570.                         $random_password substr(md5(random_bytes(20)),1,25);
  1571.                         $newPassword ='123456';
  1572.                         $userid ='AG'.$n2;
  1573.                         $ipadress=$request->getClientIp();
  1574.                         $addRequest = new User;
  1575.                         $addRequest->setAddedBy($user_id);
  1576.                         $addRequest->setUserId($userid);
  1577.                         $addRequest->setName($request->request->get('name') );
  1578.                         $addRequest->setEmail($request->request->get('email'));
  1579.                         $addRequest->setMobile($request->request->get('mobile'));
  1580.                         $addRequest->setPassword($passwordEncoder->encodePassword(
  1581.                             $addRequest,
  1582.                             $newPassword
  1583.                         ));
  1584.                         $addRequest->setPasswordResetToken($random_password);
  1585.                         $addRequest->setCountry($countrys);
  1586.                         $addRequest->setCity($citys);
  1587.                         $addRequest->setProvinceId('0');
  1588.                         $addRequest->setStatus('1');
  1589.                         $addRequest->setAgentgroupId('0');
  1590.                         $addRequest->setType('Agent');
  1591.                         $addRequest->setLang('fr');
  1592.                         $addRequest->setRoles(["ROLE_AGENT"]);
  1593.                         $addRequest->setIpaddress($ipadress);
  1594.                         $em $this->getDoctrine()->getManager();
  1595.                         $em->persist($addRequest);
  1596.                         $em->flush();
  1597.                         $url $this->urlGenerator->generate('reset_password', array('code'=>$random_password), UrlGeneratorInterface::ABSOLUTE_URL);
  1598.                         $sendTo $request->request->get('email');
  1599.                         $sendCc 'santosh.jaiswal.espl@gmail.com';
  1600.                         $mailArray = array(
  1601.                             'email' => 'infos-compte@konsoplus.com',
  1602.                             'emailid' => $request->request->get('email'),
  1603.                             'mobile' => $request->request->get('mobile'),
  1604.                             'name' => $request->request->get('name'),
  1605.                             'city' => $citys->getName(),
  1606.                             'url' => $url,
  1607.                             'password' => $random_password
  1608.                         );
  1609.                         $mail $this->mailer->sendEmailMessage(
  1610.                             'Renouveler votre mot de passe',
  1611.                             "Konso+",
  1612.                             $sendTo,
  1613.                             $sendCc,
  1614.                             null,
  1615.                             'security/welcomemail.html.twig',
  1616.                             $mailArray
  1617.                         );
  1618.                         if($client->getLang() == 'en'){
  1619.                             $this->addFlash('green''Agent added successfully..!!'); 
  1620.                          }else{
  1621.                             $this->addFlash('green''Agent ajouté avec succès..!!');  
  1622.                          }
  1623.                         
  1624.                     }else{
  1625.                         if($client->getLang() == 'en'){
  1626.                             $this->addFlash('red''There is already an account with this email');
  1627.                          }else{
  1628.                             $this->addFlash('red''Il existe déjà un compte avec cette adresse e-mail');
  1629.                          }
  1630.                     }
  1631.                 }    
  1632.             }
  1633.         return $this->redirectToRoute('app_manage_agent');
  1634.     }
  1635.     
  1636.     /**
  1637.      * @Route("/update-request-status-agent/{id}/{status}", name="update_user_status_agent")
  1638.      */
  1639.     public function update_status_agent(User $request,$status)
  1640.     {
  1641.         if ($this->getUser()) {
  1642.             $client $this->getUser();
  1643.         } else {
  1644.             return $this->redirectToRoute('user_login');
  1645.         }
  1646.         $em $this->getDoctrine()->getManager();
  1647.         $request->setStatus($status);
  1648.         $em->persist($request);
  1649.         $em->flush();
  1650.         if($status == 1){
  1651.           if($client->getLang() == 'en'){
  1652.              $this->addFlash('green''You have enable the agent');
  1653.           }else{
  1654.              $this->addFlash('green'"Vous avez activé l'agent"); 
  1655.           }
  1656.         }else{
  1657.           if($client->getLang() == 'en'){
  1658.              $this->addFlash('red''You have disable the agent'); 
  1659.           }else{
  1660.              $this->addFlash('red'"Vous avez désactivé l'agent");  
  1661.           }
  1662.         }
  1663.         return $this->redirectToRoute('app_manage_agent');
  1664.     }
  1665.     /**
  1666.      * @Route("/request-agentuser-delete/{id}", name="app_user_delete_agent")
  1667.      */
  1668.     public function user_agent_delete(User $request,$id)
  1669.     {
  1670.         $em $this->getDoctrine()->getManager();
  1671.         $request->getId($id);
  1672.         $em->remove($request);
  1673.         $em->flush();
  1674.         $this->addFlash('green','Agent deleted successfully..!!');
  1675.         return $this->redirectToRoute('app_manage_agent');
  1676.     }
  1677.     
  1678.     /**
  1679.      * @Route("/manage_agent_group", name="app_manage_agent_group")
  1680.      */
  1681.     public function manage_agent_group()
  1682.     {
  1683.         if ($this->getUser()) {
  1684.             $client $this->getUser();
  1685.         } else {
  1686.             return $this->redirectToRoute('user_login');
  1687.         }
  1688.         $user $this->getUser();
  1689.         $type_user=$user->getType();
  1690.         $allid=explode(","$user->getRolebyadmin());
  1691.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  1692.         if($type_user=='SuperAdmin'){
  1693.             $datas $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findBy(
  1694.                 array(),
  1695.                 array('id'=>'desc'),
  1696.             );
  1697.         }elseif($type_user=='Client Admin'){
  1698.             $datas $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findBy(
  1699.                 array(),
  1700.                 array('id'=>'desc'),
  1701.             );
  1702.         }elseif($type_user=='Supervisor'){
  1703.             $datas $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findBy(
  1704.                 array('city_id'=>$user->getCityId()),
  1705.                 array('id'=>'desc'),
  1706.             );
  1707.             if(!empty($datas)){
  1708.                 foreach ($datas as $key => $value) {
  1709.                     $explode_agent=explode(","$value->getAgentid());
  1710.                     $agents=$agt=$this->getDoctrine()->getRepository('App\Entity\User')->findAllIdField($explode_agent);
  1711.                     $operational=$this->getDoctrine()->getRepository('App\Entity\User')->findBy( array('agentgroup_id'=>$value->getId(),'type'=>'Operational Manager'),array('id'=>'desc'));
  1712.                     $datas[$key]->agent_detail=$agents;
  1713.                     $datas[$key]->operational_detail=$operational;
  1714.                 }
  1715.                 
  1716.             }else{
  1717.                 $datas "";
  1718.             }
  1719.         }elseif($type_user=='Hypervisor'){
  1720.             $datas $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findBy(
  1721.                 array('city_id'=>$user->getCityId()),
  1722.                 array('id'=>'desc'),
  1723.             );
  1724.             if(!empty($datas)){
  1725.                 foreach ($datas as $key => $value) {
  1726.                     $explode_agent=explode(","$value->getAgentid());
  1727.                     $agents=$agt=$this->getDoctrine()->getRepository('App\Entity\User')->findAllIdField($explode_agent);
  1728.                     $operational=$this->getDoctrine()->getRepository('App\Entity\User')->findBy( array('agentgroup_id'=>$value->getId(),'type'=>'Operational Manager'),array('id'=>'desc'));
  1729.                     $datas[$key]->agent_detail=$agents;
  1730.                     $datas[$key]->operational_detail=$operational;
  1731.                 }
  1732.                 
  1733.             }else{
  1734.                 $datas "";
  1735.             }
  1736.             // dd($datas);
  1737.         }elseif($type_user=='Operational Manager'){
  1738.             $datas $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findBy(
  1739.                 array('city_id'=>$user->getCityId()),
  1740.                 array('id'=>'desc'),
  1741.             );
  1742.         }else{
  1743.             $datas ="";
  1744.         }
  1745.         if(!empty($datas)){
  1746.             foreach($datas as $key=>$dataid){
  1747.                if($dataid->getagentId() == null){
  1748.                     $datas[$key]->agentcount=0;
  1749.                }else{
  1750.                     $res explode(","$dataid->getagentId());
  1751.                     $result=count($res);
  1752.                     $datas[$key]->agentcount=$result;
  1753.                }
  1754.             }
  1755.         }else{
  1756.             $datas ="";
  1757.         }
  1758.         $agents $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  1759.             array('type'=>'Agent','status' => true),
  1760.             array('id'=>'desc'),
  1761.         );
  1762.         $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findBy(
  1763.             array('code'=>'FR'),
  1764.             array('name'=>'asc'),
  1765.         );
  1766.         $citys $this->getDoctrine()->getRepository('App\Entity\City')->findBy(array(),
  1767.             array('name'=>'asc'),
  1768.         );
  1769.         if($type_user=='SuperAdmin'){
  1770.             $page='home/agent_group.html.twig';
  1771.         }elseif($type_user=='Client Admin'){
  1772.             $page='home/agent_group.html.twig';
  1773.         }elseif($type_user=='Supervisor'){
  1774.             $page='supervisor/agent_group.html.twig';
  1775.         }elseif($type_user=='Hypervisor'){
  1776.             $page='hypervisor/agent_group.html.twig';
  1777.         }elseif($type_user=='Operational Manager'){
  1778.             $page='operational/agent_group.html.twig';
  1779.         }else{
  1780.             $page='security/pagenotfound.html.twig';
  1781.         }
  1782.         return $this->render($page
  1783.             array(
  1784.                 // 'form'=>$form->createView(),
  1785.                 'client' => $client,
  1786.                 'datas'=>$datas,
  1787.                 'agents'=>$agents,
  1788.                 'countrys'=>$countrys,
  1789.                 'citys'=>$citys,
  1790.                 'type_user'=>$type_user,
  1791.                 'roles_client'=>$roles_client,
  1792.                 'implode_pending'=>'',
  1793.                 'implode_assigned'=>'',
  1794.                 'implode_resolved'=>'',  
  1795.             )
  1796.         );
  1797.     }
  1798.     /**
  1799.      * @Route("/manage_agent_group_id/{id}", name="app_manage_agent_group_id")
  1800.      */
  1801.     public function manage_agent_group_id($id)
  1802.     {
  1803.         if ($this->getUser()) {
  1804.             $client $this->getUser();
  1805.         } else {
  1806.             return $this->redirectToRoute('user_login');
  1807.         }
  1808.         $user $this->getUser();
  1809.         $type_user=$user->getType();
  1810.         $allid=explode(","$user->getRolebyadmin());
  1811.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  1812.         if($type_user == "Operational Manager"){
  1813.             $agent_grp $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->find($id);
  1814.             $agid=explode(","$agent_grp->getAgentid());
  1815.             if(!empty($agid)){
  1816.                 $datas=array();
  1817.                 foreach($agid as $key => $value){
  1818.                     // code...
  1819.                     $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(
  1820.                         array('id'=>$value,'type'=>'Agent'),
  1821.                         array('id'=>'desc'),
  1822.                     );
  1823.                 }
  1824.                 $datas[]=$result;
  1825.             }else{
  1826.                 $datas ="";
  1827.             }
  1828.         
  1829.             $complaint $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array('city_id'=>$agent_grp->getCityId()),
  1830.             array('id'=>'desc'),);
  1831.           $page='operational/agent_group_detail.html.twig';
  1832.         }else{
  1833.             $page='security/pagenotfound.html.twig';
  1834.             $datas "";
  1835.             $agent_grp ="";
  1836.             $complaint ="";
  1837.         }
  1838.         return $this->render($page
  1839.             array(
  1840.                 // 'form'=>$form->createView(),
  1841.                 'client' => $client,
  1842.                 'datas'=>$datas,
  1843.                 'agent_grp'=>$agent_grp,
  1844.                 'type_user'=>$type_user,
  1845.                 'roles_client'=>$roles_client,
  1846.                 'implode_pending'=>'',
  1847.                 'implode_assigned'=>'',
  1848.                 'implode_resolved'=>'',  
  1849.                 'complaint'=>$complaint,
  1850.             )
  1851.         );
  1852.     }
  1853.     /**
  1854.      * @Route("/create_manage_agent_group", name="app_create_manage_agent_group")
  1855.      */
  1856.     public function create_manage_agent_group(Request $request)
  1857.     {
  1858.         if ($this->getUser()) {
  1859.             $client $this->getUser();
  1860.         } else {
  1861.             return $this->redirectToRoute('user_login');
  1862.         }
  1863.         $user $this->getUser();
  1864.         $user_id=$user->getId();
  1865.         $em $this->getDoctrine()->getManager();
  1866.         if ($request->getMethod() === "POST") {
  1867.             $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findOneBy(
  1868.             array('id'=>$request->request->get('country')),
  1869.             );
  1870.             $citys $this->getDoctrine()->getRepository('App\Entity\City')->findOneBy(
  1871.                 array('id'=>$request->request->get('city')),
  1872.             );      
  1873.             if($request->request->get('table_id') !=""){
  1874.                if(!empty($request->request->get('agentid'))){
  1875.                     $agid=implode(",",$request->request->get('agentid'));
  1876.                 }else{
  1877.                     $agid=null;
  1878.                 }
  1879.                 
  1880.                 $updateRequest $this->getDoctrine()->getRepository('App\Entity\AgentGroup')
  1881.                 ->find($request->request->get('table_id') );
  1882.                 $updateRequest->setName($request->request->get('name') );
  1883.                 $updateRequest->setAgentid($agid);
  1884.                 $updateRequest->setCountry($countrys);
  1885.                 $updateRequest->setCity($citys);
  1886.                 $em $this->getDoctrine()->getManager();
  1887.                 $em->persist($updateRequest);
  1888.                 $em->flush();
  1889.                 if($client->getLang() == 'en'){
  1890.                   $this->addFlash('green''Agent group update successfully..!!'); 
  1891.                }else{
  1892.                   $this->addFlash('green'"Mise à jour du groupe d'agents avec succès..!!");  
  1893.                }
  1894.             }else{
  1895.                 $gpid$this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findOneBy(array(),array('id'=>'desc'),);
  1896.                 if(!empty($gpid)){
  1897.                     $idno=explode("GP"$gpid->getGpid());
  1898.                     $n=$idno[1];
  1899.                     $n2 str_pad($n 150STR_PAD_LEFT);
  1900.                 }else{
  1901.                     $n2="00001";
  1902.                 }
  1903.                 $gp='GP'.$n2;
  1904.                 if(!empty($request->request->get('agentid'))){
  1905.                     $agid=implode(",",$request->request->get('agentid'));
  1906.                 }else{
  1907.                     $agid=null;
  1908.                 }
  1909.                 $addRequest = new AgentGroup;
  1910.                 $addRequest->setName($request->request->get('name') );
  1911.                 $addRequest->setAgentid($agid);
  1912.                 $addRequest->setCountry($countrys);
  1913.                 $addRequest->setCity($citys);
  1914.                 $addRequest->setGpid($gp);
  1915.                 $addRequest->setAddedby($user_id);
  1916.                 $addRequest->setStatus('1');
  1917.                 $em $this->getDoctrine()->getManager();
  1918.                 $em->persist($addRequest);
  1919.                 $em->flush();
  1920.                 if($client->getLang() == 'en'){
  1921.                   $this->addFlash('green''Agent group added successfully..!!'); 
  1922.                }else{
  1923.                   $this->addFlash('green'"Groupe d'agents ajouté avec succès..!!");  
  1924.                }
  1925.             }    
  1926.         }
  1927.         return $this->redirectToRoute('app_manage_agent_group');
  1928.     }
  1929.     
  1930.     /**
  1931.      * @Route("/update-request-status-agent-group/{id}/{status}", name="update_status_agent_group")
  1932.      */
  1933.     public function update_status_agent_group(AgentGroup $request,$status)
  1934.     {
  1935.         if ($this->getUser()) {
  1936.             $client $this->getUser();
  1937.         } else {
  1938.             return $this->redirectToRoute('user_login');
  1939.         }
  1940.         $em $this->getDoctrine()->getManager();
  1941.         $request->setStatus($status);
  1942.         $em->persist($request);
  1943.         $em->flush();
  1944.         if($status == 1){
  1945.                if($client->getLang() == 'en'){
  1946.                   $this->addFlash('green''You have enable the agent group');
  1947.                }else{
  1948.                   $this->addFlash('green'"Vous avez activé le groupe d'agents");  
  1949.                }
  1950.         }else{
  1951.           if($client->getLang() == 'en'){
  1952.              $this->addFlash('red''You have disable the agent group');
  1953.           }else{
  1954.              $this->addFlash('red'"Vous avez désactivé le groupe d'agents");  
  1955.           }
  1956.             
  1957.         }
  1958.         return $this->redirectToRoute('app_manage_agent_group');
  1959.     }
  1960.     /**
  1961.      * @Route("/request-agentgroup-delete/{id}", name="app_delete_agent_group")
  1962.      */
  1963.     public function agent_group_delete(AgentGroup $request,$id)
  1964.     {
  1965.         $em $this->getDoctrine()->getManager();
  1966.         $request->getId($id);
  1967.         $em->remove($request);
  1968.         $em->flush();
  1969.         $this->addFlash('green','Agent group deleted successfully..!!');
  1970.         return $this->redirectToRoute('app_manage_agent_group');
  1971.     }
  1972.     
  1973.     /**
  1974.      * @Route("/manage_complaints", name="app_manage_complaints")
  1975.      */
  1976.     public function manage_complaints()
  1977.     {
  1978.         if ($this->getUser()) {
  1979.             $client $this->getUser();
  1980.         } else {
  1981.             return $this->redirectToRoute('user_login');
  1982.         }
  1983.         $user $this->getUser();
  1984.         $type_user=$user->getType();
  1985.         $allid=explode(","$user->getRolebyadmin());
  1986.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  1987.         if($type_user=='SuperAdmin'){
  1988.             $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array(),array('id'=>'desc'));
  1989.             foreach ($datas as $key => $value) {
  1990.                 $agentgrpname $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findOneBy(array('id'=>$value->getGrpid()),
  1991.                 array('id'=>'desc'),);
  1992.                 $datas[$key]->agent_grp_name=$agentgrpname;
  1993.                 $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  1994.                     array('id'=>$value->getProvinceId()),
  1995.                 );
  1996.                 if(!empty($province)){
  1997.                     $datas[$key]->provinces=$province;
  1998.                 }else{
  1999.                     $datas[$key]->provinces="";
  2000.                 }
  2001.                 if($value->getFraud() == 1){
  2002.                     $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2003.                         array('complaint_id'=>$value->getId()),
  2004.                     );
  2005.                     if(!empty($FraudComplaint)){
  2006.                         $datas[$key]->fraudcomplaint=$FraudComplaint;
  2007.                     }else{
  2008.                         $datas[$key]->fraudcomplaint="";
  2009.                     }
  2010.                     $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2011.                     
  2012.                     if ($pv) {
  2013.                         $datas[$key]->fines =$pv;
  2014.                     } else {
  2015.                          $datas[$key]->fines ="";
  2016.                     }
  2017.                     $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2018.                         if ($fcp) {
  2019.                             $datas[$key]->fc_product =$fcp;
  2020.                         } else {
  2021.                              $datas[$key]->fc_product ="";
  2022.                         }
  2023.                 }
  2024.             }
  2025.         }elseif($type_user=='Client Admin'){
  2026.             $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array(),array('id'=>'desc'));
  2027.             foreach ($datas as $key => $value) {
  2028.                 $agentgrpname $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findOneBy(array('id'=>$value->getGrpid()),
  2029.                 array('id'=>'desc'),);
  2030.                 $datas[$key]->agent_grp_name=$agentgrpname;
  2031.                 $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  2032.                     array('id'=>$value->getProvinceId()),
  2033.                 );
  2034.                 if(!empty($province)){
  2035.                     $datas[$key]->provinces=$province;
  2036.                 }else{
  2037.                     $datas[$key]->provinces="";
  2038.                 }
  2039.                 if($value->getFraud() == 1){
  2040.                     $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2041.                         array('complaint_id'=>$value->getId()),
  2042.                     );
  2043.                     if(!empty($FraudComplaint)){
  2044.                         $datas[$key]->fraudcomplaint=$FraudComplaint;
  2045.                     }else{
  2046.                         $datas[$key]->fraudcomplaint="";
  2047.                     }
  2048.                     $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2049.                     if ($pv) {
  2050.                         $datas[$key]->fines =$pv;
  2051.                     } else {
  2052.                          $datas[$key]->fines ="";
  2053.                     }
  2054.                     $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2055.                         if ($fcp) {
  2056.                             $datas[$key]->fc_product =$fcp;
  2057.                         } else {
  2058.                              $datas[$key]->fc_product ="";
  2059.                         }
  2060.                 }
  2061.             }
  2062.         }elseif($type_user=='Hypervisor'){
  2063.             $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array('city_id'=>$user->getCityId()),array('id'=>'desc'));
  2064.             foreach ($datas as $key => $value) {
  2065.                 $agentname $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$value->getAgentid(),'type'=>'Agent'),
  2066.                 array('id'=>'desc'),);
  2067.                 $datas[$key]->agent_name=$agentname;
  2068.                 $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  2069.                     array('id'=>$value->getProvinceId()),
  2070.                 );
  2071.                 if(!empty($province)){
  2072.                     $datas[$key]->provinces=$province;
  2073.                 }else{
  2074.                     $datas[$key]->provinces="";
  2075.                 }
  2076.                 if($value->getFraud() == 1){
  2077.                     $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2078.                         array('complaint_id'=>$value->getId()),
  2079.                     );
  2080.                     if(!empty($FraudComplaint)){
  2081.                         $datas[$key]->fraudcomplaint=$FraudComplaint;
  2082.                     }else{
  2083.                         $datas[$key]->fraudcomplaint="";
  2084.                     }
  2085.                     $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2086.                     if ($pv) {
  2087.                         $datas[$key]->fines =$pv;
  2088.                     } else {
  2089.                          $datas[$key]->fines ="";
  2090.                     }
  2091.                     $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2092.                         if ($fcp) {
  2093.                             $datas[$key]->fc_product =$fcp;
  2094.                         } else {
  2095.                              $datas[$key]->fc_product ="";
  2096.                         }
  2097.                 }
  2098.             }
  2099.         }elseif($type_user=='Supervisor'){
  2100.             $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array('city_id'=>$user->getCityId()),array('id'=>'desc'));
  2101.             foreach ($datas as $key => $value) {
  2102.                 $agentname $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$value->getAgentid(),'type'=>'Agent'),
  2103.                 array('id'=>'desc'),);
  2104.                 $datas[$key]->agent_name=$agentname;
  2105.                 $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  2106.                     array('id'=>$value->getProvinceId()),
  2107.                 );
  2108.                 if(!empty($province)){
  2109.                     $datas[$key]->provinces=$province;
  2110.                 }else{
  2111.                     $datas[$key]->provinces="";
  2112.                 }
  2113.                 if($value->getFraud() == 1){
  2114.                     $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2115.                         array('complaint_id'=>$value->getId()),
  2116.                     );
  2117.                     if(!empty($FraudComplaint)){
  2118.                         $datas[$key]->fraudcomplaint=$FraudComplaint;
  2119.                     }else{
  2120.                         $datas[$key]->fraudcomplaint="";
  2121.                     }
  2122.                     $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2123.                     if ($pv) {
  2124.                         $datas[$key]->fines =$pv;
  2125.                     } else {
  2126.                          $datas[$key]->fines ="";
  2127.                     }
  2128.                     $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2129.                         if ($fcp) {
  2130.                             $datas[$key]->fc_product =$fcp;
  2131.                         } else {
  2132.                              $datas[$key]->fc_product ="";
  2133.                         }
  2134.                 }
  2135.             }
  2136.         }elseif($type_user=='Operational Manager'){
  2137.             $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array('city_id'=>$user->getCityId()),array('id'=>'desc'));
  2138.             foreach ($datas as $key => $value) {
  2139.                 $agentname $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$value->getAgentid(),'type'=>'Agent'),
  2140.                 array('id'=>'desc'),);
  2141.                 if(!empty($agentname)){
  2142.                     $datas[$key]->agent_name=$agentname;
  2143.                 }else{
  2144.                     $datas[$key]->agent_name="";
  2145.                 }
  2146.                 $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  2147.                     array('id'=>$value->getProvinceId()),
  2148.                 );
  2149.                 if(!empty($province)){
  2150.                     $datas[$key]->provinces=$province;
  2151.                 }else{
  2152.                     $datas[$key]->provinces="";
  2153.                 }
  2154.                 if($value->getFraud() == 1){
  2155.                     $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2156.                         array('complaint_id'=>$value->getId()),
  2157.                     );
  2158.                     if(!empty($FraudComplaint)){
  2159.                         $datas[$key]->fraudcomplaint=$FraudComplaint;
  2160.                     }else{
  2161.                         $datas[$key]->fraudcomplaint="";
  2162.                     }
  2163.                     $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2164.                     if ($pv) {
  2165.                         $datas[$key]->fines =$pv;
  2166.                     } else {
  2167.                          $datas[$key]->fines ="";
  2168.                     }
  2169.                     $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2170.                         if ($fcp) {
  2171.                             $datas[$key]->fc_product =$fcp;
  2172.                         } else {
  2173.                              $datas[$key]->fc_product ="";
  2174.                         }
  2175.                 }
  2176.             }
  2177.         }
  2178.         if(!empty($datas)){
  2179.             foreach ($datas as $key => $value) {
  2180.                 // code...
  2181.                 $agent_grp $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findBy(array('city_id'=>$value->getCityId(),'status' => true),
  2182.                 array('id'=>'desc'),);
  2183.                 $agents=$this->getDoctrine()->getRepository('App\Entity\User')->findBy( array('city_id'=>$value->getCityId(),'type'=>'Agent','status' => true),array('id'=>'desc'));
  2184.                 $operational=$this->getDoctrine()->getRepository('App\Entity\User')->findBy( array('city_id'=>$value->getCityId(),'type'=>'Operational Manager','status' => true),array('id'=>'desc'));
  2185.                 
  2186.                 $datas[$key]->grp_agent_detail=$agent_grp;
  2187.                 $datas[$key]->agent_detail=$agents;
  2188.                 $datas[$key]->operational_detail=$operational;
  2189.             }
  2190.         }else{
  2191.             $datas "";
  2192.         }
  2193.         
  2194.         if($type_user=='SuperAdmin'){
  2195.             $page='home/manage_complaint.html.twig';
  2196.         }elseif($type_user=='Client Admin'){
  2197.             $page='home/manage_complaint.html.twig';
  2198.         }elseif($type_user=='Hypervisor'){
  2199.             $page='hypervisor/manage_complaint.html.twig';
  2200.         }elseif($type_user=='Supervisor'){
  2201.             $page='supervisor/manage_complaint.html.twig';
  2202.         }elseif($type_user=='Operational Manager'){
  2203.             $page='operational/manage_complaint.html.twig';
  2204.         }else{
  2205.             $page='security/pagenotfound.html.twig';
  2206.         }
  2207.         return $this->render($page
  2208.             array(
  2209.                 // 'form'=>$form->createView(),
  2210.                 'client' => $client,
  2211.                 'datas'=>$datas,
  2212.                 'type_user'=>$type_user,
  2213.                 'roles_client'=>$roles_client,
  2214.                 'implode_pending'=>'',
  2215.                 'implode_assigned'=>'',
  2216.                 'implode_resolved'=>'',  
  2217.             )
  2218.         );
  2219.     }
  2220.      /**
  2221.      * @Route("/manage_pending complaints", name="app_manage_pending_complaints")
  2222.      */
  2223.     public function manage_pending_complaints()
  2224.     {
  2225.         if ($this->getUser()) {
  2226.             $client $this->getUser();
  2227.         } else {
  2228.             return $this->redirectToRoute('user_login');
  2229.         }
  2230.         $user $this->getUser();
  2231.         $type_user=$user->getType();
  2232.         $allid=explode(","$user->getRolebyadmin());
  2233.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  2234.         if($type_user=='SuperAdmin'){
  2235.             $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array('compstatus'=>'Pending'),array('id'=>'desc'));
  2236.             foreach ($datas as $key => $value) {
  2237.                 $agentgrpname $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findOneBy(array('id'=>$value->getGrpid()),
  2238.                 array('id'=>'desc'),);
  2239.                 $datas[$key]->agent_grp_name=$agentgrpname;
  2240.                 $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  2241.                     array('id'=>$value->getProvinceId()),
  2242.                 );
  2243.                 if(!empty($province)){
  2244.                     $datas[$key]->provinces=$province;
  2245.                 }else{
  2246.                     $datas[$key]->provinces="";
  2247.                 }
  2248.                 if($value->getFraud() == 1){
  2249.                     $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2250.                         array('complaint_id'=>$value->getId()),
  2251.                     );
  2252.                     if(!empty($FraudComplaint)){
  2253.                         $datas[$key]->fraudcomplaint=$FraudComplaint;
  2254.                     }else{
  2255.                         $datas[$key]->fraudcomplaint="";
  2256.                     }
  2257.                     $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2258.                     
  2259.                     if ($pv) {
  2260.                         $datas[$key]->fines =$pv;
  2261.                     } else {
  2262.                          $datas[$key]->fines ="";
  2263.                     }
  2264.                     $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2265.                         if ($fcp) {
  2266.                             $datas[$key]->fc_product =$fcp;
  2267.                         } else {
  2268.                              $datas[$key]->fc_product ="";
  2269.                         }
  2270.                 }
  2271.             }
  2272.         }elseif($type_user=='Client Admin'){
  2273.             $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array('compstatus'=>'Pending'),array('id'=>'desc'));
  2274.             foreach ($datas as $key => $value) {
  2275.                 $agentgrpname $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findOneBy(array('id'=>$value->getGrpid()),
  2276.                 array('id'=>'desc'),);
  2277.                 $datas[$key]->agent_grp_name=$agentgrpname;
  2278.                 $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  2279.                     array('id'=>$value->getProvinceId()),
  2280.                 );
  2281.                 if(!empty($province)){
  2282.                     $datas[$key]->provinces=$province;
  2283.                 }else{
  2284.                     $datas[$key]->provinces="";
  2285.                 }
  2286.                 if($value->getFraud() == 1){
  2287.                     $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2288.                         array('complaint_id'=>$value->getId()),
  2289.                     );
  2290.                     if(!empty($FraudComplaint)){
  2291.                         $datas[$key]->fraudcomplaint=$FraudComplaint;
  2292.                     }else{
  2293.                         $datas[$key]->fraudcomplaint="";
  2294.                     }
  2295.                     $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2296.                     if ($pv) {
  2297.                         $datas[$key]->fines =$pv;
  2298.                     } else {
  2299.                          $datas[$key]->fines ="";
  2300.                     }
  2301.                     $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2302.                         if ($fcp) {
  2303.                             $datas[$key]->fc_product =$fcp;
  2304.                         } else {
  2305.                              $datas[$key]->fc_product ="";
  2306.                         }
  2307.                 }
  2308.             }
  2309.         }elseif($type_user=='Hypervisor'){
  2310.             $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array('compstatus'=>'Pending','city_id'=>$user->getCityId()),array('id'=>'desc'));
  2311.             foreach ($datas as $key => $value) {
  2312.                 $agentname $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$value->getAgentid(),'type'=>'Agent'),
  2313.                 array('id'=>'desc'),);
  2314.                 $datas[$key]->agent_name=$agentname;
  2315.                 $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  2316.                     array('id'=>$value->getProvinceId()),
  2317.                 );
  2318.                 if(!empty($province)){
  2319.                     $datas[$key]->provinces=$province;
  2320.                 }else{
  2321.                     $datas[$key]->provinces="";
  2322.                 }
  2323.                 if($value->getFraud() == 1){
  2324.                     $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2325.                         array('complaint_id'=>$value->getId()),
  2326.                     );
  2327.                     if(!empty($FraudComplaint)){
  2328.                         $datas[$key]->fraudcomplaint=$FraudComplaint;
  2329.                     }else{
  2330.                         $datas[$key]->fraudcomplaint="";
  2331.                     }
  2332.                     $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2333.                     if ($pv) {
  2334.                         $datas[$key]->fines =$pv;
  2335.                     } else {
  2336.                          $datas[$key]->fines ="";
  2337.                     }
  2338.                     $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2339.                         if ($fcp) {
  2340.                             $datas[$key]->fc_product =$fcp;
  2341.                         } else {
  2342.                              $datas[$key]->fc_product ="";
  2343.                         }
  2344.                 }
  2345.             }
  2346.         }elseif($type_user=='Supervisor'){
  2347.             $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array('compstatus'=>'Pending','city_id'=>$user->getCityId()),array('id'=>'desc'));
  2348.             foreach ($datas as $key => $value) {
  2349.                 $agentname $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$value->getAgentid(),'type'=>'Agent'),
  2350.                 array('id'=>'desc'),);
  2351.                 $datas[$key]->agent_name=$agentname;
  2352.                 $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  2353.                     array('id'=>$value->getProvinceId()),
  2354.                 );
  2355.                 if(!empty($province)){
  2356.                     $datas[$key]->provinces=$province;
  2357.                 }else{
  2358.                     $datas[$key]->provinces="";
  2359.                 }
  2360.                 if($value->getFraud() == 1){
  2361.                     $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2362.                         array('complaint_id'=>$value->getId()),
  2363.                     );
  2364.                     if(!empty($FraudComplaint)){
  2365.                         $datas[$key]->fraudcomplaint=$FraudComplaint;
  2366.                     }else{
  2367.                         $datas[$key]->fraudcomplaint="";
  2368.                     }
  2369.                     $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2370.                     if ($pv) {
  2371.                         $datas[$key]->fines =$pv;
  2372.                     } else {
  2373.                          $datas[$key]->fines ="";
  2374.                     }
  2375.                     $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2376.                         if ($fcp) {
  2377.                             $datas[$key]->fc_product =$fcp;
  2378.                         } else {
  2379.                              $datas[$key]->fc_product ="";
  2380.                         }
  2381.                 }
  2382.             }
  2383.         }elseif($type_user=='Operational Manager'){
  2384.             $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array('compstatus'=>'Pending','city_id'=>$user->getCityId()),array('id'=>'desc'));
  2385.             foreach ($datas as $key => $value) {
  2386.                 $agentname $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$value->getAgentid(),'type'=>'Agent'),
  2387.                 array('id'=>'desc'),);
  2388.                 if(!empty($agentname)){
  2389.                     $datas[$key]->agent_name=$agentname;
  2390.                 }else{
  2391.                     $datas[$key]->agent_name="";
  2392.                 }
  2393.                 $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  2394.                     array('id'=>$value->getProvinceId()),
  2395.                 );
  2396.                 if(!empty($province)){
  2397.                     $datas[$key]->provinces=$province;
  2398.                 }else{
  2399.                     $datas[$key]->provinces="";
  2400.                 }
  2401.                 if($value->getFraud() == 1){
  2402.                     $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2403.                         array('complaint_id'=>$value->getId()),
  2404.                     );
  2405.                     if(!empty($FraudComplaint)){
  2406.                         $datas[$key]->fraudcomplaint=$FraudComplaint;
  2407.                     }else{
  2408.                         $datas[$key]->fraudcomplaint="";
  2409.                     }
  2410.                     $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2411.                     if ($pv) {
  2412.                         $datas[$key]->fines =$pv;
  2413.                     } else {
  2414.                          $datas[$key]->fines ="";
  2415.                     }
  2416.                     $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2417.                         if ($fcp) {
  2418.                             $datas[$key]->fc_product =$fcp;
  2419.                         } else {
  2420.                              $datas[$key]->fc_product ="";
  2421.                         }
  2422.                 }
  2423.             }
  2424.         }
  2425.         if(!empty($datas)){
  2426.             foreach ($datas as $key => $value) {
  2427.                 // code...
  2428.                 $agent_grp $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findBy(array('city_id'=>$value->getCityId(),'status' => true),
  2429.                 array('id'=>'desc'),);
  2430.                 $agents=$this->getDoctrine()->getRepository('App\Entity\User')->findBy( array('city_id'=>$value->getCityId(),'type'=>'Agent','status' => true),array('id'=>'desc'));
  2431.                 $operational=$this->getDoctrine()->getRepository('App\Entity\User')->findBy( array('city_id'=>$value->getCityId(),'type'=>'Operational Manager','status' => true),array('id'=>'desc'));
  2432.                 
  2433.                 $datas[$key]->grp_agent_detail=$agent_grp;
  2434.                 $datas[$key]->agent_detail=$agents;
  2435.                 $datas[$key]->operational_detail=$operational;
  2436.             }
  2437.         }else{
  2438.             $datas "";
  2439.         }
  2440.         
  2441.         if($type_user=='SuperAdmin'){
  2442.             $page='home/manage_pending_complaint.html.twig';
  2443.         }elseif($type_user=='Client Admin'){
  2444.             $page='home/manage_pending_complaint.html.twig';
  2445.         }elseif($type_user=='Hypervisor'){
  2446.             $page='home/manage_pending_complaint.html.twig';
  2447.         }elseif($type_user=='Supervisor'){
  2448.             $page='supervisor/manage_pending_complaint.html.twig';
  2449.         }elseif($type_user=='Operational Manager'){
  2450.             $page='operational/manage_pending_complaint.html.twig';
  2451.         }else{
  2452.             $page='security/pagenotfound.html.twig';
  2453.         }
  2454.         return $this->render($page
  2455.             array(
  2456.                 // 'form'=>$form->createView(),
  2457.                 'client' => $client,
  2458.                 'datas'=>$datas,
  2459.                 'type_user'=>$type_user,
  2460.                 'roles_client'=>$roles_client,
  2461.                 'implode_pending'=>'',
  2462.                 'implode_assigned'=>'',
  2463.                 'implode_resolved'=>'',  
  2464.             )
  2465.         );
  2466.     }
  2467.      /**
  2468.      * @Route("/complaint_list/{type}/{id}", name="app_complaint_list")
  2469.      */
  2470.      public function complaint_list($type,$id)
  2471.      {
  2472.         if ($this->getUser()) {
  2473.             $client $this->getUser();
  2474.         } else {
  2475.             return $this->redirectToRoute('user_login');
  2476.         }
  2477.         $user $this->getUser();
  2478.         $type_user=$user->getType();
  2479.         $allid=explode(","$user->getRolebyadmin());
  2480.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  2481.         if($type== 1){
  2482.           $agentid=$id;
  2483.           $detail=$this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$id,'type'=>"Agent",'status'=>true));
  2484.           $grpid=0;
  2485.           $operational_id=0;
  2486.           if(!empty($detail)){
  2487.                if($type_user=='SuperAdmin' || $type_user=='Client Admin'){
  2488.                  $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array('city_id'=>$detail->getCityId(),'agentid'=>0,'show_status'=>1),array('id'=>'desc'));
  2489.                  foreach ($datas as $key => $value) {
  2490.                      $agentgrpname $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findOneBy(array('id'=>$value->getGrpid()),
  2491.                      array('id'=>'desc'),);
  2492.                      $datas[$key]->agent_grp_name=$agentgrpname;
  2493.                      $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  2494.                          array('id'=>$value->getProvinceId()),
  2495.                      );
  2496.                      if(!empty($province)){
  2497.                          $datas[$key]->provinces=$province;
  2498.                      }else{
  2499.                          $datas[$key]->provinces="";
  2500.                      }
  2501.                      if($value->getFraud() == 1){
  2502.                          $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2503.                              array('complaint_id'=>$value->getId()),
  2504.                          );
  2505.                          if(!empty($FraudComplaint)){
  2506.                              $datas[$key]->fraudcomplaint=$FraudComplaint;
  2507.                          }else{
  2508.                              $datas[$key]->fraudcomplaint="";
  2509.                          }
  2510.                          $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2511.                          
  2512.                          if ($pv) {
  2513.                              $datas[$key]->fines =$pv;
  2514.                          } else {
  2515.                               $datas[$key]->fines ="";
  2516.                          }
  2517.                          $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2518.                              if ($fcp) {
  2519.                                  $datas[$key]->fc_product =$fcp;
  2520.                              } else {
  2521.                                   $datas[$key]->fc_product ="";
  2522.                              }
  2523.                      }
  2524.                  }
  2525.                }else{
  2526.                     $datas="";
  2527.                }
  2528.           }else{
  2529.                return $this->redirectToRoute('app_manage_oprational_manager');
  2530.           }
  2531.           
  2532.         }elseif($type== 2){
  2533.           $agentid=0;
  2534.           $grpid=$id;
  2535.           $detail $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findOneBy(array('id'=>$id,'status'=>true));
  2536.           $operational_id=0;
  2537.           if(!empty($detail)){
  2538.                if($type_user=='SuperAdmin' || $type_user=='Client Admin'){
  2539.                       $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array('city_id'=>$detail->getCityId(),'grpid'=>0,'show_status'=>1),array('id'=>'desc'));
  2540.                       foreach ($datas as $key => $value) {
  2541.                           $agentgrpname $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findOneBy(array('id'=>$value->getGrpid()),
  2542.                           array('id'=>'desc'),);
  2543.                           $datas[$key]->agent_grp_name=$agentgrpname;
  2544.                           $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  2545.                               array('id'=>$value->getProvinceId()),
  2546.                           );
  2547.                           if(!empty($province)){
  2548.                               $datas[$key]->provinces=$province;
  2549.                           }else{
  2550.                               $datas[$key]->provinces="";
  2551.                           }
  2552.                           if($value->getFraud() == 1){
  2553.                               $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2554.                                   array('complaint_id'=>$value->getId()),
  2555.                               );
  2556.                               if(!empty($FraudComplaint)){
  2557.                                   $datas[$key]->fraudcomplaint=$FraudComplaint;
  2558.                               }else{
  2559.                                   $datas[$key]->fraudcomplaint="";
  2560.                               }
  2561.                               $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2562.                               
  2563.                               if ($pv) {
  2564.                                   $datas[$key]->fines =$pv;
  2565.                               } else {
  2566.                                    $datas[$key]->fines ="";
  2567.                               }
  2568.                               $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2569.                                   if ($fcp) {
  2570.                                       $datas[$key]->fc_product =$fcp;
  2571.                                   } else {
  2572.                                        $datas[$key]->fc_product ="";
  2573.                                   }
  2574.                           }
  2575.                       }
  2576.                }else{
  2577.                     $datas="";
  2578.                }
  2579.           }else{
  2580.                return $this->redirectToRoute('app_manage_oprational_manager');
  2581.           }
  2582.         }elseif($type== 3){
  2583.           $agentid=0;
  2584.           $grpid=0;
  2585.           $detail=$this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$id,'type'=>"Operational Manager",'status'=>true));
  2586.           $operational_id=$id;
  2587.           if(!empty($detail)){
  2588.                if($type_user=='SuperAdmin' || $type_user=='Client Admin'){
  2589.                       $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array('city_id'=>$detail->getCityId(),'operational_id'=>0,'show_status'=>1),array('id'=>'desc'));
  2590.                       foreach ($datas as $key => $value) {
  2591.                           $agentgrpname $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findOneBy(array('id'=>$value->getGrpid()),
  2592.                           array('id'=>'desc'),);
  2593.                           $datas[$key]->agent_grp_name=$agentgrpname;
  2594.                           $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  2595.                               array('id'=>$value->getProvinceId()),
  2596.                           );
  2597.                           if(!empty($province)){
  2598.                               $datas[$key]->provinces=$province;
  2599.                           }else{
  2600.                               $datas[$key]->provinces="";
  2601.                           }
  2602.                           if($value->getFraud() == 1){
  2603.                               $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2604.                                   array('complaint_id'=>$value->getId()),
  2605.                               );
  2606.                               if(!empty($FraudComplaint)){
  2607.                                   $datas[$key]->fraudcomplaint=$FraudComplaint;
  2608.                               }else{
  2609.                                   $datas[$key]->fraudcomplaint="";
  2610.                               }
  2611.                               $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2612.                               
  2613.                               if ($pv) {
  2614.                                   $datas[$key]->fines =$pv;
  2615.                               } else {
  2616.                                    $datas[$key]->fines ="";
  2617.                               }
  2618.                               $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2619.                                   if ($fcp) {
  2620.                                       $datas[$key]->fc_product =$fcp;
  2621.                                   } else {
  2622.                                        $datas[$key]->fc_product ="";
  2623.                                   }
  2624.                           }
  2625.                       }
  2626.                }else{
  2627.                     $datas="";
  2628.                }
  2629.           }else{
  2630.                return $this->redirectToRoute('app_manage_oprational_manager');
  2631.           }
  2632.         }else{
  2633.           $agentid=0;
  2634.           $detail="";
  2635.           $grpid=0;
  2636.           $operational_id=0;
  2637.           $datas="";
  2638.         }
  2639.         if($type_user=='SuperAdmin'){
  2640.             $page='home/complaint_list.html.twig';
  2641.         }elseif($type_user=='Client Admin'){
  2642.             $page='home/complaint_list.html.twig';
  2643.         }else{
  2644.             $page='security/pagenotfound.html.twig';
  2645.         }
  2646.         return $this->render($page
  2647.             array(
  2648.                 // 'form'=>$form->createView(),
  2649.                 'client' => $client,
  2650.                 'datas'=>$datas,
  2651.                 'type_user'=>$type_user,
  2652.                 'roles_client'=>$roles_client
  2653.                 'agentid'=>$agentid
  2654.                 'grpid'=>$grpid
  2655.                 'operational_id'=>$operational_id
  2656.                 'type'=>$type
  2657.                 'id'=>$id
  2658.             )
  2659.         );
  2660.      }
  2661.      /**
  2662.      * @Route("/assing_complaint_user_grp", name="app_assing_complaint_user_grp")
  2663.      */
  2664.      public function manage_assing_complaint_user_grp(Request $request)
  2665.      {
  2666.           // dd($request->request->all());
  2667.         if ($this->getUser()) {
  2668.             $client $this->getUser();
  2669.         } else {
  2670.             return $this->redirectToRoute('user_login');
  2671.         }
  2672.         $user $this->getUser();
  2673.         $user_id=$user->getId();
  2674.        
  2675.         $em $this->getDoctrine()->getManager();
  2676.         if ($request->getMethod() === "POST") {
  2677.                 
  2678.             if($request->request->get('grpid') !=0){
  2679.                 // code...
  2680.                $complaint_ids=$request->request->get('table_id');
  2681.                if(is_array($complaint_ids) == true){
  2682.                     foreach($complaint_ids as $key =>$complaint_id ){
  2683.                           $compstatus="Assign to agent group";
  2684.                           $updateRequest $this->getDoctrine()->getRepository('App\Entity\Complaint')
  2685.                           ->find($complaint_id );
  2686.                           $updateRequest->setGrpid($request->request->get('grpid'));
  2687.                           $updateRequest->setCompstatus($compstatus);
  2688.                           $updateRequest->setAssignDate(date"Y-m-d"strtotime(date('Y-m-d'))));
  2689.                           $updateRequest->setStatus('1');
  2690.                           $em $this->getDoctrine()->getManager();
  2691.                           $em->persist($updateRequest);
  2692.                           $em->flush();
  2693.                     }
  2694.                }else{
  2695.                     if($client->getLang() == 'en'){
  2696.                        $this->addFlash('red''Please select at least one complaint ..!!'); 
  2697.                     }else{
  2698.                        $this->addFlash('red''Veuillez sélectionner au moins une plainte ..!!');  
  2699.                     }
  2700.                     return $this->redirectToRoute('app_manage_agent_group');
  2701.                }
  2702.                if($client->getLang() == 'en'){
  2703.                   $this->addFlash('green''Complaint assign successfully..!!'); 
  2704.                }else{
  2705.                   $this->addFlash('green''Plainte assignée avec succès..!!');  
  2706.                }
  2707.                
  2708.                return $this->redirectToRoute('app_manage_agent_group');
  2709.             }elseif($request->request->get('agentid') !=0){
  2710.                 // code...
  2711.                $complaint_ids=$request->request->get('table_id');
  2712.                if(is_array($complaint_ids) == true){
  2713.                     foreach($complaint_ids as $key =>$complaint_id ){
  2714.                           $compstatus="Assign to agent";
  2715.                           $updateRequest $this->getDoctrine()->getRepository('App\Entity\Complaint')
  2716.                           ->find($complaint_id);
  2717.                           $updateRequest->setAgentid($request->request->get('agentid'));
  2718.                           $updateRequest->setCompstatus($compstatus);
  2719.                           $updateRequest->setAssignDate(date"Y-m-d"strtotime(date('Y-m-d'))));
  2720.                           $updateRequest->setStatus('1');
  2721.                           $em $this->getDoctrine()->getManager();
  2722.                           $em->persist($updateRequest);
  2723.                           $em->flush();
  2724.                     }
  2725.                }else{
  2726.                     if($client->getLang() == 'en'){
  2727.                        $this->addFlash('red''Please select at least one complaint ..!!'); 
  2728.                     }else{
  2729.                        $this->addFlash('red''Veuillez sélectionner au moins une plainte ..!!');  
  2730.                     }
  2731.                     return $this->redirectToRoute('app_manage_agent');
  2732.                }
  2733.                 if($client->getLang() == 'en'){
  2734.                   $this->addFlash('green''Complaint assign successfully..!!'); 
  2735.                }else{
  2736.                   $this->addFlash('green''Plainte assignée avec succès..!!');  
  2737.                }
  2738.                 return $this->redirectToRoute('app_manage_agent');
  2739.             }elseif($request->request->get('operational_id') !=0){
  2740.                 // code...
  2741.                $complaint_ids=$request->request->get('table_id');
  2742.                if(is_array($complaint_ids) == true){
  2743.                     foreach($complaint_ids as $key =>$complaint_id ){
  2744.                           $compstatus="Assign to operational manager";
  2745.                           $updateRequest $this->getDoctrine()->getRepository('App\Entity\Complaint')
  2746.                           ->find($complaint_id);
  2747.                           $updateRequest->setOperationalId($request->request->get('operational_id'));
  2748.                           $updateRequest->setCompstatus($compstatus);
  2749.                           $updateRequest->setAssignDate(date"Y-m-d"strtotime(date('Y-m-d'))));
  2750.                           $updateRequest->setStatus('1');
  2751.                           $em $this->getDoctrine()->getManager();
  2752.                           $em->persist($updateRequest);
  2753.                           $em->flush();
  2754.                     }
  2755.                }else{
  2756.                     if($client->getLang() == 'en'){
  2757.                        $this->addFlash('red''Please select at least one complaint ..!!'); 
  2758.                     }else{
  2759.                        $this->addFlash('red''Veuillez sélectionner au moins une plainte ..!!');  
  2760.                     }
  2761.                     return $this->redirectToRoute('app_manage_oprational_manager');
  2762.                }
  2763.                
  2764.                if($client->getLang() == 'en'){
  2765.                   $this->addFlash('green''Complaint assign successfully..!!'); 
  2766.                }else{
  2767.                   $this->addFlash('green''Plainte assignée avec succès..!!');  
  2768.                }
  2769.                return $this->redirectToRoute('app_manage_oprational_manager');
  2770.             } 
  2771.         }
  2772.         return $this->redirectToRoute('app_manage_complaints');
  2773.      }
  2774.     /**
  2775.      * @Route("/previous_complaint", name="app_previous_complaint")
  2776.      */
  2777.     public function manage_previous_complaint(Request $request)
  2778.     {
  2779.         $input=$request->request->all();
  2780.         if ($this->getUser()) {
  2781.             $client $this->getUser();
  2782.         } else {
  2783.             return $this->redirectToRoute('user_login');
  2784.         }
  2785.         $user $this->getUser();
  2786.         $type_user=$user->getType();
  2787.         $allid=explode(","$user->getRolebyadmin());
  2788.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  2789.         if($type_user=='Operational Manager'){
  2790.             $page='operational/manage_previous_complaint.html.twig';
  2791.             if(!empty($input)){
  2792.                 $dates=$request->request->get('reportrange_field');
  2793.                 $date=explode (" - "$dates); 
  2794.                 // dd($dates);
  2795.                 if($dates !=""){
  2796.                     $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findDateRange($date[0],$date[1],$user->getCityId());
  2797.                          foreach ($datas as $key => $value) {
  2798.                          $agentname $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$value->getAgentid(),'type'=>'Agent'),
  2799.                          array('id'=>'desc'),);
  2800.                          $datas[$key]->agent_name=$agentname;
  2801.                          if($value->getFraud() == 1){
  2802.                              $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2803.                                  array('complaint_id'=>$value->getId()),
  2804.                              );
  2805.                              if(!empty($FraudComplaint)){
  2806.                                  $datas[$key]->fraudcomplaint=$FraudComplaint;
  2807.                              }else{
  2808.                                  $datas[$key]->fraudcomplaint="";
  2809.                              }
  2810.                              $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2811.                              if ($pv) {
  2812.                                  $datas[$key]->fines =$pv;
  2813.                              } else {
  2814.                                   $datas[$key]->fines ="";
  2815.                              }
  2816.                              $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2817.                                  if ($fcp) {
  2818.                                      $datas[$key]->fc_product =$fcp;
  2819.                                  } else {
  2820.                                       $datas[$key]->fc_product ="";
  2821.                                  }
  2822.                          }
  2823.                      }
  2824.                 }else{
  2825.                     $datas ="";
  2826.                 }
  2827.                 
  2828.             }else{
  2829.                 $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(array('compstatus'=>'Resolved','city_id'=>$user->getCityId()),array('id'=>'desc'));
  2830.                 foreach ($datas as $key => $value) {
  2831.                     $agentname $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$value->getAgentid(),'type'=>'Agent'),
  2832.                     array('id'=>'desc'),);
  2833.                     $datas[$key]->agent_name=$agentname;
  2834.                     if($value->getFraud() == 1){
  2835.                         $FraudComplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findOneBy(
  2836.                             array('complaint_id'=>$value->getId()),
  2837.                         );
  2838.                         if(!empty($FraudComplaint)){
  2839.                             $datas[$key]->fraudcomplaint=$FraudComplaint;
  2840.                         }else{
  2841.                             $datas[$key]->fraudcomplaint="";
  2842.                         }
  2843.                         $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$FraudComplaint->getFine()));
  2844.                         if ($pv) {
  2845.                             $datas[$key]->fines =$pv;
  2846.                         } else {
  2847.                              $datas[$key]->fines ="";
  2848.                         }
  2849.                         $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$FraudComplaint->getId()));
  2850.                             if ($fcp) {
  2851.                                 $datas[$key]->fc_product =$fcp;
  2852.                             } else {
  2853.                                  $datas[$key]->fc_product ="";
  2854.                             }
  2855.                     }
  2856.                 }
  2857.             }
  2858.         }else{
  2859.             $datas="";
  2860.             $page='security/pagenotfound.html.twig';
  2861.         }
  2862.         return $this->render($page
  2863.             array(
  2864.                 // 'form'=>$form->createView(),
  2865.                 'client' => $client,
  2866.                 'datas'=>$datas,
  2867.                 'type_user'=>$type_user,
  2868.                 'roles_client'=>$roles_client,
  2869.                 'implode_pending'=>'',
  2870.                 'implode_assigned'=>'',
  2871.                 'implode_resolved'=>'',  
  2872.             )
  2873.         );
  2874.     }
  2875.     /**
  2876.      * @Route("/assing_complaint", name="app_assing_complaint")
  2877.      */
  2878.     public function manage_assing_complaint(Request $request)
  2879.     {
  2880.         if ($this->getUser()) {
  2881.             $client $this->getUser();
  2882.         } else {
  2883.             return $this->redirectToRoute('user_login');
  2884.         }
  2885.         $user $this->getUser();
  2886.         $user_id=$user->getId();
  2887.        
  2888.         $em $this->getDoctrine()->getManager();
  2889.         if ($request->getMethod() === "POST") {
  2890.                 
  2891.             if(!empty($request->request->get('grpid'))){
  2892.                 // code...
  2893.                 $compstatus="Assign to agent group";
  2894.                 $updateRequest $this->getDoctrine()->getRepository('App\Entity\Complaint')
  2895.                 ->find($request->request->get('table_id') );
  2896.                 $updateRequest->setGrpid($request->request->get('grpid'));
  2897.                 $updateRequest->setCompstatus($compstatus);
  2898.                 $updateRequest->setAssignDate(date"Y-m-d"strtotime(date('Y-m-d'))));
  2899.                 $updateRequest->setStatus('1');
  2900.                 $em $this->getDoctrine()->getManager();
  2901.                 $em->persist($updateRequest);
  2902.                 $em->flush();
  2903.                 if($client->getLang() == 'en'){
  2904.                   $this->addFlash('green''Complaint assign successfully..!!'); 
  2905.                }else{
  2906.                   $this->addFlash('green''Plainte assignée avec succès..!!');  
  2907.                }
  2908.             }elseif(!empty($request->request->get('agentid'))){
  2909.                 // code...
  2910.                 $compstatus="Assign to agent";
  2911.                 $updateRequest $this->getDoctrine()->getRepository('App\Entity\Complaint')
  2912.                 ->find($request->request->get('table_id') );
  2913.                 $updateRequest->setAgentid($request->request->get('agentid'));
  2914.                 $updateRequest->setCompstatus($compstatus);
  2915.                 $updateRequest->setAssignDate(date"Y-m-d"strtotime(date('Y-m-d'))));
  2916.                 $updateRequest->setStatus('1');
  2917.                 $em $this->getDoctrine()->getManager();
  2918.                 $em->persist($updateRequest);
  2919.                 $em->flush();
  2920.                 if($client->getLang() == 'en'){
  2921.                   $this->addFlash('green''Complaint assign successfully..!!'); 
  2922.                }else{
  2923.                   $this->addFlash('green''Plainte assignée avec succès..!!');  
  2924.                }
  2925.             }elseif(!empty($request->request->get('operational_id'))){
  2926.                 // code...
  2927.                 $compstatus="Assign to operational manager";
  2928.                 $updateRequest $this->getDoctrine()->getRepository('App\Entity\Complaint')
  2929.                 ->find($request->request->get('table_id') );
  2930.                 $updateRequest->setOperationalId($request->request->get('operational_id'));
  2931.                 $updateRequest->setCompstatus($compstatus);
  2932.                 $updateRequest->setAssignDate(date"Y-m-d"strtotime(date('Y-m-d'))));
  2933.                 $updateRequest->setStatus('1');
  2934.                 $em $this->getDoctrine()->getManager();
  2935.                 $em->persist($updateRequest);
  2936.                 $em->flush();
  2937.                 if($client->getLang() == 'en'){
  2938.                   $this->addFlash('green''Complaint assign successfully..!!'); 
  2939.                }else{
  2940.                   $this->addFlash('green''Plainte assignée avec succès..!!');  
  2941.                } 
  2942.             } 
  2943.         }
  2944.         return $this->redirectToRoute('app_manage_complaints');
  2945.     }
  2946.     
  2947.      /**
  2948.      * @Route("/assing_complaint_agent", name="app_assing_complaint_agent")
  2949.      */
  2950.      public function manage_assing_complaint_agent(Request $request)
  2951.      {
  2952.           if ($this->getUser()) {
  2953.                  $client $this->getUser();
  2954.           } else {
  2955.                  return $this->redirectToRoute('user_login');
  2956.           }
  2957.         $user $this->getUser();
  2958.         $user_id=$user->getId();
  2959.        
  2960.         $em $this->getDoctrine()->getManager();
  2961.         if ($request->getMethod() === "POST") {
  2962.           $complaint_ids=$request->request->get('complaint_id');
  2963.      
  2964.           foreach($complaint_ids as $key =>$complaint_id ){
  2965.                 $compstatus="Assign to agent";
  2966.                 $ipadress=$request->getClientIp();
  2967.                 $updateRequest $this->getDoctrine()->getRepository('App\Entity\Complaint')
  2968.                 ->find($complaint_id);
  2969.                 $updateRequest->setAgentid($request->request->get('agentid') );
  2970.                 $updateRequest->setCompstatus($compstatus);
  2971.                 $updateRequest->setAssignDate(date"Y-m-d"strtotime(date('Y-m-d'))));
  2972.                 $updateRequest->setStatus('1');
  2973.                 $em $this->getDoctrine()->getManager();
  2974.                 $em->persist($updateRequest);
  2975.                 $em->flush();
  2976.           }
  2977.           
  2978.           if($client->getLang() == 'en'){
  2979.              $this->addFlash('green''Complaint assign successfully..!!'); 
  2980.           }else{
  2981.              $this->addFlash('green''Plainte assignée avec succès..!!');  
  2982.           }
  2983.         }
  2984.         return $this->redirectToRoute('app_manage_agent');
  2985.      }
  2986.     
  2987.     /**
  2988.      * @Route("/update-request-status-complaint/{id}/{status}", name="update_status_complaint")
  2989.      */
  2990.     public function update_status_complaint(Complaint $request,$status)
  2991.     {
  2992.         $em $this->getDoctrine()->getManager();
  2993.         $request->setStatus($status);
  2994.         $em->persist($request);
  2995.         $em->flush();
  2996.         if($status == 1){
  2997.             $this->addFlash('green''You have enable the complaint');
  2998.         }else{
  2999.             $this->addFlash('red''You have disable the complaint');
  3000.         }
  3001.         return $this->redirectToRoute('app_manage_complaints');
  3002.     }
  3003.     /**
  3004.      * @Route("/manage_oprational_manager", name="app_manage_oprational_manager")
  3005.      */
  3006.     public function manage_oprational_manager()
  3007.     {
  3008.         if ($this->getUser()) {
  3009.             $client $this->getUser();
  3010.         } else {
  3011.             return $this->redirectToRoute('user_login');
  3012.         }
  3013.         $user $this->getUser();
  3014.         $type_user=$user->getType();
  3015.         $allid=explode(","$user->getRolebyadmin());
  3016.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  3017.         if($type_user=='SuperAdmin'){
  3018.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  3019.                 array('type'=>'Operational Manager'),
  3020.                 array('id'=>'desc'),
  3021.             );
  3022.         }elseif($type_user=='Client Admin'){
  3023.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  3024.                 array('type'=>'Operational Manager'),
  3025.                 array('id'=>'desc'),
  3026.             );
  3027.         }elseif($type_user=='Hypervisor'){
  3028.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  3029.                 array('city_id'=>$user->getCityId(),'type'=>'Operational Manager'),
  3030.                 array('id'=>'desc'),
  3031.             );
  3032.             if(!empty($datas)){
  3033.                 foreach ($datas as $key => $value) {
  3034.                     $agent_grp=$this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findOneBy( array('id'=>$value->getAgentgroupId()),array('id'=>'desc'));
  3035.                     $explode_agent=explode(","$agent_grp->getAgentid());
  3036.                     $agents=$agt=$this->getDoctrine()->getRepository('App\Entity\User')->findAllIdField($explode_agent);
  3037.                     $datas[$key]->agent_detail=$agents;
  3038.                 }
  3039.                 
  3040.             }else{
  3041.                 $datas "";
  3042.             }
  3043.         }elseif($type_user=='Supervisor'){
  3044.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  3045.                 array('city_id'=>$user->getCityId(),'type'=>'Operational Manager'),
  3046.                 array('id'=>'desc'),
  3047.             );
  3048.             if(!empty($datas)){
  3049.                 foreach ($datas as $key => $value) {
  3050.                     $agent_grp=$this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findOneBy( array('id'=>$value->getAgentgroupId()),array('id'=>'desc'));
  3051.                     if(!empty($agent_grp)){
  3052.                         $explode_agent=explode(","$agent_grp->getAgentid());
  3053.                     }else{
  3054.                         $explode_agent="";
  3055.                     }
  3056.                     
  3057.                     $agents=$agt=$this->getDoctrine()->getRepository('App\Entity\User')->findAllIdField($explode_agent);
  3058.                     $datas[$key]->agent_detail=$agents;
  3059.                 }
  3060.                 
  3061.             }else{
  3062.                 $datas "";
  3063.             }
  3064.         }else{
  3065.              $datas "";
  3066.         }
  3067.         
  3068.         $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findBy(
  3069.             array('code'=>'FR'),
  3070.             array('name'=>'asc'),
  3071.         );
  3072.         $citys $this->getDoctrine()->getRepository('App\Entity\City')->findBy(array(),
  3073.             array('name'=>'asc'),
  3074.         );
  3075.         $agentgroups $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findBy(array('status' => true),array('id'=>'desc'));
  3076.         if($type_user=='SuperAdmin'){
  3077.             $page='home/manage_oprational_manager.html.twig';
  3078.         }elseif($type_user=='Client Admin'){
  3079.             $page='home/manage_oprational_manager.html.twig';
  3080.         }elseif($type_user=='Hypervisor'){
  3081.             $page='hypervisor/manage_oprational_manager.html.twig';
  3082.         }elseif($type_user=='Supervisor'){
  3083.             $page='supervisor/manage_oprational_manager.html.twig';
  3084.         }else{
  3085.             $page='security/pagenotfound.html.twig';
  3086.         }
  3087.         return $this->render($page
  3088.             array(
  3089.                 // 'form'=>$form->createView(),
  3090.                 'client' => $client,
  3091.                 'datas'=>$datas,
  3092.                 'countrys'=>$countrys,
  3093.                 'citys'=>$citys,
  3094.                 'agentgroups'=>$agentgroups,
  3095.                 'type_user'=>$type_user,
  3096.                 'roles_client'=>$roles_client,
  3097.                 'implode_pending'=>'',
  3098.                 'implode_assigned'=>'',
  3099.                 'implode_resolved'=>'',  
  3100.             )
  3101.         );
  3102.     }
  3103.     /**
  3104.      * @Route("/create_manage_oprational_manager", name="app_create_manage_oprational_manager")
  3105.      */
  3106.     public function create_manage_oprational_manager(Request $requestUserPasswordEncoderInterface $passwordEncoder, \Swift_Mailer $mailer)
  3107.     {
  3108.         if ($this->getUser()) {
  3109.             $client $this->getUser();
  3110.         } else {
  3111.             return $this->redirectToRoute('user_login');
  3112.         }
  3113.         $user $this->getUser();
  3114.         $user_id=$user->getId();        
  3115.         $em $this->getDoctrine()->getManager();
  3116.         if ($request->getMethod() === "POST") {
  3117.             $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findOneBy(
  3118.             array('id'=>$request->request->get('country')),
  3119.             );
  3120.             $citys $this->getDoctrine()->getRepository('App\Entity\City')->findOneBy(
  3121.                 array('id'=>$request->request->get('city')),
  3122.             );    
  3123.             if($request->request->get('table_id') !=""){
  3124.                 $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBySomeField(array('value'=>$request->request->get('table_id')),array('email'=>$request->request->get('email')));
  3125.                 if (empty($result)) {   
  3126.                     $ipadress=$request->getClientIp();
  3127.                     $updateRequest $this->getDoctrine()->getRepository('App\Entity\User')
  3128.                     ->find($request->request->get('table_id') );
  3129.                     $updateRequest->setName($request->request->get('name') );
  3130.                     $updateRequest->setEmail($request->request->get('email'));
  3131.                     $updateRequest->setMobile($request->request->get('mobile'));
  3132.                     $updateRequest->setAgentgroupId($request->request->get('agentgroup_id'));
  3133.                     $updateRequest->setCountry($countrys);
  3134.                     $updateRequest->setCity($citys);
  3135.                     $updateRequest->setProvinceId('0');
  3136.                     $updateRequest->setLang('fr');
  3137.                     $updateRequest->setIpaddress($ipadress);
  3138.                     $em $this->getDoctrine()->getManager();
  3139.                     $em->persist($updateRequest);
  3140.                     $em->flush();
  3141.                     if($client->getLang() == 'en'){
  3142.                        $this->addFlash('green''Operational manager update successfully..!!');  
  3143.                     }else{
  3144.                        $this->addFlash('green''Mise à jour réussie du gestionnaire opérationnel..!!');  
  3145.                     }
  3146.                 }else{
  3147.                     if($client->getLang() == 'en'){
  3148.                        $this->addFlash('red''There is already an account with this email');
  3149.                     }else{
  3150.                        $this->addFlash('red''Il existe déjà un compte avec cette adresse e-mail');
  3151.                     }
  3152.                 }
  3153.             }else{
  3154.                 $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('email'=>$request->request->get('email')),array('id'=>'desc'));
  3155.                 if (empty($result)) {
  3156.                     
  3157.                     $omid$this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('type'=>'Operational Manager'),array('id'=>'desc'),);
  3158.                     if(!empty($omid)){
  3159.                         $idno=explode("OM"$omid->getUserId());
  3160.                         $n=$idno[1];
  3161.                         $n2 str_pad($n 150STR_PAD_LEFT);
  3162.                     }else{
  3163.                         $n2="00001";
  3164.                     }
  3165.                     $random_password substr(md5(random_bytes(20)),1,25);
  3166.                     $newPassword ='123456';
  3167.                     $userid ='OM'.$n2;
  3168.                     $ipadress=$request->getClientIp();
  3169.                     $addRequest = new User;
  3170.                     $addRequest->setAddedBy($user_id);
  3171.                     $addRequest->setUserId($userid);
  3172.                     $addRequest->setName($request->request->get('name') );
  3173.                     $addRequest->setEmail($request->request->get('email'));
  3174.                     $addRequest->setLang('fr');
  3175.                     $addRequest->setMobile($request->request->get('mobile'));
  3176.                     $addRequest->setProvinceId('0');
  3177.                     
  3178.                     $addRequest->setAgentgroupId($request->request->get('agentgroup_id'));
  3179.                     $addRequest->setPassword($passwordEncoder->encodePassword(
  3180.                         $addRequest,
  3181.                         $newPassword
  3182.                     ));
  3183.                     $addRequest->setPasswordResetToken($random_password);
  3184.                     $addRequest->setCountry($countrys);
  3185.                     $addRequest->setCity($citys);
  3186.                     $addRequest->setStatus('1');
  3187.                     $addRequest->setType('Operational Manager');
  3188.                     $addRequest->setRoles(["ROLE_OPERATIONALMANAGER"]);
  3189.                     $addRequest->setIpaddress($ipadress);
  3190.                     $em $this->getDoctrine()->getManager();
  3191.                     $em->persist($addRequest);
  3192.                     $em->flush();
  3193.                     $url $this->urlGenerator->generate('reset_password', array('code'=>$random_password), UrlGeneratorInterface::ABSOLUTE_URL);
  3194.                     $sendTo $request->request->get('email');
  3195.                     $sendCc 'santosh.jaiswal.espl@gmail.com';
  3196.                     $mailArray = array(
  3197.                         'email' => 'infos-compte@konsoplus.com',
  3198.                         'emailid' => $request->request->get('email'),
  3199.                         'mobile' => $request->request->get('mobile'),
  3200.                         'name' => $request->request->get('name'),
  3201.                         'city' => $citys->getName(),
  3202.                         'url' => $url,
  3203.                         'password' => $random_password
  3204.                     );
  3205.                     $mail $this->mailer->sendEmailMessage(
  3206.                         'Renouveler votre mot de passe',
  3207.                         "Konso+",
  3208.                         $sendTo,
  3209.                         $sendCc,
  3210.                         null,
  3211.                         'security/welcomemail.html.twig',
  3212.                         $mailArray
  3213.                     );
  3214.                     if($client->getLang() == 'en'){
  3215.                        $this->addFlash('green''Operational manager added successfully..!!');  
  3216.                     }else{
  3217.                        $this->addFlash('green'"Ajout d'un gestionnaire opérationnel avec succès..!!");  
  3218.                     }
  3219.                      
  3220.                 }else{
  3221.                     if($client->getLang() == 'en'){
  3222.                        $this->addFlash('red''There is already an account with this email');
  3223.                     }else{
  3224.                        $this->addFlash('red''Il existe déjà un compte avec cette adresse e-mail');
  3225.                     }
  3226.                 }
  3227.             }    
  3228.         }
  3229.         return $this->redirectToRoute('app_manage_oprational_manager');
  3230.     }
  3231.         
  3232.     /**
  3233.      * @Route("/update-request-status-oprational/{id}/{status}", name="update_user_status_oprational_manager")
  3234.      */
  3235.     public function update_status_oprational_manager(User $request,$status)
  3236.     {
  3237.           if ($this->getUser()) {
  3238.               $client $this->getUser();
  3239.           } else {
  3240.               return $this->redirectToRoute('user_login');
  3241.           }
  3242.         $em $this->getDoctrine()->getManager();
  3243.         $request->setStatus($status);
  3244.         $em->persist($request);
  3245.         $em->flush();
  3246.         if($status == 1){
  3247.           if($client->getLang() == 'en'){
  3248.              $this->addFlash('green''You have enable the operational manager');  
  3249.           }else{
  3250.              $this->addFlash('green''Vous avez activé le responsable opérationnel'); 
  3251.           }
  3252.             
  3253.         }else{
  3254.           if($client->getLang() == 'en'){
  3255.              $this->addFlash('red''You have disable the operational manager'); 
  3256.           }else{
  3257.              $this->addFlash('red''Vous avez désactivé le gestionnaire opérationnel'); 
  3258.           }
  3259.             
  3260.         }
  3261.         return $this->redirectToRoute('app_manage_oprational_manager');
  3262.     }
  3263.      /**
  3264.      * @Route("/request-oprational-delete/{id}", name="app_user_delete_oprational_manager")
  3265.      */
  3266.      public function oprational_manager_delete(User $request,$id)
  3267.      {
  3268.         $em $this->getDoctrine()->getManager();
  3269.         $request->getId($id);
  3270.         $em->remove($request);
  3271.         $em->flush();
  3272.         $this->addFlash('green','Operational manager deleted successfully..!!');
  3273.         return $this->redirectToRoute('app_manage_oprational_manager');
  3274.      }
  3275.     
  3276.     /**
  3277.      * @Route("/manage_financial_manager", name="app_manage_financial_manager")
  3278.      */
  3279.     public function manage_financial_manager()
  3280.     {
  3281.         if ($this->getUser()) {
  3282.             $client $this->getUser();
  3283.         } else {
  3284.             return $this->redirectToRoute('user_login');
  3285.         }
  3286.         $user $this->getUser();
  3287.         $type_user=$user->getType();
  3288.         $allid=explode(","$user->getRolebyadmin());
  3289.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  3290.         if($type_user == "SuperAdmin" || $type_user == "Client Admin"){
  3291.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  3292.                 array('type'=>'Financial Manager'),
  3293.                 array('id'=>'desc'),
  3294.             );
  3295.             $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findBy(
  3296.                 array('code'=>'FR'),
  3297.                 array('name'=>'asc'),
  3298.             );
  3299.             $citys $this->getDoctrine()->getRepository('App\Entity\City')->findBy(array(),
  3300.                 array('name'=>'asc'),
  3301.             );
  3302.           $page='home/manage_financial_manager.html.twig';
  3303.         }else{
  3304.             $page='security/pagenotfound.html.twig';
  3305.             $datas "";
  3306.             $citys ="";
  3307.             $countrys ="";
  3308.         }
  3309.         return $this->render($page
  3310.             array(
  3311.                 'client' => $client,
  3312.                 'datas'=>$datas,
  3313.                 'countrys'=>$countrys,
  3314.                 'citys'=>$citys,
  3315.                 'type_user'=>$type_user,
  3316.                 'roles_client'=>$roles_client,
  3317.                 'implode_pending'=>'',
  3318.                 'implode_assigned'=>'',
  3319.                 'implode_resolved'=>'',  
  3320.             )
  3321.         );
  3322.     }
  3323.     /**
  3324.      * @Route("/create_manage_financial_manager", name="app_create_manage_financial_manager")
  3325.      */
  3326.     public function create_manage_financial_manager(Request $requestUserPasswordEncoderInterface $passwordEncoder)
  3327.     {
  3328.         if ($this->getUser()) {
  3329.             $client $this->getUser();
  3330.         } else {
  3331.             return $this->redirectToRoute('user_login');
  3332.         }
  3333.         $user $this->getUser();
  3334.         $user_id=$user->getId();
  3335.    
  3336.         $em $this->getDoctrine()->getManager();
  3337.         if ($request->getMethod() === "POST") {
  3338.             $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findOneBy(
  3339.             array('id'=>$request->request->get('country')),
  3340.             );
  3341.             $citys $this->getDoctrine()->getRepository('App\Entity\City')->findOneBy(
  3342.                 array('id'=>$request->request->get('city')),
  3343.             );
  3344.             if($request->request->get('table_id') !=""){
  3345.                 $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBySomeField(array('value'=>$request->request->get('table_id')),array('email'=>$request->request->get('email')));
  3346.                 if (empty($result)) {   
  3347.                     $ipadress=$request->getClientIp();
  3348.                     $updateRequest $this->getDoctrine()->getRepository('App\Entity\User')
  3349.                     ->find($request->request->get('table_id') );
  3350.                     $updateRequest->setName($request->request->get('name') );
  3351.                     $updateRequest->setEmail($request->request->get('email'));
  3352.                     $updateRequest->setMobile($request->request->get('mobile'));
  3353.                     $updateRequest->setAgentgroupId('0');
  3354.                     $updateRequest->setCountry($countrys);
  3355.                     $updateRequest->setCity($citys);
  3356.                     $updateRequest->setProvinceId('0');
  3357.                     $updateRequest->setIpaddress($ipadress);
  3358.                     $em $this->getDoctrine()->getManager();
  3359.                     $em->persist($updateRequest);
  3360.                     $em->flush();
  3361.                     if($client->getLang() == 'en'){
  3362.                        $this->addFlash('green''Financial manager update successfully..!!'); 
  3363.                     }else{
  3364.                        $this->addFlash('green''Mise à jour réussie du gestionnaire financier..!!'); 
  3365.                     }
  3366.                     
  3367.                 } else {
  3368.                     if($client->getLang() == 'en'){
  3369.                        $this->addFlash('red''There is already an account with this email');
  3370.                     }else{
  3371.                        $this->addFlash('red''Il existe déjà un compte avec cette adresse e-mail');
  3372.                     }
  3373.                 }
  3374.             }else{
  3375.                 $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('email'=>$request->request->get('email')),array('id'=>'desc'));
  3376.                 if (empty($result)) {
  3377.                     $fmid$this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('type'=>'Financial Manager'),array('id'=>'desc'),);
  3378.                     if(!empty($fmid)){
  3379.                         $idno=explode("FM"$fmid->getUserId());
  3380.                         $n=$idno[1];
  3381.                         $n2 str_pad($n 150STR_PAD_LEFT);
  3382.                     }else{
  3383.                         $n2="00001";
  3384.                     }
  3385.                     $random_password substr(md5(random_bytes(20)),1,25);
  3386.                     $newPassword ='123456';
  3387.                     $userid ='FM'.$n2;
  3388.                     $ipadress=$request->getClientIp();
  3389.                     $addRequest = new User;
  3390.                     $addRequest->setAddedBy($user_id);
  3391.                     $addRequest->setUserId($userid);
  3392.                     $addRequest->setName($request->request->get('name') );
  3393.                     $addRequest->setEmail($request->request->get('email'));
  3394.                     $addRequest->setMobile($request->request->get('mobile'));
  3395.                     $addRequest->setPassword($passwordEncoder->encodePassword(
  3396.                         $addRequest,
  3397.                         $newPassword
  3398.                     ));
  3399.                     $addRequest->setPasswordResetToken($random_password);
  3400.                     $addRequest->setCountry($countrys);
  3401.                     $addRequest->setCity($citys);
  3402.                     $addRequest->setProvinceId('0');
  3403.                     $addRequest->setStatus('1');
  3404.                     $addRequest->setAgentgroupId('0');
  3405.                     $addRequest->setLang('fr');
  3406.                     $addRequest->setType('Financial Manager');
  3407.                     $addRequest->setRoles(["ROLE_FINANCIALMANAGER"]);
  3408.                     $addRequest->setIpaddress($ipadress);
  3409.                     $em $this->getDoctrine()->getManager();
  3410.                     $em->persist($addRequest);
  3411.                     $em->flush();
  3412.                     $url $this->urlGenerator->generate('reset_password', array('code'=>$random_password), UrlGeneratorInterface::ABSOLUTE_URL);
  3413.                     $sendTo $request->request->get('email');
  3414.                     $sendCc 'santosh.jaiswal.espl@gmail.com';
  3415.                     $mailArray = array(
  3416.                         'email' => 'infos-compte@konsoplus.com',
  3417.                         'emailid' => $request->request->get('email'),
  3418.                         'mobile' => $request->request->get('mobile'),
  3419.                         'name' => $request->request->get('name'),
  3420.                         'city' => $citys->getName(),
  3421.                         'url' => $url,
  3422.                         'password' => $random_password
  3423.                     );
  3424.                     $mail $this->mailer->sendEmailMessage(
  3425.                         'Renouveler votre mot de passe',
  3426.                         "Konso+",
  3427.                         $sendTo,
  3428.                         $sendCc,
  3429.                         null,
  3430.                         'security/welcomemail.html.twig',
  3431.                         $mailArray
  3432.                     );
  3433.                     if($client->getLang() == 'en'){
  3434.                        $this->addFlash('green''Financial manager added successfully..!!');
  3435.                     }else{
  3436.                        $this->addFlash('green'"Ajout d'un directeur financier avec succès..!!"); 
  3437.                     }
  3438.                      
  3439.                 } else {
  3440.                     if($client->getLang() == 'en'){
  3441.                        $this->addFlash('red''There is already an account with this email');
  3442.                     }else{
  3443.                        $this->addFlash('red''Il existe déjà un compte avec cette adresse e-mail');
  3444.                     }
  3445.                 }    
  3446.             }    
  3447.         }
  3448.         return $this->redirectToRoute('app_manage_financial_manager');
  3449.     }
  3450.         
  3451.      /**
  3452.      * @Route("/update-request-status-financial/{id}/{status}", name="update_user_status_financial_manager")
  3453.      */
  3454.      public function update_status_financial_manager(User $request,$status)
  3455.      {
  3456.           if ($this->getUser()) {
  3457.               $client $this->getUser();
  3458.           } else {
  3459.               return $this->redirectToRoute('user_login');
  3460.           }
  3461.           $em $this->getDoctrine()->getManager();
  3462.           $request->setStatus($status);
  3463.           $em->persist($request);
  3464.           $em->flush();
  3465.           if($status == 1){
  3466.                if($client->getLang() == 'en'){
  3467.                    $this->addFlash('green''You have enable the financial manager');
  3468.                }else{
  3469.                    $this->addFlash('green''Vous avez permis au directeur financier');
  3470.                }
  3471.            
  3472.           }else{
  3473.                if($client->getLang() == 'en'){
  3474.                   $this->addFlash('red''You have disable the financial manager');
  3475.                }else{
  3476.                   $this->addFlash('red'"Vous avez mis hors d'état de nuire le directeur financier");
  3477.                }  
  3478.           }
  3479.           return $this->redirectToRoute('app_manage_financial_manager');
  3480.      }
  3481.      /**
  3482.      * @Route("/request-financial-delete/{id}", name="app_user_delete_financial_manager")
  3483.      */
  3484.      public function financial_manager_delete(User $request,$id)
  3485.      {     
  3486.           if ($this->getUser()) {
  3487.               $client $this->getUser();
  3488.           } else {
  3489.               return $this->redirectToRoute('user_login');
  3490.           }
  3491.         $em $this->getDoctrine()->getManager();
  3492.         $request->getId($id);
  3493.         $em->remove($request);
  3494.         $em->flush();
  3495.         $this->addFlash('green','Financial manager deleted successfully..!!');
  3496.         return $this->redirectToRoute('app_manage_financial_manager');
  3497.     }
  3498.     /**
  3499.      * @Route("/manage_hypervisor", name="app_manage_hypervisor")
  3500.      */
  3501.     public function manage_hypervisor()
  3502.     {
  3503.         if ($this->getUser()) {
  3504.             $client $this->getUser();
  3505.         } else {
  3506.             return $this->redirectToRoute('user_login');
  3507.         }
  3508.         $user $this->getUser();
  3509.         $type_user=$user->getType();
  3510.         $allid=explode(","$user->getRolebyadmin());
  3511.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  3512.         if($type_user == "SuperAdmin" || $type_user == "Client Admin"){
  3513.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  3514.                 array('type'=>'Hypervisor'),
  3515.                 array('id'=>'desc'),
  3516.             );
  3517.             foreach($datas as $key => $value){
  3518.                 $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  3519.                     array('id'=>$value->getProvinceId()),
  3520.                 );
  3521.                 if(!empty($province)){
  3522.                     $datas[$key]->province=$province;
  3523.                 }else{
  3524.                     $datas[$key]->province="";
  3525.                 }
  3526.             }
  3527.             $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findBy(
  3528.                 array('code'=>'FR'),
  3529.                 array('name'=>'asc'),
  3530.             );
  3531.             $citys $this->getDoctrine()->getRepository('App\Entity\City')->findBy(array(),
  3532.                 array('name'=>'asc'),
  3533.             );
  3534.             $province $this->getDoctrine()->getRepository('App\Entity\Province')->findBy(
  3535.                 array(),
  3536.                 array('name'=>'asc'),
  3537.             );
  3538.           $page='home/hypervisor.html.twig';
  3539.         }else{
  3540.             $page='security/pagenotfound.html.twig';
  3541.             $datas "";
  3542.             $citys ="";
  3543.             $province ="";
  3544.             $countrys ="";
  3545.         }
  3546.         return $this->render($page
  3547.             array(
  3548.                 'client' => $client,
  3549.                 'datas'=>$datas,
  3550.                 'countrys'=>$countrys,
  3551.                 'citys'=>$citys,
  3552.                 'type_user'=>$type_user,
  3553.                 'roles_client'=>$roles_client,
  3554.                 'implode_pending'=>'',
  3555.                 'implode_assigned'=>'',
  3556.                 'implode_resolved'=>'',  
  3557.                 'province'=>$province,
  3558.             )
  3559.         );
  3560.     }
  3561.     /**
  3562.      * @Route("/create_manage_hypervisor", name="app_create_manage_hypervisor")
  3563.      */
  3564.     public function create_manage_hypervisor(Request $requestUserPasswordEncoderInterface $passwordEncoder, \Swift_Mailer $mailer)
  3565.     {
  3566.         if ($this->getUser()) {
  3567.             $client $this->getUser();
  3568.         } else {
  3569.             return $this->redirectToRoute('user_login');
  3570.         }
  3571.         $user $this->getUser();
  3572.         $user_id=$user->getId();
  3573.             
  3574.         $em $this->getDoctrine()->getManager();
  3575.         if ($request->getMethod() === "POST") {
  3576.             $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findOneBy(
  3577.             array('id'=>$request->request->get('country')),
  3578.             );
  3579.             $citys $this->getDoctrine()->getRepository('App\Entity\City')->findOneBy(
  3580.                 array('id'=>$request->request->get('city')),
  3581.             );
  3582.             $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  3583.                 array('id'=>$request->request->get('province')),
  3584.             );
  3585.             if($request->request->get('table_id') !=""){
  3586.                 $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBySomeField(array('value'=>$request->request->get('table_id')),array('email'=>$request->request->get('email')));
  3587.                 if(empty($result)){  
  3588.                     $ipadress=$request->getClientIp();
  3589.                     $updateRequest $this->getDoctrine()->getRepository('App\Entity\User')
  3590.                     ->find($request->request->get('table_id') );
  3591.                     $updateRequest->setName($request->request->get('name') );
  3592.                     $updateRequest->setEmail($request->request->get('email'));
  3593.                     $updateRequest->setMobile($request->request->get('mobile'));
  3594.                     $updateRequest->setCountry($countrys);
  3595.                     $updateRequest->setCity($citys);
  3596.                     $updateRequest->setProvinceId($request->request->get('province'));
  3597.                     $updateRequest->setAgentgroupId('0');
  3598.                     $updateRequest->setIpaddress($ipadress);
  3599.                     $em $this->getDoctrine()->getManager();
  3600.                     $em->persist($updateRequest);
  3601.                     $em->flush();
  3602.                     if($client->getLang() == 'en'){
  3603.                        $this->addFlash('green''Hypervisor Update successfully..!!'); 
  3604.                     }else{
  3605.                        $this->addFlash('green'"Mise à jour de l'hyperviseur réussie..!!"); 
  3606.                     } 
  3607.                 }else{
  3608.                     if($client->getLang() == 'en'){
  3609.                        $this->addFlash('red''There is already an account with this email');
  3610.                     }else{
  3611.                        $this->addFlash('red''Il existe déjà un compte avec cette adresse e-mail');
  3612.                     }
  3613.                 }
  3614.             }else{
  3615.                 $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('email'=>$request->request->get('email')),array('id'=>'desc'));
  3616.                 if (empty($result)) {
  3617.                     $hyid$this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('type'=>'Hypervisor'),array('id'=>'desc'),);
  3618.                     if(!empty($hyid)){
  3619.                         $idno=explode("HY"$hyid->getUserId());
  3620.                         $n=$idno[1];
  3621.                         $n2 str_pad($n 150STR_PAD_LEFT);
  3622.                     }else{
  3623.                         $n2="00001";
  3624.                     }
  3625.                     $random_password substr(md5(random_bytes(20)),1,25);
  3626.                     $newPassword ='123456';
  3627.                     $userid ='HY'.$n2;
  3628.                     $ipadress=$request->getClientIp();
  3629.                     $addRequest = new User;
  3630.                     $addRequest->setAddedBy($user_id);
  3631.                     $addRequest->setUserId($userid);
  3632.                     $addRequest->setName($request->request->get('name') );
  3633.                     $addRequest->setEmail($request->request->get('email'));
  3634.                     $addRequest->setMobile($request->request->get('mobile'));
  3635.                     $addRequest->setPassword($passwordEncoder->encodePassword(
  3636.                         $addRequest,
  3637.                         $newPassword
  3638.                     ));
  3639.                     $addRequest->setPasswordResetToken($random_password);
  3640.                     $addRequest->setCountry($countrys);
  3641.                     $addRequest->setCity($citys);
  3642.                     $addRequest->setProvinceId($request->request->get('province'));
  3643.                     $addRequest->setStatus('1');
  3644.                     $addRequest->setAgentgroupId('0');
  3645.                     $addRequest->setLang('fr');
  3646.                     $addRequest->setType('Hypervisor');
  3647.                     $addRequest->setRoles(["ROLE_HYPERVISOR"]);
  3648.                     $addRequest->setIpaddress($ipadress);
  3649.                     $em $this->getDoctrine()->getManager();
  3650.                     $em->persist($addRequest);
  3651.                     $em->flush();
  3652.                     $url $this->urlGenerator->generate('reset_password', array('code'=>$random_password), UrlGeneratorInterface::ABSOLUTE_URL);
  3653.                     $sendTo $request->request->get('email');
  3654.                     $sendCc 'santosh.jaiswal.espl@gmail.com';
  3655.                     $mailArray = array(
  3656.                         'email' => 'infos-compte@konsoplus.com',
  3657.                         'emailid' => $request->request->get('email'),
  3658.                         'mobile' => $request->request->get('mobile'),
  3659.                         'name' => $request->request->get('name'),
  3660.                         'city' => $citys->getName(),
  3661.                         'url' => $url,
  3662.                         'password' => $random_password
  3663.                     );
  3664.                     $mail $this->mailer->sendEmailMessage(
  3665.                         'Renouveler votre mot de passe',
  3666.                         "Konso+",
  3667.                         $sendTo,
  3668.                         $sendCc,
  3669.                         null,
  3670.                         'security/welcomemail.html.twig',
  3671.                         $mailArray
  3672.                     );
  3673.                     if($client->getLang() == 'en'){
  3674.                        $this->addFlash('green''Hypervisor added successfully..!!'); 
  3675.                     }else{
  3676.                        $this->addFlash('green''Hyperviseur ajouté avec succès..!!'); 
  3677.                     } 
  3678.                 } else {
  3679.                     if($client->getLang() == 'en'){
  3680.                        $this->addFlash('red''There is already an account with this email');
  3681.                     }else{
  3682.                        $this->addFlash('red''Il existe déjà un compte avec cette adresse e-mail');
  3683.                     }
  3684.                 }
  3685.             }    
  3686.         }
  3687.         
  3688.         return $this->redirectToRoute('app_manage_hypervisor');
  3689.     }
  3690.         
  3691.      /**
  3692.      * @Route("/update-request-status-hypervisor/{id}/{status}", name="update_user_status_hypervisor")
  3693.      */
  3694.      public function update_status_hypervisor(User $request,$status)
  3695.      {
  3696.           if ($this->getUser()) {
  3697.                $client $this->getUser();
  3698.           } else {
  3699.                return $this->redirectToRoute('user_login');
  3700.           }
  3701.           $em $this->getDoctrine()->getManager();
  3702.           $request->setStatus($status);
  3703.           $em->persist($request);
  3704.           $em->flush();
  3705.           if($status == 1){
  3706.                if($client->getLang() == 'en'){
  3707.                   $this->addFlash('green''You have enable the hypervisor'); 
  3708.                }else{
  3709.                   $this->addFlash('green'"Vous avez activé l'hyperviseur"); 
  3710.                } 
  3711.           }else{
  3712.                if($client->getLang() == 'en'){
  3713.                   $this->addFlash('red''You have disable the hypervisor');
  3714.                }else{
  3715.                   $this->addFlash('red'"Vous avez désactivé l'hyperviseur");
  3716.                } 
  3717.           }
  3718.           return $this->redirectToRoute('app_manage_hypervisor');
  3719.      }
  3720.     /**
  3721.      * @Route("/request-hypervisor-delete/{id}", name="app_user_delete_hypervisor")
  3722.      */
  3723.     public function hypervisor_delete(User $request,$id)
  3724.     {
  3725.         $em $this->getDoctrine()->getManager();
  3726.         $request->getId($id);
  3727.         $em->remove($request);
  3728.         $em->flush();
  3729.         $this->addFlash('green','Hypervisor deleted successfully..!!');
  3730.         return $this->redirectToRoute('app_manage_hypervisor');
  3731.     }
  3732.     /**
  3733.      * @Route("/manage_supervisor", name="app_manage_supervisor")
  3734.      */
  3735.     public function manage_supervisor()
  3736.     {
  3737.         if ($this->getUser()) {
  3738.             $client $this->getUser();
  3739.         } else {
  3740.             return $this->redirectToRoute('user_login');
  3741.         }
  3742.         $user $this->getUser();
  3743.         $type_user=$user->getType();
  3744.         $allid=explode(","$user->getRolebyadmin());
  3745.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  3746.         if($type_user=='SuperAdmin'){
  3747.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  3748.                 array('type'=>'Supervisor'),
  3749.                 array('id'=>'desc'),
  3750.             );
  3751.             foreach($datas as $key => $value){
  3752.                 $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  3753.                     array('id'=>$value->getProvinceId()),
  3754.                 );
  3755.                 if(!empty($province)){
  3756.                     $datas[$key]->province=$province;
  3757.                 }else{
  3758.                     $datas[$key]->province="";
  3759.                 }
  3760.             }
  3761.         }elseif($type_user=='Client Admin'){
  3762.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  3763.                 array('type'=>'Supervisor'),
  3764.                 array('id'=>'desc'),
  3765.             );
  3766.             foreach($datas as $key => $value){
  3767.                 $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  3768.                     array('id'=>$value->getProvinceId()),
  3769.                 );
  3770.                 if(!empty($province)){
  3771.                     $datas[$key]->province=$province;
  3772.                 }else{
  3773.                     $datas[$key]->province="";
  3774.                 }
  3775.             }
  3776.         }elseif($type_user=='Hypervisor'){
  3777.             $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  3778.                 array('city_id'=>$user->getCityId(),'type'=>'Supervisor'),
  3779.                 array('id'=>'desc'),
  3780.             );
  3781.             foreach($datas as $key => $value){
  3782.                 $agents $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  3783.                     array('type'=>'Agent','city_id'=>$value->getCityId()),
  3784.                     array('id'=>'desc'),
  3785.                 );
  3786.                 $datas[$key]->agent_detail=$agents;
  3787.             }
  3788.             
  3789.         }else{
  3790.            $datas=""
  3791.         }
  3792.         $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findBy(
  3793.             array('code'=>'FR'),
  3794.             array('name'=>'asc'),
  3795.         );
  3796.         $citys $this->getDoctrine()->getRepository('App\Entity\City')->findBy(array(),
  3797.             array('name'=>'asc'),
  3798.         );
  3799.         $province $this->getDoctrine()->getRepository('App\Entity\Province')->findBy(
  3800.                 array(),
  3801.                 array('name'=>'asc'),
  3802.             );
  3803.         if($type_user=='SuperAdmin'){
  3804.             $page='home/supervisor.html.twig';
  3805.         }elseif($type_user=='Client Admin'){
  3806.             $page='home/supervisor.html.twig';
  3807.         }elseif($type_user=='Hypervisor'){
  3808.             $page='hypervisor/supervisor.html.twig';
  3809.         }else{
  3810.             $page='security/pagenotfound.html.twig';
  3811.         }
  3812.         return $this->render($page
  3813.             array(
  3814.                 // 'form'=>$form->createView(),
  3815.                 'client' => $client,
  3816.                 'datas'=>$datas,
  3817.                 'countrys'=>$countrys,
  3818.                 'citys'=>$citys,
  3819.                 'type_user'=>$type_user,
  3820.                 'roles_client'=>$roles_client,
  3821.                 'implode_pending'=>'',
  3822.                 'implode_assigned'=>'',
  3823.                 'implode_resolved'=>'',  
  3824.                 'province'=>$province,
  3825.             )
  3826.         );
  3827.     }
  3828.     /**
  3829.      * @Route("/create_manage_supervisor", name="app_create_manage_supervisor")
  3830.      */
  3831.     public function create_manage_supervisor(Request $requestUserPasswordEncoderInterface $passwordEncoder, \Swift_Mailer $mailer)
  3832.     {
  3833.         if ($this->getUser()) {
  3834.             $client $this->getUser();
  3835.         } else {
  3836.             return $this->redirectToRoute('user_login');
  3837.         }
  3838.         $user $this->getUser();
  3839.         $user_id=$user->getId();
  3840.         
  3841.         $em $this->getDoctrine()->getManager();
  3842.         if ($request->getMethod() === "POST") {
  3843.             $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findOneBy(
  3844.             array('id'=>$request->request->get('country')),
  3845.             );
  3846.             $citys $this->getDoctrine()->getRepository('App\Entity\City')->findOneBy(
  3847.                 array('id'=>$request->request->get('city')),
  3848.             );
  3849.             $province $this->getDoctrine()->getRepository('App\Entity\Province')->findOneBy(
  3850.                 array('id'=>$request->request->get('province')),
  3851.             );
  3852.             if($request->request->get('table_id') !=""){
  3853.                 $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBySomeField(array('value'=>$request->request->get('table_id')),array('email'=>$request->request->get('email')));
  3854.                 if(empty($result)){  
  3855.                     $ipadress=$request->getClientIp();
  3856.                     $updateRequest $this->getDoctrine()->getRepository('App\Entity\User')
  3857.                     ->find($request->request->get('table_id') );
  3858.                     $updateRequest->setName($request->request->get('name') );
  3859.                     $updateRequest->setEmail($request->request->get('email'));
  3860.                     $updateRequest->setMobile($request->request->get('mobile'));
  3861.                     $updateRequest->setCountry($countrys);
  3862.                     $updateRequest->setCity($citys);
  3863.                     $updateRequest->setProvinceId($request->request->get('province'));
  3864.                     $updateRequest->setAgentgroupId('0');
  3865.                     $updateRequest->setIpaddress($ipadress);
  3866.                     $em $this->getDoctrine()->getManager();
  3867.                     $em->persist($updateRequest);
  3868.                     $em->flush();
  3869.                     if($client->getLang() == 'en'){
  3870.                        $this->addFlash('green''Supervisor update successfully..!!');  
  3871.                     }else{
  3872.                        $this->addFlash('green''Mise à jour du superviseur réussie..!!'); 
  3873.                     } 
  3874.                 }else{
  3875.                     if($client->getLang() == 'en'){
  3876.                        $this->addFlash('red''There is already an account with this email');
  3877.                     }else{
  3878.                        $this->addFlash('red''Il existe déjà un compte avec cette adresse e-mail');
  3879.                     }
  3880.                 }
  3881.             }else{
  3882.                 $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('email'=>$request->request->get('email')),array('id'=>'desc'));
  3883.                 if (empty($result)){
  3884.                     $spid$this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('type'=>'Supervisor'),array('id'=>'desc'),);
  3885.                     if(!empty($spid)){
  3886.                         $idno=explode("SP"$spid->getUserId());
  3887.                         $n=$idno[1];
  3888.                         $n2 str_pad($n 150STR_PAD_LEFT);
  3889.                     }else{
  3890.                         $n2="00001";
  3891.                     }
  3892.                     
  3893.                     $random_password substr(md5(random_bytes(20)),1,25);
  3894.                     $newPassword ='123456';
  3895.                     $userid ='SP'.$n2;
  3896.                     $ipadress=$request->getClientIp();
  3897.                     $addRequest = new User;
  3898.                     $addRequest->setAddedBy($user_id);
  3899.                     $addRequest->setUserId($userid);
  3900.                     $addRequest->setName($request->request->get('name') );
  3901.                     $addRequest->setEmail($request->request->get('email'));
  3902.                     $addRequest->setMobile($request->request->get('mobile'));
  3903.                     $addRequest->setPassword($passwordEncoder->encodePassword(
  3904.                         $addRequest,
  3905.                         $newPassword
  3906.                     ));
  3907.                     $addRequest->setPasswordResetToken($random_password);
  3908.                     $addRequest->setCountry($countrys);
  3909.                     $addRequest->setCity($citys);
  3910.                     $addRequest->setProvinceId($request->request->get('province'));
  3911.                     $addRequest->setStatus('1');
  3912.                     $addRequest->setAgentgroupId('0');
  3913.                     $addRequest->setLang('fr');
  3914.                     $addRequest->setType('Supervisor');
  3915.                     $addRequest->setRoles(["ROLE_SUPERVISOR"]);
  3916.                     $addRequest->setIpaddress($ipadress);
  3917.                     // $addRequest->setCountry($data['role']);
  3918.                     $em $this->getDoctrine()->getManager();
  3919.                     $em->persist($addRequest);
  3920.                     $em->flush();
  3921.                     $url $this->urlGenerator->generate('reset_password', array('code'=>$random_password), UrlGeneratorInterface::ABSOLUTE_URL);
  3922.                     $sendTo $request->request->get('email');
  3923.                     $sendCc 'santosh.jaiswal.espl@gmail.com';
  3924.                     $mailArray = array(
  3925.                         'email' => 'infos-compte@konsoplus.com',
  3926.                         'emailid' => $request->request->get('email'),
  3927.                         'mobile' => $request->request->get('mobile'),
  3928.                         'name' => $request->request->get('name'),
  3929.                         'city' => $citys->getName(),
  3930.                         'url' => $url,
  3931.                         'password' => $random_password
  3932.                     );
  3933.                     $mail $this->mailer->sendEmailMessage(
  3934.                         'Renouveler votre mot de passe',
  3935.                         "Konso+",
  3936.                         $sendTo,
  3937.                         $sendCc,
  3938.                         null,
  3939.                         'security/welcomemail.html.twig',
  3940.                         $mailArray
  3941.                     );
  3942.                     if($client->getLang() == 'en'){
  3943.                        $this->addFlash('green''Supervisor added successfully..!!');  
  3944.                     }else{
  3945.                        $this->addFlash('green''Le superviseur a été ajouté avec succès..!!'); 
  3946.                     } 
  3947.                 }else{
  3948.                     if($client->getLang() == 'en'){
  3949.                        $this->addFlash('red''There is already an account with this email');
  3950.                     }else{
  3951.                        $this->addFlash('red''Il existe déjà un compte avec cette adresse e-mail');
  3952.                     }
  3953.                 }
  3954.             }    
  3955.         }  
  3956.         return $this->redirectToRoute('app_manage_supervisor');
  3957.     }
  3958.         
  3959.      /**
  3960.      * @Route("/update-request-status-supervisor/{id}/{status}", name="update_user_status_supervisor")
  3961.      */
  3962.      public function update_status_supervisor(User $request,$status)
  3963.      {
  3964.           if ($this->getUser()) {
  3965.               $client $this->getUser();
  3966.           } else {
  3967.               return $this->redirectToRoute('user_login');
  3968.           }
  3969.           $em $this->getDoctrine()->getManager();
  3970.           $request->setStatus($status);
  3971.           $em->persist($request);
  3972.           $em->flush();
  3973.           if($status == 1){
  3974.                if($client->getLang() == 'en'){
  3975.                   $this->addFlash('green''You have enable the supervisor');  
  3976.                }else{
  3977.                   $this->addFlash('green''Vous avez activé le superviseur'); 
  3978.                } 
  3979.           }else{
  3980.                if($client->getLang() == 'en'){
  3981.                   $this->addFlash('red''You have disable the supervisor');  
  3982.                }else{
  3983.                   $this->addFlash('red''Vous avez désactivé le superviseur');
  3984.                } 
  3985.           }
  3986.           return $this->redirectToRoute('app_manage_supervisor');
  3987.      }
  3988.     /**
  3989.      * @Route("/request-supervisor-delete/{id}", name="app_user_delete_supervisor")
  3990.      */
  3991.     public function supervisor_delete(User $request,$id)
  3992.     {
  3993.         $em $this->getDoctrine()->getManager();
  3994.         $request->getId($id);
  3995.         $em->remove($request);
  3996.         $em->flush();
  3997.         $this->addFlash('green','Supervisor deleted successfully..!!');
  3998.         return $this->redirectToRoute('app_manage_supervisor');
  3999.     }
  4000.     /**
  4001.      * @Route("/manage_client_admin", name="app_manage_client_admin")
  4002.      */
  4003.     public function manage_client_admin()
  4004.     {
  4005.         if ($this->getUser()) {
  4006.             $client $this->getUser();
  4007.         } else {
  4008.             return $this->redirectToRoute('user_login');
  4009.         }
  4010.         $user $this->getUser();
  4011.         $type_user=$user->getType();
  4012.         $allid=explode(","$user->getRolebyadmin());
  4013.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  4014.         if($type_user == "SuperAdmin"){
  4015.                 $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  4016.                     array('type'=>'Client Admin'),
  4017.                     array('id'=>'desc'),
  4018.                 );
  4019.             if(!empty($datas)){
  4020.                 foreach($datas as $key=>$dataid){
  4021.                     $allid=explode(","$dataid->getRolebyadmin());
  4022.                     $result $this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  4023.                     $datas[$key]->role_detail=$result;
  4024.                 }
  4025.             }else{
  4026.                 $datas $this->getDoctrine()->getRepository('App\Entity\User')->findBy(
  4027.                 array('type'=>'Client Admin'),
  4028.                 array('id'=>'desc'),
  4029.                 );
  4030.             }
  4031.             $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findBy(
  4032.                 array('code'=>'FR'),
  4033.                 array('name'=>'asc'),
  4034.             );
  4035.             $citys $this->getDoctrine()->getRepository('App\Entity\City')->findBy(array(),
  4036.                 array('name'=>'asc'),
  4037.             );
  4038.             $rolebyadmin $this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findBy(
  4039.                 array(),
  4040.                 array('id'=>'asc'),
  4041.             );
  4042.             $page='home/manage_client_admin.html.twig';
  4043.         }else{
  4044.             $page='security/pagenotfound.html.twig';
  4045.             $datas="";
  4046.             $countrys="";
  4047.             $citys="";
  4048.             $rolebyadmin="";
  4049.         }
  4050.         
  4051.         return $this->render($page
  4052.             array(
  4053.                 // 'form'=>$form->createView(),
  4054.                 'client' => $client,
  4055.                 'datas'=>$datas,
  4056.                 'countrys'=>$countrys,
  4057.                 'citys'=>$citys,
  4058.                 'type_user'=>$type_user,
  4059.                 'roles_client'=>$roles_client,
  4060.                 'implode_pending'=>'',
  4061.                 'implode_assigned'=>'',
  4062.                 'implode_resolved'=>'',  
  4063.                 'rolebyadmin'=>$rolebyadmin,
  4064.             )
  4065.         );
  4066.     }
  4067.     /**
  4068.      * @Route("/create_manage_client_admin", name="app_create_manage_client_admin")
  4069.      */
  4070.     public function create_manage_client_admin(Request $requestUserPasswordEncoderInterface $passwordEncoder, \Swift_Mailer $mailer)
  4071.     {
  4072.         if ($this->getUser()) {
  4073.             $client $this->getUser();
  4074.         } else {
  4075.             return $this->redirectToRoute('user_login');
  4076.         }
  4077.         $user $this->getUser();
  4078.         $user_id=$user->getId();
  4079.         
  4080.             
  4081.             $em $this->getDoctrine()->getManager();
  4082.             if ($request->getMethod() === "POST") {
  4083.                 $countrys $this->getDoctrine()->getRepository('App\Entity\Dsccountries')->findOneBy(
  4084.                 array('id'=>$request->request->get('country')),
  4085.                 );
  4086.                 $citys $this->getDoctrine()->getRepository('App\Entity\City')->findOneBy(
  4087.                     array('id'=>$request->request->get('city')),
  4088.                 );
  4089.                 if($request->request->get('table_id') !=""){
  4090.                     $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBySomeField(array('value'=>$request->request->get('table_id')),array('email'=>$request->request->get('email')));
  4091.                     if (empty($result)) {
  4092.                         $ipadress=$request->getClientIp();
  4093.                         $updateRequest $this->getDoctrine()->getRepository('App\Entity\User')
  4094.                         ->find($request->request->get('table_id') );
  4095.                         $updateRequest->setName($request->request->get('name') );
  4096.                         $updateRequest->setEmail($request->request->get('email'));
  4097.                         $updateRequest->setMobile($request->request->get('mobile'));
  4098.                         $updateRequest->setCountry($countrys);
  4099.                         $updateRequest->setCity($citys);
  4100.                         $updateRequest->setProvinceId('0');
  4101.                         $updateRequest->setAgentgroupId('0');
  4102.                         if(!empty($request->request->get('rolebyadmin'))){
  4103.                             $updateRequest->setRolebyadmin(implode(",",$request->request->get('rolebyadmin')));
  4104.                         }else{
  4105.                             $updateRequest->setRolebyadmin($request->request->get('rolebyadmin'));
  4106.                         }
  4107.                         $updateRequest->setIpaddress($ipadress);
  4108.                         $em $this->getDoctrine()->getManager();
  4109.                         $em->persist($updateRequest);
  4110.                         $em->flush();
  4111.                          if($client->getLang() == 'en'){
  4112.                             $this->addFlash('green''Admin/client update successfully..!!');   
  4113.                          }else{
  4114.                             $this->addFlash('green''Mise à jour Admin/client réussie..!!'); 
  4115.                          } 
  4116.                     }else{
  4117.                         if($client->getLang() == 'en'){
  4118.                             $this->addFlash('red''There is already an account with this email');
  4119.                          }else{
  4120.                             $this->addFlash('red''Il existe déjà un compte avec cette adresse e-mail');
  4121.                          }
  4122.                     } 
  4123.                 }else{
  4124.                     $result $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('email'=>$request->request->get('email')),array('id'=>'desc'));
  4125.                     if (empty($result)) {
  4126.                         $caid$this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('type'=>'Client Admin'),array('id'=>'desc'),);
  4127.                         if(!empty($caid)){
  4128.                             $idno=explode("CA"$caid->getUserId());
  4129.                             $n=$idno[1];
  4130.                             $n2 str_pad($n 150STR_PAD_LEFT);
  4131.                         }else{
  4132.                             $n2="00001";
  4133.                         }
  4134.                         $newPassword ='123456';
  4135.                         $random_password substr(md5(random_bytes(20)),1,25);
  4136.                         $userid ='CA'.$n2;
  4137.                         $ipadress=$request->getClientIp();
  4138.                         $addRequest = new User;
  4139.                         $addRequest->setAddedBy($user_id);
  4140.                         $addRequest->setUserId($userid);
  4141.                         $addRequest->setName($request->request->get('name') );
  4142.                         $addRequest->setEmail($request->request->get('email'));
  4143.                         $addRequest->setMobile($request->request->get('mobile'));
  4144.                         $addRequest->setPassword($passwordEncoder->encodePassword(
  4145.                             $addRequest,
  4146.                             $newPassword
  4147.                         ));
  4148.                         $addRequest->setPasswordResetToken($random_password);
  4149.                         $addRequest->setCountry($countrys);
  4150.                         $addRequest->setCity($citys);
  4151.                         $addRequest->setProvinceId('0');
  4152.                         $addRequest->setRolebyadmin(implode(",",$request->request->get('rolebyadmin')));
  4153.                         $addRequest->setStatus('1');
  4154.                         $addRequest->setAgentgroupId('0');
  4155.                         $addRequest->setLang('fr');
  4156.                         $addRequest->setType('Client Admin');
  4157.                         $addRequest->setRoles(["ROLE_CLIENTADMIN"]);
  4158.                         $addRequest->setIpaddress($ipadress);
  4159.                         $em $this->getDoctrine()->getManager();
  4160.                         $em->persist($addRequest);
  4161.                         $em->flush();
  4162.                         $url $this->urlGenerator->generate('reset_password', array('code'=>$random_password), UrlGeneratorInterface::ABSOLUTE_URL);
  4163.                         $sendTo $request->request->get('email');
  4164.                         $sendCc 'santosh.jaiswal.espl@gmail.com';
  4165.                         $mailArray = array(
  4166.                             'email' => 'infos-compte@konsoplus.com',
  4167.                             'emailid' => $request->request->get('email'),
  4168.                             'mobile' => $request->request->get('mobile'),
  4169.                             'name' => $request->request->get('name'),
  4170.                             'city' => $citys->getName(),
  4171.                             'url' => $url,
  4172.                             'password' => $random_password
  4173.                         );
  4174.                         $mail $this->mailer->sendEmailMessage(
  4175.                             'Renouveler votre mot de passe',
  4176.                             "Konso+",
  4177.                             $sendTo,
  4178.                             $sendCc,
  4179.                             null,
  4180.                             'security/welcomemail.html.twig',
  4181.                             $mailArray
  4182.                         );
  4183.                          if($client->getLang() == 'en'){
  4184.                             $this->addFlash('green''Admin/client added successfully..!!');   
  4185.                          }else{
  4186.                             $this->addFlash('green''Admin/client ajouté avec succès..!!');
  4187.                          } 
  4188.                     }else{
  4189.                         if($client->getLang() == 'en'){
  4190.                             $this->addFlash('red''There is already an account with this email');
  4191.                          }else{
  4192.                             $this->addFlash('red''Il existe déjà un compte avec cette adresse e-mail');
  4193.                          }
  4194.                     } 
  4195.                 }    
  4196.             }
  4197.         return $this->redirectToRoute('app_manage_client_admin');
  4198.     }
  4199.      /**
  4200.      * @Route("/update-request-status/{id}/{status}", name="update_user_status")
  4201.      */
  4202.      public function updateRequestuserstatus(User $request,$status)
  4203.      {
  4204.           if ($this->getUser()) {
  4205.               $client $this->getUser();
  4206.           } else {
  4207.               return $this->redirectToRoute('user_login');
  4208.           }
  4209.           $em $this->getDoctrine()->getManager();
  4210.           $request->setStatus($status);
  4211.           $em->persist($request);
  4212.           $em->flush();
  4213.           if($status == 1){
  4214.                if($client->getLang() == 'en'){
  4215.                   $this->addFlash('green''You have enable the admin/client'); 
  4216.                }else{
  4217.                   $this->addFlash('green''Vous avez activé la fonction admin/client');
  4218.                }
  4219.           }else{
  4220.                if($client->getLang() == 'en'){
  4221.                   $this->addFlash('red''You have disable the admin/client'); 
  4222.                }else{
  4223.                   $this->addFlash('red'"Vous avez désactivé l'admin/client");
  4224.                }
  4225.           }
  4226.           return $this->redirectToRoute('app_manage_client_admin');
  4227.      }
  4228.     /**
  4229.      * @Route("/request-user-delete/{id}", name="app_user_delete")
  4230.      */
  4231.     public function user_delete(User $request,$id)
  4232.     {
  4233.         $em $this->getDoctrine()->getManager();
  4234.         $request->getId($id);
  4235.         $em->remove($request);
  4236.         $em->flush();
  4237.         $this->addFlash('green','Admin/client deleted successfully..!!');
  4238.         return $this->redirectToRoute('app_manage_client_admin');
  4239.     }
  4240.      /**
  4241.      * @Route("/send-mail-to-user/{id}/{type}", name="send_mail_to_user")
  4242.      */
  4243.      public function sendmailtouser($id,$type, \Swift_Mailer $mailer)
  4244.      {
  4245.           if ($this->getUser()) {
  4246.               $client $this->getUser();
  4247.           } else {
  4248.               return $this->redirectToRoute('user_login');
  4249.           }
  4250.           $user=$this->getDoctrine()->getManager()->getRepository("App\Entity\User")->findOneBy(['id' => $id]);
  4251.           if(!empty($user)){
  4252.               $random_password substr(md5(random_bytes(20)),1,25);
  4253.               $url $this->urlGenerator->generate('reset_password', array('code'=>$random_password), UrlGeneratorInterface::ABSOLUTE_URL);
  4254.               $citys $this->getDoctrine()->getRepository('App\Entity\City')->findOneBy(
  4255.                 array('id'=>$user->getCityId()),
  4256.               );
  4257.                $user->setPasswordResetToken($random_password);
  4258.                $this->getDoctrine()->getManager()->persist($user);
  4259.                $this->getDoctrine()->getManager()->flush();
  4260.                 $sendTo $user->getEmail();
  4261.                 $sendCc 'santosh.jaiswal.espl@gmail.com';
  4262.                 $mailArray = array(
  4263.                     'email' => 'infos-compte@konsoplus.com',
  4264.                     'emailid' => $user->getEmail(),
  4265.                     'mobile' => $user->getMobile(),
  4266.                     'name' => $user->getName(),
  4267.                     'url' => $url,
  4268.                     'city' => $citys->getName(),
  4269.                     'password' => $random_password
  4270.                 );
  4271.                 $mail $this->mailer->sendEmailMessage(
  4272.                     'Renouveler votre mot de passe',
  4273.                     "Konso+",
  4274.                     $sendTo,
  4275.                     $sendCc,
  4276.                     null,
  4277.                     'security/welcomemail.html.twig',
  4278.                     $mailArray
  4279.                 );
  4280.                if($client->getLang() == 'en'){
  4281.                   $this->addFlash('green''Detail mail send successfully..!!');
  4282.                }else{
  4283.                   $this->addFlash('green''Détail du courrier envoyé avec succès..!!');
  4284.                }   
  4285.           }else{
  4286.                if($client->getLang() == 'en'){
  4287.                   $this->addFlash('red''User not found..!!'); 
  4288.                }else{
  4289.                   $this->addFlash('red''Utilisateur non trouvé..!!'); 
  4290.                }  
  4291.           } 
  4292.           if($type == "1"){
  4293.               return $this->redirectToRoute('app_manage_client_admin');    
  4294.           }elseif($type == "2"){
  4295.               return $this->redirectToRoute('app_manage_oprational_manager'); 
  4296.           }elseif($type == "3"){
  4297.               return $this->redirectToRoute('app_manage_hypervisor'); 
  4298.           }elseif($type == "4"){
  4299.               return $this->redirectToRoute('app_manage_supervisor'); 
  4300.           }elseif($type == "5"){
  4301.               return $this->redirectToRoute('app_manage_financial_manager'); 
  4302.           }elseif($type == "6"){
  4303.               return $this->redirectToRoute('app_manage_agent'); 
  4304.           }else{
  4305.               return $this->redirectToRoute('app_home');    
  4306.           }
  4307.      }
  4308.     /**
  4309.      * @Route("/manage_campaign", name="app_manage_campaign")
  4310.      */
  4311.     public function manage_campaign()
  4312.     {
  4313.         if ($this->getUser()) {
  4314.             $client $this->getUser();
  4315.         } else {
  4316.             return $this->redirectToRoute('user_login');
  4317.         }
  4318.         $user $this->getUser();
  4319.         $type_user=$user->getType();
  4320.         $allid=explode(","$user->getRolebyadmin());
  4321.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  4322.         if($type_user == "SuperAdmin" || $type_user == "Client Admin"){
  4323.             $datas $this->getDoctrine()->getRepository('App\Entity\Campaign')->findBy(
  4324.                 array(),
  4325.                 array('id'=>'desc'),
  4326.             );
  4327.             if(!empty($datas)){
  4328.                 foreach($datas as $key=>$dataid){
  4329.                     $allcatid=explode(","$dataid->getcategoryId());
  4330.                     $result $this->getDoctrine()->getRepository('App\Entity\Products')->findOneBySomeField($allcatid);
  4331.                     $datas[$key]->product_detail=$result;
  4332.                     
  4333.                     $category_id=explode(","$dataid->getcategoryId());
  4334.                     $resultcat $this->getDoctrine()->getRepository('App\Entity\Categorie')->findOneBySomeField($category_id);
  4335.                     $datas[$key]->category_detail=$resultcat;
  4336.                 }
  4337.             }else{
  4338.                 $datas $this->getDoctrine()->getRepository('App\Entity\Campaign')->findBy(
  4339.                     array(),
  4340.                     array('id'=>'desc'),
  4341.                 );
  4342.             }
  4343.             $product $this->getDoctrine()->getRepository('App\Entity\Products')->findBy(array('status'=>'1'));
  4344.             $category $this->getDoctrine()->getRepository(Categorie::class)->findBy(array(),array('id'=>'desc'));
  4345.             $page='home/manage_product_campaigns_list.html.twig';
  4346.         }else{
  4347.             $page='security/pagenotfound.html.twig';
  4348.             $datas "";
  4349.             $categorie ="";
  4350.             $subcategorie ="";
  4351.         }
  4352.         
  4353.         return $this->render($page
  4354.             array(
  4355.                 'client' => $client,
  4356.                 'datas'=>$datas,
  4357.                 'type_user'=>$type_user,
  4358.                 'roles_client'=>$roles_client,
  4359.                 'implode_pending'=>'',
  4360.                 'implode_assigned'=>'',
  4361.                 'implode_resolved'=>'',  
  4362.                 'product'=>$product,
  4363.                 'category'=>$category,
  4364.             )
  4365.         );
  4366.     }
  4367.     
  4368.     /**
  4369.      * @Route("/manage_campaign_details/{id}", name="app_manage_campaign_details")
  4370.      */
  4371.     public function manage_campaign_details($id)
  4372.     {
  4373.         if ($this->getUser()) {
  4374.             $client $this->getUser();
  4375.         } else {
  4376.             return $this->redirectToRoute('user_login');
  4377.         }
  4378.         $user $this->getUser();
  4379.         $type_user=$user->getType();
  4380.         $allid=explode(","$user->getRolebyadmin());
  4381.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  4382.         if($type_user == "SuperAdmin" || $type_user == "Client Admin"){
  4383.             $datas $this->getDoctrine()->getRepository('App\Entity\Campaign')->findBy(
  4384.                 array('id'=>$id),
  4385.                 array('id'=>'desc'),
  4386.             );
  4387.             if(!empty($datas)){
  4388.                 foreach($datas as $key=>$dataid){
  4389.                     $allcatid=explode(","$dataid->getcategoryId());
  4390.                     $result $this->getDoctrine()->getRepository('App\Entity\Products')->findOneBySomeField($allcatid);
  4391.                     $datas[$key]->product_detail=$result;
  4392.                     $category_id=explode(","$dataid->getcategoryId());
  4393.                     $resultcat $this->getDoctrine()->getRepository('App\Entity\Categorie')->findOneBySomeField($category_id);
  4394.                     $datas[$key]->category_detail=$resultcat;
  4395.                 }
  4396.             }else{
  4397.                 $datas $this->getDoctrine()->getRepository('App\Entity\Campaign')->findBy(
  4398.                     array('id'=>$id),
  4399.                     array('id'=>'desc'),
  4400.                 );
  4401.             }
  4402.             $product $this->getDoctrine()->getRepository('App\Entity\Products')->findBy(array('status'=>'1'));
  4403.             $category $this->getDoctrine()->getRepository(Categorie::class)->findBy(array(),array('id'=>'desc'));
  4404.             $page='home/manage_product_campaigns.html.twig';
  4405.         }else{
  4406.             $page='security/pagenotfound.html.twig';
  4407.             $datas "";
  4408.             $category ="";
  4409.             $product ="";
  4410.             $id ="";
  4411.         }
  4412.         return $this->render($page
  4413.             array(
  4414.                 // 'form'=>$form->createView(),
  4415.                 'client' => $client,
  4416.                 'datas'=>$datas,
  4417.                 'type_user'=>$type_user,
  4418.                 'roles_client'=>$roles_client,
  4419.                 'implode_pending'=>'',
  4420.                 'implode_assigned'=>'',
  4421.                 'implode_resolved'=>'',  
  4422.                 'product'=>$product,
  4423.                 'category'=>$category,
  4424.                 'id'=>$id,
  4425.             )
  4426.         );
  4427.     }
  4428.     /**
  4429.      * @Route("/manage_campaign_result/{id}", name="app_manage_campaign_result")
  4430.      */
  4431.     public function manage_campaign_result($id)
  4432.     {
  4433.         if ($this->getUser()) {
  4434.             $client $this->getUser();
  4435.         } else {
  4436.             return $this->redirectToRoute('user_login');
  4437.         }
  4438.         $user $this->getUser();
  4439.         $type_user=$user->getType();
  4440.         $allid=explode(","$user->getRolebyadmin());
  4441.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  4442.         if($type_user == "SuperAdmin" || $type_user == "Client Admin"){
  4443.             $campaign $this->getDoctrine()->getRepository('App\Entity\Campaign')->findOneBy(
  4444.                 array('id'=>$id)
  4445.             );
  4446.             $allcatid=explode(","$campaign->getcategoryId());
  4447.             $datas $this->getDoctrine()->getRepository('App\Entity\Products')->findOneBySomeField($allcatid);
  4448.             if(!empty($datas)){
  4449.                 foreach($datas as $key=>$value){
  4450.                     
  4451.                     $CustomerVotes$this->getDoctrine()->getRepository('App\Entity\CustomerVotes')->findBy(
  4452.                         array('product_id'=>$value->getId(),'campaign_id'=>$id),
  4453.                         array('id'=>'desc'),
  4454.                     );
  4455.                     $vote_count =count($CustomerVotes);
  4456.                     $datas[$key]->vote_counts=$vote_count
  4457.                 }
  4458.             }
  4459.             $page='home/manage_product_campaign_result.html.twig';
  4460.         }else{
  4461.             $page='security/pagenotfound.html.twig';
  4462.             $datas "";
  4463.         }
  4464.         return $this->render($page
  4465.             array(
  4466.                 // 'form'=>$form->createView(),
  4467.                 'client' => $client,
  4468.                 'datas'=>$datas,
  4469.                 'type_user'=>$type_user,
  4470.                 'roles_client'=>$roles_client,
  4471.                 'implode_pending'=>'',
  4472.                 'implode_assigned'=>'',
  4473.                 'implode_resolved'=>'',  
  4474.                 'campaign'=>$campaign,
  4475.                 'id'=>$id,
  4476.             )
  4477.         );
  4478.     }
  4479.     /**
  4480.      * @Route("/create_manage_campaign", name="app_create_manage_campaign")
  4481.      */
  4482.     public function create_manage_campaign(Request $request,string $uploadDirtow,FileUploader $uploader)
  4483.     {
  4484.         if ($this->getUser()) {
  4485.             $client $this->getUser();
  4486.         } else {
  4487.             return $this->redirectToRoute('user_login');
  4488.         }
  4489.         $user $this->getUser();
  4490.         $user_id=$user->getId();
  4491.        
  4492.         $em $this->getDoctrine()->getManager();
  4493.         if ($request->getMethod() === "POST") {
  4494.             if($request->request->get('table_id') !=""){
  4495.                 
  4496.                 $files $request->files->get('image');
  4497.                 if(count($files) <= 6){
  4498.                     if(!empty($files)){
  4499.                         $imgs=array();
  4500.                         $i=1;
  4501.                         foreach ($files as $key => $file) {
  4502.                             // code...
  4503.                             if (!empty($file))
  4504.                             {   
  4505.                                 $filename $file->getClientOriginalName();
  4506.                                 $extensions=$file->getClientOriginalExtension();
  4507.                                 $imagename='images/campaign/product_campaingn_'.$i++.rand(1111,9999).time().'.'.$extensions;
  4508.                                 $imgs[]=$imagename;
  4509.                                 $uploader->upload($uploadDirtow$file$imagename);
  4510.                             }else{
  4511.                                 $filename null;
  4512.                             } 
  4513.                         }
  4514.                         $product_image=implode(","$imgs);
  4515.                     }else{
  4516.                         $product_image=$request->request->get('oldimage');
  4517.                     }
  4518.                     $dates=$request->request->get('dates');
  4519.                     $date=explode ("-"$dates); 
  4520.                     $updateRequest $this->getDoctrine()->getRepository('App\Entity\Campaign')
  4521.                     ->find($request->request->get('table_id') );
  4522.                     $updateRequest->setTitle($request->request->get('title') );
  4523.                     $updateRequest->setGoal($request->request->get('goal'));
  4524.                     $updateRequest->setDetails($request->request->get('details'));
  4525.                     $updateRequest->setDescription($request->request->get('description'));
  4526.                     $updateRequest->setCategoryId(implode(",",$request->request->get('category_id')));
  4527.                     $updateRequest->setStartDate(date"Y-m-d"strtotime($date[0])));
  4528.                     $updateRequest->setEndDate(date"Y-m-d"strtotime($date[1])));
  4529.                     $updateRequest->setImage($product_image);
  4530.                     $updateRequest->setTotalVotes('0');
  4531.                     $updateRequest->setStatus('1');
  4532.                     $em $this->getDoctrine()->getManager();
  4533.                     $em->persist($updateRequest);
  4534.                     $em->flush();
  4535.                     if($client->getLang() == 'en'){
  4536.                        $this->addFlash('green''Product campaign update successfully..!!');
  4537.                     }else{
  4538.                        $this->addFlash('green''Mise à jour réussie de la campagne de produits..!!');
  4539.                     }  
  4540.                 }else{
  4541.                     if($client->getLang() == 'en'){
  4542.                        $this->addFlash('red''You are only allowed to upload a maximum of 6 image..!!');  
  4543.                     }else{
  4544.                        $this->addFlash('red''Vous êtes autorisé à télécharger un maximum de 6 images...!!');  
  4545.                     } 
  4546.                 }
  4547.                 
  4548.             }else{
  4549.                 $files $request->files->get('image');
  4550.                 $imgs=array();
  4551.                 $i=1;
  4552.                 foreach ($files as $key => $file) {
  4553.                     // code...
  4554.                     if (!empty($file))
  4555.                     {   
  4556.                         $filename $file->getClientOriginalName();
  4557.                         $extensions=$file->getClientOriginalExtension();
  4558.                         $imagename='images/campaign/product_campaingn_'.$i++.rand(1111,9999).time().'.'.$extensions;
  4559.                         $imgs[]=$imagename;
  4560.                         $uploader->upload($uploadDirtow$file$imagename);
  4561.                     }else{
  4562.                         $filename null;
  4563.                     } 
  4564.                 }
  4565.                 // dd($imgs);
  4566.                 $product_image=implode(","$imgs);      
  4567.                 $dates=$request->request->get('dates');
  4568.                 $date=explode ("-"$dates); 
  4569.                 $date=explode ("-"$dates); 
  4570.                 if (!empty($date)) {
  4571.                     $d1=$date[0];
  4572.                     $d2=$date[1];
  4573.                 } else {
  4574.                     $d1=date('Y-m-d');
  4575.                     $d2=date('Y-m-d');
  4576.                 }
  4577.                 $addRequest = new Campaign;
  4578.                 $addRequest->setTitle($request->request->get('title') );
  4579.                 $addRequest->setGoal($request->request->get('goal'));
  4580.                 $addRequest->setDetails($request->request->get('details'));
  4581.                 $addRequest->setDescription($request->request->get('description'));
  4582.                 $addRequest->setCategoryId(implode(",",$request->request->get('category_id')));
  4583.                 $addRequest->setStartDate(date"Y-m-d"strtotime($d1)));
  4584.                 $addRequest->setEndDate(date"Y-m-d"strtotime($d2)));
  4585.                 $addRequest->setImage($product_image);
  4586.                 $addRequest->setTotalVotes('0');
  4587.                 $addRequest->setStatus('1');
  4588.                 $em $this->getDoctrine()->getManager();
  4589.                 $em->persist($addRequest);
  4590.                 $em->flush();
  4591.                 if($client->getLang() == 'en'){
  4592.                   $this->addFlash('green''Product campaign added successfully..!!');
  4593.                }else{
  4594.                   $this->addFlash('green''Campagne produit ajoutée avec succès..!!');
  4595.                } 
  4596.             }    
  4597.         }
  4598.         return $this->redirectToRoute('app_manage_campaign');
  4599.     }
  4600.      /**
  4601.      * @Route("/status-campaign/{id}/{status}", name="update_campaign_status")
  4602.      */
  4603.      public function updateRequestcampaignstatus(Campaign $request,$status)
  4604.      {
  4605.           if ($this->getUser()) {
  4606.               $client $this->getUser();
  4607.           } else {
  4608.               return $this->redirectToRoute('user_login');
  4609.           }
  4610.           $em $this->getDoctrine()->getManager();
  4611.           $request->setStatus($status);
  4612.           $em->persist($request);
  4613.           $em->flush();
  4614.           if($status == 1){
  4615.                if($client->getLang() == 'en'){
  4616.                   $this->addFlash('green''You have enable the product campaign');
  4617.                }else{
  4618.                   $this->addFlash('green''Vous avez activé la campagne du produit');
  4619.                } 
  4620.           }else{
  4621.                if($client->getLang() == 'en'){
  4622.                   $this->addFlash('red''You have disable the product campaign');
  4623.                }else{
  4624.                   $this->addFlash('red''Vous avez désactivé la campagne du produit');
  4625.                } 
  4626.           }
  4627.           return $this->redirectToRoute('app_manage_campaign');
  4628.      }
  4629.     /**
  4630.      * @Route("/request-campaign-delete/{id}", name="app_campaign_delete")
  4631.      */
  4632.     public function campaign_delete(Campaign $request,$id)
  4633.     {
  4634.         $em $this->getDoctrine()->getManager();
  4635.         $request->getId($id);
  4636.         $em->remove($request);
  4637.         $em->flush();
  4638.         $this->addFlash('green','Product campaign deleted successfully..!!');
  4639.         return $this->redirectToRoute('app_manage_campaign');
  4640.     }
  4641.     /**
  4642.      * @Route("/fraud-complaint", name="app_manage_fraud_complaint")
  4643.      */
  4644.     public function manage_fraud_complaint()
  4645.     {
  4646.         if ($this->getUser()) {
  4647.             $client $this->getUser();
  4648.         } else {
  4649.             return $this->redirectToRoute('user_login');
  4650.         }
  4651.         $user $this->getUser();
  4652.         $type_user=$user->getType();
  4653.         $allid=explode(","$user->getRolebyadmin());
  4654.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  4655.         if($type_user == "SuperAdmin" || $type_user == "Client Admin"){
  4656.             $datas $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findBy(
  4657.                 array(),
  4658.                 array('id'=>'desc'),
  4659.             );
  4660.             foreach ($datas as $key => $value) {
  4661.                 $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$value->getFine()));
  4662.                 if ($pv) {
  4663.                     $datas[$key]->fines =$pv;
  4664.                 } else {
  4665.                      $datas[$key]->fines ="";
  4666.                 }
  4667.                 $citys $this->getDoctrine()->getRepository('App\Entity\City')->findOneBy(
  4668.                     array('id'=>$value->getCity()),
  4669.                 );
  4670.                 if ($citys) {
  4671.                     $datas[$key]->citys =$citys;
  4672.                 } else {
  4673.                      $datas[$key]->citys ="";
  4674.                 }
  4675.                 $fcp$this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(array('fraud_com_id'=>$value->getId()));
  4676.                 if ($fcp) {
  4677.                     $datas[$key]->fc_product =$fcp;
  4678.                 } else {
  4679.                      $datas[$key]->fc_product ="";
  4680.                 }
  4681.             }
  4682.             $page='home/fraud_complaint.html.twig';
  4683.         }else{
  4684.             $page='security/pagenotfound.html.twig';
  4685.             $datas "";
  4686.         }
  4687.         return $this->render($page
  4688.             array(
  4689.                 // 'form'=>$form->createView(),
  4690.                 'client' => $client,
  4691.                 'datas'=>$datas,
  4692.                 'type_user'=>$type_user,
  4693.                 'roles_client'=>$roles_client,
  4694.                 'implode_pending'=>'',
  4695.                 'implode_assigned'=>'',
  4696.                 'implode_resolved'=>'',  
  4697.             )
  4698.         );
  4699.     }
  4700.      /**
  4701.      * @Route("/team-productivityold/{status}", name="app_team_productivityold")
  4702.      */
  4703.     public function team_productivity_old($status="")
  4704.     {
  4705.         if ($this->getUser()) {
  4706.             $client $this->getUser();
  4707.         } else {
  4708.             return $this->redirectToRoute('user_login');
  4709.         }
  4710.         
  4711.         $user $this->getUser();
  4712.         $type_user=$user->getType();
  4713.         $allid=explode(","$user->getRolebyadmin());
  4714.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  4715.         if($type_user == "Hypervisor" || $type_user == "Supervisor"){
  4716.             if($status == "0"){
  4717.                 $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(
  4718.                     array('city_id'=>$user->getCityId(),'compstatus'=>'Pending'),
  4719.                     array('id'=>'desc'),
  4720.                 );
  4721.                 foreach ($datas as $key => $value) {
  4722.                     $agentname $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$value->getAgentid(),'type'=>'Agent'),
  4723.                     array('id'=>'desc'),);
  4724.                     $datas[$key]->agent_name=$agentname;
  4725.                 }
  4726.                 $status="0";
  4727.             }elseif($status == "1"){
  4728.                 $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(
  4729.                     array('city_id'=>$user->getCityId(),'status'=>'1'),
  4730.                     array('id'=>'desc'),
  4731.                 );
  4732.                 foreach ($datas as $key => $value) {
  4733.                     $agentname $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$value->getAgentid(),'type'=>'Agent'),
  4734.                     array('id'=>'desc'),);
  4735.                     $datas[$key]->agent_name=$agentname;
  4736.                 }
  4737.                 $status="1";
  4738.             }elseif($status == "2"){
  4739.                 $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(
  4740.                     array('city_id'=>$user->getCityId(),'compstatus'=>'Resolved'),
  4741.                     array('id'=>'desc'),
  4742.                 );
  4743.                 foreach ($datas as $key => $value) {
  4744.                     $agentname $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$value->getAgentid(),'type'=>'Agent'),
  4745.                     array('id'=>'desc'),);
  4746.                     $datas[$key]->agent_name=$agentname;
  4747.                 }
  4748.                 $status="2";
  4749.             }else{
  4750.                 $datas $this->getDoctrine()->getRepository('App\Entity\Complaint')->findBy(
  4751.                     array('city_id'=>$user->getCityId()),
  4752.                     array('id'=>'desc'),
  4753.                 );
  4754.                 foreach ($datas as $key => $value) {
  4755.                     $agentname $this->getDoctrine()->getRepository('App\Entity\User')->findOneBy(array('id'=>$value->getAgentid(),'type'=>'Agent'),
  4756.                     array('id'=>'desc'),);
  4757.                     $datas[$key]->agent_name=$agentname;
  4758.                 }
  4759.                 $status="";
  4760.             }
  4761.             
  4762.             $page='hypervisor/team_productivity.html.twig';
  4763.         }else{
  4764.             $page='security/pagenotfound.html.twig';
  4765.             $datas "";
  4766.             $status="";
  4767.         }
  4768.         return $this->render($page
  4769.             array(
  4770.                 'client' => $client,
  4771.                 'datas'=>$datas,
  4772.                 'type_user'=>$type_user,
  4773.                 'roles_client'=>$roles_client,
  4774.                 'implode_pending'=>'',
  4775.                 'implode_assigned'=>'',
  4776.                 'implode_resolved'=>'',  
  4777.                 'status'=>$status,
  4778.             )
  4779.         );
  4780.     }
  4781.      /**
  4782.      * @Route("/team-productivity", name="app_team_productivity")
  4783.      */
  4784.     public function team_productivity()
  4785.     {
  4786.         if ($this->getUser()) {
  4787.             $client $this->getUser();
  4788.         } else {
  4789.             return $this->redirectToRoute('user_login');
  4790.         }
  4791.         
  4792.         $user $this->getUser();
  4793.         $type_user=$user->getType();
  4794.         $allid=explode(","$user->getRolebyadmin());
  4795.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  4796.         if($type_user == "Hypervisor" || $type_user == "Supervisor"){
  4797.                 /*January start*/
  4798.                 $Pending_jan $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4799.                     "0",$user->getCityId(),"1",date('Y')
  4800.                 );
  4801.                 $Pending_jan_count=count($Pending_jan);
  4802.                 $assigned_jan $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4803.                      "1",$user->getCityId(),"1",date('Y')
  4804.                 );
  4805.                 $assigned_jan_count=count($assigned_jan); 
  4806.                 $Resolved_jan $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4807.                      "2",$user->getCityId(),"1",date('Y')
  4808.                 );
  4809.                 $Resolved_jan_count=count($Resolved_jan); 
  4810.                 /*January end*/
  4811.                 /*February start*/
  4812.                 $Pending_feb $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4813.                     "0",$user->getCityId(),"2",date('Y')
  4814.                 );
  4815.                 $Pending_feb_count=count($Pending_feb);
  4816.                 $assigned_feb $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4817.                      "1",$user->getCityId(),"2",date('Y')
  4818.                 );
  4819.                 $assigned_feb_count=count($assigned_feb); 
  4820.                 $Resolved_feb $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4821.                      "2",$user->getCityId(),"2",date('Y')
  4822.                 );
  4823.                 $Resolved_feb_count=count($Resolved_feb);
  4824.                 /*February end*/
  4825.                 /*March start*/
  4826.                 $Pending_march $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4827.                     "0",$user->getCityId(),"3",date('Y')
  4828.                 );
  4829.                 $Pending_march_count=count($Pending_march);
  4830.                 $assigned_march $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4831.                      "1",$user->getCityId(),"3",date('Y')
  4832.                 );
  4833.                 $assigned_march_count=count($assigned_march); 
  4834.                 $Resolved_march $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4835.                      "2",$user->getCityId(),"3",date('Y')
  4836.                 );
  4837.                 $Resolved_march_count=count($Resolved_march);
  4838.                 /*March end*/
  4839.                 /*April start*/
  4840.                 $Pending_april $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4841.                     "0",$user->getCityId(),"4",date('Y')
  4842.                 );
  4843.                 $Pending_april_count=count($Pending_april);
  4844.                 $assigned_april $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4845.                      "1",$user->getCityId(),"4",date('Y')
  4846.                 );
  4847.                 $assigned_april_count=count($assigned_april); 
  4848.                 $Resolved_april $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4849.                      "2",$user->getCityId(),"4",date('Y')
  4850.                 );
  4851.                 $Resolved_april_count=count($Resolved_april);
  4852.                 /*April end*/
  4853.                 /*May start*/
  4854.                 $Pending_may $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4855.                     "0",$user->getCityId(),"5",date('Y')
  4856.                 );
  4857.                 $Pending_may_count=count($Pending_may);
  4858.                 $assigned_may $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4859.                      "1",$user->getCityId(),"5",date('Y')
  4860.                 );
  4861.                 $assigned_may_count=count($assigned_may); 
  4862.                 $Resolved_may $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4863.                      "2",$user->getCityId(),"5",date('Y')
  4864.                 );
  4865.                 $Resolved_may_count=count($Resolved_may);
  4866.                 /*May end*/
  4867.                 /*June start*/
  4868.                 $Pending_june $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4869.                     "0",$user->getCityId(),"6",date('Y')
  4870.                 );
  4871.                 $Pending_june_count=count($Pending_june);
  4872.                 $assigned_june $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4873.                      "1",$user->getCityId(),"6",date('Y')
  4874.                 );
  4875.                 $assigned_june_count=count($assigned_june); 
  4876.                 $Resolved_june $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4877.                      "2",$user->getCityId(),"6",date('Y')
  4878.                 );
  4879.                 $Resolved_june_count=count($Resolved_june);
  4880.                 /*June end*/
  4881.                 /*July start*/
  4882.                 $Pending_july $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4883.                     "0",$user->getCityId(),"7",date('Y')
  4884.                 );
  4885.                 $Pending_july_count=count($Pending_july);
  4886.                 $assigned_july $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4887.                      "1",$user->getCityId(),"7",date('Y')
  4888.                 );
  4889.                 $assigned_july_count=count($assigned_july); 
  4890.                 $Resolved_july $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4891.                      "2",$user->getCityId(),"7",date('Y')
  4892.                 );
  4893.                 $Resolved_july_count=count($Resolved_july);
  4894.                 /*July end*/
  4895.                 /*August start*/
  4896.                 $Pending_aug $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4897.                     "0",$user->getCityId(),"8",date('Y')
  4898.                 );
  4899.                 $Pending_aug_count=count($Pending_aug);
  4900.                 $assigned_aug $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4901.                      "1",$user->getCityId(),"8",date('Y')
  4902.                 );
  4903.                 $assigned_aug_count=count($assigned_aug); 
  4904.                 $Resolved_aug $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4905.                      "2",$user->getCityId(),"8",date('Y')
  4906.                 );
  4907.                 $Resolved_aug_count=count($Resolved_aug);
  4908.                 /*August end*/
  4909.                 /*September start*/
  4910.                 $Pending_sep $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4911.                     "0",$user->getCityId(),"9",date('Y')
  4912.                 );
  4913.                 $Pending_sep_count=count($Pending_sep);
  4914.                 $assigned_sep $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4915.                      "1",$user->getCityId(),"9",date('Y')
  4916.                 );
  4917.                 $assigned_sep_count=count($assigned_sep); 
  4918.                 $Resolved_sep $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4919.                      "2",$user->getCityId(),"9",date('Y')
  4920.                 );
  4921.                 $Resolved_sep_count=count($Resolved_sep);
  4922.                 /*September end*/
  4923.                 /*October start*/
  4924.                 $Pending_oct $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4925.                     "0",$user->getCityId(),"10",date('Y')
  4926.                 );
  4927.                 $Pending_oct_count=count($Pending_oct);
  4928.                 $assigned_oct $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4929.                      "1",$user->getCityId(),"10",date('Y')
  4930.                 );
  4931.                 $assigned_oct_count=count($assigned_oct); 
  4932.                 $Resolved_oct $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4933.                      "2",$user->getCityId(),"10",date('Y')
  4934.                 );
  4935.                 $Resolved_oct_count=count($Resolved_oct);
  4936.                 /*October end*/
  4937.                 /*November start*/
  4938.                 $Pending_nov $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4939.                     "0",$user->getCityId(),"11",date('Y')
  4940.                 );
  4941.                 $Pending_nov_count=count($Pending_nov);
  4942.                 $assigned_nov $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4943.                      "1",$user->getCityId(),"11",date('Y')
  4944.                 );
  4945.                 $assigned_nov_count=count($assigned_nov); 
  4946.                 $Resolved_nov $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4947.                      "2",$user->getCityId(),"11",date('Y')
  4948.                 );
  4949.                 $Resolved_nov_count=count($Resolved_nov);
  4950.                 /*November end*/
  4951.                 /*December start*/
  4952.                 $Pending_dec $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4953.                     "0",$user->getCityId(),"12",date('Y')
  4954.                 );
  4955.                 $Pending_dec_count=count($Pending_dec);
  4956.                 $assigned_dec $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4957.                      "1",$user->getCityId(),"12",date('Y')
  4958.                 );
  4959.                 $assigned_dec_count=count($assigned_dec); 
  4960.                 $Resolved_dec $this->getDoctrine()->getRepository('App\Entity\Complaint')->findByMonthYear(
  4961.                      "2",$user->getCityId(),"12",date('Y')
  4962.                 );
  4963.                 $Resolved_dec_count=count($Resolved_dec);
  4964.                 /*December end*/
  4965.                 $all_pending=[$Pending_jan_count,$Pending_feb_count,$Pending_march_count,$Pending_april_count,$Pending_may_count,$Pending_june_count,$Pending_july_count,$Pending_aug_count,$Pending_sep_count,$Pending_oct_count,$Pending_nov_count,$Pending_dec_count];
  4966.                 $implode_pending=implode(','$all_pending);
  4967.                 $all_assigned=[$assigned_jan_count,$assigned_feb_count,$assigned_march_count,$assigned_april_count,$assigned_may_count,$assigned_june_count,$assigned_july_count,$assigned_aug_count,$assigned_sep_count,$assigned_oct_count,$assigned_nov_count,$assigned_dec_count];
  4968.                 $implode_assigned=implode(','$all_assigned);
  4969.                 $all_resolved=[$Resolved_jan_count,$Resolved_feb_count,$Resolved_march_count,$Resolved_april_count,$Resolved_may_count,$Resolved_june_count,$Resolved_july_count,$Resolved_aug_count,$Resolved_sep_count,$Resolved_oct_count,$Resolved_nov_count,$Resolved_dec_count];
  4970.                 $implode_resolved=implode(','$all_resolved);
  4971.             
  4972.             $page='hypervisor/team_productivity.html.twig';
  4973.         }else{
  4974.             $page='security/pagenotfound.html.twig';
  4975.         }
  4976.         return $this->render($page
  4977.             array(
  4978.                 'client' => $client,
  4979.                 'type_user'=>$type_user,
  4980.                 'roles_client'=>$roles_client,
  4981.                 'implode_pending'=>$implode_pending,
  4982.                 'implode_assigned'=>$implode_assigned,
  4983.                 'implode_resolved'=>$implode_resolved,
  4984.             )
  4985.         );
  4986.     }
  4987.     /**
  4988.      * @Route("/purchase-voucher", name="app_manage_purchase_voucher")
  4989.      */
  4990.     public function manage_purchase_voucher()
  4991.     {
  4992.         if ($this->getUser()) {
  4993.             $client $this->getUser();
  4994.         } else {
  4995.             return $this->redirectToRoute('user_login');
  4996.         }
  4997.         $user $this->getUser();
  4998.         $type_user=$user->getType();
  4999.         $allid=explode(","$user->getRolebyadmin());
  5000.         $roles_client=$this->getDoctrine()->getRepository('App\Entity\Rolebyadmin')->findOneBySomeField($allid);
  5001.         if($type_user == "Financial Manager"){
  5002.             $page='financial/purchase_voucher.html.twig';
  5003.             $datas $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findBy(
  5004.                 array('city'=>$user->getCityId()),
  5005.                 array('id'=>'desc'),
  5006.             );
  5007.             foreach ($datas as $key => $value) {
  5008.                 $fines $this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$value->getFine()));
  5009.                 if(!empty($fines)){
  5010.                     $datas[$key]->fines=$fines;
  5011.                 }else{
  5012.                     $datas[$key]->fines="";
  5013.                 }
  5014.                 
  5015.                 $citys $this->getDoctrine()->getRepository('App\Entity\City')->findOneBy(
  5016.                     array('id'=>$value->getCity()),
  5017.                 );  
  5018.                 if(!empty($fines)){
  5019.                     $datas[$key]->citys=$citys;
  5020.                 }else{
  5021.                     $datas[$key]->citys="";
  5022.                 }
  5023.                 
  5024.                 $fc_product $this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(
  5025.                     array('fraud_com_id'=>$value->getId()),
  5026.                 );
  5027.                 if(!empty($fines)){
  5028.                     $datas[$key]->fc_product=$fc_product;
  5029.                 }else{
  5030.                     $datas[$key]->fc_product="";
  5031.                 }     
  5032.             }   
  5033.         }elseif($type_user == "Hypervisor"){
  5034.             $page='hypervisor/purchase_voucher.html.twig';
  5035.             $datas $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findBy(
  5036.                 array('city'=>$user->getCityId()),
  5037.                 array('id'=>'desc'),
  5038.             );
  5039.             foreach ($datas as $key => $value) {
  5040.                 $fines $this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$value->getFine()));
  5041.                 if(!empty($fines)){
  5042.                     $datas[$key]->fines=$fines;
  5043.                 }else{
  5044.                     $datas[$key]->fines="";
  5045.                 }
  5046.                 
  5047.                 $citys $this->getDoctrine()->getRepository('App\Entity\City')->findOneBy(
  5048.                     array('id'=>$value->getCity()),
  5049.                 );  
  5050.                 if(!empty($fines)){
  5051.                     $datas[$key]->citys=$citys;
  5052.                 }else{
  5053.                     $datas[$key]->citys="";
  5054.                 }
  5055.                 
  5056.                 $fc_product $this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(
  5057.                     array('fraud_com_id'=>$value->getId()),
  5058.                 );
  5059.                 if(!empty($fines)){
  5060.                     $datas[$key]->fc_product=$fc_product;
  5061.                 }else{
  5062.                     $datas[$key]->fc_product="";
  5063.                 }     
  5064.             }   
  5065.         }elseif($type_user == "Supervisor"){
  5066.             $page='supervisor/purchase_voucher.html.twig';
  5067.             $datas $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->findBy(
  5068.                 array('city'=>$user->getCityId()),
  5069.                 array('id'=>'desc'),
  5070.             );
  5071.             foreach ($datas as $key => $value) {
  5072.                 $fines $this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$value->getFine()));
  5073.                 if(!empty($fines)){
  5074.                     $datas[$key]->fines=$fines;
  5075.                 }else{
  5076.                     $datas[$key]->fines="";
  5077.                 }
  5078.                 
  5079.                 $citys $this->getDoctrine()->getRepository('App\Entity\City')->findOneBy(
  5080.                     array('id'=>$value->getCity()),
  5081.                 );  
  5082.                 if(!empty($fines)){
  5083.                     $datas[$key]->citys=$citys;
  5084.                 }else{
  5085.                     $datas[$key]->citys="";
  5086.                 }
  5087.                 
  5088.                 $fc_product $this->getDoctrine()->getRepository('App\Entity\FraudComplaintProducts')->findBy(
  5089.                     array('fraud_com_id'=>$value->getId()),
  5090.                 );
  5091.                 if(!empty($fines)){
  5092.                     $datas[$key]->fc_product=$fc_product;
  5093.                 }else{
  5094.                     $datas[$key]->fc_product="";
  5095.                 }     
  5096.             }   
  5097.         }else{
  5098.             $page='security/pagenotfound.html.twig';
  5099.             $datas="";
  5100.         }
  5101.         
  5102.         return $this->render($page
  5103.             array(
  5104.                 // 'form'=>$form->createView(),
  5105.                 'client' => $client,
  5106.                 'datas'=>$datas,
  5107.                 'type_user'=>$type_user,
  5108.                 'roles_client'=>$roles_client,
  5109.                 'implode_pending'=>'',
  5110.                 'implode_assigned'=>'',
  5111.                 'implode_resolved'=>'',  
  5112.             )
  5113.         );
  5114.     }
  5115.      /**
  5116.      * @Route("/update-paid-unpaid-status/{id}/{status}", name="update_paid_unpaid")
  5117.      */
  5118.      public function update_paid_unpaid($id,$status, \Swift_Mailer $mailer)
  5119.      {
  5120.           if ($this->getUser()) {
  5121.               $client $this->getUser();
  5122.           } else {
  5123.               return $this->redirectToRoute('user_login');
  5124.           }
  5125.           $em $this->getDoctrine()->getManager();
  5126.           $updateRequest $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->find($id);
  5127.           $updateRequest->setStatus($status);
  5128.           $updateRequest->setFinePaidDate(date"Y-m-d"strtotime(date('Y-m-d'))));
  5129.           $em->persist($updateRequest);
  5130.           $em->flush();
  5131.        
  5132.           if($status == 1){
  5133.                if($client->getLang() == 'en'){
  5134.                   $this->addFlash('green''You have change to paid status of this purchase voucher');
  5135.                }else{
  5136.                   $this->addFlash('green'"Vous avez changé le statut de ce bon d'achat en statut payé.");
  5137.                }
  5138.           }else{
  5139.                if($client->getLang() == 'en'){
  5140.                   $this->addFlash('red''You have change to unpaid status of this purchase voucher');
  5141.                }else{
  5142.                   $this->addFlash('red'"Vous avez changé le statut de ce bon d'achat en statut non payé.");
  5143.                }
  5144.                
  5145.                $fraudcomplaint $this->getDoctrine()->getRepository('App\Entity\FraudComplaint')->find($id);
  5146.                $pv$this->getDoctrine()->getRepository('App\Entity\PvDetails')->findOneBy(array('id'=>$fraudcomplaint->getFine()));
  5147.                if ($pv) {
  5148.                 $fines =$pv->getAmount();
  5149.                } else {
  5150.                  $fines ="0";
  5151.                }
  5152.                 $sendTo $fraudcomplaint->getEmail();
  5153.                 $sendCc 'santosh.jaiswal.espl@gmail.com';
  5154.                 $mailArray = array(
  5155.                     'email' => 'infos-compte@konsoplus.com',
  5156.                     'name' => $fraudcomplaint->getShopkeeperName(),
  5157.                     'receipt_no' => $fraudcomplaint->getReceiptNo(),
  5158.                     'amount' => $fines,
  5159.                     'date' => $fraudcomplaint->getFcdate()
  5160.                 );
  5161.             if ($sendTo != "") {
  5162.                 $mail $this->mailer->sendEmailMessage(
  5163.                     'Renouveler votre mot de passe',
  5164.                     "Konso+",
  5165.                     $sendTo,
  5166.                     $sendCc,
  5167.                     null,
  5168.                     'security/payment_remind.html.twig',
  5169.                     $mailArray
  5170.                 );
  5171.             }
  5172.           }
  5173.           return $this->redirectToRoute('app_manage_purchase_voucher');
  5174.      }
  5175.      /**
  5176.      * @Route("/request-city/", name="app_get_city")
  5177.      */
  5178.      public function get_citys(Request $request)
  5179.      {
  5180.           if($request->request->get('province'))
  5181.           {
  5182.             $result $this->getDoctrine()->getRepository('App\Entity\City')->findBy(array('province_id'=>$request->request->get('province')),array('name'=>'asc'));
  5183.           }
  5184.           return $this->json($result);
  5185.      }
  5186.     /**
  5187.      * @Route("/request-category-list/", name="app_get_dropdown_category")
  5188.      */
  5189.     public function get_dropdown_category()
  5190.     {
  5191.         $result $this->getDoctrine()->getRepository('App\Entity\Categorie')->findAll(array(),array('id'=>'desc'));
  5192.         return $this->json($result);
  5193.     }
  5194.     /**
  5195.      * @Route("/request-subcategory/", name="app_get_subcategory")
  5196.      */
  5197.     public function get_subcategory(Request $request)
  5198.     {
  5199.         if($request->request->get('category'))
  5200.         {
  5201.             $result $this->getDoctrine()->getRepository('App\Entity\Subcategorie')->findBy(array('category_id'=>$request->request->get('category'),'status' => true),array('id'=>'desc'));
  5202.         }
  5203.         return $this->json($result);
  5204.     }
  5205.     /**
  5206.      * @Route("/request-validate-email/", name="app_validate_email")
  5207.      */
  5208.     public function validate_email(Request $request)
  5209.     {
  5210.         if($request->request->get('email'))
  5211.         {
  5212.             $result $this->getDoctrine()->getRepository('App\Entity\User')->findBy(array('email'=>$request->request->get('email')),array('id'=>'desc'));
  5213.         }
  5214.         return $this->json($result);
  5215.     }
  5216.     /**
  5217.      * @Route("/request-agentgroup/", name="app_get_agentgroup")
  5218.      */
  5219.     public function get_agentgroup(Request $request)
  5220.     {
  5221.         if($request->request->get('city'))
  5222.         {
  5223.             $result $this->getDoctrine()->getRepository('App\Entity\AgentGroup')->findBy(array('city_id'=>$request->request->get('city'),'status' => true),array('id'=>'desc'));
  5224.         }
  5225.         return $this->json($result);
  5226.     }
  5227.     /**
  5228.      * @Route("/request-get-products/", name="app_get_products")
  5229.      */
  5230.     public function get_products(Request $request)
  5231.     {
  5232.         if($request->request->get('category'))
  5233.         {
  5234.             $result $this->getDoctrine()->getRepository('App\Entity\Products')->findBy(array('category_id'=>$request->request->get('category')));
  5235.         }
  5236.         return $this->json($result);
  5237.     }
  5238. }