<?php

include_once("common.php");
include_once("Spreadsheet/Excel/Writer.php");


if (isset($_POST['getragasztaslista'])) { // elkeszitjuk a ragasztaslistat
  $filename = TMP_DIRECTORY . uniqid("raglista_") . ".xls";

  $dfrom = $_POST['dfrom'];
  $dto = $_POST['dto'];
  $varosId = $_POST['varosid'];
  $kampanyId = trim($_POST['kampanyid']);
  $plakatNev = trim($_POST['plakatnev']);
  $feluletKod = trim($_POST['feluletkod']);
  $searchFeluletKodCenter = $_POST['searchfeluletkodcenter'];
  $isNeedPhoto = $_POST['isneedphoto'];
  $surfaceId = $_POST['surfaceid'];
  $fkezdodatum = $_POST['fdfrom'];
  $fvegsodatum = $_POST['fdto'];

  $feluletek = GetFeluletek($dfrom, $dto, $_SESSION["user"]["user_id"], $_SESSION["user"]["isadmin"], $varosId, $kampanyId, $feluletKod, $searchFeluletKodCenter, $surfaceId, true, $isNeedPhoto, $fkezdodatum, $fvegsodatum, "", 0, $plakatNev);

  if ($fkezdodatum != "" || $fvegsodatum != "") {
    $surfaces_ = array();
    foreach ($feluletek as $surface) {
      $feluletId = $surface["ragacslist_id"];
      $feluletKod = $surface["felulet_kod"];
      $sajatKod = $surface["sajat_kod"];
      $kampanyId = $surface["kampany_id"];
      $ragacsDatumAsTimeStamp = strtotime($surface["ragasztas_datum"]);
      $ragasztasDatum = date("Y.m.d.", $ragacsDatumAsTimeStamp);
      $fkezdodatumAsTimeStamp = 0;
      if ($fkezdodatum != "")
        $fkezdodatumAsTimeStamp = strtotime(substr($fkezdodatum, 0, 4) . "-" . substr($fkezdodatum, 5, 2) . "-" . substr($fkezdodatum, 8, 2));
      $fvegsodatumAsTimeStamp = 0;
      if ($fvegsodatum != "")
        $fvegsodatumAsTimeStamp = strtotime(substr($fvegsodatum, 0, 4) . "-" . substr($fvegsodatum, 5, 2) . "-" . substr($fvegsodatum, 8, 2) . " 23:59:59");
      $kKepek = array();
      if (trim($surface['kihelyezesi_foto_datumok']) != "")
        $kKepek = json_decode($surface['kihelyezesi_foto_datumok'], true);
      $jKepek = array();
      if (trim($surface['javito_foto_datumok']) != "")
        $jKepek = json_decode($surface['javito_foto_datumok'], true);

      if ($surface["uploadedphoto"] > 0 && (count($kKepek) == 0 && count($jKepek) == 0))
        updateFotoDatumok($feluletId);

      $surfaceAdd = false;
      foreach ($kKepek as $kKep) {
        $imgTimestamp = strtotime(substr($kKep["timestamp"], 0, 4) . "-" . substr($kKep["timestamp"], 5, 2) . "-" . substr($kKep["timestamp"], 8, 2));
        if ($fkezdodatumAsTimeStamp > 0 && $fvegsodatumAsTimeStamp > 0) {
          if ($fkezdodatumAsTimeStamp <= $imgTimestamp && $imgTimestamp <= $fvegsodatumAsTimeStamp)
            $surfaceAdd = true;
        } else if ($fkezdodatumAsTimeStamp > 0) {
          if ($fkezdodatumAsTimeStamp <= $imgTimestamp)
            $surfaceAdd = true;
        } else if ($fvegsodatumAsTimeStamp > 0) {
          if ($imgTimestamp <= $fvegsodatumAsTimeStamp)
            $surfaceAdd = true;
        }
      }
  
      foreach ($jKepek as $jKep) {
        $imgTimestamp = strtotime(substr($jKep["timestamp"], 0, 4) . "-" . substr($jKep["timestamp"], 5, 2) . "-" . substr($jKep["timestamp"], 8, 2));
        if ($fkezdodatumAsTimeStamp > 0 && $fvegsodatumAsTimeStamp > 0) {
          if ($fkezdodatumAsTimeStamp <= $imgTimestamp && $imgTimestamp <= $fvegsodatumAsTimeStamp)
            $surfaceAdd = true;
        } else if ($fkezdodatumAsTimeStamp > 0) {
          if ($fkezdodatumAsTimeStamp <= $imgTimestamp)
            $surfaceAdd = true;
        } else if ($fvegsodatumAsTimeStamp > 0) {
          if ($imgTimestamp <= $fvegsodatumAsTimeStamp)
            $surfaceAdd = true;
        }
      }
      
      if ($surfaceAdd) {
        $surfaces_[] = $surface;
      }
    }
    $feluletek = $surfaces_;
  }

  $workbook = new Spreadsheet_Excel_Writer($filename);
  $workbook->setVersion(8);

  $worksheet =& $workbook->addWorksheet('Ragasztási lista');
  $worksheet->setInputEncoding('UTF-8');

  $cim_format =& $workbook->addFormat();
  $cim_format->setBold();

  $header_format =& $workbook->addFormat();
  $header_format->setBold();
  $header_format->setAlign("center");

  $format_center =& $workbook->addFormat();
  $format_center->setAlign("center");

  // oszlopok formazasa
  $worksheet->setColumn(0, 0, 20);
  $worksheet->setColumn(1, 1, 28);
  $worksheet->setColumn(2, 2, 40);
  $worksheet->setColumn(3, 3, 25);
  $worksheet->setColumn(4, 4, 12);
  $worksheet->setColumn(5, 5, 32);
  $worksheet->setColumn(6, 6, 35);
  $worksheet->setColumn(7, 7, 16);
  $worksheet->setColumn(8, 8, 14);
  $worksheet->setColumn(9, 9, 55);
  $worksheet->setColumn(10, 10, 55);

  // fejlecek elkeszitese
  $filterText = "Ragasztási lista - Ragasztás dátuma: " . $dfrom . ", Dátumig: " . $dto . ", (";

  if (intval($varosId) != 0 && isset($feluletek[0]))
    $filterText .= "Város: " . $feluletek[0]["varos"];
  else
    $filterText .= "Város: Minden város";

  if ($surfaceId == 0)
    $filterText .= ", Felület: Minden felület";
  else if ($surfaceId == 1)
    $filterText .= ", Felület: Felülethez van kép feltöltve";
  else if ($surfaceId == 2)
    $filterText .= ", Felület: Felülethez nincs kép feltöltve";
  else if ($surfaceId == 3)
    $filterText .= ", Felület: Felülethez van javító kép feltöltve";

  if ($kampanyId != "")
    $filterText .= ", Kampány ID: " . $kampanyId;

  if ($plakatNev != "")
    $filterText .= ", Plakát: " . $plakatNev;

  if ($feluletKod != "")
    $filterText .= ", Felület kód: " . $feluletKod;

  if ($searchFeluletKodCenter)
    $filterText .= ", Keresés felületkód közepére: Igen";
  else
    $filterText .= ", Keresés felületkód közepére: Nem";

  if ($isNeedPhoto)
    $filterText .= ", Fotó szükséges: Igen";
  else
    $filterText .= ", Fotó szükséges: Nem";
  
  $filterText .= ")";

  $worksheet->write(0, 0, $filterText, $cim_format);
  $worksheet->write(1, 0, 'Felület kód', $header_format);
  $worksheet->write(1, 1, 'Város', $header_format);
  $worksheet->write(1, 2, 'Cím', $header_format);
  $worksheet->write(1, 3, 'Ragasztó', $header_format);
  $worksheet->write(1, 4, 'Kampány ID', $header_format);
  $worksheet->write(1, 5, 'Kampány név', $header_format);
  $worksheet->write(1, 6, 'Plakát', $header_format);
  $worksheet->write(1, 7, 'Ragasztás dátum', $header_format);
  $worksheet->write(1, 8, 'Felülettípus', $header_format);
  $worksheet->write(1, 9, 'Kihelyezési fotók feltöltési ideje', $header_format);
  $worksheet->write(1, 10, 'Javító fotók feltöltési ideje', $header_format);

  $sor = 2;
  foreach ($feluletek as $row) {
    $worksheet->writeString($sor, 0, $row['felulet_kod'], $format_center);
    $worksheet->writeString($sor, 1, $row['varos']);
    $worksheet->writeString($sor, 2, $row['felulet_cim']);
    $worksheet->writeString($sor, 3, $row['ragaszto']);
    $worksheet->write($sor, 4, $row['kampany_id'], $format_center);
    $worksheet->writeString($sor, 5, $row['kampany_nev']);
    $worksheet->writeString($sor, 6, $row['plakat']);
    $worksheet->write($sor, 7, date("Y.m.d.", strtotime($row['ragasztas_datum'])), $format_center);
    $worksheet->writeString($sor, 8, $row['felulettipus']);

    $kfotoStr = "";
    $jfotoStr = "";
    if (trim($row['kihelyezesi_foto_datumok']) != "") {
      $kKepek = json_decode($row['kihelyezesi_foto_datumok'], true);
      foreach ($kKepek as $kep) {
        if ($kfotoStr == "")
          $kfotoStr .= $kep["timestamp"];
        else
          $kfotoStr .= ", " . $kep["timestamp"];
      }
    }
    if (trim($row['javito_foto_datumok']) != "") {
      $jKepek = json_decode($row['javito_foto_datumok'], true);
      foreach ($jKepek as $kep) {
        if ($jfotoStr == "")
          $jfotoStr .= $kep["timestamp"];
        else
          $jfotoStr .= ", " . $kep["timestamp"];
      }
    }

    $worksheet->writeString($sor, 9, $kfotoStr);
    $worksheet->writeString($sor, 10, $jfotoStr);

    $sor = $sor+1;
  }

  $workbook->close();
  
  if (file_exists($filename))
    echo $filename;
  else
    echo "";

} else {
  unset($_SESSION["kepek"]);

  if (isset($_SESSION["user"]))
    $varosok = GetUserVarosok($_SESSION["user"]["user_id"]);
  else
    $varosok = GetVarosok();
  
  $varosok_ = array(0 => "Minden város");
  foreach ($varosok as $varos) {
    $varosok_[$varos["varos_id"]] = $varos["varos"];
  }
  $smarty->assign('varosok', $varosok_);
/*
  $datumok = array();
  if (isset($_SESSION["user"]))
    $datumok = GetRagasztasDatumIntervallum($_SESSION["user"]["user_id"]);
*/
  $dateFrom = "";
  $dateTo = "";
/*  if (isset($datumok["datefrom"]))
    $dateFrom = date("Y.m.d.", strtotime($datumok["datefrom"]));
  else*/
    $dateFrom = date("Y.m.01.");

/*  if (isset($datumok["dateto"]))
    $dateTo = date("Y.m.d.", strtotime($datumok["dateto"]));
  else*/
    $dateTo = date("Y.m.t.");

  $smarty->assign('login', 1);
  $smarty->assign('datumfrom', $dateFrom);
  $smarty->assign('datumto', $dateTo);
  if (isset($_SESSION['user']))
    $smarty->assign('name', $_SESSION['user']["name"]);
  else
    $smarty->assign('name', "-");
  $smarty->assign('version', VERSIONNUMBER);
  $smarty->assign('company', COMPANYNAME);
  $smarty->display('ragasztas.tpl');
}

?>
