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)); }
/** * Get set of shipping sevices available in current zone * * @param boolean $loadReferencedRecords * @return ARSet */ public function getShippingServices($loadReferencedRecords = false) { return ShippingService::getByDeliveryZone($this, $loadReferencedRecords); }