/**
  * customizes the backends fields, mainly for ModelAdmin
  * 
  * @param array $params configuration parameters
  *
  * @return FieldList the fields for the backend
  * 
  * @author Roland Lehmann <*****@*****.**>, Sebastian Diel <*****@*****.**>
  * @since 26.10.2012
  */
 public function getCMSFields($params = null)
 {
     $fields = parent::getCMSFields(array_merge(array('fieldClasses' => array('amount' => 'SilvercartMoneyField')), (array) $params));
     SilvercartTax::presetDropdownWithDefault($fields->dataFieldByName('SilvercartTaxID'), $this);
     $fieldGroup = new SilvercartFieldGroup('handlingCostGroup', '', $fields);
     $fieldGroup->push($fields->dataFieldByName('amount'));
     $fieldGroup->pushAndBreak($fields->dataFieldByName('SilvercartTaxID'));
     $fields->addFieldToTab('Root.Main', $fieldGroup);
     return $fields;
 }
 /**
  * Adds or modifies the fields for the Prices tab
  *
  * @param FieldList $fields FieldList to add fields to
  * 
  * @return void
  */
 public function getFieldsForPrices($fields)
 {
     SilvercartTax::presetDropdownWithDefault($fields->dataFieldByName('SilvercartTaxID'), $this);
     $pricesGroup = new SilvercartFieldGroup('PricesGroup', '', $fields);
     $pricesGroup->push($fields->dataFieldByName('PriceGross'));
     $pricesGroup->push($fields->dataFieldByName('PriceNet'));
     $pricesGroup->push($fields->dataFieldByName('MSRPrice'));
     $pricesGroup->push($fields->dataFieldByName('PurchasePrice'));
     $pricesGroup->push($fields->dataFieldByName('SilvercartTaxID'));
     $fields->insertAfter($pricesGroup, 'ProductNumberGroup');
 }
 /**
  * Customizes the backends fields, mainly for ModelAdmin
  *
  * @return FieldList the fields for the backend
  * 
  * @author Roland Lehmann <*****@*****.**>, Sebastian Diel <*****@*****.**>
  * @since 13.02.2013
  */
 public function getCMSFields()
 {
     $this->getCMSFieldsIsCalled = true;
     $fields = parent::getCMSFields();
     $postPricingField = $fields->dataFieldByName('PostPricing');
     $postPricingField->setTitle($postPricingField->Title() . ' (' . $this->fieldLabel('PostPricingInfo') . ')');
     SilvercartTax::presetDropdownWithDefault($fields->dataFieldByName('SilvercartTaxID'), $this);
     $fieldGroup = new SilvercartFieldGroup('ShippingFeeGroup', '', $fields);
     $fieldGroup->push($fields->dataFieldByName('MaximumWeight'));
     $fieldGroup->pushAndBreak($fields->dataFieldByName('UnlimitedWeight'));
     $fieldGroup->push($fields->dataFieldByName('Price'));
     $fieldGroup->pushAndBreak($fields->dataFieldByName('SilvercartTaxID'));
     $fieldGroup->pushAndBreak($postPricingField);
     // only the carriers zones must be selectable
     $leftJoinTable = 'SilvercartZone_SilvercartCarriers';
     $leftJoinOn = '"SilvercartZone"."ID" = "SilvercartZone_SilvercartCarriers"."SilvercartZoneID"';
     $where = sprintf("\"SilvercartZone_SilvercartCarriers\".\"SilvercartCarrierID\" = %s", $this->SilvercartShippingMethod()->SilvercartCarrier()->ID);
     $zones = SilvercartZone::get()->leftJoin($leftJoinTable, $leftJoinOn)->where($where);
     if ($zones->exists()) {
         $zonesMap = $zones->map('ID', 'Title');
         $zonesField = new DropdownField('SilvercartZoneID', _t('SilvercartShippingFee.ZONE_WITH_DESCRIPTION', 'zone (only carrier\'s zones available)'), $zonesMap->toArray());
         $fieldGroup->push($zonesField);
     }
     $fieldGroup->breakAndPush($fields->dataFieldByName('freeOfShippingCostsDisabled'));
     $fieldGroup->breakAndPush($fields->dataFieldByName('freeOfShippingCostsFrom'));
     $fields->dataFieldByName('DeliveryTimeMin')->setRightTitle($this->fieldLabel('DeliveryTimeMinDesc'));
     $fields->dataFieldByName('DeliveryTimeMax')->setRightTitle($this->fieldLabel('DeliveryTimeMaxDesc'));
     $fields->dataFieldByName('DeliveryTimeText')->setRightTitle($this->fieldLabel('DeliveryTimeTextDesc'));
     $parentDeliveryTime = '';
     if ($this->SilvercartShippingMethod()->exists()) {
         $parentDeliveryTime = '<br/>(' . SilvercartShippingMethod::get_delivery_time($this->SilvercartShippingMethod(), true) . ')';
     }
     $fieldGroup->pushAndBreak(new LiteralField('DeliveryTimeHint', '<strong>' . $this->fieldLabel('DeliveryTimeHint') . $parentDeliveryTime . '</strong>'));
     $fieldGroup->push($fields->dataFieldByName('DeliveryTimeMin'));
     $fieldGroup->pushAndBreak($fields->dataFieldByName('DeliveryTimeMax'));
     $fieldGroup->pushAndBreak($fields->dataFieldByName('DeliveryTimeText'));
     $fields->addFieldToTab('Root.Main', $fieldGroup);
     return $fields;
 }