/**
  * 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);
 }
Example #3
0
 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;
 }
Example #4
0
 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;
 }
Example #5
0
 /**
  * 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;
 }
Example #6
0
 /**
  * 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;
 }