/** * standard SS method * @param Object - $fields (FieldList) * @return Object - FieldList */ function updateCMSFields(FieldList $fields) { $additionalWhereForDefault = ""; $fields->removeByName("ExcludedFrom"); $fields->removeByName("AdditionalTax"); $tabName = "Root.Tax"; if ($this->owner instanceof ProductVariation) { $fields->addFieldToTab($tabName, new LiteralField("SeeProductForAdditionalTax", _t("GSTTaxModifier.SEE_PARENT", "See parent Product for Additional Tax"))); } else { //additional taxes $additionalOptions = GSTTaxModifierOptions::get()->filter(array("DoesNotApplyToAllProducts" => 1)); if ($additionalOptions->count()) { $additionalOptionsList = $additionalOptions->map()->toArray(); $fields->addFieldToTab($tabName, new CheckboxSetField("AdditionalTax", _t("GSTTaxMofidifier.ADDITIONAL_TAXES", "Additional taxes ..."), $additionalOptionsList)); } } if ($this->owner instanceof ProductVariation) { $fields->addFieldToTab($tabName, new LiteralField("SeeProductForExcludedFrom", _t("GSTTaxModifier.SEE_PARRENT", "See parent product for excluded taxes"))); } else { //excluded options $excludedOptions = GSTTaxModifierOptions::get()->filter(array("DoesNotApplyToAllProducts" => 0)); if ($excludedOptions->count()) { $excludedOptionsList = $excludedOptions->map()->toArray(); $fields->addFieldToTab($tabName, new CheckboxSetField("ExcludedFrom", _t("GSTTaxMofidifier.EXCLUDE_TAXES", "Taxes that do not apply ..."), $excludedOptionsList)); $additionalWhereForDefault = " \"GSTTaxModifierOptions\".\"ID\" NOT IN (" . implode(", ", $excludedOptions->map("ID", "ID")->toArray()) . ")"; } } //default options $defaultOptions = GSTTaxModifierOptions::get()->filter(array("DoesNotApplyToAllProducts" => 0))->where($additionalWhereForDefault); if ($defaultOptions->count()) { $fields->addFieldToTab($tabName, new ReadonlyField("AlwaysApplies", "+ " . implode(", ", $defaultOptions->map()->toArray()) . ".")); } }
private function productswithspecialtax() { $products = Product::get()->where("\"ClassName\" = 'Product'")->sort("RAND()")->limit(2); $taxToAdd = GSTTaxModifierOptions::get()->where("\"Code\" = 'ADD'")->First(); if ($taxToAdd && $products->count()) { foreach ($products as $product) { $additionalTax = $product->AdditionalTax(); $additionalTax->addMany(array($taxToAdd->ID)); } $this->addExamplePages(2, "product with additional taxes (add to cart to see this feature in action)", $products); } /* $products = AnyPriceProductPage::get(); $allStandardTaxes = GSTTaxModifierOptions::get() ->where("\"DoesNotApplyToAllProducts\" = 0"); if($allStandardTaxes && $products->count()) { foreach($products as $product) { $excludedTax = $product->ExcludedFrom(); foreach($allStandardTaxes as $taxToExclude) { $excludedTax->addMany(array($taxToExclude->ID)); } } $this->addExamplePages(2, "product without taxes (add to cart to see this feature in action)", $products); } */ }
/** * Are there Any taxes that do not apply to all products * @return Boolean */ protected function hasExceptionTaxes() { return GSTTaxModifierOptions::get()->filter(array("DoesNotApplyToAllProducts" => 1))->First() ? false : true; }