Beispiel #1
0
 /**
  * @param ShipmentTransportCompany|ShipmentCollectionPoint|null $shipment
  */
 private function addMinimumOrderPriceToBeFreeControl(ShipmentOption $shipment = null, ChoiceControl $typeControl = null)
 {
     $enableControl = $this->addCheckbox('enableFreeFromCertainOrderPrice', 'Free from certain order price');
     $enableControl->addCondition(self::EQUAL, true)->toggle('shipment-free-price-input');
     $errorMessage = 'Minimum order price must be positive number.';
     $priceControl = $this->addText('minimumOrderPriceToBeFree', 'Minimum order price to be free');
     $priceControl->setType('number')->setAttribute('step', 'any')->setDefaultValue(0);
     if ($typeControl === null) {
         $requiredCondition = $priceControl;
         $enableControl->setDefaultValue($shipment->isFreeFromCertainOrderPrice());
         if ($shipment->isFreeFromCertainOrderPrice()) {
             $priceControl->setDefaultValue($shipment->getMinimumOrderPriceToBeFree());
         }
     } else {
         $requiredCondition = $priceControl->addConditionOn($typeControl, self::NOT_EQUAL, ShipmentType::PERSONAL);
         $typeControl->addCondition(self::NOT_EQUAL, ShipmentType::PERSONAL)->toggle('shipment-free-price');
     }
     $requiredCondition->addConditionOn($enableControl, self::EQUAL, true)->setRequired()->addRule(self::FLOAT, $errorMessage)->addRule(function (TextInput $input) {
         return $input->getValue() > 0;
     }, $errorMessage);
 }