Merge remote branch 'origin/platal-1.0.1'
[platal.git] / classes / address.php
index ca1a384..d1f812c 100644 (file)
@@ -102,25 +102,28 @@ class Address
             }
         }
 
-        if ($this->type == self::LINK_PROFILE) {
-            if (!is_null($this->flags)) {
-                $this->flags = new PlFlagSet($this->flags);
-            } else {
-                static $flags = array('current', 'temporary', 'secondary', 'mail');
-
-                $this->flags = new PlFlagSet();
-                foreach ($flags as $flag) {
-                    if (!is_null($this->$flag) && ($this->$flag == 1 || $this->$flag == 'on')) {
-                        $this->flags->addFlag($flag, 1);
-                        $this->$flag = null;
-                    }
-                    $this->flags->addFlag('cedex', (strpos(strtoupper(preg_replace(array("/[0-9,\"'#~:;_\- ]/", "/\r\n/"),
-                                                                                   array('', "\n"), $this->text)), 'CEDEX')) !== false);
+        if (!is_null($this->flags)) {
+            $this->flags = new PlFlagSet($this->flags);
+        } else {
+            static $flags = array('current', 'temporary', 'secondary', 'mail');
+
+            $this->flags = new PlFlagSet();
+            foreach ($flags as $flag) {
+                if (!is_null($this->$flag) && ($this->$flag == 1 || $this->$flag == 'on')) {
+                    $this->flags->addFlag($flag, 1);
+                    $this->$flag = null;
                 }
+                $this->flags->addFlag('cedex', (strpos(strtoupper(preg_replace(array("/[0-9,\"'#~:;_\- ]/", "/\r\n/"),
+                                                                               array('', "\n"), $this->text)), 'CEDEX')) !== false);
             }
         }
     }
 
+    public function setId($id)
+    {
+        $this->id = $id;
+    }
+
     public function phones()
     {
         return $this->phones;
@@ -135,7 +138,7 @@ class Address
 
     public function hasFlag($flag)
     {
-        return $this->flags->hasFlag($flag);
+        return ($this->flags != null && $this->flags->hasFlag($flag));
     }
 
     public function format(array $format = array())
@@ -166,6 +169,9 @@ class Address
                 $mailer->send();
             }
         }
+        if ($this->countryId == '') {
+            $this->countryId = null;
+        }
         $this->geocodeChosen = null;
         $this->phones = Phone::formatFormArray($this->phones, $this->error);
         return !$this->error;
@@ -412,7 +418,7 @@ class AddressIterator implements PlIterator
              LEFT JOIN  geoloc_administrativeareas    AS ga ON (ga.id = pa.administrativeAreaId)
              LEFT JOIN  geoloc_subadministrativeareas AS gs ON (gs.id = pa.subAdministrativeAreaId)
              LEFT JOIN  geoloc_countries              AS gc ON (gc.iso_3166_1_a2 = pa.countryId)
-                 WHERE  ' . implode(' AND ', $where) . '
+                 ' . ((count($where) > 0) ? 'WHERE  ' . implode(' AND ', $where) : '') . '
               ORDER BY  pa.pid, pa.jobid, pa.id';
         $this->dbiter = XDB::iterator($sql);
     }