[ELMA3] Отображение в карточке контрагента документов
Рассмотрим пример, как сделать так, чтобы в карточке Контрагента отображались документы, в которых контрагент указан в качестве атрибута. В результате получим в карточке контрагента дополнительную вкладку с нужными документами.
Допустим у нас есть тип документа Договор (Dogovor) с атрибутом Контрагент (Kontragent).
- Для типа документа Договор нужно установить свойство Генерировать фильтр, для атрибута Контрагент – Участвует в поиске(фильтре).
- Скопировать форму просмотра юридического лица (файл c:\ELMA3-Standart\Web\Modules\EleWise.ELMA.CRM.Web\Views\ContractorLegal\TabView.cshtml ) в папку конфигурации\WebApplication\Modules\EleWise.ELMA.CRM.Web\Views\ContractorLegal. Если каких-то папок не хватает, то их нужно создать.
- Открыть скопированную форму в любом текстовом редакторе и дописать в конец:
var docFilterdog = new EleWise.ELMA.Documents.Models.DogovorFilter(); docFilterdog.Kontragent = Model.Entity; var docCount_dog = EntityManager<EleWise.ELMA.Documents.Models.Dogovor>.Instance.Count((EleWise.ELMA.Documents.Models.IDogovorFilter)docFilterdog); tabs.Add( new EleWise.ELMA.Web.Mvc.Models.Selectors.TabPanelItem { Text = SR.T("Договоры ({0})", docCount_dog), TabIndex = 5, Selected = seletedTab == 5 }).Content(@<text> <div> @Html.Action("Grid", "FilterDocumentFolder", new RouteValueDictionary { { "id", null }, { "area", "EleWise.ELMA.Documents.Web" }, {"DocumentFilter.Types[0].TypeUid", EleWise.ELMA.Model.Services.InterfaceActivator.UID<EleWise.ELMA.Documents.Models.Dogovor>().ToString()}, { "DocumentFilter.__TypeName", "EleWise.ELMA.Documents.Models.DogovorFilter, EleWise.ELMA.DynamicModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" }, { "DocumentFilter.Kontragent.Id", Model.Entity.Id }, { "enableChecked", false }, { "mergeFilter", false } }) </div> </text>); }).UseTabProvider(true).Render())
В результате в карточке контрагента появится дополнительная вкладка Договоры со списком договоров контрагента.
Пример полной формы во вложении.