0) : $limit = "LIMIT 0," . $limit; else : $limit = ""; endif; // Exclude jobs with special vehicles (E.g.: Do not generate a mail if internal job is generated with vehicle SID=1888) $excludedVehicles = getParameterValue("0", "EMAIL_CRVHSID_NO_MAIL", "0"); // "Meta-Global" <=> hq_id = 0 $whereClauseExcludedVehicles = ""; if ($excludedVehicles != "") : $tmp = spliti(",",$excludedVehicles); $lenTmp = count($tmp); for ($i = 0; $i < $lenTmp; $i++) { $whereClauseExcludedVehicles .= " jb.cr_sid != '" . $tmp[$i] . "' AND "; }; endif; $constAmStarttimeInDays = getParameterValue("0", "AUTOMAILER_STARTTIME_IN_DAYS", "0"); // "Meta-Global" <=> hq_id = 0 $startTime = getDateTime("datetime_plus_offset", array(0,0,0,0,-($constAmStarttimeInDays),0), "Y-m-d H:i:s"); // $currentTime = getDateTime("0"); // jb.jb_automailsent = '999' <=> Mail was sent correctly // jb.jb_automailsent = '998' <=> Mail was NOT sent correctly. Process iteration terminated! // jb.jb_automailsent = '997' <=> Mail will never be sent because it is a batch job // Otherwise number is equal to the number of faults. $sqlquery = "SELECT jb.jb_id, usr.usr_email, jb.cr_sid, jb.hq_id, cs.cs_jbstatusmail2csc, cscad.cscad_email" . " FROM job AS jb, costcenter AS csc, customer AS cs, costcenteraddress AS cscad, employee AS emp, user AS usr" . " WHERE jb.jb_status = '2' AND" . " jb.jb_finishtime > '" . $startTime . "' AND" . " jb.jb_automailsent != '997' AND" . " jb.jb_automailsent != '998' AND" . " jb.jb_automailsent != '999' AND" . $whereClauseExcludedVehicles . " (ISNULL(jb.jb_storno) OR jb.jb_storno = '0') AND" . " jb.csc_id_related = csc.csc_id AND" . " csc.cs_id = cs.cs_id AND" . " cs.cs_jbstatusmail = '1' AND" . " cs.cs_admin = emp.emp_id AND" . " emp.usr_id = usr.usr_id AND" . " csc.csc_id = cscad.csc_id AND" . " cscad.adt_id = '2' " . " ORDER BY jb.jb_finishtime " . $limit; $result = $db2->query($sqlquery); if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage()); while ($row = $result->fetch_assoc()): $retArray[] = array($row["jb_id"], $row["usr_email"], $row["cr_sid"], $row["hq_id"], $row["cs_jbstatusmail2csc"], $row["cscad_email"]); endwhile; $result->free(); return $retArray; } // Get jobs for automailer function getAutoMailerJobs2($limit) { global $db, $logFile; // Try to connect request server because of performance global $db2; getDb2Connection(); $retArray = array(); // Limit if (is_numeric($limit) && $limit > 0) : $limit = "LIMIT 0," . $limit; else : $limit = ""; endif; // Exclude jobs with special vehicles (E.g.: Do not generate a mail if internal job is generated with vehicle SID=1888) $excludedVehicles = getParameterValue("0", "EMAIL_CRVHSID_NO_MAIL", "0"); // "Meta-Global" <=> hq_id = 0 $whereClauseExcludedVehicles = ""; if ($excludedVehicles != "") : $tmp = spliti(",",$excludedVehicles); $lenTmp = count($tmp); for ($i = 0; $i < $lenTmp; $i++) { $whereClauseExcludedVehicles .= " jb.cr_sid != '" . $tmp[$i] . "' AND "; }; endif; $constAmStarttimeInDays = getParameterValue("0", "AUTOMAILER_STARTTIME_IN_DAYS", "0"); // "Meta-Global" <=> hq_id = 0 $startTime = getDateTime("datetime_plus_offset", array(0,0,0,0,-($constAmStarttimeInDays),0), "Y-m-d H:i:s"); // $startTime = getDateTime("3") . " 00:00:00"; // jb.jb_automailsent2 = '999' <=> Mail was sent correctly // jb.jb_automailsent2 = '998' <=> Mail was NOT sent correctly. Process iteration terminated! // Otherwise number is equal to the number of faults. $sqlquery = "SELECT jb.jb_id, usr.usr_email, jb.cr_sid, jb.hq_id, cs.cs_jbstatusmail2csc, cscad.cscad_email" . " FROM job AS jb, costcenter AS csc, customer AS cs, costcenteraddress AS cscad, employee AS emp, user AS usr" . " WHERE jb.jb_status = '1' AND" . " jb.jb_taketime > '" . $startTime . "' AND" . " jb.jb_automailsent2 != '998' AND" . " jb.jb_automailsent2 != '999' AND" . $whereClauseExcludedVehicles . " (ISNULL(jb.jb_storno) OR jb.jb_storno = '0') AND" . " jb.csc_id_related = csc.csc_id AND" . " csc.cs_id = cs.cs_id AND" . " cs.cs_jbstatusmail2 = '1' AND" . " cs.cs_admin = emp.emp_id AND" . " emp.usr_id = usr.usr_id AND" . " csc.csc_id = cscad.csc_id AND" . " cscad.adt_id = '2' AND" . " ((usr.usr_email != '' AND cs.cs_jbstatusmail2csc = '0') OR" . " (cscad.cscad_email != '' AND cs.cs_jbstatusmail2csc = '1'))" . " ORDER BY jb.jb_taketime " . $limit; $result = $db2->query($sqlquery); if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage()); while ($row = $result->fetch_assoc()): $retArray[] = array($row["jb_id"], $row["usr_email"], $row["cr_sid"], $row["hq_id"], $row["cs_jbstatusmail2csc"], $row["cscad_email"]); endwhile; $result->free(); return $retArray; } // Get jobs for automailer function getAutoMailerJobs3($limit) { global $db, $logFile; // Try to connect request server because of performance global $db2; getDb2Connection(); $retArray = array(); // Limit if (is_numeric($limit) && $limit > 0) : $limit = "LIMIT 0," . $limit; else : $limit = ""; endif; // Exclude jobs with special vehicles (E.g.: Do not generate a mail if internal job is generated with vehicle SID=1888) $whereClauseExcludedVehicles = ""; /* $excludedVehicles = getParameterValue("0", "EMAIL_CRVHSID_NO_MAIL", "0"); // "Meta-Global" <=> hq_id = 0 if ($excludedVehicles != "") : $tmp = spliti(",",$excludedVehicles); $lenTmp = count($tmp); for ($i = 0; $i < $lenTmp; $i++) { $whereClauseExcludedVehicles .= " jb.cr_sid != '" . $tmp[$i] . "' AND "; }; endif; */ // $constAmStarttimeInDays = getParameterValue("0", "AUTOMAILER_STARTTIME_IN_DAYS", "0"); // "Meta-Global" <=> hq_id = 0 $startTime = getDateTime("datetime_plus_offset", array(-2,0,0,0,0,0), "Y-m-d H:i:s"); // $startTime = getDateTime("3") . " 00:00:00"; // jb.jb_automailsent3 = '999' <=> Mail was sent correctly // jb.jb_automailsent3 = '998' <=> Mail was NOT sent correctly. Process iteration terminated! // Otherwise number is equal to the number of faults. $sqlquery = "SELECT jb.jb_id, usr.usr_email, jb.cr_sid, jb.hq_id, cs.cs_jbstatusmail2csc, cscad.cscad_email" . " FROM job AS jb, costcenter AS csc, customer AS cs, costcenteraddress AS cscad, employee AS emp, user AS usr" . " WHERE (jb.jb_status = '8' OR jb.jb_status = '9' OR jb.jb_status = '0' OR jb.jb_status = '1') AND" . " jb.jb_ordertime > '" . $startTime . "' AND" . " (ISNULL(jb.jb_offer) OR jb.jb_offer = '0') AND" . " jb.jb_automailsent3 != '998' AND" . " jb.jb_automailsent3 != '999' AND" . $whereClauseExcludedVehicles . " (ISNULL(jb.jb_storno) OR jb.jb_storno = '0') AND" . " jb.csc_id_related = csc.csc_id AND" . " csc.cs_id = cs.cs_id AND" . " cs.cs_jbstatusmail3 = '1' AND" . " cs.cs_admin = emp.emp_id AND" . " emp.usr_id = usr.usr_id AND" . " csc.csc_id = cscad.csc_id AND" . " cscad.adt_id = '2' AND" . " ((usr.usr_email != '' AND cs.cs_jbstatusmail2csc = '0') OR" . " (cscad.cscad_email != '' AND cs.cs_jbstatusmail2csc = '1'))" . " ORDER BY jb.jb_ordertime " . $limit; $result = $db2->query($sqlquery); // $result = $db2->query($sqlquery . " UNION " . $sqlquery2); if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage()); while ($row = $result->fetch_assoc()): $retArray[] = array($row["jb_id"], $row["usr_email"], $row["cr_sid"], $row["hq_id"], $row["cs_jbstatusmail2csc"], $row["cscad_email"]); endwhile; $result->free(); return $retArray; } // Get jobs for automailer function getAutoMailerStations($limit) { global $db, $logFile; // Try to connect request server because of performance global $db2; getDb2Connection(); $retArray = array(); // Limit if (is_numeric($limit) && $limit > 0) : $limit = "LIMIT 0," . $limit; else : $limit = ""; endif; // Exclude jobs with special vehicles (E.g.: Do not generate a mail if internal job is generated with vehicle SID=1888) $excludedVehicles = getParameterValue("0", "EMAIL_CRVHSID_NO_MAIL", "0"); // "Meta-Global" <=> hq_id = 0 $whereClauseExcludedVehicles = ""; if ($excludedVehicles != "") : $tmp = spliti(",",$excludedVehicles); $lenTmp = count($tmp); for ($i = 0; $i < $lenTmp; $i++) { $whereClauseExcludedVehicles .= " jb.cr_sid != '" . $tmp[$i] . "' AND "; }; endif; // $constAmStarttimeInDays = getParameterValue("0", "AUTOMAILER_STARTTIME_IN_DAYS", "0"); // "Meta-Global" <=> hq_id = 0 $constAmStarttimeInDays = 1; $startTime = getDateTime("datetime_plus_offset", array(0,0,0,0,-($constAmStarttimeInDays),0), "Y-m-d H:i:s"); // $currentTime = getDateTime("0"); // gdc.gdc_content = '999' <=> Mail was sent correctly // gdc.gdc_content = '998' <=> Mail was NOT sent correctly. Process iteration terminated! // gdc.gdc_content = '997' <=> Mail will never be sent because it is a batch job // Otherwise number is equal to the number of faults. $sqlquery = "SELECT jb.jb_id, tr.tr_id, tr.tr_sort, usr.usr_email, jb.jb_ordertime, jb.cr_sid, jb.hq_id, cs.cs_jbstatusmail2csc, cscad.cscad_email, IFNULL(gdc.gdc_content,'') AS gdc_content" . " FROM job AS jb, costcenter AS csc, customer AS cs, costcenteraddress AS cscad, employee AS emp, user AS usr," . " tour AS tr LEFT JOIN genericdatacontainer AS gdc ON gdc.gdc_obj_id = tr.tr_id AND gdc.gdc_obj_type = 'tr' AND gdc.gdc_gen_fieldname = 'auto_mail_station'" . " WHERE jb.jb_status = '1' AND" . " jb.jb_ordertime >= '" . $startTime . "' AND" . " jb.jb_automailsent != '997' AND" . " jb.jb_automailsent != '998' AND" . " jb.jb_automailsent != '999' AND" . $whereClauseExcludedVehicles . " (ISNULL(jb.jb_storno) OR jb.jb_storno = '0') AND" . " jb.csc_id_related = csc.csc_id AND" . " csc.cs_id = cs.cs_id AND" . " SUBSTRING(cs.cs_jbstatusmail_fields,5,1) = '1' AND" . " cs.cs_admin = emp.emp_id AND" . " emp.usr_id = usr.usr_id AND" . " csc.csc_id = cscad.csc_id AND" . " cscad.adt_id = '2' AND" . " jb.jb_id = tr.jb_id AND" . " tr.tr_status = '1' AND" . " tr.tr_finishtime > '" . $startTime . "' AND" . " (usr_email != '' OR cscad_email != '') AND" . " (NOT EXISTS (SELECT * FROM genericdatacontainer AS gdc WHERE gdc.gdc_obj_id = tr.tr_id AND gdc.gdc_obj_type = 'tr' AND gdc.gdc_gen_fieldname = 'auto_mail_station'))" . " ORDER BY tr.tr_finishtime " . $limit; $result = $db2->query($sqlquery); // $result = $db2->query($sqlquery . " UNION " . $sqlquery2); if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage()); while ($row = $result->fetch_assoc()): $retArray[] = array($row["jb_id"], $row["tr_sort"], $row["usr_email"], $row["cr_sid"], $row["hq_id"], $row["cs_jbstatusmail2csc"], $row["cscad_email"], $row["tr_id"], $row["jb_ordertime"]); endwhile; $result->free(); return $retArray; } // Gets the (HTML) mail text for a special job and jb state function getJobMailText ($currentHqId, $job_id, $job_status) { global $db, $hq_id, $currentHqId, $emp_id, $usr_id, $userTypeName, $outputFormatField, $f_act, $automailer; global $dbhistory, $dbh_jb, $dbh_tr, $dbh_trs, $dbh_cdt, $dbh_jbc; global $jobentry, $tourentry, $jobcosts, $courierentry, $employeeentry, $tourentryArray, $tourDisplayClassicMode; // Allow sending mail regarding jb_status = 1 if ($automailer == "0" && $mailTextJobStatus == "") : // Pay attention if ($job_status == "1") : $maskExtendJbStatusPickup = getParameterValue("0", "MASK_MAIL_JOB_STATE_PICKUP", $currentHqId); if ($maskExtendJbStatusPickup == "1") : $mailTextJobStatus = "1"; endif; endif; if ($job_status == "9") : $maskExtendJbStatusPickup = getParameterValue("0", "MASK_MAIL_JOB_STATE_DISPOSITION", $currentHqId); if ($maskExtendJbStatusPickup == "1") : $mailTextJobStatus = "9"; endif; endif; endif; if ($job_status == "2" || $mailTextJobStatus != "") : // Check existence of the job in history table space $dbhistory = checkHistoryLevel($dbhistory, "jb", $job_id); $dbhistory = getDBNames($dbhistory); // Decision to use the job archive or normal tables getDBNames($dbhistory); // If job ($job_id) is exported, then look for existing content in history field in table "job2" $takeRealJobData = checkForTakingRealOrHistoricJobData("1"); if ($takeRealJobData) : $currentJobParameterState = getJobSnapshot($job_id); else : $tmpSqlquery = "SELECT tr.tr_sign, tr.tr_sort" . " FROM " . $dbh_tr . " AS tr" . " WHERE tr.jb_id = '" . $job_id . "'" . " ORDER BY tr.tr_sort"; $result = $db->query($tmpSqlquery); if (DB::isError($result)) die ("$PHP_SELF 5: {$tmpSqlquery} " . $result->getMessage() . ": " . $tmpSqlquery); $tmpSignPath = "../temp/signs/"; if (SIGNS_PATH != "") : $tmpSignPath = SIGNS_PATH; endif; while ($row = $result->fetch_assoc()): $rawCoord = splitRawCoordinates ($row[tr_sign]); $maxCoord = checkMaxCoordinates($rawCoord); $imgFilename = $tmpSignPath . $job_id . "_" . $row[tr_sort] . ".png"; $imgFilenames[] = $imgFilename; $im = createSignImage($rawCoord); imagepng ($im, $imgFilename); endwhile; $result->free(); endif; $mailCssFontType = getParameterValue("0", "MAIL_CSS_FONT_TYPE", $currentHqId); if ($mailCssFontType == "") : $mailCssFontType = "Verdana, Arial, Helvetica, sans-serif"; endif; $mailtext = "
"; $mailtext .= ""; $mailtext .= "| ";
$jobtext .= "" . getLngt("AUFTRAG:") . " "; $jobtext .= " "; $jobtext .= " | ";
if ($courierentry != "" && $mailTextJobStatus != "0" && $mailTextJobStatus != "8" && $mailTextJobStatus != "9") :
$jobtext .= "" . getLngt("TRANSPORTEUR:") . " "; $jobtext .= " "; endif; $jobtext .= " |
| " . getLngt("Telefon") . ": " . $mailEmployeeData[2] . " |
| " . getLngt("Fax") . ": " . $mailEmployeeData[4] . " |
| " . getLngt("Email") . ": " . $mailEmployeeData[3] . " |
| " . $mailFooterWebPage . " |
| " . $mailFooterWebPage . " |