Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 12.10 KB | None | 0 0
  1. function resource_stats($arrExtra=0, $strResource)
  2.     {  
  3.         if ($strResource == "navigation")
  4.         {      
  5.             //if any parameter is passed select appropriate tables 
  6.                 $strSql = "
  7.                         SELECT
  8.                                 *
  9.                         FROM
  10.                         ";
  11.                 $arrTable = array();
  12.                 if(
  13.                     isset($arrExtra["institution_id"])
  14.                     || isset($arrExtra["network_id"])
  15.                     || isset($arrExtra["host_id"])
  16.                 ){
  17.                     $arrTable[] = "institutions";
  18.                 }
  19.                 else if(
  20.                     isset($arrExtra["class_id"])
  21.                 ){
  22.                     $arrTable[] = "classes";   
  23.                 }
  24.                 else if(
  25.                     isset($arrExtra["user_id"])
  26.                 ){
  27.                     $arrTable[] = "users";
  28.                 }
  29.                 else if(
  30.                     isset($arrExtra["campaign_id"])
  31.                 ){
  32.                     $arrTable[] = "campaigns";
  33.                 }      
  34.                 else if(
  35.                     isset($arrExtra["mission_id"])
  36.                 ){
  37.                     $arrTable[] = "missions";
  38.                 }
  39.                 else
  40.                 {
  41.                     $arrTable[] = "institutions,campaigns,missions";
  42.                 }
  43.         }
  44.         else if ($strResource == "count")
  45.         {      
  46.             //if any parameter is passed select appropriate tables
  47.             //the count has to be one level deeper. If campaign_id is passed, then we
  48.             //must calculate amount of missions that have that campaign_id
  49.                 $strSql = "
  50.                         SELECT
  51.                                 COUNT(1) as row_count
  52.                         FROM
  53.                         ";
  54.                 $arrTable = array();
  55.                 if(
  56.                     isset($arrExtra["institution_id"])
  57.                     || isset($arrExtra["network_id"])
  58.                     || isset($arrExtra["host_id"])
  59.                 ){
  60.                     $arrTable[] = "institutions";
  61.                 }
  62.                 else if(
  63.                     isset($arrExtra["class_id"])
  64.                 ){
  65.                     $arrTable[] = "classes";   
  66.                 }
  67.                 else if(
  68.                     isset($arrExtra["user_id"])
  69.                 ){
  70.                     $arrTable[] = "users";
  71.                 }
  72.                 else if(
  73.                     isset($arrExtra["campaign_id"])
  74.                 ){
  75.                     $arrTable[] = "campaigns";
  76.                 }      
  77.                 else if(
  78.                     isset($arrExtra["mission_id"])
  79.                 ){
  80.                     $arrTable[] = "missions";
  81.                 }
  82.                 else
  83.                 {
  84.                     $arrTable[] = "institutions,campaigns,missions";
  85.                 }
  86.         } else
  87.         {
  88.                 print "Sorry, there was an error: MI-RS101-SDJ383";
  89.                 exit;
  90.         }
  91.         //sub queries
  92.         $arrSql = array();
  93.         if (
  94.             isset($arrExtra["institution_id"])
  95.         ){
  96.             $arrSql[] = "(institutions.institution_id = " . $arrExtra["institution_id"].")";
  97.         }
  98.         if (
  99.             isset($arrExtra["network_id"])
  100.         ){
  101.             $arrSql[] = "
  102.                 (
  103.                     institutions.institution_id = " . $arrExtra["network_id"] . "
  104.                     AND institutions.institution_type = 'Network'
  105.                 )";
  106.         }
  107.         if (
  108.             isset($arrExtra["host_id"])
  109.         ){
  110.             $arrSql[] = "
  111.                 (
  112.                     institutions.institution_id = " . $arrExtra["host_id"] . "
  113.                     AND institutions.institution_type = 'Host'
  114.                 )";
  115.         }
  116.         if (
  117.             isset($arrExtra["campaign_id"])
  118.            
  119.         ){
  120.             $arrSql[] = "
  121.                 (campaigns.campaign_id = " . $arrExtra["campaign_id"].")";
  122.         }      
  123.         if (
  124.             isset($arrExtra["mission_id"])         
  125.         ){
  126.             $arrSql[] = "(missions.mission_id = " . $arrExtra["mission_id"].")";       
  127.         }
  128.                
  129.         if (
  130.             count($arrSql)
  131.             && count($arrTable)
  132.         ){
  133.             $strSql .= join("," , $arrTable) ." WHERE " . join(" OR ", $arrSql).";";
  134.         }
  135.         else
  136.         {
  137.             //print 'tables selected: ' .join(",", $arrTable) . ' and count table: ' .count($arrSql);
  138.             print "Sorry, there was an error: MI-RS101-D6554DH";
  139.             exit;
  140.         }  
  141.         //print $strSql .'<br />'; //exit;
  142.         if($strResource == "navigation")
  143.         {
  144.             $arrResult = $this->_db->fetchAll($strSql);
  145.             return $arrResult;
  146.         }
  147.         if($strResource == "count")
  148.         {  
  149.             $intResult = $this->_db->fetchAll($strSql);
  150.             return $intResult;
  151.         }
  152.     }  
  153.    
  154.     /* Function resource_count
  155.     * Params: arrExtra
  156.     * Return: arrResult that will hold the count of itema based on
  157.     * what was passed in the arrExtra
  158.     */
  159.     function resource_count($arrExtra=0)
  160.     {
  161.         $strSql = "
  162.             SELECT
  163.                 COUNT(1) as row_count
  164.             FROM
  165.             ";
  166.         //if any parameter is passed select appropriate tables 
  167.         $arrTable = array();
  168.         if(
  169.             isset($arrExtra["institution_id"])
  170.             && !isset($arrExtra["network_id"])
  171.             && !isset($arrExtra["host_id"])
  172.         ){
  173.             $arrTable[] = "campaigns";
  174.         }
  175.         else if(
  176.             isset($arrExtra["host_id"])
  177.             && isset($arrExtra["network_id"])
  178.             && !isset($arrExtra["institution_id"])
  179.         ){
  180.             $arrTable[] = "campaigns,missions,tasks";
  181.         }
  182.         else if(
  183.             isset($arrExtra["host_id"])
  184.             || isset($arrExtra["network_id"])
  185.         ){
  186.             $arrTable[] = "institutions";
  187.         }
  188.         else if(
  189.             isset($arrExtra["class_id"])
  190.         ){
  191.             $arrTable[] = "classes";   
  192.         }
  193.         else if(
  194.             isset($arrExtra["user_id"])
  195.         ){
  196.             $arrTable[] = "users";
  197.         }
  198.         else if(
  199.             isset($arrExtra["campaign_id"])
  200.         ){
  201.             $arrTable[] = "missions";
  202.         }
  203.         else if(
  204.             isset($arrExtra["mission_id"])
  205.         ){
  206.             $arrTable[] = "tasks";
  207.         }
  208.         else
  209.         {
  210.             $arrTable[] = "institutions,classes,users,campaigns,missions,tasks";
  211.         }      
  212.         //chech if arrTable contains anything
  213.            
  214.         $arrSql= array();
  215.         //see how many networks under a host
  216.         if (
  217.             isset($arrExtra["host_id"])
  218.         ){
  219.             $arrSql[] = "
  220.                 (
  221.                     institutions.host_id = " . $arrExtra["host_id"] . "
  222.                     AND institution_type='Network'     
  223.                 )";
  224.         }
  225.         //see how many institutions under a network
  226.         if (
  227.             isset($arrExtra["network_id"])
  228.         ){
  229.             $arrSql[] = "
  230.                 (
  231.                     institutions.network_id = " . $arrExtra["network_id"] . "
  232.                     AND institution_type!='Host'
  233.                     AND institution_type!='Network'                
  234.                 )";
  235.         }
  236.         //see how many campaigns under an institution      
  237.         if (
  238.             isset($arrExtra["institution_id"])
  239.         ){
  240.             $strSqlCampaign = "
  241.             SELECT
  242.                 COUNT(1) as campaign_count
  243.             FROM
  244.                 campaigns
  245.             WHERE
  246.                 ";
  247.             /*
  248.                 Using arrExtra, an institution can be selected by using a host id
  249.                 and/or network id.
  250.             */
  251. /***************** SUB QUESRIES FOR CAMPAIGNS, MISSIONS AND TASKS **************/
  252.  
  253.             //start campaign_count handler
  254.             $arrSqlCampaigns = array(); // All exceptions within this array will be OR joined
  255.             if (
  256.                 isset($arrExtra["institution_id"])
  257.                 && !isset($arrExtra["host_id"])
  258.                 && !isset($arrExtra["network_id"])
  259.             )
  260.                 $arrSqlCampaigns[] = "institution_id = " . $arrExtra["institution_id"];
  261.             if (
  262.                 isset($arrExtra["host_id"])
  263.                 || isset($arrExtra["network_id"])
  264.             ){
  265.                 $strSubSql = "
  266.                     SELECT
  267.                         institution_id
  268.                     FROM
  269.                         institutions
  270.                     WHERE
  271.                         ";
  272.                 $arrSubSql = array();
  273.                 if ( // Select host
  274.                     isset($arrExtra["host_id"])
  275.                 ) {
  276.                     $arrSubSql[] = "(
  277.                         institution_id={$arrExtra["host_id"]}
  278.                         AND host_id = 0
  279.                         AND network_id = 0
  280.                     )";
  281.                 }
  282.                 if ( // Select network
  283.                     isset($arrExtra["network_id"])
  284.                 ) {
  285.                     $arrSubSql[] = "(
  286.                         institution_id={$arrExtra["network_id"]}
  287.                         AND network_id = 0
  288.                         AND host_id != 0
  289.                     )";
  290.                 }
  291.                 if ( // Select institution
  292.                     isset($arrExtra["institution_id"])
  293.                 ) {
  294.                     $arrSubSql[] = "(
  295.                         institution_id={$arrExtra["institution_id"]}
  296.                         AND network_id != 0
  297.                         AND host_id != 0
  298.                     )";
  299.                 }
  300.                 else
  301.                 {
  302.                     $arrSubSql[] = "(
  303.                         institution_id!=0
  304.                     )";
  305.                 }
  306.                 $arrSqlCampaigns[] = "institution_id IN (" . $strSubSql . "(" . join(" OR ", $arrSubSql) . "))";
  307.             }
  308.             if (count($arrSqlCampaigns)) {
  309.                 $strSqlCampaign .= " (" . join(" OR ", $arrSqlCampaigns) . ")";            
  310.             }  
  311.             print $strSqlCampaign; //exit;
  312.             $arrResult = $this->_db->fetchAll($strSqlCampaign);
  313.             return $arrResult;
  314.             exit;      
  315.         //end of campaign_count handler
  316.         }
  317.  
  318.         //see see how many missions under a campaign
  319.         if (
  320.             isset($arrExtra["campaign_id"])
  321.             && !isset($arrExtra["institution_id"])
  322.             && !isset($arrExtra["network_id"])
  323.             && !isset($arrExtra["host_id"])
  324.         ){
  325.             //start mission_count handler
  326.             $arrSqlMissions = array(); // All exceptions within this array will be AND joined
  327.             $arrSqlMissions[] = "campaign_id = " . $arrExtra["campaign_id"];
  328.            
  329.             $strSqlMissions = "
  330.             SELECT
  331.                 COUNT(1) as mission_count
  332.             FROM
  333.                 missions
  334.             WHERE
  335.             ";
  336.             /*
  337.                 Using arrExtra, an institution can be selected by id or using a host id
  338.                 and/or network id.
  339.             */         
  340.             if (
  341.                 isset($arrExtra["institution_id"])
  342.                 && !isset($arrExtra["host_id"])
  343.                 && !isset($arrExtra["network_id"])
  344.             ){
  345.                 $arrSqlMissions[] = "(institution_id = " . $arrExtra["institution_id"].")";
  346.             }
  347.             if (
  348.                 isset($arrExtra["host_id"])
  349.                 || isset($arrExtra["network_id"])
  350.             ){
  351.                 $strSubSql = "
  352.                     SELECT
  353.                         institution_id
  354.                     FROM
  355.                         institutions
  356.                     WHERE
  357.                         ";
  358.                 $arrSubSql = array();
  359.                 if ( // Select host
  360.                     isset($arrExtra["host_id"])
  361.                 ) {
  362.                     $arrSubSql[] = "(
  363.                         institution_id={$arrExtra["host_id"]}
  364.                         AND host_id = 0
  365.                         AND network_id = 0
  366.                     )";
  367.                 }
  368.                 if ( // Select network
  369.                     isset($arrExtra["network_id"])
  370.                 ) {
  371.                     $arrSubSql[] = "(
  372.                         institution_id={$arrExtra["network_id"]}
  373.                         AND network_id = 0
  374.                         AND host_id != 0
  375.                     )";
  376.                 }
  377.                 if ( // Select institution
  378.                     isset($arrExtra["institution_id"])
  379.                 ) {
  380.                     $arrSubSql[] = "(
  381.                         institution_id={$arrExtra["institution_id"]}
  382.                         AND network_id != 0
  383.                         AND host_id != 0
  384.                     )";
  385.                 }
  386.                 if(!empty($arrSqlMissions))
  387.                 {
  388.                     $arrSqlMissions[] = "institution_id IN (" . $strSubSql . "(" . join(" OR ", $arrSubSql) . "))";
  389.                 }              
  390.             }
  391.             if (count($arrSqlMissions))
  392.             {
  393.                 $strSqlMissions .= " (" . join(" OR ", $arrSqlMissions) . ")";
  394.             }
  395.             //print 'mission_count: ';
  396.             //print $strSqlMissions .'<br />'; //exit;
  397.             $arrResult = $this->_db->fetchAll($strSqlMissions);
  398.             return $arrResult;
  399.             exit;
  400.             //end of mission_count handler
  401.         }
  402.        
  403.         //see how many tasks under a mission
  404.         if (
  405.             isset($arrExtra["mission_id"])
  406.             && !isset($arrExtra["campaign_id"])
  407.             && !isset($arrExtra["institution_id"])
  408.             && !isset($arrExtra["network_id"])
  409.             && !isset($arrExtra["host_id"])
  410.         ){
  411.             //start task_count handler
  412.             $arrSqlTasks = array();
  413.             $arrSqlTasks[] = "
  414.                 (
  415.                     tasks.mission_id = " . $arrExtra["mission_id"]."
  416.                 )";
  417.                
  418.             $strSqlTasks = "
  419.             SELECT
  420.                 COUNT(1) as task_count
  421.             FROM
  422.                 tasks
  423.             WHERE
  424.                 ";
  425.             /*
  426.                 Using arrExtra, an institution can be selected by id or using a host id
  427.                 and/or network id.
  428.             */ 
  429.            
  430.             if (
  431.                 isset($arrExtra["institution_id"])
  432.                 && !isset($arrExtra["host_id"])
  433.                 && !isset($arrExtra["network_id"])
  434.             )
  435.                 $arrSqltasks[] = "(institution_id = " . $arrExtra["institution_id"].")";
  436.             if(isset($arrExtra["campaign_id"]))
  437.             {
  438.                 $arrSqltasks[] = "(campaign_id = " . $arrExtra["campaign_id"].")";
  439.             }
  440.             if(isset($arrExtra["mission_id"]))
  441.             {
  442.                 $arrSqltasks[] = "(mission_id = " . $arrExtra["mission_id"].")";
  443.             }
  444.             if(!empty($arrSqltasks))
  445.             {
  446.                 $strSqlTasks .= " (" . join(" AND ", $arrSqltasks) . ")";
  447.             }
  448.             if (
  449.                 isset($arrExtra["host_id"])
  450.                 || isset($arrExtra["network_id"])
  451.             ) {
  452.                 $strSubSql = "
  453.                     SELECT
  454.                         institution_id
  455.                     FROM
  456.                         institutions
  457.                     WHERE
  458.                         ";
  459.                 $arrSubSql = array();
  460.                 if ( // Select host
  461.                     isset($arrExtra["host_id"])
  462.                 ) {
  463.                     $arrSubSql[] = "(
  464.                         institution_id={$arrExtra["host_id"]}
  465.                         AND host_id = 0
  466.                         AND network_id = 0
  467.                     )";
  468.                 }
  469.                 if ( // Select network
  470.                     isset($arrExtra["network_id"])
  471.                 ) {
  472.                     $arrSubSql[] = "(
  473.                         institution_id={$arrExtra["network_id"]}
  474.                         AND network_id = 0
  475.                         AND host_id != 0
  476.                     )";
  477.                 }
  478.                 if ( // Select institution
  479.                     isset($arrExtra["institution_id"])
  480.                 ) {
  481.                     $arrSubSql[] = "(
  482.                         institution_id={$arrExtra["institution_id"]}
  483.                         AND network_id != 0
  484.                         AND host_id != 0
  485.                     )";
  486.                 }
  487.                 $arrSqltasks[] = "institution_id IN (" . $strSubSql . "(" . join(" OR ", $arrSubSql) . "))";
  488.             }
  489.             if (count($arrSqltasks)) {
  490.                 $strSqlTasks .= " AND (" . join(" OR ", $arrSqltasks) . ")";
  491.             }
  492.             //print 'strSqlTasks: ' .$strSqlTasks; exit;
  493.             $arrResult = $this->_db->fetchAll($strSqlTasks);
  494.             return $arrResult;
  495.             exit;
  496.             //end of task_count handler
  497.         }
  498.         if(//if no tables are selected throw an error
  499.             count($arrSql)
  500.             && !empty($arrTable)
  501.         ){
  502.             $strSql .= join(" , ",$arrTable) ." WHERE " .join(" OR " , $arrSql).";";
  503.         }
  504.         else
  505.         {      
  506.             print "Sorry, there was an error: MI-RC101-123KJG";        
  507.         }
  508.         print 'resource_count: ';
  509.         print $strSql  .'<br />'; //exit;
  510.         $arrResult = $this->_db->fetchAll($strSql);
  511.         return $arrResult;
  512.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement