public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fieldList = array("Country" => "Country", "State" => "State", "City" => "City", "PostalCode" => "PostCode", "WeightMin" => "WeightMin", "WeightMax" => "WeightMax", "VolumeMin" => "VolumeMin", "VolumeMax" => "VolumeMax", "ValueMin" => "ValueMin", "ValueMax" => "ValueMax", "QuantityMin" => "QuantityMin", "QuantityMax" => "QuantityMax", "Rate" => "Rate");
     $fields->fieldByName('Root')->removeByName("Rates");
     if ($this->isInDB()) {
         $tablefield = new GridField("Rates", "TableShippingRate", $this->Rates(), new GridFieldConfig_RecordEditor());
         $fields->addFieldToTab("Root.Main", $tablefield);
     }
     return $fields;
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $displayFieldsList = array("ZoneID" => "Zone", "WeightMin" => "WeightMin", "WeightMax" => "WeightMax", "VolumeMin" => "VolumeMin", "VolumeMax" => "VolumeMax", "ValueMin" => "ValueMin", "ValueMax" => "ValueMax", "QuantityMin" => "QuantityMin", "QuantityMax" => "QuantityMax", "Rate" => "Rate");
     $fields->fieldByName('Root')->removeByName("Rates");
     if ($this->isInDB()) {
         $gridField = new GridField("Rates", "ZonedShippingRate", $this->Rates(), new GridFieldConfig_RelationEditor());
         $gridField->getConfig()->getComponentByType('GridFieldDataColumns')->setDisplayFields($displayFieldsList);
         $fields->addFieldToTab("Root.Main", $gridField);
     }
     return $fields;
 }
 function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fieldList = array("ZoneID" => "Zone", "WeightMin" => "WeightMin", "WeightMax" => "WeightMax", "VolumeMin" => "VolumeMin", "VolumeMax" => "VolumeMax", "ValueMin" => "ValueMin", "ValueMax" => "ValueMax", "QuantityMin" => "QuantityMin", "QuantityMax" => "QuantityMax", "Rate" => "Rate");
     $fieldTypes = array("ZoneID" => "ZoneSelectField", "WeightMin" => "TextField", "WeightMax" => "TextField", "VolumeMin" => "TextField", "VolumeMax" => "TextField", "ValueMin" => "TextField", "ValueMax" => "TextField", "QuantityMin" => "TextField", "QuantityMax" => "TextField", "Rate" => "TextField");
     $fields->fieldByName('Root')->removeByName("Rates");
     if ($this->isInDB()) {
         $tablefield = new TableField("Rates", "ZonedShippingRate", $fieldList, $fieldTypes);
         $tablefield->setCustomSourceItems($this->Rates());
         $fields->addFieldToTab("Root.Main", $tablefield);
     }
     return $fields;
 }
 function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fieldList = array("Country" => "Country", "State" => "State", "City" => "City", "PostalCode" => "PostCode", "WeightMin" => "WeightMin", "WeightMax" => "WeightMax", "VolumeMin" => "VolumeMin", "VolumeMax" => "VolumeMax", "ValueMin" => "ValueMin", "ValueMax" => "ValueMax", "QuantityMin" => "QuantityMin", "QuantityMax" => "QuantityMax", "Rate" => "Rate");
     $fieldTypes = array_merge(RegionRestriction::get_table_field_types(), array("WeightMin" => "TextField", "WeightMax" => "TextField", "VolumeMin" => "TextField", "VolumeMax" => "TextField", "ValueMin" => "TextField", "ValueMax" => "TextField", "QuantityMin" => "TextField", "QuantityMax" => "TextField", "Rate" => "TextField"));
     $fields->fieldByName('Root')->removeByName("Rates");
     if ($this->isInDB()) {
         $tablefield = new TableField("Rates", "TableShippingRate", $fieldList, $fieldTypes);
         $tablefield->setCustomSourceItems($this->Rates());
         $fields->addFieldToTab("Root.Main", $tablefield);
     }
     return $fields;
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->fieldByName('Root')->removeByName("DistanceFares");
     if ($this->isInDB()) {
         $fields->addFieldToTab("Root.Main", $gridfield = GridField::create("DistanceFares", "Fares", $this->DistanceFares(), $config = new GridFieldConfig_RecordEditor()));
         $config->removeComponentsByType("GridFieldDataColumns");
         $config->removeComponentsByType("GridFieldEditButton");
         $config->removeComponentsByType("GridFieldDeleteAction");
         $config->removeComponentsByType("GridFieldAddNewButton");
         $config->addComponent($cols = new GridFieldEditableColumns());
         $config->addComponent(new GridFieldDeleteAction());
         $config->addComponent($addnew = new GridFieldAddNewInlineButton());
         $addnew->setTitle($addnew->getTitle() . " Fare");
         if ($greatest = $this->greatestCostDistance()) {
             $fields->insertAfter(LiteralField::create("costnote", "<p class=\"message\">Distances beyond the greatest specified distance will be cost " . $this->greatestCostDistance()->dbObject("Cost")->Nice() . " (the most expensive fare)</p>"), "DistanceFares");
         }
     }
     return $fields;
 }