Files
votianng/html/tools/updateFDSVehicleAvailability_HTG.php
2026-03-29 10:34:57 +02:00

109 lines
4.5 KiB
PHP

<?php
/*=======================================================================
*
* updateFDSVehicleAvailability.php
*
* Autor: Marc Vollmann
*
=======================================================================*/
include_once ("../include/mcglobal.inc.php");
// include_once ("../include/auth.inc.php");
include_once ("../include/inc_filters.inc.php");
include_once ("../include/inc_vehicle.inc.php");
// Check for authentication access and granted rights
// $usrAccessArray["hq"] = "1";
// authCheckForAccess($hq_id, $usr_id, $emp_id, "1", $customerId, $cscIdRoot, $cscIdActual);
// authCheckEmployeeRights($emp_id, "1", "1");
// Execution-Time for script
set_time_limit(0);
// Activate buffering
ob_start();
// Current day
$numOfDays = 60;
$selDay = getDateTime("day");
$selMonth = getDateTime("month");
$selYear = getDateTime("year");
$hourTimeUnits = 6; // Time units of a hour (e.g. 12 units per 5 minutes <=> 6 units per 10 minutes <=> one hour)
// Generate date array
$dateArray = array();
for ($k = 0; $k < $numOfDays; $k++) :
$dateArray[] = getDateTime("format", array(0,0,0,$selMonth,$selDay + $k,$selYear), "Y-m-d");
endfor;
// Get customers belonging to meta customer
/*
$csIdMetaArray = array("16537", "14975");
$csIdArray = getColVectorFromDB2ArrayByClause("customer", "cs_id", "cs_id_parent IN (" . implode(",", $csIdMetaArray) . ")", "", "", "");
$csIdArrayLen = count($csIdArray);
*/
// Get ALL customers (of ALL headquarters AND ALL mandators) belonging to the "STATIC" groups !!!!
$sqlquery = "SELECT cs.cs_id"
. " FROM customer AS cs, company AS cmp"
. " WHERE (cs.cs_group LIKE '%,101,%' OR cs.cs_group LIKE '%,102,%' OR cs.cs_group LIKE '%,103,%' OR cs.cs_group LIKE '%,104,%' OR cs.cs_group LIKE '%,105,%' OR cs.cs_group LIKE '%,106,%' OR cs.cs_group LIKE '%,107,%' OR cs.cs_group LIKE '%,108,%' OR"
. " cs.cs_group LIKE '%,109,%' OR cs.cs_group LIKE '%,110,%' OR cs.cs_group LIKE '%,111,%' OR cs.cs_group LIKE '%,112,%' OR cs.cs_group LIKE '%,117,%') AND "
. " cmp.cmp_id = cs.cmp_id AND cmp.cmp_comp != 'EXTERN' AND cmp.cmp_visible = '1' AND cs.cs_id_parent != '0' AND NOT isnull(cs.cs_id_parent)";
/*
$sqlquery = "SELECT cs.cs_id"
. " FROM customer AS cs, company AS cmp"
. " WHERE cs.cs_group LIKE '%,117,%' AND cmp.cmp_id = cs.cmp_id AND cmp.cmp_comp != 'EXTERN' AND cmp.cmp_visible = '1' AND cs.cs_id_parent != '0' AND NOT isnull(cs.cs_id_parent)";
*/
$result = $db->query($sqlquery);
if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage());
$csIdArray = array();
while ($row = $result->fetch_assoc()):
$csIdArray[] = $row["cs_id"];
endwhile;
$result->free();
$csIdArrayLen = count($csIdArray);
// Iterate all customers
for ($i = 0; $i < $csIdArrayLen; $i++) :
$csId = $csIdArray[$i];
// Get array of day times of the current customer
$dayTimes = getColVectorFromDB2ArrayByClause("metatype", "mt_sort", "mt_type = 'day_time' AND mt_objtype = 'cs' AND mt_objid = '" . $csId . "'", "", "mt_sort", "");
$dayTimeNames = getColVectorFromDB2ArrayByClause("metatype", "mt_value", "mt_type = 'day_time' AND mt_objtype = 'cs' AND mt_objid = '" . $csId . "'", "", "mt_sort", "");
$dayTimeMappedValues = getColVectorFromDB2ArrayByClause("metatype", "mt_mapped_value", "mt_type = 'day_time' AND mt_objtype = 'cs' AND mt_objid = '" . $csId . "'", "", "mt_sort", "");
$dayTimesLen = count($dayTimes);
// Get the vehicles for the current customer
$crvhList = array();
$sqlquery = getStmtCustomerVehicleRelation("", $csId);
$result = $db->query($sqlquery);
if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage());
while ($row = $result->fetch_assoc()):
$crvhList[] = $row["crvh_id"];
endwhile;
$result->free();
$crvhListLen = count($crvhList);
// Check for each vehicle displayed the existence of entries in "vehicledisposition", "vehicleavailability" and "vehicleavailabilitytimeunits".
// If it does not exist then generate it to handle the drag and dropping the jobs etc.
for ($v = 0; $v < $crvhListLen; $v++) :
$crvhId = $crvhList[$v];
// Iterate the next x days
for ($k = 0; $k < $numOfDays; $k++) :
$retVal = updateVehicleAvailability ($crvhId, $csId, $dateArray[$k]);
echo "CS = " . $csId . " | " . "CRVH = " . $crvhId . " | " . "DAY = " . $dateArray[$k] . " | " . " RET = [" . $retVal . "]";
echo "<br>";
ob_flush(); flush();
endfor;
endfor;
endfor;
// Deactivate buffering and flush data
ob_end_flush();
?>