/// <summary> /// Метод, вызываемый вместе с сохранением документа /// </summary> private void SavePositionsRoles(bool reloadPostions, List <DBCommand> cmds = null) { var positionRoles0 = DocumentPosition <PositionRole> .LoadByDocId(int.Parse(Id)); positionRoles0.ForEach(delegate(PositionRole p0) { var p = PositionRoles.FirstOrDefault(x => x.Id == p0.Id); if (p == null) { p0.Delete(false); } }); PositionRoles.ForEach(delegate(PositionRole p) { if (string.IsNullOrEmpty(p.Id)) { p.DocumentId = int.Parse(Id); p.Save(reloadPostions, cmds); return; } var p0 = positionRoles0.FirstOrDefault( x => x.Id == p.Id && (x.RoleId != p.RoleId || x.PersonId != p.PersonId)); if (p0 != null) { p.Save(reloadPostions, cmds); } }); }
/// <summary> /// Метод, вызываемый вместе с сохранением документа /// </summary> private void SavePositionsCommonFolders(bool reloadPostions, List <DBCommand> cmds) { var positionCommonFolders0 = DocumentPosition <PositionCommonFolder> .LoadByDocId(int.Parse(Id)); positionCommonFolders0.ForEach(delegate(PositionCommonFolder p0) { var p = PositionCommonFolders.FirstOrDefault(x => x.Id == p0.Id); if (p == null) { p0.Delete(false); } }); PositionCommonFolders.ForEach(delegate(PositionCommonFolder p) { if (string.IsNullOrEmpty(p.Id)) { p.DocumentId = int.Parse(Id); p.Save(reloadPostions, cmds); return; } var p0 = positionCommonFolders0.FirstOrDefault(x => x.Id == p.Id && x.ChangedTime != p.ChangedTime); if (p0 != null) { p.Save(reloadPostions, cmds); } }); }
/// <summary> /// Сохранение позиций документа /// </summary> public void SaveDocumentPositions(bool reloadPostions, List <DBCommand> cmds = null) { var documentPosition = DocumentPosition <DogovorPosition> .LoadByDocId(int.Parse(Id)); documentPosition.ForEach(delegate(DogovorPosition p0) { var p = DogovorPositionList.FirstOrDefault(x => x.Id == p0.PositionId.ToString()); if (p == null) { p0.Delete(false); } }); DogovorPositionList.ForEach(delegate(DogovorPosition p) { if (string.IsNullOrEmpty(p.PositionId.ToString())) { p.DocumentId = int.Parse(Id); p.Save(reloadPostions, cmds); return; } var p0 = documentPosition.FirstOrDefault( x => x.Id == p.Id && x.PositionId != p.PositionId); if (p0 != null) { p.Save(reloadPostions, cmds); } }); }
/// <summary> /// Инициализация списка PositionAdvancedGrants и загрузка позиций ПозицииУказанийИТПрава из БД /// </summary> public void LoadPositionAdvancedGrants() { if (Id.IsNullEmptyOrZero()) { PositionAdvancedGrants = new List <PositionAdvancedGrant>(); } else { PositionAdvancedGrants = DocumentPosition <PositionAdvancedGrant> .LoadByDocId(int.Parse(Id)); } }
/// <summary> /// Инициализация списка PositionCommonFolders и загрузка позиций ПозицииУказанийИТПапки из БД /// </summary> public void LoadPositionCommonFolders() { if (Id.IsNullEmptyOrZero()) { PositionCommonFolders = new List <PositionCommonFolder>(); } else { PositionCommonFolders = DocumentPosition <PositionCommonFolder> .LoadByDocId(int.Parse(Id)); } }
/// <summary> /// Инициализация списка PositionTypes и загрузка позиций ПозицииУказанийИТТипыЛиц из БД /// </summary> public void LoadPositionTypes() { if (Id.IsNullEmptyOrZero()) { PositionTypes = new List <PositionType>(); } else { PositionTypes = DocumentPosition <PositionType> .LoadByDocId(int.Parse(Id)); } }
/// <summary> /// Загрузка позиций документа /// </summary> private void LoadDogovorPosition() { if (Id.IsNullEmptyOrZero()) { DogovorPositionList = new List <DogovorPosition>(); } else { DogovorPositionList = DocumentPosition <DogovorPosition> .LoadByDocId(int.Parse(Id)); } }
/// <summary> /// ОказанныеУслуги /// </summary> public void LoadPositionFactUsl(string copyId = "") { if (Id.IsNullEmptyOrZero()) { if (copyId.IsNullEmptyOrZero()) { PositionFactUsl = new List <FactUsl>(); } else { PositionFactUsl = DocumentPosition <FactUsl> .LoadByDocId(int.Parse(copyId)); foreach (var item in PositionFactUsl) { item.Id = null; item.DocumentId = 0; } } } else { if (copyId.IsNullEmptyOrZero()) { PositionFactUsl = DocumentPosition <FactUsl> .LoadByDocId(int.Parse(Id)); } else { PositionFactUsl = DocumentPosition <FactUsl> .LoadByDocId(int.Parse(copyId)); foreach (var item in PositionFactUsl) { item.Id = null; item.DocumentId = 0; } } } }
/// <summary> /// Загрузка Позиции Счетов На Предоплату /// </summary> public void LoadPositionPrepaymentInvoice() { PositionPrepaymentInvoice = Id.IsNullEmptyOrZero() ? new List <PrepaymentInvoice>() : DocumentPosition <PrepaymentInvoice> .LoadByDocId(int.Parse(Id)); }
/// <summary> /// Сохранение табличных данных /// </summary> /// <param name="reloadPostions"></param> /// <param name="cmds"></param> public void SaveDocumentPositions(bool reloadPostions, List <DBCommand> cmds = null) { // товары var positionMris = DocumentPosition <Mris> .LoadByDocId(int.Parse(Id)); if (PositionMris != null && PositionMris.Count > 0) { PositionMris.ForEach(delegate(Mris p0) { var p = positionMris.FirstOrDefault(x => x.Id == p0.PositionId.ToString()); if (p == null) { p0.Delete(false); } }); PositionMris.ForEach(delegate(Mris p) { if (string.IsNullOrEmpty(p.PositionId.ToString())) { p.DocumentId = int.Parse(Id); p.Save(reloadPostions, cmds); return; } var p0 = positionMris.FirstOrDefault( x => x.Id == p.Id && x.PositionId != p.PositionId); if (p0 != null) { p.Save(reloadPostions, cmds); } }); } // услуги var positionFactUsl = DocumentPosition <FactUsl> .LoadByDocId(int.Parse(Id)); if (PositionFactUsl != null && PositionFactUsl.Count > 0) { PositionFactUsl.ForEach(delegate(FactUsl p0) { var p = positionFactUsl.FirstOrDefault(x => x.Id == p0.PositionId.ToString()); if (p == null) { p0.Delete(false); } }); PositionFactUsl.ForEach(delegate(FactUsl p) { if (string.IsNullOrEmpty(p.PositionId.ToString())) { p.DocumentId = int.Parse(Id); p.Save(reloadPostions, cmds); return; } var p0 = positionFactUsl.FirstOrDefault( x => x.Id == p.Id && x.PositionId != p.PositionId); if (p0 != null) { p.Save(reloadPostions, cmds); } }); } }
/// <summary> /// Сохранение позици ПозицииУказанийИТПапки /// </summary> /// <param name="folders">Список выбранных папок</param> /// <param name="reloadPostions">Перезапросить данные о позициях</param> public void SavePositionsCommonFoldersByDictionary(Dictionary <string, string> folders, bool reloadPostions) { //Удаляем те позиции, которых нет в списке var positionForClear = new List <PositionCommonFolder>(); foreach (var p in from p in PositionCommonFolders let f = folders.Where(x => x.Key == p.CommonFolderId.ToString()) .Select(x => (KeyValuePair <string, string>?)x) .FirstOrDefault() where f == null select p) { if (string.IsNullOrEmpty(p.Id)) { positionForClear.Add(p); } else { p.Delete(false); } } positionForClear.ForEach( delegate(PositionCommonFolder p) { PositionCommonFolders.RemoveAll(x => x.GuidId == p.GuidId); }); //получаем сохраненные позиции var cfSaved = DocumentPosition <PositionCommonFolder> .LoadByDocId(int.Parse(Id)); //сохраняем те выбранные элементы, для которых уже были созданы объекты PositionCommonFolders PositionCommonFolders.Where(x => string.IsNullOrEmpty(x.Id)).ToList().ForEach( delegate(PositionCommonFolder p) { if (cfSaved.Count > 0) { var cf = cfSaved.FirstOrDefault(x => x.CommonFolderId == p.CommonFolderId); if (cf != null) { return; } } p.DocumentId = int.Parse(Id); p.Save(false); }); //сохраняем те выбранные элементы, для которых не созданы объекты PositionCommonFolders foreach (var p in from f in folders let p = PositionCommonFolders.FirstOrDefault(x => x.CommonFolderId.ToString() == f.Key) where p == null select new PositionCommonFolder { DocumentId = int.Parse(Id), CommonFolderId = int.Parse(f.Key), CommonFolderName = f.Value }) { if (cfSaved.Count > 0) { var cf = cfSaved.FirstOrDefault(x => x.CommonFolderId == p.CommonFolderId); if (cf != null) { continue; } } p.Save(false); PositionCommonFolders.Add(p); } //удаляем те позиции, которых нет в PositionCommonFolders cfSaved.ForEach(delegate(PositionCommonFolder p) { var delP = PositionCommonFolders.FirstOrDefault(x => x.CommonFolderId == p.CommonFolderId); if (delP == null) { p.Delete(false); } }); if (reloadPostions) { LoadPositionCommonFolders(); } }