/// <summary>
        /// hàm thực hiện xóa thông tin của hiếu nhập chi tiết
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdXoaPhieuNhap_Click(object sender, EventArgs e)
        {
            Utility.SetMsg(uiStatusBar2.Panels["MSG"], "", false);
            int IdPhieu = Utility.Int32Dbnull(grdList.GetValue(TPhieuNhapxuatthuoc.Columns.IdPhieu), -1);
            if (!InValiUpdateXoa()) return;
            if (Utility.AcceptQuestion(string.Format("Bạn có muốn xóa phiếu trả thuốc từ khoa nội trú về kho với mã phiếu {0}\n hay không?", IdPhieu), "Thông báo", true))
            {
                ActionResult actionResult = new THUOC_NHAPKHO().XoaPhieuNhapKho(IdPhieu);
                switch (actionResult)
                {
                    case ActionResult.Success:
                        grdList.CurrentRow.Delete();
                        grdList.UpdateData();
                        m_dtDataNhapKho.AcceptChanges();
                        Utility.SetMsg(uiStatusBar2.Panels["MSG"], "Bạn xóa thông tin phiếu trả thuốc từ khoa nội trú về kho thành công", false);
                        break;
                    case ActionResult.Error:
                        break;
                }

            }
            ModifyCommand();
        }
        private void AutoUpdate()
        {
            TPhieuNhapxuatthuoc objPhieuNhap = TaophieuNhapkho();
            List<TPhieuNhapxuatthuocChitiet> lstDetail = TaoChitietNhapkho();
            if (lstDetail.Count <= 0 || objPhieuNhap == null )
            {

                return;
            }
            ActionResult actionResult = new THUOC_NHAPKHO().UpdatePhieuNhapKho(objPhieuNhap, lstDetail);
            switch (actionResult)
            {
                case ActionResult.Success:
                    if (_OnActionSuccess != null) _OnActionSuccess();
                    Utility.SetMsg(uiStatusBar1.Panels["MSG"], "Tự động cập nhật phiếu nhập kho thành công", false);
                    _Autosave = false;
                    break;
                default:
                    break;
            }
        }
        /// <summary>
        /// hàm thực hiện việc thêm phiếu nhập kho thuốc
        /// </summary>
        private void AutoInsert()
        {
            TPhieuNhapxuatthuoc objPhieuNhap = TaophieuNhapkho();
            List<TPhieuNhapxuatthuocChitiet> lstDetail = TaoChitietNhapkho();
            if (lstDetail.Count <= 0 || objPhieuNhap == null)
            {

                return;
            }
            ActionResult actionResult = new THUOC_NHAPKHO().ThemPhieuNhapKho(objPhieuNhap, lstDetail);
            switch (actionResult)
            {
                case ActionResult.Success:

                    txtIDPhieuNhapKho.Text = Utility.sDbnull(objPhieuNhap.IdPhieu);
                    txtMaPhieu.Text = Utility.sDbnull(objPhieuNhap.MaPhieu);
                    TPhieuNhapxuatthuoc objTPhieuNhapxuatthuoc = TPhieuNhapxuatthuoc.FetchByID(Utility.Int32Dbnull(txtIDPhieuNhapKho.Text));
                    DataRow newDr = p_mDataPhieuNhapKho.NewRow();
                    Utility.FromObjectToDatarow(objTPhieuNhapxuatthuoc, ref newDr);
                    TDmucKho objKho = TDmucKho.FetchByID(Utility.Int32Dbnull(txtKhonhap.MyID, -1));
                    if (objKho != null)
                        newDr["ten_khonhap"] = Utility.sDbnull(objKho.TenKho);
                    p_mDataPhieuNhapKho.Rows.Add(newDr);
                    Utility.GonewRowJanus(grdList, TPhieuNhapxuatthuoc.Columns.IdPhieu, Utility.sDbnull(txtIDPhieuNhapKho.Text));
                    Utility.SetMsg(uiStatusBar1.Panels["MSG"], "Tự động thêm mới phiếu nhập kho thành công", false);
                    em_Action = action.Update;
                    _Autosave = false;
                    b_Cancel = false;

                    break;
                default:
                    break;
            }
        }
        private void UpdatePhieuNhapKho()
        {
            TPhieuNhapxuatthuoc objPhieuNhap = TaophieuNhapkho();
            List<TPhieuNhapxuatthuocChitiet> lstDetail = TaoChitietNhapkho();
            if (lstDetail.Count <= 0)
            {

                return;
            }
            ActionResult actionResult = new THUOC_NHAPKHO().UpdatePhieuNhapKho(objPhieuNhap, lstDetail);
            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(txtKhonhap.MyID, -1));
                    if (objKho != null)
                        newDr["ten_khonhap"] = Utility.sDbnull(objKho.TenKho);
                    p_mDataPhieuNhapKho.Rows.Add(newDr);
                    Utility.GonewRowJanus(grdList, TPhieuNhapxuatthuoc.Columns.IdPhieu, Utility.sDbnull(txtIDPhieuNhapKho.Text));
                    Utility.SetMsg(uiStatusBar1.Panels["MSG"] ,"Bạn sửa  phiếu thành công", false);
                    em_Action = action.Insert;
                    ClearControl();
                    if (!_Autosave)
                    {
                        ClearControlPhieu();
                    }
                    b_Cancel = false;
                    if (!_Autosave)
                        this.Close();
                    _Autosave = false;
                    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 thêm phiếu nhập kho thuốc
        /// </summary>
        private void ThemPhieuNhapKho()
        {
            TPhieuNhapxuatthuoc objPhieuNhap = TaophieuNhapkho();
            List< TPhieuNhapxuatthuocChitiet> lstDetail=TaoChitietNhapkho();
            if (lstDetail.Count <= 0)
            {

                return;
            }
            ActionResult actionResult = new THUOC_NHAPKHO().ThemPhieuNhapKho(objPhieuNhap, lstDetail);
            switch (actionResult)
            {
                case ActionResult.Success:

                    txtIDPhieuNhapKho.Text = Utility.sDbnull(objPhieuNhap.IdPhieu);
                    txtMaPhieu.Text = Utility.sDbnull(objPhieuNhap.MaPhieu);
                    TPhieuNhapxuatthuoc objTPhieuNhapxuatthuoc = TPhieuNhapxuatthuoc.FetchByID(Utility.Int32Dbnull(txtIDPhieuNhapKho.Text));
                    DataRow newDr = p_mDataPhieuNhapKho.NewRow();
                    Utility.FromObjectToDatarow(objTPhieuNhapxuatthuoc,ref newDr);
                    TDmucKho objKho = TDmucKho.FetchByID(Utility.Int32Dbnull(txtKhonhap.MyID, -1));
                    if (objKho != null)
                        newDr["ten_khonhap"] = Utility.sDbnull(objKho.TenKho);
                    p_mDataPhieuNhapKho.Rows.Add(newDr);
                    Utility.GonewRowJanus(grdList,TPhieuNhapxuatthuoc.Columns.IdPhieu,Utility.sDbnull(txtIDPhieuNhapKho.Text));
                    Utility.SetMsg(uiStatusBar1.Panels["MSG"] ,"Thêm mới phiếu thành công",false);
                    em_Action = action.Update;
                    ClearControl();
                    if (!_Autosave)
                    {
                        ClearControlPhieu();
                        txtSoHoaDon.Focus();
                    }
                    b_Cancel = false;
                    if (PropertyLib._NhapkhoProperties.Themmoilientuc && !_Autosave) cmdThemPhieuNhap.PerformClick();
                    else
                        if (!_Autosave)
                            this.Close();
                    _Autosave = false;
                    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;
            }
        }
        /// <summary>
        /// hàm thực hiện xóa thông tin của hiếu nhập chi tiết
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdXoaPhieuNhap_Click(object sender, EventArgs e)
        {
            int IdPhieu = Utility.Int32Dbnull(grdList.GetValue(TPhieuNhapxuatthuoc.Columns.IdPhieu), -1);
            if (!IsValid4UpdateDelete()) return;
            if (Utility.AcceptQuestion(string.Format("Bạn có chắc chắn muốn xóa thông tin phiếu cấp phát với mã phiếu {0} hay không?", IdPhieu), "Thông báo", true))
            {
                ActionResult actionResult = new THUOC_NHAPKHO().XoaPhieuNhapKho(IdPhieu);
                switch (actionResult)
                {
                    case ActionResult.Success:
                        grdList.CurrentRow.Delete();
                        grdList.UpdateData();
                        m_dtDataNhapKho.AcceptChanges();
                        Utility.ShowMsg("Bạn xóa thông tin phiếu cấp phát thành công", "Thông báo", MessageBoxIcon.Information);
                        break;
                    case ActionResult.Error:
                        break;
                }

            }
            ModifyCommand();
        }
        public static void InphieuNhapkho(int IDPhieuNhap, string sTitleReport,DateTime NgayIn)
        {
            DataTable m_dtReport = new THUOC_NHAPKHO().Laythongtininphieunhapkhothuoc(IDPhieuNhap);
               if(m_dtReport.Rows.Count<=0)
               {
               Utility.ShowMsg("Không tìm thấy thông tin ","Thông báo",MessageBoxIcon.Warning);
               return;
               }
               THU_VIEN_CHUNG.CreateXML(m_dtReport, "thuoc_phieu_nhapkho.xml");
               MoneyByLetter _moneyByLetter = new MoneyByLetter();
               string tinhtong = TinhTong(m_dtReport, TPhieuNhapxuatthuocChitiet.ThanhTienColumn.ColumnName);
               string tieude = "", reportname = "";
               var crpt = Utility.GetReport("thuoc_phieunhapkho", ref tieude, ref reportname);

               // VNS.HIS.UI.BaoCao.PhieuNhapKho.CRPT_PHIEU_NHAPKHO crpt =new CRPT_PHIEU_NHAPKHO();
               var objForm = new frmPrintPreview(sTitleReport, crpt, true, m_dtReport.Rows.Count <= 0 ? false : true);

               Utility.UpdateLogotoDatatable(ref m_dtReport);
               try
               {

               m_dtReport.AcceptChanges();
               crpt.SetDataSource(m_dtReport);
               objForm.crptViewer.ReportSource = crpt;
               ////crpt.DataDefinition.FormulaFields["Formula_1"].Text = Strings.Chr(34) + "  PHÒNG TIẾP ĐÓN   ".Replace("#$X$#", Strings.Chr(34) + "&Chr(13)&" + Strings.Chr(34)) + Strings.Chr(34);
               objForm.mv_sReportFileName = Path.GetFileName(reportname);
               objForm.mv_sReportCode = "thuoc_phieunhapkho";
               Utility.SetParameterValue(crpt,"ParentBranchName", globalVariables.ParentBranch_Name);
               Utility.SetParameterValue(crpt,"BranchName", globalVariables.Branch_Name);
               Utility.SetParameterValue(crpt,"sMoneyLetter", _moneyByLetter.sMoneyToLetter(tinhtong));

               Utility.SetParameterValue(crpt,"sCurrentDate", Utility.FormatDateTimeWithThanhPho(NgayIn));
               Utility.SetParameterValue(crpt,"sTitleReport", tieude);
               Utility.SetParameterValue(crpt,"BottomCondition", THU_VIEN_CHUNG.BottomCondition());

               objForm.ShowDialog();
               // Utility.DefaultNow(this);
               }
               catch (Exception ex)
               {
               if (globalVariables.IsAdmin)
               {
                   Utility.ShowMsg(ex.ToString());
               }
               }
        }
        /// <summary>
        /// hàm thực hiện xóa thông tin của hiếu nhập chi tiết
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdXoaPhieuNhap_Click(object sender, EventArgs e)
        {
            int IdPhieu = Utility.Int32Dbnull(grdList.GetValue(TPhieuNhapxuatthuoc.Columns.IdPhieu), -1);
            if (!InValiUpdateXoa()) return;
            if (Utility.AcceptQuestion(string.Format("Bạn có muốn xóa thông tin phiếu trả nhà cung cấp với Id: {0}?", IdPhieu), "Thông báo", true))
            {
                Utility.SetMsg(uiStatusBar2.Panels["MSG"], "", true);
                ActionResult actionResult = new THUOC_NHAPKHO().XoaPhieuNhapKho(IdPhieu);
                switch (actionResult)
                {
                    case ActionResult.Success:
                        grdList.CurrentRow.Delete();
                        grdList.UpdateData();
                        m_dtDataNhapKho.AcceptChanges();
                        Utility.SetMsg(uiStatusBar2.Panels["MSG"], "Bạn xóa phiếu trả thành công",false);
                        break;
                    case ActionResult.Error:
                        Utility.ShowMsg("Lỗi trong quá trình xóa thông tin của phiếu trả nhà cung cấp", "Thông báo lỗi", MessageBoxIcon.Error);
                        break;
                }

            }
            ModifyCommand();
        }