use \Bitrix\Sale\Internals\CompanyTable; use \Bitrix\Main\Application; use Bitrix\Sale\Services\Company; use Bitrix\Main; use Bitrix\Main\Config; use Bitrix\Main\Localization\Loc; require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); $saleModulePermissions = $APPLICATION->GetGroupRight("sale"); if ($saleModulePermissions < "W") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); global $USER_FIELD_MANAGER, $USER; IncludeModuleLangFile(__FILE__); Main\Loader::includeModule('sale'); $documentRoot = Application::getDocumentRoot(); $lang = Application::getInstance()->getContext()->getLanguage(); $request = Application::getInstance()->getContext()->getRequest(); $id = intval($request->get("ID")); $company = array(); $errorMessage = ''; if ($request->isPost() && $request->getPost("update") && check_bitrix_sessid() && $saleModulePermissions == 'W') { $name = $request->getPost('NAME'); $locationId = $request->getPost('LOCATION_ID'); if (empty($name)) $errorMessage .= GetMessage('ERROR_NO_NAME')."\n"; if (empty($errorMessage)) { $uFields = array(); $USER_FIELD_MANAGER->EditFormAddFields(CompanyTable::getUfId(), $uFields); $fields = array( 'NAME' => $name, 'LOCATION_ID' => $locationId, 'ADDRESS' => $request->getPost('ADDRESS'), 'CODE' => $request->getPost('CODE'), 'ACTIVE' => ($request->getPost('ACTIVE') !== null) ? 'Y' : 'N' ); if ($request->getPost('SORT') > 0) $fields['SORT'] = $request->getPost('SORT'); $fields = array_merge($fields, $uFields); if ($id > 0) { \Bitrix\Sale\Internals\CompanyGroupTable::deleteByCompanyId($id); \Bitrix\Sale\Internals\CompanyResponsibleGroupTable::deleteByCompanyId($id); } $result = null; if ($id > 0) { $fields['DATE_MODIFY'] = new \Bitrix\Main\Type\DateTime(); $fields['MODIFIED_BY'] = $USER->GetID(); $result = CompanyTable::update($id, $fields); } else { $fields['XML_ID'] = $request->getPost('XML_ID'); $fields['DATE_CREATE'] = new \Bitrix\Main\Type\DateTime(); $fields['CREATED_BY'] = $USER->GetID(); $result = CompanyTable::add($fields); } if ($result && $result->isSuccess()) { $id = $result->getId(); if ($groups = $request->getPost('GROUPS')) { foreach ($groups as $groupId) { $r = \Bitrix\Sale\Internals\CompanyGroupTable::add(array( 'COMPANY_ID' => $id, 'GROUP_ID' => $groupId, )); } } if ($responsibleGroups = $request->getPost('RESPONSIBLE_GROUPS')) { foreach ($responsibleGroups as $groupId) { $r = \Bitrix\Sale\Internals\CompanyResponsibleGroupTable::add(array( 'COMPANY_ID' => $id, 'GROUP_ID' => $groupId, )); } } if ($request->getPost("apply") == '') LocalRedirect("/bitrix/admin/sale_company.php?lang=".$lang."&".GetFilterParams("filter_", false)); else LocalRedirect("/bitrix/admin/sale_company_edit.php?lang=".$lang."&ID=".$id."&".GetFilterParams("filter_", false)); } else { $errorMessage .= join("\n", $result->getErrorMessages()); } } } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); Main\Page\Asset::getInstance()->addJs("/bitrix/js/sale/company.js"); if ($errorMessage !== '') CAdminMessage::ShowMessage($errorMessage); if ($id > 0) { $select = array('*', 'CREATED', 'MODIFIED'); $fields = $USER_FIELD_MANAGER->GetUserFields(CompanyTable::getUfId()); foreach ($fields as $field) $select[] = $field['FIELD_NAME']; $params = array( 'select' => $select, 'filter' => array('ID' => $id) ); $res = CompanyTable::getList($params); $company = $res->fetch(); $APPLICATION->SetTitle(str_replace("#NAME#", $company['NAME'], GetMessage("COMPANY_TITLE_UPDATE"))); } else { $APPLICATION->SetTitle(GetMessage("COMPANY_TITLE_ADD")); } $aTabs = array( array("DIV" => "edit1", "TAB" => GetMessage("COMPANY_TAB"), "TITLE" => GetMessage("COMPANY_TAB_DESCR")), array("DIV" => "edit2", "TAB" => GetMessage("COMPANY_USER_FIELD_TAB"), "TITLE" => GetMessage("COMPANY_USER_FIELD_TAB_DESCR")), array("DIV" => "edit3", "TAB" => GetMessage("COMPANY_RULES_USE_TAB"), "TITLE" => GetMessage("COMPANY_RULES_USE_TAB_DESCR")), ); $tabControl = new CAdminForm("company_edit", $aTabs); $tabControl->BeginPrologContent(); echo $USER_FIELD_MANAGER->ShowScript(); $tabControl->EndPrologContent(); $tabControl->BeginEpilogContent(); echo bitrix_sessid_post(); ?> $tabControl->EndEpilogContent(); $tabControl->Begin(array("FORM_ACTION" => $APPLICATION->GetCurPage()."?ID=".$id."&lang=".$lang)); $tabControl->BeginNextFormTab(); $fields = ($request->isPost()) ? $_POST : $company; $tabControl->AddViewField("ID", "ID:", $company['ID']); if ($id > 0) { $createdBy = htmlspecialcharsbx($company['SALE_INTERNALS_COMPANY_CREATED_LAST_NAME']).' '.htmlspecialcharsbx($company['SALE_INTERNALS_COMPANY_CREATED_NAME']); $modifiedBy = htmlspecialcharsbx($company['SALE_INTERNALS_COMPANY_CREATED_LAST_NAME']).' '.htmlspecialcharsbx($company['SALE_INTERNALS_COMPANY_CREATED_NAME']); $tabControl->AddViewField('DATE_CREATE', GetMessage("COMPANY_DATE_CREATE"), $company['DATE_CREATE']); $tabControl->AddViewField('DATE_MODIFY', GetMessage("COMPANY_DATE_MODIFY"), $company['DATE_MODIFY']); $tabControl->AddViewField('CREATED_BY', GetMessage("COMPANY_CREATED_BY"), $createdBy); if ($modifiedBy) $tabControl->AddViewField('MODIFIED_BY', GetMessage("COMPANY_MODIFIED_BY"), $modifiedBy); } $tabControl->AddCheckBoxField("ACTIVE", GetMessage("COMPANY_ACTIVE"), false, 'Y', $fields['ACTIVE'] != 'N'); $tabControl->AddEditField("NAME", GetMessage("COMPANY_NAME"), true, array('size' => 120), htmlspecialcharsbx($fields['NAME'])); $tabControl->BeginCustomField('LOCATIONS', GetMessage("COMPANY_LOCATION_ID")); if ($saleModulePermissions >= 'W'):?>