src/Service/Ajax.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use Knp\Component\Pager\PaginatorInterface;
  4. use App\Entity\Process;
  5. use App\Entity\User;
  6. class Ajax
  7. {
  8.     private $em;
  9.     private $router;
  10.     private $kernel;
  11.     private $tokenStorage;
  12.     private $userPermissionService;
  13.     public function __construct($em$router$kernel$tokenStorage$userPermissionServicePaginatorInterface $paginator)
  14.     {
  15.         $this->em $em;
  16.         $this->router $router;
  17.         $this->kernel $kernel;
  18.         $this->paginator $paginator;
  19.         $this->tokenStorage $tokenStorage;
  20.         $this->userPermissionService $userPermissionService;
  21.     }
  22.     function call($request)
  23.     {
  24.         $ROUTE $request->get("_route");
  25.         $retval = array();
  26.         if(!empty($request->get("todoForProcesses")))
  27.         {
  28.             $process $this->em->getRepository(\App\Entity\Process::class)->findOneBy(["id" => $request->get("todoForProcesses")]);
  29.             $todo $this->em->getRepository(\App\Entity\Todo::class)->findBy(['processes' => $process->getProcesses()]);
  30.             foreach($todo as $to)
  31.             {
  32.                 array_push($retval, array(
  33.                     'id' => $to->getId(),
  34.                     'name' => $to->getName()
  35.                 ));
  36.             }
  37.         }
  38.         if(!empty($request->get('suppliersForCustomer')))
  39.         {
  40.             $customer intval($request->get('suppliersForCustomer'));
  41.             $csr $this->em->getRepository(\App\Entity\CustomerSupplierRelation::class)->findBy(["customer" => $customer]);
  42.             foreach ($csr as $relation) {
  43.                 if ($relation->getSupplier()->getActive() == 1)
  44.                 {
  45.                     array_push($retval, array(
  46.                         'id' => $relation->getSupplier()->getId(),
  47.                         'name' => $relation->getSupplier()->getCompanyName()
  48.                     ));
  49.                 }
  50.             }
  51.         }
  52.         if(!empty($request->get("cpsCustomer")))
  53.         {
  54.             $customerId $request->get("cpsCustomer");
  55.             if($customerId)
  56.             {
  57.                 $customer $this->em->getRepository(\App\Entity\Customer::class)->findOneBy(['id' => $customerId]);
  58.                 if($customer)
  59.                 {
  60.                     $contactPersons $customer->getUsers();
  61.                     foreach($contactPersons as $user)
  62.                     {
  63.                         array_push($retval, array(
  64.                             'id' => $user->getId(),
  65.                             'name' => $user->getNameAndFunction()
  66.                         ));
  67.                     }
  68.                 }
  69.             }
  70.         }
  71.         if(!empty($request->get("cpsSupplier")) && !empty($request->get("customer")))
  72.         {
  73.             $supplierId $request->get("cpsSupplier");
  74.             $customerId $request->get("customer");
  75.             if($supplierId && $customerId)
  76.             {
  77.                 $supplier $this->em->getRepository(\App\Entity\Supplier::class)->findOneBy(['id' => $supplierId]);
  78.                 $customer $this->em->getRepository(\App\Entity\Customer::class)->findOneBy(['id' => $customerId]);
  79.                 if($supplier && $customer)
  80.                 {
  81.                     if ($supplier != null && $customer != null)
  82.                     {
  83.                         $csr $this->em->getRepository(\App\Entity\CustomerSupplierRelation::class)->findOneBy(['supplier' => $supplier'customer' => $customer]);
  84.                         if ($csr != null)
  85.                         {
  86.                             foreach ($csr->getUsers()->getvalues() as $user)
  87.                             {
  88.                                 if ($user->getSupplier() != null)
  89.                                 {
  90.                                     array_push($retval, [
  91.                                         'id' => $user->getId(),
  92.                                         'name' => $user->getNameAndFunction()
  93.                                     ]);
  94.                                 }
  95.                             }
  96.                         }
  97.                     }
  98.                 }
  99.             }
  100.             //      if ($supplier != null)
  101.             //      {
  102.             //          $contactPersons = $this->em->getRepository(\App\Entity\User::class)->FindBy(['supplier' => $supplier, 'active' => 1]);
  103.             //          foreach($contactPersons as $user)
  104.             //          {
  105.             //              array_push($retval, array(
  106.             //                  'id' => $user->getId(),
  107.             //                  'name' => $user->getNameAndFunction()
  108.             //              ));
  109.             //          }
  110.             //      }
  111.         }
  112.         if($ROUTE == "reportperiod_new" || $ROUTE == 'reportperiod_edit')
  113.         {
  114.             if (!empty($request->get("currency")) && !empty($request->get('exchangeIn')) && !empty( $date $request->get('date')))
  115.             {
  116.                 $currencyFrom $request->get("currency");
  117.                 $exchangeIn $request->get('exchangeIn');
  118.                 $date json_decode($request->get('date'), true);
  119.                 if (strtolower($currencyFrom) == "eur") {
  120.                     foreach ($date as $item)
  121.                     {
  122.                         $exchangeRate =  floatval($this->em->getRepository(\App\Entity\ExchangeRates::class)->getExchangeRate(strtolower($exchangeIn), $item)[strtolower($exchangeIn)]);
  123.                         array_push($retval1/$exchangeRate);
  124.                     }
  125.                 } elseif ($exchangeIn == "eur") {
  126.                     foreach ($date as $item)
  127.                     {
  128.                         array_push($retval,  floatval($this->em->getRepository(\App\Entity\ExchangeRates::class)->getExchangeRate(strtolower($currencyFrom), $item)[strtolower($currencyFrom)]));
  129.                     }
  130.                 } else {
  131.                     foreach ($date as $item)
  132.                     {
  133.                         $rate1 $this->em->getRepository(\App\Entity\ExchangeRates::class)->getExchangeRate(strtolower($currencyFrom), $item)[strtolower($currencyFrom)];
  134.                         $rate2 $this->em->getRepository(\App\Entity\ExchangeRates::class)->getExchangeRate2(strtolower($exchangeIn), $item)[strtolower($exchangeIn)];
  135.                         array_push($retval$rate1/floatval($rate2));
  136.                     }
  137.                 }
  138.             }
  139.         }
  140.         elseif ($ROUTE == "todos_new" || $ROUTE == "todos_edit") {
  141.             if ($request->get('loadBackTemplateData') == 1)
  142.             {
  143.                 if(!empty($request->get("todoId")) && !empty($request->get("procId") && !empty($request->get('retry'))))
  144.                 {
  145.                     $todoId intval($request->get("todoId"));
  146.                     $retry intval($request->get('retry'));
  147.                     $processId intval($request->get('procId'));
  148.                     $template $this->em->getRepository(\App\Entity\MailTemplates::class)->findOneBy(['todo' => $todoId'try' => $retry]);
  149.                     $process $this->em->getRepository(\App\Entity\Process::class)->findOneBy(['id' => $processId]);
  150.                     if ($template != null)
  151.                     {
  152.                         if ($template->getTodo()->getResponsibility() == 1)
  153.                         {
  154.                             $contactPerson $process->getContactPersonCustomer();
  155.                             $mail $contactPerson->getEmail();
  156.                             $name $contactPerson->getNameAndFunction();
  157.                             $emailName $mail " - [ " $name " ]";
  158.                         } elseif ($template->getToDo()->getResponsibility() == 2) {
  159.                             $contactPerson $process->getContactPersonSupplier();
  160.                             $mail $contactPerson->getEmail();
  161.                             $name $contactPerson->getNameAndFunction();
  162.                             $emailName $mail " - [ " $name " ]";
  163.                         }
  164.                         else {
  165.                             $contactPerson $this->em->getRepository(\App\Entity\User::class)->findOneBy(['email' => 'scorebox@fra-services.de']);
  166.                             $mail $contactPerson->getEmail();
  167.                             $name $contactPerson->getNameAndFunction();
  168.                             $emailName $mail " - [ " $name " ]";
  169.                         }
  170.                         $contactPersonActive in_array($contactPerson->getUserStatus()->getId(), [25]) ? : -1;
  171.                         if ($contactPersonActive == -1) {
  172.                             $emailName $emailName ' - [!' 'INAKTIV' '!]';
  173.                         }
  174.                         $retval = array (
  175.                             'subject' => $template->getSubject(),
  176.                             'body' => $template->getBody(),
  177.                             'responsibility' => $emailName,
  178.                             'userId' => $this->router->generate('activate_user', ['id' => $contactPerson->getId()]),
  179.                             'userActive' => $contactPersonActive
  180.                         );
  181.                     }
  182.                 } else {
  183.                     $retval = array (
  184.                         'subject' => "",
  185.                         'body' => "",
  186.                         'responsibility' => "",
  187.                         'userId' => 0,
  188.                         'userActive' => 0
  189.                     );
  190.                 }
  191.             }
  192.             if(!empty($request->get("processToTodo")))
  193.             {
  194.                 $processesId $request->get("processToTodo");
  195.                 $todos $this->em->getRepository(\App\Entity\Todo::class)->findBy(["processes" => $processesId]);
  196.                 foreach($todos as $todo)
  197.                 {
  198.                     array_push($retval, array(
  199.                         'id' => $todo->getId(),
  200.                         'name' => $todo->getName()
  201.                     ));
  202.                 }
  203.             }
  204.             if (!empty($request->get("customerId")))
  205.             {
  206.                 $customerId intval($request->get("customerId"));
  207.                 if($customerId)
  208.                 {
  209.                     $customer $em->getRepository(\App\Entity\Customer::class)->findOneBy(["id" => $customerId]);
  210.                     if($customer)
  211.                     {
  212.                     }
  213.                 }
  214.                 $customerContactPersons $this->em->getRepository(\App\Entity\User::class)->findBy(["customer" => $customerId]);
  215.                 foreach($customerContactPersons as $user)
  216.                 {
  217.                     array_push($retval, array(
  218.                         'id' => $user->getId(),
  219.                         'name' => $user->getName()
  220.                     ));
  221.                 }
  222.             }
  223.             if (!empty($request->get("supplierId")))
  224.             {
  225.                 $supplierId intval($request->get("supplierId"));
  226.                 if($supplierId)
  227.                 {
  228.                     $supplier $em->getRepository(\App\Entity\Supplier::class);
  229.                     if($supplier)
  230.                     {
  231.                         $supplierContactPersons $supplier->getUsers();
  232.                         foreach($supplierContactPersons as $user)
  233.                         {
  234.                             array_push($retval, array(
  235.                                 'id' => $user->getId(),
  236.                                 'name' => $user->getName()
  237.                             ));
  238.                         }
  239.                     }
  240.                 }
  241.             }
  242.             if(!empty($request->get("getProcessData")))
  243.             {
  244.                 $processId intval($request->get("todosProcess"));
  245.                 $process $this->em->getRepository(\App\Entity\Process::class)->findOneBy(['id' => $processId]);
  246.                 array_push($retval, array(
  247.                     'id' => $process->getId(),
  248.                     'customer' => array(
  249.                         'id' => $process->getCustomer()->getId(),
  250.                         'name' => $process->getCustomer()->getcompanyName()
  251.                     ),
  252.                     'supplier' => array(
  253.                         'id' => $process->getSupplier()->getId(),
  254.                         'name' => $process->getSupplier()->getCompanyName()
  255.                     ),
  256.                     'contactPersonCustomer' => array(
  257.                         'id' => $process->getContactPersonCustomer()->getId(),
  258.                         'name' => $process->getContactPersonCustomer()->getName() . ' (' $process->getContactPersonCustomer()->getFunction() . ')'
  259.                     ),
  260.                     'contactPersonSupplier' => array(
  261.                         'id' => $process->getContactPersonSupplier()->getId(),
  262.                         'name' => $process->getContactPersonSupplier()->getName() . ' (' $process->getContactPersonSupplier()->getFunction() . ')'
  263.                     )
  264.                 ));
  265.             }
  266.             if ($request->get('getFilesForTodo') == 1)
  267.             {
  268.                 if(!empty($request->get("procId")) && !empty($request->get("todoId")))
  269.                 {
  270.                     $processId intval($request->get("procId"));
  271.                     $todoId intval($request->get("todoId"));
  272.                     $process $this->em->getRepository(\App\Entity\Process::class)->findOneBy(["id" => $processId]);
  273.                     $todo $this->em->getRepository(\App\Entity\Todo::class)->findOneBy(["id" => $todoId]);
  274.                     $files = array();
  275.                     if(!empty($todo) && !empty($process)){
  276.                         if($todo->getResponsibility() == 1)
  277.                         {
  278.                             $company $process->getCustomer();
  279.                             $files $this->em->getRepository(\App\Entity\DocumentUser::class)->findByCustomerSupplierLetter($company);
  280.                         }
  281.                         elseif($todo->getResponsibility() == 2)
  282.                         {
  283.                             $company $process->getSupplier();
  284.                             $filesSupplier $this->em->getRepository(\App\Entity\DocumentUser::class)->findBySupplierSupplierLetter($company);
  285.                             $filesCustomer $this->em->getRepository(\App\Entity\DocumentUser::class)->findByCustomerSupplierLetter($process->getCustomer());
  286.                             $files array_merge($filesSupplier$filesCustomer);
  287.                         }
  288.                         foreach($files as $file)
  289.                         {
  290.                             array_push($retval, array(
  291.                                 "id" => $file["id"],
  292.                                 "name" => $file["fileName"]
  293.                             ));
  294.                         }
  295.                     }
  296.                 }
  297.             }
  298.         }
  299.         if($ROUTE == "report_request_new")
  300.         {
  301.             if (!empty($request->get("supplierId")))
  302.             {
  303.                 $supplierId $request->get("supplierId");
  304.                 if($supplierId)
  305.                 {
  306.                     $supplier $em->getRepository(\App\Entity\Supplier::class)->findOneBy(["id" => $supplierId]);
  307.                     if($supplier)
  308.                     {
  309.                         $cpSuppliers $supplier->getUsers();
  310.                         $i 0;
  311.                         foreach($cpSuppliers as $cpSupplier)
  312.                         {
  313.                             $retval[$i] = array (
  314.                                 'id' => $cpSupplier->getId(),
  315.                                 'name' => $cpSupplier->getFirstnamelastname(),
  316.                             );
  317.                             $i++;
  318.                         }
  319.                     }
  320.                 }
  321.             }
  322.             if (!empty($request->get("customerId")))
  323.             {
  324.                 $customerId $request->get("customerId");
  325.                 if($customerId)
  326.                 {
  327.                     $customer $em->getRepository(\App\Entity\Customer::class)->findOneBy(['id' => $customerId]);
  328.                     if($customer)
  329.                     {
  330.                         $cpCustomers $customer->getUsers();
  331.                         $i 0;
  332.                         foreach($cpCustomers as $cpCustomer)
  333.                         {
  334.                             $retval[$i] = array (
  335.                                 'id' => $cpCustomer->getId(),
  336.                                 'name' => $cpCustomer->getFirstnamelastname(),
  337.                             );
  338.                             $i++;
  339.                         }
  340.                     }
  341.                 }
  342.             }
  343.         }
  344.         if($ROUTE == "report_view")
  345.         {
  346.             if (!empty($request->get("processId")))
  347.             {
  348.                 $processId $request->get("processId");
  349.                 $process $this->em->getRepository(Process::class)->findOneBy(['id' => $processId]);
  350.                 if($process)
  351.                 {
  352.                     $i 0;
  353.                     $retval['customer'] = 'c' $process->getCustomer()->getId();
  354.                     $users $process->getCustomer()->getUsers();
  355.                     foreach($users as $user)
  356.                     {
  357.                         $userStatus in_array($user->getUserStatus()->getId(), [25]) ? : -1;
  358.                         if ($userStatus == -1) {
  359.                             $lastname $user->getLastname() . ' (' $user->getFunction() . ')' ' - [!' 'INAKTIV' '!]';
  360.                         } else {
  361.                             $lastname $user->getLastname() . ' (' $user->getFunction() . ')';
  362.                         }
  363.                         $retval['user'][$i] = array (
  364.                             'id' => $user->getId(),
  365.                             'lastname' => $lastname,
  366.                             'notationReport' => $process->getCustomer() != null ?  $process->getCustomer()->getNotationreport() : "",
  367.                             'reportPrice' => $process->getCustomer() != null $process->getCustomer()->getReportPrice() : "",
  368.                             'userStatus' => $user->getUserStatus()->getId(),
  369.                             'userUrl' => $this->router->generate('activate_user', ['id' => $user->getId()]),
  370.                         );
  371.                         $i++;
  372.                     }
  373.                 }
  374.             }
  375.             if (!empty($request->get("userId")))
  376.             {
  377.                 $userId $request->get("userId");
  378.                 if ($userId)
  379.                 {
  380.                     $user $this->em->getRepository(\App\Entity\User::class)->findOneBy(['id' => $userId]);
  381.                     if ($user)
  382.                     {
  383.                         $retval = array(
  384.                             'userStatus' => $user->getUserstatus()->getId(),
  385.                             'url' => $this->router->generate('activate_user', ['id' => $user->getId()])
  386.                         );
  387.                     }
  388.                 }
  389.             }
  390.         }
  391.         if($ROUTE == "dashboard_index")
  392.         {
  393.             if (!empty($request->get('openTodos')))
  394.             {
  395.                 $pageStart $request->get('start');
  396.                 $pageLength $request->get('length');
  397.                 $sortColumn $request->get('columns')[$request->get('order')[0]['column']]['data'];
  398.                 $sortDir $request->get('order')[0]['dir'];
  399.                 $search $request->get('search')['value'] != "" str_replace("+"" "$request->get('search')['value']) : "NULL";
  400.                 if ($pageStart == 0)
  401.                 {
  402.                     $pageNumber 1;
  403.                 } else {
  404.                     $page $pageStart $pageLength 1;
  405.                     $pageNumber $page;
  406.                 }
  407.                 $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\Todos::class)->
  408.                     findOpenTodos($search), $pageNumber$pageLength, [
  409.                         'defaultSortFieldName' => '['.$sortColumn.']',
  410.                         'defaultSortDirection' => $sortDir,
  411.                 ]);
  412.                 $retval = [
  413.                     'recordsTotal' => $pagination->getTotalItemCount(),
  414.                     'recordsFiltered' => $pagination->getTotalItemCount(),
  415.                     'data' => $pagination->getItems()
  416.                 ];
  417.             }
  418.             if (!empty($request->get('workingTodos')))
  419.             {
  420.                 $pageStart $request->get('start');
  421.                 $pageLength $request->get('length');
  422.                 $sortColumn $request->get('columns')[$request->get('order')[0]['column']]['data'];
  423.                 $sortDir $request->get('order')[0]['dir'];
  424.                 $search $request->get('search')['value'] != "" str_replace("+"" "$request->get('search')['value']) : "NULL";
  425.                 if ($pageStart == 0)
  426.                 {
  427.                     $pageNumber 1;
  428.                 } else {
  429.                     $page $pageStart $pageLength 1;
  430.                     $pageNumber $page;
  431.                 }
  432.                 $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\Todos::class)->
  433.                 findWorkingTodos($search), $pageNumber$pageLength, [
  434.                     'defaultSortFieldName' => '['.$sortColumn.']',
  435.                     'defaultSortDirection' => $sortDir,
  436.                 ]);
  437.                 $retval = [
  438.                     'recordsTotal' => $pagination->getTotalItemCount(),
  439.                     'recordsFiltered' => $pagination->getTotalItemCount(),
  440.                     'data' => $pagination->getItems()
  441.                 ];
  442.             }
  443.             if (!empty($request->get('finishedTodos')))
  444.             {
  445.                 $pageStart $request->get('start');
  446.                 $pageLength $request->get('length');
  447.                 $sortColumn $request->get('columns')[$request->get('order')[0]['column']]['data'];
  448.                 $sortDir $request->get('order')[0]['dir'];
  449.                 $search $request->get('search')['value'] != "" str_replace("+"" "$request->get('search')['value']) : "NULL";
  450.                 if ($pageStart == 0)
  451.                 {
  452.                     $pageNumber 1;
  453.                 } else {
  454.                     $page $pageStart $pageLength 1;
  455.                     $pageNumber $page;
  456.                 }
  457.                 $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\Todos::class)->
  458.                 findClosedTodos($search), $pageNumber$pageLength, [
  459.                     'defaultSortFieldName' => '['.$sortColumn.']',
  460.                     'defaultSortDirection' => $sortDir,
  461.                 ]);
  462.                 $retval = [
  463.                     'recordsTotal' => $pagination->getTotalItemCount(),
  464.                     'recordsFiltered' => $pagination->getTotalItemCount(),
  465.                     'data' => $pagination->getItems()
  466.                 ];
  467.             }
  468.             if (!empty($request->get('openProcess')))
  469.             {
  470.                 $pageStart $request->get('start');
  471.                 $pageLength $request->get('length');
  472.                 $sortColumn $request->get('columns')[$request->get('order')[0]['column']]['data'];
  473.                 $sortDir $request->get('order')[0]['dir'];
  474.                 $search $request->get('search')['value'] != "" str_replace("+"" "$request->get('search')['value']) : "NULL";
  475.                 if ($pageStart == 0)
  476.                 {
  477.                     $pageNumber 1;
  478.                 } else {
  479.                     $page $pageStart $pageLength 1;
  480.                     $pageNumber $page;
  481.                 }
  482.                 $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\Process::class)->
  483.                 findOpenProcess($search), $pageNumber$pageLength, [
  484.                     'defaultSortFieldName' => '['.$sortColumn.']',
  485.                     'defaultSortDirection' => $sortDir,
  486.                 ]);
  487.                 $retval = [
  488.                     'recordsTotal' => $pagination->getTotalItemCount(),
  489.                     'recordsFiltered' => $pagination->getTotalItemCount(),
  490.                     'data' => $pagination->getItems()
  491.                 ];
  492.             }
  493.             if (!empty($request->get('closedProcess')))
  494.             {
  495.                 $pageStart $request->get('start');
  496.                 $pageLength $request->get('length');
  497.                 $sortColumn $request->get('columns')[$request->get('order')[0]['column']]['data'];
  498.                 $sortDir $request->get('order')[0]['dir'];
  499.                 $search $request->get('search')['value'] != "" str_replace("+"" "$request->get('search')['value']) : "NULL";
  500.                 if ($pageStart == 0)
  501.                 {
  502.                     $pageNumber 1;
  503.                 } else {
  504.                     $page $pageStart $pageLength 1;
  505.                     $pageNumber $page;
  506.                 }
  507.                 $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\Process::class)->
  508.                 findClosedProcess($search), $pageNumber$pageLength, [
  509.                     'defaultSortFieldName' => '['.$sortColumn.']',
  510.                     'defaultSortDirection' => $sortDir,
  511.                 ]);
  512.                 $retval = [
  513.                     'recordsTotal' => $pagination->getTotalItemCount(),
  514.                     'recordsFiltered' => $pagination->getTotalItemCount(),
  515.                     'data' => $pagination->getItems()
  516.                 ];
  517.             }
  518.             if (!empty($request->get('evaluation')) && !empty($request->get('startDate')) && !empty($request->get('endDate')) && !empty($request->get('evaluationCustomerStatus')))
  519.             {
  520.                 $startDate date("Y-m-d"strtotime($request->get('startDate')));
  521.                 $endDate date("Y-m-d 23:59:59"strtotime($request->get('endDate')));
  522.                 $customerStatus $request->get('evaluationCustomerStatus');
  523.                 $pageStart $request->get('start');
  524.                 $pageLength $request->get('length');
  525.                 $sortColumn $request->get('order')[0]['column'] + 1;
  526.                 $sortDir $request->get('order')[0]['dir'];
  527.                 $search $request->get('search')['value'] != "" str_replace("+"" "$request->get('search')['value']) : "NULL";
  528.                 if ($pageStart == 0)
  529.                 {
  530.                     $pageNumber 1;
  531.                 } else {
  532.                     $page $pageStart $pageLength 1;
  533.                     $pageNumber $page;
  534.                 }
  535.                 if ($customerStatus == 'all')
  536.                 {
  537.                     $customers $this->em->getRepository(\App\Entity\Customer::class)->findAll();
  538.                     $active "0|1";
  539.                     $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\Process::class)->
  540.                     findAnalysis(6$startDate$endDate$sortColumn$sortDir$search$active), $pageNumber$pageLength);
  541.                     $sumAnalysis $this->em->getRepository(\App\Entity\Process::class)->sumFindAnalysis(6$startDate,
  542.                         $endDate$sortColumn$sortDir$search$active);
  543.                 } elseif ($customerStatus == 'active') {
  544.                     $active "1";
  545.                     $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\Process::class)->
  546.                     findAnalysis(6$startDate$endDate$sortColumn$sortDir$search$active), $pageNumber$pageLength);
  547.                     $sumAnalysis $this->em->getRepository(\App\Entity\Process::class)->sumFindAnalysis(6$startDate,
  548.                         $endDate$sortColumn$sortDir$search$active);
  549.                 } elseif ($customerStatus == 'non-active') {
  550.                     $active "0";
  551.                     $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\Process::class)->
  552.                     findAnalysis(6$startDate$endDate$sortColumn$sortDir$search$active), $pageNumber$pageLength);
  553.                     $sumAnalysis $this->em->getRepository(\App\Entity\Process::class)->sumFindAnalysis(6$startDate,
  554.                         $endDate$sortColumn$sortDir$search$active);
  555.                 }
  556.                 $data['data'] = $pagination->getItems();
  557.                 $data['sum'] = $sumAnalysis;
  558.                 $retval = array(
  559.                     'recordsTotal' => $pagination->getTotalItemCount(),
  560.                     'recordsFiltered' => $pagination->getTotalItemCount(),
  561.                     'data' => $data,
  562.                 );
  563.             }
  564.             if (!empty($request->get('sales')) && !empty($request->get('startDate')) && !empty($request->get('endDate')) && !empty($request->get('customerStatus')))
  565.             {
  566.                 $startDate date("Y-m-d"strtotime($request->get('startDate')));
  567.                 $endDate date("Y-m-d 23:59:59"strtotime($request->get('endDate')));
  568.                 $customerStatus $request->get('customerStatus');
  569.                 if ($customerStatus == 'all')
  570.                 {
  571.                     $customers $this->em->getRepository(\App\Entity\Customer::class)->findAll();
  572.                 } elseif ($customerStatus == 'active') {
  573.                     $customers $this->em->getRepository(\App\Entity\Customer::class)->findBy(['active' => 1]);
  574.                 } elseif ($customerStatus == 'non-active') {
  575.                     $customers $this->em->getRepository(\App\Entity\Customer::class)->findBy(['active' => 0]);
  576.                 }
  577.                 $statisticSales = [];
  578.                 foreach ($customers as $customer)
  579.                 {
  580.                     $salesSelectedPrevPeriod $this->em->getRepository(\App\Entity\Process::class)->salesSelectedPrevPeriod($customer->getid(), date("Y-m-d"strtotime("-1 year"strtotime($startDate))), date("Y-m-d"strtotime("-1 year"strtotime($endDate))));
  581.                     $salesSelectedPeriod $this->em->getRepository(\App\Entity\Process::class)->salesSelectedPeriod($customer->getId(), $startDate$endDate);
  582.                     $result $this->em->getRepository(\App\Entity\Process::class)->openAnalyticsWithType2($customer->getId(), 6$startDate$endDate2);
  583.                     if (isset($result['summary'])) {
  584.                         $openRequestsInProcess $result['summary'] * $customer->getReportPrice();
  585.                     } else {
  586.                         // Handle the case where 'summary' does not exist
  587.                         $openRequestsInProcess 0;
  588.                     }
  589.                     $result $this->em->getRepository(\App\Entity\Process::class)->openAnalyticsWithType3($customer->getId(), 6$startDate$endDate1);
  590.                     if (isset($result['summary'])) {
  591.                         $openSalesInRequest $result['summary'] * $customer->getReportPrice();
  592.                     } else {
  593.                         // Handle the case where 'summary' does not exist
  594.                         $openSalesInRequest 0;
  595.                     }
  596.                     $forecast $salesSelectedPeriod $openRequestsInProcess $openSalesInRequest;
  597.                     array_push($statisticSales, ['customerid' => $customer->getId(), "customer" => $customer->getCompanyName(),
  598.                         'salesSelectedPrevPeriod' => $salesSelectedPrevPeriod'salesSelectedPeriod' => $salesSelectedPeriod,
  599.                         'openRequestsInProcess' => $openRequestsInProcess,
  600.                         'openSalesInRequest' => $openSalesInRequest,
  601.                         'forecast' => $forecast]);
  602.                 }
  603.                 $retval = array(
  604.                     'data' => $statisticSales
  605.                 );
  606.             }
  607.             if (!empty($request->get('pipeline')))
  608.             {
  609.                 $pageStart $request->get('start');
  610.                 $pageLength $request->get('length');
  611.                 $sortColumn $request->get('columns')[$request->get('order')[0]['column']]['data'];
  612.                 $sortDir $request->get('order')[0]['dir'];
  613.                 $search $request->get('search')['value'] != "" str_replace("+"" "$request->get('search')['value']) : "NULL";
  614.                 if ($pageStart == 0)
  615.                 {
  616.                     $pageNumber 1;
  617.                 } else {
  618.                     $page $pageStart $pageLength 1;
  619.                     $pageNumber $page;
  620.                 }
  621.                 $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\BackTemplates::class)->
  622.                 findPipeline($search), $pageNumber$pageLength, [
  623.                     'defaultSortFieldName' => '['.$sortColumn.']',
  624.                     'defaultSortDirection' => $sortDir,
  625.                 ]);
  626.                 $retval = [
  627.                     'recordsTotal' => $pagination->getTotalItemCount(),
  628.                     'recordsFiltered' => $pagination->getTotalItemCount(),
  629.                     'data' => $pagination->getItems()
  630.                 ];
  631.             }
  632.             if (!empty($request->get('backtemplateSent')))
  633.             {
  634.                 $pageStart $request->get('start');
  635.                 $pageLength $request->get('length');
  636.                 $sortColumn $request->get('columns')[$request->get('order')[0]['column']]['data'];
  637.                 $sortDir $request->get('order')[0]['dir'];
  638.                 $search $request->get('search')['value'] != "" str_replace("+"" "$request->get('search')['value']) : "NULL";
  639.                 if ($pageStart == 0)
  640.                 {
  641.                     $pageNumber 1;
  642.                 } else {
  643.                     $page $pageStart $pageLength 1;
  644.                     $pageNumber $page;
  645.                 }
  646.                 $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\BackTemplates::class)->
  647.                 findShipped($search), $pageNumber$pageLength, [
  648.                     'defaultSortFieldName' => '['.$sortColumn.']',
  649.                     'defaultSortDirection' => $sortDir,
  650.                 ]);
  651.                 $retval = [
  652.                     'recordsTotal' => $pagination->getTotalItemCount(),
  653.                     'recordsFiltered' => $pagination->getTotalItemCount(),
  654.                     'data' => $pagination->getItems()
  655.                 ];
  656.             }
  657.         }
  658.         if($ROUTE == "customer_index")
  659.         {
  660.             if (!empty($request->get('customerList'))) {
  661.                 $pageStart $request->get('start');
  662.                 $pageLength $request->get('length');
  663.                 $sortColumn $request->get('columns')[$request->get('order')[0]['column']]['data'];
  664.                 $sortDir $request->get('order')[0]['dir'];
  665.                 $search $request->get('search')['value'] != "" str_replace("+"" "$request->get('search')['value']) : "NULL";
  666.                 $user $this->tokenStorage->getToken()->getUser();
  667.                 if ($pageStart == 0)
  668.                 {
  669.                     $pageNumber 1;
  670.                 } else {
  671.                     $page $pageStart $pageLength 1;
  672.                     $pageNumber $page;
  673.                 }
  674.                 if ($user->getRole()->getId() == User::ROLE_SUPER_ADMIN || $user->getRole()->getId() == User::ROLE_ADMIN)
  675.                 {
  676.                     $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\Customer::class)->
  677.                     getAllCustomers($search), $pageNumber$pageLength, [
  678.                         'defaultSortFieldName' => '['.$sortColumn.']',
  679.                         'defaultSortDirection' => $sortDir,
  680.                     ]);
  681.                 } elseif ($user->getSupplier() != null) {
  682.                     if ($this->userPermissionService->CheckUserPermission('view_customers'$user))
  683.                     {
  684.                         $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\Customer::class)->
  685.                         getPartialCustomers($search$user->getSupplier()->getId()), $pageNumber$pageLength, [
  686.                             'defaultSortFieldName' => '['.$sortColumn.']',
  687.                             'defaultSortDirection' => $sortDir,
  688.                         ]);
  689.                     }
  690.                 }
  691. //                $pagination = $this->paginator->paginate($this->em->getRepository(\App\Entity\Customer::class)->
  692. //                getAllCustomers($search), $pageNumber, $pageLength, [
  693. //                    'defaultSortFieldName' => '['.$sortColumn.']',
  694. //                    'defaultSortDirection' => $sortDir,
  695. //                ]);
  696.                 $retval = [
  697.                     'recordsTotal' => $pagination->getTotalItemCount(),
  698.                     'recordsFiltered' => $pagination->getTotalItemCount(),
  699.                     'data' => $pagination->getItems()
  700.                 ];
  701.             }
  702.         }
  703.         if($ROUTE == "supplier_index")
  704.         {
  705.             if (!empty($request->get('supplierList'))) {
  706.                 $pageStart $request->get('start');
  707.                 $pageLength $request->get('length');
  708.                 $sortColumn $request->get('columns')[$request->get('order')[0]['column']]['data'];
  709.                 $sortDir $request->get('order')[0]['dir'];
  710.                 $search $request->get('search')['value'] != "" str_replace("+"" "$request->get('search')['value']) : "NULL";
  711.                 $user $this->tokenStorage->getToken()->getUser();
  712.                 if ($pageStart == 0)
  713.                 {
  714.                     $pageNumber 1;
  715.                 } else {
  716.                     $page $pageStart $pageLength 1;
  717.                     $pageNumber $page;
  718.                 }
  719.                 if ($user->getRole()->getId() == User::ROLE_SUPER_ADMIN || $user->getRole()->getId() == User::ROLE_ADMIN)
  720.                 {
  721.                     $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\Supplier::class)->
  722.                     getAllSupplier($search), $pageNumber$pageLength, [
  723.                         'defaultSortFieldName' => '['.$sortColumn.']',
  724.                         'defaultSortDirection' => $sortDir,
  725.                     ]);
  726.                 } elseif ($user->getCustomer() != null) {
  727.                     if ($this->userPermissionService->CheckUserPermission('view_all_suppliers'$user))
  728.                     {
  729.                         $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\Supplier::class)->
  730.                         getCustomerAllSupplier($search$user->getCustomer()->getId()), $pageNumber$pageLength, [
  731.                             'defaultSortFieldName' => '['.$sortColumn.']',
  732.                             'defaultSortDirection' => $sortDir,
  733.                         ]);
  734.                     }
  735.                     if ($this->userPermissionService->CheckUserPermission('view_suppliers'$user))
  736.                     {
  737.                         $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\Supplier::class)->
  738.                         getCustomerPartialSupplier($search$user->getCustomer()->getId(), $user->getId()), $pageNumber$pageLength, [
  739.                             'defaultSortFieldName' => '['.$sortColumn.']',
  740.                             'defaultSortDirection' => $sortDir,
  741.                         ]);
  742.                     }
  743.                 }
  744.                 $retval = [
  745.                     'recordsTotal' => $pagination->getTotalItemCount(),
  746.                     'recordsFiltered' => $pagination->getTotalItemCount(),
  747.                     'data' => $pagination->getItems()
  748.                 ];
  749.             }
  750.         }
  751.         if($ROUTE == "document_index")
  752.         {
  753.             if (!empty($request->get('documentList'))) {
  754.                 $pageStart $request->get('start');
  755.                 $pageLength $request->get('length');
  756.                 $sortColumn $request->get('columns')[$request->get('order')[0]['column']]['data'];
  757.                 $sortDir $request->get('order')[0]['dir'];
  758.                 $search $request->get('search')['value'] != "" str_replace("+"" "$request->get('search')['value']) : "NULL";
  759.                 $user $this->tokenStorage->getToken()->getUser();
  760.                 if ($pageStart == 0)
  761.                 {
  762.                     $pageNumber 1;
  763.                 } else {
  764.                     $page $pageStart $pageLength 1;
  765.                     $pageNumber $page;
  766.                 }
  767.                 if ($user->getRole()->getId() == User::ROLE_SUPER_ADMIN || $user->getRole()->getId() == User::ROLE_ADMIN)
  768.                 {
  769.                     $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\DocumentUser::class)->
  770.                     getAllDocuments($search$sortColumn$sortDir), $pageNumber$pageLength, [
  771.                         'defaultSortFieldName' => '['.$sortColumn.']',
  772.                         'defaultSortDirection' => $sortDir,
  773.                     ]);
  774.                 } elseif ($user->getCustomer() != null) {
  775.                     if ($this->userPermissionService->CheckUserPermission('view_all_suppliers_documents'$user))
  776.                     {
  777.                         $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\DocumentUser::class)->
  778.                         getCustomerAllDocuments($search$sortColumn$sortDir$user->getCustomer()->getId()), $pageNumber$pageLength, [
  779.                             'defaultSortFieldName' => '['.$sortColumn.']',
  780.                             'defaultSortDirection' => $sortDir,
  781.                         ]);
  782.                     }
  783.                     if ($this->userPermissionService->CheckUserPermission('view_suppliers_document'$user))
  784.                     {
  785.                         $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\DocumentUser::class)->
  786.                         getCustomerPartialDocuments($search$sortColumn$sortDir$user->getCustomer()->getId(), $user->getId()), $pageNumber$pageLength, [
  787.                             'defaultSortFieldName' => '['.$sortColumn.']',
  788.                             'defaultSortDirection' => $sortDir,
  789.                         ]);
  790.                     }
  791.                 } elseif ($user->getSupplier() !== null) {
  792.                     $pagination $this->paginator->paginate($this->em->getRepository(\App\Entity\DocumentUser::class)->
  793.                     getSupplierDocuments($search$sortColumn$sortDir$user->getSupplier()->getId(), $user->getId()), $pageNumber$pageLength, [
  794.                         'defaultSortFieldName' => '['.$sortColumn.']',
  795.                         'defaultSortDirection' => $sortDir,
  796.                     ]);
  797.                 }
  798.                 if (!isset($pagination))
  799.                 {
  800.                     $retval = [
  801.                         'recordsTotal' => 0,
  802.                         'recordsFiltered' => 0,
  803.                         'data' => ""
  804.                     ];
  805.                 } else {
  806.                     $retval = [
  807.                         'recordsTotal' => $pagination->getTotalItemCount(),
  808.                         'recordsFiltered' => $pagination->getTotalItemCount(),
  809.                         'data' => $pagination->getItems()
  810.                     ];
  811.                 }
  812.             }
  813.         }
  814.         return $retval;
  815.     }
  816. }