} HikashopshippingBFManualConfigDisplay::showBreak($first); if (plgHikashopshippingBFManual::$_params->get('sizeweightpricecalc')) { HikashopshippingBFManualConfigDisplay::showBreak($first); HikashopshippingBFManualConfigDisplay::showSizeWeightPriceCalc($this->element->shipping_params); } HikashopshippingBFManualConfigDisplay::showBreak($first); if (plgHikashopshippingBFManual::$_params->get('categorychk')) { HikashopshippingBFManualConfigDisplay::showBreak($first); HikashopshippingBFManualConfigDisplay::showCategoryChk($this->element->shipping_params); } if (plgHikashopshippingBFManual::$_params->get('productchk')) { HikashopshippingBFManualConfigDisplay::showBreak($first); HikashopshippingBFManualConfigDisplay::showProductChk($this->element->shipping_params); } $productfieldname = plgHikashopshippingBFManual::getParam('productfieldname', ''); if (!empty($productfieldname)) { HikashopshippingBFManualConfigDisplay::showBreak($first); HikashopshippingBFManualConfigDisplay::showProductFieldName($this->element->shipping_params, $productfieldname); } HikashopshippingBFManualConfigDisplay::showBreak($first); if (plgHikashopshippingBFManual::$_params->get('addresschk')) { HikashopshippingBFManualConfigDisplay::showAddressChk($this->element->shipping_params); } if (plgHikashopshippingBFManual::$_params->get('productqtychk')) { HikashopshippingBFManualConfigDisplay::showProductQtyChk($this->element->shipping_params); } if (plgHikashopshippingBFManual::$_params->get('availablechk')) { HikashopshippingBFManualConfigDisplay::showAvailableChk($this->element->shipping_params); } HikashopshippingBFManualConfigDisplay::showHelp();
public static function unusableDeliveryRates($earliest_delivery_date, $local_usable_rates) { $notUsable = array(); if (self::getParam('delivtime') || self::getParam('delivdate')) { $todaytime = time(); $tomorrowtime = $todaytime + 24 * 60 * 60; $today = self::getFormattedDate('Ymd', $todaytime); $tomorrow = self::getFormattedDate('Ymd', $tomorrowtime); $now = self::getFormattedDate('H:i', $todaytime); foreach ($local_usable_rates as $k => $rate) { if (!isset($rate->shipping_params->shipping_extra_deliv_dates)) { // This indicates that the plugin delivery date settings // were set BEFORE the BFManual Hikashop shipping method. if (empty(self::$_warn1)) { JError::raiseWarning(4720, 'Please contact System Administrator'); self::$_warn1 = array(); } if (empty(self::$_warn1[$rate->shipping_id])) { JError::raiseWarning(4720, 'Delivery day setup error: "' . $rate->shipping_name . '"'); self::$_warn1[$rate->shipping_id] = true; } continue; } $found = false; for ($d = 0; $d < 7; $d++) { $delivon = 'shipping_delivon_' . $d; if (!empty($rate->shipping_params->{$delivon})) { $found = true; break; } } if (!$found && empty($rate->shipping_params->shipping_extra_deliv_dates)) { $notUsable[] = $k; continue; } $shipping_order_before = @$rate->shipping_params->shipping_order_before; if (!empty($shipping_order_before) && $shipping_order_before <= $now) { $notUsable[] = $k; continue; } $shipping_same_day_before = @$rate->shipping_params->shipping_same_day_before; $shipping_next_day_after = @$rate->shipping_params->shipping_next_day_after; $shipping_next_day_before = @$rate->shipping_params->shipping_next_day_before; if (empty($earliest_delivery_date) || $earliest_delivery_date == $today) { if (!empty($shipping_same_day_before)) { if ($shipping_same_day_before <= $now) { $notUsable[] = $k; continue; } if (!self::validDeliveryDay($today, $rate->shipping_params)) { $notUsable[] = $k; continue; } } } if (empty($earliest_delivery_date) || $earliest_delivery_date == $tomorrow) { if (!empty($shipping_next_day_before)) { if ($shipping_next_day_before <= $now) { $notUsable[] = $k; continue; } } if (!empty($shipping_next_day_after)) { if ($shipping_next_day_after >= $now) { $notUsable[] = $k; continue; } } if (!self::validDeliveryDay($tomorrow, $rate->shipping_params)) { $notUsable[] = $k; continue; } } if (!empty($earliest_delivery_date) && $earliest_delivery_date > $tomorrow) { if (!self::validDeliveryDay($earliest_delivery_date, $rate->shipping_params)) { $notUsable[] = $k; continue; } } } } return $notUsable; }
private static function checkDeliveryDate($order, $now = null, $day = 0) { if ($now === null) { if (empty($order->order_delivery_date)) { return false; } $value = self::orderDateValue2Time($order->order_delivery_date); } else { $value = $now + $day * 24 * 60 * 60; // Whoops, watch out for years with leap seconds! } if (class_exists('plgHikashopshippingBFManual')) { $localUsableRates = plgHikashopshippingBFManual::getLocalUsableRates(); if (!empty($localUsableRates)) { $unusableRates = plgHikashopshippingBFManual::unusableDeliveryRates(self::getFormattedDate('Ymd', $value), $localUsableRates); if (!empty($unusableRates)) { if (count($localUsableRates) == count($unusableRates)) { return false; } if (!empty($order->shipping)) { foreach ($order->shipping as $shipping) { if (in_array($shipping->shipping_id, $unusableRates)) { return false; } } } } } } switch (self::getFormattedDate('N', $value)) { case '1': $allowedDate = self::$_params->get('monday'); break; case '2': $allowedDate = self::$_params->get('tuesday'); break; case '3': $allowedDate = self::$_params->get('wednesday'); break; case '4': $allowedDate = self::$_params->get('thursday'); break; case '5': $allowedDate = self::$_params->get('friday'); break; case '6': $allowedDate = self::$_params->get('saturday'); break; case '7': $allowedDate = self::$_params->get('sunday'); break; default: return false; } if (self::blockedDeliveryDate($value)) { return false; } if ($allowedDate) { self::$_deliveryNmlDates += 1; } else { if (!self::extraDeliveryDate($value)) { return false; } } return $value; }