/// <summary> /// hàm thực hiện việc thêm phiếu nhập kho thuốc /// </summary> private void ThemPhieuthanhly() { TPhieuNhapxuatthuoc objPhieuNhap = CreatePhieuNhapKho(); ActionResult actionResult = new XuatThuoc().ThemPhieuXuatKho(objPhieuNhap, CreateArrPhieuChiTiet()); switch (actionResult) { case ActionResult.Success: txtIDPhieuNhapKho.Text = Utility.sDbnull(objPhieuNhap.IdPhieu); txtMaPhieu.Text = Utility.sDbnull(objPhieuNhap.MaPhieu); TPhieuNhapxuatthuoc objPhieu = TPhieuNhapxuatthuoc.FetchByID(Utility.Int32Dbnull(txtIDPhieuNhapKho.Text)); DataRow newDr = p_mDataPhieuNhapKho.NewRow(); Utility.FromObjectToDatarow(objPhieu, ref newDr); TDmucKho objKho = TDmucKho.FetchByID(Utility.Int32Dbnull(cboKhohuy.SelectedValue, -1)); if (objKho != null) { newDr["ten_khoxuat"] = Utility.sDbnull(objKho.TenKho); } p_mDataPhieuNhapKho.Rows.Add(newDr); Utility.GonewRowJanus(grdList, TPhieuNhapxuatthuoc.Columns.IdPhieu, Utility.sDbnull(txtIDPhieuNhapKho.Text)); //Utility.ShowMsg("Bạn thêm mới phiếu chuyển kho thành công", "Thông báo"); m_enAction = action.Insert; b_Cancel = true; this.Close(); break; case ActionResult.Error: Utility.ShowMsg("Lỗi trong quá trình thêm phiếu", "Thông báo lỗi", MessageBoxIcon.Error); break; } }
private void cmdHuychuyenkho_Click(object sender, EventArgs e) { try { cmdHuychuyenkho.Enabled = false; Utility.SetMsg(uiStatusBar2.Panels["MSG"], "", false); if (Utility.AcceptQuestion("Bạn có chắc chắn muốn hủy xác nhận phiếu chuyển kho đang chọn hay không?", "Thông báo", true)) { int IdPhieu = Utility.Int32Dbnull(grdList.GetValue(TPhieuNhapxuatthuoc.Columns.IdPhieu), -1); string khoxuat = Utility.sDbnull(grdList.CurrentRow.Cells["ten_khoxuat"].Value, ""); string khonhap = Utility.sDbnull(grdList.CurrentRow.Cells["ten_khonhap"].Value, ""); TPhieuNhapxuatthuoc objTPhieuNhapxuatthuoc = TPhieuNhapxuatthuoc.FetchByID(IdPhieu); if (objTPhieuNhapxuatthuoc != null) { if (Utility.ByteDbnull(objTPhieuNhapxuatthuoc.TrangThai, 0) == 0) { return; } string errMsg = ""; ActionResult actionResult = new XuatThuoc().HuyXacNhanPhieuXuatKho(objTPhieuNhapxuatthuoc, ref errMsg); switch (actionResult) { case ActionResult.Success: Utility.SetMsg(uiStatusBar2.Panels["MSG"], "Bạn thực hiện hủy xác nhận phiếu chuyển kho thành công", false); grdList.CurrentRow.BeginEdit(); grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.TrangThai].Value = 0; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.NgayXacnhan].Value = DBNull.Value; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.NguoiXacnhan].Value = DBNull.Value; grdList.CurrentRow.EndEdit(); THU_VIEN_CHUNG.Log(this.Name, globalVariables.UserName, string.Format( "Xóa phiếu chuyển kho với số phiếu là :{0} - Từ kho {1} đến kho {2}", id_PhieuNhap, khoxuat, khonhap), action.Update); break; case ActionResult.Exceed: Utility.ShowMsg("" + ten_kieuthuoc_vt + " nhập từ phiếu này đã được sử dụng hết nên bạn không thể hủy xác nhận phiếu\n" + errMsg, "Thông báo lỗi", MessageBoxIcon.Error); break; case ActionResult.NotEnoughDrugInStock: Utility.ShowMsg("" + ten_kieuthuoc_vt + " nhập từ phiếu này đã gần hết nên bạn không thể hủy xác nhận phiếu\n" + errMsg, "Thông báo lỗi", MessageBoxIcon.Error); break; case ActionResult.Error: break; } } } } catch (Exception ex) { Utility.CatchException(ex); } finally { ModifyCommand(); } }
/// <summary> /// hàm thực hiện việc cho phép chuyển thông tin xác nhận vào kho /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdNhapKho_Click(object sender, EventArgs e) { try { cmdNhapKho.Enabled = false; int IdPhieu = Utility.Int32Dbnull(grdList.GetValue(TPhieuNhapxuatthuoc.Columns.IdPhieu), -1); TPhieuNhapxuatthuoc objTPhieuNhapxuatthuoc = TPhieuNhapxuatthuoc.FetchByID(IdPhieu); if (objTPhieuNhapxuatthuoc != null) { if (Utility.ByteDbnull(objTPhieuNhapxuatthuoc.TrangThai, 0) == 1) { return; } string errMsg = ""; DateTime _ngayxacnhan = globalVariables.SysDate; if (THU_VIEN_CHUNG.Laygiatrithamsohethong("THUOC_HIENTHI_NGAYXACNHAN", "0", false) == "1") { frm_ChonngayXacnhan _ChonngayXacnhan = new frm_ChonngayXacnhan(); _ChonngayXacnhan.pdt_InputDate = objTPhieuNhapxuatthuoc.NgayHoadon; _ChonngayXacnhan.ShowDialog(); if (_ChonngayXacnhan.b_Cancel) { return; } else { _ngayxacnhan = _ChonngayXacnhan.pdt_InputDate; } } ActionResult actionResult = new XuatThuoc().XacNhanPhieuHuy_thanhly_thuoc(objTPhieuNhapxuatthuoc, _ngayxacnhan, ref errMsg); switch (actionResult) { case ActionResult.Success: Utility.SetMsg(uiStatusBar2.Panels["MSG"], "Xác nhận phiếu trả nhà cung cấp thành công", false); grdList.CurrentRow.BeginEdit(); grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.TrangThai].Value = 1; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.NgayXacnhan].Value = globalVariables.SysDate; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.NguoiXacnhan].Value = globalVariables.UserName; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.TrangThai].Value = 1; grdList.CurrentRow.EndEdit(); break; case ActionResult.Error: Utility.ShowMsg("Lỗi khi xác nhận phiếu trả nhà cung cấp", "Thông báo lỗi", MessageBoxIcon.Error); break; } } } catch (Exception) { } finally { ModifyCommand(); } }
private void cmdHuychuyenkho_Click(object sender, EventArgs e) { try { cmdHuychuyenkho.Enabled = false; if (Utility.AcceptQuestion("Bạn có muốn hủy xác nhận phiếu trả nhà cung cấp đang chọn hay không?", "Thông báo", true)) { int IdPhieu = Utility.Int32Dbnull(grdList.GetValue(TPhieuNhapxuatthuoc.Columns.IdPhieu), -1); TPhieuNhapxuatthuoc objTPhieuNhapxuatthuoc = TPhieuNhapxuatthuoc.FetchByID(IdPhieu); if (objTPhieuNhapxuatthuoc != null) { if (Utility.ByteDbnull(objTPhieuNhapxuatthuoc.TrangThai, 0) == 0) { return; } string ErrMsg = ""; ActionResult actionResult = new XuatThuoc().HuyXacNhanPhieuHuy_thanhly_Thuoc(objTPhieuNhapxuatthuoc, ref ErrMsg); switch (actionResult) { case ActionResult.Success: Utility.SetMsg(uiStatusBar2.Panels["MSG"], "Hủy xác nhận phiếu trả thuốc thành công", false); grdList.CurrentRow.BeginEdit(); grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.TrangThai].Value = 0; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.NgayXacnhan].Value = DBNull.Value; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.NguoiXacnhan].Value = DBNull.Value; grdList.CurrentRow.EndEdit(); break; case ActionResult.Exceed: Utility.ShowMsg("Thuốc nhập từ phiếu này đã được sử dụng hết nên bạn không thể hủy phiếu trả", "Thông báo lỗi", MessageBoxIcon.Error); break; case ActionResult.NotEnoughDrugInStock: Utility.ShowMsg("Thuốc nhập từ phiếu này đã gần hết nên bạn không thể hủy phiếu trả", "Thông báo lỗi", MessageBoxIcon.Error); break; case ActionResult.Error: Utility.ShowMsg("Lỗi trong quá trình hủy phiếu trả nhà cung cấp", "Thông báo lỗi", MessageBoxIcon.Error); break; } } } } catch (Exception) { } finally { ModifyCommand(); } }
/// <summary> /// hàm thực hiện việc hủy thông tin đơn thuốc /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdHuyDonThuoc_Click(object sender, EventArgs e) { if (Utility.AcceptQuestion("Bạn có muốn thực hiện hủy phát thuốc cho bệnh nhân \n Dữ liệu hủy sẽ được trả lại kho phát thuốc", "Thông báo", true)) { if (!InValiHuyDonthuoc()) { return; } frm_NhaplydoHuy _NhaplydoHuy = new frm_NhaplydoHuy("LYDOHUYXACNHAN", "HỦY XÁC NHẬN ĐƠN THUỐC", "Chọn lý do hủy xác nhận trước khi thực hiện...", "Lý do hủy", "Ngày hủy"); _NhaplydoHuy.ShowDialog(); if (!_NhaplydoHuy.m_blnCancel) { int Pres_ID = Utility.Int32Dbnull(grdPres.GetValue(KcbDonthuoc.Columns.IdDonthuoc), -1); Int16 stockID = Utility.Int16Dbnull(_mDtDataPresDetail.Rows[0][KcbDonthuocChitiet.Columns.IdKho]); dtNgayPhatThuoc.Value = globalVariables.SysDate; try { ActionResult actionResult = new XuatThuoc().HuyXacNhanDonThuocBN(Pres_ID, stockID, _NhaplydoHuy.ngay_thuchien, _NhaplydoHuy.ten); switch (actionResult) { case ActionResult.DataUsed: Utility.ShowMsg("Một trong các thuốc bạn chọn đã được sử dụng nên bạn không thể thực hiện hủy xác nhận", "thông báo", MessageBoxIcon.Information); break; case ActionResult.Success: UpdateHuyHasConfirm(); THU_VIEN_CHUNG.Log(this.Name, globalVariables.UserName, string.Format( "Hủy phát thuốc của bệnh nhân có mã lần khám {0} và mã bệnh nhân là: {1}. Đơn thuốc {2} bởi {3}", Utility.sDbnull(grdPres.CurrentRow.Cells["ma_luotkham"].Value), Utility.sDbnull(grdPres.CurrentRow.Cells["id_benhnhan"].Value), Utility.sDbnull(grdPres.CurrentRow.Cells["id_donthuoc"].Value), globalVariables.UserName), action.Delete); Utility.ShowMsg("Bạn thực hiện việc hủy phát thuốc thành công", "thông báo", MessageBoxIcon.Information); break; case ActionResult.Error: Utility.ShowMsg("Lỗi trong quá trình hủy phát thuốc cho bệnh nhân", "Thông báo", MessageBoxIcon.Error); break; } } catch (Exception ex) { Utility.ShowMsg("Lỗi trong quá trình hủy đơn thuốc" + ex.Message); } } } }
private void cmdHuychuyenkho_Click(object sender, EventArgs e) { try { cmdHuychuyenkho.Enabled = false; Utility.SetMsg(uiStatusBar2.Panels["MSG"], "", false); if (Utility.AcceptQuestion("Bạn có chắc chắn muốn hủy xác nhận phiếu chuyển kho đang chọn hay không?", "Thông báo", true)) { int IdPhieu = Utility.Int32Dbnull(grdList.GetValue(TPhieuNhapxuatthuoc.Columns.IdPhieu), -1); TPhieuNhapxuatthuoc objTPhieuNhapxuatthuoc = TPhieuNhapxuatthuoc.FetchByID(IdPhieu); if (objTPhieuNhapxuatthuoc != null) { string errMsg = ""; ActionResult actionResult = new XuatThuoc().HuyXacNhanPhieuXuatKho(objTPhieuNhapxuatthuoc, ref errMsg); switch (actionResult) { case ActionResult.Success: Utility.SetMsg(uiStatusBar2.Panels["MSG"], "Bạn thực hiện hủy xác nhận phiếu chuyển kho thành công", false); grdList.CurrentRow.BeginEdit(); grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.TrangThai].Value = 0; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.NgayXacnhan].Value = DBNull.Value; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.NguoiXacnhan].Value = DBNull.Value; grdList.CurrentRow.EndEdit(); break; case ActionResult.Exceed: Utility.ShowMsg("" + ten_kieuthuoc_vt + " nhập từ phiếu này đã được sử dụng hết nên bạn không thể hủy xác nhận phiếu\n" + errMsg, "Thông báo lỗi", MessageBoxIcon.Error); break; case ActionResult.NotEnoughDrugInStock: Utility.ShowMsg("" + ten_kieuthuoc_vt + " nhập từ phiếu này đã gần hết nên bạn không thể hủy xác nhận phiếu\n" + errMsg, "Thông báo lỗi", MessageBoxIcon.Error); break; case ActionResult.Error: break; } } } } catch (Exception) { } finally { ModifyCommand(); } }
private void UpdatePhieuXuatKho() { TPhieuNhapxuatthuoc objPhieuNhap = CreatePhieuNhapKho(); ActionResult actionResult = new XuatThuoc().UpdatePhieuXuatKho(objPhieuNhap, CreateArrPhieuChiTiet()); switch (actionResult) { case ActionResult.Success: TPhieuNhapxuatthuoc objTPhieuNhapxuatthuoc = TPhieuNhapxuatthuoc.FetchByID(Utility.Int32Dbnull(txtIDPhieuNhapKho.Text)); DataRow[] arrDr = p_mDataPhieuNhapKho.Select(string.Format("{0}={1}", TPhieuNhapxuatthuoc.Columns.IdPhieu, Utility.Int32Dbnull(txtIDPhieuNhapKho.Text))); if (arrDr.GetLength(0) > 0) { arrDr[0].Delete(); } DataRow newDr = p_mDataPhieuNhapKho.NewRow(); Utility.FromObjectToDatarow(objTPhieuNhapxuatthuoc, ref newDr); TDmucKho objKho = TDmucKho.FetchByID(Utility.Int32Dbnull(cboKhoNhap.SelectedValue, -1)); if (objKho != null) { newDr["TEN_KHO_NHAP"] = Utility.sDbnull(objKho.TenKho); } objKho = TDmucKho.FetchByID(Utility.Int32Dbnull(cboKhoXuat.SelectedValue, -1)); if (objKho != null) { newDr["TEN_KHO_XUAT"] = Utility.sDbnull(objKho.TenKho); } newDr["ID_KHOA_LINH"] = Utility.Int16Dbnull(cboKhoaTra.SelectedValue, 0); newDr["TEN_KHOA"] = cboKhoaTra.Text; p_mDataPhieuNhapKho.Rows.Add(newDr); Utility.GonewRowJanus(grdList, TPhieuNhapxuatthuoc.Columns.IdPhieu, Utility.sDbnull(txtIDPhieuNhapKho.Text)); Utility.ShowMsg("Bạn sửa phiếu trả thành công", "Thông báo"); m_enAction = action.Insert; b_Cancel = true; break; case ActionResult.Error: Utility.ShowMsg("Lỗi trong quá trình sửa phiếu", "Thông báo lỗi", MessageBoxIcon.Error); break; } }
private void cmdHuychuyenkho_Click(object sender, EventArgs e) { try { cmdHuychuyenkho.Enabled = false; Utility.SetMsg(uiStatusBar2.Panels["MSG"], "", false); if (Utility.AcceptQuestion("Bạn có muốn hủy xác nhận phiếu thanh lý thuốc đang chọn này không?", "Thông báo", true)) { int IdPhieu = Utility.Int32Dbnull(grdList.GetValue(TPhieuNhapxuatthuoc.Columns.IdPhieu), -1); TPhieuNhapxuatthuoc objTPhieuNhapxuatthuoc = TPhieuNhapxuatthuoc.FetchByID(IdPhieu); if (objTPhieuNhapxuatthuoc != null) { if (Utility.ByteDbnull(objTPhieuNhapxuatthuoc.TrangThai, 0) == 0) { return; } string errMsg = ""; ActionResult actionResult = new XuatThuoc().HuyXacNhanPhieuHuy_thanhly_Thuoc(objTPhieuNhapxuatthuoc, ref errMsg); switch (actionResult) { case ActionResult.Success: Utility.SetMsg(uiStatusBar2.Panels["MSG"], "Bạn thực hiện hủy xác nhận phiếu thanh lý thuốc thành công", false); grdList.CurrentRow.BeginEdit(); grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.TrangThai].Value = 0; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.NgayXacnhan].Value = DBNull.Value; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.NguoiXacnhan].Value = DBNull.Value; grdList.CurrentRow.EndEdit(); break; case ActionResult.Error: break; } } } } catch (Exception) { } finally { ModifyCommand(); } }
private void UpdatePhieuXuatKho() { TPhieuNhapxuatthuoc objPhieuNhap = CreatePhieuNhapKho(); ActionResult actionResult = new XuatThuoc().UpdatePhieuXuatKho(objPhieuNhap, CreateArrPhieuChiTiet()); switch (actionResult) { case ActionResult.Success: TPhieuNhapxuatthuoc objTPhieuNhapxuatthuoc = TPhieuNhapxuatthuoc.FetchByID(Utility.Int32Dbnull(txtIDPhieuNhapKho.Text)); DataRow[] arrDr = p_mDataPhieuNhapKho.Select(string.Format("{0}={1}", TPhieuNhapxuatthuoc.Columns.IdPhieu, Utility.Int32Dbnull(txtIDPhieuNhapKho.Text))); if (arrDr.GetLength(0) > 0) { arrDr[0].Delete(); } DataRow newDr = p_mDataPhieuNhapKho.NewRow(); Utility.FromObjectToDatarow(objTPhieuNhapxuatthuoc, ref newDr); DmucChung objNhaCC = THU_VIEN_CHUNG.LaydoituongDmucChung("NHACUNGCAP", txtNhacungcap.myCode); if (objNhaCC != null) { newDr["ten_nhacungcap"] = Utility.sDbnull(objNhaCC.Ten); } TDmucKho objKho = TDmucKho.FetchByID(Utility.Int32Dbnull(cboKhoXuat.SelectedValue, -1)); if (objKho != null) { newDr["ten_khoxuat"] = Utility.sDbnull(objKho.TenKho); } p_mDataPhieuNhapKho.Rows.Add(newDr); Utility.GonewRowJanus(grdList, TPhieuNhapxuatthuoc.Columns.IdPhieu, Utility.sDbnull(txtIDPhieuNhapKho.Text)); //Utility.ShowMsg("Bạn sửa phiếu thành công", "Thông báo"); m_enAction = action.Insert; this.Close(); b_Cancel = true; break; case ActionResult.Error: Utility.ShowMsg("Lỗi trong quá trình sửa phiếu", "Thông báo lỗi", MessageBoxIcon.Error); break; } }
/// <summary> /// hàm thực hiện việc cập nhập thông tin theo đơn thuốc /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdPhatThuoc_Click(object sender, EventArgs e) { Utility.SetMsg(uiStatusBar2.Panels[1], "", false); if (!InValiKiemTraDonThuoc()) { return; } Utility.EnableButton(cmdPhatThuoc, false); cmdPhatThuoc.Cursor = Cursors.WaitCursor; long presId = Utility.Int64Dbnull(grdPres.GetValue(KcbDonthuoc.Columns.IdDonthuoc), -1); Int16 stockId = Utility.Int16Dbnull(_mDtDataPresDetail.Rows[0][KcbDonthuocChitiet.Columns.IdKho]); if (presId > 0 && stockId > 0) { try { ActionResult actionResult = new XuatThuoc().LinhThuocBenhNhan(presId, stockId, dtNgayPhatThuoc.Value); switch (actionResult) { case ActionResult.Success: UpdateHasConfirm(); Utility.SetMsg(uiStatusBar2.Panels[1], "Bạn thực hiện việc phát thuốc thành công", false); break; case ActionResult.NotEnoughDrugInStock: Utility.SetMsg(uiStatusBar2.Panels[1], "Thuốc không đủ cấp phát. Mời bạn kiểm tra lại", true); break; case ActionResult.Error: Utility.SetMsg(uiStatusBar2.Panels[1], "Lỗi trong quá trình phát thuốc cho bệnh nhân", true); break; } } catch (Exception ex) { Utility.ShowMsg("Lỗi trong quá trình phát thuốc" + ex.Message); } } cmdPhatThuoc.Cursor = Cursors.Default; }
/// <summary> /// hàm thực hiện việc cho phép chuyển thông tin xác nhận vào kho /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdNhapKho_Click(object sender, EventArgs e) { try { cmdNhapKho.Enabled = false; Utility.SetMsg(uiStatusBar2.Panels["MSG"], "", false); int IdPhieu = Utility.Int32Dbnull(grdList.GetValue(TPhieuNhapxuatthuoc.Columns.IdPhieu), -1); TPhieuNhapxuatthuoc objTPhieuNhapxuatthuoc = TPhieuNhapxuatthuoc.FetchByID(IdPhieu); if (objTPhieuNhapxuatthuoc != null) { string errMsg = ""; DateTime _ngayxacnhan = globalVariables.SysDate; if (THU_VIEN_CHUNG.Laygiatrithamsohethong("THUOC_HIENTHI_NGAYXACNHAN", "0", false) == "1") { frm_ChonngayXacnhan _ChonngayXacnhan = new frm_ChonngayXacnhan(); _ChonngayXacnhan.pdt_InputDate = objTPhieuNhapxuatthuoc.NgayHoadon; _ChonngayXacnhan.ShowDialog(); if (_ChonngayXacnhan.b_Cancel) { return; } else { _ngayxacnhan = _ChonngayXacnhan.pdt_InputDate; } } ActionResult actionResult = new XuatThuoc().XacNhanPhieuXuatKho(objTPhieuNhapxuatthuoc, _ngayxacnhan, ref errMsg); switch (actionResult) { case ActionResult.Success: Utility.SetMsg(uiStatusBar2.Panels["MSG"], "Xác nhận phiếu chuyển kho thành công", false); grdList.CurrentRow.BeginEdit(); grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.TrangThai].Value = 1; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.NgayXacnhan].Value = _ngayxacnhan; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.NguoiXacnhan].Value = globalVariables.UserName; grdList.CurrentRow.Cells[TPhieuNhapxuatthuoc.Columns.TrangThai].Value = 1; grdList.CurrentRow.EndEdit(); break; case ActionResult.Exceed: Utility.ShowMsg("Không có " + ten_kieuthuoc_vt + " trong kho xuất nên không thể xác nhận phiếu xuất\n" + errMsg, "Thông báo lỗi", MessageBoxIcon.Warning); break; case ActionResult.NotEnoughDrugInStock: Utility.ShowMsg("" + ten_kieuthuoc_vt + " trong kho xuất không còn đủ số lượng nên không thể xác nhận phiếu xuất\n" + errMsg, "Thông báo lỗi", MessageBoxIcon.Warning); break; case ActionResult.Error: break; } } } catch (Exception) { } finally { ModifyCommand(); } }
private void AddPreDetail() { try { string errMsg = string.Empty; string errMsg_temp = string.Empty; log.Trace("Get thong tin cac doi tuong can de luu don thuoc"); if (objDKho == null) { return; } if (objLuotkham == null) { return; } log.Trace( "Bat dau them chi tiet don thuoc......................................................................................."); foreach (GridEXRow _row in grdPresDetail.GetCheckedRows()) { if (Utility.Int32Dbnull(objDKho.KtraTon) == 1) { decimal num = CommonLoadDuoc.SoLuongTonTrongKho(-1L, Utility.Int32Dbnull(idkhosaochep), Utility.Int32Dbnull(_row.Cells["id_thuoc"].Value, -1), Utility.Int64Dbnull(_row.Cells["id_thuockho"].Value, -1), Utility.Int32Dbnull( THU_VIEN_CHUNG.Laygiatrithamsohethong("KIEMTRATHUOC_CHOXACNHAN", "1", false), 1), Utility.ByteDbnull(objLuotkham.Noitru, 0)); log.Trace("1. Lay xong so luong ton kho ke don"); if (Utility.DecimaltoDbnull(_row.Cells["so_luong"].Value, 0) > num) { Utility.ShowMsg( string.Format( "Số lượng " + (KIEU_THUOC_VT == "THUOC" ? "thuốc" : "vật tư") + " cấp phát {0} vượt quá số lượng " + (KIEU_THUOC_VT == "THUOC" ? "thuốc" : "vật tư") + " trong kho {1}.\nCó thể trong lúc bạn chọn " + (KIEU_THUOC_VT == "THUOC" ? "thuốc" : "vật tư") + " chưa kịp đưa vào đơn, các Bác sĩ khác hoặc Dược sĩ đã kê hoặc cấp phát mất một lượng " + (KIEU_THUOC_VT == "THUOC" ? "thuốc" : "vật tư") + " so với thời điểm bạn chọn.\nMời bạn liên hệ phòng Dược kiểm tra lại", Utility.sDbnull(_row.Cells["so_luong"].Value), num), "Cảnh báo", MessageBoxIcon.Hand); bool selected = _row.Selected; return; } } DataTable listdata = new XuatThuoc().GetObjThuocKhoCollection( Utility.Int32Dbnull(idkhosaochep, 0), Utility.Int32Dbnull(_row.Cells["id_thuoc"].Value, -1), Utility.Int32Dbnull(_row.Cells["id_thuockho"].Value, -1), (decimal)Utility.DecimaltoDbnull(_row.Cells["so_luong"].Value, 0), Utility.ByteDbnull(objLuotkham.IdLoaidoituongKcb, 0), Utility.ByteDbnull(objLuotkham.DungTuyen, 0), (byte)objLuotkham.Noitru); var list2 = new List <KcbDonthuocChitiet>(); foreach (DataRow thuockho in listdata.Rows) { decimal _soluong = Utility.DecimaltoDbnull(thuockho[TThuockho.Columns.SoLuong], 0); if (_soluong > 0) { DataRow[] rowArray = m_dtDonthuocChitiet.Select(TThuockho.Columns.IdThuockho + "=" + Utility.sDbnull( thuockho[TThuockho.Columns.IdThuockho]) + " AND tu_tuc=" + (0)); if (rowArray.Length > 0) { rowArray[0][KcbDonthuocChitiet.Columns.SoLuong] = Utility.DecimaltoDbnull(rowArray[0][KcbDonthuocChitiet.Columns.SoLuong]) + _soluong; rowArray[0]["TT_KHONG_PHUTHU"] = Utility.DecimaltoDbnull(rowArray[0][KcbDonthuocChitiet.Columns.SoLuong]) * Utility.DecimaltoDbnull(rowArray[0][KcbDonthuocChitiet.Columns.DonGia]); rowArray[0]["TT"] = Utility.DecimaltoDbnull(rowArray[0][KcbDonthuocChitiet.Columns.SoLuong]) * (Utility.DecimaltoDbnull(rowArray[0][KcbDonthuocChitiet.Columns.DonGia]) + Utility.DecimaltoDbnull(rowArray[0][KcbDonthuocChitiet.Columns.PhuThu])); rowArray[0]["TT_BHYT"] = Utility.DecimaltoDbnull(rowArray[0][KcbDonthuocChitiet.Columns.SoLuong]) * Utility.DecimaltoDbnull(rowArray[0][KcbDonthuocChitiet.Columns.BhytChitra]); rowArray[0]["TT_BN"] = Utility.DecimaltoDbnull(rowArray[0][KcbDonthuocChitiet.Columns.SoLuong]) * (Utility.DecimaltoDbnull( rowArray[0][KcbDonthuocChitiet.Columns.BnhanChitra], 0) + Utility.DecimaltoDbnull(rowArray[0][KcbDonthuocChitiet.Columns.PhuThu], 0)); rowArray[0]["TT_PHUTHU"] = Utility.DecimaltoDbnull(rowArray[0][KcbDonthuocChitiet.Columns.SoLuong]) * Utility.DecimaltoDbnull(rowArray[0][KcbDonthuocChitiet.Columns.PhuThu], 0); rowArray[0]["TT_BN_KHONG_PHUTHU"] = Utility.DecimaltoDbnull(rowArray[0][KcbDonthuocChitiet.Columns.SoLuong]) * Utility.DecimaltoDbnull( rowArray[0][KcbDonthuocChitiet.Columns.BnhanChitra], 0); AddtoView(rowArray[0], _soluong); list2.Add(getNewItem(rowArray[0])); } else { DataRow row = m_dtDonthuocChitiet.NewRow(); row[DmucThuoc.Columns.TenThuoc] = Utility.sDbnull(_row.Cells["ten_thuoc"].Value, ""); row[KcbDonthuocChitiet.Columns.SoLuong] = _soluong; row[KcbDonthuocChitiet.Columns.PhuThu] = Utility.DecimaltoDbnull(thuockho["phu_thu"], 0); ; // !this.Giathuoc_quanhe ? 0M : Utility.DecimaltoDbnull(this.txtSurcharge.Text, 0); row[KcbDonthuocChitiet.Columns.PhuthuDungtuyen] = Utility.DecimaltoDbnull(thuockho[TThuockho.Columns.PhuthuDungtuyen], 0); row[KcbDonthuocChitiet.Columns.PhuthuTraituyen] = Utility.DecimaltoDbnull(thuockho[TThuockho.Columns.PhuthuTraituyen], 0); row[KcbDonthuocChitiet.Columns.IdThuoc] = Utility.Int32Dbnull(_row.Cells["id_thuoc"].Value, -1); row[KcbDonthuocChitiet.Columns.IdDonthuoc] = IdDonthuoc; row["IsNew"] = 1; row[KcbDonthuocChitiet.Columns.MadoituongGia] = Utility.sDbnull(_row.Cells["madoituong_gia"].Value, ""); row[KcbDonthuocChitiet.Columns.IdThuockho] = Utility.Int64Dbnull(thuockho[TThuockho.Columns.IdThuockho], -1); row[KcbDonthuocChitiet.Columns.GiaNhap] = Utility.DecimaltoDbnull(thuockho[TThuockho.Columns.GiaNhap], 0); row[KcbDonthuocChitiet.Columns.GiaBan] = Utility.DecimaltoDbnull(thuockho[TThuockho.Columns.GiaBan], 0); row[KcbDonthuocChitiet.Columns.GiaBhyt] = Utility.DecimaltoDbnull(thuockho[TThuockho.Columns.GiaBhyt], 0); row[KcbDonthuocChitiet.Columns.Vat] = Utility.DecimaltoDbnull(thuockho[TThuockho.Columns.Vat], 0); row[KcbDonthuocChitiet.Columns.SoLo] = Utility.sDbnull(thuockho[TThuockho.Columns.SoLo], ""); row[KcbDonthuocChitiet.Columns.SoDky] = Utility.sDbnull(thuockho[TThuockho.Columns.SoDky], ""); row[KcbDonthuocChitiet.Columns.SoQdinhthau] = Utility.sDbnull(thuockho[TThuockho.Columns.SoQdinhthau], ""); row[KcbDonthuocChitiet.Columns.MaNhacungcap] = Utility.sDbnull(thuockho[TThuockho.Columns.MaNhacungcap], ""); row["ten_donvitinh"] = Utility.sDbnull(_row.Cells["ten_donvitinh"].Value, ""); row["sNgay_hethan"] = Utility.sDbnull(thuockho["sNgay_hethan"], ""); row["sNgay_nhap"] = Utility.sDbnull(thuockho["sNgay_nhap"], ""); row[KcbDonthuocChitiet.Columns.NgayHethan] = thuockho[TThuockho.Columns.NgayHethan]; row[KcbDonthuocChitiet.Columns.NgayNhap] = thuockho[TThuockho.Columns.NgayNhap]; row[KcbDonthuocChitiet.Columns.IdKho] = Utility.Int32Dbnull(idkhosaochep, -1); row[TDmucKho.Columns.TenKho] = Utility.sDbnull(objDKho.TenKho, -1); row[KcbDonthuocChitiet.Columns.DonviTinh] = Utility.sDbnull(_row.Cells["ten_donvitinh"].Value, ""); row[DmucThuoc.Columns.HoatChat] = Utility.sDbnull(_row.Cells["hoat_chat"].Value, ""); row[KcbDonthuocChitiet.Columns.ChidanThem] = Utility.sDbnull(_row.Cells["chidan_them"].Value, ""); row[KcbDonthuocChitiet.Columns.MotaThem] = Utility.sDbnull(_row.Cells["mota_them_chitiet"].Value, ""); row["mota_them_chitiet"] = Utility.sDbnull(_row.Cells["mota_them_chitiet"].Value, ""); row[KcbDonthuocChitiet.Columns.CachDung] = Utility.sDbnull(_row.Cells["cach_dung"].Value, ""); row[KcbDonthuocChitiet.Columns.SoluongDung] = Utility.sDbnull(_row.Cells["soluong_dung"].Value, ""); row[KcbDonthuocChitiet.Columns.SolanDung] = Utility.sDbnull(_row.Cells["solan_dung"].Value, ""); row["ma_loaithuoc"] = Utility.sDbnull(_row.Cells["ma_loaithuoc"].Value, ""); row["ten_loaithuoc"] = Utility.sDbnull(_row.Cells["ten_loaithuoc"].Value, ""); row[KcbDonthuocChitiet.Columns.TrangthaiThanhtoan] = 0; row[KcbDonthuocChitiet.Columns.SttIn] = GetMaxSTT(m_dtDonthuocChitiet); row[KcbDonthuocChitiet.Columns.TuTuc] = 0; row[KcbDonthuocChitiet.Columns.DonGia] = Utility.DecimaltoDbnull(thuockho["GIA_BAN"], 0); // (this.APDUNG_GIATHUOC_DOITUONG || this.Giathuoc_quanhe) ? // (Utility.DecimaltoDbnull(this.txtPrice.Text, 0)) : // (this.objLuotkham.IdLoaidoituongKcb== 1 ? //Utility.DecimaltoDbnull(thuockho[TThuockho.Columns.GiaBan],0) : Utility.DecimaltoDbnull(thuockho[TThuockho.Columns.GiaBhyt],0)); row[KcbDonthuocChitiet.Columns.PtramBhyt] = objLuotkham.PtramBhyt; row[KcbDonthuocChitiet.Columns.PtramBhytGoc] = objLuotkham.PtramBhytGoc; row[KcbDonthuocChitiet.Columns.MaDoituongKcb] = objLuotkham.MaDoituongKcb; row[KcbDonthuocChitiet.Columns.KieuBiendong] = thuockho["kieubiendong"]; if (em_CallAction == CallAction.FromMenu) { if (tu_tuc == 0) { decimal BHCT = 0m; if (objLuotkham.DungTuyen == 1) { BHCT = Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.DonGia], 0) * (Utility.DecimaltoDbnull(objLuotkham.PtramBhyt, 0) / 100); } else { if (objLuotkham.TrangthaiNoitru <= 0) { BHCT = Utility.DecimaltoDbnull( row[KcbDonthuocChitiet.Columns.DonGia], 0) * (Utility.DecimaltoDbnull(objLuotkham.PtramBhyt, 0) / 100); } else //Nội trú cần tính=đơn giá * % đầu thẻ * % tuyến { BHCT = Utility.DecimaltoDbnull( row[KcbDonthuocChitiet.Columns.DonGia], 0) * (Utility.DecimaltoDbnull(objLuotkham.PtramBhytGoc, 0) / 100) * (_bhytPtramTraituyennoitru / 100); } } // decimal num2 = (Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.DonGia], 0) * Utility.DecimaltoDbnull(this.objLuotkham.PtramBhyt, 0)) / 100M; decimal num3 = Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.DonGia], 0) - BHCT; row[KcbDonthuocChitiet.Columns.BhytChitra] = BHCT; row[KcbDonthuocChitiet.Columns.BnhanChitra] = num3; } else { row[KcbDonthuocChitiet.Columns.PtramBhyt] = 0; row[KcbDonthuocChitiet.Columns.BhytChitra] = 0; row[KcbDonthuocChitiet.Columns.BnhanChitra] = Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.DonGia], 0); } } row["TT_KHONG_PHUTHU"] = Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.SoLuong]) * Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.DonGia]); row["TT"] = Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.SoLuong]) * (Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.DonGia]) + Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.PhuThu])); row["TT_BHYT"] = Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.SoLuong]) * Utility.DecimaltoDbnull( row[KcbDonthuocChitiet.Columns.BhytChitra]); row["TT_BN"] = Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.SoLuong]) * (Utility.DecimaltoDbnull( row[KcbDonthuocChitiet.Columns.BnhanChitra], 0) + Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.PhuThu], 0)); row["TT_PHUTHU"] = Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.SoLuong]) * Utility.DecimaltoDbnull( row[KcbDonthuocChitiet.Columns.PhuThu], 0); row["TT_BN_KHONG_PHUTHU"] = Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.SoLuong]) * Utility.DecimaltoDbnull(row[KcbDonthuocChitiet.Columns.BnhanChitra], 0); errMsg_temp = KiemtraCamchidinhchungphieu( Utility.Int32Dbnull(row[KcbDonthuocChitiet.Columns.IdThuoc], 0), Utility.sDbnull(row[DmucThuoc.Columns.TenThuoc], "")); log.Trace("3. Đã kiểm tra xong cấm chỉ định chung đơn thuốc"); if (errMsg_temp != string.Empty) { errMsg += errMsg_temp; } else { m_dtDonthuocChitiet.Rows.Add(row); AddtoView(row, _soluong); list2.Add(getNewItem(row)); } } } } if (errMsg != string.Empty) { if (errMsg.Contains("Single-Service:")) { Utility.ShowMsg( "Thuốc sau được đánh dấu không được phép kê chung đơn bất kỳ Thuốc nào. Đề nghị bạn kiểm tra lại:\n" + Utility.DoTrim(errMsg.Replace("Single-Service:", ""))); } else { Utility.ShowMsg( "Các cặp Thuốc sau đã được thiết lập chống kê chung đơn. Đề nghị bạn kiểm tra lại:\n" + errMsg); } } else { //PerformAction(list2.ToArray()); // Utility.GotoNewRowJanus(grdPresDetail, KcbDonthuocChitiet.Columns.IdThuoc, Utility.sDbnull(_row.Cells["id_thuoc"].Value, -1)); } } } catch (Exception ex) { Utility.ShowMsg("Lỗi:" + ex.Message); } finally { log.Trace( "KẾT THÚC THÊM CHI TIẾT THUỐC......................................................................................."); } }