예제 #1
0
파일: Tax.php 프로젝트: kingsj/core
 /**
  * Get shipping tax rates 
  * 
  * @param \XLite\Model\Shipping\Rate $rate       Shipping rate
  * @param array                      $zones      Zones list
  * @param \XLite\Model\Membership    $membership Membership OPTIONAL
  *  
  * @return void
  */
 protected function getShippingTaxRates(\XLite\Model\Shipping\Rate $rate, array $zones, \XLite\Model\Membership $membership = null)
 {
     $method = $rate->getMethod();
     $taxes = array();
     $price = $rate->getTaxableBasis();
     foreach ($this->getTaxes() as $tax) {
         $includedZones = $tax->getVATZone() ? array($tax->getVATZone()->getZoneId()) : array();
         $included = $tax->getFilteredRate($includedZones, $tax->getVATMembership(), $method->getClasses());
         $r = $tax->getFilteredRate($zones, $membership, $method->getClasses());
         if ($included) {
             $price -= $included->calculateValueExcludingTax($price);
         }
         if ($r) {
             $taxes[$tax->getId()] = array('rate' => $r, 'base' => $price);
         }
     }
     return $taxes;
 }