<?php
/*
include(dirname(__FILE__)."/../conf/main.conf.php");
include(dirname(__FILE__)."/../phpwf/plugins/class.mysql.php");
include(dirname(__FILE__)."/../www/lib/imap.inc.php");
include(dirname(__FILE__)."/../www/lib/class.erpapi.php");

class app_t {
  var $DB;
  var $user;
}
*/
// ende debug

/*
$debugfile = "/var/www/html/Xenomporio/debug.txt";

function file_append($filename,$text) {
  $oldtext = file_get_contents($filename);
  file_put_contents($filename,$oldtext.$text);
}

file_put_contents($debugfile,"1");
*/

if(empty($app)){
  $app = new app_t();
}
$DEBUG = 0;

if(empty($app->Conf)){
  $conf = new Config();
  $app->Conf = $conf;
}
if(empty($app->DB) || empty($app->DB->connection)){
  $app->DB = new DB($app->Conf->WFdbhost, $app->Conf->WFdbname, $app->Conf->WFdbuser, $app->Conf->WFdbpass, null, $app->Conf->WFdbport);
}
if(empty($app->erp)){
  if(class_exists('erpAPICustom')){
    $erp = new erpAPICustom($app);
  }else{
    $erp = new erpAPI($app);
  }
  $app->erp = $erp;
}
$app->String         = new WawiString();
if(class_exists('RemoteCustom'))
{
  $app->remote = new RemoteCustom($app);
}else{
  $app->remote = new Remote($app);
}
$app->Secure = new Secure($app);
$app->User = new User($app);
if(!defined('FPDF_FONTPATH'))
{
  define('FPDF_FONTPATH',dirname(__DIR__) . '/www/lib/pdf/font/');
}

$cronjobname = 'autoversand_manuell';

$mutex = $app->DB->Select(
  "SELECT MAX(`mutex`) FROM `prozessstarter` WHERE (`parameter` = '".$cronjobname."')"
);
if($mutex){
  $app->DB->Update(
    "UPDATE `prozessstarter` 
    SET `mutexcounter`=`mutexcounter`+1 
    WHERE `mutex` = 1 AND (`parameter` = '".$cronjobname."')"
  );

  file_append($debugfile,"MUTEX");

  return;
}
$app->DB->Update(
  "UPDATE `prozessstarter` SET `mutex`='1', `mutexcounter` = 0 WHERE (`parameter` = '".$cronjobname."')"
);

// START APPLICATION

$objAuftrag = $app->loadModule('auftrag');
if($objAuftrag == null || !method_exists($objAuftrag, 'AuftragVersand')) {
    $app->erp->LogFile($cronjobname." failed. Error while loading module 'auftrag'.");
    exit;
}

$pendingorders = $app->DB->SelectArr(
        "SELECT id 
        FROM auftrag AS a 
        WHERE  a.id!='' AND (a.belegnr!=0 OR a.belegnr!='') 
          AND a.status='freigegeben' AND a.cronjobkommissionierung > 0"
      );

if (!is_null($pendingorders)) {

  $processed_orders_num = 0;
  foreach ($pendingorders as $pendingorder) {
    /* Process each order */

    if($objAuftrag->AuftragVersand($pendingorder['id'],true)) { // Ignore shipdate -> The order has been marked, send it
      $processed_orders_num++;
    } else {
    }
    // Limit to 10 per call
    if ($processed_orders_num > 10) {
      break;
    }
  }
}

// END APPLICATION

$app->DB->Update("UPDATE prozessstarter SET mutex = 0 , mutexcounter = 0, letzteausfuerhung = now() WHERE (parameter = '".$cronjobname."' ) AND aktiv = 1");