query($sqlStmt);
if (DB::isError($res)) : die ("$PHP_SELF: " . $res->getMessage()); endif;
$retArray = array("0");
else:
$retArray = array("802","802\n","" . getLngt("Operational database cannot be connected!") . "\n");
endif;
else:
$retArray = array("801","801\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
// For compatibility only
function setTimekeepingEvent ($moId, $usrId, $ttEvent, $ttTimestamp, $gpsLong, $gpsLat, $description, $csc_id) {
return setTimetrackingEvent ($moId, $usrId, $ttEvent, $ttTimestamp, $gpsLong, $gpsLat, $description, $csc_id);
}
function getLastTimetrackingEvent ($moId, $usrId) {
global $dbname, $dblogin, $dbpassword;
// Get operational IP and port from $moId
if ($moId != "" && $usrId != "") :
// Get operational database instance via metaobject
$moValue = getOperationalDatabase($moId);
if ($moValue != "") :
// Set operational database and insert event
$db_op_conn = getDbConnectionSpecial($moValue, $dbname, $dblogin, $dbpassword);
$tmpSqlQuery = "SELECT tt_datetime, tt_id, tt_gps_long, tt_gps_lat, tt_description, csc_id FROM phoenix_group.timetracking WHERE usr_id = '" . $usrId . "' ORDER BY tt_datetime DESC LIMIT 0,1";
$result = $db_op_conn->query($tmpSqlQuery);
while ($row = $result->fetch_assoc()):
$retArray = array("0", $row["tt_datetime"], $row["tt_id"], $row["tt_gps_long"], $row["tt_gps_lat"], $row["tt_description"], $row["csc_id"]);
endwhile;
$result->free();
else:
$retArray = array("802","802\n","" . getLngt("Operational database cannot be connected!") . "\n");
endif;
else:
$retArray = array("801","801\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
// ----------------------------------------------------------------------------------------------------------------------------------------
// *************
// * GROUPWARE *
// *************
//
// Gets the last calendar week (number) of a specified year
// function calLastWeekNumofYear($selYear) {};
// Gets the first calendar week (number) of a specified month and year (calendar week of the 01.01.YYYY)
// function calFirstWeekNumofMonth($selMonth, $selYear) {};
// Gets the first day (number) of a specified month and year
// function calFirstDayNumOfMonth($selMonth, $selYear) {};
// Gets the first day (number) of the first calendar week of a specified year, it has to be a "Monday"
// function calFirstDayNumOfFirstCalendarWeekOfYear($selYear) {};
// Gets the first day (number) of a specified calendar week and year
// function calFirstDayNumOfWeek($selWeek, $selYear) {};
// Gets an array with days of a specified month (and year), where there is at least one appointment per day
// function getDaysWithAppointments($selYear, $selMonth) {}
// Modifies array according to the appointments starting and ending on different days
// $apArray = Array with appointments of the time interval (week, month, ...)
// $lowerRangeDate = Date of the beginning of the interval (week, month, ...)
// $upperRangeDate = Date of the end of the interval (week, month, ...)
// function modifyIntervalAppointments2SingleDayAppointments($apArray, $lowerRangeDate, $upperRangeDate) {}
// Gets the appointments of one day
// function getAppointmentsOfOneDay($selYear, $selMonth, $selDay, $csId = "") {}
// Gets the appointments of one week
// function getAppointmentsOfOneWeek($selWeek, $selYear, $selMonth, $selDay, $csId = "") {}
// Gets the appointments of one month
// function getAppointmentsOfOneMonth($selYear, $selMonth, $csId = "") {}
// Gets the appointments of one year
// function getAppointmentsOfOneYear($selYear, $csId = "") {}
// Gets a customer list according to a special search string
// function getCustomerList ($search) => defined in "inc_customer.inc.php"
// Gets special data from a single customer
// function getCustomerSpecial ($csId) => defined in "inc_customer.inc.php"
// Gets ALL data from a special customer
// function getCustomer ($cmpId) => defined in "inc_customer.inc.php"
// Inserts a new customer
// function insertCustomer ($csArray = array()) => defined in "inc_customer.inc.php"
// Gets a costcenter list according to a special search string or a a special customer
// function getCostcenterList ($csId = "", $search = "", $limit = "100") => defined in "inc_customer.inc.php"
// Gets costcenter addresses of a special costcenter
// function getCostcenterAddressList ($cscId) => defined in "inc_customer.inc.php"
//
// Dummy function because of checking existence. It is implemented in "serviceXML.php".
function getApEnvironment() {
}
// Gets the headline with the current day
function getAppointmentHeader($viewMode, $selYear, $selMonth, $selDay, $selWeek) {
global $calWeekDays,$calCurrentDayNumOfTheWeek, $calMonthNames, $calMonthDays;
global $calCurrentWeekNum, $calCurrentWeekName, $calCurrentDayNumOfTheYear;
$out = "";
// Daily output
if ($viewMode == "1") :
// Name of the week day (E.g.: "Donnerstag") --- Day, Name of the month and year (E.g.: "29 Juni 2006") --- calendar week (E.g.: "KW 26")
$out .= $calWeekDays[$calCurrentDayNumOfTheWeek - 1] . ", " . $selDay . ". " . $calMonthNames[$selMonth - 1] . " " . $selYear . " " . $calCurrentWeekName . " " . $calCurrentWeekNum . " " . $calCurrentDayNumOfTheYear . getLngt(". Tag des Jahres");
endif;
// Weekly output
if ($viewMode == "2") :
// Get the first day ("Monday") of the specified week and compute date interval of the week
$firstDayOfWeek = calFirstDayNumOfWeek($selWeek, $selYear);
$tmpDatetime = mktime(0, 0, 0, $firstDayOfWeek[1], $firstDayOfWeek[0] + 6, $firstDayOfWeek[2]);
// calendar week (E.g.: "KW 26")
$out .= $calCurrentWeekName . " " . $selWeek . " " . "[" . $selYear . "]" . " " . $firstDayOfWeek[0] . "." . $firstDayOfWeek[1] . "." . ($firstDayOfWeek[2] != date("Y", $tmpDatetime) ? $firstDayOfWeek[2] : "") . " - " . date("d", $tmpDatetime) . "." . date("m", $tmpDatetime) . "." . ($firstDayOfWeek[2] != date("Y", $tmpDatetime) ? date("Y", $tmpDatetime) : "") . " ";
endif;
// Monthly output
if ($viewMode == "3") :
// Name of the month and year (E.g.: "Juni 2006")
$out .= $calMonthNames[$selMonth - 1] . " " . $selYear . " " . "01." . $selMonth . ". - " . $calMonthDays[$selMonth - 1] . "." . $selMonth . ".";
endif;
// Yearly output
if ($viewMode == "4") :
// Name of the year (E.g.: "2006")
$out .= $selYear . " " . "01.01. - 31.12.";
endif;
return $out;
}
// Gets the title of the output table
function getAppointmentTitle($viewMode) {
$appointmentTitleArray = array();
// Daily output
if ($viewMode == "1") :
$appointmentTitleArray = array(getLngt("Beginn"), getLngt("Ende"), getLngt("Ersteller, Teilnehmer"), getLngt("Kunde"), getLngt("Aktion"));
endif;
// Weekly output
if ($viewMode == "2") :
$appointmentTitleArray = array(getLngt("Tag"), getLngt("Zeit"), getLngt("Ersteller, Teilnehmer"), getLngt("Beschreibung"), getLngt("Kunde"));
endif;
return $appointmentTitleArray;
}
// DB actions for an appointment
function actionAppointment ($actionMode, $apId, $apText, $execDatetime, $endDatetime, $hqId, $usrId, $csId, $usrIdsParticipants, $apCat1, $apCat2, $apCat3, $apCat4) {
global $db, $PHP_SELF;
$opCode = "0";
$currentTime = getDateTime("0");
$sendPerMail = false;
$apText = trim($apText);
// $execDatetime = getDateTime("format",array($f_hour,$f_minute,0,$f_month,$f_day,$f_year),"Y-m-d H:i:s");
// $endDatetime = getDateTime("format",array($f_hour_to,$f_minute_to,0,$f_month_to,$f_day_to,$f_year_to),"Y-m-d H:i:s");
/*
echo "actionMode: " . $actionMode . "
";
echo "apId: " . $apId . "
";
echo "apText: " . $apText . "
";
echo "execDatetime: " . $execDatetime . "
";
echo "endDatetime: " . $endDatetime . "
";
echo "hqId: " . $hqId . "
";
echo "usrId: " . $usrId . "
";
echo "csId: " . $csId . "
";
echo "usrIdsParticipants: " . $usrIdsParticipants . "
";
echo "apCat1: " . $apCat1 . "
";
echo "apCat2: " . $apCat2 . "
";
echo "apCat3: " . $apCat3 . "
";
echo "apCat4: " . $apCat4 . "
";
*/
if (($actionMode == "insert" && $apText != "") || ($actionMode == "update" && $apId != "")) :
// Check for headquarters
if ($hqId == "" && $csId != "" && is_numeric($csId)) :
$hqId = getFieldValueFromId("phoenix.customer","cs_id",$csId,"hq_id");
endif;
if ($hqId != "" && $usrId != "") :
if ($execDatetime != "" && $endDatetime != "" && $execDatetime <= $endDatetime) :
$usrIdsParticipants = trim($usrIdsParticipants);
if ($usrIdsParticipants != "") :
if (substr($usrIdsParticipants,0,1) != ",") : $usrIdsParticipants = "," . $usrIdsParticipants; endif;
if (substr($usrIdsParticipants,-1,1) != ",") : $usrIdsParticipants .= ","; endif;
endif;
if ($actionMode == "insert") :
// Insert values
insertStmt("phoenix_group.appointment", array("usr_id", $usrId, "hq_id", $hqId, "ap_category_1", $apCat1, "ap_category_2", $apCat2,
"ap_category_3", $apCat3, "ap_category_4", $apCat4,
"ap_participants", $usrIdsParticipants, "ap_text", $apText,
"ap_execdate", $execDatetime, "ap_enddate", $endDatetime,
"ap_modifytime", $currentTime, "cs_id", $csId));
$opCode = getLastInsertID();
elseif ($actionMode == "update") :
// Update values
updateStmt("phoenix_group.appointment", "ap_id", $apId, array("ap_category_1", $apCat1, "ap_category_2", $apCat2, "ap_category_3", $apCat3,"ap_category_4", $apCat4,
"ap_participants", $usrIdsParticipants, "ap_text", $apText, "ap_execdate", $execDatetime, "ap_enddate", $endDatetime,
"ap_modifytime", $currentTime, "cs_id", $csId));
$opCode = $apId;
endif;
$sendPerMail = true;
endif;
endif;
elseif ($actionMode == "delete") :
if ($apId != "") :
deleteStmt("phoenix_group.appointment","ap_id = ".$apId);
$opCode = $apId;
$sendPerMail = true;
endif;
elseif ($actionMode == "confirm") :
if ($apId != "" && $usrId != "") :
// Get confirmation string from appointment
$tmpApConfirmed = getFieldValueFromId("phoenix_group.appointment", "ap_id", $apId, "ap_confirmed");
$tmpApConfirmed = substr($tmpApConfirmed,1,-1); // Remove commata from db-field
$tmpApConfirmed = spliti(",", $tmpApConfirmed); // It has to be an array
$j = array_search($usrId, $tmpApConfirmed);
if ($j === FALSE) :
if (count($tmpApConfirmed) == 1 && trim($tmpApConfirmed[0] == "")) :
$tmpApConfirmed = array($usrId);
else :
array_push($tmpApConfirmed, $usrId);
endif;
updateStmt("phoenix_group.appointment", "ap_id", $apId, array("ap_confirmed", "," . implode(",", $tmpApConfirmed) . ","));
$opCode = $apId;
endif;
endif;
elseif ($actionMode == "finish") :
if ($apId != "") :
updateStmt("phoenix_group.appointment", "ap_id", $apId, array("ap_category_4", "2"));
$opCode = $apId;
endif;
endif;
if (false && $sendPerMail) :
$mailAddresses = array();
// Get email address of the creator of the appointment
$fromEmailAddress = getFieldValueFromId("user", "usr_id", $usrId, "usr_email");
if (checkEmailFormat($fromEmailAddress)) :
array_push($mailAddresses, $fromEmailAddress);
endif;
// Get data of the appointment
if ($actionMode == "insert" || $actionMode == "update") :
$tmpParticipants = $usrIdsParticipants;
$tmpText = $apText;
elseif ($actionMode == "delete") :
$tmpExecDatetime = getFieldValueFromId("phoenix_group.appointment", "ap_id", $apId, "ap_execdate");
$tmpText = getFieldValueFromId("phoenix_group.appointment", "ap_id", $apId, "ap_text");
$tmpParticipants = getFieldValueFromId("phoenix_group.appointment", "ap_id", $apId, "ap_participants");
$tmpParticipants = substr($tmpParticipants,1,-1); // Remove commata from db-field
$tmpParticipants = spliti(",", $tmpParticipants); // It has to be an array
endif;
$lenTmp = count($tmpParticipants);
for ($i = 0; $i < $lenTmp; $i++) :
$toEmailAddress = getFieldValueFromId("user", "usr_id", $tmpParticipants[$i], "usr_email");
if (checkEmailFormat($toEmailAddress)) :
array_push($mailAddresses, $toEmailAddress);
endif;
endfor;
$mailAddressesString = implode(",", $mailAddresses);
$mailObj = new htmlMimeMail();
// Format mailtext
$mailtext = "
";
$mailtext .= "";
$mailtext .= "";
$mailtext .= "
" . getLngt("Sehr geehrte Damen und Herren,") . "
";
$tmpText = str_replace("\r", '
', $tmpText);
$mailtext .= "" . $tmpText . "
";
$mailtext .= "" . getLngt("Mit freundlichem Gruß!") . "
";
// Logo
$logoName = getParameterValue("0", "IMG_LOGO_NAME", $hqId);
$logoHeight = getParameterValue("0", "IMG_LOGO_HEIGHT", $hqId);
$logoWidth = getParameterValue("0", "IMG_LOGO_WIDTH", $hqId);
if ($logoName != "" && $logoHeight != "" && $logoWidth != "") :
$mailtext .= "
";
endif;
$mailtext .= "";
$mailObj->setHtml($mailtext, null, "./");
$mailObj->setFrom($fromEmailAddress);
// $mailObj->setCc($mailCcAddress);
// $mailObj->setBcc($mailBccAddress);
$mailObj->setSubject(getLngt("Termin abgesagt: ") . $tmpExecDatetime);
$mailResult = $mailObj->send(array($mailAddressesString), 'smtp');
if (!$mailResult) :
$statusMessage .= getLngt("Die Nachricht konnte nicht gesendet werden!") . " ";
endif;
$mailObj = NULL;
endif;
return $opCode;
}
// Gets a report list according to a special object type (customer, courier, etc.)
function getReportList ($fromDateRange, $toDateRange, $rpObjType = "cs", $rpObjId = "", $rpType = "") {
global $db, $PHP_SELF;
global $f_hq_id;
$retArray = array();
if (false) :
// $retArray = array("301","301\n","" . getLngt("Ein Suchbegriff wurde nicht eingegeben!") . "\n");
else :
// Get status of the customer according to being meta customer
$isMeta = "0";
$csParentIdArray = array();
if ($rpObjId != "" && is_numeric($rpObjId)) :
if ($rpObjType == "cs") :
$csHqId = getFieldValueFromId("customer","cs_id",$rpObjId,"hq_id");
if (!in_array($csHqId, $f_hq_id)) :
array_push($f_hq_id, $csHqId);
endif;
// Check being meta customer
if (existsEntry("customer",array("cs_id_parent",$rpObjId))) :
$isMeta = "1";
$csParentIdArray = getColVectorFromDB2Array("customer","cs_id_parent",$rpObjId,"cs_id","");
array_push($csParentIdArray, $rpObjId); // meta customer inclusive
endif;
endif;
if ($rpObjType == "cr") :
$crHqId = getFieldValueFromId("courier","cr_id",$rpObjId,"hq_id");
if (!in_array($crHqId, $f_hq_id)) :
array_push($f_hq_id, $crHqId);
endif;
endif;
endif;
$sqlquery = getReportListStatement($fromDateRange, $toDateRange, $rpObjType, $rpObjId, $rpType, $isMeta, $csParentIdArray);
$result = $db->query($sqlquery);
if (DB::isError($result)):
$retArray = array("202","202\n","" . getLngt("Datenbankfehler") . "\n");
else:
while ($row = $result->fetch_assoc()):
$retArray[] = array($row["rp_id"], $row["rp_reporttype"], $row["rp_text"], $row["rp_confidential"], $row["rp_createtime"], $row["usr_id"], $row["usr_name"], $row["usr_firstname"], $row["usr_phone"], $row["eid"], $row["cmp_comp"], $row["cmp_comp2"], $row["hq_id"], $row["hq_name"]);
endwhile;
$result->free();
endif;
endif;
return $retArray;
}
// Gets a single report according to a special object type (customer, courier, etc.)
function getReport ($rpId, $rpObjType = "cs") {
global $db, $PHP_SELF;
global $f_hq_id;
$retArray = array();
if (false) :
// $retArray = array("301","301\n","" . getLngt("Ein Suchbegriff wurde nicht eingegeben!") . "\n");
else :
$sqlquery = getReportStatement($rpId, $rpObjType);
$result = $db->query($sqlquery);
if (DB::isError($result)):
$retArray = array("202","202\n","" . getLngt("Datenbankfehler") . "\n");
else:
while ($row = $result->fetch_assoc()):
$retArray[] = array($row["rp_id"], $row["rp_reporttype"], $row["rp_text"], $row["rp_confidential"], $row["rp_createtime"], $row["usr_id"], $row["usr_name"], $row["usr_firstname"], $row["usr_phone"], $row["eid"], $row["cmp_comp"], $row["cmp_comp2"], $row["hq_id"], $row["hq_name"]);
endwhile;
$result->free();
endif;
endif;
return $retArray;
}
// DB actions for an report
function actionReport ($actionMode, $rpId, $rpType, $rpObjType = "cs", $rpObjId, $rpText, $rpConfidential = "0", $hqId, $usrId) {
global $db, $PHP_SELF;
$opCode = "0";
$currentTime = getDateTime("0");
$sendPerMail = false;
$rpText = trim($rpText);
/*
echo "actionMode: " . $actionMode . "
";
echo "rpId: " . $rpId . "
";
echo "rpType: " . $rpType . "
";
echo "rpObjType: " . $rpObjType . "
";
echo "rpObjId: " . $rpObjId . "
";
echo "rpText: " . $rpText . "
";
echo "rpConfidential: " . $rpConfidential . "
";
echo "hqId: " . $hqId . "
";
echo "usrId: " . $usrId . "
";
writeToFile("../log/mobile.log", "-----------------------------");
writeToFile("../log/mobile.log", "actionMode: " . $actionMode);
writeToFile("../log/mobile.log", "rpId: " . $rpId);
writeToFile("../log/mobile.log", "rpType: " . $rpType);
writeToFile("../log/mobile.log", "rpObjType: " . $rpObjType);
writeToFile("../log/mobile.log", "rpObjId: " . $rpObjId);
writeToFile("../log/mobile.log", "rpText: " . $rpText);
writeToFile("../log/mobile.log", "rpConfidential: " . $rpConfidential);
writeToFile("../log/mobile.log", "hqId: " . $hqId);
writeToFile("../log/mobile.log", "usrId: " . $usrId);
*/
$retArray = array("101","101\n","" . getLngt("Die Eingaben für die angeforderte Aktion sind nicht vollständig!") . "\n");
if ($usrId != "" && (($actionMode == "insert" && $rpText != "") || ($actionMode == "update" && $rpId != "" && $rpText != "") || ($actionMode == "delete" && $rpId != ""))) :
// Check for headquarters
if ($hqId == "") :
if ($rpObjId != "" && is_numeric($rpObjId)) :
if ($rpObjType == "cs") :
$hqId = getFieldValueFromId("phoenix.customer","cs_id",$rpObjId,"hq_id");
elseif ($rpObjType == "cr") :
$hqId = getFieldValueFromId("phoenix.courier","cr_id",$rpObjId,"hq_id");
endif;
else :
$hqId = getFieldValueFromId("phoenix.user","usr_id",$usrId,"hq_id");
endif;
endif;
if ($hqId != "" && $usrId != "") :
if ($actionMode == "insert") :
if ($rpObjId != "" && $rpObjType != "") :
if ($rpText != "") :
// Insert values
insertStmt("phoenix_group.report_process", array("usr_id", $usrId, "hq_id", $hqId, "rp_reporttype", $rpType, "rp_text", $rpText,
"rp_createtime", $currentTime, "rp_objId", $rpObjId, "rp_objtype", $rpObjType, "rp_confidential", $rpConfidential));
$rpIdNew = getLastInsertID();
$retArray = array("0",$rpIdNew);
else :
$retArray = array("103","103\n","" . getLngt("Der Berichttext ist leer!") . "\n");
endif;
else :
$retArray = array("102","102\n","" . getLngt("Bezugs-ID oder Bezugstyp ist nicht existent!") . "\n");
endif;
elseif ($actionMode == "update") :
// Update values
if ($rpId != "" && $rpText != "") :
updateStmt("phoenix_group.report_process", "rp_id", $rpId, array("rp_reporttype", $rpType, "rp_text", $rpText, "rp_confidential", $rpConfidential), "usr_id = '" . $usrId . "'");
$retArray = array("0",$rpId);
else :
$retArray = array("104","104\n","" . getLngt("Die Berichts-ID für die Aktualisierung fehlt!") . "\n");
endif;
elseif ($actionMode == "delete") :
// Remove report
deleteStmt("phoenix_group.report_process","rp_id = " . $rpId . " AND usr_id = '" . $usrId . "'");
$retArray = array("0",$rpId);
endif;
endif;
endif;
return $retArray;
}
// Gets all objects (of a specified category) regarding the search value
// The first element of the returned array is an array with the header names
function getMetafieldData ($search, $category, $prefix = "%", $objType = "", $objId = "", $objAssocDataOnly = "") {
global $db, $PHP_SELF, $f_hq_id;
$retArray = array();
if ($category == "") :
$retArray = array("101","101\n","" . getLngt("Die Kategorie wurde nicht spezifiziert.") . "\n");
elseif ($search == "" && $objAssocDataOnly == "") :
$retArray = array("102","102\n","" . getLngt("Ein Suchbegriff ist nicht existent.") . "\n");
elseif ($objAssocDataOnly == "1" && ($objType == "" || $objId == "")) :
$retArray = array("103","103\n","" . getLngt("Bezugs-ID nicht angegeben.") . "\n");
else :
// Init
if ($objAssocDataOnly == "1") : $search = "%%"; endif;
$fromClause = "";
$whereClause = "";
$gHqId = true;
$constFormSingleHQ = getParameterValue("0", "SYSTEM_FORM_SINGLE_HQ_" . $category, "0");
if ($constFormSingleHQ != "" && $constFormSingleHQ != "0") :
$gHqId = false;
else :
$constFormSingleHQ = getParameterValue("0", "SYSTEM_FORM_SINGLE_HQ", "0");
if ($constFormSingleHQ != "" && $constFormSingleHQ != "0") :
$gHqId = false;
endif;
endif;
// Special handling regarding categories
if ($category == "1") :
// Contacts
if ($objType == "" || $objType == "usr") :
$objType = "cs"; // If category is "contacts" init object type to "cs" if empty
$objId = "";
endif;
if ($objType == "cs") :
// Customer contacts
$fromClause = ", customer AS cs, company AS cmp";
elseif ($objType == "cr") :
// Courier contacts
$fromClause = ", courier AS cr, company AS cmp";
endif;
endif;
// In the first step get the involved object IDs
$sqlquery = "SELECT DISTINCT mtfv.mtfv_id"
. " FROM metafieldvalue AS mtfv, metafieldcategorykey AS mtfck, metafieldkey AS mtfk"
. " WHERE mtfv.mtfck_id = mtfck.mtfck_id AND"
. " mtfck.mtfc_id = '" . $category . "' AND"
. " mtfck.mtfk_id = mtfk.mtfk_id AND"
. " mtfv.mtfv_value LIKE '" . $prefix . $search . "%'";
// Special search for type co2cs, additional search in customer data
if ($category == "1") :
$sqlquery2 = "SELECT DISTINCT mtfv.mtfv_id"
. " FROM metafieldvalue AS mtfv, metafieldcategorykey AS mtfck, metafieldkey AS mtfk" . $fromClause
. " WHERE mtfv.mtfck_id = mtfck.mtfck_id AND"
. " mtfck.mtfc_id = '" . $category . "' AND"
. " mtfk.mtfk_id = mtfck.mtfk_id AND"
. " mtfk.mtfk_type = 'co2" . $objType . "' AND"
. " " . $objType . "." . $objType . "_id = mtfv.mtfv_value AND"
. ($objId != "" && is_numeric($objId) && $objId > 0 ? " " . $objType . "." . $objType . "_id = '" . $objId . "' AND " : "")
. " " . $objType . ".cmp_id = cmp.cmp_id AND"
. " (" . $objType . "." . $objType . "_eid LIKE '" . $prefix . $search . "%' OR"
. " cmp.cmp_comp LIKE '" . $prefix . $search . "%')";
if ($objAssocDataOnly == "1") :
$sqlquery = $sqlquery2;
else :
$sqlquery = "(" . $sqlquery . ") UNION (" . $sqlquery2 . ")";
endif;
endif;
$result = $db->query($sqlquery);
if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage());
while ($row = $result->fetch_assoc()):
$objIdArray[] = $row["mtfv_id"];
endwhile;
$result->free();
if (count($objIdArray) > 0) :
// Next step get all object informations of all involved objects
$whereClauseHQ = "";
if (count($f_hq_id) > 0) :
$whereClauseHQ = " AND mtfck.hq_id IN " . getSQLMandatorArray($f_hq_id) . " ";
if ($gHqId) : $whereClauseHQ = " AND mtfck.hq_id = '0' "; endif;
endif;
$sqlquery = "SELECT mtfv.mtfck_id, mtfv.mtfv_id, mtfv.mtfv_value, mtfk.mtfk_type, mtfk.mtfk_name"
. " FROM metafieldvalue AS mtfv, metafieldcategorykey AS mtfck, metafieldkey AS mtfk"
. " WHERE mtfv.mtfv_id IN (" . implode($objIdArray, ",") . ") AND"
. " mtfck.mtfc_id = '" . $category . "' AND"
. " mtfk.mtfk_id = mtfck.mtfk_id AND "
. " mtfv.mtfck_id = mtfck.mtfck_id "
. $whereClauseHQ
. " ORDER BY mtfv.mtfv_id, mtfck.mtfck_sort";
$result = $db->query($sqlquery);
if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage());
$remObjId = "";
$writeMtfkNameArray = true;
$retArray[0] = array();
$rowCount = 1;
while ($row = $result->fetch_assoc()):
if ($remObjId == "") :
$remObjId = $row["mtfv_id"];
endif;
if ($remObjId != $row["mtfv_id"]) :
$rowCount++;
$remObjId = $row["mtfv_id"];
$writeMtfkNameArray = false;
endif;
if ($writeMtfkNameArray) :
$headerField = $row["mtfk_name"];
$headerField = str_replace (" ", " ", $headerField);
$retArray[0][] = $headerField;
endif;
$fieldValue = $row["mtfv_value"];
if ($row["mtfk_type"] == "co2cs") :
$tmpCsId = $fieldValue;
$tmpCmpId = getFieldValueFromId("customer", "cs_id", $tmpCsId, "cmp_id");
$tmpCmpComp1 = trim(getFieldValueFromId("company", "cmp_id", $tmpCmpId, "cmp_comp"));
$fieldValue = getFieldValueFromId("customer", "cs_id", $fieldValue, "cs_eid");
if ($fieldValue != "" && $tmpCmpComp1 != "") :
$fieldValue .= " [" . trim($tmpCmpComp1) . "]";
endif;
elseif ($row["mtfk_type"] == "co2cr") :
$tmpCsId = $fieldValue;
$tmpCmpId = getFieldValueFromId("courier", "cr_id", $tmpCsId, "cmp_id");
$tmpCmpComp1 = trim(getFieldValueFromId("company", "cmp_id", $tmpCmpId, "cmp_comp"));
$fieldValue = getFieldValueFromId("courier", "cr_id", $fieldValue, "cr_eid");
if ($fieldValue != "" && $tmpCmpComp1 != "") :
$fieldValue .= " [" . trim($tmpCmpComp1) . "]";
endif;
elseif ($row["mtfk_type"] == "checkboxes_hq") :
$tmpHqArray = spliti(",", $row["mtfv_value"]);
$tmpHqArrayLen = count($tmpHqArray);
for ($i = 0; $i < $tmpHqArrayLen; $i++) :
$tmpHqArray[$i] = getFieldValueFromId("headquarters","hq_id",$tmpHqArray[$i],"hq_mnemonic");
endfor;
$fieldValue = implode(",",$tmpHqArray);
elseif (substr($row["mtfk_type"],0,7) == "select:") : // SELECT FIELD
$subTypeArray = spliti(":",$row["mtfk_type"]);
$table = $subTypeArray[1];
if ($table == "vht") :
$fieldValue = getFieldValueFromClause("metatype","mt_value","mt_type = 'vehicletype' AND mt_sort = '" . $row["mtfv_value"] . "' AND mt_objid = '0'");
endif;
if ($table == "grp") :
$fieldValue = getFieldValueFromId("groups","grp_id",$row["mtfv_value"],"grp_name");
endif;
if ($table == "br") :
$fieldValue = getFieldValueFromId("branch","br_id",$row["mtfv_value"],"br_name");
endif;
endif;
$fieldValue = str_replace (" ", " ", $fieldValue);
if ($retArray[$rowCount] == "") :
$retArray[$rowCount] = array($fieldValue);
else :
$retArray[$rowCount][] = $fieldValue;
endif;
endwhile;
endif;
endif;
return $retArray;
}
// Gets all contacts regarding the search value
function getContactList ($search, $category, $prefix = "%", $objType = "", $objId = "") {
$retArray = getMetafieldData($search, $category, $prefix, $objType, $objId);
return $retArray;
}
// Gets all contacts of a special object (cs, cr, etc.)
function getContactListOfObject ($search, $category, $prefix = "%", $objType = "", $objId = "") {
$retArray = getMetafieldData($search, $category, $prefix, $objType, $objId, "1");
return $retArray;
}
// Gets data of a single table
function getDbTableData($table, $fields, $whereClause = "", $mode = "0", $dbConnection = "") {
global $db, $PHP_SELF;
if (!is_object($dbConnection) || $dbConnection == "") : $dbConnection = $db; endif;
$retArray = array();
if ($table != "") :
$fieldsLen = 0;
if (is_array($fields)) :
$fieldsLen = count($fields);
endif;
if ($fieldsLen > 0) :
if ($whereClause != "") : $whereClause = " WHERE " . $whereClause ; endif;
$sqlStmt = "SELECT " . implode(",", $fields) . " FROM " . $table . " " . $whereClause;
$result = $dbConnection->query($sqlStmt);
if (DB::isError($result)) die ("$PHP_SELF:
$sqlStmt
" . $result->getMessage());
// Header
for ($i = 0; $i < $fieldsLen; $i++) :
if ($mode == "1") :
$retArray[0][] = $fields[$i];
else :
$retArray[0][$fields[$i]] = $fields[$i];
endif;
endfor;
$count = 1;
while ($row = $result->fetch_assoc()):
for ($i = 0; $i < $fieldsLen; $i++) :
if ($mode == "1") :
$retArray[$count][] = $row[$fields[$i]];
else :
$retArray[$count][$fields[$i]] = $row[$fields[$i]];
endif;
endfor;
$count++;
endwhile;
$result->free();
else :
$retArray = array("102","102\n","" . getLngt("Es wurde kein Feld spezifiziert.") . "\n");
endif;
else :
$retArray = array("101","101\n","" . getLngt("Der Tabellenname ist nicht spezifiziert.") . "\n");
endif;
return $retArray;
}
// Gets all headquarters
function getHeadquartersList () {
$retArray = getDbTableData("headquarters", array("hq_id", "hq_mnemonic", "hq_name"));
return $retArray;
}
// Gets costcenters of a special customer
function getCostcenterListOfCustomer ($csId) {
$retArray = getCostcenterList($csId, "");
return $retArray;
}
// ----------------------------------------------------------------------------------------------------------------------------------------
// *************************
// * SHOPS AND BONUS CARDS *
// *************************
function getBonusCard ($bcId, $bcCode) {
$retArray = array();
if (($bcId != "" && is_numeric($bcId)) || $bcCode != "") :
if ($bcId != "") :
$tmpFields = getFieldsValueFromId("phoenix.bonuscard","bc_id",$bcId,array("bc_id","bc_code"));
endif;
if ($bcCode != "") :
$tmpFields = getFieldsValueFromId("phoenix.bonuscard","bc_code",$bcCode,array("bc_id","bc_code"));
endif;
$retArray = array("0",$tmpFields[0],$tmpFields[1]);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function insertBonusCard ($bcCode) {
$retArray = array();
if ($bcCode != "") :
if (!existsEntry("phoenix.bonuscard", array("bc_code",$bcCode))) :
insertStmt("phoenix.bonuscard", array("bc_code",$bcCode));
$bcId = getLastInsertId();
$retArray = array("0",$bcId,$bcCode);
else :
$retArray = array("202","202\n","" . getLngt("Bonus card number does exist!") . "\n");
endif;
else:
$retArray = array("201","201\n","" . getLngt("Bonus card number is empty!") . "\n");
endif;
return $retArray;
}
function updateBonusCard ($bcId, $bcCode) {
global $db;
$retArray = array();
$bcCode = trim($bcCode);
if (($bcId != "" && is_numeric($bcId)) && $bcCode != "") :
$bcIdCheck = getFieldValueFromId("phoenix.bonuscard","bc_code",$bcCode,"bc_id");
if ($bcId == $bcIdCheck) :
$res = updateStmt("phoenix.bonuscard", "bc_id", $bcId, array("bc_code",$bcCode));
if ($db->affected_rows > 0) :
$retArray = array("0",$bcId,$bcCode);
else :
$retArray = array("202","203\n","" . getLngt("Update failed!") . "\n");
endif;
else :
$retArray = array("202","202\n","" . getLngt("Bonus card number does exist!") . "\n");
endif;
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function getBonusCardOwner ($bcId, $objType = "", $objId = "", $orderByClause = "") {
global $db, $PHP_SELF;
$retArray = array();
if ($bcId != "" || ($objType != "" && $objId != "" && is_numeric($objId))) :
if ($orderByClause == "") : $orderByClause = "bc_id"; endif;
if ($bcId != "" && is_numeric($bcId)) : $whereClause .= " AND bc_id = '" . $bcId . "' "; endif;
if ($objType != "" && $objId != "" && is_numeric($objId)) : $whereClause .= " AND bco_obj_type = '" . $objType . "' AND bco_obj_id = '" . $objId . "' "; endif;
$sqlStmt = "SELECT bc_id,bco_obj_type,bco_obj_id,bco_points FROM phoenix.bonuscardowner WHERE " . $whereClause . " ORDER BY " . $orderByClause;
$retArray = getMatrixFromDbResultByStatement($sqlStmt);
$retArray = array("0", $retArray);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function getBonusCardOwnerByClause ($whereClause, $orderByClause = "") {
global $db, $PHP_SELF;
$retArray = array();
if ($whereClause != "") :
if ($orderByClause == "") : $orderByClause = "bc_id"; endif;
$sqlStmt = "SELECT bc_id,bco_obj_type,bco_obj_id,bco_points FROM phoenix.bonuscardowner WHERE " . $whereClause . " ORDER BY " . $orderByClause;
$retArray = getMatrixFromDbResultByStatement($sqlStmt);
$retArray = array("0", $retArray);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function setBonusCardOwner ($bcId, $objType, $objId, $bcoPoints) {
global $db;
$retArray = array();
if (($bcId != "" && is_numeric($bcId)) && $objType != "" && ($objId != "" && is_numeric($objId))) :
if ($bcoPoints == "" || !is_numeric($bcoPoints)) : $bcoPoints = 0; endif;
if (existsEntry("phoenix.bonuscardowner", array("bcId",$bcId,"bco_obj_type",$objType,"bco_obj_id",$objId))) :
$res = updateStmt("phoenix.bonuscardowner", "bc_id", $bcId, array("bco_points", $bcoPoints), "bco_obj_type = '" . $objType . "' AND bco_obj_id = '" . $objId . "'");
if ($db->affected_rows > 0) :
$retArray = array("0","OK");
else :
$retArray = array("203","203\n","" . getLngt("Row does exist but update failed!") . "\n");
endif;
else :
$res = insertStmt("phoenix.bonuscardowner", array("bc_id", $bcId, "bco_obj_type", $objType, "bco_obj_id", $objId, "bco_points", $bcoPoints));
if ($db->affected_rows > 0) :
$retArray = array("0","OK");
else :
$retArray = array("204","204\n","" . getLngt("Row has not been inserted!") . "\n");
endif;
endif;
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function addBonusCardOwnerPoints ($bcId, $objType, $objId, $bcoPoints) {
global $db;
$retArray = array();
if (($bcId != "" && is_numeric($bcId)) && $objType != "" && ($objId != "" && is_numeric($objId)) && ($bcoPoints != "" && is_numeric($bcoPoints))) :
if (existsEntry("phoenix.bonuscardowner", array("bcId",$bcId,"bco_obj_type",$objType,"bco_obj_id",$objId))) :
$res = updateStmt("phoenix.bonuscardowner", "bc_id", $bcId, array("bco_points", $bcoPoints), "bco_obj_type = '" . $objType . "' AND bco_obj_id = '" . $objId . "'");
if ($db->affected_rows > 0) :
$retArray = array("0","OK");
else :
$retArray = array("203","203\n","" . getLngt("Row does exist but update failed!") . "\n");
endif;
else :
$retArray = array("202","202\n","" . getLngt("Row does not exist!") . "\n");
endif;
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function getBonusCardSingleTransaction ($bctaId) {
if ($bctaId != "" && is_numeric($bctaId)) :
$tmpFields = getFieldsValueFromId("phoenix.bonuscardtransaction","bcta_id",$bctaId,array("bcta_id","bc_id","bcta_obj_type","bcta_obj_id","shp_id","bcta_value","bcta_points","bcta_createtime","bcta_remark"));
$retArray = array_merge(array("0"), $tmpFields);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function getBonusCardTransactionList ($dateFrom, $dateTo, $orderByClause = "", $objType = "", $objId = "", $shpId = "") {
global $db, $PHP_SELF;
$retArray = array();
if ($dateFrom != "" && $dateTo != "") :
if ($orderByClause == "") : $orderByClause = "bcta_id"; endif;
$whereClause = "bcta_createtime >= '" . $dateFrom . "' AND bcta_createtime <= '" . $dateTo . "'";
if ($shpId != "" && is_numeric($shpId)) : $whereClause .= " AND shp_id = '" . $shpId . "' "; endif;
if ($objType != "" && $objId != "" && is_numeric($objId)) : $whereClause .= " AND bcta_obj_type = '" . $objType . "' AND bcta_obj_id = '" . $objId . "' "; endif;
$sqlStmt = "SELECT bcta_id,bc_id,bcta_obj_type,bcta_obj_id,shp_id,bcta_value,bcta_points,bcta_createtime,bcta_remark"
. " FROM phoenix.bonuscardtransaction WHERE " . $whereClause . " ORDER BY " . $orderByClause;
$retArray = getMatrixFromDbResultByStatement($sqlStmt);
$retArray = array("0", $retArray);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function getBonusCardTransactionListByClause ($whereClause, $orderByClause = "") {
global $db, $PHP_SELF;
$retArray = array();
if ($whereClause != "") :
if ($orderByClause == "") : $orderByClause = "bcta_id"; endif;
$sqlStmt = "SELECT bcta_id,bc_id,bcta_obj_type,bcta_obj_id,shp_id,bcta_value,bcta_points,bcta_createtime,bcta_remark"
. " FROM phoenix.bonuscardtransaction WHERE " . $whereClause . " ORDER BY " . $orderByClause;
$retArray = getMatrixFromDbResultByStatement($sqlStmt);
$retArray = array("0", $retArray);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function setBonusCardSingleTransaction ($bcId, $objType, $objId, $shpId, $bctaValue, $bctaPoints, $bctaRemark) {
global $db, $PHP_SELF;
$retArray = array();
if (($bcId != "" && is_numeric($bcId)) && $objType != "" && ($objId != "" && is_numeric($objId))) :
if (existsEntry("phoenix.bonuscard", array("bc_id",$bcId))) :
if (($objType == "usr" && !existsEntry("phoenix.user", array("usr_id",$objId))) ||
($objType == "cmp" && !existsEntry("phoenix.company", array("cmp_id",$objId)))) :
if (existsEntry("phoenix.shop", array("shp_id",$shpId))) :
if ($bctaValue == "") : $bctaValue = 0; endif;
if ($bctaPoints == "") : $bctaPoints = 0; endif;
$bctaValue = str_replace (",", ".", $bctaValue);
$bctaPoints = str_replace (",", ".", $bctaPoints);
if (is_numeric($bctaValue) && is_numeric($bctaPoints)) :
TA(B);
$currentTime = getDateTime("0");
$res = insertStmt("phoenix.bonuscardtransaction", array("bc_id", $bcId, "bcta_obj_type", $objType, "bcta_obj_id", $objId, "shp_id", $shpId, "bcta_value", $bctaValue, "bcta_points", $bctaPoints, "bcta_createtime ", $currentTime, "bcta_remark ", $bctaRemark));
if ($db->affected_rows > 0) :
$bctaId = getLastInsertId();
// Add bonuscard points to "bonus card owner"
$tmpArr = addBonusCardOwnerPoints($bcId, $objType, $objId, $bcoPoints);
if ($tmpArr[0] == "0") :
$retArray = array("0",$bctaId);
TA(C);
else :
TA(R);
endif;
else :
$retArray = array("206","206\n","" . getLngt("Row has not been inserted!") . "\n");
TA(R);
endif;
TA(E);
else :
$retArray = array("205","205\n","" . getLngt("Value or points is not numeric!") . "\n");
endif;
else :
$retArray = array("204","204\n","" . getLngt("Shop does not exist!") . "\n");
endif;
else :
$retArray = array("203","203\n","" . getLngt("User or company does not exist!") . "\n");
endif;
else :
$retArray = array("202","202\n","" . getLngt("Bonuscard does not exist!") . "\n");
endif;
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function getShop ($shpId) {
$retArray = array();
if ($shpId != "" && is_numeric($shpId)) :
$tmpFields = getFieldsValueFromId("phoenix.shop","bc_id",$bcId,array("shp_id","hq_id","cmp_id","shp_bc_active","shp_bc_factor","shp_bc_ta_limit"));
$retArray = array("0",$tmpFields[0],$tmpFields[1],$tmpFields[2],$tmpFields[3],$tmpFields[4],$tmpFields[5]);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function getShopByClause ($whereClause, $orderByClause = "") {
global $db, $PHP_SELF;
$retArray = array();
if ($whereClause != "") :
if ($orderByClause == "") : $orderByClause = "bcta_id"; endif;
$sqlStmt = "SELECT shp_id,hq_id,cmp_id,shp_bc_active,shp_bc_factor,shp_bc_ta_limit FROM phoenix.shop WHERE " . $whereClause . " ORDER BY " . $orderByClause;
$retArray = getMatrixFromDbResultByStatement($sqlStmt);
$retArray = array("0", $retArray);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function insertShop ($shpName, $hqId, $shpBcActive = "1", $shpBcFactor = "1", $shpBcTaLimit = "100") {
global $db, $PHP_SELF;
$retArray = array();
$shpName = trim($shpName);
if ($shpName != "" && $hqId != "" && is_numeric($hqId)) :
if (existsEntry("phoenix.headquarters", array("hq_id",$hqId))) :
$sqlStmt = "SELECT shp.shp_id FROM phoenix.shop AS shp, phoenix.company AS cmp WHERE cmp.cmp_comp = '" . $shpName . "' AND cmp.cmp_id = shp.shp_id AND shp.hq_id = '" . $hqId . "'";
$shpId = getOneStmt($sqlStmt, "shp_id");
if ($shpId == "") :
TA(B);
$currentTime = getDateTime("0");
insertStmt("phoenix.company", array("cmp_comp", $shpName, "cmp_comp2", "", "cmp_hsno", "", "cmp_iln", "", "cmp_tax_idno", "", "cmp_stax_idno", "",
"cmp_bank", "", "cmp_bankno", "", "cmp_bankacc", "", "cmp_iban", "", "cmp_swift", "", "cmp_authenticated", "1", "cmp_visible", "1",
"cmp_remark", "", "cmp_remark2", "", "cmp_new_date", $currentTime, "cmp_modify_status", "1"));
$cmpIdNew = getLastInsertId();
insertStmt("phoenix.shop", array("hq_id", $hqId, "cmp_id", $cmpIdNew, "shp_bc_active", $shpBcActive, "shp_bc_factor", $shpBcFactor, "shp_bc_ta_limit", $shpBcTaLimit));
$shpIdNew = getLastInsertId();
TA(C);
TA(E);
if ($shpIdNew != "" && is_numeric($shpIdNew) && $cmpIdNew != "" && is_numeric($cmpIdNew)) :
$retArray = array("0",$shpIdNew,$cmpIdNew);
else :
$retArray = array("204","204\n","" . getLngt("Shop insertion failed by transaction abort!") . "\n");
endif;
else :
$retArray = array("203","203\n","" . getLngt("Shop does exist for the center!") . "\n");
endif;
else :
$retArray = array("202","202\n","" . getLngt("Center does exist!") . "\n");
endif;
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function updateShop ($shpId, $shpName, $shpBcActive, $shpBcFactor, $shpBcTaLimit) {
global $db;
$retArray = array();
if (($shpId != "" && is_numeric($shpId))) :
$updArrayShop = array();
$updArrayCompany = array();
if ($shpName != ""):
$updArrayCompany = array_merge($updArrayCompany, array("cmp_comp", $shpName));
endif;
if ($shpBcActive != ""):
$updArrayShop = array_merge($updArrayShop, array("shp_bc_active", $shpBcActive));
endif;
if ($shpBcFactor != ""):
$updArrayShop = array_merge($updArrayShop, array("shp_bc_factor", $shpBcFactor));
endif;
if ($shpBcTaLimit != ""):
$updArrayShop = array_merge($updArrayShop, array("shp_bc_ta_limit", $shpBcTaLimit));
endif;
if (count($updArrayShop) > 0) :
$res = updateStmt("phoenix.shop", "shp_id", $shpId, $updArrayShop);
$aRows1 = $db->affected_rows;
$cmpId = getFieldValueFromId("phoenix.shop","shp_id",$shpId,"cmp_id");
$res2 = updateStmt("phoenix.company", "cmp_id", $cmpId, $updArrayCompany);
$aRows2 = $db->affected_rows;
if ($aRows1 > 0 && $aRows2 > 0) :
$retArray = array("0","OK");
else :
$retArray = array("203","203\n","" . getLngt("Update failed!") . "\n");
endif;
else :
$retArray = array("202","202\n","" . getLngt("Update failed because of emty items!") . "\n");
endif;
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function getCoupon ($cpnId, $cpnCode) {
$retArray = array();
if (($cpnId != "" && is_numeric($cpnId)) || $cpnCode != "") :
if ($cpnId != "") :
$tmpFields = getFieldsValueFromId("phoenix.coupon","bc_id",$cpnId,array("bc_id","cpn_code"));
endif;
if ($cpnCode != "") :
$tmpFields = getFieldsValueFromId("phoenix.coupon","cpn_code",$cpnCode,array("bc_id","cpn_code"));
endif;
$retArray = array("0",$tmpFields[0],$tmpFields[1]);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function insertCoupon ($cpnCode) {
$retArray = array();
if ($cpnCode != "") :
if (!existsEntry("phoenix.coupon", array("cpn_code",$cpnCode))) :
insertStmt("phoenix.coupon", array("cpn_code",$cpnCode));
$cpnId = getLastInsertId();
$retArray = array("0",$cpnId,$cpnCode);
else :
$retArray = array("202","202\n","" . getLngt("Coupon number does exist!") . "\n");
endif;
else:
$retArray = array("201","201\n","" . getLngt("Coupon number is empty!") . "\n");
endif;
return $retArray;
}
function updateCoupon ($cpnId, $cpnCode) {
global $db;
$retArray = array();
$cpnCode = trim($cpnCode);
if (($cpnId != "" && is_numeric($cpnId)) && $cpnCode != "") :
$cpnIdCheck = getFieldValueFromId("phoenix.coupon","cpn_code",$cpnCode,"cpn_id");
if ($cpnId == $cpnIdCheck) :
$res = updateStmt("phoenix.coupon", "cpn_id", $cpnId, array("cpn_code",$cpnCode));
if ($db->affected_rows > 0) :
$retArray = array("0",$cpnId,$cpnCode);
else :
$retArray = array("203","203\n","" . getLngt("Update failed!") . "\n");
endif;
else :
$retArray = array("202","202\n","" . getLngt("Coupon number does exist!") . "\n");
endif;
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function getCouponSingleTransaction ($cpnta_id) {
if ($cpnta_id != "" && is_numeric($cpnta_id)) :
$tmpFields = getFieldsValueFromId("phoenix.coupontransaction","bcta_id",$cpnta_id,array("cpnta_id","cpn_id","cpnta_obj_type","cpnta_obj_id","cpnta_createtime"));
$retArray = array_merge(array("0"), $tmpFields);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function getCouponTransactionList ($dateFrom, $dateTo, $orderByClause = "", $objType = "", $objId = "") {
global $db, $PHP_SELF;
$retArray = array();
if ($dateFrom != "" && $dateTo != "") :
if ($orderByClause == "") : $orderByClause = "cpnta_id"; endif;
$whereClause = "cpnta_createtime >= '" . $dateFrom . "' AND cpnta_createtime <= '" . $dateTo . "'";
if ($objType != "" && $objId != "" && is_numeric($objId)) : $whereClause .= " AND cpnta_obj_type = '" . $objType . "' AND cpnta_obj_id = '" . $objId . "' "; endif;
$sqlStmt = "SELECT cpnta_id,cpn_id,cpnta_obj_type,cpnta_obj_id,cpnta_createtime FROM phoenix.coupontransaction WHERE " . $whereClause . " ORDER BY " . $orderByClause;
$retArray = getMatrixFromDbResultByStatement($sqlStmt);
$retArray = array("0", $retArray);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function getCouponTransactionListByClause ($whereClause, $orderByClause = "") {
global $db, $PHP_SELF;
$retArray = array();
if ($whereClause != "") :
if ($orderByClause == "") : $orderByClause = "bcta_id"; endif;
$sqlStmt = "SELECT cpnta_id,cpn_id,cpnta_obj_type,cpnta_obj_id,cpnta_createtime FROM phoenix.coupontransaction WHERE " . $whereClause . " ORDER BY " . $orderByClause;
$retArray = getMatrixFromDbResultByStatement($sqlStmt);
$retArray = array("0", $retArray);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function setCouponSingleTransaction ($cpnId, $objType, $objId) {
global $db, $PHP_SELF;
$retArray = array();
if (($cpnId != "" && is_numeric($cpnId)) && $objType != "" && ($objId != "" && is_numeric($objId))) :
if (existsEntry("phoenix.coupon", array("cpn_id",$cpnId))) :
if (($objType == "usr" && !existsEntry("phoenix.user", array("usr_id",$objId))) ||
($objType == "cmp" && !existsEntry("phoenix.company", array("cmp_id",$objId)))) :
if (true) : // existsEntry("phoenix.xxxx", array("xxxx_id",$xxxxId))
// if ($cpntaValue == "") : $cpntaValue = 0; endif;
// if ($cpntaPoints == "") : $cpntaPoints = 0; endif;
// $cpntaValue = str_replace (",", ".", $cpntaValue);
// $cpntaPoints = str_replace (",", ".", $cpntaPoints);
if (true) : // is_numeric($bctaValue) && is_numeric($bctaPoints)
$currentTime = getDateTime("0");
$res = insertStmt("phoenix.coupontransaction", array("cpn_id", $cpnId, "cpnta_obj_type", $objType, "cpnta_obj_id", $objId)); // , "shp_id", $shpId, "bcta_value", $bctaValue, "bcta_points", $bctaPoints, "bcta_createtime ", $currentTime, "bcta_remark ", $bctaRemark
if ($db->affected_rows > 0) :
$cpntaId = getLastInsertId();
$retArray = array("0",$cpntaId);
else :
$retArray = array("206","206\n","" . getLngt("Row has not been inserted!") . "\n");
endif;
else :
$retArray = array("205","205\n","" . getLngt("Value or points is not numeric!") . "\n");
endif;
else :
$retArray = array("204","204\n","" . getLngt("XXXX does not exist!") . "\n");
endif;
else :
$retArray = array("203","203\n","" . getLngt("User or company does not exist!") . "\n");
endif;
else :
$retArray = array("202","202\n","" . getLngt("Coupon does not exist!") . "\n");
endif;
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function getGiftCoupon ($gcpn_id, $gcpn_code) {
$retArray = array();
if (($gcpn_id != "" && is_numeric($gcpn_id)) || $gcpn_code != "") :
if (($gcpn_id != "" && is_numeric($gcpn_id))) :
$whereClause = "gcpn_id = '" . $gcpn_id . "'";
elseif ($gcpn_code != "") :
$whereClause = "gcpn_code = '" . $gcpn_code . "'";
endif;
$sqlStmt = "SELECT gcpn_id,gcpn_code,gcpn_recipient,gcpn_valid,gcpn_value,gcpn_freetext,gcpn_image_name,gcpn_payment_code,gcpn_createtime"
. " FROM phoenix.giftcoupon WHERE " . $whereClause . " ORDER BY " . $orderByClause;
$retArray = getMatrixFromDbResultByStatement($sqlStmt);
$retArray = array_merge(array("0"), $retArray);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function getGiftCouponByClause ($whereClause, $orderByClause = "") {
global $db, $PHP_SELF;
$retArray = array();
if ($whereClause != "") :
if ($orderByClause == "") : $orderByClause = "bcta_id"; endif;
$sqlStmt = "SELECT gcpn_id,gcpn_code,gcpn_recipient,gcpn_valid,gcpn_value,gcpn_freetext,gcpn_image_name,gcpn_payment_code,gcpn_createtime"
. " FROM phoenix.giftcoupon WHERE " . $whereClause . " ORDER BY " . $orderByClause;
$retArray = getMatrixFromDbResultByStatement($sqlStmt);
$retArray = array("0", $retArray);
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function insertGiftCoupon ($gcpnCode, $gcpnRecipient, $gcpnValue, $gcpnImageName = "", $gcpnValid = "1", $gcpnFreetext = "", $gcpnPaymentCode = "") {
global $db, $PHP_SELF;
$retArray = array();
$gcpnCode = trim($gcpnCode);
if ($gcpnCode != "" && $gcpnRecipient != "" && $gcpnValue != "") :
if (!existsEntry("phoenix.giftcoupon", array("gcpn_code",$gcpnCode))) :
// $sqlStmt = "SELECT shp.shp_id FROM phoenix.shop AS shp, phoenix.company AS cmp WHERE cmp.cmp_comp = '" . $shpName . "' AND cmp.cmp_id = shp.shp_id AND shp.hq_id = '" . $hqId . "'";
// $shpId = getOneStmt($sqlStmt, "shp_id");
if (true || $shpId == "") :
$gcpnValue = str_replace (",", ".", $gcpnValue);
if (is_numeric($gcpnValue)) :
$currentTime = getDateTime("0"); // gcpn_createtime
insertStmt("phoenix.giftcoupon", array("gcpn_code", $gcpnCode, "gcpn_recipient", $gcpnRecipient, "gcpn_valid", $gcpnValid, "gcpn_value", $gcpnValue,
"gcpn_freetext", $gcpnFreetext, "gcpn_image_name", $gcpnImageName, "gcpn_payment_code", $gcpnPaymentCode, "gcpn_createtime", $currentTime));
$gcpnIdNew = getLastInsertId();
if ($gcpnIdNew != "" && is_numeric($gcpnIdNew)) :
$retArray = array("0",$gcpnIdNew);
else :
$retArray = array("205","205\n","" . getLngt("Gift coupon insertion failed by transaction abort!") . "\n");
endif;
else :
$retArray = array("204","204\n","" . getLngt("Value is not numeric!") . "\n");
endif;
else :
$retArray = array("203","203\n","" . getLngt("Gift coupon does exist for the center!") . "\n");
endif;
else :
$retArray = array("202","202\n","" . getLngt("Gift coupon does exist!") . "\n");
endif;
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
function updateGiftCoupon ($gcpnId, $gcpnCode, $gcpnRecipient, $gcpnValue, $gcpnImageName = "", $gcpnValid = "1", $gcpnFreetext = "", $gcpnPaymentCode = "") {
global $db;
$retArray = array();
if (($gcpnId != "" && is_numeric($gcpnId))) :
$updArray = array();
$doContinue = true;
if ($gcpnCode != ""):
$gcpnIdCheck = getFieldValueFromId("phoenix.giftcoupon","gcpn_code",$gcpnCode,"gcpn_id");
if ($gcpnId == $gcpnIdCheck) :
$updArray = array_merge($updArray, array("gcpn_code", $gcpnCode));
else :
$doContinue = false;
$retArray = array("205","205\n","" . getLngt("Gift coupon number does exist!") . "\n");
endif;
endif;
if ($doContinue && $gcpnRecipient != "") :
$updArray = array_merge($updArray, array("gcpn_recipient", $gcpnRecipient));
endif;
if ($doContinue && $gcpnValue != "") :
$gcpnValue = str_replace (",", ".", $gcpnValue);
if (is_numeric($gcpnValue)) :
$updArray = array_merge($updArray, array("gcpn_recipient", $gcpnRecipient));
else :
$doContinue = false;
$retArray = array("206","206\n","" . getLngt("Value is not numeric!") . "\n");
endif;
endif;
if ($doContinue) :
if ($gcpnImageName != ""):
$updArray = array_merge($updArray, array("gcpn_image_name", $gcpnImageName));
endif;
if (count($updArray) > 0) :
$res = updateStmt("phoenix.giftcoupon", "gcpn_id", $gcpnId, $updArray);
if ($db->affected_rows > 0) :
$retArray = array("0","OK");
else :
$retArray = array("204","204\n","" . getLngt("Update failed!") . "\n");
endif;
else :
$retArray = array("203","203\n","" . getLngt("Update failed because of emty items!") . "\n");
endif;
else :
$retArray = array("202","202\n","" . getLngt("Update failed because of incorrect items!") . "\n");
endif;
else:
$retArray = array("201","201\n","" . getLngt("Request has emty items!") . "\n");
endif;
return $retArray;
}
// ---------------------------------------------
?>