Example #1
0
        /// <summary>
        /// hàm thực hiện việc cập nhập thông tin vào
        /// các bảng chức năng
        /// </summary>
        /// <param name="objPayment"></param>
        /// <param name="objPaymentDetail"></param>
        private void UpdateTrangThaiBangChucNang(KcbThanhtoan objPayment, KcbThanhtoanChitiet objPaymentDetail)
        {
            switch (objPaymentDetail.IdLoaithanhtoan)
            {
            case 1:
                new Update(KcbChidinhPhongkham.Schema)
                .Set(KcbChidinhPhongkham.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                .Set(KcbChidinhPhongkham.Columns.TrangthaiThanhtoan).EqualTo(1)
                .Set(KcbChidinhPhongkham.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                .Where(KcbChidinhPhongkham.Columns.IdKham).IsEqualTo(objPaymentDetail.IdPhieu).Execute();
                break;

            case 2:
                new Update(KcbChidinhclsChitiet.Schema)
                .Set(KcbChidinhclsChitiet.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                .Set(KcbChidinhclsChitiet.Columns.TinhtrangThanhtoan).EqualTo(1)
                .Set(KcbChidinhclsChitiet.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                .Where(KcbChidinhclsChitiet.Columns.IdChidinhChitiet).IsEqualTo(objPaymentDetail.IdPhieuChitiet).Execute();
                break;

            case 3:
                new Update(KcbDonthuocChitiet.Schema)
                .Set(KcbDonthuocChitiet.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                .Set(KcbDonthuocChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                .Set(KcbDonthuocChitiet.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                .Where(KcbDonthuocChitiet.Columns.IdChitietDonthuoc).IsEqualTo(objPaymentDetail.IdPhieuChitiet).Execute();
                break;

            case 5:
                new Update(KcbDonthuocChitiet.Schema)
                .Set(KcbDonthuocChitiet.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                .Set(KcbDonthuocChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                .Set(KcbDonthuocChitiet.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                .Where(KcbDonthuocChitiet.Columns.IdChitietDonthuoc).IsEqualTo(objPaymentDetail.IdPhieuChitiet).Execute();
                break;

            case 4:
                //new Update(TPatientDept.Schema)
                //    .Set(TPatientDept.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                //    .Set(TPatientDept.Columns.TrangthaiThanhtoan).EqualTo(1)
                //    .Set(TPatientDept.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                //    .Where(TPatientDept.Columns.PatientDeptId).IsEqualTo(objPaymentDetail.Id).Execute();
                break;

            case 0:
                new Update(KcbChidinhclsChitiet.Schema)
                .Set(KcbChidinhclsChitiet.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                .Set(KcbChidinhclsChitiet.Columns.TinhtrangThanhtoan).EqualTo(1)
                .Set(KcbChidinhclsChitiet.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                .Where(KcbChidinhclsChitiet.Columns.IdChidinhChitiet).IsEqualTo(objPaymentDetail.IdPhieuChitiet)
                .Execute();
                break;
            }
        }
Example #2
0
        private decimal SumOfPaymentDetail_NGOAITRU(KcbThanhtoanChitiet[] objArrPaymentDetail)
        {
            decimal SumOfPaymentDetail = 0;
            var sum = (from loz in objArrPaymentDetail.AsEnumerable()
                       where loz.TuTuc == 0
                       select loz).Sum(c => c.DonGia * c.SoLuong);
            //.Sum(c=>c.SoLuong*c.DonGia))
            foreach (KcbThanhtoanChitiet paymentDetail in objArrPaymentDetail)
            {
                if (paymentDetail.TuTuc == 0)
                    SumOfPaymentDetail += (Utility.Int32Dbnull(paymentDetail.SoLuong) *
                                           Utility.DecimaltoDbnull(paymentDetail.DonGia));

            }
            return SumOfPaymentDetail;
        }
        public void Insert(int IdThanhtoan,string MadoituongGia,decimal? PtramBhytGoc,decimal PtramBhyt,int SoLuong,decimal DonGia,decimal BnhanChitra,decimal BhytChitra,decimal PhuThu,byte TuTuc,int IdPhieu,int IdPhieuChitiet,int IdDichvu,int IdChitietdichvu,string TenChitietdichvu,string TenBhyt,string DonviTinh,int? SttIn,int? IdKhoakcb,short? IdPhongkham,short? IdBacsiChidinh,byte IdLoaithanhtoan,string TenLoaithanhtoan,string MaDoituongKcb,string KieuChietkhau,decimal? TileChietkhau,decimal? TienChietkhau,string NguoiHuy,DateTime? NgayHuy,byte? TrangthaiHuy,byte? TrangthaiBhyt,byte? TrangthaiChuyen,byte? TinhChiphi,byte NoiTru,int? IdGoi,byte? TrongGoi,long? IdKham,byte? NguonGoc,long? IdChitiethuy,DateTime NgayTao,string NguoiTao)
        {
            KcbThanhtoanChitiet item = new KcbThanhtoanChitiet();

            item.IdThanhtoan = IdThanhtoan;

            item.MadoituongGia = MadoituongGia;

            item.PtramBhytGoc = PtramBhytGoc;

            item.PtramBhyt = PtramBhyt;

            item.SoLuong = SoLuong;

            item.DonGia = DonGia;

            item.BnhanChitra = BnhanChitra;

            item.BhytChitra = BhytChitra;

            item.PhuThu = PhuThu;

            item.TuTuc = TuTuc;

            item.IdPhieu = IdPhieu;

            item.IdPhieuChitiet = IdPhieuChitiet;

            item.IdDichvu = IdDichvu;

            item.IdChitietdichvu = IdChitietdichvu;

            item.TenChitietdichvu = TenChitietdichvu;

            item.TenBhyt = TenBhyt;

            item.DonviTinh = DonviTinh;

            item.SttIn = SttIn;

            item.IdKhoakcb = IdKhoakcb;

            item.IdPhongkham = IdPhongkham;

            item.IdBacsiChidinh = IdBacsiChidinh;

            item.IdLoaithanhtoan = IdLoaithanhtoan;

            item.TenLoaithanhtoan = TenLoaithanhtoan;

            item.MaDoituongKcb = MaDoituongKcb;

            item.KieuChietkhau = KieuChietkhau;

            item.TileChietkhau = TileChietkhau;

            item.TienChietkhau = TienChietkhau;

            item.NguoiHuy = NguoiHuy;

            item.NgayHuy = NgayHuy;

            item.TrangthaiHuy = TrangthaiHuy;

            item.TrangthaiBhyt = TrangthaiBhyt;

            item.TrangthaiChuyen = TrangthaiChuyen;

            item.TinhChiphi = TinhChiphi;

            item.NoiTru = NoiTru;

            item.IdGoi = IdGoi;

            item.TrongGoi = TrongGoi;

            item.IdKham = IdKham;

            item.NguonGoc = NguonGoc;

            item.IdChitiethuy = IdChitiethuy;

            item.NgayTao = NgayTao;

            item.NguoiTao = NguoiTao;

            item.Save(UserName);
        }
Example #4
0
        private void UpdatePaymentStatus(KcbThanhtoan objThanhtoan, KcbThanhtoanChitiet objThanhtoanDetail)
        {
            using (var scope = new TransactionScope())
            {
                switch (objThanhtoanDetail.IdLoaithanhtoan)
                {
                    case 1://Phí KCB
                        new Update(KcbDangkyKcb.Schema)
                            .Set(KcbDangkyKcb.Columns.IdThanhtoan).EqualTo(objThanhtoan.IdThanhtoan)
                            .Set(KcbDangkyKcb.Columns.TrangthaiThanhtoan).EqualTo(1)

                             .Set(KcbDangkyKcb.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                            .Set(KcbDangkyKcb.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                            .Set(KcbDangkyKcb.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                            .Set(KcbDangkyKcb.Columns.NguonThanhtoan).EqualTo(objThanhtoan.KieuThanhtoan)
                              .Set(KcbChidinhclsChitiet.Columns.TienChietkhau).EqualTo(objThanhtoanDetail.TienChietkhau)
                            .Set(KcbChidinhclsChitiet.Columns.TileChietkhau).EqualTo(objThanhtoanDetail.TileChietkhau)
                            .Set(KcbChidinhclsChitiet.Columns.KieuChietkhau).EqualTo(objThanhtoanDetail.KieuChietkhau)
                            .Where(KcbDangkyKcb.Columns.IdKham).IsEqualTo(objThanhtoanDetail.IdPhieu).Execute();

                        new Update(NoitruPhanbuonggiuong.Schema)
                            .Set(NoitruPhanbuonggiuong.Columns.IdThanhtoan).EqualTo(objThanhtoan.IdThanhtoan)
                            .Set(NoitruPhanbuonggiuong.Columns.TrangthaiThanhtoan).EqualTo(1)
                             .Set(NoitruPhanbuonggiuong.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                            .Set(NoitruPhanbuonggiuong.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                            .Set(NoitruPhanbuonggiuong.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                             .Set(NoitruPhanbuonggiuong.Columns.NguonThanhtoan).EqualTo(objThanhtoan.KieuThanhtoan)
                            //  .Set(KcbChidinhclsChitiet.Columns.TienChietkhau).EqualTo(objThanhtoanDetail.TienChietkhau)
                            //.Set(KcbChidinhclsChitiet.Columns.TileChietkhau).EqualTo(objThanhtoanDetail.TileChietkhau)
                            //.Set(KcbChidinhclsChitiet.Columns.KieuChietkhau).EqualTo(objThanhtoanDetail.KieuChietkhau)
                            .Where(NoitruPhanbuonggiuong.Columns.IdKham).IsEqualTo(objThanhtoanDetail.IdPhieu)
                            .And(NoitruPhanbuonggiuong.Columns.NoiTru).IsEqualTo(0).Execute();
                        break;
                    case 8://Gói dịch vụ
                    case 9://Chi phí thêm
                    case 2://Phí CLS
                        new Update(KcbChidinhclsChitiet.Schema)
                            .Set(KcbChidinhclsChitiet.Columns.IdThanhtoan).EqualTo(objThanhtoan.IdThanhtoan)
                            .Set(KcbChidinhclsChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                             .Set(KcbChidinhclsChitiet.Columns.TienChietkhau).EqualTo(objThanhtoanDetail.TienChietkhau)
                            .Set(KcbChidinhclsChitiet.Columns.TileChietkhau).EqualTo(objThanhtoanDetail.TileChietkhau)
                            .Set(KcbChidinhclsChitiet.Columns.KieuChietkhau).EqualTo(objThanhtoanDetail.KieuChietkhau)
                             .Set(KcbChidinhclsChitiet.Columns.NguonThanhtoan).EqualTo(objThanhtoan.KieuThanhtoan)
                            .Set(KcbChidinhclsChitiet.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                            .Set(KcbChidinhclsChitiet.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                            .Set(KcbChidinhclsChitiet.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                            .Where(KcbChidinhclsChitiet.Columns.IdChitietchidinh).IsEqualTo(objThanhtoanDetail.IdPhieuChitiet).Execute();
                        new Update(KcbChidinhcl.Schema)
                        .Set(KcbChidinhcl.Columns.TrangthaiThanhtoan).EqualTo(1)
                        .Set(KcbChidinhcl.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                        .Where(KcbChidinhcl.Columns.IdChidinh).IsEqualTo(objThanhtoanDetail.IdPhieu).Execute();
                        break;
                    case 3://Đơn thuốc ngoại trú,nội trú
                    case 5://Vật tư tiêu hao
                        new Update(KcbDonthuocChitiet.Schema)
                            .Set(KcbDonthuocChitiet.Columns.IdThanhtoan).EqualTo(objThanhtoan.IdThanhtoan)
                            .Set(KcbDonthuocChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                            .Set(KcbDonthuocChitiet.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                             .Set(KcbDonthuocChitiet.Columns.TienChietkhau).EqualTo(objThanhtoanDetail.TienChietkhau)
                            .Set(KcbDonthuocChitiet.Columns.TileChietkhau).EqualTo(objThanhtoanDetail.TileChietkhau)
                            .Set(KcbDonthuocChitiet.Columns.KieuChietkhau).EqualTo(objThanhtoanDetail.KieuChietkhau)
                             .Set(KcbDonthuocChitiet.Columns.NguonThanhtoan).EqualTo(objThanhtoan.KieuThanhtoan)
                             .Set(KcbDonthuocChitiet.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                            .Set(KcbDonthuocChitiet.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                            .Where(KcbDonthuocChitiet.Columns.IdChitietdonthuoc).IsEqualTo(objThanhtoanDetail.IdPhieuChitiet).Execute();

                        new Update(KcbDonthuoc.Schema)
                           .Set(KcbDonthuoc.Columns.TrangthaiThanhtoan).EqualTo(1)
                           .Set(KcbDonthuoc.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                           .Where(KcbDonthuoc.Columns.IdDonthuoc).IsEqualTo(objThanhtoanDetail.IdPhieu).Execute();
                        break;

                    case 4://Giường bệnh
                        new Update(NoitruPhanbuonggiuong.Schema)
                          .Set(NoitruPhanbuonggiuong.Columns.IdThanhtoan).EqualTo(objThanhtoan.IdThanhtoan)
                          .Set(NoitruPhanbuonggiuong.Columns.TrangthaiThanhtoan).EqualTo(1)
                          .Set(NoitruPhanbuonggiuong.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                           .Set(NoitruPhanbuonggiuong.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                          .Set(NoitruPhanbuonggiuong.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                           .Set(NoitruPhanbuonggiuong.Columns.NguonThanhtoan).EqualTo(objThanhtoan.KieuThanhtoan)
                          .Where(NoitruPhanbuonggiuong.Columns.Id).IsEqualTo(objThanhtoanDetail.IdPhieu).Execute();
                        break;
                    case 0://Phí dịch vụ kèm theo
                        new Update(KcbDangkyKcb.Schema)
                          .Set(KcbDangkyKcb.Columns.IdThanhtoan).EqualTo(objThanhtoan.IdThanhtoan)
                          .Set(KcbDangkyKcb.Columns.TrangthaiThanhtoan).EqualTo(1)
                          .Set(KcbDangkyKcb.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                            .Set(KcbDangkyKcb.Columns.TienChietkhau).EqualTo(objThanhtoanDetail.TienChietkhau)
                            .Set(KcbDangkyKcb.Columns.TileChietkhau).EqualTo(objThanhtoanDetail.TileChietkhau)
                            .Set(KcbDangkyKcb.Columns.KieuChietkhau).EqualTo(objThanhtoanDetail.KieuChietkhau)
                             .Set(KcbDangkyKcb.Columns.NguonThanhtoan).EqualTo(objThanhtoan.KieuThanhtoan)
                              .Set(KcbDangkyKcb.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                            .Set(KcbDangkyKcb.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                          .Where(KcbDangkyKcb.Columns.IdKham).IsEqualTo(objThanhtoanDetail.IdPhieu)
                          .And(KcbDangkyKcb.Columns.LaPhidichvukemtheo).IsEqualTo(1)
                          .Execute();
                        break;
                }
                scope.Complete();
            }
        }
Example #5
0
 private decimal SumOfPaymentDetail(KcbThanhtoanChitiet[] objArrPaymentDetail)
 {
     decimal SumOfPaymentDetail = 0;
     foreach (KcbThanhtoanChitiet paymentDetail in objArrPaymentDetail)
     {
         if (paymentDetail.TuTuc == 0)
             SumOfPaymentDetail += (Utility.Int32Dbnull(paymentDetail.SoLuong) *
                                   Utility.DecimaltoDbnull(paymentDetail.DonGia))
                                   +
                                   (Utility.DecimaltoDbnull(paymentDetail.PhuThu, 0) *
                                   Utility.Int32Dbnull(paymentDetail.SoLuong, 0));
     }
     return SumOfPaymentDetail;
 }
Example #6
0
        public ActionResult UpdateDataPhieuThu(KcbPhieuthu objPhieuthu, KcbThanhtoanChitiet[] arrPaymentDetail)
        {
            try
            {
                using (var scope = new TransactionScope())
                {
                    using (var dbscope = new SharedDbConnectionScope())
                    {
                        StoredProcedure sp = SPs.KcbThanhtoanThemmoiPhieuthu( objPhieuthu.MaPhieuthu, objPhieuthu.IdThanhtoan,
                                                                     objPhieuthu.NgayThuchien,
                                                                     objPhieuthu.NguoiNop, objPhieuthu.LydoNop,
                                                                     objPhieuthu.SoTien, objPhieuthu.SotienGoc, objPhieuthu.TienChietkhau, objPhieuthu.TienChietkhauchitiet, objPhieuthu.TienChietkhauhoadon,
                                                                     objPhieuthu.SoluongChungtugoc, objPhieuthu.TaikhoanNo,
                                                                     objPhieuthu.TaikhoanCo,
                                                                     objPhieuthu.LoaiPhieuthu, globalVariables.UserName,
                                                                     globalVariables.SysDate,
                                                                     globalVariables.gv_intIDNhanvien,
                                                                     globalVariables.idKhoatheoMay,
                                                                     globalVariables.UserName, globalVariables.SysDate);
                        sp.Execute();
                        foreach (KcbThanhtoanChitiet objThanhtoanDetail in arrPaymentDetail)
                        {
                            new Update(KcbThanhtoanChitiet.Schema)
                                .Set(KcbThanhtoanChitiet.Columns.SttIn).EqualTo(objThanhtoanDetail.SttIn)
                                // .Set(KcbThanhtoanChitiet.Columns.PhuThu).EqualTo(objThanhtoanDetail.PhuThu)
                                .Where(KcbThanhtoanChitiet.Columns.IdChitiet).IsEqualTo(
                                    objThanhtoanDetail.IdChitiet).Execute();
                            log.Info("Cạp nhạp lại thong tin cua voi ma ID=" + objThanhtoanDetail.IdChitiet);
                        }
                        new Update(KcbThanhtoan.Schema)
                            .Set(KcbThanhtoan.Columns.NguoiIn).EqualTo(globalVariables.UserName)
                            .Set(KcbThanhtoan.Columns.NgayIn).EqualTo(globalVariables.SysDate)
                            .Set(KcbThanhtoan.Columns.TrangthaiIn).EqualTo(1)
                            .Where(KcbThanhtoan.Columns.IdThanhtoan).IsEqualTo(objPhieuthu.IdThanhtoan).Execute();

                    }
                    scope.Complete();
                    return ActionResult.Success;

                }
            }
            catch (Exception exception)
            {
                log.Error("Ban ra loi Exception={0}", exception);
                return ActionResult.Error;
            }
        }
 public bool Destroy(object IdChitiet)
 {
     return(KcbThanhtoanChitiet.Destroy(IdChitiet) == 1);
 }
        /// <summary>
        ///     hàm thực hiện mảng của chi tiết thanh toán chi tiết
        /// </summary>
        /// <returns></returns>
        private List<KcbThanhtoanChitiet> Taodulieuthanhtoanchitiet(ref string errMsg)
        {
            try
            {
                List<KcbThanhtoanChitiet> lstItems = new List<KcbThanhtoanChitiet>();
                foreach (GridEXRow gridExRow in grdThongTinChuaThanhToan.GetCheckedRows())
                {
                   KcbThanhtoanChitiet newItem = new KcbThanhtoanChitiet();
                    newItem.IdThanhtoan = -1;
                    newItem.IdChitiet = -1;
                    newItem.TinhChiphi = Utility.ByteDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.TinhChiphi].Value, 1);
                    newItem.PtramBhyt = objLuotkham.PtramBhyt.Value;
                    newItem.PtramBhytGoc = objLuotkham.PtramBhytGoc.Value;
                    newItem.SoLuong = Utility.Int32Dbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.SoLuong].Value, 0);
                    //Phần tiền BHYT chi trả,BN chi trả sẽ tính lại theo % mới nhất của bệnh nhân trong phần Business
                    newItem.BnhanChitra = Utility.DecimaltoDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.BnhanChitra].Value, 0);
                    newItem.BhytChitra = Utility.DecimaltoDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.BhytChitra].Value, 0);
                    newItem.DonGia =Utility.DecimaltoDbnull(gridExRow.Cells["don_gia"].Value, 0);
                    newItem.PhuThu = Utility.DecimaltoDbnull(gridExRow.Cells["PHU_THU"].Value, 0);
                    newItem.TuTuc = Utility.ByteDbnull(gridExRow.Cells["tu_tuc"].Value, 0);
                    newItem.IdPhieu = Utility.Int32Dbnull(gridExRow.Cells["id_phieu"].Value);
                    newItem.IdKham = Utility.Int32Dbnull(gridExRow.Cells["Id_Kham"].Value);
                    newItem.IdPhieuChitiet = Utility.Int32Dbnull(gridExRow.Cells["Id_Phieu_Chitiet"].Value, -1);
                    newItem.IdDichvu = Utility.Int16Dbnull(gridExRow.Cells["Id_dichvu"].Value, -1);
                    newItem.IdChitietdichvu = Utility.Int16Dbnull(gridExRow.Cells["Id_Chitietdichvu"].Value, -1);
                    newItem.TenChitietdichvu = Utility.sDbnull(gridExRow.Cells["Ten_Chitietdichvu"].Value, "Không xác định").Trim();
                    newItem.TenBhyt = Utility.sDbnull(gridExRow.Cells["ten_bhyt"].Value, "Không xác định").Trim();
                    newItem.DonviTinh =Utility.chuanhoachuoi(Utility.sDbnull(gridExRow.Cells["Ten_donvitinh"].Value, "Lượt"));
                    newItem.SttIn = Utility.Int16Dbnull(gridExRow.Cells["stt_in"].Value, 0);
                    newItem.IdKhoakcb = Utility.Int16Dbnull(gridExRow.Cells["id_khoakcb"].Value, -1);
                    newItem.IdPhongkham = Utility.Int16Dbnull(gridExRow.Cells["id_phongkham"].Value, -1);
                    newItem.IdLichsuDoituongKcb = Utility.Int64Dbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.IdLichsuDoituongKcb].Value, -1);
                    newItem.MatheBhyt = Utility.sDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.MatheBhyt].Value, -1);

                    newItem.IdBacsiChidinh = Utility.Int16Dbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.IdBacsiChidinh].Value, -1);
                    newItem.IdLoaithanhtoan = Utility.ByteDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.IdLoaithanhtoan].Value, -1);
                    newItem.TenLoaithanhtoan = THU_VIEN_CHUNG.MaKieuThanhToan(Utility.Int32Dbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.IdLoaithanhtoan].Value, -1));
                    newItem.TienChietkhau = Utility.DecimaltoDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.TienChietkhau].Value, 0m);
                    newItem.TileChietkhau = Utility.DecimaltoDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.TileChietkhau].Value, 0m);
                    newItem.MaDoituongKcb = objLuotkham.MaDoituongKcb;
                    newItem.KieuChietkhau = "%";
                    newItem.IdThanhtoanhuy = -1 ;
                    newItem.TrangthaiHuy = 0;
                    newItem.TrangthaiBhyt = 0;
                    newItem.TrangthaiChuyen = 0;
                    newItem.NoiTru = 1;
                    newItem.NguonGoc = Utility.ByteDbnull(gridExRow.Cells["noi_tru"].Value, -1);
                    newItem.NgayTao = globalVariables.SysDate;
                    newItem.NguoiTao = globalVariables.UserName;
                    lstItems.Add(newItem);
                }
                return lstItems;
            }
            catch(Exception ex)
            {
                errMsg = ex.Message;
                return null;
            }
        }
Example #9
0
        private int UpdatePaymentStatus(KcbThanhtoan objThanhtoan, KcbThanhtoanChitiet objChitietThanhtoan)
        {
            int reval = -1;
            using (var scope = new TransactionScope())
            {
                switch (objChitietThanhtoan.IdLoaithanhtoan)
                {
                    case 1://Phí KCB
                        reval=new Update(KcbDangkyKcb.Schema)
                            .Set(KcbDangkyKcb.Columns.IdThanhtoan).EqualTo(objThanhtoan.IdThanhtoan)
                            .Set(KcbDangkyKcb.Columns.TrangthaiThanhtoan).EqualTo(1)

                             .Set(KcbDangkyKcb.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                            .Set(KcbDangkyKcb.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                            .Set(KcbDangkyKcb.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                            .Set(KcbDangkyKcb.Columns.NguonThanhtoan).EqualTo(objThanhtoan.KieuThanhtoan)
                              .Set(KcbChidinhclsChitiet.Columns.TienChietkhau).EqualTo(objChitietThanhtoan.TienChietkhau)
                            .Set(KcbChidinhclsChitiet.Columns.TileChietkhau).EqualTo(objChitietThanhtoan.TileChietkhau)
                            .Set(KcbChidinhclsChitiet.Columns.KieuChietkhau).EqualTo(objChitietThanhtoan.KieuChietkhau)
                            .Where(KcbDangkyKcb.Columns.IdKham).IsEqualTo(objChitietThanhtoan.IdPhieu).Execute();

                        //new Update(NoitruPhanbuonggiuong.Schema)
                        //    .Set(NoitruPhanbuonggiuong.Columns.IdThanhtoan).EqualTo(objThanhtoan.IdThanhtoan)
                        //    .Set(NoitruPhanbuonggiuong.Columns.TrangthaiThanhtoan).EqualTo(1)
                        //     .Set(NoitruPhanbuonggiuong.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                        //    .Set(NoitruPhanbuonggiuong.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                        //    .Set(NoitruPhanbuonggiuong.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                        //     .Set(NoitruPhanbuonggiuong.Columns.NguonThanhtoan).EqualTo(objThanhtoan.KieuThanhtoan)
                        //    .Where(NoitruPhanbuonggiuong.Columns.IdKham).IsEqualTo(objChitietThanhtoan.IdPhieu)
                        //    .And(NoitruPhanbuonggiuong.Columns.NoiTru).IsEqualTo(0).Execute();
                        break;
                    case 10://Sổ khám
                        reval=new Update(KcbDangkySokham.Schema)
                           .Set(KcbDangkySokham.Columns.IdThanhtoan).EqualTo(objThanhtoan.IdThanhtoan)
                           .Set(KcbDangkySokham.Columns.TrangthaiThanhtoan).EqualTo(1)
                            .Set(KcbDangkySokham.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                           .Set(KcbDangkySokham.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                           .Set(KcbDangkySokham.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                           .Set(KcbDangkySokham.Columns.NguonThanhtoan).EqualTo(objThanhtoan.KieuThanhtoan)
                           .Where(KcbDangkySokham.Columns.IdSokcb).IsEqualTo(objChitietThanhtoan.IdPhieu).Execute();
                        break;
                    case 8://Gói dịch vụ
                    case 11://Công tiêm chủng
                    case 9://Chi phí thêm
                    case 2://Phí CLS
                        reval = new Update(KcbChidinhclsChitiet.Schema)
                            .Set(KcbChidinhclsChitiet.Columns.IdThanhtoan).EqualTo(objThanhtoan.IdThanhtoan)
                            .Set(KcbChidinhclsChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                             .Set(KcbChidinhclsChitiet.Columns.TienChietkhau).EqualTo(objChitietThanhtoan.TienChietkhau)
                            .Set(KcbChidinhclsChitiet.Columns.TileChietkhau).EqualTo(objChitietThanhtoan.TileChietkhau)
                            .Set(KcbChidinhclsChitiet.Columns.KieuChietkhau).EqualTo(objChitietThanhtoan.KieuChietkhau)
                             .Set(KcbChidinhclsChitiet.Columns.NguonThanhtoan).EqualTo(objThanhtoan.KieuThanhtoan)
                            .Set(KcbChidinhclsChitiet.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                            .Set(KcbChidinhclsChitiet.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                            .Set(KcbChidinhclsChitiet.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                            .Where(KcbChidinhclsChitiet.Columns.IdChitietchidinh).IsEqualTo(objChitietThanhtoan.IdPhieuChitiet).Execute();
                        //09/09/2015-->Tạm thời bỏ do ko có ý nghĩa
                        //new Update(KcbChidinhcl.Schema)
                        //.Set(KcbChidinhcl.Columns.TrangthaiThanhtoan).EqualTo(1)
                        //.Set(KcbChidinhcl.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                        //.Where(KcbChidinhcl.Columns.IdChidinh).IsEqualTo(objChitietThanhtoan.IdPhieu).Execute();
                        break;
                    case 3://Đơn thuốc ngoại trú,nội trú
                    case 5://Vật tư tiêu hao
                        reval = new Update(KcbDonthuocChitiet.Schema)
                            .Set(KcbDonthuocChitiet.Columns.IdThanhtoan).EqualTo(objThanhtoan.IdThanhtoan)
                            .Set(KcbDonthuocChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                            .Set(KcbDonthuocChitiet.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                             .Set(KcbDonthuocChitiet.Columns.TienChietkhau).EqualTo(objChitietThanhtoan.TienChietkhau)
                            .Set(KcbDonthuocChitiet.Columns.TileChietkhau).EqualTo(objChitietThanhtoan.TileChietkhau)
                            .Set(KcbDonthuocChitiet.Columns.KieuChietkhau).EqualTo(objChitietThanhtoan.KieuChietkhau)
                             .Set(KcbDonthuocChitiet.Columns.NguonThanhtoan).EqualTo(objThanhtoan.KieuThanhtoan)
                             .Set(KcbDonthuocChitiet.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                            .Set(KcbDonthuocChitiet.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                            .Where(KcbDonthuocChitiet.Columns.IdChitietdonthuoc).IsEqualTo(objChitietThanhtoan.IdPhieuChitiet).Execute();
                        //09/09/2015-->Tạm thời bỏ do ko có ý nghĩa
                        //new Update(KcbDonthuoc.Schema)
                        //   .Set(KcbDonthuoc.Columns.TrangthaiThanhtoan).EqualTo(1)
                        //   .Set(KcbDonthuoc.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                        //   .Where(KcbDonthuoc.Columns.IdDonthuoc).IsEqualTo(objChitietThanhtoan.IdPhieu).Execute();
                        break;

                    case 4://Giường bệnh
                        reval = new Update(NoitruPhanbuonggiuong.Schema)
                          .Set(NoitruPhanbuonggiuong.Columns.IdThanhtoan).EqualTo(objThanhtoan.IdThanhtoan)
                          .Set(NoitruPhanbuonggiuong.Columns.TrangthaiThanhtoan).EqualTo(1)
                          .Set(NoitruPhanbuonggiuong.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                           .Set(NoitruPhanbuonggiuong.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                          .Set(NoitruPhanbuonggiuong.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                           .Set(NoitruPhanbuonggiuong.Columns.NguonThanhtoan).EqualTo(objThanhtoan.KieuThanhtoan)
                          .Where(NoitruPhanbuonggiuong.Columns.Id).IsEqualTo(objChitietThanhtoan.IdPhieu).Execute();
                        break;
                    case 0://Phí dịch vụ kèm theo
                        reval = new Update(KcbDangkyKcb.Schema)
                          .Set(KcbDangkyKcb.Columns.IdThanhtoan).EqualTo(objThanhtoan.IdThanhtoan)
                          .Set(KcbDangkyKcb.Columns.TrangthaiThanhtoan).EqualTo(1)
                          .Set(KcbDangkyKcb.Columns.NgayThanhtoan).EqualTo(objThanhtoan.NgayThanhtoan)
                            .Set(KcbDangkyKcb.Columns.TienChietkhau).EqualTo(objChitietThanhtoan.TienChietkhau)
                            .Set(KcbDangkyKcb.Columns.TileChietkhau).EqualTo(objChitietThanhtoan.TileChietkhau)
                            .Set(KcbDangkyKcb.Columns.KieuChietkhau).EqualTo(objChitietThanhtoan.KieuChietkhau)
                             .Set(KcbDangkyKcb.Columns.NguonThanhtoan).EqualTo(objThanhtoan.KieuThanhtoan)
                              .Set(KcbDangkyKcb.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                            .Set(KcbDangkyKcb.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                          .Where(KcbDangkyKcb.Columns.IdKham).IsEqualTo(objChitietThanhtoan.IdPhieu)
                          .And(KcbDangkyKcb.Columns.LaPhidichvukemtheo).IsEqualTo(1)
                          .Execute();
                        break;
                }
                scope.Complete();
            }
            return reval;
        }
 private KcbThanhtoanChitiet[] TaodulieuthanhtoanchitietHuy()
 {
     int idx = 0;
     var ObjectArrayPaymentDetail = new KcbThanhtoanChitiet[grdThongTinDaThanhToan.GetCheckedRows().Length];
     foreach (GridEXRow gridExRow in grdThongTinDaThanhToan.GetCheckedRows())
     {
         ObjectArrayPaymentDetail[idx] = new KcbThanhtoanChitiet();
         //  ObjectArrayPaymentDetail[idx].IdThanhtoan = Utility.Int32Dbnull(txtPayment_ID.Text, -1);
         ObjectArrayPaymentDetail[idx].SoLuong = Utility.Int32Dbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.SoLuong].Value, 0);
         ObjectArrayPaymentDetail[idx].IdChitiet =
             Utility.Int32Dbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.IdChitiet].Value, -1);
         ObjectArrayPaymentDetail[idx].IdThanhtoan =
             Utility.Int32Dbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.IdThanhtoan].Value, -1);
         ObjectArrayPaymentDetail[idx].DonGia =
             Utility.DecimaltoDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.DonGia].Value, 0);
         ObjectArrayPaymentDetail[idx].BhytChitra =
             Utility.DecimaltoDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.BhytChitra].Value, 0);
         ObjectArrayPaymentDetail[idx].BnhanChitra =
             Utility.DecimaltoDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.BnhanChitra].Value, 0);
         ObjectArrayPaymentDetail[idx].PhuThu =
             Utility.DecimaltoDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.PhuThu].Value, 0);
         ObjectArrayPaymentDetail[idx].IdDichvu = Utility.Int32Dbnull(gridExRow.Cells["Id_dichvu"].Value, -1);
         ObjectArrayPaymentDetail[idx].TrangthaiHuy = 1;
         ObjectArrayPaymentDetail[idx].IdLoaithanhtoan =
             Utility.ByteDbnull(gridExRow.Cells["Id_Loaithanhtoan"].Value);
         ObjectArrayPaymentDetail[idx].TuTuc = Utility.ByteDbnull(gridExRow.Cells["phu_thu"].Value, 0);
         ObjectArrayPaymentDetail[idx].IdPhieu = Utility.Int32Dbnull(
             gridExRow.Cells[KcbThanhtoanChitiet.Columns.IdPhieu].Value, -1);
         ObjectArrayPaymentDetail[idx].IdPhieuChitiet =
             Utility.Int32Dbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.IdPhieuChitiet].Value, -1);
         ObjectArrayPaymentDetail[idx].IdChitietdichvu =
             Utility.Int32Dbnull(gridExRow.Cells["Id_Chitietdichvu"].Value, -1);
         ObjectArrayPaymentDetail[idx].MaDoituongKcb = Utility.sDbnull(
             gridExRow.Cells[KcbThanhtoanChitiet.Columns.MaDoituongKcb].Value, "");
         ObjectArrayPaymentDetail[idx].PtramBhyt =
             Utility.DecimaltoDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.PtramBhyt].Value, 0);
         ObjectArrayPaymentDetail[idx].MaDoituongKcb = Utility.sDbnull(
             gridExRow.Cells[KcbThanhtoanChitiet.Columns.MaDoituongKcb].Value, "");
         ObjectArrayPaymentDetail[idx].TenChitietdichvu =
             Utility.sDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.TenChitietdichvu].Value, "");
         ObjectArrayPaymentDetail[idx].TenBhyt =
             Utility.sDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.TenChitietdichvu].Value, "");
         ObjectArrayPaymentDetail[idx].NoiTru =
             Utility.ByteDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.NoiTru].Value, 0);
         ObjectArrayPaymentDetail[idx].IdPhongkham =
             Utility.Int16Dbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.IdPhongkham].Value, -1);
         ObjectArrayPaymentDetail[idx].IdBacsiChidinh =
             Utility.Int16Dbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.IdBacsiChidinh].Value, -1);
         ObjectArrayPaymentDetail[idx].DonviTinh =
             Utility.sDbnull(gridExRow.Cells[KcbThanhtoanChitiet.Columns.DonviTinh].Value, "");
         ObjectArrayPaymentDetail[idx].NguoiTao = globalVariables.UserName;
         ObjectArrayPaymentDetail[idx].NgayTao = globalVariables.SysDate;
         //ObjectArrayPaymentDetail[idx].IpMacTao = THU_VIEN_CHUNG.GetMACAddress();
         //ObjectArrayPaymentDetail[idx].IpMayTao = THU_VIEN_CHUNG.GetIP4Address();
         idx++;
     }
     return ObjectArrayPaymentDetail;
 }
Example #11
0
        /// <summary>
        /// Trả lại tiền
        /// </summary>
        /// <param name="objThanhtoan"></param>
        /// <param name="objLuotkham"></param>
        /// <param name="objArrPaymentDetail"></param>
        /// <returns></returns>
        public ActionResult HUYTHANHTOAN_NGOAITRU(KcbThanhtoan objThanhtoan, KcbLuotkham objLuotkham, KcbThanhtoanChitiet[] objArrPaymentDetail)
        {
            decimal v_DiscountRate = 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_TotalOrginPrice = 0;
            ///tổng tiền đã thanh toán
            decimal v_TotalPaymentDetail = 0;
            try
            {
                using (var scope = new TransactionScope())
                {
                    using (var sh = new SharedDbConnectionScope())
                    {

                        v_TotalOrginPrice = SumOfPaymentDetail(objArrPaymentDetail);
                        KcbThanhtoanCollection paymentCollection =
                            new KcbThanhtoanController().FetchByQuery(
                                KcbThanhtoan.CreateQuery().AddWhere(KcbThanhtoan.Columns.MaLuotkham, Comparison.Equals,
                                                                objLuotkham.MaLuotkham).AND(
                                                                    KcbThanhtoan.Columns.IdBenhnhan, Comparison.Equals,
                                                                    objLuotkham.IdBenhnhan));

                        foreach (KcbThanhtoan payment in paymentCollection)
                        {
                            KcbThanhtoanChitietCollection paymentDetailCollection =
                                new KcbThanhtoanChitietController().FetchByQuery(
                                    KcbThanhtoanChitiet.CreateQuery().AddWhere(KcbThanhtoanChitiet.Columns.IdThanhtoan, Comparison.Equals, payment.IdThanhtoan));
                            foreach (KcbThanhtoanChitiet paymentDetail in paymentDetailCollection)
                            {
                                if (paymentDetail.TuTuc == 0)
                                    v_TotalPaymentDetail += Utility.DecimaltoDbnull(paymentDetail.DonGia);

                            }

                        }
                        ///lấy thông tin chiết khấu xem đã thực hiện chưa
                        LayThongtinPtramBHYT(v_TotalPaymentDetail - v_TotalOrginPrice, objLuotkham, ref v_DiscountRate);
                        objThanhtoan.TrangThai = 1;
                        objThanhtoan.IdNhanvienThanhtoan = globalVariables.gv_intIDNhanvien;
                        objThanhtoan.NgayThanhtoan = globalVariables.SysDate;
                        //objThanhtoan.IpMayTao = THU_VIEN_CHUNG.GetIP4Address();
                        //objThanhtoan.IpMacTao = THU_VIEN_CHUNG.GetMACAddress();
                        // objThanhtoan.MaThanhtoan = THU_VIEN_CHUNG.GenerateMaThanhtoan(globalVariables.SysDate, 0);
                        objThanhtoan.MaThanhtoan = THU_VIEN_CHUNG.TaoMathanhtoan(globalVariables.SysDate);
                        objThanhtoan.IsNew = true;
                        objThanhtoan.Save();
                        //StoredProcedure spPament = SPs.KcbThanhtoanThemmoi(objThanhtoan.IdThanhtoan, objThanhtoan.MaLuotkham, objThanhtoan.IdBenhnhan,
                        //                 objThanhtoan.NgayThanhtoan, objThanhtoan.StaffId, objThanhtoan.Status,
                        //                 objThanhtoan.CreatedBy, objThanhtoan.CreatedDate, objThanhtoan.NgaySua,
                        //                 objThanhtoan.NguoiSua, objThanhtoan.MaThanhtoan, objThanhtoan.KieuThanhToan,
                        //                 objThanhtoan.DaIn, objThanhtoan.NgayIn, objThanhtoan.NgayTHop, objThanhtoan.NguoiIn,
                        //                 objThanhtoan.NguoiTHop, Utility.Int32Dbnull(objThanhtoan.TrongGoi), objThanhtoan.IpMayTao, objThanhtoan.IpMacTao, globalVariables.MA_KHOA_THIEN);
                        //spPament.Execute();
                        //objThanhtoan.IdThanhtoan = Utility.Int32Dbnull(spPament.OutputValues[0], -1);
                        //  objThanhtoan.IdThanhtoan = Utility.Int32Dbnull(_queryPayment.GetMax(KcbThanhtoan.Columns.IdThanhtoan), -1);

                        foreach (KcbThanhtoanChitiet objPayDetail in objArrPaymentDetail)
                        {
                            new Update(KcbThanhtoanChitiet.Schema)
                                //.Set(KcbThanhtoanChitiet.Columns.ng).EqualTo(1)

                                .Set(KcbThanhtoanChitiet.Columns.TrangthaiHuy).EqualTo(1)
                                .Set(KcbThanhtoanChitiet.Columns.NgayHuy).EqualTo(globalVariables.SysDate)
                                .Set(KcbThanhtoanChitiet.Columns.NguoiHuy).EqualTo(globalVariables.UserName)
                                .Where(KcbThanhtoanChitiet.Columns.IdChitiet).IsEqualTo(objPayDetail.IdChitiet).
                                Execute();
                            ///thanh toán khám chữa bệnh))
                            if (objPayDetail.IdLoaithanhtoan == 1)
                            {

                                new Update(KcbDangkyKcb.Schema)
                                    .Set(KcbDangkyKcb.Columns.TrangthaiThanhtoan).EqualTo(1)
                                    .Set(KcbDangkyKcb.Columns.TrangthaiHuy).EqualTo(1)
                                    .Where(KcbDangkyKcb.Columns.IdKham).IsEqualTo(objPayDetail.IdPhieu).Execute();
                            }
                            ///thah toán phần dịch vụ cận lâm sàng
                            if (objPayDetail.IdLoaithanhtoan == 2)
                            {
                                int status =
                                    Utility.Int32Dbnull(
                                        new Select(KcbChidinhclsChitiet.Columns.TrangThai).From(KcbChidinhclsChitiet.Schema).
                                            Where(KcbChidinhclsChitiet.Columns.IdChitietchidinh).IsEqualTo(objPayDetail.IdChitietdichvu)
                                            .ExecuteScalar().ToString(), 0);
                                if (globalVariables.UserName != "ADMIN")
                                {
                                    if (status == 1)
                                    {
                                        return ActionResult.AssginIsConfirmed;
                                    }
                                }
                                new Update(KcbChidinhclsChitiet.Schema)
                                    .Set(KcbChidinhclsChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                                    .Set(KcbChidinhclsChitiet.Columns.TrangthaiHuy).EqualTo(1)
                                    .Where(KcbChidinhclsChitiet.Columns.IdChitietchidinh).IsEqualTo(objPayDetail.IdChitietdichvu)
                                    .Execute();
                            }
                            ///thanh toán phần thuốc
                            if (objPayDetail.IdLoaithanhtoan == 3)
                            {
                                int Status =
                                    Utility.Int32Dbnull(
                                        new Select(KcbDonthuoc.Columns.TrangThai).From(KcbDonthuoc.Schema).Where(
                                            KcbDonthuoc.Columns.IdDonthuoc).IsEqualTo(objPayDetail.IdPhieu).ExecuteScalar(),
                                        -1);

                                if (globalVariables.UserName != "ADMIN")
                                {
                                    if (Status == 3)
                                    {
                                        return ActionResult.PresIsConfirmed;
                                    }
                                }
                                new Update(KcbDonthuoc.Schema)
                                    // .Set(KcbDonthuoc.Columns.TrangthaiThanhtoan).EqualTo(1)
                                    .Set(KcbDonthuoc.Columns.TrangThai).EqualTo(0)
                                    .Where(KcbDonthuoc.Columns.IdDonthuoc).IsEqualTo(objPayDetail.IdPhieu).Execute();
                                new Update(KcbDonthuocChitiet.Schema)
                                    .Set(KcbDonthuocChitiet.Columns.TrangthaiHuy).EqualTo(1)
                                    .Set(KcbDonthuocChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                                    .Where(KcbDonthuocChitiet.Columns.IdDonthuoc).IsEqualTo(objPayDetail.IdPhieu)
                                    .And(KcbDonthuocChitiet.Columns.IdThuoc).IsEqualTo(objPayDetail.IdDichvu)
                                    .Execute();
                            }
                            new Update(KcbThanhtoanChitiet.Schema)
                               .Set(KcbThanhtoanChitiet.Columns.NgayHuy).EqualTo(globalVariables.SysDate)
                               .Set(KcbThanhtoanChitiet.Columns.NguoiHuy).EqualTo(globalVariables.UserName)
                               .Set(KcbThanhtoanChitiet.Columns.TrangthaiHuy).EqualTo(1)
                               .Where(KcbThanhtoanChitiet.Columns.IdChitiet).IsEqualTo(objPayDetail.IdChitiet).
                               Execute();
                            objPayDetail.IdPhieu = Utility.Int32Dbnull(objPayDetail.IdThanhtoan);
                            objPayDetail.IdChitietdichvu = Utility.Int32Dbnull(objPayDetail.IdChitietdichvu);
                            //objPayDetail.IpMayTao = THU_VIEN_CHUNG.GetIP4Address();
                            //objPayDetail.IpMacTao = THU_VIEN_CHUNG.GetMACAddress();
                            objPayDetail.IdThanhtoan = Utility.Int32Dbnull(objThanhtoan.IdThanhtoan, -1);
                            objPayDetail.IsNew = true;
                            objPayDetail.Save();

                        }
                        KcbPhieuthu objPhieuthu = new KcbPhieuthu();
                        objPhieuthu.IdThanhtoan = Utility.Int32Dbnull(objThanhtoan.IdThanhtoan);
                        objPhieuthu.NgayThuchien = globalVariables.SysDate;
                        //objPhieuthu.IpMayTao = THU_VIEN_CHUNG.GetIP4Address();
                        objPhieuthu.MaPhieuthu = THU_VIEN_CHUNG.GetMaPhieuThu(globalVariables.SysDate, Utility.Int32Dbnull(objPhieuthu.LoaiPhieuthu, 0));
                        objPhieuthu.LoaiPhieuthu = 1;
                        KcbDanhsachBenhnhan objPatientInfo = KcbDanhsachBenhnhan.FetchByID(objThanhtoan.IdBenhnhan);
                        if (objPatientInfo != null)
                        {
                            objPhieuthu.NguoiNop = Utility.sDbnull(objPatientInfo.TenBenhnhan);

                        }
                        var query = (from loz in objArrPaymentDetail.AsEnumerable()
                                     select loz.TenChitietdichvu).ToArray();

                        decimal SoTien = Utility.DecimaltoDbnull(objArrPaymentDetail.Sum(c => c.BnhanChitra * c.SoLuong)) +
                                        Utility.DecimaltoDbnull(objArrPaymentDetail.Sum(c => c.PhuThu * c.SoLuong));

                        objPhieuthu.LydoNop = string.Join(";", query);
                        objPhieuthu.LoaiPhieuthu = 1;
                        objPhieuthu.SoTien = SoTien;
                        objPhieuthu.MaPhieuthu = THU_VIEN_CHUNG.GetMaPhieuThu(globalVariables.SysDate, Utility.Int32Dbnull(objPhieuthu.LoaiPhieuthu));
                        objPhieuthu.IsNew = true;
                        objPhieuthu.Save();
                        //CAN XEM LAIJ PHAN THU TUC
                        //StoredProcedure sp = SPs.KcbThanhtoanThemmoiPhieuthu(objPhieuthu.MaPthu, objThanhtoan.IdThanhtoan,
                        //                                             objPhieuthu.NgayThien,
                        //                                             objPhieuthu.NguoiNop, objPhieuthu.LdoNop,
                        //                                             objPhieuthu.SoTien,
                        //                                             objPhieuthu.SluongCtuGoc, objPhieuthu.TkhoanNo,
                        //                                             objPhieuthu.TkhoanCo,
                        //                                             objPhieuthu.LoaiPhieu, globalVariables.UserName,
                        //                                             globalVariables.SysDate,
                        //                                             globalVariables.gv_intIDNhanvien,
                        //                                             globalVariables.DepartmentID,
                        //                                             globalVariables.UserName, globalVariables.SysDate);

                        //sp.Execute();

                    }
                    scope.Complete();
                    return ActionResult.Success;
                }
            }
            catch (Exception exception)
            {
                log.Error("Loi trong qua trinh tra tien lai:{0}", exception.ToString());
                return ActionResult.Error;
            }
        }
Example #12
0
        public ActionResult ThanhtoanDonthuoctaiquay(KcbThanhtoan objThanhtoan, KcbDanhsachBenhnhan objBenhnhan, 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_TotalOrginPrice = 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_TotalOrginPrice = 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_TotalOrginPrice + 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.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;
            }
        }
Example #13
0
        public ActionResult Payment4SelectedItems_Ao(KcbThanhtoan objThanhtoan, KcbLuotkham objLuotkham, 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_TotalOrginPrice = 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_TotalOrginPrice = 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.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
                        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)
                                    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_TotalOrginPrice + 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ả
                        objArrPaymentDetail = THU_VIEN_CHUNG.TinhPhamTramBHYT(objLuotkham, 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.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();

                        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;
            }
        }
Example #14
0
        public static KcbThanhtoanChitiet[] TinhPhamTramBHYT(KcbThanhtoanChitiet[] arrPaymentDetail, KcbLuotkham objPatientExam, decimal v_BhytChitra)
        {
            string IsDungTuyen = "DT";
            DmucDoituongkcb objectType = DmucDoituongkcb.FetchByID(objPatientExam.IdDoituongKcb);
            if (objectType != null)
            {
                switch (objectType.MaDoituongKcb)
                {
                    case "BHYT":
                        if (Utility.Int32Dbnull(objPatientExam.DungTuyen, "0") == 1) IsDungTuyen = "DT";
                        else
                        {
                            IsDungTuyen = "TT";
                        }
                        break;
                    default:
                        IsDungTuyen = "KHAC";
                        break;
                }

            }
            foreach (KcbThanhtoanChitiet objChitietThanhtoan in arrPaymentDetail)
            {
                if (objChitietThanhtoan.TuTuc == 0)//Có thể tính cho BHYT
                {
                    SqlQuery sqlQuery = new Select().From(DmucBhytChitraDacbiet.Schema)
                        .Where(DmucBhytChitraDacbiet.Columns.IdDichvuChitiet).IsEqualTo(objChitietThanhtoan.IdChitietdichvu)
                        .And(DmucBhytChitraDacbiet.Columns.MaLoaithanhtoan).IsEqualTo(objChitietThanhtoan.IdLoaithanhtoan)
                        .And(DmucBhytChitraDacbiet.Columns.DungtuyenTraituyen).IsEqualTo(IsDungTuyen)
                        .And(DmucBhytChitraDacbiet.Columns.MaDoituongKcb).IsEqualTo(objPatientExam.MaDoituongKcb);
                    DmucBhytChitraDacbiet objDetailBhytChitra = sqlQuery.ExecuteSingle<DmucBhytChitraDacbiet>();
                    if (objDetailBhytChitra != null)
                    {
                        objChitietThanhtoan.MaDoituongKcb = Utility.sDbnull(objPatientExam.MaDoituongKcb);
                        objChitietThanhtoan.PtramBhyt = objDetailBhytChitra.TileGiam;
                        objChitietThanhtoan.BhytChitra = TinhBhytChitra(objDetailBhytChitra.TileGiam,
                                                      Utility.DecimaltoDbnull(
                                                          objChitietThanhtoan.DonGia, 0));
                        objChitietThanhtoan.BnhanChitra = TinhBnhanChitra(objDetailBhytChitra.TileGiam,
                                                                 Utility.DecimaltoDbnull(
                                                                     objChitietThanhtoan.DonGia, 0));
                    }
                    else
                    {
                        objChitietThanhtoan.MaDoituongKcb = Utility.sDbnull(objPatientExam.MaDoituongKcb);
                        objChitietThanhtoan.PtramBhyt = v_BhytChitra;
                        objChitietThanhtoan.BhytChitra = TinhBhytChitra(v_BhytChitra,
                                                       Utility.DecimaltoDbnull(
                                                           objChitietThanhtoan.DonGia, 0));
                        objChitietThanhtoan.BnhanChitra = TinhBnhanChitra(v_BhytChitra,
                                                                 Utility.DecimaltoDbnull(
                                                                     objChitietThanhtoan.DonGia, 0));
                    }

                }
                else
                {
                    objChitietThanhtoan.MaDoituongKcb = "DV";
                    objChitietThanhtoan.BhytChitra = 0;
                    objChitietThanhtoan.BnhanChitra = objChitietThanhtoan.DonGia;
                }

            }
            return arrPaymentDetail;
        }
        public void Insert(long IdThanhtoan, string MadoituongGia, decimal?PtramBhytGoc, decimal PtramBhyt, decimal?SoLuong, decimal DonGia, decimal BnhanChitra, decimal BhytChitra, decimal PhuThu, byte TuTuc, int IdPhieu, int IdPhieuChitiet, int IdDichvu, int IdChitietdichvu, string TenChitietdichvu, string TenBhyt, string DonviTinh, int?SttIn, int?IdKhoakcb, short?IdPhongkham, short?IdBacsiChidinh, byte IdLoaithanhtoan, string TenLoaithanhtoan, string MaDoituongKcb, string KieuChietkhau, decimal?TileChietkhau, decimal?TienChietkhau, byte?TrangthaiHuy, byte?TrangthaiBhyt, byte?TrangthaiChuyen, byte?TinhChiphi, byte NoiTru, int?IdGoi, byte?TrongGoi, long?IdKham, byte?NguonGoc, long?IdThanhtoanhuy, long?IdLichsuDoituongKcb, string MatheBhyt, DateTime NgayTao, string NguoiTao)
        {
            KcbThanhtoanChitiet item = new KcbThanhtoanChitiet();

            item.IdThanhtoan = IdThanhtoan;

            item.MadoituongGia = MadoituongGia;

            item.PtramBhytGoc = PtramBhytGoc;

            item.PtramBhyt = PtramBhyt;

            item.SoLuong = SoLuong;

            item.DonGia = DonGia;

            item.BnhanChitra = BnhanChitra;

            item.BhytChitra = BhytChitra;

            item.PhuThu = PhuThu;

            item.TuTuc = TuTuc;

            item.IdPhieu = IdPhieu;

            item.IdPhieuChitiet = IdPhieuChitiet;

            item.IdDichvu = IdDichvu;

            item.IdChitietdichvu = IdChitietdichvu;

            item.TenChitietdichvu = TenChitietdichvu;

            item.TenBhyt = TenBhyt;

            item.DonviTinh = DonviTinh;

            item.SttIn = SttIn;

            item.IdKhoakcb = IdKhoakcb;

            item.IdPhongkham = IdPhongkham;

            item.IdBacsiChidinh = IdBacsiChidinh;

            item.IdLoaithanhtoan = IdLoaithanhtoan;

            item.TenLoaithanhtoan = TenLoaithanhtoan;

            item.MaDoituongKcb = MaDoituongKcb;

            item.KieuChietkhau = KieuChietkhau;

            item.TileChietkhau = TileChietkhau;

            item.TienChietkhau = TienChietkhau;

            item.TrangthaiHuy = TrangthaiHuy;

            item.TrangthaiBhyt = TrangthaiBhyt;

            item.TrangthaiChuyen = TrangthaiChuyen;

            item.TinhChiphi = TinhChiphi;

            item.NoiTru = NoiTru;

            item.IdGoi = IdGoi;

            item.TrongGoi = TrongGoi;

            item.IdKham = IdKham;

            item.NguonGoc = NguonGoc;

            item.IdThanhtoanhuy = IdThanhtoanhuy;

            item.IdLichsuDoituongKcb = IdLichsuDoituongKcb;

            item.MatheBhyt = MatheBhyt;

            item.NgayTao = NgayTao;

            item.NguoiTao = NguoiTao;


            item.Save(UserName);
        }
Example #16
0
 private void UpdateTrangThaiBangChucNang(KcbThanhtoan objPayment, KcbThanhtoanChitiet objPaymentDetail)
 {
     using (var scope = new TransactionScope())
     {
         switch (objPaymentDetail.IdLoaithanhtoan)
         {
             case 1:
                 new Update(KcbDangkyKcb.Schema)
                     .Set(KcbDangkyKcb.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                     .Set(KcbDangkyKcb.Columns.TrangthaiThanhtoan).EqualTo(1)
                     .Set(KcbDangkyKcb.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                     .Where(KcbDangkyKcb.Columns.IdKham).IsEqualTo(objPaymentDetail.IdPhieu).Execute();
                 break;
             case 2:
                 new Update(KcbChidinhclsChitiet.Schema)
                     .Set(KcbChidinhclsChitiet.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                     .Set(KcbChidinhclsChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                     .Set(KcbChidinhclsChitiet.Columns.TrangthaiChuyencls).EqualTo(1)
                     .Set(KcbChidinhclsChitiet.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                     .Set(KcbChidinhclsChitiet.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                     .Set(KcbChidinhclsChitiet.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                     .Where(KcbChidinhclsChitiet.Columns.IdChitietchidinh).IsEqualTo(objPaymentDetail.IdChitietdichvu).Execute();
                 break;
             case 3:
                 new Update(KcbDonthuocChitiet.Schema)
                     .Set(KcbDonthuocChitiet.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                     .Set(KcbDonthuocChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                     .Set(KcbDonthuocChitiet.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                     .Where(KcbDonthuocChitiet.Columns.IdChitietdonthuoc).IsEqualTo(objPaymentDetail.IdChitietdichvu).Execute();
                 break;
             case 5:
                 new Update(KcbDonthuocChitiet.Schema)
                     .Set(KcbDonthuocChitiet.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                     .Set(KcbDonthuocChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                     .Set(KcbDonthuocChitiet.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                     .Where(KcbDonthuocChitiet.Columns.IdChitietdonthuoc).IsEqualTo(objPaymentDetail.IdChitietdichvu).Execute();
                 break;
             case 4:
                 //new Update(TPatientDept.Schema)
                 //    .Set(TPatientDept.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                 //    .Set(TPatientDept.Columns.TinhtrangThanhtoan).EqualTo(1)
                 //    .Set(TPatientDept.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                 //    .Where(TPatientDept.Columns.PatientDeptId).IsEqualTo(objPaymentDetail.Id).Execute();
                 break;
             case 0:
                 new Update(KcbChidinhclsChitiet.Schema)
                     .Set(KcbChidinhclsChitiet.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                     .Set(KcbChidinhclsChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                     .Set(KcbChidinhclsChitiet.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                     .Where(KcbChidinhclsChitiet.Columns.IdChitietchidinh).IsEqualTo(objPaymentDetail.IdChitietdichvu)
                     .Execute();
                 new Update(KcbDangkyKcb.Schema)
                    .Set(KcbDangkyKcb.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                    .Set(KcbDangkyKcb.Columns.TrangthaiThanhtoan).EqualTo(1)
                    .Set(KcbDangkyKcb.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                    .Where(KcbDangkyKcb.Columns.IdKham).IsEqualTo(objPaymentDetail.IdPhieu)
                    .And(KcbDangkyKcb.Columns.LaPhidichvukemtheo).IsEqualTo(1)
                    .Execute();
                 break;
         }
         scope.Complete();
     }
 }
Example #17
0
        public ActionResult PerformActionPaymentChoose(KcbThanhtoan objPayment, KcbLuotkham objLuotkham, KcbThanhtoanChitiet[] objArrPaymentDetail, ref int Payment_Id)
        {
            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_TotalOrginPrice = 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_TotalOrginPrice = SumOfPaymentDetail_NGOAITRU(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, 0).AND(
                                        KcbThanhtoan.Columns.TrangThai, Comparison.Equals, 0));

                        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)
                                    v_TotalPaymentDetail += Utility.Int32Dbnull(paymentDetail.SoLuong) *
                                                            Utility.DecimaltoDbnull(paymentDetail.DonGia);

                            }
                        }
                        ///lấy thông tin chiết khấu xem đã thực hiện chưa
                        LayThongPtramBHYT(v_TotalOrginPrice + v_TotalPaymentDetail, objLuotkham, ref PtramBHYT);
                        ///hàm thực hiện việc xử lý lại thông tin
                        XuLyChiKhauDacBietBHYT(objLuotkham, PtramBHYT);

                        objPayment.TrangthaiIn = 0;
                        objPayment.KieuThanhtoan = 0;
                        objPayment.NguoiIn = string.Empty;
                        //objPayment.TrongGoi = 0;
                        //objPayment.IpMacTao = THU_VIEN_CHUNG.GetMACAddress();
                        //objPayment.IpMayTao = THU_VIEN_CHUNG.GetIP4Address();
                        objPayment.MaThanhtoan = THU_VIEN_CHUNG.TaoMathanhtoan(Convert.ToDateTime(objPayment.NgayThanhtoan));
                        objPayment.IsNew = true;
                        objPayment.MaKhoaThuchien = globalVariables.MA_KHOA_THIEN;
                        objPayment.Save();
                        //StoredProcedure sp = SPs.KcbThanhtoanThemmoi(objPayment.IdThanhtoan, objPayment.MaLuotkham, objPayment.IdBenhnhan,
                        //                  objPayment.NgayThanhtoan, objPayment.StaffId, objPayment.TrangThai,
                        //                  objPayment.NguoiTao, objPayment.CreatedDate, objPayment.NgaySua,
                        //                  objPayment.NguoiSua, objPayment.PaymentCode, objPayment.KieuThanhtoan,
                        //                  objPayment.DaIn, objPayment.NgayIn, objPayment.NgayTHop, objPayment.NguoiIn,
                        //                  objPayment.NguoiTHop, Utility.Int32Dbnull(objPayment.TrongGoi), objPayment.IpMayTao, objPayment.IpMacTao, globalVariables.MA_KHOA_THIEN);
                        //sp.Execute();
                        //objPayment.IdThanhtoan = Utility.Int32Dbnull(sp.OutputValues[0], -1);
                        //objPayment.IdThanhtoan = Utility.Int32Dbnull(_QueryPayment.GetMax(KcbThanhtoan.Columns.IdThanhtoan), -1);
                        log.Info("Lay ma thanh toan cua phan thanh toan Payment_ID={0}", objPayment.IdThanhtoan);
                        ///hàm thực hiện việc mảng thao tác mảng của chi tiết thanh toán

                        switch (LayChiKhauChiTiet())
                        {
                            case "KHONG":
                                objArrPaymentDetail =THU_VIEN_CHUNG.TinhPhamTramBHYT(objLuotkham, objArrPaymentDetail, PtramBHYT);
                                break;
                            case "CO":
                                objArrPaymentDetail = THU_VIEN_CHUNG.TinhPhamTramBHYT(objArrPaymentDetail, objLuotkham, PtramBHYT);
                                break;
                            default:
                                objArrPaymentDetail = THU_VIEN_CHUNG.TinhPhamTramBHYT(objLuotkham, objArrPaymentDetail, PtramBHYT);
                                break;
                        }
                        decimal BN_CT = 0m;
                        foreach (KcbThanhtoanChitiet objPaymentDetail in objArrPaymentDetail)
                        {

                            ///thanh toán phần thuốc);
                            if (THU_VIEN_CHUNG.LayMaDviLamViec() == "DETMAY")
                            {
                                if (objPaymentDetail.IdLoaithanhtoan == 3)
                                {
                                    new Update(KcbDonthuoc.Schema)
                                        .Set(KcbDonthuoc.Columns.TrangthaiThanhtoan).EqualTo(1)
                                        .Set(KcbDonthuoc.Columns.TrangThai).EqualTo(2)///nếu =2 đối với đơn thuốc ngoại trú
                                        .Where(KcbDonthuoc.Columns.IdDonthuoc).IsEqualTo(objPaymentDetail.IdPhieu).Execute();

                                }
                            }

                            switch (THU_VIEN_CHUNG.GetThanhToan_TraiTuyen())
                            {
                                case "PHUTHU":
                                    if (objPaymentDetail.IdLoaithanhtoan == 1)
                                    {
                                        objPaymentDetail.PhuThu = 0;
                                    }
                                    break;

                            }
                            objPaymentDetail.NguoiTao = globalVariables.UserName;
                            objPaymentDetail.NoiTru = 0;
                            //objPaymentDetail.TrongGoi = 0;
                            //objPaymentDetail.IpMacTao = THU_VIEN_CHUNG.GetMACAddress();
                            //objPaymentDetail.IpMayTao = THU_VIEN_CHUNG.GetIP4Address();
                            objPaymentDetail.IdThanhtoan = Utility.Int32Dbnull(objPayment.IdThanhtoan, -1);
                            objPaymentDetail.BnhanChitra = Utility.DecimaltoDbnull(objPaymentDetail.BnhanChitra);
                            BN_CT+=objPaymentDetail.BnhanChitra;
                            objPaymentDetail.TenLoaithanhtoan = THU_VIEN_CHUNG.MaKieuThanhToan(Utility.Int32Dbnull(objPaymentDetail.IdLoaithanhtoan));
                            StoredProcedure spPaymentDetail = SPs.KcbThanhtoanThemchitiet(
                                objPaymentDetail.IdChitiet, objPaymentDetail.IdThanhtoan,
                                objPaymentDetail.SoLuong, objPaymentDetail.DonGia,
                                objPaymentDetail.BhytChitra, objPaymentDetail.BnhanChitra,
                                Utility.DecimaltoDbnull(objPaymentDetail.BnhanChitra),
                                objPaymentDetail.PhuThu, objPaymentDetail.IdPhieu,
                                objPaymentDetail.IdPhieuChitiet, objPaymentDetail.IdDichvu,
                                objPaymentDetail.IdChitietdichvu, objPaymentDetail.IdLoaithanhtoan,
                                objPaymentDetail.TrangthaiHuy, objPaymentDetail.TuTuc,
                                objPaymentDetail.NguoiHuy, objPaymentDetail.NgayHuy,
                                objPaymentDetail.IdPhongkham, objPaymentDetail.IdBacsiChidinh,
                                objPaymentDetail.SttIn, objPaymentDetail.DonviTinh,
                                objPaymentDetail.MaDoituongKcb, objPaymentDetail.PtramBhyt,
                                objPaymentDetail.TenChitietdichvu, Utility.sDbnull(objPaymentDetail.TenChitietdichvu),
                                objPaymentDetail.TenLoaithanhtoan, 0, -1, -1,
                                objPaymentDetail.NoiTru, objPaymentDetail.NguoiTao, "", "");

                            spPaymentDetail.Execute();
                            objPaymentDetail.IdChitiet = Utility.Int32Dbnull(spPaymentDetail.OutputValues[0], -1);
                            UpdateTrangThaiBangChucNang(objPayment, objPaymentDetail);

                        }
                        new Update(KcbThanhtoan.Schema).Set(KcbThanhtoan.TongTienColumn).EqualTo(BN_CT).Where(KcbThanhtoan.IdThanhtoanColumn).IsEqualTo(objPayment.IdThanhtoan).Execute();
                        if (objLuotkham.MaDoituongKcb == "BHYT")
                        {
                            if (globalVariables.gv_strTuyenBHYT == "TW")
                            {
                                SqlQuery sqlQuery = new Select().From(KcbThanhtoanChitiet.Schema)
                                    .Where(KcbThanhtoanChitiet.Columns.IdThanhtoan).In(
                                        new Select(KcbThanhtoan.Columns.IdThanhtoan).From(KcbThanhtoan.Schema).Where(
                                            KcbThanhtoan.Columns.MaLuotkham).IsEqualTo(
                                                objLuotkham.MaLuotkham).And(KcbThanhtoan.Columns.IdBenhnhan).IsEqualTo(
                                                    objLuotkham.IdBenhnhan).And(KcbThanhtoan.Columns.KieuThanhtoan).
                                            IsEqualTo(0).
                                            And(KcbThanhtoan.Columns.TrangThai).IsEqualTo(0))
                                    .And(KcbThanhtoanChitiet.Columns.TrangthaiHuy).IsEqualTo(0)
                                    .And(KcbThanhtoanChitiet.Columns.TuTuc).IsEqualTo(0);

                                KcbThanhtoanChitietCollection objPaymentDetailCollection =
                                    sqlQuery.ExecuteAsCollection<KcbThanhtoanChitietCollection>();
                                decimal TongTien =
                                    Utility.DecimaltoDbnull(objPaymentDetailCollection.Sum(c => c.SoLuong * c.DonGia));
                                LayThongPtramBHYT(TongTien, objLuotkham, ref PtramBHYT);
                                foreach (KcbThanhtoanChitiet objPaymentDetail in objPaymentDetailCollection)
                                {
                                    decimal BHCT = Utility.DecimaltoDbnull(objPaymentDetail.DonGia * PtramBHYT / 100);
                                    decimal BNCT = Utility.DecimaltoDbnull(objPaymentDetail.DonGia - BHCT);
                                    objPaymentDetail.BhytChitra = BHCT;
                                    objPaymentDetail.PtramBhyt = PtramBHYT;
                                    objPaymentDetail.BnhanChitra = BNCT;

                                    //new Update(KcbThanhtoanChitiet.Schema)
                                    //    .Set(KcbThanhtoanChitiet.Columns.PtramBhyt).EqualTo(PtramBHYT)
                                    //    .Set(KcbThanhtoanChitiet.Columns.DiscountRate).EqualTo(BHCT)
                                    //    .Set(KcbThanhtoanChitiet.Columns.DiscountPrice).EqualTo(BNCT)
                                    //    .Where(KcbThanhtoanChitiet.Columns.IdChitiet).IsEqualTo(objPaymentDetail.IdChitiet).Execute();
                                    //new Update(KydongKcbThanhtoanChitiet.Schema)
                                    //    .Set(KydongKcbThanhtoanChitiet.Columns.PtramBhyt).EqualTo(PtramBHYT)
                                    //    .Set(KydongKcbThanhtoanChitiet.Columns.DiscountRate).EqualTo(BHCT)
                                    //    .Set(KydongKcbThanhtoanChitiet.Columns.DiscountPrice).EqualTo(BNCT)
                                    //    .Where(KydongKcbThanhtoanChitiet.Columns.IdChiTietTToan).IsEqualTo(objPaymentDetail.IdChitiet)
                                    //    .And(KydongKcbThanhtoanChitiet.Columns.PaymentDetailType).IsEqualTo(0)
                                    //    .Execute();
                                }
                                objPaymentDetailCollection.SaveAll();
                            }

                        }

                    }
                    scope.Complete();
                    Payment_Id = Utility.Int32Dbnull(objPayment.IdThanhtoan, -1);
                    log.Info("Thuc hien thanh cong viec thanh toan");
                    return ActionResult.Success;
                }
            }
            catch (Exception ex)
            {
                log.Error("Loi thuc hien thanh toan:" + ex.ToString());
                return ActionResult.Error;
            }
        }
Example #18
0
 /// <summary>
 /// hàm thực hiện việc cập nhập thông tin vào 
 /// các bảng chức năng
 /// </summary>
 /// <param name="objPayment"></param>
 /// <param name="objPaymentDetail"></param>
 private void UpdateTrangThaiBangChucNang(KcbThanhtoan objPayment, KcbThanhtoanChitiet objPaymentDetail)
 {
     switch (objPaymentDetail.IdLoaithanhtoan)
     {
         case 1:
             new Update(KcbChidinhPhongkham.Schema)
                 .Set(KcbChidinhPhongkham.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                 .Set(KcbChidinhPhongkham.Columns.TrangthaiThanhtoan).EqualTo(1)
                 .Set(KcbChidinhPhongkham.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                 .Where(KcbChidinhPhongkham.Columns.IdKham).IsEqualTo(objPaymentDetail.IdPhieu).Execute();
             break;
         case 2:
             new Update(KcbChidinhclsChitiet.Schema)
                 .Set(KcbChidinhclsChitiet.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                 .Set(KcbChidinhclsChitiet.Columns.TinhtrangThanhtoan).EqualTo(1)
                 .Set(KcbChidinhclsChitiet.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                 .Where(KcbChidinhclsChitiet.Columns.IdChidinhChitiet).IsEqualTo(objPaymentDetail.IdPhieuChitiet).Execute();
             break;
         case 3:
             new Update(KcbDonthuocChitiet.Schema)
                 .Set(KcbDonthuocChitiet.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                 .Set(KcbDonthuocChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                 .Set(KcbDonthuocChitiet.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                 .Where(KcbDonthuocChitiet.Columns.IdChitietDonthuoc).IsEqualTo(objPaymentDetail.IdPhieuChitiet).Execute();
             break;
         case 5:
             new Update(KcbDonthuocChitiet.Schema)
                 .Set(KcbDonthuocChitiet.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                 .Set(KcbDonthuocChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                 .Set(KcbDonthuocChitiet.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                 .Where(KcbDonthuocChitiet.Columns.IdChitietDonthuoc).IsEqualTo(objPaymentDetail.IdPhieuChitiet).Execute();
             break;
         case 4:
             //new Update(TPatientDept.Schema)
             //    .Set(TPatientDept.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
             //    .Set(TPatientDept.Columns.TrangthaiThanhtoan).EqualTo(1)
             //    .Set(TPatientDept.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
             //    .Where(TPatientDept.Columns.PatientDeptId).IsEqualTo(objPaymentDetail.Id).Execute();
             break;
         case 0:
             new Update(KcbChidinhclsChitiet.Schema)
                 .Set(KcbChidinhclsChitiet.Columns.IdThanhtoan).EqualTo(objPayment.IdThanhtoan)
                 .Set(KcbChidinhclsChitiet.Columns.TinhtrangThanhtoan).EqualTo(1)
                 .Set(KcbChidinhclsChitiet.Columns.NgayThanhtoan).EqualTo(objPayment.NgayThanhtoan)
                 .Where(KcbChidinhclsChitiet.Columns.IdChidinhChitiet).IsEqualTo(objPaymentDetail.IdPhieuChitiet)
                 .Execute();
             break;
     }
 }
Example #19
0
        private KcbThanhtoanChitiet[] CreatePaymmentDetail(ref List<int> lstRegID)
        {
            int IdKham = Utility.Int32Dbnull(grdRegExam.CurrentRow.Cells[KcbDangkyKcb.Columns.IdKham].Value, -1);
            DataRow[] arrDr = null;
            if (PropertyLib._KCBProperties.Thanhtoancaphidichvukemtheo)
                arrDr = m_dataDataRegExam.Select(KcbDangkyKcb.IdKhamColumn.ColumnName + "=" + IdKham.ToString() + " OR " + KcbDangkyKcb.IdChaColumn.ColumnName + "=" + IdKham.ToString());
            else
                arrDr = m_dataDataRegExam.Select(KcbDangkyKcb.IdKhamColumn.ColumnName + "=" + IdKham.ToString());
            List<KcbThanhtoanChitiet> lstPaymentDetail = new List<KcbThanhtoanChitiet>();

            foreach (DataRow dr in arrDr)
            {

                KcbThanhtoanChitiet newItem = new KcbThanhtoanChitiet();
                newItem.IdThanhtoan = -1;
                newItem.TinhChiphi = 1;
                newItem.IdChitiet = -1;
                if (!lstRegID.Contains(IdKham)) lstRegID.Add(IdKham);
                newItem.PtramBhyt = objLuotkham.PtramBhyt.Value;
                newItem.PtramBhytGoc = objLuotkham.PtramBhytGoc.Value;
                newItem.SoLuong = 1;
                //Phần tiền BHYT chi trả,BN chi trả sẽ tính lại theo % mới nhất của bệnh nhân trong phần Business
                newItem.BnhanChitra = -1;
                newItem.BhytChitra = -1;
                newItem.DonGia = Utility.DecimaltoDbnull(dr[KcbDangkyKcb.Columns.DonGia], 0);
                newItem.PhuThu = Utility.DecimaltoDbnull(dr[KcbDangkyKcb.Columns.PhuThu], 0);
                newItem.TuTuc = Utility.ByteDbnull(dr[KcbDangkyKcb.Columns.TuTuc], 0);
                newItem.IdPhieu = Utility.Int32Dbnull(dr[KcbDangkyKcb.Columns.IdKham], -1);
                newItem.IdKham = Utility.Int32Dbnull(dr[KcbDangkyKcb.Columns.IdKham], -1);
                newItem.IdPhieuChitiet = Utility.Int32Dbnull(dr[KcbDangkyKcb.Columns.IdKham], -1);
                newItem.IdDichvu = Utility.Int32Dbnull(dr[KcbDangkyKcb.Columns.IdKham], -1);
                newItem.IdChitietdichvu = Utility.Int32Dbnull(dr[KcbDangkyKcb.Columns.IdKham], -1);
                newItem.TenChitietdichvu = Utility.sDbnull(dr[KcbDangkyKcb.Columns.TenDichvuKcb], "Không xác định").Trim();
                newItem.TenBhyt = Utility.sDbnull(dr[KcbDangkyKcb.Columns.TenDichvuKcb], "Không xác định").Trim();
                newItem.SttIn = 0;
                newItem.IdPhongkham = Utility.Int16Dbnull(dr[KcbDangkyKcb.Columns.IdPhongkham], -1);
                newItem.IdBacsiChidinh = globalVariables.gv_intIDNhanvien;
                newItem.IdLoaithanhtoan = (byte)(Utility.Int32Dbnull(dr[KcbDangkyKcb.LaPhidichvukemtheoColumn.ColumnName], 0) == 1 ? 0 : 1);
                newItem.TenLoaithanhtoan = THU_VIEN_CHUNG.MaKieuThanhToan(newItem.IdLoaithanhtoan);
                newItem.MaDoituongKcb =_MaDoituongKcb;
                newItem.DonviTinh = "Lượt";
                newItem.KieuChietkhau = "%";
                newItem.TileChietkhau = 0;
                newItem.TienChietkhau = 0m;
                newItem.NguoiHuy = "";
                newItem.NgayHuy = null;
                newItem.TrangthaiHuy = 0;
                newItem.TrangthaiBhyt = 0;
                newItem.TrangthaiChuyen = 0;
                newItem.NoiTru = 0;
                newItem.NguonGoc = (byte)0;
                newItem.NgayTao = globalVariables.SysDate;
                newItem.NguoiTao = globalVariables.UserName;
                lstPaymentDetail.Add(newItem);
                //Các thông tin ptram_bhyt,bnhan_chitra...được tính tại Business
            }
            return lstPaymentDetail.ToArray(); ;
        }
 public bool Delete(object IdChitiet)
 {
     return(KcbThanhtoanChitiet.Delete(IdChitiet) == 1);
 }