private void выбор_вида_оплат_Load(object sender, EventArgs e)
 {
     try
     {
         domofon40.domofon14Entities de    = new domofon14Entities();
         List <виды_оплат>           vList = de.виды_оплат.OrderBy(n => n.порядок).ToList();
         bindingSource1.DataSource = vList;
         if (de.виды_оплат.Count(n => n.вид_оплаты == клВид_оплаты.вид_оплаты) == 1)
         {
             виды_оплат oldVid = de.виды_оплат.Single(n => n.вид_оплаты == клВид_оплаты.вид_оплаты);
             //        System.Predicate<виды_оплат> pred = new Predicate<виды_оплат>()
             //    var строка = vList.Find(n=>n.вид_оплаты==клВид_оплаты.вид_оплаты);
             int строка = vList.IndexOf(oldVid);
             //         int строка = bindingSource1.Find("вид_оплаты", клВид_оплаты.вид_оплаты);
             //          MessageBox.Show(строка.ToString());
             if (строка > 0)
             {
                 bindingSource1.Position = строка;
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Сбой загрузки " + ex.Message);
     }
 }
 private void button1_Click(object sender, EventArgs e)
 {
     if (bindingSource1.Count > 0)
     {
         виды_оплат tRow = bindingSource1.Current as виды_оплат;
         клВид_оплаты.deRow      = tRow;
         клВид_оплаты.вид_оплаты = tRow.вид_оплаты;
         клВид_оплаты.наимен     = tRow.наимен;
         клВид_оплаты.выбран     = true;
         Close();
     }
 }
 private void button2_Click(object sender, EventArgs e)
 {
     if (bindingSource1.Count > 0)
     {
         виды_оплат uRow = bindingSource1.Current as виды_оплат;
         if (uRow.оплат == 0)
         {
             bindingSource1.RemoveCurrent();
         }
         else
         {
             MessageBox.Show("Предварительно удалите оплаты этого вида ...");
         }
     }
 }
        private void button1_Click(object sender, EventArgs e)
        {
            int maxPor = 0;

            if (de.виды_оплат.Local.Any())
            {
                maxPor = de.виды_оплат.Local.Max(n => n.порядок);
            }

            виды_оплат NewRow = new виды_оплат();

            NewRow.вид_оплаты = Guid.NewGuid();
            NewRow.порядок    = maxPor + 1;
            NewRow.наимен     = "Новый вид";
            bindingSource1.Add(NewRow);
        }
        private void button7_Click(object sender, EventArgs e)
        {
            int maxNum1 = 0;

            if (de.оплаты.Count() > 0)
            {
                maxNum1 = de.оплаты.Max(n => n.номер);
            }

            int maxNum2 = 0;

            if (de.оплаты.Local.Count > 0)
            {
                maxNum2 = de.оплаты.Local.Max(n => n.номер);
            }

            int maxNum = maxNum1;

            if (maxNum2 > maxNum1)
            {
                maxNum = maxNum2;
            }
            виды_оплат vRow = de.виды_оплат.OrderBy(n => n.порядок).First();

            оплаты NewRow = new оплаты()
            {
                дата       = DateTime.Today,
                клиент     = клКлиент.клиент,
                сотрудник  = клСотрудник.сотрудник,
                номер      = maxNum + 1,
                оплата     = Guid.NewGuid(),
                вид_оплаты = vRow.вид_оплаты
            };


            int строка = bindingSource1.Add(NewRow);

            bindingSource1.Position = строка;
            de.SaveChanges();
            dataGridView1.Focus();
        }
        private void button5_Click(object sender, EventArgs e)
        {
            виды_оплат oldRow = bindingSource1.Current as виды_оплат;

            //    int oldPor = oldRow.порядок;
            if (bindingSource1.Position < bindingSource1.Count - 1)
            {
                bindingSource1.MoveNext();
                виды_оплат lastRow = bindingSource1.Current as виды_оплат;
                //int lastPor = lastRow.порядок;
                //oldRow.порядок = lastPor;
                //lastRow.порядок = oldPor;
                (oldRow.порядок, lastRow.порядок) = (lastRow.порядок, oldRow.порядок);
                //        виды_оплатЛист.Sort((a, b) => a.порядок.CompareTo(b.порядок));
                bindingSource1.Sort = "порядок";
                вид_услугиDataGridView.Refresh();
                //     виды_оплатDataGridView.Refresh();
                //       изменено = true;
                label1.Visible = true;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            виды_оплат vRow          = comboBox1.SelectedItem as виды_оплат;
            Guid       кодВидаОплаты = vRow.вид_оплаты;

            var клиентыЛист = temp3List
                              .Where(n => n.оплачено > 0)
                              .GroupBy(n => n.клиент)
                              .Select(n => n.Key).ToList();

            foreach (temp3 tRow in temp3List)
            {
                foreach (оплачено delRow in de.оплачено
                         .Where(n => n.год == клМесяц.год)
                         .Where(n => n.месяц == tRow.месяц)
                         .Where(n => n.услуга == клУслуга.услуга)
                         .Where(n => n.оплаты.клиент == tRow.клиент))
                {
                    de.оплачено.Remove(delRow);
                }
                de.SaveChanges();
            }
            int maxNum = 0;

            if (de.оплаты.Any())
            {
                maxNum = de.оплаты.Max(n => n.номер);
            }

            foreach (Guid kRow in клиентыЛист)
            {
                maxNum++;
                оплаты newOp = new оплаты()
                {
                    дата       = клКалендарь.дата.Value,
                    клиент     = kRow,
                    номер      = maxNum,
                    оплата     = Guid.NewGuid(),
                    сотрудник  = клСотрудник.сотрудник,
                    вид_оплаты = кодВидаОплаты
                };

                de.оплаты.Add(newOp);
                foreach (temp3 tRow in temp3List.Where(n => n.клиент == kRow))
                {
                    if (tRow.оплачено > 0)
                    {
                        оплачено newMez = new оплачено()
                        {
                            год    = клМесяц.год,
                            оплата = newOp.оплата,
                            месяц  = tRow.месяц,
                            сумма  = tRow.оплачено,
                            услуга = клУслуга.услуга,
                            платеж = Guid.NewGuid()
                        };
                        de.оплачено.Add(newMez);
                    }
                }
            }
            try
            {
                de.SaveChanges();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка записи " + ex.Message);
            }
            Close();
        }