echo CUtil::PhpToJSObject(array('ERROR' => 'PRODUCT_ROWS_SAVING_ERROR')); } else { echo CUtil::PhpToJSObject(array('SAVE_PRODUCT_ROWS' => 'OK')); } } elseif ($mode === 'REMOVE_PRODUCT') { if ($perms->HavePerm($ownerName, BX_CRM_PERM_NONE, 'WRITE')) { echo CUtil::PhpToJSObject(array('ERROR' => 'PERMISSION_DENIED')); die; } $ID = isset($_POST['ID']) ? intval($_POST['ID']) : 0; if ($ID <= 0) { echo CUtil::PhpToJSObject(array('ERROR' => 'ID_NOT_FOUND')); die; } if (!CCrmProductRow::Delete($ID)) { echo CUtil::PhpToJSObject(array('ERROR' => CCrmProductRow::GetLastError())); } else { echo CUtil::PhpToJSObject(array('DELETED_PRODUCT_ID' => $ID)); } } elseif ($mode === 'CALCULATE_TOTALS') { if ($perms->HavePerm($ownerName, BX_CRM_PERM_NONE, 'WRITE')) { echo CUtil::PhpToJSObject(array('ERROR' => 'PERMISSION_DENIED')); die; } $productRows = isset($_POST['PRODUCTS']) && is_array($_POST['PRODUCTS']) ? $_POST['PRODUCTS'] : array(); $totalDiscount = 0.0; foreach ($productRows as &$productRow) { $productRow['ID'] = isset($productRow['ID']) ? intval($productRow['ID']) : 0; $productRow['PRODUCT_ID'] = isset($productRow['PRODUCT_ID']) ? intval($productRow['PRODUCT_ID']) : 0; $productRow['PRODUCT_NAME'] = isset($productRow['PRODUCT_NAME']) ? $productRow['PRODUCT_NAME'] : ''; $productRow['QUANTITY'] = isset($productRow['QUANTITY']) ? doubleval($productRow['QUANTITY']) : 1.0;
$arResult['duplicate']++; if ($enableDupFile) { __CrmImportWriteDataToFile($duplicateFilePath, isset($_SESSION['CRM_IMPORT_FILE_HEADERS']) ? $_SESSION['CRM_IMPORT_FILE_HEADERS'] : null, $arLead['__CSV_DATA__']); } } else { $arLead['PERMISSION'] = 'IMPORT'; if (!$CCrmLead->Add($arLead)) { $arResult['error']++; $arResult['error_data'][] = array('message' => $arLead['RESULT_MESSAGE'], 'data' => $arLead['__CSV_DATA__']); __CrmImportWriteDataToFile($errataFilePath, isset($_SESSION['CRM_IMPORT_FILE_HEADERS']) ? $_SESSION['CRM_IMPORT_FILE_HEADERS'] : null, $arLead['__CSV_DATA__']); } else { if (!empty($arLead)) { if (isset($arLead['PRODUCT_ROWS']) && count($arLead['PRODUCT_ROWS']) > 0) { if (!CCrmLead::SaveProductRows($arLead['ID'], $arLead['PRODUCT_ROWS'])) { $arResult['error']++; $arResult['error_data'][] = array('message' => CCrmProductRow::GetLastError(), 'data' => $arLead['__CSV_DATA__']); __CrmImportWriteDataToFile($errataFilePath, isset($_SESSION['CRM_IMPORT_FILE_HEADERS']) ? $_SESSION['CRM_IMPORT_FILE_HEADERS'] : null, $arLead['__CSV_DATA__']); } } $arResult['import']++; } } } } $_SESSION['CRM_IMPORT_FILE_POS'] = $filePos; $_SESSION['CRM_IMPORT_FILE_FIRST_HEADER'] = false; if ($arResult['error'] > 0) { $arResult['errata_url'] = SITE_DIR . 'bitrix/components/bitrix/crm.lead.import/show_file.php?name=errata'; } if ($enableDupFile && $arResult['duplicate'] > 0) { $arResult['duplicate_url'] = SITE_DIR . 'bitrix/components/bitrix/crm.lead.import/show_file.php?name=duplicate';
protected function innerDelete($ID, &$errors) { $entity = CCrmProductRow::GetByID($ID); if (!is_array($entity)) { $errors[] = "Product Row not found"; return false; } if (!CCrmAuthorizationHelper::CheckDeletePermission(CCrmProductRow::ResolveOwnerTypeName($entity['OWNER_TYPE']), $entity['OWNER_ID'])) { $errors[] = 'Access denied.'; return false; } $result = CCrmProductRow::Delete($ID, true, true); if ($result !== true) { $errors[] = CCrmProductRow::GetLastError(); } return $result; }