Пример #1
0
        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();
            }
        }
Пример #2
0
        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();
            }
        }
Пример #3
0
        /// <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);
            }
        }
Пример #4
0
        /// <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);
            }
        }
Пример #5
0
 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());
     }
 }
Пример #6
0
        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();
        }
Пример #7
0
 protected void OnYtreeviewDocumentsRowActivated(object o, RowActivatedArgs args)
 {
     _selectedDocument = ytreeviewDocuments.GetSelectedObject <SelectablePrintDocument>();
     PreviewDocument();
 }