#!/usr/bin/php
<?php
//_l(date("Y-m-d H:i:s"));
$debug = false;

if (!empty($_SERVER['MOZSI_SERVER'])) {
  $con = mysql_connect("localhost","smsuser","smsuser");
  //_l("con:m");
} else {
  $con = mysql_connect("localhost","root","bgt5rfv");
}
mysql_select_db("gammusmsd");

//$post_url = "http://demo.mozsi.hu/oisz/sms/imp.php";
$post_url = "http://office.deltasoft.hu/sms/imp.php";

if (!$debug) {
  $sql = "SELECT * FROM inbox WHERE oiszparsed=0 ";
} else {
  $sql = "SELECT * FROM inbox WHERE ID=3133 ORDER BY ReceivingDateTime DESC LIMIT 1 ";
}
$r = mysql_query($sql);

while($data = mysql_fetch_object($r)) {
  $c = array(
    'receivedate'   =>  $data->ReceivingDateTime,
    'sender'        =>  $data->SenderNumber,
    'text'          =>  $data->TextDecoded,
  );
  if (preg_match("/^MKB ([0-9a-zA-Z\.]+)\W(.+)\W(\d{2})\.(\d{2}) (\d{1,2})\:(\d{2})\W([0-9\.]+) HUF\W(.+ [0-9\-]+)\W(.+)$/s",trim($c['text']),$matches)) {
    if ($debug) {
      _l("  ---matches---");
      var_dump($matches);
    }
    $c['szamla']      =  $matches[1];
    $c['muvelet']     =  $matches[2];
    $c['datum']       =  date("Y")."-".$matches[3]."-".$matches[4]." ".substr('0'.$matches[5],-2).":".substr('0'.$matches[6],-2).":00";
    $c['osszeg']      =  str_replace(".","",$matches[7]);
    $c['fizeto']      =  $matches[8];
    $c['megjegyzes']  =  $matches[9];
    unset($c['text']);
    $res = _post($c,"parse=ok");
    $parseok=1;
  } elseif (preg_match("/^MKB ([0-9a-zA-Z\.]+)\W(.+?)\W([0-9\.]+) HUF\W(.+)\WK.nyvelve: (\d{2})\.(\d{2})$/s",trim($c['text']),$matches)) {
    if ($debug) {
      _l("  ---matches---");
      var_dump($matches);
    }
    $c['szamla']      =  $matches[1];
    $c['muvelet']     =  $matches[2];
    $c['datum']       =  date("Y")."-".$matches[5]."-".$matches[6]." 00:00:00";
    $c['osszeg']      =  str_replace(".","",$matches[3]);
    $c['fizeto']      =  trim($matches[4]);
    $c['megjegyzes']  =  "";
    unset($c['text']);
    $res = _post($c,"parse=ok");
    $parseok=1;
	
//  } elseif (preg_match("/^K&H.+04 BANKSZLA.*?HUF([0-9a-zA-Z \.]+)\W(.+?)\W([0-9\.]+) HUF\W(.+)$/s",trim($c['text']),$matches)) {
  } elseif (preg_match("/^K&H.+(.. BANKSZLA)\WHUF\W(.*?)\\n.+?\W([0-9a-zA-Z \.]+) HUF\W(.+?)\\n(.+?)$/s",trim($c['text']),$matches)) {
    if ($debug) {
      _l("  ---matches---");
      var_dump($matches);
    }
    $szamlanev = trim($matches[1]);
    switch($szamlanev) {
      case '1 BANKSZLA':
        $szamlanev = 'Deltasoft';
        break;
      case '2 BANKSZLA':
        $szamlanev = 'Diamond';
        break;
      case '3 BANKSZLA':
        $szamlanev = 'IBN';
        break;
      case '4 BANKSZLA':
        $szamlanev = 'OISZ';
        break;
    }
    $c['szamla']      =  $szamlanev;
    $c['muvelet']     =  mb_convert_encoding($matches[2], 'UTF-8', 'AUTO');
    $c['datum']       =  $c['receivedate'];
    $c['osszeg']      =  str_replace(".","",$matches[3]);
    $c['fizeto']      =  trim($matches[4]);
    $c['megjegyzes']  =  mb_convert_encoding($matches[5], 'UTF-8', 'AUTO');
    unset($c['text']);
    $res = _post($c,"parse=ok");
    $parseok=1;
  /*
  J�v��r�s az DELTASOFT sz�ml�n 13.970,00 HUF. El�rhet� egyenleg: 3.321.999,3 HUF 2018.07.16 17:12:31 107000247088229651100005 NEON SIGN REKL�MTERM�KEKET G
  */
  } elseif (preg_match("/^.+?(DELTASOFT).+? ([0-9\.,]+) HUF\.\W(.+?) \d{24} (.+?)$/s",trim($c['text']) . '  ',$matches)) {
    if ($debug) {
      _l("  ---matches---");
      var_dump($matches);
    }
    $c['szamla']      =  'DELTASOFT';
    $c['muvelet']     =  "jovairas";
    $c['datum']       =  $c['receivedate'];
    $c['osszeg']      =  preg_replace("/,\d{2}/", "", str_replace(".","",$matches[2]));
    $c['fizeto']      =  trim($matches[4]);
    $c['megjegyzes']  =  $matches[5];
    unset($c['text']);
    $res = _post($c,"parse=ok");
    $parseok=1;

  } else {
    $res = _post($c,"parse=fail");
    $parseok=0;
  }
  if (!$debug) {
    if ($res['result']=='ok') {
      $sql = "UPDATE inbox SET oiszparsed=1, parseok={$parseok} WHERE ID='{$data->ID}' ";
      mysql_query($sql);
      _l(date("Y-m-d H:i:s").": send ok");
    } else {
      _l(date("Y-m-d H:i:s").": error, ".$res['error']."\n---\n".var_export($c,true));
    }
  }
}

function _l ($str) {
    echo $str . "\n";
}

function _post($data,$getparam) {
  global $post_url, $debug;
  if (!$debug) {
    $url = $post_url."?{$getparam}";
    $ch = curl_init();
    //if (unserialize(base64_decode(base64_encode(serialize($data)))) === false) {
    $data['fizeto'] = mb_convert_encoding($data['fizeto'],'UTF-8','AUTO');
    //}
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)');
    curl_setopt($ch, CURLOPT_POST, 1);
  
    curl_setopt($ch, CURLOPT_POSTFIELDS,"data=".base64_encode(serialize($data))."&fizeto=".mb_convert_encoding($data['fizeto'],'UTF-8','AUTO'));
//  var_export(unserialize(base64_decode(base64_encode(serialize($data)))));
    $result= curl_exec ($ch);
    $ret = array('result' => $result, 'error' => curl_error($ch));
    curl_close ($ch);
    return $ret;
  } else {
    _l("  ---data---");
    var_dump($data);
    var_dump($getparam);
    _l("---------------------");
    return array('result' => 'ok', 'error' => '');
  }
}
?>