예제 #1
0
 public static function CheckLocationExists($locID)
 {
     if (intval($locID) <= 0) {
         return false;
     }
     $res = Location\LocationTable::getById($locID)->fetch();
     return !!$res['ID'];
 }
예제 #2
0
 public static function checkLocationIdExists($id)
 {
     $res = Location\LocationTable::getById($id)->fetch();
     return intval($res['ID']);
 }
예제 #3
0
 public static function checkConnectionExists($entityPrimary, $locationPrimary)
 {
     $entityPrimary = Assert::expectStringNotNull($entityPrimary, Loc::getMessage('SALE_LOCATION_CONNECTOR_ENTITY_PRIMARY_FLD_NAME'));
     $locationPrimary = Assert::expectIntegerPositive($locationPrimary, Loc::getMessage('SALE_LOCATION_CONNECTOR_ENTITY_LOCATION_PRIMARY_FLD_NAME'));
     if (!static::checkLinkUsageAny($entityPrimary)) {
         // if there are no links at all, connection virtually exists
         return true;
     }
     // todo: here we can rewrite this to make it to do just one query
     $node = LocationTable::getById($locationPrimary)->fetch();
     $result = static::getLinkStatusForMultipleNodes(array($node), $entityPrimary);
     return $result[$locationPrimary] == self::LSTAT_IS_CONNECTOR || $result[$locationPrimary] == self::LSTAT_BELOW_CONNECTOR;
 }
 public static function getTarifNumFromCsv(array $arShopLocation)
 {
     if (empty($arShopLocation) || !isset($arShopLocation["REGION_ID"]) || !isset($arShopLocation['REGION_NAME_LANG'])) {
         return false;
     }
     $regionCodeFromCode = $regionCodeFromName = "";
     $dbRes = \Bitrix\Sale\Location\LocationTable::getById($arShopLocation["REGION_ID"]);
     if ($locReg = $dbRes->fetch()) {
         $regionCodeFromCode = $locReg["CODE"];
     }
     $regionCodeFromName = self::getRegionCodeByOldName($arShopLocation['REGION_NAME_LANG']);
     $csvFile = CSaleHelper::getCsvObject(DELIVERY_RP_CSV_PATH . '/tarif_regions.csv');
     $tarifNumber = false;
     $COL_TARIF_NUM = 0;
     while ($arRes = $csvFile->Fetch()) {
         if (strlen($regionCodeFromCode) > 0 && in_array($regionCodeFromCode, $arRes) || strlen($regionCodeFromName) > 0 && in_array($regionCodeFromName, $arRes)) {
             $tarifNumber = $arRes[$COL_TARIF_NUM];
             break;
         }
     }
     return $tarifNumber;
 }
예제 #5
0
 /**
  * Function makes some actions based on what is in $this->request
  * @return void
  */
 protected function performAction()
 {
     $requestMethod = \Bitrix\Main\Context::getCurrent()->getServer()->getRequestMethod();
     $this->componentData['FORM_ROWS'] = Helper::getDetailPageRows();
     $this->dbResult['CALCULATED_BACK_URL'] = false;
     if (strlen($this->dbResult['REQUEST']['GET']['return_url'])) {
         $this->dbResult['SPECIFIED_BACK_URL'] = $this->dbResult['REQUEST']['GET']['return_url'];
         $this->dbResult['CALCULATED_BACK_URL'] = $this->dbResult['REQUEST']['GET']['return_url'];
     }
     if (check_bitrix_sessid()) {
         $actionSave = $requestMethod == 'POST' && isset($this->dbResult['REQUEST']['POST']['save']);
         $actionApply = $requestMethod == 'POST' && isset($this->dbResult['REQUEST']['POST']['apply']);
         $actionDelete = $requestMethod == 'GET' && isset($this->dbResult['REQUEST']['GET']['delete']);
         $id = isset($this->dbResult['REQUEST']['POST']['loc_id']) ? intval($this->dbResult['REQUEST']['POST']['loc_id']) : 0;
         if ($id <= 0 && isset($this->dbResult['REQUEST']['POST']['ID'])) {
             $id = intval($this->dbResult['REQUEST']['POST']['ID']) > 0 ? intval($this->dbResult['REQUEST']['POST']['ID']) : 0;
         }
         $res = false;
         if ($actionSave || $actionApply) {
             if ($id) {
                 $res = Helper::update($id, $this->dbResult['REQUEST']['POST']);
             } else {
                 $res = Helper::add($this->dbResult['REQUEST']['POST']);
                 $id = $res['id'];
             }
         } elseif ($actionDelete) {
             $locID = isset($this->arParams['LOC_ID']) ? intval($this->arParams['LOC_ID']) : 0;
             if ($locID) {
                 $res = Location\LocationTable::getById($locID)->fetch();
                 $parentOfDeleted = intval($res['PARENT_ID']);
                 $res = Helper::delete($locID);
             }
         }
         if ($res !== false) {
             if (!$res['success']) {
                 $this->errors['NONFATAL'] = array_merge($this->errors['NONFATAL'], $res['errors']);
                 $this->componentData['ACTION_FAILURE'] = true;
             } else {
                 $url = $this->dbResult['CALCULATED_BACK_URL'];
                 if ($actionApply) {
                     $url = false;
                 } else {
                     if ($actionSave) {
                         // get parent (only for locations)
                         $res = Location\LocationTable::getById($id)->fetch();
                         if (!$url) {
                             $url = CComponentEngine::MakePathFromTemplate($this->arParams['PATH_TO_LOCATIONS_LIST']) . '?PARENT_ID=' . intval($res['PARENT_ID']);
                         }
                     } elseif ($actionDelete) {
                         if (!$url) {
                             $url = CComponentEngine::MakePathFromTemplate($this->arParams['PATH_TO_LOCATIONS_LIST']) . '?PARENT_ID=' . intval($parentOfDeleted);
                         }
                     }
                 }
                 if ($url) {
                     LocalRedirect($url);
                 }
             }
         }
     }
 }