$arFilterDel = array(); if (!$actionData['ALL_ROWS']) { $arFilterDel = array('ID' => $actionData['ID']); } else { // Fix for issue #26628 $arFilterDel += $arFilter; } $obRes = CCrmInvoice::GetList(array(), $arFilterDel, false, false, array('ID')); while ($arInvoice = $obRes->Fetch()) { $ID = $arInvoice['ID']; $arEntityAttr = $CCrmPerms->GetEntityAttr('INVOICE', array($ID)); if (!$CCrmPerms->CheckEnityAccess('INVOICE', 'DELETE', $arEntityAttr[$ID])) { continue; } $DB->StartTransaction(); if ($CCrmInvoice->Delete($ID)) { $DB->Commit(); } else { $DB->Rollback(); } } } } elseif ($actionData['NAME'] == 'edit') { if (isset($actionData['FIELDS']) && is_array($actionData['FIELDS'])) { foreach ($actionData['FIELDS'] as $ID => $arSrcData) { $arEntityAttr = $CCrmPerms->GetEntityAttr('INVOICE', array($ID)); if (!$CCrmPerms->CheckEnityAccess('INVOICE', 'WRITE', $arEntityAttr[$ID])) { continue; } $arUpdateData = array(); reset($arResult['HEADERS']);
} elseif (isset($_POST['saveAndView'])) { if (CCrmInvoice::CheckReadPermission($ID)) { LocalRedirect(empty($arResult['INVOICE_REFERER']) ? CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_INVOICE_SHOW'], array('invoice_id' => $ID)) : $arResult['INVOICE_REFERER']); } } // save LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_INVOICE_LIST'], array())); } } } elseif (isset($_GET['delete']) && check_bitrix_sessid()) { if ($bEdit) { $arResult['ERROR_MESSAGE'] = ''; if (!$CCrmInvoice->cPerms->CheckEnityAccess('INVOICE', 'DELETE', $arEntityAttr[$arParams['ELEMENT_ID']])) { $arResult['ERROR_MESSAGE'] .= GetMessage('CRM_PERMISSION_DENIED') . '<br />'; } if (empty($arResult['ERROR_MESSAGE']) && !$CCrmInvoice->Delete($arResult['ELEMENT']['ID'])) { $arResult['ERROR_MESSAGE'] = GetMessage('CRM_DELETE_ERROR'); } if (empty($arResult['ERROR_MESSAGE'])) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_INVOICE_LIST'])); } else { ShowError($arResult['ERROR_MESSAGE']); } return; } else { ShowError(GetMessage('CRM_DELETE_ERROR')); return; } } } //$bStatusSuccess = CCrmStatusInvoice::isStatusSuccess($arResult['ELEMENT']['STATUS_ID']);
} elseif ($action === 'DELETE_ENTITY') { __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__)); $typeName = isset($_REQUEST['ENTITY_TYPE_NAME']) ? $_REQUEST['ENTITY_TYPE_NAME'] : ''; if ($typeName !== CCrmOwnerType::InvoiceName) { __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_ENTITY_TYPE_NOT_SUPPORTED', array('#ENTITY_TYPE#' => $typeName)))); } $ID = isset($_REQUEST['ENTITY_ID']) ? intval($_REQUEST['ENTITY_ID']) : 0; if ($ID <= 0) { __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_ENTITY_ID_NOT_FOUND'))); } if (!CCrmAuthorizationHelper::CheckDeletePermission(CCrmOwnerType::InvoiceName, $ID, $curUserPrems)) { __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_ACCESS_DENIED'))); } $entity = new CCrmInvoice(false); //$DB->StartTransaction(); $successed = $entity->Delete($ID); if ($successed) { //$DB->Commit(); __CrmMobileInvoiceEditEndResonse(array('DELETED_ENTITY_ID' => $ID)); } else { //$DB->Rollback(); __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_INVOICE_COULD_NOT_DELETE'))); } } elseif ($action === 'GET_ENTITY') { __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__)); $typeName = isset($_REQUEST['ENTITY_TYPE_NAME']) ? $_REQUEST['ENTITY_TYPE_NAME'] : ''; if ($typeName !== CCrmOwnerType::DealName) { __CrmMobileInvoiceEditEndResonse(array('ERROR' => GetMessage('CRM_ENTITY_TYPE_NOT_SUPPORTED', array('#ENTITY_TYPE#' => $typeName)))); } $ID = isset($_REQUEST['ENTITY_ID']) ? intval($_REQUEST['ENTITY_ID']) : 0; if ($ID <= 0) {
public static function delete($params) { global $DB; $ID = CCrmInvoiceRestUtil::getParamScalar($params, 'id', 0); if ($ID <= 0) { throw new RestException('Invalid identifier.'); } $invoice = new CCrmInvoice(); if (!CCrmInvoice::CheckUpdatePermission($ID)) { throw new RestException('Access denied.'); } $DB->StartTransaction(); if (!$invoice->Delete($ID)) { $DB->Rollback(); throw new RestException('Error on deleting invoice.'); } else { $DB->Commit(); } return $ID; }