private void SaveAll() { try { Utility.SetMsg(lblMsg, "", false); decimal GiaDV = LayGiaDV(); int idThuoc = -1; decimal GiaPhuThu = 0; decimal GiaBHYT = LayGiaBHYT(); string KTH = "ALL"; foreach (Janus.Windows.GridEX.GridEXRow gridExRow in grdQhe.GetRows()) { idThuoc = Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdThuoc].Value, -1); KTH = Utility.sDbnull(cboKhoaTH.SelectedValue, "-1") == "-1" ? "ALL" : Utility.sDbnull(cboKhoaTH.SelectedValue, "-1"); SqlQuery q = new Select().From(QheDoituongThuoc.Schema).Where(QheDoituongThuoc.Columns.IdThuoc). IsEqualTo(Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdThuoc].Value, -1)).And( QheDoituongThuoc.Columns.MaDoituongKcb).IsEqualTo(Utility.sDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.MaDoituongKcb].Value, "-1")); //.And(QheDoituongThuoc.Columns.MaKhoaThuchien).IsEqualTo(KTH); //.Or(QheDoituongThuoc.Columns.MaDoituongKcb).IsEqualTo("BHYT"); GiaPhuThu = Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.PhuthuTraituyen].Value, 0); int v_IdLoaidoituongKcb = Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdLoaidoituongKcb].Value, 0); //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[QheDoituongThuoc.Columns.IdLoaidoituongKcb].Value.ToString() == "0" && GiaDV > 0) { GiaBHYT = Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.DonGia].Value, 0); if (PropertyLib._QheGiaThuocProperties.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(QheDoituongThuoc.Schema) .Set(QheDoituongThuoc.Columns.NgaySua).EqualTo(globalVariables.SysDate) .Set(QheDoituongThuoc.Columns.NguoiSua).EqualTo(globalVariables.UserName) .Set(QheDoituongThuoc.Columns.IdLoaithuoc).EqualTo( Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdLoaithuoc].Value, -1)) .Set(QheDoituongThuoc.Columns.DonGia).EqualTo( Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.DonGia].Value, 0)) .Set(QheDoituongThuoc.Columns.PhuthuDungtuyen).EqualTo( Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.PhuthuDungtuyen].Value, 0)) .Set(QheDoituongThuoc.Columns.PhuthuTraituyen).EqualTo(GiaPhuThu) .Set(QheDoituongThuoc.Columns.MaKhoaThuchien).EqualTo(KTH) .Where(QheDoituongThuoc.Columns.IdQuanhe).IsEqualTo( Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdQuanhe].Value, "-1")) .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) { QheDoituongThuoc _newItems = new QheDoituongThuoc(); _newItems.IdDoituongKcb = lObjectType.IdDoituongKcb; _newItems.IdLoaithuoc = Utility.Int16Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdLoaithuoc].Value, -1); _newItems.IdThuoc = Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdThuoc].Value, -1); _newItems.TyleGiamgia = 0; _newItems.KieuGiamgia = "%"; _newItems.DonGia = Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.DonGia].Value, 0); _newItems.PhuthuDungtuyen = Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.PhuthuDungtuyen].Value, 0); _newItems.PhuthuTraituyen = GiaPhuThu; _newItems.IdLoaidoituongKcb = Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.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[QheDoituongThuoc.Columns.IdQuanhe].Value = _newItems.IdQuanhe; gridExRow.EndEdit(); } } gridExRow.BeginEdit(); gridExRow.Cells[QheDoituongThuoc.Columns.PhuthuTraituyen].Value = GiaPhuThu; gridExRow.EndEdit(); grdQhe.UpdateData(); //Nếu có chỉnh giá dịch vụ-->Tự động chỉnh giá danh mục thuốc if (PropertyLib._QheGiaThuocProperties.TudongDieuChinhGiaDichVu) { SqlQuery sqlQuery = new Select().From(DmucDoituongkcb.Schema) .Where(DmucDoituongkcb.Columns.IdLoaidoituongKcb).IsEqualTo(1) .And(DmucDoituongkcb.Columns.MaDoituongKcb).IsEqualTo(Utility.sDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.MaDoituongKcb].Value, "-1")); DmucDoituongkcb objectType = sqlQuery.ExecuteSingle<DmucDoituongkcb>(); if (objectType != null) { new Update(DmucThuoc.Schema) .Set(DmucThuoc.Columns.DonGia) .EqualTo(Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.DonGia].Value, 0)) .Where(DmucThuoc.Columns.IdThuoc) .IsEqualTo(Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdThuoc].Value, -1)).Execute(); } } } new Update(DmucThuoc.Schema).Set(DmucThuoc.Columns.DonGia).EqualTo(GiaDV) .Set(DmucThuoc.Columns.GiaBhyt).EqualTo(GiaBHYT) .Where(DmucThuoc.Columns.IdThuoc).IsEqualTo(Utility.Int32Dbnull(grdList.CurrentRow.Cells[DmucThuoc.Columns.IdThuoc].Value, -1)) .Execute(); //Cập nhật giá BHYT cho các khoa khác if (PropertyLib._QheGiaThuocProperties.TudongDieuChinhGiaBHYT) { if (GiaBHYT >= 0) { QheDoituongThuocCollection lstItems = new Select().From(QheDoituongThuoc.Schema). Where(QheDoituongThuoc.Columns.IdThuoc). IsEqualTo(idThuoc) .And(QheDoituongThuoc.MaKhoaThuchienColumn).IsNotEqualTo(KTH).ExecuteAsCollection<QheDoituongThuocCollection>(); foreach (QheDoituongThuoc item in lstItems) { int v_IdLoaidoituongKcb = item.IdLoaidoituongKcb; if (v_IdLoaidoituongKcb == 1) GiaDV = item.DonGia; } GiaPhuThu = 0; foreach (QheDoituongThuoc item in lstItems) { int v_IdLoaidoituongKcb = item.IdLoaidoituongKcb; if (v_IdLoaidoituongKcb.ToString() == "0" && GiaDV > 0)//Nếu là đối tượng BHYT { GiaPhuThu = GiaDV - GiaBHYT > 0 ? GiaDV - GiaBHYT : 0; Update _update = new Update(QheDoituongThuoc.Schema).Set(QheDoituongThuoc.DonGiaColumn).EqualTo(GiaBHYT); if (PropertyLib._QheGiaThuocProperties.TudongDieuChinhGiaPTTT) _update.Set(QheDoituongThuoc.PhuthuTraituyenColumn).EqualTo(GiaPhuThu); _update.Where(QheDoituongThuoc.IdLoaidoituongKcbColumn).IsEqualTo(0).And(QheDoituongThuoc.IdThuocColumn).IsEqualTo(idThuoc) .And(QheDoituongThuoc.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> /// Thực hiện nghiệp vụ Update dữ liệu /// </summary> private void PerformUpdateAction() { //Create Again to ignore Where Clause m_Query = DmucDoituongkcb.CreateQuery(); //Gọi Business cập nhật dữ liệu int v_intObjectTypeID = Convert.ToInt32(txtID.Text); //Kiểm tra trùng tên đối tượng và cảnh báo DmucDoituongkcbCollection v_arrSameNameObject = new DmucDoituongkcbController() .FetchByQuery(m_Query.AddWhere(DmucDoituongkcb.Columns.TenDoituongKcb,Comparison.Equals, txtName.Text.Trim().ToUpper()) .AND(DmucDoituongkcb.Columns.IdDoituongKcb, Comparison.NotEquals, v_intObjectTypeID)); if (v_arrSameNameObject.Count > 0) { if (!Utility.AcceptQuestion("Đã có đối tượng có tên:" + txtName.Text.Trim() + ". Bạn có muốn tiếp tục ghi hay không?", "Cảnh báo", true)) return; } int actionResult = CreateObjectType(); if (actionResult >-1) { m_DataSource.Sort(DmucDoituongkcb.Columns.SttHthi, true); ProcessData1(); //Return to the InitialStatus m_enAction = action.FirstOrFinished; //Nhảy đến bản ghi vừa cập nhật trên lưới. Do txtID chưa bị reset nên dùng luôn Utility.GotoNewRowJanus(grdList,DmucDoituongkcb.Columns.IdLoaidoituongKcb, txtID.Text.Trim()); SetControlStatus(); Utility.ShowMsg("Cập nhật dữ liệu thành công."); }else { Utility.ShowMsg("Bạn gặp lỗi trong quá trình cập nhập", "Thông báo"); return; } }
void TaogiathuocQhe() { try { if (!Utility.AcceptQuestion("Bạn có chắc chắn tạo dữ liệu test giá thuốc quan hệ cho toàn bộ thuốc trong kho", "cảnh báo", true)) return; DmucThuocCollection lstThuoc = new DmucThuocController().FetchAll(); DmucDoituongkcbCollection lstdoituong = new DmucDoituongkcbController().FetchAll(); Random rnd = new Random(); foreach(DmucThuoc _thuoc in lstThuoc) { foreach (DmucDoituongkcb _doituong in lstdoituong) { QheDoituongThuoc _newitem = new QheDoituongThuoc(); _newitem.IdDoituongKcb = _doituong.IdDoituongKcb; _newitem.IdLoaithuoc = _thuoc.IdLoaithuoc; _newitem.IdThuoc = _thuoc.IdThuoc; _newitem.TyleGiamgia = 0; _newitem.KieuGiamgia = "%"; _newitem.DonGia = rnd.Next(1000, 5000); _newitem.PhuthuDungtuyen = 0; _newitem.IdLoaidoituongKcb = _doituong.IdLoaidoituongKcb; _newitem.PhuthuTraituyen = 0; _newitem.MaDoituongKcb = _doituong.MaDoituongKcb; _newitem.MaKhoaThuchien = "ALL"; _newitem.NguoiTao = globalVariables.UserName; _newitem.NgayTao = globalVariables.SysDate; _newitem.NguoiSua = globalVariables.UserName; _newitem.NgaySua = globalVariables.SysDate; _newitem.IsNew = true; _newitem.Save(); } } } catch { } }
/// <summary> /// Thực hiện nghiệp vụ Insert dữ liệu /// </summary> private void PerformInsertAction() { //Kiểm tra trùng tên đối tượng và cảnh báo DmucDoituongkcbCollection v_arrSameNameObject = new DmucDoituongkcbController().FetchByQuery(m_Query.AddWhere(DmucDoituongkcb.Columns.TenDoituongKcb,txtName.Text.Trim().ToUpper())); if (v_arrSameNameObject.Count > 0) { if (!Utility.AcceptQuestion("Đã có đối tượng có tên:" + txtName.Text.Trim() + ". Bạn có muốn tiếp tục ghi hay không?", "Cảnh báo", true)) { //Create Again to ignore Where Clause txtName.Focus(); m_Query = DmucDoituongkcb.CreateQuery(); return; } } //Create Again to ignore Where Clause m_Query = DmucDoituongkcb.CreateQuery(); // Lấy về MaxID vừa được thêm vào CSDL int actionResult = CreateObjectType(); if (actionResult > 0) { ProcessData(actionResult); //Return to the InitialStatus m_enAction = action.FirstOrFinished; //Nhảy đến bản ghi vừa thêm mới trên lưới. Do txtID chưa bị reset nên dùng luôn Utility.GotoNewRowJanus(grdList, DmucDoituongkcb.Columns.IdLoaidoituongKcb, actionResult.ToString()); Utility.ShowMsg("Thêm mới dữ liệu thành công!"); SetControlStatus(); this.Activate(); } else//Có lỗi xảy ra Utility.ShowMsg("Thêm mới không thành công. Mời bạn xem lại"); }