";
echo "cscIdActual = " . $cscIdActual . "
";
echo "f_article_type = " . $f_article_type . "
";
echo "f_csc_selected = " . $f_csc_selected . "
";
echo "cscPreIdOfSelected = " . $cscPreIdOfSelected . "
";
echo "correctScannedCodesArrLen = " . $correctScannedCodesArrLen . "
";
echo "selYear = " . $selYear . "
";
echo "selMonth = " . $selMonth . "
";
echo "selDay = " . $selDay . "
";
echo "execute = " . $execute . "
";
endif;
// Get objects to be booked
function getObjectsToBeBooked ($cscId, $atId) {
global $db, $PHP_SELF;
$objectsToBeBooked = array();
if ($cscId != "" && is_numeric($cscId) && $atId != "" && is_numeric($atId)) :
// Get all fixed objects (e.g. safebags) to be booked to bank by costcenter employee in frontend
$sqlquery = "SELECT atih.atih_serialno, atih.atih_createtime"
. " FROM phoenix_log.articleitemhistory AS atih"
. " WHERE atih.csc_id = '" . $cscId . "' AND"
. " atih.at_id = '" . $atId . "' AND"
. " atih.atih_data_28 = '1'"
. " ORDER BY atih.atih_serialno";
// echo $sqlquery;
$result = $db->query($sqlquery);
if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage());
while ($row = $result->fetch_assoc()):
$objectsToBeBooked[] = $row["atih_serialno"];
endwhile;
$result->free();
endif;
return $objectsToBeBooked;
}
// Check days having access regarding special costcenter (!!!!)
$atihDailyBookingPermanentlyEnabled = false;
$parDailyBookingPermanentlyEnabled = getParameterValue("0", "ATIH_DAILY_BOOKING_PERMANENTLY_ENABLED", $hq_id);
if ($parDailyBookingPermanentlyEnabled == "") : $parDailyBookingPermanentlyEnabled = getParameterValue("0", "ATIH_DAILY_BOOKING_PERMANENTLY_ENABLED", "0"); endif;
if ($parDailyBookingPermanentlyEnabled == "1") :
$atihDailyBookingPermanentlyEnabled = true;
endif;
$f_selUsrId = "0"; $f_ap_cat_search_1 = ""; $f_ap_cat_search_2 = ""; $f_ap_cat_search_3 = ""; $f_ap_cat_search_4 = ""; $f_ap_visibility_search = array(); $f_hq_id = array($hq_id);
$bookingDaysArr = getAppointmentsFromDB($selYear, $selMonth, $selDay, $selYear, $selMonth, $selDay, "", $f_csc_selected, "1");
$bookingDaysArrLen = count($bookingDaysArr); // Has to be at least >= 1 regarding the ap_type = "1". Otherwise access will not be granted! (!!!!)
if ($atihDailyBookingPermanentlyEnabled || $bookingDaysArrLen > 0) :
if ($execute && $f_csc_selected != "" && is_numeric($f_csc_selected) && $cscPreIdOfSelected != "" && is_numeric($cscPreIdOfSelected) && $f_article_type != "" && is_numeric($f_article_type)) :
// Book objects
if ($f_act == "book") :
$objectsToBeBooked = getObjectsToBeBooked($f_csc_selected, $f_article_type);
$objectsToBeBookedLen = count($objectsToBeBooked);
if ($debug) :
echo "objectsToBeBookedLen = " . $objectsToBeBookedLen . "
";
echo "numOfObjectsToBeBooked = " . $numOfObjectsToBeBooked . "
";
endif;
// Get POST parameter for scanned objects
for ($i = 0; $i < $objectsToBeBookedLen; $i++) :
list($snr[$objectsToBeBooked[$i]]) = getSecHttpVars("1",array("snr_" . $objectsToBeBooked[$i]));
endfor;
if ($debug) :
echo "
"; print_r($snr); echo "
";
endif;
// Scans without concrete objects in database
// HERE !!!!!!!!!!!!!!!!!!!!!!!!!!!!
if ($objectsToBeBookedLen > 0 && $correctScannedCodesArrLen > 0 && $numOfObjectsToBeBooked > 0) :
if ($objectsToBeBookedLen == $numOfObjectsToBeBooked) : // && $correctScannedCodesArrLen == $numOfObjectsToBeBooked
// First check all codes being scanned are identically to codes to be scanned after submit
$codesScannedCorrectly = true;
for ($i = 0; $i < $objectsToBeBookedLen; $i++) :
// Check for object being scanned correctly. If NOT then check for $errLevel has to be "1" (!!!!)
if (!in_array($objectsToBeBooked[$i],$correctScannedCodesArr)) :
$codesScannedCorrectly = false;
break;
endif;
endfor;
if ($debug) :
echo "
"; print_r($objectsToBeBooked); echo "
"; print_r($correctScannedCodesArr); echo "
";
endif;
if (true) :
TA("B");
$objectsNotScanned = ""; // For status message output only
for ($i = 0; $i < $objectsToBeBookedLen; $i++) :
if ($debug) :
echo "snr[$objectsToBeBooked[$i]] = " . $snr[$objectsToBeBooked[$i]] . "
";
endif;
if ($snr[$objectsToBeBooked[$i]] == "1") :
updateStmt("phoenix_log.articleitemhistory", "atih_serialno", $objectsToBeBooked[$i], array("atih_data_28", "2"),"csc_id = '" . $f_csc_selected . "' AND atih_data_28 = '1'");
// Log update
// ............
else :
if ($objectsNotScanned != "") : $objectsNotScanned .= ","; endif;
$objectsNotScanned .= $objectsToBeBooked[$i];
endif;
endfor;
if ($objectsNotScanned != "") :
$statusMessage = getLngt("Folgende Objekte wurden NICHT ausgebucht, weil ein Scan NICHT erfolgte:") . " [" . $objectsNotScanned . "]";
endif;
TA("C");
TA("E");
// Send mail for failed scan(s)
$sendMailText = "";
if (!$codesScannedCorrectly || ($errLevel & 1) == 1) :
$sendMailText .= "Fehlende Objekte: " . $objectsNotScanned . " ";
endif;
if (($errLevel & 2) == 2) :
$sendMailText .= "Zusätzliche Objekte: " . $trackingIDsNotFound;
endif;
if ($sendMailText != "") :
sendExternalMail($sendMailText, "HHA.SCAN.EREIGNISSE", "ASSECUTOR-INFO@hochbahn.de", "sys-op@assecutor.de", "", "proj.hha@assecutor.de", "", "", "sendMailBooking.log");
endif;
else :
$statusMessage = getLngt("TRANSAKTIONSFEHLER! Die gescannten Objekte scheinen mit den abzuschließenden Objekten NICHT übereinzustimmen! Bitte leider nochmal den Scan-Prozess wiederholen!");
endif;
else :
$statusMessage = getLngt("ÜBERTRAGUNGSFEHLER! Die Anzahl der gescannten Objekte scheint mit der Anzahl abzuschließender Objekte NICHT übereinzustimmen! Bitte leider nochmal den Scan-Prozess wiederholen!");
endif;
else :
$statusMessage = getLngt("Es sind derzeit keine Objekte im Bestand, die ausgebucht werden können!");
endif;
endif;
// Reload objects to be scanned
$objectsToBeBooked = getObjectsToBeBooked ($f_csc_selected, $f_article_type);
$objectsToBeBookedLen = count($objectsToBeBooked);
// Current costcenter name regarding a special virtual number mapping it
if ($f_csc_selected != "") :
$currCscName = getFieldValueFromId("costcenter", "csc_id", $f_csc_selected, "csc_name");
endif;
$htmlOut = "";
for ($i = 0; $i < $objectsToBeBookedLen; $i++) :
$htmlOut .= "\n";
$htmlOut .= "
\n";
endfor;
else :
$execute = false;
$currCscName = "";
if ($f_csc_selected == "" || $cscPreIdOfSelected == "") :
$currCscName .= "Es wurde keine " . wrapPhrase("Kostenstelle", $objecttypemode) . " ausgewählt!" . "
";
endif;
if ($f_article_type == "" || !is_numeric($f_article_type)) :
$currCscName .= "Es wurde kein Objekttyp ausgewählt!" . "
";
endif;
$statusMessage = getLngt("Ein Bearbeitung kann nur nach Auswahl der operativen Einheit bzw. des Objekttyps erfolgen!");
endif;
else :
$execute = false;
$currCscName = getLngt("Am heutigen Tag findet keine Ausbuchung statt!") . "
";
$statusMessage = getLngt("Am heutigen Tag findet keine Ausbuchung statt!");
endif;
if ($debug) :
echo "currCscName = " . $currCscName . "
";
echo "statusMessage = " . $statusMessage . "
";
echo "execute = " . $execute . "
";
endif;
?>