/* * public static void WayBillInReport(Guid id, BaseEntities db, string template_name) * { * var dataForReport = new Dictionary<string, IList>(); * * var wb = db.v_WaybillList.Where(w => w.Id == id).AsNoTracking().OrderBy(o => o.Num).ToList(); * int wbill_id = wb.First().WbillId; * * dataForReport.Add("WayBillList", wb); * dataForReport.Add("range1", db.GetWaybillDetIn(wbill_id).OrderBy(o => o.Num).ToList()); * * IHelper.Print(dataForReport, template_name); * } * * public static void WayBillReport(Guid id, BaseEntities db, string template_name) * { * var dataForReport = new Dictionary<string, IList>(); * * var wb = db.v_WaybillList.Where(w => w.Id == id).AsNoTracking().ToList(); * if (wb.Any()) * { * int wbill_id = wb.First().WbillId; * * dataForReport.Add("WayBillList", wb); * dataForReport.Add("WayBillItems", db.GetWaybillDetIn(wbill_id).ToList().OrderBy(o => o.Num).ToList()); * dataForReport.Add("Commission", db.Commission.Where(w => w.WbillId == wbill_id).Select(s => new * { * MainName = s.Kagent.Name, * FirstName = s.Kagent1.Name, * SecondName = s.Kagent2.Name, * ThirdName = s.Kagent3.Name * }).ToList()); * * IHelper.Print(dataForReport, template_name); * } * else * { * MessageBox.Show("Документ відсутній!"); * } * } * * public static Dictionary<string, IList> WayBillOrderedOutReport(Guid id, BaseEntities db) * { * var dataForReport = new Dictionary<string, IList>(); * * var wb = db.v_WaybillList.Where(w => w.Id == id).AsNoTracking().ToList(); * if (wb.Any()) * { * int wbill_id = wb.First().WbillId; * * var wb_list = db.GetWaybillDetIn(wbill_id).ToList().OrderBy(o => o.Num).ToList(); * dataForReport.Add("WayBillList", wb); * dataForReport.Add("WayBillItems", wb_list); * dataForReport.Add("WayBillItems2", wb_list); * } * else * { * MessageBox.Show("Документ відсутній!"); * } * * return dataForReport; * } * * public static void WayBillMoveReport(Guid id, BaseEntities db, string template_name) * { * var dataForReport = new Dictionary<string, IList>(); * * var wb = db.v_WaybillList.Where(w => w.Id == id).AsNoTracking().ToList(); * int wbill_id = wb.First().WbillId; * var wb_items = db.GetWaybillDetIn(wbill_id).OrderBy(o => o.Num).ToList(); * dataForReport.Add("WayBillList", wb); * dataForReport.Add("WayBillItems", wb_items.GroupBy(g => new { g.MatId, g.MatName, g.MsrName }).Select((s, index) => new * { * Num = index + 1, * s.Key.MatName, * s.Key.MsrName, * Amount = s.Sum(sum => sum.Amount) * }).ToList()); * dataForReport.Add("SummaryField", wb_items.GroupBy(g => new {g.MsrName}).Select(s => new * { * s.Key.MsrName, * Amount = s.Sum(a => a.Amount), * }).ToList()); * * IHelper.Print(dataForReport, template_name); * } * * * public static void WayBillInvwntoryReport(Guid id, BaseEntities db, string template_name) * { * var dataForReport = new Dictionary<string, IList>(); * var rel = new List<object>(); * * var wb = db.v_WaybillList.Where(w => w.Id == id).AsNoTracking().ToList(); * int wbill_id = wb.First().WbillId; * var items = db.GetWaybillDetIn(wbill_id).OrderBy(o => o.Num).ToList(); * * var mat_grp = items.GroupBy(g => new { g.GrpName, g.GrpId }).Select(s => new * { * s.Key.GrpId, * Name = s.Key.GrpName, * TotalOrd = s.Sum(xs => xs.Total) * }).OrderBy(o => o.Name).ToList(); * * rel.Add(new * { * pk = "GrpId", * fk = "GrpId", * master_table = "MatGroup", * child_table = "WayBillItems" * }); * * dataForReport.Add("MatGroup", mat_grp); * dataForReport.Add("_realation_", rel); * dataForReport.Add("WayBillList", wb); * dataForReport.Add("WayBillItems",items ); * dataForReport.Add("Commission", db.Commission.Where(w => w.WbillId == wbill_id).Select(s => new * { * MainName = s.Kagent.Name, * FirstName = s.Kagent1.Name, * SecondName = s.Kagent2.Name, * ThirdName = s.Kagent3.Name * }).ToList()); * dataForReport.Add("SummaryField", items.GroupBy(g => 1).Select(s => new * { * SummAll = s.Sum(a => (a.Discount*a.Nds)- (a.Amount * a.Price)), * }).ToList()); * * IHelper.Print(dataForReport, template_name); * }*/ public void WayBillOutReport(Guid id) { var wb = _db.v_WaybillList.Where(w => w.Id == id).AsNoTracking().ToList(); if (wb != null) { var m = new MoneyToStr("UAH", "UKR", "TEXT"); wb.First().www = m.convertValue(wb.First().SummInCurr.Value); } var ent_id = wb.First().EntId; var wb_det = _db.GetWayBillDetOut(wb.First().WbillId).ToList().OrderBy(o => o.Num).ToList(); data_for_report.Add("EntAccount", _db.EnterpriseAccount.Where(w => w.KaId == ent_id && w.Def == 1).ToList()); data_for_report.Add("WayBillList", wb); data_for_report.Add("range1", wb_det); var dt = DateTime.Now.Date; var w_id = wb.First().WbillId; var p = _db.WaybillDet.Where(w => w.WbillId == w_id && w.Materials.MatRecipe.Any()).Select(s => new { s.Num, s.Amount, s.Price, s.Materials.Name, s.Materials.Measures.ShortName, s.Materials.Artikul, s.Materials.CF1, s.Materials.CF2, s.Materials.CF3, s.Materials.CF4, s.Materials.CF5, OnDate = dt < s.OnDate ? DbFunctions.AddDays(s.OnDate, -1) : s.OnDate }).OrderBy(o => o.Num).ToList(); data_for_report.Add("Posvitcheny", p); var oz = _db.GetUsedMaterials(-1, dt.AddDays(1), wb.First().KaId).ToList() .OrderBy(o => o.MatName) .Select((s, index) => new { Num = index + 1, s.MatName, s.InvNumber, s.Price, s.Remain, s.MsrName }).ToList(); data_for_report.Add("range_oz", oz); var summary = wb_det.Where(w => w.PosType != 2).GroupBy(g => g.MsrName).Select(s => new { MsrName = s.Key, Amount = s.Sum(sum => sum.Amount) }); data_for_report.Add("Summary", summary.ToList()); }
/** setUp. */ private void setup() { moneyToStrUAH = new MoneyToStr("UAH", "UKR", "NUMBER"); moneyToStrRUR = new MoneyToStr("RUR", "RUS", "NUMBER"); moneyToStrUSDENG = new MoneyToStr("USD", "ENG", "TEXT"); moneyToStrPER100 = new MoneyToStr("PER100", "RUS", "TEXT"); moneyToStrPER1000 = new MoneyToStr("PER1000", "RUS", "TEXT"); }
/** check percentToStr. */ public void test_checkPercentToStrRus() { assert_equal("одна целая, одна сотая процента", MoneyToStr.percentToStr(V_1_01D, "RUS")); assert_equal("одна целая, одна десятая процента", MoneyToStr.percentToStr(V_1_1D, "RUS")); assert_equal("одна целая, две сотых процента", MoneyToStr.percentToStr(V_1_02D, "RUS")); assert_equal("одна целая, одиннадцать сотых процента", MoneyToStr.percentToStr(V_1_11D, "RUS")); assert_equal("две целых, две сотых процента", MoneyToStr.percentToStr(V_2_02D, "RUS")); assert_equal("пять целых, пять сотых процента", MoneyToStr.percentToStr(V_5_05D, "RUS")); assert_equal("пять целых, пять десятитысячных процента", MoneyToStr.percentToStr(V_5_0005D, "RUS")); }
public static void PayDocReport(Guid id, BaseEntities db, string template_name) { var dataForReport = new Dictionary <string, IList>(); var pd = db.v_PayDoc.Where(w => w.Id == id).AsNoTracking().ToList(); if (pd != null) { var m = new MoneyToStr("UAH", "UKR", "TEXT"); pd.First().CurrName = m.convertValue(pd.First().Total); } dataForReport.Add("PayDoc", pd); dataForReport.Add("Enterprise", db.KagentList.Where(w => w.KType == 3).Take(1).ToList()); IHelper.Print(dataForReport, template_name); }
public static void InvoiceReport(Guid id, BaseEntities db, string template_name) { var data_report = new Dictionary <string, IList>(); var wb = db.v_WaybillList.Where(w => w.Id == id).AsNoTracking().ToList(); if (wb != null) { var m = new MoneyToStr("UAH", "UKR", "TEXT"); wb.First().www = m.convertValue(wb.First().SummInCurr.Value); } var ent_id = wb.First().EntId; data_report.Add("EntAccount", db.EnterpriseAccount.Where(w => w.KaId == ent_id).ToList()); data_report.Add("WayBillList", wb); data_report.Add("WayBillItems", db.GetWayBillDetOut(wb.First().WbillId).OrderBy(o => o.Num).ToList()); var w_id = wb.First().WbillId; IHelper.Print(data_report, template_name); }
/** * Converts percent to string. * @param amount the amount of percent * @param lang the language (RUS, UKR) * @return the string of percent */ public static string percentToStr(double amount, string lang) { if (lang == null) { throw new ArgumentNullException("Language is null"); } long intPart = (long)amount; long fractPart = 0; string result = ""; if (amount == (long)amount) { result = new MoneyToStr("PER10", lang, "TEXT").convert(intPart, fractPart); } else if (Math.Round(amount * NUM10, 4) == (long)(amount * NUM10)) { fractPart = (long)Math.Round((amount - intPart) * NUM10); result = new MoneyToStr("PER10", lang, "TEXT").convert(intPart, fractPart); } else if (Math.Round(amount * NUM100, 4) == (long)(amount * NUM100)) { fractPart = (long)Math.Round((amount - intPart) * NUM100); result = new MoneyToStr("PER100", lang, "TEXT").convert(intPart, fractPart); } else if (Math.Round(amount * NUM1000, 4) == (long)(amount * NUM1000)) { fractPart = (long)Math.Round((amount - intPart) * NUM1000); result = new MoneyToStr("PER1000", lang, "TEXT").convert(intPart, fractPart); } else { fractPart = (long)Math.Round((amount - intPart) * NUM10000); result = new MoneyToStr("PER10000", lang, "TEXT").convert(intPart, fractPart); } return(result); }
private void ExportDoc(string nameFileExport) { exportData = new OfficeExport.ExportData(); exportData.nameFileTemplate = Application.StartupPath + "\\..\\..\\resources\\docs\\act_debit_template.docx"; exportData.nameFileExport = nameFileExport; // Application.StartupPath + "\\..\\..\\resources\\docs\\act_debit_number" + ActDebit.act_number + ".docx"; exportData.tableIndex = 2; // номер таблицы в доке exportData.textToReplace = new List <string>() { "[<наименование_организации>]", "[<фио_гл_механик>]", "[<дата_списания>]", "[<номер_акта>]", "[<сумма_списания_прописью_рубли>]", "[<фио_зам_ген_директор>]", "[<фио_нач_отд_закупок>]", "[<фио_инженер>]", "[<фио_зам_главбух>]" }; string rubles = new MoneyToStr("RUR", "RUS", "NUMBER").convertValue(Convert.ToDouble(ActDebitTotalCost)); Organization organization = (Organization)comboBox_Organization.SelectedItem; string temp = ""; if (organization != null) { temp = organization.name; } // тут какие-то текстбоксы видимо с формы exportData.textReplaceWith = new List <string>() { temp, // название конторы textBox_FIO_MainMechanic.Text, // фио главного механика DateToString.Translate(ActDebit.date, "г."), // дата как «___»________202_г. ActDebit.act_number.ToString(), // номер акта rubles, // сумма прописью - рубли textBox_FIO_DeputyDirector.Text, // фио зам.ген.директора textBox_FIO_HeadProcurement.Text, // нач отдела закупок textBox_FIO_Engineer.Text, // инженер textBox_FIO_DeputyAccountant.Text // зам главбуха }; // если надо открыть файл после экспорта автоматически exportData.openFileExport = checkBox_OpenFileExport.Checked; // и самый интересный момент - таблица // количество строк с учетом что одна строка по умолчанию есть внутри шаблона // какой столбик из datagridview в какой столбик в доке // и еще есть столбцы по умолчанию exportData.indicesDefaultValues = new List <int>() { 6, // код по ОКЕИ ед. измерения 7, // наименование ед. измерения 8 // количество }; exportData.valuesDefaultValues = new List <string>() { "796", // код по ОКЕИ ед. измерения "шт.", // наименование ед. измерения "1" // количество }; exportData.indicesCustomValues = new List <int>() { 2, // цех 3, // группа оборудования 4, // инвентарный номер 5, // наименование оборудования 9, // остаточная стоимость 10 // причина списания }; exportData.valuesCustomValues = new List <List <string> >(); foreach (DataGridViewRow row in dataGridView_Data.Rows) { string workshop = row.Cells[1].Value.ToString(); string group = row.Cells[2].Value.ToString(); string inventory = row.Cells[3].Value.ToString(); string name = row.Cells[4].Value.ToString(); string cost = row.Cells[5].Value.ToString(); string reason = row.Cells[6].Value.ToString(); exportData.valuesCustomValues.Add( new List <string>() { workshop, // цех group, // группа оборудования inventory, // инвентарный номер name, // наименование cost, // остаточная стоимость reason // причина списания }); } }
private void ExportDoc(string nameFileExport) { exportData = new OfficeExport.ExportData(); exportData.nameFileTemplate = Application.StartupPath + "\\..\\..\\resources\\docs\\leasing_contract_template.docx"; exportData.nameFileExport = nameFileExport; // Application.StartupPath + "\\..\\..\\resources\\docs\\act_debit_number" + ActDebit.act_number + ".docx"; exportData.tableIndex = 3; // номер таблицы в доке exportData.textToReplace = new List <string>() { "[<номер_лизинга>]", // 123 "[<шапка_город>]", // г. Барнаул "[<шапка_дата>]", // «1» апрель 2021 г. "[<организация_лизингодатель>]", // ООО "Хомячки" "[<представитель_лизингодатель>]", // Хомяков Х.Х. "[<организация_мы>]", // ООО "Хомячки2" "[<представитель_мы>]", // Хомяков Х.Х.2 "[<1.3_стоимость_оборудования>]", // хз - пропись или цифры "[<1.4_дата_поставки_оборудования>]", // «1» апрель 2021 "[<2.2_срок_пользования_оборудованием>]", // 5 лет, 11 месяцев "[<2.3_дата_окончания_договора>]", // «1» апреля 2021 года "[<3.1.1_дата_договора>]", // «1» апрель 2021 "[<3.2.1_пункт_поставки>]", // ну какой-то адрес "[<4.1_лизингодатель_расчетный_счет>]", "[<4.1_лизингодатель_банк>]", "[<4.1_лизингодатель_бик>]", "[<4.4_дней_для_первого_платежа>]", // 10 "[<5.1_пункт_поставки>]", // дублирование п1.4 "[<5.4_срок_отказа>]", // 3 "[<6.1_пеня>]", // 0,5 "[<6.1_макс_платеж>]", // 5 "[<6.2_неустойка>]", // хз - пропись или цифры "[<7.1_дней_форс_мажора>]", "[<9.3_лизингодатель_юр_адрес_и_телефон>]", "[<9.3_мы_юр_адрес_и_телефон>]", "[<лизингодатель_юр_адрес>]", "[<лизингодатель_почт_адрес>]", "[<лизингодатель_телефон>]", "[<лизингодатель_инн>]", "[<лизингодатель_расчет_счет>]", "[<лизингодатель_банк>]", "[<лизингодатель_корресп_счет>]", "[<лизингодатель_бик>]", "[<мы_юр_адрес>]", "[<мы_почт_адрес>]", "[<мы_телефон>]", "[<мы_инн>]", "[<мы_расчет_счет>]", "[<мы_банк>]", "[<мы_корресп_счет>]", "[<мы_бик>]", "[<приложение_номер_договора>]", "[<приложение_дата_договора>]", //«1» апрель 2021 года "[<приложение_лизингодатель>]", "[<приложение_лизингополучат>]" }; string rubles = new MoneyToStr("RUR", "RUS", "NUMBER").convertValue(Convert.ToDouble(LeasingContractTotalCost)); // тут какие-то текстбоксы видимо с формы exportData.textReplaceWith = new List <string>() { contract.contract_number, "г. " + textBox_City.Text, DateToString.Translate(contract.date, "г."), leaser.name, textBox_FIO_Leaser.Text, lessee.name, textBox_FIO_Lessee.Text, rubles, DateToString.Translate(contract.date_delivery), ConvertYearsMonths.Translate(contract.period_of_use), DateToString.Translate(contract.date_end, "года"), DateToString.Translate(contract.date), contract.address_delivery, leaser.payment_account, leaser.bank, leaser.BIK, contract.days_for_first_payment.ToString(), contract.address_delivery, contract.days_for_report.ToString(), contract.penalty.ToString(), contract.max_penalty.ToString(), contract.penalty_fee.ToString(), contract.days_for_force_majeure.ToString(), leaser.legal_address + " " + leaser.phone, lessee.legal_address + " " + lessee.phone, leaser.legal_address, leaser.mailing_address, leaser.phone, leaser.INN, leaser.payment_account, leaser.bank, leaser.correspondent_account, leaser.BIK, lessee.legal_address, lessee.mailing_address, lessee.phone, lessee.INN, lessee.payment_account, lessee.bank, lessee.correspondent_account, lessee.BIK, contract.contract_number, DateToString.Translate(contract.date, "года"), leaser.name + " " + textBox_FIO_Leaser.Text, lessee.name + " " + textBox_FIO_Lessee.Text }; // если надо открыть файл после экспорта автоматически exportData.openFileExport = checkBox_OpenFileExport.Checked; // и самый интересный момент - таблица // количество строк с учетом что одна строка по умолчанию есть внутри шаблона // какой столбик из datagridview в какой столбик в доке // и еще есть столбцы по умолчанию exportData.indicesDefaultValues = new List <int>() { 5 // наименование ед. измерения }; exportData.valuesDefaultValues = new List <string>() { "шт." // наименование ед. измерения }; exportData.indicesCustomValues = new List <int>() { 2, // наименование оборудования 3, // стоимость за ед. 4, // кол-во 6 // стоимость }; exportData.valuesCustomValues = new List <List <string> >(); foreach (DataGridViewRow row in dataGridView_Data.Rows) { string name = row.Cells[0].Value.ToString(); string cost_per_one = row.Cells[1].Value.ToString(); string amount = row.Cells[2].Value.ToString(); string cost_per_all = row.Cells[4].Value.ToString(); exportData.valuesCustomValues.Add( new List <string>() { name, cost_per_one, amount, cost_per_all }); } }
/** * Converts percent to string. * @param amount the amount of percent * @param lang the language (RUS, UKR) * @return the string of percent */ public static string percentToStr(double amount, string lang) { if (lang == null) { throw new ArgumentNullException("Language is null"); } long intPart = (long) amount; long fractPart = 0; string result = ""; if (amount == (long) amount) { result = new MoneyToStr("PER10", lang, "TEXT").convert(intPart, fractPart); } else if (Math.Round(amount * NUM10, 4) == (long) (amount * NUM10)) { fractPart = (long) Math.Round((amount - intPart) * NUM10); result = new MoneyToStr("PER10", lang, "TEXT").convert(intPart, fractPart); } else if (Math.Round(amount * NUM100, 4) == (long) (amount * NUM100)) { fractPart = (long) Math.Round((amount - intPart) * NUM100); result = new MoneyToStr("PER100", lang, "TEXT").convert(intPart, fractPart); } else if (Math.Round(amount * NUM1000, 4) == (long) (amount * NUM1000)) { fractPart = (long) Math.Round((amount - intPart) * NUM1000); result = new MoneyToStr("PER1000", lang, "TEXT").convert(intPart, fractPart); } else { fractPart = (long) Math.Round((amount - intPart) * NUM10000); result = new MoneyToStr("PER10000", lang, "TEXT").convert(intPart, fractPart); } return result; }
public void test_percentToStr() { assert_equal("двенадцать целых, ноль десятых процента", MoneyToStr.percentToStr(12, "RUS")); }