public IHttpActionResult PrintPI(int id, string reportName) { Library.DTO.Notification notification; // authentication Module.Framework.BLL fwBll = new Module.Framework.BLL(); if (!fwBll.CanPerformAction(ControllerContext.GetAuthUserId(), moduleCode, Library.DTO.ModuleAction.CanPrint)) { return(InternalServerError(new Exception(Properties.Resources.NOT_AUTHORIZED))); } //GET DATA BLL.SaleOrderMng bll = new BLL.SaleOrderMng(); DTO.SaleOrderMng.PIContainerPrintout dtoPrintout = bll.GetPrintoutData(id, ControllerContext.GetAuthUserId(), out notification); //CREATE PRINTOUT if (reportName == null) { reportName = dtoPrintout.ReportName; } //int? companyID = fwBll.GetCompanyID(ControllerContext.GetAuthUserId()); //switch (companyID) //{ // case 13: // reportName = reportName + "_OrangePine.rdlc"; // break; // default: // reportName = reportName + ".rdlc"; // break; //} reportName = reportName + ".rdlc"; Microsoft.Reporting.WebForms.LocalReport lr = new Microsoft.Reporting.WebForms.LocalReport(); lr.ReportPath = FrameworkSetting.Setting.AbsoluteReportFolder + reportName; Microsoft.Reporting.WebForms.ReportDataSource rsInvoice = new Microsoft.Reporting.WebForms.ReportDataSource(); rsInvoice.Name = "Order"; rsInvoice.Value = dtoPrintout.PIPrintouts; lr.DataSources.Add(rsInvoice); Microsoft.Reporting.WebForms.ReportDataSource rsInvoiceDetail = new Microsoft.Reporting.WebForms.ReportDataSource(); rsInvoiceDetail.Name = "OrderDetail"; rsInvoiceDetail.Value = dtoPrintout.PIDetailPrintouts; lr.DataSources.Add(rsInvoiceDetail); string printoutFileName = PrintoutHelper.BuildPrintoutFile(lr, "PDF"); // // author: TheMy // description: add disclaimer (using iTextSharp) // string finalFile = System.Guid.NewGuid().ToString().Replace("-", "") + ".pdf"; FileInfo fInfo = new FileInfo(FrameworkSetting.Setting.AbsoluteReportFolder + reportName); if (File.Exists(FrameworkSetting.Setting.AbsoluteReportFolder + fInfo.Name.Replace(fInfo.Extension, "") + "_bottom.pdf")) { try { Document document = new Document(); PdfCopy writer = new PdfCopy(document, new FileStream(FrameworkSetting.Setting.AbsoluteReportTmpFolder + finalFile, FileMode.Create)); if (writer == null) { throw new Exception("Can not create Pdf object"); } document.Open(); writer.AddDocument(new PdfReader(FrameworkSetting.Setting.AbsoluteReportTmpFolder + printoutFileName)); writer.AddDocument(new PdfReader(FrameworkSetting.Setting.AbsoluteReportFolder + fInfo.Name.Replace(fInfo.Extension, "") + "_bottom.pdf")); writer.Close(); document.Close(); } catch (Exception ex) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = "Adding general condition failed: " + ex.Message; finalFile = printoutFileName; } } else { finalFile = printoutFileName; } // // // return(Ok(new Library.DTO.ReturnData <string>() { Data = finalFile, Message = notification })); }
public DTO.SaleOrderMng.PIContainerPrintout DB2DTO_Printout(SaleOrder_ReportView dbItem) { DTO.SaleOrderMng.PIContainerPrintout dtoItem = new DTO.SaleOrderMng.PIContainerPrintout(); dtoItem.PIPrintouts = new List <DTO.SaleOrderMng.PIPrintout>(); dtoItem.PIDetailPrintouts = new List <DTO.SaleOrderMng.PIDetailPrintout>(); DTO.SaleOrderMng.PIPrintout dtoPI = AutoMapper.Mapper.Map <SaleOrder_ReportView, DTO.SaleOrderMng.PIPrintout>(dbItem); dtoItem.PIPrintouts.Add(dtoPI); //COPY PI DETAIL DTO.SaleOrderMng.PIDetailPrintout dtoPIDetail; foreach (SaleOrderExtend_ReportView dbExtend in dbItem.SaleOrderExtend_ReportView.Where(o => o.Position == "TOP").OrderBy(o => o.RowIndex)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = dbExtend.Description; dtoPIDetail.SaleAmount = dbExtend.TotalAmount; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } foreach (SaleOrderDetail_ReportView dbDetail in dbItem.SaleOrderDetail_ReportView.OrderBy(o => o.RowIndex)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.RowIndex = dbDetail.RowIndex; dtoPIDetail.ArticleCode = dbDetail.ArticleCode; dtoPIDetail.Description = dbDetail.Description; dtoPIDetail.OrderQnt = dbDetail.OrderQnt; dtoPIDetail.UnitPrice = dbDetail.UnitPrice; dtoPIDetail.SaleAmount = dbDetail.SaleAmount; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); if (!string.IsNullOrEmpty(dbDetail.ClientArticleCode)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = dbDetail.ClientArticleCode; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } if (!string.IsNullOrEmpty(dbDetail.ClientArticleName)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = dbDetail.ClientArticleName; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } if (!string.IsNullOrEmpty(dbDetail.ClientEANCode)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = dbDetail.ClientEANCode; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } if (!string.IsNullOrEmpty(dbItem.ClientOrderNumber)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = dbItem.ClientOrderNumber; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } if (!string.IsNullOrEmpty(dbDetail.Reference)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = dbDetail.Reference; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } foreach (SaleOrderDetailExtend_ReportView dbDetailExt in dbDetail.SaleOrderDetailExtend_ReportView.OrderBy(o => o.RowIndex)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = dbDetailExt.Description; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } } foreach (SaleOrderDetailSample_ReportView dbSample in dbItem.SaleOrderDetailSample_ReportView.OrderBy(o => o.RowIndex)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.RowIndex = dbSample.RowIndex; dtoPIDetail.ArticleCode = dbSample.ArticleCode; dtoPIDetail.Description = dbSample.Description; dtoPIDetail.OrderQnt = dbSample.Quantity; dtoPIDetail.UnitPrice = dbSample.SalePrice; dtoPIDetail.SaleAmount = dbSample.SaleAmount; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } foreach (SaleOrderDetailSparepart_ReportView dbSparepart in dbItem.SaleOrderDetailSparepart_ReportView.OrderBy(o => o.RowIndex)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.RowIndex = dbSparepart.RowIndex; dtoPIDetail.ArticleCode = dbSparepart.ArticleCode; dtoPIDetail.Description = dbSparepart.Description; dtoPIDetail.OrderQnt = dbSparepart.OrderQnt; dtoPIDetail.UnitPrice = dbSparepart.UnitPrice; dtoPIDetail.SaleAmount = dbSparepart.SaleAmount; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); if (!string.IsNullOrEmpty(dbSparepart.ClientArticleCode)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = dbSparepart.ClientArticleCode; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } if (!string.IsNullOrEmpty(dbSparepart.ClientArticleName)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = dbSparepart.ClientArticleName; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } if (!string.IsNullOrEmpty(dbSparepart.ClientEANCode)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = dbSparepart.ClientEANCode; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } if (!string.IsNullOrEmpty(dbItem.ClientOrderNumber)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = dbItem.ClientOrderNumber; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } } foreach (SaleOrderExtend_ReportView dbExtend in dbItem.SaleOrderExtend_ReportView.Where(o => o.Position == "BOTTOM").OrderBy(o => o.RowIndex)) { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = dbExtend.Description; dtoPIDetail.SaleAmount = dbExtend.TotalAmount; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } if (dbItem.IsViewLDSOnPrintout.HasValue && dbItem.IsViewLDSOnPrintout.Value && dbItem.LDS != "") { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = "LDS: " + dbItem.LDS; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } if (dbItem.IsViewDeliveryDateOnPrintout.HasValue && dbItem.IsViewDeliveryDateOnPrintout.Value && dbItem.DeliveryDate != "") { dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = "DELIVERY DATE: " + dbItem.DeliveryDate; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); } string bottomString = ""; if (dbItem.IsViewQuantityContOnPrintout.HasValue && dbItem.IsViewQuantityContOnPrintout.Value) { if (dbItem.Quantity40HC.HasValue) { bottomString += dbItem.Quantity40HC.ToString() + "x40'HC CONTAINER"; } if (dbItem.Quantity40DC.HasValue) { bottomString += " " + dbItem.Quantity40DC.ToString() + "x40'DC CONTAINER"; } if (dbItem.Quantity20DC.HasValue) { bottomString += " " + dbItem.Quantity20DC.ToString() + "x20'DC CONTAINER"; } } dtoPIDetail = new DTO.SaleOrderMng.PIDetailPrintout(); dtoPIDetail.Description = bottomString; dtoItem.PIDetailPrintouts.Add(dtoPIDetail); return(dtoItem); }