private SaleBillHeader MapToEntity(SaleBillHeaderViewModel model)
        {
            var salebillheader = new SaleBillHeader
            {
                SaleBillHeaderid = model.SaleBillHeaderid,
                PartyAccountId   = model.PartyAccountId,
                MyProperty       = model.MyProperty,
                InvoiceNo        = Convert.ToDecimal(model.InvoiceNo),
                Date             = model.Date,
                VoucherHeaderId  = model.VoucherHeaderId,
                SaleOrderNo      = model.SaleOrderNo,
                TotalAmount      = model.TotalAmount,
                FreightAmount    = model.FreightAmount,
                Taxamount        = model.Taxamount,
                Narration        = model.Narration,
                DiscountAmount   = model.DiscountAmount,
                GodownId         = model.GodownId,
                SaleBillDetails  = ConvertViewModelToModel(model.SaleBillDetails)
            };

            salebillheader.VoucherHeader = CreateVouhcer(salebillheader);
            return(salebillheader);
        }
        //public ActionResult GetSaleBill()
        //{
        //    var saledetail = this.db.SaleBillHeaders.Include(x => x.SaleBillDetails)
        //        .Include(x => x.p)
        //}

        private VoucherHeaders CreateVouhcer(SaleBillHeader model)
        {
            VoucherHeaders voucherheader = new VoucherHeaders()
            {
                VoucherDate         = model.Date,
                VoucherHeaderID     = model.VoucherHeaderId,
                VoucherTypeSeriesID = model.VoucherHeaderId,
                HistoryHeaderID     = model.VoucherHeaderId
            };
            List <VoucherDetail> voucherdetail = new List <VoucherDetail>();
            Int64 SaleAccountId = 0;

            foreach (var item in model.SaleBillDetails)
            {
                SaleAccountId = Convert.ToInt64(itemManager.GetItemAccountById(item.ItemId).SaleAccountId);
                //Debit To PartyAccount
                voucherdetail.Add(new VoucherDetail()
                {
                    VoucherHeaderID = voucherheader.VoucherHeaderID,
                    AccountID       = SaleAccountId,
                    SAccountID      = model.PartyAccountId,
                    Amount          = item.TaxableAmount,
                    BillNo          = model.InvoiceNo.ToString(),
                    InstrumentNo    = model.InvoiceNo.ToString(),
                    InstrumentDesc  = model.InvoiceNo.ToString(),
                    Narration       = model.SaleBillDetails.Select(x => x.Description).FirstOrDefault()
                });

                if (item.SGSTAmount > 0)
                {
                    voucherdetail.Add(new VoucherDetail()
                    {
                        VoucherHeaderID = voucherheader.VoucherHeaderID,
                        AccountID       = Convert.ToInt64(Variables.SGSTACCOUNT),
                        SAccountID      = model.PartyAccountId,
                        Amount          = item.SGSTAmount,
                        BillNo          = model.InvoiceNo.ToString(),
                        InstrumentNo    = model.InvoiceNo.ToString(),
                        InstrumentDesc  = model.InvoiceNo.ToString(),
                        Narration       = model.SaleBillDetails.Select(x => x.Description).FirstOrDefault()
                    });
                }

                if (item.CGSTAmount > 0)
                {
                    voucherdetail.Add(new VoucherDetail()
                    {
                        VoucherHeaderID = voucherheader.VoucherHeaderID,
                        AccountID       = Convert.ToInt64(Variables.CGSTACCOUNT),
                        SAccountID      = model.PartyAccountId,
                        Amount          = item.CGSTAmount,
                        BillNo          = model.InvoiceNo.ToString(),
                        InstrumentNo    = model.InvoiceNo.ToString(),
                        InstrumentDesc  = model.InvoiceNo.ToString(),
                        Narration       = model.SaleBillDetails.Select(x => x.Description).FirstOrDefault()
                    });
                }

                if (item.IGSTAmount > 0)
                {
                    voucherdetail.Add(new VoucherDetail()
                    {
                        VoucherHeaderID = voucherheader.VoucherHeaderID,
                        AccountID       = Convert.ToInt64(Variables.IGSTACCOUNT),
                        SAccountID      = model.PartyAccountId,
                        Amount          = item.IGSTAmount,
                        BillNo          = model.InvoiceNo.ToString(),
                        InstrumentNo    = model.InvoiceNo.ToString(),
                        InstrumentDesc  = model.InvoiceNo.ToString(),
                        Narration       = model.SaleBillDetails.Select(x => x.Description).FirstOrDefault()
                    });
                }
            }
            //credit To supplier
            voucherdetail.Add(new VoucherDetail()
            {
                VoucherHeaderID = voucherheader.VoucherHeaderID,
                AccountID       = model.PartyAccountId,
                SAccountID      = SaleAccountId,
                Amount          = model.TotalAmount * -1,
                BillNo          = model.InvoiceNo.ToString(),
                InstrumentNo    = model.InvoiceNo.ToString(),
                InstrumentDesc  = model.InvoiceNo.ToString(),
                Narration       = model.SaleBillDetails.Select(x => x.Description).FirstOrDefault()
            });
            voucherheader.VoucherDetails = voucherdetail;
            return(voucherheader);
        }