Beispiel #1
0
 /**
  * Generate and return the address label
  * @param array
  * @return string
  */
 public function renderLabel($arrAddress)
 {
     $objAddress = new \Isotope\Model\Address();
     $objAddress->setRow($arrAddress);
     $strBuffer = $objAddress->generateHtml();
     $strBuffer .= '<div style="color:#b3b3b3;margin-top:8px">' . $GLOBALS['TL_LANG']['tl_iso_address']['store_id'][0] . ' ' . $arrAddress['store_id'];
     if ($arrAddress['isDefaultBilling']) {
         $strBuffer .= ', ' . $GLOBALS['TL_LANG']['tl_iso_address']['isDefaultBilling'][0];
     }
     if ($arrAddress['isDefaultShipping']) {
         $strBuffer .= ', ' . $GLOBALS['TL_LANG']['tl_iso_address']['isDefaultShipping'][0];
     }
     $strBuffer .= '</div>';
     return $strBuffer;
 }
Beispiel #2
0
 /**
  * Make sure the addresses belong to this collection only, so they will never be modified
  */
 protected function createPrivateAddresses()
 {
     $this->ensureNotLocked();
     if (!$this->id) {
         throw new \UnderflowException('Product collection must be saved before creating unique addresses.');
     }
     $objBillingAddress = $this->getBillingAddress();
     $objShippingAddress = $this->getShippingAddress();
     // Store address in address book
     if ($this->iso_addToAddressbook && $this->member > 0) {
         if (null !== $objBillingAddress && $objBillingAddress->ptable != \MemberModel::getTable()) {
             $objAddress = clone $objBillingAddress;
             $objAddress->pid = $this->member;
             $objAddress->tstamp = time();
             $objAddress->ptable = \MemberModel::getTable();
             $objAddress->store_id = $this->store_id;
             $objAddress->save();
             $this->updateDefaultAddress($objAddress);
         }
         if (null !== $objBillingAddress && null !== $objShippingAddress && $objBillingAddress->id != $objShippingAddress->id && $objShippingAddress->ptable != \MemberModel::getTable()) {
             $objAddress = clone $objShippingAddress;
             $objAddress->pid = $this->member;
             $objAddress->tstamp = time();
             $objAddress->ptable = \MemberModel::getTable();
             $objAddress->store_id = $this->store_id;
             $objAddress->save();
             $this->updateDefaultAddress($objAddress);
         }
     }
     /** @type Config $config */
     $config = $this->getRelated('config_id');
     $billingFields = null === $config ? array() : $config->getBillingFields();
     $shippingFields = null === $config ? array() : $config->getShippingFields();
     if (null !== $objBillingAddress && ($objBillingAddress->ptable != static::$strTable || $objBillingAddress->pid != $this->id)) {
         $arrData = array_intersect_key($objBillingAddress->row(), array_flip($billingFields));
         $objNew = new Address();
         $objNew->setRow($arrData);
         $objNew->pid = $this->id;
         $objNew->tstamp = time();
         $objNew->ptable = static::$strTable;
         $objNew->store_id = $this->store_id;
         $objNew->save();
         $this->setBillingAddress($objNew);
         if (null !== $objShippingAddress && $objBillingAddress->id == $objShippingAddress->id) {
             $this->setShippingAddress($objNew);
             // Stop here, we do not need to check shipping address
             return;
         }
     }
     if (null !== $objShippingAddress && ($objShippingAddress->ptable != static::$strTable || $objShippingAddress->pid != $this->id)) {
         $arrData = array_intersect_key($objShippingAddress->row(), array_flip($shippingFields));
         $objNew = new Address();
         $objNew->setRow($arrData);
         $objNew->pid = $this->id;
         $objNew->tstamp = time();
         $objNew->ptable = static::$strTable;
         $objNew->store_id = $this->store_id;
         $objNew->save();
         $this->setShippingAddress($objNew);
     }
 }
Beispiel #3
0
 /**
  * Create a new address for a member and automatically set default properties
  * @param   int
  * @param   array|null
  * @return  Address
  */
 public static function createForMember($intMember, $arrFill = null)
 {
     $objAddress = new Address();
     $arrData = array('pid' => $intMember, 'ptable' => 'tl_member', 'tstamp' => time(), 'store_id' => Isotope::getCart()->store_id);
     if (!empty($arrFill) && is_array($arrFill) && ($objMember = \MemberModel::findByPk($intMember)) !== null) {
         $arrData = array_intersect_key(array_merge($objMember->row(), $arrData, array('street_1' => $objMember->street, 'subdivision' => strtoupper($objMember->country . '-' . $objMember->state))), array_flip($arrFill));
     }
     $objAddress->setRow($arrData);
     return $objAddress;
 }