src/Globals/CoreBundle/Controller/LicensesMaintenanceWidgetController.php line 45

Open in your IDE?
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: POlleros
  5.  * Date: 12/11/2017
  6.  * Time: 11:04 AM
  7.  */
  8. namespace Globals\CoreBundle\Controller;
  9. use Globals\CustomerManagementBundle\Entity\AutoDiary;
  10. use Globals\CustomerManagementBundle\Form\AutoDiaryType;
  11. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  12. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  13. use Globals\CustomerManagementBundle\Entity\Customer;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\JsonResponse;
  16. use Globals\CoreBundle\Helpers\DbUtilities;
  17. use DateTime;
  18. use Globals\ClaimManagementBundle\Entity\Claim;
  19. /**
  20.  * @Route("/administration")
  21.  */
  22. class LicensesMaintenanceWidgetController extends Controller
  23. {
  24.     /**
  25.      * @Route("/licenses/show")
  26.      */
  27.     public function showLicenses()
  28.     {
  29.         return $this->render('@Core/Widget/widget_licenses_maintenance.html.twig', array(
  30.             'active_class' => 'diary'
  31.         ));
  32.     }
  33.     # Load Datatables
  34.     /**
  35.      * @Route("/licenses/data")
  36.      */
  37.     public function licensesWidgetData(Request $request)
  38.     {
  39.         $authChecker $this->container->get('security.authorization_checker');
  40.         $user  $this->container->get('security.token_storage')->getToken()->getUser();
  41.         $dropdownTeamValue $request->query->get("dropdownTeamValue");
  42.         $resourceId $user->getId();
  43.         //echo  "LOOK::: " . $dropdownTeamValue;
  44.         # Array of columns that will be sorted
  45.         $columnsArr = [
  46.             "user_name",
  47.             "licenseNum",
  48.             "stateCode",
  49.             "licenseExpires",
  50.             "daysExpired"
  51.         ];
  52.         //If is SUPERADMIN
  53.         if ($authChecker->isGranted("ROLE_ADMIN") == true || $authChecker->isGranted("ROLE_EXAMINER") == true) {
  54.             //echo "SIUPER ADMIN";
  55.             $sql "SELECT r.id, CONCAT(r.first_name, ' ', r.last_name) AS user_name,
  56.                     l.licenseNum, s.stateCode, 
  57.                     l.licenseExpires,
  58.                     datediff(l.licenseExpires, CURDATE()) AS daysExpired
  59.                     FROM license l                      
  60.                     INNER JOIN resource r
  61.                       ON r.id = l.resource_id
  62.                     INNER JOIN state s
  63.                       ON l.state_id = s.id
  64.                     WHERE r.is_active = 1 AND l.id IS NOT NULL 
  65.                     AND (licenseExpires <= DATE_ADD(CURDATE(), INTERVAL 60 DAY) OR l.licenseExpires <= CURDATE()) 
  66.                     AND r.roles <> '[\"ROLE_REGISTERED\"]' ";
  67.             /*if($dropdownTeamValue != 0) {
  68.                 $sql .= " AND c2.claim_team_id = $dropdownTeamValue";
  69.             }*/
  70.             # handle status being passed in from pie chart
  71.             $dataParams = array();
  72.             # specifiy group by
  73.             $group_by " GROUP BY l.licenseNum";
  74.         }elseif ($authChecker->isGranted("ROLE_TEAM_LEADER") == true){ //If is TEAM LEADER
  75.             //echo "TEam Leader";
  76.             $sql "SELECT r.id, CONCAT(r.first_name, ' ', r.last_name) AS user_name,
  77.                     l.licenseNum, s.stateCode, 
  78.                     l.licenseExpires,
  79.                     datediff(l.licenseExpires, CURDATE()) AS daysExpired
  80.                     FROM claim_team_resource ctr2
  81.                       LEFT JOIN claim c2
  82.                         ON ctr2.claim_team_id = c2.claim_team_id AND ctr2.team_lead = 1
  83.                       INNER JOIN claim_team_resource ctr1
  84.                         ON ctr2.claim_team_id = ctr1.claim_team_id
  85.                       INNER JOIN resource r
  86.                         ON r.id = ctr1.resource_id
  87.                       INNER JOIN license l
  88.                         ON l.resource_id = r.id
  89.                       INNER JOIN state s
  90.                         ON l.state_id = s.id
  91.                     WHERE r.is_active = 1 AND l.id IS NOT NULL
  92.                     AND ctr1.is_active = 1 AND ctr2.resource_id = :resourceId
  93.                     AND r.roles <> '[\"ROLE_REGISTERED\"]'
  94.                     AND (licenseExpires <= DATE_ADD(CURDATE(), INTERVAL 60 DAY) OR l.licenseExpires <= CURDATE()) ";
  95.             if($dropdownTeamValue != 0) {
  96.                 $sql .= " AND c2.claim_team_id = $dropdownTeamValue";
  97.             }
  98.             # handle status being passed in from pie chart
  99.             $dataParams = array('resourceId' => $resourceId);
  100.             # specifiy group by
  101.             $group_by " GROUP BY l.licenseNum";
  102.             //$group_by = "";
  103.         }else{ //IF ADJUSTER
  104.             //echo "ADJUSTER";
  105.             $sql "SELECT r.id, CONCAT(r.first_name, ' ', r.last_name) AS user_name,
  106.                     l.licenseNum, s.stateCode, 
  107.                     l.licenseExpires,
  108.                     datediff(l.licenseExpires, CURDATE()) AS daysExpired
  109.                      FROM resource r
  110.                       INNER JOIN license l
  111.                         ON r.id = l.resource_id
  112.                       INNER JOIN state s
  113.                         ON l.state_id = s.id
  114.                     WHERE r.is_active = 1 AND r.id = :resourceId
  115.                       AND l.id IS NOT NULL AND (licenseExpires <= DATE_ADD(CURDATE(), INTERVAL 60 DAY) OR l.licenseExpires <= CURDATE())
  116.                       AND r.roles <> '[\"ROLE_REGISTERED\"]' ";
  117.             # handle status being passed in from pie chart
  118.             $dataParams = array('resourceId' => $resourceId);
  119.             # specifiy group by
  120.             $group_by "";
  121.         }
  122. //        echo "<pre> LICEN: ". $sql ."</pre>";
  123.         # build keyword filter, which is requested by datatables ajax when someone types into keyword field
  124.         $keyword_filter " AND (l.licenseNum like :keywordLicenses OR s.stateCode like :keywordLicenses 
  125.                             OR r.first_name like :keywordLicenses OR r.last_name like :keywordLicenses) ";
  126. //        $keyword_filter = "";
  127.         //return new JsonResponse(["sql" => $sql, "data" => $dataParams]); die;
  128.         # call PaginatorService
  129.         $paginator $this->container->get("resource.paginator_service");
  130.         $data $paginator->getPaginationResults($request$sql$dataParams""$columnsArr"search_keyword"$keyword_filter"keywordLicenses"$group_by"GET");
  131.         $resultset2 $data['data'];
  132.         $resultset = array();
  133.         foreach ($resultset2 as $getItem) {
  134.             /*
  135.              * IF EXPIRED DAYS are less than 0 means they are Expired
  136.              */
  137.             if($getItem['daysExpired'] < 0){
  138.                 $getItem['daysExpired'] = 'Expired';
  139.             }
  140.             $getItem['licenseExpires'] = date("m/d/Y"strtotime($getItem['licenseExpires']));
  141.             $resultset[] = $getItem;
  142.         }
  143.         $data['data'] = $resultset;
  144.         return new JsonResponse($data);
  145.     }
  146.     /**
  147.      * @Route("/licenses/get_teams")
  148.      */
  149.     public function getTeams(Request $request){
  150.         $user $this->get('security.token_storage')->getToken()->getUser();
  151.         $em $this->getDoctrine()->getManager();
  152.         $authChecker $this->container->get('security.authorization_checker');
  153.         $resourceId $user->getId();
  154.         /*if ($authChecker->isGranted("ROLE_ADMIN") == true) {
  155.             $sqlTeams = "SELECT DISTINCT ct.id, ct.name
  156.                         FROM claim_team_resource ctr2
  157.                           LEFT JOIN claim c2
  158.                             ON ctr2.claim_team_id = c2.claim_team_id AND ctr2.team_lead = 1
  159.                           LEFT JOIN claim_team_resource ctr1
  160.                             ON ctr2.claim_team_id = ctr1.claim_team_id
  161.                           LEFT JOIN resource r
  162.                             ON r.id = ctr1.resource_id
  163.                           LEFT JOIN license l
  164.                             ON l.resource_id = r.id
  165.                           LEFT JOIN state s
  166.                             ON l.state_id = s.id
  167.                           LEFT JOIN claim_team ct
  168.                             ON ct.id = ctr2.claim_team_id                         
  169.                         WHERE r.is_active = 1
  170.                             AND l.id IS NOT NULL
  171.                             -- AND ctr2.resource_id = :resourceId
  172.                             AND (licenseExpires <= DATE_ADD(CURDATE(), INTERVAL 60 DAY) OR l.licenseExpires <= CURDATE())
  173.                         GROUP BY l.licenseNum
  174.                         ";
  175.         }elseif ($authChecker->isGranted("ROLE_TEAM_LEADER") == true){ //If is TEAM LEADER
  176.             $sqlTeams = "SELECT DISTINCT ct.id, ct.name
  177.                         FROM claim_team_resource ctr2
  178.                           LEFT JOIN claim c2
  179.                             ON ctr2.claim_team_id = c2.claim_team_id AND ctr2.team_lead = 1
  180.                           LEFT JOIN claim_team_resource ctr1
  181.                             ON ctr2.claim_team_id = ctr1.claim_team_id
  182.                           LEFT JOIN resource r
  183.                             ON r.id = ctr1.resource_id
  184.                           LEFT JOIN license l
  185.                             ON l.resource_id = r.id
  186.                           LEFT JOIN state s
  187.                             ON l.state_id = s.id
  188.                           LEFT JOIN claim_team ct
  189.                             ON ct.id = ctr2.claim_team_id                         
  190.                         WHERE r.is_active = 1
  191.                             AND l.id IS NOT NULL
  192.                             AND ctr2.resource_id = $resourceId
  193.                             AND (licenseExpires <= DATE_ADD(CURDATE(), INTERVAL 60 DAY) OR l.licenseExpires <= CURDATE())
  194.                         GROUP BY l.licenseNum
  195.                         ";
  196.         }else{
  197.             $sqlTeams = "SELECT ct.id, ct.name
  198.                         FROM claim c
  199.                           LEFT JOIN customer cust on c.customer_id = cust.id
  200.                           INNER JOIN state s on c.loss_state_id = s.id
  201.                           LEFT JOIN claim_resource cr on cr.claim_id = c.id
  202.                           LEFT JOIN claim_team ct ON ct.id = c.claim_team_id
  203.                           LEFT JOIN resource r on cr.resource_id = r.id
  204.                           LEFT JOIN claims_insured ci on ci.claim_id = c.id AND ci.is_primary = 1
  205.                           LEFT JOIN insured i ON i.id = ci.insured_id
  206.                         WHERE c.status_id > 5  
  207.                           AND r.id = $resourceId
  208.                         GROUP BY ct.id";
  209.         }
  210.         $stmt = $em->getConnection()->prepare($sqlTeams);
  211.         $stmt->execute();
  212.         $data = $stmt->fetchAll();*/
  213.         $data = [
  214.             ['id' => 11'name' => 'Cat Team']
  215.         ];
  216.         return new JsonResponse($data);
  217.     }
  218. }