Merge remote branch 'origin/platal-1.0.0'
[platal.git] / include / validations / entreprises.inc.php
index cff4801..63dea2f 100644 (file)
@@ -39,6 +39,7 @@ class EntrReq extends ProfileValidate
     public $address;
 
     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.';
 
     // }}}
     // {{{ constructor
@@ -68,12 +69,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 +101,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 +160,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 +175,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);