public void EditAssetPurchaseItem(FA_PurchaseItem purchaseitem)
        {
            string sql = " update FA_PurchaseItem  set " +
                         " OrganizationId=@OrganizationId, PurchaseId=@PurchaseId, " +
                         " AssetItemId=@AssetItemId, PurchaseQuantity=@PurchaseQuantity, Rate=@Rate, Total=@Total," +
                         " RegisterToAsset=@RegisterToAsset, IsDeleted =@IsDeleted, " +
                         " LastUpdatedBy=@LastUpdatedBy, LastUpdatedDate=@LastUpdatedDate" +
                         " where PurchaseItemId=@PurchaseItemId";


            using (var db = DbHelper.GetDBConnection())
            {
                db.Query <int>(sql, purchaseitem).SingleOrDefault();
            }
        }
        public ActionResult SavePurchaseitem(string PurchaseItemId = "", string PurchaseId = "", string AssetItemId = "", string UnitId = "", string PurchaseQuantity = "", string Rate = "", string Total = "", string RegisterToAsset = "")
        {
            var             ses   = sesrepo.GetSessionById((User as CustomPrincipal).UserId);
            int             orgid = ses.OrganizationId;
            int             uid   = (User as CustomPrincipal).UserId;
            FA_PurchaseItem pitem;//

            if (string.IsNullOrEmpty(PurchaseItemId) || PurchaseItemId == "0")
            {
                pitem                  = new FA_PurchaseItem();
                pitem.PurchaseId       = Convert.ToInt32(PurchaseId);
                pitem.OrganizationId   = orgid;// orgid;
                pitem.AssetItemId      = Convert.ToInt32(AssetItemId);
                pitem.PurchaseQuantity = Convert.ToInt32(PurchaseQuantity);
                pitem.Rate             = Convert.ToDecimal(Rate);
                pitem.Total            = Convert.ToDecimal(Total);
                pitem.RegisterToAsset  = RegisterToAsset == "N" ? false : true;
                pitem.EnteredBy        = uid;
                pitem.IsDeleted        = false;
                pitem.EnteredDate      = DateTime.Now;
                int pid = db.AddAssetPurchaseItem(pitem);
                return(Json(new { result = pid }));
            }
            else
            {
                pitem                  = db.GetPurchaseItemById(orgid, Convert.ToInt32(PurchaseItemId));
                pitem.PurchaseId       = Convert.ToInt32(PurchaseId);
                pitem.OrganizationId   = orgid;// orgid;
                pitem.AssetItemId      = Convert.ToInt32(AssetItemId);
                pitem.PurchaseQuantity = Convert.ToInt32(PurchaseQuantity);
                pitem.Rate             = Convert.ToDecimal(Rate);
                pitem.Total            = Convert.ToDecimal(Total);
                pitem.RegisterToAsset  = RegisterToAsset == "N" ? false : true;
                //pitem.Rate = Convert.ToDecimal(Rate);
                //pitem.Total = Convert.ToDecimal(Total);
                pitem.LastUpdatedBy   = uid;
                pitem.IsDeleted       = false;
                pitem.LastUpdatedDate = DateTime.Now;
                db.EditAssetPurchaseItem(pitem);
                return(Json(new { result = PurchaseItemId }));
            }
        }
        public int AddAssetPurchaseItem(FA_PurchaseItem purchaseitem)
        {
            string sql = " insert into FA_PurchaseItem (" +
                         "OrganizationId, PurchaseId, AssetItemId, PurchaseQuantity, Rate, Total," +
                         " RegisterToAsset, ReturnedQuantity, ReturnedBy, ReturnedDate, IsVerified, VerifiedBy," +
                         " VerifiedDate, EnteredBy, EnteredDate, LastUpdatedBy, LastUpdatedDate, IsDeleted," +
                         "  DeletedDate, DeletedBy" +
                         ")" +
                         " values " +
                         " (" +
                         "@OrganizationId, @PurchaseId, @AssetItemId, @PurchaseQuantity, @Rate, @Total," +
                         " @RegisterToAsset, 0, 0, null, @IsVerified, @VerifiedBy," +
                         " @VerifiedDate, @EnteredBy, @EnteredDate, 0, null, 0," +
                         "  null, 0 " +
                         ")  SELECT CAST(SCOPE_IDENTITY() as int)";

            using (var db = DbHelper.GetDBConnection())
            {
                int a = db.Query <int>(sql, purchaseitem).SingleOrDefault();
                return(a);
            }
        }
        public ActionResult Create(FormCollection frm, string[] hddrowindex)
        {
            var             ses   = sesrepo.GetSessionById((User as CustomPrincipal).UserId);
            int             orgid = ses.OrganizationId;
            int             uid   = (User as CustomPrincipal).UserId;
            FA_Purchase     pbill = new FA_Purchase();
            FA_PurchaseItem pitem;//= new INV_SoldItem();
            int             purchaseid = 0;
            var             cdate      = DateTime.Now;

            try
            {
                if (frm["PurchaseId"] == "0")
                {
                    pbill = new FA_Purchase();
                    pbill.OrganizationId = orgid;
                    pbill.VendorId       = string.IsNullOrEmpty(frm["VendorId"]) ? 0 : Convert.ToInt32(frm["VendorId"]);
                    pbill.BillNo         = frm["BillNo"];
                    pbill.BillSerialNo   = Convert.ToInt32(frm["BillSerialNo"]);
                    pbill.BillSerialNo   = Convert.ToInt32(frm["BillSerialNo"]);
                    ViewBag.BSN2         = Convert.ToInt32(frm["BillSerialNo"]) + 1;
                    pbill.BillDate       = DateTime.ParseExact(frm["BillDate"], "yyyy-MM-dd", null);
                    pbill.BillDateBS     = frm["BillDateBS"];
                    pbill.TotalAmount    = Convert.ToDecimal(frm["TotalAmount"]);
                    //pbill.VatAmount = Convert.ToDecimal(frm["VatAmount"]);

                    pbill.TotalWithVat = Convert.ToDecimal(frm["TotalWithVat"]);

                    if (frm["VatApplicable"] == "Yes")
                    {
                        pbill.VatApplicable = true;
                        pbill.VatAmount     = Convert.ToDecimal(frm["VatAmount"]);
                        pbill.VATPercent    = Convert.ToInt32(frm["VATPercent"]);
                    }
                    else
                    {
                        pbill.VatApplicable = false;
                        pbill.VatAmount     = 0;
                        pbill.VATPercent    = 0;
                    }
                    pbill.DiscountAmount = 0;// Convert.ToDecimal(frm["DiscountAmount"]);
                    pbill.EnteredBy      = uid;
                    pbill.EnteredDate    = cdate;
                    pbill.IsVerified     = true;
                    pbill.VerifiedBy     = uid;
                    pbill.VerifiedDate   = cdate;
                    pbill.IsDeleted      = false;
                    purchaseid           = db.AddAssetPurchase(pbill);
                    //purchaseid = db.AddInvetoryPurchase(pbill);
                }
                else
                {
                    purchaseid = Convert.ToInt32(frm["PurchaseId"]);
                    pbill      = db.GetPurchaseById(orgid, purchaseid);
                    //pbill.OrganizationId = orgid;
                    pbill.VendorId     = string.IsNullOrEmpty(frm["VendorId"]) ? 0 : Convert.ToInt32(frm["VendorId"]);
                    pbill.BillNo       = frm["BillNo"];
                    pbill.BillSerialNo = Convert.ToInt32(frm["BillSerialNo"]);
                    ViewBag.BSN2       = Convert.ToInt32(frm["BillSerialNo"]) + 1;
                    pbill.BillDate     = DateTime.ParseExact(frm["BillDate"], "yyyy-MM-dd", null);
                    pbill.BillDateBS   = frm["BillDateBS"];
                    pbill.TotalAmount  = Convert.ToDecimal(frm["TotalAmount"]);
                    //pbill.VatAmount = Convert.ToDecimal(frm["VatAmount"]);
                    pbill.TotalWithVat = Convert.ToDecimal(frm["TotalWithVat"]);

                    if (frm["VatApplicable"] == "Yes")
                    {
                        pbill.VatApplicable = true;
                        pbill.VatAmount     = Convert.ToDecimal(frm["VatAmount"]);
                        pbill.VATPercent    = Convert.ToInt32(frm["VATPercent"]);
                    }
                    else
                    {
                        pbill.VatApplicable = false;
                        pbill.VatAmount     = 0;
                        pbill.VATPercent    = 0;
                    }
                    pbill.DiscountAmount  = 0;
                    pbill.LastUpdatedBy   = uid;
                    pbill.LastUpdatedDate = cdate;
                    pbill.IsDeleted       = false;
                    db.EditAssetPurchase(pbill);
                }
                if (hddrowindex != null)
                {
                    //INV_SoldItem item;
                    foreach (var indx in hddrowindex)
                    {
                        if (frm["PurchaseItemId-" + indx] == "0")
                        {
                            pitem = new FA_PurchaseItem();
                            pitem.OrganizationId   = orgid;
                            pitem.PurchaseId       = purchaseid;
                            pitem.AssetItemId      = Convert.ToInt32(frm["AssetItemId-" + indx]);
                            pitem.PurchaseQuantity = Convert.ToInt32(frm["PurchaseQuantity-" + indx]);
                            pitem.Rate             = Convert.ToDecimal(frm["Rate-" + indx]);
                            pitem.Total            = Convert.ToDecimal(frm["Total-" + indx]);
                            pitem.RegisterToAsset  = string.IsNullOrEmpty(frm["RegisterToAsset-" + indx]) ? false : true;
                            pitem.IsReturned       = false;
                            pitem.IsVerified       = true;
                            pitem.VerifiedBy       = uid;
                            pitem.VerifiedDate     = cdate;
                            pitem.IsDeleted        = false;
                            pitem.EnteredBy        = uid;
                            pitem.EnteredDate      = cdate;
                            pitem.OrganizationId   = orgid;
                            db.AddAssetPurchaseItem(pitem);
                        }
                        else
                        {
                            pitem = db.GetPurchaseItemById(orgid, Convert.ToInt32(frm["PurchaseItemId-" + indx]));
                            pitem.OrganizationId   = orgid;
                            pitem.PurchaseId       = purchaseid;
                            pitem.AssetItemId      = Convert.ToInt32(frm["AssetItemId-" + indx]);
                            pitem.PurchaseQuantity = Convert.ToInt32(frm["PurchaseQuantity-" + indx]);
                            pitem.Rate             = Convert.ToDecimal(frm["Rate-" + indx]);
                            pitem.Total            = Convert.ToDecimal(frm["Total-" + indx]);
                            pitem.RegisterToAsset  = string.IsNullOrEmpty(frm["RegisterToAsset-" + indx]) ? false : true;
                            pitem.IsReturned       = false;
                            pitem.IsVerified       = true;
                            pitem.VerifiedBy       = uid;
                            pitem.VerifiedDate     = cdate;
                            pitem.IsDeleted        = false;
                            pitem.LastUpdatedBy    = uid;
                            pitem.LastUpdatedDate  = cdate;
                            pitem.OrganizationId   = orgid;
                            db.EditAssetPurchaseItem(pitem);
                        }
                    }
                }
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                ViewBag.CategoryList   = ddl.GetAssetCategoryList(orgid);
                ViewBag.AssetItemList  = ddl.GetAssetItemList(orgid);
                ViewBag.UnitList       = ddl.GetUnitList(orgid);
                ViewBag.VendorId       = new SelectList(ddl.GetInvVenodrList(orgid), "Id", "Name");
                ViewBag.OrganizationId = orgid;
                return(View());
            }
        }