Exemplo n.º 1
0
 /**
  * @param $deliveryId
  * @param array $params
  * @param $update
  * @return bool
  * @throws \Bitrix\Main\ArgumentException
  * @deprecated
  */
 protected static function saveRestrictionByMaxSize($deliveryId, $maxSize, $update)
 {
     $rfields = array("SERVICE_ID" => $deliveryId, "SERVICE_TYPE" => \Bitrix\Sale\Services\Base\RestrictionManager::SERVICE_TYPE_SHIPMENT, "CLASS_NAME" => '\\Bitrix\\Sale\\Delivery\\Restrictions\\ByMaxSize', "PARAMS" => array("MAX_SIZE" => $maxSize));
     if ($update) {
         $rstrRes = \Bitrix\Sale\Internals\ServiceRestrictionTable::getList(array('filter' => array("=SERVICE_ID" => $deliveryId, "=SERVICE_TYPE" => \Bitrix\Sale\Services\Base\RestrictionManager::SERVICE_TYPE_SHIPMENT, "=CLASS_NAME" => '\\Bitrix\\Sale\\Delivery\\Restrictions\\ByMaxSize')));
         if ($restrict = $rstrRes->fetch()) {
             $rres = \Bitrix\Sale\Internals\ServiceRestrictionTable::update($restrict["ID"], $rfields);
         } else {
             $rres = \Bitrix\Sale\Internals\ServiceRestrictionTable::add($rfields);
         }
     } else {
         $rres = \Bitrix\Sale\Internals\ServiceRestrictionTable::add($rfields);
     }
     return $rres->isSuccess();
 }
Exemplo n.º 2
0
 /**
  * @deprecated
  */
 public static function Update($oldId, $arFields, $arOptions = array())
 {
     if (strlen($oldId) <= 0) {
         return false;
     }
     $dbRes = Bitrix\Sale\Delivery\Services\Table::getList(array('filter' => array("CODE" => $oldId, "=CLASS_NAME" => '\\Bitrix\\Sale\\Delivery\\Services\\Configurable')));
     $oldData = $dbRes->fetch();
     if (!$oldData) {
         return false;
     }
     $newId = $oldData["ID"];
     $fields = array_intersect_key($arFields, Bitrix\Sale\Delivery\Services\Table::getMap());
     if (!empty($fields)) {
         if (array_key_exists("LOGOTIP", $fields) && is_array($fields["LOGOTIP"])) {
             $fields["LOGOTIP"]["MODULE_ID"] = "sale";
             CFile::SaveForDB($fields, "LOGOTIP", "sale/delivery/logotip");
         }
         $fields["CONFIG"] = array("MAIN" => array("PRICE" => isset($arFields["PRICE"]) ? $arFields["PRICE"] : $oldData["CONFIG"]["MAIN"]["PRICE"], "PERIOD" => array("FROM" => isset($arFields["PERIOD_FROM"]) ? $arFields["PERIOD_FROM"] : $oldData["CONFIG"]["MAIN"]["PERIOD"]["FROM"], "TO" => isset($arFields["PERIOD_TO"]) ? $arFields["PERIOD_TO"] : $oldData["CONFIG"]["MAIN"]["PERIOD"]["TO"], "TYPE" => isset($arFields["PERIOD_TYPE"]) ? $arFields["PERIOD_TYPE"] : $oldData["CONFIG"]["MAIN"]["PERIOD"]["TYPE"])));
         $res = \Bitrix\Sale\Delivery\Services\Manager::update($newId, $fields);
         if (!$res->isSuccess()) {
             return false;
         }
     }
     if (is_set($arFields, "LOCATIONS")) {
         Helper::resetLocationsForEntity($newId, $arFields['LOCATIONS'], self::CONN_ENTITY_NAME, !!$arOptions['EXPECT_LOCATION_CODES']);
     }
     if (is_set($arFields, "PAY_SYSTEM")) {
         CSaleDelivery::UpdateDeliveryPay($newId, $arFields["PAY_SYSTEM"]);
     }
     if (isset($arFields["LID"])) {
         $rfields = array("SERVICE_ID" => $newId, "CLASS_NAME" => '\\Bitrix\\Sale\\Delivery\\Restrictions\\BySite', "SERVICE_TYPE" => \Bitrix\Sale\Services\Base\RestrictionManager::SERVICE_TYPE_SHIPMENT, "PARAMS" => array("SITE_ID" => $arFields["LID"]));
         $rstrRes = \Bitrix\Sale\Internals\ServiceRestrictionTable::getList(array('filter' => array("=SERVICE_ID" => $newId, "=SERVICE_TYPE" => \Bitrix\Sale\Services\Base\RestrictionManager::SERVICE_TYPE_SHIPMENT, "=CLASS_NAME" => '\\Bitrix\\Sale\\Delivery\\Restrictions\\BySite')));
         if ($restrict = $rstrRes->fetch()) {
             $rres = \Bitrix\Sale\Internals\ServiceRestrictionTable::update($restrict["ID"], $rfields);
         } else {
             $rres = \Bitrix\Sale\Internals\ServiceRestrictionTable::add($rfields);
         }
     }
     if (isset($arFields["LID"]) && strlen($arFields["LID"]) > 0) {
         $rfields = array("SERVICE_ID" => $newId, "SERVICE_TYPE" => \Bitrix\Sale\Services\Base\RestrictionManager::SERVICE_TYPE_SHIPMENT, "CLASS_NAME" => '\\Bitrix\\Sale\\Delivery\\Restrictions\\BySite', "PARAMS" => array("SITE_ID" => $arFields["LID"]));
         $rstrRes = \Bitrix\Sale\Internals\ServiceRestrictionTable::getList(array('filter' => array("=SERVICE_ID" => $newId, "=SERVICE_TYPE" => \Bitrix\Sale\Services\Base\RestrictionManager::SERVICE_TYPE_SHIPMENT, "=CLASS_NAME" => '\\Bitrix\\Sale\\Delivery\\Restrictions\\BySite')));
         if ($restrict = $rstrRes->fetch()) {
             $rres = \Bitrix\Sale\Internals\ServiceRestrictionTable::update($restrict["ID"], $rfields);
         } else {
             $rres = \Bitrix\Sale\Internals\ServiceRestrictionTable::add($rfields);
         }
     }
     if (isset($arFields["WEIGHT_FROM"]) || isset($arFields["WEIGHT_TO"])) {
         $rfields = array("SERVICE_ID" => $newId, "CLASS_NAME" => '\\Bitrix\\Sale\\Delivery\\Restrictions\\ByWeight', "SERVICE_TYPE" => \Bitrix\Sale\Services\Base\RestrictionManager::SERVICE_TYPE_SHIPMENT, "PARAMS" => array("MIN_WEIGHT" => isset($arFields["WEIGHT_FROM"]) ? $arFields["WEIGHT_FROM"] : 0, "MAX_WEIGHT" => isset($arFields["WEIGHT_TO"]) ? $arFields["WEIGHT_TO"] : 0));
         $rstrRes = \Bitrix\Sale\Internals\ServiceRestrictionTable::getList(array('filter' => array("=SERVICE_ID" => $newId, "=SERVICE_TYPE" => \Bitrix\Sale\Services\Base\RestrictionManager::SERVICE_TYPE_SHIPMENT, "=CLASS_NAME" => '\\Bitrix\\Sale\\Delivery\\Restrictions\\ByWeight')));
         if ($restrict = $rstrRes->fetch()) {
             if (floatval($arFields["WEIGHT_FROM"]) <= 0 && floatval($arFields["WEIGHT_TO"]) <= 0) {
                 $rres = \Bitrix\Sale\Internals\ServiceRestrictionTable::delete($restrict["ID"]);
             } else {
                 if (!isset($arFields["WEIGHT_FROM"])) {
                     $rfields["PARAMS"]["MIN_WEIGHT"] = $restrict["PARAMS"]["MIN_WEIGHT"];
                 }
                 if (!isset($arFields["WEIGHT_TO"])) {
                     $rfields["PARAMS"]["MAX_WEIGHT"] = $restrict["PARAMS"]["MAX_WEIGHT"];
                 }
                 $rres = \Bitrix\Sale\Internals\ServiceRestrictionTable::update($restrict["ID"], $rfields);
             }
         } else {
             $rres = \Bitrix\Sale\Internals\ServiceRestrictionTable::add($rfields);
         }
     }
     if (isset($arFields["ORDER_PRICE_FROM"]) || isset($arFields["ORDER_PRICE_TO"]) || isset($arFields["ORDER_CURRENCY"])) {
         $rfields = array("SERVICE_ID" => $newId, "CLASS_NAME" => '\\Bitrix\\Sale\\Delivery\\Restrictions\\ByPrice', "SERVICE_TYPE" => \Bitrix\Sale\Services\Base\RestrictionManager::SERVICE_TYPE_SHIPMENT, "PARAMS" => array("MIN_PRICE" => isset($arFields["ORDER_PRICE_FROM"]) ? $arFields["ORDER_PRICE_FROM"] : 0, "MAX_PRICE" => isset($arFields["ORDER_PRICE_TO"]) ? $arFields["ORDER_PRICE_TO"] : 0, "CURRENCY" => isset($arFields["ORDER_CURRENCY"]) ? $arFields["ORDER_CURRENCY"] : ""));
         $rstrRes = \Bitrix\Sale\Internals\ServiceRestrictionTable::getList(array('filter' => array("=SERVICE_ID" => $newId, "=SERVICE_TYPE" => \Bitrix\Sale\Services\Base\RestrictionManager::SERVICE_TYPE_SHIPMENT, "=CLASS_NAME" => '\\Bitrix\\Sale\\Delivery\\Restrictions\\ByPrice')));
         if ($restrict = $rstrRes->fetch()) {
             if (floatval($arFields["ORDER_PRICE_FROM"]) <= 0 && floatval($arFields["ORDER_PRICE_TO"]) <= 0 && strlen($arFields["ORDER_CURRENCY"]) <= 0) {
                 $rres = \Bitrix\Sale\Internals\ServiceRestrictionTable::delete($restrict["ID"]);
             } else {
                 if (!isset($arFields["ORDER_PRICE_FROM"])) {
                     $rfields["PARAMS"]["MIN_PRICE"] = $restrict["PARAMS"]["MIN_PRICE"];
                 }
                 if (!isset($arFields["ORDER_PRICE_TO"])) {
                     $rfields["PARAMS"]["MAX_PRICE"] = $restrict["PARAMS"]["MAX_PRICE"];
                 }
                 if (!isset($arFields["ORDER_CURRENCY"])) {
                     $rfields["PARAMS"]["CURRENCY"] = $restrict["PARAMS"]["CURRENCY"];
                 }
                 $rres = \Bitrix\Sale\Internals\ServiceRestrictionTable::update($restrict["ID"], $rfields);
             }
         } else {
             $rres = \Bitrix\Sale\Internals\ServiceRestrictionTable::add($rfields);
         }
     }
     if (isset($arFields["STORE"])) {
         $stores = unserialize($arFields["STORE"]);
         if ($stores) {
             \Bitrix\Sale\Delivery\ExtraServices\Manager::saveStores($newId, $stores);
         }
     }
     return $oldId;
 }