Sonata\Component\Delivery\ServiceDeliverySelectorInterface::getAvailableMethods PHP Method

getAvailableMethods() public method

public getAvailableMethods ( Sonata\Component\Basket\BasketInterface $basket = null, Sonata\Component\Customer\AddressInterface $deliveryAddress = null )
$basket Sonata\Component\Basket\BasketInterface
$deliveryAddress Sonata\Component\Customer\AddressInterface
    public function getAvailableMethods(BasketInterface $basket = null, AddressInterface $deliveryAddress = null);

Usage Example

Example #1
0
 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $basket = $builder->getData();
     if (!$basket instanceof BasketInterface) {
         throw new \RuntimeException('Please provide a BasketInterface instance');
     }
     $methods = $this->deliverySelector->getAvailableMethods($basket, $basket->getDeliveryAddress());
     if (count($methods) === 0) {
         throw new UndeliverableCountryException($basket->getDeliveryAddress());
     }
     $choices = array();
     foreach ($methods as $method) {
         $choices[$method->getCode()] = $method->getName();
     }
     reset($methods);
     $method = $basket->getDeliveryMethod() ?: current($methods);
     $basket->setDeliveryMethod($method ?: null);
     $sub = $builder->create('deliveryMethod', 'choice', array('expanded' => true, 'choice_list' => new SimpleChoiceList($choices)));
     $sub->addViewTransformer(new DeliveryMethodTransformer($this->deliveryPool), true);
     $builder->add($sub);
 }
All Usage Examples Of Sonata\Component\Delivery\ServiceDeliverySelectorInterface::getAvailableMethods
ServiceDeliverySelectorInterface