public GetController(
            MeritDbContext dbContext,
            InvoiceReportService invoiceReportService,
            AppSettings appSettings,
            InvoiceRepository invoiceRepository,
            InvoiceService invoiceService,
            LocationRepository locationRepository,
            WorkOrderRepository workOrderRepository,
            UnloadingWorkOrderQueries unloadingWorkOrderQueries,
            DlsWorkOrderQueries dlsWorkOrderQueries,
            BOLQueries bolQueries,
            ServiceWorkOrderQueries serviceWorkOrderQueries)
        {
            this.dbContext = dbContext;
            this.invoiceGenerationSettings = new InvoiceGenerationSettings();
            this.appSettings = appSettings;

            this.invoiceRepository   = invoiceRepository;
            this.locationRepository  = locationRepository;
            this.workOrderRepository = workOrderRepository;

            this.invoiceReportService = invoiceReportService;
            this.krogerExcelGenerator = new KrogerExcelGenerator(invoiceGenerationSettings.KrogerInvoiceTemplatePath);
            this.pdfGenerator         = new PdfGenerator();

            this.unloadingWorkOrderQueries = unloadingWorkOrderQueries;
            this.dlsWorkOrderQueries       = dlsWorkOrderQueries;
            this.invoiceService            = invoiceService;
            this.bolQueries = bolQueries;
            this.serviceWorkOrderQueries = serviceWorkOrderQueries;
        }
Beispiel #2
0
        public UnitOfWork(ApplicationDbContext context)
        {
            _context = context;

            Clients        = new ClientRepository(_context);
            ClientsHistory = new ClientHistoryRepository(_context);

            ClientUsers        = new ClientUserRepository(_context);
            ClientUsersHistory = new ClientUserHistoryRepository(_context);

            Customers        = new CustomerRepository(_context);
            CustomersHistory = new CustomerHistoryRepository(_context);

            ClientCustomers        = new ClientCustomerRepository(_context);
            ClientCustomersHistory = new ClientCustomerHistoryRepository(_context);

            CustomerLocations        = new CustomerLocationRepository(_context);
            CustomerLocationsHistory = new CustomerLocationHistoryRepository(_context);

            Products        = new ProductRepository(_context);
            ProductsHistory = new ProductHistoryRepository(_context);

            WorkOrders        = new WorkOrderRepository(_context);
            WorkOrdersHistory = new WorkOrderHistoryRepository(_context);
        }
Beispiel #3
0
 static void Main(string[] args)
 {
     IRepository<WorkOrder> repository = new WorkOrderRepository();
     var result = repository.List;
     foreach (var r in result)
     {
         Console.ReadLine(r.WONumber.ToString());
     }
 }
Beispiel #4
0
        public FluentRecordBase AddRepoWorkOrder()
        {
            if (_dbFactory == null)
            {
                AddDBFactory();
            }

            _repoWO = new WorkOrderRepository(_dbFactory);
            return(this);
        }
Beispiel #5
0
        protected void OnEntryPhoneChanged(object sender, EventArgs e)
        {
            IList <WorkOrder> list = null;

            if (entryPhone.Text.Length == 16)
            {
                list = WorkOrderRepository.GetOrdersByPhone(UoW, entryPhone.Text, Entity.Id);
                TestCanSave();
            }

            ytreeOtherOrders.ItemsDataSource     = list;
            GtkScrolledWindowOtherOrders.Visible = list != null && list.Count > 0;
        }
Beispiel #6
0
        /// <summary>
        /// Occurs when RunWorkerAsync is called.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="DoWorkEventArgs"/> instance containing the event data.</param>
        private void LoadWorkOrdersBackground(object sender, DoWorkEventArgs e)
        {
            IWorkOrderRepository workOrderRepository = new WorkOrderRepository();

            BackgroundWorker source = (BackgroundWorker)sender;

            var results = workOrderRepository.GetAllWorkOrders();
            int index   = 0;

            foreach (var item in results)
            {
                Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate { }));
                source.ReportProgress(++index, item);
            }
        }
Beispiel #7
0
        protected void OnButtonOkClicked(object sender, EventArgs e)
        {
            #region Выбираем файл
            var fileChooser = new Gtk.FileChooserDialog(
                "Сохранить как...",
                (Window)this.Toplevel,
                Gtk.FileChooserAction.Save,
                "Отмена", ResponseType.Cancel,
                "Сохранить", ResponseType.Accept);

            Gtk.FileFilter excel2007 = new Gtk.FileFilter();
            excel2007.AddPattern("*.xlsx");
            excel2007.Name = ".xlsx (Excel 2007)";

            //Gtk.FileFilter excel2003 = new Gtk.FileFilter();
            //excel2003.AddPattern("*.xls");
            //excel2003.Name = ".xls (Excel 2003)";

            fileChooser.AddFilter(excel2007);
            //fileChooser.AddFilter(excel2003);

            string filename;
            bool   result = fileChooser.Run() == (int)ResponseType.Accept;
            filename = fileChooser.Filename;
            fileChooser.Destroy();
            if (!result)
            {
                return;
            }

            #endregion
            #region Загружаем заказы

            buttonOk.Sensitive            = buttonCancel.Sensitive = false;
            progressbar1.Text             = "Загрузка списка заказов...";
            progressbar1.Adjustment.Upper = 1;
            GtkHelper.WaitRedraw();

            if (!filename.EndsWith(".xlsx"))             //&& !filename.EndsWith(".xls"))
            {
                filename += ".xlsx";
            }

            var orders = WorkOrderRepository.GetOrders(UoW, daterange.StartDateOrNull, daterange.EndDateOrNull);
            logger.Info($"Загружено {orders.Count} заказов.");
            progressbar1.Adjustment.Upper = orders.Count + 2;

            progressbar1.Text = "Формирование файла...";
            GtkHelper.WaitRedraw();

            #endregion
            #region Базовые настройки

            var workbook = new XSSFWorkbook();
            var sheet    = workbook.CreateSheet("Заказы");

            //Заголовок
            var headerStyle = workbook.CreateCellStyle();
            var headerFont  = workbook.CreateFont();
            headerFont.FontName           = "Calibri";
            headerFont.FontHeightInPoints = 11;
            headerFont.IsBold             = true;
            headerStyle.SetFont(headerFont);

            var newDataFormat = workbook.CreateDataFormat();
            var dateCellStyle = workbook.CreateCellStyle();
            dateCellStyle.DataFormat = newDataFormat.GetFormat("dd.MM.yyyy");

            //Ширина измеряется в количестве симвовлов * 256
            sheet.SetColumnWidth(0, 7 * 256);
            sheet.SetColumnWidth(1, 14 * 256);
            sheet.SetColumnWidth(2, 16 * 256);
            sheet.SetColumnWidth(3, 5 * 256);
            sheet.SetColumnWidth(4, 20 * 256);
            sheet.SetColumnWidth(5, 11 * 256);
            sheet.SetColumnWidth(6, 14 * 256);
            sheet.SetColumnWidth(7, 15 * 256);
            sheet.SetColumnWidth(8, 6 * 256);
            sheet.SetColumnWidth(9, 20 * 256);
            sheet.SetColumnWidth(10, 12 * 256);
            sheet.SetColumnWidth(11, 15 * 256);
            sheet.SetColumnWidth(12, 10 * 256);

            #endregion
            #region параметры экспорта

            string[] columnTiles = new string[] {
                "Номер",
                "Марка",
                "Модель",
                "Год",
                "Еврокод",
                "Производитель",
                "Склад",
                "Телефон",
                "Сумма работ",
                "Коментарий",
                "Состояние заказа",
                "Вид работ",
                "Дата работы"
            };

            Action <WorkOrder, ICell>[] SetValuesFuncs = new Action <WorkOrder, ICell>[]
            {
                (o, c) => c.SetCellValue(o.Id),
                (o, c) => c.SetCellValue(o.CarModel?.Brand?.Name),
                (o, c) => c.SetCellValue(o.CarModel?.Name),
                (o, c) => c.SetCellValue(o.CarYearText),
                (o, c) => c.SetCellValue(o.Eurocode),
                (o, c) => c.SetCellValue(o.Manufacturer?.Name),
                (o, c) => c.SetCellValue(o.Stock?.Name),
                (o, c) => c.SetCellValue(o.Phone),
                (o, c) => c.SetCellValue((double)o.Pays.Sum(x => x.Cost)),
                (o, c) => c.SetCellValue(o.Comment),
                (o, c) => c.SetCellValue(o.OrderState?.Name),
                (o, c) => c.SetCellValue(o.OrderTypeClass?.Name),
                (o, c) => {
                    c.SetCellValue(o.Date);
                    c.CellStyle = dateCellStyle;
                },
            };

            #endregion

            var headerRow = sheet.CreateRow(0);
            for (var i = 0; i < columnTiles.Length; i++)
            {
                var cell = headerRow.CreateCell(i);
                cell.SetCellValue(columnTiles[i]);
                cell.CellStyle = headerStyle;
            }

            for (var row = 1; row <= orders.Count; row++)
            {
                progressbar1.Text = $"Заказ {row} из {orders.Count}";
                progressbar1.Adjustment.Value++;
                GtkHelper.WaitRedraw();

                var dataRow = sheet.CreateRow(row);
                for (var i = 0; i < columnTiles.Length; i++)
                {
                    var cell = dataRow.CreateCell(i);
                    SetValuesFuncs[i](orders[row - 1], cell);
                }
            }

            if (updatePhoneFormat)
            {
                PhoneUpdate(workbook, orders);
            }

            progressbar1.Text = "Записываем фаил...";
            progressbar1.Adjustment.Value++;
            GtkHelper.WaitRedraw();

            try
            {
                using (FileStream file = new FileStream(filename, FileMode.Create, FileAccess.Write))
                {
                    workbook.Write(file);
                }
            }
            catch (IOException ex)
            {
                if (ex.HResult == -2147024864)
                {
                    MessageDialogHelper.RunErrorDialog("Указанный файл уже открыт в другом приложении. Оно заблокировало доступ к файлу.");
                    return;
                }
                throw ex;
            }
            progressbar1.Text = "Готово";
            progressbar1.Adjustment.Value++;
            GtkHelper.WaitRedraw();

            if (checkOpenAfterSave.Active)
            {
                progressbar1.Text = "Открываем Excel";
                GtkHelper.WaitRedraw();
                logger.Info("Открываем во внешем приложении...");
                System.Diagnostics.Process.Start(filename);
            }
            logger.Info("Ок");
            Respond(ResponseType.Ok);
        }