Files
votianng/html/tools/cron_sustainability_customer_report.php
2026-03-29 10:34:57 +02:00

121 lines
4.0 KiB
PHP

<?php
/*=======================================================================
*
* cron_sustainability_customer_report.php
*
=======================================================================*/
include_once ("../include/mcglobal.inc.php");
// include_once ("../include/inc_dbdata.inc.php");
// Get jobs for auto_response
function getCustomersForSustainabilityReport ($limit = "") {
global $db, $logFile;
$retArray = array();
// Get customers by sustainability email address
$sqlquery = "SELECT cs.hq_id, cs.cs_id, cs.cs_eid, cmp.cmp_sustainability_email, cmp.cmp_sustainability_interval"
. " FROM customer AS cs, company AS cmp"
. " WHERE cs.cmp_id = cmp.cmp_id AND"
. " cmp.cmp_authenticated = '1' AND"
. " cmp.cmp_archived = '0' AND"
. " cmp.cmp_sustainability_email != '' AND"
. " (NOT ISNULL(cmp.cmp_sustainability_email)) "
. " ORDER BY cs.cs_id " . (($limit != "" && is_numeric($limit)) ? "LIMIT 0, " . $limit : "");
// echo $sqlquery . "\n\n"; die();
$result = $db->query($sqlquery);
// $result = $db->query($sqlquery . " UNION " . $sqlquery2);
if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage());
while ($row = $result->fetch_assoc()):
$retArray[$row["cs_id"]] = array($row["hq_id"], $row["cs_eid"], $row["cmp_sustainability_email"], $row["cmp_sustainability_interval"]);
endwhile;
$result->free();
return $retArray;
}
if ($argv[1] == "acapella7890") :
// Error reporting
error_reporting(E_ERROR | E_WARNING | E_PARSE);
$path = getAbsoluteSystemPath();
$passwd = "acapella7890";
$logFile = $path . "/log/sustainability.log";
$logDebug = true;
$emptyArgument = "\"\"";
$currDatetime = getDateTime("0"); // Format: "YmdHi"
$limit = $argv[2]; // Max number of customers to pe processesd
if (!isset($limit) || !is_numeric($limit)) : $limit = ""; endif;
// Get current month
$curMonth = date("n");
$curYear = date("Y");
$quartals = array(1 => 1,2 => 1,3 => 1,4 => 2,5 => 2,6 => 2,7 => 3,8 => 3,9 => 3,10 => 4,11 => 4,12 => 4);
$currentQuartal = $quartals[$curMonth];
// Get jobs
$csArr = getCustomersForSustainabilityReport($limit);
$cskArr = array_keys($csArr);
$cskArrLen = count($cskArr);
for ($i = 0; $i < $cskArrLen; $i++) :
$csId = $cskArr[$i];
$hqId = $csArr[$csId][0];
$csEid = $csArr[$csId][1];
$cmpSustainabilityEmail = $csArr[$csId][2];
$cmpSustainabilityInterval = $csArr[$csId][3];
$doContinue = false;
switch ($cmpSustainabilityInterval) {
case 0: // monthly
$doContinue = true;
break;
case 1:
if ($curMonth == 1 || $curMonth == 4 || $curMonth == 7 || $curMonth == 10) :
$doContinue = true;
endif;
break;
case 2:
if ($curMonth == 1) :
$doContinue = true;
endif;
break;
}
if ($doContinue) :
$csIsMeta = false;
$tmpCsIdsSub = getColVectorFromDB2ArrayByClause("customer", "cs_id", "cs_id_parent = '" . $csId . "'");
if (count($tmpCsIdsSub) > 0) :
$csIsMeta = true;
endif;
// Call script for (meta-)customer
$cmd = "php " . $path . "/tools/auto_trigger_jobs_sustainability_customer_report.php " . $passwd . " " . ($csIsMeta ? "cs_meta" : "cs") . " " . $csId . " " . $cmpSustainabilityInterval . " &";
// echo $cmd . "\n";
$cmdOutput = null;
exec($cmd, $cmdOutput);
// print_r($cmdOutput); echo "\n\n";
sleep(3);
endif;
if ($logDebug) :
writeToFile($logFile, $currDatetime . "[hq_id=" . $hqId . "][cs_id=" . $csId . "][cs_eid=" . $csEid . "][cmp_sustainability_email=" . $cmpSustainabilityEmail . "][cmpSustainabilityInterval=" . $cmpSustainabilityInterval . "]");
endif;
endfor;
endif;
?>