/// <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);
            }
        }
Example #3
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();
        }