Advertisement
Guest User

Asignacion

a guest
Jul 6th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 4.73 KB | None | 0 0
  1. #use strict;
  2.  
  3.  #       use warnings;
  4.  use URI::Escape;
  5.  use WWW::Curl::Easy;
  6. use Time::HiRes qw(time);
  7. use POSIX qw(strftime);
  8. use DBI;     
  9.  
  10. use File::Compare;
  11.  
  12.  
  13. my $PATHconf =      '/etc/astguiclient.conf';
  14.  
  15.  
  16. open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n";
  17. @conf = <conf>;
  18. close(conf);
  19. $i=0;
  20. foreach(@conf)
  21.     {
  22.     $line = $conf[$i];
  23.    
  24.     $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi;
  25.    
  26.     if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) )
  27.         {$PATHlogs = $line;   $PATHlogs =~ s/.*=//gi;}
  28.     if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) )
  29.         {$PATHsounds = $line;   $PATHsounds =~ s/.*=//gi;}
  30.     if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) )
  31.         {$VARserver_ip = $line;   $VARserver_ip =~ s/.*=//gi;}
  32.     if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) )
  33.         {$VARDB_server = $line;   $VARDB_server =~ s/.*=//gi;}
  34.     if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) )
  35.         {$VARDB_database = $line;   $VARDB_database =~ s/.*=//gi;}
  36.     if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) )
  37.         {$VARDB_user = $line;   $VARDB_user =~ s/.*=//gi;}
  38.     if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) )
  39.         {$VARDB_pass = $line;   $VARDB_pass =~ s/.*=//gi;}
  40.     if ( ($line =~ /^VARDB_custom_user/) && ($CLIDB_custom_user < 1) )
  41.         {$VARDB_custom_user = $line;   $VARDB_custom_user =~ s/.*=//gi;}
  42.     if ( ($line =~ /^VARDB_custom_pass/) && ($CLIDB_custom_pass < 1) )
  43.         {$VARDB_custom_pass = $line;   $VARDB_custom_pass =~ s/.*=//gi;}
  44.     if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) )
  45.         {$VARDB_port = $line;   $VARDB_port =~ s/.*=//gi;}
  46.     $i++;
  47.     }
  48.  
  49. $dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass")
  50.  or die "Couldn 't connect to database: " . DBI->errstr;
  51.  
  52.  
  53.  #SlaveDB
  54.     $VARDB_serverSlave="64.37.68.163";
  55.     $VARDB_userSlave="slave";
  56.     $VARDB_passSlave="slave1234";
  57.    
  58.  $dbhSlave = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_serverSlave:$VARDB_port", "$VARDB_userSlave", "$VARDB_passSlave")
  59.  or die "Couldn 't connect to database: " . DBI->errstr;
  60.  
  61.     my $sql = "SELECT a.list_id,t1.ActiveFlag
  62. FROM vicidial_lists a
  63.     JOIN
  64.     (SELECT a.list_id,
  65.             dh.DailyTotal,
  66.             a.daily_success_cap,
  67.             CASE
  68.                WHEN     a.allow_list_login_schedule = '1'
  69.                     AND asterisk.f_CheckCallTime( a . list_login_schedule)     =    0
  70.                THEN
  71.                   'N'
  72.                WHEN     a.enable_daily_success_cap = 'Y'
  73.                     AND dh.DailyTotal >= a.daily_success_cap
  74.                THEN
  75.                   'N'
  76.                WHEN     a.enable_hourly_success_cap = 'Y'
  77.                     AND dh.hourlyTotal >= a.hourly_success_cap
  78.                THEN
  79.                   'N'
  80.                ELSE
  81.                   'Y'
  82.             END
  83.                AS ActiveFlag
  84.      FROM vicidial_lists a
  85.           LEFT JOIN
  86.           (SELECT a.list_id,
  87.                   count(0)
  88.                      DailyTotal,
  89.                   sum(if(hour(event_time) = hour(now()), 1, 0))
  90.                      AS HourlyTotal
  91.            FROM vicidial_agent_log b JOIN vicidial_list a USING (lead_id)
  92.            WHERE     b.event_time > curdate()
  93.                  AND b.status IN (SELECT status
  94.                                   FROM vicidial_statuses
  95.                                   WHERE vicidial_statuses.sale = 'Y'
  96.                                   UNION ALL
  97.                                   SELECT status
  98.                                   FROM vicidial_campaign_statuses
  99.                                   WHERE sale = 'Y')
  100.            GROUP BY 1) AS dh
  101.              ON dh.list_id = a.list_id
  102.      WHERE (   a.enable_hourly_success_cap = 'Y'
  103.             OR a.enable_daily_success_cap = 'Y'
  104.             OR a.allow_list_login_schedule = '1')) AS t1
  105.        ON t1.list_id = a.list_id
  106. WHERE a.active <> t1.ActiveFlag;";
  107. my $sth = $dbhSlave->prepare($sql);
  108. $sth->execute();
  109. while (my @row = $sth->fetchrow_array) {
  110.    $sql= "update vicidial_lists set active='$row[1]' where list_id ='$row[0]' limit 1;\n";
  111.    $affected_rows = $dbhA->do($sql); #  or die  "Couldn't execute query:|$stmtA|\n";
  112.    $update ="insert into  vicidial_admin_log ( event_date, user, ip_address, event_section, event_type, record_id, event_code, event_sql, event_notes, user_group) values (now(),'system_user','localhost','LISTS','MODIFY',$row[0],'ADMIN MODIFY LIST',\"$sql\",'auto_activate_lists.pl','---ALL---') ";
  113.   $affected_rows = $dbhA->do($update);
  114.   #print $sql."--->".$update;
  115.    
  116. }
  117.    
  118. #SELECT STATEMENT
  119. $stmtA = "delete from vicidial_hopper   where list_id in (select list_id from vicidial_lists where vicidial_lists.active='N');";
  120.     $affected_rows = $dbhA->do($stmtA); #  or die  "Couldn't execute query:|$stmtA|\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement