public static ПериодНДС ПолучитьПериод(IObjectSpace os, DateTime date, ref IList <ПериодНДС> periods) { ПериодНДС result = null; if (periods == null) { periods = os.GetObjects <ПериодНДС>(); } foreach (var period in periods) { if (period.ДатаС <= date && date < period.ДатаПо.AddDays(1)) { result = period; break; } } if (result == null) { result = os.CreateObject <ПериодНДС>(); result.TimeBorderSet(date); } return(result); }
protected override void OnChanged(string propertyName, object oldValue, object newValue) { base.OnChanged(propertyName, oldValue, newValue); if (IsLoading) { return; } Decimal old_summa; switch (propertyName) { case "ОснованиеРегНомер": if (!String.IsNullOrEmpty(ОснованиеРегНомер)) { if (ОснованиеДокумент == null || ОснованиеРегНомер != ОснованиеДокумент.егНомер) { ОснованиеДокумент = Session.FindObject <ОснованиеДокумент>( PersistentCriteriaEvaluationBehavior.InTransaction, new BinaryOperator("РегНомер", ОснованиеРегНомер)); if (ОснованиеДокумент == null) { Основание = null; } } } else { Основание = null; } break; case "Контейнер": if (Контейнер != null) { ПериодБУ = Контейнер.ПериодБУ; ПериодНДС = Контейнер.ПериодНДС; } break; case "ТипКниги": case "ПериодНДС": ОбновитьСтрокуКниги(); break; case "КнигаСтрока": КнигаСтрока old_str = (КнигаСтрока)oldValue; // ОбновитьСтрокуКниги(); if (old_str != null) { ОбновитьСтрокуКнигиВычесть(old_str); } if (КнигаСтрока != null) { ОбновитьСтрокуКнигиДобавить(КнигаСтрока); } break; case "Основание": if (Основание != null) { if (ОснованиеДокумент == null || Основание != ОснованиеДокумент.Основание) { ОснованиеДокумент = Основание.ДействующийДокумент; } ОбновитьСтрокуКниги(); } else { ОснованиеДокумент = null; } UpdateTypes(); break; case "ОснованиеДокумент": if (ОснованиеДокумент != null) { Основание = ОснованиеДокумент.Основание; } break; case "ДатаБУ": if (Контейнер != null && Контейнер.ПериодБУ != null) { ПериодБУ = Контейнер.ПериодБУ; } else { if (ДатаБУ < new DateTime(2015, 1, 1)) { break; } ПериодБУ = Session.FindObject <ПериодБУ>(PersistentCriteriaEvaluationBehavior.InTransaction, new BinaryOperator("ДатаС", ДатаБУ, BinaryOperatorType.LessOrEqual) & new BinaryOperator("ДатаПо", ДатаБУ, BinaryOperatorType.GreaterOrEqual)); if (ПериодБУ == null) { ПериодБУ = new ПериодБУ(Session); ПериодБУ.Налогоплательщик = Контейнер.Налогоплательщик; ПериодБУ.ДатаПериода = ДатаБУ; } } break; case "ДатаНДС": if (Контейнер != null && Контейнер.ПериодНДС != null) { ПериодНДС = Контейнер.ПериодНДС; } else { if (ДатаНДС < new DateTime(2000, 1, 1)) { break; } ПериодНДС = Session.FindObject <ПериодНДС>(PersistentCriteriaEvaluationBehavior.InTransaction, new BinaryOperator("ДатаС", ДатаНДС, BinaryOperatorType.LessOrEqual) & new BinaryOperator("ДатаПо", ДатаНДС, BinaryOperatorType.GreaterOrEqual)); if (ПериодНДС == null) { ПериодНДС = new ПериодНДС(Session); ПериодНДС.Налогоплательщик = Контейнер.Налогоплательщик; ПериодНДС.ДатаПериода = ДатаНДС; } } break; case "ТипОперВнутр": UpdateTypes(); break; case "ТипОсновной": UpdateTypes(); break; case "ТипНапрОпер": UpdateTypes(); break; case "ТипДеятельности": UpdateTypes(); break; case "СуммаВсего": old_summa = (Decimal)oldValue; if (КнигаСтрока != null) { КнигаСтрока.СуммаВсего -= old_summa; КнигаСтрока.СуммаВсего += СуммаВсего; } break; case "СуммаСтоимость": old_summa = (Decimal)oldValue; if (КнигаСтрока != null) { КнигаСтрока.СуммаСтоимость -= old_summa; КнигаСтрока.СуммаСтоимость += СуммаСтоимость; } break; case "СуммаНДСБаза": old_summa = (Decimal)oldValue; if (КнигаСтрока != null) { КнигаСтрока.СуммаНДСБаза -= old_summa; КнигаСтрока.СуммаНДСБаза += СуммаНДСБаза; } break; case "СуммаНДСВычет": old_summa = (Decimal)oldValue; if (КнигаСтрока != null) { КнигаСтрока.СуммаНДСВычет -= old_summa; КнигаСтрока.СуммаНДСВычет += СуммаНДСВычет; } break; case "СуммаНДССтоимость": old_summa = (Decimal)oldValue; if (КнигаСтрока != null) { КнигаСтрока.СуммаНДССтоимость -= old_summa; КнигаСтрока.СуммаНДССтоимость += СуммаНДССтоимость; } break; case "СуммаНДС19Входящий": old_summa = (Decimal)oldValue; if (КнигаСтрока != null) { КнигаСтрока.СуммаНДС19Входящий -= old_summa; КнигаСтрока.СуммаНДС19Входящий += СуммаНДС19Входящий; } break; case "СуммаНДС19Списано": old_summa = (Decimal)oldValue; if (КнигаСтрока != null) { КнигаСтрока.СуммаНДС19Списано -= old_summa; КнигаСтрока.СуммаНДС19Списано += СуммаНДС19Списано; } break; } }