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> /// Builds the update SQL. /// </summary> /// <returns></returns> protected void UpdateRecord(string primaryKeyValue) { Update qryUpdate = new Update(TableSchema); foreach(TableSchema.TableColumn col in TableSchema.Columns) { if(col.DataType != DbType.Binary && Utility.IsWritableColumn(col)) { Control ctrl = FindControl(col.IsPrimaryKey ? PK_ID + col.ColumnName : col.ColumnName); if(ctrl != null) { object oVal = Utility.GetDefaultControlValue(col, ctrl, false, true); oVal = TransformBooleanAndDateValues(oVal, col.DataType); qryUpdate.Set(col).EqualTo(oVal); } } } qryUpdate.Where(TableSchema.PrimaryKey).IsEqualTo(primaryKeyValue); qryUpdate.Execute(); }