X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fvalidations%2Fentreprises.inc.php;h=671d93f5f902c140305e74916546e5bcacd43fa3;hb=f8a1899eceabb9648adb85071fab66d49d549337;hp=cdb0cc1c88f508716ee916be91b527a7fd175b8d;hpb=8768e5aff0816b1d207c04ef800c12ec62be9496;p=platal.git diff --git a/include/validations/entreprises.inc.php b/include/validations/entreprises.inc.php index cdb0cc1..671d93f 100644 --- a/include/validations/entreprises.inc.php +++ b/include/validations/entreprises.inc.php @@ -27,20 +27,22 @@ class EntrReq extends ProfileValidate public $id; public $name; - public $acronym; - public $url; - public $email; + public $acronym = null; + public $url = null; + public $email = null; public $holdingid = null; - public $NAF_code = null;; + public $NAF_code = null; public $AX_code = null; - public $tel; - public $fax; - public $address; + public $tel = null; + public $fax = null; + public $address = null; public $suggestions; public $rules = 'Si l\'entreprise est déjà présente sous un autre nom dans la liste des suggestions, remplacer son nom par celui-ci avant de valider. Laisser les autres champs tels quels.'; + public $requireAdmin = false; + // }}} // {{{ constructor @@ -101,36 +103,13 @@ class EntrReq extends ProfileValidate protected function handle_editor() { - 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('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'); + foreach (array('name', 'acronym', 'url', 'email', 'NAF_code', 'tel', 'fax', 'address') as $field) { + $this->$field = (Env::t($field) == '' ? null : Env::t($field)); } - 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'); + foreach (array('AX_code', 'holdingid') as $field) { + $this->$field = (Env::i($field) == 0 ? null : Env::i($field)); } + return true; } @@ -139,7 +118,7 @@ class EntrReq extends ProfileValidate protected function _mail_subj() { - return "[Polytechnique.org/Entreprises] Demande d'ajout d'une entreprise : " . $this->name; + return '[Polytechnique.org/Entreprises] Demande d\'ajout d\'une entreprise'; } // }}} @@ -160,15 +139,11 @@ class EntrReq extends ProfileValidate public function commit() { - // 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 'geocoding.inc.php'; - XDB::execute('INSERT INTO profile_job_enum (name, acronym, url, email, holdingid, NAF_code, AX_code) VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?})', $this->name, $this->acronym, $this->url, $this->email, @@ -179,30 +154,14 @@ class EntrReq extends ProfileValidate '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')); + $address = new Address(array('jobid' => $jobid, 'type' => Address::LINK_COMPANY, 'text' => $this->address)); $phone->save(); $fax->save(); - - $gmapsGeocoder = new GMapsGeocoder(); - $address = $gmapsGeocoder->getGeocodedAddress($this->address); - Geocoder::getAreaId($address, 'administrativeArea'); - Geocoder::getAreaId($address, 'subAdministrativeArea'); - Geocoder::getAreaId($address, 'locality'); - XDB::execute("INSERT INTO profile_addresses (jobid, type, id, accuracy, - text, postalText, postalCode, localityId, - subAdministrativeAreaId, administrativeAreaId, - countryId, latitude, longitude, updateTime, - north, south, east, west) - VALUES ({?}, 'hq', 0, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, - {?}, {?}, FROM_UNIXTIME({?}), {?}, {?}, {?}, {?})", - $jobid, $this->address['accuracy'], $this->address['text'], $this->address['postalText'], - $this->address['postalCode'], $this->address['localityId'], - $this->address['subAdministrativeAreaId'], $this->address['administrativeAreaId'], - $this->address['countryId'], $this->address['latitude'], $this->address['longitude'], - $this->address['updateTime'], $this->address['north'], $this->address['south'], - $this->address['east'], $this->address['west']); + $address->save(); } else { $jobid = $res->fetchOneCell(); } + XDB::execute('UPDATE profile_job SET jobid = {?} WHERE pid = {?} AND id = {?}',