void обновить()
 {
     de = new domofon14Entities();
     de.дома
     .Where(n => n.улица == клУлица.улица)
     .OrderBy(n => n.номер)
     .ThenBy(n => n.корпус)
     .Load();
     домаЛист = de.дома.Local.ToBindingList();
     bindingSource1.DataSource = домаЛист;
 }
        void обновить()
        {
            bindingSource1.PositionChanged -= bindingSource1_PositionChanged;
            //tempList.Clear();
            de = new domofon14Entities();
            try
            {
                de.сотрудники.Load();
                de.клиенты.Load();
                de.виды_оплат.Load();

                de.оплаты
                .Where(n => n.дата == датаСбора)
                .Where(n => n.сотрудник == кодСотрудника)
                .OrderBy(n => n.дата)
                .ThenBy(n => n.номер)
                .Load();
                оплатыЛист = de.оплаты.Local.ToBindingList();
                bindingSource1.DataSource = оплатыЛист;
                bindingSource1.Sort       = "номер";
                bindingSource1.MoveLast();
            }
            catch
            {
                MessageBox.Show("Сбой загрузки");
            }

            //   tempList.Clear();

            if (bindingSource1.Count > 0)
            {
                заполнить_оплатить();
                заполнить_услуги();
                пересчет();
            }
            //else
            //{
            //    tempList.Clear();
            //    пересчет();
            //}
            dataGridView1.Focus();
            bindingSource1.PositionChanged += bindingSource1_PositionChanged;
            //     bindingSource1.MoveLast();
        }
        private void button17_Click(object sender, EventArgs e)
        {
            //записать();
            оплаты uRow = bindingSource1.Current as оплаты;

            клОплата.оплата = uRow.оплата;

            de = new domofon14Entities();
            int СуммаВозврата = de.возврат
                                .Where(n => n.оплата == клОплата.оплата)
                                .Sum(n => n.сумма);

            Word.Application oWord = new Word.Application();

            string curDir = System.IO.Directory.GetCurrentDirectory();

            object шаблон = curDir + @"\расходник.dot";

            if (!System.IO.File.Exists(шаблон.ToString()))
            {
                MessageBox.Show("Нет файла " + шаблон.ToString());
                return;
            }

            клФирма.init();
            клФилиал.init();

            Word.Document o = oWord.Documents.Add(Template: шаблон);
            o.Bookmarks["кассир"].Range.Text = uRow.сотрудники.фио;

            o.Bookmarks["дата"].Range.Text = uRow.дата.ToLongDateString();

            o.Bookmarks["филиал"].Range.Text = клФилиал.наимен;

            o.Bookmarks["сумма"].Range.Text = СуммаВозврата.ToString();


            o.Bookmarks["номер"].Range.Text = uRow.номер.ToString();

            o.Bookmarks["фио"].Range.Text = uRow.клиенты.фио;

            oWord.Application.Visible = true;
        }
        private void выбор_улицы_Load(object sender, EventArgs e)
        {
            try
            {
                domofon40.domofon14Entities de = new domofon40.domofon14Entities();
                foreach (var gg in de.поселки.OrderBy(n => n.порядок))
                {
                    TreeNode node = this.treeView1.Nodes.Add(gg.наимен);
                    node.Tag       = gg.поселок;
                    node.ForeColor = Color.Green;

                    foreach (var mm in de.улицы.Where(n => n.поселок == gg.поселок)
                             .OrderBy(n => n.наимен))
                    {
                        TreeNode node1 = node.Nodes.Add(mm.наимен);
                        node1.Tag       = mm;
                        node1.ForeColor = Color.Blue;
                        foreach (var dd in mm.дома
                                 .OrderBy(n => n.номер)
                                 .ThenBy(n => n.корпус))
                        {
                            TreeNode node2 = node1.Nodes.Add(dd.номер.ToString().PadRight(2) + " " + dd.корпус);

                            node2.Tag = dd;

                            if (dd.дом == клДом.дом)
                            {
                                treeView1.SelectedNode = node2;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Сбой загрузки {ex.Message}");
            }
        }
        private void печать2квитанции_работ()
        {
            //  записать();
            //          DataSet.оплатаRow uRow = (оплатаBindingSource.Current as DataRowView).Row as DataSet.оплатаRow;
            оплаты uRow = bindingSource1.Current as оплаты;

            клОплата.оплата = uRow.оплата;
            de = new domofon14Entities();

            //        domofon10.DataClasses1DataContext db1 = new DataClasses1DataContext();

            //int номерКвитанции = 0;
            //if (db1.опл_работы
            //    .Any(n => n.оплата == клОплата.оплата))
            //{
            //    номерКвитанции = db1.опл_работы
            //    .Where(n => n.оплата == клОплата.оплата)
            //    .Max(n => n.код);
            //}

            //        var yRow = db1.опл_работы
            //.Where(n => n.оплата == клОплата.оплата)
            //.GroupBy(n => n.работа1)
            //.Select(n => new { n.Key, цена = n.Max(z => z.стоимость), сумма = n.Sum(z => z.оплачено) });

            var query = de.опл_работы
                        .Where(n => n.оплата == клОплата.оплата)
                        .OrderBy(n => n.работы.порядок);

            квитанцияЛист.Clear();

            foreach (var kRow in query)
            {
                квитанция NewRow = new квитанция();
                NewRow.услуга        = kRow.работа;
                NewRow.наимен_услуги = kRow.работы.наимен.Trim();
                NewRow.прейскурант   = kRow.работы.прейскурант.Trim();
                //   NewRow.наряд = kRow.задание;
                NewRow.сумма       = kRow.стоимость;
                NewRow.материалы   = (int)kRow.ст_материалов;
                NewRow.зарплата    = (int)NewRow.сумма - NewRow.материалы;
                NewRow.фио_мастера = kRow.сотрудники.фио;
                квитанцияЛист.Add(NewRow);
                //     dsТабель1.квитанция.Rows.Add(NewRow);
            }


            Word.Application oWord = new Word.Application();

            string curDir = System.IO.Directory.GetCurrentDirectory();

            object шаблон = curDir + @"\квитанция3работы.dot";

            if (!System.IO.File.Exists(шаблон.ToString()))
            {
                MessageBox.Show("Нет файла " + шаблон.ToString());
                return;
            }

            клФирма.init();
            клФилиал.init();

            Word.Document o = oWord.Documents.Add(Template: шаблон);
            o.Bookmarks["менеджер"].Range.Text  = uRow.сотрудники.фио;
            o.Bookmarks["менеджер2"].Range.Text = uRow.сотрудники.фио;

            o.Bookmarks["дата"].Range.Text  = uRow.дата.ToLongDateString();
            o.Bookmarks["дата2"].Range.Text = uRow.дата.ToLongDateString();

            o.Bookmarks["филиал"].Range.Text          = клФилиал.наимен;
            o.Bookmarks["адрес_филиала"].Range.Text   = клФилиал.адрес.Trim();
            o.Bookmarks["телефон_филиала"].Range.Text = клФилиал.deRow.телефон.Trim();

            o.Bookmarks["филиал2"].Range.Text         = клФилиал.наимен;
            o.Bookmarks["адрес2филиала"].Range.Text   = клФилиал.адрес.Trim();
            o.Bookmarks["телефон2филиала"].Range.Text = клФилиал.deRow.телефон.Trim();


            o.Bookmarks["номер_квитанции"].Range.Text = uRow.номер.ToString();
            o.Bookmarks["номер2квитанции"].Range.Text = uRow.номер.ToString();

            o.Bookmarks["фио"].Range.Text = uRow.клиенты.фио;
            //string адрес_абонента = "ул. " + uRow.наимен_улицы.Trim()
            //    + "   д. " + uRow.номер_дома.Trim() + " "
            //    + uRow.корпус.Trim() + " кв. " + uRow.квартира.Trim();
            //if (uRow.ввод > 0)
            //{
            //    адрес_абонента += " ввод " + uRow.ввод.ToString();
            //}

            o.Bookmarks["адрес"].Range.Text = uRow.клиенты.адрес;

            o.Bookmarks["фио2"].Range.Text   = uRow.клиенты.фио;
            o.Bookmarks["адрес2"].Range.Text = uRow.клиенты.адрес;

            o.Bookmarks["наимен_фирмы"].Range.Text   = клФирма.deRow.наимен.Trim();
            o.Bookmarks["наимен2фирмы"].Range.Text   = клФирма.deRow.наимен.Trim();
            o.Bookmarks["инн"].Range.Text            = "ИНН " + клФирма.deRow.инн.Trim();
            o.Bookmarks["инн2"].Range.Text           = "ИНН " + клФирма.deRow.инн.Trim();
            o.Bookmarks["кпп"].Range.Text            = "КПП " + клФирма.deRow.код.Trim();
            o.Bookmarks["кпп2"].Range.Text           = "КПП " + клФирма.deRow.код.Trim();
            o.Bookmarks["расчетный_счет"].Range.Text = "р/с " + клФирма.deRow.р_счет.Trim();
            o.Bookmarks["расчетный2счет"].Range.Text = "р/с " + клФирма.deRow.р_счет.Trim();
            o.Bookmarks["наимен_банка"].Range.Text   = " " + клФирма.deRow.банк.Trim();
            o.Bookmarks["наимен2банка"].Range.Text   = " " + клФирма.deRow.банк.Trim();
            o.Bookmarks["город"].Range.Text          = клФирма.deRow.город.Trim();
            o.Bookmarks["город2"].Range.Text         = клФирма.deRow.город.Trim();
            o.Bookmarks["кор_счет"].Range.Text       = "к/с " + клФирма.deRow.к_счет.Trim();
            o.Bookmarks["кор2счет"].Range.Text       = "к/с " + клФирма.deRow.к_счет.Trim();
            o.Bookmarks["адрес_фирмы"].Range.Text    = клФирма.deRow.адрес.Trim();
            o.Bookmarks["адрес2фирмы"].Range.Text    = клФирма.deRow.адрес.Trim();


            int     j     = 1;
            decimal итого = 0;

            foreach (квитанция kRow in квитанцияЛист)
            {
                //   string текст1 = kRow.начало + " - " + kRow.конец + " " + kRow.год.ToString();
                j++;
                o.Tables[5].Cell(j, 1).Range.Text = kRow.наряд.ToString("0;#;#");

                o.Tables[5].Cell(j, 2).Range.Text = kRow.прейскурант;
                o.Tables[5].Cell(j, 3).Range.Text = kRow.наимен_услуги.Trim() + "  мастер " + kRow.фио_мастера.Trim();
                //  o.Tables[5].Cell(j, 4).Range.Text = kRow.материалы.ToString("0.00;#;#");
                o.Tables[5].Cell(j, 4).Range.Text = kRow.сумма.ToString("0.00;#;#");
                o.Tables[5].Rows.Add();
                итого += kRow.сумма;

                o.Tables[11].Cell(j, 1).Range.Text = kRow.наряд.ToString("0;#;#");

                o.Tables[11].Cell(j, 2).Range.Text = kRow.прейскурант;
                o.Tables[11].Cell(j, 3).Range.Text = kRow.наимен_услуги.Trim() + "  мастер " + kRow.фио_мастера.Trim();
                o.Tables[11].Cell(j, 4).Range.Text = kRow.материалы.ToString("0.00;#;#");
                o.Tables[11].Cell(j, 5).Range.Text = kRow.сумма.ToString("0.00;#;#");
                o.Tables[11].Rows.Add();
            }
            o.Tables[5].Cell(j + 1, 4).Range.Text  = итого.ToString("0.00");
            o.Tables[11].Cell(j + 1, 5).Range.Text = итого.ToString("0.00");


            клTemp.Caption            = o.ActiveWindow.Caption;
            oWord.Application.Visible = true;
        }
        private void button5_Click(object sender, EventArgs e)
        {
            оплаты uRow = bindingSource1.Current as оплаты;

            клОплата.оплата = uRow.оплата;
            de = new domofon14Entities();

            string[] aMez = de.месяцы
                            .OrderBy(n => n.месяц)
                            .Select(n => n.наимен)
                            .ToArray();

            var услугиQuery = de.оплачено
                              .Where(n => n.оплата == клОплата.оплата)
                              .GroupBy(n => new { n.услуги, n.год, n.сумма })
                              .Select(n => new
            {
                n.Key.услуги,
                n.Key.услуги.наимен,
                n.Key.услуги.порядок,
                цена  = n.Key.сумма,
                сумма = n.Sum(p => p.сумма),
                n.Key.год,
                minMez = n.Min(p => p.месяц),
                maxMez = n.Max(p => p.месяц)
            })
                              .OrderBy(n => n.порядок);



            //dsТабель1.квитанция.Clear();
            квитанцияЛист.Clear();
            foreach (var kRow in услугиQuery)
            {
                //  dsТабель1.за_месяца.Clear();
                //           за_месяцЛист.Clear();

                //                dsТабель.квитанцияRow NewRow = dsТабель1.квитанция.NewквитанцияRow();
                квитанция NewRow = new квитанция();


                NewRow.услуга        = kRow.услуги.услуга;
                NewRow.наимен_услуги = kRow.наимен;
                NewRow.тариф         = kRow.цена;
                NewRow.месяцы        = "";
                NewRow.начало        = aMez[kRow.minMez - 1];
                if (kRow.maxMez > kRow.minMez)
                {
                    NewRow.конец = aMez[kRow.maxMez - 1];
                }
                NewRow.сумма = kRow.сумма;
                NewRow.год   = kRow.год;
                квитанцияЛист.Add(NewRow);

                //dsТабель1.квитанция.Rows.Add(NewRow);
            }


            Word.Application oWord = new Word.Application();

            string curDir = System.IO.Directory.GetCurrentDirectory();

            object шаблон = curDir + @"\квитанция.dot";

            if (!System.IO.File.Exists(шаблон.ToString()))
            {
                MessageBox.Show("Нет файла " + шаблон.ToString());
                return;
            }


            клФирма.init();
            клФилиал.init();

            Word.Document o = oWord.Documents.Add(Template: шаблон);
            //  oWord.Application.Visible = true;
            o.Bookmarks["менеджер"].Range.Text  = uRow.сотрудники.фио;
            o.Bookmarks["менеджер2"].Range.Text = uRow.сотрудники.фио;

            o.Bookmarks["дата"].Range.Text  = uRow.дата.ToLongDateString();
            o.Bookmarks["дата2"].Range.Text = uRow.дата.ToLongDateString();

            o.Bookmarks["филиал"].Range.Text          = клФилиал.наимен;
            o.Bookmarks["адрес_филиала"].Range.Text   = клФилиал.адрес.Trim();
            o.Bookmarks["телефон_филиала"].Range.Text = клФилиал.deRow.телефон.Trim();

            o.Bookmarks["филиал2"].Range.Text         = клФилиал.наимен;
            o.Bookmarks["адрес2филиала"].Range.Text   = клФилиал.адрес.Trim();
            o.Bookmarks["телефон2филиала"].Range.Text = клФилиал.deRow.телефон.Trim();


            o.Bookmarks["номер_квитанции"].Range.Text = uRow.номер.ToString();
            o.Bookmarks["номер2квитанции"].Range.Text = uRow.номер.ToString();

            o.Bookmarks["фио"].Range.Text = uRow.клиенты.фио;
            //string адрес_абонента = "ул. " + uRow.наимен_улицы.Trim()
            //    + "   д. " + uRow.номер_дома.Trim() + " "
            //    + uRow.корпус.Trim()
            //    + " кв. " + uRow.квартира.Trim();
            string адрес_абонента = uRow.клиенты.адрес;

            if (uRow.клиенты.ввод > 0)
            {
                адрес_абонента += " ввод " + uRow.клиенты.ввод.ToString();
            }

            o.Bookmarks["адрес"].Range.Text = адрес_абонента;

            o.Bookmarks["фио2"].Range.Text   = uRow.клиенты.фио;
            o.Bookmarks["адрес2"].Range.Text = адрес_абонента;

            o.Bookmarks["наимен_фирмы"].Range.Text   = клФирма.deRow.наимен.Trim();
            o.Bookmarks["наимен2фирмы"].Range.Text   = клФирма.deRow.наимен.Trim();
            o.Bookmarks["инн"].Range.Text            = "ИНН " + клФирма.deRow.инн.Trim();
            o.Bookmarks["инн2"].Range.Text           = "ИНН " + клФирма.deRow.инн.Trim();
            o.Bookmarks["кпп"].Range.Text            = "КПП " + клФирма.deRow.код.Trim();
            o.Bookmarks["кпп2"].Range.Text           = "КПП " + клФирма.deRow.код.Trim();
            o.Bookmarks["расчетный_счет"].Range.Text = "р/с " + клФирма.deRow.р_счет.Trim();
            o.Bookmarks["расчетный2счет"].Range.Text = "р/с " + клФирма.deRow.р_счет.Trim();
            o.Bookmarks["наимен_банка"].Range.Text   = " " + клФирма.deRow.банк.Trim();
            o.Bookmarks["наимен2банка"].Range.Text   = " " + клФирма.deRow.банк.Trim();
            o.Bookmarks["город"].Range.Text          = клФирма.deRow.город.Trim();
            o.Bookmarks["город2"].Range.Text         = клФирма.deRow.город.Trim();
            o.Bookmarks["кор_счет"].Range.Text       = "к/с " + клФирма.deRow.к_счет.Trim();
            o.Bookmarks["кор2счет"].Range.Text       = "к/с " + клФирма.deRow.к_счет.Trim();
            o.Bookmarks["адрес_фирмы"].Range.Text    = клФирма.deRow.адрес.Trim();
            o.Bookmarks["адрес2фирмы"].Range.Text    = клФирма.deRow.адрес.Trim();


            int     j     = 1;
            decimal итого = 0;

            foreach (квитанция kRow in квитанцияЛист)
            {
                string текст1 = kRow.начало + " - " + kRow.конец + " " + kRow.год.ToString();
                j++;
                o.Tables[5].Cell(j, 1).Range.Text = kRow.наимен_услуги;
                o.Tables[5].Cell(j, 2).Range.Text = kRow.тариф.ToString("0.00;#;#");
                o.Tables[5].Cell(j, 3).Range.Text = текст1;
                o.Tables[5].Cell(j, 4).Range.Text = kRow.сумма.ToString("0.00");
                o.Tables[5].Rows.Add();
                итого += kRow.сумма;

                o.Tables[11].Cell(j, 1).Range.Text = kRow.наимен_услуги;
                o.Tables[11].Cell(j, 2).Range.Text = kRow.тариф.ToString("0.00;#;#");
                o.Tables[11].Cell(j, 3).Range.Text = текст1;
                o.Tables[11].Cell(j, 4).Range.Text = kRow.сумма.ToString("0.00");
                o.Tables[11].Rows.Add();
            }
            o.Tables[5].Cell(j + 1, 4).Range.Text  = итого.ToString("0.00");
            o.Tables[11].Cell(j + 1, 4).Range.Text = итого.ToString("0.00");


            клTemp.Caption            = o.ActiveWindow.Caption;
            oWord.Application.Visible = true;
        }
        private void button17_Click(object sender, EventArgs e)
        {
            if (bindingSource1.Count > 0)
            {
                оплаты uRow = bindingSource1.Current as оплаты;
                клОплата.оплата = uRow.оплата;
                string фио = uRow.клиенты.фио;

                de = new domofon14Entities();
                //int СуммаВозврата = de.возврат
                //    .Where(n => n.оплата == клОплата.оплата)
                //    .Sum(n => n.сумма);

                Word.Application oWord = new Word.Application();

                string curDir = System.IO.Directory.GetCurrentDirectory();

                object шаблон = curDir + @"\расходник.dot";
                if (!System.IO.File.Exists(шаблон.ToString()))
                {
                    MessageBox.Show("Нет файла " + шаблон.ToString());
                    return;
                }

                клФирма.init();
                клФилиал.init();

                Word.Document o = oWord.Documents.Add(Template: шаблон);
                o.Bookmarks["кассир"].Range.Text = uRow.сотрудники.фио;

                o.Bookmarks["дата"].Range.Text = uRow.дата.ToLongDateString();

                o.Bookmarks["филиал"].Range.Text = клФилиал.наимен;

                if (de.возврат.Any(n => n.оплата == клОплата.оплата) || de.воз_работы.Any(n => n.оплата == клОплата.оплата))
                {
                    int СуммаВозврата = de.возврат
                                        .Where(n => n.оплата == клОплата.оплата)
                                        .Sum(n => n.сумма);

                    int ВозвратРаботы = de.воз_работы
                                        .Where(n => n.оплата == клОплата.оплата)
                                        .Sum(n => n.сумма);

                    СуммаВозврата += ВозвратРаботы;

                    //  MessageBox.Show(прописью.буквами(СуммаВозврата));
                    if (o.Bookmarks.Exists("сумма"))
                    {
                        o.Bookmarks["сумма"].Range.Text = СуммаВозврата.ToString();
                    }
                    if (o.Bookmarks.Exists("выдано_прописью"))
                    {
                        o.Bookmarks["выдано_прописью"].Range.Text = прописью.буквами(СуммаВозврата) + "____";
                    }
                }
                //      o.Bookmarks["сумма"].Range.Text = СуммаВозврата.ToString();


                if (o.Bookmarks.Exists("номер"))
                {
                    o.Bookmarks["номер"].Range.Text = uRow.номер.ToString();
                }
                if (o.Bookmarks.Exists("фио"))
                {
                    o.Bookmarks["фио"].Range.Text = фио;
                }

                oWord.Application.Visible = true;
            }
        }
Пример #8
0
        private void обновить()
        {
            de = new domofon14Entities();
            tempList.Clear();
            foreach (услуги yRow in de.услуги
                     .Where(n => n.вид_услуги == клВид_услуги.вид_услуги)
                     .OrderBy(n => n.порядок))
            {
                foreach (сотрудники sRow in de.сотрудники
                         .OrderBy(n => n.порядок))
                {
                    int повторов = sRow.повторы
                                   .Where(n => n.дата_с >= клПериод.дата_с)
                                   .Where(n => n.дата_с <= клПериод.дата_по)
                                   .Count(n => n.услуга == yRow.услуга);

                    int отключений = sRow.отключения
                                     .Where(n => n.дата_с >= клПериод.дата_с)
                                     .Where(n => n.дата_с <= клПериод.дата_по)
                                     .Count(n => n.услуга == yRow.услуга);

                    int договоров = sRow.подключения
                                    .Where(n => n.дата_с >= клПериод.дата_с)
                                    .Where(n => n.дата_с <= клПериод.дата_по)
                                    .Count(n => n.услуга == yRow.услуга);

                    if (повторов > 0 || отключений > 0 || договоров > 0)
                    {
                        //  DsTemp.отключенийRow NewRow = dsTemp.отключений.NewотключенийRow();
                        temp NewRow = new temp();
                        NewRow.услуга        = yRow.услуга;
                        NewRow.мастер        = sRow.сотрудник;
                        NewRow.должность     = sRow.должность;
                        NewRow.фио           = sRow.фио;
                        NewRow.отключено     = отключений;
                        NewRow.повторно      = повторов;
                        NewRow.подключено    = договоров;
                        NewRow.наимен_услуги = yRow.обозначение;
                        tempList.Add(NewRow);
                    }
                }
            }

            var queryAll = tempList
                           .GroupBy(n => new { n.услуга, n.наимен_услуги })
                           .Select(n => new
            {
                n.Key.услуга,
                n.Key.наимен_услуги,
                откл      = n.Sum(p => p.отключено),
                повтор    = n.Sum(p => p.повторно),
                договоров = n.Sum(p => p.подключено)
            });

            foreach (var aRow in queryAll)
            {
                temp NewRow = new temp();
                NewRow.услуга        = aRow.услуга;
                NewRow.мастер        = Guid.Empty;
                NewRow.должность     = "";
                NewRow.фио           = "Всего";
                NewRow.отключено     = aRow.откл;
                NewRow.повторно      = aRow.повтор;
                NewRow.подключено    = aRow.договоров;
                NewRow.наимен_услуги = aRow.наимен_услуги;

                tempList.Add(NewRow);
            }

            bindingSource1.DataSource = tempList;
            dataGridView1.DataSource  = bindingSource1;
            dataGridView1.Refresh();
            dataGridView1.Focus();
        }