1. Import
This commit is contained in:
112
html/include/cron_vht_dispo_days.php
Normal file
112
html/include/cron_vht_dispo_days.php
Normal file
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
/*=======================================================================
|
||||
*
|
||||
* cron_vht_dispo_days.php
|
||||
*
|
||||
* Autor: Marc Vollmann
|
||||
*
|
||||
=======================================================================*/
|
||||
|
||||
error_reporting(E_ALL ^ (E_DEPRECATED | E_NOTICE));
|
||||
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);
|
||||
|
||||
// Current day
|
||||
$numOfDays = 120;
|
||||
$selDay = getDateTime("day");
|
||||
$selMonth = getDateTime("month");
|
||||
$selYear = getDateTime("year");
|
||||
|
||||
// Hours per day
|
||||
/*
|
||||
$hours = getParameterValue("0", "DISPOSITION_HOURS", "0");
|
||||
if ($hours == "" || !is_numeric($hours)) :
|
||||
$hours = 23;
|
||||
endif;
|
||||
*/
|
||||
|
||||
// Time units of a hour (e.g. 12 units per 5 minutes <=> 6 units per 10 minutes <=> one hour)
|
||||
$hourTimeUnits = getParameterValue("0", "DISPOSITION_HOUR_TIME_UNITS", "0");
|
||||
if ($hourTimeUnits == "" || !is_numeric($hourTimeUnits)) :
|
||||
$hourTimeUnits = 6;
|
||||
endif;
|
||||
|
||||
|
||||
// Remove all entries older than a week
|
||||
$deleteToDate = getDateTime("format", array(0,0,0,$selMonth,$selDay - 30,$selYear), "Y-m-d");
|
||||
deleteStmt("vehicleavailability","vha_day < '" . $deleteToDate . "'");
|
||||
$vhaIdMin = getMinOfField("vehicleavailability", "vha_id", "");
|
||||
deleteStmt("vehicleavailabilitytimeunits","vha_id < '" . $vhaIdMin . "'");
|
||||
deleteStmt("vehicledisposition","LEFT(vhd_timeslot, 10) < '" . $deleteToDate . "'");
|
||||
|
||||
|
||||
// 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 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 '%,1,%' OR cs.cs_group LIKE '%,2,%' OR cs.cs_group LIKE '%,3,%' OR cs.cs_group LIKE '%,4,%' OR cs.cs_group LIKE '%,5,%' OR cs.cs_group LIKE '%,6,%' OR cs.cs_group LIKE '%,7,%' OR cs.cs_group LIKE '%,8,%' OR cs.cs_group LIKE '%,9,%') 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++) :
|
||||
|
||||
if (!existsEntry("vehicledisposition",array("crvh_id",$crvhId,"LEFT(vhd_timeslot, 10)",$dateArray[$k]))) :
|
||||
// Generate all new timeslot entries for the vehicle for the specified day
|
||||
generatePersistentTimeslots($crvhId, $dateArray[$k], $hourTimeUnits, $csId);
|
||||
endif;
|
||||
endfor;
|
||||
endfor;
|
||||
endfor;
|
||||
?>
|
||||
Reference in New Issue
Block a user