Merge remote branch 'origin/platal-1.0.0'
[platal.git] / include / validations / entreprises.inc.php
index 6becf7a..47e6a02 100644 (file)
@@ -21,7 +21,7 @@
 
 // {{{ class EntrReq
 
-class EntrReq extends Validate
+class EntrReq extends ProfileValidate
 {
     // {{{ properties
 
@@ -43,9 +43,9 @@ class EntrReq extends Validate
     // }}}
     // {{{ constructor
 
-    public function __construct(User &$_user, $_id, $_name, $_acronym, $_url, $_email, $_tel, $_fax, $_address, $_stamp = 0)
+    public function __construct(User &$_user, Profile &$_profile, $_id, $_name, $_acronym, $_url, $_email, $_tel, $_fax, $_address, $_stamp = 0)
     {
-        parent::__construct($_user, false, 'entreprise', $_stamp);
+        parent::__construct($_user, $_profile, false, 'entreprise', $_stamp);
         $this->id       = $_id;
         $this->name     = $_name;
         $this->acronym  = $_acronym;
@@ -68,12 +68,14 @@ class EntrReq extends Validate
                 $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 Validate
 
     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 = trim(Env::v('holdingid'));
+            $this->holdingid = Env::i('holdingid');
         }
-        if (Env::has('name')) {
-            $this->name = trim(Env::v('name'));
-            if (Env::has('acronym')) {
-                $this->acronym = trim(Env::v('acronym'));
-                if (Env::has('url')) {
-                    $this->url = trim(Env::v('url'));
-                    if (Env::has('NAF_code')) {
-                        $this->NAF_code = trim(Env::v('NAF_code'));
-                        if (Env::has('AX_code')) {
-                            $this->AX_code = trim(Env::v('AX_code'));
-                            return true;
-                        }
-                    }
-                }
-            }
+        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');
         }
-        return false;
+        if (Env::has('tel')) {
+            $this->tel = Env::t('tel');
+        }
+        if (Env::has('fax')) {
+            $this->fax = Env::t('fax');
+        }
+        return true;
     }
 
     // }}}
@@ -191,12 +204,17 @@ class EntrReq extends Validate
                          $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->user->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;
     }
 
     // }}}