"; echo "mtrId: " . $mtrId . "
"; endif; if ($mtrId != "" && $mtrId > "0") : $moIdRefDB = getFieldValueFromId("meta_object.metatracking", "mtr_id", $mtrId, "mo_id_ref_db", $dbMetaObjConn); $objType = getFieldValueFromId("meta_object.metatracking", "mtr_id", $mtrId, "mtr_obj_type", $dbMetaObjConn); $objId = getFieldValueFromId("meta_object.metatracking", "mtr_id", $mtrId, "mtr_obj_id", $dbMetaObjConn); $mtrValue = getFieldValueFromId("meta_object.metatracking", "mtr_id", $mtrId, "mtr_value", $dbMetaObjConn); if ($debug) : echo "moIdRefDB: " . $moIdRefDB . "
"; echo "objType: " . $objType . "
"; echo "objId: " . $objId . "
"; echo "mtrValue: " . $mtrValue . "
"; endif; if ($moIdRefDB != "" && $moIdRefDB > "0") : // Get database instance from table "metaobject" $dbInst = getFieldValueFromId("meta_object.metaobject", "mo_id", $moIdRefDB, "mo_value", $dbMetaObjConn); if ($debug) : echo "dbInst: " . $dbInst . "
"; endif; if ($dbInst != "") : // Get database connection $db_conn = getDbConnectionSpecial($dbInst, $dbname, $dblogin, $dbpassword); if (substr($objType, 0, 5) == "track") : // Could be "tracking_trat" [= "tracking" = "track"] (tourarticle/package barcode), "tracking_tr" (station), "tracking_jb" (order), ... // Charset $result = $db_conn->query("SET NAMES LATIN1"); if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage()); $fieldClause = "jb.jb_id, jb.hq_id, jb.jb_ordertime, jb.jb_taketime, jb.jb_finishtime, jb.jb_export_time, jb.csc_id_payer," . "cr.cr_sid, cr.cr_gps_long, cr.cr_gps_lat, cr.cr_gps_time, cr.cr_gps_type," . "trat.trat_id, trat.trat_name, trat.trat_quantity," . "trat.trat_packingpieces, trat.trat_serialno, trat.trat_state, trat.trat_remark," . "tratp.tratp_id, tratp.tratp_no, tratp.tratp_event, tratp.tratp_type, tratp.tratp_state," . "tratp.tratp_quantity, tratp.tratp_packingpieces, tratp.tratp_remark, tratp.tratp_createtime," . "mt.mt_value, tr.tr_id, tr.tr_sort, tr.tr_comp, tr.tr_comp2, tr.tr_signname, tr.tr_sign," . "tr.tr_hsno, tr.tr_person, tr.tr_status, tr.tr_finishtime," . "ad.ad_street, ad.ad_zipcode, ad.ad_city, ad.ad_country"; $fromClause = "FROM phoenix.job AS jb LEFT JOIN phoenix.courier AS cr ON jb.cr_id = cr.cr_id," . " phoenix.tour AS tr LEFT JOIN phoenix.address AS ad ON tr.ad_id = ad.ad_id" . " LEFT JOIN phoenix.tourarticle AS trat ON tr.tr_id = trat.tr_id" . " LEFT JOIN phoenix.tourarticleprocess AS tratp ON trat.trat_id = tratp.trat_id" . " LEFT JOIN phoenix.metatype AS mt ON tratp.tratp_event = mt.mt_sort AND mt.mt_type = 'tracking_event'"; if ($objType == "tracking_jb" || $objType == "track_jb") : $sqlquery = "SELECT " . $fieldClause . " " . $fromClause . " WHERE jb.jb_id = '" . $objId . "' AND" . " jb.jb_id = tr.jb_id " . " ORDER BY jb.jb_id, tr.tr_sort"; elseif ($objType == "tracking_tr" || $objType == "track_tr") : $sqlquery = "SELECT " . $fieldClause . " " . $fromClause . " WHERE jb.jb_id = tr.jb_id AND" . " tr.tr_id = '" . $objId . "' " . " ORDER BY jb.jb_id, tr.tr_sort"; elseif ($objType == "tracking_trat" || $objType == "track_trat") : // Check barcode does exists if ($mtrValue != "" && $mtrValue != $objId) : $sqlquery = "SELECT " . $fieldClause . " " . $fromClause . " WHERE jb.jb_id = tr.jb_id AND" . " tr.tr_id = trat.tr_id AND" . " CONCAT(trat.trat_int_serialno,trat.trat_serialno) = '" . $mtrValue . "' AND" . " trat.trat_id = tratp.trat_id AND" . " (NOT ISNULL(tratp.tratp_createtime)) " . " ORDER BY tratp.tratp_createtime"; else : $sqlquery = "SELECT " . $fieldClause . " " . $fromClause . " WHERE jb.jb_id = tr.jb_id AND" . " tr.tr_id = trat.tr_id AND" . " trat.trat_id = '" . $objId . "' AND" . " trat.trat_id = tratp.trat_id AND" . " (NOT ISNULL(tratp.tratp_createtime)) " . " ORDER BY tratp.tratp_createtime"; endif; endif; if ($debug) : echo "
sqlquery: " . $sqlquery . "

"; endif; $result = $db_conn->query($sqlquery); if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage()); while ($row = $result->fetch_assoc()): $trackingArray[] = $row; endwhile; $result->free(); else : // Write logdata into log database // writeToLogDB("97",$hqId,"","","","",$objId,"STATUS=OBJTYPE_NOT_FOUND|IP=" . $currentClientIP . "|MO_ID" . $moId); endif; else : // database not specified in metaobject row // writeToLogDB("97","","","","","","","STATUS=DB_NOT_SPECIFIED|IP=" . $currentClientIP . "|MO_ID" . $moId); endif; else : // HASH nicht gefunden um Zuordnung herzustellen endif; endif; else : // Write logdata into log database // writeToLogDB("97","","","","","","","STATUS=EMPTY_OPCODE|IP=" . $currentClientIP . "|MO_ID" . $moId); endif; return array($objType, $trackingArray); } // Inserts ONE tracking item into "metatracking" function insertMetaTrackingItem ($moIdRefDB, $objType, $objId, $mtrValue = "") { global $db, $db_conn, $PHP_SELF, $debug; global $dbname, $dblogin, $dbpassword; $retArray = array("001","001\n","" . getLngt("Eintrag in Broker fehlgeschlagen!") . "\n"); // Init only if ($moIdRefDB != "" && is_numeric($moIdRefDB)) : if ($objType != "" && substr($objType, 0, 5) == "track") : if ($objId != "" && is_numeric($objId)) : // Get database instance connection of "metatracking" $db_conn_mtr = getConnectionToMetaDB(); // $constExtDbInst = getExternalMetaDbInst(); // $db_conn_mtr = getDbConnectionSpecial($constExtDbInst, $dbname, $dblogin, $dbpassword); // Check entry for existence // $tmpMtrId = $db_conn_mtr->getOne("SELECT mtr_id FROM meta_object.metatracking WHERE mtr_hash = '" . $mtrHash . "'"); $tmpMtrId = $db_conn_mtr->getOne("SELECT mtr_id FROM meta_object.metatracking WHERE mo_id_ref_db = '" . $moIdRefDB . "' AND mtr_obj_type = '" . $objType . "' AND mtr_obj_id = '" . $objId . "'"); if ($tmpMtrId == "") : $currentTime = getDateTime("0"); // Generate hash value $md5Str = $currentTime . $moIdRefDB . $objType . $objId; if ($mtrValue == "") : $mtrValue = $objId; endif; if ($debug) : echo "md5Str: " . $md5Str . "
"; echo "mtrValue: " . $mtrValue . "
"; endif; // Generate unique hash value $mtrHash = md5($md5Str); if ($debug) : echo "mtrHash: " . $mtrHash . "
"; endif; $tmpSqlQuery = "INSERT meta_object.metatracking (mo_id_ref_db,mtr_obj_type,mtr_obj_id,mtr_hash,mtr_value) VALUES ('" . $moIdRefDB . "','" . $objType . "','" . $objId . "','" . $mtrHash . "','" . $mtrValue . "') "; $result = $db_conn_mtr->query($tmpSqlQuery); if (DB::isError($result)) {$err = "ERR";}; if ($err == "ERR") : $retArray = array("007","007\n","" . getLngt("Der Tracking-Datensatz konnte nicht angelegt werden!") . "\n"); // Send info mail sendInternalMail("INSERT_INTO_METAOBJECT_FAILED: MO_ID_REF_DB=" . $moIdRefDB . "|OBJ_TYPE=" . $objType . "|OBJ_ID=" . $objId); else : // Success $mtrIdNew = $db_conn_mtr->getOne("SELECT LAST_INSERT_ID()"); if ($debug) : echo "mtrIdNew: " . $mtrIdNew . "
"; endif; // $retArray = array("0", $mtrHash, $mtrValue); $retArray = array("0", $objType, $objId, $mtrHash, $mtrValue); endif; else : // $retArray = array("005","006\n","" . getLngt("Der Eintrag (HASH) existiert schon!") . "\n"); // NO PROBLEM, because different barcodes or tourarticle IDs have the same job_ID e.g. !!!! $mtrHash = getFieldValueFromId("meta_object.metatracking","mtr_id",$tmpMtrId,"mtr_hash",$db_conn_mtr); $mtrValue = getFieldValueFromId("meta_object.metatracking","mtr_id",$tmpMtrId,"mtr_value",$db_conn_mtr); $retArray = array("0", $objType, $objId, $mtrHash, $mtrValue); endif; else : $retArray = array("004","004\n","" . getLngt("Keine Angabe der Objekt-ID!") . "\n"); endif; else : $retArray = array("003","003\n","" . getLngt("Keine Angabe des Objekttyps!") . "\n"); endif; else : $retArray = array("002","002\n","" . getLngt("Keine Angabe der Referenzdatenbank!") . "\n"); endif; return $retArray; } // Inserts ALL possible tracking items into "metatracking" (executed in operational database and used e.g. "order_request", etc.) // Returns array of arrays with inserted (or existing) entries ($objectType, $objectId, $hash[, $barcode]) function insertTrackingItems ($jbId, $trId = "", $tratId = "", $internalBarcode = "", $barcode = "", $mode = "ALL") { // $retArray = array("999","001\n","" . getLngt("Globale Instanznummer existiert nicht!") . "\n"); // Init only $retArray = array(); // Get mo_id (cust_id) from current operational database $moIdRefDB = getParameterValue("0", "GLOBAL_UNIQUE_DB_INSTANCE_NO", "0"); if ($moIdRefDB != "" && is_numeric($moIdRefDB)) : if (($tratId == "" || !is_numeric($tratId) || $tratId <= 0) && ($mode == "SINGLE_TRAT" || $mode == "ALL")) : if ($internalBarcode != "" && $barcode != "") : $tratId = getFieldValueFromClause("tourarticle","trat_id","trat_int_serialno = '" . $internalBarcode . "' AND trat_serialno = '" . $barcode . "'", $dbConnection); endif; endif; if (($trId == "" || !is_numeric($trId) || $trId <= 0) && ($mode == "SINGLE_TR" || $mode == "ALL")) : if ($tratId != "" && is_numeric($tratId) && $tratId > 0) : $trId = getFieldValueFromId("tourarticle","trat_id",$tratId,"tr_id"); endif; endif; if (($jbId == "" || !is_numeric($jbId) && $jbId <= 0) && ($mode == "SINGLE_JB" || $mode == "ALL")) : if ($trId != "" && is_numeric($trId) && $trId > 0) : $jbId = getFieldValueFromId("tour","tr_id",$trId,"jb_id"); endif; endif; if ($jbId != "" && ($mode == "SINGLE_JB" || $mode == "ALL")) : $tmpArray = insertMetaTrackingItem($moIdRefDB, "tracking_jb", $jbId); if ($tmpArray[0] == "0") : $retArray[] = array("0", "tracking_jb", $jbId, $tmpArray[3], $tmpArray[4], $barcode); else : $retArray[] = $tmpArray; endif; endif; if ($trId != "" && ($mode == "SINGLE_TR" || $mode == "ALL")) : $tmpArray = insertMetaTrackingItem($moIdRefDB, "tracking_tr", $trId); if ($tmpArray[0] == "0") : $retArray[] = array("0", "tracking_tr", $trId, $tmpArray[3], $tmpArray[4], $barcode); else : $retArray[] = $tmpArray; endif; endif; if ($tratId != "" && ($mode == "SINGLE_TRAT" || $mode == "ALL")) : $tmpArray = insertMetaTrackingItem($moIdRefDB, "tracking_trat", $tratId, $internalBarcode . $barcode); if ($tmpArray[0] == "0") : $retArray[] = array("0", "tracking_trat", $tratId, $tmpArray[3], $tmpArray[4], $barcode); else : $retArray[] = $tmpArray; endif; endif; endif; return $retArray; } // Send tracking mail to (end)customer (executed in operational database) function sendTrackingHTMLMail ($mailToAddress, $itemDataForMail, $moIdRefDB, $jbId, $trackingLink = "", $hqId = "0", $mdId = "0", $imgLogoArr = array(), $etaOut = "", $mailSubject = "") { global $db, $PHP_SELF, $debug; if ($mailToAddress != "") : if (checkEmailFormat($mailToAddress)) : $itemDataForMailLen = count($itemDataForMail); if ($itemDataForMailLen > 0) : // Generate tracking links if ($trackingLink == "") : $trackingLink = "http://www.assecutor.de/tracking/tracking/tracking_ADSG.php?trackingID="; endif; $outputTrackingLinks = ""; $outputJb = ""; $outputTr = ""; $outputTrat = ""; for ($i = 0; $i < $itemDataForMailLen; $i++) : $objType = $itemDataForMail[$i][1]; $objId = $itemDataForMail[$i][2]; $mtrHash = $itemDataForMail[$i][3]; $mtrvalue = $itemDataForMail[$i][4]; $barcode = $itemDataForMail[$i][5]; if ($objType == "tracking_jb") : $outputJb .= "" . $mtrvalue . "

"; elseif ($objType == "tracking_tr") : if ($itemDataForMailLen == 1) : // $outputTr .= "" . $jbId . "

"; $outputTr .= "" . getLngt("Bitte hier klicken!") . "

"; else : $outputTr .= "" . $mtrvalue . "

"; endif; elseif ($objType == "tracking_trat") : $outputTrat .= "" . $barcode . "

"; endif; endfor; if ($outputJb != "") : $outputTrackingLinks .= "
" . getLngt("Auftrag") . "

" . $outputJb . "
"; endif; if ($outputTr != "") : if ($itemDataForMailLen == 1) : // $outputTrackingLinks .= "
" . getLngt("Auftrag") . "

" . $outputTr . "

"; $outputTrackingLinks .= "
" . $outputTr . "

"; else : $outputTrackingLinks .= "
" . getLngt("Stationen") . "

" . $outputTr . "

"; endif; endif; if ($outputTrat != "") : $outputTrackingLinks .= getLngt("Artikel") . "

" . $outputTrat . "


"; endif; if ($moIdRefDB != "") : $sendMail = true; // Set From address $mailFromAddress = getParameterValue("0", "MAIL_TRACKING_SENDER_ADDRESS", $hqId, $mdId); if ($mailFromAddress == "") : $mailFromAddress = getParameterValue("0", "MAIL_TRACKING_SENDER_ADDRESS", "0", $mdId); if ($mailFromAddress == "") : $mailFromAddress = getParameterValue("0", "MAIL_SENDER_ADDRESS", $hqId); if ($mailFromAddress == "") : $mailFromAddress = getParameterValue("0", "MAIL_SENDER_ADDRESS", "0"); endif; endif; endif; if ($mailFromAddress == "" || !checkEmailFormat($mailFromAddress)) : $sendMail = false; endif; if ($sendMail) : // Get header image from database $imgFilename = $imgLogoArr[0]; $imgHeight = $imgLogoArr[1]; $imgWidth = $imgLogoArr[2]; $cssBackground = $imgLogoArr[3]; if ($imgFilename == "") : $imgFilename = "assecutor.png"; $imgHeight = "233"; $imgWidth = "543"; endif; if ($cssBackground == "") : $cssBackground = "#CDD9FD"; endif; $mailObj = new htmlMimeMail(); $mailtext = ""; $mailtext .= "" . getLngt("Sendungsverfolgung") . ""; $mailtext .= ""; $mailtext .= ""; $mailtext .= ""; $mailtext .= "
"; $mailtext .= ""; $mailtext .= " "; $mailtext .= " "; $mailtext .= " "; $mailtext .= "
"; $mailtext .= "
"; $mailtext .= "
"; $mailtext .= "
"; $mailtext .= ""; $mailtext .= " "; $mailtext .= " "; $mailtext .= " "; $mailtext .= " "; $mailtext .= " "; $mailtext .= "
"; $mailtext .= " "; if ($etaOut != "") : $mailtext .= " " . $etaOut . "

"; endif; $mailtext .= " " . getLngt("Zur Verfolgung Ihrer Sendung betätigen Sie bitte nachstehenden Link") . ":

"; $mailtext .= $outputTrackingLinks; $mailtext .= "
"; $mailtext .= "
"; $mailtext .= "
"; $mailtext .= "
"; $mailtext .= ""; $mailtext .= " "; $mailtext .= " "; $mailtext .= " "; $mailtext .= "
"; $mailtext .= " "; $mailtext .= "
"; $mailtext .= "
"; $mailtext .= "
"; $mailtext .= ""; $mailtext .= ""; $mailObj->setHtml($mailtext, null, "./"); $mailObj->setFrom($mailFromAddress); // Set Cc address /* $mailCcAddress = getParameterValue("0", "MAIL_CC_ADDRESS", $hqId); if ($mailCcAddress == "" || !checkEmailFormat($mailCcAddress)) : $mailCcAddress = MAIL_CC_ADDRESS; endif; if ($mailCcAddress != "" && checkEmailFormat($mailCcAddress)) : // $mailObj->setCc($mailCcAddress); endif; */ // Set Bcc address /* $mailBccAddress = getParameterValue("0", "MAIL_BCC_ADDRESS", $hqId); if ($mailBccAddress == "" || !checkEmailFormat($mailBccAddress)) : $mailBccAddress = MAIL_BCC_ADDRESS; endif; if ($mailBccAddress != "" && checkEmailFormat($mailBccAddress)) : // $mailObj->setBcc($mailBccAddress); endif; */ $mailSubject = trim($mailSubject); if ($mailSubject != "") : $mailObj->setSubject($mailSubject); else : $mailObj->setSubject(getLngt("Sendungsverfolgung Ihres Auftrags") . " " . $jbId); endif; // $mailResult = $mailObj->send(array($mailToAddress), 'smtp'); $mailResult = $mailObj->send(spliti(",", $mailToAddress), 'smtp'); // $mailObj->free(); $mailObj = NULL; $retArray = array("0", $mailResult); else : $retArray = array("905","005\n","" . getLngt("Es existiert keine Absenderadresse!") . "\n"); endif; else : $retArray = array("904","004\n","" . getLngt("Der Wert für die Referenzdatenbank fehlt!") . "\n"); endif; else : $retArray = array("903","003\n","" . getLngt("Die ID für die Sendungsverfolgung ist leer!") . "\n"); endif; else : $retArray = array("902","002\n","" . getLngt("Mindestens eine Mailadresse hat kein korrektes Format!") . "\n"); endif; else : $retArray = array("901","001\n","" . getLngt("Keine Mailadresse spezifiziert!") . "\n"); endif; return $retArray; } // Checks tracking state of the customer (payer or related) if the current job and inserts into "metatracking" function initTrackingProcessJob($jbId, $dbConnection = "") { global $db, $PHP_SELF; global $dbname, $dblogin, $dbpassword; global $jobData; $debug = true; $currentTime = getDateTime("0"); $currentTimestamp = getDateTime("6"); $retArray = array("101","101\n","" . getLngt("Keine oder falsche Auftragsnummer!") . "\n"); // Init only if ($jbId != "" && is_numeric($jbId)) : if (!is_object($dbConnection) || $dbConnection == "") : $dbConnection = $db; endif; if (existsEntry("job",array("jb_id",$jbId),$dbConnection)) : /* if ($jobData == "" || !is_array($jobData) || count($jobData["job"]) == 0) : getDBData("job", $jbId); getDBData("tour", $jbId); getDBData("tourarticle", $jbId); // getDBData("genericdatacontainer", $jbId); endif; */ // Get current global number of THIS database instance $constGlobalDbInstNo = getParameterValue("0", "GLOBAL_UNIQUE_DB_INSTANCE_NO", "0", "0"); // Get global usage mode $globalParUseRelatedCustomer = getParameterValue("0", "GLOBAL_USE_RELATED_CUSTOMER", "0"); // Generate internal barcode inserted in "tourarticle.trat_int_serialno" if NOT does exist $internalSerialno = $currentTimestamp; // Get customer (payer or related) from job and check tracking state being activated // $jbCscIdPayer = $jobData["job"]["csc_id_payer"]; // $jbCscIdRelated = $jobData["job"]["csc_id_related"]; // if ($jbCscIdPayer == "" || $jbCscIdPayer == "0" || $jbCscIdRelated == "" || $jbCscIdRelated == "0" ) : $jbFields = getFieldsValueFromId("job", "jb_id", $jbId, array("csc_id_payer","csc_id_related"),$dbConnection); $jbCscIdPayer = $jbFields[0]; $jbCscIdRelated = $jbFields[1]; // endif; $csIdPayer = getFieldValueFromId("costcenter","csc_id",$jbCscIdPayer,"cs_id",$dbConnection); $csIdRelated = getFieldValueFromId("costcenter","csc_id",$jbCscIdRelated,"cs_id",$dbConnection); $csTrackingPayer = getFieldValueFromId("customer","cs_id",$csIdPayer,"cs_tracking",$dbConnection); $csTrackingRelated = getFieldValueFromId("customer","cs_id",$csIdRelated,"cs_tracking",$dbConnection); $cscRelevant = "csc_id_payer"; $cscIdRelevant = $jbCscIdPayer; $csIdRelevant = $csIdPayer; $csTrackingRelevant = $csTrackingPayer; if ($globalParUseRelatedCustomer == "1") : $cscRelevant = "csc_id_related"; $cscIdRelevant = $jbCscIdRelated; $csIdRelevant = $csIdRelated; $csTrackingRelevant = $csTrackingRelated; endif; if ($debug) : echo "jbId : " . $jbId . "
"; echo "globalParUseRelatedCustomer : " . $globalParUseRelatedCustomer . "
"; echo "jbCscIdPayer : " . $jbCscIdPayer . "
"; echo "jbCscIdRelated : " . $jbCscIdRelated . "
"; echo "csIdPayer : " . $csIdPayer . "
"; echo "csIdRelated : " . $csIdRelated . "
"; echo "csTrackingPayer : " . $csTrackingPayer . "
"; echo "csTrackingRelated : " . $csTrackingRelated . "
"; echo "cscRelevant : " . $cscRelevant . "
"; echo "cscIdRelevant : " . $cscIdRelevant . "
"; echo "csIdRelevant : " . $csIdRelevant . "
"; echo "

"; endif; // **** Insert tracking data and send mails to payer or related customer **** if ($csTrackingRelevant == "1" || $csTrackingRelevant == "3") : $itemDataForMail = array(); // Insert tracking data into "metatracking" $tratArray = getTratArticles($jbId); $tratArrayLen = count($tratArray); if ($tratArrayLen > 0) : // There are tour articles with or without barcodes for ($i = 0; $i < $tratArrayLen; $i++) : $trId = trim($tratArray[$i][12]); $tratId = trim($tratArray[$i][11]); $tratSerialno = trim($tratArray[$i][4]); $tratIntSerialno = trim($tratArray[$i][13]); if ($tratIntSerialno == "" && $tratId != "") : // Set generated default internal serial number if does not exist and update it into the database $tratIntSerialno = $internalSerialno; updateStmt("tourarticle","trat_id",$tratId,array("trat_int_serialno",$tratIntSerialno)); endif; // if ($tratSerialno != "") : $tmpArray = insertTrackingItems($jbId, $trId, $tratId, $tratIntSerialno, $tratSerialno); $tmpArrayLen = count($tmpArray); for ($j = 0; $j < $tmpArrayLen; $j++) : $tmpExist = false; $itemDataForMailLen = count($itemDataForMail); for ($k = 0; $k < $itemDataForMailLen; $k++) : // Check for hash existence if ($tmpArray[$j][2] == $itemDataForMail[$k][2]) : $tmpExist = true; break 1; endif; endfor; if (!$tmpExist) : $itemDataForMail[] = $tmpArray[$j]; endif; endfor; // endif; endfor; else : $trArray = getColVectorFromDB2ArrayByClause("tour", "tr_id", "jb_id = '" . $jbId . "'", "", "", "DISTINCT", $dbConnection); $trArrayLen = count($trArray); if ($trArrayLen > 0) : for ($i = 0; $i < $trArrayLen; $i++) : $tmpArray = insertTrackingItems($jbId, $trArray[$i]); $tmpArrayLen = count($tmpArray); for ($j = 0; $j < $tmpArrayLen; $j++) : if (!in_array($tmpArray[$j], $itemDataForMail)) : $itemDataForMail[] = $tmpArray[$j]; endif; endfor; endfor; endif; // $itemDataForMail[] = insertTrackingItems($jbId); // Inserted implicitly by inserting stations endif; $itemDataForMailLen = count($itemDataForMail); if ($debug) : echo "tratArray:
"; print_r($tratArray); echo "

"; echo "itemDataForMail:
"; print_r($itemDataForMail); echo "

"; endif; // Items does exist for sending mail if ($itemDataForMailLen > 0) : // Get mail address of (paying or related) customer by itself $csJbstatusmail2csc = getFieldValueFromId("customer","cs_id",$csIdRelevant,"cs_jbstatusmail2csc",$dbConnection); if ($csJbstatusmail2csc == "1") : // Use email address of the costcenter $mailToAddress = getFieldValueFromClause("costcenteraddress","cscad_email","csc_id = '" . $cscIdRelevant . "' AND adt_id = '2'",$dbConnection); else : // Use email address in master data sheet $csAdmin = getFieldValueFromId("customer","cs_id",$csIdRelevant,"cs_admin",$dbConnection); $usrId = getFieldValueFromId("employee","emp_id",$csAdmin,"usr_id",$dbConnection); $mailToAddress = getFieldValueFromId("user","usr_id",$usrId,"usr_email",$dbConnection); endif; // Send email to customer $retArray = sendTrackingHTMLMail($mailToAddress, $itemDataForMail, $constGlobalDbInstNo, $jbId); if ($retArray[0]) : // $mailsendStatus = getLngt("Die Nachricht wurde versandt!"); // Write logdata into log database // writeToLogDB("22",$currentHqId,$job_id,$currentSessionUsrId,"","","",$f_email); else : // $mailsendStatus = getLngt("Die Nachricht konnte nicht gesendet werden!"); // Write logdata into log database // writeToLogDB("23",$currentHqId,$job_id,$currentSessionUsrId,"","","",$f_email); $retArray = array("106","106\n","" . getLngt("Die Email konnte nicht mehr versendet werden!") . "\n"); endif; else : $retArray = array("104","104\n","" . getLngt("Es wurden keine Trackingdaten zurückgeliefert!") . "\n"); endif; endif; // **** Insert tracking data end customer or station mail addresses **** if ($csTrackingRelevant == "2" || $csTrackingRelevant == "3") : $itemDataForMail = array(); // Get mail address of each station $trArray = getColVectorFromDB2ArrayByClause("tour", "tr_id", "jb_id = '" . $jbId . "' AND tr_sort >= '2' AND ", "", "", "", $dbConnection); $trArrayLen = count($trArray); if ($trArrayLen > 0) : for ($i = 0; $i < $trArrayLen; $i++) : $itemDataForMail[] = insertTrackingItems($jbId, $trArray[$i]); endfor; endif; endif; else : $retArray = array("103","103\n","" . getLngt("Der Auftrag existiert nicht!") . "\n"); endif; else : $retArray = array("102","102\n","" . getLngt("Keine Auftragsnummer!") . "\n"); endif; return $retVal; } // **** TEST **** // $res = initTrackingProcessJob("1872318"); // HTG Test // $res = initTrackingProcessJob("16020472"); // STB Hennig // $res = initTrackingProcessJob("21096155"); // STB925112 tevitel AG // print_r($res); ?>