";
if ($dbTable != "") :
if (!is_object($dbConnection) || $dbConnection == "") : $dbConnection = $db; endif;
// Map virtual table names to real table names
$dbTableGen = $dbTable;
if ($dbTableGen == "gdc_jb" || $dbTableGen == "gdc_tr" || $dbTableGen == "gdc_jb_tr") :
$dbTableGen = "genericdatacontainer";
endif;
if ($dbTableGen == "asd_as") :
$dbTableGen = "assetdisposition";
endif;
if (substr($dbTableGen,0,4) == "asr_") :
$dbAsrType = substr($dbTableGen,4) . "";
$dbTableGen = "assetrelation";
endif;
if (substr($dbTableGen,0,4) == "log_") :
$dbLogIndexField = substr($dbTableGen,4) . "_id";
$dbTableGen = "log";
endif;
// Get DB fields
$dbFields = getDBFields($dbTableGen);
if ($dbFields != "") :
$sqlStmt = "";
if ($dbTable == "job") :
$sqlStmt = generateStatement($dbFields, "job AS jb", "jb.jb_id = '" . $id . "'", "");
endif;
if ($dbTable == "tour") :
// $sqlStmt = generateStatement($dbFields, "tour AS tr", "tr.jb_id = '" . $id . "'", "tr.tr_sort");
$dbFields .= "," . getDBFields("address") . "," . getDBFields("ad_street_hsno");
$sqlStmt = generateStatement($dbFields, "tour AS tr, address AS ad", "tr.jb_id = '" . $id . "' AND tr.ad_id = ad.ad_id", "tr.tr_sort");
endif;
if ($dbTable == "tourservice") :
$sqlStmt = generateStatement($dbFields, "tourservice AS trs", "trs.jb_id = '" . $id . "'", "trs.tr_sort");
endif;
if ($dbTable == "tourarticle") :
$dbFields .= "," . getDBFields("article");
$sqlStmt = generateStatement($dbFields, "tourarticle AS trat LEFT JOIN article AS at ON trat.at_id = at.at_id", "trat.jb_id = '" . $id . "'", "trat.jb_id, trat.tr_sort");
endif;
if ($dbTable == "tourarticleprocess") :
$sqlStmt = generateStatement("trat.trat_id," . $dbFields, "tourarticle AS trat, tourarticleprocess AS tratp", "trat.jb_id = '" . $id . "' AND trat.trat_id = tratp.trat_id", "tratp.trat_id");
endif;
if ($dbTable == "user") :
$sqlStmt = generateStatement($dbFields, "job AS jb, user AS usr", "jb.jb_id = '" . $id . "' AND jb.emp_id = usr.usr_id", "");
endif;
if ($dbTable == "genericdatacontainer") :
$sqlStmt = generateStatement($dbFields, "genericdatacontainer AS gdc", "gdc.gdc_obj_type = 'jb' AND gdc.gdc_obj_id = '" . $id . "'", "");
endif;
if ($dbTable == "gdc_jb") :
$sqlStmt = generateStatement("gdc.gdc_obj_id, gdc.gdc_obj_type, " . $dbFields, "genericdatacontainer AS gdc", "gdc.gdc_obj_type = 'jb' AND gdc.gdc_obj_id = '" . $id . "'", "");
endif;
if ($dbTable == "gdc_tr") :
$sqlStmt = generateStatement("gdc.gdc_obj_id, gdc.gdc_obj_type, " . $dbFields, "genericdatacontainer AS gdc", "gdc.gdc_obj_type = 'tr' AND gdc.gdc_obj_id = '" . $id . "'", "");
endif;
if ($dbTable == "gdc_jb_tr") :
// Get all "tr_id" from "id" ("id" <=> "jb_id")
$tmpArray = getColVectorFromDB2ArrayByClause("tour", "tr_id", "jb_id = '" . $id . "'", "", "", "");
if (count($tmpArray) > 0) :
$sqlStmt = generateStatement($dbFields, "genericdatacontainer AS gdc", "gdc.gdc_obj_type = 'tr' AND gdc.gdc_obj_id IN (" . implode(",", $tmpArray) . ")", "");
endif;
endif;
if ($dbTableGen == "log") : // Here "$dbTableGen" because wrapped above ("log_jb", etc. to "log") with index field name "$dbLogIndexField"
$dbFields .= "," . getDBFields("logoperation");
$sqlStmt = generateStatement($dbFields, "phoenix_log.log AS log, phoenix_log.logoperation AS logo", "log." . $dbLogIndexField . " = '" . $id . "' AND log.logo_id = logo.logo_id", "log.log_createtime");
endif;
if ($dbTable == "address") :
$sqlStmt = generateStatement($dbFields, "address AS ad", "ad.ad_id = '" . $id . "'", "");
endif;
if ($dbTable == "article") :
$sqlStmt = generateStatement($dbFields, "article AS at", "at.at_id = '" . $id . "'", "");
endif;
if ($dbTable == "costcenter") :
$sqlStmt = generateStatement($dbFields, "costcenter AS csc", "csc.csc_id = '" . $id . "'", "");
endif;
if ($dbTable == "costcenteraddress") :
$dbFields .= "," . getDBFields("address");
$sqlStmt = generateStatement($dbFields, "costcenteraddress AS cscad, address AS ad", "cscad.csc_id = '" . $id . "' AND cscad.ad_id = ad.ad_id", "cscad.adt_id");
endif;
if ($dbTable == "customer") :
$sqlStmt = generateStatement($dbFields, "customer AS cs", "cs.cs_id = '" . $id . "'", "");
endif;
if ($dbTable == "courier") :
$sqlStmt = generateStatement($dbFields, "courier AS cr", "cr.cr_id = '" . $id . "'", "");
endif;
if ($dbTable == "company") :
$sqlStmt = generateStatement($dbFields, "company AS cmp", "cmp.cmp_id = '" . $id . "'", "");
endif;
if ($dbTable == "couriervehicle") :
$sqlStmt = generateStatement($dbFields, "couriervehicle AS crvh", "crvh.crvh_id = '" . $id . "'", "");
endif;
if ($dbTable == "courierfilter") :
$sqlStmt = generateStatement($dbFields, "courierfilter AS crf", "crf.crf_id = '" . $id . "'", "");
endif;
if ($dbTable == "asset") :
$sqlStmt = generateStatement($dbFields, "asset AS ast", "ast.as_id = '" . $id . "'", "");
endif;
if ($dbTable == "assetrelation") :
$dbFields .= "," . getDBFields("asset");
$sqlStmt = generateStatement($dbFields, "assetrelation AS asr, asset AS ast", "asr.as_id = '" . $id . "' AND asr.as_id_ref = ast.as_id", "asr.asr_type");
endif;
if ($dbTableGen == "assetrelation" && $dbAsrType != "") : // Here "$dbTableGen" because wrapped above ("asr_owner", etc. to "assetrelation") with asset relation type "$dbAsrType"
$dbFields .= "," . getDBFields("asset");
$sqlStmt = generateStatement($dbFields, "assetrelation AS asr, asset AS ast", "asr.as_id = '" . $id . "' AND asr.asr_type = '" . $dbAsrType . "' AND asr.as_id_ref = ast.as_id", "asr.as_id_ref");
endif;
if ($dbTable == "assetdisposition") :
$sqlStmt = generateStatement($dbFields, "assetdisposition AS asd", "asd.asd_id = '" . $id . "'", "");
endif;
if ($dbTable == "asd_as") :
$sqlStmt = generateStatement($dbFields, "assetdisposition AS asd", "asd.as_id = '" . $id . "'", "");
endif;
if ($sqlStmt != "") :
$result = $dbConnection->query($sqlStmt);
if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage());
// Try to substitute "CONCAT(....) AS "
$dbFields = preg_replace('/CONCAT\([^)]*\) AS /i', 'xxxx.', $dbFields);
$tmpArray = spliti(",", $dbFields);
$tmpArrayLen = count($tmpArray);
$count = 0;
while ($row = $result->fetch_assoc()):
for ($j = 0; $j < $tmpArrayLen; $j++) :
$tmpFieldName = getDBFieldsNameWithoutAlias($tmpArray[$j]);
// echo $j . ". " . $tmpArray[$j] . " | " . $tmpFieldName . "
";
if ($dbTable == "job") :
$dbData["job"][$tmpFieldName] = $row[$tmpFieldName];
$jobData["job"][$tmpFieldName] = $row[$tmpFieldName];
endif;
if ($dbTable == "tour") :
$dbData["tour"][$row["tr_sort"]][$tmpFieldName] = $row[$tmpFieldName];
$jobData["tour"][$row["tr_sort"]][$tmpFieldName] = $row[$tmpFieldName];
endif;
if ($dbTable == "tourservice") :
$dbData["tourservice"][$row["tr_sort"]][$count][$tmpFieldName] = $row[$tmpFieldName];
$jobData["tourservice"][$row["tr_sort"]][$count][$tmpFieldName] = $row[$tmpFieldName];
endif;
if ($dbTable == "tourarticle") :
$dbData["tourarticle"][$row["tr_sort"]][$count][$tmpFieldName] = $row[$tmpFieldName];
$jobData["tourarticle"][$row["tr_sort"]][$count][$tmpFieldName] = $row[$tmpFieldName];
endif;
if ($dbTable == "tourarticleprocess") :
$dbData["tourarticleprocess"][$row["trat_id"]][$row["tratp_type"]][$tmpFieldName] = $row[$tmpFieldName];
$jobData["tourarticleprocess"][$row["trat_id"]][$row["tratp_type"]][$tmpFieldName] = $row[$tmpFieldName];
endif;
if ($dbTable == "user") :
$dbData["user"][$tmpFieldName] = $row[$tmpFieldName];
$jobData["user"][$tmpFieldName] = $row[$tmpFieldName];
endif;
if ($dbTable == "genericdatacontainer") :
$dbData["gdc_jb"][$row["gdc_gen_fieldname"]][$tmpFieldName] = $row[$tmpFieldName];
$jobData["gdc_jb"][$row["gdc_gen_fieldname"]][$tmpFieldName] = $row[$tmpFieldName];
endif;
if ($dbTable == "gdc_jb" || $dbTable == "gdc_tr" || $dbTable == "gdc_jb_tr") :
$dbData["gdc"][$row["gdc_obj_type"]][$row["gdc_obj_id"]][$row["gdc_gen_fieldname"]][$tmpFieldName] = $row[$tmpFieldName];
$jobData["gdc"][$row["gdc_obj_type"]][$row["gdc_obj_id"]][$row["gdc_gen_fieldname"]][$tmpFieldName] = $row[$tmpFieldName];
endif;
if ($dbTable == "log_jb") :
$dbData["log"][$count][$tmpFieldName] = $row[$tmpFieldName];
$jobData["log"][$count][$tmpFieldName] = $row[$tmpFieldName];
endif;
if ($dbTable == "costcenteraddress") :
$dbData["costcenteraddress"]["addresstype_" . $row["adt_id"]][$tmpFieldName] = $row[$tmpFieldName];
endif;
if ($dbTable == "assetrelation" || substr($dbTable,0,4) == "asr_") :
$dbData[$dbTable][$count][$tmpFieldName] = $row[$tmpFieldName];
endif;
if ($dbTable == "assetdisposition" || $dbTable == "asd_as") :
$dbData["assetdisposition"][$count][$tmpFieldName] = $row[$tmpFieldName];
endif;
if ($dbTable == "address" || $dbTable == "article" || $dbTable == "costcenter" || $dbTable == "customer" || $dbTable == "courier" || $dbTable == "company" || $dbTable == "couriervehicle" || $dbTable == "asset") :
$dbData[$dbTable][$tmpFieldName] = $row[$tmpFieldName];
endif;
endfor;
$count++;
endwhile;
$result->free();
endif;
endif;
endif;
}
// Gets DB data by search
function getDBDataBySearch ($dbTable, $dbFieldsSpecial = array(), $dbFromSpecial = array(), $dbWhereSpecial = array(), $whereClauseSpecial = "", $orderByClauseSpecial = "", $dbConnection = "") {
global $db, $PHP_SELF;
global $dbData, $hq_id, $usr_id, $emp_id;
if ($dbTable != "") :
if (!is_object($dbConnection) || $dbConnection == "") : $dbConnection = $db; endif;
$dbTableGen = $dbTable;
$dbFieldsSpecialLen = count($dbFieldsSpecial);
$dbFromSpecialLen = count($dbFromSpecial);
$dbWhereSpecialLen = count($dbWhereSpecial);
// Map virtual table names to real table names
// if ($dbTableGen == "gdc_jb") :
// $dbTableGen = "genericdatacontainer";
// endif;
// Get default DB fields if $parFields is empty
$addDbDefaultFields = false;
if ($dbFieldsSpecialLen > 0) :
$dbFields = implode(",", $dbFieldsSpecial);
else :
$dbFields = getDBFields($dbTableGen);
$addDbDefaultFields = true;
endif;
$dbFields = getDBFields($dbTableGen);
if ($dbFields != "") :
// Init
$sqlStmt = "";
$fromClause = "";
$whereClause = "";
// Generate FROM clause
// [Better "implode()" but special cases with ALIAS could be added!]
for ($i = 0; $i < $dbFromSpecialLen; $i++) :
if ($fromClause != "") : $fromClause .= ", "; endif;
$fromClause .= $dbFromSpecial[$i];
endfor;
// Generate WHERE clause
$dbWhereKeyArray = array_keys($dbWhereSpecial);
$dbWhereKeyArrayLen = count($dbWhereKeyArray);
for ($i = 0; $i < $dbWhereKeyArrayLen; $i++) :
if ($whereClause != "") : $whereClause .= " AND "; endif;
$whereClause .= $dbWhereKeyArray[$i] . " = '" . my_str_check($dbWhereSpecial[$dbWhereKeyArray[$i]]) . "'";
endfor;
// Add special where clause if requested
if ($whereClauseSpecial != ""):
if ($whereClause != "") : $whereClause .= " AND "; endif;
$whereClause .= $whereClauseSpecial;
endif;
// Generate statement
// The $whereClauseDefault represents ALL 1:1 references (!!!!)
if ($dbTable == "job") :
// $sqlStmt = generateStatement($dbFields, "job AS jb", "jb.jb_id = '" . $id . "'", "");
endif;
if ($dbTable == "tour") :
if ($addDbDefaultFields) : $dbFields .= "," . getDBFields("address") . "," . getDBFields("ad_street_hsno"); endif;
$whereClauseDefault = "jb.jb_id = tr.jb_id AND tr.ad_id = ad.ad_id";
if ($whereClause != "") : $whereClauseDefault .= " AND "; endif;
$whereClause = $whereClauseDefault . $whereClause;
$sqlStmt = generateStatement($dbFields, "tour AS tr, address AS ad", $whereClause, $orderByClauseSpecial);
endif;
// ...................
if ($sqlStmt != "") :
$result = $dbConnection->query($sqlStmt);
if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage());
$tmpArray = explode(",", $dbFields);
$tmpArrayLen = count($tmpArray);
$count = 0;
while ($row = $result->fetch_assoc()):
for ($j = 0; $j < $tmpArrayLen; $j++) :
$tmpFieldName = getDBFieldsNameWithoutAlias($tmpArray[$j]);
if ($dbTable == "job") :
// $dbData["job"][$tmpFieldName] = $row[$tmpFieldName];
endif;
if ($dbTable == "tour") :
$dbData["tour"][$row["tr_sort"]][$tmpFieldName] = $row[$tmpFieldName];
endif;
endfor;
$count++;
endwhile;
$result->free();
endif;
endif;
endif;
}
?>