コード例 #1
0
        public bool IsSalesOperationSuccess(SalesOperationInformationVM itemVm)
        {
            SalesOperationInformation item = new SalesOperationInformation()
            {
                SalesNo         = itemVm.SalesNo,
                BranchId        = itemVm.BranchId,
                EmployeeId      = itemVm.EmployeeId,
                SalesDate       = itemVm.SalesDate,
                CustomerName    = itemVm.CustomerName,
                CustomerContact = itemVm.CustomerContact,
                TotalAmount     = itemVm.TotalAmount,
                VAT             = itemVm.VAT,
                DiscountAmount  = itemVm.DiscountAmount,
                PayableAmount   = itemVm.PayableAmount,
                PaidAmount      = itemVm.PaidAmount,
                DueAmount       = itemVm.DueAmount,
                SalesItems      = itemVm.SalesItems,
                Date            = itemVm.Date
            };

            dbContext.SalesOperationInformations.Add(item);
            var isSuccess = dbContext.SaveChanges() > 0;

            IsStockUpdated(itemVm.SalesItems, itemVm.BranchId);

            return(isSuccess);
        }
        public void ExportOneInfoToPdf(SalesOperationInformation salesInfo)
        {
            Document document;
            string   fileSavePath = fileSaveLocation.SalesReportPdfLocation;
            string   fileName     = "SalesReport" + salesInfo.SalesNo + ".pdf";

            FileStream fileStream = new FileStream(fileSavePath + fileName, FileMode.Create, FileAccess.Write, FileShare.None);

            document = new Document(PageSize.A4, 70f, 70f, 50f, 50f);
            PdfWriter pdfWriter = PdfWriter.GetInstance(document, fileStream);

            document.Open();

            document.Add(defaultReport.ReportHeader());

            // Report Info
            BaseFont  bfnInfo      = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            Font      fntInfo      = new Font(bfnInfo, 10, 1, BaseColor.BLACK);
            Font      fntInfoSmall = new Font(bfnInfo, 8, 1, BaseColor.BLACK);
            Paragraph prgInfo      = new Paragraph();

            prgInfo.Alignment = Element.ALIGN_LEFT;
            prgInfo.Add((new Chunk("Sales No: ", fntInfo)));
            prgInfo.Add((new Chunk(salesInfo.SalesNo, fntInfoSmall)));
            prgInfo.Add((new Chunk("\nBranch: ", fntInfo)));
            prgInfo.Add((new Chunk(salesInfo.Branch.Address, fntInfoSmall)));
            prgInfo.Add((new Chunk("\nSold By: ", fntInfo)));
            prgInfo.Add((new Chunk(salesInfo.Employee.Name, fntInfoSmall)));
            prgInfo.Add((new Chunk("\nCustomer Name: ", fntInfo)));
            prgInfo.Add((new Chunk(salesInfo.CustomerName, fntInfoSmall)));
            prgInfo.Add((new Chunk("\nCustomer Contact: ", fntInfo)));
            prgInfo.Add((new Chunk(salesInfo.CustomerContact, fntInfoSmall)));
            prgInfo.Add((new Chunk("\nDate: ", fntInfo)));
            prgInfo.Add((new Chunk(salesInfo.SalesDate.ToString("D"), fntInfoSmall)));
            document.Add(prgInfo);

            // Break
            document.Add(new Chunk("\n", fntInfo));

            // Table Start
            PdfPTable table = new PdfPTable(5);

            table.HorizontalAlignment = Element.ALIGN_LEFT;

            // Table Header
            BaseFont bfnTableHeader = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            Font     fntTableHeader = new Font(bfnTableHeader, 10, 1, BaseColor.BLACK);

            PdfPCell cellSl = new PdfPCell();

            cellSl.AddElement(new Chunk("SL", fntTableHeader));
            cellSl.Border = 0;
            table.AddCell(cellSl);

            PdfPCell cellItem = new PdfPCell();

            cellItem.AddElement(new Chunk("Item", fntTableHeader));
            cellItem.Border = 0;
            table.AddCell(cellItem);

            PdfPCell cellQty = new PdfPCell();

            cellQty.AddElement(new Chunk("Qty", fntTableHeader));
            cellQty.Border = 0;
            table.AddCell(cellQty);

            PdfPCell cellPrice = new PdfPCell();

            cellPrice.AddElement(new Chunk("Price", fntTableHeader));
            cellPrice.Border = 0;
            table.AddCell(cellPrice);

            PdfPCell cellLineTotal = new PdfPCell();

            cellLineTotal.AddElement(new Chunk("Total", fntTableHeader));
            cellLineTotal.Border = 0;
            table.AddCell(cellLineTotal);

            // Table Data
            int      sl           = 1;
            BaseFont bfnTableData = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            Font     fntTableData = new Font(bfnTableData, 8, 1, BaseColor.BLACK);

            foreach (var item in salesInfo.SalesItems)
            {
                PdfPCell cellItemSl = new PdfPCell();
                cellItemSl.AddElement(new Chunk((sl++).ToString(), fntTableData));
                cellItemSl.Border = 0;
                table.AddCell(cellItemSl);

                PdfPCell cellItemItem = new PdfPCell();
                cellItemItem.AddElement(new Chunk(item.Item.Name.ToString(), fntTableData));
                cellItemItem.Border = 0;
                table.AddCell(cellItemItem);

                PdfPCell cellItemQty = new PdfPCell();
                cellItemQty.AddElement(new Chunk(item.Quantity.ToString(), fntTableData));
                cellItemQty.Border = 0;
                table.AddCell(cellItemQty);

                PdfPCell cellItemUnitPrice = new PdfPCell();
                cellItemUnitPrice.AddElement(new Chunk(item.UnitPrice.ToString(), fntTableData));
                cellItemUnitPrice.Border = 0;
                table.AddCell(cellItemUnitPrice);

                PdfPCell cellItemLineTotal = new PdfPCell();
                cellItemLineTotal.AddElement(new Chunk(item.LineTotal.ToString(), fntTableData));
                cellItemLineTotal.Border = 0;
                table.AddCell(cellItemLineTotal);
            }

            PdfPCell borderBottom = new PdfPCell();

            borderBottom.AddElement(new Chunk("\n", fntTableData));
            borderBottom.Colspan = 5;
            borderBottom.Border  = PdfPCell.BOTTOM_BORDER;
            table.AddCell(borderBottom);

            // Total Amount
            PdfPCell nullCell = new PdfPCell();

            nullCell.Colspan = 3;
            nullCell.Border  = 0;
            table.AddCell(nullCell);

            PdfPCell cellTotal = new PdfPCell();

            cellTotal.AddElement(new Chunk("Total Amount", fntTableHeader));
            cellTotal.Border = 0;
            table.AddCell(cellTotal);

            PdfPCell cellTotalValue = new PdfPCell();

            cellTotalValue.AddElement(new Chunk(salesInfo.TotalAmount.ToString(), fntTableHeader));
            cellTotalValue.Border = 0;
            table.AddCell(cellTotalValue);

            // Discount Amount
            table.AddCell(nullCell);

            PdfPCell cellDiscount = new PdfPCell();

            cellDiscount.AddElement(new Chunk("Discount", fntTableHeader));
            cellDiscount.Border = 0;
            table.AddCell(cellDiscount);

            PdfPCell cellDicountValue = new PdfPCell();

            cellDicountValue.AddElement(new Chunk(salesInfo.DiscountAmount.ToString(), fntTableHeader));
            cellDicountValue.Border = 0;
            table.AddCell(cellDicountValue);

            // Sub Total Amount
            table.AddCell(nullCell);

            PdfPCell cellSubTotal = new PdfPCell();

            cellSubTotal.AddElement(new Chunk("Sub Total", fntTableHeader));
            cellSubTotal.Border = 0;
            table.AddCell(cellSubTotal);

            double   subTotalAmount    = (double)(salesInfo.TotalAmount - salesInfo.DiscountAmount);
            PdfPCell cellSubTotalValue = new PdfPCell();

            cellSubTotalValue.AddElement(new Chunk(subTotalAmount.ToString(), fntTableHeader));
            cellSubTotalValue.Border = 0;
            table.AddCell(cellSubTotalValue);

            // VAT
            table.AddCell(nullCell);

            PdfPCell cellVat = new PdfPCell();

            cellVat.AddElement(new Chunk("VAT (" + salesInfo.VAT + "%)", fntTableHeader));
            cellVat.Border = 0;
            table.AddCell(cellVat);

            double   vatAmount    = (double)(subTotalAmount * (salesInfo.VAT / 100));
            PdfPCell cellVatValue = new PdfPCell();

            cellVatValue.AddElement(new Chunk(vatAmount.ToString(), fntTableHeader));
            cellVatValue.Border = 0;
            table.AddCell(cellVatValue);

            // Payable Amount
            table.AddCell(nullCell);

            PdfPCell cellPayable = new PdfPCell();

            cellPayable.AddElement(new Chunk("Payable Amount", fntTableHeader));
            cellPayable.Border = 0;
            table.AddCell(cellPayable);

            PdfPCell cellPayableValue = new PdfPCell();

            cellPayableValue.AddElement(new Chunk(salesInfo.PayableAmount.ToString(), fntTableHeader));
            cellPayableValue.Border = 0;
            table.AddCell(cellPayableValue);

            document.Add(table);
            document.Close();
            pdfWriter.Close();
            fileStream.Close();
        }
コード例 #3
0
        public SalesOperationInformation GetSalesOpInfo(long id)
        {
            SalesOperationInformation item = dbContext.SalesOperationInformations.Where(x => x.Id == id).Include(x => x.SalesItems).FirstOrDefault();

            return(item);
        }
コード例 #4
0
        public SalesOperationInformation GetSalesOpInfo(string salesNo)
        {
            SalesOperationInformation item = dbContext.SalesOperationInformations.Where(x => x.SalesNo == salesNo).Include(x => x.SalesItems).FirstOrDefault();

            return(item);
        }