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_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { if (((DBSolom.Financing)e.Row.Item).Id == 0) { ((DBSolom.Financing)e.Row.Item).Створив = db.Users.FirstOrDefault(f => f.Видалено == false && f.Логін == Func.Login); } ((DBSolom.Financing)e.Row.Item).Змінив = db.Users.FirstOrDefault(f => f.Видалено == false && f.Логін == Func.Login); ((DBSolom.Financing)e.Row.Item).Змінено = DateTime.Now; if (e.EditAction != DataGridEditAction.Cancel) { if (((DBSolom.Financing)e.EditingElement.DataContext).Головний_розпорядник != null && ((DBSolom.Financing)e.EditingElement.DataContext).КЕКВ != null && ((DBSolom.Financing)e.EditingElement.DataContext).КФК != null && ((DBSolom.Financing)e.EditingElement.DataContext).Мікрофонд != null) { #region "Fields of Cell" DateTime date = ((DBSolom.Financing)e.Row.Item).Проведено; KFK KFK = ((DBSolom.Financing)e.Row.Item).КФК; Main_manager Main_manager = ((DBSolom.Financing)e.Row.Item).Головний_розпорядник; KEKB KEKB = ((DBSolom.Financing)e.Row.Item).КЕКВ; Foundation FOND = ((DBSolom.Financing)e.Row.Item).Мікрофонд.Фонд; MicroFoundation MicroFond = ((DBSolom.Financing)e.Row.Item).Мікрофонд; #endregion var x = Func.GetCurrentPlanAndRemainderFromDBPerMonth(db, date.Year, KFK, Main_manager, KEKB, FOND); if ((x[TypeOfFinanceData.Remainders][date.Month - 1] < 0)) { DGM.CancelEdit(DataGridEditingUnit.Cell); MessageBox.Show(($"[Дата: {date.ToShortDateString()}] [Фонд: {FOND.Код}] [КПБ: {KFK.Код}]" + $" [Головний розпорядник: {Main_manager.Найменування}] [КЕКВ: {KEKB.Код}]" + $" [Місяць: {Func.names_months[date.Month - 1]}] [Остаток:{x[TypeOfFinanceData.Remainders][date.Month - 1]}]"), "Maestro", MessageBoxButton.OK, MessageBoxImage.Error); return; } } } else { ((DBSolom.Financing)e.Row.Item).Сума = 0; } }
private void DGM_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { if (((DBSolom.Filling)e.Row.Item).Id == 0) { ((DBSolom.Filling)e.Row.Item).Створив = db.Users.FirstOrDefault(f => f.Видалено == false && f.Логін == Func.Login); } ((DBSolom.Filling)e.Row.Item).Змінив = db.Users.FirstOrDefault(f => f.Видалено == false && f.Логін == Func.Login); ((DBSolom.Filling)e.Row.Item).Змінено = DateTime.Now; if (((DBSolom.Filling)e.Row.Item).Головний_розпорядник != null && ((DBSolom.Filling)e.Row.Item).КДБ != null && ((DBSolom.Filling)e.Row.Item).КЕКВ != null && ((DBSolom.Filling)e.Row.Item).КФБ != null && ((DBSolom.Filling)e.Row.Item).КФК != null && ((DBSolom.Filling)e.Row.Item).Фонд != null) { #region "Fiels of Cell" DateTime date = ((DBSolom.Filling)e.EditingElement.DataContext).Проведено; KFK KFK = ((DBSolom.Filling)e.EditingElement.DataContext).КФК; Main_manager Main_manager = ((DBSolom.Filling)e.EditingElement.DataContext).Головний_розпорядник; KEKB KEKB = ((DBSolom.Filling)e.EditingElement.DataContext).КЕКВ; Foundation FOND = ((DBSolom.Filling)e.EditingElement.DataContext).Фонд; #endregion List <string> errors = Func.ChangeFinDocIsAllow(db, date, KFK, Main_manager, KEKB, FOND); if (errors.Count > 0) { e.Cancel = true; string s = ""; foreach (var item in errors) { s = s + item + "\n"; } MessageBox.Show(s, "Maestro", MessageBoxButton.OK, MessageBoxImage.Error); return; } } }
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) { } }
private void DGM_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e) { if (DGM.CurrentItem != null) { ItemIndexInDGM = DGM.Items.IndexOf(DGM.CurrentItem); } try { if (DGM.SelectedCells.Count > 0 && EXPCALC.IsExpanded) { if (DGM.SelectedCells.Count == 1) { if (DGM.CurrentColumn.Header.ToString() == "Сума" && ((DBSolom.Financing)e.AddedCells[0].Item).Проведено != null && ((DBSolom.Financing)e.AddedCells[0].Item).Головний_розпорядник != null && ((DBSolom.Financing)e.AddedCells[0].Item).КЕКВ != null && ((DBSolom.Financing)e.AddedCells[0].Item).КФК != null && ((DBSolom.Financing)e.AddedCells[0].Item).Мікрофонд != null) { List <string> vs = Func.names_months; double yearSumFilling = 0; double yearSumCorrection = 0; double yearSumFinancing = 0; double periodSumFilling = 0; double periodSumCorrection = 0; double periodSumFinancing = 0; #region "Fiels of Cell" DateTime date = ((DBSolom.Financing)e.AddedCells[0].Item).Проведено; KFK KFK = ((DBSolom.Financing)e.AddedCells[0].Item).КФК; Main_manager Main_manager = ((DBSolom.Financing)e.AddedCells[0].Item).Головний_розпорядник; KEKB KEKB = ((DBSolom.Financing)e.AddedCells[0].Item).КЕКВ; Foundation FOND = ((DBSolom.Financing)e.AddedCells[0].Item).Мікрофонд.Фонд; MicroFoundation MicroFond = ((DBSolom.Financing)e.AddedCells[0].Item).Мікрофонд; #endregion DBSolom.Db mdb = new Db(Func.GetConnectionString); #region "Foundation" #region "Filling" List <DBSolom.Filling> qfil = 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.Проведено.Year == date.Year && w.КЕКВ.Код == KEKB.Код && w.КФК.Код == KFK.Код && w.Фонд.Код == FOND.Код).ToList(); for (int j = 0; j < date.Month; j++) { periodSumFilling += qfil.Select(s => (double)s.GetType().GetProperty(vs[j]).GetValue(s)).Sum(); } for (int j = 0; j < 11; j++) { yearSumFilling += qfil.Select(s => (double)s.GetType().GetProperty(vs[j]).GetValue(s)).Sum(); } #endregion #region "Correction" List <DBSolom.Correction> qcorr = mdb.Corrections .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.Проведено.Year == date.Year && w.КЕКВ.Код == KEKB.Код && w.КФК.Код == KFK.Код && w.Мікрофонд.Фонд.Код == FOND.Код).ToList(); for (int j = 0; j < date.Month; j++) { periodSumCorrection += qcorr.Select(s => (double)s.GetType().GetProperty(vs[j]).GetValue(s)).Sum(); } for (int j = 0; j < 11; j++) { yearSumCorrection += qcorr.Select(s => (double)s.GetType().GetProperty(vs[j]).GetValue(s)).Sum(); } #endregion #region "Financing" List <DBSolom.Financing> qfin = mdb.Financings.Where(w => w.Видалено == false && w.Головний_розпорядник.Найменування == Main_manager.Найменування && w.Проведено.Year == date.Year && w.КЕКВ.Код == KEKB.Код && w.КФК.Код == KFK.Код && w.Мікрофонд.Фонд.Код == FOND.Код).ToList(); db.Financings.Local.Where(w => w.Видалено == false && w.Головний_розпорядник.Найменування == Main_manager.Найменування && w.Проведено.Year == date.Year && w.КЕКВ.Код == KEKB.Код && w.КФК.Код == KFK.Код && w.Мікрофонд.Фонд.Код == FOND.Код) .ToList() .ForEach(item => { if (db.Entry(item).State != EntityState.Unchanged) { qfin.Add(item); } }); yearSumFinancing = qfin.Select(s => s.Сума).Sum(); periodSumFinancing = qfin.Where(w => w.Проведено <= date).Select(s => s.Сума).Sum(); #endregion GRPBYearFond.Content = (yearSumFilling + yearSumCorrection - yearSumFinancing).ToString("N2", CultureInfo.CreateSpecificCulture("ru-RU")); GRPBPeriodFond.Content = (periodSumFilling + periodSumCorrection - periodSumFinancing).ToString("N2", CultureInfo.CreateSpecificCulture("ru-RU")); #endregion } double d; if (double.TryParse(DGM.SelectedCells.First().Item.GetType().GetProperty(DGM.SelectedCells.FirstOrDefault().Column.Header.ToString()).GetValue(DGM.SelectedCells.First().Item).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; } } 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) { } }