protected void DefaultPreviewDocument() { if (currentOrder != null) //если этот диалог вызван из заказа { var documents = printDocuments.Where(x => x.Document is OrderDocument) .Where(x => (x.Document as OrderDocument).Order.Id == currentOrder.Id); var driverTicket = documents.FirstOrDefault(x => x.Document is DriverTicketDocument); var invoiceDocument = documents.FirstOrDefault(x => x.Document is InvoiceDocument); if (driverTicket != null && currentOrder.PaymentType == Domain.Client.PaymentType.cashless) { selectedDocument = driverTicket; PreviewDocument(); } else if (invoiceDocument != null) { selectedDocument = invoiceDocument; PreviewDocument(); } } else if (currentRouteList != null) //если этот диалог вызван из МЛ { selectedDocument = printDocuments.FirstOrDefault(x => x.Selected) ?? printDocuments.FirstOrDefault(); PreviewDocument(); } }
protected void DefaultPreviewDocument() { var printDocuments = _entityDocumentsPrinter.DocumentsToPrint; if (_currentOrder != null) { //если этот диалог вызван из заказа var documents = printDocuments.Where(x => x.Document is OrderDocument doc && doc.Order.Id == _currentOrder.Id); var driverTicket = documents.FirstOrDefault(x => x.Document is DriverTicketDocument); var invoiceDocument = documents.FirstOrDefault(x => x.Document is InvoiceDocument); if (driverTicket != null && _currentOrder.PaymentType == Domain.Client.PaymentType.cashless) { _selectedDocument = driverTicket; PreviewDocument(); } else if (invoiceDocument != null) { _selectedDocument = invoiceDocument; PreviewDocument(); } } else if (_currentRouteList != null) { //если этот диалог вызван из МЛ _selectedDocument = printDocuments.FirstOrDefault(x => x.Selected) ?? printDocuments.FirstOrDefault(); PreviewDocument(); } }
/// <summary> /// Добавление в спсиок печати документов маршрутного листа <paramref name="routeList"/> с выделением типов, /// указанных в массиве <paramref name="routeListPrintableDocumentTypes"/>, а также добавление в этот спсиок /// документов всех заказов из маршрутного листа <paramref name="routeList"/> с выделением типов, указанных в /// массиве <paramref name="orderDocumentTypes"/>. Если <paramref name="orderDocumentTypes"/> не указывать, то /// печать документов заказов произведена не будет. /// </summary> /// <param name="uow">Unit Of Work</param> /// <param name="routeList">Маршрутный лист</param> /// <param name="routeListPrintableDocumentTypes">Типы документов МЛ, которые необходимо отметить</param> /// <param name="orderDocumentTypes">Типы документов заказа, которые необходимо отметить</param> public EntitiyDocumentsPrinter(IUnitOfWork uow, RouteList routeList, RouteListPrintableDocuments[] routeListPrintableDocumentTypes, IList <OrderDocumentType> orderDocumentTypes = null) { this.uow = uow; currentRouteList = routeList; DocPrinterInit(); //Эти документы не будут добавлены в список печати вообще RouteListPrintableDocuments[] documentsToSkip = { RouteListPrintableDocuments.All, RouteListPrintableDocuments.LoadSofiyskaya, RouteListPrintableDocuments.TimeList, RouteListPrintableDocuments.OrderOfAddresses }; foreach (RouteListPrintableDocuments rlDocType in Enum.GetValues(typeof(RouteListPrintableDocuments))) { if (!documentsToSkip.Contains(rlDocType)) { var rlDoc = new RouteListPrintableDocs(uow, routeList, rlDocType); bool isSelected = routeListPrintableDocumentTypes.Contains(RouteListPrintableDocuments.All) || routeListPrintableDocumentTypes.Contains(rlDocType); SelectablePrintDocument doc = new SelectablePrintDocument(rlDoc) { Selected = isSelected }; DocumentsToPrint.Add(doc); } } if (orderDocumentTypes != null) { PrintOrderDocumentsFromTheRouteList(routeList, orderDocumentTypes); } }
/// <summary> /// Добавление в спсиок печати документов маршрутного листа <paramref name="routeList"/> с выделением типов, /// указанных в массиве <paramref name="routeListPrintableDocumentTypes"/>, а также добавление в этот спсиок /// документов всех заказов из маршрутного листа <paramref name="routeList"/> с выделением типов, указанных в /// массиве <paramref name="orderDocumentTypes"/>. Если <paramref name="orderDocumentTypes"/> не указывать, то /// печать документов заказов произведена не будет. /// </summary> /// <param name="uow">Unit Of Work</param> /// <param name="routeList">Маршрутный лист</param> /// <param name="entityDocumentsPrinterFactory">Фабрика принтеров</param> /// <param name="routeListPrintableDocumentTypes">Типы документов МЛ, которые необходимо отметить</param> /// <param name="orderDocumentTypes">Типы документов заказа, которые необходимо отметить</param> public EntityDocumentsPrinter( IUnitOfWork uow, RouteList routeList, IEntityDocumentsPrinterFactory entityDocumentsPrinterFactory, RouteListPrintableDocuments[] routeListPrintableDocumentTypes, IList <OrderDocumentType> orderDocumentTypes = null) { if (entityDocumentsPrinterFactory == null) { throw new ArgumentNullException(nameof(entityDocumentsPrinterFactory)); } DocPrinterInit(); //Эти документы не будут добавлены в список печати вообще RouteListPrintableDocuments[] documentsToSkip = { RouteListPrintableDocuments.All, RouteListPrintableDocuments.LoadSofiyskaya, RouteListPrintableDocuments.TimeList, RouteListPrintableDocuments.OrderOfAddresses }; foreach (RouteListPrintableDocuments rlDocType in Enum.GetValues(typeof(RouteListPrintableDocuments))) { if (!documentsToSkip.Contains(rlDocType)) { var rlDoc = new RouteListPrintableDocs(uow, routeList, rlDocType); var isSelected = routeListPrintableDocumentTypes.Contains(RouteListPrintableDocuments.All) || routeListPrintableDocumentTypes.Contains(rlDocType); var doc = new SelectablePrintDocument(rlDoc) { Selected = isSelected }; DocumentsToPrint.Add(doc); } } if (orderDocumentTypes != null) { PrintOrderDocumentsFromTheRouteList(routeList, entityDocumentsPrinterFactory, orderDocumentTypes); } }
public void Print(SelectablePrintDocument document = null) { if (!cancelPrinting) { MultiDocPrinter.PrinterSettings = PrinterSettings; if (document == null) { MultiDocPrinter.PrintSelectedDocuments(); } else { MultiDocPrinter.PrintDocument(document); } PrinterSettings = MultiDocPrinter.PrinterSettings; } else { PrintingCanceled?.Invoke(this, new EventArgs()); } }
public DocumentsPrinterDlg(IUnitOfWork uow, RouteList routeList, RouteListPrintableDocuments selectedType) { this.Build(); TabName = "Печать документов МЛ"; currentRouteList = routeList; foreach (RouteListPrintableDocuments rlDocType in Enum.GetValues(typeof(RouteListPrintableDocuments))) { if (rlDocType == RouteListPrintableDocuments.All) { continue; } var rlDoc = new RouteListPrintableDocs(uow, currentRouteList, rlDocType); bool isSelected = selectedType == RouteListPrintableDocuments.All || selectedType == rlDocType; SelectablePrintDocument doc = new SelectablePrintDocument(rlDoc, rlDoc.CopiesToPrint) { Selected = isSelected }; printDocuments.Add(doc); } Configure(); }
protected void OnYtreeviewDocumentsRowActivated(object o, RowActivatedArgs args) { _selectedDocument = ytreeviewDocuments.GetSelectedObject <SelectablePrintDocument>(); PreviewDocument(); }