本文整理汇总了PHP中Mage_Customer_Model_Address_Abstract::getQuote方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Customer_Model_Address_Abstract::getQuote方法的具体用法?PHP Mage_Customer_Model_Address_Abstract::getQuote怎么用?PHP Mage_Customer_Model_Address_Abstract::getQuote使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Customer_Model_Address_Abstract
的用法示例。
在下文中一共展示了Mage_Customer_Model_Address_Abstract::getQuote方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: validate
/**
* Validates the address with the AvaTax validation API.
* Returns true on success and an array with an error on failure.
*
* @return array|bool
* @throws OnePica_AvaTax_Model_Avatax_Address_Exception
*/
public function validate()
{
if (!$this->_mageAddress) {
throw new OnePica_AvaTax_Model_Avatax_Address_Exception($this->__('An address must be set before validation.'));
}
/** @var Mage_Sales_Model_Quote $quote */
$quote = $this->_mageAddress->getQuote();
$isAddressValidationOn = $this->_getDataHelper()->isAddressValidationOn($this->_mageAddress, $this->_storeId);
$isAddressNormalizationOn = $this->_getDataHelper()->isAddressNormalizationOn($this->_mageAddress, $this->_storeId);
$isAddressActionable = $this->_getDataHelper()->isAddressActionable($this->_mageAddress, $quote->getStoreId());
//if there is no use cases for AvaTax services, return address as valid without doing a lookup
if (!$isAddressValidationOn && !$isAddressNormalizationOn && !$isAddressActionable) {
return true;
}
//lookup in AvaTax (with caching)
$key = $this->_mageAddress->getCacheHashKey();
if (array_key_exists($key, $this->_cache)) {
$result = unserialize($this->_cache[$key]);
} elseif ($this->_mageAddress->getPostcode() && $this->_mageAddress->getPostcode() != '-') {
$checkFieldsResult = $this->_checkFields();
if ($checkFieldsResult) {
return $checkFieldsResult;
}
$result = $this->_sendAddressValidationRequest();
$this->_cache[$key] = serialize($result);
} else {
$errors = array();
$errors[] = $this->__('Invalid ZIP/Postal Code.');
return $errors;
}
$this->_addressNormalization($isAddressNormalizationOn, $result);
$addressValidationResult = $this->_addressValidation($isAddressValidationOn, $isAddressActionable, $result);
if ($addressValidationResult) {
return $addressValidationResult;
}
return true;
}
示例2: getProductWeeeAttributes
/**
* Get Weee amounts associated with a product
*
* @param Mage_Catalog_Model_Product $product
* @param Mage_Customer_Model_Address_Abstract $shipping
* @param Mage_Customer_Model_Address_Abstract $billing
* @param mixed $website
* @param boolean $calculateTax
* @param boolean $ignoreDiscount
* @return array|\Varien_Object
*/
public function getProductWeeeAttributes($product, $shipping = null, $billing = null, $website = null, $calculateTax = null, $ignoreDiscount = false)
{
$result = array();
$allWeee = $this->getWeeeTaxAttributeCodes();
if (!$allWeee) {
return $result;
}
$websiteId = Mage::app()->getWebsite($website)->getId();
$store = Mage::app()->getWebsite($website)->getDefaultGroup()->getDefaultStore();
$customer = null;
if ($shipping) {
$customerTaxClass = $shipping->getQuote()->getCustomerTaxClassId();
$customer = $shipping->getQuote()->getCustomer();
} else {
$customerTaxClass = null;
}
$calculator = Mage::getModel('tax/calculation');
if ($customer) {
$calculator->setCustomer($customer);
}
$rateRequest = $calculator->getRateRequest($shipping, $billing, $customerTaxClass, $store);
$currentPercent = $product->getTaxPercent();
if (!$currentPercent) {
$currentPercent = Mage::getSingleton('tax/calculation')->getRate($rateRequest->setProductClassId($product->getTaxClassId()));
}
$discountPercent = 0;
if (!$ignoreDiscount && Mage::helper('weee')->isDiscounted($store)) {
$discountPercent = $this->_getDiscountPercentForProduct($product);
}
$productAttributes = $product->getTypeInstance(true)->getSetAttributes($product);
foreach ($productAttributes as $code => $attribute) {
if (in_array($code, $allWeee)) {
$attributeSelect = $this->getResource()->getReadConnection()->select();
$attributeSelect->from($this->getResource()->getTable('weee/tax'), 'value')->where('attribute_id = ?', (int) $attribute->getId())->where('website_id IN(?)', array($websiteId, 0))->where('country = ?', $rateRequest->getCountryId())->where('state IN(?)', array($rateRequest->getRegionId(), '*'))->where('entity_id = ?', (int) $product->getId())->limit(1);
$order = array('state ' . Varien_Db_Select::SQL_DESC, 'website_id ' . Varien_Db_Select::SQL_DESC);
$attributeSelect->order($order);
$value = $this->getResource()->getReadConnection()->fetchOne($attributeSelect);
if ($value) {
if ($discountPercent) {
$value = Mage::app()->getStore()->roundPrice($value - $value * $discountPercent / 100);
}
$taxAmount = 0;
$amount = $value;
if ($calculateTax && Mage::helper('weee')->isTaxable($store)) {
if ($this->_taxHelper->isCrossBorderTradeEnabled($store)) {
$defaultPercent = $currentPercent;
} else {
$defaultRateRequest = $calculator->getDefaultRateRequest($store);
$defaultPercent = Mage::getModel('tax/calculation')->getRate($defaultRateRequest->setProductClassId($product->getTaxClassId()));
}
if (Mage::helper('weee')->isTaxIncluded($store)) {
$taxAmount = Mage::app()->getStore()->roundPrice($value / (100 + $defaultPercent) * $currentPercent);
$amount = $amount - $taxAmount;
} else {
$appliedRates = Mage::getModel('tax/calculation')->getAppliedRates($rateRequest);
if (count($appliedRates) > 1) {
$taxAmount = 0;
foreach ($appliedRates as $appliedRate) {
$taxRate = $appliedRate['percent'];
$taxAmount += Mage::app()->getStore()->roundPrice($value * $taxRate / 100);
}
} else {
$taxAmount = Mage::app()->getStore()->roundPrice($value * $currentPercent / 100);
}
}
}
$one = new Varien_Object();
$one->setName(Mage::helper('catalog')->__($attribute->getFrontend()->getLabel()))->setAmount($amount)->setTaxAmount($taxAmount)->setCode($attribute->getAttributeCode());
$result[] = $one;
}
}
}
return $result;
}
示例3: validate
/**
* Validates the address with the AvaTax validation API.
* Returns true on success and an array with an error on failure.
*
* @return array|bool
* @throws OnePica_AvaTax_Model_Avatax_Address_Exception
*/
public function validate()
{
if (!$this->_mageAddress) {
throw new OnePica_AvaTax_Model_Avatax_Address_Exception($this->__('An address must be set before validation.'));
}
/** @var OnePica_AvaTax_Model_Config $config */
$config = Mage::getSingleton('avatax/config')->init($this->_storeId);
/** @var Mage_Sales_Model_Quote $quote */
$quote = $this->_mageAddress->getQuote();
$isAddressValidationOn = $this->_getDataHelper()->isAddressValidationOn($this->_mageAddress, $this->_storeId);
$isAddressNormalizationOn = $this->_getDataHelper()->isAddressNormalizationOn($this->_mageAddress, $this->_storeId);
$isAddressActionable = $this->_getDataHelper()->isAddressActionable($this->_mageAddress, $quote->getStoreId());
//if there is no use cases for AvaTax services, return address as valid without doing a lookup
if (!$isAddressValidationOn && !$isAddressNormalizationOn && !$isAddressActionable) {
return true;
}
//lookup in AvaTax (with caching)
$key = $this->_mageAddress->getCacheHashKey();
if (array_key_exists($key, $this->_cache)) {
$result = unserialize($this->_cache[$key]);
} elseif ($this->_mageAddress->getPostcode() && $this->_mageAddress->getPostcode() != '-') {
$session = Mage::getSingleton('checkout/session');
if ($session->getPostType() == 'onepage') {
$requiredFields = explode(",", $this->getHelper()->getFieldRequiredList());
$fieldRules = explode(",", $this->getHelper()->getFieldRule());
foreach ($requiredFields as $field) {
$requiredFlag = 0;
foreach ($fieldRules as $rule) {
if (preg_match("/street\\d/", $field)) {
$field = "street";
}
if ($field == "country") {
$field = "country_id";
}
if ($this->_mageAddress->getData($field) == $rule || !$this->_mageAddress->getData($field)) {
$requiredFlag = 1;
}
}
if ($requiredFlag) {
$errors = array();
$errors[] = $this->__('Invalid ') . $this->__($field);
return $errors;
}
}
}
$client = $config->getAddressConnection();
$request = new ValidateRequest($this->_requestAddress, TextCase::$Mixed, 0);
$request->setTaxability(true);
$result = $client->Validate($request);
$this->_log(OnePica_AvaTax_Model_Source_Logtype::VALIDATE, $request, $result, $this->_storeId, $config->getParams());
$this->_cache[$key] = serialize($result);
} else {
$errors = array();
$errors[] = $this->__('Invalid ZIP/Postal Code.');
return $errors;
}
//normalization
if ($isAddressNormalizationOn && $result->getResultCode() == SeverityLevel::$Success) {
$responseAddress = $result->getValidAddresses();
$responseAddress = array_pop($responseAddress);
if ($responseAddress instanceof ValidAddress) {
$this->_responseAddress = $responseAddress;
$this->_convertResponseAddress();
} else {
throw new OnePica_AvaTax_Model_Avatax_Address_Exception($this->__('Invalid response address type.'));
}
}
//validation
if ($isAddressValidationOn == 1) {
if ($result->getResultCode() == SeverityLevel::$Success) {
$this->_mageAddress->setAddressValidated(true);
return true;
} else {
$errors = array();
foreach ($result->getMessages() as $message) {
$errors[] = $this->__($message->getSummary());
}
return $errors;
}
} elseif ($isAddressValidationOn == 2) {
$this->_mageAddress->setAddressValidated(true);
if ($result->getResultCode() == SeverityLevel::$Success) {
return true;
} else {
if (!$this->_mageAddress->getAddressNotified()) {
$this->_mageAddress->setAddressNotified(true);
foreach ($result->getMessages() as $message) {
Mage::getSingleton('core/session')->addNotice($this->__($message->getSummary()));
}
}
return true;
}
//a valid address isn't required, but Avalara has to say there is
//.........这里部分代码省略.........
示例4: setAddress
public function setAddress(Mage_Customer_Model_Address_Abstract $address)
{
$this->_storeId = $address->getQuote()->getStore()->getId();
$this->_magentoAddress = $address;
return $this->_ATSetupAddress();
}