Exemplo n.º 1
0
 /**
  * doActionAdd
  *
  * @return void
  */
 protected function doActionAdd()
 {
     $fields = array('country_code', 'code', 'state');
     $postData = \XLite\Core\Request::getInstance()->getData();
     foreach ($postData as $k => $v) {
         if (in_array($k, $fields)) {
             $postData[$k] = trim($v);
         }
     }
     $country = \XLite\Core\Database::getRepo('XLite\\Model\\Country')->find($postData['country_code']);
     if (!$country) {
         $this->set('valid', false);
     } elseif (empty($postData['code'])) {
         $this->set('valid', false);
     } elseif (empty($postData['state'])) {
         $this->set('valid', false);
     } else {
         $found = false;
         foreach ($country->getStates() as $s) {
             if ($s->getCode() == $postData['code'] || $s->getState() == $postData['state']) {
                 $found = true;
                 break;
             }
         }
         if ($found) {
             $this->set('valid', false);
         } else {
             $state = new \XLite\Model\State();
             $state->map($postData);
             $state->country = $country;
             \XLite\Core\Database::getEM()->persist($state);
             \XLite\Core\Database::getEM()->flush();
             \XLite\Core\Database::getRepo('XLite\\Model\\Country')->cleanCache();
         }
     }
 }