private void дни_льгота()
 {
     foreach (льготы uRow in de.льготы
              .Where(n => n.клиент == клКлиент.клиент && n.услуга == клУслуга.услуга)
              .OrderBy(n => n.дата_с))
     {
         if (uRow.дата_по == null)
         {
             for (DateTime dm = uRow.дата_с; dm < maxData; dm = dm.AddDays(1))
             {
                 if (dicTemp2.ContainsKey(dm))
                 {
                     temp2 tRow = dicTemp2[dm];
                     tRow.льгота = true;
                 }
             }
         }
         else
         {
             for (DateTime dm = uRow.дата_с; dm <= uRow.дата_по; dm = dm.AddDays(1))
             {
                 if (dicTemp2.ContainsKey(dm))
                 {
                     temp2 tRow = dicTemp2[dm];
                     tRow.льгота = true;
                 }
             }
         }
     }
 }
 private void дни_простой()
 {
     foreach (простои uRow in de.простои
              .Where(n => n.клиент == клКлиент.клиент && n.услуга == клУслуга.услуга)
              .OrderBy(n => n.дата_с))
     {
         if (uRow.дата_по == null)
         {
             for (DateTime dm = uRow.дата_с; dm < maxData; dm = dm.AddDays(1))
             {
                 if (dicTemp2.ContainsKey(dm))
                 {
                     temp2 tRow = dicTemp2[dm];
                     tRow.простой = true;
                     tRow.прим    = uRow.наимен;
                 }
             }
         }
         else
         {
             for (DateTime dm = uRow.дата_с; dm <= uRow.дата_по; dm = dm.AddDays(1))
             {
                 if (dicTemp2.ContainsKey(dm))
                 {
                     temp2 tRow = dicTemp2[dm];
                     tRow.простой = true;
                     tRow.прим    = uRow.наимен;
                 }
             }
         }
     }
 }
        void заполнить_начислено()
        {
            temp2 newTemp2 = new temp2();

            newTemp2.год = клМесяц.год;
            foreach (цены uRow in de.цены
                     .Where(n => n.год == клМесяц.год)
                     .Where(n => n.услуга == клУслуга.услуга))
            {
                аТариф[uRow.месяц - 1] = (int)uRow.стоимость;
                newTemp2.SetFild(uRow.месяц, uRow.стоимость);
            }
            temp2List.Add(newTemp2);
            bindingSource2.DataSource = temp2List;
        }
 private void заполнить_дни()
 {
     foreach (годы gg in de.годы.Where(n => n.год <= текГод + 1).Where(n => n.год >= начало.Year).OrderBy(n => n.год))
     {
         foreach (var mm in de.месяцы.OrderBy(n => n.месяц))
         {
             int длина = DateTime.DaysInMonth(gg.год, mm.месяц);
             for (int d = 1; d <= длина; d++)
             {
                 DateTime dt = new DateTime(gg.год, mm.месяц, d);
                 if (dt >= начало)
                 {
                     temp2 NewRow = new temp2();
                     NewRow.дата  = dt;
                     NewRow.год   = gg.год;
                     NewRow.месяц = mm.месяц;
                     NewRow.день  = d;
                     temp2List.Add(NewRow);
                 }
             }
         }
     }
 }
Exemple #5
0
        public void tempfun2() {
            string l_conn = @"server=172.26.100.8;Connection Lifetime=100;Connection Timeout=600;uid=sa;pwd=hp1020.;dataBase=UOF";
            ivContext.資料管理員 = new YJDbManager(l_conn);
            DataView l_dv = ivContext.資料管理員.getDataViewBySql(" select * from dbo.TB_HR_CLOCKTIME where EMPLOYEE_ID like 'U%' ");
            temp2[] tt2 = new temp2[l_dv.Count];

            if (l_dv != null)
            {
                for (int i = 0; i < l_dv.Count; i++)
                {
                    tt2[i] = new temp2();
                    tt2[i].ID = Convert.ToInt32(l_dv[i]["ID"].ToString());
                    tt2[i].EID = l_dv[i]["EMPLOYEE_ID"].ToString();
                }
            }

            foreach (var item in tt2)
            {
                string l_Sql = " ";
                l_Sql += " update TB_HR_CLOCKTIME set EMPLOYEE_ID = '" + item.EID.Substring(1, item.EID.Length-1) + "' ";
                l_Sql += " where ID = '" + item.ID + "' ";
                ivContext.資料管理員.excuteSqlNonquery(l_Sql);
            }
        }
Exemple #6
0
        void заполнить_абонентов(услуги deУслуги)
        {
            Guid кодУслуги = deУслуги.услуга;

            temp2List.Clear();
            foreach (клиенты uRow in deУслуги.клиенты)
            {
                temp2 newTemp2 = new temp2();
                newTemp2.клиент = uRow.клиент;
                temp2List.Add(newTemp2);
            }
            temp2Dic = temp2List.ToDictionary(n => n.клиент);

            foreach (подключения pRow in de.подключения
                     .Where(n => n.услуга == кодУслуги)
                     .OrderBy(n => n.дата_с))
            {
                if (temp2Dic.ContainsKey(pRow.клиент))
                {
                    temp2 aRow = temp2Dic[pRow.клиент];
                    aRow.договор   = true;
                    aRow.договор_с = pRow.дата_с;
                }
            }

            //if (uRow.подключения.Any(n => n.услуга == кодУслуги))
            //{
            //    newTemp2.договор = true;
            //    newTemp2.договор_с = uRow.подключения.Where(n => n.услуга == кодУслуги).Max(p => p.дата_с);
            //}

            foreach (отключения oRow in de.отключения
                     .Where(n => n.услуга == кодУслуги)
                     .OrderBy(n => n.дата_с))
            {
                if (temp2Dic.ContainsKey(oRow.клиент))
                {
                    temp2 aRow = temp2Dic[oRow.клиент];

                    aRow.отключен = oRow.дата_с;
                }
            }

            foreach (повторы oRow in de.повторы
                     .Where(n => n.услуга == кодУслуги)
                     .OrderBy(n => n.дата_с))
            {
                if (temp2Dic.ContainsKey(oRow.клиент))
                {
                    temp2 aRow = temp2Dic[oRow.клиент];

                    aRow.повторы = oRow.дата_с;
                }
            }

            foreach (льготы oRow in de.льготы
                     .Where(n => n.услуга == кодУслуги)
                     .OrderBy(n => n.дата_с))
            {
                if (temp2Dic.ContainsKey(oRow.клиент))
                {
                    temp2 aRow = temp2Dic[oRow.клиент];

                    aRow.льгота = true;
                }
            }

            foreach (temp2 tRow in temp2List)
            {
                if (tRow.отключен != null && tRow.повторы == null)
                {
                    tRow.закрыт = true;
                }
                if (tRow.отключен != null && tRow.повторы != null)
                {
                    if (tRow.отключен > tRow.повторы)
                    {
                        tRow.закрыт = true;
                    }
                }
            }
        }
        private void дни_договор()
        {
            foreach (подключения uRow in de.подключения
                     .Where(n => n.клиент == клКлиент.клиент && n.услуга == клУслуга.услуга)
                     .OrderBy(n => n.дата_с))
            {
                string НаименДоговора = "без номера";
                if (uRow.номер_дог.Trim().Length == 0 && uRow.номер_пп == 0)
                {
                    //         tRow.номер_дог = "без номера";
                }
                else
                {
                    НаименДоговора = uRow.номер_дог.Trim() + uRow.номер_пп.ToString();
                }

                if (uRow.дата_по == null)
                {
                    for (DateTime dm = uRow.дата_с.AddDays(1); dm < maxData; dm = dm.AddDays(1))
                    {
                        if (dicTemp2.ContainsKey(dm))
                        {
                            temp2 tRow = dicTemp2[dm];
                            //if (uRow.номер_дог.Trim().Length == 0 && uRow.номер_пп == 0)
                            //{
                            //    tRow.номер_дог = "без номера";
                            //}
                            //else
                            //{
                            //    tRow.номер_дог = uRow.номер_дог.Trim() + uRow.номер_пп.ToString();
                            //    tRow.дата_с = uRow.дата_с;
                            //}
                            tRow.номер_дог = НаименДоговора;
                            //tRow.код_договора = uRow.код;
                            tRow.дата_с  = uRow.дата_с;
                            tRow.договор = true;
                        }
                    }
                }
                else
                {
                    for (DateTime dm = uRow.дата_с.AddDays(1); dm <= uRow.дата_по; dm = dm.AddDays(1))
                    {
                        if (dicTemp2.ContainsKey(dm))
                        {
                            temp2 tRow = dicTemp2[dm];
                            //if (uRow.номер_дог.Trim().Length == 0 && uRow.номер_пп == 0)
                            //{
                            //    tRow.номер_дог = "без номера";
                            //}
                            //else
                            //{
                            //    tRow.номер_дог = uRow.номер_дог.Trim() + uRow.номер_пп.ToString();
                            //}
                            tRow.номер_дог = НаименДоговора;
                            tRow.дата_с    = uRow.дата_с;
                            //tRow.код_договора = uRow.код;
                            tRow.договор = true;
                        }
                    }
                }
            }
        }
        private void заполнить_услуги()
        {
            try
            {
                int мСумма = 0;
                temp2List.Clear();

                if (bindingSource1.Count > 0)
                {
                    temp uRow = bindingSource1.Current as temp;


                    List <temp2> query = de.оплачено
                                         .Where(n => n.оплата == uRow.оплата)
                                         .OrderBy(n => n.услуги.порядок)
                                         .GroupBy(n => n.услуги)
                                         .Select(n => new temp2
                    {
                        услуга  = n.Key.услуга,
                        наимен  = n.Key.наимен,
                        месяцев = n.Count(),
                        сумма   = n.Sum(p => p.сумма)
                    }).ToList();
                    //     Console.WriteLine(query.Count());
                    List <temp2> query2 = de.опл_работы
                                          .Where(n => n.оплата == uRow.оплата)
                                          .OrderBy(n => n.работы.порядок)
                                          .Select(n => new temp2
                    {
                        услуга  = n.работа,
                        наимен  = n.работы.наимен,
                        месяцев = 0,
                        сумма   = (int)n.стоимость,
                        договор = n.сотрудники.фио
                    }).ToList();

                    List <temp2> query3 = de.возврат
                                          .Where(n => n.оплата == uRow.оплата)
                                          .OrderBy(n => n.услуги.порядок)
                                          .GroupBy(n => n.услуги)
                                          .Select(n => new temp2
                    {
                        услуга  = n.Key.услуга,
                        наимен  = " Возврат " + n.Key.наимен,
                        месяцев = n.Count(),
                        сумма   = n.Sum(p => - p.сумма)
                    }).ToList();



                    Guid КодКлиента2 = uRow.клиент;



                    foreach (temp2 newRow in query)
                    {
                        temp2List.Add(newRow);
                    }
                    foreach (temp2 newRow in query2)
                    {
                        temp2List.Add(newRow);
                    }
                    foreach (temp2 newRow in query3)
                    {
                        temp2List.Add(newRow);
                    }



                    if (temp2List.Any())
                    {
                        мСумма = temp2List.Sum(n => n.сумма);
                    }


                    foreach (подключения pRow in de.подключения
                             .Where(n => n.клиент == uRow.клиент)
                             .OrderBy(n => n.дата_дог))
                    {
                        if (temp2List.Any(n => n.услуга == pRow.услуга))
                        {
                            temp2 sRow = temp2List.First(n => n.услуга == pRow.услуга);
                            sRow.договор = pRow.номер_пп.ToString("0;#;#");
                        }
                    }



                    if (uRow.оплатить != мСумма)
                    {
                        uRow.оплатить = мСумма;
                    }
                }

                textBox1.Text             = мСумма.ToString();
                bindingSource2.DataSource = null;
                bindingSource2.DataSource = temp2List;
                dataGridView2.DataSource  = null;
                dataGridView2.DataSource  = bindingSource2;
                bindingSource2.MoveLast();
                dataGridView2.Refresh();
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Ошибка {ex.Message}");
            }
        }
Exemple #9
0
        private temp2 линейка(Guid клиент, Guid услуга)
        {
            DateTime      началоМесяца = new DateTime(клМесяц.год, клМесяц.месяц, 1);
            DateTime      конецМесяца  = new DateTime(клМесяц.год, клМесяц.месяц, днейМесяца);
            List <temp30> temp30List   = new List <temp30>();

            for (int i = 1; i <= днейМесяца; i++)
            {
                temp30 newTemp = new temp30();
                newTemp.дата     = new DateTime(клМесяц.год, клМесяц.месяц, i);
                newTemp.договор  = false;
                newTemp.отключен = false;
                newTemp.повторно = false;
                newTemp.льгота   = false;
                newTemp.рабочий  = false;
                newTemp.марка    = "Х ";
                temp30List.Add(newTemp);
            }
            bool естьДоговор = false;

            //      Dictionary<DateTime, temp30> dicTemp = temp30List.ToDictionary(n => n.дата);
            foreach (подключения uRow in de.подключения
                     .Where(n => n.клиент == клиент)
                     .Where(n => n.услуга == услуга)
                     .OrderBy(n => n.дата_с))
            {
                естьДоговор = true;
                foreach (temp30 dRow in temp30List.Where(n => n.дата >= uRow.дата_с))
                {
                    dRow.договор   = true;
                    dRow.марка     = " ";
                    dRow.договор_с = uRow.дата_с;
                }
                //temp30List.Where(n => n.дата > uRow.дата_с).ToList().ForEach(n => n.договор = true);
                //temp30List.Where(n => n.дата > uRow.дата_с).ToList().ForEach(n => n.марка = "  ");
            }

            foreach (отключения uRow in de.отключения
                     .Where(n => n.клиент == клиент)
                     .Where(n => n.услуга == услуга)
                     .OrderBy(n => n.дата_с))
            {
                foreach (temp30 dRow in temp30List.Where(n => n.дата >= uRow.дата_с))
                {
                    if (dRow.договор_с != null)
                    {
                        if (dRow.договор_с < uRow.дата_с)
                        {
                            dRow.отключен   = true;
                            dRow.марка      = "От";
                            dRow.отключен_с = uRow.дата_с;
                        }
                    }
                    else
                    {
                        dRow.отключен   = true;
                        dRow.марка      = "От";
                        dRow.отключен_с = uRow.дата_с;
                    }
                }
                //temp30List.Where(n => n.дата >= uRow.дата_с).ToList().ForEach(n => n.отключен = true);
                //temp30List.Where(n => n.дата >= uRow.дата_с).ToList().ForEach(n => n.марка = "От");
                //temp30List.Where(n => n.дата > uRow.дата_с).ToList().ForEach(n => n.договор = false);
            }

            foreach (простои uRow in de.простои
                     .Where(n => n.клиент == клиент)
                     .Where(n => n.услуга == услуга)
                     .OrderBy(n => n.дата_с))
            {
                if (uRow.дата_по == null)
                {
                    foreach (temp30 dRow in temp30List.Where(n => n.дата >= uRow.дата_с))
                    {
                        dRow.простой = true;
                        dRow.марка   = "Пр";
                    }
                }
                else
                {
                    foreach (temp30 dRow in temp30List.Where(n => n.дата >= uRow.дата_с).Where(n => n.дата <= uRow.дата_по))
                    {
                        dRow.простой = true;
                        dRow.марка   = "Пр";
                    }
                }
                //temp30List.Where(n => n.дата >= uRow.дата_с).ToList().ForEach(n => n.отключен = true);
                //temp30List.Where(n => n.дата >= uRow.дата_с).ToList().ForEach(n => n.марка = "От");
                //temp30List.Where(n => n.дата > uRow.дата_с).ToList().ForEach(n => n.договор = false);
            }

            foreach (повторы uRow in de.повторы
                     .Where(n => n.клиент == клиент)
                     .Where(n => n.услуга == услуга)
                     .OrderBy(n => n.дата_с))
            {
                foreach (temp30 dRow in temp30List.Where(n => n.дата > uRow.дата_с))
                {
                    if (dRow.отключен_с == null)
                    {
                        dRow.повторно   = true;
                        dRow.марка      = " ";
                        dRow.отключен   = false;
                        dRow.повторно_с = uRow.дата_с;
                    }
                    else
                    {
                        if (dRow.отключен_с < uRow.дата_с)
                        {
                            dRow.повторно   = true;
                            dRow.марка      = " ";
                            dRow.отключен   = false;
                            dRow.повторно_с = uRow.дата_с;
                        }
                    }
                }
                //temp30List.Where(n => n.дата > uRow.дата_с).ToList().ForEach(n => n.повторно = true);
                //temp30List.Where(n => n.дата > uRow.дата_с).ToList().ForEach(n => n.марка = "  ");
                //temp30List.Where(n => n.дата >= uRow.дата_с).ToList().ForEach(n => n.отключен = false);
            }
            foreach (льготы uRow in de.льготы
                     .Where(n => n.клиент == клиент)
                     .Where(n => n.услуга == услуга)
                     .OrderBy(n => n.дата_с))
            {
                foreach (temp30 dRow in temp30List.Where(n => n.дата > uRow.дата_с))
                {
                    dRow.льгота   = true;
                    dRow.марка    = "Лг";
                    dRow.льгота_с = uRow.дата_с;
                }
                //temp30List.Where(n => n.дата >= uRow.дата_с).ToList().ForEach(n => n.льгота = true);
                //temp30List.Where(n => n.дата >= uRow.дата_с).ToList().ForEach(n => n.марка = "Лг");
            }

            int дней2 = 0;

            foreach (temp30 tRow in temp30List)
            {
                bool xy = true;
                if (естьДоговор)
                {
                    if (tRow.льгота || tRow.отключен || tRow.простой || tRow.договор == false)
                    {
                        xy = false;
                    }
                }
                else
                {
                    if (tRow.льгота || tRow.отключен || tRow.простой)
                    {
                        xy = false;
                    }
                }
                tRow.рабочий = xy;

                if (xy)
                {
                    tRow.марка = "  ";
                    дней2++;
                }

                //bool xy = false;
                //if (tRow.договор)
                //{
                //    xy = true;
                //}
                //if (tRow.льгота || tRow.отключен)
                //{
                //    xy = false;
                //}

                //if (tRow.повторно)
                //{
                //    xy = true;
                //}

                //if (xy)
                //{
                //    tRow.рабочий = true;
                //    дней2++;
                //}
                //else
                //{
                //    tRow.рабочий = false;
                //}
            }

            System.Text.StringBuilder sb = new StringBuilder();
            foreach (temp30 tRow in temp30List)
            {
                sb.Append(tRow.марка);
            }
            temp2 t2 = new temp2();

            t2.карта    = sb.ToString();
            t2.раб_дней = дней2;
            return(t2);
        }
Exemple #10
0
        private void дом1месяц_Load(object sender, EventArgs e)
        {
            try
            {
                foreach (клиенты kRow in de.клиенты
                         .Where(n => n.дом == клДом.дом)
                         .OrderBy(n => n.квартира)
                         .ThenBy(n => n.ввод))
                {
                    foreach (услуги uRow in de.услуги
                             .Where(n => n.вид_услуги == клВид_услуги.вид_услуги)
                             .OrderBy(n => n.порядок))
                    {
                        temp newTemp = new temp();
                        newTemp.ввод           = kRow.ввод;
                        newTemp.квартира       = kRow.квартира;
                        newTemp.клиент         = kRow.клиент;
                        newTemp.наимен_услуги  = uRow.обозначение;
                        newTemp.подъезд        = kRow.подъезд;
                        newTemp.порядок_услуги = uRow.порядок;
                        newTemp.прим0          = kRow.прим;
                        newTemp.телефон        = kRow.телефон;
                        newTemp.услуга         = uRow.услуга;
                        newTemp.фио            = kRow.фио;
                        newTemp.всего_дней     = днейМесяца;
                        if (kRow.услуги.Any(n => n.услуга == uRow.услуга))
                        {
                            newTemp.наш = true;
                        }
                        if (kRow.раб_дней
                            .Where(n => n.год == клМесяц.год)
                            .Where(n => n.месяц == клМесяц.месяц)
                            .Any(n => n.услуга == uRow.услуга))
                        {
                            newTemp.раб_дней = kRow.раб_дней
                                               .Where(n => n.год == клМесяц.год)
                                               .Where(n => n.месяц == клМесяц.месяц)
                                               .Single(n => n.услуга == uRow.услуга).дней;
                        }
                        else
                        {
                            newTemp.раб_дней = днейМесяца;
                        }
                        //if(uRow.оплачено
                        //    .Where(n=>n.год==клМесяц.год)
                        //    .Where(n => n.месяц == клМесяц.месяц)
                        //    .Any(n=>n.оплаты.клиент==kRow.клиент))
                        //{
                        //    newTemp.оплачено = uRow.оплачено
                        //    .Where(n => n.год == клМесяц.год)
                        //    .Where(n => n.месяц == клМесяц.месяц)
                        //    .First(n => n.оплаты.клиент == kRow.клиент).сумма;
                        //}

                        temp2 t2 = линейка(kRow.клиент, uRow.услуга);
                        newTemp.карта     = t2.карта;
                        newTemp.подк_дней = t2.раб_дней;


                        //   newTemp.дней = расчет_дней(kRow.клиент1, uRow.услуга1);
                        //  newTemp.аДни = new bool[30];
                        //newTemp.дней = de.раб_дней
                        //    .Where(n => n.клиент == kRow.клиент1)
                        //    .Where(n => n.услуга == uRow.услуга1).Count();
                        //    //.Where(n => n.год == клМесяц.год)
                        //    //.Where(n => n.месяц == клМесяц.месяц).Count();



                        tempList0.Add(newTemp);
                    }
                }
                var dictTemp = tempList0.ToDictionary(n => new { n.клиент, n.услуга });
                foreach (примечания uRow in de.примечания)
                {
                    var ключ = new { uRow.клиент, uRow.услуга };
                    if (dictTemp.ContainsKey(ключ))
                    {
                        dictTemp[ключ].прим = uRow.прим;
                    }
                }
                foreach (подключения pRow in de.подключения
                         .Where(n => n.услуги.вид_услуги == клВид_услуги.вид_услуги)
                         .OrderBy(n => n.дата_с))
                {
                    int g100m = клМесяц.год * 100 + клМесяц.месяц;
                    if (pRow.дата_с.Year * 100 + pRow.дата_с.Month <= g100m)
                    {
                        var ключ = new { pRow.клиент, pRow.услуга };
                        if (dictTemp.ContainsKey(ключ))
                        {
                            dictTemp[ключ].договор_с = pRow.дата_с;
                        }
                    }
                }

                foreach (отключения pRow in de.отключения
                         .Where(n => n.услуги.вид_услуги == клВид_услуги.вид_услуги)
                         .OrderBy(n => n.дата_с))
                {
                    int g100m = клМесяц.год * 100 + клМесяц.месяц;
                    if (pRow.дата_с.Year * 100 + pRow.дата_с.Month <= g100m)
                    {
                        var ключ = new { pRow.клиент, pRow.услуга };
                        if (dictTemp.ContainsKey(ключ))
                        {
                            dictTemp[ключ].отключен = pRow.дата_с;
                        }
                    }
                }

                //     foreach (звонки pRow in de.звонки
                //.OrderBy(n => n.дата))
                //     {

                //         var ключ = new { pRow.клиент };
                //         if (dictTemp.ContainsKey(ключ))
                //         {
                //             dictTemp[ключ].звонок = pRow.дата;
                //         }

                //     }

                //за месяц могут несколько раз отключить



                foreach (льготы pRow in de.льготы
                         .Where(n => n.услуги.вид_услуги == клВид_услуги.вид_услуги)
                         .OrderBy(n => n.дата_с))
                {
                    int g100m = клМесяц.год * 100 + клМесяц.месяц;
                    if (pRow.дата_с.Year * 100 + pRow.дата_с.Month <= g100m)
                    {
                        var ключ = new { pRow.клиент, pRow.услуга };
                        if (dictTemp.ContainsKey(ключ))
                        {
                            dictTemp[ключ].льгота_с = pRow.дата_с;
                        }
                    }
                }



                foreach (повторы pRow in de.повторы
                         .Where(n => n.услуги.вид_услуги == клВид_услуги.вид_услуги)
                         .OrderBy(n => n.дата_с))
                {
                    int g100m = клМесяц.год * 100 + клМесяц.месяц;
                    if (pRow.дата_с.Year * 100 + pRow.дата_с.Month <= g100m)
                    {
                        var ключ = new { pRow.клиент, pRow.услуга };
                        if (dictTemp.ContainsKey(ключ))
                        {
                            dictTemp[ключ].повтор = pRow.дата_с;
                        }
                    }
                }

                var dicТариф = de.цены
                               .Where(n => n.услуги.вид_услуги == клВид_услуги.вид_услуги)
                               .Where(n => n.год == клМесяц.год)
                               .Where(n => n.месяц == клМесяц.месяц)
                               .Select(n => new { n.услуга, n.стоимость }).ToDictionary(n => n.услуга);

                foreach (temp tRow in tempList0)
                {
                    if (dicТариф.ContainsKey(tRow.услуга))
                    {
                        tRow.тариф = (int)dicТариф[tRow.услуга].стоимость;
                    }
                    //   tRow.оплатить = (int)(tRow.тариф * tRow.раб_дней / днейМесяца);
                }

                //if (tempList0.Any())
                //{
                //    int сумма1месяц = tempList0.Sum(n => n.оплатить);

                //    textBox2.Text = сумма1месяц.ToString();
                //    int человек = tempList0.Count(n => n.оплатить > 0);
                //    textBox3.Text = человек.ToString();
                //}


                tempList = tempList0.Where(n => n.наш).ToList();
                //       tempList = tempList0.Where(n => n.подк_дней > 0 || n.наш).ToList();

                //  || (n.подк_дней == 0 && n.раб_дней > 0)
                //    tempList = tempList0.ToList();


                bindingSource1.DataSource = tempList;
                пересчет();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            textBox1.DataBindings.Add("Text", bindingSource1, "карта");
            прим0TextBox.DataBindings.Add("Text", bindingSource1, "прим0");
            dataGridView1.CellMouseClick += DataGridView1_CellMouseClick;
            temp.Moving                         += Temp_Moving;
            FormClosing                         += Дом1месяц_FormClosing;
            dataGridView1.DataError             += DataGridView1_DataError;
            dataGridView1.CellFormatting        += DataGridView1_CellFormatting;
            dataGridView1.EditingControlShowing += dataGridView1_EditingControlShowing;
        }
        private void реестр_все_Load(object sender, EventArgs e)
        {
            try
            {
                foreach (оплаты oRow in de.оплаты
                         .Where(n => n.дата == клРеестр.дата)
                         .OrderBy(n => n.номер))
                {
                    string текст = "";
                    int    сумма = 0;
                    temp2List.Clear();


                    foreach (оплачено оплRow in oRow.оплачено
                             .Where(n => n.услуги.вид_услуги == клВид_услуги.вид_услуги))
                    {
                        if (оплRow.сумма > 0)
                        {
                            сумма += оплRow.сумма;


                            temp2 NewR = new temp2();
                            NewR.год   = оплRow.год;
                            NewR.месяц = оплRow.месяц;
                            temp2List.Add(NewR);
                        }
                    }

                    if (сумма > 0)
                    {
                        int кГод   = 0;
                        int кМесяц = -1;
                        foreach (temp2 sRow in temp2List
                                 .OrderBy(n => n.год)
                                 .ThenBy(n => n.месяц))
                        {
                            if (sRow.год != кГод)
                            {
                                sRow.новый_год = true;
                            }
                            if (sRow.месяц != кМесяц + 1)
                            {
                                sRow.начало_периода = true;
                            }
                            кМесяц = sRow.месяц;
                            кГод   = sRow.год;
                        }


                        int нГод   = 0;
                        int нМесяц = -1;
                        foreach (temp2 sRow in temp2List
                                 .OrderByDescending(n => n.год)
                                 .ThenByDescending(n => n.месяц))
                        {
                            if (sRow.год != DateTime.Today.Year)
                            {
                                sRow.новый_год = true;
                            }
                            if (нМесяц - 1 != sRow.месяц || нГод != sRow.год)
                            {
                                sRow.конец_периода = true;
                            }
                            нГод   = sRow.год;
                            нМесяц = sRow.месяц;
                        }

                        foreach (temp2 sRow in temp2List
                                 .OrderBy(n => n.год)
                                 .ThenBy(n => n.месяц))
                        {
                            if (sRow.начало_периода && !sRow.конец_периода)
                            {
                                if (sRow.новый_год)
                                {
                                    текст += " " + sRow.год.ToString().Trim();
                                }

                                текст += " " + sRow.месяц.ToString().Trim();
                            }
                            if (sRow.конец_периода && !sRow.начало_периода)
                            {
                                текст += "-" + sRow.месяц.ToString().Trim() + "; ";
                            }

                            if (sRow.конец_периода && sRow.начало_периода)
                            {
                                if (sRow.новый_год)
                                {
                                    текст += " " + sRow.год.ToString().Trim();
                                }
                                текст += " " + sRow.месяц.ToString().Trim() + "; ";
                            }
                        }



                        //       dsТабель.реестрRow NewRow = dsТабель1.реестр.NewреестрRow();
                        temp NewRow = new temp();
                        NewRow.фио   = oRow.клиенты.фио;
                        NewRow.адрес = oRow.клиенты.дома.улицы.наимен.Trim()
                                       + " " + oRow.клиенты.дома.номер.ToString().Trim()
                                       + oRow.клиенты.дома.корпус.Trim()
                                       + " - " + oRow.клиенты.квартира.ToString().Trim();
                        NewRow.сумма    = сумма;
                        NewRow.месяца   = текст;
                        NewRow.номер    = oRow.номер;
                        NewRow.менеджер = oRow.сотрудники.фио;
                        tempList.Add(NewRow);

                        всего += сумма;
                    }
                }
                bindingSource1.DataSource = tempList;
                textBox1.Text             = всего.ToString();
                клСетка.задать_ширину(dataGridView1);
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Ошибка загрузки  {ex.Message} ");
            }
        }
        public static List <temp2> find_instock(string time, string type, string danju)//查询符合条件的原材料
        {
            MySqlConnection conn       = Util.Util.getConn();
            MySqlDataReader dataReader = null;
            MySqlCommand    command    = null;

            List <string> danjus     = find_inDanju(time);
            bool          youshijian = true;//在该时间内有过盘点

            if (danjus == null)
            {
                youshijian = false;
            }
            if (youshijian == true)
            {
                List <temp2> temps = new List <temp2>();
                try
                {
                    command = conn.CreateCommand();
                    string sql = "SELECT instock_rawmaterial.rawMaterial_supplier,instock_rawmaterial.rawMaterial_count," +
                                 "instock_rawmaterial.rawMaterial_danjia,instock_rawmaterial.rawMaterial_money,instock_rawmaterial.mark,instock_rawmaterial.danju_number,rawmaterial.rawMaterial_name," +
                                 "rawmaterial.rawMaterial_number,rawmaterial.rawMaterial_type,rawmaterial.rawMaterial_unit" +
                                 "  FROM instock_rawmaterial" +
                                 "  JOIN rawmaterial ON" +
                                 "  instock_rawmaterial.rawMaterial_number = rawmaterial.rawMaterial_number where ";
                    if (danju != "")
                    {
                        sql = sql + " instock_rawmaterial.danju_number='" + danju + "' ";
                    }
                    else
                    {
                        int i = 0;
                        foreach (string danju1 in danjus)
                        {
                            if (i == 0)
                            {
                                sql = sql + "  (instock_rawmaterial.danju_number='" + danju1 + "'  ";
                            }
                            else
                            {
                                sql = sql + "  or  instock_rawmaterial.danju_number='" + danju1 + "' ";
                            }
                            i++;
                        }
                        sql = sql + ")";
                    }
                    if (type != "")
                    {
                        sql = sql + "  and  rawmaterial.rawMaterial_type='" + type + "' ";
                    }

                    Console.WriteLine("sql:" + sql);
                    command.CommandText = sql;
                    dataReader          = command.ExecuteReader();

                    while (dataReader.Read())
                    {
                        temp2 r = new temp2();
                        r.Rawmaterial_name = dataReader.GetString("rawMaterial_name");
                        r.Rawmaterial_type = dataReader.GetString("rawMaterial_type");
                        r.Rawmaterial_unit = dataReader.GetString("rawMaterial_unit");

                        r.Mark = dataReader.GetString("mark");

                        r.Danju_number         = dataReader.GetString("danju_number");;
                        r.Rawmaterial_number   = dataReader.GetString("rawMaterial_number");
                        r.RawMaterial_supplier = dataReader.GetString("rawMaterial_supplier");
                        r.RawMaterial_money    = dataReader.GetDouble("rawMaterial_money");

                        r.RawMaterial_count = dataReader.GetDouble("rawMaterial_count");

                        r.RawMaterial_danjia = dataReader.GetDouble("rawMaterial_danjia");

                        temps.Add(r);
                    }
                }
                catch (Exception)
                {
                }
                finally
                {
                    /**if (!dataReader.IsClosed)
                     * {
                     *  dataReader.Close();
                     * }**/
                    if (conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                    }
                }
                return(temps);
            }
            else
            {
                return(null);
            }
        }