public void Insert(int? IdDoituongKcb,short? IdLoaithuoc,int IdThuoc,decimal TyleGiamgia,string KieuGiamgia,decimal DonGia,decimal? PhuthuDungtuyen,int IdLoaidoituongKcb,decimal? PhuthuTraituyen,string MaDoituongKcb,string NguoiTao,DateTime? NgayTao,string NguoiSua,DateTime? NgaySua,string MaKhoaThuchien)
        {
            QheDoituongThuoc item = new QheDoituongThuoc();

            item.IdDoituongKcb = IdDoituongKcb;

            item.IdLoaithuoc = IdLoaithuoc;

            item.IdThuoc = IdThuoc;

            item.TyleGiamgia = TyleGiamgia;

            item.KieuGiamgia = KieuGiamgia;

            item.DonGia = DonGia;

            item.PhuthuDungtuyen = PhuthuDungtuyen;

            item.IdLoaidoituongKcb = IdLoaidoituongKcb;

            item.PhuthuTraituyen = PhuthuTraituyen;

            item.MaDoituongKcb = MaDoituongKcb;

            item.NguoiTao = NguoiTao;

            item.NgayTao = NgayTao;

            item.NguoiSua = NguoiSua;

            item.NgaySua = NgaySua;

            item.MaKhoaThuchien = MaKhoaThuchien;

            item.Save(UserName);
        }
        private void SaveAll()
        {
            try
            {
                Utility.SetMsg(lblMsg, "", false);
                decimal GiaDV = LayGiaDV();
                int idThuoc = -1;
                decimal GiaPhuThu = 0;
                decimal GiaBHYT = LayGiaBHYT();
                string KTH = "ALL";

                foreach (Janus.Windows.GridEX.GridEXRow gridExRow in grdQhe.GetRows())
                {
                    idThuoc = Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdThuoc].Value, -1);
                     KTH = Utility.sDbnull(cboKhoaTH.SelectedValue, "-1") == "-1" ? "ALL" : Utility.sDbnull(cboKhoaTH.SelectedValue, "-1");
                    SqlQuery q =
                        new Select().From(QheDoituongThuoc.Schema).Where(QheDoituongThuoc.Columns.IdThuoc).
                            IsEqualTo(Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdThuoc].Value, -1)).And(
                                QheDoituongThuoc.Columns.MaDoituongKcb).IsEqualTo(Utility.sDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.MaDoituongKcb].Value, "-1"));
                                //.And(QheDoituongThuoc.Columns.MaKhoaThuchien).IsEqualTo(KTH);
                                //.Or(QheDoituongThuoc.Columns.MaDoituongKcb).IsEqualTo("BHYT");
                    GiaPhuThu = Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.PhuthuTraituyen].Value, 0);
                    int v_IdLoaidoituongKcb = Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdLoaidoituongKcb].Value, 0);

                    //Nếu có lưu đối tượng BHYT và tồn tại giá DV thì tự động tính phụ thu trái tuyến cho đối tượng BHYT đó
                    if (gridExRow.Cells[QheDoituongThuoc.Columns.IdLoaidoituongKcb].Value.ToString() == "0" && GiaDV > 0)
                    {
                        GiaBHYT = Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.DonGia].Value, 0);
                        if (PropertyLib._QheGiaThuocProperties.TudongDieuChinhGiaPTTT)
                            GiaPhuThu = GiaDV - GiaBHYT > 0 ? GiaDV - GiaBHYT : 0;
                    }
                    //Nếu đối tượng BHYT có tồn tại thì update lại thông tin trong đó có giá phụ thu trái tuyến
                    if (q.GetRecordCount() > 0)
                    {

                        new Update(QheDoituongThuoc.Schema)
                            .Set(QheDoituongThuoc.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                            .Set(QheDoituongThuoc.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                            .Set(QheDoituongThuoc.Columns.IdLoaithuoc).EqualTo(
                                Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdLoaithuoc].Value, -1))
                            .Set(QheDoituongThuoc.Columns.DonGia).EqualTo(
                                Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.DonGia].Value, 0))
                            .Set(QheDoituongThuoc.Columns.PhuthuDungtuyen).EqualTo(
                                Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.PhuthuDungtuyen].Value, 0))
                            .Set(QheDoituongThuoc.Columns.PhuthuTraituyen).EqualTo(GiaPhuThu)
                             .Set(QheDoituongThuoc.Columns.MaKhoaThuchien).EqualTo(KTH)
                            .Where(QheDoituongThuoc.Columns.IdQuanhe).IsEqualTo(
                                Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdQuanhe].Value, "-1"))
                                .Execute();

                    }
                    else
                    {
                        DmucDoituongkcbCollection objectTypeCollection =
                            new DmucDoituongkcbController().FetchByQuery(
                                DmucDoituongkcb.CreateQuery().AddWhere(DmucDoituongkcb.Columns.MaDoituongKcb,
                                                                   Comparison.Equals,
                                                                   Utility.sDbnull(gridExRow.Cells[DmucDoituongkcb.Columns.MaDoituongKcb].Value, "-1")));

                        foreach (DmucDoituongkcb lObjectType in objectTypeCollection)
                        {
                            QheDoituongThuoc _newItems = new QheDoituongThuoc();
                            _newItems.IdDoituongKcb = lObjectType.IdDoituongKcb;
                            _newItems.IdLoaithuoc = Utility.Int16Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdLoaithuoc].Value, -1);
                            _newItems.IdThuoc = Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdThuoc].Value, -1);
                            _newItems.TyleGiamgia = 0;
                            _newItems.KieuGiamgia = "%";
                            _newItems.DonGia = Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.DonGia].Value, 0);
                            _newItems.PhuthuDungtuyen = Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.PhuthuDungtuyen].Value, 0);
                            _newItems.PhuthuTraituyen = GiaPhuThu;
                            _newItems.IdLoaidoituongKcb = Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdLoaidoituongKcb].Value, -1);
                            _newItems.MaDoituongKcb = lObjectType.MaDoituongKcb;

                            _newItems.NguoiTao = globalVariables.UserName;
                            _newItems.NgayTao = globalVariables.SysDate;
                            _newItems.MaKhoaThuchien = KTH;
                            _newItems.IsNew = true;
                            _newItems.Save();
                            gridExRow.BeginEdit();
                            gridExRow.Cells[QheDoituongThuoc.Columns.IdQuanhe].Value = _newItems.IdQuanhe;
                            gridExRow.EndEdit();
                        }
                    }
                    gridExRow.BeginEdit();
                    gridExRow.Cells[QheDoituongThuoc.Columns.PhuthuTraituyen].Value = GiaPhuThu;
                    gridExRow.EndEdit();
                    grdQhe.UpdateData();
                    //Nếu có chỉnh giá dịch vụ-->Tự động chỉnh giá danh mục thuốc
                    if (PropertyLib._QheGiaThuocProperties.TudongDieuChinhGiaDichVu)
                    {
                        SqlQuery sqlQuery = new Select().From(DmucDoituongkcb.Schema)
                            .Where(DmucDoituongkcb.Columns.IdLoaidoituongKcb).IsEqualTo(1)
                            .And(DmucDoituongkcb.Columns.MaDoituongKcb).IsEqualTo(Utility.sDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.MaDoituongKcb].Value, "-1"));
                        DmucDoituongkcb objectType = sqlQuery.ExecuteSingle<DmucDoituongkcb>();
                        if (objectType != null)
                        {
                            new Update(DmucThuoc.Schema)
                                .Set(DmucThuoc.Columns.DonGia)
                                .EqualTo(Utility.DecimaltoDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.DonGia].Value, 0))
                                .Where(DmucThuoc.Columns.IdThuoc)
                                .IsEqualTo(Utility.Int32Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdThuoc].Value, -1)).Execute();
                        }
                    }
                }
                new Update(DmucThuoc.Schema).Set(DmucThuoc.Columns.DonGia).EqualTo(GiaDV)
                   .Set(DmucThuoc.Columns.GiaBhyt).EqualTo(GiaBHYT)
                   .Where(DmucThuoc.Columns.IdThuoc).IsEqualTo(Utility.Int32Dbnull(grdList.CurrentRow.Cells[DmucThuoc.Columns.IdThuoc].Value, -1))
                   .Execute();
                //Cập nhật giá BHYT cho các khoa khác
                if (PropertyLib._QheGiaThuocProperties.TudongDieuChinhGiaBHYT)
                {
                    if (GiaBHYT >= 0)
                    {
                        QheDoituongThuocCollection lstItems =
                            new Select().From(QheDoituongThuoc.Schema).
                            Where(QheDoituongThuoc.Columns.IdThuoc).
                                  IsEqualTo(idThuoc)
                                  .And(QheDoituongThuoc.MaKhoaThuchienColumn).IsNotEqualTo(KTH).ExecuteAsCollection<QheDoituongThuocCollection>();
                        foreach (QheDoituongThuoc item in lstItems)
                        {
                            int v_IdLoaidoituongKcb = item.IdLoaidoituongKcb;
                            if (v_IdLoaidoituongKcb == 1)
                                GiaDV = item.DonGia;
                        }
                        GiaPhuThu = 0;
                        foreach (QheDoituongThuoc item in lstItems)
                        {
                            int v_IdLoaidoituongKcb = item.IdLoaidoituongKcb;
                            if (v_IdLoaidoituongKcb.ToString() == "0" && GiaDV > 0)//Nếu là đối tượng BHYT
                            {
                                GiaPhuThu = GiaDV - GiaBHYT > 0 ? GiaDV - GiaBHYT : 0;
                                Update _update = new Update(QheDoituongThuoc.Schema).Set(QheDoituongThuoc.DonGiaColumn).EqualTo(GiaBHYT);
                                if (PropertyLib._QheGiaThuocProperties.TudongDieuChinhGiaPTTT)
                                    _update.Set(QheDoituongThuoc.PhuthuTraituyenColumn).EqualTo(GiaPhuThu);
                                _update.Where(QheDoituongThuoc.IdLoaidoituongKcbColumn).IsEqualTo(0).And(QheDoituongThuoc.IdThuocColumn).IsEqualTo(idThuoc)
                                .And(QheDoituongThuoc.MaKhoaThuchienColumn).IsNotEqualTo(KTH)
                                .Execute();
                            }
                        }
                    }
                }
                Utility.SetMsg(lblMsg, "Bạn thực hiện cập nhập giá thành công",false);
            }
            catch (Exception exception)
            {
                Utility.SetMsg(lblMsg, "Lỗi trong quá trình cập nhập thông tin", false);
            }
        }
示例#3
0
        private static ActionResult CapnhatChiphiThuoc(KcbLuotkham objLuotkham)
        {
            using (var Scope = new TransactionScope())
            {
                THUOC_GIATHEO_KHOAKCB = THU_VIEN_CHUNG.Laygiatrithamsohethong("THUOC_GIATHEO_KHOAKCB", "0", true) == "1";
                SqlQuery sqlQuery;
                sqlQuery = new Select().From(KcbDonthuocChitiet.Schema)
                           .Where(KcbDonthuocChitiet.Columns.IdDonthuoc).In(
                    new Select(KcbDonthuoc.Columns.IdDonthuoc).From(KcbDonthuoc.Schema).Where(
                        KcbDonthuoc.Columns.MaLuotkham).
                    IsEqualTo(objLuotkham.MaLuotkham).And(KcbDonthuoc.Columns.IdBenhnhan).
                    IsEqualTo(objLuotkham.IdBenhnhan));
                var objChitietDonthuocCollection =
                    sqlQuery.ExecuteAsCollection <KcbDonthuocChitietCollection>();

                bool ApdunggiathuocDoituong = THU_VIEN_CHUNG.Laygiatrithamsohethong("APDUNG_GIATHUOC_DOITUONG", "0", true) == "1";

                DmucDoituongkcb _DmucDoituongkcb = new Select().From(DmucDoituongkcb.Schema).Where(DmucDoituongkcb.Columns.MaDoituongKcb).IsEqualTo(objLuotkham.MaDoituongKcb).ExecuteSingle <DmucDoituongkcb>();
                if (_DmucDoituongkcb == null)
                {
                    return(ActionResult.Success);
                }
                foreach (KcbDonthuocChitiet objChitietDonthuoc in objChitietDonthuocCollection)
                {
                    if (Utility.Int16Dbnull(objChitietDonthuoc.TrangthaiThanhtoan, 0) == 0)
                    {
                        DmucThuoc _DmucThuoc = DmucThuoc.FetchByID(objChitietDonthuoc.IdThuoc);

                        decimal PtramBHYT = Utility.DecimaltoDbnull(objLuotkham.PtramBhyt);
                        if (ApdunggiathuocDoituong || Utility.Byte2Bool(_DmucDoituongkcb.GiathuocQuanhe.Value)) // globalVariables.gv_GiathuoctheoGiatrongKho)
                        {
                            //Giá theo quan he-->
                            QheDoituongThuoc _item = THU_VIEN_CHUNG.LayQheDoituongThuoc(objLuotkham.MaDoituongKcb,
                                                                                        objChitietDonthuoc.IdThuoc,
                                                                                        objLuotkham.MaKhoaThuchien, CLS_GIATHEO_KHOAKCB);
                            if (_item != null)
                            {
                                objChitietDonthuoc.DonGia    = Utility.DecimaltoDbnull(_item.DonGia);
                                objChitietDonthuoc.PhuThu    = (Utility.isTrue(objLuotkham.DungTuyen.Value) ? Utility.DecimaltoDbnull(_item.PhuthuDungtuyen) : Utility.DecimaltoDbnull(_item.PhuthuTraituyen));
                                objChitietDonthuoc.TuTuc     = 0;
                                objChitietDonthuoc.PtramBhyt = Utility.DecimaltoDbnull(PtramBHYT);
                            }
                            else
                            {
                                _item = THU_VIEN_CHUNG.LayQheDoituongThuoc("DV",
                                                                           objChitietDonthuoc.IdThuoc,
                                                                           objLuotkham.MaKhoaThuchien, THUOC_GIATHEO_KHOAKCB);
                                if (_item != null)
                                {
                                    objChitietDonthuoc.DonGia    = Utility.DecimaltoDbnull(_item.DonGia);
                                    objChitietDonthuoc.PhuThu    = (Utility.isTrue(objLuotkham.DungTuyen.Value) ? Utility.DecimaltoDbnull(_item.PhuthuDungtuyen) : Utility.DecimaltoDbnull(_item.PhuthuTraituyen));
                                    objChitietDonthuoc.TuTuc     = 1;
                                    objChitietDonthuoc.PtramBhyt = 0;
                                }
                            }
                        }
                        else //Giá theo kho-->
                        {
                            TThuockho objTK = TThuockho.FetchByID(objChitietDonthuoc.IdThuockho);
                            if (objTK != null)
                            {
                                objChitietDonthuoc.DonGia = objLuotkham.IdLoaidoituongKcb == 0 ? Utility.DecimaltoDbnull(objTK.GiaBhyt.Value, objChitietDonthuoc.DonGia) : objTK.GiaBan;
                            }
                            if (objLuotkham.IdLoaidoituongKcb == 1)//Đối tượng dịch vụ-->ko cần phải đánh dấu tự túc
                            {
                                objChitietDonthuoc.TuTuc = 0;
                            }
                            if (Utility.Int32Dbnull(objChitietDonthuoc.TuTuc, 0) == 1)
                            {
                                objChitietDonthuoc.BhytChitra  = 0;
                                objChitietDonthuoc.BnhanChitra = Utility.DecimaltoDbnull(objChitietDonthuoc.DonGia, 0);
                                objChitietDonthuoc.PtramBhyt   = 0;
                            }
                            else
                            {
                                objChitietDonthuoc.BhytChitra = Utility.DecimaltoDbnull(objChitietDonthuoc.DonGia) *
                                                                Utility.DecimaltoDbnull(PtramBHYT) / 100;

                                objChitietDonthuoc.BnhanChitra = Utility.DecimaltoDbnull(objChitietDonthuoc.DonGia, 0) -
                                                                 Utility.DecimaltoDbnull(objChitietDonthuoc.BhytChitra, 0);
                                objChitietDonthuoc.PtramBhyt = Utility.DecimaltoDbnull(PtramBHYT);
                            }
                        }
                        if (_DmucThuoc != null && Utility.Int32Dbnull(_DmucThuoc.TuTuc, 0) == 1)
                        {
                            objChitietDonthuoc.TuTuc = 1;       //Ke ca co trong bang quan he
                        }
                        if (objLuotkham.IdLoaidoituongKcb == 1) //Đối tượng dịch vụ-->ko cần phải đánh dấu tự túc
                        {
                            objChitietDonthuoc.TuTuc = 0;
                        }
                        if (Utility.Int32Dbnull(objChitietDonthuoc.TuTuc, 0) == 1)
                        {
                            objChitietDonthuoc.BhytChitra  = 0;
                            objChitietDonthuoc.BnhanChitra = Utility.DecimaltoDbnull(objChitietDonthuoc.DonGia, 0);
                            objChitietDonthuoc.PtramBhyt   = 0;
                        }
                        else
                        {
                            objChitietDonthuoc.BhytChitra = Utility.DecimaltoDbnull(objChitietDonthuoc.DonGia) *
                                                            Utility.DecimaltoDbnull(PtramBHYT) / 100;

                            objChitietDonthuoc.BnhanChitra = Utility.DecimaltoDbnull(objChitietDonthuoc.DonGia, 0) -
                                                             Utility.DecimaltoDbnull(objChitietDonthuoc.BhytChitra, 0);
                            objChitietDonthuoc.PtramBhyt = Utility.DecimaltoDbnull(PtramBHYT);
                        }
                    }
                    else
                    {
                        return(ActionResult.Cancel);
                    }
                }
                objChitietDonthuocCollection.SaveAll();
                Scope.Complete();
                return(ActionResult.Success);
            }
        }
        /// <summary>
        /// HÀM THUWCJHIEENJ KHỞI TẠO CHI TIẾT ĐỐI TƯỢNG CHI TIÊT DỊCH VỤ
        /// </summary>
        /// <returns></returns>
        private QheDoituongThuoc CreateDmucDoituongkcbDetailService()
        {
            var objectTypeService = new QheDoituongThuoc();

            return objectTypeService;
        }
 private QheDoituongThuoc CreateObjectTypeService(GridEXRow gridExRow)
 {
     QheDoituongThuoc objectTypeService=new QheDoituongThuoc();
     objectTypeService.DonGia = Utility.DecimaltoDbnull(
         gridExRow.Cells[QheDoituongThuoc.Columns.DonGia].Value, 0);
     objectTypeService.PhuthuDungtuyen = Utility.DecimaltoDbnull(
         gridExRow.Cells[QheDoituongThuoc.Columns.PhuthuDungtuyen].Value, 0);
     objectTypeService.IdThuoc = Utility.Int16Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdThuoc].Value);
     objectTypeService.IdDoituongKcb =
         Utility.Int16Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.IdDoituongKcb].Value, -1);
     objectTypeService.TyleGiamgia =
       Utility.Int16Dbnull(gridExRow.Cells[QheDoituongThuoc.Columns.TyleGiamgia].Value, -1);
     objectTypeService.KieuGiamgia =
      Utility.sDbnull(gridExRow.Cells[QheDoituongThuoc.Columns.KieuGiamgia].Value);
     return objectTypeService;
 }
        void TaogiathuocQhe()
        {
            try
            {
                if (!Utility.AcceptQuestion("Bạn có chắc chắn tạo dữ liệu test giá thuốc quan hệ cho toàn bộ thuốc trong kho", "cảnh báo", true)) return;
                DmucThuocCollection lstThuoc = new DmucThuocController().FetchAll();
                DmucDoituongkcbCollection lstdoituong = new  DmucDoituongkcbController().FetchAll();
                Random rnd = new Random();
                foreach(DmucThuoc _thuoc in lstThuoc)
                {
                    foreach (DmucDoituongkcb _doituong in lstdoituong)
                    {
                        QheDoituongThuoc _newitem = new QheDoituongThuoc();
                        _newitem.IdDoituongKcb = _doituong.IdDoituongKcb;
                        _newitem.IdLoaithuoc = _thuoc.IdLoaithuoc;
                        _newitem.IdThuoc = _thuoc.IdThuoc;
                        _newitem.TyleGiamgia = 0;
                        _newitem.KieuGiamgia = "%";
                        _newitem.DonGia = rnd.Next(1000, 5000);
                        _newitem.PhuthuDungtuyen = 0;
                        _newitem.IdLoaidoituongKcb = _doituong.IdLoaidoituongKcb;
                        _newitem.PhuthuTraituyen = 0;
                        _newitem.MaDoituongKcb = _doituong.MaDoituongKcb;
                        _newitem.MaKhoaThuchien = "ALL";
                        _newitem.NguoiTao = globalVariables.UserName;
                        _newitem.NgayTao = globalVariables.SysDate;
                        _newitem.NguoiSua = globalVariables.UserName;
                        _newitem.NgaySua = globalVariables.SysDate;
                        _newitem.IsNew = true;
                        _newitem.Save();
                    }

                }
            }
            catch
            {
            }
        }
示例#7
0
        /// <summary>
        /// hàm thực hiện việc xác nhận thông tin
        /// </summary>
        /// <param name="objPhieuNhap"></param>
        /// <returns></returns>
        public ActionResult XacNhanPhieuNhapKho(TPhieuNhapxuatthuoc objPhieuNhap, DateTime ngayxacnhan)
        {
            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        //Lấy lại biến này để xử lý trường hợp người dùng trót nhập áp dụng BHYT sau đó lại đổi biến hệ thống do không muốn
                        bool BHYT_LUACHON_APDUNG       = Utility.Int32Dbnull(THU_VIEN_CHUNG.Laygiatrithamsohethong("BHYT_LUACHON_APDUNG", "0", true), 0) == 1;
                        bool TUDONG_CAPNHAT_GIADICHVU  = Utility.Int32Dbnull(THU_VIEN_CHUNG.Laygiatrithamsohethong("TUDONG_CAPNHAT_GIADICHVU", "0", true), 0) == 1;
                        bool BHYT_CHOPHEPNHAPGIAPHUTHU = Utility.Int32Dbnull(THU_VIEN_CHUNG.Laygiatrithamsohethong("BHYT_CHOPHEPNHAPGIAPHUTHU", "0", true), 0) == 1;

                        SqlQuery sqlQuery = new Select().From(TPhieuNhapxuatthuocChitiet.Schema)
                                            .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu);
                        TPhieuNhapxuatthuocChitietCollection objPhieuNhapCtCollection =
                            sqlQuery.ExecuteAsCollection <TPhieuNhapxuatthuocChitietCollection>();
                        objPhieuNhap.NgayXacnhan = ngayxacnhan;
                        foreach (TPhieuNhapxuatthuocChitiet objPhieuNhapCt in objPhieuNhapCtCollection)
                        {
                            long            idthuockho = -1;
                            StoredProcedure sp         = SPs.ThuocNhapkhoOutput(objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                                                objPhieuNhapCt.SoLuong, Utility.DecimaltoDbnull(objPhieuNhap.Vat),
                                                                                objPhieuNhapCt.IdThuoc, objPhieuNhap.IdKhonhap, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, -1, idthuockho, ngayxacnhan, objPhieuNhapCt.GiaBhyt);

                            sp.Execute();
                            idthuockho = Utility.Int64Dbnull(sp.OutputValues[0], -1);
                            new Update(TPhieuNhapxuatthuocChitiet.Schema)
                            .Set(TPhieuNhapxuatthuocChitiet.Columns.IdThuockho).EqualTo(idthuockho)
                            .Set(TPhieuNhapxuatthuocChitiet.Columns.NgayNhap).EqualTo(ngayxacnhan.Date)
                            .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieuchitiet).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet).Execute();
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu          = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet   = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu          = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.NgayNhap         = ngayxacnhan.Date;
                            objXuatNhap.DonGia           = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.GiaBan           = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.GiaNhap          = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.SoHoadon         = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            objXuatNhap.SoChungtuKemtheo = objPhieuNhap.SoChungtuKemtheo;
                            objXuatNhap.PhuThu           = 0;
                            objXuatNhap.SoLuong          = Utility.Int32Dbnull(objPhieuNhapCt.SoLuong);
                            objXuatNhap.NgayTao          = globalVariables.SysDate;
                            objXuatNhap.NguoiTao         = globalVariables.UserName;
                            objXuatNhap.ThanhTien        = Utility.DecimaltoDbnull(objPhieuNhapCt.ThanhTien);
                            objXuatNhap.IdThuoc          = Utility.Int32Dbnull(objPhieuNhapCt.IdThuoc);
                            objXuatNhap.Vat        = Utility.Int32Dbnull(objPhieuNhap.Vat);
                            objXuatNhap.IdNhanvien = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien);
                            objXuatNhap.IdKho      = Utility.Int16Dbnull(objPhieuNhap.IdKhonhap);
                            objXuatNhap.NgayHethan = objPhieuNhapCt.NgayHethan.Date;
                            //objXuatNhap.IdNhaCcap = Utility.Int32Dbnull(objPhieuNhap.IdNhaCcap);
                            objXuatNhap.MaNhacungcap = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.SoLo         = objPhieuNhapCt.SoLo;
                            objXuatNhap.MaLoaiphieu  = Utility.ByteDbnull(objPhieuNhap.LoaiPhieu);
                            objXuatNhap.TenLoaiphieu = Utility.sDbnull(objPhieuNhap.TenLoaiphieu);
                            objXuatNhap.NgayBiendong = objPhieuNhap.NgayXacnhan;
                            objXuatNhap.NgayHoadon   = objPhieuNhap.NgayHoadon;
                            objXuatNhap.IdThuockho   = idthuockho;

                            objXuatNhap.GiaBhyt            = objPhieuNhapCt.GiaBhyt;
                            objXuatNhap.GiaBhytCu          = objPhieuNhapCt.GiaBhytCu;
                            objXuatNhap.GiaPhuthuDungtuyen = objPhieuNhapCt.GiaPhuthuDungtuyen;
                            objXuatNhap.GiaPhuthuTraituyen = objPhieuNhapCt.GiaPhuthuTraituyen;

                            objXuatNhap.KieuThuocvattu = objPhieuNhap.KieuThuocvattu;
                            objXuatNhap.IsNew          = true;
                            objXuatNhap.Save();

                            if ((Utility.ByteDbnull(objPhieuNhapCt.CoBhyt, 0) == 1 && BHYT_LUACHON_APDUNG) || TUDONG_CAPNHAT_GIADICHVU)
                            {
                                DmucDoituongkcbCollection _lstdoituong = new Select().From(DmucDoituongkcb.Schema).ExecuteAsCollection <DmucDoituongkcbCollection>();
                                //DmucDoituongkcbCollection _kcb = new Select().From(DmucDoituongkcb.Schema).Where(DmucDoituongkcb.Columns.IdLoaidoituongKcb).IsEqualTo(0).ExecuteAsCollection<DmucDoituongkcbCollection>();
                                DmucThuoc _objThuoc = new Select().From(DmucThuoc.Schema).Where(DmucThuoc.Columns.IdThuoc).IsEqualTo(objPhieuNhapCt.IdThuoc).ExecuteSingle <DmucThuoc>();
                                if (_lstdoituong != null && _objThuoc != null)
                                {
                                    new Update(DmucThuoc.Schema).Set(DmucThuoc.Columns.DonGia).EqualTo(objPhieuNhapCt.GiaBan).Where(DmucThuoc.Columns.IdThuoc).IsEqualTo(_objThuoc.IdThuoc).Execute();
                                    foreach (DmucDoituongkcb _kcb in _lstdoituong)
                                    {
                                        if ((Utility.ByteDbnull(objPhieuNhapCt.CoBhyt, 0) == 1 && BHYT_LUACHON_APDUNG && _kcb.IdLoaidoituongKcb == 0) || (TUDONG_CAPNHAT_GIADICHVU && _kcb.IdLoaidoituongKcb == 1))
                                        {
                                            decimal          DonGia          = 0m;
                                            decimal          PhuthuDungtuyen = 0m;
                                            decimal          PhuthuTraituyen = 0m;
                                            bool             allowupdate     = false;
                                            QheDoituongThuoc objQhe          = new Select().From(QheDoituongThuoc.Schema)
                                                                               .Where(QheDoituongThuoc.Columns.IdThuoc).IsEqualTo(objPhieuNhapCt.IdThuoc)
                                                                               .And(QheDoituongThuoc.Columns.IdLoaidoituongKcb).IsEqualTo(_kcb.IdLoaidoituongKcb).ExecuteSingle <QheDoituongThuoc>();
                                            if (objQhe != null)//Đã có quan hệ-->Cập nhật lại
                                            {
                                                if (_kcb.IdLoaidoituongKcb == 0)
                                                {
                                                    if (Utility.ByteDbnull(objPhieuNhapCt.CoBhyt, 0) == 1 && BHYT_LUACHON_APDUNG)
                                                    {
                                                        allowupdate     = true;
                                                        DonGia          = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhyt, 0);
                                                        PhuthuDungtuyen = BHYT_CHOPHEPNHAPGIAPHUTHU ? Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuDungtuyen, 0) : objQhe.PhuthuDungtuyen.Value;
                                                        PhuthuTraituyen = BHYT_CHOPHEPNHAPGIAPHUTHU ? Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuTraituyen, 0) : objQhe.PhuthuTraituyen.Value;
                                                    }
                                                }
                                                else
                                                {
                                                    if (TUDONG_CAPNHAT_GIADICHVU)
                                                    {
                                                        allowupdate     = true;
                                                        DonGia          = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan, 0);
                                                        PhuthuDungtuyen = objQhe.PhuthuDungtuyen.Value;
                                                        PhuthuTraituyen = objQhe.PhuthuTraituyen.Value;
                                                    }
                                                }
                                                if (allowupdate)
                                                {
                                                    new Update(QheDoituongThuoc.Schema)
                                                    .Set(QheDoituongThuoc.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                                                    .Set(QheDoituongThuoc.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                                                    .Set(QheDoituongThuoc.Columns.DonGia).EqualTo(DonGia)
                                                    .Set(QheDoituongThuoc.Columns.PhuthuDungtuyen).EqualTo(PhuthuDungtuyen)
                                                    .Set(QheDoituongThuoc.Columns.PhuthuTraituyen).EqualTo(PhuthuTraituyen)
                                                    .Where(QheDoituongThuoc.Columns.IdLoaidoituongKcb).IsEqualTo(_kcb.IdLoaidoituongKcb)
                                                    .And(QheDoituongThuoc.Columns.IdThuoc).IsEqualTo(objPhieuNhapCt.IdThuoc)
                                                    .Execute();
                                                }
                                            }
                                            else
                                            {
                                                if (_kcb.IdLoaidoituongKcb == 0)
                                                {
                                                    if (Utility.ByteDbnull(objPhieuNhapCt.CoBhyt, 0) == 1 && BHYT_LUACHON_APDUNG)
                                                    {
                                                        allowupdate     = true;
                                                        DonGia          = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhyt, 0);
                                                        PhuthuDungtuyen = BHYT_CHOPHEPNHAPGIAPHUTHU ? Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuDungtuyen, 0) : 0m;
                                                        PhuthuTraituyen = BHYT_CHOPHEPNHAPGIAPHUTHU ? Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuTraituyen, 0) : 0m;
                                                    }
                                                }
                                                else
                                                {
                                                    if (TUDONG_CAPNHAT_GIADICHVU)
                                                    {
                                                        allowupdate     = true;
                                                        DonGia          = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan, 0);
                                                        PhuthuDungtuyen = 0m;
                                                        PhuthuTraituyen = 0m;
                                                    }
                                                }
                                                if (allowupdate)
                                                {
                                                    QheDoituongThuoc _newItems = new QheDoituongThuoc();
                                                    _newItems.IdDoituongKcb     = _kcb.IdDoituongKcb;
                                                    _newItems.IdLoaithuoc       = _objThuoc.IdLoaithuoc;
                                                    _newItems.IdThuoc           = objPhieuNhapCt.IdThuoc;
                                                    _newItems.TyleGiamgia       = 0;
                                                    _newItems.KieuGiamgia       = "%";
                                                    _newItems.DonGia            = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhyt, 0);
                                                    _newItems.PhuthuDungtuyen   = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuDungtuyen, 0);
                                                    _newItems.PhuthuTraituyen   = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuTraituyen, 0);
                                                    _newItems.IdLoaidoituongKcb = _kcb.IdLoaidoituongKcb;
                                                    _newItems.MaDoituongKcb     = _kcb.MaDoituongKcb;

                                                    _newItems.NguoiTao       = globalVariables.UserName;
                                                    _newItems.NgayTao        = globalVariables.SysDate;
                                                    _newItems.MaKhoaThuchien = "ALL";
                                                    _newItems.IsNew          = true;
                                                    _newItems.Save();
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        new Update(TPhieuNhapxuatthuoc.Schema)
                        .Set(TPhieuNhapxuatthuoc.Columns.IdNhanvien).EqualTo(globalVariables.gv_intIDNhanvien)
                        .Set(TPhieuNhapxuatthuoc.Columns.NguoiXacnhan).EqualTo(globalVariables.UserName)
                        .Set(TPhieuNhapxuatthuoc.Columns.NgayXacnhan).EqualTo(ngayxacnhan)
                        .Set(TPhieuNhapxuatthuoc.Columns.TrangThai).EqualTo(1)
                        .Where(TPhieuNhapxuatthuoc.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu).Execute();
                    }
                    Scope.Complete();
                    return(ActionResult.Success);
                }
            }
            catch (Exception exception)
            {
                log.Error("Loi trong qua trinh xac nhan don thuoc :{0}", exception);
                return(ActionResult.Error);
            }
        }
示例#8
0
        void ImportFromExcel(bool taoquanhe)
        {
            bool hasError = false;
            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {

                        //new Delete().From(DmucThuoc.Schema).Execute();
                        //if (taoquanhe)
                        //{
                        //    List<int> lstIdDoituongKCB = (from p in grdObjectTypeList.GetCheckedRows()
                        //                                  select Utility.Int32Dbnull(p.Cells[DmucDoituongkcb.Columns.IdDoituongKcb].Value, 0)
                        //                                     ).ToList<int>();
                        //    new Delete().From(QheDoituongThuoc.Schema).Where(QheDoituongThuoc.Columns.IdDoituongKcb).In(lstIdDoituongKCB).Execute();
                        //}
                        SPs.ResetDuocAll().Execute();
                        int idx = 0;
                        List<string> lstNoitruNgoaitru = new List<string>() { "ALL", "NOI", "NGOAI" };
                        List<string> lstThuoc_VT = new List<string>() { "THUOC", "VT" };
                        progressBar1.Visible = true;
                        lblCount.Visible = true;
                        progressBar1.Minimum = 0;
                        progressBar1.Maximum = grdList.GetCheckedRows().Length;
                        progressBar1.Value = 0;
                        foreach (GridEXRow row in grdList.GetCheckedRows())
                        {
                            idx++;
                            if (progressBar1.Value + 1 <= progressBar1.Maximum) progressBar1.Value += 1;
                            lblCount.Text = progressBar1.Value.ToString() + " / " + progressBar1.Maximum.ToString();

                            try
                            {
                                DmucThuoc _newDmucThuoc = new DmucThuoc();
                                _newDmucThuoc.DangBaoche = Utility.sDbnull(row.Cells[DmucThuoc.Columns.DangBaoche].Value, "");
                                _newDmucThuoc.DonGia = Utility.DecimaltoDbnull(row.Cells[DmucThuoc.Columns.DonGia].Value, 0);
                                _newDmucThuoc.GiaBhyt = Utility.DecimaltoDbnull(row.Cells[DmucThuoc.Columns.GiaBhyt].Value, 0);
                                _newDmucThuoc.HamLuong = Utility.sDbnull(row.Cells[DmucThuoc.Columns.HamLuong].Value, "");
                                _newDmucThuoc.HangSanxuat = Utility.sDbnull(row.Cells[DmucThuoc.Columns.HangSanxuat].Value, "");
                                _newDmucThuoc.HoatChat = Utility.sDbnull(row.Cells[DmucThuoc.Columns.HoatChat].Value, "");
                                _newDmucThuoc.IdLoaithuoc = Utility.Int16Dbnull(row.Cells[DmucThuoc.Columns.IdLoaithuoc].Value, -1);
                                _newDmucThuoc.IdThuoc = -1;
                                string KieuThuocvattu = Utility.DoTrim(Utility.sDbnull(row.Cells[DmucThuoc.Columns.KieuThuocvattu].Value, "THUOC"));
                                _newDmucThuoc.KieuThuocvattu = KieuThuocvattu == "" || !lstThuoc_VT.Contains(KieuThuocvattu) ? "THUOC" : KieuThuocvattu;
                                _newDmucThuoc.MaDonvitinh = Utility.sDbnull(row.Cells[DmucThuoc.Columns.MaDonvitinh].Value, "");
                                string ma_thuoc = Utility.DoTrim(Utility.sDbnull(row.Cells[DmucThuoc.Columns.MaThuoc].Value, ""));
                                _newDmucThuoc.MaThuoc = ma_thuoc == "" ? "T" + idx.ToString() : ma_thuoc;
                                _newDmucThuoc.MotaThem = Utility.sDbnull(row.Cells[DmucThuoc.Columns.MotaThem].Value, "");
                                string NoitruNgoaitru = Utility.DoTrim(Utility.sDbnull(row.Cells[DmucThuoc.Columns.NoitruNgoaitru].Value, ""));
                                _newDmucThuoc.NoitruNgoaitru = NoitruNgoaitru == "" || !lstNoitruNgoaitru.Contains(NoitruNgoaitru) ? "ALL" : NoitruNgoaitru;
                                _newDmucThuoc.NuocSanxuat = Utility.sDbnull(row.Cells[DmucThuoc.Columns.NuocSanxuat].Value, "");
                                _newDmucThuoc.PhuthuDungtuyen = Utility.DecimaltoDbnull(row.Cells[DmucThuoc.Columns.PhuthuDungtuyen].Value, 0);
                                _newDmucThuoc.PhuthuTraituyen = Utility.DecimaltoDbnull(row.Cells[DmucThuoc.Columns.PhuthuTraituyen].Value, 0);
                                _newDmucThuoc.QD31 = Utility.sDbnull(row.Cells[DmucThuoc.Columns.QD31].Value, "");
                                _newDmucThuoc.SoDangky = Utility.sDbnull(row.Cells[DmucThuoc.Columns.SoDangky].Value, "");
                                _newDmucThuoc.TenBhyt = Utility.sDbnull(row.Cells[DmucThuoc.Columns.TenBhyt].Value, "");
                                _newDmucThuoc.TenThuoc = Utility.sDbnull(row.Cells[DmucThuoc.Columns.TenThuoc].Value, "");
                                _newDmucThuoc.TinhChat = Utility.ByteDbnull(row.Cells[DmucThuoc.Columns.TinhChat].Value, 0);
                                _newDmucThuoc.TrangThai = 1;
                                _newDmucThuoc.TuTuc = Utility.ByteDbnull(row.Cells[DmucThuoc.Columns.TuTuc].Value, 0);

                                _newDmucThuoc.IsNew = true;
                                _newDmucThuoc.Save();
                                if (taoquanhe)
                                {
                                    foreach (GridEXRow rowdoituong in grdObjectTypeList.GetCheckedRows())
                                    {
                                        DmucDoituongkcb _DmucDoituongkcb = DmucDoituongkcb.FetchByID(Utility.Int32Dbnull(rowdoituong.Cells[DmucDoituongkcb.Columns.IdDoituongKcb].Value, -1));
                                        QheDoituongThuoc _QheDoituongThuoc = new QheDoituongThuoc();

                                        _QheDoituongThuoc.IdDoituongKcb = _DmucDoituongkcb.IdDoituongKcb;
                                        _QheDoituongThuoc.IdLoaithuoc = _newDmucThuoc.IdLoaithuoc;
                                        _QheDoituongThuoc.IdThuoc = _newDmucThuoc.IdThuoc;
                                        _QheDoituongThuoc.TyleGiamgia = 0;
                                        _QheDoituongThuoc.KieuGiamgia = "%";
                                        _QheDoituongThuoc.DonGia = (THU_VIEN_CHUNG.IsBaoHiem(_DmucDoituongkcb.IdLoaidoituongKcb) ? Utility.DecimaltoDbnull(_newDmucThuoc.GiaBhyt, 0) : Utility.DecimaltoDbnull(_newDmucThuoc.DonGia, 0));
                                        _QheDoituongThuoc.PhuthuDungtuyen = (THU_VIEN_CHUNG.IsBaoHiem(_DmucDoituongkcb.IdLoaidoituongKcb) ? Utility.DecimaltoDbnull(_newDmucThuoc.PhuthuDungtuyen, 0) : 0m);
                                        _QheDoituongThuoc.PhuthuTraituyen = (THU_VIEN_CHUNG.IsBaoHiem(_DmucDoituongkcb.IdLoaidoituongKcb) ? Utility.DecimaltoDbnull(_newDmucThuoc.PhuthuTraituyen, 0) : 0m);
                                        _QheDoituongThuoc.IdLoaidoituongKcb = _DmucDoituongkcb.IdLoaidoituongKcb;

                                        _QheDoituongThuoc.MaDoituongKcb = _DmucDoituongkcb.MaDoituongKcb;
                                        _QheDoituongThuoc.MaKhoaThuchien = globalVariables.MA_KHOA_THIEN;
                                        _QheDoituongThuoc.NgayTao = globalVariables.SysDate;
                                        _QheDoituongThuoc.NguoiTao = globalVariables.UserName;
                                        _QheDoituongThuoc.IsNew = true;
                                        _QheDoituongThuoc.Save();
                                    }
                                }

                            }
                            catch
                            {
                                hasError = true;
                                row.BeginEdit();
                                row.Cells["Error"].Value = 1;
                                row.Cells["Success"].Value = 0;
                                row.EndEdit();
                            }
                            finally
                            {
                                Application.DoEvents();
                            }
                        }

                    }
                    if (hasError)
                    {
                        if (Utility.AcceptQuestion("Có lỗi trong quá trình đẩy dữ liệu thuốc từ file excel vào hệ thống. Bạn có muốn chấp nhận các dữ liệu đã đẩy thành công hay không?\nChú ý: Với các dữ liệu lỗi bạn có thể liên hệ để được trợ giúp để khắc phục"))
                        {
                            Scope.Complete();
                            m_blnCancel = false;
                        }
                    }
                    else
                    {
                        Scope.Complete();
                        Utility.ShowMsg("Đã nhập liệu thành công. Nhấn OK để kết thúc");
                        m_blnCancel = false;
                    }

                }
            }
            catch (Exception ex)
            {
                Utility.CatchException("Lỗi khi xuất thuốc ra file Excel", ex);

            }
            finally
            {
                progressBar1.Visible = false;
                lblCount.Visible = false;
            }
        }
示例#9
0
        /// <summary>
        /// hàm thực hiện việc xác nhận thông tin 
        /// </summary>
        /// <param name="objPhieuNhap"></param>
        /// <returns></returns>
        public ActionResult XacNhanPhieuNhapKho(TPhieuNhapxuatthuoc objPhieuNhap,DateTime ngayxacnhan)
        {
            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        //Sẽ hướng đơn vị theo kiểu bốc thuốc trong bảng t_thuockho+Cho nhập giá BHYT,giá DV ngay tại chức năng nhập thuốc từ nhà cung cấp
                        bool BHYT_LUACHON_APDUNG = Utility.Int32Dbnull(THU_VIEN_CHUNG.Laygiatrithamsohethong("BHYT_LUACHON_APDUNG", "0", false), 0) == 1;
                        bool TUDONG_CAPNHAT_GIADICHVU = Utility.Int32Dbnull(THU_VIEN_CHUNG.Laygiatrithamsohethong("TUDONG_CAPNHAT_GIADICHVU", "0", false), 0) == 1;
                        bool BHYT_CHOPHEPNHAPGIAPHUTHU = Utility.Int32Dbnull(THU_VIEN_CHUNG.Laygiatrithamsohethong("BHYT_CHOPHEPNHAPGIAPHUTHU", "0", false), 0) == 1;

                        SqlQuery sqlQuery = new Select().From(TPhieuNhapxuatthuocChitiet.Schema)
                            .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu);
                        TPhieuNhapxuatthuocChitietCollection objPhieuNhapCtCollection =
                            sqlQuery.ExecuteAsCollection<TPhieuNhapxuatthuocChitietCollection>();
                        objPhieuNhap.NgayXacnhan = ngayxacnhan;
                        foreach (TPhieuNhapxuatthuocChitiet objPhieuNhapCt in objPhieuNhapCtCollection)
                        {

                            long idthuockho=-1;
                            StoredProcedure sp = SPs.ThuocNhapkhoOutput(objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                                      objPhieuNhapCt.SoLuong, Utility.DecimaltoDbnull(objPhieuNhap.Vat),
                                                                      objPhieuNhapCt.IdThuoc, objPhieuNhap.IdKhonhap, objPhieuNhapCt.MaNhacungcap,
                                                                      objPhieuNhapCt.SoLo, objPhieuNhapCt.SoDky, objPhieuNhapCt.SoQdinhthau,
                                                                      -1, idthuockho, ngayxacnhan, objPhieuNhapCt.GiaBhyt, objPhieuNhapCt.GiaPhuthuDungtuyen, objPhieuNhapCt.GiaPhuthuTraituyen, objPhieuNhapCt.KieuThuocvattu);

                            sp.Execute();
                            idthuockho=Utility.Int64Dbnull(sp.OutputValues[0],-1);
                            new Update(TPhieuNhapxuatthuocChitiet.Schema)
                                .Set(TPhieuNhapxuatthuocChitiet.Columns.IdThuockho).EqualTo(idthuockho)
                                .Set(TPhieuNhapxuatthuocChitiet.Columns.NgayNhap).EqualTo(ngayxacnhan.Date)
                                .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieuchitiet).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet).Execute();
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.NgayNhap = ngayxacnhan.Date;
                            objXuatNhap.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia);
                            objXuatNhap.GiaBan = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.ThuocVay = objPhieuNhap.PhieuVay;
                            objXuatNhap.GiaNhap = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.SoHoadon = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            objXuatNhap.SoChungtuKemtheo = objPhieuNhap.SoChungtuKemtheo;
                            objXuatNhap.PhuThu = 0;
                            objXuatNhap.SoLuong = Utility.Int32Dbnull(objPhieuNhapCt.SoLuong);
                            objXuatNhap.NgayTao = globalVariables.SysDate;
                            objXuatNhap.NguoiTao = globalVariables.UserName;
                            objXuatNhap.ThanhTien = Utility.DecimaltoDbnull(objPhieuNhapCt.ThanhTien);
                            objXuatNhap.IdThuoc = Utility.Int32Dbnull(objPhieuNhapCt.IdThuoc);
                            objXuatNhap.Vat = Utility.Int32Dbnull(objPhieuNhap.Vat);
                            objXuatNhap.IdNhanvien = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien);
                            objXuatNhap.IdKho = Utility.Int16Dbnull(objPhieuNhap.IdKhonhap);
                            objXuatNhap.NgayHethan = objPhieuNhapCt.NgayHethan.Date;
                            //objXuatNhap.IdNhaCcap = Utility.Int32Dbnull(objPhieuNhap.IdNhaCcap);
                            objXuatNhap.MaNhacungcap = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.SoLo = objPhieuNhapCt.SoLo;
                            objXuatNhap.SoDky = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.SoDky = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.MaLoaiphieu = Utility.ByteDbnull(objPhieuNhap.LoaiPhieu);
                            objXuatNhap.TenLoaiphieu = Utility.sDbnull(objPhieuNhap.TenLoaiphieu);
                            objXuatNhap.NgayBiendong = objPhieuNhap.NgayXacnhan;
                            objXuatNhap.NgayHoadon = objPhieuNhap.NgayHoadon;
                            objXuatNhap.IdThuockho = idthuockho;

                            objXuatNhap.GiaBhyt = objPhieuNhapCt.GiaBhyt;
                            objXuatNhap.GiaBhytCu =objPhieuNhapCt.GiaBhytCu;
                            objXuatNhap.GiaPhuthuDungtuyen = objPhieuNhapCt.GiaPhuthuDungtuyen;
                            objXuatNhap.GiaPhuthuTraituyen = objPhieuNhapCt.GiaPhuthuTraituyen;
                            objXuatNhap.Noitru = 0;
                            objXuatNhap.QuayThuoc = 0;
                            objXuatNhap.DuTru = 0;
                            objXuatNhap.KieuThuocvattu = objPhieuNhap.KieuThuocvattu;
                            objXuatNhap.IsNew = true;
                            objXuatNhap.Save();

                            new Update(DmucThuoc.Schema)
                                       .Set(DmucThuoc.Columns.DonGia).EqualTo(objPhieuNhapCt.DonGia)
                                       .Set(DmucThuoc.Columns.GiaDv).EqualTo(objPhieuNhapCt.GiaBan)
                                       .Set(DmucThuoc.Columns.GiaBhyt).EqualTo(objPhieuNhapCt.GiaBhyt)
                                       .Set(DmucThuoc.Columns.PhuthuDungtuyen).EqualTo(objPhieuNhapCt.GiaPhuthuDungtuyen)
                                       .Set(DmucThuoc.Columns.PhuthuTraituyen).EqualTo(objPhieuNhapCt.GiaPhuthuTraituyen)
                                       .Where(DmucThuoc.Columns.IdThuoc).IsEqualTo(objPhieuNhapCt.IdThuoc).Execute();

                            if ((Utility.ByteDbnull(objPhieuNhapCt.CoBhyt, 0) == 1 && BHYT_LUACHON_APDUNG) || TUDONG_CAPNHAT_GIADICHVU)
                            {
                                DmucDoituongkcbCollection _lstdoituong = new Select().From(DmucDoituongkcb.Schema).ExecuteAsCollection<DmucDoituongkcbCollection>();
                                //DmucDoituongkcbCollection _kcb = new Select().From(DmucDoituongkcb.Schema).Where(DmucDoituongkcb.Columns.IdLoaidoituongKcb).IsEqualTo(0).ExecuteAsCollection<DmucDoituongkcbCollection>();
                                DmucThuoc _objThuoc = new Select().From(DmucThuoc.Schema).Where(DmucThuoc.Columns.IdThuoc).IsEqualTo(objPhieuNhapCt.IdThuoc).ExecuteSingle<DmucThuoc>();
                                if (_lstdoituong != null && _objThuoc != null )
                                {

                                    foreach (DmucDoituongkcb _kcb in _lstdoituong)
                                    {
                                        if ((Utility.ByteDbnull(objPhieuNhapCt.CoBhyt, 0) == 1 && BHYT_LUACHON_APDUNG && _kcb.IdLoaidoituongKcb == 0) || (TUDONG_CAPNHAT_GIADICHVU && _kcb.IdLoaidoituongKcb == 1))
                                        {
                                            decimal DonGia = 0m;
                                            decimal PhuthuDungtuyen = 0m;
                                            decimal PhuthuTraituyen = 0m;
                                            bool allowupdate = false;
                                            QheDoituongThuoc objQhe = new Select().From(QheDoituongThuoc.Schema)
                                                .Where(QheDoituongThuoc.Columns.IdThuoc).IsEqualTo(objPhieuNhapCt.IdThuoc)
                                          .And(QheDoituongThuoc.Columns.IdLoaidoituongKcb).IsEqualTo(_kcb.IdLoaidoituongKcb).ExecuteSingle<QheDoituongThuoc>();
                                            if (objQhe!=null)//Đã có quan hệ-->Cập nhật lại
                                            {
                                                if (_kcb.IdLoaidoituongKcb == 0)
                                                {
                                                    if (Utility.ByteDbnull(objPhieuNhapCt.CoBhyt, 0) == 1 && BHYT_LUACHON_APDUNG)
                                                    {
                                                        allowupdate = true;
                                                        DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhyt, 0);
                                                        PhuthuDungtuyen = BHYT_CHOPHEPNHAPGIAPHUTHU ? Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuDungtuyen, 0) : objQhe.PhuthuDungtuyen.Value;
                                                        PhuthuTraituyen = BHYT_CHOPHEPNHAPGIAPHUTHU ? Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuTraituyen, 0) : objQhe.PhuthuTraituyen.Value;
                                                    }
                                                }
                                                else
                                                {
                                                    if (TUDONG_CAPNHAT_GIADICHVU)
                                                    {
                                                        allowupdate = true;
                                                        DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan, 0);
                                                        PhuthuDungtuyen =  objQhe.PhuthuDungtuyen.Value;
                                                        PhuthuTraituyen = objQhe.PhuthuTraituyen.Value;
                                                    }
                                                }
                                                if (allowupdate)
                                                    new Update(QheDoituongThuoc.Schema)
                                                        .Set(QheDoituongThuoc.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                                                        .Set(QheDoituongThuoc.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                                                        .Set(QheDoituongThuoc.Columns.DonGia).EqualTo(DonGia)
                                                        .Set(QheDoituongThuoc.Columns.PhuthuDungtuyen).EqualTo(PhuthuDungtuyen)
                                                        .Set(QheDoituongThuoc.Columns.PhuthuTraituyen).EqualTo(PhuthuTraituyen)
                                                        .Where(QheDoituongThuoc.Columns.IdLoaidoituongKcb).IsEqualTo(_kcb.IdLoaidoituongKcb)
                                                        .And(QheDoituongThuoc.Columns.IdThuoc).IsEqualTo(objPhieuNhapCt.IdThuoc)
                                                            .Execute();
                                            }
                                            else
                                            {
                                                 if (_kcb.IdLoaidoituongKcb == 0)
                                                {
                                                    if (Utility.ByteDbnull(objPhieuNhapCt.CoBhyt, 0) == 1 && BHYT_LUACHON_APDUNG)
                                                    {
                                                        allowupdate = true;
                                                        DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhyt, 0);
                                                        PhuthuDungtuyen = BHYT_CHOPHEPNHAPGIAPHUTHU ? Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuDungtuyen, 0) : 0m;
                                                        PhuthuTraituyen = BHYT_CHOPHEPNHAPGIAPHUTHU ? Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuTraituyen, 0) : 0m;
                                                    }
                                                }
                                                else
                                                {
                                                    if (TUDONG_CAPNHAT_GIADICHVU)
                                                    {
                                                        allowupdate = true;
                                                        DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan, 0);
                                                        PhuthuDungtuyen = 0m;
                                                        PhuthuTraituyen = 0m;
                                                    }
                                                }
                                                 if (allowupdate)
                                                 {
                                                     QheDoituongThuoc _newItems = new QheDoituongThuoc();
                                                     _newItems.IdDoituongKcb = _kcb.IdDoituongKcb;
                                                     _newItems.IdLoaithuoc = _objThuoc.IdLoaithuoc;
                                                     _newItems.IdThuoc = objPhieuNhapCt.IdThuoc;
                                                     _newItems.TyleGiamgia = 0;
                                                     _newItems.KieuGiamgia = "%";
                                                     _newItems.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhyt, 0);
                                                     _newItems.PhuthuDungtuyen = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuDungtuyen, 0);
                                                     _newItems.PhuthuTraituyen = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuTraituyen, 0);
                                                     _newItems.IdLoaidoituongKcb = _kcb.IdLoaidoituongKcb;
                                                     _newItems.MaDoituongKcb = _kcb.MaDoituongKcb;

                                                     _newItems.NguoiTao = globalVariables.UserName;
                                                     _newItems.NgayTao = globalVariables.SysDate;
                                                     _newItems.MaKhoaThuchien = "ALL";
                                                     _newItems.IsNew = true;
                                                     _newItems.Save();
                                                 }

                                            }
                                        }
                                    }
                                }
                            }
                        }
                        new Update(TPhieuNhapxuatthuoc.Schema)
                            .Set(TPhieuNhapxuatthuoc.Columns.IdNhanvien).EqualTo(globalVariables.gv_intIDNhanvien)
                            .Set(TPhieuNhapxuatthuoc.Columns.NguoiXacnhan).EqualTo(globalVariables.UserName)
                            .Set(TPhieuNhapxuatthuoc.Columns.NgayXacnhan).EqualTo(ngayxacnhan)
                            .Set(TPhieuNhapxuatthuoc.Columns.TrangThai).EqualTo(1)
                            .Where(TPhieuNhapxuatthuoc.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu).Execute();
                    }
                    Scope.Complete();
                    return ActionResult.Success;
                }
            }
            catch (Exception exception)
            {
                log.Error("Loi trong qua trinh xac nhan don thuoc :{0}", exception);
                return ActionResult.Error;

            }
        }
示例#10
0
        void ImportFromExcel(bool taoquanhe)
        {
            bool hasError = false;

            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        //new Delete().From(DmucThuoc.Schema).Execute();
                        //if (taoquanhe)
                        //{
                        //    List<int> lstIdDoituongKCB = (from p in grdObjectTypeList.GetCheckedRows()
                        //                                  select Utility.Int32Dbnull(p.Cells[DmucDoituongkcb.Columns.IdDoituongKcb].Value, 0)
                        //                                     ).ToList<int>();
                        //    new Delete().From(QheDoituongThuoc.Schema).Where(QheDoituongThuoc.Columns.IdDoituongKcb).In(lstIdDoituongKCB).Execute();
                        //}
                        SPs.ResetDuocAll().Execute();
                        int           idx = 0;
                        List <string> lstNoitruNgoaitru = new List <string>()
                        {
                            "ALL", "NOI", "NGOAI"
                        };
                        List <string> lstThuoc_VT = new List <string>()
                        {
                            "THUOC", "VT"
                        };
                        progressBar1.Visible = true;
                        lblCount.Visible     = true;
                        progressBar1.Minimum = 0;
                        progressBar1.Maximum = grdList.GetCheckedRows().Length;
                        progressBar1.Value   = 0;
                        foreach (GridEXRow row in grdList.GetCheckedRows())
                        {
                            idx++;
                            if (progressBar1.Value + 1 <= progressBar1.Maximum)
                            {
                                progressBar1.Value += 1;
                            }
                            lblCount.Text = progressBar1.Value.ToString() + " / " + progressBar1.Maximum.ToString();

                            try
                            {
                                DmucThuoc _newDmucThuoc = new DmucThuoc();
                                _newDmucThuoc.DangBaoche  = Utility.sDbnull(row.Cells[DmucThuoc.Columns.DangBaoche].Value, "");
                                _newDmucThuoc.DonGia      = Utility.DecimaltoDbnull(row.Cells[DmucThuoc.Columns.DonGia].Value, 0);
                                _newDmucThuoc.GiaBhyt     = Utility.DecimaltoDbnull(row.Cells[DmucThuoc.Columns.GiaBhyt].Value, 0);
                                _newDmucThuoc.HamLuong    = Utility.sDbnull(row.Cells[DmucThuoc.Columns.HamLuong].Value, "");
                                _newDmucThuoc.HangSanxuat = Utility.sDbnull(row.Cells[DmucThuoc.Columns.HangSanxuat].Value, "");
                                _newDmucThuoc.HoatChat    = Utility.sDbnull(row.Cells[DmucThuoc.Columns.HoatChat].Value, "");
                                _newDmucThuoc.IdLoaithuoc = Utility.Int16Dbnull(row.Cells[DmucThuoc.Columns.IdLoaithuoc].Value, -1);
                                _newDmucThuoc.IdThuoc     = -1;
                                string KieuThuocvattu = Utility.DoTrim(Utility.sDbnull(row.Cells[DmucThuoc.Columns.KieuThuocvattu].Value, "THUOC"));
                                _newDmucThuoc.KieuThuocvattu = KieuThuocvattu == "" || !lstThuoc_VT.Contains(KieuThuocvattu) ? "THUOC" : KieuThuocvattu;
                                _newDmucThuoc.MaDonvitinh    = Utility.sDbnull(row.Cells[DmucThuoc.Columns.MaDonvitinh].Value, "");
                                string ma_thuoc = Utility.DoTrim(Utility.sDbnull(row.Cells[DmucThuoc.Columns.MaThuoc].Value, ""));
                                _newDmucThuoc.MaThuoc  = ma_thuoc == "" ? "T" + idx.ToString() : ma_thuoc;
                                _newDmucThuoc.MotaThem = Utility.sDbnull(row.Cells[DmucThuoc.Columns.MotaThem].Value, "");
                                string NoitruNgoaitru = Utility.DoTrim(Utility.sDbnull(row.Cells[DmucThuoc.Columns.NoitruNgoaitru].Value, ""));
                                _newDmucThuoc.NoitruNgoaitru  = NoitruNgoaitru == "" || !lstNoitruNgoaitru.Contains(NoitruNgoaitru) ? "ALL" : NoitruNgoaitru;
                                _newDmucThuoc.NuocSanxuat     = Utility.sDbnull(row.Cells[DmucThuoc.Columns.NuocSanxuat].Value, "");
                                _newDmucThuoc.PhuthuDungtuyen = Utility.DecimaltoDbnull(row.Cells[DmucThuoc.Columns.PhuthuDungtuyen].Value, 0);
                                _newDmucThuoc.PhuthuTraituyen = Utility.DecimaltoDbnull(row.Cells[DmucThuoc.Columns.PhuthuTraituyen].Value, 0);
                                _newDmucThuoc.QD31            = Utility.sDbnull(row.Cells[DmucThuoc.Columns.QD31].Value, "");
                                _newDmucThuoc.SoDangky        = Utility.sDbnull(row.Cells[DmucThuoc.Columns.SoDangky].Value, "");
                                _newDmucThuoc.TenBhyt         = Utility.sDbnull(row.Cells[DmucThuoc.Columns.TenBhyt].Value, "");
                                _newDmucThuoc.TenThuoc        = Utility.sDbnull(row.Cells[DmucThuoc.Columns.TenThuoc].Value, "");
                                _newDmucThuoc.TinhChat        = Utility.ByteDbnull(row.Cells[DmucThuoc.Columns.TinhChat].Value, 0);
                                _newDmucThuoc.TrangThai       = 1;
                                _newDmucThuoc.TuTuc           = Utility.ByteDbnull(row.Cells[DmucThuoc.Columns.TuTuc].Value, 0);

                                _newDmucThuoc.IsNew = true;
                                _newDmucThuoc.Save();
                                if (taoquanhe)
                                {
                                    foreach (GridEXRow rowdoituong in grdObjectTypeList.GetCheckedRows())
                                    {
                                        DmucDoituongkcb  _DmucDoituongkcb  = DmucDoituongkcb.FetchByID(Utility.Int32Dbnull(rowdoituong.Cells[DmucDoituongkcb.Columns.IdDoituongKcb].Value, -1));
                                        QheDoituongThuoc _QheDoituongThuoc = new QheDoituongThuoc();

                                        _QheDoituongThuoc.IdDoituongKcb     = _DmucDoituongkcb.IdDoituongKcb;
                                        _QheDoituongThuoc.IdLoaithuoc       = _newDmucThuoc.IdLoaithuoc;
                                        _QheDoituongThuoc.IdThuoc           = _newDmucThuoc.IdThuoc;
                                        _QheDoituongThuoc.TyleGiamgia       = 0;
                                        _QheDoituongThuoc.KieuGiamgia       = "%";
                                        _QheDoituongThuoc.DonGia            = (THU_VIEN_CHUNG.IsBaoHiem(_DmucDoituongkcb.IdLoaidoituongKcb) ? Utility.DecimaltoDbnull(_newDmucThuoc.GiaBhyt, 0) : Utility.DecimaltoDbnull(_newDmucThuoc.DonGia, 0));
                                        _QheDoituongThuoc.PhuthuDungtuyen   = (THU_VIEN_CHUNG.IsBaoHiem(_DmucDoituongkcb.IdLoaidoituongKcb) ? Utility.DecimaltoDbnull(_newDmucThuoc.PhuthuDungtuyen, 0) : 0m);
                                        _QheDoituongThuoc.PhuthuTraituyen   = (THU_VIEN_CHUNG.IsBaoHiem(_DmucDoituongkcb.IdLoaidoituongKcb) ? Utility.DecimaltoDbnull(_newDmucThuoc.PhuthuTraituyen, 0) : 0m);
                                        _QheDoituongThuoc.IdLoaidoituongKcb = _DmucDoituongkcb.IdLoaidoituongKcb;

                                        _QheDoituongThuoc.MaDoituongKcb  = _DmucDoituongkcb.MaDoituongKcb;
                                        _QheDoituongThuoc.MaKhoaThuchien = globalVariables.MA_KHOA_THIEN;
                                        _QheDoituongThuoc.NgayTao        = globalVariables.SysDate;
                                        _QheDoituongThuoc.NguoiTao       = globalVariables.UserName;
                                        _QheDoituongThuoc.IsNew          = true;
                                        _QheDoituongThuoc.Save();
                                    }
                                }
                            }
                            catch
                            {
                                hasError = true;
                                row.BeginEdit();
                                row.Cells["Error"].Value   = 1;
                                row.Cells["Success"].Value = 0;
                                row.EndEdit();
                            }
                            finally
                            {
                                Application.DoEvents();
                            }
                        }
                    }
                    if (hasError)
                    {
                        if (Utility.AcceptQuestion("Có lỗi trong quá trình đẩy dữ liệu thuốc từ file excel vào hệ thống. Bạn có muốn chấp nhận các dữ liệu đã đẩy thành công hay không?\nChú ý: Với các dữ liệu lỗi bạn có thể liên hệ để được trợ giúp để khắc phục"))
                        {
                            Scope.Complete();
                            m_blnCancel = false;
                        }
                    }
                    else
                    {
                        Scope.Complete();
                        Utility.ShowMsg("Đã nhập liệu thành công. Nhấn OK để kết thúc");
                        m_blnCancel = false;
                    }
                }
            }
            catch (Exception ex)
            {
                Utility.CatchException("Lỗi khi xuất thuốc ra file Excel", ex);
            }
            finally
            {
                progressBar1.Visible = false;
                lblCount.Visible     = false;
            }
        }