示例#1
0
        private bool saveData()
        {
            if (differences != null)
            {
                DataTable dtSave    = differences.CopyToDataTable();
                bool      isSaveAll = false;

                if (isExist && dtSave.AsEnumerable().Where(r => r.Field <bool>("isSelect") && r.Field <decimal>("countGood") == 0).Count() > 0)
                {
                    MessageBox.Show(Config.centralText("Есть товары c 0 кол-во.\nСохранение невозможно.\n"), "Сохранение данных", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    return(false);
                }

                EnumerableRowCollection <DataRow> rowCollect = dtSave.AsEnumerable().Where(r => r.Field <bool>("UsedInother") && r.Field <bool>("isSelect"));
                if (rowCollect.Count() > 0)
                {
                    if (DialogResult.Yes == MessageBox.Show(Config.centralText("Есть товары используемые в другом справочнике.\nСохранить их в текущий справочник?\n"), "Сохранение данных", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2))
                    {
                        isSaveAll = true;
                    }
                }



                bool isStatLog = false;

                foreach (DataRow row in dtSave.Rows)
                {
                    int?    id          = null;
                    decimal?count       = null;
                    bool    UsedInother = (bool)row["UsedInother"];

                    if (!isSaveAll && UsedInother)
                    {
                        continue;
                    }

                    if (row["id"] != DBNull.Value)
                    {
                        id = (int?)row["id"];
                    }
                    if (isExist && row["countGood"] != DBNull.Value)
                    {
                        count = (decimal)row["countGood"];
                    }

                    if (!isStatLog)
                    {
                        Logging.StartFirstLevel(252);
                        Logging.Comment(isExist ? "Товары которые присутствуют на сайте" : "Товары которые отсутствуют на сайте");
                        isStatLog = true;
                    }

                    DataTable dtResult = Config.hCntMain.setExistOnSite(id, (int)row["id_Goods"], isExist, count, !(bool)row["isSelect"]).Result;

                    if (id == null)
                    {
                        id = (int)dtResult.Rows[0]["id"];
                    }

                    Logging.Comment((bool)row["UsedInother"] ? "Запись перенеса из одного справочника в другой" : (bool)row["isSelect"] ? "Запись добавлена" : "Запись удалена");

                    Logging.Comment($"ID: {id}");
                    Logging.Comment($"Товар ID_Goods: {row["id_Goods"]}; Ean:{row["ean"]}; Наименование: {row["FullName"]}");
                    if (isExist)
                    {
                        Logging.Comment($"Кол-во:{row["countGood"]}");
                    }
                }

                if (isStatLog)
                {
                    Logging.StopFirstLevel();
                }
            }

            dtData_old = dtData.Copy();
            MessageBox.Show("Данные сохранены.", "Сохранение данных", MessageBoxButtons.OK, MessageBoxIcon.Information);
            return(true);
        }
示例#2
0
        private void filterTable(DataTable dtDeps, DataTable dtPostvsDeps, DataTable dtDepsLinkToDep)
        {
            if (tbNameDocuments.Text.Trim().Length > 0)
            {
                Task <DataTable> task = Config.hCntMain.getDoc_TypeDoc_Post(0, 0, false);
                task.Wait();

                if (tbNameDocuments.Text.Trim().Length > 0 && task.Result == null)
                {
                    return;
                }

                foreach (DataRow row in dtDepsLinkToDep.Rows)
                {
                    var rowCollectDocument = task.Result.AsEnumerable()
                                             .Where(r =>
                                                    r.Field <int>("id_Departments") == (int)row["id_DepartmentsView"] &&
                                                    r.Field <string>("namePost").ToLower().Contains(tbNamePosts.Text.ToLower()) &&
                                                    r.Field <string>("nameDoc").ToLower().Contains(tbNameDocuments.Text.ToLower()) &&
                                                    ((new List <int> {
                        4
                    }.Contains(r.Field <int>("id_Status")) && r.Field <bool>("ViewArchive")) || new List <int> {
                        2, 3
                    }.Contains(r.Field <int>("id_Status")))
                                                    )
                                             .GroupBy(r => new { id_Departments = r.Field <int>("id_Departments") })
                                             .Select(s => new { s.Key.id_Departments });

                    foreach (var gRDoc in rowCollectDocument)
                    {
                        var groupDepsVsPost_1 = dtPostvsDeps.AsEnumerable()
                                                .Where(r =>
                                                       r.Field <int>("id_Departments") == gRDoc.id_Departments &&
                                                       r.Field <string>("namePost").ToLower().Contains(tbNamePosts.Text.ToLower()) &&
                                                       r.Field <string>("nameDeps").ToLower().Contains(tbNameDeps.Text.ToLower())
                                                       )
                                                .GroupBy(r => new { id_Departments = r.Field <int>("id_Departments") })
                                                .Select(s => new
                        {
                            s.Key.id_Departments
                        });

                        foreach (var gDepsv1 in groupDepsVsPost_1)
                        {
                            EnumerableRowCollection <DataRow> rowCollect = dtDeps.AsEnumerable().Where(r => r.Field <Int16>("id") == gDepsv1.id_Departments);
                            if (rowCollect.Count() > 0)
                            {
                                rowCollect.First()["isUsed"] = true;
                            }
                        }
                    }
                }
            }
            else if (tbNamePosts.Text.Trim().Length > 0)
            {
                foreach (DataRow row in dtDepsLinkToDep.Rows)
                {
                    var groupDepsVsPost_1 = dtPostvsDeps.AsEnumerable()
                                            .Where(r =>
                                                   r.Field <int>("id_Departments") == (int)row["id_DepartmentsView"] &&
                                                   r.Field <string>("namePost").ToLower().Contains(tbNamePosts.Text.ToLower()) &&
                                                   r.Field <string>("nameDeps").ToLower().Contains(tbNameDeps.Text.ToLower())
                                                   )
                                            .GroupBy(r => new { id_Departments = r.Field <int>("id_Departments") })
                                            .Select(s => new
                    {
                        s.Key.id_Departments
                    });

                    foreach (var gDepsv1 in groupDepsVsPost_1)
                    {
                        EnumerableRowCollection <DataRow> rowCollect = dtDeps.AsEnumerable().Where(r => r.Field <Int16>("id") == gDepsv1.id_Departments);
                        if (rowCollect.Count() > 0)
                        {
                            rowCollect.First()["isUsed"] = true;
                        }
                    }
                }
            }
            else
            {
                foreach (DataRow row in dtDepsLinkToDep.Rows)
                {
                    EnumerableRowCollection <DataRow> rowCollect = dtDeps.AsEnumerable().Where(r => r.Field <Int16>("id") == (int)row["id_DepartmentsView"] && r.Field <string>("name").ToLower().Contains(tbNameDeps.Text.ToLower()));
                    if (rowCollect.Count() > 0)
                    {
                        rowCollect.First()["isUsed"] = true;
                    }
                }
            }
        }
示例#3
0
        private void setLog(int id, string comment, int id_status, int isSend)
        {
            DataTable dtTmpData = Config.hCntMain.getServiceRecordsBody(id);

            if (isSend == 1)
            {
                Logging.StartFirstLevel(1254);
            }
            else
            {
                Logging.StartFirstLevel(1255);
            }

            Logging.Comment("Id СЗ: " + id_ServiceRecords);
            Logging.Comment("Номер СЗ: " + dtTmpData.Rows[0]["Number"].ToString());
            Logging.Comment("Подномер: " + tbNumberSub.Text);
            Logging.Comment("Сумма: " + tbMoney.Text);
            Logging.Comment("Предполагаемая дата: " + dtpDate.Value.ToShortDateString());

            Logging.Comment(chbChangeDirector.Text + ": " + (chbChangeDirector.Checked ? "Включен" : "Отключен"));
            if (chbChangeDirector.Checked)
            {
                Logging.Comment("Получатель отличается от заказчика");
            }

            Logging.Comment("Руководиель ID: " + (int)dtDir.Rows[cmbDirector.SelectedIndex][0] + "; Наименование:" + cmbDirector.Text.ToString());

            if (!valuta.Equals("RUB") && type != 2)
            {
                Logging.Comment("Курс валюты: " + tbCourse.Text);
                Logging.Comment("Сумму в рублях: " + tbSumInRub.Text);
            }

            Logging.Comment("Тип СЗ: " + ((int)dtTmpData.Rows[0]["TypeServiceRecord"] == 0 ? "стандарт." : "предварит."));
            //Logging.Comment("Тип СЗ по времени: " + ((int)dtTmpData.Rows[0]["TypeServiceRecordOnTime"] == 1 ? "разовая" : "ежемесячная"));
            Logging.Comment("Тип СЗ по времени: " + ((int)dtTmpData.Rows[0]["TypeServiceRecordOnTime"] == 1 ? "разовая" : ((int)dtTmpData.Rows[0]["TypeServiceRecordOnTime"] == 2 ? "ежемесячная" : "Фонд")));

            int?idFond = dtTmpData.Rows[0]["id_ServiceRecordsFond"] == DBNull.Value ? null : (int?)dtTmpData.Rows[0]["id_ServiceRecordsFond"];

            if (idFond != null)
            {
                DataTable dtTmpFond = Config.hCntMain.getFondInfo(idFond, id);
                if (dtTmpFond != null && dtTmpFond.Rows.Count > 0)
                {
                    Logging.Comment($"№{dtTmpFond.Rows[0]["Number"].ToString()} на {dtTmpFond.Rows[0]["sumString"].ToString()} от {((DateTime)dtTmpFond.Rows[0]["DateConfirmationD"]).ToShortDateString()}");
                }
            }
            else
            {
                Logging.Comment((int)dtTmpData.Rows[0]["TypeServiceRecordOnTime"] == 3 ? "Доп.фонд не выбран" : "Фонд не выбран");
            }


            if (dtTmpData.Rows[0]["inType"] != DBNull.Value)
            {
                DataTable dtTypicalWorks = Config.hCntMain.getTypicalWorks(false);
                if (dtTypicalWorks != null && dtTypicalWorks.Rows.Count > 0)
                {
                    EnumerableRowCollection <DataRow> rowType = dtTypicalWorks.AsEnumerable().Where(r => r.Field <int>("id") == (int)dtTmpData.Rows[0]["inType"]);
                    if (rowType.Count() > 0)
                    {
                        Logging.Comment($"Тип работ ID:{rowType.First()["id"]}; Наименование:{rowType.First()["cName"]}");
                    }
                }
            }

            Logging.Comment("Сумма:" + decimal.Parse(dtTmpData.Rows[0]["Summa"].ToString()).ToString("0.00"));
            Logging.Comment("Валюта:" + dtTmpData.Rows[0]["Valuta"].ToString());

            if ((bool)dtTmpData.Rows[0]["Mix"])
            {
                Logging.Comment("Сумма нал:" + dtTmpData.Rows[0]["SummaCash"].ToString());
                Logging.Comment("Сумма безнал:" + dtTmpData.Rows[0]["SummaNonCash"].ToString());
            }

            Logging.Comment("Объект ID: " + dtTmpData.Rows[0]["id_Object"].ToString() + "; Наименование:" + dtTmpData.Rows[0]["name_Object"].ToString());
            Logging.Comment("Описание, комментарий: " + dtTmpData.Rows[0]["Description"].ToString());
            //Logging.Comment("Оплата: " + (!(bool)dtTmpData.Rows[0]["bCashNonCash"] ? "Наличные" : "Карта"));
            Logging.Comment("Оплата: " + ((bool)dtTmpData.Rows[0]["Mix"] ? "Смешанный" : (!(bool)dtTmpData.Rows[0]["bCashNonCash"] ? "Наличные" : "Карта")));

            Logging.Comment("Дата создания СЗ: " + ((DateTime)dtTmpData.Rows[0]["CreateServiceRecord"]).ToShortDateString());

            Logging.Comment("Блок ID: " + dtTmpData.Rows[0]["id_Block"].ToString() + "; Наименование:" + dtTmpData.Rows[0]["nameBlock"].ToString());
            Logging.Comment("Отдел ID: " + dtTmpData.Rows[0]["id_Department"].ToString() + "; Наименование:" + dtTmpData.Rows[0]["nameDeps"].ToString());

            Logging.Comment("На рассмотрении РП. Прошу включить в Б: " + ((DateTime)dtTmpData.Rows[0]["MonthB"]).ToShortDateString());

            if (dtTmpData.Rows[0]["bDataSumma"] != DBNull.Value && !(bool)dtTmpData.Rows[0]["bDataSumma"] && dtTmpData.Rows[0]["DataSumma"] != DBNull.Value)
            {
                Logging.Comment("Дата получения ДС (при единовременном получении ДС): " + ((DateTime)dtTmpData.Rows[0]["DataSumma"]).ToShortDateString());
            }
            if (dtTmpData.Rows[0]["DataSumma"] == DBNull.Value && dtTmpData.Rows[0]["bDataSumma"] != DBNull.Value && (bool)dtTmpData.Rows[0]["bDataSumma"])
            {
                DataTable dtMultipleReceivingMone = Config.hCntMain.getMultipleReceivingMone(id);
                Logging.Comment("Дата получения ДС (при распределенном ДС)");

                foreach (DataRow r in dtMultipleReceivingMone.Rows)
                {
                    Logging.Comment("Подномер:" + r["SubNumber"].ToString() + ";Сумма:" + r["Summa"].ToString() + ";Предполагаемая дата:" + r["DataSumma"].ToString());
                }
            }
            Logging.Comment("Комментарий:" + dtTmpData.Rows[0]["Comments"].ToString().Replace(@"\r", "\r\n"));

            if (comment.Length != 0)
            {
                Logging.Comment("Комментрий с формы:" + comment);
            }

            DataTable dtTmpMemo = Config.hCntMain.getMemorandums(nowTime, nowTime, id, false);

            if (dtTmpMemo != null && dtTmpMemo.Rows.Count > 0)
            {
                if (dtTmpMemo != null && dtTmpMemo.Rows.Count > 0)
                {
                    Logging.Comment("Произведена смена статуса у следующих ДЗ а ДО:");
                    foreach (DataRow row in dtTmpMemo.Rows)
                    {
                        Logging.Comment($"ID записи:{row["id"]}");
                        Logging.Comment($"№ ДЗ:{row["no_doc"]}");
                        Logging.Comment($"Дата:{row["date_create"]}");
                        Logging.Comment($"Отдел нарушителя:{row["depPenalty"]}");
                        Logging.Comment($"Заголовок ДЗ:{row["cname"]}");
                        Logging.Comment($"Тип нарушения:{row["DistrType"]}");
                        Logging.Comment($"Сумма нарушения:{row["sumPenalty"]}");
                        Logging.Comment($"Сумма премии:{row["SumBonus"]}");
                        Logging.Comment($"Сотрудник, обнаружевший нарушение:{row["FIOBonus"]}");
                    }
                }
            }


            Logging.Comment("Операцию выполнил: ID:" + Nwuram.Framework.Settings.User.UserSettings.User.Id
                            + " ; ФИО:" + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername);
            Logging.StopFirstLevel();
        }
示例#4
0
        public bool createTable()
        {
            Task <DataTable> task = Config.hCntMain.getPlanAgreement();

            task.Wait();
            DataTable dtAgreements = task.Result;

            if (dtAgreements == null)
            {
                return(false);
            }
            task = Config.hCntMain.getDiscounts();
            task.Wait();
            DataTable dtDiscounts = task.Result;

            if (dtDiscounts == null)
            {
                return(false);
            }
            task = Config.hCntMain.getLeaves();
            task.Wait();
            dtLeaves = task.Result;
            if (dtLeaves == null)
            {
                return(false);
            }
            int i = 0;

            // по каждому договору
            foreach (DataRow dr in dtAgreements.Rows)
            {
                cAgrCount = i / dtAgreements.Rows.Count;
                i++;
                // таблица - расчет стоимости по дням с учетом скидок
                int    id_Agreemets    = (int)dr["id"];
                string name_Agreements = dr["Agreement"].ToString();

                DataTable dtPriceDays = new DataTable();
                dtPriceDays.Columns.Add("day", typeof(DateTime));
                dtPriceDays.Columns.Add("price", typeof(decimal));
                DateTime dateStart = (DateTime)dr["dateStart"];
                DateTime dateEnd   = (DateTime)dr["dateEnd"];
                decimal  price     = decimal.Parse(dr["Total_Sum"].ToString());
                decimal  area      = decimal.Parse(dr["Total_Area"].ToString());
                decimal  phone     = decimal.Parse(dr["Phone"].ToString());

                DateTime dateIterator = dateStart;
                while (dateIterator <= dateEnd)
                {
                    dtPriceDays.Rows.Add(dateIterator, Math.Round(price / DateTime.DaysInMonth(dateIterator.Year, dateIterator.Month), 2));
                    dateIterator = dateIterator.AddDays(1);
                }

                EnumerableRowCollection <DataRow> rDiscounts = dtDiscounts.AsEnumerable().Where(r => r.Field <int>("id_Agreements") == id_Agreemets);
                if (rDiscounts.Count() > 0)
                {
                    foreach (DataRow drDays in dtPriceDays.Rows)
                    {
                        DateTime discountArea = new DateTime(1900, 1, 1);
                        //скидки на кв.м.
                        EnumerableRowCollection <DataRow> rowcoll = rDiscounts
                                                                    .Where(r => r.Field <DateTime>("DateStart") <= (DateTime)drDays["day"] && (r.Field <DateTime?>("DateEnd") is null || r.Field <DateTime?>("DateEnd") >= (DateTime)drDays["day"]) &&
                                                                           r.Field <int>("id_TypeDiscount") == 2).OrderByDescending(o => o.Field <DateTime>("DateStart"));
                        if (rowcoll.Count() > 0)
                        {
                            discountArea    = (DateTime)rowcoll.First()["DateStart"];
                            drDays["price"] = Math.Round((decimal.Parse(rowcoll.First()["Discount"].ToString()) * area + phone)
                                                         / DateTime.DaysInMonth(DateTime.Parse(drDays["day"].ToString()).Year, DateTime.Parse(drDays["day"].ToString()).Month), 2);
                        }
                        //процент

                        rowcoll = rDiscounts
                                  .Where(r => r.Field <DateTime>("DateStart") <= (DateTime)drDays["day"] && (r.Field <DateTime?>("DateEnd") is null || r.Field <DateTime?>("DateEnd") >= (DateTime)drDays["day"]) &&
                                         r.Field <int>("id_TypeDiscount") == 1).OrderByDescending(o => o.Field <DateTime>("DateStart"));
                        if (rowcoll.Count() > 0)
                        {
                            if ((DateTime)rowcoll.First()["DateStart"] > discountArea)
                            {
                                drDays["price"] = Math.Round((100 - decimal.Parse(rowcoll.First()["Discount"].ToString())) / 100 * decimal.Parse(drDays["price"].ToString()), 2);
                            }
                        }
                    }
                }

                DataTable resultTable = new DataTable();
                resultTable.Columns.Add("month", typeof(int));     //месяц цифрой
                resultTable.Columns.Add("year", typeof(int));      // год цифврой
                resultTable.Columns.Add("price", typeof(decimal)); // оплата за месяц
                resultTable.Columns.Add("date", typeof(DateTime)); // дата датой  с первым числом
                //resultTable.Columns.Add("sumPrice", typeof(decimal));// сумма по месяцам до месяца
                var temp = dtPriceDays.AsEnumerable()
                           .GroupBy(t => new
                {
                    month = t.Field <DateTime>("day").Month,
                    year  = t.Field <DateTime>("day").Year
                })
                           .Select(s =>
                {
                    DataRow drow  = resultTable.NewRow();
                    drow["month"] = s.Key.month;
                    drow["year"]  = s.Key.year;
                    drow["price"] = decimal.Round(s.Sum(r => r.Field <decimal>("price")));
                    drow["date"]  = new DateTime(s.Key.year, s.Key.month, 1);
                    //drow["sumPrice"] = 0;
                    return(drow);
                });
                if (temp.Count() > 0)
                {
                    resultTable = temp.CopyToDataTable();
                }

                /*foreach (DataRow dr in resultTable.Rows)
                 * {
                 *  dr["sumPrice"] = resultTable.AsEnumerable().Where(r => r.Field<DateTime>("date") <= (DateTime)dr["date"]).Sum(r => r.Field<decimal>("price"));
                 * }*/

                //список договоров для второй таблицы (с заявкой на съезд)
                EnumerableRowCollection <DataRow> rowsLeave = dtLeaves.AsEnumerable().Where(r => r.Field <int>("id") == id_Agreemets);
                if (rowsLeave.Count() > 0)
                {
                    DataTable dtLastMonth = new DataTable();
                    dtLastMonth.Columns.Add("price", typeof(decimal));
                    dtLastMonth.Columns.Add("date", typeof(DateTime));
                    dtLastMonth = dtPriceDays.AsEnumerable()
                                  .Where(r => r.Field <DateTime>("day").Month == DateTime.Parse(rowsLeave.First()["Date_of_Departure"].ToString()).Month&&
                                         r.Field <DateTime>("day").Year == DateTime.Parse(rowsLeave.First()["Date_of_Departure"].ToString()).Year&&
                                         r.Field <DateTime>("day") <= DateTime.Parse(rowsLeave.First()["Date_of_Departure"].ToString()))
                                  .GroupBy(g => new { month = g.Field <DateTime>("day").Month, year = g.Field <DateTime>("day").Year })
                                  .Select(s =>
                    {
                        DataRow drow  = dtLastMonth.NewRow();
                        drow["date"]  = new DateTime(s.Key.year, s.Key.month, 1);
                        drow["price"] = decimal.Round(s.Sum(r => r.Field <decimal>("price")));
                        return(drow);
                    }).CopyToDataTable();
                    listLeave.Add(id_Agreemets, dtLastMonth);
                }

                listPay.Add(id_Agreemets, resultTable);
            }
            insertData();
            return(true);
        }
示例#5
0
        private static HtmlBuilder LinkTable(
            this HtmlBuilder hb,
            Context context,
            SiteSettings ss,
            View view,
            EnumerableRowCollection <DataRow> dataRows,
            string direction,
            string dataTableName)
        {
            ss.SetChoiceHash(dataRows: dataRows);
            return(hb.Table(
                       id: dataTableName,
                       css: "grid",
                       attributes: new HtmlAttributes()
                       .DataId(ss.SiteId.ToString())
                       .DataName(direction)
                       .DataValue("back")
                       .DataAction("LinkTable")
                       .DataMethod("post"),
                       action: () =>
            {
                var siteMenu = SiteInfo.TenantCaches.Get(context.TenantId)?.SiteMenu;
                if (dataRows != null && dataRows.Any())
                {
                    ss.SetColumnAccessControls(context: context);
                    var columns = ss.GetLinkTableColumns(
                        context: context,
                        view: view,
                        checkPermission: true);
                    switch (ss.ReferenceType)
                    {
                    case "Issues":
                        var issueCollection = new IssueCollection(
                            context: context,
                            ss: ss,
                            dataRows: dataRows);
                        issueCollection.SetLinks(context: context, ss: ss);
                        hb
                        .Caption(caption: "{0} : {1} - {2} {3}".Params(
                                     Caption(
                                         context: context,
                                         direction: direction),
                                     siteMenu.Breadcrumb(context: context, siteId: ss.SiteId)
                                     .Select(o => o.Title)
                                     .Join(" > "),
                                     Displays.Quantity(context: context),
                                     dataRows.Count()))
                        .THead(action: () => hb
                               .GridHeader(
                                   context: context,
                                   ss: ss,
                                   columns: columns,
                                   view: view,
                                   sort: true,
                                   checkRow: false,
                                   action: "LinkTable"))
                        .TBody(action: () => issueCollection
                               .ForEach(issueModel =>
                        {
                            ss.SetColumnAccessControls(
                                context: context,
                                mine: issueModel.Mine(context: context));
                            hb.Tr(
                                attributes: new HtmlAttributes()
                                .Class("grid-row")
                                .DataId(issueModel.IssueId.ToString()),
                                action: () => columns
                                .ForEach(column => hb
                                         .TdValue(
                                             context: context,
                                             ss: ss,
                                             column: column,
                                             issueModel: issueModel)));
                        }));
                        break;

                    case "Results":
                        var resultCollection = new ResultCollection(
                            context: context,
                            ss: ss,
                            dataRows: dataRows);
                        resultCollection.SetLinks(context: context, ss: ss);
                        hb
                        .Caption(caption: "{0} : {1} - {2} {3}".Params(
                                     Caption(
                                         context: context,
                                         direction: direction),
                                     siteMenu.Breadcrumb(context: context, siteId: ss.SiteId)
                                     .Select(o => o.Title)
                                     .Join(" > "),
                                     Displays.Quantity(context: context),
                                     dataRows.Count()))
                        .THead(action: () => hb
                               .GridHeader(
                                   context: context,
                                   ss: ss,
                                   columns: columns,
                                   view: view,
                                   sort: true,
                                   checkRow: false,
                                   action: "LinkTable"))
                        .TBody(action: () => resultCollection
                               .ForEach(resultModel =>
                        {
                            ss.SetColumnAccessControls(
                                context: context,
                                mine: resultModel.Mine(context: context));
                            hb.Tr(
                                attributes: new HtmlAttributes()
                                .Class("grid-row")
                                .DataId(resultModel.ResultId.ToString()),
                                action: () => columns
                                .ForEach(column => hb
                                         .TdValue(
                                             context: context,
                                             ss: ss,
                                             column: column,
                                             resultModel: resultModel)));
                        }));
                        break;
                    }
                }
            }));
        }
示例#6
0
        private void btCreate_Click(object sender, EventArgs e)
        {
            DataTable dtResult        = null;
            DataTable dtRowCollection = rowCollection.CopyToDataTable().Copy();
            bool      isEdit          = false;

            if (id != 0)
            {
                isEdit = true;
                DataTable dtTmp = readSQL.getActWriteOff(DateTime.Now, DateTime.Now, id);


                Logging.StartFirstLevel(930);
                Logging.Comment("Редактирование акта списания");
                if (dtTmp != null && dtTmp.Rows.Count > 0)
                {
                    Logging.Comment("Заголовок акта:");
                    Logging.Comment($"Id акта: {id}");
                    Logging.Comment($"Номер акта: {dtTmp.Rows[0]["Number"]}");
                    Logging.Comment($"Дата создания акта: {dtTmp.Rows[0]["Date"]}");
                    Logging.VariableChange($"Причина списания:", tbReasone.Text, dtTmp.Rows[0]["Reason"].ToString());
                    Logging.Comment($"Статуса акта Id:{dtTmp.Rows[0]["Status"]}; Наименование:{dtTmp.Rows[0]["nameStatus"]}");
                }


                DataTable dtDataBody = readSQL.getContentWriteOff(id);
                if (dtDataBody != null && dtDataBody.Rows.Count > 0)
                {
                    Logging.Comment("Удаленные записи");

                    foreach (DataRow row in dtDataBody.Rows)
                    {
                        EnumerableRowCollection <DataRow> rowCollect = dtRowCollection.AsEnumerable()
                                                                       .Where(r => r.Field <int>("id") == (int)row["id_Hardware"]);
                        if (rowCollect.Count() == 0)
                        {
                            Logging.Comment($"Id оборудования: {row["id_Hardware"]}");
                            Logging.Comment($"Инвентаризационный номер: {row["InventoryNumber"]}");
                            Logging.Comment($"EAN: {row["EAN"]}");
                            Logging.Comment($"Наименование: {row["cName"]}");
                            Logging.Comment($"Оборудование/комплектующие: {row["nameType"]}");
                            Logging.Comment($"Местоположение Id:{row["id_Location"]}; Наименование:{row["nameLocation"]}");
                            Logging.Comment($"Ответственный  Id:{row["id_Responsible"]}; ФИО:{row["FIO"]}");


                            dtResult = readSQL.setContentWriteOff((int)row["id_Hardware"], id, (int)row["id_Hardware"]);
                            if (dtResult == null || dtResult.Rows.Count == 0 || dtResult.Rows[0]["id"].ToString().Equals("-1"))
                            {
                                MessageBox.Show("Ошибка в работе процедуры!", "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                Logging.StopFirstLevel();
                                return;
                            }
                        }
                        else
                        {
                            rowCollect.First().Delete();
                            dtRowCollection.AcceptChanges();
                        }
                    }

                    //foreach (DataRow row in rowCollection)
                    //{
                    //    EnumerableRowCollection<DataRow> rowCollect = dtDataBody.AsEnumerable()
                    //            .Where(r => r.Field<int>("id_Hardware") == (int)row["id"]);
                    //    if (rowCollect.Count() > 0)
                    //        rowCollect.First().Delete();
                    //}
                }

                readSQL.setActWriteOff(id, tbReasone.Text, false);
            }
            else
            {
                dtResult = readSQL.setActWriteOff(id, tbReasone.Text, false);

                if (dtResult == null || dtResult.Rows.Count == 0 || dtResult.Rows[0]["id"].ToString().Equals("-1"))
                {
                    MessageBox.Show("Ошибка в работе процедуры!", "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                id = (int)dtResult.Rows[0]["id"];

                DataTable dtTmp = readSQL.getActWriteOff(DateTime.Now, DateTime.Now, id);


                Logging.StartFirstLevel(17);
                Logging.Comment("Добавление акта списания");
                if (dtTmp != null && dtTmp.Rows.Count > 0)
                {
                    Logging.Comment("Заголовок акта:");
                    Logging.Comment($"Id акта: {id}");
                    Logging.Comment($"Номер акта: {dtTmp.Rows[0]["Number"]}");
                    Logging.Comment($"Дата создания акта: {dtTmp.Rows[0]["Date"]}");
                    Logging.Comment($"Причина списания: {dtTmp.Rows[0]["Reason"]}");
                    Logging.Comment($"Статуса акта Id:{dtTmp.Rows[0]["Status"]}; Наименование:{dtTmp.Rows[0]["nameStatus"]}");
                }
            }

            Logging.Comment(!isEdit ? "Содержимое акта:" : "Добавленные записи");

            foreach (DataRow row in dtRowCollection.Rows)
            {
                Logging.Comment($"Id оборудования: {row["id"]}");
                Logging.Comment($"Инвентаризационный номер: {row["InventoryNumber"]}");
                Logging.Comment($"EAN: {row["EAN"]}");
                Logging.Comment($"Наименование: {row["cName"]}");
                Logging.Comment($"Оборудование/комплектующие: {row["nameHardware"]}");
                Logging.Comment($"Местоположение Id:{row["id_Location"]}; Наименование:{row["nameLocation"]}");
                Logging.Comment($"Ответственный  Id:{row["id_Responsible"]}; ФИО:{row["FIO"]}");


                dtResult = readSQL.setContentWriteOff(0, id, (int)row["id"]);

                if (dtResult == null || dtResult.Rows.Count == 0 || dtResult.Rows[0]["id"].ToString().Equals("-1"))
                {
                    MessageBox.Show("Ошибка в работе процедуры!", "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Logging.StopFirstLevel();
                    return;
                }
            }

            Logging.StopFirstLevel();

            if (DialogResult.Yes == MessageBox.Show(config.centralText("Вывести в Excel созданный акт\nсписания оборудования?\n"), "Печать акта списания оборудования", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2))
            {
                journalActWriteOff.printReport.printWriteOff(id);
            }

            this.DialogResult = DialogResult.OK;
        }
        private bool FindQualifyingElement(EnumerableRowCollection <DataRow> elementSearchProperties, IHTMLElement element)
        {
            foreach (DataRow seachCriteria in elementSearchProperties)
            {
                string searchPropertyName  = seachCriteria.Field <string>("Property Name");
                string searchPropertyValue = seachCriteria.Field <string>("Property Value");
                string searchPropertyFound = seachCriteria.Field <string>("Match Found");

                string innerHTML = element.innerHTML;
                string outerHTML = element.outerHTML;

                searchPropertyFound = "False";

                try
                {
                    //if (element.GetType().GetProperty(searchPropertyName) == null)
                    if ((outerHTML == null) ||
                        (element.getAttribute(searchPropertyName) == null) ||
                        (Convert.IsDBNull(element.getAttribute(searchPropertyName))))
                    {
                        return(false);
                    }

                    if (searchPropertyName.ToLower() == "href")
                    {
                        try
                        {
                            HTMLAnchorElement anchor = (HTMLAnchorElement)element;
                            if (anchor.href.Contains(searchPropertyValue))
                            {
                                seachCriteria.SetField <string>("Match Found", "True");
                            }
                            else
                            {
                                seachCriteria.SetField <string>("Match Found", "False");
                            }
                        }
                        catch (Exception ex)
                        {
                            throw ex;
                        }
                    }
                    else
                    {
                        int searchValue;
                        if (int.TryParse(searchPropertyValue, out searchValue))
                        {
                            //int elementValue = (int)element.GetType().GetProperty(searchPropertyName).GetValue(element, null);
                            int elementValue = (int)element.getAttribute(searchPropertyName);
                            if (elementValue == searchValue)
                            {
                                seachCriteria.SetField <string>("Match Found", "True");
                            }
                            else
                            {
                                seachCriteria.SetField <string>("Match Found", "False");
                            }
                        }
                        else
                        {
                            //string elementValue = (string)element.GetType().GetProperty(searchPropertyName).GetValue(element, null);
                            string elementValue = (string)element.getAttribute(searchPropertyName);
                            if ((elementValue != null) && (elementValue == searchPropertyValue))
                            {
                                seachCriteria.SetField <string>("Match Found", "True");
                            }
                            else
                            {
                                seachCriteria.SetField <string>("Match Found", "False");
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            /*foreach (var seachCriteria in elementSearchProperties)
             * {
             *  Console.WriteLine(seachCriteria.Field<string>("Property Value"));
             * }*/

            return(elementSearchProperties.Where(seachCriteria => seachCriteria.Field <string>("Match Found") == "True").Count() == elementSearchProperties.Count());
        }
示例#8
0
        public static DataTable Aggregate(EnumerableRowCollection <DataRow> resu, Criteria currentCriteria)
        {
            IEnumerable <string> columnsToGroupBy = currentCriteria.agKey.Split(',');
            IEnumerable <string> sumsToSelect     = currentCriteria.agSum.Split(',');

            var keys = currentCriteria.agKey.Split(',');

            var groupList = resu.GroupBy(x => new NTuple <object>(from column in columnsToGroupBy select x[column])); //.Select(val => new { nK=val.FirstOrDefault().Field<string>(keys[0])+"~"+ val.FirstOrDefault().Field<string>(keys[1]), total=val.Sum(c=>Convert.ToDecimal(c.Field<string>(sumsToSelect.FirstOrDefault()))).ToString()});//new NTuple<object>(from sum in sumsToSelect select val[sum])

            if (resu.Count() == 0)
            {
                return(new DataTable());
            }

            DataTable aggregatedTable = resu.FirstOrDefault().Table.Clone();

            aggregatedTable.Columns.Add("AggregatedKey", typeof(string));

            /*foreach (DataColumn col in resu.ElementAtOrDefault(0).Table.Columns)
             * {
             *  table.Columns.Add(col.ColumnName, col.DataType);
             * }*/

            //DataRow toAdd = aggregatedTable.NewRow();
            //toAdd.Table.Columns.Add("AggregatedKey", typeof(string));
            //toAdd["AggregatedKey"] = aggregatedKey;



            foreach (var group in groupList)
            {
                string  aggregatedKey = "";
                DataRow toAdd         = group.FirstOrDefault();
                if (!(toAdd.Table.Columns.Contains("AggregatedKey")))
                {
                    toAdd.Table.Columns.Add("AggregatedKey", typeof(string));
                }
                for (int i = 1; i < group.Count(); i++)
                {                                                                    //each row in the group (except first)
                    for (int j = 0; j < group.ElementAt(i).Table.Columns.Count; j++) //each column in row
                    {
                        var colName = group.ElementAt(i).Table.Columns[j].ColumnName;
                        if (sumsToSelect.Contains(colName))
                        {
                            toAdd[colName] = Convert.ToDouble(toAdd[colName].ToString()) + Convert.ToDouble(group.ElementAt(i)[colName].ToString());
                        }
                        else if (toAdd[colName].ToString() != group.ElementAt(i)[colName].ToString())
                        {
                            toAdd[colName] = null;//group.ElementAt(i)[colName].ToString();
                        }
                    }
                }
                for (int i = 0; i < columnsToGroupBy.Count(); i++)
                {
                    if (i == 0)
                    {
                        aggregatedKey = toAdd[columnsToGroupBy.ElementAt(i)].ToString();
                    }
                    else
                    {
                        aggregatedKey += "~" + toAdd[columnsToGroupBy.ElementAt(i)].ToString();
                    }
                }
                toAdd["AggregatedKey"] = aggregatedKey;
                aggregatedTable.Rows.Add(toAdd.ItemArray);
            }

            return(aggregatedTable);
        }
示例#9
0
        private void setLog(int id, string nameType, decimal Summa, int Number, string FIO)
        {
            DataTable dtTmpData = Config.hCntMain.getServiceRecordsBody(id);

            Logging.StartFirstLevel(1261);


            //Logging.Comment("Номер: " + Number);
            //Logging.Comment("Сумма: " + Summa.ToString());
            //Logging.Comment("ФИО: " + FIO);
            //Logging.Comment("Тип: " + nameType);
            //Logging.Comment("Предполагаемая дата" + dtpDate.Value.ToShortDateString());

            //Logging.Comment(chbChangeDirector.Text + ": " + (chbChangeDirector.Checked ? "Включен" : "Отключен"));
            //if (chbChangeDirector.Checked)
            //    Logging.Comment("Получатель отличается от заказчика");

            //Logging.Comment("Руководиель ID: " + cmbDirector.SelectedValue + "; Наименование:" + cmbDirector.Text.ToString());

            Logging.Comment("Id СЗ: " + id);
            Logging.Comment("Номер СЗ: " + dtTmpData.Rows[0]["Number"].ToString());
            Logging.Comment("Тип СЗ: " + ((int)dtTmpData.Rows[0]["TypeServiceRecord"] == 0 ? "стандарт." : "предварит."));
            //Logging.Comment("Тип СЗ по времени: " + ((int)dtTmpData.Rows[0]["TypeServiceRecordOnTime"] == 1 ? "разовая" : "ежемесячная"));
            Logging.Comment("Тип СЗ по времени: " + ((int)dtTmpData.Rows[0]["TypeServiceRecordOnTime"] == 1 ? "разовая" : ((int)dtTmpData.Rows[0]["TypeServiceRecordOnTime"] == 2 ? "ежемесячная" : "Фонд")));

            int?idFond = dtTmpData.Rows[0]["id_ServiceRecordsFond"] == DBNull.Value ? null : (int?)dtTmpData.Rows[0]["id_ServiceRecordsFond"];

            if (idFond != null)
            {
                DataTable dtTmpFond = Config.hCntMain.getFondInfo(idFond, id);
                if (dtTmpFond != null && dtTmpFond.Rows.Count > 0)
                {
                    Logging.Comment($"№{dtTmpFond.Rows[0]["Number"].ToString()} на {dtTmpFond.Rows[0]["sumString"].ToString()} от {((DateTime)dtTmpFond.Rows[0]["DateConfirmationD"]).ToShortDateString()}");
                }
            }
            else
            {
                Logging.Comment((int)dtTmpData.Rows[0]["TypeServiceRecordOnTime"] == 3 ? "Доп.фонд не выбран" : "Фонд не выбран");
            }


            if (dtTmpData.Rows[0]["inType"] != DBNull.Value)
            {
                DataTable dtTypicalWorks = Config.hCntMain.getTypicalWorks(false);
                if (dtTypicalWorks != null && dtTypicalWorks.Rows.Count > 0)
                {
                    EnumerableRowCollection <DataRow> rowType = dtTypicalWorks.AsEnumerable().Where(r => r.Field <int>("id") == (int)dtTmpData.Rows[0]["inType"]);
                    if (rowType.Count() > 0)
                    {
                        Logging.Comment($"Тип работ ID:{rowType.First()["id"]}; Наименование:{rowType.First()["cName"]}");
                    }
                }
            }

            Logging.Comment("Сумма: " + Summa.ToString());
            Logging.Comment("ФИО: " + FIO);
            Logging.Comment("Тип: " + nameType);

            Logging.Comment("Сумма:" + decimal.Parse(dtTmpData.Rows[0]["Summa"].ToString()).ToString("0.00"));
            if ((bool)dtTmpData.Rows[0]["Mix"])
            {
                Logging.Comment("Сумма нал:" + dtTmpData.Rows[0]["SummaCash"].ToString());
                Logging.Comment("Сумма безнал:" + dtTmpData.Rows[0]["SummaNonCash"].ToString());
            }

            Logging.Comment("Объект ID: " + dtTmpData.Rows[0]["id_Object"].ToString() + "; Наименование:" + dtTmpData.Rows[0]["name_Object"].ToString());
            Logging.Comment("Описание, комментарий: " + dtTmpData.Rows[0]["Description"].ToString());
            Logging.Comment("Оплата: " + (!(bool)dtTmpData.Rows[0]["bCashNonCash"] ? "Наличные" : "Карта"));

            Logging.Comment("Дата создания СЗ: " + ((DateTime)dtTmpData.Rows[0]["CreateServiceRecord"]).ToShortDateString());

            Logging.Comment("Блок ID: " + dtTmpData.Rows[0]["id_Block"].ToString() + "; Наименование:" + dtTmpData.Rows[0]["nameBlock"].ToString());
            Logging.Comment("Отдел ID: " + dtTmpData.Rows[0]["id_Department"].ToString() + "; Наименование:" + dtTmpData.Rows[0]["nameDeps"].ToString());

            Logging.Comment("На рассмотрении РП. Прошу включить в Б: " + ((DateTime)dtTmpData.Rows[0]["MonthB"]).ToShortDateString());

            if (dtTmpData.Rows[0]["bDataSumma"] != DBNull.Value && !(bool)dtTmpData.Rows[0]["bDataSumma"] && dtTmpData.Rows[0]["DataSumma"] != DBNull.Value)
            {
                Logging.Comment("Дата получения ДС (при единовременном получении ДС): " + ((DateTime)dtTmpData.Rows[0]["DataSumma"]).ToShortDateString());
            }
            if (dtTmpData.Rows[0]["DataSumma"] == DBNull.Value && dtTmpData.Rows[0]["bDataSumma"] != DBNull.Value && (bool)dtTmpData.Rows[0]["bDataSumma"])
            {
                DataTable dtMultipleReceivingMone = Config.hCntMain.getMultipleReceivingMone(id);
                Logging.Comment("Дата получения ДС (при распределенном ДС)");

                foreach (DataRow r in dtMultipleReceivingMone.Rows)
                {
                    Logging.Comment("Подномер:" + r["SubNumber"].ToString() + ";Сумма:" + r["Summa"].ToString() + ";Предполагаемая дата:" + r["DataSumma"].ToString());
                }
            }
            Logging.Comment("Комментарий:" + dtTmpData.Rows[0]["Comments"].ToString().Replace(@"\r", "\r\n"));

            //if (comment.Length != 0)
            //    Logging.Comment("Комментрий с формы:" + comment);

            Logging.Comment("Операцию выполнил: ID:" + Nwuram.Framework.Settings.User.UserSettings.User.Id
                            + " ; ФИО:" + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername);
            Logging.StopFirstLevel();
        }
示例#10
0
    protected void Page_PreRender(object sender, EventArgs e)
    {
        string menu = "PG";

        this.plhCreateYourOwnPizza.Visible = false;
        if (Request.QueryString["menu"] == "PapaJohns")
        {
            menu       = "PJ";
            this.Title = "Menu | Papa John's";
            this.plhCreateYourOwnPizza.Visible = true;
        }

        // must select where either "PG" or "PJ" and manage food type meals (PG only)
        DataTable categories = MenuData[1];

        //add a sort column
        categories.Columns.Add("sort");
        categories.Columns.Add("sort2");

        //put values in the sort column (these are for PG foods, look up the DB data)
        foreach (DataRow row in categories.Rows)
        {
            if (row["food_type_meal"].ToString() == "B")
            {
                row["sort"] = "1";
            }
            else if (row["food_type_meal"].ToString() == "L")
            {
                row["sort"] = "2";
            }
            else if (row["food_type_meal"].ToString() == "A")
            {
                row["sort"] = "3";
            }

            switch (row["food_type_name"].ToString())
            {
            case "Desserts":
                row["sort2"] = "16";
                break;

            case "Breakfast Sandwiches":
                row["sort2"] = "03";
                break;

            case "Breakfast Sides":
                row["sort2"] = "05";
                break;

            case "Bakery":
                row["sort2"] = "04";
                break;

            case "Beverages":
                row["sort2"] = "01";
                break;

            case "Burgers":
                row["sort2"] = "06";
                break;

            case "Soups &amp; Salads":
                row["sort2"] = "11";
                break;

            case "Sandwiches":
                row["sort2"] = "07";
                break;

            case "Paninis":
                row["sort2"] = "08";
                break;

            case "Quesadillas":
                row["sort2"] = "10";
                break;

            case "Wraps":
                row["sort2"] = "09";
                break;

            case "Appetizers":
                row["sort2"] = "02";
                break;

            case "Ice Cream":
                row["sort2"] = "15";
                break;

            case "Classic Pizzas":
                row["sort2"] = "12";
                break;

            case "Create Your Own Pizza":
                row["sort2"] = "17";
                break;

            case "Specialty Pizzas":
                row["sort2"] = "13";
                break;

            case "Papa Johns Sides":
                row["sort2"] = "14";
                break;
            }
        }

        //create the data used   ie.  SELECT ft.*, CASE ... END AS sort FROM food_type WHERE food_type_vendor = :menu AND food_type_name = 'Create Your Own Pizza' ORDER BY sort
        EnumerableRowCollection <DataRow> selectedRows = categories.AsEnumerable().Where(row => row["food_type_vendor"].ToString() == menu &&
                                                                                         row["food_type_name"].ToString() != "Create Your Own Pizza")
                                                         .OrderBy(row => row["sort"].ToString() + " " + row["sort2"].ToString());

        //bind data to repeater
        if (selectedRows.Count() > 0)
        {
            this.rptCategories.DataSource = selectedRows.CopyToDataTable();
            this.rptCategories.DataBind();
        }

        // make temp detail table with added column of foodIDs
        DataTable detailsAndCorrespondingFoodIDs = MenuData[3];

        detailsAndCorrespondingFoodIDs.Columns.Add("FoodIDs");
        detailsAndCorrespondingFoodIDs.Columns.Add("sort");

        // find foodIDs corresponding to a details (yes the backward relationship)
        // do this because we need to match the food clicked with what details correspond and show them later
        foreach (DataRow row in detailsAndCorrespondingFoodIDs.Rows)
        {
            row["FoodIDs"] = " "; // preceeding space used to match
            foreach (DataRow row2 in MenuData[2].Rows)
            {
                if (row["detail_id_pk"].ToString() == row2["detail_id_fk"].ToString())
                {
                    row["FoodIDs"] += row2["food_id_fk"].ToString() + " "; // following space used to match
                }
            }

            // order the details
            // 'extras' make their parents sort
            row["sort"] = row["group_name"].ToString();
            if (row["group_name"].ToString().Contains("X"))
            {
                foreach (DataRow row2 in detailsAndCorrespondingFoodIDs.Rows)
                {
                    if (row2["detail_id_pk"].ToString() == row["group_name"].ToString().Substring(0, row["group_name"].ToString().IndexOf("X")) && string.IsNullOrEmpty(row2["group_name"].ToString()))
                    {
                        row2["sort"] = row["group_name"].ToString();
                    }
                }
            }
        }

        // use temp detail table with added column of foodIDs
        if (detailsAndCorrespondingFoodIDs.Rows.Count > 0)
        {
            this.rptDetailList.DataSource = detailsAndCorrespondingFoodIDs.AsEnumerable().OrderBy(row => row["sort"]).CopyToDataTable();
            this.rptDetailList.DataBind();
        }
    }
示例#11
0
 private static bool HasDifference(
     IEnumerable <ColumnDefinition> columnDefinitionCollection,
     EnumerableRowCollection <DataRow> dbColumnCollection)
 {
     return(dbColumnCollection.Count() != columnDefinitionCollection.Count());
 }
示例#12
0
        private void paintGraphic()
        {
            chart1.Series.Clear();
            chart1.ChartAreas.Clear();

            if (dtDataStatic == null || dtDataStatic.Rows.Count == 0)
            {
                return;
            }

            Random rn = new Random();

            if (rbParamet.Checked)
            {
                chart1.ChartAreas.Add("0");

                foreach (DataRow row in (dgvPeriod.DataSource as DataTable).Rows)
                {
                    Series ser = new Series();
                    ser.Name       = $"ser{row["id"]}";
                    ser.LegendText = $"{row["cName"]}";
                    ser.Color      = Color.FromArgb((int)row["r"], (int)row["g"], (int)row["b"]);
                    chart1.Series.Add(ser);
                }

                int indexSeries = 0;

                foreach (Control cnt in gLegends.Controls)
                {
                    if (cnt is CheckBox)
                    {
                        CheckBox checkBox = (cnt as CheckBox);
                        if (checkBox.Checked)
                        {
                            foreach (DataRow row in (dgvPeriod.DataSource as DataTable).Rows)
                            {
                                EnumerableRowCollection <DataRow> rowCollect = dtDataStatic.AsEnumerable()
                                                                               .Where(r => r.Field <int>("id_period") == (int)row["id"]);
                                if (rowCollect.Count() > 0)
                                {
                                    chart1.Series[$"ser{row["id"]}"].Points.AddXY(indexSeries + 1, rowCollect.First()[dicCheckBoxVsColumnName[checkBox.Name]]);
                                }
                                else
                                {
                                    chart1.Series[$"ser{row["id"]}"].Points.AddXY(indexSeries + 1, 0);
                                }
                            }

                            chart1.ChartAreas[0].AxisX.CustomLabels.Add(new CustomLabel(indexSeries, indexSeries + 2, checkBox.Text, indexSeries % 2, LabelMarkStyle.None));
                            indexSeries++;
                        }
                    }
                }
            }
            else if (rbPeriod.Checked)
            {
                chart1.ChartAreas.Add("0");

                foreach (Control cnt in gLegends.Controls)
                {
                    if (cnt is CheckBox)
                    {
                        CheckBox checkBox = (cnt as CheckBox);
                        if (checkBox.Checked)
                        {
                            Series ser = new Series();
                            ser.Name       = checkBox.Name.Replace("chb", "ser");
                            ser.LegendText = checkBox.Text;
                            ser.Color      = gLegends.Controls[checkBox.Name.Replace("chb", "p")].BackColor;
                            chart1.Series.Add(ser);
                        }
                    }
                }
                int       i      = 0;
                DataTable dtData = (dgvPeriod.DataSource as DataTable);
                foreach (DataRow row in dtData.Rows)
                {
                    EnumerableRowCollection <DataRow> rowCollect = dtDataStatic.AsEnumerable()
                                                                   .Where(r => r.Field <int>("id_period") == (int)row["id"]);
                    //if (rowCollect.Count() == 0) continue;

                    foreach (Series ser in chart1.Series)
                    {
                        string nameSeries = ser.Name;
                        if (rowCollect.Count() == 0)
                        {
                            chart1.Series[nameSeries].Points.AddXY(i + 1, 0);
                        }
                        else
                        {
                            chart1.Series[nameSeries].Points.AddXY(i + 1, rowCollect.First()[dicCheckBoxVsColumnName[nameSeries.Replace("ser", "chb")]]);
                        }
                    }
                    i++;
                }

                i = 0;
                foreach (DataRow row in dtData.Rows)
                {
                    chart1.ChartAreas[0].AxisX.CustomLabels.Add(new CustomLabel(i, i + 2, (string)row["cName"], i % 2, LabelMarkStyle.None));
                    i++;
                }
            }
        }
示例#13
0
        private void btPrint_Click(object sender, EventArgs e)
        {
            DateTime dateStart, dateEnd;
            int      id_Object, id_dep_bonus, id_distrType, id_dep, id_doctype;
            string   listIdStatusDoc = "";

            dateStart    = dtpStart.Value.Date;
            dateEnd      = dtpEnd.Value.Date;
            id_Object    = (int)cmbObject.SelectedValue;
            id_dep_bonus = (int)cmbDepsBonus.SelectedValue;
            id_distrType = (int)cmbType.SelectedValue;
            id_dep       = (int)cmbDeps.SelectedValue;
            id_doctype   = (int)cmbTypeDoc.SelectedValue;

            string listNameStatus = "";

            EnumerableRowCollection <DataRow> rowCollect = (dgvStatus.DataSource as DataTable).AsEnumerable().Where(r => r.Field <bool>("isSelect"));

            foreach (DataRow row in rowCollect)
            {
                listIdStatusDoc += $"{row["id"]},";
                listNameStatus  += $"{row["cName"]},";
            }


            DataTable dtReport = Config.hCntMain.getReportMemorandumDep(dateStart, dateEnd, id_Object, id_dep_bonus, id_distrType, id_dep, id_doctype, listIdStatusDoc);

            if (dtReport == null || dtReport.Rows.Count == 0)
            {
                MessageBox.Show("Нет данных для формирования отчёта", "Печать", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
            }


            Nwuram.Framework.ToExcelNew.ExcelUnLoad report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad();

            int indexRow = 1;

            int maxColumns = 3;

            setWidthColumn(indexRow, 1, 30, report);
            setWidthColumn(indexRow, 2, 18, report);
            setWidthColumn(indexRow, 3, 18, report);

            #region "Head"
            report.Merge(indexRow, 1, indexRow, maxColumns);
            report.AddSingleValue($"Отчёт по оплате {cmbObject.Text} за {dtpStart.Value.ToShortDateString()} -  {dtpEnd.Value.ToShortDateString()}", indexRow, 1);
            report.SetFontBold(indexRow, 1, indexRow, 1);
            report.SetFontSize(indexRow, 1, indexRow, 1, 16);
            report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1);
            indexRow++;
            indexRow++;

            report.Merge(indexRow, 1, indexRow, maxColumns);
            report.AddSingleValue($"{lObject.Text}: {cmbObject.Text}", indexRow, 1);
            indexRow++;

            report.Merge(indexRow, 1, indexRow, maxColumns);
            report.AddSingleValue($"{lType.Text}: {cmbType.Text}", indexRow, 1);
            indexRow++;

            report.Merge(indexRow, 1, indexRow, maxColumns);
            report.AddSingleValue($"{lTypeDoc.Text}: {cmbTypeDoc.Text}", indexRow, 1);
            indexRow++;

            report.Merge(indexRow, 1, indexRow, maxColumns);
            report.AddSingleValue($"{lStatus.Text}: {listNameStatus}", indexRow, 1);
            indexRow++;

            report.Merge(indexRow, 1, indexRow, maxColumns);
            report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1);
            indexRow++;

            report.Merge(indexRow, 1, indexRow, maxColumns);
            report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1);
            indexRow++;
            indexRow++;
            #endregion

            report.AddSingleValue("Отдел", indexRow, 1);
            report.AddSingleValue("Штраф", indexRow, 2);
            report.AddSingleValue("Премия", indexRow, 3);

            report.SetFontBold(indexRow, 1, indexRow, maxColumns);
            report.SetBorders(indexRow, 1, indexRow, maxColumns);
            report.SetWrapText(indexRow, 1, indexRow, maxColumns);
            report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns);
            report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns);
            indexRow++;

            foreach (DataRowView row in dtReport.DefaultView)
            {
                if (dtBonus != null || dtBonus.Rows.Count > 0)
                {
                    EnumerableRowCollection <DataRow> rowBonus = dtBonus.AsEnumerable().Where(r => r.Field <int>("id") == (int)row["id_deps"]);
                    if (rowBonus.Count() > 0)
                    {
                        //if((decimal)row["MinPayment"] <= (decimal)row["PercentPayment"])
                        if ((decimal)rowBonus.First()["MinPayment"] >= (decimal)row["summa"])
                        {
                            row["resultBonus"] = row["summa"];
                        }
                        else
                        {
                            row["resultBonus"] = (decimal)row["summa"] * (decimal)rowBonus.First()["PercentPayment"] / 100;
                        }

                        //row["resultBonus"] = 0.0M;
                    }
                }

                report.SetWrapText(indexRow, 1, indexRow, maxColumns);
                addDataToCell(row, indexRow, 1, "nameDep", report);
                addDataToCell(row, indexRow, 2, "summa", report);
                addDataToCell(row, indexRow, 3, "resultBonus", report);

                //if (row[col.DataPropertyName] is DateTime)
                //    report.AddSingleValue(((DateTime)row[col.DataPropertyName]).ToShortDateString(), indexRow, indexCol);
                //else
                //         if (row[col.DataPropertyName] is bool)
                //    report.AddSingleValue((bool)row[col.DataPropertyName] ? "Да" : "Нет", indexRow, indexCol);
                //else
                //           if (row[col.DataPropertyName] is decimal)
                //{
                //    report.AddSingleValueObject(row[col.DataPropertyName], indexRow, indexCol);
                //    report.SetFormat(indexRow, indexCol, indexRow, indexCol, "0.00");
                //}
                //else
                //    report.AddSingleValue(row[col.DataPropertyName].ToString(), indexRow, indexCol);


                report.SetBorders(indexRow, 1, indexRow, maxColumns);
                report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns);
                report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns);

                indexRow++;
            }
            report.Show();
        }
示例#14
0
        private void btPrint_Click(object sender, EventArgs e)
        {
            int id_typeDoc = (int)cmbTypeDoc.SelectedValue;
            EnumerableRowCollection <DataRow> rowCollect = dtPostVsDeps.AsEnumerable().Where(r => r.Field <bool>("isSelect"));

            if (!chbAllDepsAndPosts.Checked && rowCollect.Count() == 0)
            {
                MessageBox.Show("Необходимо выбрать должность и отдел!", "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
            }

            Task <DataTable> task = Config.hCntMain.getReportInformationUser(id_typeDoc);

            task.Wait();

            if (task.Result == null || task.Result.Rows.Count == 0)
            {
                MessageBox.Show("Нет данных для отчёта!", "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
            }

            DataTable dtReport = task.Result.Clone();

            if (!chbAllDepsAndPosts.Checked)
            {
                foreach (DataRow row in rowCollect)
                {
                    EnumerableRowCollection <DataRow> rowToReport = task.Result.AsEnumerable().Where(r => r.Field <int>("id_Departments") == (int)row["id_Departments"] && r.Field <int>("id_Posts") == (int)row["id_Posts"]);
                    if (rowToReport.Count() > 0)
                    {
                        dtReport.Merge(rowToReport.CopyToDataTable());
                    }
                }
            }
            else if (UserSettings.User.StatusCode.ToLower().Equals("ркв"))
            {
                foreach (DataRow row in dtDepsLinkToDep.Rows)
                {
                    EnumerableRowCollection <DataRow> rowToReport = task.Result.AsEnumerable().Where(r => r.Field <int>("id_Departments") == (int)row["id_DepartmentsView"]);
                    if (rowToReport.Count() > 0)
                    {
                        dtReport.Merge(rowToReport.CopyToDataTable());
                    }
                }
            }
            else
            {
                dtReport = task.Result.Copy();
            }

            if (dtReport.Rows.Count == 0)
            {
                MessageBox.Show("Нет данных для отчёта!", "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
            }

            Nwuram.Framework.ToExcelNew.ExcelUnLoad report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad();
            int indexRow  = 1;
            int maxColumn = 5;

            report.Merge(indexRow, 1, indexRow, maxColumn);
            report.AddSingleValue("Документы, ожидающие ознакомления", indexRow, 1);
            report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumn);
            report.SetFontBold(indexRow, 1, indexRow, maxColumn);
            report.SetFontSize(indexRow, 1, indexRow, maxColumn, 16);
            indexRow++;

            report.Merge(indexRow, 1, indexRow, maxColumn);
            report.AddSingleValue($"Выгрузил:{Nwuram.Framework.Settings.User.UserSettings.User.FullUsername}", indexRow, 1);
            report.SetCellAlignmentToRight(indexRow, 1, indexRow, maxColumn);
            indexRow++;

            report.Merge(indexRow, 1, indexRow, maxColumn);
            report.AddSingleValue($"Дата выгрузки:{DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}", indexRow, 1);
            report.SetCellAlignmentToRight(indexRow, 1, indexRow, maxColumn);
            indexRow++;
            indexRow++;

            report.AddSingleValue("№", indexRow, 1);
            report.AddSingleValue("Отдел", indexRow, 2);
            report.AddSingleValue("Должность", indexRow, 3);
            report.AddSingleValue("Наименование документа", indexRow, 4);
            report.AddSingleValue("Дата отправки на ознакомление", indexRow, 5);
            report.SetBorders(indexRow, 1, indexRow, maxColumn);
            report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumn);
            report.SetWrapText(indexRow, 1, indexRow, maxColumn);
            report.SetFontBold(indexRow, 1, indexRow, maxColumn);

            report.SetColumnWidth(indexRow, 1, indexRow, 1, 6);
            report.SetColumnWidth(indexRow, 2, indexRow, 2, 25);
            report.SetColumnWidth(indexRow, 3, indexRow, 3, 25);
            report.SetColumnWidth(indexRow, 4, indexRow, 4, 50);
            report.SetColumnWidth(indexRow, 5, indexRow, 5, 20);

            indexRow++;

            var groupDeps = dtReport.AsEnumerable().GroupBy(r => new { id_Departments = r.Field <int>("id_Departments"), nameDep = r.Field <string>("nameDep") })
                            .Select(s => new
            {
                s.Key.id_Departments,
                s.Key.nameDep
            });

            int npp = 1;

            foreach (var gDep in groupDeps)
            {
                int startIndexGroupDeps = indexRow;
                var groupPost           = dtReport.AsEnumerable()
                                          .Where(r => r.Field <int>("id_Departments") == gDep.id_Departments)
                                          .GroupBy(r => new { id_Posts = r.Field <int>("id_Posts"), namePost = r.Field <string>("namePost") })
                                          .Select(s => new
                {
                    s.Key.id_Posts,
                    s.Key.namePost
                });

                foreach (var gPost in groupPost)
                {
                    int startIndexGroupPost = indexRow;
                    rowCollect = dtReport.AsEnumerable()
                                 .Where(r => r.Field <int>("id_Departments") == gDep.id_Departments && r.Field <int>("id_Posts") == gPost.id_Posts);

                    foreach (DataRow row in rowCollect)
                    {
                        report.AddSingleValue($"{npp}", indexRow, 1);
                        report.AddSingleValue($"{row["cName"]}", indexRow, 4);
                        report.AddSingleValue($"{((DateTime)row["DateEdit"]).ToShortDateString()}", indexRow, 5);
                        report.SetCellAlignmentToCenter(indexRow, 4, indexRow, 5);
                        report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1);
                        report.SetWrapText(indexRow, 4, indexRow, 4);
                        report.SetBorders(indexRow, 1, indexRow, 5);
                        indexRow++;
                        npp++;
                    }

                    report.Merge(startIndexGroupPost, 3, indexRow - 1, 3);
                    report.AddSingleValue($"{gPost.namePost}", startIndexGroupPost, 3);
                    report.SetCellAlignmentToCenter(startIndexGroupPost, 3, startIndexGroupPost, 3);
                    report.SetCellAlignmentToJustify(startIndexGroupPost, 3, startIndexGroupPost, 3);
                    report.SetWrapText(startIndexGroupPost, 3, startIndexGroupPost, 3);
                    report.SetBorders(startIndexGroupPost, 3, startIndexGroupPost, 3);
                }
                report.Merge(startIndexGroupDeps, 2, indexRow - 1, 2);
                report.AddSingleValue($"{gDep.nameDep.Trim()}", startIndexGroupDeps, 2);
                report.SetCellAlignmentToCenter(startIndexGroupDeps, 2, startIndexGroupDeps, 2);
                report.SetCellAlignmentToJustify(startIndexGroupDeps, 2, startIndexGroupDeps, 2);
                report.SetWrapText(startIndexGroupDeps, 2, startIndexGroupDeps, 2);
                report.SetBorders(startIndexGroupDeps, 2, startIndexGroupDeps, 2);
            }

            report.Show();
        }
示例#15
0
        private static HtmlBuilder LinkTable(
            this HtmlBuilder hb,
            Context context,
            SiteSettings ss,
            View view,
            EnumerableRowCollection <DataRow> dataRows,
            string direction,
            string dataTableName,
            int tabIndex = 0)
        {
            if (dataRows != null)
            {
                ss.SetChoiceHash(
                    context: context,
                    dataRows: dataRows);
            }
            return(hb.Table(
                       id: dataTableName,
                       css: "grid" + (ss.GetNoDisplayIfReadOnly()
                    ? " not-link"
                    : string.Empty),
                       attributes: new HtmlAttributes()
                       .DataId(ss.SiteId.ToString())
                       .DataName(direction)
                       .DataValue("back")
                       .DataAction("LinkTable")
                       .DataMethod("post")
                       .Add(
                           name: "from-tab-index",
                           value: tabIndex.ToString()),
                       action: () =>
            {
                var siteMenu = SiteInfo.TenantCaches.Get(context.TenantId)?.SiteMenu;
                if (dataRows != null && dataRows.Any())
                {
                    var columns = ss.GetLinkTableColumns(
                        context: context,
                        view: view,
                        checkPermission: true);
                    switch (ss.ReferenceType)
                    {
                    case "Issues":
                        var issueCollection = new IssueCollection(
                            context: context,
                            ss: ss,
                            dataRows: dataRows);
                        issueCollection.SetLinks(context: context, ss: ss);
                        hb
                        .Caption(
                            action: () => hb
                            .Span(
                                css: "caption-direction",
                                action: () => hb
                                .Text(text: "{0} : ".Params(Caption(
                                                                context: context,
                                                                direction: direction))))
                            .Span(
                                css: "caption-title",
                                action: () => hb
                                .Text(text: "{0}".Params(siteMenu.Breadcrumb(
                                                             context: context,
                                                             siteId: ss.SiteId)
                                                         .Select(o => o.Title)
                                                         .Join(" > "))))
                            .Span(
                                css: "caption-quantity",
                                action: () => hb
                                .Text(text: " - {0} ".Params(
                                          Displays.Quantity(context: context))))
                            .Span(
                                css: "caption-count",
                                action: () => hb
                                .Text(text: "{0}".Params(dataRows.Count()))))
                        .THead(action: () => hb
                               .GridHeader(
                                   context: context,
                                   ss: ss,
                                   columns: columns,
                                   view: view,
                                   sort: true,
                                   checkRow: false,
                                   action: "LinkTable"))
                        .TBody(action: () => issueCollection
                               .ForEach(issueModel =>
                                        hb.Tr(
                                            attributes: new HtmlAttributes()
                                            .Class("grid-row")
                                            .DataId(issueModel.IssueId.ToString()),
                                            action: () => columns
                                            .ForEach(column => hb
                                                     .TdValue(
                                                         context: context,
                                                         ss: ss,
                                                         column: column,
                                                         issueModel: issueModel,
                                                         tabIndex: tabIndex)))));
                        break;

                    case "Results":
                        var resultCollection = new ResultCollection(
                            context: context,
                            ss: ss,
                            dataRows: dataRows);
                        resultCollection.SetLinks(context: context, ss: ss);
                        hb
                        .Caption(
                            action: () => hb
                            .Span(
                                css: "caption-direction",
                                action: () => hb
                                .Text(text: "{0} : ".Params(Caption(
                                                                context: context,
                                                                direction: direction))))
                            .Span(
                                css: "caption-title",
                                action: () => hb
                                .Text(text: "{0}".Params(siteMenu.Breadcrumb(
                                                             context: context,
                                                             siteId: ss.SiteId)
                                                         .Select(o => o.Title)
                                                         .Join(" > "))))
                            .Span(
                                css: "caption-quantity",
                                action: () => hb
                                .Text(text: " - {0} ".Params(
                                          Displays.Quantity(context: context))))
                            .Span(
                                css: "caption-count",
                                action: () => hb
                                .Text(text: "{0}".Params(dataRows.Count()))))
                        .THead(action: () => hb
                               .GridHeader(
                                   context: context,
                                   ss: ss,
                                   columns: columns,
                                   view: view,
                                   sort: true,
                                   checkRow: false,
                                   action: "LinkTable"))
                        .TBody(action: () => resultCollection
                               .ForEach(resultModel =>
                                        hb.Tr(
                                            attributes: new HtmlAttributes()
                                            .Class("grid-row")
                                            .DataId(resultModel.ResultId.ToString()),
                                            action: () => columns
                                            .ForEach(column => hb
                                                     .TdValue(
                                                         context: context,
                                                         ss: ss,
                                                         column: column,
                                                         resultModel: resultModel,
                                                         tabIndex: tabIndex)))));
                        break;
                    }
                }
            }));
        }
示例#16
0
        protected DataTable GetData()
        {
            var ds = ScheduleDetailDataManager.SearchView(oSearchFilter.SearchParameters, SessionVariables.RequestProfile);

            AllDataRows = ds.Tables[1];
            DataTable dt = null;

            // refresh total time spent variable everytime new data is retrieved.
            TotalTimeSpentCount = GetTotalTimeSpentCount();

            if (string.IsNullOrEmpty(oSearchFilter.GroupBy) || oSearchFilter.GroupBy == "-1" || oSearchFilter.GroupBy == "All")
            {
                if (ds.Tables.Count > 1)
                {
                    var tblKeyDescription = new DataTable();

                    tblKeyDescription.AcceptChanges();
                    tblKeyDescription.Columns.Add("Person");
                    tblKeyDescription.Columns.Add("PersonId");

                    var row = tblKeyDescription.NewRow();
                    row["Person"]   = "All";
                    row["PersonId"] = "All";
                    tblKeyDescription.Rows.Add(row);

                    var dataView = tblKeyDescription.DefaultView;

                    dt = dataView.ToTable();
                    GrdParentGrid.DataSource = dt;
                    GrdParentGrid.DataBind();

                    TotalParentCount = dt.Rows.Count;
                }
            }
            else if (ds.Tables.Count > 1 && !String.IsNullOrEmpty(oSearchFilter.GroupBy.Trim()) && oSearchFilter.GroupBy != "-1" && oSearchFilter.GroupBy != "All")
            {
                // adding statistic header row only if only Grouping is applied.
                if (String.IsNullOrEmpty(oSearchFilter.SubGroupBy) || oSearchFilter.SubGroupBy == "-1" || oSearchFilter.SubGroupBy == "All")
                {
                    TableReportContent.Controls.Add(GetStatisticInfoHTMLHeaderRow(oSearchFilter.GroupBy));
                }
                // All related fings (children)

                var AllDataRows_Schedule = ds.Tables[0];

                var tblKeyDescription = new DataTable();
                tblKeyDescription.Columns.Add("Grouping");
                tblKeyDescription.Columns.Add("Key");

                // temp
                tblKeyDescription.Columns.Add("PersonId");
                tblKeyDescription.Columns.Add("Person");


                tblKeyDescription.AcceptChanges();

                AllDataRows_Schedule.Merge(AllDataRows);
                var distinctFieldValues = (from row in AllDataRows_Schedule.AsEnumerable()
                                           .Where(row => row[oSearchFilter.GroupBy].ToString().Trim() != "")
                                           orderby row[oSearchFilter.GroupBy].ToString().Trim() descending
                                           select row[oSearchFilter.GroupBy].ToString().Trim())
                                          .Distinct(StringComparer.CurrentCultureIgnoreCase);

                //var distinctFieldValues = (from row in AllDataRows.AsEnumerable()
                //						   orderby row["PersonId"].ToString().Trim()
                //						   select row["PersonId"].ToString().Trim()).Distinct(StringComparer.CurrentCultureIgnoreCase);

                foreach (var key in distinctFieldValues)
                {
                    var row = tblKeyDescription.NewRow();
                    row["Grouping"] = oSearchFilter.GroupBy;
                    row["Key"]      = key;

                    // temp
                    //row["PersonId"] = key;
                    //row["Person"] = key;

                    EnumerableRowCollection <object> schedulePKId = null;

                    //if (AllDataRows_Schedule.Columns.Contains("IsUpdated"))
                    //{
                    //	schedulePKId = AllDataRows_Schedule.AsEnumerable()
                    //						.Where(x => x[ScheduleDataModel.DataColumns.Person].ToString().ToLower() == key &&
                    //						 x[ScheduleDataModel.DataColumns.IsUpdated].ToString() == "1")
                    //						.Select(x => x[ScheduleDataModel.DataColumns.PersonId]);
                    //}
                    //else
                    //{

                    schedulePKId = AllDataRows_Schedule.AsEnumerable()
                                   .Where(x => x[ScheduleDetailDataModel.DataColumns.Person].ToString().ToLower() == key)
                                   .Select(x => x[ScheduleDetailDataModel.DataColumns.PersonId]);
                    //}

                    //if (oSearchFilter.GroupBy == ScheduleDataModel.DataColumns.Person)
                    //{
                    if (schedulePKId.Count() != 0)
                    {
                        var rowItem = from rowPK in AllDataRows_Schedule.AsEnumerable() select rowPK;
                        row["PersonId"] = rowItem.First();
                        row["Person"]   = key;
                        tblKeyDescription.Rows.Add(row);
                    }
                    //}
                    else
                    {
                        row["Person"] = key;
                        tblKeyDescription.Rows.Add(row);
                    }
                    //row["ReleaseLogId"] = key;

                    //row["Person"] = key;

                    //tblKeyDescription.Rows.Add(row);
                }

                tblKeyDescription.AcceptChanges();

                var dataView = tblKeyDescription.DefaultView;                // ds.Tables[0].DefaultView;
                //dataView.Sort = ScheduleDataModel.DataColumns.PersonId + " DESC";

                dt = dataView.ToTable();

                TotalParentCount = dt.Rows.Count;

                GrdParentGrid.DataSource = dt;
                GrdParentGrid.DataBind();
            }

            //TotalParentCount = dt.Rows.Count;

            //if ((ds.Tables[1].Rows.Count == 0 && ds.Tables[0].Rows.Count < 1) || (ds.Tables[1].Rows.Count == 0 && ds.Tables[0].Rows.Count > 1))
            if (ds.Tables[0].Rows.Count == 0)
            {
                lblSearchStatus.Text = "No records found for the given Search parameters.";
                //StatsDiv.Visible = false;
            }
            else
            {
                lblSearchStatus.Text = String.Empty;
                //StatsDiv.Visible = true;
            }

            return(ds.Tables[0]);
        }
示例#17
0
        protected void TxBuscar_TextChanged(object sender, EventArgs e)
        {
            try{
                cargarDatos(Session["DOCUMENTOS_TIPO_ID"].ToString());
                String    vBusqueda = TxBuscar.Text;
                DataTable vDatos    = (DataTable)Session["DOCUMENTOS"];

                if (vBusqueda.Equals(""))
                {
                    GVBusqueda.DataSource = vDatos;
                    GVBusqueda.DataBind();
                    mostrarOcultar(vDatos);
                }
                else
                {
                    EnumerableRowCollection <DataRow> filtered = vDatos.AsEnumerable()
                                                                 .Where(r => r.Field <String>("nombre").Contains(vBusqueda));

                    Boolean isNumeric = int.TryParse(vBusqueda, out int n);

                    if (isNumeric)
                    {
                        if (filtered.Count() == 0)
                        {
                            filtered = vDatos.AsEnumerable().Where(r =>
                                                                   Convert.ToInt32(r["idDocumento"]) == Convert.ToInt32(vBusqueda));
                        }
                    }

                    DataTable vDatosFiltrados = new DataTable();
                    vDatosFiltrados.Columns.Add("idDocumento");
                    vDatosFiltrados.Columns.Add("codigo");
                    vDatosFiltrados.Columns.Add("nombre");
                    vDatosFiltrados.Columns.Add("nivelConfidencialidad");
                    vDatosFiltrados.Columns.Add("activo");
                    vDatosFiltrados.Columns.Add("firma");
                    vDatosFiltrados.Columns.Add("fechaRegistro");
                    vDatosFiltrados.Columns.Add("descripcion");
                    foreach (DataRow item in filtered)
                    {
                        vDatosFiltrados.Rows.Add(
                            item["idDocumento"].ToString(),
                            item["codigo"].ToString(),
                            item["nombre"].ToString(),
                            item["nivelConfidencialidad"].ToString(),
                            item["activo"].ToString(),
                            item["firma"].ToString(),
                            item["fechaRegistro"].ToString(),
                            item["descripcion"].ToString()
                            );
                    }

                    GVBusqueda.DataSource = vDatosFiltrados;
                    GVBusqueda.DataBind();
                    mostrarOcultar(vDatosFiltrados);
                    Session["DOCUMENTOS"] = vDatosFiltrados;
                }
            }catch (Exception ex) {
                Mensaje(ex.Message, WarningType.Danger);
            }
        }
示例#18
0
        private void btSave_Click(object sender, EventArgs e)
        {
            if (cmbDeps.SelectedValue == null)
            {
                MessageBox.Show(Config.centralText($"Необходимо заполнить\n \"{label2.Text}\"\n"), "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                cmbDeps.Focus();
                return;
            }

            if (cmbNds.SelectedValue == null)
            {
                MessageBox.Show(Config.centralText($"Необходимо заполнить\n \"{label2.Text}\"\n"), "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                cmbNds.Focus();
                return;
            }

            if (tbName.Text.Trim().Length == 0)
            {
                MessageBox.Show(Config.centralText($"Необходимо заполнить\n \"{lName.Text}\"\n"), "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                tbName.Focus();
                return;
            }

            /*
             * if (tbID.Text.Trim().Length == 0)
             * {
             *  MessageBox.Show(Config.centralText($"Необходимо заполнить\n \"{label4.Text}\"\n"), "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             *  tbID.Focus();
             *  return;
             * }
             *
             * int _id;
             * if (!int.TryParse(tbID.Text.Trim(), out _id))
             * {
             *  MessageBox.Show(Config.centralText($"Необходимо заполнить\n \"{label4.Text}\"\n"), "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             *  tbID.Focus();
             *  return;
             * }
             *
             * int lenDeps = cmbDeps.SelectedValue.ToString().Length;
             * if (tbID.Text.Length < lenDeps)
             * {
             *  MessageBox.Show(Config.centralText($"Необходимо заполнить\n \"{label4.Text}\"\n"), "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             *  tbID.Focus();
             *  return;
             * }
             *
             * if ((int)cmbDeps.SelectedValue!=int.Parse(tbID.Text.Trim().Substring(0,lenDeps)))
             * {
             *  MessageBox.Show(Config.centralText($"Необходимо заполнить\n \"{label4.Text}\"\n"), "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Warning);
             *  tbID.Focus();
             *  return;
             * }
             * id = _id;
             */


            EnumerableRowCollection <DataRow> rowCollect = dtGrp2.AsEnumerable().Where(r => r.Field <bool>("isSelect") && r.Field <int>("id_otdel") == (int)cmbDeps.SelectedValue);
            //if (rowCollect.Count() == 0)
            //{
            //return;
            //}


            string cName            = tbName.Text.Trim();
            int    id_otdel         = (int)cmbDeps.SelectedValue;
            int    id_nds           = (int)cmbNds.SelectedValue;
            int?   ntypeorg         = null;
            bool   isCredit         = chbIsCredit.Checked;
            bool   isWithSubGroups  = chbWithSubGroups.Checked;
            bool   isActive         = true;
            bool   isDel            = false;
            int    result           = 0;
            bool   isAutoIncriments = false;

            Task <DataTable> task = Config.hCntMain.setGrp1(id, cName, id_otdel, id_nds, ntypeorg, isCredit, isWithSubGroups, isActive, isDel, result, isAutoIncriments);

            task.Wait();

            DataTable dtResult = task.Result;

            if (dtResult == null || dtResult.Rows.Count == 0)
            {
                MessageBox.Show("Не удалось сохранить данные", "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }


            if ((int)dtResult.Rows[0]["id"] == -1)
            {
                MessageBox.Show("В справочнике уже присутствует ТУ группа с таким наименованием.", "Сохранение", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if ((int)dtResult.Rows[0]["id"] == -9999)
            {
                MessageBox.Show($"Произошла ошибка:{dtResult.Rows[0]["msg"]} ", "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            id = (int)dtResult.Rows[0]["id"];

            isAutoIncriments = true;
            task             = Config.hCntSecond.setGrp1(id, cName, id_otdel, id_nds, ntypeorg, isCredit, isWithSubGroups, isActive, isDel, result, isAutoIncriments);
            task.Wait();


            foreach (DataRow row in rowCollect)
            {
                task = Config.hCntMain.setGrp1VsGrp2(id, (int)row["id"], false, false);
                task = Config.hCntSecond.setGrp1VsGrp2(id, (int)row["id"], false, true);
            }

            if (dtGrp_old != null)
            {
                foreach (DataRow row in dtGrp_old.Rows)
                {
                    rowCollect = dtGrp2.AsEnumerable().Where(r => r.Field <bool>("isSelect") && r.Field <int>("id_otdel") == (int)cmbDeps.SelectedValue && r.Field <int>("id") == (int)row["id"]);

                    if (rowCollect.Count() == 0)
                    {
                        task = Config.hCntMain.setGrp1VsGrp2(id, (int)row["id"], true, false);
                        task = Config.hCntSecond.setGrp1VsGrp2(id, (int)row["id"], true, true);
                    }
                }
            }



            if (id == 0)
            {
                id = (int)dtResult.Rows[0]["id"];
                Logging.StartFirstLevel(1564);
                //Logging.Comment("Добавить Тип документа");
                Logging.Comment($"ID: {id}");
                Logging.Comment($"Наименование: {tbName.Text.Trim()}");
                Logging.StopFirstLevel();
            }
            else
            {
                Logging.StartFirstLevel(1565);
                //Logging.Comment("Редактировать Тип документа");
                Logging.Comment($"ID: {id}");
                Logging.VariableChange("Наименование", tbName.Text.Trim(), oldName);
                Logging.StopFirstLevel();
            }

            isEditData = false;
            MessageBox.Show("Данные сохранены.", "Сохранение данных", MessageBoxButtons.OK, MessageBoxIcon.Information);
            this.DialogResult = DialogResult.OK;
        }
示例#19
0
        private async void btnPrint_Click(object sender, EventArgs e)
        {
            if (!chbCancel.Checked && !chbComplete.Checked && !chbЕmployesОrder.Checked)
            {
                return;
            }
            int id_Shop = (int)cmbShop.SelectedValue;
            var outer   = Task.Factory.StartNew(() =>    // внешняя задача
            {
                Config.DoOnUIThread(() =>
                {
                    blockers.SaveControlsEnabledState(this);
                    blockers.SetControlsEnabled(this, false);
                    //progressBar1.Visible = progressBar1.Enabled = true;
                    fLoad          = new Nwuram.Framework.UI.Forms.frmLoad();
                    fLoad.TopMost  = false;
                    fLoad.Owner    = this;
                    fLoad.TextWait = "Грузим отчётик!";
                    fLoad.Show();
                }, this);

                Nwuram.Framework.ToExcelNew.ExcelUnLoad report = new Nwuram.Framework.ToExcelNew.ExcelUnLoad();
                bool isShow = false;


                if (chbComplete.Checked)
                {
                    DataTable dtDataStatus3     = Config.connect.getReportData(dtpStart.Value, dtpEnd.Value, 3, id_Shop);
                    DataTable dtDataStatus3Body = (id_Shop == 1 ? Config.connect : Config.hCntSecond).getSumNotesOrderWithRCena(dtpStart.Value, dtpEnd.Value, 3, id_Shop);

                    if (dtDataStatus3 != null && dtDataStatus3.Rows.Count > 0)
                    {
                        isShow = true;
                        report.changeNameTab("Выполненные");

                        decimal sumOrder = 0, sumNote = 0, SummaDelivery = 0, sumPackage = 0, DeliveryCost = 0, valueOst = 0, valueDelta = 0;


                        int indexRow   = 1;
                        int maxColumns = 12;

                        setWidthColumn(indexRow, 1, 6, report);
                        setWidthColumn(indexRow, 2, 10, report);
                        setWidthColumn(indexRow, 3, 17, report);
                        setWidthColumn(indexRow, 4, 11, report);
                        setWidthColumn(indexRow, 5, 16, report);
                        setWidthColumn(indexRow, 6, 22, report);
                        setWidthColumn(indexRow, 7, 16, report);
                        setWidthColumn(indexRow, 8, 12, report);
                        setWidthColumn(indexRow, 9, 14, report);
                        setWidthColumn(indexRow, 10, 16, report);
                        setWidthColumn(indexRow, 11, 16, report);
                        setWidthColumn(indexRow, 12, 13, report);

                        #region "Head"
                        report.Merge(indexRow, 1, indexRow, maxColumns);
                        report.AddSingleValue($"Отчёт об выполненных заказах с {dtpStart.Value.ToShortDateString()} по {dtpEnd.Value.ToShortDateString()}", indexRow, 1);
                        report.SetFontBold(indexRow, 1, indexRow, 1);
                        report.SetFontSize(indexRow, 1, indexRow, 1, 16);
                        report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1);
                        indexRow++;
                        indexRow++;

                        report.Merge(indexRow, 1, indexRow, maxColumns);
                        report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1);
                        indexRow++;

                        report.Merge(indexRow, 1, indexRow, maxColumns);
                        report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1);
                        indexRow++;
                        indexRow++;
                        #endregion

                        report.AddSingleValue("№ п/п", indexRow, 1);
                        report.AddSingleValue("Номер заказа", indexRow, 2);
                        report.AddSingleValue("Сумма заказа", indexRow, 3);
                        report.AddSingleValue("Дата доставки", indexRow, 4);
                        report.AddSingleValue("Сумма чека", indexRow, 5);
                        report.AddSingleValue("№ чека", indexRow, 6);
                        report.AddSingleValue("Стоимость доставки", indexRow, 7);
                        report.AddSingleValue("Кол-во пакетов", indexRow, 8);
                        report.AddSingleValue("Стоимость пакетов", indexRow, 9);
                        report.AddSingleValue("Затраты на доставку", indexRow, 10);
                        report.AddSingleValue("Остаток по доставке", indexRow, 11);
                        report.AddSingleValue("∆ по чеку", indexRow, 12);


                        report.SetFontBold(indexRow, 1, indexRow, maxColumns);
                        report.SetBorders(indexRow, 1, indexRow, maxColumns);
                        report.SetWrapText(indexRow, 1, indexRow, maxColumns);
                        report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns);
                        report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns);
                        indexRow++;

                        int npp = 1;

                        var groupOrder = dtDataStatus3.AsEnumerable()
                                         .GroupBy(r => new { id_tOrders = r.Field <int>("id_tOrders") })
                                         .Select(g => new
                        {
                            g.Key.id_tOrders,
                            sumNote = g.Sum(r => r.Field <decimal>("sumNote"))
                        });

                        foreach (var g in groupOrder)
                        {
                            EnumerableRowCollection <DataRow> rowCollect = dtDataStatus3.AsEnumerable().Where(r => r.Field <int>("id_tOrders") == g.id_tOrders);
                            DataRow row  = rowCollect.First();
                            int startRow = indexRow;
                            report.SetWrapText(indexRow, 1, indexRow + rowCollect.Count() - 1, maxColumns);
                            report.Merge(indexRow, 1, indexRow + rowCollect.Count() - 1, 1);
                            report.Merge(indexRow, 2, indexRow + rowCollect.Count() - 1, 2);
                            report.Merge(indexRow, 3, indexRow + rowCollect.Count() - 1, 3);
                            report.Merge(indexRow, 4, indexRow + rowCollect.Count() - 1, 4);
                            report.Merge(indexRow, 5, indexRow + rowCollect.Count() - 1, 5);

                            report.Merge(indexRow, 7, indexRow + rowCollect.Count() - 1, 7);
                            report.Merge(indexRow, 8, indexRow + rowCollect.Count() - 1, 8);
                            report.Merge(indexRow, 9, indexRow + rowCollect.Count() - 1, 9);
                            report.Merge(indexRow, 10, indexRow + rowCollect.Count() - 1, 10);
                            report.Merge(indexRow, 11, indexRow + rowCollect.Count() - 1, 11);
                            report.Merge(indexRow, 12, indexRow + rowCollect.Count() - 1, 12);



                            report.AddSingleValue(npp.ToString(), indexRow, 1);
                            report.AddSingleValue(row["OrderNumber"].ToString(), indexRow, 2);
                            report.AddSingleValueObject(row["sumOrder"], indexRow, 3);
                            report.SetFormat(indexRow, 3, indexRow, 3, "0.00");
                            report.AddSingleValue(((DateTime)row["DeliveryDate"]).ToShortDateString(), indexRow, 4);

                            report.AddSingleValueObject(g.sumNote, indexRow, 5);
                            report.SetFormat(indexRow, 5, indexRow, 5, "0.00");

                            report.AddSingleValueObject(row["SummaDelivery"], indexRow, 7);
                            report.SetFormat(indexRow, 7, indexRow, 7, "0.00");

                            report.AddSingleValueObject(row["CountPackage"], indexRow, 8);
                            report.SetFormat(indexRow, 8, indexRow, 8, "0.00");

                            report.AddSingleValueObject(row["sumPackage"], indexRow, 9);
                            report.SetFormat(indexRow, 9, indexRow, 9, "0.00");

                            report.AddSingleValueObject(row["DeliveryCost"], indexRow, 10);
                            report.SetFormat(indexRow, 10, indexRow, 10, "0.00");


                            sumOrder      += (decimal)row["sumOrder"];
                            sumNote       += g.sumNote;
                            SummaDelivery += (decimal)row["SummaDelivery"];
                            sumPackage    += (decimal)row["sumPackage"];
                            DeliveryCost  += (decimal)row["DeliveryCost"];

                            decimal value = (decimal)row["SummaDelivery"] - (decimal)row["sumPackage"] - (decimal)row["DeliveryCost"];
                            valueOst     += value;
                            report.AddSingleValueObject(value, indexRow, 11);
                            report.SetFormat(indexRow, 11, indexRow, 11, "0.00");

                            if (dtDataStatus3Body != null)
                            {
                                decimal sum = dtDataStatus3Body.AsEnumerable().Where(r => r.Field <int>("id_tOrders") == (int)row["id_tOrders"]).Sum(r => r.Field <decimal>("resultSum"));
                                report.AddSingleValueObject(g.sumNote - sum, indexRow, 12);
                                valueDelta += g.sumNote - sum;
                            }
                            else
                            {
                                report.AddSingleValueObject(0, indexRow, 12);
                            }
                            report.SetFormat(indexRow, 12, indexRow, 12, "0.00");

                            foreach (DataRow rowSelect in rowCollect)
                            {
                                //report.AddSingleValueObject(rowSelect["sumNote"], indexRow, 5);
                                //report.SetFormat(indexRow, 5, indexRow, 5, "0.00");
                                report.AddSingleValue($"Касса:{rowSelect["KassNumber"]} Чек:{rowSelect["CheckNumber"]}", indexRow, 6);
                                indexRow++;
                            }



                            report.SetBorders(startRow, 1, indexRow - 1, maxColumns);
                            report.SetCellAlignmentToCenter(startRow, 1, indexRow - 1, maxColumns);
                            report.SetCellAlignmentToJustify(startRow, 1, indexRow - 1, maxColumns);
                            //indexRow++;
                            npp++;
                        }


                        report.SetFormat(indexRow, 2, indexRow, maxColumns, "0.00");

                        report.AddSingleValue($"Итого:", indexRow, 1);
                        report.AddSingleValueObject(sumOrder, indexRow, 3);
                        report.AddSingleValueObject(sumNote, indexRow, 5);
                        report.AddSingleValueObject(SummaDelivery, indexRow, 7);
                        report.AddSingleValueObject(sumPackage, indexRow, 9);
                        report.AddSingleValueObject(DeliveryCost, indexRow, 10);
                        report.AddSingleValueObject(valueOst, indexRow, 11);
                        report.AddSingleValueObject(valueDelta, indexRow, 12);

                        report.SetBorders(indexRow, 1, indexRow, maxColumns);
                        report.SetFontBold(indexRow, 1, indexRow, maxColumns);
                        report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns);
                        report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns);
                    }
                }

                if (chbCancel.Checked)
                {
                    DataTable dtData = Config.connect.getReportData(dtpStart.Value, dtpEnd.Value, 4, id_Shop);
                    if (dtData != null && dtData.Rows.Count > 0)
                    {
                        if (!isShow)
                        {
                            isShow = true;
                            report.changeNameTab("Отменённые");
                        }
                        else
                        {
                            report.GoToNextSheet("Отменённые");
                        }

                        int indexRow     = 1;
                        int maxColumns   = 9;
                        decimal sumOrder = 0;

                        setWidthColumn(indexRow, 1, 9, report);
                        setWidthColumn(indexRow, 2, 20, report);
                        setWidthColumn(indexRow, 3, 20, report);
                        setWidthColumn(indexRow, 4, 16, report);
                        setWidthColumn(indexRow, 5, 20, report);
                        setWidthColumn(indexRow, 6, 18, report);
                        setWidthColumn(indexRow, 7, 16, report);
                        setWidthColumn(indexRow, 8, 16, report);
                        setWidthColumn(indexRow, 9, 40, report);

                        #region "Head"
                        report.Merge(indexRow, 1, indexRow, maxColumns);
                        report.AddSingleValue($"Отчёт об отменённых заказах с {dtpStart.Value.ToShortDateString()} по {dtpEnd.Value.ToShortDateString()}", indexRow, 1);
                        report.SetFontBold(indexRow, 1, indexRow, 1);
                        report.SetFontSize(indexRow, 1, indexRow, 1, 16);
                        report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1);
                        indexRow++;
                        indexRow++;

                        report.Merge(indexRow, 1, indexRow, maxColumns);
                        report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1);
                        indexRow++;

                        report.Merge(indexRow, 1, indexRow, maxColumns);
                        report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1);
                        indexRow++;
                        indexRow++;
                        #endregion

                        report.AddSingleValue("№ п/п", indexRow, 1);
                        report.AddSingleValue("ФИО", indexRow, 2);
                        report.AddSingleValue("Адрес", indexRow, 3);
                        report.AddSingleValue("Телефон", indexRow, 4);
                        report.AddSingleValue("e-mail", indexRow, 5);
                        report.AddSingleValue("Номер заказа", indexRow, 6);
                        report.AddSingleValue("Дата заказа", indexRow, 7);
                        report.AddSingleValue("Сумма заказа", indexRow, 8);
                        report.AddSingleValue("Комментарий об отмене заказа", indexRow, 9);

                        report.SetFontBold(indexRow, 1, indexRow, maxColumns);
                        report.SetBorders(indexRow, 1, indexRow, maxColumns);
                        report.SetWrapText(indexRow, 1, indexRow, maxColumns);
                        report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns);
                        report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns);
                        indexRow++;

                        int npp = 1;

                        foreach (DataRowView row in dtData.DefaultView)
                        {
                            report.SetWrapText(indexRow, 1, indexRow, maxColumns);

                            report.AddSingleValue(npp.ToString(), indexRow, 1);
                            report.AddSingleValue(row["FIO"].ToString(), indexRow, 2);
                            report.AddSingleValue(row["Address"].ToString(), indexRow, 3);
                            report.AddSingleValue(row["Phone"].ToString(), indexRow, 4);
                            report.AddSingleValue(row["Email"].ToString(), indexRow, 5);
                            report.AddSingleValue(row["OrderNumber"].ToString(), indexRow, 6);
                            report.AddSingleValue(((DateTime)row["DateOrder"]).ToShortDateString(), indexRow, 7);
                            report.AddSingleValueObject(row["sumOrder"], indexRow, 8);
                            report.SetFormat(indexRow, 4, indexRow, 4, "0.00");
                            report.AddSingleValue(row["Comment"].ToString(), indexRow, 9);

                            sumOrder += (decimal)row["sumOrder"];

                            report.SetBorders(indexRow, 1, indexRow, maxColumns);
                            report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns);
                            report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns);
                            indexRow++;
                            npp++;
                        }

                        report.SetFormat(indexRow, 2, indexRow, maxColumns, "0.00");

                        report.AddSingleValue($"Итого:", indexRow, 1);
                        report.AddSingleValueObject(sumOrder, indexRow, 8);

                        report.SetBorders(indexRow, 1, indexRow, maxColumns);
                        report.SetFontBold(indexRow, 1, indexRow, maxColumns);
                        report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns);
                        report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns);
                    }
                }

                if (chbЕmployesОrder.Checked)
                {
                    DataTable dtData = Config.connect.reportЕmployesОrder(dtpStart.Value, dtpEnd.Value, id_Shop);
                    if (dtData != null && dtData.Rows.Count > 0)
                    {
                        if (!isShow)
                        {
                            isShow = true;
                            report.changeNameTab("Отчет по сотрудникам");
                        }
                        else
                        {
                            report.GoToNextSheet("Отчет по сотрудникам");
                        }


                        int indexRow     = 1;
                        int maxColumns   = 8;
                        decimal sumOrder = 0;

                        setWidthColumn(indexRow, 1, 9, report);
                        setWidthColumn(indexRow, 2, 25, report);
                        setWidthColumn(indexRow, 3, 16, report);
                        setWidthColumn(indexRow, 4, 16, report);
                        setWidthColumn(indexRow, 5, 16, report);
                        setWidthColumn(indexRow, 6, 12, report);
                        setWidthColumn(indexRow, 7, 12, report);
                        setWidthColumn(indexRow, 8, 12, report);

                        #region "Head"
                        report.Merge(indexRow, 1, indexRow, maxColumns);
                        report.AddSingleValue($"Отчет по сотрудникам с {dtpStart.Value.ToShortDateString()} по {dtpEnd.Value.ToShortDateString()}", indexRow, 1);
                        report.SetFontBold(indexRow, 1, indexRow, 1);
                        report.SetFontSize(indexRow, 1, indexRow, 1, 16);
                        report.SetCellAlignmentToCenter(indexRow, 1, indexRow, 1);
                        indexRow++;
                        indexRow++;

                        report.Merge(indexRow, 1, indexRow, maxColumns);
                        report.AddSingleValue("Выгрузил: " + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername, indexRow, 1);
                        indexRow++;

                        report.Merge(indexRow, 1, indexRow, maxColumns);
                        report.AddSingleValue("Дата выгрузки: " + DateTime.Now.ToString(), indexRow, 1);
                        indexRow++;
                        indexRow++;
                        #endregion

                        report.AddSingleValue("№ п/п", indexRow, 1);
                        report.AddSingleValue("ФИО сотрудника", indexRow, 2);
                        report.AddSingleValue("Дата заказа", indexRow, 3);
                        report.AddSingleValue("Номер заказа", indexRow, 4);
                        report.AddSingleValue("Позиций в заказе", indexRow, 5);
                        report.AddSingleValue("Сборщик", indexRow, 6);
                        report.AddSingleValue("Пробитие", indexRow, 7);
                        report.AddSingleValue("Доставщик", indexRow, 8);

                        report.SetFontBold(indexRow, 1, indexRow, maxColumns);
                        report.SetBorders(indexRow, 1, indexRow, maxColumns);
                        report.SetWrapText(indexRow, 1, indexRow, maxColumns);
                        report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns);
                        report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns);
                        indexRow++;


                        var groupCountCollector = dtData.AsEnumerable()
                                                  .Where(r => r.Field <bool>("Collector"))
                                                  .GroupBy(g => new { OrderNumber = g.Field <int>("OrderNumber") })
                                                  .Select(s => new { s.Key.OrderNumber, countCollector = s.Count() });

                        var groupKadr = dtData.AsEnumerable().GroupBy(r => new { id_Kadr = r.Field <int>("id_Kadr"), FIO = r.Field <string>("FIO") }).Select(s => new { s.Key.id_Kadr, s.Key.FIO });


                        int npp          = 1;
                        Color cCompleted = Color.FromArgb(244, 255, 96);
                        foreach (var gKadr in groupKadr)
                        {
                            EnumerableRowCollection <DataRow> rowCollect = dtData.AsEnumerable().Where(r => r.Field <int>("id_Kadr") == gKadr.id_Kadr).OrderBy(r => r.Field <int>("OrderNumber"));
                            report.Merge(indexRow, 2, indexRow + rowCollect.Count() - 1, 2);
                            setValueToCell(indexRow, 2, gKadr.FIO, report);
                            var groupDate = rowCollect.AsEnumerable().GroupBy(g => new { DeliveryDate = g.Field <DateTime>("DeliveryDate") }).Select(s => new { s.Key.DeliveryDate });

                            decimal countCollector = 0;
                            int countKassCheck     = 0;
                            int countDelivery      = 0;

                            foreach (var gDate in groupDate)
                            {
                                EnumerableRowCollection <DataRow> rowCollectDate = rowCollect.Where(r => r.Field <DateTime>("DeliveryDate") == gDate.DeliveryDate);

                                report.Merge(indexRow, 3, indexRow + rowCollectDate.Count() - 1, 3);
                                setValueToCell(indexRow, 3, gDate.DeliveryDate, report);

                                foreach (DataRow row in rowCollectDate)
                                {
                                    report.SetWrapText(indexRow, 1, indexRow, maxColumns);

                                    setValueToCell(indexRow, 1, npp, report);
                                    setValueToCell(indexRow, 4, row["OrderNumber"], report);
                                    setValueToCell(indexRow, 5, row["countRow"], report);
                                    if ((bool)row["Collector"])
                                    {
                                        decimal valResult = Convert.ToDecimal((int)row["countRow"]) / Convert.ToDecimal(groupCountCollector.Where(r => r.OrderNumber == (int)row["OrderNumber"]).First().countCollector);
                                        countCollector   += valResult;
                                        setValueToCell(indexRow, 6, valResult, report);
                                    }
                                    if ((bool)row["KassCheck"])
                                    {
                                        setValueToCell(indexRow, 7, row["KassCheck"], report);
                                        countKassCheck++;
                                    }
                                    if ((bool)row["Delivery"])
                                    {
                                        setValueToCell(indexRow, 8, row["Delivery"], report);
                                        countDelivery++;
                                    }
                                    if (!(bool)row["isCompleted"])
                                    {
                                        report.SetCellColor(indexRow, 4, indexRow, maxColumns, cCompleted);
                                    }
                                    report.SetBorders(indexRow, 1, indexRow, maxColumns);
                                    report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns);
                                    report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns);
                                    indexRow++;
                                    npp++;
                                }
                            }


                            report.Merge(indexRow, 1, indexRow, 5);
                            setValueToCell(indexRow, 1, $"Итого:", report);
                            setValueToCell(indexRow, 6, countCollector, report);
                            setValueToCell(indexRow, 7, countKassCheck, report);
                            setValueToCell(indexRow, 8, countDelivery, report);

                            report.SetBorders(indexRow, 1, indexRow, maxColumns);
                            report.SetFontBold(indexRow, 1, indexRow, maxColumns);
                            report.SetCellAlignmentToCenter(indexRow, 1, indexRow, maxColumns);
                            report.SetCellAlignmentToJustify(indexRow, 1, indexRow, maxColumns);
                            report.SetCellAlignmentToRight(indexRow, 1, indexRow, 1);
                            //report.SetCellAlignmentToRight(indexRow, 6, indexRow, maxColumns);

                            indexRow++;
                        }
                        report.SetCellColor(indexRow + 1, 1, indexRow + 1, 1, cCompleted);
                        setValueToCell(indexRow + 1, 2, "-заказ не выполнен", report);
                    }
                }

                Config.DoOnUIThread(() =>
                {
                    blockers.RestoreControlEnabledState(this);
                    fLoad.Dispose();
                }, this);

                if (isShow)
                {
                    report.SetPageSetup(1, 9999, true);
                    report.Show();
                }
                else
                {
                    MessageBox.Show("Нет данных для отчёта", "Выгрузка отчёта", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }

                #region логирование
                Logging.StartFirstLevel(79);
                Logging.Comment("Произведена выгрузка в Excel отчета по работе онлайн-магазина");
                Logging.Comment($"Период с: {dtpStart.Value.ToShortDateString()} по: {dtpEnd.Value.ToShortDateString()}");
                Logging.Comment($"Отчет о выполненых заказах: {(chbComplete.Checked ? "Да" : "Нет")}");
                Logging.Comment($"Отчет об отмененных заказах: {(chbCancel.Checked ? "Да" : "Нет")}");
                Logging.Comment("Завершение выгрузки отчета по работе онлайн магазина");
                Logging.StopFirstLevel();
                #endregion
            });
        }
示例#20
0
        private void get_data()
        {
            btMOLChange.Enabled = false;
            int indexRow = 0;

            if (dgvData.CurrentRow != null && dgvData.CurrentRow.Index != -1)
            {
                indexRow = dgvData.CurrentRow.Index;
            }

            DataGridViewColumn oldCol    = dgvData.SortedColumn;
            ListSortDirection  direction = ListSortDirection.Ascending;

            if (oldCol != null)
            {
                if (dgvData.SortOrder == System.Windows.Forms.SortOrder.Ascending)
                {
                    direction = ListSortDirection.Ascending;
                }
                else
                {
                    direction = ListSortDirection.Descending;
                }
            }

            if (dtData != null && isStatusFirst)
            {
                EnumerableRowCollection <DataRow> rowCollect = dtData.AsEnumerable()
                                                               .Where(r => r.Field <bool>("isSelect"));
                if (rowCollect.Count() > 0)
                {
                    dtSelected = rowCollect.CopyToDataTable();
                }
            }

            dgvData.AutoGenerateColumns = false;
            dtData = readSQL.getListHardWare();

            if (isStatusFirst && dtSelected != null && dtData != null && dtData.Rows.Count > 0 && dtSelected.Rows.Count > 0)
            {
                foreach (DataRow row in dtSelected.Rows)
                {
                    EnumerableRowCollection <DataRow> rowCollect = dtData.AsEnumerable()
                                                                   .Where(r => r.Field <int>("id") == (int)row["id"]);
                    if (rowCollect.Count() > 0)
                    {
                        rowCollect.First()["isSelect"] = true;
                    }
                }

                dtData.DefaultView.RowFilter = "";
                dtData.DefaultView.Sort      = "isSelect desc";
                dtData     = dtData.DefaultView.ToTable().Copy();
                dtSelected = null;
            }

            genResponsible();
            filter();
            dgvData.DataSource = dtData;
            dgvData_SelectionChanged(null, null);

            if (oldCol != null)
            {
                dgvData.Sort(oldCol, direction);
                oldCol.HeaderCell.SortGlyphDirection =
                    direction == ListSortDirection.Ascending ?
                    System.Windows.Forms.SortOrder.Ascending : System.Windows.Forms.SortOrder.Descending;
            }

            try
            {
                if (dgvData.Rows.Count > 0)
                {
                    dgvData.Rows[indexRow].Selected = true;
                    dgvData.CurrentCell             = dgvData.Rows[indexRow].Cells[cName.Index];
                }
            }
            catch (Exception ex)
            { }
        }
示例#21
0
        private void OKClicked(object sender, EventArgs e)
        {
            ErrorText.Text = "";

            if (NameTextbox.Text == "")
            {
                ErrorText.Text = "Application name required.";
                return;
            }

            if (DeveloperCombobox.Text == "")
            {
                ErrorText.Text = "Developer required.";
                return;
            }

            string ls_newAppName    = NameTextbox.Text;
            string ls_developerName = DeveloperCombobox.Text;

            if (researchDatabaseDataSet.Application.Where(x => x.Name.ToUpper() == ls_newAppName.ToUpper()).Count() > 0)
            {
                ErrorText.Text = "Application with that name already exists.";
                return;
            }

            bool newDev         = true;
            int  newDeveloperId = 0;

            foreach (DataRowView item in DeveloperCombobox.Items)
            {
                if (DeveloperCombobox.Text == item.Row["Name"].ToString())
                {
                    newDeveloperId = (int)DeveloperCombobox.SelectedValue;
                    newDev         = false;
                }
            }

            if (newDev)
            {
                BindingContext[researchDatabaseDataSet, "Developer"].EndCurrentEdit();

                developerTableAdapter.Insert(ls_developerName);
                developerTableAdapter.Update(researchDatabaseDataSet.Developer);
                developerTableAdapter.Fill(researchDatabaseDataSet.Developer);

                EnumerableRowCollection <ResearchDatabaseDataSet.DeveloperRow> lk_rows = researchDatabaseDataSet.Developer.Where(x => x.Name == ls_developerName);

                if (lk_rows.Count() > 0)
                {
                    newDeveloperId = lk_rows.First().Id;
                }
            }

            ResearchDatabaseDataSetTableAdapters.ApplicationTableAdapter lk_appAdapter = new ResearchDatabaseDataSetTableAdapters.ApplicationTableAdapter();
            lk_appAdapter.Insert(ls_newAppName, newDeveloperId, releaseDate.Value, 1, "", "");
            lk_appAdapter.Update(researchDatabaseDataSet);
            lk_appAdapter.Fill(researchDatabaseDataSet.Application);

            var row = researchDatabaseDataSet.Application.Where(x => x.Name.ToUpper() == ls_newAppName.ToUpper()).First();

            if (null == row)
            {
                ErrorText.Text = "Failed to update application to database.";
                return;
            }
            else
            {
                m_iNewAppId   = row.Id;
                m_sNewAppName = row.Name;
            }

            Close();
        }
示例#22
0
        private async void btSendMail_Click(object sender, EventArgs e)
        {
            var result = await Task <bool> .Factory.StartNew(() =>
            {
                Config.DoOnUIThread(() =>
                {
                    this.Enabled = false;
                }, this);

                listError.Clear();
                bool isShowLog           = false;
                bool isNowShow           = dgvData.SelectedRows.Count == 1;
                DataTable dtMailProperty = Config.hCntMain.GetMailProperty();

                if (dtMailProperty == null || dtMailProperty.Rows.Count == 0)
                {
                    MessageBox.Show(Config.centralText("Нет настроект для почтовых серверов.\nОтправка счёта невозможна.\n"), "Отправка счёта по email арендатору", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    this.Enabled = true;
                    return(false);
                }

                Logging.StartFirstLevel((int)logEvents.Отправка_файлов_на_почту);

                foreach (DataGridViewRow gridRow in dgvData.SelectedRows)
                {
                    DataRowView viewRow = dtData.DefaultView[gridRow.Index];

                    string user       = viewRow["emailSender"].ToString();
                    string pass       = viewRow["EmailPassword"].ToString();
                    string userName   = (string)viewRow["nameLandLord"];
                    string ToEmail    = viewRow["emailSend"].ToString().Trim();
                    string ToUserName = viewRow["nameTenant"].ToString().Trim();

                    string Agreement    = viewRow["Agreement"].ToString();
                    string nameLandLord = viewRow["nameLandLord"].ToString();

                    int id_Scan          = (int)viewRow["id_Scan"];
                    DataTable dtScanData = Config.hCntMain.getScan(0, id_Scan);

                    if (dtScanData == null || dtScanData.Rows.Count == 0)
                    {
                        listError.Add($"У арендатора \"{ToUserName}\" нет отсканированого документа");
                        isShowLog = true;
                        continue;
                    }

                    string fileName = dtScanData.Rows[0]["cName"].ToString() + dtScanData.Rows[0]["Extension"].ToString();

                    if (user == null || user.Trim().Length == 0)
                    {
                        if (isNowShow)
                        {
                            MessageBox.Show(Config.centralText("У арендодателя отсутствует email.\nОтправка счёта невозможна.\n"), "Отправка счёта по email арендатору", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                        listError.Add($"У арендодателя \"{userName}\" отсутствует email");
                        isShowLog = true;

                        continue;
                    }

                    if (pass == null || pass.Trim().Length == 0)
                    {
                        if (isNowShow)
                        {
                            MessageBox.Show(Config.centralText("У арендодателя отсутствует пароль для email.\nОтправка счёта невозможна.\n"), "Отправка счёта по email арендатору", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                        listError.Add($"У арендодателя \"{userName}\" отсутствует пароль для email");
                        isShowLog = true;

                        continue;
                    }

                    if (ToEmail == null || ToEmail.Trim().Length == 0)
                    {
                        if (isNowShow)
                        {
                            MessageBox.Show(Config.centralText("У арендатора отсутствует email.\nОтправка счёта невозможна.\n"), "Отправка счёта по email арендатору", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        listError.Add($"У арендатора \"{ToUserName}\" отсутствует email");
                        isShowLog = true;
                        continue;
                    }

                    if (!ValidateEmail(user))
                    {
                        if (isNowShow)
                        {
                            MessageBox.Show(Config.centralText("У арендодателя некорректный email.\nОтправка счёта невозможна.\n"), "Отправка счёта по email арендатору", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                        listError.Add($"У арендодателя \"{userName}\" некорректный email");
                        isShowLog = true;

                        continue;
                    }

                    if (!ValidateEmail(ToEmail))
                    {
                        if (isNowShow)
                        {
                            MessageBox.Show(Config.centralText("У арендатора некорректный email.\nОтправка счёта невозможна.\n"), "Отправка счёта по email арендатору", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                        listError.Add($"У арендатора \"{ToUserName}\" некорректный email");
                        isShowLog = true;

                        continue;
                    }

                    string mailProvider = user.Split('@')[1].ToLower();

                    EnumerableRowCollection <DataRow> rowCollect = dtMailProperty.AsEnumerable().Where(r => r.Field <string>("cName").ToLower().Equals(mailProvider));
                    if (rowCollect.Count() == 0)
                    {
                        if (isNowShow)
                        {
                            MessageBox.Show(Config.centralText($"Нет настроек для почтового сервера: {mailProvider}.\nОтправка счёта невозможна.\n"), "Отправка счёта по email арендатору", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                        listError.Add($" Нет настроект для почтового сервера: {mailProvider}");
                        isShowLog = true;

                        continue;
                    }

                    byte[] img;
                    img = net.GetFileWithPathBytes(dtScanData.Rows[0]["id_Doc"].ToString(), dtScanData.Rows[0]["cName"].ToString(), dtScanData.Rows[0]["Extension"].ToString(), dtScanData.Rows[0]["Path"].ToString());

                    if (img == null)
                    {
                        listError.Add($"У арендатора \"{ToUserName}\" нет отсканированого документа");
                        isShowLog = true;
                        continue;
                    }

                    if (sendMail(user, userName, pass, ToEmail, img, fileName, rowCollect))
                    {
                        int IdLoadAccount1C = (int)viewRow["IdLoadAccount1C"];
                        Config.hCntMain.UpdateDateSendLoadAccount1C(IdLoadAccount1C);
                    }

                    Logging.Comment($"Номер договора:{Agreement}| Арендодатель:{nameLandLord}| Арендатор:{userName}| Почта Арендатора:{ToEmail}| Почта Арендодателя: {user}| Название файла:{fileName}");
                }
                Logging.StopFirstLevel();

                Logging.StartFirstLevel((int)logEvents.Ошибки_отправки_файлов);

                foreach (string str in listError)
                {
                    Logging.Comment(str);
                }

                Logging.StopFirstLevel();

                if (isShowLog && !isNowShow)
                {
                    Config.DoOnUIThread(() =>
                    {
                        new frmLog()
                        {
                            listError = listError
                        }.ShowDialog();
                    }, this);
                }

                Config.DoOnUIThread(() =>
                {
                    MessageBox.Show("Завершение отправки писем", "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    GetData();
                    this.Enabled = true;
                }, this);

                return(true);
            });
        }
示例#23
0
        protected void BtnBuscarInforme_Click(object sender, EventArgs e)
        {
            try{
                String vBusqueda = String.Empty;
                if (TxBuscarIdInforme.Text.Equals(""))
                {
                    vBusqueda = TxBuscarNombre.Text;
                }
                else
                {
                    vBusqueda = TxBuscarIdInforme.Text;
                }

                DataTable vDatos = (DataTable)Session["BUSQUEDAINFORMES"];
                TxBuscarIdInforme.Text = String.Empty;
                TxBuscarNombre.Text    = String.Empty;

                if (vBusqueda.Equals(""))
                {
                    GVBusqueda.DataSource = vDatos;
                    mostrarOcultar();
                }
                else
                {
                    EnumerableRowCollection <DataRow> filtered = vDatos.AsEnumerable()
                                                                 .Where(r => r.Field <String>("nombre").ToUpper().Contains(vBusqueda.ToUpper()));

                    Boolean isNumeric = int.TryParse(vBusqueda, out int n);
                    if (isNumeric)
                    {
                        if (filtered.Count() == 0)
                        {
                            filtered = vDatos.AsEnumerable().Where(r =>
                                                                   Convert.ToInt32(r["idInforme"]) == Convert.ToInt32(vBusqueda));
                        }
                    }

                    DataTable vDatosFiltrados = new DataTable();
                    vDatosFiltrados.Columns.Add("idInforme");
                    vDatosFiltrados.Columns.Add("nombre");
                    vDatosFiltrados.Columns.Add("fechaRespuesta");
                    vDatosFiltrados.Columns.Add("fechaRes");
                    vDatosFiltrados.Columns.Add("fechaCreacion");
                    vDatosFiltrados.Columns.Add("usuarioCreacion");
                    vDatosFiltrados.Columns.Add("tipoEstado");

                    foreach (DataRow item in filtered)
                    {
                        vDatosFiltrados.Rows.Add(
                            item["idInforme"].ToString(),
                            item["nombre"].ToString(),
                            item["fechaRespuesta"].ToString(),
                            item["fechaRes"].ToString(),
                            item["fechaCreacion"].ToString(),
                            item["usuarioCreacion"].ToString(),
                            item["tipoEstado"].ToString()
                            );
                    }

                    GVBusqueda.DataSource = vDatosFiltrados;
                    mostrarOcultar();
                    Session["DATAEMPLEADOS"] = vDatosFiltrados;
                }
            }
            catch (Exception Ex) { Mensaje(Ex.Message, WarningType.Danger); }
        }
示例#24
0
文件: Penni.cs 项目: nonenane/Arenda
        private void getTablePayment()
        {
            DataTable dtArendaPeriod = _proc.getArendaPeriod(id_agreement, datePayment);

            if (dtArendaPeriod == null || dtArendaPeriod.Rows.Count == 0)
            {
                return;
            }
            DateTime startArenda = DateTime.Parse(dtArendaPeriod.Rows[0]["dateStart"].ToString());
            DateTime endArenda   = DateTime.Parse(dtArendaPeriod.Rows[0]["dateEnd"].ToString());
            decimal  price       = decimal.Parse(dtArendaPeriod.Rows[0]["Total_Sum"].ToString());
            decimal  area        = decimal.Parse(dtArendaPeriod.Rows[0]["Total_Area"].ToString());
            decimal  phone       = decimal.Parse(dtArendaPeriod.Rows[0]["Phone"].ToString());

            payAtDate = decimal.Parse(dtArendaPeriod.Rows[0]["pay"].ToString());
            DataTable dtPriceDays = new DataTable();


            dtPriceDays.Columns.Add("day", typeof(DateTime));
            dtPriceDays.Columns.Add("price", typeof(decimal));

            DateTime dateIterator = startArenda;

            while (dateIterator <= endArenda)
            {
                dtPriceDays.Rows.Add(dateIterator, Math.Round(price / DateTime.DaysInMonth(dateIterator.Year, dateIterator.Month), 2));
                dateIterator = dateIterator.AddDays(1);
            }

            DataTable dtDiscounts = _proc.getDiscounts(id_agreement);

            if (dtDiscounts == null)
            {
                return;
            }

            foreach (DataRow dr in dtPriceDays.Rows)
            {
                DateTime discountArea = new DateTime(1900, 1, 1);
                //скидки на кв.м.
                EnumerableRowCollection <DataRow> rowcoll = dtDiscounts.AsEnumerable()
                                                            .Where(r => r.Field <DateTime>("DateStart") <= (DateTime)dr["day"] && (r.Field <DateTime?>("DateEnd") is null || r.Field <DateTime?>("DateEnd") >= (DateTime)dr["day"]) &&
                                                                   r.Field <int>("id_TypeDiscount") == 2).OrderByDescending(o => o.Field <DateTime>("DateStart"));
                if (rowcoll.Count() > 0)
                {
                    discountArea = (DateTime)rowcoll.First()["DateStart"];
                    dr["price"]  = Math.Round((decimal.Parse(rowcoll.First()["Discount"].ToString()) * area + phone)
                                              / DateTime.DaysInMonth(DateTime.Parse(dr["day"].ToString()).Year, DateTime.Parse(dr["day"].ToString()).Month), 2);
                }
                //процент

                rowcoll = dtDiscounts.AsEnumerable()
                          .Where(r => r.Field <DateTime>("DateStart") <= (DateTime)dr["day"] && (r.Field <DateTime?>("DateEnd") is null || r.Field <DateTime?>("DateEnd") >= (DateTime)dr["day"]) &&
                                 r.Field <int>("id_TypeDiscount") == 1).OrderByDescending(o => o.Field <DateTime>("DateStart"));
                if (rowcoll.Count() > 0)
                {
                    if ((DateTime)rowcoll.First()["DateStart"] > discountArea)
                    {
                        dr["price"] = Math.Round((100 - decimal.Parse(rowcoll.First()["Discount"].ToString())) / 100 * decimal.Parse(dr["price"].ToString()), 2);
                    }
                }
            }
            //и сейчас суммируем по месяцам.. вот(

            DataTable resultTable = new DataTable();

            resultTable.Columns.Add("month", typeof(int));        //месяц цифрой
            resultTable.Columns.Add("year", typeof(int));         // год цифврой
            resultTable.Columns.Add("price", typeof(decimal));    // оплата за месяц
            resultTable.Columns.Add("date", typeof(DateTime));    // дата датой  с первым числом
            resultTable.Columns.Add("sumPrice", typeof(decimal)); // сумма по месяцам до месяца
            resultTable = dtPriceDays.AsEnumerable()
                          .GroupBy(t => new
            {
                month = t.Field <DateTime>("day").Month,
                year  = t.Field <DateTime>("day").Year
            })
                          .Select(s =>
            {
                DataRow dr     = resultTable.NewRow();
                dr["month"]    = s.Key.month;
                dr["year"]     = s.Key.year;
                dr["price"]    = decimal.Round(s.Sum(r => r.Field <decimal>("price")));
                dr["date"]     = new DateTime(s.Key.year, s.Key.month, 1);
                dr["sumPrice"] = 0;
                return(dr);
            }).CopyToDataTable();
            foreach (DataRow dr in resultTable.Rows)
            {
                dr["sumPrice"] = resultTable.AsEnumerable().Where(r => r.Field <DateTime>("date") <= (DateTime)dr["date"]).Sum(r => r.Field <decimal>("price"));
            }

            dtPaymentMonth = resultTable;

            /*
             * frmPenniTest frm = new frmPenniTest(resultTable);
             * frm.Show();*/
        }
示例#25
0
        private void BuildAllowdModuleCheckBox()
        {
            StackPanel OuterStock = new StackPanel();
            //OuterStock. = new Thickness(0, 5, 15, -25);
            dhModule objModule = new dhModule();

            //          if (objUser != null)
            //       {

            #region "Allowed Menu"

            // objModule.AllowdModule = Globalized.objAppPreference.VEnableModules;
            dsGeneral.dtPosModuleDataTable dtm = iFacede.GetModule(Globalized.ObjDbName, objModule);
            EnumerableRowCollection <dsGeneral.dtPosModuleRow> result2 = from r in dtm.AsEnumerable()
                                                                         where (r.Field <int>("iModuleParentID") == 0)
                                                                         select r;
            int CountRow = result2.Count <dsGeneral.dtPosModuleRow>();
            if (CountRow > 0)
            {
                DataTable dtResult2 = result2.CopyToDataTable();
                ObservableCollection <dhModule> sequence = ReflectionUtility.DataTableToObservableCollection <dhModule>(dtResult2);
                if (sequence.Count > 0)
                {
                    foreach (dhModule Module in sequence)
                    {
                        GroupBox objGroup = new GroupBox();
                        objGroup.Header = Module.VDisplayName;
                        objGroup.Margin = new Thickness(0, 0, 0, 15);

                        #region "Grid"

                        Grid grid = new Grid();
                        //  grid.Width = 400;
                        // Create column definitions.
                        ColumnDefinition columnDefinition1 = new ColumnDefinition();
                        ColumnDefinition columnDefinition2 = new ColumnDefinition();
                        columnDefinition1.Width = new GridLength(200);
                        columnDefinition2.Width = new GridLength(200);
                        // Attached definitions to grid.
                        grid.ColumnDefinitions.Add(columnDefinition1);
                        grid.ColumnDefinitions.Add(columnDefinition2);

                        CheckBox cb = new CheckBox();
                        cb.Name    = Module.VModuleName.ToString() + Module.IModuleID.ToString();
                        cb.Content = Module.VDisplayName.ToString();
                        //   cb.Width = 100;
                        cb.Margin      = new Thickness(5, 5, 5, 5);
                        cb.DataContext = Module;
                        Binding myBinding = new Binding("BIsActive");
                        myBinding.Source = Module;
                        cb.SetBinding(CheckBox.IsCheckedProperty, myBinding);
                        cb.Tag = Module;

                        cb.AddHandler(CheckBox.CheckedEvent, new RoutedEventHandler(DynamicCheckBox_Checked));
                        cb.AddHandler(CheckBox.UncheckedEvent, new RoutedEventHandler(DynamicCheckBox_Unchecked));

                        RowDefinition rowDefinition1 = new RowDefinition();
                        rowDefinition1.Height = new GridLength(30);
                        grid.RowDefinitions.Add(rowDefinition1);

                        grid.Children.Add(cb);
                        Grid.SetColumn(cb, 0);
                        Grid.SetRow(cb, 0);

                        #endregion "Grid"

                        EnumerableRowCollection <dsGeneral.dtPosModuleRow> Filter = from r2 in dtm.AsEnumerable()
                                                                                    where (r2.Field <int>("iModuleParentID") == Module.IModuleID)
                                                                                    select r2;
                        int CountRowInner = result2.Count <dsGeneral.dtPosModuleRow>();
                        if (CountRowInner > 0)
                        {
                            DataTable dtFilter;
                            if (Filter.Count() > 0)
                            {
                                dtFilter = Filter.CopyToDataTable();
                            }
                            else
                            {
                                dtFilter = new DataTable();
                            }


                            ObservableCollection <dhModule> sequencefilter = ReflectionUtility.DataTableToObservableCollection <dhModule>(dtFilter);
                            if (sequencefilter.Count > 0)
                            {
                                // int Bool = 1;

                                int           row           = 1;
                                int           col           = 0;
                                RowDefinition rowDefinition = new RowDefinition();
                                rowDefinition.Height = new GridLength(30);
                                grid.RowDefinitions.Add(rowDefinition);

                                #region "Child Module"

                                foreach (dhModule SubModule in sequencefilter)
                                {
                                    //for (int i = 0; i < sequencefilter.Count ; i++)
                                    //{
                                    CheckBox NestedCb = new CheckBox();
                                    //NestedStp.Orientation = Orientation.Horizontal;
                                    NestedCb.Name    = "Sub" + SubModule.VModuleName.ToString() + SubModule.IModuleID.ToString();
                                    NestedCb.Content = SubModule.VDisplayName.ToString();
                                    NestedCb.Margin  = new Thickness(35, 5, 5, 5);
                                    if (col == 2)
                                    {
                                        row = row + 1;
                                        col = 0;
                                        RowDefinition rowDefinition3 = new RowDefinition();
                                        rowDefinition3.Height = new GridLength(30);
                                        grid.RowDefinitions.Add(rowDefinition3);
                                    }

                                    NestedCb.DataContext = Module;
                                    Binding mySubBinding = new Binding("BIsActive");
                                    mySubBinding.Source = SubModule;
                                    NestedCb.SetBinding(CheckBox.IsCheckedProperty, mySubBinding);
                                    NestedCb.Tag = SubModule;

                                    grid.Children.Add(NestedCb);
                                    Grid.SetColumn(NestedCb, col);
                                    Grid.SetRow(NestedCb, row);
                                    col += 1;
                                }

                                #endregion "Child Module"

                                objGroup.Content = grid;
                            }
                            OuterStock.Children.Add(objGroup);
                        }
                    }
                    RightsGrid.Children.Add(OuterStock);
                }
            }

            #endregion "Allowed Menu"

            //            }
        }
示例#26
0
        public static void CopyDatabaseInfo(string name)
        {
            string    infoPath  = AppDomain.CurrentDomain.BaseDirectory + "info.sqlite";
            string    path      = AppDomain.CurrentDomain.BaseDirectory + $"DataBase\\{name}.sqlite";
            DataTable dataTable = dataTable = new DataTable();

            using (SQLiteConnection conn = new SQLiteConnection("data source=" + infoPath))
            {
                using (SQLiteCommand cmd = new SQLiteCommand())
                {
                    cmd.Connection = conn;
                    conn.Open();
                    cmd.CommandText = "SELECT * FROM movie";
                    SQLiteDataReader sQLiteDataReader = cmd.ExecuteReader();
                    dataTable.Load(sQLiteDataReader);
                }
            }

            //获取新数据库需要更新的值
            DataTable newdataTable = new DataTable();

            using (SQLiteConnection conn = new SQLiteConnection("data source=" + path))
            {
                using (SQLiteCommand cmd = new SQLiteCommand())
                {
                    cmd.Connection = conn;
                    conn.Open();
                    cmd.CommandText = "SELECT id FROM movie";
                    SQLiteDataReader sQLiteDataReader = cmd.ExecuteReader();
                    newdataTable.Load(sQLiteDataReader);
                }
            }

            string sqltext = "UPDATE movie SET title=@title,releasedate=@releasedate,visits=@visits,director=@director,genre=@genre,tag=@tag," +
                             "actor=@actor,studio=@studio,rating=@rating,chinesetitle=@chinesetitle,favorites=@favorites,label=@label,plot=@plot,outline=@outline,year=@year,runtime=@runtime,country=@country,countrycode=@countrycode,otherinfo=@otherinfo,extraimageurl=@extraimageurl where id=@id";



            using (SQLiteConnection conn = new SQLiteConnection("data source=" + path))
            {
                using (SQLiteCommand cmd = new SQLiteCommand())
                {
                    cmd.Connection = conn;
                    conn.Open();

                    foreach (DataRow row in newdataTable.Rows)
                    {
                        EnumerableRowCollection <DataRow> dataRows = dataTable.AsEnumerable().Where(myRow => myRow.Field <string>("id") == row["id"].ToString());
                        DataRow dataRow = null;
                        if (dataRows != null && dataRows.Count() > 0)
                        {
                            dataRow = dataRows.First();
                        }
                        else
                        {
                            continue;
                        }
                        cmd.CommandText = sqltext;
                        cmd.Parameters.Add("id", DbType.String).Value            = dataRow["id"];
                        cmd.Parameters.Add("title", DbType.String).Value         = dataRow["title"];
                        cmd.Parameters.Add("releasedate", DbType.String).Value   = dataRow["releasedate"];
                        cmd.Parameters.Add("visits", DbType.Int16).Value         = dataRow["visits"];
                        cmd.Parameters.Add("director", DbType.String).Value      = dataRow["director"];
                        cmd.Parameters.Add("genre", DbType.String).Value         = dataRow["genre"];
                        cmd.Parameters.Add("tag", DbType.String).Value           = dataRow["tag"];
                        cmd.Parameters.Add("actor", DbType.String).Value         = dataRow["actor"];
                        cmd.Parameters.Add("actorid", DbType.String).Value       = dataRow["actorid"];
                        cmd.Parameters.Add("studio", DbType.String).Value        = dataRow["studio"];
                        cmd.Parameters.Add("rating", DbType.Double).Value        = dataRow["rating"];
                        cmd.Parameters.Add("chinesetitle", DbType.String).Value  = dataRow["chinesetitle"];
                        cmd.Parameters.Add("favorites", DbType.Int16).Value      = dataRow["favorites"];
                        cmd.Parameters.Add("label", DbType.String).Value         = dataRow["label"];
                        cmd.Parameters.Add("plot", DbType.String).Value          = dataRow["plot"];
                        cmd.Parameters.Add("outline", DbType.String).Value       = dataRow["outline"];
                        cmd.Parameters.Add("year", DbType.Int16).Value           = dataRow["year"];
                        cmd.Parameters.Add("runtime", DbType.Int16).Value        = dataRow["runtime"];
                        cmd.Parameters.Add("country", DbType.String).Value       = dataRow["country"];
                        cmd.Parameters.Add("countrycode", DbType.Int16).Value    = dataRow["countrycode"];
                        cmd.Parameters.Add("otherinfo", DbType.String).Value     = dataRow["otherinfo"];
                        cmd.Parameters.Add("sourceurl", DbType.String).Value     = dataRow["sourceurl"];
                        cmd.Parameters.Add("source", DbType.String).Value        = dataRow["source"];
                        cmd.Parameters.Add("extraimageurl", DbType.String).Value = dataRow["extraimageurl"];
                        cmd.ExecuteNonQuery();
                    }
                }
            }
        }
示例#27
0
        private void btSelect_Click(object sender, EventArgs e)
        {
            if (decimal.Parse(tbMoney.Text.ToString()) == 0)
            {
                MessageBox.Show("Необходимо ввести сумму!", "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            decimal summa = decimal.Parse(tbMoney.Text.Trim());

            DataTable dtHistory          = Config.hCntMain.getHistoryOrderAndReturn(id_ServiceRecords);
            decimal   maxSumma           = decimal.Parse(dtHistory.Rows[0]["maxSumma"].ToString());
            decimal   balanceGet         = decimal.Parse(dtHistory.Rows[0]["balanceGet"].ToString());
            decimal   balanceGetInValuta = decimal.Parse(dtHistory.Rows[0]["balanceGetInValuta"].ToString());
            decimal   balanceReturn      = decimal.Parse(dtHistory.Rows[0]["balanceReturn"].ToString());
            decimal   debtReport         = decimal.Parse(dtHistory.Rows[0]["debtReport"].ToString());
            //decimal oldDebt = decimal.Parse(dtHistory.Rows[0]["oldDebt"].ToString()); // для ежемесячногй СЗ
            string  valuta = dtHistory.Rows[0]["Valuta"].ToString();
            decimal sumGet = decimal.Parse(dtHistory.Rows[0]["sumGet"].ToString());
            decimal sumOrderGetInValuta   = decimal.Parse(dtHistory.Rows[0]["sumOrderGetInValuta"].ToString());
            int     monthDateCreateReport = DateTime.Parse(dtHistory.Rows[0]["DateCreateReport"].ToString()).Month;
            int     yearDateCreateReport  = DateTime.Parse(dtHistory.Rows[0]["DateCreateReport"].ToString()).Year;
            bool    isTodayMonthAbdYear   = nowTime.Month.Equals(monthDateCreateReport) && nowTime.Year.Equals(yearDateCreateReport);

            //int typeSROnTime = (int)dtHistory.Rows[0]["typeSROnTime"];

            if (idOrder != 0)
            {
                balanceGet    += oldSumma;
                balanceReturn += oldSumma;
            }

            if (summa > maxSumma && (type == 1 || (type == 2 && valuta == "RUB")))
            {
                MessageBox.Show("Сумма превышает \"Сумму СЗ\"!", "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            decimal summaInValuta = 0;

            if (tbSumInRub.Text.Length > 0 ? decimal.Parse(tbSumInRub.Text) > 0 ? true: false: false)
            {
                summa         = decimal.Parse(tbSumInRub.Text.Trim());
                summaInValuta = decimal.Parse(tbMoney.Text.Trim());
            }

            if (checkSumInRub && double.Parse(tbCourse.Text) <= 0)
            {
                MessageBox.Show("Заполните курс валюты!", "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            // decimal balanceSumma = type == 1? getHistoryOrder(id_ServiceRecords, maxSumma) : getHistoryReturn(id_ServiceRecords, maxSumma);
            if (type == 1 && (balanceGet - (checkSumInRub ? summaInValuta : summa) < 0) && valuta == "RUB") // - (checkSumInRub ? summaInValuta : summa) < 0)
            {
                MessageBox.Show("Вы можете получить не больше " + balanceGet, "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            else if (type == 1 && summaInValuta > balanceGetInValuta && valuta != "RUB") // - (checkSumInRub ? summaInValuta : summa) < 0)
            {
                MessageBox.Show("Вы можете получить не больше " + balanceGetInValuta, "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            else if (type == 2 && valuta == "RUB" && (checkSumInRub ? summaInValuta : summa) > balanceReturn)
            {
                MessageBox.Show("Вы можете вернуть не больше " + balanceReturn, "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            else if (type == 2 && valuta != "RUB" && summa > balanceReturn)
            {
                MessageBox.Show("Вы можете вернуть не больше " + balanceReturn, "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            else if (type == 2 && (checkSumInRub ? summaInValuta : summa) > balanceReturn && balanceReturn > 0 && !isTodayMonthAbdYear)
            {
                MessageBox.Show(Config.centralText("Вы можете вернуть по старому долгу\nне больше " + balanceReturn + "\n"), "Информирование", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            if (DialogResult.Yes == MessageBox.Show("Вы заказываете на имя " + cmbDirector.Text, "Заказ", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2))
            {
                int idMoneyRecipient;
                idMoneyRecipient = (int)cmbDirector.SelectedValue;
                DataTable dtTMP       = new DataTable();
                DataTable dtTMPUpdate = new DataTable();

                if (idOrder == 0)
                {
                    dtTMP = Config.hCntMain.setPayments(id_ServiceRecords,
                                                        dtpDate.Value,
                                                        summa,
                                                        type,
                                                        UserSettings.User.Id,
                                                        idMoneyRecipient,
                                                        status,
                                                        summaInValuta,
                                                        valuta //,
                                                               //oldDebt
                                                        );
                }
                else
                {
                    dtTMPUpdate = Config.hCntMain.updatePayments(idOrder,
                                                                 dtpDate.Value,
                                                                 summa,
                                                                 type,
                                                                 UserSettings.User.Id,
                                                                 idMoneyRecipient,
                                                                 status,
                                                                 summaInValuta, isChangeUserMoneyTake);
                }

                if ((dtTMP == null || dtTMP.Rows.Count == 0) && idOrder == 0)
                {
                    MessageBox.Show("Ошибка добавления.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                else if (dtTMPUpdate != null ? dtTMPUpdate.Rows.Count > 0 ? true: false: false)
                {
                    if (dtTMPUpdate.Rows[0][0].ToString().Equals("ошибка"))
                    {
                        MessageBox.Show("Ошибка редактирования.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    this.DialogResult = DialogResult.OK;
                }

                if (isEdit)
                {
                    DataTable dtTmpData = Config.hCntMain.getServiceRecordsBody(id_ServiceRecords);



                    Logging.StartFirstLevel(1503);
                    Logging.Comment("Произведено редактирование операции по ДС");
                    Logging.Comment("Тип операции:" + (type == 1 ? "Получение" : "Возврат"));
                    //Logging.Comment("ID: " + idOrder);
                    Logging.Comment("Id СЗ: " + id_ServiceRecords);
                    Logging.Comment("Номер СЗ: " + dtTmpData.Rows[0]["Number"].ToString());
                    Logging.Comment("Подномер: " + tbNumberSub.Text);
                    //Logging.VariableChange("Сумма", tbMoney.Text, oldSumma);
                    Logging.Comment("Сумма: " + tbMoney.Text);
                    Logging.Comment("Валюта: " + tbValuta.Text);

                    Logging.Comment("Тип СЗ по времени: " + ((int)dtTmpData.Rows[0]["TypeServiceRecordOnTime"] == 1 ? "разовая" : ((int)dtTmpData.Rows[0]["TypeServiceRecordOnTime"] == 2 ? "ежемесячная" : "Фонд")));

                    int?idFond = dtTmpData.Rows[0]["id_ServiceRecordsFond"] == DBNull.Value ? null : (int?)dtTmpData.Rows[0]["id_ServiceRecordsFond"];

                    if (idFond != null)
                    {
                        DataTable dtTmpFond = Config.hCntMain.getFondInfo(idFond, id_ServiceRecords);
                        if (dtTmpFond != null && dtTmpFond.Rows.Count > 0)
                        {
                            Logging.Comment($"№{dtTmpFond.Rows[0]["Number"].ToString()} на {dtTmpFond.Rows[0]["sumString"].ToString()} от {((DateTime)dtTmpFond.Rows[0]["DateConfirmationD"]).ToShortDateString()}");
                        }
                    }
                    else
                    {
                        Logging.Comment((int)dtTmpData.Rows[0]["TypeServiceRecordOnTime"] == 3 ? "Доп.фонд не выбран" : "Фонд не выбран");
                    }


                    if (dtTmpData.Rows[0]["inType"] != DBNull.Value)
                    {
                        DataTable dtTypicalWorks = Config.hCntMain.getTypicalWorks(false);
                        if (dtTypicalWorks != null && dtTypicalWorks.Rows.Count > 0)
                        {
                            EnumerableRowCollection <DataRow> rowType = dtTypicalWorks.AsEnumerable().Where(r => r.Field <int>("id") == (int)dtTmpData.Rows[0]["inType"]);
                            if (rowType.Count() > 0)
                            {
                                Logging.Comment($"Тип работ ID:{rowType.First()["id"]}; Наименование:{rowType.First()["cName"]}");
                            }
                        }
                    }


                    Logging.VariableChange("Получатель ID: ", cmbDirector.SelectedValue, oldIdDirector, typeLog._int);
                    Logging.VariableChange("Получатель ФИО: ", cmbDirector.Text, oldDirector == null ? "" : oldDirector);
                    Logging.Comment("Предполагаемая дата: " + dtpDate.Value.ToShortDateString());

                    if (!valuta.Equals("RUB") && type != 2)
                    {
                        Logging.Comment("Курс валюты: " + tbCourse.Text);
                        Logging.Comment("Сумму в рублях: " + tbSumInRub.Text);
                    }

                    if (dtTMPUpdate != null && dtTMPUpdate.Rows.Count > 0 && !dtTMPUpdate.Columns.Contains("error"))
                    {
                        Logging.Comment("ФИО автора СЗ ID: " + dtTMPUpdate.Rows[0]["id_Creator"].ToString() + "; ФИО: " + dtTMPUpdate.Rows[0]["FIO"].ToString());
                    }

                    if (dtTMP != null && dtTMP.Rows.Count > 0 && !dtTMP.Columns.Contains("error"))
                    {
                        Logging.Comment("Статус ДО ID: " + dtTMP.Rows[0]["id_prev"].ToString() + "; Наименование: " + dtTMP.Rows[0]["cName_prev"].ToString());
                        Logging.Comment("Статус После ID: " + dtTMP.Rows[0]["id"].ToString() + "; Наименование: " + dtTMP.Rows[0]["cName"].ToString());
                    }

                    Logging.Comment("Операцию выполнил: ID:" + Nwuram.Framework.Settings.User.UserSettings.User.Id
                                    + " ; ФИО:" + Nwuram.Framework.Settings.User.UserSettings.User.FullUsername);
                    Logging.StopFirstLevel();
                }
                else
                {
                    setLog(id_ServiceRecords, "", 0, type);
                }


                //тут запись в ДО ДЗ
                if (!isChangeUserMoneyTake)
                {
                    DataTable dtTmpMemo = Config.hCntMain.getMemorandums(nowTime, nowTime, id_ServiceRecords, false);
                    if (dtTmpMemo != null && dtTmpMemo.Rows.Count > 0)
                    {
                        foreach (DataRow row in dtTmpMemo.Rows)
                        {
                            int id_doc = (int)row["id_doc"];
                            Config.hCntDocumentsDZ.setMoveDocument(id_doc);
                        }
                    }
                }
                //if (id_doc != null)
                //Config.hCntDocumentsDZ.setMoveDocument(id_doc);
                //

                if (inType == 4 && UserSettings.User.StatusCode.Equals("РКВ"))
                {
                    if (MessageBox.Show("Вы хотите распечатать табель?", "Печать табеля", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        DataTable dtTrialTable = Config.hCntMain.getTrialTablePayICServiceRecordLink(id_ServiceRecords);
                        DataTable dtTmpIC      = dtTrialTable.Clone();
                        var       groupKadr    = dtTrialTable.AsEnumerable().GroupBy(g => new { id_Kadr = g.Field <int>("id_Kadr") }).Select(s => new { s.Key.id_Kadr });
                        foreach (var gKadr in groupKadr)
                        {
                            EnumerableRowCollection <DataRow> rowCollect = dtTrialTable.AsEnumerable().Where(r => r.Field <int>("id_Kadr") == gKadr.id_Kadr).OrderBy(r => r.Field <DateTime>("TimeIn"));

                            string   periodPay  = "";
                            DateTime tmpDate    = (DateTime)rowCollect.First()["TimeIn"];
                            bool     isNextTrue = false;
                            for (int i = 0; i < rowCollect.Count(); i++)
                            {
                                DataRow  row  = rowCollect.ElementAt(i);
                                TimeSpan span = ((DateTime)row["TimeIn"]).Date - tmpDate.Date;
                                if (span.Days == 0)
                                {
                                    periodPay += (periodPay.Length == 0 ? "" : ",") + $"{tmpDate.ToShortDateString()}";
                                }
                                else
                                if (span.Days == 1)
                                {
                                    isNextTrue = true;

                                    if (i == rowCollect.Count() - 1)
                                    {
                                        periodPay += $"-{((DateTime)row["TimeIn"]).ToShortDateString()}";
                                    }
                                }
                                else
                                {
                                    if (isNextTrue)
                                    {
                                        periodPay += $"-{tmpDate.ToShortDateString()},{((DateTime)row["TimeIn"]).ToShortDateString()}";
                                    }
                                    else
                                    {
                                        periodPay += $",{((DateTime)row["TimeIn"]).ToShortDateString()}";
                                    }

                                    isNextTrue = false;
                                }
                                tmpDate = (DateTime)row["TimeIn"];
                            }


                            DataRow newRow = dtTmpIC.NewRow();
                            newRow["FIO"]           = rowCollect.First()["FIO"];
                            newRow["namePost"]      = rowCollect.First()["namePost"];
                            newRow["OldSalary"]     = rowCollect.First()["OldSalary"];
                            newRow["MinSalary"]     = rowCollect.First()["MinSalary"];
                            newRow["MaxSalary"]     = rowCollect.First()["MaxSalary"];
                            newRow["nowSalary"]     = rowCollect.First()["nowSalary"];
                            newRow["id_Kadr"]       = rowCollect.First()["id_Kadr"];
                            newRow["periodPay"]     = periodPay;
                            newRow["minuteWork"]    = dtTrialTable.AsEnumerable().Where(r => r.Field <int>("id_Kadr") == gKadr.id_Kadr).Sum(r => r.Field <decimal>("WorkedHours"));
                            newRow["hourWorkOnDay"] = dtTrialTable.AsEnumerable().Where(r => r.Field <int>("id_Kadr") == gKadr.id_Kadr).Sum(r => r.Field <decimal>("hourWorkOnDay"));
                            newRow["payment"]       = dtTrialTable.AsEnumerable().Where(r => r.Field <int>("id_Kadr") == gKadr.id_Kadr).Sum(r => r.Field <decimal>("payment")).ToString("0.00");
                            dtTmpIC.Rows.Add(newRow);
                        }

                        dtTrialTable = dtTmpIC.Copy();

                        DataTable dtToReport = dtTrialTable.Copy();
                        for (int i = dtToReport.Columns.Count - 1; i >= 0; i--)
                        //foreach (DataColumn col in dtToReport.Columns)
                        {
                            DataColumn col = dtToReport.Columns[i];
                            if (new List <string>()
                            {
                                "FIO", "namePost", "nowSalary", "periodPay", "minuteWork" /*, "hourWorkOnDay"*/, "Payment"
                            }.Contains(col.ColumnName))
                            {
                                continue;
                            }
                            removeColumn(dtToReport, col.ColumnName);
                        }
                        dtToReport.Columns.Add("sing", typeof(string)).DefaultValue = "";

                        dtToReport.Columns["FIO"].SetOrdinal(0);
                        dtToReport.Columns["namePost"].SetOrdinal(1);
                        dtToReport.Columns["nowSalary"].SetOrdinal(2);
                        dtToReport.Columns["periodPay"].SetOrdinal(3);
                        dtToReport.Columns["minuteWork"].SetOrdinal(4);
                        //dtToReport.Columns["hourWorkOnDay"].SetOrdinal(5);
                        dtToReport.Columns["Payment"].SetOrdinal(5);
                        dtToReport.Columns["sing"].SetOrdinal(6);


                        Nwuram.Framework.ToWord.HandmadeReport report = new Nwuram.Framework.ToWord.HandmadeReport(Application.StartupPath + @"\Templates\tamplateIC.dotx");

                        report.CurrentTable = report.GetTable(1);
                        report.SetCellText(1, 1, $"Отдел: {nameDep}");
                        report.SetCellText(1, 2, $"Выгрузил: {UserSettings.User.FullUsername}");

                        report.SetCellText(2, 1, $"№ СЗ на ДС: {NumSZ}");
                        report.SetCellText(2, 2, $"Дата выгрузки: {DateTime.Now.ToShortDateString()} {DateTime.Now.ToShortTimeString()}");

                        report.CurrentTable = report.GetTable(2);

                        report.ExportDataToTable(2, dtToReport, true);

                        report.CurrentTable = report.GetTable(3);
                        report.SetCellText(1, 6, $"{dtToReport.AsEnumerable().Sum(r => r.Field<decimal>("Payment")).ToString("0.00")}");



                        report.SetPageOrientation(Microsoft.Office.Interop.Word.WdOrientation.wdOrientLandscape);
                        report.Show();
                    }
                }

                this.DialogResult = DialogResult.OK;
            }
            else
            {
                return;
            }
        }
示例#28
0
        private void btSave_Click(object sender, EventArgs e)
        {
            if (tbName.Text.Trim().Length == 0)
            {
                MessageBox.Show($"Необходимо заполнить \"{lName.Text}\"", "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                tbName.Focus();
                return;
            }

            if (dtDeps == null)
            {
                MessageBox.Show("Нет данных по отдел.", "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Warning); return;
            }
            if (dtDeps.Rows.Count == 0)
            {
                MessageBox.Show("Нет данных по отделу.", "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Warning); return;
            }
            EnumerableRowCollection <DataRow> rowCollect = dtDeps.AsEnumerable().Where(r => r.Field <bool>("isSelect"));

            if (rowCollect.Count() == 0)
            {
                MessageBox.Show("Необходимо выбрать отдел.", "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Warning); return;
            }


            Task <DataTable> task = Config.hCntMain.setPost(id, tbName.Text.Trim(), true, false, 0);

            task.Wait();

            DataTable dtResult = task.Result;

            if (dtResult == null || dtResult.Rows.Count == 0)
            {
                MessageBox.Show("Не удалось сохранить данные", "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }


            if ((int)dtResult.Rows[0]["id"] == -1)
            {
                MessageBox.Show("В справочнике уже присутствует должность с таким наименованием.", "Сохранение", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }


            if ((int)dtResult.Rows[0]["id"] == -9999)
            {
                MessageBox.Show("Произошла неведомая хрень.", "Ошибка сохранения", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (id == 0)
            {
                id = (int)dtResult.Rows[0]["id"];
                Logging.StartFirstLevel(1);
                Logging.Comment("Добавить Тип документа");
                Logging.Comment($"ID: {id}");
                Logging.Comment($"Наименование: {tbName.Text.Trim()}");
                Logging.StopFirstLevel();
            }
            else
            {
                Logging.StartFirstLevel(1);
                Logging.Comment("Редактировать Тип документа");
                Logging.Comment($"ID: {id}");
                Logging.VariableChange("Наименование", tbName.Text.Trim(), oldName);
                Logging.StopFirstLevel();
            }

            foreach (int id in listDel)
            {
                task = Config.hCntMain.setPostLinkDep(id, 0, 0, true, true, 1);
                task.Wait();
            }

            foreach (DataRow row in rowCollect)
            {
                task = Config.hCntMain.setPostLinkDep((int)row["idLinkPost"], (Int16)row["id"], id, true, false, 0);
                task.Wait();
            }


            isEditData = false;
            MessageBox.Show("Данные сохранены.", "Сохранение данных", MessageBoxButtons.OK, MessageBoxIcon.Information);
            this.DialogResult = DialogResult.OK;
        }
示例#29
0
 private static bool HasChanges(
     IEnumerable <ColumnDefinition> columnDefinitionCollection,
     EnumerableRowCollection <DataRow> rdsColumnCollection)
 {
     return(rdsColumnCollection.Count() != columnDefinitionCollection.Count());
 }
示例#30
0
        private async Task initDateType1()
        {
            DateTime _startDate      = new DateTime();
            int      id_objectLeaser = 0;

            Config.DoOnUIThread(() =>
            {
                _startDate      = new DateTime(dtpStart.Value.Year, dtpStart.Value.Month, 1);
                id_objectLeaser = (int)cmbObject.SelectedValue;

                fBlocker.SaveControlsEnabledState(this);
                fBlocker.SetControlsEnabled(this, false);
                fWait          = new Nwuram.Framework.UI.Forms.frmLoad();
                fWait.TextWait = "Загружаю данные из базы!";
                fWait.TopMost  = false;
                fWait.Owner    = this;
                fWait.Show();
            }, this);

            //Thread.Sleep(5000);

            Task <DataTable> task = Config.hCntMain.getMonthReport(_startDate.Date, id_objectLeaser);

            task.Wait();

            if (task.Result == null || task.Result.Rows.Count == 0)
            {
                Config.DoOnUIThread(() =>
                {
                    dgvData.DataSource = null;
                    fWait.Dispose();
                    fBlocker.RestoreControlEnabledState(this);
                }, this); return;
            }

            dtData = task.Result;

            if (!dtData.Columns.Contains("discount"))
            {
                dtData.Columns.Add("discount", typeof(decimal));
            }

            if (!dtData.Columns.Contains("plane"))
            {
                dtData.Columns.Add("plane", typeof(decimal));
            }

            DataTable dtResultPay = new DataTable();

            dtResultPay.Columns.Add("id_Agreements", typeof(int));
            dtResultPay.Columns.Add("date", typeof(DateTime));
            dtResultPay.Columns.Add("sumOwe", typeof(decimal));
            dtResultPay.Columns.Add("sumPay", typeof(decimal));
            dtResultPay.Columns.Add("sumResult", typeof(decimal));
            dtResultPay.AcceptChanges();

            int maxCount = dtData.Rows.Count;
            int cnt      = 1;

            foreach (DataRow row in dtData.Rows)
            {
                int prc = (cnt * 100) / maxCount;

                Config.DoOnUIThread(() =>
                {
                    fWait.TextWait = $"Идёт формирование данных: {prc} из 100%";
                }, this);

                int  id_Agreements = (int)row["id"];
                bool isDiscount    = false;

                task = Config.hCntMain.getTDiscount(id_Agreements);
                task.Wait();
                //if (task.Result == null || task.Result.Rows.Count == 0)
                //{ continue; }

                DataTable dtTmp = task.Result;

                DateTime dStart    = (DateTime)row["Start_Date"];
                DateTime dStop     = (DateTime)row["Stop_Date"];
                decimal  Total_Sum = (decimal)row["Total_Sum"];

                decimal Phone = 0;
                if (dtData.Columns.Contains("Phone"))
                {
                    Phone = (decimal)row["Phone"];
                }


                DateTime _dateStop = _startDate.AddMonths(1).AddDays(-1);

                if (dStart.Date < _startDate.Date)
                {
                    dStart = _startDate.Date;
                }
                if (dStop.Date < _dateStop.Date)
                {
                    _dateStop = dStop.Date;
                }

                Dictionary <DateTime, decimal> dicDate = new Dictionary <DateTime, decimal>();

                for (DateTime dI = dStart.Date; dI.Date <= _dateStop.Date; dI = dI.AddDays(1))
                {
                    if (dI.Date > dStop.Date)
                    {
                        break;
                    }

                    int days = DateTime.DaysInMonth(dI.Year, dI.Month);

                    EnumerableRowCollection <DataRow> rowCollect = dtTmp.AsEnumerable()
                                                                   .Where(r => r.Field <int>("id_StatusDiscount") == 2 &&
                                                                          ((r.Field <DateTime>("DateStart").Date <= dI.Date && r.Field <object>("DateEnd") == null) ||
                                                                           (r.Field <DateTime>("DateStart").Date <= dI.Date && dI.Date <= r.Field <DateTime>("DateEnd").Date))
                                                                          ).OrderByDescending(r => r.Field <DateTime>("DateStart"));

                    if (rowCollect.Count() > 0)
                    {
                        decimal _tmpDec = Total_Sum;
                        isDiscount = true;
                        int _id_TypeDiscount = (int)rowCollect.First()["id_TypeDiscount"];


                        EnumerableRowCollection <DataRow> rows = rowCollect.Where(r => r.Field <object>("DateEnd") != null && r.Field <int>("id_TypeDiscount") == 2);
                        if (rows.Count() > 0)
                        {
                            _tmpDec = (decimal)rows.First()["Discount"];
                            _tmpDec = _tmpDec * (decimal)row["Total_Area"] + Phone;
                        }
                        else
                        {
                            rows = rowCollect.Where(r => r.Field <object>("DateEnd") == null && r.Field <int>("id_TypeDiscount") == 2);
                            if (rows.Count() > 0)
                            {
                                _tmpDec = (decimal)rows.First()["Discount"];
                                _tmpDec = _tmpDec * (decimal)row["Total_Area"] + Phone;
                            }
                        }

                        if (_id_TypeDiscount != 2)
                        {
                            rows = rowCollect.Where(r => r.Field <object>("DateEnd") != null && r.Field <int>("id_TypeDiscount") == 1);
                            if (rows.Count() > 0)
                            {
                                _tmpDec = _tmpDec - (_tmpDec * (decimal)rows.First()["Discount"]) / 100;
                            }
                            else
                            {
                                rows = rowCollect.Where(r => r.Field <object>("DateEnd") == null && r.Field <int>("id_TypeDiscount") == 1);
                                if (rows.Count() > 0)
                                {
                                    _tmpDec = _tmpDec - (_tmpDec * (decimal)rows.First()["Discount"]) / 100;
                                }
                            }
                        }
                        dicDate.Add(dI.Date, _tmpDec / days);
                    }
                    else
                    {
                        dicDate.Add(dI.Date, Total_Sum / days);
                    }
                }

                IEnumerable <DateTime> rowDates = dicDate.Keys.AsEnumerable().Where(r => r.Month == _startDate.Month && r.Year == _startDate.Year);
                decimal sumMonth = 0;
                foreach (DateTime tt in rowDates)
                {
                    sumMonth += dicDate[tt.Date];
                }

                sumMonth = Math.Round(sumMonth, 0);

                row["plane"]     = sumMonth;
                row["discount"]  = isDiscount ? Math.Round(Total_Sum - sumMonth, 0) : 0;
                row["timeLimit"] = $"{((DateTime)row["Start_Date"]).ToShortDateString()} - {((DateTime)row["Stop_Date"]).ToShortDateString()}";
                row["discount"]  = (decimal)row["Total_Sum"] - (decimal)row["plane"];
            }


            Config.DoOnUIThread(() =>
            {
                fWait.Dispose();
                fBlocker.RestoreControlEnabledState(this);

                setFilter();
                dgvData.DataSource = dtData;
                isChangeValue      = true;
                statusElements(false);
            }, this);
        }