Esempio n. 1
0
 public function update()
 {
     $request = $this->application->getRequest();
     $parser = $this->getParser();
     $response = new LiveCartSimpleXMLElement('<response datetime="' . date('c') . '"></response>');
     $id = $request->get('ID');
     $f = new ARSelectFilter();
     if (intval($id) > 0) {
         $f->mergeCondition(new EqualsCond(new ARFieldHandle('UserAddress', 'ID'), $id));
     } else {
         throw new Exception('Address ID is required');
     }
     $user_address = UserAddress::getInstanceById($id);
     $firstName = $request->get('firstName');
     $lastName = $request->get('lastName');
     $companyName = $request->get('companyName');
     $address1 = $request->get('address1');
     $address2 = $request->get('address2');
     $city = $request->get('city');
     $stateName = $request->get('stateName');
     $stateID = $request->get('stateID');
     $postalCode = $request->get('postalCode');
     $countryID = $request->get('countryID');
     $phone = $request->get('phone');
     if (isset($firstName)) {
         $user_address->setFieldValue('firstName', $firstName);
     }
     if (isset($lastName)) {
         $user_address->setFieldValue('lastName', $lastName);
     }
     if (isset($companyName)) {
         $user_address->setFieldValue('companyName', $companyName);
     }
     if (isset($address1)) {
         $user_address->setFieldValue('address1', $address1);
     }
     if (isset($address2)) {
         $user_address->setFieldValue('address2', $address2);
     }
     if (isset($city)) {
         $user_address->setFieldValue('city', $city);
     }
     if (isset($stateName)) {
         $user_address->setFieldValue('stateName', $stateName);
     }
     if (isset($stateID)) {
         $user_address->state->set(State::getInstanceByID((int) $stateID, true));
     }
     if (isset($postalCode)) {
         $user_address->setFieldValue('postalCode', $postalCode);
     }
     if (isset($countryID)) {
         $user_address->setFieldValue('countryID', $countryID);
     }
     if (isset($phone)) {
         $user_address->setFieldValue('phone', $phone);
     }
     $user_address->save();
     $apiFieldNames = $parser->getApiFieldNames();
     $user_record = ActiveRecordModel::getRecordSetArray('UserAddress', $f);
     while ($address = array_shift($user_record)) {
         $user_address_response = $response->addChild('user_address');
         foreach ($address as $k => $v) {
             if (in_array($k, $apiFieldNames)) {
                 $user_address_response->addChild($k, htmlentities($v));
             }
         }
     }
     return new SimpleXMLResponse($response);
 }