From 4d7d27fc5c01f66e772a25cad7c1a7d33ea7bf43 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Sun, 8 Mar 2009 18:39:14 +0100 Subject: [PATCH] Adds address for entreprise. --- include/validations/entreprises.inc.php | 23 +++++++++++++++++++---- modules/profile/jobs.inc.php | 11 +++++++++-- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/include/validations/entreprises.inc.php b/include/validations/entreprises.inc.php index 635173d..8853164 100644 --- a/include/validations/entreprises.inc.php +++ b/include/validations/entreprises.inc.php @@ -36,14 +36,14 @@ class EntrReq extends Validate public $tel; public $fax; + public $address; public $suggestions; - //TODO: addresses // }}} // {{{ constructor - public function __construct(User &$_user, $_id, $_name, $_acronym, $_url, $_email, $_tel, $_fax, $_stamp = 0) + public function __construct(User &$_user, $_id, $_name, $_acronym, $_url, $_email, $_tel, $_fax, $_address, $_stamp = 0) { parent::__construct($_user, false, 'entreprise', $_stamp); $this->id = $_id; @@ -53,6 +53,7 @@ class EntrReq extends Validate $this->email = $_email; $this->tel = $_tel; $this->fax = $_fax; + $this->address = $_address; $_name = preg_replace('/[^0-9a-z]/i', ' ', strtolower(replace_accent($_name))); $name = explode(" ", $_name); @@ -151,7 +152,8 @@ class EntrReq extends Validate WHERE name = {?}', $this->name); if ($res->numRows() != 1) { - require_once("profil.func.inc.php"); + 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) VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?})', @@ -159,13 +161,26 @@ class EntrReq extends Validate $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); + $display_fax = format_display_number($this->fax, $error_fax); XDB::execute('INSERT INTO profile_phones (uid, link_type, link_id, tel_id, tel_type, search_tel, display_tel, pub) VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}), ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})', $jobid, 'hq', $this->id, 0, 'fixed', format_phone_number($this->tel), $display_tel, 'public', $jobid, 'hq', $this->id, 1, 'fax', format_phone_number($this->fax), $display_fax, 'public'); + 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']); } else { $jobid = $res->fetchOneCell(); $success = true; diff --git a/modules/profile/jobs.inc.php b/modules/profile/jobs.inc.php index 2d03924..0ee5d3a 100644 --- a/modules/profile/jobs.inc.php +++ b/modules/profile/jobs.inc.php @@ -83,7 +83,13 @@ class ProfileJob extends ProfileGeocoding $job['name']); if ($res->numRows() != 1) { $user = S::user(); - $req = new EntrReq($user, $jobid, $job['name'], $job['hq_²acronym'], $job['hq_url'], $job['hq_email'], $job['hq_fixed'], $job['hq_fax']); + $this->geocodeAddress($job['hq_address'], $s); + if (!$s) { + $gmapsGeocoder = new GMapsGeocoder(); + $job['hq_address'] = $gmapsGeocoder->stripGeocodingFromAddress($job['hq_address']); + } + $req = new EntrReq($user, $jobid, $job['name'], $job['hq_acronym'], $job['hq_url'], + $job['hq_email'], $job['hq_fixed'], $job['hq_fax'], $job['hq_address']); $req->submit(); $job['jobid'] = null; } else { @@ -216,7 +222,8 @@ class ProfileJobs extends ProfilePage FROM profile_job AS j LEFT JOIN profile_job_enum AS je ON (j.jobid = je.id) LEFT JOIN profile_job_subsubsector_enum AS s ON (s.id = j.subsubsectorid) - LEFT JOIN profile_addresses AS aw ON (aw.pid = j.uid AND aw.type = 'job') + LEFT JOIN profile_addresses AS aw ON (aw.pid = j.uid AND aw.type = 'job' + AND aw.id = j.id) LEFT JOIN profile_addresses AS ah ON (ah.jobid = j.jobid AND ah.type = 'hq') WHERE j.uid = {?} ORDER BY j.id", -- 2.1.4