예제 #1
0
        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());
        }
예제 #2
0
        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();
        }
예제 #3
0
        }     // 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
예제 #4
0
        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();
        }
예제 #5
0
 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)
         {
         }
     }
 }
예제 #6
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)
         {
         }
     }
 }
예제 #7
0
 private void FormAddPrice_FormClosed(object sender, FormClosedEventArgs e)
 {
     malf = null;
 }