Exemplo n.º 1
0
        async private void ShowDocument(IEnumerable <DebtorInvoiceClient> debtorInvoices, bool isInvoice)
        {
            busyIndicator.IsBusy      = true;
            busyIndicator.BusyContent = Uniconta.ClientTools.Localization.lookup("GeneratingPage");

            try
            {
                var docList = debtorInvoices.ToList();
#if !SILVERLIGHT
                var    failedPrints = new List <long>();
                var    count = docList.Count;
                string dockName = null, reportName = null;
                bool   exportAsPdf = false;
                System.Windows.Forms.FolderBrowserDialog folderDialogSaveInvoice = null;
                hasLookups = false;
                if (count > 1)
                {
                    hasLookups = true;
                    if (count > StandardPrintReportPage.MAX_PREVIEW_REPORT_LIMIT)
                    {
                        var confirmMsg = string.Format(Uniconta.ClientTools.Localization.lookup("PreivewRecordsExportMsg"), count);
                        if (UnicontaMessageBox.Show(confirmMsg, Uniconta.ClientTools.Localization.lookup("Confirmation"), MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                        {
                            exportAsPdf = true;
                        }
                    }
                    else if (isInvoice)
                    {
                        dockName = string.Concat(Uniconta.ClientTools.Localization.lookup("Preview"), ": ", Uniconta.ClientTools.Localization.lookup("Debtor"),
                                                 " ", Uniconta.ClientTools.Localization.lookup("Invoices"));
                        reportName = string.Concat(Uniconta.ClientTools.Localization.lookup("Debtor"), Uniconta.ClientTools.Localization.lookup("Invoices"));
                    }
                    else
                    {
                        dockName   = string.Concat(Uniconta.ClientTools.Localization.lookup("Preview"), ": ", Uniconta.ClientTools.Localization.lookup("Packnote"));
                        reportName = Uniconta.ClientTools.Localization.lookup("Packnote");
                    }

                    ribbonControl.DisableButtons(new [] { "ShowInvoice", "ShowPackNote" });
                }
#elif SILVERLIGHT
                int top = 200, left = 300;
                int count = docList.Count;

                if (count > 1)
                {
#endif
                foreach (var debtInvoice in docList)
                {
#if !SILVERLIGHT
                    IsGeneratingDocument = true;
                    IPrintReport printReport = isInvoice ? await PrintInvoice(debtInvoice) : await PrintPackNote(debtInvoice);

                    if (printReport?.Report != null)
                    {
                        var docNumber = isInvoice ? debtInvoice._InvoiceNumber : debtInvoice._PackNote;
                        if (count > 1 && IsGeneratingDocument)
                        {
                            if (exportAsPdf)
                            {
                                string docName       = isInvoice ? Uniconta.ClientTools.Localization.lookup("Invoice") : Uniconta.ClientTools.Localization.lookup("Packnote");
                                string directoryPath = string.Empty;
                                if (folderDialogSaveInvoice == null)
                                {
                                    folderDialogSaveInvoice = UtilDisplay.LoadFolderBrowserDialog;
                                    var dialogResult = folderDialogSaveInvoice.ShowDialog();
                                    if (dialogResult == System.Windows.Forms.DialogResult.OK || dialogResult == System.Windows.Forms.DialogResult.Yes)
                                    {
                                        directoryPath = folderDialogSaveInvoice.SelectedPath;
                                    }
                                }
                                else
                                {
                                    directoryPath = folderDialogSaveInvoice.SelectedPath;
                                }

                                Utility.ExportReportAsPdf(printReport.Report, directoryPath, docName, NumberConvert.ToString(docNumber));
                            }
                            else
                            {
                                if (standardViewerPageForDocument == null)
                                {
                                    standardViewerPageForDocument = dockCtrl.AddDockItem(api?.CompanyEntity, TabControls.StandardPrintReportPage, ParentControl, new object[] { printReport, reportName }, dockName) as StandardPrintReportPage;
                                }
                                else
                                {
                                    standardViewerPageForDocument.InsertToMasterReport(printReport.Report);
                                }
                            }
                        }
                        else
                        {
                            var docType = isInvoice ? CompanyLayoutType.Invoice : CompanyLayoutType.Packnote;
                            reportName = await Utility.GetLocalizedReportName(api, debtInvoice, docType);

                            dockName = string.Format("{0} {1}", Uniconta.ClientTools.Localization.lookup("Preview"), string.Format("{0}: {1}", isInvoice ? Uniconta.ClientTools.Localization.lookup("Invoice") :
                                                                                                                                   Uniconta.ClientTools.Localization.lookup("Packnote"), NumberConvert.ToString(docNumber)));

                            AddDockItem(TabControls.StandardPrintReportPage, new object[] { new List <IPrintReport> {
                                                                                                printReport
                                                                                            }, reportName }, dockName);
                            break;
                        }
                    }
                    else
                    {
                        failedPrints.Add(debtInvoice.InvoiceNumber);
                    }
                }

                IsGeneratingDocument = false;
                ribbonControl?.EnableButtons(new [] { "ShowInvoice", "ShowPackNote" });

                if (failedPrints.Count > 0)
                {
                    var failedList = string.Join(",", failedPrints);
                    UnicontaMessageBox.Show(Uniconta.ClientTools.Localization.lookup("FailedPrintmsg") + failedList, Uniconta.ClientTools.Localization.lookup("Error"), MessageBoxButton.OK);
                }
#elif SILVERLIGHT
                    DefaultPrint(debtInvoice, true, new Point(top, left));
                    left = left - left / count;
                    top  = top - top / count;
                }
            }
            else
            {
                DefaultPrint(debtorInvoices.First());
            }
#endif
            }
Exemplo n.º 2
0
        public BalanceReportTemplatePrint(object sourceData, object sourceHeaderData, object objBalance, object frontPageReport)
        {
            InitializeComponent();
            var        bal        = (Balance)objBalance;
            HeaderData headerdata = (HeaderData)sourceHeaderData;

            if (string.IsNullOrEmpty(headerdata.BalanceName))
            {
                headerdata.BalanceName = Uniconta.ClientTools.Localization.lookup("ReportCriteria");
            }
            headerdata.AccountColWidth     = bal.ColumnSizeAccount == (byte)0 ? 80 : bal.ColumnSizeAccount;
            headerdata.AccountNameColWidth = bal.ColumnSizeName == (byte)0 ? 200 : bal.ColumnSizeName;
            headerdata.LineSpace           = new Thickness(0, 0, 0, bal.LineSpace);
            headerdata.LeftMargin          = new Thickness(bal.LeftMargin, 0, 0, 0);
            headerdata.DimColWidth         = bal.ColumnSizeDim == (byte)0 ? 90 : bal.ColumnSizeDim;
            headerdata.DClblWidth          = bal.ColumnSizeAmount == (byte)0 ? 100 : bal.ColumnSizeAmount;
            headerdata.FontSize            = bal.FontSize == 0 ? 12 : bal.FontSize;
            headerdata.AmountSize          = bal.ColumnSizeAmount;
#if !SILVERLIGHT
            List <List <TemplateDataItems> > simpleLinkItems = new List <List <TemplateDataItems> >();
            var currentItems = ((TemplateDataContext)sourceData).TemplateReportlist;
            List <TemplateDataItems> currentLinkItems = new List <TemplateDataItems>();
            for (int i = 0; i < currentItems.Count; i++)
            {
                currentLinkItems.Add(currentItems[i]);
                if (currentItems[i].IsNewPage == Visibility.Visible)
                {
                    simpleLinkItems.Add(currentLinkItems);
                    currentLinkItems = new List <TemplateDataItems>();
                }
                if (i == currentItems.Count - 1)
                {
                    simpleLinkItems.Add(currentLinkItems);
                }
            }
            DevExpress.XtraPrinting.PrintingSystem ps = new DevExpress.XtraPrinting.PrintingSystem();
            ps.Graph.PageBackColor = System.Drawing.Color.Transparent;
            //Setting the default Printer
            if (!string.IsNullOrEmpty(session.User._Printer))
            {
                ps.PageSettings.PrinterName = session.User._Printer;
            }
            List <TemplatedLink> links = new List <TemplatedLink>();
            var frontPageText          = bal._FrontPage;
            if (!string.IsNullOrEmpty(frontPageText) && bal._PrintFrontPage)
            {
                if (frontPageReport is DevExpress.XtraReports.UI.XtraReport)
                {
                    var balanceFrontPageList = StandardPrintReportPage.AssignWatermark(frontPageReport as DevExpress.XtraReports.UI.XtraReport);
                    ps.Pages.AddRange(balanceFrontPageList);
                }
                else
                {
                    var frontPageLink = BalanceReportPrint.CreateFrontPageLink(frontPageText, bal._Landscape, bal.FontSize, (DataTemplate)this.Resources["frontPageHeaderTemplate"]);
                    frontPageLink.CreateDocument(false);
                    links.Add(frontPageLink);
                }
            }
            foreach (List <TemplateDataItems> e in simpleLinkItems)
            {
                var templateLink = CreateLink(headerdata, e, ((Balance)objBalance)._Landscape);
                templateLink.CreateDocument(false);
                links.Add(templateLink);
            }

            foreach (var link in links)
            {
                ps.Pages.AddRange(link.PrintingSystem.Pages);
            }
            custPrint.DocumentSource = ps;
#endif
#if SILVERLIGHT
            TemplatePrintBaseModule printbase = new TemplatePrintBaseModule();
            printbase.PageHeaderTemplate                   = (DataTemplate)this.Resources["pageHeaderTemplate"];
            printbase.DetailTemplate                       = (DataTemplate)this.Resources["detailTemplate"];
            printbase.HeaderTemplateDataContext            = headerdata;
            printbase.DetailsTemplateDataContext           = (TemplateDataContext)sourceData;
            printbase.HeaderTemplateDataContext._Landscape = ((Balance)objBalance)._Landscape;
            this.DataContext = printbase;
#endif
        }