public GarmentPurchaseRequestController(IServiceProvider serviceProvider, IMapper mapper, IGarmentPurchaseRequestFacade facade) { this.serviceProvider = serviceProvider; this.mapper = mapper; this.facade = facade; this.identityService = (IdentityService)serviceProvider.GetService(typeof(IdentityService)); }
public static MemoryStream Generate(IServiceProvider serviceProvider, GarmentPurchaseRequestViewModel viewModel) { Font header_font = FontFactory.GetFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, BaseFont.NOT_EMBEDDED, 12); Font normal_font = FontFactory.GetFont(BaseFont.HELVETICA, BaseFont.CP1250, BaseFont.NOT_EMBEDDED, 6); Font bold_font = FontFactory.GetFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, BaseFont.NOT_EMBEDDED, 6); Document document = new Document(PageSize.A4, 10, 10, 10, 10); MemoryStream stream = new MemoryStream(); PdfWriter writer = PdfWriter.GetInstance(document, stream); document.Open(); IdentityService identityService = (IdentityService)serviceProvider.GetService(typeof(IdentityService)); IGarmentPurchaseRequestFacade garmentPurchaseRequestFacade = (IGarmentPurchaseRequestFacade)serviceProvider.GetService(typeof(IGarmentPurchaseRequestFacade)); var salesContract = garmentPurchaseRequestFacade.GetGarmentPreSalesContract(viewModel.SCId); #region Header Paragraph title = new Paragraph("PT EFRATA RETAILINDO", normal_font) { Alignment = Element.ALIGN_LEFT }; document.Add(title); Paragraph companyName = new Paragraph("BUDGET MASTER GARMENT", header_font) { Alignment = Element.ALIGN_LEFT }; document.Add(companyName); #endregion PdfPCell cellLeftNoBorder = new PdfPCell() { Border = Rectangle.NO_BORDER, HorizontalAlignment = Element.ALIGN_LEFT }; PdfPCell cellCenter = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_CENTER, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; PdfPCell cellRight = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_RIGHT, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; PdfPCell cellLeft = new PdfPCell() { Border = Rectangle.TOP_BORDER | Rectangle.LEFT_BORDER | Rectangle.BOTTOM_BORDER | Rectangle.RIGHT_BORDER, HorizontalAlignment = Element.ALIGN_LEFT, VerticalAlignment = Element.ALIGN_MIDDLE, Padding = 5 }; #region Identity PdfPTable tableIdentity = new PdfPTable(4); tableIdentity.SetWidths(new float[] { 0.5f, 2f, 2.5f, 5f }); cellLeftNoBorder.Phrase = new Phrase("RO", normal_font); tableIdentity.AddCell(cellLeftNoBorder); cellLeftNoBorder.Phrase = new Phrase(": " + viewModel.RONo, normal_font); tableIdentity.AddCell(cellLeftNoBorder); cellLeftNoBorder.Phrase = new Phrase("LEAD TIME : 35", normal_font); tableIdentity.AddCell(cellLeftNoBorder); cellLeftNoBorder.Phrase = new Phrase(string.Empty, normal_font); tableIdentity.AddCell(cellLeftNoBorder); PdfPCell cellIdentity = new PdfPCell(tableIdentity); tableIdentity.ExtendLastRow = false; tableIdentity.SpacingBefore = 5f; tableIdentity.SpacingAfter = 10f; document.Add(tableIdentity); #endregion #region TableContent PdfPTable tableContent = new PdfPTable(9); tableContent.SetWidths(new float[] { 36f, 116f, 100f, 175f, 90f, 68f, 153f, 132f, 130f }); cellCenter.Phrase = new Phrase("NO", bold_font); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase("CATEGORIES", bold_font); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase("KODE PRODUK", bold_font); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase("DESCRIPTION", bold_font); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase("QUANTITY", bold_font); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase("UNIT", bold_font); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase("PRICE", bold_font); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase("AMOUNT", bold_font); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase("PO NUMBER", bold_font); tableContent.AddCell(cellCenter); double totalAmount = 0; int indexItem = 0; foreach (var item in viewModel.Items) { cellCenter.Phrase = new Phrase((++indexItem).ToString(), normal_font); tableContent.AddCell(cellCenter); cellLeft.Phrase = new Phrase(item.Category.Name, normal_font); tableContent.AddCell(cellLeft); cellLeft.Phrase = new Phrase(item.Product.Code, normal_font); tableContent.AddCell(cellLeft); cellLeft.Phrase = new Phrase(item.ProductRemark, normal_font); tableContent.AddCell(cellLeft); cellRight.Phrase = new Phrase(Math.Round(item.Quantity).ToString(), normal_font); tableContent.AddCell(cellRight); cellCenter.Phrase = new Phrase(item.Uom.Unit, normal_font); tableContent.AddCell(cellCenter); cellCenter.Phrase = new Phrase(string.Concat(item.BudgetPrice.ToString("n", new CultureInfo("id-ID")), "/", item.PriceUom.Unit), normal_font); tableContent.AddCell(cellCenter); var amount = item.Quantity * item.BudgetPrice / item.PriceConversion; cellRight.Phrase = new Phrase(amount.ToString("n", new CultureInfo("id-ID")), normal_font); tableContent.AddCell(cellRight); cellCenter.Phrase = new Phrase(item.PO_SerialNumber, normal_font); tableContent.AddCell(cellCenter); totalAmount += amount; } PdfPCell cellContent = new PdfPCell(tableContent); tableContent.ExtendLastRow = false; tableContent.SpacingAfter = 20f; document.Add(tableContent); #endregion #region TableFooter PdfPTable tableFooter = new PdfPTable(5); tableFooter.SetWidths(new float[] { 121f, 302f, 57f, 304f, 217f }); cellLeft.PaddingTop = 7f; cellLeft.PaddingBottom = 7f; cellLeft.Phrase = new Phrase("PEMBERI KERJA", normal_font); tableFooter.AddCell(cellLeft); cellLeft.Phrase = new Phrase(/**salesContract.BuyerAgentCode + " - " + **/ salesContract.BuyerAgentName, normal_font); tableFooter.AddCell(cellLeft); tableFooter.AddCell(new PdfPCell() { Border = Rectangle.NO_BORDER, Rowspan = 5 }); tableFooter.AddCell(new PdfPCell() { Padding = 7f, Rowspan = 3, Border = cellLeft.Border, HorizontalAlignment = Element.ALIGN_LEFT, VerticalAlignment = Element.ALIGN_TOP, Phrase = new Phrase(string.Concat("TOTAL BUDGET : ", totalAmount.ToString("n", new CultureInfo("id-ID"))), normal_font) }); tableFooter.AddCell(new PdfPCell() { Border = Rectangle.NO_BORDER, Rowspan = 5 }); cellLeft.Phrase = new Phrase("ARTICLE", normal_font); tableFooter.AddCell(cellLeft); cellLeft.Phrase = new Phrase(viewModel.Article, normal_font); tableFooter.AddCell(cellLeft); cellLeft.Phrase = new Phrase("DESCRIPTION", normal_font); tableFooter.AddCell(cellLeft); cellLeft.Phrase = new Phrase(viewModel.Remark, normal_font); tableFooter.AddCell(cellLeft); cellLeft.Phrase = new Phrase("SHIPMENT", normal_font); tableFooter.AddCell(cellLeft); cellLeft.Phrase = new Phrase(viewModel.ShipmentDate.GetValueOrDefault().ToOffset(new TimeSpan(identityService.TimezoneOffset, 0, 0)).ToString("dd MMMM yyyy", new CultureInfo("id-ID")), normal_font); tableFooter.AddCell(cellLeft); tableFooter.AddCell(new PdfPCell() { Border = Rectangle.NO_BORDER, Rowspan = 2 }); /**cellLeft.Phrase = new Phrase("BUYER BRAND", normal_font); * tableFooter.AddCell(cellLeft); * * cellLeft.Phrase = new Phrase(viewModel.Buyer.Code + " - " + viewModel.Buyer.Name, normal_font); * tableFooter.AddCell(cellLeft);**/ PdfPCell cellfooter = new PdfPCell(tableFooter); tableFooter.ExtendLastRow = false; document.Add(tableFooter); #endregion document.Close(); byte[] byteInfo = stream.ToArray(); stream.Write(byteInfo, 0, byteInfo.Length); stream.Position = 0; return(stream); }
public GarmentMonitoringPurchaseAllController(IServiceProvider serviceProvider, IGarmentPurchaseRequestFacade facade) { this.serviceProvider = serviceProvider; this.facade = facade; this.identityService = (IdentityService)serviceProvider.GetService(typeof(IdentityService)); }