Exemplo n.º 1
0
 /**
  * Get the Ranges for this carrier
  *
  * @return array
  */
 public function getRange()
 {
     if ($this->getRangeBehaviour() == "weight") {
         $list = new Carrier\RangeWeight\Listing();
     } else {
         $list = new Carrier\RangeWeight\Listing();
     }
     $list->setCondition("carrier=?", array($this->getId()));
     $list->load();
     $data = $list->getData();
     $returnData = array();
     foreach ($data as $entry) {
         $price = Carrier\DeliveryPrice::getByCarrierAndRange($this->getId(), $entry->getId());
         $returnData[] = array("id" => $entry->getId(), "delimiter1" => $entry->getDelimiter1(), "delimiter2" => $entry->getDelimiter2(), "price" => $price ? $price->getPrice() : 0);
     }
     return $returnData;
 }
 public function saveAction()
 {
     $id = $this->getParam("id");
     $data = $this->getParam("data");
     $carrier = Carrier::getById($id);
     if ($data && $carrier instanceof Carrier) {
         $data = \Zend_Json::decode($this->getParam("data"));
         $carrier->setValues($data['settings']);
         $carrier->save();
         $ranges = $data['range'];
         if (is_array($ranges)) {
             foreach ($ranges as $range) {
                 $rangeObject = null;
                 $deliveryPriceObject = null;
                 if ($range['id']) {
                     $rangeObject = Carrier\RangeWeight::getById($range['id']);
                 }
                 if (is_null($rangeObject)) {
                     $rangeObject = new Carrier\RangeWeight();
                 }
                 $rangeObject->setCarrier($id);
                 $rangeObject->setDelimiter1($range['delimiter1']);
                 $rangeObject->setDelimiter2($range['delimiter2']);
                 $rangeObject->save();
                 $deliveryPriceObject = Carrier\DeliveryPrice::getByCarrierAndRange($id, $rangeObject->getId());
                 if (is_null($deliveryPriceObject)) {
                     $deliveryPriceObject = new Carrier\DeliveryPrice();
                 }
                 $deliveryPriceObject->setRange($rangeObject->getId());
                 $deliveryPriceObject->setPrice($range['price']);
                 $deliveryPriceObject->setCarrier($id);
                 $deliveryPriceObject->setRangeType($carrier->getShippingMethod());
                 $deliveryPriceObject->save();
             }
         }
         $this->_helper->json(array("success" => true, "carrier" => $carrier));
     } else {
         $this->_helper->json(array("success" => false));
     }
 }