Files
votianng/html/include/inc_dbfields2array.inc.php
2026-03-29 10:34:57 +02:00

793 lines
38 KiB
PHP

<?php
/*=======================================================================
*
* inc_dbfields2array.inc.php
*
* Autor: Marc Vollmann
*
=======================================================================*/
// Converts the result of a database search to an array.
// The following fields have to be defined before calling this function.
// VARS: $fieldArray : Fieldnames (e.g. "cmp.cmp_comp", "usr.usr_email", etc.)
// $idArrayLen : Number of fields to be exportable (equals to "count($fieldArray)")
// Usage e.g. in EXPORT and STATISTIC
function convertRowToArray($result,$localeFieldArray = "",$localeIdArrayLen = "") {
global $db,$fieldArray, $idArrayLen, $f_exp_category, $f_export_mode, $specialJbPayment, $jbIdReal;
$rowArray = array();
$j = 0;
// $csEidMappingArray = array();
$currentDate = getDateTime("3");
if ($localeFieldArray != "") : $fieldArray = $localeFieldArray; endif;
if ($localeIdArrayLen != "") : $idArrayLen = $localeIdArrayLen; endif;
while ($row = $result->fetch_assoc()) :
$doContinue = true;
// Check conditions to avoid export of current row
if ($f_exp_category == "2" || $f_exp_category == "3") :
$tmpCrId = $row["cr_id"];
if ($tmpCrId != "" && $tmpCrId > 0) :
// [I] "cmp.cmp_contract_date"
$tmpCmpId = getFieldValueFromId("courier","cr_id",$tmpCrId,"cmp_id");
$contractDate = getFieldValueFromId("company","cmp_id",$tmpCmpId,"cmp_contract_date");
if ($contractDate == "" || $contractDate == "0000-00-00") :
// [II] Category 3 [2nd TP-Page], Field 1631 ["Vertragsbeginn"], [1945 <=> current mtfck association]
$contractDate = getMetafieldValue("3", "1631", $tmpCrId, "0");
if ($contractDate != "" && $contractDate != "ERR") :
// Convert to date
$contractDate = substr($contractDate,6,4) . "-" . substr($contractDate,3,2) . "-" . substr($contractDate,0,2);
endif;
endif;
if ($contractDate != "" && $contractDate != "ERR") :
if ($currentDate < $contractDate) :
$doContinue = false;
endif;
endif;
endif;
endif;
// Check special "no-export-date" to avoid export of current vehicle row
if ($doContinue && $f_exp_category == "3") :
$tmpCrvhId = $row["crvh_id"];
if ($tmpCrvhId != "" && $tmpCrvhId > 0) :
// [II] Category 4 [2nd vehicle page], Field 1728 ["Enddatum SAP-Export"], [2117 <=> current mtfck association]
$noExportDate = getMetafieldValue("4", "1728", $tmpCrvhId, "0");
if ($noExportDate != "" && $noExportDate != "ERR" && $noExportDate != "0000-00-00") :
$noExportDate = substr($noExportDate, 6, 4) . "-" . substr($noExportDate, 3, 2) . "-" . substr($noExportDate, 0, 2);
// Increment one day
// $noExportDate = date('Y-m-d', strtotime($noExportDate . ' +1 day'));
if ($currentDate >= $noExportDate) :
$doContinue = false;
endif;
endif;
endif;
endif;
if ($doContinue) :
$tmpJbCscIdPayer = "";
$tmpCsCscIdRoot = "";
$tmpMainadressOverrulesInvoiceaddress = FALSE;
$tmpMainCompanynameOverrulesInvoiceCompanyname = FALSE;
$jbpcId = "";
$paymentMethod = " ";
if ($f_exp_category == "8") :
// Get job payment collection ID for payment method CASH ("Barzahlung")
// $jbpcId = getFieldValueFromClause("jobpayment","jbpc_id","jb_id = '" . $row["jb_id"] . "' AND jbp_mode = '0'");
$jbpcId = getFieldValueFromClause("jobpayment","jbpc_id","jb_id = '" . $row["jb_id"] . "' AND jbpc_id != '0' AND jbp_price != '0'");
$jbpCounter = getFieldValueFromClause("jobpayment","jbp_counter","jb_id = '" . $row["jb_id"] . "' AND jbp_mode = '0' AND jbp_price != '0'");
// If $jbpCounter == "0" => $paymentMethod = JB_PAYMODE_CASH;
// If $jbpCounter == "" => $paymentMethod = " ";
if ($jbpCounter == "0") :
$paymentMethod = JB_PAYMODE_CASH;
endif;
/*
if ($jbpcId != "" && is_numeric($jbpcId)) :
$paymentMethod = JB_PAYMODE_CASH;
else :
// Get job payment collection ID for payment method NOT being CASH ("Keine Barzahlung")
$jbpcId = getFieldValueFromClause("jobpayment","jbpc_id","jb_id = '" . $row["jb_id"] . "' AND jbp_mode != '0'");
endif;
*/
if ($f_exp_category == "8") : // Check existing invoice vehicle. If it does exist substitute SID
$crIdParent = getFieldValueFromId("courier","cr_id",$row["cr_id"],"cr_id_parent");
if ($crIdParent == "" || $crIdParent == "0") :
$crIdParent = $row["cr_id"];
endif;
$crvhIdInv = getFieldValueFromClause("couriervehicle", "crvh_id_inv", "cr_id = '" . $crIdParent . "' AND RIGHT(crvh_sid,3) = '" . substr($row["cr_sid"],-3) . "'");
if ($crvhIdInv != "" && $crvhIdInv != "0") :
$crvhSidInv = getFieldValueFromId("couriervehicle","crvh_id",$crvhIdInv,"crvh_sid");
if ($crvhSidInv != "") :
$row["cr_sid"] = " " . substr($crvhSidInv,-3);
endif;
endif;
endif;
endif;
for ($i = 0; $i < $idArrayLen; $i++) :
// Extract the fieldname (right part of the ".", e.g. "cmp_comp" from "cmp.cmp_comp")
$fieldName = substr($fieldArray[$i], strrpos($fieldArray[$i],".") + 1);
// Current content of the field (e.g. $rowArray[3]["cmp_comp"] = $row["cmp_comp"])
$rowArray[$j][$fieldName] = mcArrIsSet($row, $fieldName);
// Special cases for general treatment ...
if ($fieldName == "cmp_modify_status") : // companies (customers, couriers, etc.)
if ($rowArray[$j][$fieldName] == "" || $rowArray[$j][$fieldName] == "0") :
$rowArray[$j][$fieldName] = " ";
endif;
if ($rowArray[$j][$fieldName] == "1") :
$rowArray[$j][$fieldName] = ROW_EDIT_STATUS_NEW;
endif;
if ($rowArray[$j][$fieldName] == "2") :
$rowArray[$j][$fieldName] = ROW_EDIT_STATUS_MODIFY;
endif;
endif;
if ($fieldName == "crvh_modify_status") : // vehicles
if ($rowArray[$j][$fieldName] == "" || $rowArray[$j][$fieldName] == "0") :
$rowArray[$j][$fieldName] = " ";
endif;
if ($rowArray[$j][$fieldName] == "1") :
$rowArray[$j][$fieldName] = " ";
endif;
if ($rowArray[$j][$fieldName] == "2") :
$rowArray[$j][$fieldName] = " ";
endif;
if ($rowArray[$j][$fieldName] == "3") :
$rowArray[$j][$fieldName] = ROW_EDIT_STATUS_DELETE;
endif;
endif;
if ($fieldName == "crvh_special") : // vehicles
if ($rowArray[$j][$fieldName] == "1") :
$rowArray[$j][$fieldName] = "X";
else :
$rowArray[$j][$fieldName] = " ";
endif;
endif;
if ($fieldName == "crvh_corporate_identity") : // vehicles (CI)
$tmpCI = $rowArray[$j][$fieldName];
$crvhCorporateIdentity = pad("G ", 60, " ");
if ($tmpCI != "" && is_numeric($tmpCI)) :
if (((int)$tmpCI & 15) == 1 || ((int)$tmpCI & 15) == 3) :
$crvhCorporateIdentity = "X" . substr($crvhCorporateIdentity, 1);
endif;
if (((((int)$tmpCI) / 16) & 15) == 1 || ((((int)$tmpCI) / 16) & 15) == 3) :
$crvhCorporateIdentity = substr($crvhCorporateIdentity, 0, 2) . "X" . substr($crvhCorporateIdentity, 3);
endif;
endif;
$rowArray[$j][$fieldName] = $crvhCorporateIdentity;
endif;
if ($f_exp_category == "2") :
if ($fieldName == "cmp_type") : // company type of the courier
if ($rowArray[$j][$fieldName] == "1") :
$rowArray[$j][$fieldName] = "X";
else :
$rowArray[$j][$fieldName] = " ";
endif;
endif;
endif;
if ($fieldName == "cmp_bankmode") : // companies
if ($rowArray[$j][$fieldName] == "" || $rowArray[$j][$fieldName] == "0") :
$rowArray[$j][$fieldName] = CMP_BANKMODE_INVOICE;
endif;
if ($rowArray[$j][$fieldName] == "1") :
$rowArray[$j][$fieldName] = CMP_BANKMODE_DEBITNOTE;
endif;
endif;
// Customer invoice address (if one component (street or zipcode or city) is empty take complete address of the company)
if ($f_exp_category == "1") :
if ($fieldName == "adre_street" || $fieldName == "cscad_hsno" || $fieldName == "adre_zipcode" || $fieldName == "adre_city") :
if (trim($rowArray[$j][$fieldName]) == "") :
$tmpMainadressOverrulesInvoiceaddress = TRUE;
endif;
endif;
if ($fieldName == "cscad_comp") :
if (trim($rowArray[$j][$fieldName]) == "") :
$tmpMainCompanynameOverrulesInvoiceCompanyname = TRUE;
endif;
endif;
endif;
if ($fieldName == "cash") : // jobs
if ($f_exp_category == "8") :
$rowArray[$j][$fieldName] = $paymentMethod; // Like " " or "BZ"
else :
$tmpJbCscIdPayer = $rowArray[$j][$fieldName];
if ($rowArray[$j][$fieldName] == "-1" || (CSC_ID_PAYER_CASH != "" && $rowArray[$j][$fieldName] == CSC_ID_PAYER_CASH)) :
$rowArray[$j][$fieldName] = JB_PAYMODE_CASH;
else :
$rowArray[$j][$fieldName] = " ";
endif;
endif;
endif;
if ($f_exp_category == "8" && $fieldName == "jbpc_id") : // Job payment collection ID
$rowArray[$j][$fieldName] = $jbpcId;
endif;
if ($fieldName == "tax_rate_sign") : // jobs
global $hq_id;
if ($hq_id >= "100" && $hq_id < "300") :
if ($rowArray[$j][$fieldName] == "0" || $rowArray[$j][$fieldName] == "3" || $rowArray[$j][$fieldName] == "4") :
$rowArray[$j][$fieldName] = JB_TAX_RATE_SIGN;
else :
$rowArray[$j][$fieldName] = " ";
endif;
else :
if ($rowArray[$j][$fieldName] == "0") :
$rowArray[$j][$fieldName] = JB_TAX_RATE_SIGN;
else :
$rowArray[$j][$fieldName] = " ";
endif;
endif;
endif;
if ($fieldName == "tx_id") : // companies
if ($rowArray[$j][$fieldName] == "2" || $rowArray[$j][$fieldName] == "3" || $rowArray[$j][$fieldName] == "5") :
if ($rowArray[$j][$fieldName] == "2") :
$rowArray[$j][$fieldName] = "03";
elseif ($rowArray[$j][$fieldName] == "5") :
$rowArray[$j][$fieldName] = "09";
else :
$rowArray[$j][$fieldName] = "04";
endif;
else :
$rowArray[$j][$fieldName] = "01";
endif;
endif;
if ($fieldName == "cmp_inv2hq") : // jobs (invoice mode customer)
if ($rowArray[$j][$fieldName] == "1" || $rowArray[$j][$fieldName] == "3") :
$rowArray[$j][$fieldName] = "RZ";
else :
$rowArray[$j][$fieldName] = " ";
endif;
endif;
if ($fieldName == "cmp_single_invoice") : // jobs (invoice mode customer)
if ($rowArray[$j][$fieldName] == "2" || $rowArray[$j][$fieldName] == "3") :
$rowArray[$j][$fieldName] = "ER";
else :
$rowArray[$j][$fieldName] = " ";
endif;
endif;
if ($fieldName == "jb_cr_filter_opt") : // jobs (invoice mode single job, overrules invoice mode customer)
if (!(strpos($rowArray[$j][$fieldName], "RZ") === false)) :
$rowArray[$j]["cmp_inv2hq"] = "RZ";
endif;
if (!(strpos($rowArray[$j][$fieldName], "EZ") === false)) :
$rowArray[$j]["cmp_single_invoice"] = "ER";
endif;
if (!(strpos($rowArray[$j][$fieldName], ",BL,") === false)) :
$rowArray[$j]["price_special"] = "BL";
endif;
endif;
if ($fieldName == "jb_commission_no") : // jobs commission numbers
if ($rowArray[$j][$fieldName] == "") :
$rowArray[$j][$fieldName] = $rowArray[$j]["tr_commission_no"];
endif;
endif;
if ($f_exp_category == "1") :
if ($fieldName == "cmp_dsgvo") :
if ($rowArray[$j][$fieldName] == "1") :
$rowArray[$j][$fieldName] = "JA";
else :
$rowArray[$j][$fieldName] = "NEIN";
endif;
endif;
if ($fieldName == "cs_jbedit") :
if ($rowArray[$j][$fieldName] == "1") :
$rowArray[$j][$fieldName] = "JA";
else :
$rowArray[$j][$fieldName] = "NEIN";
endif;
endif;
if ($fieldName == "cs_payment_term") :
$rowArray[$j][$fieldName] = getFieldValueFromClause("metatype", "mt_value", "mt_type = 'payment_term' AND mt_sort = '" . $rowArray[$j][$fieldName] . "'");
endif;
endif;
// ATTENTION: PROPRIETARY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if ($fieldName == "jbpc_mode") : // Payment mode
// if ($rowArray[$j][$fieldName] == "0" || $rowArray[$j][$fieldName] == "") :
if ($rowArray[$j][$fieldName] == "0" || $rowArray[$j][$fieldName] == "1" || $rowArray[$j][$fieldName] == "2" || $rowArray[$j][$fieldName] == "10" || $rowArray[$j][$fieldName] == "") :
$rowArray[$j][$fieldName] = "BZ";
else :
$rowArray[$j][$fieldName] = " ";
endif;
endif;
if ($fieldName == "cr_eid_parent") : // jobs / vehicles (if courier works for another courier, set EID of the parent)
if ($rowArray[$j][$fieldName] != "") :
if ($f_exp_category == "3") : // vehicles
$rowArray[$j]["cr_eid"] = $rowArray[$j][$fieldName];
else : // jobs
$rowArray[$j]["cr_eid"] = $rowArray[$j][$fieldName];
endif;
endif;
endif;
if ($fieldName == "usr_name") : // user
if (trim($rowArray[$j][$fieldName]) == "Name" || is_numeric(trim($rowArray[$j][$fieldName]))) :
$rowArray[$j][$fieldName] = " ";
endif;
endif;
if ($fieldName == "usr_firstname") : // user
if (trim($rowArray[$j][$fieldName]) == "Vorname" || is_numeric(trim($rowArray[$j][$fieldName]))) :
$rowArray[$j][$fieldName] = " ";
endif;
endif;
if ($f_exp_category == "6" && $fieldName == "price") : // jobs (only "Gutschriften")
$jobPrice = $rowArray[$j][$fieldName];
if (is_numeric(str_replace (",", ".", $jobPrice)) && $jobPrice < 0) :
$rowArray[$j][$fieldName] = substr($rowArray[$j][$fieldName],1);
endif;
endif;
if ($f_exp_category == "8" && $fieldName == "price") :
if ($paymentMethod != JB_PAYMODE_CASH) :
$rowArray[$j][$fieldName] = 0; // Special treatment: If payment method does NOT equal CASH ("bar") then set price to 0.00
endif;
endif;
if ($f_exp_category == "8" && $fieldName == "gross_price") :
if ($paymentMethod != JB_PAYMODE_CASH) :
$rowArray[$j][$fieldName] = 0; // Special treatment: If payment method does NOT equal CASH ("bar") then set price to 0.00
endif;
endif;
if ($f_exp_category == "6" && $fieldName == "jb_subtotalprice") : // jobs (only "Gutschriften")
$jobPrice = $rowArray[$j][$fieldName];
if (is_numeric(str_replace (",", ".", $jobPrice)) && $jobPrice < 0) :
$rowArray[$j][$fieldName] = substr($rowArray[$j][$fieldName],1);
endif;
endif;
if ($f_exp_category == "6" && $fieldName == "jb_cr_price") : // jobs (only "Gutschriften")
$jobCrPrice = $rowArray[$j][$fieldName];
if (is_numeric(str_replace (",", ".", $jobCrPrice)) && $jobCrPrice < 0) :
$rowArray[$j][$fieldName] = substr($rowArray[$j][$fieldName],1);
endif;
endif;
if ($f_exp_category == "6" && $fieldName == "jb_cr_subprice") : // jobs (only "Gutschriften")
$jobCrSubPrice = $rowArray[$j][$fieldName];
if (is_numeric(str_replace (",", ".", $jobCrSubPrice)) && $jobCrSubPrice < 0) :
$rowArray[$j][$fieldName] = substr($rowArray[$j][$fieldName],1);
endif;
endif;
if ($f_exp_category == "6" && $fieldName == "jb_hq_id_exec_price") : // jobs (only "Gutschriften")
$jobHqIdExecPrice = $rowArray[$j][$fieldName];
if (is_numeric(str_replace (",", ".", $jobHqIdExecPrice)) && $jobHqIdExecPrice < 0) :
$rowArray[$j][$fieldName] = substr($rowArray[$j][$fieldName],1);
endif;
endif;
// Get potential mapping for cs_eid by parameter to replace it with another cs_eid
/*
if ($f_exp_category >= "4" && $f_exp_category <= "8") :
if ($fieldName == "cs_eid1") :
// Get service of the current job
$tmpJbService = (int)$rowArray[$j]["jb_service"];
if ($tmpJbService != "") :
$parJbServiceArray = array();
$csEid = $rowArray[$j][$fieldName];
// Check for existence in mapping array to avoid DB request
if ($csEidMappingArray[$csEid] == "") :
// Get cs_id of the current row
$tmpCsId = getFieldValueFromId("customer","cs_eid",$csEid,"cs_id");
if ($tmpCsId != "") :
// Get parameter if does exist for this cutomer
$parCsEidMapping = getParameterValue("0", "EXPORT_CSEID_MAPPING_" . $tmpCsId, "0");
if ($parCsEidMapping != "") :
// Add cs_eid to array
$csEidMappingArray[$csEid] == $parCsEidMapping;
endif;
endif;
else :
$parCsEidMapping = $csEidMappingArray[$csEid];
endif;
if ($parCsEidMapping != "") :
$parJbServiceArray = getKeyValueArrayFromString($parCsEidMapping);
// Get keys of the array
$tmpKeyArray = array_keys($parJbServiceArray);
$tmpKeyArrayLen = count($tmpKeyArray);
for ($m = 0; $m < $lenTmpArray; $m++) :
$tmpKey = (int)$tmpKeyArray[$m];
if (($tmpKey & $tmpJbService) == $tmpKey || $tmpKey = "99999") :
// Set new cs_eid
$rowArray[$j][$fieldName] = $parJbServiceArray[$tmpKeyArray[$m]];
endif;
endfor;
endif;
endif;
endif;
endif;
*/
// !!! HARDCODED !!! TO BE PUT INTO THE DATABASE !!!
if ($fieldName == "vht_id") : // jobs
$vhtIdTruck = getVhtId("7", "truck_01");
global $hq_id;
if ($hq_id >= "1" && $hq_id < "100" && $rowArray[$j][$fieldName] == "999") : // Mandator "Stadtbote" AND vehicle type "Service" only !!!!
$rowArray[$j][$fieldName] = "K ";
else :
if ($rowArray[$j][$fieldName] >= $vhtIdTruck) :
$rowArray[$j][$fieldName] = "G ";
else :
$rowArray[$j][$fieldName] = "K ";
endif;
endif;
endif;
// !!! HARDCODED !!! TO BE PUT INTO THE DATABASE !!!
if ($fieldName == "jb_type") : // jobs
if ($rowArray[$j][$fieldName] != "" && $rowArray[$j][$fieldName] > "0") :
// if value "jb_type" does exist, change value for "vht_id" !!!
if ($rowArray[$j][$fieldName] == "1") : $rowArray[$j]["vht_id"] = "K "; endif;
if ($rowArray[$j][$fieldName] == "2") : $rowArray[$j]["vht_id"] = "G "; endif;
if ($rowArray[$j][$fieldName] == "3") : $rowArray[$j]["vht_id"] = "M1"; endif;
if ($rowArray[$j][$fieldName] == "4") : $rowArray[$j]["vht_id"] = "M3"; endif;
if ($rowArray[$j][$fieldName] == "5") : $rowArray[$j]["vht_id"] = "M4"; endif;
if ($rowArray[$j][$fieldName] == "6") : $rowArray[$j]["vht_id"] = "M5"; endif;
if ($rowArray[$j][$fieldName] == "7") : $rowArray[$j]["vht_id"] = "M6"; endif;
if ($rowArray[$j][$fieldName] == "8") : $rowArray[$j]["vht_id"] = "L "; endif;
if ($rowArray[$j][$fieldName] == "9") : $rowArray[$j]["vht_id"] = "G3"; endif;
endif;
endif;
// !!! HARDCODED !!! TO BE PUT INTO THE DATABASE !!!
if ($fieldName == "jb_id_parent") : // CALCULATOR jobs !!!!!!!!!!!!
global $hq_id;
if ($hq_id >= "1" && $hq_id < "100") : // Only Stadtbote !!!
$tmpJobPrice = $row["price"];
if ($tmpJobPrice == "") : $tmpJobPrice = 0; endif;
$tmpJobPrice = str_replace (",", ".", $tmpJobPrice);
$tmpJobCrPrice = $row["jb_cr_price"];
if ($tmpJobCrPrice == "") : $tmpJobCrPrice = 0; endif;
$tmpJobCrPrice = str_replace (",", ".", $tmpJobCrPrice);
if ( ($rowArray[$j][$fieldName] != "" && ($rowArray[$j][$fieldName] == "-1" || $rowArray[$j][$fieldName] > "0")) ) :
// || (($rowArray[$j][$fieldName] == "0") && ($tmpJobPrice != $tmpJobCrPrice) && ($tmpJobCrPrice != 0))
// IF job is a calculator job OR job has jb_cr_price THEN expand status with "K" !!!
if ($rowArray[$j]["vht_id"] == "B ") : $rowArray[$j]["vht_id"] = "BK"; endif;
if ($rowArray[$j]["vht_id"] == "K ") : $rowArray[$j]["vht_id"] = "KK"; endif;
if ($rowArray[$j]["vht_id"] == "G ") : $rowArray[$j]["vht_id"] = "GK"; endif;
endif;
endif;
endif;
if ($fieldName == "csc_id_root") : // jobs
$tmpCsCscIdRoot = $rowArray[$j][$fieldName];
endif;
if ($fieldName == "csc_inv_interval") : // customers
if ($rowArray[$j][$fieldName] != "" && $rowArray[$j][$fieldName] >= "0" && $rowArray[$j][$fieldName] <= "4") :
if ($rowArray[$j][$fieldName] == "0") : $rowArray[$j][$fieldName] = "9F"; endif;
if ($rowArray[$j][$fieldName] == "1") : $rowArray[$j][$fieldName] = "9W"; endif;
if ($rowArray[$j][$fieldName] == "2") : $rowArray[$j][$fieldName] = "9U"; endif;
if ($rowArray[$j][$fieldName] == "3") : $rowArray[$j][$fieldName] = "9T"; endif;
if ($rowArray[$j][$fieldName] == "4") : $rowArray[$j][$fieldName] = "9V"; endif;
else :
$rowArray[$j][$fieldName] = "9F";
endif;
endif;
if ($fieldName == "cmp_no") : // Headquarters constants
global $hq_id;
if ($f_exp_category >= "4" && $f_exp_category <= "6") :
$hqIdSales = $row["hq_id_sales"];
$rowArray[$j][$fieldName] = getParameterValue("0", "EXPORT_HQ_KEY", $hqIdSales);
if ($rowArray[$j][$fieldName] == "") :
$rowArray[$j][$fieldName] = EXPORT_HQ_KEY;
endif;
else :
$rowArray[$j][$fieldName] = EXPORT_HQ_KEY;
endif;
endif;
if ($specialJbPayment == "4" && $fieldName == "jb_id") :
$specialPaymentCollectionId = getFieldValueFromClause("genericdatacontainer", "gdc_content", "gdc_obj_type = 'jb' AND gdc_obj_id = '" . $row["jb_id"] . "' AND gdc_gen_fieldname = 'collection_number'");
if ($specialPaymentCollectionId != "") :
$jbIdReal[$specialPaymentCollectionId] = $rowArray[$j][$fieldName]; // Remember real jb_id for updating job with export time
$rowArray[$j][$fieldName] = $specialPaymentCollectionId;
endif;
endif;
if ($f_exp_category == "8" && $fieldName == "special_price_01") : // If cr_price contains provision the change fields
if ($row["csc_id_related"] == "17051" && $row["jb_id"] < 343544) :
$rowArray[$j]["special_price_01"] = $rowArray[$j]["jb_cr_price"];
endif;
endif;
if ($fieldName == "jb_toll") :
if (trim($rowArray[$j][$fieldName]) == "") :
$rowArray[$j][$fieldName] = "0.00";
elseif (!is_numeric($rowArray[$j][$fieldName])) :
$rowArray[$j][$fieldName] = str_replace (",", ".", $rowArray[$j][$fieldName]);
if (!is_numeric($rowArray[$j][$fieldName])) :
$rowArray[$j][$fieldName] = "0.00";
endif;
endif;
// if ($f_exp_category == "6") : // jobs (only "Gutschriften")
if ($rowArray[$j][$fieldName] < 0) :
$rowArray[$j][$fieldName] = substr($rowArray[$j][$fieldName],1);
endif;
// endif;
endif;
if ($fieldName == "jb_third_country") :
$jbThirdCountry = trim($rowArray[$j][$fieldName]);
if (is_numeric($jbThirdCountry) && $jbThirdCountry > "0") :
$jbThirdCountry = "X";
else :
$jbThirdCountry = " ";
endif;
$rowArray[$j][$fieldName] = $jbThirdCountry;
endif;
if ($fieldName == "jb_longhaul") :
$jbLonghaul = trim($rowArray[$j][$fieldName]);
if (is_numeric($jbLonghaul) && $jbLonghaul == "1") :
$jbLonghaul = "X";
else :
$jbLonghaul = " ";
endif;
$rowArray[$j][$fieldName] = $jbLonghaul;
endif;
if ($fieldName == "jb_longhaul_export") :
$jbLonghaulExport = trim($rowArray[$j][$fieldName]);
if (is_numeric($jbLonghaulExport) && $jbLonghaulExport == "1") :
$jbLonghaulExport = "X";
else :
$jbLonghaulExport = " ";
endif;
$rowArray[$j][$fieldName] = $jbLonghaulExport;
endif;
/*
if ($fieldName == "const_01") : // headquarters constants
global $hq_id;
$rowArray[$j][$fieldName] = EXPORT_CONST_01;
endif;
if ($fieldName == "const_02") : // headquarters constants
global $hq_id;
$rowArray[$j][$fieldName] = EXPORT_CONST_02;
endif;
if ($fieldName == "const_03") : // headquarters constants
global $hq_id;
$rowArray[$j][$fieldName] = EXPORT_CONST_03;
endif;
*/
endfor;
// ONLY show the name of the costcenter if is not equal to the root costcenter
if ($tmpJbCscIdPayer != "" && $tmpCsCscIdRoot != "" && $tmpJbCscIdPayer == $tmpCsCscIdRoot) : // jobs ("cash" = "csc_id_payer")
$rowArray[$j]["csc_name"] = "";
endif;
// Set address, if mainaddress has to overrule the invoiceaddress
if ($tmpMainadressOverrulesInvoiceaddress) :
$rowArray[$j]["adre_street"] = $rowArray[$j]["ad_street"];
$rowArray[$j]["cscad_hsno"] = $rowArray[$j]["cmp_hsno"];
$rowArray[$j]["adre_zipcode"] = $rowArray[$j]["ad_zipcode"];
$rowArray[$j]["adre_city"] = $rowArray[$j]["ad_city"];
$rowArray[$j]["adre_country"] = $rowArray[$j]["ad_country"];
endif;
// Set companyname, if main companyname has to overrule the invoice companyname
if ($tmpMainCompanynameOverrulesInvoiceCompanyname) :
$rowArray[$j]["cscad_comp"] = $rowArray[$j]["cmp_comp"];
$rowArray[$j]["cscad_comp2"] = $rowArray[$j]["cmp_comp2"];
endif;
$j++;
endif; // $doContinue
endwhile;
return $rowArray;
};
// Returns a new associative array with a unique(!) key field specified in $keyField
// and a second field ($sumField) containing the numeric value to be summed up grouped by $keyField.
// The keys have to be sorted in each array!!!
// $array1,$array2 : Array to be merged
// $keyField : Field of the key
// $sumField : Field of the value to be summed up
function array_merge_sum ($array1, $array2, $keyField, $sumField) {
$retArray = "";
$lenArray1 = count($array1);
$lenArray2 = count($array2);
if ($array1 == "") : return $array2; endif;
if ($array2 == "") : return $array1; endif;
$sum = 0;
$ptr1 = 0;
$ptr2 = 0;
$count = 0;
// Only summation of ONE field ($sumField) because there is no $keyField
if ($keyField == "") :
$tmpArray = array_merge($array1, $array2);
$lenTmpArray = count($tmpArray);
for ($i = 0; $i < $lenTmpArray; $i++) :
$sum += $tmpArray[$i][$sumField];
endfor;
$retArray[0][$sumField] = $sum;
return $retArray;
endif;
// There are values to be added by a group-criteria
while ($ptr1 < $lenArray1 || $ptr2 < $lenArray2):
if ($array1[$ptr1][$keyField] == "" || $array2[$ptr2][$keyField] == "") :
if ($array1[$ptr1][$keyField] == "") :
$keyFieldValue = $array2[$ptr2][$keyField];
else :
$keyFieldValue = $array1[$ptr1][$keyField];
endif;
else :
if ($array1[$ptr1][$keyField] <= $array2[$ptr2][$keyField]) :
$keyFieldValue = $array1[$ptr1][$keyField];
else :
$keyFieldValue = $array2[$ptr2][$keyField];
endif;
endif;
while ($keyFieldValue != "" && $keyFieldValue == $array1[$ptr1][$keyField]):
if ($array1[$ptr1][$sumField] != "" && is_numeric($array1[$ptr1][$sumField])) :
$sum += $array1[$ptr1][$sumField];
endif;
$ptr1++;
endwhile;
while ($keyFieldValue != "" && $keyFieldValue == $array2[$ptr2][$keyField]):
if ($array2[$ptr2][$sumField] != "" && is_numeric($array2[$ptr2][$sumField])) :
$sum += $array2[$ptr2][$sumField];
endif;
$ptr2++;
endwhile;
if ($keyFieldValue != "") :
$retArray[$count][$keyField] = $keyFieldValue;
$retArray[$count][$sumField] = $sum;
endif;
$count++;
$sum = 0;
endwhile;
return $retArray;
};
// Returns a new associative array with a unique(!) key field specified in $keyField
// and a second field ($sumField) containing the numeric value to be summed up grouped by $keyField.
// The keys have to be sorted in each array!!!
// $array1,$array2 : Array to be merged
// $keyFieldArray : Array of fields grouping the key
// $sumField : Field of the value to be summed up
function array_merge_sum2 ($array1, $array2, $keyFieldArray, $sumField) {
$retArray = "";
$lenArray1 = count($array1);
$lenArray2 = count($array2);
if ($array1 == "") : return $array2; endif;
if ($array2 == "") : return $array1; endif;
$lenKeyFieldArray = count($keyFieldArray);
$sum = 0;
$ptr1 = 0;
$ptr2 = 0;
$count = 0;
// Only summation of ONE field ($sumField) because there is no $keyField
if ($keyFieldArray == "") :
$tmpArray = array_merge($array1, $array2);
$lenTmpArray = count($tmpArray);
for ($i = 0; $i < $lenTmpArray; $i++) :
$sum += $tmpArray[$i][$sumField];
endfor;
$retArray[0][$sumField] = $sum;
return $retArray;
endif;
// There are values to be added by a group-criteria
while ($count < ($lenArray1 + $lenArray2) && ($ptr1 < $lenArray1 || $ptr2 < $lenArray2)):
$groupKey1 = "";
$groupKey2 = "";
for ($i = 0; $i < $lenKeyFieldArray; $i++) :
$groupKey1 .= $array1[$ptr1][$keyFieldArray[$i]];
$groupKey2 .= $array2[$ptr2][$keyFieldArray[$i]];
endfor;
if ($groupKey1 == "" || $groupKey2 == "") :
if ($groupKey1 == "") :
$keyFieldValue = $groupKey2;
else :
$keyFieldValue = $groupKey1;
endif;
else :
if ($groupKey1 <= $groupKey2) :
$keyFieldValue = $groupKey1;
else :
$keyFieldValue = $groupKey2;
endif;
endif;
$keyFieldValue2 = "";
for ($i = 0; $i < $lenKeyFieldArray; $i++) :
$keyFieldValue2 .= $array1[$ptr1][$keyFieldArray[$i]];
endfor;
while ($keyFieldValue != "" && $keyFieldValue == $keyFieldValue2):
if ($array1[$ptr1][$sumField] != "" && is_numeric($array1[$ptr1][$sumField])) :
$sum += $array1[$ptr1][$sumField];
endif;
for ($i = 0; $i < $lenKeyFieldArray; $i++) :
$retArray[$count][$keyFieldArray[$i]] = $array1[$ptr1][$keyFieldArray[$i]];
endfor;
$ptr1++;
$keyFieldValue2 = "";
for ($i = 0; $i < $lenKeyFieldArray; $i++) :
$keyFieldValue2 .= $array1[$ptr1][$keyFieldArray[$i]];
endfor;
endwhile;
$keyFieldValue2 = "";
for ($i = 0; $i < $lenKeyFieldArray; $i++) :
$keyFieldValue2 .= $array2[$ptr2][$keyFieldArray[$i]];
endfor;
while ($keyFieldValue != "" && $keyFieldValue == $keyFieldValue2):
if ($array2[$ptr2][$sumField] != "" && is_numeric($array2[$ptr2][$sumField])) :
$sum += $array2[$ptr2][$sumField];
endif;
for ($i = 0; $i < $lenKeyFieldArray; $i++) :
$retArray[$count][$keyFieldArray[$i]] = $array2[$ptr2][$keyFieldArray[$i]];
endfor;
$ptr2++;
$keyFieldValue2 = "";
for ($i = 0; $i < $lenKeyFieldArray; $i++) :
$keyFieldValue2 .= $array2[$ptr2][$keyFieldArray[$i]];
endfor;
endwhile;
if ($keyFieldValue != "") :
// $retArray[$count][$keyField] = $keyFieldValue;
$retArray[$count][$sumField] = $sum;
endif;
$count++;
$sum = 0;
endwhile;
return $retArray;
};
?>