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); }
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; } } } }
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(); }
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); }
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; } } })); }
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()); }
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); }
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(); }
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 & 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(); } }
private static bool HasDifference( IEnumerable <ColumnDefinition> columnDefinitionCollection, EnumerableRowCollection <DataRow> dbColumnCollection) { return(dbColumnCollection.Count() != columnDefinitionCollection.Count()); }
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++; } } }
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(); }
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(); }
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; } } })); }
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]); }
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); } }
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; }
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 }); }
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) { } }
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(); }
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); }); }
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); } }
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();*/ }
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" // } }
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(); } } } }
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; } }
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; }
private static bool HasChanges( IEnumerable <ColumnDefinition> columnDefinitionCollection, EnumerableRowCollection <DataRow> rdsColumnCollection) { return(rdsColumnCollection.Count() != columnDefinitionCollection.Count()); }
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); }