Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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));
            }
        }