public static void CapNhatSoDu(
            decimal ip_dc_id_san_pham
            , DateTime ip_dat_tu_ngay
            , DateTime ip_dat_den_ngay
            , decimal ip_dc_so_luong)
        {
            BKIQuanLyBanHangEntities db = new BKIQuanLyBanHangEntities();
            var v_lst_so_du = db.GD_SO_DU
                .Where(x => x.ID_SAN_PHAM == ip_dc_id_san_pham
                        && x.NGAY_THANG >= ip_dat_den_ngay
                        && x.NGAY_THANG <= ip_dat_den_ngay)
                .ToList();

            //Cập nhật số dư nếu đã có
            if (v_lst_so_du.Count > 0)
            {
                for (int i = 0; i < v_lst_so_du.Count; i++)
                {
                    v_lst_so_du[i].SO_LUONG += (int)ip_dc_so_luong;
                    if (v_lst_so_du[i].SO_LUONG <= 0)
                    {
                        db.GD_SO_DU.Remove(v_lst_so_du[i]);
                    }
                    db.SaveChanges();
                }
            }
            else
            {
                //Nếu chưa có số dư thì thêm mới dữ liệu số dư
                GD_SO_DU v_gd_so_du = new GD_SO_DU();
                v_gd_so_du.ID_SAN_PHAM = ip_dc_id_san_pham;
                v_gd_so_du.NGAY_THANG = ip_dat_den_ngay;
                v_gd_so_du.SO_LUONG = (int)ip_dc_so_luong;
                db.GD_SO_DU.Add(v_gd_so_du);
                db.SaveChanges();

            }
            db.Dispose();
        }