Harmonize timezones

This commit is contained in:
2019-02-06 18:56:08 +01:00
parent 6a22bd98f2
commit 883aea494d
6 changed files with 116 additions and 64 deletions

View File

@@ -25,7 +25,7 @@ class Project extends PhpObject {
private $sName;
private $sCodeName;
private $asActive;
private $sGeo;
private $asGeo;
public function __construct(Db &$oDb) {
parent::__construct(__CLASS__, Settings::DEBUG);
@@ -68,7 +68,12 @@ class Project extends PhpObject {
return ($sFromTo=='')?$this->asActive:$this->asActive[$sFromTo];
}
public function getTimeZone() {
return $this->asGeo['timezone'];
}
public function getProjects($iProjectId=0) {
$bSpecificProj = ($iProjectId > 0);
$asInfo = array(
'select'=> array(
Db::getId(self::PROJ_TABLE)." AS id",
@@ -82,7 +87,7 @@ class Project extends PhpObject {
),
'from' => self::PROJ_TABLE
);
if($iProjectId > 0) $asInfo['constraint'] = array(Db::getId(self::PROJ_TABLE)=>$iProjectId);
if($bSpecificProj) $asInfo['constraint'] = array(Db::getId(self::PROJ_TABLE)=>$iProjectId);
$asProjects = $this->oDb->selectRows($asInfo, 'codename');
foreach($asProjects as $sCodeName=>&$asProject) {
@@ -94,17 +99,19 @@ class Project extends PhpObject {
$asProject['geofile'] = Spot::addTimestampToFilePath(self::GEO_FOLDER.$asProject['geofile']);
$asProject['codename'] = $sCodeName;
}
return $asProjects;
return $bSpecificProj?$asProject:$asProjects;
}
private function setProjectInfo() {
$asResult = $this->getProjects($this->iProjectId);
$asProject = reset($asResult);
$this->sMode = $asProject['mode'];
$this->asActive = array('from'=>$asProject['active_from'], 'to'=>$asProject['active_to']);
$this->sCodeName = key($asResult);
$this->sName = $asProject['name'];
$this->sGeo = array('file'=>$asProject['geofile'], 'timezone'=>$asProject['timezone']);
if($this->iProjectId > 0) {
$asProject = $this->getProjects($this->iProjectId);
$this->sMode = $asProject['mode'];
$this->asActive = array('from'=>$asProject['active_from'], 'to'=>$asProject['active_to']);
$this->sCodeName = $asProject['codename'];
$this->sName = $asProject['name'];
$this->asGeo = array('file'=>$asProject['geofile'], 'timezone'=>$asProject['timezone']);
}
else $this->addError('Error while setting project: no project ID');
}
}