/**
  * Embed a single address form.
  *
  * @param  string $name
  * @param  string $type
  * @param  array  $options
  * @return void
  */
 protected function setEmbeddedAddressForm($name, $type, $options = array())
 {
     $options['object'] = isset($options['object']) ? $options['object'] : $this->object;
     $options['is_optional'] = isset($options['is_optional']) ? $options['is_optional'] : sfConfig::get('app_rt_account_address_is_optional_for_' . $type, true);
     $address = new rtAddress();
     $address->setType($type);
     $address->setModel('rtGuardUser');
     if (!$this->isNew()) {
         $tmp_address = Doctrine::getTable('rtAddress')->getAddressForObjectAndType($this->getObject(), $type);
         if ($tmp_address) {
             $address = $tmp_address;
         }
         $address->setModelId($this->object->getId());
     }
     $this->embedForm($name, $this->getAddressForm($address, $options));
 }
 /**
  * Add address for order
  *
  * @param integer $order_id
  * @param string $type
  * @return integer
  */
 public function addAddressForOrder($order_id, $type = 'billing')
 {
     $address = new rtAddress();
     $address->setModelId($order_id);
     $address->setModel('rtShopOrder');
     $address->setFirstName('John');
     $address->setLastName('Doe');
     $address->setAddress_1('35 Doe Street');
     $address->setTown('Doetown');
     $address->setState('NSW');
     $address->setCountry('AU');
     $address->setPostcode(2010);
     $address->setPhone('0212345678');
     $address->setType($type);
     $address->save();
     return $address->getId();
 }
 /**
  * Add address for order
  *
  * @param integer $order_id
  * @param string $type
  * @return integer
  */
 public function addAddressForOrder($order_id, $type = 'billing')
 {
     $address = new rtAddress();
     $address->setModelId($order_id);
     $address->setModel('rtShopOrder');
     $address->setFirstName('Konny');
     $address->setLastName('Zurcher');
     $address->setAddress_1('70 Mary Street');
     $address->setTown('Surry Hills');
     $address->setState('NSW');
     $address->setCountry('AU');
     $address->setPostcode(2010);
     $address->setPhone('0212345678');
     $address->setType($type);
     $address->save();
     return $address->getId();
 }
 /**
  * Return an address for a given type.
  * 
  * @param  $type
  * @return rtAddress
  */
 protected function getAddressByType($type)
 {
     $address = Doctrine::getTable('rtAddress')->getAddressForObjectAndType($this->getOrder(), $type);
     if (!$address && $this->getUser()->isAuthenticated()) {
         $user = $this->getUser()->getGuardUser();
         $address = Doctrine::getTable('rtAddress')->getAddressForModelAndIdAndType('rtGuardUser', $user->getId(), $type);
         if ($address) {
             $address = $address->copy(false);
             $address->setFirstName($user->getFirstName());
             $address->setLastName($user->getLastName());
         }
     }
     if (!$address) {
         $address = new rtAddress();
     }
     $address->setModelId($this->getOrder()->getId());
     $address->setType($type);
     $address->setModel('rtShopOrder');
     return $address;
 }