private DBAccessor() { //var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); //SafeCreateDirectory(documents + @"\HardwareLedger\Database\"); //Directory = documents + @"\HardwareLedger\Database\{0}.json"; Directory = @"Database\{0}.json"; //SafeCreateDirectory(documents + @"\HardwareLedger\Database\"); SafeCreateDirectory(@"Database\"); data = new Dictionary <Type, List <IPgmRow> >(); Reserves = ReadJson <Reserve, DBObject.Reserve>(); ShopTypes = ReadJson <ShopType, DBObject.ShopType>(); ItemTypes = ReadJson <ItemType, DBObject.ItemType>(); ItemStates = ReadJson <ItemState, DBObject.ItemState>(); Malfunctions = ReadJson <Malfunction, DBObject.Malfunction>(); Relations = ReadJson <Relation, DBObject.Relation>(); CollectSchedules = ReadJson <CollectSchedule, DBObject.CollectSchedule>(); ReserveShippings = ReadJson <ReserveShipping, DBObject.ReserveShipping>(); data.Add(typeof(Reserve), Reserves.Cast <IPgmRow>().ToList()); data.Add(typeof(ShopType), ShopTypes.Cast <IPgmRow>().ToList()); data.Add(typeof(ItemType), ItemTypes.Cast <IPgmRow>().ToList()); data.Add(typeof(ItemState), ItemStates.Cast <IPgmRow>().ToList()); data.Add(typeof(Malfunction), Malfunctions.Cast <IPgmRow>().ToList()); data.Add(typeof(Relation), Relations.Cast <IPgmRow>().ToList()); data.Add(typeof(CollectSchedule), CollectSchedules.Cast <IPgmRow>().ToList()); data.Add(typeof(ReserveShipping), ReserveShippings.Cast <IPgmRow>().ToList()); }
private void buttonAddPosition_Click(object sender, EventArgs e) { MalfMapper mm = new MalfMapper(); if (malf == null) { malf = new Malfunctions(textBoxDescription.Text, Convert.ToDouble(textBoxPrice.Text), Converter.ConvertUnit(comboBoxUnit.Text)); if (formForSelect != null && Form1.WindowIndex == WindowsStruct.MalfAdd) { malf = mm.Insert(malf); } else if (formForSelect != null && Form1.WindowIndex == WindowsStruct.SpareAdd) { malf.MalfOrSpare = 1; malf = mm.Insert(malf); } else { malf = mm.Insert(malf); } } else { malf.Description = textBoxDescription.Text; malf.Unit = Converter.ConvertUnit(comboBoxUnit.Text); malf.Cost = Convert.ToDouble(textBoxPrice.Text); if (formForSelect != null && Form1.WindowIndex == WindowsStruct.MalfAdd) { mm.Update(malf); } else if (formForSelect != null && Form1.WindowIndex == WindowsStruct.SpareAdd) { malf.MalfOrSpare = 1; mm.Update(malf); } } if (formForSelect != null && Form1.WindowIndex == WindowsStruct.MalfAdd || Form1.WindowIndex == WindowsStruct.SpareAdd) { Form1.AddListMalfunctionsInGrid(formForSelect.dataGridView, Queries.MalfunctionsView); Form1.SelectIndex = 0; Malfunctions malfInRepair = formForSelect.formAddRepair.repair.ListOfMalf. Find(m => m.IdMalf == malf.IdMalf); if (malfInRepair != null) { malfInRepair.Unit = malf.Unit; malfInRepair.Description = malf.Description; } formForSelect.textBoxSearch.Clear(); formForSelect.textBoxSearch.Text = textBoxDescription.Text; this.Close(); return; } mm.Update(malf); this.Close(); Form1.AddListMalfunctionsInGrid(mainForm.dataGridView, Queries.MalfunctionsView); mainForm.dataGridView.ClearSelection(); }
} // InitTableRows private TableRow GetRow(Malfunctions m) { string name; int amount; int income; name = m.Name; // имя неисправности amount = dc.OrderServices.Count(os => os.CarMalfunctions.Malfunctions == m && (os.Orders.BeginDate >= minDate && os.Orders.BeginDate <= DateTime.Today)); // кол-во обращений с данной неисправность income = amount == 0 ? 0 : dc.OrderServices.Where(os => os.CarMalfunctions.Malfunctions == m && (os.Orders.BeginDate >= minDate && os.Orders.BeginDate <= DateTime.Today)) .Sum(os => os.ServicesInfos.Price); // общая сумма дохода за устранение данной неисправности // создание контейнеров для помещения данных в строку таблицы (TableRow) Paragraph pName = new Paragraph(); // имя Paragraph pAmount = new Paragraph(); // кол-во Paragraph pIncome = new Paragraph(); // доход pName.Inlines.Add(new Run(name)); // добавление текста в параграф TableCell malfunctionName = new TableCell(pName); // добаление параграфа в ячейку строки таблицы malfunctionName.BorderBrush = Brushes.Black; // задание границы таблицы malfunctionName.BorderThickness = new Thickness(1d); pAmount.Inlines.Add(new Run($"{amount}")); // добавление текста в параграф TableCell malfunctionAmount = new TableCell(pAmount); // добаление параграфа в ячейку строки таблицы malfunctionAmount.BorderBrush = Brushes.Black; // задание границы таблицы malfunctionAmount.BorderThickness = new Thickness(1d); pIncome.Inlines.Add(new Run($"{income}")); // добавление текста в параграф TableCell malfunctionIncome = new TableCell(pIncome); // добаление параграфа в ячейку строки таблицы malfunctionIncome.BorderBrush = Brushes.Black; // задание границы таблицы malfunctionIncome.BorderThickness = new Thickness(1d); // создание стоки таблицы (TableRow) и добавление в нее // ячеек (TableCell) TableRow t = new TableRow(); t.Cells.Add(malfunctionName); t.Cells.Add(malfunctionAmount); t.Cells.Add(malfunctionIncome); // вернуть сформированную строку return(t); }// GetRow
private void AddMalfOrSparesInRepair() { Malfunctions malfAdd = new MalfMapper().Get(formForSelect.dataGridView.SelectedRows[0].Cells[0].Value.ToString()); malfAdd.Number = (int)numberUpDown.Value; Malfunctions malf = formAddRepair.repair.ListOfMalf.Find(m => m.IdMalf == malfAdd.IdMalf); if (malf == null) { formAddRepair.repair.AddMalfInList(malfAdd); } else { malf.Number = (int)numberUpDown.Value; } formAddRepair.repair.CalculateTotalPrice(); }
static public void MakeActOfWorkInExcel(string idRepair, string unloadPath) { rowStartForDelete = 0; try { xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Open(ConfigurationManager.AppSettings.Get("PathForOpenAct")); xlSheet = xlWorkBook.Sheets[1]; SystemOwner systemOwner = new OwnerMapper().Get(); CardOfRepair card = new CardMapper().Get(idRepair.ToString()); FileOperator fileOperator = new FileOperator(); xlSheet.Cells[1, "A"] = systemOwner.ToString(); xlSheet.Cells[59, "F"] = systemOwner.Director.GetShortName(); xlSheet.Cells[3, "G"] = card.IdRepair; xlSheet.Cells[3, "J"] = ((DateTime)card.TimeOfFinish).ToString("dd/MM/yyyy"); if (card.Car.Owner != null) { xlSheet.Cells[4, "D"] = $"{card.Car.Owner.Name}, ИНН {card.Car.Owner.INN}"; } xlSheet.Cells[5, "E"] = $"{card.Car.Mark} {card.Car.Number}"; List <Malfunctions> MalfList = card.ListOfMalf.Select(n => n).Where(n => n.MalfOrSpare == 0).ToList <Malfunctions>(); List <Malfunctions> SpareList = card.ListOfMalf.Select(n => n).Where(n => n.MalfOrSpare == 1).ToList <Malfunctions>(); FillRowsWithMalf(xlSheet, rowStartAct1, rowFinishAct1, MalfList); FillRowsWithSpares(xlSheet, rowStartAct2, rowFinishAct2, SpareList); xlSheet.Cells[34, "Q"] = Malfunctions.GetTotalPriceFromList(MalfList); xlSheet.Cells[54, "Q"] = Malfunctions.GetTotalPriceFromList(SpareList); xlSheet.Cells[55, "Q"] = card.TotalPrice; xlWorkBook.SaveAs(fileOperator.MakeActPath(card, mainPath)); xlWorkBook.Close(); xlApp.Quit(); while (System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp) > 0) { } //MessageBox.Show($"Акт № {idRepair} выгружен в формате Excel!"); } catch (Exception ex) { MessageBox.Show($"Не удалось сделать акт выполненных работ № {idRepair}\n" + $"{ex.Message}"); xlWorkBook.Close(false); xlApp.Quit(); while (System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp) > 0) { } } }
static public void MakeOrderInExcel(string idRepair, string unloadPath) { rowStartForDelete = 0; try { xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Open(ConfigurationManager.AppSettings.Get("PathForOpenOrder")); xlSheet = xlWorkBook.Sheets[1]; CardOfRepair card = new CardMapper().Get(idRepair.ToString()); SystemOwner systemOwner = new OwnerMapper().Get(); FileOperator fileOperator = new FileOperator(); xlSheet.Cells[3, "G"] = card.IdRepair; xlSheet.Cells[5, "O"] = card.TimeOfStart.ToString("dd/MM/yyyy"); xlSheet.Cells[7, "O"] = ((DateTime)card.TimeOfFinish).ToString("dd/MM/yyyy"); xlSheet.Cells[9, "A"] = $"Заказчик: {card.Car.Owner.Name}"; xlSheet.Cells[1, "J"] = $"Исполнитель: {systemOwner.Name} {systemOwner.Address} {systemOwner.PhoneNumber}"; xlSheet.Cells[64, "I"] = systemOwner.Director.GetShortName(); xlSheet.Cells[10, "D"] = card.Car.Mark; xlSheet.Cells[11, "G"] = card.Car.Number; List <Malfunctions> MalfList = card.ListOfMalf.Select(n => n).Where(n => n.MalfOrSpare == 0).ToList <Malfunctions>(); List <Malfunctions> SpareList = card.ListOfMalf.Select(n => n).Where(n => n.MalfOrSpare == 1).ToList <Malfunctions>(); FillRowsWithMalf(xlSheet, rowStartOrder1, rowFinishOrder1, MalfList); FillRowsWithSpares(xlSheet, rowStartOrder2, rowFinishOrder2, SpareList); xlSheet.Cells[41, "Q"] = Malfunctions.GetTotalPriceFromList(MalfList); xlSheet.Cells[61, "Q"] = Malfunctions.GetTotalPriceFromList(SpareList); xlSheet.Cells[62, "Q"] = card.TotalPrice; xlWorkBook.SaveAs(fileOperator.MakeOrderPath(card, mainPath)); xlWorkBook.Close(); xlApp.Quit(); while (System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp) > 0) { } } catch (Exception ex) { MessageBox.Show($"Не удалось сделать акт выполненных работ № {idRepair}\n" + $"{ex.Message}"); xlWorkBook.Close(false); xlApp.Quit(); while (System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp) > 0) { } } }
private void FormAddPrice_FormClosed(object sender, FormClosedEventArgs e) { malf = null; }