//chỉnh sửa hóa đơn + ch tiết hóa đơn
        //public static CommandResult Edit1(HOADON c, int userId, int flag, long? warehousePlace, List<string> fileList, string[] listProductId, string[] listQuantity, string[] listQuantityApprove, string[] listPrice)
        public static CommandResult Edit(RETURN_BILL c, int userId, string[] listSanphamID, string[] listSoluong, string[] listGia)
        {
            using (var context = new GST_MockProjectEntities())
            {
                using (System.Data.Entity.DbContextTransaction dbTran = context.Database.BeginTransaction())
                {
                    decimal?Tongtien = 0;

                    var HoaDon =
                        context.BILLs.Include(x => x.BILL_DETAIL).First(x => x.ID == c.ID);



                    //xóa danh sách sản phẩm cũ
                    var listwtdOld = HoaDon.BILL_DETAIL;
                    context.BILL_DETAIL.RemoveRange(listwtdOld);

                    //thêm danh sách sản phẩm mới
                    var listwtd = new List <BILL_DETAIL>();
                    for (int i = 0; i < listSanphamID.Length; i++)
                    {
                        var     SanphamID = int.Parse(listSanphamID[i]);
                        var     Soluong   = int.Parse(listSoluong[i]);
                        decimal?Giaban    = null;
                        if (listGia[i] != "")
                        {
                            Giaban   = decimal.Parse(listGia[i]);
                            Tongtien = Tongtien + Giaban;
                        }
                        var cthd = new BILL_DETAIL()
                        {
                            Product_ID = SanphamID,
                            Quantity   = Soluong,
                            Bill_ID    = c.ID,
                            Amount     = Giaban
                        };
                        listwtd.Add(cthd);
                    }
                    context.BILL_DETAIL.AddRange(listwtd);
                    //Chỉnh sửa lại thông tin hóa đơn khi sửa
                    HoaDon.UpdateBy   = userId;
                    HoaDon.UpdateDate = DateTime.Now;
                    HoaDon.Amount     = Tongtien;

                    context.SaveChanges();
                    dbTran.Commit();

                    return(new CommandResult(ResultCode.Success, "Sửa thành công"));
                }
            }
        }
        //hàm tạo mới 1 hóa đơn sẽ tự tạo các chi tiết hóa đơn
        public static CommandResult Create(RETURN_BILL c, int userId, string[] listSanphamID, string[] listSoluong, string[] listGia)

        {
            using (var context = new GST_MockProjectEntities())
            {
                using (System.Data.Entity.DbContextTransaction dbTran = context.Database.BeginTransaction())
                {
                    decimal?Tongtien = 0;
                    c.CreateBy   = userId;
                    c.Amount     = 0;
                    c.CreateDate = DateTime.Now;
                    context.RETURN_BILL.Add(c);
                    context.SaveChanges();



                    //luu chi tiet san pham
                    var listwtd = new List <BILL_DETAIL>();
                    for (var i = 0; i < listSanphamID.Length; i++)
                    {
                        decimal?price = null;
                        if (listGia[i] != "")
                        {
                            price    = decimal.Parse(listGia[i]);
                            Tongtien = Tongtien + price;
                        }

                        var wtd = new BILL_DETAIL()
                        {
                            Bill_ID    = c.ID,
                            Product_ID = int.Parse(listSanphamID[i]),
                            Quantity   = int.Parse(listSoluong[i]),
                            Amount     = price
                        };
                        listwtd.Add(wtd);
                    }

                    context.BILL_DETAIL.AddRange(listwtd);
                    c.Amount = Tongtien;
                    context.SaveChanges();
                    dbTran.Commit();
                    return(new CommandResult());
                }
            }
        }
        public ActionResult CreateEdit(RETURN_BILL model)
        {
            if (Request["txtProductIdRow"] == null)
            {
                return(Json(new CommandResult()
                {
                    Code = ResultCode.Fail, Message = "Xin vui lòng thêm sản phẩm "
                }, JsonRequestBehavior.AllowGet));
            }
            var listSanPhamID = Request.Form.GetValues("txtProductIdRow");
            var listSoLuong   = Request.Form.GetValues("txtQuantityRow");
            var listGia       = Request.Form.GetValues("txtPriceRow");

            if (model.ID == 0)
            {
                var user   = UserService.GetUserInfo();
                var result = TraHangService.Create(model, user.ID, listSanPhamID, listSoLuong, listGia);
                return
                    (Json(
                         new RedirectCommand()
                {
                    Code = result.Code, Message = result.Message, Url = Url.Action("Index", new { id = model.ID })
                },
                         JsonRequestBehavior.AllowGet));
            }
            else
            {
                var user   = UserService.GetUserInfo();
                var result = TraHangService.Edit(model, user.ID, listSanPhamID, listSoLuong, listGia);
                return
                    (Json(
                         new RedirectCommand()
                {
                    Code = result.Code, Message = result.Message, Url = Url.Action("Index", new { id = model.ID })
                },
                         JsonRequestBehavior.AllowGet));
            }
        }