public CurrPlanEntity(DBSolom.Db db, long Id, Main_manager main_Manager, MicroFoundation microFoundation, KFK kFK, KFB kFB, KDB kDB, KEKB kEKB, double one, double two, double three, double four, double five, double six, double seven, double eight, double nine, double ten, double eleven, double twelve) { this.Id = Id; Головний_розпорядник = main_Manager; if (microFoundation.Фонд is null) { Фонд = db.MicroFoundations.Include(i => i.Фонд).FirstOrDefault(w => w.Видалено == false && w.Повністю == microFoundation.Повністю).Фонд; } else { Фонд = microFoundation.Фонд; } Мікрофонд = microFoundation; КФК = kFK; КФБ = kFB; КДБ = kDB; КЕКВ = kEKB; Січень = one; Лютий = two; Березень = three; Квітень = four; Травень = five; Червень = six; Липень = seven; Серпень = eight; Вересень = nine; Жовтень = ten; Листопад = eleven; Грудень = twelve; }
private void DGM_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e) { try { if (DGM.SelectedCells.Count > 0 && EXPEVAL.IsExpanded) { if (DGM.SelectedCells.Count == 1) { if (Func.names_months.Contains(DGM.CurrentColumn.Header.ToString()) && ((MicroFilling)e.AddedCells[0].Item).Головний_розпорядник != null && ((MicroFilling)e.AddedCells[0].Item).КФБ != null && ((MicroFilling)e.AddedCells[0].Item).КДБ != null && ((MicroFilling)e.AddedCells[0].Item).КЕКВ != null && ((MicroFilling)e.AddedCells[0].Item).КФК != null && ((MicroFilling)e.AddedCells[0].Item).Мікрофонд != null) { #region "Fiels of Cell" DateTime date = ((MicroFilling)DGM.CurrentItem).Проведено; KFK KFK = ((MicroFilling)DGM.CurrentItem).КФК; Main_manager Main_manager = ((MicroFilling)DGM.CurrentItem).Головний_розпорядник; KFB KFB = ((MicroFilling)DGM.CurrentItem).КФБ; KDB KDB = ((MicroFilling)DGM.CurrentItem).КДБ; KEKB KEKB = ((MicroFilling)DGM.CurrentItem).КЕКВ; MicroFoundation MicroFond = ((MicroFilling)DGM.CurrentItem).Мікрофонд; #endregion DBSolom.Db mdb = new Db(Func.GetConnectionString); #region "Current" //Заполнение//////////////////////////////////////////////////////////////////////////////////// List <DBSolom.Filling> qfill = mdb.Fillings .Include(i => i.Головний_розпорядник) .Include(i => i.КФБ) .Include(i => i.КДБ) .Include(i => i.КЕКВ) .Include(i => i.КФК) .Include(i => i.Фонд) .Where(w => w.Видалено == false && w.Головний_розпорядник.Найменування == Main_manager.Найменування && w.КФБ.Код == KFB.Код && w.КДБ.Код == KDB.Код && w.КЕКВ.Код == KEKB.Код && w.КФК.Код == KFK.Код && w.Фонд.Код == MicroFond.Фонд.Код && w.Проведено.Year == date.Year).ToList(); double fill = qfill.Select(s => (double)(s.GetType().GetProperty(DGM.CurrentColumn.Header.ToString()).GetValue(s))).Sum(); //////////////////////////////////////////////////////////////////////////////////////////////// //Мікрозаполнение/////////////////////////////////////////////////////////////////////////////// List <MicroFilling> qcurr = mdb.Microfillings .Where(w => w.Видалено == false && w.Головний_розпорядник.Найменування == Main_manager.Найменування && w.Проведено.Year == date.Year && w.КФБ.Код == KFB.Код && w.КДБ.Код == KDB.Код && w.КЕКВ.Код == KEKB.Код && w.КФК.Код == KFK.Код && w.Мікрофонд.Фонд.Код == MicroFond.Фонд.Код).ToList(); db.Microfillings.Local .Where(w => w.Видалено == false && w.Головний_розпорядник.Найменування == Main_manager.Найменування && w.Проведено.Year == date.Year && w.КФБ.Код == KFB.Код && w.КДБ.Код == KDB.Код && w.КЕКВ.Код == KEKB.Код && w.КФК.Код == KFK.Код && w.Мікрофонд.Фонд.Код == MicroFond.Фонд.Код) .ToList() .ForEach(item => { if (db.Entry(item).State != EntityState.Unchanged) { qcurr.Add(item); } }); double curr = qcurr.Select(s => (double)(s.GetType().GetProperty(DGM.CurrentColumn.Header.ToString()).GetValue(s))).Sum(); //////////////////////////////////////////////////////////////////////////////////////////////// GRPBCurr.Content = (fill - curr).ToString("N2", CultureInfo.CreateSpecificCulture("ru-RU")); #endregion mdb = new Db(Func.GetConnectionString); #region "All" //Заполнение//////////////////////////////////////////////////////////////////////////////////// qfill = mdb.Fillings .Include(i => i.Головний_розпорядник) .Include(i => i.КФК) .Include(i => i.Фонд) .Where(w => w.Видалено == false && w.Головний_розпорядник.Найменування == Main_manager.Найменування && w.КФК.Код == KFK.Код && w.Фонд.Код == MicroFond.Фонд.Код && w.Проведено.Year == date.Year) .ToList(); fill = qfill.Select(s => (double)(s.GetType().GetProperty(DGM.CurrentColumn.Header.ToString()).GetValue(s))).Sum(); //////////////////////////////////////////////////////////////////////////////////////////////// //Мікрозаполнение/////////////////////////////////////////////////////////////////////////////// qcurr = mdb.Microfillings .Where(w => w.Видалено == false && w.Головний_розпорядник.Найменування == Main_manager.Найменування && w.Проведено.Year == date.Year && w.КФК.Код == KFK.Код && w.Мікрофонд.Фонд.Код == MicroFond.Фонд.Код).ToList(); db.Microfillings.Local .Where(w => w.Видалено == false && w.Головний_розпорядник.Найменування == Main_manager.Найменування && w.Проведено.Year == date.Year && w.КФК.Код == KFK.Код && w.Мікрофонд.Фонд.Код == MicroFond.Фонд.Код) .ToList() .ForEach(item => { if (db.Entry(item).State != EntityState.Unchanged) { qcurr.Add(item); } }); curr = qcurr.Select(s => (double)(s.GetType().GetProperty(DGM.CurrentColumn.Header.ToString()).GetValue(s))).Sum(); //////////////////////////////////////////////////////////////////////////////////////////////// GRPBAll.Content = (fill - curr).ToString("N2", CultureInfo.CreateSpecificCulture("ru-RU")); #endregion double d; double.TryParse(DGM.CurrentItem.GetType().GetProperty(DGM.CurrentColumn.Header.ToString()).GetValue(DGM.CurrentItem).ToString(), out d); GRPBElm.Content = "1"; GRPBSum.Content = d.ToString("N2", CultureInfo.CreateSpecificCulture("ru-RU")); GRPBSred.Content = ""; GRPBMin.Content = ""; GRPBMax.Content = ""; } } else { double sum = 0; int counter = 0; double min = double.MaxValue; double max = 0; foreach (var item in DGM.SelectedCells) { double d; if (double.TryParse(item.Item.GetType().GetProperty(item.Column.Header.ToString()).GetValue(item.Item)?.ToString(), out d)) { if (d > max) { max = d; } if (d < min) { min = d; } counter++; sum += d; } } GRPBAll.Content = "Лише 1 комірка"; GRPBCurr.Content = "Лише 1 комірка"; GRPBElm.Content = counter.ToString("N0", CultureInfo.CreateSpecificCulture("ru-RU")); GRPBSum.Content = sum.ToString("N2", CultureInfo.CreateSpecificCulture("ru-RU")); GRPBSred.Content = (sum == 0 ? 0 : sum / counter).ToString("N2", CultureInfo.CreateSpecificCulture("ru-RU")); GRPBMin.Content = min.ToString("N2", CultureInfo.CreateSpecificCulture("ru-RU")); GRPBMax.Content = max.ToString("N2", CultureInfo.CreateSpecificCulture("ru-RU")); } } } catch (Exception) { } }