if (!$arRes) { continue; } $WF_ID = $subID; if ($boolSubWorkFlow) { $WF_ID = CIBlockElement::WF_GetLast($subID); if ($WF_ID != $subID) { $rsData2 = CIBlockElement::GetByID($WF_ID); if ($arRes = $rsData2->Fetch()) { $WF_ID = $arRes["ID"]; } else { $WF_ID = $subID; } } if ($arRes["LOCK_STATUS"] == 'red' && !($_REQUEST['action'] == 'unlock' && CWorkflow::IsAdmin())) { $lAdmin->AddUpdateError(GetMessage("IBEL_A_UPDERR1") . " (ID:" . $subID . ")", $subID); continue; } } elseif ($boolSubBizproc) { if (CIBlockDocument::IsDocumentLocked($subID, "")) { $lAdmin->AddUpdateError(GetMessage("IBEL_A_UPDERR_LOCKED", array("#ID#" => $subID)), $subID); continue; } } if ($boolSubWorkFlow) { if (!CIBlockElementRights::UserHasRightTo($intSubIBlockID, $subID, "element_edit")) { $lAdmin->AddUpdateError(GetMessage("IBEL_A_UPDERR3") . " (ID:" . $subID . ")", $subID); continue; } $STATUS_PERMISSION = 2; // change is under workflow find status and its permissions
foreach ($FIELDS as $couponID => $fields) { $couponID = (int) $couponID; if ($couponID <= 0 || !$adminList->IsUpdated($couponID)) { continue; } unset($fields['DISCOUNT_ID']); $conn->startTransaction(); $result = Internals\DiscountCouponTable::prepareCouponData($fields); if ($result->isSuccess()) { $result = Internals\DiscountCouponTable::update($couponID, $fields); } if ($result->isSuccess()) { $conn->commitTransaction(); } else { $conn->rollbackTransaction(); $adminList->AddUpdateError(implode('<br>', $result->getErrorMessages()), $couponID); } unset($result); } unset($fields, $couponID); Internals\DiscountCouponTable::enableCheckCouponsUse(); } } if (!$couponsReadOnly && ($listID = $adminList->GroupAction())) { $checkUseCoupons = $_REQUEST['action'] == 'delete'; Internals\DiscountCouponTable::clearDiscountCheckList(); if ($_REQUEST['action_target'] == 'selected') { $listID = array(); $couponIterator = Internals\DiscountCouponTable::getList(array('select' => array('ID'), 'filter' => $filter)); while ($coupon = $couponIterator->fetch()) { $listID[] = $coupon['ID'];
$lAdmin->InitFilter($arFilterFields); $arFilter = array("DISCOUNT_ID" => $intDiscountID); if (!($USER->CanDoOperation('catalog_read') || $USER->CanDoOperation('catalog_discount'))) { return ''; } $boolCouponsReadOnly = isset($boolCouponsReadOnly) && false === $boolCouponsReadOnly ? false : true; if ($lAdmin->EditAction() && !$boolCouponsReadOnly) { foreach ($_POST['FIELDS'] as $ID => $arFields) { $DB->StartTransaction(); $ID = intval($ID); if (!$lAdmin->IsUpdated($ID)) { continue; } if (!CCatalogDiscountCoupon::Update($ID, $arFields)) { if ($ex = $APPLICATION->GetException()) { $lAdmin->AddUpdateError($ex->GetString(), $ID); } else { $lAdmin->AddUpdateError(str_replace("#ID#", $ID, GetMessage("ERROR_UPDATE_DISCOUNT_CPN")), $ID); } $DB->Rollback(); } $DB->Commit(); } } if (($arID = $lAdmin->GroupAction()) && !$boolCouponsReadOnly) { if ($_REQUEST['action_target'] == 'selected') { $arID = array(); $dbResultList = CCatalogDiscountCoupon::GetList(array($by => $order), $arFilter, false, false, array("ID")); while ($arResult = $dbResultList->Fetch()) { $arID[] = $arResult['ID']; }