/** * Calculate product net price * * @param \XLite\Model\Product $product Product * @param float $price Price * * @return float */ public function deductTaxFromPrice(\XLite\Model\Product $product, $price) { foreach ($this->getTaxes() as $tax) { $includedZones = $tax->getVATZone() ? array($tax->getVATZone()->getZoneId()) : array(); $included = $tax->getFilteredRate($includedZones, $tax->getVATMembership(), $product->getClasses()); if ($included) { $price -= $included->calculateProductPriceExcludingTax($product, $price); } } return $price; }
/** * Import classes * * @param \XLite\Model\Product $product Product * @param string $data Data * * @return void */ protected function importClasses(\XLite\Model\Product $product, $data) { // Remove old classes foreach ($product->getClasses() as $class) { $class->getProducts()->removeElement($product); } $product->getClasses()->clear(); if ($data) { // Add classes links foreach (explode(';', $data) as $name) { $name = trim($name); $translation = \XLite\Core\Database::getRepo('XLite\\Model\\ProductClassTranslation')->findOneBy(array('name' => $name)); if ($translation) { $class = $translation->getOwner(); } else { $class = new \XLite\Model\ProductClass(); $class->setName($name); \XLite\Core\Database::getEM()->persist($class); } $class->addProducts($product); $product->addClasses($class); } } }