Example #1
0
 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;
 }
Example #2
0
        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;
            }
        }
Example #3
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;
                }
            }
        }
Example #4
0
        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)
            {
            }
        }
Example #5
0
        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)
            {
            }
        }