示例#1
0
 /**
  * <p>Метод удаляет статус заказа с кодом ID. Если в базе есть заказы, находящиеся в этом статусе, то этот статус удалить нельзя. Метод динамичный.</p>
  *
  *
  * @param string $ID  Код статуса заказа. </htm
  *
  * @return bool <p>Возвращается <i>true</i> в случае успешного удаления и <i>false</i> - в
  * противном случае.</p> <br><br>
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalestatus/csalestatus__delete.11104aab.php
  * @author Bitrix
  */
 public static function Delete($statusId)
 {
     if (!$statusId) {
         return false;
     }
     global $DB, $APPLICATION;
     $statusId = $DB->ForSql($statusId, 2);
     if (OrderTable::getList(array('filter' => array('=STATUS_ID' => $statusId), 'limit' => 1))->fetch()) {
         $APPLICATION->ThrowException(Loc::getMessage("SKGS_ERROR_DELETE"), "ERROR_DELETE_STATUS_TO_ORDER");
         return false;
     }
     foreach (GetModuleEvents("sale", "OnBeforeStatusDelete", true) as $arEvent) {
         if (ExecuteModuleEventEx($arEvent, array($statusId)) === false) {
             return false;
         }
     }
     foreach (GetModuleEvents("sale", "OnStatusDelete", true) as $arEvent) {
         ExecuteModuleEventEx($arEvent, array($statusId));
     }
     StatusLangTable::deleteByStatus($statusId);
     StatusGroupTaskTable::deleteByStatus($statusId);
     return StatusTable::delete($statusId)->isSuccess();
 }
示例#2
0
 // prepare & check group tasks
 foreach ($groups as $groupId => $groupName) {
     $taskId = $_REQUEST['TASK' . $groupId];
     $groupTasks[$groupId] = array('STATUS_ID' => $sid, 'GROUP_ID' => $groupId, 'TASK_ID' => $taskId);
     if (!$tasks[$taskId]) {
         $errors[] = Loc::getMessage('SSEN_INVALID_TASK_ID_FOR') . ' ' . $groupName;
     }
 }
 // add or update status
 if (!$errors) {
     // update status, delete translations and group tasks
     if (!$isNew) {
         $result = StatusTable::update($statusId, $status);
         if ($result->isSuccess()) {
             StatusLangTable::deleteByStatus($statusId);
             StatusGroupTaskTable::deleteByStatus($statusId);
         } else {
             $errors = $result->getErrorMessages();
         }
     } else {
         $result = StatusTable::add($status);
         if ($result->isSuccess()) {
             $statusId = $status['ID'];
         } else {
             $errors = $result->getErrorMessages();
         }
     }
 }
 // add translations and group tasks, redirect
 if (!$errors) {
     foreach ($translations as $data) {