public function checkIsDeliverableDate($date)
 {
     //If config say exclude weekend and the date is on weekend return false
     if (DeliveryDelay::getConfigValue("exclude_weekend") && date("N", strtotime($date)) > 5) {
         return false;
     }
     $undeliverableDates = UndeliverableDateQuery::create()->filterByActive(true)->select("date")->find()->toArray();
     if (in_array(date("m-d", strtotime($date)), $undeliverableDates)) {
         return false;
     }
     if (DeliveryDelay::getConfigValue("exclude_easter_day") && true === $this->isEasterDay($date)) {
         return false;
     }
     return true;
 }
 protected function buildForm()
 {
     $request = $this->getRequest();
     $productId = $request->get("product_id");
     $productData = ProductDelayQuery::create()->filterByProductId($productId)->findOneOrCreate();
     if (null !== $productId) {
         $data["delivery_min"] = $productData->getDeliveryDelayMin();
         $data["delivery_max"] = $productData->getDeliveryDelayMax();
         $data["restock_min"] = $productData->getRestockDelayMin();
         $data["restock_max"] = $productData->getRestockDelayMax();
         $data["delivery_date_start"] = $productData->getDeliveryDateStart();
         $data["delivery_type"] = $productData->getDeliveryType();
     } else {
         $data["delivery_min"] = DeliveryDelay::getConfigValue("delivery_min");
         $data["delivery_max"] = DeliveryDelay::getConfigValue("delivery_max");
         $data["restock_min"] = DeliveryDelay::getConfigValue("restock_min");
         $data["restock_max"] = DeliveryDelay::getConfigValue("restock_max");
         $data["delivery_date_start"] = null;
         $data["delivery_type"] = null;
     }
     $this->formBuilder->add("delivery_min", "text", array('data' => $data["delivery_min"], 'label' => Translator::getInstance()->trans("Minimum delivery delay (days)", array(), DeliveryDelay::DOMAIN_NAME), 'label_attr' => array("for" => "delivery_min")))->add("delivery_max", "text", array('data' => $data["delivery_max"], 'label' => Translator::getInstance()->trans("Maximum delivery delay (days)", array(), DeliveryDelay::DOMAIN_NAME), 'label_attr' => array("for" => "delivery_max")))->add("restock_min", "text", array('data' => $data["restock_min"], 'label' => Translator::getInstance()->trans("Minimum restock delay (days)", array(), DeliveryDelay::DOMAIN_NAME), 'label_attr' => array("for" => "restock_min")))->add("restock_max", "text", array('data' => $data["restock_max"], 'label' => Translator::getInstance()->trans("Maximum restock delay (days)", array(), DeliveryDelay::DOMAIN_NAME), 'label_attr' => array("for" => "restock_max")))->add("exclude_weekend", "text", array('label' => Translator::getInstance()->trans("Exclude weekend from delay count", array(), DeliveryDelay::DOMAIN_NAME), 'data' => DeliveryDelay::getConfigValue("exclude_weekend"), 'label_attr' => array("for" => "exclude_weekend")))->add("exclude_easter_day", "text", array('label' => Translator::getInstance()->trans("Exclude easter day from delay count", array(), DeliveryDelay::DOMAIN_NAME), 'data' => DeliveryDelay::getConfigValue("exclude_easter_day"), 'label_attr' => array("for" => "exclude_easter_day")))->add("exclude_easter_day_based_holidays", "text", array('label' => Translator::getInstance()->trans("Exclude holidays based on easter day date", array(), DeliveryDelay::DOMAIN_NAME), 'data' => DeliveryDelay::getConfigValue("exclude_easter_day_based_holidays"), 'label_attr' => array("for" => "exclude_easter_day_based_holidays")))->add("delivery_date_start", "text", array('label' => Translator::getInstance()->trans("This product is only available from", array(), DeliveryDelay::DOMAIN_NAME), 'data' => $data['delivery_date_start'], 'label_attr' => array("for" => "delivery_date_start")))->add("delivery_type", "text", array('label' => Translator::getInstance()->trans("Type of delivery", array(), DeliveryDelay::DOMAIN_NAME), 'data' => $data["delivery_type"], 'label_attr' => array("for" => "delivery_type")));
 }
Esempio n. 3
0
 public function getDefaultValue()
 {
     $this->setDeliveryDelayMin(DeliveryDelay::getConfigValue("delivery_min", 1))->setDeliveryDelayMax(DeliveryDelay::getConfigValue("delivery_min", 1))->setRestockDelayMin(DeliveryDelay::getConfigValue("restock_min", 1))->setRestockDelayMax(DeliveryDelay::getConfigValue("restock_max", 1))->setDeliveryDateStart(null)->setDeliveryType(null);
     return $this;
 }