public async Task <ActionResult> printPickItemByGroup([FromBody] printPickItemByGroup printPickItemByGroup) { try { var iGroup = await db.TbmItemGroup.Where(w => w.ItemGrpCode == printPickItemByGroup.ItemGrpCode).FirstOrDefaultAsync(); var data = await(from PItem in db.TbtPickItem join O in db.TbtOrder on new { PItem.ItemCode, PItem.DocNum } equals new { O.ItemCode, O.DocNum } into gj from x in gj.DefaultIfEmpty() where PItem.PickNo == printPickItemByGroup.PickNo && PItem.ItemCode.Trim().Substring(0, 1) == iGroup.ItemGrpPrefix.Trim() select new { x.DocDueDate, x.BinCode, x.Dscription, PItem.ItemCode, x.Quantity, x.Price, x.Isbn, PItem.FlagPick }).ToListAsync(); PickDocumentModel pickDocumentModel = new PickDocumentModel(); if (data != null) { pickDocumentModel.ItemGrpName = iGroup.ItemGrpName; pickDocumentModel.ItemGrpCode = iGroup.ItemGrpCode; pickDocumentModel.PickNo = printPickItemByGroup.PickNo; pickDocumentModel.DocDueDate = data.FirstOrDefault().DocDueDate; pickDocumentModel.selectPickItems = data.Select(i => new selectPickItem { BinCode = i.BinCode, Dscription = i.Dscription, Isbn = i.Isbn, ItemCode = i.ItemCode, Quantity = (int)i.Quantity, Price = i.Price == null ?0.00:(double)i.Price, FlagPick = i.FlagPick == null ? false : (bool)i.FlagPick }).OrderBy(x => x.BinCode).ToList(); } PickDocument pDoc = new PickDocument(this._hostingEnvironment); Stream resultPDFStream = pDoc.CreatePDF(pickDocumentModel); resultPDFStream.Position = 0; if (resultPDFStream.Length != 0) { FileStreamResult fileStreamResult = new FileStreamResult(resultPDFStream, "application/pdf"); fileStreamResult.FileDownloadName = "pick_" + printPickItemByGroup.PickNo + ".pdf"; return(fileStreamResult); } else { return(NotFound()); } } catch (Exception ex) { return(StatusCode(500, ex)); } }
public Stream CreatePDF(PickDocumentModel pickDocumentModel) { System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(); Document document = this._document; PdfWriter writer = PdfWriter.GetInstance(document, memoryStream); document.Open(); headers = new string[] { "No.", "รหัสลูกค้า", "ชื่อสินค้า", "ISBN", "ราคา", "Order" }; PdfPTable table = new PdfPTable(headers.Count()); float[] widths = new float[] { 7f, 20f, 45f, 20f, 7, 7f }; table.SetWidths(widths); table.HeaderRows = 6; table.WidthPercentage = 95f; table.AddCell(bulidColumnTitle(@"บริษัท แม็คเอ็ดดูเคชั่น จำกัด", 20)); table.AddCell(bulidColumnTitle(@"ใบรวมใบจัดสินค้า (PICK LIST SUMMARY)", 20)); table.AddCell(bulidColumnTitle(@"วันที่ส่ง " + pickDocumentModel.DocDueDate.Value.ToString("dd/MM/yyyy"), 18)); table.AddCell(bulidEmptryRows()); table.AddCell(bulidColumnSubTitle(@"รหัส/ชื่อกลุ่มสินค้า " + pickDocumentModel.ItemGrpCode + "-" + pickDocumentModel.ItemGrpName, 16, Element.ALIGN_LEFT)); table.AddCell(bulidColumnSubTitle(@"ใบจัดซื้อสินค้า " + pickDocumentModel.PickNo, 16, Element.ALIGN_RIGHT)); foreach (string h in headers) { table.AddCell(bulidColumnHeader(h, 16)); } int no = 1; foreach (var i in pickDocumentModel.selectPickItems) { table.AddCell(bulidColumnRows(no.ToString(), 14, Element.ALIGN_CENTER)); table.AddCell(bulidColumnRows(i.ItemCode, 14, Element.ALIGN_CENTER)); table.AddCell(bulidColumnRows(i.Dscription, 14, Element.ALIGN_LEFT)); table.AddCell(bulidColumnRows(i.Isbn, 14, Element.ALIGN_CENTER)); table.AddCell(bulidColumnRows(i.Price.ToString(), 14, Element.ALIGN_CENTER)); table.AddCell(bulidColumnRows(i.Quantity.ToString(), 14, Element.ALIGN_CENTER)); no++; } document.Add(table); document.Close(); return(memoryStream); }
public async Task <ActionResult> selectPickItemByGroup([FromBody] selectPickItemByGroupRequest selectPickItemByGroupRequest) { try { var iGroup = await db.TbmItemGroup.Where(w => w.ItemGrpCode == selectPickItemByGroupRequest.ItemGrpCode).FirstOrDefaultAsync(); var data = await(from PItem in db.TbtPickItem join O in db.TbtOrder on new { PItem.ItemCode, PItem.DocNum } equals new{ O.ItemCode, O.DocNum } into gj from x in gj.DefaultIfEmpty() where PItem.PickNo == selectPickItemByGroupRequest.PickNo && PItem.ItemCode.Trim().Substring(0, 1) == iGroup.ItemGrpPrefix.Trim() select new { x.DocDueDate, x.BinCode, x.Dscription, PItem.ItemCode, x.Quantity, x.Isbn, PItem.FlagPick }).Skip((selectPickItemByGroupRequest.page - 1) * selectPickItemByGroupRequest.size).Take(selectPickItemByGroupRequest.size).ToListAsync(); PickDocumentModel selectPickItemByGroup = new PickDocumentModel(); if (data != null) { selectPickItemByGroup.ItemGrpName = iGroup.ItemGrpName; selectPickItemByGroup.PickNo = selectPickItemByGroupRequest.PickNo; selectPickItemByGroup.DocDueDate = data.FirstOrDefault().DocDueDate; selectPickItemByGroup.selectPickItems = data.Select(i => new selectPickItem { BinCode = i.BinCode, Dscription = i.Dscription, Isbn = i.Isbn, ItemCode = i.ItemCode, Quantity = (int)i.Quantity, FlagPick = i.FlagPick == null?false: (bool)i.FlagPick }).OrderBy(x => x.BinCode).ToList(); } if (selectPickItemByGroup != null) { return(Ok(selectPickItemByGroup)); } else { return(NotFound()); } } catch (Exception ex) { return(StatusCode(500, ex)); } }