/** * Ensure when validation is successful, that no errors are added to the address */ public function testValidateAddressSuccess() { $this->_mockConfig(1); $address = $this->getModelMock('customer/address', ['addError']); $address->expects($this->never())->method('addError'); $event = new Varien_Object(); $event->setAddress($address); $observer = $this->getMock('Varien_Event_Observer', ['getEvent']); $observer->expects($this->any())->method('getEvent')->will($this->returnValue($event)); $validator = $this->getModelMock('ebayenterprise_address/validator', ['validateAddress']); $validator->expects($this->once())->method('validateAddress')->with($this->equalTo($address))->will($this->returnValue(null)); /** @var EbayEnterprise_Address_Model_Observer */ $addressObserver = Mage::getModel('ebayenterprise_address/observer', ['validator' => $validator]); $this->assertNull($addressObserver->validateAddress($observer)); }
/** * Ensure when validation is successful, that no errors are added to the address */ public function testValidateAddressSuccess() { $this->_mockConfig(1); $address = $this->getModelMock('customer/address', array('addError')); $address->expects($this->never())->method('addError'); $event = new Varien_Object(); $event->setAddress($address); $observer = $this->getMock('Varien_Event_Observer', array('getEvent')); $observer->expects($this->any())->method('getEvent')->will($this->returnValue($event)); $validator = $this->getModelMock('ebayenterprise_address/validator', array('validateAddress')); $validator->expects($this->once())->method('validateAddress')->with($this->equalTo($address))->will($this->returnValue(null)); $this->replaceByMock('model', 'ebayenterprise_address/validator', $validator); $addressObserver = Mage::getSingleton('ebayenterprise_address/observer'); $addressObserver->validateAddress($observer); }
public function getPayerInfoFromOrder($order) { $billingAddress = $order->getBillingAddress(); $address = new Varien_Object(); $address->setStreet($billingAddress->getStreet(1)); $address->setNumber($billingAddress->getStreet(2)); $address->setCity($billingAddress->getCity()); $address->setState($billingAddress->getRegionCode()); $address->setCountry('Brasil'); $address->setZipCode(Zend_Filter::filterStatic($billingAddress->getPostcode(), 'Digits')); $payer = new Varien_Object(); $payer->setCpfCnpj($order->getCustomerTaxvat()); $payer->setName($order->getCustomerName()); $payer->setPhonePrefix($this->getPhonePrefix($billingAddress->getTelephone())); $payer->setPhone($this->getPhone($billingAddress->getTelephone())); $payer->setEmail($order->getCustomerEmail()); $payer->setAddress($address); Mage::dispatchEvent('iugu_get_payer_info_from_order_after', array('order' => $order, 'payer_info' => $payer)); return $payer; }
public function getCustomerInfoFromOrder($order) { $billingAddress = $order->getBillingAddress(); $address = new Varien_Object(); $address->setStreet($billingAddress->getStreet(1)); $address->setStreetNumber($billingAddress->getStreet(2)); $address->setComplementary($billingAddress->getStreet(3)); // optional $address->setNeighborhood($billingAddress->getStreet(4)); $address->setZipcode(Zend_Filter::filterStatic($billingAddress->getPostcode(), 'Digits')); $customer = new Varien_Object(); $customer->setName($order->getCustomerName()); $customer->setDocumentNumber($order->getCustomerTaxvat()); $customer->setEmail($order->getCustomerEmail()); $customer->setPhone($this->splitTelephone($billingAddress->getTelephone())); $customer->setSex($this->formatGender($order->getCustomerGender())); // optional $customer->setBornAt($this->formatDob($order->getCustomerDob())); // optional $customer->setAddress($address); Mage::dispatchEvent('pagarme_get_customer_info_from_order_after', array('order' => $order, 'customer_info' => $customer)); return $customer; }
/** * Collect tax totals for quote address. If quote address doesn't have a * postal code or postal code is "-" (OneStepCheckout), no tax is requested * from Avatax. When selling to a country that doesn't require postal code * this could be a problem, but Avatax doesn't support those locations yet. * * @param Mage_Sales_Model_Quote_Address $address * @return Mage_Tax_Model_Sales_Total_Quote */ public function collect(Mage_Sales_Model_Quote_Address $address) { $this->_setAddress($address); parent::collect($address); if ($address->getPostcode() && $address->getPostcode() != '-') { $store = $address->getQuote()->getStore(); /** @var OnePica_AvaTax_Model_Avatax_Estimate $calculator */ $calculator = Mage::getModel('avatax/avatax_estimate'); $address->setTotalAmount($this->getCode(), 0); $address->setBaseTotalAmount($this->getCode(), 0); $address->setTaxAmount(0); $address->setBaseTaxAmount(0); $address->setShippingTaxAmount(0); $address->setBaseShippingTaxAmount(0); //Added check for calculating tax for regions filtered in the admin if ($this->_isAddressActionable($address)) { /** @var Mage_Sales_Model_Quote_Item $item */ foreach ($address->getAllItems() as $item) { $item->setAddress($address); $baseAmount = $calculator->getItemTax($item); $giftBaseTaxTotalAmount = $calculator->getItemGiftTax($item); $giftTaxTotalAmount = $store->convertPrice($giftBaseTaxTotalAmount); $giftBaseTaxAmount = $this->_getDataHelper()->roundUp($giftBaseTaxTotalAmount / $item->getQty(), 2); $giftTaxAmount = $store->convertPrice($giftBaseTaxAmount); $amount = $store->convertPrice($baseAmount); $percent = $calculator->getItemRate($item); $item->setTaxAmount($amount); $item->setBaseTaxAmount($baseAmount); $item->setTaxPercent($percent); $item->setGwBaseTaxAmount($giftBaseTaxAmount); $item->setGwTaxAmount($giftTaxAmount); $item->setPriceInclTax($item->getPrice() + $amount / $item->getQty()); $item->setBasePriceInclTax($item->getBasePrice() + $baseAmount / $item->getQty()); $item->setRowTotalInclTax($item->getRowTotal() + $amount); $item->setBaseRowTotalInclTax($item->getBaseRowTotal() + $baseAmount); if (!$calculator->isProductCalculated($item)) { $this->_addAmount($amount); $this->_addBaseAmount($baseAmount); } $this->_addAmount($giftTaxTotalAmount); $this->_addBaseAmount($giftBaseTaxTotalAmount); } if ($address->getAddressType() == Mage_Sales_Model_Quote_Address::TYPE_SHIPPING || $address->getUseForShipping()) { $shippingItem = new Varien_Object(); $shippingItem->setSku(Mage::helper('avatax')->getShippingSku($store->getId())); $shippingItem->setProductId(Mage::helper('avatax')->getShippingSku($store->getId())); $shippingItem->setAddress($address); $baseShippingTax = $calculator->getItemTax($shippingItem); $shippingTax = $store->convertPrice($baseShippingTax); $shippingAmt = $address->getTotalAmount('shipping'); $baseShippingAmt = $address->getBaseTotalAmount('shipping'); $address->setShippingTaxAmount($shippingTax); $address->setBaseShippingTaxAmount($baseShippingTax); $address->setShippingInclTax($shippingAmt + $shippingTax); $address->setBaseShippingInclTax($baseShippingAmt + $baseShippingTax); $address->setShippingTaxable($shippingTax ? $shippingAmt : 0); $address->setBaseShippingTaxable($baseShippingTax ? $baseShippingAmt : 0); $address->setIsShippingInclTax(false); $this->_addAmount($shippingTax); $this->_addBaseAmount($baseShippingTax); } if ($address->getGwPrice() > 0) { $gwOrderItem = new Varien_Object(); $gwOrderItem->setSku(Mage::helper('avatax')->getGwOrderSku($store->getId())); $gwOrderItem->setProductId(Mage::helper('avatax')->getGwOrderSku($store->getId())); $gwOrderItem->setAddress($address); $baseGwOrderTax = $calculator->getItemTax($gwOrderItem); $gwOrderTax = $store->convertPrice($baseGwOrderTax); $address->setGwBaseTaxAmount($baseGwOrderTax); $address->setGwTaxAmount($gwOrderTax); $this->_addAmount($gwOrderTax); $this->_addBaseAmount($baseGwOrderTax); } if ($address->getGwAddPrintedCard()) { $gwPrintedCardItem = new Varien_Object(); $gwPrintedCardItem->setSku(Mage::helper('avatax')->getGwPrintedCardSku($store->getId())); $gwPrintedCardItem->setProductId(Mage::helper('avatax')->getGwPrintedCardSku($store->getId())); $gwPrintedCardItem->setAddress($address); $baseGwPrintedCardTax = $calculator->getItemTax($gwPrintedCardItem); $gwPrintedCardTax = $store->convertPrice($baseGwPrintedCardTax); $address->setGwPrintedCardBaseTaxAmount($baseGwPrintedCardTax); $address->setGwPrintedCardTaxAmount($gwPrintedCardTax); $this->_addAmount($gwPrintedCardTax); $this->_addBaseAmount($baseGwPrintedCardTax); } } } return $this; }
/** * Apply gift wrapping tax * * @param Mage_Sales_Model_Quote_Address $address * @param Mage_Core_Model_Store|int $store * @param OnePica_AvaTax_Model_Action_Calculator $calculator * @return $this */ protected function _applyGwTax(Mage_Sales_Model_Quote_Address $address, $store, $calculator) { if ($address->getGwPrice() > 0) { $gwOrderItem = new Varien_Object(); $gwOrderItem->setId(Mage::helper('avatax/config')->getGwOrderSku($store->getId())); $gwOrderItem->setProductId(Mage::helper('avatax/config')->getGwOrderSku($store->getId())); $gwOrderItem->setAddress($address); $baseGwOrderTax = $calculator->getItemTax($gwOrderItem); $gwOrderTax = $store->convertPrice($baseGwOrderTax); $address->setGwBaseTaxAmount($baseGwOrderTax); $address->setGwTaxAmount($gwOrderTax); if ($this->_getTaxDataHelper()->priceIncludesTax($store)) { $gwBasePriceAmount = $address->getGwBasePrice() - $baseGwOrderTax; $gwPriceAmount = $store->convertPrice($gwBasePriceAmount); $address->setGwBasePrice($gwBasePriceAmount); $address->setGwPrice($gwPriceAmount); $address->setGrandTotal($address->getGrandTotal() - $gwOrderTax); $address->setBaseGrandTotal($address->getBaseGrandTotal() - $baseGwOrderTax); } $this->_addAmount($gwOrderTax); $this->_addBaseAmount($baseGwOrderTax); } if ($address->getGwAddPrintedCard()) { $gwPrintedCardItem = new Varien_Object(); $gwPrintedCardItem->setId(Mage::helper('avatax/config')->getGwPrintedCardSku($store->getId())); $gwPrintedCardItem->setProductId(Mage::helper('avatax/config')->getGwPrintedCardSku($store->getId())); $gwPrintedCardItem->setAddress($address); $baseGwPrintedCardTax = $calculator->getItemTax($gwPrintedCardItem); $gwPrintedCardTax = $store->convertPrice($baseGwPrintedCardTax); $address->setGwPrintedCardBaseTaxAmount($baseGwPrintedCardTax); $address->setGwPrintedCardTaxAmount($gwPrintedCardTax); if ($this->_getTaxDataHelper()->priceIncludesTax($store)) { $baseGwPrintedCardAmount = $address->getGwCardBasePrice() - $baseGwPrintedCardTax; $gwPrintedCardAmount = $store->convertPrice($baseGwPrintedCardAmount); $address->setGwCardPrice($gwPrintedCardAmount); $address->setGwCardBasePrice($baseGwPrintedCardAmount); $address->setGrandTotal($address->getGrandTotal() - $gwPrintedCardTax); $address->setBaseGrandTotal($address->getBaseGrandTotal() - $baseGwPrintedCardTax); } $this->_addAmount($gwPrintedCardTax); $this->_addBaseAmount($baseGwPrintedCardTax); } return $this; }