Exemple #1
0
        private void GetInvoiceDetails(string InvoiceNo)
        {
            DAL                  objDal                  = new DAL();
            InvoiceDetail        objInvoiceDetail        = new InvoiceDetail();
            AmountTaxCalculation objAmountTaxCalculation = new AmountTaxCalculation();
            Party                objParty                = new Party();
            List <Product>       liProduct               = new List <Product>();
            DataTable            dtInvoiceData           = new DataTable();

            dtInvoiceData = objDal.getInvoiceByInvoiceNo(InvoiceNo);
            if (dtInvoiceData.Rows.Count > 0)
            {
                objInvoiceDetail.PartyId    = Convert.ToInt32(dtInvoiceData.Rows[0]["PartyId"]);
                objInvoiceDetail.DateOfSell = Convert.ToDateTime(dtInvoiceData.Rows[0]["DateOfSell"]).ToString("dd/MM/yyyy");
                objInvoiceDetail.IvoiceNo   = dtInvoiceData.Rows[0]["IvoiceNo"].ToString();

                for (int i = 0; i < dtInvoiceData.Rows.Count; i++)
                {
                    liProduct.Add(new Product()
                    {
                        ProductName   = dtInvoiceData.Rows[i]["ProductName"].ToString(),
                        Qty           = Convert.ToDouble(dtInvoiceData.Rows[i]["Qty"]),
                        PackagingCost = Convert.ToDouble(dtInvoiceData.Rows[i]["PackagingCost"]),
                        //Price= Convert.ToDouble(dtInvoiceData.Rows[i]["PackagingCost"]),
                        Rate          = Convert.ToDouble(dtInvoiceData.Rows[i]["Rate"]),
                        Amount        = Convert.ToDouble(dtInvoiceData.Rows[i]["Amount"]),
                        AmountDisplay = Math.Round(Convert.ToDouble(dtInvoiceData.Rows[i]["Amount"]), 0, MidpointRounding.AwayFromZero).ToString("n2"),
                        IsPice        = Convert.ToBoolean(dtInvoiceData.Rows[i]["IsPiece"]),
                        ProductType   = Convert.ToBoolean(dtInvoiceData.Rows[i]["IsPiece"]) == true ? "/ pp" : "/per kg"
                    });
                }
                objInvoiceDetail.Product = liProduct;
            }
            objAmountTaxCalculation.Total         = CalcuateTotal(objInvoiceDetail).ToString("n2");
            objAmountTaxCalculation.CGST          = CalculateCGST(Convert.ToDouble(objAmountTaxCalculation.Total)).ToString("n2");
            objAmountTaxCalculation.IGST          = CalculateIGST(Convert.ToDouble(objAmountTaxCalculation.Total)).ToString("n2");
            objAmountTaxCalculation.GrandTotal    = (Convert.ToDouble(objAmountTaxCalculation.Total) + Convert.ToDouble(objAmountTaxCalculation.CGST) + Convert.ToDouble(objAmountTaxCalculation.IGST)).ToString("n2");
            objAmountTaxCalculation.GTotalInWords = NumbersToWords(Convert.ToInt32(Convert.ToDouble(objAmountTaxCalculation.GrandTotal)));
            DataRow dr = objDal.getPartyDetail(objInvoiceDetail.PartyId);

            objParty.PartyName    = dr["PartyName"].ToString();
            objParty.PartyTinNo   = dr["PartyTinNo"].ToString();
            objParty.PartyAddress = dr["PartyAddress"].ToString();

            GenerateInvoicePDF(objParty, objInvoiceDetail, objAmountTaxCalculation);
        }
Exemple #2
0
        private void GenerateInvoicePDF(Party objPartyDetail, InvoiceDetail objInvDetail, AmountTaxCalculation objAmounts)
        {
            string        strTemplatePath = Server.MapPath(@"~\Invoice.html");
            StringBuilder mainhtml        = new StringBuilder();
            string        htmlTemp        = File.ReadAllText(strTemplatePath);

            mainhtml.Append(htmlTemp);
            mainhtml = mainhtml.Replace("@PARTY NAME", objPartyDetail.PartyName);
            mainhtml = mainhtml.Replace("@Address", objPartyDetail.PartyAddress);
            mainhtml = mainhtml.Replace("@InvoiceNO", objInvDetail.IvoiceNo);
            mainhtml = mainhtml.Replace("@Date", objInvDetail.DateOfSell);
            mainhtml = mainhtml.Replace("@Tinno", objPartyDetail.PartyTinNo);
            mainhtml = mainhtml.Replace("@Logo", "<img src='" + Server.MapPath(@"~/Logo.PNG") + "' width='150' height='100' />");
            mainhtml = mainhtml.Replace("@Om", "<img src='" + Server.MapPath(@"~/Content/Narayan.PNG") + "' width='180' height='35'/>");
            StringBuilder sbProducts = new StringBuilder();

            for (int i = 0; i < objInvDetail.Product.Count; i++)
            {
                sbProducts.Append("<tr class='borderBottomRemove'>");
                sbProducts.Append("<td class='borderleft PartyInfo' style='height:40px;' align='center'>" + (i + 1) + ".</td>");
                sbProducts.Append("<td class='borderleft PartyInfo' style='height:40px;' align='center'>" + objInvDetail.Product[i].ProductName + "</td>");
                //Add the HSN Code Dynamically here
                sbProducts.Append("<td class='borderleft PartyInfo' style='height:40px;' align='center'>" + BillType.HSNCode + "</td>");
                string Type = objInvDetail.Product[i].ProductType == "/ pp" ? "Pcs" : "Kgs";
                sbProducts.Append("<td class='borderleft PartyInfo' style='height:40px;' align='center'>" + objInvDetail.Product[i].Qty + " " + Type + "</td>");

                //sbProducts.Append("<td class='borderleft PartyInfo' style='height:40px;' align='center'>" + Type + "</td>");

                sbProducts.Append("<td class='borderleft PartyInfo' style='height:40px;' align='center'>" + (objInvDetail.Product[i].Rate.ToString() + objInvDetail.Product[i].ProductType.ToString()) + "</td>");
                sbProducts.Append("<td class='borderleft PartyInfo borderright' style='height:40px;' align='center'>" + objInvDetail.Product[i].AmountDisplay + "</td>");
                sbProducts.Append("</tr>");
            }
            mainhtml = mainhtml.Replace("@TableData", sbProducts.ToString());
            mainhtml = mainhtml.Replace("@PackingCost", "0.00");
            mainhtml = mainhtml.Replace("@Total", objAmounts.Total);
            mainhtml = mainhtml.Replace("@CGST", objAmounts.CGST);
            mainhtml = mainhtml.Replace("@Tax", Convert.ToInt32(BillType.TaxRate).ToString());
            mainhtml = mainhtml.Replace("@SGST", objAmounts.IGST);
            mainhtml = mainhtml.Replace("@GradTotal", objAmounts.GrandTotal);
            mainhtml = mainhtml.Replace("@TInWords", objAmounts.GTotalInWords);
            string       downloadedFileName = objInvDetail.IvoiceNo + "_" + objPartyDetail.PartyName;
            MemoryStream ms = ConvertHtmlToPdf(mainhtml.ToString());

            DownloadAsPdf(ms, downloadedFileName);
        }