private void cmdDelete_Click(object sender, EventArgs e)
 {
     try
     {
         if (!IsValidData4Delete()) return;
         if (Utility.AcceptQuestion("Bạn có muốn xóa thông tin bản ghi này không", "Thông báo", true))
         {
             v_StaffList_Id = Utility.Int32Dbnull(grdStaffList.GetValue(DmucNhanvien.Columns.IdNhanvien), -1);
             int record = new Delete().From(DmucNhanvien.Schema)
                 .Where(DmucNhanvien.Columns.IdNhanvien).IsEqualTo(v_StaffList_Id).Execute();
             if (record > 0)
             {
                 Utility.ShowMsg("Bạn xóa thành công bản ghi đang chọn", "Thông báo");
                 DataRow[] arrDr = m_dtStaffList.Select(DmucNhanvien.Columns.IdNhanvien + "=" + v_StaffList_Id);
                 if (arrDr.GetLength(0) > 0)
                 {
                     arrDr[0].Delete();
                 }
                 m_dtStaffList.AcceptChanges();
             }
             else
             {
                 Utility.ShowMsg("Lỗi trong quá trình xóa dữ liệu");
             }
         }
         ModifyCommand();
     }
     catch (Exception ex)
     {
     }
 }
        private void cmdDelete_Click(object sender, EventArgs e)
        {
            try
            {
                if (!isValidDelete()) return;
                if (Utility.AcceptQuestion("Bạn có muốn xóa thông tin đang chọn  hay không", "Thông báo", true))
                {
                    int record = new Delete().From(DmucBenh.Schema)
                        .Where(DmucBenh.Columns.IdBenh).IsEqualTo(v_Disease_Id).Execute();
                    if (record > 0)
                    {
                        grdDiease.CurrentRow.Delete();
                        grdDiease.UpdateData();
                        grdDiease.Refresh();
                        m_dtDiease.AcceptChanges();
                        DataRow[] arrDr = globalVariables.gv_dtDmucBenh.Select(DmucBenh.Columns.IdBenh + "=" + v_Disease_Id.ToString());
                        if (arrDr.Length > 0)
                            globalVariables.gv_dtDmucBenh.Rows.Remove(arrDr[0]);
                        globalVariables.gv_dtDmucBenh.AcceptChanges();
                        Utility.ShowMsg("Bạn xóa thông tin bệnh đang chọn thành công", "Thông báo");
                    }
                    else
                    {
                        Utility.ShowMsg("Có lỗi trong khi xóa thông tin bệnh", "Thông báo");
                    }
                }
                ModifyCommand();

            }catch( Exception exception)
            {

            }
        }
 /// <summary>
 /// Delete một bản ghi vào bảng Danh mục dùng chung
 /// </summary>
 /// <param name="obj"></param>
 /// <returns></returns>
 public ActionResult DeleteList(int ID, string Maloai)
 {
     try
     {
         if (isRecordinUsed(Maloai)) return ActionResult.DataHasUsedinAnotherTable;
         int record = new Delete().From(DmucKieudmuc.Schema).Where(DmucKieudmuc.Columns.Id).IsEqualTo(ID).Execute();
         return ActionResult.Success;
     }
     catch
     {
         return ActionResult.Exception;
     }
 }
 /// <summary>
 /// Delete một bản ghi vào bảng Danh mục dùng chung
 /// </summary>
 /// <param name="obj"></param>
 /// <returns></returns>
 public void DeleteList(Int16 id, ref string ActResult)
 {
     try
     {
         int record = new Delete().From(DmucKieukham.Schema).Where(DmucKieukham.Columns.IdKieukham).IsEqualTo(id).Execute();
         if (record > 0)
             ActResult = ActionResult.Success.ToString();
         else
             ActResult = ActionResult.Error.ToString();
     }
     catch
     {
         ActResult = ActionResult.Exception.ToString();
     }
 }
 /// <summary>
 /// Delete một bản ghi vào bảng Danh mục dùng chung
 /// </summary>
 /// <param name="obj"></param>
 /// <returns></returns>
 public void DeleteList(string p_strMa, string LoaiDanhmuc, ref string ActResult)
 {
     try
     {
         int record = new Delete().From(DmucChung.Schema).Where(DmucChung.Columns.Ma).IsEqualTo(p_strMa).And(DmucChung.Columns.Loai).IsEqualTo(LoaiDanhmuc).Execute();
         if (record > 0)
             ActResult = ActionResult.Success.ToString();
         else
             ActResult = ActionResult.Error.ToString();
     }
     catch
     {
         ActResult = ActionResult.Exception.ToString();
     }
 }
        /// <summary>
        /// xóa thông tin của ban ghi đang chọn
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdDelete_Click(object sender, EventArgs e)
        {
            if(grdInsClinic.CurrentRow!=null&&grdInsClinic.CurrentRow.RowType==RowType.Record)
            {
                 string sClinicCode = Utility.sDbnull(grdInsClinic.GetValue(DmucNoiKCBBD.Columns.MaKcbbd),"");
                 string sClinicName = Utility.sDbnull(grdInsClinic.GetValue(DmucNoiKCBBD.Columns.TenKcbbd), "");
                SqlQuery sqlQuery = new Select().From(KcbLuotkham.Schema).Where(KcbLuotkham.Columns.MaKcbbd)
                    .IsEqualTo(sClinicCode);
                if(sqlQuery.GetRecordCount()>0)
                {
                    string strQuestion =
                        string.Format("Hiện tại {0} đã được dùng trong phần thông tin bệnh nhân,Bạn không thể xóa",
                                      sClinicName);

                    Utility.ShowMsg(strQuestion,"Thông báo",MessageBoxIcon.Warning);
                    grdInsClinic.Focus();
                    return;
                }
            if (Utility.AcceptQuestion("Bạn có muốn xóa thông tin đang chọn hay không", "Thông báo", true))
            {
                int record = new Delete().From(DmucNoiKCBBD.Schema)
                    .Where(DmucNoiKCBBD.Columns.IdKcbbd).IsEqualTo(v_ClinicID).Execute();

                if (record > 0)
                {
                    grdInsClinic.CurrentRow.Delete();
                    grdInsClinic.UpdateData();
                    grdInsClinic.Refresh();
                    Utility.ShowMsg("Bạn xóa thông tin bệnh đang chọn thành công", "Thông báo");
                }
                else
                {
                    Utility.ShowMsg("Có lỗi trong khi xóa thông tin bệnh", "Thông báo");
                }
            }
            }
        }
 /// <summary>
 /// hàm thực hiện xóa thông tin bản ghi
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void cmdDelete_Click(object sender, EventArgs e)
 {
     if (grd_Insurance_Objects.CurrentRow != null)
     {
         if (Utility.AcceptQuestion("Bạn có muốn xóa thông tin bản ghi đang chọn hay không", "Thông báo", true))
         {
             int InsObjectId = Utility.Int32Dbnull(grd_Insurance_Objects.GetValue(DmucDoituongbhyt.Columns.IdDoituongbhyt), -1);
             int record = new Delete().From(DmucDoituongbhyt.Schema)
                 .Where(DmucDoituongbhyt.Columns.IdDoituongbhyt).IsEqualTo(InsObjectId).Execute();
             if (record > 0)
             {
                 //Utility.ShowMsg("Bạn xóa bản ghi thành công", "Thông báo");
                 grd_Insurance_Objects.CurrentRow.Delete();
                 grd_Insurance_Objects.UpdateData();
                 grd_Insurance_Objects.Refresh();
                 m_dtInsurance.AcceptChanges();
             }
             else
             {
                 Utility.ShowMsg("Lỗi trong quá trình xóa thông tin");
             }
         }
     }
 }
        /// <summary>
        /// Thực hiện nghiệp vụ Delete dữ liệu
        /// </summary>
        private void PerformDeleteAction()
        {
            int v_intObjectTypeID = Convert.ToInt32(txtID.Text.Trim());
            KcbPhieuchuyenvien item0 = new Select().From(KcbPhieuchuyenvien.Schema)
               .Where(KcbPhieuchuyenvien.Columns.IdBenhvienChuyenden).IsEqualTo(v_intObjectTypeID)
               .ExecuteSingle<KcbPhieuchuyenvien>();
            if (item0 != null)
            {
                Utility.ShowMsg("Bệnh viện bạn đang chọn xóa đã được sử dụng trong các phiếu chuyển viện nên bạn không thể xóa");
                return;
            }
            KcbLuotkham item = new Select().From(KcbLuotkham.Schema)
                .WhereExpression(KcbLuotkham.Columns.IdBenhvienDen).IsEqualTo(v_intObjectTypeID)
                .OrExpression(KcbLuotkham.Columns.IdBenhvienDi).IsEqualTo(v_intObjectTypeID).CloseExpression()
                .ExecuteSingle<KcbLuotkham>();
            if (item != null)
            {
                Utility.ShowMsg("Bệnh viện bạn đang chọn xóa đã được sử dụng trong hệ thống nên bạn không thể xóa");
                return;
            }
            NoitruPhieuravien item1 = new Select().From(NoitruPhieuravien.Schema)
               .Where(NoitruPhieuravien.Columns.IdBenhvienDi).IsEqualTo(v_intObjectTypeID)
               .ExecuteSingle<NoitruPhieuravien>();
            if (item != null)
            {
                Utility.ShowMsg("Bệnh viện bạn đang chọn xóa đã được sử dụng trong các phiếu ra viện nên bạn không thể xóa");
                return;
            }
            if (Utility.AcceptQuestion("Bạn có muốn xóa bệnh viện đang chọn hay không?", "Xác nhận xóa", true))
            {
                //Kiểm tra ko được xóa nếu đã sử dụng trong bảng khác

                DataRow [] v_DeleteObject = dsTable.Select(DmucBenhvien.Columns.IdBenhvien+ "=" + v_intObjectTypeID);

                //Gọi nghiệp vụ xóa dữ liệu\
                //int Count = DmucBenhvien.Delete(v_intObjectTypeID);

                int record = new Delete().From(DmucBenhvien.Schema).Where(DmucBenhvien.IdBenhvienColumn).IsEqualTo(v_intObjectTypeID).Execute();
                if (record>0)//Nếu xóa thành công trong CSDL
                {
                    v_DeleteObject[0].Delete();
                    m_enAction = action.FirstOrFinished;
                    SetControlStatus();
                    Utility.ShowMsg("Đã xóa bệnh viện có mã: " + v_intObjectTypeID + " ra khỏi hệ thống.");
                }
                else//Có lỗi xảy ra
                    Utility.ShowMsg("Lỗi khi xóa ");

            }
        }
Exemple #9
0
        /// <summary>
        /// Deletes the record.
        /// </summary>
        protected void DeleteRecord()
        {
            if(!CanDelete)
                throw new SecurityException(String.Format("This row can not be deleted as it has {0} read-only fields", listReadOnlyColumns.Count));

            SqlQuery qryDelete = new Delete().From(TableSchema).Where(TableSchema.PrimaryKey).IsEqualTo(PrimaryKeyControlValue);
            qryDelete.Execute();
        }
        private void IN_HOADON_THANHTOAN()
        {
            string LyDoIn = "0";
            try
            {
                if (grdPayment.CurrentRow == null)
                    return;
                int payment_ID = Utility.Int32Dbnull(grdPayment.GetValue(KcbThanhtoan.Columns.IdThanhtoan), -1);
                if (!ValidDataHoaDon()) return;
                try
                {
                    dtPatientPayment = _THANHTOAN.Laythongtinhoadondo(payment_ID);
                    dtPatientPayment.Rows[0]["sotien_bangchu"] =
                        new MoneyByLetter().sMoneyToLetter(Utility.sDbnull(dtPatientPayment.Rows[0]["TONG_TIEN"]));
                    int lengh = txtSerieDau.Text.Length;
                    using (var Scope = new TransactionScope())
                    {
                        using (var dbScope = new SharedDbConnectionScope())
                        {
                            if (Utility.Int32Dbnull(grdPayment.GetValue("HDON_LOG_ID")) > 0)
                            {
                                Utility.ShowMsg("Lần thanh toán đã được in hóa đơn. Bạn không thể in lên hóa đơn khác.");
                                return;
                            }
                            var _DmucHoadonLog = new Select().From(DmucHoadonLog.Schema)
                                .Where(DmucHoadonLog.Columns.MauHoadon).IsEqualTo(txtMauHD.Text)
                                .And(DmucHoadonLog.Columns.KiHieu).IsEqualTo(txtKiHieu.Text)
                                .And(DmucHoadonLog.Columns.MaQuyen).IsEqualTo(txtMaQuyen.Text)
                                .And(DmucHoadonLog.Columns.Serie).IsEqualTo(txtSerie.Text)
                                .ExecuteSingle<DmucHoadonLog>();
                            if (_DmucHoadonLog != null)
                            {
                                if (Utility.Int32Dbnull(_DmucHoadonLog.TrangThai) > 0)
                                {
                                    if (
                                        Utility.AcceptQuestion(
                                            "Số seri đã được hủy. Bạn có chắc chắn muốn in lại trên hóa đơn này không? ",
                                            "Xác nhận", true))
                                    {
                                        int record = -1;
                                        record =
                                            new Delete().From(DmucHoadonLog.Schema)
                                                .Where(DmucHoadonLog.Columns.IdHdonLog)
                                                .IsEqualTo(_DmucHoadonLog.IdHdonLog)
                                                .Execute();
                                        if (record <= 0)
                                        {
                                            Utility.ShowMsg("Có lỗi trong quá trình hủy thông tin hóa đơn đã hủy.");
                                            return;
                                        }
                                    }
                                }
                                else
                                {
                                    Utility.ShowMsg("Hóa đơn đã được in cho bệnh nhân mã {0}. Bạn không thể in lại");
                                }
                            }
                            var obj = new DmucHoadonLog();
                            obj.IdThanhtoan = payment_ID;
                            obj.TongTien = Utility.DecimaltoDbnull(dtPatientPayment.Rows[0]["TONG_TIEN"]);
                            obj.IdBenhnhan = Utility.Int32Dbnull(dtPatientPayment.Rows[0]["Id_benhnhan"]);
                            obj.MaLuotkham = Utility.sDbnull(dtPatientPayment.Rows[0]["ma_luotkham"]);
                            obj.MauHoadon = txtMauHD.Text;
                            obj.KiHieu = txtKiHieu.Text;
                            obj.IdCapphat = Utility.Int32Dbnull(grdHoaDonCapPhat.GetValue("HDON_ID"), -1);
                            obj.MaQuyen = txtMaQuyen.Text;
                            obj.Serie = txtSerie.Text;
                            obj.MaNhanvien = globalVariables.UserName;
                            obj.MaLydo = LyDoIn;
                            obj.NgayIn = globalVariables.SysDate;
                            obj.TrangThai = 0;
                            obj.IsNew = true;
                            obj.Save();
                            new Update(DmucHoadonCapphat.Schema).Set(DmucHoadonCapphat.Columns.SerieHientai)
                                .EqualTo(txtSerie.Text)
                                .
                                Set(DmucHoadonCapphat.Columns.TrangThai).EqualTo(1).
                                Where(DmucHoadonCapphat.Columns.IdHoadon).IsEqualTo(HOADON_CAPPHAT_ID).
                                Execute();

                        }
                        Scope.Complete();
                    }
                    grdHoaDonCapPhat.CurrentRow.BeginEdit();
                    grdHoaDonCapPhat.CurrentRow.Cells[DmucHoadonCapphat.Columns.SerieHientai].Value =
                        Utility.sDbnull(txtSerie.Text.PadLeft(lengh, '0'));
                    grdHoaDonCapPhat.CurrentRow.EndEdit();
                    txtSerie.Text = Utility.sDbnull(Utility.Int32Dbnull(txtSerie.Text) + 1);
                    txtSerie.Text = txtSerie.Text.PadLeft(lengh, '0');
                     string tieude="", reportname = "";
                    var report = Utility.GetReport("thanhtoan_RedInvoice",ref tieude,ref reportname);
                    if (report == null) return;
                    report.PrintOptions.PrinterName = Utility.sDbnull(cboPrinter.SelectedValue);
                    report.SetDataSource(dtPatientPayment);
                    report.SetParameterValue("NGUOIIN", Utility.sDbnull(globalVariables.gv_strTenNhanvien, ""));
                    report.PrintToPrinter(0, true, 0, 0);
                    LaydanhsachLichsuthanhtoan_phieuchi();
                    SavePrinterConfig();
                }
                catch (Exception ex1)
                {
                    Utility.ShowMsg("Lỗi khi thực hiện in hóa đơn mẫu. Liên hệ VietBaIT để được trợ giúp-->" +
                                    ex1.Message);
                }
            }
            catch (Exception ex)
            {
                Utility.ShowMsg(ex.Message);
            }
        }
        void cmdXoathuoc_Click(object sender, EventArgs e)
        {
            try
            {
                Utility.SetMsg(lblMsg, "", true);
                if (!Utility.isValidGrid(grdList)) return;
                int idthuoc = Utility.Int32Dbnull(grdList.CurrentRow.Cells[DmucThuoc.Columns.IdThuoc].Value, -1);
                string tenthuoc = Utility.sDbnull(grdList.CurrentRow.Cells[DmucThuoc.Columns.TenThuoc].Value, "Không xác định");
                //Kiểm tra dữ liệu
                SqlQuery _sql = new Select().From(TThuockho.Schema)
                    .Where(TThuockho.Columns.IdThuoc).IsEqualTo(idthuoc);
                if (_sql.GetRecordCount() > 0)
                {
                    Utility.SetMsg(lblMsg, "Thuốc đã có trong kho nên không thể xóa danh mục", true);
                    return;
                }
                _sql = new Select().From(QheDoituongThuoc.Schema)
                    .Where(QheDoituongThuoc.Columns.IdThuoc).IsEqualTo(idthuoc);
                if (_sql.GetRecordCount() > 0)
                {
                    Utility.SetMsg(lblMsg, "Thuốc đã có quan hệ đối tượng nên bạn không thể xóa", true);
                    return;
                }

                if (Utility.AcceptQuestion(string.Format("Bạn có chắc chắn muốn xóa thuốc {0} ra khỏi hệ thống?", tenthuoc), "Xác nhận xóa thuốc", true))
                {
                    int v_intAffectedRecords = new Delete().From(DmucThuoc.Schema).Where(DmucThuoc.Columns.IdThuoc).IsEqualTo(idthuoc).Execute();
                    if (v_intAffectedRecords > 0)
                    {
                        grdList.CurrentRow.Delete();
                        grdList.UpdateData();
                        grdList.Refetch();
                    }
                }
            }
            catch
            {
            }
            finally
            {
                ModifyCommand_Quanhe();
                ModifyCommand();
            }
        }
Exemple #12
0
        public ActionResult Payment4SelectedItems_Ao(KcbThanhtoan objThanhtoan, KcbLuotkham objLuotkham, List<KcbThanhtoanChitiet> objArrPaymentDetail, ref int id_thanhtoan, long IdHdonLog, bool Layhoadondo)
        {
            decimal PtramBHYT = 0;
            ///tổng tiền hiện tại truyền vào của lần payment đang thực hiện
            decimal v_dblTongtienDCT = 0;
            ///tổng tiền đã thanh toán
            decimal v_TotalPaymentDetail = 0;
            try
            {
                using (var scope = new TransactionScope())
                {
                    using (var dbscope = new SharedDbConnectionScope())
                    {
                        ///lấy tổng số Payment của mang truyền vào của pay ment hiện tại
                        v_dblTongtienDCT = TongtienKhongTutuc(objArrPaymentDetail);
                        KcbThanhtoanCollection paymentCollection =
                            new KcbThanhtoanController()
                            .FetchByQuery(
                                KcbThanhtoan.CreateQuery()
                                .AddWhere(KcbThanhtoan.Columns.MaLuotkham, Comparison.Equals, objLuotkham.MaLuotkham)
                                .AND(KcbThanhtoan.Columns.IdBenhnhan, Comparison.Equals, objLuotkham.IdBenhnhan)
                                .AND(KcbThanhtoan.Columns.KieuThanhtoan, Comparison.Equals, objThanhtoan.KieuThanhtoan)
                                .AND(KcbThanhtoan.Columns.TrangThai, Comparison.Equals, 0));
                        //Lấy tổng tiền của các lần thanh toán trước
                        List<KcbThanhtoanChitiet> lstKcbThanhtoanChitiet = new List<KcbThanhtoanChitiet>();
                        foreach (KcbThanhtoan Payment in paymentCollection)
                        {
                            KcbThanhtoanChitietCollection paymentDetailCollection = new Select().From(KcbThanhtoanChitiet.Schema)
                                .Where(KcbThanhtoanChitiet.Columns.IdThanhtoan).IsEqualTo(Payment.IdThanhtoan)
                                .And(KcbThanhtoanChitiet.Columns.TrangthaiHuy).IsEqualTo(0).ExecuteAsCollection
                                <KcbThanhtoanChitietCollection>();

                            foreach (KcbThanhtoanChitiet paymentDetail in paymentDetailCollection)
                            {
                                if (paymentDetail.TuTuc == 0)
                                {
                                    lstKcbThanhtoanChitiet.Add(paymentDetail);

                                    v_TotalPaymentDetail += Utility.Int32Dbnull(paymentDetail.SoLuong) *
                                                            Utility.DecimaltoDbnull(paymentDetail.DonGia);
                                }

                            }
                        }

                        //Tính toán lại phần trăm BHYT chủ yếu liên quan đến phần lương cơ bản.
                        //Phần trăm này có thể bị biến đổi và khác với % trong bảng lượt khám
                        LayThongtinPtramBHYT(v_dblTongtienDCT + v_TotalPaymentDetail, objLuotkham, ref PtramBHYT);
                        objThanhtoan.MaThanhtoan = THU_VIEN_CHUNG.TaoMathanhtoan(Convert.ToDateTime(objThanhtoan.NgayThanhtoan));
                        objThanhtoan.IsNew = true;
                        objThanhtoan.Save();
                        //Tính lại Bnhan chi trả và BHYT chi trả
                         THU_VIEN_CHUNG.TinhPhamTramBHYT(objLuotkham, ref objArrPaymentDetail,ref lstKcbThanhtoanChitiet, PtramBHYT);
                         foreach (KcbThanhtoanChitiet objThanhtoanDetail in lstKcbThanhtoanChitiet)
                         {
                             objThanhtoanDetail.IsNew = false;
                             objThanhtoanDetail.MarkOld();
                             objThanhtoanDetail.Save();
                         }
                        decimal TT_BN = 0m;
                        decimal TT_BHYT = 0m;
                        decimal TT_Chietkhau_Chitiet = 0m;
                        foreach (KcbThanhtoanChitiet objThanhtoanDetail in objArrPaymentDetail)
                        {
                            TT_BN += (objThanhtoanDetail.BnhanChitra + objThanhtoanDetail.PhuThu) * objThanhtoanDetail.SoLuong;
                            TT_BHYT += objThanhtoanDetail.BhytChitra * objThanhtoanDetail.SoLuong;
                            TT_Chietkhau_Chitiet += Utility.DecimaltoDbnull(objThanhtoanDetail.TienChietkhau, 0);
                            objThanhtoanDetail.IdThanhtoan = Utility.Int32Dbnull(objThanhtoan.IdThanhtoan, -1);
                            objThanhtoanDetail.IsNew = true;
                            objThanhtoanDetail.Save();
                            UpdatePaymentStatus(objThanhtoan, objThanhtoanDetail);
                        }

                        #region Hoadondo

                        if (Layhoadondo)
                        {
                            int record = -1;
                            if (IdHdonLog > 0)
                            {
                                record =
                                    new Delete().From(HoadonLog.Schema)
                                        .Where(HoadonLog.Columns.IdHdonLog)
                                        .IsEqualTo(IdHdonLog)
                                        .Execute();
                                if (record <= 0)
                                {
                                    Utility.ShowMsg("Có lỗi trong quá trình xóa thông tin serie hóa đơn đã hủy để cấp lại cho lần thanh toán này.");
                                    return ActionResult.Error;
                                }
                            }
                            var obj = new HoadonLog();
                            obj.IdThanhtoan = objThanhtoan.IdThanhtoan;
                            obj.TongTien = objThanhtoan.TongTien - Utility.DecimaltoDbnull(objThanhtoan.TongtienChietkhau, 0);
                            obj.IdBenhnhan = objThanhtoan.IdBenhnhan;
                            obj.MaLuotkham = objThanhtoan.MaLuotkham;
                            obj.MauHoadon = objThanhtoan.MauHoadon;
                            obj.KiHieu = objThanhtoan.KiHieu;
                            obj.IdCapphat = objThanhtoan.IdCapphat.Value;
                            obj.MaQuyen = objThanhtoan.MaQuyen;
                            obj.Serie = objThanhtoan.Serie;
                            obj.MaNhanvien = globalVariables.UserName;
                            obj.MaLydo = "0";
                            obj.NgayIn = globalVariables.SysDate;
                            obj.TrangThai = 0;
                            obj.IsNew = true;
                            obj.Save();
                            IdHdonLog = obj.IdHdonLog;//Để update lại vào bảng thanh toán
                            new Update(HoadonCapphat.Schema).Set(HoadonCapphat.Columns.SerieHientai)
                                .EqualTo(objThanhtoan.Serie)
                                .Set(HoadonCapphat.Columns.TrangThai).EqualTo(1)
                                .Where(HoadonCapphat.Columns.IdCapphat).IsEqualTo(obj.IdCapphat)
                                .Execute();
                        }
                        #endregion

                        KcbPhieuthu objPhieuthu = new KcbPhieuthu();
                        objPhieuthu.IdBenhnhan = objThanhtoan.IdBenhnhan;
                        objPhieuthu.MaLuotkham = objThanhtoan.MaLuotkham;
                        objPhieuthu.IdThanhtoan = objThanhtoan.IdThanhtoan;
                        objPhieuthu.MaPhieuthu = THU_VIEN_CHUNG.GetMaPhieuThu(globalVariables.SysDate, 0);
                        objPhieuthu.SoluongChungtugoc = 1;
                        objPhieuthu.LoaiPhieuthu = Convert.ToByte(0);
                        objPhieuthu.NgayThuchien = globalVariables.SysDate;
                        objPhieuthu.SoTien = TT_BN - TT_Chietkhau_Chitiet;
                        objPhieuthu.SotienGoc = TT_BN;
                        objPhieuthu.MaLydoChietkhau = objThanhtoan.MaLydoChietkhau;
                        objPhieuthu.TienChietkhauchitiet = TT_Chietkhau_Chitiet;
                        objPhieuthu.TienChietkhau = objThanhtoan.TongtienChietkhau;
                        objPhieuthu.TienChietkhauhoadon = objPhieuthu.TienChietkhau - objPhieuthu.TienChietkhauchitiet;
                        objPhieuthu.NguoiNop = globalVariables.UserName;
                        objPhieuthu.TaikhoanCo = "";
                        objPhieuthu.TaikhoanNo = "";
                        objPhieuthu.NoiTru = (byte)objThanhtoan.KieuThanhtoan;

                        objPhieuthu.LydoNop = "Thu tiền bệnh nhân";
                        objPhieuthu.IdKhoaThuchien = globalVariables.idKhoatheoMay;
                        objPhieuthu.IdNhanvien = globalVariables.gv_intIDNhanvien;
                        objPhieuthu.IsNew = true;
                        objPhieuthu.Save();

                        objLuotkham.IsNew = false;
                        objLuotkham.MarkOld();
                        objLuotkham.Save();

                        new Update(KcbThanhtoan.Schema)
                        .Set(KcbThanhtoan.Columns.TongTien).EqualTo(TT_BHYT + TT_BN)
                        .Set(KcbThanhtoan.Columns.BnhanChitra).EqualTo(TT_BN)
                        .Set(KcbThanhtoan.Columns.BhytChitra).EqualTo(TT_BHYT)
                        .Set(KcbThanhtoan.Columns.MaDoituongKcb).EqualTo(objLuotkham.MaDoituongKcb)
                        .Set(KcbThanhtoan.Columns.IdDoituongKcb).EqualTo(objLuotkham.IdDoituongKcb)
                        .Set(KcbThanhtoan.Columns.PtramBhyt).EqualTo(objLuotkham.PtramBhyt)
                        .Set(KcbThanhtoan.Columns.IdHdonLog).EqualTo(IdHdonLog)
                        .Where(KcbThanhtoan.Columns.IdThanhtoan).IsEqualTo(objThanhtoan.IdThanhtoan).Execute();
                    }
                    scope.Complete();
                    id_thanhtoan = Utility.Int32Dbnull(objThanhtoan.IdThanhtoan, -1);
                    return ActionResult.Success;
                }
            }
            catch (Exception ex)
            {
                log.Error("Loi thuc hien thanh toan:" + ex.ToString());
                return ActionResult.Error;
            }
        }
Exemple #13
0
        public ActionResult ThanhtoanDonthuoctaiquay(KcbThanhtoan objThanhtoan, KcbDanhsachBenhnhan objBenhnhan,List< KcbThanhtoanChitiet> objArrPaymentDetail, ref int id_thanhtoan, long IdHdonLog, bool Layhoadondo)
        {
            decimal PtramBHYT = 0;
            ///tổng tiền hiện tại truyền vào của lần payment đang thực hiện
            decimal v_dblTongtienDCT = 0;
            ///tổng tiền đã thanh toán
            decimal v_TotalPaymentDetail = 0;
            try
            {
                using (var scope = new TransactionScope())
                {
                    using (var dbscope = new SharedDbConnectionScope())
                    {
                        ///lấy tổng số Payment của mang truyền vào của pay ment hiện tại
                        v_dblTongtienDCT = TongtienKhongTutuc(objArrPaymentDetail);
                        KcbThanhtoanCollection paymentCollection =
                            new KcbThanhtoanController()
                            .FetchByQuery(
                                KcbThanhtoan.CreateQuery()
                                .AddWhere
                                //(KcbThanhtoan.Columns.MaLuotkham, Comparison.Equals, objLuotkham.MaLuotkham).AND
                                (KcbThanhtoan.Columns.IdBenhnhan, Comparison.Equals, objBenhnhan.IdBenhnhan)
                                .AND(KcbThanhtoan.Columns.TrangThai, Comparison.Equals, 0)
                                .AND(KcbThanhtoan.Columns.KieuThanhtoan, Comparison.Equals, 0)
                                .AND(KcbThanhtoan.Columns.TrangThai, Comparison.Equals, 0));
                        //Lấy tổng tiền của các lần thanh toán trước
                        int id_donthuoc = -1;
                        foreach (KcbThanhtoan Payment in paymentCollection)
                        {
                            KcbThanhtoanChitietCollection paymentDetailCollection = new Select().From(KcbThanhtoanChitiet.Schema)
                                .Where(KcbThanhtoanChitiet.Columns.IdThanhtoan).IsEqualTo(Payment.IdThanhtoan)
                                .And(KcbThanhtoanChitiet.Columns.TrangthaiHuy).IsEqualTo(0).ExecuteAsCollection
                                <KcbThanhtoanChitietCollection>();

                            foreach (KcbThanhtoanChitiet paymentDetail in paymentDetailCollection)
                            {
                                if (id_donthuoc == -1) id_donthuoc = paymentDetail.IdPhieu;
                                if (paymentDetail.TuTuc == 0)
                                    v_TotalPaymentDetail += Utility.Int32Dbnull(paymentDetail.SoLuong) *
                                                            Utility.DecimaltoDbnull(paymentDetail.DonGia);

                            }
                        }

                        //LayThongtinPtramBHYT(v_dblTongtienDCT + v_TotalPaymentDetail, objLuotkham, ref PtramBHYT);
                        objThanhtoan.MaThanhtoan = THU_VIEN_CHUNG.TaoMathanhtoan(Convert.ToDateTime(objThanhtoan.NgayThanhtoan));
                        objThanhtoan.IsNew = true;
                        objThanhtoan.Save();
                        if (id_donthuoc == -1) id_donthuoc = objArrPaymentDetail[0].IdPhieu;
                        KcbDonthuoc objDonthuoc = KcbDonthuoc.FetchByID(id_donthuoc);
                        KcbDonthuocChitietCollection lstChitiet = new Select().From(KcbDonthuoc.Schema).Where(KcbDonthuoc.Columns.IdDonthuoc).IsEqualTo(id_donthuoc).ExecuteAsCollection<KcbDonthuocChitietCollection>();
                        ActionResult actionResult = ActionResult.Success;
                        if (objDonthuoc != null && lstChitiet.Count>0)
                        {
                            if (!XuatThuoc.InValiKiemTraDonThuoc(lstChitiet,(byte)0)) return ActionResult.NotEnoughDrugInStock;
                            actionResult = new XuatThuoc().LinhThuocBenhNhan(id_donthuoc, Utility.Int16Dbnull(lstChitiet[0].IdKho, 0), globalVariables.SysDate);
                            switch (actionResult)
                            {
                                case ActionResult.Success:

                                    break;
                                case ActionResult.Error:
                                    return actionResult;
                            }
                        }
                        //Tính lại Bnhan chi trả và BHYT chi trả
                        //objArrPaymentDetail = THU_VIEN_CHUNG.TinhPhamTramBHYT(objArrPaymentDetail, PtramBHYT);
                        decimal TT_BN = 0m;
                        decimal TT_BHYT = 0m;
                        decimal TT_Chietkhau_Chitiet = 0m;
                        foreach (KcbThanhtoanChitiet objThanhtoanDetail in objArrPaymentDetail)
                        {
                            TT_BN += (objThanhtoanDetail.BnhanChitra + objThanhtoanDetail.PhuThu) * objThanhtoanDetail.SoLuong;
                            TT_BHYT += objThanhtoanDetail.BhytChitra * objThanhtoanDetail.SoLuong;
                            TT_Chietkhau_Chitiet += Utility.DecimaltoDbnull(objThanhtoanDetail.TienChietkhau, 0);
                            objThanhtoanDetail.IdThanhtoan = Utility.Int32Dbnull(objThanhtoan.IdThanhtoan, -1);
                            objThanhtoanDetail.IsNew = true;
                            objThanhtoanDetail.Save();
                            UpdatePaymentStatus(objThanhtoan, objThanhtoanDetail);
                        }

                        #region Hoadondo

                        if (Layhoadondo)
                        {
                            int record = -1;
                            if (IdHdonLog > 0)
                            {
                                record =
                                    new Delete().From(HoadonLog.Schema)
                                        .Where(HoadonLog.Columns.IdHdonLog)
                                        .IsEqualTo(IdHdonLog)
                                        .Execute();
                                if (record <= 0)
                                {
                                    Utility.ShowMsg("Có lỗi trong quá trình xóa thông tin serie hóa đơn đã hủy để cấp lại cho lần thanh toán này.");
                                    return ActionResult.Error;
                                }
                            }
                            var obj = new HoadonLog();
                            obj.IdThanhtoan = objThanhtoan.IdThanhtoan;
                            obj.TongTien = objThanhtoan.TongTien - Utility.DecimaltoDbnull(objThanhtoan.TongtienChietkhau, 0);
                            obj.IdBenhnhan = objThanhtoan.IdBenhnhan;
                            obj.MaLuotkham = objThanhtoan.MaLuotkham;
                            obj.MauHoadon = objThanhtoan.MauHoadon;
                            obj.KiHieu = objThanhtoan.KiHieu;
                            obj.IdCapphat = objThanhtoan.IdCapphat.Value;
                            obj.MaQuyen = objThanhtoan.MaQuyen;
                            obj.Serie = objThanhtoan.Serie;
                            obj.MaNhanvien = globalVariables.UserName;
                            obj.MaLydo = "0";
                            obj.NgayIn = globalVariables.SysDate;
                            obj.TrangThai = 0;
                            obj.IsNew = true;
                            obj.Save();
                            IdHdonLog = obj.IdHdonLog;//Để update lại vào bảng thanh toán
                            new Update(HoadonCapphat.Schema).Set(HoadonCapphat.Columns.SerieHientai)
                                .EqualTo(objThanhtoan.Serie)
                                .Set(HoadonCapphat.Columns.TrangThai).EqualTo(1)
                                .Where(HoadonCapphat.Columns.IdCapphat).IsEqualTo(obj.IdCapphat)
                                .Execute();
                        }
                        #endregion
                        KcbPhieuthu objPhieuthu = new KcbPhieuthu();
                        objPhieuthu.IdBenhnhan = objThanhtoan.IdBenhnhan;
                        objPhieuthu.MaLuotkham = objThanhtoan.MaLuotkham;
                        objPhieuthu.IdThanhtoan = objThanhtoan.IdThanhtoan;
                        objPhieuthu.MaPhieuthu = THU_VIEN_CHUNG.GetMaPhieuThu(globalVariables.SysDate, 0);
                        objPhieuthu.SoluongChungtugoc = 1;
                        objPhieuthu.LoaiPhieuthu = Convert.ToByte(0);
                        objPhieuthu.NgayThuchien = globalVariables.SysDate;
                        objPhieuthu.SoTien = TT_BN - TT_Chietkhau_Chitiet;
                        objPhieuthu.SotienGoc = TT_BN;
                        objPhieuthu.MaLydoChietkhau = objThanhtoan.MaLydoChietkhau;
                        objPhieuthu.TienChietkhauchitiet = TT_Chietkhau_Chitiet;
                        objPhieuthu.TienChietkhau = objThanhtoan.TongtienChietkhau;
                        objPhieuthu.TienChietkhauhoadon = objPhieuthu.TienChietkhau - objPhieuthu.TienChietkhauchitiet;
                        objPhieuthu.NguoiNop = globalVariables.UserName;
                        objPhieuthu.TaikhoanCo = "";
                        objPhieuthu.TaikhoanNo = "";
                        objPhieuthu.LydoNop = "Thu tiền bệnh nhân";
                        objPhieuthu.IdKhoaThuchien = globalVariables.idKhoatheoMay;
                        objPhieuthu.IdNhanvien = globalVariables.gv_intIDNhanvien;
                        objPhieuthu.IsNew = true;
                        objPhieuthu.Save();

                        new Update(KcbThanhtoan.Schema)
                        .Set(KcbThanhtoan.Columns.TongTien).EqualTo(TT_BHYT + TT_BN)
                        .Set(KcbThanhtoan.Columns.BnhanChitra).EqualTo(TT_BN)
                        .Set(KcbThanhtoan.Columns.BhytChitra).EqualTo(TT_BHYT)
                        .Set(KcbThanhtoan.Columns.IdHdonLog).EqualTo(IdHdonLog)
                        .Where(KcbThanhtoan.Columns.IdThanhtoan).IsEqualTo(objThanhtoan.IdThanhtoan).Execute();
                    }
                    scope.Complete();
                    id_thanhtoan = Utility.Int32Dbnull(objThanhtoan.IdThanhtoan, -1);
                    return ActionResult.Success;
                }
            }
            catch (Exception ex)
            {
                log.Error("Loi thuc hien thanh toan:" + ex.ToString());
                return ActionResult.Error;
            }
        }
Exemple #14
0
        public ActionResult LayHoadondo(long id_thanhtoan, string MauHoadon,string KiHieu,string MaQuyen,string Serie,int IdCapphat, long IdHdonLog_huy,ref long IdHdonLog)
        {
            try
            {
                using (var scope = new TransactionScope())
                {
                    using (var db = new SharedDbConnectionScope())
                    {
                        KcbThanhtoan objThanhtoan = KcbThanhtoan.FetchByID(id_thanhtoan);
                        if (objThanhtoan == null) return ActionResult.Error;

                        if (IdHdonLog_huy > 0)
                        {
                           int record =
                                new Delete().From(HoadonLog.Schema)
                                    .Where(HoadonLog.Columns.IdHdonLog)
                                    .IsEqualTo(IdHdonLog_huy)
                                    .Execute();
                        }

                        var obj = new HoadonLog();
                        obj.IdThanhtoan = objThanhtoan.IdThanhtoan;
                        obj.TongTien = objThanhtoan.TongTien - Utility.DecimaltoDbnull(objThanhtoan.TongtienChietkhau, 0);
                        obj.IdBenhnhan = objThanhtoan.IdBenhnhan;
                        obj.MaLuotkham = objThanhtoan.MaLuotkham;
                        obj.MauHoadon = MauHoadon;
                        obj.KiHieu = KiHieu;
                        obj.IdCapphat = IdCapphat;
                        obj.MaQuyen = MaQuyen;
                        obj.Serie = Serie;
                        obj.MaNhanvien = globalVariables.UserName;
                        obj.MaLydo = "0";
                        obj.NgayIn = globalVariables.SysDate;
                        obj.TrangThai = 0;
                        obj.IsNew = true;
                        obj.Save();
                        IdHdonLog = obj.IdHdonLog;
                        new Update(KcbThanhtoan.Schema)
                        .Set(KcbThanhtoan.Columns.Serie).EqualTo(Serie)
                        .Set(KcbThanhtoan.Columns.MauHoadon).EqualTo(MauHoadon)
                        .Set(KcbThanhtoan.Columns.MaQuyen).EqualTo(MaQuyen)
                        .Set(KcbThanhtoan.Columns.KiHieu).EqualTo(KiHieu)
                        .Set(KcbThanhtoan.Columns.IdHdonLog).EqualTo(obj.IdHdonLog)
                        .Set(KcbThanhtoan.Columns.IdCapphat).EqualTo(obj.IdCapphat)
                        .Set(KcbThanhtoan.Columns.TrangthaiSeri).EqualTo(0)
                       .Where(KcbThanhtoan.Columns.IdThanhtoan).IsEqualTo(id_thanhtoan).Execute();
                    }
                    scope.Complete();
                    return ActionResult.Success;
                }
            }
            catch
            {
                return ActionResult.Exception;
            }
        }
Exemple #15
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="objThanhtoan"></param>
        /// <param name="objLuotkham"></param>
        /// <param name="objArrPaymentDetail"></param>
        /// <param name="id_thanhtoan"></param>
        /// <param name="IdHdonLog"></param>
        /// <param name="Layhoadondo"></param>
        /// <param name="TongtienBNchitra"></param>
        /// <returns></returns>
        public ActionResult Payment4SelectedItems(KcbThanhtoan objThanhtoan, KcbLuotkham objLuotkham, List<KcbThanhtoanChitiet> objArrPaymentDetail, ref int id_thanhtoan, long IdHdonLog, bool Layhoadondo, ref decimal TongtienBNchitra)
        {
            decimal PtramBHYT = 0;
            ///tổng tiền hiện tại truyền vào của lần payment đang thực hiện
            decimal v_dblTongtienDCT = 0;
            ///tổng tiền đã thanh toán
            decimal v_TotalPaymentDetail = 0;
            try
            {
                using (var scope = new TransactionScope())
                {
                    using (var dbscope = new SharedDbConnectionScope())
                    {
                        if (Utility.Byte2Bool(objThanhtoan.NoiTru))
                        {
                            if (THU_VIEN_CHUNG.Laygiatrithamsohethong("NOITRU_TUDONGHOANUNG_KHITHANHTOANNOITRU", "0", false) == "1")
                            {
                                SPs.NoitruHoanung(objLuotkham.MaLuotkham, objLuotkham.IdBenhnhan, objThanhtoan.NgayThanhtoan, globalVariables.gv_intIDNhanvien,globalVariables.UserName, (int)objLuotkham.IdKhoanoitru, (long)objLuotkham.IdRavien, (int)objLuotkham.IdBuong, (int)objLuotkham.IdGiuong).Execute();
                            }
                        }
                        ///Tính tổng tiền đồng chi trả
                        v_dblTongtienDCT = TongtienKhongTutuc(objArrPaymentDetail);
                        KcbThanhtoanCollection paymentCollection =
                            new KcbThanhtoanController()
                            .FetchByQuery(
                                KcbThanhtoan.CreateQuery()
                                .AddWhere(KcbThanhtoan.Columns.MaLuotkham, Comparison.Equals,objLuotkham.MaLuotkham)
                                .AND(KcbThanhtoan.Columns.IdBenhnhan, Comparison.Equals,objLuotkham.IdBenhnhan)
                                .AND(KcbThanhtoan.Columns.KieuThanhtoan, Comparison.Equals, objThanhtoan.KieuThanhtoan)
                                .AND(KcbThanhtoan.Columns.TrangThai, Comparison.Equals, 0));//Chỉ lấy về các bản ghi thanh toán thường(0= thường;1= thanh toán hủy(trả lại tiền))
                        //Lấy tổng tiền của các lần thanh toán trước
                        List<KcbThanhtoanChitiet> lstKcbThanhtoanChitiet = new List<KcbThanhtoanChitiet>();

                        foreach (KcbThanhtoan Payment in paymentCollection)
                        {
                            KcbThanhtoanChitietCollection paymentDetailCollection = new Select().From(KcbThanhtoanChitiet.Schema)
                                .Where(KcbThanhtoanChitiet.Columns.IdThanhtoan).IsEqualTo(Payment.IdThanhtoan)
                                .And(KcbThanhtoanChitiet.Columns.NoiTru).IsEqualTo(objThanhtoan.NoiTru)
                                .And(KcbThanhtoanChitiet.Columns.TrangthaiHuy).IsEqualTo(0).ExecuteAsCollection
                                <KcbThanhtoanChitietCollection>();

                            foreach (KcbThanhtoanChitiet paymentDetail in paymentDetailCollection)
                            {
                                if (paymentDetail.TuTuc == 0)
                                {
                                    lstKcbThanhtoanChitiet.Add(paymentDetail);
                                    paymentDetail.IsNew = false;
                                    paymentDetail.MarkOld();
                                    v_TotalPaymentDetail += Utility.Int32Dbnull(paymentDetail.SoLuong) *
                                                            Utility.DecimaltoDbnull(paymentDetail.DonGia);
                                }

                            }
                        }
                        List<int> lstIdThanhtoan = (from q in lstKcbThanhtoanChitiet
                                                     select q.IdThanhtoan).ToList<int>();
                        //Tính toán lại phần trăm BHYT chủ yếu liên quan đến phần lương cơ bản.
                        //Phần trăm này có thể bị biến đổi và khác với % trong các bảng dịch vụ
                        LayThongtinPtramBHYT(v_dblTongtienDCT + v_TotalPaymentDetail, objLuotkham, ref PtramBHYT);
                        objThanhtoan.MaThanhtoan = THU_VIEN_CHUNG.TaoMathanhtoan(Convert.ToDateTime(objThanhtoan.NgayThanhtoan));

                        objThanhtoan.IdLoaidoituongKcb = objLuotkham.IdLoaidoituongKcb;
                        objThanhtoan.IsNew = true;
                        objThanhtoan.Save();
                       //Tính lại Bnhan chi trả và BHYT chi trả
                         THU_VIEN_CHUNG.TinhPhamTramBHYT(objLuotkham, ref objArrPaymentDetail, ref lstKcbThanhtoanChitiet,PtramBHYT);
                         decimal TT_BN = 0m;
                         decimal TT_BHYT = 0m;
                         decimal TT_Chietkhau_Chitiet = 0m;

                         if (THU_VIEN_CHUNG.Laygiatrithamsohethong("BHYT_TINHLAI_TOANBODICHVU", "1", false) == "1")
                         {
                             foreach (int IdThanhtoan in lstIdThanhtoan)
                             {
                                 TT_BN = 0m;
                                 TT_BHYT = 0m;
                                 TT_Chietkhau_Chitiet = 0m;
                                 List<KcbThanhtoanChitiet> _LstChitiet = (from q in lstKcbThanhtoanChitiet
                                                                          select q).ToList<KcbThanhtoanChitiet>();

                                 if (_LstChitiet.Count > 0)
                                 {
                                     foreach (KcbThanhtoanChitiet objThanhtoanDetail in _LstChitiet)
                                     {
                                         TT_BN += (objThanhtoanDetail.BnhanChitra + objThanhtoanDetail.PhuThu) * objThanhtoanDetail.SoLuong;
                                         if (!Utility.Byte2Bool(objThanhtoanDetail.TuTuc))
                                             TT_BHYT += objThanhtoanDetail.BhytChitra * objThanhtoanDetail.SoLuong;
                                         TT_Chietkhau_Chitiet += Utility.DecimaltoDbnull(objThanhtoanDetail.TienChietkhau, 0);
                                         objThanhtoanDetail.IsNew = false;
                                         objThanhtoanDetail.MarkOld();
                                         objThanhtoanDetail.Save();
                                     }
                                     //Update lại tiền thanh toán
                                     new Update(KcbThanhtoan.Schema)
                       .Set(KcbThanhtoan.Columns.TongTien).EqualTo(TT_BHYT + TT_BN)
                       .Set(KcbThanhtoan.Columns.BnhanChitra).EqualTo(TT_BN)
                       .Set(KcbThanhtoan.Columns.BhytChitra).EqualTo(TT_BHYT)
                       .Set(KcbThanhtoan.Columns.MaDoituongKcb).EqualTo(objLuotkham.MaDoituongKcb)
                       .Set(KcbThanhtoan.Columns.IdDoituongKcb).EqualTo(objLuotkham.IdDoituongKcb)
                       .Set(KcbThanhtoan.Columns.PtramBhyt).EqualTo(objLuotkham.PtramBhyt)
                       .Set(KcbThanhtoan.Columns.IdHdonLog).EqualTo(IdHdonLog)
                       .Where(KcbThanhtoan.Columns.IdThanhtoan).IsEqualTo(IdThanhtoan).Execute();
                                     //Update phiếu thu
                                     new Update(KcbPhieuthu.Schema)
                      .Set(KcbPhieuthu.Columns.SoTien).EqualTo(TT_BN - TT_Chietkhau_Chitiet)
                      .Set(KcbPhieuthu.Columns.SotienGoc).EqualTo(TT_BN)
                      .Where(KcbPhieuthu.Columns.IdThanhtoan).IsEqualTo(IdThanhtoan).Execute();
                                 }

                             }
                         }
                        //Reset để không bị cộng dồn với các thanh toán cũ
                         TT_BN = 0m;
                         TT_BHYT = 0m;
                         TT_Chietkhau_Chitiet = 0m;
                        foreach (KcbThanhtoanChitiet objThanhtoanDetail in objArrPaymentDetail)
                        {
                            TT_BN += (objThanhtoanDetail.BnhanChitra + objThanhtoanDetail.PhuThu) * objThanhtoanDetail.SoLuong;
                            if (!Utility.Byte2Bool(objThanhtoanDetail.TuTuc))
                                TT_BHYT += objThanhtoanDetail.BhytChitra * objThanhtoanDetail.SoLuong;
                            TT_Chietkhau_Chitiet += Utility.DecimaltoDbnull(objThanhtoanDetail.TienChietkhau, 0);
                            objThanhtoanDetail.IdThanhtoan = Utility.Int32Dbnull(objThanhtoan.IdThanhtoan, -1);

                            objThanhtoanDetail.IsNew = true;
                            objThanhtoanDetail.Save();
                            UpdatePaymentStatus(objThanhtoan, objThanhtoanDetail);
                        }
                        TongtienBNchitra = TT_BN;
                        #region Hoadondo

                        if (Layhoadondo)
                        {
                            int record = -1;
                            if (IdHdonLog > 0)
                            {
                                record =
                                    new Delete().From(HoadonLog.Schema)
                                        .Where(HoadonLog.Columns.IdHdonLog)
                                        .IsEqualTo(IdHdonLog)
                                        .Execute();
                                if (record <= 0)
                                {
                                    Utility.ShowMsg("Có lỗi trong quá trình xóa thông tin serie hóa đơn đã hủy để cấp lại cho lần thanh toán này.");
                                    return ActionResult.Error;
                                }
                            }
                            var obj = new HoadonLog();
                            obj.IdThanhtoan = objThanhtoan.IdThanhtoan;
                            obj.TongTien = objThanhtoan.TongTien - Utility.DecimaltoDbnull(objThanhtoan.TongtienChietkhau, 0);
                            obj.IdBenhnhan = objThanhtoan.IdBenhnhan;
                            obj.MaLuotkham = objThanhtoan.MaLuotkham;
                            obj.MauHoadon = objThanhtoan.MauHoadon;
                            obj.KiHieu = objThanhtoan.KiHieu;
                            obj.IdCapphat = objThanhtoan.IdCapphat.Value;
                            obj.MaQuyen = objThanhtoan.MaQuyen;
                            obj.Serie = objThanhtoan.Serie;
                            obj.MaNhanvien = globalVariables.UserName;
                            obj.MaLydo = "0";
                            obj.NgayIn = globalVariables.SysDate;
                            obj.TrangThai = 0;
                            obj.IsNew = true;
                            obj.Save();
                            IdHdonLog = obj.IdHdonLog;//Để update lại vào bảng thanh toán
                            new Update(HoadonCapphat.Schema).Set(HoadonCapphat.Columns.SerieHientai)
                                .EqualTo(objThanhtoan.Serie)
                                .Set(HoadonCapphat.Columns.TrangThai).EqualTo(1)
                                .Where(HoadonCapphat.Columns.IdCapphat).IsEqualTo(obj.IdCapphat)
                                .Execute();
                        }
                        #endregion

                        KcbPhieuthu objPhieuthu = new KcbPhieuthu();
                        objPhieuthu.IdBenhnhan = objThanhtoan.IdBenhnhan;
                        objPhieuthu.MaLuotkham = objThanhtoan.MaLuotkham;
                        objPhieuthu.IdThanhtoan = objThanhtoan.IdThanhtoan;
                        objPhieuthu.MaPhieuthu = THU_VIEN_CHUNG.GetMaPhieuThu(globalVariables.SysDate, 0);
                        objPhieuthu.SoluongChungtugoc = 1;
                        objPhieuthu.LoaiPhieuthu = Convert.ToByte(0);
                        objPhieuthu.NgayThuchien = globalVariables.SysDate;
                        objPhieuthu.SoTien = TT_BN - TT_Chietkhau_Chitiet;
                        objPhieuthu.SotienGoc = TT_BN;
                        objPhieuthu.MaLydoChietkhau = objThanhtoan.MaLydoChietkhau;
                        objPhieuthu.TienChietkhauchitiet = TT_Chietkhau_Chitiet;
                        objPhieuthu.TienChietkhau = objThanhtoan.TongtienChietkhau;
                        objPhieuthu.TienChietkhauhoadon = objPhieuthu.TienChietkhau - objPhieuthu.TienChietkhauchitiet;
                        objPhieuthu.NguoiNop = globalVariables.UserName;
                        objPhieuthu.TaikhoanCo = "";
                        objPhieuthu.TaikhoanNo = "";
                        objPhieuthu.NoiTru = (byte)objThanhtoan.NoiTru;
                        objPhieuthu.LydoNop = "Thu tiền bệnh nhân";
                        objPhieuthu.IdKhoaThuchien = globalVariables.idKhoatheoMay;
                        objPhieuthu.IdNhanvien = globalVariables.gv_intIDNhanvien;
                        objPhieuthu.IsNew = true;
                        objPhieuthu.Save();

                        new Update(KcbThanhtoan.Schema)
                        .Set(KcbThanhtoan.Columns.TongTien).EqualTo(TT_BHYT + TT_BN)
                        .Set(KcbThanhtoan.Columns.BnhanChitra).EqualTo(TT_BN)
                        .Set(KcbThanhtoan.Columns.BhytChitra).EqualTo(TT_BHYT)
                        .Set(KcbThanhtoan.Columns.MaDoituongKcb).EqualTo(objLuotkham.MaDoituongKcb)
                        .Set(KcbThanhtoan.Columns.IdDoituongKcb).EqualTo(objLuotkham.IdDoituongKcb)
                        .Set(KcbThanhtoan.Columns.PtramBhyt).EqualTo(objLuotkham.PtramBhyt)
                        .Set(KcbThanhtoan.Columns.IdHdonLog).EqualTo(IdHdonLog)
                        .Where(KcbThanhtoan.Columns.IdThanhtoan).IsEqualTo(objThanhtoan.IdThanhtoan).Execute();

                        if (Utility.Byte2Bool(objThanhtoan.NoiTru) && Utility.ByteDbnull(objLuotkham.TrangthaiNoitru,0)>=2)
                            new Update(KcbLuotkham.Schema).Set(KcbLuotkham.Columns.TthaiThanhtoannoitru).EqualTo(1)
                                .Where(KcbLuotkham.Columns.IdBenhnhan).IsEqualTo(objLuotkham.IdBenhnhan)
                                .And(KcbLuotkham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham)
                                .Execute();
                    }
                    scope.Complete();
                    id_thanhtoan = Utility.Int32Dbnull(objThanhtoan.IdThanhtoan, -1);
                    return ActionResult.Success;
                }
            }
            catch (Exception ex)
            {
                log.Error("Loi thuc hien thanh toan:" + ex.ToString());
                return ActionResult.Error;
            }
        }
Exemple #16
0
        /// <summary>
        /// Saves the many to many.
        /// </summary>
        private void SaveManyToMany()
        {
            foreach(TableSchema.ManyToManyRelationship m2m in ManyToManyCollection)
            {
                TableSchema.Table mapTable = DataService.GetSchema(m2m.MapTableName, ProviderName);

                CheckBoxList chk = (CheckBoxList)FindControl(mapTable.ClassName);
                if(chk != null)
                {
                    ListItemCollection listItems = new ListItemCollection();
                    foreach(ListItem item in chk.Items)
                    {
                        if(item.Selected)
                            listItems.Add(item);
                    }
                    //using(TransactionScope ts = new TransactionScope())
                    //{
                    //    using(SharedDbConnectionScope connScope = new SharedDbConnectionScope())
                    //    {
                    SqlQuery qryDelete = new Delete().From(mapTable).Where(m2m.MapTableLocalTableKeyColumn).IsEqualTo(PrimaryKeyControlValue);
                    qryDelete.Execute();

                    foreach(ListItem selectedItem in listItems)
                    {
                        Insert qryInsert = new Insert(mapTable, false);
                        qryInsert.Value(mapTable.GetColumn(m2m.MapTableLocalTableKeyColumn), PrimaryKeyControlValue);
                        qryInsert.Value(mapTable.GetColumn(m2m.MapTableForeignTableKeyColumn), selectedItem.Value);
                        qryInsert.Execute();
                    }
                    //    }
                    //    ts.Complete();
                    //}
                }
            }
        }
        /// <summary>
        /// Thực hiện nghiệp vụ Delete dữ liệu
        /// </summary>
        private void PerformDeleteAction()
        {
            if (Utility.AcceptQuestion("Bạn có muốn xóa đối tượng đang chọn hay không?", "Xác nhận xóa", true))
            {
                int v_intObjectTypeID = Convert.ToInt32(txtID.Text.Trim());

                QheDoituongThuoc _item2 = new Select().From(QheDoituongThuoc.Schema).Where(QheDoituongThuoc.Columns.IdDoituongKcb).IsEqualTo(v_intObjectTypeID).ExecuteSingle<QheDoituongThuoc>();
                if (_item2 != null)
                {
                    Utility.ShowMsg("Đối tượng KCB này đã được sử dụng trong bảng khác nên bạn không thể xóa");
                    return;
                }

                DataRow [] v_DeleteObject = dsTable.Select(DmucDoituongkcb.Columns.IdDoituongKcb+ "=" + v_intObjectTypeID);

                //Gọi nghiệp vụ xóa dữ liệu\
                //int Count = DmucDoituongkcb.Delete(v_intObjectTypeID);

                int record = new Delete().From(DmucDoituongkcb.Schema).Where(DmucDoituongkcb.IdDoituongKcbColumn).IsEqualTo(v_intObjectTypeID).Execute();
                if (record>0)//Nếu xóa thành công trong CSDL
                {
                    v_DeleteObject[0].Delete();
                    m_enAction = action.FirstOrFinished;
                    SetControlStatus();
                    Utility.ShowMsg("Đã xóa đối tượng có mã: " + v_intObjectTypeID + " ra khỏi hệ thống.");
                }
                else//Có lỗi xảy ra
                    Utility.ShowMsg("Lỗi khi xóa ");

            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="objThanhtoan"></param>
        /// <param name="objLuotkham"></param>
        /// <param name="objArrPaymentDetail"></param>
        /// <param name="id_thanhtoan"></param>
        /// <param name="IdHdonLog"></param>
        /// <param name="Layhoadondo"></param>
        /// <param name="TongtienBNchitra"></param>
        /// <returns></returns>
        public ActionResult ThanhtoanChiphiDVuKCB(KcbThanhtoan objThanhtoan, KcbLuotkham objLuotkham, List<KcbThanhtoanChitiet> objArrPaymentDetail, ref int id_thanhtoan, long IdHdonLog, bool Layhoadondo, ref decimal TongtienBNchitra,ref string ErrMsg)
        {
            ErrMsg = "";
            decimal PtramBHYT = 0;
            ///tổng tiền hiện tại truyền vào của lần payment đang thực hiện
            decimal v_dblTongtienDCT = 0;
            ///tổng tiền đã thanh toán
            decimal v_TotalPaymentDetail = 0;
            try
            {
                using (var scope = new TransactionScope())
                {
                    using (var dbscope = new SharedDbConnectionScope())
                    {
                        if (Utility.Byte2Bool(objThanhtoan.NoiTru))
                        {
                            if (THU_VIEN_CHUNG.Laygiatrithamsohethong("NOITRU_TUDONGHOANUNG_KHITHANHTOANNOITRU", "0", false) == "1")
                            {
                                SPs.NoitruHoanung(objLuotkham.MaLuotkham, objLuotkham.IdBenhnhan, objThanhtoan.NgayThanhtoan, globalVariables.gv_intIDNhanvien, globalVariables.UserName, (int)objLuotkham.IdKhoanoitru, (long)objLuotkham.IdRavien, (int)objLuotkham.IdBuong, (int)objLuotkham.IdGiuong, (byte)1).Execute();
                            }
                        }
                        else
                        {
                            if (THU_VIEN_CHUNG.Laygiatrithamsohethong("KCB_THANHTOAN_KICHHOAT_TAMUNG_NGOAITRU", "0", false) == "1")
                                if (THU_VIEN_CHUNG.Laygiatrithamsohethong("NGOAITRU_TUDONGHOANUNG_KHITHANHTOANNGOAITRU", "0", false) == "1")
                                {
                                    SPs.NoitruHoanung(objLuotkham.MaLuotkham, objLuotkham.IdBenhnhan, objThanhtoan.NgayThanhtoan, globalVariables.gv_intIDNhanvien, globalVariables.UserName, (int)objLuotkham.IdKhoanoitru, (long)objLuotkham.IdRavien, (int)objLuotkham.IdBuong, (int)objLuotkham.IdGiuong, (byte)0).Execute();
                                }
                        }
                        ///Tính tổng tiền đồng chi trả
                        v_dblTongtienDCT = TongtienKhongTutuc(objArrPaymentDetail);

                        KcbThanhtoanCollection lstKcbThanhtoanCollection =
                              new KcbThanhtoanController()
                              .FetchByQuery(
                                  KcbThanhtoan.CreateQuery()
                                  .AddWhere(KcbThanhtoan.Columns.MaLuotkham, Comparison.Equals, objLuotkham.MaLuotkham)
                                  .AND(KcbThanhtoan.Columns.IdBenhnhan, Comparison.Equals, objLuotkham.IdBenhnhan)
                                  .AND(KcbThanhtoan.Columns.KieuThanhtoan, Comparison.Equals, 0)
                                  );
                        List<long> lstIdThanhtoan = (from q in lstKcbThanhtoanCollection
                                                     select q.IdThanhtoan).Distinct().ToList<long>();
                        //Biến chứa danh sách tất cả các chi tiết dùng để tính lại tổng tiền thanh toán cho thanh toán có bản ghi bị hủy
                        List<KcbThanhtoanChitiet> lstKcbThanhtoanChitiet = new List<KcbThanhtoanChitiet>();
                        if (lstIdThanhtoan.Count > 0)
                            lstKcbThanhtoanChitiet =
                            new Select().From(KcbThanhtoanChitiet.Schema)
                            .Where(KcbThanhtoanChitiet.Columns.IdThanhtoan).In(lstIdThanhtoan)
                            .ExecuteAsCollection<KcbThanhtoanChitietCollection>().ToList<KcbThanhtoanChitiet>();

                        v_TotalPaymentDetail = (from p in lstKcbThanhtoanChitiet
                                                where p.TuTuc == 0
                                                select p).Sum(c => c.SoLuong * c.DonGia);

                        //Tính toán lại phần trăm BHYT chủ yếu liên quan đến phần lương cơ bản.
                        //Phần trăm này có thể bị biến đổi và khác với % trong các bảng dịch vụ
                        LayThongtinPtramBHYT(v_dblTongtienDCT + v_TotalPaymentDetail, objLuotkham, ref PtramBHYT);
                        objThanhtoan.MaThanhtoan = THU_VIEN_CHUNG.TaoMathanhtoan(Convert.ToDateTime(objThanhtoan.NgayThanhtoan));

                        objThanhtoan.PtramBhyt = Utility.Int16Dbnull(PtramBHYT, 0);
                        objThanhtoan.IdLoaidoituongKcb = objLuotkham.IdLoaidoituongKcb;
                        objThanhtoan.IsNew = true;
                        objThanhtoan.Save();
                        //Tính lại Bnhan chi trả và BHYT chi trả theo % BHYT mới
                        THU_VIEN_CHUNG.TinhPhamTramBHYT(objLuotkham, ref objArrPaymentDetail, ref lstKcbThanhtoanChitiet, PtramBHYT);
                        decimal TT_BN = 0m;
                        decimal TT_BNCT = 0m;
                        decimal TT_PT = 0m;
                        decimal TT_TT = 0m;
                        decimal TT_BHYT = 0m;
                        decimal TT_Chietkhau_Chitiet = 0m;

                        if (THU_VIEN_CHUNG.Laygiatrithamsohethong("BHYT_TINHLAI_TOANBODICHVU", "1", false) == "1")
                        {
                            foreach (int IdThanhtoan in lstIdThanhtoan)
                            {
                                TT_BN = 0m;
                                TT_BHYT = 0m;
                                TT_PT = 0m;
                                TT_TT = 0m;
                                TT_BNCT = 0m;
                                TT_Chietkhau_Chitiet = 0m;
                                List<KcbThanhtoanChitiet> _LstChitiet = (from q in lstKcbThanhtoanChitiet
                                                                         where q.IdThanhtoan == IdThanhtoan
                                                                         select q).ToList<KcbThanhtoanChitiet>();

                                if (_LstChitiet.Count > 0)
                                {
                                    foreach (KcbThanhtoanChitiet objChitietThanhtoan in _LstChitiet)
                                    {
                                        if (!Utility.Byte2Bool(objChitietThanhtoan.TuTuc))
                                            TT_BHYT += objChitietThanhtoan.BhytChitra * objChitietThanhtoan.SoLuong;
                                        TT_Chietkhau_Chitiet += Utility.DecimaltoDbnull(objChitietThanhtoan.TienChietkhau, 0);
                                        TT_PT +=  objChitietThanhtoan.PhuThu * objChitietThanhtoan.SoLuong;
                                        if (Utility.Byte2Bool(objChitietThanhtoan.TuTuc))
                                            TT_TT += objChitietThanhtoan.BnhanChitra * objChitietThanhtoan.SoLuong;
                                        else
                                            TT_BNCT += objChitietThanhtoan.BnhanChitra * objChitietThanhtoan.SoLuong;

                                        objChitietThanhtoan.IsNew = false;
                                        objChitietThanhtoan.MarkOld();
                                        objChitietThanhtoan.Save();
                                    }
                                    TT_BN += TT_PT + TT_BNCT + TT_TT;
                                    //Update lại tiền thanh toán
                                    new Update(KcbThanhtoan.Schema)
                      .Set(KcbThanhtoan.Columns.TongTien).EqualTo(TT_BHYT + TT_BN)
                      .Set(KcbThanhtoan.Columns.BnhanChitra).EqualTo(TT_BNCT)
                      .Set(KcbThanhtoan.Columns.BhytChitra).EqualTo(TT_BHYT)
                      .Set(KcbThanhtoan.Columns.PhuThu).EqualTo(TT_PT)
                      .Set(KcbThanhtoan.Columns.TuTuc).EqualTo(TT_TT)
                      .Set(KcbThanhtoan.Columns.MaDoituongKcb).EqualTo(objLuotkham.MaDoituongKcb)
                      .Set(KcbThanhtoan.Columns.IdDoituongKcb).EqualTo(objLuotkham.IdDoituongKcb)
                      .Set(KcbThanhtoan.Columns.PtramBhyt).EqualTo(objLuotkham.PtramBhyt)
                      .Set(KcbThanhtoan.Columns.IdHdonLog).EqualTo(IdHdonLog)
                      .Where(KcbThanhtoan.Columns.IdThanhtoan).IsEqualTo(IdThanhtoan).Execute();
                                    //Update phiếu thu
                                    new Update(KcbPhieuthu.Schema)
                     .Set(KcbPhieuthu.Columns.SoTien).EqualTo(TT_BN - TT_Chietkhau_Chitiet)
                     .Set(KcbPhieuthu.Columns.SotienGoc).EqualTo(TT_BN)
                     .Where(KcbPhieuthu.Columns.IdThanhtoan).IsEqualTo(IdThanhtoan).Execute();
                                }

                            }
                        }
                        //Reset để không bị cộng dồn với các thanh toán cũ
                        TT_BN = 0m;
                        TT_BHYT = 0m;
                        TT_PT = 0m;
                        TT_TT = 0m;
                        TT_BNCT = 0m;
                        TT_Chietkhau_Chitiet = 0m;
                        int reval = -1;
                        foreach (KcbThanhtoanChitiet objChitietThanhtoan in objArrPaymentDetail)
                        {
                            if (!Utility.Byte2Bool(objChitietThanhtoan.TuTuc))
                                TT_BHYT += objChitietThanhtoan.BhytChitra * objChitietThanhtoan.SoLuong;
                            TT_Chietkhau_Chitiet += Utility.DecimaltoDbnull(objChitietThanhtoan.TienChietkhau, 0);
                            TT_PT += objChitietThanhtoan.PhuThu * objChitietThanhtoan.SoLuong;
                            if (Utility.Byte2Bool(objChitietThanhtoan.TuTuc))
                                TT_TT += objChitietThanhtoan.BnhanChitra * objChitietThanhtoan.SoLuong;
                            else
                                TT_BNCT += objChitietThanhtoan.BnhanChitra * objChitietThanhtoan.SoLuong;

                            objChitietThanhtoan.IdThanhtoan = Utility.Int32Dbnull(objThanhtoan.IdThanhtoan, -1);

                            objChitietThanhtoan.IsNew = true;
                            objChitietThanhtoan.Save();
                           reval= UpdatePaymentStatus(objThanhtoan, objChitietThanhtoan);
                           if (reval <= 0)
                           {
                               ErrMsg = string.Format("Dịch vụ {0} đã bị người dùng khác hủy bỏ nên bạn không thể thanh toán. Hãy nhấn nút OK và chọn lại Bệnh nhân để lấy lại các chi phí thanh toán mới nhất", objChitietThanhtoan.TenChitietdichvu);
                               return ActionResult.Cancel;
                           }
                        }
                        TT_BN += TT_PT + TT_BNCT + TT_TT;
                        TongtienBNchitra = TT_BN;
                        objThanhtoan.TongTien = TT_BN + TT_BHYT;
                        #region Hoadondo
                        if (Layhoadondo)
                        {
                            int record = -1;
                            if (IdHdonLog > 0)
                            {
                                record =
                                    new Delete().From(HoadonLog.Schema)
                                        .Where(HoadonLog.Columns.IdHdonLog)
                                        .IsEqualTo(IdHdonLog)
                                        .Execute();
                                if (record <= 0)
                                {
                                    Utility.ShowMsg("Có lỗi trong quá trình xóa thông tin serie hóa đơn đã hủy để cấp lại cho lần thanh toán này.");
                                    return ActionResult.Error;
                                }
                            }
                            var obj = new HoadonLog();
                            obj.IdThanhtoan = objThanhtoan.IdThanhtoan;
                            obj.TongTien = objThanhtoan.TongTien - Utility.DecimaltoDbnull(objThanhtoan.TongtienChietkhau, 0);
                            obj.IdBenhnhan = objThanhtoan.IdBenhnhan;
                            obj.MaLuotkham = objThanhtoan.MaLuotkham;
                            obj.MauHoadon = objThanhtoan.MauHoadon;
                            obj.KiHieu = objThanhtoan.KiHieu;
                            obj.IdCapphat = objThanhtoan.IdCapphat.Value;
                            obj.MaQuyen = objThanhtoan.MaQuyen;
                            obj.Serie = objThanhtoan.Serie;
                            obj.MaNhanvien = globalVariables.UserName;
                            obj.MaLydo = "0";
                            obj.NgayIn = globalVariables.SysDate;
                            obj.TrangThai = 0;
                            obj.IsNew = true;
                            obj.Save();
                            IdHdonLog = obj.IdHdonLog;//Để update lại vào bảng thanh toán
                            new Update(HoadonCapphat.Schema).Set(HoadonCapphat.Columns.SerieHientai)
                                .EqualTo(objThanhtoan.Serie)
                                .Set(HoadonCapphat.Columns.TrangThai).EqualTo(1)
                                .Where(HoadonCapphat.Columns.IdCapphat).IsEqualTo(obj.IdCapphat)
                                .Execute();
                        }
                        #endregion

                        KcbPhieuthu objPhieuthu = new KcbPhieuthu();
                        objPhieuthu.IdBenhnhan = objThanhtoan.IdBenhnhan;
                        objPhieuthu.MaLuotkham = objThanhtoan.MaLuotkham;
                        objPhieuthu.IdThanhtoan = objThanhtoan.IdThanhtoan;
                        objPhieuthu.MaPhieuthu = THU_VIEN_CHUNG.GetMaPhieuThu(globalVariables.SysDate, 0);
                        objPhieuthu.SoluongChungtugoc = 1;
                        objPhieuthu.LoaiPhieuthu = Convert.ToByte(0);
                        objPhieuthu.NgayThuchien = globalVariables.SysDate;
                        objPhieuthu.SoTien = TT_BN - TT_Chietkhau_Chitiet;
                        objPhieuthu.SotienGoc = TT_BN;
                        objPhieuthu.MaLydoChietkhau = objThanhtoan.MaLydoChietkhau;
                        objPhieuthu.TienChietkhauchitiet = TT_Chietkhau_Chitiet;
                        objPhieuthu.TienChietkhau = objThanhtoan.TongtienChietkhau;
                        objPhieuthu.TienChietkhauhoadon = objPhieuthu.TienChietkhau - objPhieuthu.TienChietkhauchitiet;
                        objPhieuthu.NguoiNop = globalVariables.UserName;
                        objPhieuthu.TaikhoanCo = "";
                        objPhieuthu.TaikhoanNo = "";
                        objPhieuthu.NoiTru = (byte)objThanhtoan.NoiTru;
                        objPhieuthu.LydoNop = "Thu tiền bệnh nhân";
                        objPhieuthu.IdKhoaThuchien = globalVariables.idKhoatheoMay;
                        objPhieuthu.IdNhanvien = globalVariables.gv_intIDNhanvien;
                        objPhieuthu.IsNew = true;
                        objPhieuthu.Save();

                        new Update(KcbThanhtoan.Schema)
                         .Set(KcbThanhtoan.Columns.TongTien).EqualTo(TT_BHYT + TT_BN)
                      .Set(KcbThanhtoan.Columns.BnhanChitra).EqualTo(TT_BNCT)
                      .Set(KcbThanhtoan.Columns.BhytChitra).EqualTo(TT_BHYT)
                      .Set(KcbThanhtoan.Columns.PhuThu).EqualTo(TT_PT)
                      .Set(KcbThanhtoan.Columns.TuTuc).EqualTo(TT_TT)
                        .Set(KcbThanhtoan.Columns.MaDoituongKcb).EqualTo(objLuotkham.MaDoituongKcb)
                        .Set(KcbThanhtoan.Columns.IdDoituongKcb).EqualTo(objLuotkham.IdDoituongKcb)
                        .Set(KcbThanhtoan.Columns.PtramBhyt).EqualTo(objLuotkham.PtramBhyt)
                        .Set(KcbThanhtoan.Columns.IdHdonLog).EqualTo(IdHdonLog)
                        .Where(KcbThanhtoan.Columns.IdThanhtoan).IsEqualTo(objThanhtoan.IdThanhtoan).Execute();

                        //Tạo bản ghi trong bảng phân bổ tiền theo phương thức thanh toán
                        new Delete().From(KcbThanhtoanPhanbotheoPTTT.Schema)
                            .Where(KcbThanhtoanPhanbotheoPTTT.Columns.IdThanhtoan)
                            .IsEqualTo(objThanhtoan.IdThanhtoan).Execute();
                        KcbThanhtoanPhanbotheoPTTT objPhanbotienTT = new KcbThanhtoanPhanbotheoPTTT();
                        objPhanbotienTT.IdThanhtoan = objThanhtoan.IdThanhtoan;
                        objPhanbotienTT.IdBenhnhan = objThanhtoan.IdBenhnhan;
                        objPhanbotienTT.MaLuotkham = objThanhtoan.MaLuotkham;
                        objPhanbotienTT.MaPttt = objThanhtoan.MaPttt;
                        objPhanbotienTT.SoTien = TT_BN - TT_Chietkhau_Chitiet;
                        objPhanbotienTT.NoiTru = objThanhtoan.NoiTru;
                        objPhanbotienTT.TongTien = objPhanbotienTT.SoTien;
                        objPhanbotienTT.NguoiTao = objThanhtoan.NguoiTao;
                        objPhanbotienTT.NgayTao = objThanhtoan.NgayTao;
                        objPhanbotienTT.IsNew = true;
                        objPhanbotienTT.Save();

                        if (Utility.Byte2Bool(objThanhtoan.NoiTru) && Utility.ByteDbnull(objLuotkham.TrangthaiNoitru, 0) >= 2)
                            new Update(KcbLuotkham.Schema).Set(KcbLuotkham.Columns.TthaiThanhtoannoitru).EqualTo(1)
                                .Where(KcbLuotkham.Columns.IdBenhnhan).IsEqualTo(objLuotkham.IdBenhnhan)
                                .And(KcbLuotkham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham)
                                .Execute();
                    }
                    scope.Complete();
                    id_thanhtoan = Utility.Int32Dbnull(objThanhtoan.IdThanhtoan, -1);
                    return ActionResult.Success;
                }
            }
            catch (Exception ex)
            {
                log.Error("Loi thuc hien thanh toan:" + ex.ToString());
                return ActionResult.Error;
            }
        }
 /// <summary>
 /// hàm thực hiện xóa thông tin bản ghi
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void cmdDelete_Click(object sender, EventArgs e)
 {
     if (grd_Insurance_Objects.CurrentRow != null)
     {
         if (Utility.AcceptQuestion("Bạn có muốn xóa thông tin bản ghi đang chọn hay không", "Thông báo", true))
         {
             int _IdDichvukcb = Utility.Int32Dbnull(grd_Insurance_Objects.CurrentRow.Cells[DmucDichvukcb.Columns.IdDichvukcb].Value,
                                                   -1);
             int record = new Delete().From(DmucDichvukcb.Schema)
                 .Where(DmucDichvukcb.Columns.IdDichvukcb).IsEqualTo(_IdDichvukcb).Execute();
             if (record > 0)
             {
                 DataRow[] arrDr = m_dtDmucDichvu_kcb.Select(DmucDichvukcb.Columns.IdDichvukcb+"=" + _IdDichvukcb);
                 if (arrDr.GetLength(0) > 0)
                 {
                     arrDr[0].Delete();
                 }
                 m_dtDmucDichvu_kcb.AcceptChanges();
             }
             else
             {
                 Utility.ShowMsg("Lỗi trong quá trình xóa thông tin");
             }
         }
     }
 }
        private void cmdDelete_Click(object sender, EventArgs e)
        {
            if (!isValidData())return;
            if (Utility.AcceptQuestion("Bạn có muốn xóa thông tin đang chọn hay không", "Thông báo", true))
            {
                int record = new Delete().From(DmucDiachinh.Schema)
                    .Where(DmucDiachinh.Columns.MaDiachinh).IsEqualTo(v_Survey_code).Execute();

                if (record > 0)
                {
                    grdSurveys.CurrentRow.Delete();
                    grdSurveys.UpdateData();
                    grdSurveys.Refresh();
                    DataRow[] arrDr = globalVariables.gv_dtDmucDiachinh.Select(DmucDiachinh.Columns.MaDiachinh + "='" + v_Survey_code + "'");
                    if (arrDr.Length > 0) globalVariables.gv_dtDmucDiachinh.Rows.Remove(arrDr[0]);
                    Utility.ShowMsg("Bạn xóa thông tin địa chính đang chọn thành công", "Thông báo");
                }
                else
                {
                    Utility.ShowMsg("Có lỗi trong khi xóa thông tin địa chính", "Thông báo");
                }
            }
            ModifyCommand();
        }
 /// <summary>
 /// hàm thực hiện xóa thông tin bản ghi
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void cmdDelete_Click(object sender, EventArgs e)
 {
     if (grd_Insurance_Objects.CurrentRow != null)
     {
         if (Utility.AcceptQuestion("Bạn có muốn xóa thông tin bản ghi đang chọn hay không", "Thông báo", true))
         {
             int _IdDichvukcb = Utility.Int32Dbnull(grd_Insurance_Objects.CurrentRow.Cells[DmucDichvukcb.Columns.IdDichvukcb].Value,
                                                   -1);
             KcbDangkyKcb item = new Select().From(KcbDangkyKcb.Schema).Where(KcbDangkyKcb.Columns.IdDichvuKcb).IsEqualTo(_IdDichvukcb).ExecuteSingle<KcbDangkyKcb>();
             if (item != null)
             {
                 Utility.ShowMsg("Dịch vụ KCB bạn đang chọn xóa đã được áp dụng cho một số Bệnh nhân nên bạn không thể xóa");
                 return;
             }
             int record = new Delete().From(DmucDichvukcb.Schema)
                 .Where(DmucDichvukcb.Columns.IdDichvukcb).IsEqualTo(_IdDichvukcb).Execute();
             if (record > 0)
             {
                 DataRow[] arrDr = m_dtDmucDichvu_kcb.Select(DmucDichvukcb.Columns.IdDichvukcb+"=" + _IdDichvukcb);
                 if (arrDr.GetLength(0) > 0)
                 {
                     arrDr[0].Delete();
                 }
                 m_dtDmucDichvu_kcb.AcceptChanges();
             }
             else
             {
                 Utility.ShowMsg("Lỗi trong quá trình xóa thông tin");
             }
         }
     }
 }
        /// <summary>
        /// Thực hiện nghiệp vụ Delete dữ liệu
        /// </summary>
        private void PerformDeleteAction()
        {
            if (Utility.AcceptQuestion("Bạn có muốn xóa bệnh viện đang chọn hay không?", "Xác nhận xóa", true))
            {
                int v_intObjectTypeID = Convert.ToInt32(txtID.Text.Trim());
                //Kiểm tra ko được xóa nếu đã sử dụng trong bảng khác
                //Sẽ kiểm tra thêm trong bảng L_Service_Objects và L_Patient_Exam

                DataRow [] v_DeleteObject = dsTable.Select(DmucBenhvien.Columns.IdBenhvien+ "=" + v_intObjectTypeID);

                //Gọi nghiệp vụ xóa dữ liệu\
                //int Count = DmucBenhvien.Delete(v_intObjectTypeID);

                int record = new Delete().From(DmucBenhvien.Schema).Where(DmucBenhvien.IdBenhvienColumn).IsEqualTo(v_intObjectTypeID).Execute();
                if (record>0)//Nếu xóa thành công trong CSDL
                {
                    v_DeleteObject[0].Delete();
                    m_enAction = action.FirstOrFinished;
                    SetControlStatus();
                    Utility.ShowMsg("Đã xóa bệnh viện có mã: " + v_intObjectTypeID + " ra khỏi hệ thống.");
                }
                else//Có lỗi xảy ra
                    Utility.ShowMsg("Lỗi khi xóa ");

            }
        }