/// <summary> /// HÀM THỰC HIỆN VIECJ CHO PHÉP CẬP NHẬP ĐƠN THUỐC /// </summary> /// <returns></returns> public ActionResult Linhthuocnoitru(KcbDonthuoc objDonthuoc, TPhieuXuatthuocBenhnhan objXuatBnhan, int ID_KHO_XUAT, DateTime ngaythuchien) { try { using (var scope = new TransactionScope()) { string THUOC_NOITRU_XACNHANDALINH_KHIXACNHANDONTHUOC = THU_VIEN_CHUNG.Laygiatrithamsohethong("THUOC_NOITRU_XACNHANDALINH_KHIXACNHANDONTHUOC", "0", false); HisDuocProperties hisDuocProperties = new HisDuocProperties(); objXuatBnhan.IdBenhnhan = objDonthuoc.IdBenhnhan; objXuatBnhan.MaLuotkham = objDonthuoc.MaLuotkham; objXuatBnhan.MaPhieu = THU_VIEN_CHUNG.MaPhieuXuatBN(); objXuatBnhan.Noitru = Utility.ByteDbnull(objDonthuoc.Noitru); objXuatBnhan.TenKhongdau = Utility.UnSignedCharacter(objXuatBnhan.TenBenhnhan); objXuatBnhan.IdDonthuoc = Utility.Int32Dbnull(objDonthuoc.IdDonthuoc); objXuatBnhan.IsNew = true; objXuatBnhan.Save(); Int32 PtramBHYT = 0; SqlQuery sqlQuery = new Select().From(KcbLuotkham.Schema).Where( KcbLuotkham.Columns.MaLuotkham).IsEqualTo(objDonthuoc.MaLuotkham) .And(KcbLuotkham.Columns.IdBenhnhan).IsEqualTo(objDonthuoc.IdBenhnhan); KcbLuotkham objLuotkham = sqlQuery.ExecuteSingle<KcbLuotkham>(); if (objLuotkham != null) { PtramBHYT = Utility.Int32Dbnull(objLuotkham.PtramBhyt); } sqlQuery = new Select().From(TPhieuCapphatChitiet.Schema) .Where(TPhieuCapphatChitiet.Columns.IdCapphat).IsEqualTo(objXuatBnhan.IdCapphat) .And(TPhieuCapphatChitiet.Columns.IdDonthuoc).IsEqualTo(objDonthuoc.IdDonthuoc); TPhieuCapphatChitietCollection objDPhieuCapphatCtCollection = sqlQuery.ExecuteAsCollection<TPhieuCapphatChitietCollection>(); foreach (TPhieuCapphatChitiet objCapphatDetail in objDPhieuCapphatCtCollection) { KcbDonthuocChitiet objDetail = new Select().From(KcbDonthuocChitiet.Schema) .Where(KcbDonthuocChitiet.Columns.IdChitietdonthuoc).IsEqualTo(objCapphatDetail.IdChitietdonthuoc) .ExecuteSingle<KcbDonthuocChitiet>(); if (objDetail == null) return ActionResult.Exceed; objDetail.SetColumnValue("id_kho", ID_KHO_XUAT); ActionResult actionResult = TruThuocTrongKho_Noitru(objDonthuoc,objCapphatDetail, objDetail, objXuatBnhan, ID_KHO_XUAT, ngaythuchien); switch (actionResult) { case ActionResult.NotEnoughDrugInStock: return actionResult; } TXuatthuocTheodon objThuocCt = new TXuatthuocTheodon(); objThuocCt.IdPhieuXuat = Utility.Int32Dbnull(objXuatBnhan.IdPhieu); objThuocCt.IdThuoc = Utility.Int32Dbnull(objCapphatDetail.IdThuoc); objThuocCt.NgayTao = globalVariables.SysDate; objThuocCt.SoLuong = objCapphatDetail.SoLuong; objThuocCt.NguoiTao = globalVariables.UserName; objThuocCt.PhuThu = Utility.DecimaltoDbnull(objDetail.PhuThu); objThuocCt.DonGia = Utility.DecimaltoDbnull(objDetail.DonGia); objThuocCt.BnhanChitra = Utility.DecimaltoDbnull(objDetail.BnhanChitra); objThuocCt.BhytChitra = Utility.DecimaltoDbnull(objDetail.BhytChitra); objThuocCt.ChiDan = Utility.sDbnull(objDetail.MotaThem); objThuocCt.ChidanThem = Utility.sDbnull(objDetail.ChidanThem); objThuocCt.SolanDung = Utility.sDbnull(objDetail.SolanDung); objThuocCt.SoluongDung = Utility.sDbnull(objDetail.SoluongDung); objThuocCt.CachDung = Utility.sDbnull(objDetail.CachDung); objThuocCt.PtramBhyt = PtramBHYT; objThuocCt.IdChitietdonthuoc = Utility.Int32Dbnull(objCapphatDetail.IdChitietdonthuoc); objThuocCt.IdDonthuoc = Utility.Int32Dbnull(objCapphatDetail.IdThuoc); objThuocCt.IsNew = true; objThuocCt.Save(); if (THUOC_NOITRU_XACNHANDALINH_KHIXACNHANDONTHUOC == "1") { objCapphatDetail.ThucLinh = objCapphatDetail.SoLuong; objCapphatDetail.IsNew = false; objCapphatDetail.MarkOld(); objCapphatDetail.Save(); } } byte DA_LINH = (byte)(THUOC_NOITRU_XACNHANDALINH_KHIXACNHANDONTHUOC == "1" ? 1 : 0); new Update(TPhieuCapphatChitiet.Schema) .Set(TPhieuCapphatChitiet.Columns.DaLinh).EqualTo(DA_LINH) .Set(TPhieuCapphatChitiet.Columns.IdPhieuxuatthuocBenhnhan).EqualTo(objXuatBnhan.IdPhieu) .Where(TPhieuCapphatChitiet.Columns.IdCapphat).IsEqualTo(objXuatBnhan.IdCapphat).Execute(); sqlQuery = new Select().From(KcbDonthuocChitiet.Schema) .Where(KcbDonthuocChitiet.Columns.IdDonthuoc).IsEqualTo(objDonthuoc.IdDonthuoc) .And(KcbDonthuocChitiet.Columns.TrangThai).IsEqualTo(0); int status = sqlQuery.GetRecordCount() <= 0 ? 1 : 0; new Update(KcbDonthuoc.Schema) .Set(KcbDonthuoc.Columns.NgaySua).EqualTo(globalVariables.SysDate) .Set(KcbDonthuoc.Columns.NguoiSua).EqualTo(globalVariables.UserName) .Set(KcbDonthuoc.Columns.TrangThai).EqualTo(status) .Where(KcbDonthuoc.Columns.IdDonthuoc).IsEqualTo(objDonthuoc.IdDonthuoc).Execute(); scope.Complete(); } return ActionResult.Success; } catch (Exception exception) { log.Error("loi trong qua trinh cap don thuoc {0}", exception); return ActionResult.Error; } }