Advertisement
Guest User

Untitled

a guest
Dec 26th, 2016
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.41 KB | None | 0 0
  1. #-----------------------------------------------------------------#
  2. #-- --#
  3. #--
  4. #--
  5. #--
  6. #-----------------------------------------------------------------
  7.  
  8. #!/usr/bin/perl
  9. #use strict;
  10. #use warnings;
  11.  
  12. use DBI;
  13. use Excel::Writer::XLSX;
  14. use POSIX qw(strftime);
  15.  
  16.  
  17. #-variables
  18. $today = "2016-10-18";
  19. $yesterday = "2016-10-18";
  20. $tomorrow = "";
  21.  
  22. #-database parameters
  23. $hostname = "localhost";
  24. $username = "root";
  25. $password = "Sjo*z800";
  26. $database ="asterisk";
  27.  
  28. $dbh = DBI->connect("DBI:mysql:$database:$hostname", $username, $password)
  29. or die "Unable to connect to MySQL Server: $DBI::errstr\n";
  30.  
  31.  
  32. $workbook = Excel::Writer::XLSX->new( '/home/laguilar/HHRR_v3.xlsx' );
  33. $worksheet = $workbook->add_worksheet();
  34.  
  35. #-common formats
  36. $titles = $workbook->add_format(
  37. border => 0,
  38. bold => 1,
  39. size => 10,
  40. valign => 'vcenter',
  41. align => 'center',);
  42. $headers = $workbook->add_format(
  43. border => 0,
  44. bold => 1,
  45. size => 9,
  46. valign => 'vcenter',
  47. align => 'center',);
  48. $cells = $workbook->add_format(
  49. border => 0,
  50. bold => 0,
  51. size => 9,
  52. valign => 'vcenter',
  53. align => 'center',);
  54. $cellsr = $workbook->add_format(
  55. border => 0,
  56. bold => 0,
  57. size => 9,
  58. valign => 'vcenter',
  59. align => 'rigth',);
  60. $cellsl = $workbook->add_format(
  61. border => 0,
  62. bold => 0,
  63. size => 9,
  64. valign => 'vcenter',
  65. align => 'left',);
  66.  
  67.  
  68.  
  69. #-set headers
  70. $worksheet->merge_range("B2:C2", "AGENT INFO", $titles);
  71. $worksheet->write("B3", "CODE", $headers);
  72. $worksheet->write("C3", "NAME", $headers);
  73. $worksheet->set_column('B3:C3', 15);
  74.  
  75. $worksheet->merge_range("E2:H2", "SCHEDULE INFO", $titles);
  76. $worksheet->write("E3", "LOG-IN", $headers);
  77. $worksheet->write("F3", "LOG-OUT", $headers);
  78. $worksheet->write("G3", "TYPE", $headers);
  79. $worksheet->write("H3", "HOURS", $headers);
  80. $worksheet->set_column('E3:F3', 20);
  81.  
  82. #$worksheet->merge_range("J2:O2", "TIME CONDITIONS", $titles);
  83. #$worksheet->write("J3", "CALLS", $headers);
  84. #$worksheet->write("K3", "TALK", $headers);
  85. #$worksheet->write("L3", "WAIT", $headers);
  86. #$worksheet->write("M3", "DISPO", $headers);
  87. #$worksheet->write("N3", "DEAD", $headers);
  88. #$worksheet->write("O3", "PAUSE", $headers);
  89.  
  90.  
  91. #$worksheet->write("Q3", "LOGIN", $cells);
  92. #$worksheet->write("R3", "", $cells);
  93.  
  94.  
  95. #$query = "select distinct(pause_code) from vicidial_pause_codes order by pause_code asc;";
  96.  
  97. $query = "SELECT distinct(val.user),full_name FROM vicidial_agent_log val,vicidial_users vu WHERE event_time>='2016-10-18 00:00:00' AND event_time<='2016-10-18 23:59:59' AND val.user=vu.user AND val.user_group IN ('GDigital') ORDER BY vu.full_name ASC;";
  98.  
  99. $sqlQuery = $dbh->prepare($query)
  100. or die "Can't prepare MySQL Query $query: $dbh->errstr\n";
  101.  
  102. $rv = $sqlQuery->execute
  103. or die "Can't excecute the query: $sqlQuery->errstr\n";
  104.  
  105. $row = 3;
  106. $agent = "";
  107. while (@row= $sqlQuery->fetchrow_array()) {
  108. $agent=$row[0];
  109. $worksheet->write($row,1,"$row[0]",$cells);
  110. $worksheet->write($row,2, $row[1], $cellsl);
  111.  
  112. #-login information
  113. $queryLI = $dbh->prepare("SELECT pause_epoch FROM vicidial_agent_log WHERE event_time>='$today 00:00:00' AND event_time<='$today 23:59:59' AND user='$agent' LIMIT 1;");
  114. $rsetLI = $queryLI->execute() or die "Unable to execute sql: $queryLI->errstr";
  115. while (($login) = $queryLI->fetchrow_array()) {
  116. $login = strftime '%Y/%m/%d %H:%M:%S', localtime $login;
  117. $worksheet->write($row,4,$login,$cells);
  118. }
  119.  
  120. #-logout information
  121. $queryLO = $dbh->prepare("SELECT pause_epoch,pause_sec,wait_sec,talk_sec,dispo_sec FROM vicidial_agent_log WHERE event_time>='$today 00:00:00' AND event_time<='$today 23:59:59' AND user='$agent' ORDER BY event_time DESC LIMIT 1;");
  122. $rsetLO = $queryLO->execute() or die "Unable to execute sql: $queryLO->errstr";
  123. while (($logout) = $queryLO->fetchrow_array()) {
  124. $logout = strftime '%Y/%m/%d %H:%M:%S', localtime $logout;
  125. $worksheet->write($row,5,$logout,$cells);
  126. }
  127.  
  128. #-schedule type
  129. $type = 'D';
  130. if ($logout > '$today 20:00:00' && $logout < 'tomorrow 00:59:59') {
  131. $type = 'M';
  132. }
  133. if($logout >= 'tomorrow 00:59:59') {
  134. $type = 'N';
  135. }
  136. $worksheet->write($row,6,$type,$cells);
  137.  
  138. #-working hours
  139.  
  140.  
  141.  
  142. $row++;
  143. }
  144.  
  145. $rv = $sqlQuery->finish;
  146. #exit(0);
  147.  
  148.  
  149. $workbook->close;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement