#!/usr/bin/php
<?php
$action = !empty($argv[1]) ? $argv[1] : 0;
$retval = !empty($argv[2]) ? $argv[2] : 0;
$id     = !empty($argv[3]) ? $argv[3] : 0;

logout(true,'--- Start ---',"action=$action retval=$retval id=$id");
if ($action != 'confirm') {
  exit;
}

$CFILES = array('bukwserver'  => '/etc/opt/bukwserver/config.cfg',
                'bukxmsg' => '/etc/opt/bukxmsg/bukxmsg.cfg',
);
$CFG = array(
  'bukwserver' => array(
    'default' => array(
      'host' => 'localhost',
      'placenum' => 0,
    ),
  ),
  'bukxmsg' => array(
    'default' => array(
      'tmrepm' => '5'
    ),
    'dbase' => array(
      'port' => 5432, 
      'name' => 'ubuk', 
      'user' => 'bukts', 
      'passwd' => '',
    ),
  ),
); 

foreach ($CFILES as $name => $file) {
  if (!is_file($file)) continue;
  $a = explode("\n",strtolower(str_replace(array('#',';',"\r","\t",' ',']'),array('=','=','','','','='),file_get_contents($file))));
  $sec = 'default';
  foreach($a as $line) {
    if (empty($line) || $line[0] == '=') continue;
    $b = explode('=',$line);
    if (empty($b[0])) continue;
    if ($b[0][0] == '[') {
      $sec = substr($b[0],1);
      continue;
    }
    if (empty($b[1])) continue;
    $key = $b[0];
    $CFG[$name][$sec][$key] = $b[1];
  }
}

if (empty($CFG['bukxmsg']['dbase']['server'])) {
  $CFG['bukxmsg']['dbase']['server'] = !empty($CFG['bukwserver']['default']['host']) ? $CFG['bukwserver']['default']['host'] : 'localhost';
}

$server = $CFG['bukxmsg']['dbase']['server'];
$work_place = $CFG['bukwserver']['default']['placenum'];
logout(true,"--- server:$server work_place=$work_place ---");

if (!empty($id) && ($retval == 1 || $retval == 2)) {
  $conn = 'host='.$CFG['bukxmsg']['dbase']['server']
        .' port='.$CFG['bukxmsg']['dbase']['port']
        .' dbname='.$CFG['bukxmsg']['dbase']['name']
        .' user='.$CFG['bukxmsg']['dbase']['user']
        .' password='.$CFG['bukxmsg']['dbase']['passwd'];
  logout(true,'Подключение к БД',$conn);
  $_DBCONN_ = pg_connect($conn);
  if (empty($_DBCONN_)) {
      logout(true,'Ошибка подключения к базе данных',$conn);
      exit;
  }
  if ($retval == 1) {
    $stat = 1;
    $sql = "update ltranz.sj_notice set time_done=now(), status=$stat where id=$id";
  } else {
    $tmrepm = $CFG['bukxmsg']['default']['tmrepm'];
    $sql = "update ltranz.sj_notice set time_show=now()+$tmrepm*interval'1 minute' where id=$id";
  }
  logout(true,'Запрос к БД',$sql);
  $rs = pg_query($sql);
  if (empty($rs)) {
    logout(true,'Ошибка запроса к базе данных',$sql);
  }
}

exit;

function logout($bool, $txt, $rem='') {
  global $debug;
  $dt = date('ymd');
  
  $t = microtime(true);
  $micro = sprintf("%06d",($t - floor($t)) * 1000000);
  $d = new DateTime( date('Y-m-d H:i:s.'.$micro, $t) );
  $time = $d->format("Y-m-d H:i:s.u");
  if ($bool == false) return;
  $o = "$time\t$txt";
  if (!empty($rem)) {
    $o .= "\t$rem";
  }
  $o .= "\n";
  if ($debug) {
    echo $o;
  }
  file_put_contents("/var/opt/bukxmsg/log/bukxmsgcntl.$dt.log", $o, FILE_APPEND);
}

?>
