public static void Перенумеровать(IObjectSpace os, КнигаПокуп book) { Int32 cur_num = 1; foreach (var line in book.КнПокСтр.OrderBy(x => x.ДатаСчФПрод)) { line.НомерПор = cur_num++; } }
public void Перенумеровать() { IObjectSpace os_cur = CommonMethods.FindObjectSpaceByObject(this); using (IObjectSpace os = os_cur.CreateNestedObjectSpace()) { КнигаПокуп book = os.GetObject <КнигаПокуп>(this); Перенумеровать(os, book); os.CommitChanges(); } }
public static void Обновить(IObjectSpace os, КнигаПокуп book) { os.Delete(book.КнПокСтр); Int32 cur_num = 1; book.Книга.СтрокиКниги.Sorting.Add(new SortProperty("Основание.Дата", DevExpress.Xpo.DB.SortingDirection.Ascending)); foreach (var line in book.Книга.СтрокиКниги) { КнПокСтр doc_line = os.CreateObject <КнПокСтр>(); book.КнПокСтр.Add(doc_line); doc_line.КнигаСтрока = line; doc_line.НомерПор = cur_num++; DateTime дата_учета = default(DateTime); // DateTime дата_учета = default(DateTime); foreach (Операция oper in line.Операции) { if (oper.Основание.Тип == Основание.ТипОснования.СФА) { ДокПдтвУпл pay_doc = null; foreach (ДокПдтвУпл doc in doc_line.ДокПдтвУпл) { if (doc.НомДокПдтвУпл == oper.ПДНомер && doc.ДатаДокПдтвУпл == oper.ПДДата) { pay_doc = doc; break; } } if (pay_doc == null) { pay_doc = os.CreateObject <ДокПдтвУпл>(); doc_line.ДокПдтвУпл.Add(pay_doc); pay_doc.НомДокПдтвУпл = oper.ПДНомер; pay_doc.ДатаДокПдтвУпл = oper.ПДДата; // дата_учета = oper.ПДДата; } } else { if (oper.СуммаСтоимость > 0) { if (дата_учета < oper.ДатаБУ) { дата_учета = oper.ДатаБУ; } } } if (oper.СуммаНДСВычет != 0) { doc_line.КодВидОпер = oper.ОфицВидОперации; if (oper.Ставка != СтавкаНДС.НЕОБЛ) { doc_line.СумНДСВыч += oper.СуммаНДСВычет; } } if (дата_учета < oper.ПДДата) { дата_учета = oper.ПДДата; } } if (doc_line.Основание.Тип != Основание.ТипОснования.СФА) { if (дата_учета > ValidationMethods._DATE_NULL) { doc_line.ДатаУчТов = дата_учета; } else { doc_line.ДатаУчТов = doc_line.ДатаСчФПрод; } } if (doc_line.СумНДСВыч == 0) { os.Delete(doc_line); cur_num--; } } }