public function index()
 {
     if (($zoneID = (int) $this->request->get('id')) <= 0) {
         $deliveryZoneArray = array('ID' => '');
         $shippingServices = ShippingService::getByDeliveryZone();
     } else {
         $deliveryZone = DeliveryZone::getInstanceByID($zoneID, true);
         $deliveryZoneArray = $deliveryZone->toArray();
         $shippingServices = $deliveryZone->getShippingServices();
     }
     $shippingServicesArray = array();
     foreach ($shippingServices as $service) {
         $shippingServicesArray[$service->getID()] = $service->toArray();
         $shippingServicesArray[$service->getID()]['rangeTypeString'] = $this->translate($service->rangeType->get() == 0 ? '_weight_based_rates' : '_subtotal_based_rates');
         $shippingServicesArray[$service->getID()]['ratesCount'] = $service->getRates()->getTotalRecordCount();
     }
     $form = $this->createShippingServiceForm();
     $form->setData(array('rangeType' => 0));
     $response = new ActionResponse();
     $response->set('shippingServices', $shippingServicesArray);
     $response->set('newService', array('DeliveryZone' => $deliveryZoneArray));
     $response->set('newRate', array('ShippingService' => array('DeliveryZone' => $deliveryZoneArray, 'ID' => '')));
     $response->set('deliveryZone', $deliveryZoneArray);
     $response->set('defaultCurrencyCode', $this->application->getDefaultCurrency()->getID());
     $response->set('form', $form);
     return $response;
 }
 public function testGetServicesByDeliveryZone()
 {
     $service1 = ShippingService::getNewInstance($this->deliveryZone, 'Test service 1', ShippingService::SUBTOTAL_BASED);
     $service1->save();
     $service2 = ShippingService::getNewInstance($this->deliveryZone, 'Test service 2', ShippingService::SUBTOTAL_BASED);
     $service2->save();
     $services = ShippingService::getByDeliveryZone($this->deliveryZone);
     $this->assertTrue($service1 === $services->get(0));
     $this->assertTrue($service2 === $services->get(1));
 }
Exemple #3
0
 /**
  * Get set of shipping sevices available in current zone
  *
  * @param boolean $loadReferencedRecords
  * @return ARSet
  */
 public function getShippingServices($loadReferencedRecords = false)
 {
     return ShippingService::getByDeliveryZone($this, $loadReferencedRecords);
 }