Advertisement
Guest User

Untitled

a guest
May 23rd, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 8.65 KB | None | 0 0
  1. <?php
  2. $server="192.168.40.134";
  3. $user="IC_PHP";
  4. $pass="reports";
  5.  
  6. $memcache = memcache_connect('192.168.40.222', 11211);
  7.  
  8. if( $memcache == false ) {
  9.     exit("Unable to connect to memcache");
  10. }
  11.  
  12. $conn=mssql_connect($server,$user,$pass);
  13.  
  14. mssql_select_db('I3_IC_TEST',$conn);
  15.  
  16. if($conn==false){
  17. echo "Not able to connect to database..<br>";
  18. }
  19.  
  20. $arguement = $argv[1];
  21. if ($arguement == "svl_mtd") {
  22.  
  23.     $sql_svl_array_mtd = mssql_query("SELECT
  24.         CAST((SUM(CAST(NANSWEREDACDSVCLVL1 AS DECIMAL(5,1)))+
  25.         SUM(CAST(NANSWEREDACDSVCLVL2 AS DECIMAL(5,1))))/SUM(CAST(NANSWEREDACD AS DECIMAL(5,1)))*100 AS DECIMAL(5,1)) AS SVL_30
  26.  
  27.         FROM I3_IC_TEST.DBO.IWRKGRPQUEUESTATS A
  28.  
  29.         WHERE A.CNAME  in ('CUSTOMER SERVICE', 'BUSINESS SERVICES', 'GEEKS ON WHEELS', 'SALES & BILLING') AND
  30.         A.CREPORTGROUP = '*' AND
  31.  
  32.         CONVERT(VARCHAR, A.DINTERVALSTART, 101) >= DATEADD(MONTH,DATEDIFF(MONTH,0,CURRENT_TIMESTAMP),0)
  33.  
  34.         GROUP BY CONVERT(VARCHAR,A.DINTERVALSTART, 110)
  35.         ORDER BY CONVERT(VARCHAR,A.DINTERVALSTART, 110)");
  36.  
  37.     if( ! mssql_num_rows( $sql_svl_array_mtd ) ) { exit(); }
  38.    
  39.     $results = make_array( $sql_svl_array_mtd );
  40.    
  41.     if( ! empty( $results ) ) {
  42.         $key = "svl_array_mtd";
  43.         if( ! update_memcache( $memcache, $key, $results ) ) {
  44.             exit("ERROR");
  45.         }  
  46.     }
  47. }
  48.  
  49. else if ( $arguement == "svl_array_30_minute" ) {
  50.                            
  51. $sql_svl_array_30_minute = mssql_query("SELECT
  52.  
  53.                             CASE WHEN SUM(CAST(NANSWEREDACD AS DECIMAL(5,1))) = 0 THEN 100 ELSE
  54.                             CAST((SUM(CAST(NANSWEREDACDSVCLVL1 AS DECIMAL(5,1)))+
  55.                             SUM(CAST(NANSWEREDACDSVCLVL2 AS DECIMAL(5,1))))/SUM(CAST(NANSWEREDACD AS DECIMAL(5,1)))*100 AS DECIMAL(5,1))  END AS SVL_30
  56.  
  57.                             FROM I3_IC_TEST.DBO.IWRKGRPQUEUESTATS A
  58.  
  59.                             WHERE A.CNAME  in ('CUSTOMER SERVICE', 'BUSINESS SERVICES', 'GEEKS ON WHEELS', 'SALES & BILLING') AND
  60.                             A.CREPORTGROUP = '*' AND
  61.  
  62.                             CONVERT(VARCHAR, A.DINTERVALSTART, 101) = CONVERT(VARCHAR, CURRENT_TIMESTAMP, 101)
  63.  
  64.                             GROUP BY A.DINTERVALSTART
  65.                             ORDER BY CONVERT(VARCHAR,A.DINTERVALSTART, 110), A.DINTERVALSTART");
  66.                            
  67.     if( ! mssql_num_rows( $sql_svl_array_30_minute ) ) { exit(); }
  68.    
  69.     $results = make_array( $sql_svl_array_30_minute );
  70.    
  71.     if( ! empty( $results ) ) {
  72.         $key = "svl_array_30_minute";
  73.         if( ! update_memcache( $memcache, $key, $results ) ) {
  74.             exit("ERROR");
  75.         }  
  76.     }
  77. }
  78.  
  79. else if ( $arguement == "svl_array_ytd" ) {                    
  80. $sql_svl_array_ytd = mssql_query("SELECT
  81.                                                                                
  82.                             CAST((SUM(CAST(NANSWEREDACDSVCLVL1 AS DECIMAL(5,1)))+
  83.                             SUM(CAST(NANSWEREDACDSVCLVL2 AS DECIMAL(5,1))))/SUM(CAST(NANSWEREDACD AS DECIMAL(5,1)))*100 AS DECIMAL(5,1)) AS SVL_30
  84.  
  85.                             FROM I3_IC_TEST.DBO.IWRKGRPQUEUESTATS A
  86.  
  87.                             WHERE A.CNAME  in ('CUSTOMER SERVICE', 'BUSINESS SERVICES', 'GEEKS ON WHEELS', 'SALES & BILLING') AND
  88.                             A.CREPORTGROUP = '*' AND
  89.  
  90.                             YEAR(CONVERT(VARCHAR, A.DINTERVALSTART, 101)) = YEAR(CURRENT_TIMESTAMP)
  91.  
  92.                             GROUP BY CONVERT(VARCHAR,A.DINTERVALSTART, 110)
  93.                             ORDER BY CONVERT(VARCHAR,A.DINTERVALSTART, 110)");
  94.  
  95.     if( ! mssql_num_rows( $sql_svl_array_ytd ) ) { exit(); }
  96.    
  97.     $results = make_array( $sql_svl_array_ytd );
  98.    
  99.     if( ! empty( $results ) ) {
  100.         $key = "svl_array_ytd";
  101.         if( ! update_memcache( $memcache, $key, $results ) ) {
  102.             exit("ERROR");
  103.         }  
  104.     }  
  105. }
  106.  
  107. else if ( $arguement == "svl_array_ytd_30_minute" ) {
  108. $sql_svl_array_ytd_30_minute = mssql_query("SELECT
  109.  
  110.                             CASE WHEN SUM(CAST(NANSWEREDACD AS DECIMAL(5,1))) = 0 THEN 100 ELSE
  111.                             CAST((SUM(CAST(NANSWEREDACDSVCLVL1 AS DECIMAL(5,1)))+
  112.                             SUM(CAST(NANSWEREDACDSVCLVL2 AS DECIMAL(5,1))))/SUM(CAST(NANSWEREDACD AS DECIMAL(5,1)))*100 AS DECIMAL(5,1))  END AS SVL_30
  113.  
  114.                             FROM I3_IC_TEST.DBO.IWRKGRPQUEUESTATS A
  115.  
  116.                             WHERE A.CNAME  in ('CUSTOMER SERVICE', 'BUSINESS SERVICES', 'GEEKS ON WHEELS', 'SALES & BILLING') AND
  117.                             A.CREPORTGROUP = '*' AND
  118.  
  119.                             YEAR(CONVERT(VARCHAR, A.DINTERVALSTART, 101)) = YEAR(CURRENT_TIMESTAMP)
  120.  
  121.                             GROUP BY A.DINTERVALSTART
  122.                             ORDER BY CONVERT(VARCHAR,A.DINTERVALSTART, 110), A.DINTERVALSTART");
  123.  
  124.     if( ! mssql_num_rows( $sql_svl_array_ytd_30_minute ) ) { exit(); }
  125.    
  126.     $results = make_array( $sql_svl_array_ytd_30_minute );
  127.    
  128.     if( ! empty( $results ) ) {
  129.         $key = "svl_array_ytd_30_minute";
  130.         if( ! update_memcache( $memcache, $key, $results ) ) {
  131.             exit("ERROR");
  132.         }  
  133.     }
  134. }
  135.  
  136. else if ( $arguement == "svl_array_ytd_by_month" ) {                           
  137. $sql_svl_array_ytd_by_month = mssql_query("SELECT
  138.                                                                                
  139.                             CAST((SUM(CAST(NANSWEREDACDSVCLVL1 AS DECIMAL(5,1)))+
  140.                             SUM(CAST(NANSWEREDACDSVCLVL2 AS DECIMAL(5,1))))/SUM(CAST(NANSWEREDACD AS DECIMAL(5,1)))*100 AS DECIMAL(5,1)) AS SVL_30
  141.  
  142.                             FROM I3_IC_TEST.DBO.IWRKGRPQUEUESTATS A
  143.  
  144.                             WHERE A.CNAME  in ('CUSTOMER SERVICE', 'BUSINESS SERVICES', 'GEEKS ON WHEELS', 'SALES & BILLING') AND
  145.                             A.CREPORTGROUP = '*' AND
  146.  
  147.                             YEAR(CONVERT(VARCHAR, A.DINTERVALSTART, 101)) = YEAR(CURRENT_TIMESTAMP)
  148.  
  149.                             GROUP BY MONTH(CONVERT(VARCHAR,A.DINTERVALSTART, 110))
  150.                             ORDER BY MONTH(CONVERT(VARCHAR,A.DINTERVALSTART, 110))");
  151.  
  152.     if( ! mssql_num_rows( $sql_svl_array_ytd_by_month ) ) { exit(); }
  153.    
  154.     $results = make_array( $sql_svl_array_ytd_by_month );
  155.    
  156.     if( ! empty( $results ) ) {
  157.         $key = "svl_array_ytd_by_month";
  158.         if( ! update_memcache( $memcache, $key, $results ) ) {
  159.             exit("ERROR");
  160.         }  
  161.     }
  162. }
  163.  
  164. else if ( $arguement == "agent_occupancy_detail_mtd" ) {
  165.  
  166. $sql_agent_occupancy_detail_mtd = mssql_query("SELECT
  167.                             LEFT(UPPER(A.USERID),10) AS Agent,
  168.                             CAST(100 -
  169.                             (SUM(CAST(CASE WHEN A.STATUSKEY IN ('FOLLOW UP', 'AFTER CALL WORK') THEN A.stateduration ELSE 0 END AS float))/
  170.                             SUM(CAST(CASE WHEN A.STATUSKEY NOT IN ('AT LUNCH', 'AT BREAK', 'GONE HOME', 'ON VACATION') and A.stateduration > 0 THEN A.stateduration ELSE 1 END AS float))*100) -
  171.  
  172.                             (SUM(CAST(CASE WHEN A.STATUSKEY IN ('AWAY FROM DESK', 'DO NOT DISTURB', 'PERSONAL', 'ON OUTBOUND CALL') THEN A.stateduration ELSE 0 END AS float))/
  173.                             SUM(CAST(CASE WHEN A.STATUSKEY NOT IN ('AT LUNCH', 'AT BREAK', 'GONE HOME', 'ON VACATION') AND A.stateduration > 0 THEN A.stateduration ELSE 1 END AS float))*100) AS DECIMAL(5,1)) AS Occupancy
  174.  
  175.                                                        
  176.                             FROM I3_IC_TEST.DBO.AGENTACTIVITYLOG A, I3_IC_TEST.DBO.USERWORKGROUPS B
  177.  
  178.                             WHERE CONVERT(VARCHAR, A.STATUSDATETIME, 101) >= DATEADD(MONTH,DATEDIFF(MONTH,0,CURRENT_TIMESTAMP),0) AND
  179.                             LEFT(UPPER(A.USERID),10) = LEFT(UPPER(B.USERID),10) AND
  180.                             B.WORKGROUP = 'CALLBACK GROUP'
  181.  
  182.                             GROUP BY LEFT(UPPER(A.USERID),10)
  183.  
  184.                             ORDER BY CAST(100 -
  185.                             (SUM(CAST(CASE WHEN A.STATUSKEY IN ('FOLLOW UP', 'AFTER CALL WORK') THEN A.stateduration ELSE 0 END AS float))/
  186.                             SUM(CAST(CASE WHEN A.STATUSKEY NOT IN ('AT LUNCH', 'AT BREAK', 'GONE HOME', 'ON VACATION') and A.stateduration > 0 THEN A.stateduration ELSE 1 END AS float))*100) -
  187.  
  188.                             (SUM(CAST(CASE WHEN A.STATUSKEY IN ('AWAY FROM DESK', 'DO NOT DISTURB', 'PERSONAL', 'ON OUTBOUND CALL') THEN A.stateduration ELSE 0 END AS float))/
  189.                             SUM(CAST(CASE WHEN A.STATUSKEY NOT IN ('AT LUNCH', 'AT BREAK', 'GONE HOME', 'ON VACATION') AND A.stateduration > 0 THEN A.stateduration ELSE 1 END AS float))*100) AS DECIMAL(5,1)) DESC");
  190.  
  191.     if( ! mssql_num_rows( $sql_agent_occupancy_detail_mtd ) ) { exit(); }
  192.    
  193.     $results = make_table( $sql_agent_occupancy_detail_mtd );
  194.    
  195.     if( ! empty( $results ) ) {
  196.         $key = "agent_occupancy_detail_mtd";
  197.         if( ! update_memcache( $memcache, $key, $results ) ) {
  198.             exit("ERROR");
  199.         }  
  200.     }
  201. }
  202.  
  203.  
  204. /* make_array ( $data )
  205.    returns a string of results from the query
  206.    in a [ data ] result set
  207. */
  208. function make_array( $data ) {
  209.     $results = array();
  210.     while( $row = mssql_fetch_array( $data ) ) {
  211.         array_push( $results, $row[0] );
  212.     }
  213.    
  214.     $stats = implode(", ", $results);
  215.     return "[" . $stats . "]";
  216. }
  217. // END OF function make_array()
  218.  
  219. /* Update Memcache Function */
  220. function update_memcache( $memcache, $key, $value ) {
  221.        
  222.         if( memcache_get( $memcache, $key ) ) {
  223.             memcache_replace( $memcache, $key, $value, 0, 0);
  224.             return 1;
  225.         } else {
  226.             memcache_set( $memcache, $key, $value, 0, 0);
  227.             return 1;
  228.         }
  229.         return 0;
  230. }
  231. // END OF update_memcache()
  232.  
  233. function make_table ($table) {
  234.             $results .= "<table id=\"datatablemtd\">
  235.             <thead>
  236.             <tr>
  237.             <th></th>
  238.             <th>Occupancy</th>
  239.             </tr>
  240.             </thead>
  241.             <tbody>";
  242.            
  243.     if (!mssql_num_rows($table)){
  244.         $results .= '<tr><td colspan="2">No Records Found</td></tr>';
  245.     }
  246.     else{
  247.         while ($row = mssql_fetch_assoc($table)){
  248.             $occupancy=$row['Occupancy'];
  249.                 $results .= '<tr>';
  250.                 $results .= '<td>'.$row['Agent'].'</td>';
  251.                 $results .= '<td>'.$row['Occupancy'].'</td>''</tr>';
  252.             }
  253.         $results .= "</tbody>";
  254.         $results .= "</table>";
  255.     return $results;
  256. }
  257.  
  258. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement