public async Task<UserDocsClient> CreateOfferReport(CrudAPI api, GiftProject giftProject) { var order = ConvertProjectToOrder(giftProject); var invoiceParams = new InvoiceParameters() { Date = DateTime.Now, InvoiceNumber = order.Name, order = order, lines = order.OfferLines, ReturnPDF = true, SendByOutlook = false, SendXML = false, DocumentType = CompanyLayoutType.Offer, ShowInvoice = false, Simulate = false }; var invoice = await invoiceParams.PostInvoice(new InvoiceAPI(api)); var data = invoice.pdf; var fileName = "Offerte 123"; var attachment = new UserDocsClient() { _Data = data, _Text = fileName, _DocumentType = FileextensionsTypes.PDF }; return attachment; }
Custom report:
public async Task<UserDocsClient> CreateCustomOfferReport(CrudAPI api, GiftProject giftProject) { var reportName = "Offerte 3"; var report = await LoadReport(api, reportName); var order = ConvertProjectToOrder(giftProject); report.DataSource = new List<UnicontaMasterDetail>() { new UnicontaMasterDetail() { Master = order, Details = order.OfferLines.ToArray() } }; var stream = new MemoryStream(); var pdfOptions = new PdfExportOptions(); await report.ExportToPdfAsync(stream, pdfOptions); stream.Position = 0; var data = stream.ToArray(); var fileName = "Offerte 123"; var attachment = new UserDocsClient() { _Data = data, _Text = fileName, _DocumentType = FileextensionsTypes.PDF }; return attachment; } private static async Task<XtraReport> LoadReport(CrudAPI api, string reportName) { var apiWrapper = new ApiWrapper<StandardQuotationReportClient>(api); var reports = await apiWrapper.Filter() .WhereEqual(x => x.Name, reportName) .Run(); var reportRow = reports.FirstOrDefault(); if (reportRow == null) throw new Exception($"Kon rapport '{reportName}' niet vinden!"); // Load Layout bytes in repord _ = await api.Read(reportRow); var reportLayout = reportRow.Layout; if (reportLayout == null) throw new Exception($"Kon rapport '{reportName}' layout niet laden!"); XtraReport report; try { report = ReportUtil.GetXtraReportFromLayout(reportLayout); } catch (Exception) { report = null; } if (report == null) throw new Exception($"Kon rapport '{reportName}' niet laden! (error while loading layout)"); return report; }
592600cookie-checkUniconta Report print offer/order PDF