<?php

$a = session_id();
if ($a == '')
  session_start();

chdir(dirname(__FILE__));

include_once("common/constants.inc");
include_once("common/db_utils.php");
include_once("common/segf.php");


class JobToClients {

  function __construct() {}
  
  function jobToClients() {

    $jobToClients = GetJobToClients();
    
    foreach($jobToClients as $job) {
      $felulet = GetFelulet($job["ragacslist_id"]);
      
      if (is_array($felulet)) {
        $cegId = $felulet["ceg_id"];
        $ragacsDatumAsTimeStamp = strtotime($felulet["ragasztas_datum"]);
        $lastUploadedPhotoDatum = $felulet["lastuploadedphoto_datum"];
        $kampanyId = $felulet["kampany_id"];
        $kampanyNev = $felulet["kampany_nev"];
        $feluletKod = $felulet["felulet_kod"];
        $sajatKod = $felulet["sajat_kod"];
        $uploadedPhoto = $felulet["uploadedphoto"];
        $kihelyezesiFotoDatumok = $felulet["kihelyezesi_foto_datumok"];
        $javitoFotoDatumok = $felulet["javito_foto_datumok"];
        $clientData = GetClientData($cegId);

        if (count($clientData) > 0) {
          $ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, $clientData["web_server"] . "/photo.php");
          curl_setopt($ch, CURLOPT_POST, 1);
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
          curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

          $files = array();
          $folder = PHOTO_DIRECTORY . date("Y", $ragacsDatumAsTimeStamp) . "/" . date("m", $ragacsDatumAsTimeStamp) . "/" . $kampanyId . "/" . date("Y.m.d.", $ragacsDatumAsTimeStamp);

          $filesTime = array();
          if (file_exists($folder)) {
            $fnames = scandir($folder);
            foreach ($fnames as $fname) {
//              if ($fname != "." && $fname != ".." && (strpos(strtoupper($fname), strtoupper($feluletKod)) !== false || (trim($sajatKod) != "" && strpos(strtoupper($fname), strtoupper($sajatKod)) !== false))) {
              if ($fname != "." && $fname != "..") {
                if (!is_dir($fname) && (fnmatch(strtoupper($feluletKod . ".jpg"), strtoupper(basename($fname))) !== false || fnmatch(strtoupper($feluletKod . "_J.jpg"), strtoupper(basename($fname))) !== false || fnmatch(strtoupper($feluletKod . "-F*.jpg"), strtoupper(basename($fname))) !== false || (trim($sajatKod) != "" && (fnmatch(strtoupper($sajatKod . ".jpg"), strtoupper(basename($fname))) !== false || fnmatch(strtoupper($sajatKod . "_J.jpg"), strtoupper(basename($fname))) !== false || fnmatch(strtoupper($sajatKod . "-F*.jpg"), strtoupper(basename($fname))) !== false)))) {
                  $files[] = new CurlFile($folder . "/" . $fname, '', $fname);
                  $filesTime[$fname] = date("Y-m-d H:i:s", filemtime($folder . "/" . $fname));
                }
              }
            }
          }
          $postValues = array();
          $postValues["clientjob"] = '1';
          $postValues["securitycode"] = SECURITY_CODE;
          $postValues["feluletkod"] = $feluletKod;
          $postValues["sajatkod"] = $sajatKod;
          $postValues["kampanyid"] = $kampanyId;
          $postValues["kampanynev"] = $kampanyNev;
          $postValues["ragacsdatum"] = $ragacsDatumAsTimeStamp;
          $postValues["lastuploadedphotodatum"] = $lastUploadedPhotoDatum;
          $postValues["folder"] = $folder;
          $postValues["uploadedphoto"] = $uploadedPhoto;
          $postValues["kihelyezesifotodatumok"] = $kihelyezesiFotoDatumok;
          $postValues["javitofotodatumok"] = $javitoFotoDatumok;
          $postValues["filestime"] = json_encode($filesTime);
          $i = 0;
          foreach($files as $file) {
            $postValues["images_" . $i] = $file;
            $i++;
          }
          curl_setopt($ch, CURLOPT_POSTFIELDS, $postValues);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
          $ret = curl_exec($ch);

          curl_close($ch);
          errorlog("jobtoclient_id: " . $job["jobtoclient_id"] . ", ret: " . $ret);
          UpdateJobToClients($job["jobtoclient_id"], $ret);
          if ($ret == 1) { // save job to daily email sending
            $body = "Fotó(k) feltöltése az alábbi felülethez: " . $feluletKod . ", kampány id: " . $kampanyId . ", ragasztási dátum: " . date("Y-m-d", $ragacsDatumAsTimeStamp);
            if ($clientData["daily_email"] == 1) {
              $dailyEmail = GetDailyEmailByCegId($clientData["ceg_id"]);
              if (is_array($dailyEmail) && isset($dailyEmail["body"])) {
                $body = $dailyEmail["body"] . "\n" . $body;
                UpdateDailyEmails($clientData["ceg_id"], $body);
              } else
                InsertDailyEMails($clientData["ceg_id"], IMPORTMAILSUBJECT, $body);
            } else {
              if (strpos($clientData["email"], ",") !== false) {
                $importEmails = explode(",", $clientData["email"]);
                foreach ($importEmails as $importEmail) {
                  mail($importEmail, IMPORTMAILSUBJECT, iconv("UTF-8", "ISO-8859-2", $body), MAILHEADER);
                }
              } else
                mail($clientData["email"], IMPORTMAILSUBJECT, iconv("UTF-8", "ISO-8859-2", $body), MAILHEADER);
            }
          }
        }
      }
    }

    // ellenorizzuk, nincs-e beragadt adatattoltes (10 probalkozas)
    $jobToClients = GetJobToClients();
    $adminEmailArr = array();
    foreach($jobToClients as $job) {
      if ($job["probak_szama"] == 10) {
        $felulet = GetFelulet($job["ragacslist_id"]);
        if (is_array($felulet)) {
          $cegId = $felulet["ceg_id"];
          $ceg = GetClientData($cegId);
          $adminEmailArr[] = "Felulet nem toltheto at!\n\nCeg: " . $ceg["nev"] . ", feluletkod: " . $felulet["felulet_kod"] . ", ragasztas datuma: " . date("Y.m.d.", strtotime($felulet["ragasztas_datum"]));
        }
      }
    }

    // email to admin
    if (count($adminEmailArr) > 0) {
      $body = iconv("UTF-8", "ISO-8859-2", "Attoltesi hibak:\n\n");
      foreach ($adminEmailArr as $row)
        $body .= iconv("UTF-8", "ISO-8859-2", $row) . "\n";
      mail(RECIPIENTMAIL, "Netfoto - Adatok attoltese", $body, MAILHEADER);
    }
  }
  
}

$jobToClients = new JobToClients();

// process jobtoclients table
$jobToClients->jobToClients();

 
?>
