public void Insert(short IdDoituongKcb,short IdDichvu,int? IdChitietdichvu,decimal? TyleGiam,byte KieuGiamgia,string MotaThem,decimal? DonGia,decimal? PhuthuDungtuyen,int? IdLoaidoituongKcb,decimal? PhuthuTraituyen,string MaDoituongKcb,DateTime? NgayTao,string NguoiTao,DateTime? NgaySua,string NguoiSua,string MaKhoaThuchien)
        {
            QheDoituongDichvucl item = new QheDoituongDichvucl();

            item.IdDoituongKcb = IdDoituongKcb;

            item.IdDichvu = IdDichvu;

            item.IdChitietdichvu = IdChitietdichvu;

            item.TyleGiam = TyleGiam;

            item.KieuGiamgia = KieuGiamgia;

            item.MotaThem = MotaThem;

            item.DonGia = DonGia;

            item.PhuthuDungtuyen = PhuthuDungtuyen;

            item.IdLoaidoituongKcb = IdLoaidoituongKcb;

            item.PhuthuTraituyen = PhuthuTraituyen;

            item.MaDoituongKcb = MaDoituongKcb;

            item.NgayTao = NgayTao;

            item.NguoiTao = NguoiTao;

            item.NgaySua = NgaySua;

            item.NguoiSua = NguoiSua;

            item.MaKhoaThuchien = MaKhoaThuchien;

            item.Save(UserName);
        }
 private QheDoituongDichvucl CreateObjectTypeService(GridEXRow gridExRow)
 {
     QheDoituongDichvucl objectTypeService=new QheDoituongDichvucl();
     objectTypeService.DonGia = Utility.DecimaltoDbnull(
         gridExRow.Cells[QheDoituongDichvucl.Columns.DonGia].Value, 0);
     objectTypeService.PhuthuDungtuyen = Utility.DecimaltoDbnull(
         gridExRow.Cells[QheDoituongDichvucl.Columns.PhuthuDungtuyen].Value, 0);
     objectTypeService.IdChitietdichvu = Utility.Int16Dbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.IdChitietdichvu].Value);
     objectTypeService.MotaThem = gridExRow.Cells[QheDoituongDichvucl.Columns.MotaThem].Value.ToString();
     objectTypeService.IdDoituongKcb =
         Utility.Int16Dbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.IdDoituongKcb].Value, -1);
     objectTypeService.TyleGiam =
       Utility.Int16Dbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.TyleGiam].Value, -1);
     objectTypeService.KieuGiamgia =
      Utility.ByteDbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.KieuGiamgia].Value);
     return objectTypeService;
 }
        private void SaveAll()
        {
            try
            {
                Utility.SetMsg(lblMsg, "", false);
                decimal GiaDV = LayGiaDV();
                int ServiceDetailId = -1;
                decimal GiaPhuThu = 0;
                decimal GiaBHYT = LayGiaBHYT();
                string KTH = "ALL";

                foreach (Janus.Windows.GridEX.GridEXRow gridExRow in grdQhe.GetRows())
                {
                    ServiceDetailId = Utility.Int32Dbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.IdChitietdichvu].Value, -1);
                    SqlQuery q =
                        new Select().From(QheDoituongDichvucl.Schema).Where(QheDoituongDichvucl.Columns.IdChitietdichvu).
                            IsEqualTo(Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.IdChitietdichvu].Value, -1)).And(
                                QheDoituongDichvucl.Columns.MaDoituongKcb).IsEqualTo(Utility.sDbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.MaDoituongKcb].Value, "-1"))
                                .And(QheDoituongDichvucl.Columns.MaKhoaThuchien).IsEqualTo(Utility.sDbnull(cboKhoaTH.SelectedValue, ""));
                                //.Or(QheDoituongDichvucl.Columns.MaDoituongKcb).IsEqualTo("BHYT");
                    GiaPhuThu = Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.PhuthuTraituyen].Value, 0);
                    int ObjectTypeType = Utility.Int32Dbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.IdLoaidoituongKcb].Value, 0);

                    //if (ObjectTypeType == 0) KTH = "ALL"; else
                    KTH = Utility.sDbnull(cboKhoaTH.SelectedValue, "ALL");
                    //Nếu có lưu đối tượng BHYT và tồn tại giá DV thì tự động tính phụ thu trái tuyến cho đối tượng BHYT đó
                    if (gridExRow.Cells[QheDoituongDichvucl.Columns.IdLoaidoituongKcb].Value.ToString() == "0" && GiaDV > 0)
                    {
                        GiaBHYT = Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.DonGia].Value, 0);
                        if (PropertyLib._QheGiaCLSProperties.TudongDieuChinhGiaPTTT)
                            GiaPhuThu = GiaDV - GiaBHYT > 0 ? GiaDV - GiaBHYT : 0;
                    }
                    //Nếu đối tượng BHYT có tồn tại thì update lại thông tin trong đó có giá phụ thu trái tuyến
                    if (q.GetRecordCount() > 0)
                    {

                        new Update(QheDoituongDichvucl.Schema)
                            .Set(QheDoituongDichvucl.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                            .Set(QheDoituongDichvucl.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                            .Set(QheDoituongDichvucl.Columns.IdDichvu).EqualTo(
                                GetService_ID(Utility.Int32Dbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.IdChitietdichvu].Value, -1)))
                            .Set(QheDoituongDichvucl.Columns.DonGia).EqualTo(
                                Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.DonGia].Value, 0))
                            .Set(QheDoituongDichvucl.Columns.PhuthuDungtuyen).EqualTo(
                                Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.PhuthuDungtuyen].Value, 0))
                            .Set(QheDoituongDichvucl.Columns.PhuthuTraituyen).EqualTo(GiaPhuThu)
                            .Set(QheDoituongDichvucl.Columns.MotaThem).EqualTo(
                                Utility.sDbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.MotaThem].Value, ""))
                            .Where(QheDoituongDichvucl.Columns.IdChitietdichvu).IsEqualTo(ServiceDetail_ID)
                            .And(QheDoituongDichvucl.Columns.IdLoaidoituongKcb).IsEqualTo(
                                Utility.Int32Dbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.IdLoaidoituongKcb].Value, -1))
                                .And(QheDoituongDichvucl.Columns.MaKhoaThuchien).IsEqualTo(KTH)
                                .Execute();

                    }
                    else
                    {
                        DmucDoituongkcbCollection objectTypeCollection =
                            new DmucDoituongkcbController().FetchByQuery(
                                DmucDoituongkcb.CreateQuery().AddWhere(DmucDoituongkcb.Columns.MaDoituongKcb,
                                                                   Comparison.Equals,
                                                                   Utility.sDbnull(gridExRow.Cells[DmucDoituongkcb.Columns.MaDoituongKcb].Value, "-1")));

                        foreach (DmucDoituongkcb lObjectType in objectTypeCollection)
                        {
                            QheDoituongDichvucl _newItems = new QheDoituongDichvucl();
                            _newItems.IdDoituongKcb = lObjectType.IdDoituongKcb;
                            _newItems.IdDichvu = Utility.Int16Dbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.IdDichvu].Value, -1);
                            _newItems.IdChitietdichvu = Utility.Int32Dbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.IdChitietdichvu].Value, -1);
                            _newItems.TyleGiam = 0;
                            _newItems.KieuGiamgia = (byte)0;
                            _newItems.DonGia = Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.DonGia].Value, 0);
                            _newItems.PhuthuDungtuyen = Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.PhuthuDungtuyen].Value, 0);
                            _newItems.PhuthuTraituyen = GiaPhuThu;
                            _newItems.IdLoaidoituongKcb = Utility.Int32Dbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.IdLoaidoituongKcb].Value, -1);
                            _newItems.MaDoituongKcb = lObjectType.MaDoituongKcb;

                            _newItems.NguoiTao = globalVariables.UserName;
                            _newItems.NgayTao = globalVariables.SysDate;
                            _newItems.MaKhoaThuchien = KTH;
                            _newItems.IsNew = true;
                            _newItems.Save();
                            gridExRow.BeginEdit();
                            gridExRow.Cells[QheDoituongDichvucl.Columns.IdQuanhe].Value = _newItems.IdQuanhe;
                            gridExRow.EndEdit();

                        }
                    }
                    gridExRow.BeginEdit();
                    gridExRow.Cells[QheDoituongDichvucl.Columns.PhuthuTraituyen].Value = GiaPhuThu;
                    gridExRow.EndEdit();
                    grdQhe.UpdateData();
                    //Tự động update giá dịch vụ cho tất cả các khoa là giống nhau và giống giá sửa cuối cùng
                    if (PropertyLib._QheGiaCLSProperties.TudongDieuChinhGiaDichVu)
                    {
                        SqlQuery sqlQuery = new Select().From(DmucDoituongkcb.Schema)
                            .Where(DmucDoituongkcb.Columns.IdLoaidoituongKcb).IsEqualTo(1)
                            .And(DmucDoituongkcb.Columns.MaDoituongKcb).IsEqualTo(Utility.sDbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.MaDoituongKcb].Value, "-1"));
                        DmucDoituongkcb objectType = sqlQuery.ExecuteSingle<DmucDoituongkcb>();
                        if (objectType != null)
                        {
                            new Update(DmucDichvuclsChitiet.Schema)
                                .Set(DmucDichvuclsChitiet.Columns.DonGia)
                                .EqualTo(Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.DonGia].Value, 0))
                                .Where(DmucDichvuclsChitiet.Columns.IdChitietdichvu)
                                .IsEqualTo(Utility.Int32Dbnull(gridExRow.Cells[QheDoituongDichvucl.Columns.IdChitietdichvu].Value, -1)).Execute();
                        }
                    }
                }
                new Update(DmucDichvuclsChitiet.Schema).Set(DmucDichvuclsChitiet.Columns.DonGia).EqualTo(GiaDV)
                   .Set(DmucDichvuclsChitiet.Columns.GiaBhyt).EqualTo(GiaBHYT)
                   .Where(DmucDichvuclsChitiet.Columns.IdChitietdichvu).IsEqualTo(Utility.Int32Dbnull(grdList.CurrentRow.Cells[QheDoituongDichvucl.Columns.IdChitietdichvu].Value, -1))
                   .Execute();
                //Cập nhật giá BHYT cho các khoa thực hiện
                 if (PropertyLib._QheGiaCLSProperties.TudongDieuChinhGiaBHYT)
                    {
                        if (GiaBHYT >= 0)
                        {
                            QheDoituongDichvuclCollection lstItems =
                                new Select().From(QheDoituongDichvucl.Schema).
                                Where(QheDoituongDichvucl.Columns.IdChitietdichvu).
                                      IsEqualTo(ServiceDetailId)
                                      .And(QheDoituongDichvucl.MaKhoaThuchienColumn).IsNotEqualTo(KTH).ExecuteAsCollection<QheDoituongDichvuclCollection>();
                            foreach (QheDoituongDichvucl item in lstItems)
                            {
                                int ObjectTypeType = item.IdLoaidoituongKcb.Value;
                                if (ObjectTypeType == 1)
                                    GiaDV = item.DonGia.Value;
                            }
                            GiaPhuThu = 0;
                            foreach (QheDoituongDichvucl item in lstItems)
                            {
                                int ObjectTypeType = item.IdLoaidoituongKcb.Value;
                                if (ObjectTypeType.ToString() == "0" && GiaDV > 0)
                                {
                                        GiaPhuThu = GiaDV - GiaBHYT > 0 ? GiaDV - GiaBHYT : 0;
                                        Update _update = new Update(QheDoituongDichvucl.Schema).Set(QheDoituongDichvucl.DonGiaColumn).EqualTo(GiaBHYT);
                                        if (PropertyLib._QheGiaCLSProperties.TudongDieuChinhGiaPTTT)
                                            _update.Set(QheDoituongDichvucl.PhuthuTraituyenColumn).EqualTo(GiaPhuThu);
                                 _update.Where(QheDoituongDichvucl.IdLoaidoituongKcbColumn).IsEqualTo(0).And(QheDoituongDichvucl.IdChitietdichvuColumn).IsEqualTo(ServiceDetailId)
                                 .And(QheDoituongDichvucl.MaKhoaThuchienColumn).IsNotEqualTo(KTH)
                                 .Execute();
                                }
                            }
                        }
                }
                Utility.SetMsg(lblMsg, "Bạn thực hiện cập nhập giá thành công",false);
            }
            catch (Exception exception)
            {
                Utility.SetMsg(lblMsg, "Lỗi trong quá trình cập nhập thông tin", false);
            }
        }
        /// <summary>
        /// HÀM THUWCJHIEENJ KHỞI TẠO CHI TIẾT ĐỐI TƯỢNG CHI TIÊT DỊCH VỤ
        /// </summary>
        /// <returns></returns>
        private QheDoituongDichvucl CreateDmucDoituongkcbDetailService()
        {
            var objectTypeService = new QheDoituongDichvucl();

            return objectTypeService;
        }