index 159ddf28b82926ad6b655d70709f6888fad9faa9..44cc74d6768d9a9d3423419967bc5bfd5d52bffe 100755 (executable)
--- a/include/class_opengw.inc
+++ b/include/class_opengw.inc
var $MAY = array( "salutation","firstname","description","degree",
"birthday","sex","street","zip","country","zipcity",
"state","name1","value_string","number","db_status",
- "object_version","is_locked","LocationTeamID","TeamIDis");
+ "object_version","is_locked","LocationTeamID","TeamIDis","password");
var $LastError = "";
var $option = "";
+ var $connected = false;
function ogw($username,$password,$host,$db)
{
$this->ogo = new pgre_sql($username,$password,$host,$db);
- $this->validLocationTeam = $this->ogo->GetLocationTeam();
- $this->validTemplateUser = $this->ogo->GetTemplateUser();
- $this->validTeams = $this->ogo->GetTeams();
+ if($this->ogo->is_connected){
+ $this->validLocationTeam = $this->ogo->GetLocationTeam();
+ $this->validTemplateUser = $this->ogo->GetTemplateUser();
+ $this->validTeams = $this->ogo->GetTeams();
+ $this->connected = true;
+ }else{
+ $this->validLocationTeam = array();//$this->ogo->GetLocationTeam();
+ $this->validTemplateUser = array();//$this->ogo->GetTemplateUser();
+ $this->validTeams = array();//$this->ogo->GetTeams();
+ $this->connected = false;
+ }
}
function SetInfos($infos)
- {
+ {
+ if(isset($infos['name'])) {
+ $infos['name1'] = $infos['name'];
+ }
$this->info = $infos;
- $info['name1'] = $info['name'];
}
- function GetInfos()
- {
- return("NIY");
+ function GetInfos($uid)
+ {
+ $ret = array();
+ $qry = "SELECT is_person,is_account,is_intra_account,is_extra_account,
+ number,owner_id,object_version,company_id,template_user_id,is_locked,
+ name,firstname,description,salutation,login,degree,birthday,sex
+ FROM person WHERE login='".$uid."';";
+ $res = $this->ogo->FetchAllRows($this->ogo->Query($qry));
+ $ret = $res[0];
+
+ $qry = "SELECT street,zip,zipcity,country,state FROM address WHERE company_id = ".$ret['company_id']." limit 1;";
+ $res = $this->ogo->FetchAllRows($this->ogo->Query($qry));
+ $ret = array_merge($ret,$res[0]);
+
+ $qry = "SELECT company_id FROM company_assignment
+ WHERE (sub_company_id=".$ret['company_id'].")
+ AND company_id IN
+ (SELECT company_id FROM team WHERE (is_team=1)
+ AND
+ company_id NOT IN (SELECT company_id FROM team WHERE is_location_team=1));";
+ $res = $this->ogo->FetchAllRows($this->ogo->Query($qry));
+ if(is_array($res)){
+ foreach($res as $r){
+ $ret['TeamIDis'][]=$r['company_id'];
+ }
+ }else{
+ $ret['TeamIDis']=array();
+ }
+
+ $qry = "SELECT value_string from company_value WHERE company_id=".$ret['company_id'].";";
+ $res = $this->ogo->FetchAllRows($this->ogo->Query($qry));
+ $ret = array_merge($ret,$res[0]);
+
+ $qry ="SELECT company_id FROM company_assignment
+ WHERE (sub_company_id=".$ret['company_id'].")
+ AND company_id IN (SELECT company_id FROM team WHERE (is_location_team=1));";
+ $res = $this->ogo->FetchAllRows($this->ogo->Query($qry));
+ $ret['LocationTeamID'] = $res[0]['company_id'];
+
+ return($ret);
}
function Perform($option)
if(($this->option == "EDIT")||($this->option=="ADD")){
/* Static variables */
- $this->info['is_person'] = 1;
- $this->info['is_account'] = 1;
- $this->info['is_intra_account'] = 1;
- $this->info['is_extra_account'] = 0;
- $this->info['owner_id'] = 10000;
- $this->info['is_team'] = 0;
+ if(!isset($this->info['is_person'])){
+ $this->info['is_person'] = 1;
+ }
+
+ if(!isset($this->is_account)){
+ $this->info['is_account'] = 1;
+ }
+
+ if(!isset($this->info['is_intra_account'])){
+ $this->info['is_intra_account'] = 1;
+ }
+
+ if(!isset($this->info['is_extra_account'])){
+ $this->info['is_extra_account'] = 0;
+ }
+
+ if(!isset($this->info['owner_id'])){
+ $this->info['owner_id'] = 10000;
+ }
+
+ if(!isset($this->info['is_team'])){
+ $this->info['is_team'] = 0;
+ }
$this->InfoOK = $this->checkInfos();
$this->LastError="Can't edit entry, entry doesn't exists.";
return(false);
}else{
- $this->info['db_status'] = "edited";
+ $this->info['db_status'] = "updated";
$this->info['object_version'] = $ist[0]['object_version']++;
return($this->EDIT());
}
function CheckExistence()
{
/* Check if thios entry already exists */
- $qry = "SELECT * FROM person WHERE login='".$this->info['login']."';";
+ $qry = "SELECT login,name FROM person WHERE login='".$this->info['login']."';";
$ist = $this->ogo->FetchAllRows($this->ogo->Query($qry));
if($ist){
return(true);
foreach($this->MAY as $name){
if((!isset($this->info[$name]))||(empty($this->info[$name]))){
- $info[$name] = false;
+ $this->info[$name] = false;
}
}
$this->LastError(sprintf("Can't get company id for login %s",$this->info['login']));
return(false);
}else{
+
$company_id = $ist[0]['company_id'];
+
+ $qry = "UPDATE person SET login='SKY".$company_id.$this->info['login']."', is_account=0, is_intra_account=0 WHERE company_id=".$company_id.";";
+ $this->ogo->Query($qry);
+ /*
$this->ogo->Query("DELETE FROM telephone WHERE company_id=".$company_id.";");
$this->ogo->Query("DELETE FROM address WHERE company_id=".$company_id.";");
$this->ogo->Query("DELETE FROM company_info WHERE company_id=".$company_id.";");
$this->ogo->Query("DELETE FROM company_assignment WHERE sub_company_id=".$company_id.";");
$this->ogo->Query("DELETE FROM person WHERE company_id=".$company_id.";");
$this->ogo->Query("DELETE FROM staff WHERE company_id=".$company_id.";");
+ */
return(true);
}
}
$arr = array( "company_id","object_version","owner_id","template_user_id",
"is_person","is_account","is_intra_account","is_extra_account",
"number","description","is_locked","login","name","name","firstname",
- "salutation","degree","birthday","sex","db_status");
+ "salutation","degree","birthday","sex","db_status","password");
$this->info['company_id'] = $this->ogo->gen_id();
- $userID = "OGo".$this->info['company_id'];
+ $this->info['userID'] = "OGo".$this->info['company_id'];
foreach($arr as $attr){
if($attr == "number"){
$add_user[$attr] = $this->info['userID'];
$arr = array( "company_id","object_version","owner_id",
"template_user_id","is_person","is_account","is_intra_account",
"is_extra_account","number","description","is_locked","login","name",
- "firstname","salutation","degree","birthday","sex","db_status");
+ "firstname","salutation","degree","birthday","sex","db_status","password");
$this->info['company_id'] = $ist[0]['company_id'];
$this->info['userID'] = "OGo".$this->info['company_id'];
foreach($arr as $attr){
/*
Create entries for company value
*/
+ $QUERY[] = "DELETE FROM company_value WHERE company_id=".$ist[0]['company_id']." AND attribute='mail1';";
$arr = array("db_status","value_string","attribute","company_id","company_value_id");
$this->info['attribute'] = "email1";
$this->info['company_value_id'] = $this->ogo->gen_id();
foreach($arr as $attr){
$add_company_value[$attr] = $this->info[$attr];
}
- $QUERY[] = gen_syntax($add_company_value,"company_value","EDIT",$ist);
+ $QUERY[] = gen_syntax($add_company_value,"company_value","ADD",false);
/*
(SELECT company_id FROM team WHERE is_location_team=1));";
$arr = array("company_assignment_id","company_id","sub_company_id","db_status");
- foreach($this->info['TeamIDis'] as $TeamID){
- $this->info['company_id'] = $TeamID;
- $this->info['sub_company_id'] = $ist[0]['company_id'];
- $this->info['company_assignment_id']= $this->ogo->gen_id();
- foreach($arr as $attr){
- $add_company_assignment[$attr] = $this->info[$attr];
- }
- $QUERY[] = gen_syntax($add_company_assignment,"company_assignment","ADD",false);
- }
+ if(is_array($this->info['TeamIDis'])){
+ foreach($this->info['TeamIDis'] as $TeamID){
+ $this->info['company_id'] = $TeamID;
+ $this->info['sub_company_id'] = $ist[0]['company_id'];
+ $this->info['company_assignment_id']= $this->ogo->gen_id();
+ $add_company_assignment = array();
+ foreach($arr as $attr){
+ $add_company_assignment[$attr] = $this->info[$attr];
+ }
+ $QUERY[] = gen_syntax($add_company_assignment,"company_assignment","ADD",false);
+ }
+ }
$remove_all = false;
foreach($QUERY as $q ){