X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fvalidations%2Fentreprises.inc.php;h=4571738173152df104a36db6beb01b89d0cf7c6b;hb=0b6c8b36e62b950d1b24088e98c4026a54efe9d0;hp=6734855f20ba9e98713da64a8348491854fe028c;hpb=c3d1e6b6f02b31adc59d058899814fea9d046d70;p=platal.git diff --git a/include/validations/entreprises.inc.php b/include/validations/entreprises.inc.php index 6734855..4571738 100644 --- a/include/validations/entreprises.inc.php +++ b/include/validations/entreprises.inc.php @@ -68,12 +68,14 @@ class EntrReq extends ProfileValidate $where .= "name LIKE '%" . $name_array[$i] . "%'"; } } - $res = XDB::iterator('SELECT name - FROM profile_job_enum - WHERE ' . $where); - $this->suggestions = "| "; - while ($sug = $res->next()) { - $this->suggestions .= $sug['name'] . " | "; + if ($where != '') { + $res = XDB::iterator('SELECT name + FROM profile_job_enum + WHERE ' . $where); + $this->suggestions = "| "; + while ($sug = $res->next()) { + $this->suggestions .= $sug['name'] . " | "; + } } } @@ -98,26 +100,37 @@ class EntrReq extends ProfileValidate protected function handle_editor() { - if (Env::has('holdingid')) { - $this->holdingid = Env::t('holdingid'); - } if (Env::has('name')) { $this->name = Env::t('name'); - if (Env::has('acronym')) { - $this->acronym = Env::t('acronym'); - if (Env::has('url')) { - $this->url = Env::t('url'); - if (Env::has('NAF_code')) { - $this->NAF_code = Env::t('NAF_code'); - if (Env::has('AX_code')) { - $this->AX_code = Env::t('AX_code'); - return true; - } - } - } - } } - return false; + if (Env::has('acronym')) { + $this->acronym = Env::t('acronym'); + } + if (Env::has('url')) { + $this->url = Env::t('url'); + } + if (Env::has('email')) { + $this->email = Env::t('email'); + } + if (Env::has('holdingid')) { + $this->holdingid = Env::i('holdingid'); + } + if (Env::has('NAF_code')) { + $this->NAF_code = Env::t('NAF_code'); + } + if (Env::has('AX_code')) { + $this->AX_code = Env::i('AX_code'); + } + if (Env::has('address')) { + $this->address['text'] = Env::t('address'); + } + if (Env::has('tel')) { + $this->tel = Env::t('tel'); + } + if (Env::has('fax')) { + $this->fax = Env::t('fax'); + } + return true; } // }}} @@ -146,14 +159,13 @@ class EntrReq extends ProfileValidate public function commit() { - // TODO: use address and phone classes to update profile_job_enum and profile_phones once they are done. + // TODO: use address update profile_job_enum once it is done. $res = XDB::query('SELECT id FROM profile_job_enum WHERE name = {?}', $this->name); if ($res->numRows() != 1) { - require_once 'profil.func.inc.php'; require_once 'geocoding.inc.php'; XDB::execute('INSERT INTO profile_job_enum (name, acronym, url, email, holdingid, NAF_code, AX_code) @@ -162,14 +174,12 @@ class EntrReq extends ProfileValidate $this->holdingid, $this->NAF_code, $this->AX_code); $jobid = XDB::insertId(); - $display_tel = format_display_number($this->tel, $error_tel); - $display_fax = format_display_number($this->fax, $error_fax); - XDB::execute("INSERT INTO profile_phones (pid, link_type, link_id, tel_id, tel_type, - search_tel, display_tel, pub) - VALUES ({?}, 'hq', 0, 0, 'fixed', {?}, {?}, 'public'), - ({?}, 'hq', 0, 1, 'fax', {?}, {?}, 'public')", - $jobid, format_phone_number($this->tel), $display_tel, - $jobid, format_phone_number($this->fax), $display_fax); + $phone = new Phone(array('link_type' => 'hq', 'link_id' => $jobid, 'id' => 0, + 'type' => 'fixed', 'display' => $this->tel, 'pub' => 'public')); + $fax = new Phone(array('link_type' => 'hq', 'link_id' => $jobid, 'id' => 1, + 'type' => 'fax', 'display' => $this->fax, 'pub' => 'public')); + $phone->save(); + $fax->save(); $gmapsGeocoder = new GMapsGeocoder(); $address = $gmapsGeocoder->getGeocodedAddress($this->address); @@ -191,12 +201,17 @@ class EntrReq extends ProfileValidate $this->address['east'], $this->address['west']); } else { $jobid = $res->fetchOneCell(); - $success = true; } - return XDB::execute('UPDATE profile_job - SET jobid = {?} - WHERE pid = {?} AND id = {?}', - $jobid, $this->profile->id(), $this->id); + XDB::execute('UPDATE profile_job + SET jobid = {?} + WHERE pid = {?} AND id = {?}', + $jobid, $this->profile->id(), $this->id); + if (XDB::affectedRows() == 0) { + return XDB::execute('INSERT INTO profile_job (jobid, pid, id) + VALUES ({?}, {?}, {?})', + $jobid, $this->profile->id(), $this->id); + } + return true; } // }}}