public ActionResult XacNhanPhieuTrathuocThuatukhoanoitruveKhoLeNoitru(TPhieuNhapxuatthuoc objPhieuNhap, DateTime ngayxacnhan, ref string errMsg)
        {
            HisDuocProperties objHisDuocProperties = PropertyLib._HisDuocProperties;
            string errorMessage = "";
            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        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)
                        {
                            ActionResult _Kiemtrathuocxacnhan = ActionResult.Success;
                            if (_Kiemtrathuocxacnhan != ActionResult.Success) return _Kiemtrathuocxacnhan;
                            long idthuockho = -1;
                            //Nhập vào kho nhận
                            StoredProcedure sp = SPs.ThuocNhapkhoOutput(objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                                      objPhieuNhapCt.SoLuong, Utility.DecimaltoDbnull(objPhieuNhapCt.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();
                            //Lấy về Id_thuockho tương ứng trong tủ trực
                            idthuockho = Utility.Int64Dbnull(sp.OutputValues[0], -1);

                            if (idthuockho > 0)
                                new Update(TPhieuNhapxuatthuocChitiet.Schema).Set(TPhieuNhapxuatthuocChitiet.Columns.IdThuockho).EqualTo(idthuockho)
                                   .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieuchitiet).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet).Execute();
                            else
                                idthuockho = Utility.Int64Dbnull(objPhieuNhapCt.IdThuockho, -1);
                            objPhieuNhapCt.IdThuockho = idthuockho;
                            //Insert dòng kho nhập
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia);
                            objXuatNhap.GiaBan = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);

                            objXuatNhap.GiaPhuthuDungtuyen = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuDungtuyen);
                            objXuatNhap.GiaPhuthuTraituyen = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuTraituyen);
                            objXuatNhap.GiaBhyt = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhyt);
                            objXuatNhap.GiaBhytCu = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhytCu);

                            objXuatNhap.IdChuyen = objPhieuNhapCt.IdChuyen;
                            objXuatNhap.NgayNhap = objPhieuNhapCt.NgayNhap;
                            objXuatNhap.GiaNhap = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.SoHoadon = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            objXuatNhap.SoChungtuKemtheo = objPhieuNhap.SoChungtuKemtheo;
                            objXuatNhap.PhuThu = 0;
                            objXuatNhap.DuTru = objPhieuNhap.DuTru;
                            objXuatNhap.Noitru = 0;
                            objXuatNhap.QuayThuoc = 0;
                            objXuatNhap.SoLuong = Utility.Int32Dbnull(objPhieuNhapCt.SoLuong);
                            objXuatNhap.SluongChia = Utility.Int32Dbnull(objPhieuNhapCt.SluongChia, 1);
                            objXuatNhap.NgayTao = globalVariables.SysDate;
                            objXuatNhap.NguoiTao = globalVariables.UserName;
                            objXuatNhap.ThanhTien = Utility.DecimaltoDbnull(objPhieuNhapCt.ThanhTien);
                            objXuatNhap.IdThuoc = Utility.Int32Dbnull(objPhieuNhapCt.IdThuoc);
                            objXuatNhap.IdThuockho = Utility.Int32Dbnull(objPhieuNhapCt.IdThuockho);
                            objXuatNhap.Vat = Utility.Int32Dbnull(objPhieuNhap.Vat);
                            objXuatNhap.IdNhanvien = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien);
                            objXuatNhap.IdKho = Utility.Int16Dbnull(objPhieuNhap.IdKhonhap);
                            objXuatNhap.NgayHethan = objPhieuNhapCt.NgayHethan.Date;
                            objXuatNhap.MaNhacungcap = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.SoLo = objPhieuNhapCt.SoLo;
                            objXuatNhap.SoDky = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.IdKhoaLinh = objPhieuNhap.IdKhoalinh;//Chính là khoa trả

                            objXuatNhap.MaLoaiphieu = (byte)LoaiPhieu.Phieutrathuocthua;
                            objXuatNhap.TenLoaiphieu = Utility.TenLoaiPhieu(LoaiPhieu.Phieutrathuocthua);
                            objXuatNhap.NgayBiendong = objPhieuNhap.NgayXacnhan;
                            objXuatNhap.NgayHoadon = objPhieuNhap.NgayHoadon;
                            objXuatNhap.KieuThuocvattu = objPhieuNhapCt.KieuThuocvattu;
                            objXuatNhap.IsNew = true;
                            objXuatNhap.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)
                            .And(TPhieuNhapxuatthuoc.LoaiPhieuColumn).IsEqualTo(objPhieuNhap.LoaiPhieu).Execute();
                    }
                    Scope.Complete();
                    return ActionResult.Success;
                }
            }
            catch (Exception ex)
            {
                Utility.CatchException("Lỗi khi xác nhận phiếu trả thuốc từ tủ trực khoa nội trú về kho lẻ", ex);
                return ActionResult.Error;
            }
        }
 public bool Destroy(object IdBiendong)
 {
     return(TBiendongThuoc.Destroy(IdBiendong) == 1);
 }
        public void Insert(string MaPhieu, short?IdKho, int IdThuoc, DateTime?NgayHethan, int?SoLuong, int?SluongChia, decimal?DonGia, decimal?ThanhTien, decimal?PhuThu, int?IdPhieuChitiet, int?IdPhieu, int?Vat, long?IdBenhnhan, string MaLuotkham, short?IdDoituongKcb, string SoHoadon, string MaNhacungcap, byte?MaLoaiphieu, string TenLoaiphieu, DateTime?NgayHoadon, DateTime?NgayBiendong, short?IdNhanvien, string NguoiTao, DateTime?NgayTao, short?IdKhoaLinh, decimal?GiaBan, decimal?GiaNhap, string SoLo, long?IdThuockho, long?IdChuyen, string KieuThuocvattu, string MotaThem, string SoChungtuKemtheo, byte?Noitru, byte?QuayThuoc, decimal?GiaBhyt, decimal?GiaBhytCu, decimal?GiaPhuthuDungtuyen, decimal?GiaPhuthuTraituyen, byte?DuTru, DateTime?NgayNhap, string KieuBiendong, byte?ThuocVay, string SoDky, string SoQdinhthau)
        {
            TBiendongThuoc item = new TBiendongThuoc();

            item.MaPhieu = MaPhieu;

            item.IdKho = IdKho;

            item.IdThuoc = IdThuoc;

            item.NgayHethan = NgayHethan;

            item.SoLuong = SoLuong;

            item.SluongChia = SluongChia;

            item.DonGia = DonGia;

            item.ThanhTien = ThanhTien;

            item.PhuThu = PhuThu;

            item.IdPhieuChitiet = IdPhieuChitiet;

            item.IdPhieu = IdPhieu;

            item.Vat = Vat;

            item.IdBenhnhan = IdBenhnhan;

            item.MaLuotkham = MaLuotkham;

            item.IdDoituongKcb = IdDoituongKcb;

            item.SoHoadon = SoHoadon;

            item.MaNhacungcap = MaNhacungcap;

            item.MaLoaiphieu = MaLoaiphieu;

            item.TenLoaiphieu = TenLoaiphieu;

            item.NgayHoadon = NgayHoadon;

            item.NgayBiendong = NgayBiendong;

            item.IdNhanvien = IdNhanvien;

            item.NguoiTao = NguoiTao;

            item.NgayTao = NgayTao;

            item.IdKhoaLinh = IdKhoaLinh;

            item.GiaBan = GiaBan;

            item.GiaNhap = GiaNhap;

            item.SoLo = SoLo;

            item.IdThuockho = IdThuockho;

            item.IdChuyen = IdChuyen;

            item.KieuThuocvattu = KieuThuocvattu;

            item.MotaThem = MotaThem;

            item.SoChungtuKemtheo = SoChungtuKemtheo;

            item.Noitru = Noitru;

            item.QuayThuoc = QuayThuoc;

            item.GiaBhyt = GiaBhyt;

            item.GiaBhytCu = GiaBhytCu;

            item.GiaPhuthuDungtuyen = GiaPhuthuDungtuyen;

            item.GiaPhuthuTraituyen = GiaPhuthuTraituyen;

            item.DuTru = DuTru;

            item.NgayNhap = NgayNhap;

            item.KieuBiendong = KieuBiendong;

            item.ThuocVay = ThuocVay;

            item.SoDky = SoDky;

            item.SoQdinhthau = SoQdinhthau;


            item.Save(UserName);
        }
        /// <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 XacNhanPhieuTraThuocVeKho(TPhieuNhapxuatthuoc objPhieuNhap, DateTime _ngayxacnhan)
        {
            string errorMessage = "";
            try
            {

                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        HisDuocProperties objHisDuocProperties = PropertyLib._HisDuocProperties;
                        SqlQuery sqlQuery = new Select().From(TPhieuNhapxuatthuocChitiet.Schema)
                            .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu);
                        TPhieuNhapxuatthuocChitietCollection objPhieuNhapCtCollection =
                            sqlQuery.ExecuteAsCollection<TPhieuNhapxuatthuocChitietCollection>();
                        foreach (TPhieuNhapxuatthuocChitiet objPhieuNhapCt in objPhieuNhapCtCollection)
                        {
                            //Insert dòng kho nhập
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.GiaBan = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.SoHoadon = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            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 = objPhieuNhap.MaNhacungcap;
                            objXuatNhap.MaLoaiphieu = (byte)LoaiPhieu.PhieuNhapTraKhoLe;
                            objXuatNhap.TenLoaiphieu =Utility.TenLoaiPhieu(LoaiPhieu.PhieuNhapTraKhoLe);
                            objXuatNhap.IdKhoaLinh = objPhieuNhap.IdKhoalinh;
                            objXuatNhap.NgayBiendong = _ngayxacnhan;
                            objXuatNhap.IsNew = true;
                            objXuatNhap.Save();
                            //Insert dòng của kho xuất
                            objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.GiaBan = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.SoHoadon = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            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.IdKhoxuat);
                            objXuatNhap.NgayHethan = objPhieuNhapCt.NgayHethan.Date;
                            //objXuatNhap.IdNhaCcap = Utility.Int32Dbnull(objPhieuNhap.IdNhaCcap);
                            objXuatNhap.MaNhacungcap = objPhieuNhap.MaNhacungcap;
                            objXuatNhap.MaLoaiphieu = (byte)LoaiPhieu.PhieuXuatKho;
                            objXuatNhap.TenLoaiphieu = Utility.TenLoaiPhieu(LoaiPhieu.PhieuXuatKho);
                            objXuatNhap.IdKhoaLinh = objPhieuNhap.IdKhoalinh;
                            objXuatNhap.NgayBiendong = _ngayxacnhan;
                            objXuatNhap.IsNew = true;
                            objXuatNhap.Save();
                            StoredProcedure sp = SPs.ThuocNhapkho(objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap,objPhieuNhapCt.GiaBan,
                                                                      objPhieuNhapCt.SoLuong, Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                                      objPhieuNhapCt.IdThuoc, objPhieuNhap.IdKhonhap, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, _ngayxacnhan, objPhieuNhapCt.GiaBhyt);
                             sp.Execute();

                            sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhoxuat, objPhieuNhapCt.IdThuoc,
                                                          objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                          Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                          Utility.Int32Dbnull(objXuatNhap.SoLuong), objPhieuNhapCt.IdThuockho,
                                                          objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, objHisDuocProperties.XoaDulieuKhiThuocDaHet ? 1 : 0, errorMessage);

                            sp.Execute();
                            errorMessage = Utility.sDbnull(sp.OutputValues[0]);

                        }
                        new Update(TPhieuNhapxuatthuoc.Schema)
                            .Set(TPhieuNhapxuatthuoc.Columns.IdNhanvien).EqualTo(globalVariables.gv_intIDNhanvien)
                            .Set(TPhieuNhapxuatthuoc.Columns.NguoiXacnhan).EqualTo(globalVariables.UserName)
                            .Set(TPhieuNhapxuatthuoc.Columns.NgayXacnhan).EqualTo( globalVariables.SysDate)
                            .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);
                log.Error("Loi ban ra tu sp :{0}", errorMessage);
                return ActionResult.Error;

            }
        }
 public bool Delete(object IdBiendong)
 {
     return(TBiendongThuoc.Delete(IdBiendong) == 1);
 }
Example #6
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 XacNhanPhieuXuatKho(TPhieuNhapxuatthuoc objPhieuNhap,DateTime ngayxacnhan, ref string errMsg)
        {
            HisDuocProperties objHisDuocProperties = PropertyLib._HisDuocProperties;
            string errorMessage = "";
            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        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)
                        {
                            //Kiểm tra đề phòng Kho A-->Xuất kho B. Kho B xác nhận-->Xuất kho C. Kho B hủy xác nhận. Kho C xác nhận dẫn tới việc kho B chưa có thuốc để trừ kho

                            ActionResult _Kiemtrathuocxacnhan = Kiemtrathuocxacnhan(objPhieuNhap, objPhieuNhapCt, ref errMsg);
                            if (_Kiemtrathuocxacnhan != ActionResult.Success) return _Kiemtrathuocxacnhan;

                            long idthuockho = -1;
                            StoredProcedure sp = SPs.ThuocNhapkhoOutput(objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                                      objPhieuNhapCt.SoLuong, Utility.DecimaltoDbnull(objPhieuNhapCt.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);
                            sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhoxuat, objPhieuNhapCt.IdThuoc,
                                                          objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                          Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                          Utility.Int32Dbnull(objPhieuNhapCt.SoLuong), objPhieuNhapCt.IdChuyen,
                                                          objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo,
                                                          objHisDuocProperties.XoaDulieuKhiThuocDaHet ? 1 : 0, errorMessage);

                            sp.Execute();
                            new Update(TPhieuNhapxuatthuocChitiet.Schema).Set(TPhieuNhapxuatthuocChitiet.Columns.IdThuockho).EqualTo(idthuockho)
                               .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieuchitiet).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet).Execute();
                            objPhieuNhapCt.IdThuockho = idthuockho;
                            //Insert dòng kho nhập
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia);
                            objXuatNhap.GiaBan = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.IdChuyen = objPhieuNhapCt.IdChuyen;
                            objXuatNhap.NgayNhap = objPhieuNhapCt.NgayNhap;
                            objXuatNhap.GiaNhap = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.SoHoadon = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            objXuatNhap.SoChungtuKemtheo = objPhieuNhap.SoChungtuKemtheo;
                            objXuatNhap.GiaBhyt = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhyt);
                            objXuatNhap.GiaBhytCu = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhytCu);
                            objXuatNhap.GiaPhuthuDungtuyen = objPhieuNhapCt.GiaPhuthuDungtuyen;
                            objXuatNhap.GiaPhuthuTraituyen = objPhieuNhapCt.GiaPhuthuTraituyen;
                            objXuatNhap.Noitru = objPhieuNhap.NoiTru;
                            objXuatNhap.QuayThuoc = 0;
                            objXuatNhap.ThuocVay = 0;
                            objXuatNhap.PhuThu = 0;
                            objXuatNhap.DuTru = objPhieuNhap.DuTru;
                            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.IdThuockho = Utility.Int32Dbnull(objPhieuNhapCt.IdThuockho);
                            objXuatNhap.Vat = Utility.Int32Dbnull(objPhieuNhap.Vat);
                            objXuatNhap.IdNhanvien = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien);
                            objXuatNhap.IdKho = Utility.Int16Dbnull(objPhieuNhap.IdKhonhap);
                            objXuatNhap.NgayHethan = objPhieuNhapCt.NgayHethan.Date;
                            objXuatNhap.MaNhacungcap = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.SoDky = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.SoLo = objPhieuNhapCt.SoLo;

                            objXuatNhap.MaLoaiphieu = (byte)LoaiPhieu.PhieuNhapKho;
                            objXuatNhap.TenLoaiphieu = Utility.TenLoaiPhieu(LoaiPhieu.PhieuNhapKho);
                            objXuatNhap.NgayBiendong = objPhieuNhap.NgayXacnhan;
                            objXuatNhap.NgayHoadon = objPhieuNhap.NgayHoadon;
                            objXuatNhap.KieuThuocvattu = objPhieuNhapCt.KieuThuocvattu;
                            objXuatNhap.IsNew = true;
                            objXuatNhap.Save();
                            //Insert dòng của kho xuất
                            objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia);
                            objXuatNhap.NgayNhap = objPhieuNhapCt.NgayNhap;
                            objXuatNhap.GiaBan = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.GiaNhap = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.GiaBhyt = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhyt);
                            objXuatNhap.GiaBhytCu = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhytCu);
                            objXuatNhap.GiaPhuthuDungtuyen = objPhieuNhapCt.GiaPhuthuDungtuyen;
                            objXuatNhap.GiaPhuthuTraituyen = objPhieuNhapCt.GiaPhuthuTraituyen;
                            objXuatNhap.Noitru = objPhieuNhap.NoiTru;
                            objXuatNhap.QuayThuoc = 0;
                            objXuatNhap.ThuocVay = 0;
                            objXuatNhap.SoHoadon = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            objXuatNhap.PhuThu = 0;
                            objXuatNhap.IdChuyen = -1;
                            objXuatNhap.DuTru = objPhieuNhap.DuTru;
                            objXuatNhap.SoLuong = Utility.Int32Dbnull(objPhieuNhapCt.SoLuong);
                            objXuatNhap.NgayTao = globalVariables.SysDate;
                            objXuatNhap.NguoiTao = globalVariables.UserName;
                            objXuatNhap.IdThuockho = Utility.Int32Dbnull(objPhieuNhapCt.IdChuyen);
                            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.IdKhoxuat);
                            objXuatNhap.NgayHethan = objPhieuNhapCt.NgayHethan.Date;
                            objXuatNhap.MaNhacungcap = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.SoChungtuKemtheo = objPhieuNhap.SoChungtuKemtheo;
                            objXuatNhap.SoDky = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.SoLo = objPhieuNhapCt.SoLo;
                            objXuatNhap.MaLoaiphieu = (byte)LoaiPhieu.PhieuXuatKhoBenhNhan;
                            objXuatNhap.TenLoaiphieu = Utility.TenLoaiPhieu(LoaiPhieu.PhieuXuatKhoBenhNhan);
                            objXuatNhap.NgayBiendong = objPhieuNhap.NgayXacnhan;
                            objXuatNhap.NgayHoadon = objPhieuNhap.NgayHoadon;
                            objXuatNhap.KieuThuocvattu = objPhieuNhapCt.KieuThuocvattu;
                            objXuatNhap.IsNew = true;
                            objXuatNhap.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)
                            .And(TPhieuNhapxuatthuoc.LoaiPhieuColumn).IsEqualTo(objPhieuNhap.LoaiPhieu).Execute();
                    }
                    Scope.Complete();
                    return ActionResult.Success;
                }
            }
            catch (Exception ex)
            {
                Utility.CatchException("Lỗi khi xác nhận phiếu xuất kho", ex);
                return ActionResult.Error;
            }
        }
Example #7
0
        public ActionResult Xacnhanphieutrathuocthua(TPhieutrathuocthua _phieutrathuocthua)
        {
            ActionResult _result = ActionResult.Success;

            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        long     idphieu    = _phieutrathuocthua.Id;
                        short    ID_KHO     = _phieutrathuocthua.IdKhonhan;
                        DateTime ngaytra    = _phieutrathuocthua.NgayTra.Value;
                        int      idnguoitra = _phieutrathuocthua.NguoiTra.Value;

                        TPhieuCapphatChitietCollection lstChitiet = new Select().From(TPhieuCapphatChitiet.Schema)
                                                                    .Where(TPhieuCapphatChitiet.Columns.IdPhieutralai).IsEqualTo(idphieu).ExecuteAsCollection <TPhieuCapphatChitietCollection>();

                        bool codulieu = false;
                        //Xác nhận từng đơn thuốc nội trú
                        foreach (TPhieuCapphatChitiet _item in lstChitiet)
                        {
                            codulieu = true;
                            KcbDonthuocChitiet objDetail = new Select().From(KcbDonthuocChitiet.Schema)
                                                           .Where(KcbDonthuocChitiet.Columns.IdChitietdonthuoc).IsEqualTo(_item.IdChitietdonthuoc)
                                                           .ExecuteSingle <KcbDonthuocChitiet>();
                            TPhieuXuatthuocBenhnhanChitiet PhieuXuatBnhanCt = new Select().From(TPhieuXuatthuocBenhnhanChitiet.Schema)
                                                                              .Where(TPhieuXuatthuocBenhnhanChitiet.Columns.IdChitietdonthuoc).IsEqualTo(objDetail.IdChitietdonthuoc)
                                                                              .ExecuteSingle <TPhieuXuatthuocBenhnhanChitiet>();

                            TPhieuXuatthuocBenhnhan objPhieuXuatBnhan = TPhieuXuatthuocBenhnhan.FetchByID(PhieuXuatBnhanCt.IdPhieu);

                            if (objDetail == null)
                            {
                                return(ActionResult.Exceed);
                            }

                            //Cộng vào kho nhận
                            long            id_Thuockho_new = -1;
                            long            iTThuockho_old  = PhieuXuatBnhanCt.IdThuockho.Value;
                            StoredProcedure sp = SPs.ThuocNhapkhoOutput(PhieuXuatBnhanCt.NgayHethan, PhieuXuatBnhanCt.GiaNhap, PhieuXuatBnhanCt.GiaBan,
                                                                        _item.SoLuongtralai, Utility.DecimaltoDbnull(PhieuXuatBnhanCt.Vat),
                                                                        PhieuXuatBnhanCt.IdThuoc, PhieuXuatBnhanCt.IdKho,
                                                                        PhieuXuatBnhanCt.MaNhacungcap, PhieuXuatBnhanCt.SoLo, PhieuXuatBnhanCt.SoDky, PhieuXuatBnhanCt.SoQdinhthau,
                                                                        PhieuXuatBnhanCt.IdThuockho.Value, id_Thuockho_new, PhieuXuatBnhanCt.NgayNhap,
                                                                        PhieuXuatBnhanCt.GiaBhyt, PhieuXuatBnhanCt.PhuthuDungtuyen, PhieuXuatBnhanCt.PhuthuTraituyen, _phieutrathuocthua.KieuThuocVt);
                            sp.Execute();

                            id_Thuockho_new = Utility.Int32Dbnull(sp.OutputValues[0]);
                            //Cập nhật lại ID Thuốc kho(Có thể xóa mất dòng số lượng =0 nên khi nhập kho tạo ra dòng mới)
                            if (id_Thuockho_new != -1) //Gặp trường hợp khi xuất hết thuốc thì xóa kho-->Khi hủy thì tạo ra dòng thuốc kho mới
                            {
                                objDetail.IdThuockho = id_Thuockho_new;
                                //Cập nhật tất cả các bảng liên quan
                                new Update(KcbDonthuocChitiet.Schema)
                                .Set(KcbDonthuocChitiet.Columns.IdThuockho).EqualTo(id_Thuockho_new)
                                .Where(KcbDonthuocChitiet.Columns.IdThuockho).IsEqualTo(iTThuockho_old).
                                Execute();

                                new Update(TBiendongThuoc.Schema)
                                .Set(TBiendongThuoc.Columns.IdThuockho).EqualTo(id_Thuockho_new)
                                .Where(TBiendongThuoc.Columns.IdThuockho).IsEqualTo(iTThuockho_old).
                                Execute();

                                new Update(TPhieuXuatthuocBenhnhanChitiet.Schema)
                                .Set(TPhieuXuatthuocBenhnhanChitiet.Columns.IdThuockho).EqualTo(id_Thuockho_new)
                                .Where(TPhieuXuatthuocBenhnhanChitiet.Columns.IdThuockho).IsEqualTo(iTThuockho_old).
                                Execute();

                                new Update(TPhieuCapphatChitiet.Schema)
                                .Set(TPhieuXuatthuocBenhnhanChitiet.Columns.IdThuockho).EqualTo(id_Thuockho_new)
                                .Where(TPhieuXuatthuocBenhnhanChitiet.Columns.IdThuockho).IsEqualTo(iTThuockho_old).
                                Execute();
                            }
                            //Cập nhật số lượng thực lĩnh theo Id chi tiết
                            //objDetail.SluongLinh = _item.ThucLinh;
                            //objDetail.MarkOld();
                            //objDetail.IsNew = false;
                            //objDetail.Save();
                            //Cập nhật trạng thái trả lại
                            _item.TrangthaiTralai = 2;
                            _item.IsNew           = false;
                            _item.MarkOld();
                            _item.Save();

                            //Insert bảng biến động liên quan đến kho nhập
                            TBiendongThuoc objNhapXuat = new TBiendongThuoc();
                            objNhapXuat.NgayHethan         = objDetail.NgayHethan;
                            objNhapXuat.IdThuockho         = objDetail.IdThuockho;
                            objNhapXuat.SoLo               = objDetail.SoLo;
                            objNhapXuat.SoDky              = objDetail.SoDky;
                            objNhapXuat.SoQdinhthau        = objDetail.SoQdinhthau;
                            objNhapXuat.MaNhacungcap       = objDetail.MaNhacungcap;
                            objNhapXuat.Vat                = (int)objDetail.Vat;
                            objNhapXuat.QuayThuoc          = objPhieuXuatBnhan.QuayThuoc;
                            objNhapXuat.MaPhieu            = Utility.sDbnull(_phieutrathuocthua.MaPhieu);
                            objNhapXuat.Noitru             = objPhieuXuatBnhan.Noitru;
                            objNhapXuat.NgayHoadon         = ngaytra;
                            objNhapXuat.NgayBiendong       = ngaytra;
                            objNhapXuat.NgayTao            = globalVariables.SysDate;
                            objNhapXuat.NguoiTao           = globalVariables.UserName;
                            objNhapXuat.SoLuong            = Utility.Int32Dbnull(_item.SoLuongtralai);
                            objNhapXuat.DonGia             = Utility.DecimaltoDbnull(PhieuXuatBnhanCt.DonGia);
                            objNhapXuat.GiaBan             = Utility.DecimaltoDbnull(PhieuXuatBnhanCt.GiaBan);
                            objNhapXuat.GiaNhap            = Utility.DecimaltoDbnull(PhieuXuatBnhanCt.GiaNhap);
                            objNhapXuat.PhuThu             = objDetail.PhuThu;
                            objNhapXuat.SoHoadon           = "-1";
                            objNhapXuat.IdThuoc            = Utility.Int32Dbnull(PhieuXuatBnhanCt.IdThuoc);
                            objNhapXuat.IdPhieu            = (int)_phieutrathuocthua.Id;
                            objNhapXuat.IdPhieuChitiet     = (int)_item.IdChitiet;
                            objNhapXuat.IdNhanvien         = globalVariables.gv_intIDNhanvien;
                            objNhapXuat.NgayNhap           = ngaytra;
                            objNhapXuat.GiaPhuthuTraituyen = objDetail.PhuthuTraituyen;
                            objNhapXuat.GiaPhuthuDungtuyen = objDetail.PhuthuDungtuyen;
                            objNhapXuat.MaNhacungcap       = PhieuXuatBnhanCt.MaNhacungcap;
                            objNhapXuat.IdKho              = _phieutrathuocthua.IdKhonhan;
                            objNhapXuat.MaLoaiphieu        = Utility.ByteDbnull(LoaiPhieu.Phieutrathuocthua);
                            objNhapXuat.TenLoaiphieu       = Utility.TenLoaiPhieu(LoaiPhieu.Phieutrathuocthua);
                            objNhapXuat.IdKhoaLinh         = _phieutrathuocthua.IdKhoatra;
                            objNhapXuat.KieuThuocvattu     = _phieutrathuocthua.KieuThuocVt;
                            objNhapXuat.ThanhTien          = Utility.DecimaltoDbnull(PhieuXuatBnhanCt.DonGia) *
                                                             Utility.Int32Dbnull(_item.SoLuongtralai);
                            objNhapXuat.IsNew = true;
                            objNhapXuat.Save();
                        }
                        if (!codulieu)
                        {
                            return(ActionResult.DataChanged);
                        }
                        //Cập nhật trạng thái cấp phát của phiếu đề nghị=1
                        new Update(TPhieutrathuocthua.Schema)
                        .Set(TPhieutrathuocthua.TrangThaiColumn.ColumnName).EqualTo(1)
                        .Set(TPhieutrathuocthua.NgayTraColumn.ColumnName).EqualTo(ngaytra)
                        .Set(TPhieutrathuocthua.NguoiNhanColumn.ColumnName).EqualTo(globalVariablesPrivate.objNhanvien != null ? globalVariablesPrivate.objNhanvien.IdNhanvien : globalVariables.gv_intIDNhanvien)
                        .Set(TPhieutrathuocthua.NguoiTraColumn.ColumnName).EqualTo(idnguoitra)
                        .Set(TPhieutrathuocthua.NgaySuaColumn.ColumnName).EqualTo(globalVariables.SysDate)
                        .Set(TPhieutrathuocthua.NguoiSuaColumn.ColumnName).EqualTo(globalVariables.UserName)
                        .Where(TPhieutrathuocthua.IdColumn).IsEqualTo(idphieu).Execute();
                    }
                    Scope.Complete();
                    return(ActionResult.Success);
                }
            }
            catch (Exception ex)
            {
                Utility.CatchException("Lỗi khi xác nhận phiếu trả thuốc thừa", ex);
                return(ActionResult.Error);
            }
        }
Example #8
0
        /// <summary>
        /// hàm thực hiện việc xác nhận phiếu nhập
        /// </summary>
        /// <param name="objPhieuNhap"></param>
        /// <returns></returns>
        public ActionResult XacNhanPhieuNhapTraNhaCungCap(TPhieutrathuocKholeVekhochan objPhieuNhap)
        {
            HisDuocProperties objHisDuocProperties = PropertyLib._HisDuocProperties;
            string            errorMessage         = "";

            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        SqlQuery sqlQuery = new Select().From(TPhieutrathuocKholeVekhochanChitiet.Schema)
                                            .Where(TPhieutrathuocKholeVekhochanChitiet.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu);
                        TPhieutrathuocKholeVekhochanChitietCollection objPhieuNhapCtCollection =
                            sqlQuery.ExecuteAsCollection <TPhieutrathuocKholeVekhochanChitietCollection>();
                        foreach (TPhieutrathuocKholeVekhochanChitiet objPhieuNhapCt in objPhieuNhapCtCollection)
                        {
                            ///phiếu nhập trả từ kho lẻ về kho chẵn
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu        = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuChitiet);
                            objXuatNhap.MaPhieu        = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.GiaNhap        = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.SoHoadon       = string.Empty;
                            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(objPhieuNhapCt.Vat);
                            objXuatNhap.IdNhanvien     = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien);
                            objXuatNhap.IdKhoaLinh     = Utility.Int16Dbnull(objPhieuNhap.IdKhonhan);
                            objXuatNhap.IdKho          = Utility.Int16Dbnull(objPhieuNhap.IdKhonhan);
                            objXuatNhap.NgayHethan     = objPhieuNhapCt.NgayHethan;
                            objXuatNhap.MaNhacungcap   = objPhieuNhap.MaNhacungcap;
                            objXuatNhap.MaLoaiphieu    = Utility.ByteDbnull(LoaiPhieu.PhieuNhapTraLaiKhoLeVeKhoChan);
                            objXuatNhap.TenLoaiphieu   = Utility.sDbnull(objPhieuNhap.TenLoaiphieu);
                            objXuatNhap.NgayBiendong   = objPhieuNhap.NgayXacnhan;
                            objXuatNhap.IsNew          = true;
                            objXuatNhap.Save();
                            StoredProcedure sp = SPs.ThuocNhapkho(objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                                  objPhieuNhapCt.SoLuong, Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                                  objPhieuNhapCt.IdThuoc, objPhieuNhap.IdKhonhan, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, objPhieuNhap.NgayXacnhan, objPhieuNhapCt.GiaBhyt);
                            sp.Execute();
                            log.Info(string.Format("Nhạp tra lai kho {0} voi so phieu {1}", objPhieuNhap.IdKhonhan, objPhieuNhapCt.IdPhieuChitiet));
                            ///phiếu xuất về kho từ kho lẻ
                            objXuatNhap                = new TBiendongThuoc();
                            objXuatNhap.IdPhieu        = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuChitiet);
                            objXuatNhap.MaPhieu        = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.GiaNhap        = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.SoHoadon       = string.Empty;
                            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(objPhieuNhapCt.Vat);
                            objXuatNhap.IdNhanvien     = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien);
                            objXuatNhap.IdKhoaLinh     = Utility.Int16Dbnull(objPhieuNhap.IdKhonhan);
                            objXuatNhap.IdKho          = Utility.Int16Dbnull(objPhieuNhap.IdKhonhan);
                            objXuatNhap.NgayHethan     = objPhieuNhapCt.NgayHethan;
                            objXuatNhap.MaNhacungcap   = objPhieuNhap.MaNhacungcap;
                            objXuatNhap.MaLoaiphieu    = Utility.ByteDbnull(LoaiPhieu.PhieuXuatKho);
                            objXuatNhap.TenLoaiphieu   = Utility.sDbnull(objPhieuNhap.TenLoaiphieu);
                            objXuatNhap.NgayBiendong   = objPhieuNhap.NgayXacnhan;
                            objXuatNhap.IsNew          = true;
                            objXuatNhap.Save();
                            sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhotra, objPhieuNhapCt.IdThuoc,
                                                  objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                  Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                  Utility.Int32Dbnull(objXuatNhap.SoLuong), objPhieuNhapCt.IdThuockho, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, objHisDuocProperties.XoaDulieuKhiThuocDaHet ? 1 : 0, errorMessage);

                            sp.Execute();
                            log.Info(string.Format("xuat tra lai kho {0} voi so phieu {1}", objPhieuNhap.IdKhotra, objPhieuNhapCt.IdPhieuChitiet));
                        }
                        new Update(TPhieutrathuocKholeVekhochan.Schema)
                        .Set(TPhieutrathuocKholeVekhochan.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                        .Set(TPhieutrathuocKholeVekhochan.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                        .Set(TPhieutrathuocKholeVekhochan.Columns.IdNhanvien).EqualTo(globalVariables.gv_intIDNhanvien)
                        .Set(TPhieutrathuocKholeVekhochan.Columns.NguoiXacnhan).EqualTo(globalVariables.UserName)
                        .Set(TPhieutrathuocKholeVekhochan.Columns.NgayXacnhan).EqualTo(globalVariables.SysDate)
                        .Set(TPhieutrathuocKholeVekhochan.Columns.TrangThai).EqualTo(1)
                        .Where(TPhieutrathuocKholeVekhochan.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu)
                        .And(TPhieutrathuocKholeVekhochan.LoaiPhieuColumn).IsEqualTo(objPhieuNhap.LoaiPhieu).Execute();
                    }
                    Scope.Complete();
                    return(ActionResult.Success);
                }
            }
            catch (Exception exception)
            {
                log.Error("Loi ban ra tu sp :{0}", errorMessage);
                log.Error("Loi trong qua trinh xac nhan don thuoc :{0}", exception);
                return(ActionResult.Error);
            }
        }
Example #9
0
        public ActionResult XacNhanPhieuHuy_thanhly_thuoc(TPhieuNhapxuatthuoc objPhieuNhap, DateTime ngayxacnhan, ref string errMsg)
        {
            HisDuocProperties objHisDuocProperties = PropertyLib._HisDuocProperties;
            string            errorMessage         = "";

            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        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)
                        {
                            //Kiểm tra đề phòng Kho A-->Xuất kho B. Kho B xác nhận-->Xuất kho C. Kho B hủy xác nhận. Kho C xác nhận dẫn tới việc kho B chưa có thuốc để trừ kho

                            ActionResult _Kiemtrathuocxacnhan = Kiemtrathuocxacnhan(objPhieuNhap, objPhieuNhapCt, ref errMsg);
                            if (_Kiemtrathuocxacnhan != ActionResult.Success)
                            {
                                return(_Kiemtrathuocxacnhan);
                            }

                            long            idthuockho = -1;
                            StoredProcedure sp         = SPs.ThuocXuatkho(objPhieuNhap.IdKhoxuat, objPhieuNhapCt.IdThuoc,
                                                                          objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                                          Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                                          Utility.Int32Dbnull(objPhieuNhapCt.SoLuong), objPhieuNhapCt.IdChuyen,
                                                                          objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo,
                                                                          objHisDuocProperties.XoaDulieuKhiThuocDaHet ? 1 : 0, errorMessage);

                            sp.Execute();
                            //Insert dòng kho xuất
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu        = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu        = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia         = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia);
                            objXuatNhap.GiaBan         = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.GiaNhap        = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.SoHoadon       = Utility.sDbnull(objPhieuNhap.SoHoadon);

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

                            objXuatNhap.NgayNhap   = objPhieuNhapCt.NgayNhap;
                            objXuatNhap.Noitru     = 0;
                            objXuatNhap.QuayThuoc  = 0;
                            objXuatNhap.PhuThu     = 0;
                            objXuatNhap.DuTru      = objPhieuNhap.DuTru;
                            objXuatNhap.SoLuong    = Utility.Int32Dbnull(objPhieuNhapCt.SoLuong);
                            objXuatNhap.NgayTao    = globalVariables.SysDate;
                            objXuatNhap.NguoiTao   = globalVariables.UserName;
                            objXuatNhap.IdThuockho = Utility.Int32Dbnull(objPhieuNhapCt.IdChuyen);

                            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.IdKhoxuat);
                            objXuatNhap.NgayHethan       = objPhieuNhapCt.NgayHethan.Date;
                            objXuatNhap.MaNhacungcap     = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.SoChungtuKemtheo = objPhieuNhap.SoChungtuKemtheo;
                            objXuatNhap.SoDky            = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau      = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.SoLo             = objPhieuNhapCt.SoLo;
                            objXuatNhap.MaLoaiphieu      = objPhieuNhap.LoaiPhieu;
                            objXuatNhap.TenLoaiphieu     = objPhieuNhap.TenLoaiphieu;
                            objXuatNhap.NgayBiendong     = objPhieuNhap.NgayXacnhan;
                            objXuatNhap.NgayHoadon       = objPhieuNhap.NgayHoadon;
                            objXuatNhap.KieuThuocvattu   = objPhieuNhapCt.KieuThuocvattu;
                            objXuatNhap.IsNew            = true;
                            objXuatNhap.Save();
                        }
                        new Update(TPhieuNhapxuatthuoc.Schema)
                        .Set(TPhieuNhapxuatthuoc.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                        .Set(TPhieuNhapxuatthuoc.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                        .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)
                        .And(TPhieuNhapxuatthuoc.LoaiPhieuColumn).IsEqualTo(objPhieuNhap.LoaiPhieu).Execute();
                    }
                    Scope.Complete();
                    return(ActionResult.Success);
                }
            }
            catch (Exception ex)
            {
                Utility.CatchException("Lỗi khi xác nhận phiếu ", ex);
                return(ActionResult.Error);
            }
        }
Example #10
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;

            }
        }
Example #11
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 XacNhanTraLaiKhoLeVeKhoChan(TPhieutrathuocKholeVekhochan objPhieuNhap, DateTime _ngayxacnhan)
        {
            HisDuocProperties objHisDuocProperties = PropertyLib._HisDuocProperties;
            string            errorMessage         = "";

            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        SqlQuery sqlQuery = new Select().From(TPhieutrathuocKholeVekhochanChitiet.Schema)
                                            .Where(TPhieutrathuocKholeVekhochanChitiet.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu);
                        TPhieutrathuocKholeVekhochanChitietCollection objPhieuNhapCtCollection =
                            sqlQuery.ExecuteAsCollection <TPhieutrathuocKholeVekhochanChitietCollection>();
                        foreach (TPhieutrathuocKholeVekhochanChitiet objPhieuNhapCt in objPhieuNhapCtCollection)
                        {
                            long            idthuockho = -1;
                            StoredProcedure sp         = SPs.ThuocNhapkhoOutput(objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                                                objPhieuNhapCt.SoLuong, Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                                                objPhieuNhapCt.IdThuoc, objPhieuNhap.IdKhonhan, objPhieuNhapCt.MaNhacungcap,
                                                                                objPhieuNhapCt.SoLo, objPhieuNhapCt.SoDky, objPhieuNhapCt.SoQdinhthau, objPhieuNhapCt.IdThuockho, idthuockho, objPhieuNhapCt.NgayNhap, objPhieuNhapCt.GiaBhyt, objPhieuNhapCt.PhuthuDungtuyen, objPhieuNhapCt.PhuthuTraituyen, objPhieuNhapCt.KieuThuocvattu);
                            sp.Execute();
                            idthuockho = Utility.Int64Dbnull(sp.OutputValues[0], -1);
                            //log.Info(string.Format("Nhạp tra lai kho {0} voi so phieu {1}", objPhieuNhap.IdKhonhan, objPhieuNhapCt.IdPhieuChitiet));

                            sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhotra, objPhieuNhapCt.IdThuoc,
                                                  objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                  Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                  Utility.Int32Dbnull(objPhieuNhapCt.SoLuong), objPhieuNhapCt.IdThuockho,
                                                  objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, objHisDuocProperties.XoaDulieuKhiThuocDaHet ? 1 : 0, errorMessage);

                            sp.Execute();
                            new Update(TPhieutrathuocKholeVekhochanChitiet.Schema).Set(TPhieutrathuocKholeVekhochanChitiet.Columns.IdChuyen).EqualTo(idthuockho)
                            .Where(TPhieutrathuocKholeVekhochanChitiet.Columns.IdPhieuChitiet).IsEqualTo(objPhieuNhapCt.IdPhieuChitiet).Execute();
                            objPhieuNhapCt.IdThuockho = idthuockho;
                            ///phiếu nhập trả từ kho lẻ về kho chẵn
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu        = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuChitiet);
                            objXuatNhap.MaPhieu        = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.GiaNhap        = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.GiaBan         = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.NgayNhap       = objPhieuNhapCt.NgayNhap;
                            objXuatNhap.DonGia         = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia);
                            objXuatNhap.NgayHoadon     = objPhieuNhap.NgayTra;
                            objXuatNhap.KieuThuocvattu = Utility.sDbnull(objPhieuNhapCt.KieuThuocvattu);

                            objXuatNhap.SoChungtuKemtheo   = "";
                            objXuatNhap.Noitru             = 0;
                            objXuatNhap.QuayThuoc          = 0;
                            objXuatNhap.GiaBhyt            = objPhieuNhapCt.GiaBhyt;
                            objXuatNhap.GiaBhytCu          = 0;
                            objXuatNhap.ThuocVay           = 0;
                            objXuatNhap.GiaPhuthuDungtuyen = objPhieuNhapCt.PhuthuDungtuyen;
                            objXuatNhap.GiaPhuthuTraituyen = objPhieuNhapCt.PhuthuTraituyen;
                            objXuatNhap.DuTru = 0;


                            objXuatNhap.MaNhacungcap   = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.SoLo           = objPhieuNhapCt.SoLo;
                            objXuatNhap.SoDky          = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau    = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.IdThuockho     = objPhieuNhapCt.IdThuockho;
                            objXuatNhap.SoHoadon       = string.Empty;
                            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(objPhieuNhapCt.Vat);
                            objXuatNhap.IdNhanvien     = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien);
                            objXuatNhap.IdKhoaLinh     = Utility.Int16Dbnull(objPhieuNhap.IdKhonhan);
                            objXuatNhap.IdKho          = Utility.Int16Dbnull(objPhieuNhap.IdKhonhan);
                            objXuatNhap.NgayHethan     = objPhieuNhapCt.NgayHethan;
                            objXuatNhap.MaLoaiphieu    = Utility.ByteDbnull(LoaiPhieu.PhieuNhapTraLaiKhoLeVeKhoChan);
                            objXuatNhap.TenLoaiphieu   = Utility.TenLoaiPhieu(LoaiPhieu.PhieuNhapTraLaiKhoLeVeKhoChan);
                            objXuatNhap.NgayBiendong   = _ngayxacnhan;
                            objXuatNhap.KieuThuocvattu = objPhieuNhapCt.KieuThuocvattu;
                            objXuatNhap.IsNew          = true;
                            objXuatNhap.Save();

                            ///phiếu xuất về kho từ kho lẻ
                            objXuatNhap                = new TBiendongThuoc();
                            objXuatNhap.IdPhieu        = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuChitiet);
                            objXuatNhap.MaPhieu        = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.GiaNhap        = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.GiaBan         = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.MaNhacungcap   = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.NgayNhap       = objPhieuNhapCt.NgayNhap;
                            objXuatNhap.DonGia         = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia);
                            objXuatNhap.NgayHoadon     = objPhieuNhap.NgayTra;
                            objXuatNhap.KieuThuocvattu = Utility.sDbnull(objPhieuNhapCt.KieuThuocvattu);

                            objXuatNhap.SoChungtuKemtheo   = "";
                            objXuatNhap.Noitru             = 0;
                            objXuatNhap.QuayThuoc          = 0;
                            objXuatNhap.GiaBhyt            = objPhieuNhapCt.GiaBhyt;
                            objXuatNhap.GiaBhytCu          = 0;
                            objXuatNhap.GiaPhuthuDungtuyen = objPhieuNhapCt.PhuthuDungtuyen;
                            objXuatNhap.GiaPhuthuTraituyen = objPhieuNhapCt.PhuthuTraituyen;
                            objXuatNhap.DuTru    = 0;
                            objXuatNhap.ThuocVay = 0;

                            objXuatNhap.SoLo        = objPhieuNhapCt.SoLo;
                            objXuatNhap.SoDky       = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.IdThuockho  = objPhieuNhapCt.IdThuockho;
                            objXuatNhap.SoHoadon    = string.Empty;
                            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(objPhieuNhapCt.Vat);
                            objXuatNhap.IdNhanvien  = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien);
                            objXuatNhap.IdKhoaLinh  = Utility.Int16Dbnull(objPhieuNhap.IdKhotra);
                            objXuatNhap.IdKho       = Utility.Int16Dbnull(objPhieuNhap.IdKhotra);
                            objXuatNhap.NgayHethan  = objPhieuNhapCt.NgayHethan;

                            objXuatNhap.MaLoaiphieu    = Utility.ByteDbnull(LoaiPhieu.PhieuXuatKhoLeTraKhoChan);
                            objXuatNhap.TenLoaiphieu   = Utility.TenLoaiPhieu(LoaiPhieu.PhieuXuatKhoLeTraKhoChan);
                            objXuatNhap.NgayBiendong   = _ngayxacnhan;
                            objXuatNhap.KieuThuocvattu = objPhieuNhapCt.KieuThuocvattu;
                            objXuatNhap.IsNew          = true;
                            objXuatNhap.Save();
                        }
                        new Update(TPhieutrathuocKholeVekhochan.Schema)
                        .Set(TPhieutrathuocKholeVekhochan.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                        .Set(TPhieutrathuocKholeVekhochan.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                        .Set(TPhieutrathuocKholeVekhochan.Columns.IdNhanvien).EqualTo(globalVariables.gv_intIDNhanvien)
                        .Set(TPhieutrathuocKholeVekhochan.Columns.NguoiXacnhan).EqualTo(globalVariables.UserName)
                        .Set(TPhieutrathuocKholeVekhochan.Columns.NgayXacnhan).EqualTo(globalVariables.SysDate)
                        .Set(TPhieutrathuocKholeVekhochan.Columns.TrangThai).EqualTo(1)
                        .Where(TPhieutrathuocKholeVekhochan.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu)
                        .And(TPhieutrathuocKholeVekhochan.LoaiPhieuColumn).IsEqualTo(objPhieuNhap.LoaiPhieu).Execute();
                    }
                    Scope.Complete();
                    return(ActionResult.Success);
                }
            }
            catch (Exception ex)
            {
                Utility.CatchException("Lỗi khi xác nhận phiếu trả thuốc từ kho lẻ về kho chẵn", ex);
                return(ActionResult.Error);
            }
        }
Example #12
0
        /// <summary>
        /// hàm thực hiện việc xuất thôn gtin bảng chi tiết của bệnh nhân
        /// </summary>
        /// <param name="objDetail"></param>
        /// <param name="objTThuockho"></param>
        /// <param name="iSoLuongDonThuoc"></param>
        /// <param name="objPhieuXuatBnhan"></param>
        private void UpdateXuatChiTietBN(KcbDonthuoc objDonthuoc, KcbDonthuocChitiet objDetail, TThuockho objTThuockho, int iSoLuonTru, TPhieuXuatthuocBenhnhan objPhieuXuatBnhan)
        {
            using (var scope = new TransactionScope())
            {
                TPhieuXuatthuocBenhnhanChitiet objXuatBnhanCt = new TPhieuXuatthuocBenhnhanChitiet();
                objXuatBnhanCt.IdPhieu = Utility.Int32Dbnull(objPhieuXuatBnhan.IdPhieu);
                objXuatBnhanCt.SoLuong = iSoLuonTru;

                objXuatBnhanCt.ChiDan = objDetail.MotaThem;
                objXuatBnhanCt.IdThuoc = Utility.Int32Dbnull(objDetail.IdThuoc);
                objXuatBnhanCt.NgayHethan = objDetail.NgayHethan;// objTThuockho.NgayHethan.Date;
                objXuatBnhanCt.IdThuockho = objDetail.IdThuockho;
                objXuatBnhanCt.SoLo = objDetail.SoLo;
                objXuatBnhanCt.MaNhacungcap = objDetail.MaNhacungcap;
                objXuatBnhanCt.Vat = (int)objDetail.Vat;
                objXuatBnhanCt.DonGia = Utility.DecimaltoDbnull(objDetail.DonGia);//đơn giá cho bệnh nhân
                objXuatBnhanCt.Vat = Utility.Int32Dbnull(objDetail.Vat);
                objXuatBnhanCt.GiaBan = Utility.DecimaltoDbnull(objDetail.GiaBan);//giá bán
                objXuatBnhanCt.GiaNhap = Utility.DecimaltoDbnull(objDetail.GiaNhap);//giá nhập
                objXuatBnhanCt.GiaBhyt = Utility.DecimaltoDbnull(objDetail.GiaBhyt);//giá BHYT

                objXuatBnhanCt.PhuthuTraituyen = objDetail.PhuthuTraituyen;
                objXuatBnhanCt.PhuthuDungtuyen = objDetail.PhuthuDungtuyen;

                objXuatBnhanCt.IdKho = Utility.Int16Dbnull(objDetail.IdKho);
                objXuatBnhanCt.IdChitietdonthuoc = Utility.Int32Dbnull(objDetail.IdChitietdonthuoc);

                objXuatBnhanCt.NgayNhap = objTThuockho.NgayNhap;
                objXuatBnhanCt.IsNew = true;
                objXuatBnhanCt.Save();
                TBiendongThuoc objNhapXuat = new TBiendongThuoc();
                objNhapXuat.NgayHethan = objDetail.NgayHethan;// objTThuockho.NgayHethan.Date;
                objNhapXuat.IdThuockho = objDetail.IdThuockho;
                objNhapXuat.SoDky = objDetail.SoDky;
                objNhapXuat.SoQdinhthau = objDetail.SoQdinhthau;
                objNhapXuat.SoLo = objDetail.SoLo;
                objNhapXuat.MaNhacungcap = objDetail.MaNhacungcap;

                objNhapXuat.QuayThuoc = objPhieuXuatBnhan.QuayThuoc;
                objNhapXuat.MaPhieu = Utility.sDbnull(objPhieuXuatBnhan.MaPhieu);
                objNhapXuat.Noitru = objPhieuXuatBnhan.Noitru;
                objNhapXuat.NgayHoadon = objDonthuoc.NgayKedon;
                objNhapXuat.NgayBiendong = objPhieuXuatBnhan.NgayXacnhan;
                objNhapXuat.NgayTao = globalVariables.SysDate;
                objNhapXuat.NguoiTao = globalVariables.UserName;
                objNhapXuat.SoLuong = Utility.Int32Dbnull(objXuatBnhanCt.SoLuong);
                objNhapXuat.Vat = Utility.Int32Dbnull(objXuatBnhanCt.Vat);
                objNhapXuat.DonGia = Utility.DecimaltoDbnull(objXuatBnhanCt.DonGia);
                objNhapXuat.GiaBan = Utility.DecimaltoDbnull(objXuatBnhanCt.GiaBan);
                objNhapXuat.GiaNhap = Utility.DecimaltoDbnull(objXuatBnhanCt.GiaNhap);
                objNhapXuat.GiaBhyt = Utility.DecimaltoDbnull(objXuatBnhanCt.GiaBhyt);//giá BHYT
                objNhapXuat.PhuThu = objDetail.PhuThu;
                objNhapXuat.SoHoadon = "-1";
                objNhapXuat.IdThuoc = Utility.Int32Dbnull(objXuatBnhanCt.IdThuoc);
                objNhapXuat.IdPhieu = Utility.Int32Dbnull(objPhieuXuatBnhan.IdPhieu);
                objNhapXuat.IdPhieuChitiet = Utility.Int32Dbnull(objXuatBnhanCt.IdPhieuChitiet);
                objNhapXuat.IdNhanvien = globalVariables.gv_intIDNhanvien;
                objNhapXuat.NgayNhap = objTThuockho.NgayNhap;
                objNhapXuat.KieuThuocvattu = objPhieuXuatBnhan.KieuThuocvattu;
                objNhapXuat.IdBenhnhan = objDetail.IdBenhnhan;
                objNhapXuat.MaLuotkham = objDetail.MaLuotkham;
                objNhapXuat.IdDoituongKcb = objPhieuXuatBnhan.IdDoituongKcb;

                objNhapXuat.GiaPhuthuTraituyen = objDetail.PhuthuTraituyen;
                objNhapXuat.GiaPhuthuDungtuyen = objDetail.PhuthuDungtuyen;

                objNhapXuat.MaNhacungcap = objXuatBnhanCt.MaNhacungcap;
                objNhapXuat.IdKho = Utility.Int16Dbnull(objPhieuXuatBnhan.IdKho);
                objNhapXuat.MaPhieu = Utility.sDbnull(objPhieuXuatBnhan.MaPhieu);
                objNhapXuat.MaLoaiphieu = Utility.ByteDbnull(objPhieuXuatBnhan.LoaiPhieu);
                objNhapXuat.TenLoaiphieu = Utility.TenLoaiPhieu((LoaiPhieu)objPhieuXuatBnhan.LoaiPhieu);
                objNhapXuat.IdKhoaLinh = objPhieuXuatBnhan.IdKhoaChidinh;
                objNhapXuat.KieuThuocvattu = objDonthuoc.KieuThuocvattu;
                objNhapXuat.ThanhTien = Utility.DecimaltoDbnull(objXuatBnhanCt.DonGia) *
                                        Utility.Int32Dbnull(objXuatBnhanCt.SoLuong);
                objNhapXuat.IsNew = true;
                objNhapXuat.Save();
                scope.Complete();
            }
        }
        public void Insert(string MaPhieu,short? IdKho,int IdThuoc,DateTime? NgayHethan,int? SoLuong,int? SluongChia,decimal? DonGia,decimal? ThanhTien,decimal? PhuThu,int? IdPhieuChitiet,int? IdPhieu,int? Vat,string SoHoadon,string MaNhacungcap,byte? MaLoaiphieu,string TenLoaiphieu,DateTime? NgayHoadon,DateTime? NgayBiendong,short? IdNhanvien,string NguoiTao,DateTime? NgayTao,short? IdKhoaLinh,decimal? GiaBan,decimal? GiaNhap,string SoLo,long? IdThuockho,long? IdChuyen,string KieuThuocvattu,string MotaThem,string SoChungtuKemtheo,byte? Noitru,byte? QuayThuoc,decimal? GiaBhyt,decimal? GiaBhytCu,decimal? GiaPhuthuDungtuyen,decimal? GiaPhuthuTraituyen,byte? DuTru,DateTime? NgayNhap,string KieuBiendong,byte? ThuocVay)
        {
            TBiendongThuoc item = new TBiendongThuoc();

            item.MaPhieu = MaPhieu;

            item.IdKho = IdKho;

            item.IdThuoc = IdThuoc;

            item.NgayHethan = NgayHethan;

            item.SoLuong = SoLuong;

            item.SluongChia = SluongChia;

            item.DonGia = DonGia;

            item.ThanhTien = ThanhTien;

            item.PhuThu = PhuThu;

            item.IdPhieuChitiet = IdPhieuChitiet;

            item.IdPhieu = IdPhieu;

            item.Vat = Vat;

            item.SoHoadon = SoHoadon;

            item.MaNhacungcap = MaNhacungcap;

            item.MaLoaiphieu = MaLoaiphieu;

            item.TenLoaiphieu = TenLoaiphieu;

            item.NgayHoadon = NgayHoadon;

            item.NgayBiendong = NgayBiendong;

            item.IdNhanvien = IdNhanvien;

            item.NguoiTao = NguoiTao;

            item.NgayTao = NgayTao;

            item.IdKhoaLinh = IdKhoaLinh;

            item.GiaBan = GiaBan;

            item.GiaNhap = GiaNhap;

            item.SoLo = SoLo;

            item.IdThuockho = IdThuockho;

            item.IdChuyen = IdChuyen;

            item.KieuThuocvattu = KieuThuocvattu;

            item.MotaThem = MotaThem;

            item.SoChungtuKemtheo = SoChungtuKemtheo;

            item.Noitru = Noitru;

            item.QuayThuoc = QuayThuoc;

            item.GiaBhyt = GiaBhyt;

            item.GiaBhytCu = GiaBhytCu;

            item.GiaPhuthuDungtuyen = GiaPhuthuDungtuyen;

            item.GiaPhuthuTraituyen = GiaPhuthuTraituyen;

            item.DuTru = DuTru;

            item.NgayNhap = NgayNhap;

            item.KieuBiendong = KieuBiendong;

            item.ThuocVay = ThuocVay;

            item.Save(UserName);
        }
Example #14
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 XacNhanTraLaiKhoLeVeKhoChan(TPhieutrathuocKholeVekhochan objPhieuNhap, DateTime _ngayxacnhan)
        {
            HisDuocProperties objHisDuocProperties = PropertyLib._HisDuocProperties;
            string errorMessage = "";
            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        SqlQuery sqlQuery = new Select().From(TPhieutrathuocKholeVekhochanChitiet.Schema)
                            .Where(TPhieutrathuocKholeVekhochanChitiet.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu);
                        TPhieutrathuocKholeVekhochanChitietCollection objPhieuNhapCtCollection =
                            sqlQuery.ExecuteAsCollection<TPhieutrathuocKholeVekhochanChitietCollection>();
                        foreach (TPhieutrathuocKholeVekhochanChitiet objPhieuNhapCt in objPhieuNhapCtCollection)
                        {
                            long idthuockho = -1;
                            StoredProcedure sp = SPs.ThuocNhapkhoOutput(objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                                   objPhieuNhapCt.SoLuong, Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                                   objPhieuNhapCt.IdThuoc, objPhieuNhap.IdKhonhan, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, -1, idthuockho, objPhieuNhapCt.NgayNhap, objPhieuNhapCt.GiaBhyt);
                            sp.Execute();
                            idthuockho = Utility.Int64Dbnull(sp.OutputValues[0], -1);
                            //log.Info(string.Format("Nhạp tra lai kho {0} voi so phieu {1}", objPhieuNhap.IdKhonhan, objPhieuNhapCt.IdPhieuChitiet));

                            sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhotra, objPhieuNhapCt.IdThuoc,
                                                         objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                         Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                         Utility.Int32Dbnull(objPhieuNhapCt.SoLuong), objPhieuNhapCt.IdThuockho,
                                                         objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, objHisDuocProperties.XoaDulieuKhiThuocDaHet ? 1 : 0, errorMessage);

                            sp.Execute();
                            new Update(TPhieutrathuocKholeVekhochanChitiet.Schema).Set(TPhieutrathuocKholeVekhochanChitiet.Columns.IdChuyen).EqualTo(idthuockho)
                              .Where(TPhieutrathuocKholeVekhochanChitiet.Columns.IdPhieuChitiet).IsEqualTo(objPhieuNhapCt.IdPhieuChitiet).Execute();
                            objPhieuNhapCt.IdThuockho = idthuockho;
                            ///phiếu nhập trả từ kho lẻ về kho chẵn
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuChitiet);
                            objXuatNhap.MaPhieu = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.GiaNhap = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.GiaBan = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.NgayNhap = objPhieuNhapCt.NgayNhap;
                            objXuatNhap.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.NgayHoadon = objPhieuNhap.NgayTra;
                            objXuatNhap.KieuThuocvattu = Utility.sDbnull(objPhieuNhapCt.KieuThuocvattu);

                            objXuatNhap.SoChungtuKemtheo = "";
                            objXuatNhap.Noitru = 0;
                            objXuatNhap.QuayThuoc = 0;
                            objXuatNhap.GiaBhyt = objPhieuNhapCt.GiaBhyt;
                            objXuatNhap.GiaBhytCu = 0;
                            objXuatNhap.GiaPhuthuDungtuyen = 0;
                            objXuatNhap.GiaPhuthuTraituyen = 0;
                            objXuatNhap.DuTru = 0;

                            objXuatNhap.MaNhacungcap = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.SoLo = objPhieuNhapCt.SoLo;
                            objXuatNhap.IdThuockho = objPhieuNhapCt.IdThuockho;
                            objXuatNhap.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.SoHoadon = string.Empty;
                            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(objPhieuNhapCt.Vat);
                            objXuatNhap.IdNhanvien = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien);
                            objXuatNhap.IdKhoaLinh = Utility.Int16Dbnull(objPhieuNhap.IdKhonhan);
                            objXuatNhap.IdKho = Utility.Int16Dbnull(objPhieuNhap.IdKhonhan);
                            objXuatNhap.NgayHethan = objPhieuNhapCt.NgayHethan;
                            objXuatNhap.MaLoaiphieu = Utility.ByteDbnull(LoaiPhieu.PhieuNhapTraLaiKhoLeVeKhoChan);
                            objXuatNhap.TenLoaiphieu = Utility.TenLoaiPhieu(LoaiPhieu.PhieuNhapTraLaiKhoLeVeKhoChan);
                            objXuatNhap.NgayBiendong = _ngayxacnhan;
                            objXuatNhap.KieuThuocvattu = objPhieuNhapCt.KieuThuocvattu;
                            objXuatNhap.IsNew = true;
                            objXuatNhap.Save();

                            ///phiếu xuất về kho từ kho lẻ
                            objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet= Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuChitiet);
                            objXuatNhap.MaPhieu = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.GiaNhap = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.GiaBan = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.MaNhacungcap = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.NgayNhap = objPhieuNhapCt.NgayNhap;
                            objXuatNhap.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.NgayHoadon = objPhieuNhap.NgayTra;
                            objXuatNhap.KieuThuocvattu = Utility.sDbnull(objPhieuNhapCt.KieuThuocvattu);

                            objXuatNhap.SoChungtuKemtheo = "";
                            objXuatNhap.Noitru = 0;
                            objXuatNhap.QuayThuoc = 0;
                            objXuatNhap.GiaBhyt = objPhieuNhapCt.GiaBhyt;
                            objXuatNhap.GiaBhytCu = 0;
                            objXuatNhap.GiaPhuthuDungtuyen = 0;
                            objXuatNhap.GiaPhuthuTraituyen = 0;
                            objXuatNhap.DuTru = 0;

                            objXuatNhap.SoLo = objPhieuNhapCt.SoLo;
                            objXuatNhap.IdThuockho = objPhieuNhapCt.IdThuockho;
                            objXuatNhap.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.SoHoadon = string.Empty;
                            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(objPhieuNhapCt.Vat);
                            objXuatNhap.IdNhanvien = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien);
                            objXuatNhap.IdKhoaLinh = Utility.Int16Dbnull(objPhieuNhap.IdKhotra);
                            objXuatNhap.IdKho = Utility.Int16Dbnull(objPhieuNhap.IdKhotra);
                            objXuatNhap.NgayHethan = objPhieuNhapCt.NgayHethan;

                            objXuatNhap.MaLoaiphieu = Utility.ByteDbnull(LoaiPhieu.PhieuXuatKhoLeTraKhoChan);
                            objXuatNhap.TenLoaiphieu = Utility.TenLoaiPhieu(LoaiPhieu.PhieuXuatKhoLeTraKhoChan);
                            objXuatNhap.NgayBiendong = _ngayxacnhan;
                            objXuatNhap.KieuThuocvattu = objPhieuNhapCt.KieuThuocvattu;
                            objXuatNhap.IsNew = true;
                            objXuatNhap.Save();

                        }
                        new Update(TPhieutrathuocKholeVekhochan.Schema)
                            .Set(TPhieutrathuocKholeVekhochan.Columns.NgaySua).EqualTo(globalVariables.SysDate)
                            .Set(TPhieutrathuocKholeVekhochan.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                            .Set(TPhieutrathuocKholeVekhochan.Columns.IdNhanvien).EqualTo(globalVariables.gv_intIDNhanvien)
                            .Set(TPhieutrathuocKholeVekhochan.Columns.NguoiXacnhan).EqualTo(globalVariables.UserName)
                            .Set(TPhieutrathuocKholeVekhochan.Columns.NgayXacnhan).EqualTo( globalVariables.SysDate)
                            .Set(TPhieutrathuocKholeVekhochan.Columns.TrangThai).EqualTo(1)
                            .Where(TPhieutrathuocKholeVekhochan.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu)
                            .And(TPhieutrathuocKholeVekhochan.LoaiPhieuColumn).IsEqualTo(objPhieuNhap.LoaiPhieu).Execute();
                    }
                    Scope.Complete();
                    return ActionResult.Success;
                }
            }
            catch (Exception exception)
            {
                log.Error("Loi ban ra tu sp :{0}", errorMessage);
                log.Error("Loi trong qua trinh xac nhan don thuoc :{0}", exception);
                return ActionResult.Error;

            }
        }
        public ActionResult XacNhanPhieuCapphatThuoc(TPhieuNhapxuatthuoc objPhieuNhap, DateTime ngayxacnhan, ref string errMsg)
        {
            HisDuocProperties objHisDuocProperties = PropertyLib._HisDuocProperties;
            string errorMessage = "";
            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        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)
                        {
                            //Kiểm tra đề phòng Kho A-->Xuất kho B. Kho B xác nhận-->Xuất kho C. Kho B hủy xác nhận. Kho C xác nhận dẫn tới việc kho B chưa có thuốc để trừ kho

                            ActionResult _Kiemtrathuocxacnhan = Kiemtrathuocxacnhan(objPhieuNhap, objPhieuNhapCt, ref errMsg);
                            if (_Kiemtrathuocxacnhan != ActionResult.Success) return _Kiemtrathuocxacnhan;

                            long idthuockho = -1;

                            int SluongChia = Utility.Int32Dbnull(objPhieuNhapCt.SluongChia, 1);
                            if (SluongChia <= 0) SluongChia = 1;//Nếu lỗi do người dùng sửa tay thì tự động đặt=1
                            //Chú ý khi lập phiếu xuất thuốc tủ trực thì
                            //objPhieuNhapCt.SoLuong= số lượng đã chia-->Cần trừ số lượng trong kho xuất theo số lượng nguyên gốc. Tức là phải lấy số lượng này / số lượng chia
                            int _SoLuong = objPhieuNhapCt.SoLuong * SluongChia;//Số lượng thực sự bị mất khỏi kho xuất(khi xuất thuốc sang tủ trực)
                            StoredProcedure sp = SPs.ThuocNhapkhoOutput(objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                                      _SoLuong, Utility.DecimaltoDbnull(objPhieuNhapCt.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);

                            sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhoxuat, objPhieuNhapCt.IdThuoc,
                                                          objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                          Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                          Utility.Int32Dbnull(objPhieuNhapCt.SoLuong), objPhieuNhapCt.IdChuyen,
                                                          objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo,
                                                          objHisDuocProperties.XoaDulieuKhiThuocDaHet ? 1 : 0, errorMessage);

                            sp.Execute();
                            errorMessage = Utility.sDbnull(sp.OutputValues[0], "");
                            if (Utility.DoTrim(errorMessage)!= "")
                            {
                                Utility.ShowMsg(errorMessage);
                                return ActionResult.Error;
                            }
                            if (idthuockho > 0)
                                new Update(TPhieuNhapxuatthuocChitiet.Schema).Set(TPhieuNhapxuatthuocChitiet.Columns.IdThuockho).EqualTo(idthuockho)
                                   .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieuchitiet).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet).Execute();
                            else
                                idthuockho =Utility.Int64Dbnull( objPhieuNhapCt.IdThuockho,-1);
                            objPhieuNhapCt.IdThuockho = idthuockho;
                            //Insert dòng kho nhập
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia);
                            objXuatNhap.GiaBan = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);

                            objXuatNhap.GiaPhuthuDungtuyen = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuDungtuyen);
                            objXuatNhap.GiaPhuthuTraituyen = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuTraituyen);
                            objXuatNhap.GiaBhyt = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhyt);

                            objXuatNhap.IdChuyen = objPhieuNhapCt.IdChuyen;
                            objXuatNhap.NgayNhap = objPhieuNhapCt.NgayNhap;
                            objXuatNhap.GiaNhap = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.SoHoadon = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            objXuatNhap.SoChungtuKemtheo = objPhieuNhap.SoChungtuKemtheo;
                            objXuatNhap.PhuThu = 0;
                            objXuatNhap.DuTru = objPhieuNhap.DuTru;
                            objXuatNhap.SoLuong = Utility.Int32Dbnull(objPhieuNhapCt.SoLuong);
                            objXuatNhap.SluongChia = Utility.Int32Dbnull(objPhieuNhapCt.SluongChia,1);
                            objXuatNhap.NgayTao = globalVariables.SysDate;
                            objXuatNhap.NguoiTao = globalVariables.UserName;
                            objXuatNhap.ThanhTien = Utility.DecimaltoDbnull(objPhieuNhapCt.ThanhTien);
                            objXuatNhap.IdThuoc = Utility.Int32Dbnull(objPhieuNhapCt.IdThuoc);
                            objXuatNhap.IdThuockho = Utility.Int32Dbnull(objPhieuNhapCt.IdThuockho);
                            objXuatNhap.Vat = Utility.Int32Dbnull(objPhieuNhap.Vat);
                            objXuatNhap.IdNhanvien = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien);
                            objXuatNhap.IdKho = Utility.Int16Dbnull(objPhieuNhap.IdKhonhap);
                            objXuatNhap.NgayHethan = objPhieuNhapCt.NgayHethan.Date;
                            objXuatNhap.MaNhacungcap = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.SoLo = objPhieuNhapCt.SoLo;
                            objXuatNhap.SoDky = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.IdKhoaLinh = objPhieuNhap.IdKhoalinh;

                            objXuatNhap.MaLoaiphieu = (byte)LoaiPhieu.PhieuNhapKho;
                            objXuatNhap.TenLoaiphieu = Utility.TenLoaiPhieu(LoaiPhieu.PhieuNhapKho);
                            objXuatNhap.NgayBiendong = objPhieuNhap.NgayXacnhan;
                            objXuatNhap.NgayHoadon = objPhieuNhap.NgayHoadon;
                            objXuatNhap.KieuThuocvattu = objPhieuNhapCt.KieuThuocvattu;
                            objXuatNhap.IsNew = true;
                            objXuatNhap.Save();
                            //Insert dòng của kho xuất
                            objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia);
                            objXuatNhap.NgayNhap = objPhieuNhapCt.NgayNhap;
                            objXuatNhap.GiaBan = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.GiaNhap = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);

                            objXuatNhap.GiaPhuthuDungtuyen = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuDungtuyen);
                            objXuatNhap.GiaPhuthuTraituyen = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuTraituyen);
                            objXuatNhap.GiaBhyt = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhyt);

                            objXuatNhap.SoHoadon = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            objXuatNhap.PhuThu = 0;
                            objXuatNhap.IdChuyen = -1;
                            objXuatNhap.DuTru = objPhieuNhap.DuTru;
                            objXuatNhap.SoLuong = Utility.Int32Dbnull(objPhieuNhapCt.SoLuong);
                            objXuatNhap.SluongChia = Utility.Int32Dbnull(objPhieuNhapCt.SluongChia, 1);
                            objXuatNhap.NgayTao = globalVariables.SysDate;
                            objXuatNhap.NguoiTao = globalVariables.UserName;
                            objXuatNhap.IdThuockho = Utility.Int32Dbnull(objPhieuNhapCt.IdChuyen);
                            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.IdKhoxuat);
                            objXuatNhap.NgayHethan = objPhieuNhapCt.NgayHethan.Date;
                            objXuatNhap.MaNhacungcap = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.SoChungtuKemtheo = objPhieuNhap.SoChungtuKemtheo;
                            objXuatNhap.SoLo = objPhieuNhapCt.SoLo;
                            objXuatNhap.SoDky = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.MaLoaiphieu = (byte)LoaiPhieu.PhieuXuatKhoa;
                            objXuatNhap.TenLoaiphieu = Utility.TenLoaiPhieu(LoaiPhieu.PhieuXuatKhoa);
                            objXuatNhap.NgayBiendong = objPhieuNhap.NgayXacnhan;
                            objXuatNhap.NgayHoadon = objPhieuNhap.NgayHoadon;
                            objXuatNhap.KieuThuocvattu = objPhieuNhapCt.KieuThuocvattu;
                            objXuatNhap.IdKhoaLinh = objPhieuNhap.IdKhoalinh;
                            objXuatNhap.IsNew = true;
                            objXuatNhap.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)
                            .And(TPhieuNhapxuatthuoc.LoaiPhieuColumn).IsEqualTo(objPhieuNhap.LoaiPhieu).Execute();
                    }
                    Scope.Complete();
                    return ActionResult.Success;
                }
            }
            catch (Exception ex)
            {
                Utility.CatchException("Lỗi khi xác nhận phiếu cấp phát thuốc-khoa", ex);
                return ActionResult.Error;
            }
        }
Example #16
0
        public ActionResult XacnhanPhieuTrathuocNhacungcap(TPhieuNhapxuatthuoc objPhieuNhap)
        {
            HisDuocProperties objHisDuocProperties = PropertyLib._HisDuocProperties;
            string            errorMessage         = "";

            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        SqlQuery sqlQuery = new Select().From(TPhieuNhapxuatthuocChitiet.Schema)
                                            .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu);
                        TPhieuNhapxuatthuocChitietCollection objPhieuNhapCtCollection =
                            sqlQuery.ExecuteAsCollection <TPhieuNhapxuatthuocChitietCollection>();
                        foreach (TPhieuNhapxuatthuocChitiet objPhieuNhapCt in objPhieuNhapCtCollection)
                        {
                            //Insert dòng hủy vào TBiendongThuoc
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu        = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu        = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia         = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia);
                            objXuatNhap.NgayHoadon     = objPhieuNhap.NgayHoadon;
                            objXuatNhap.GiaBan         = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.GiaNhap        = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.SoDky          = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau    = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.SoLo           = objPhieuNhapCt.SoLo;
                            objXuatNhap.IdThuockho     = Utility.Int32Dbnull(objPhieuNhapCt.IdThuockho);
                            objXuatNhap.KieuThuocvattu = Utility.sDbnull(objPhieuNhapCt.KieuThuocvattu);

                            objXuatNhap.SoChungtuKemtheo   = "";
                            objXuatNhap.Noitru             = 0;
                            objXuatNhap.QuayThuoc          = 0;
                            objXuatNhap.GiaBhyt            = 0;
                            objXuatNhap.GiaBhytCu          = 0;
                            objXuatNhap.GiaPhuthuDungtuyen = 0;
                            objXuatNhap.GiaPhuthuTraituyen = 0;
                            objXuatNhap.DuTru = 0;

                            objXuatNhap.SoHoadon     = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            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.IdKhoxuat);
                            objXuatNhap.NgayHethan   = objPhieuNhapCt.NgayHethan.Date;
                            objXuatNhap.MaNhacungcap = objPhieuNhap.MaNhacungcap;
                            objXuatNhap.MaLoaiphieu  = objPhieuNhap.LoaiPhieu;
                            objXuatNhap.TenLoaiphieu = objPhieuNhap.TenLoaiphieu;
                            objXuatNhap.NgayBiendong = objPhieuNhap.NgayHoadon;
                            objXuatNhap.IsNew        = true;
                            objXuatNhap.Save();
                            StoredProcedure sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhoxuat, objPhieuNhapCt.IdThuoc,
                                                                  objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                                  Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                                  Utility.Int32Dbnull(objXuatNhap.SoLuong), objPhieuNhapCt.IdThuockho, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, objHisDuocProperties.XoaDulieuKhiThuocDaHet ? 1 : 0, errorMessage);

                            sp.Execute();
                        }
                        new Update(TPhieuNhapxuatthuoc.Schema)
                        .Set(TPhieuNhapxuatthuoc.Columns.IdNhanvien).EqualTo(globalVariables.gv_intIDNhanvien)
                        .Set(TPhieuNhapxuatthuoc.Columns.NguoiXacnhan).EqualTo(globalVariables.UserName)
                        .Set(TPhieuNhapxuatthuoc.Columns.NgayXacnhan).EqualTo(globalVariables.SysDate)
                        .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 ban ra tu sp :{0}", errorMessage);
                log.Error("Loi trong qua trinh xac nhan don thuoc :{0}", exception);
                return(ActionResult.Error);
            }
        }
Example #17
0
        public ActionResult XacnhanPhieuTrathuocNhacungcap(TPhieuNhapxuatthuoc objPhieuNhap)
        {
            HisDuocProperties objHisDuocProperties = PropertyLib._HisDuocProperties;
            string errorMessage = "";
            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        SqlQuery sqlQuery = new Select().From(TPhieuNhapxuatthuocChitiet.Schema)
                            .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu);
                        TPhieuNhapxuatthuocChitietCollection objPhieuNhapCtCollection =
                            sqlQuery.ExecuteAsCollection<TPhieuNhapxuatthuocChitietCollection>();
                        foreach (TPhieuNhapxuatthuocChitiet objPhieuNhapCt in objPhieuNhapCtCollection)
                        {
                            //Insert dòng hủy vào TBiendongThuoc
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia);
                            objXuatNhap.NgayHoadon =objPhieuNhap.NgayHoadon;
                            objXuatNhap.GiaBan = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.GiaNhap = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.SoDky = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.SoLo = objPhieuNhapCt.SoLo;
                            objXuatNhap.IdThuockho = Utility.Int32Dbnull(objPhieuNhapCt.IdThuockho);
                            objXuatNhap.KieuThuocvattu = Utility.sDbnull(objPhieuNhapCt.KieuThuocvattu);

                            objXuatNhap.SoChungtuKemtheo = "";
                            objXuatNhap.Noitru = 0;
                            objXuatNhap.QuayThuoc = 0;
                            objXuatNhap.GiaBhyt = 0;
                            objXuatNhap.GiaBhytCu = 0;
                            objXuatNhap.GiaPhuthuDungtuyen = 0;
                            objXuatNhap.GiaPhuthuTraituyen = 0;
                            objXuatNhap.DuTru = 0;

                            objXuatNhap.SoHoadon = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            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.IdKhoxuat);
                            objXuatNhap.NgayHethan = objPhieuNhapCt.NgayHethan.Date;
                            objXuatNhap.MaNhacungcap = objPhieuNhap.MaNhacungcap;
                            objXuatNhap.MaLoaiphieu = objPhieuNhap.LoaiPhieu;
                            objXuatNhap.TenLoaiphieu = objPhieuNhap.TenLoaiphieu;
                            objXuatNhap.NgayBiendong = objPhieuNhap.NgayHoadon;
                            objXuatNhap.IsNew = true;
                            objXuatNhap.Save();
                            StoredProcedure sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhoxuat, objPhieuNhapCt.IdThuoc,
                                                          objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                          Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                          Utility.Int32Dbnull(objXuatNhap.SoLuong), objPhieuNhapCt.IdThuockho, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, objHisDuocProperties.XoaDulieuKhiThuocDaHet ? 1 : 0, errorMessage);

                            sp.Execute();
                        }
                        new Update(TPhieuNhapxuatthuoc.Schema)
                            .Set(TPhieuNhapxuatthuoc.Columns.IdNhanvien).EqualTo(globalVariables.gv_intIDNhanvien)
                            .Set(TPhieuNhapxuatthuoc.Columns.NguoiXacnhan).EqualTo(globalVariables.UserName)
                            .Set(TPhieuNhapxuatthuoc.Columns.NgayXacnhan).EqualTo( globalVariables.SysDate)
                            .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 ban ra tu sp :{0}", errorMessage);
                log.Error("Loi trong qua trinh xac nhan don thuoc :{0}", exception);
                return ActionResult.Error;
            }
        }
Example #18
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);
            }
        }
        /// <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 XacNhanPhieuTraThuocVeKho(TPhieuNhapxuatthuoc objPhieuNhap, DateTime _ngayxacnhan)
        {
            string errorMessage = "";

            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        HisDuocProperties objHisDuocProperties = PropertyLib._HisDuocProperties;
                        SqlQuery          sqlQuery             = new Select().From(TPhieuNhapxuatthuocChitiet.Schema)
                                                                 .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu);
                        TPhieuNhapxuatthuocChitietCollection objPhieuNhapCtCollection =
                            sqlQuery.ExecuteAsCollection <TPhieuNhapxuatthuocChitietCollection>();
                        foreach (TPhieuNhapxuatthuocChitiet objPhieuNhapCt in objPhieuNhapCtCollection)
                        {
                            //Insert dòng kho nhập
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu        = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu        = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia         = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.GiaBan         = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.SoHoadon       = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            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 = objPhieuNhap.MaNhacungcap;
                            objXuatNhap.MaLoaiphieu  = (byte)LoaiPhieu.PhieuNhapTraKhoLe;
                            objXuatNhap.TenLoaiphieu = Utility.TenLoaiPhieu(LoaiPhieu.PhieuNhapTraKhoLe);
                            objXuatNhap.IdKhoaLinh   = objPhieuNhap.IdKhoalinh;
                            objXuatNhap.NgayBiendong = _ngayxacnhan;
                            objXuatNhap.IsNew        = true;
                            objXuatNhap.Save();
                            //Insert dòng của kho xuất
                            objXuatNhap                = new TBiendongThuoc();
                            objXuatNhap.IdPhieu        = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu        = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia         = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.GiaBan         = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.SoHoadon       = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            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.IdKhoxuat);
                            objXuatNhap.NgayHethan     = objPhieuNhapCt.NgayHethan.Date;
                            //objXuatNhap.IdNhaCcap = Utility.Int32Dbnull(objPhieuNhap.IdNhaCcap);
                            objXuatNhap.MaNhacungcap = objPhieuNhap.MaNhacungcap;
                            objXuatNhap.MaLoaiphieu  = (byte)LoaiPhieu.PhieuXuatKho;
                            objXuatNhap.TenLoaiphieu = Utility.TenLoaiPhieu(LoaiPhieu.PhieuXuatKho);
                            objXuatNhap.IdKhoaLinh   = objPhieuNhap.IdKhoalinh;
                            objXuatNhap.NgayBiendong = _ngayxacnhan;
                            objXuatNhap.IsNew        = true;
                            objXuatNhap.Save();
                            StoredProcedure sp = SPs.ThuocNhapkho(objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                                  objPhieuNhapCt.SoLuong, Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                                  objPhieuNhapCt.IdThuoc, objPhieuNhap.IdKhonhap, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, _ngayxacnhan, objPhieuNhapCt.GiaBhyt);
                            sp.Execute();

                            sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhoxuat, objPhieuNhapCt.IdThuoc,
                                                  objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                  Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                  Utility.Int32Dbnull(objXuatNhap.SoLuong), objPhieuNhapCt.IdThuockho,
                                                  objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, objHisDuocProperties.XoaDulieuKhiThuocDaHet ? 1 : 0, errorMessage);

                            sp.Execute();
                            errorMessage = Utility.sDbnull(sp.OutputValues[0]);
                        }
                        new Update(TPhieuNhapxuatthuoc.Schema)
                        .Set(TPhieuNhapxuatthuoc.Columns.IdNhanvien).EqualTo(globalVariables.gv_intIDNhanvien)
                        .Set(TPhieuNhapxuatthuoc.Columns.NguoiXacnhan).EqualTo(globalVariables.UserName)
                        .Set(TPhieuNhapxuatthuoc.Columns.NgayXacnhan).EqualTo(globalVariables.SysDate)
                        .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);
                log.Error("Loi ban ra tu sp :{0}", errorMessage);
                return(ActionResult.Error);
            }
        }
        public ActionResult XacNhanPhieuTrathuocTutrucKhoaveKho(TPhieuNhapxuatthuoc objPhieuNhap, DateTime ngayxacnhan, ref string errMsg)
        {
            HisDuocProperties objHisDuocProperties = PropertyLib._HisDuocProperties;
            string            errorMessage         = "";

            try
            {
                using (var Scope = new TransactionScope())
                {
                    using (var dbScope = new SharedDbConnectionScope())
                    {
                        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)
                        {
                            //Kiểm tra đề phòng Kho A-->Xuất kho B. Kho B xác nhận-->Xuất kho C. Kho B hủy xác nhận. Kho C xác nhận dẫn tới việc kho B chưa có thuốc để trừ kho

                            ActionResult _Kiemtrathuocxacnhan = Kiemtrathuocxacnhan(objPhieuNhap, objPhieuNhapCt, ref errMsg);
                            if (_Kiemtrathuocxacnhan != ActionResult.Success)
                            {
                                return(_Kiemtrathuocxacnhan);
                            }
                            long idthuockho = -1;
                            //Nhập vào tủ trực
                            StoredProcedure sp = SPs.ThuocNhapkhoOutput(objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                                        objPhieuNhapCt.SoLuong, Utility.DecimaltoDbnull(objPhieuNhapCt.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();
                            //Lấy về Id_thuockho tương ứng trong tủ trực
                            idthuockho = Utility.Int64Dbnull(sp.OutputValues[0], -1);

                            //Trừ tủ trực theo đơn vị chia
                            int SluongChia = Utility.Int32Dbnull(objPhieuNhapCt.SluongChia, 1);
                            if (SluongChia <= 0)
                            {
                                SluongChia = 1;                 //Nếu lỗi do người dùng sửa tay thì tự động đặt=1
                            }
                            //Chú ý khi lập phiếu xuất thuốc tủ trực thì
                            //objPhieuNhapCt.SoLuong= số lượng đã chia-->Cần trừ số lượng trong kho xuất theo số lượng nguyên gốc. Tức là phải lấy số lượng này / số lượng chia
                            int _SoLuong = objPhieuNhapCt.SoLuong * SluongChia;//Số lượng thực sự bị mất khỏi kho xuất(khi xuất thuốc sang tủ trực)
                            sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhoxuat, objPhieuNhapCt.IdThuoc,
                                                  objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan,
                                                  Utility.DecimaltoDbnull(objPhieuNhapCt.Vat),
                                                  _SoLuong, objPhieuNhapCt.IdChuyen,
                                                  objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo,
                                                  objHisDuocProperties.XoaDulieuKhiThuocDaHet ? 1 : 0, errorMessage);

                            sp.Execute();
                            if (idthuockho > 0)
                            {
                                new Update(TPhieuNhapxuatthuocChitiet.Schema).Set(TPhieuNhapxuatthuocChitiet.Columns.IdThuockho).EqualTo(idthuockho)
                                .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieuchitiet).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet).Execute();
                            }
                            else
                            {
                                idthuockho = Utility.Int64Dbnull(objPhieuNhapCt.IdThuockho, -1);
                            }
                            objPhieuNhapCt.IdThuockho = idthuockho;
                            //Insert dòng kho nhập
                            TBiendongThuoc objXuatNhap = new TBiendongThuoc();
                            objXuatNhap.IdPhieu        = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu        = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia         = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia);
                            objXuatNhap.GiaBan         = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);

                            objXuatNhap.GiaPhuthuDungtuyen = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuDungtuyen);
                            objXuatNhap.GiaPhuthuTraituyen = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuTraituyen);
                            objXuatNhap.GiaBhyt            = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhyt);
                            objXuatNhap.GiaBhytCu          = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhytCu);

                            objXuatNhap.IdChuyen         = objPhieuNhapCt.IdChuyen;
                            objXuatNhap.NgayNhap         = objPhieuNhapCt.NgayNhap;
                            objXuatNhap.GiaNhap          = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);
                            objXuatNhap.SoHoadon         = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            objXuatNhap.SoChungtuKemtheo = objPhieuNhap.SoChungtuKemtheo;
                            objXuatNhap.PhuThu           = 0;
                            objXuatNhap.DuTru            = objPhieuNhap.DuTru;
                            objXuatNhap.Noitru           = 1;
                            objXuatNhap.QuayThuoc        = 0;
                            objXuatNhap.SoLuong          = Utility.Int32Dbnull(objPhieuNhapCt.SoLuong);
                            objXuatNhap.SluongChia       = Utility.Int32Dbnull(objPhieuNhapCt.SluongChia, 1);
                            objXuatNhap.NgayTao          = globalVariables.SysDate;
                            objXuatNhap.NguoiTao         = globalVariables.UserName;
                            objXuatNhap.ThanhTien        = Utility.DecimaltoDbnull(objPhieuNhapCt.ThanhTien);
                            objXuatNhap.IdThuoc          = Utility.Int32Dbnull(objPhieuNhapCt.IdThuoc);
                            objXuatNhap.IdThuockho       = Utility.Int32Dbnull(objPhieuNhapCt.IdThuockho);
                            objXuatNhap.Vat          = Utility.Int32Dbnull(objPhieuNhap.Vat);
                            objXuatNhap.IdNhanvien   = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien);
                            objXuatNhap.IdKho        = Utility.Int16Dbnull(objPhieuNhap.IdKhonhap);
                            objXuatNhap.NgayHethan   = objPhieuNhapCt.NgayHethan.Date;
                            objXuatNhap.MaNhacungcap = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.SoLo         = objPhieuNhapCt.SoLo;
                            objXuatNhap.SoDky        = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau  = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.IdKhoaLinh   = objPhieuNhap.IdKhoalinh;//Chính là khoa trả

                            objXuatNhap.MaLoaiphieu    = (byte)LoaiPhieu.PhieuNhapKhoTututruc;
                            objXuatNhap.TenLoaiphieu   = Utility.TenLoaiPhieu(LoaiPhieu.PhieuNhapKhoTututruc);
                            objXuatNhap.NgayBiendong   = objPhieuNhap.NgayXacnhan;
                            objXuatNhap.NgayHoadon     = objPhieuNhap.NgayHoadon;
                            objXuatNhap.KieuThuocvattu = objPhieuNhapCt.KieuThuocvattu;
                            objXuatNhap.IsNew          = true;
                            objXuatNhap.Save();
                            //Insert dòng của kho xuất
                            objXuatNhap                = new TBiendongThuoc();
                            objXuatNhap.IdPhieu        = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieu);
                            objXuatNhap.IdPhieuChitiet = Utility.Int32Dbnull(objPhieuNhapCt.IdPhieuchitiet);
                            objXuatNhap.MaPhieu        = Utility.sDbnull(objPhieuNhap.MaPhieu);
                            objXuatNhap.DonGia         = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia);
                            objXuatNhap.NgayNhap       = objPhieuNhapCt.NgayNhap;
                            objXuatNhap.GiaBan         = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan);
                            objXuatNhap.GiaNhap        = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaNhap);

                            objXuatNhap.GiaPhuthuDungtuyen = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuDungtuyen);
                            objXuatNhap.GiaPhuthuTraituyen = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaPhuthuTraituyen);
                            objXuatNhap.GiaBhyt            = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhyt);
                            objXuatNhap.GiaBhytCu          = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBhytCu);

                            objXuatNhap.SoHoadon         = Utility.sDbnull(objPhieuNhap.SoHoadon);
                            objXuatNhap.PhuThu           = 0;
                            objXuatNhap.IdChuyen         = objPhieuNhapCt.IdChuyen;
                            objXuatNhap.DuTru            = objPhieuNhap.DuTru;
                            objXuatNhap.Noitru           = 1;
                            objXuatNhap.QuayThuoc        = 0;
                            objXuatNhap.SoLuong          = Utility.Int32Dbnull(objPhieuNhapCt.SoLuong);
                            objXuatNhap.SluongChia       = Utility.Int32Dbnull(objPhieuNhapCt.SluongChia, 1);
                            objXuatNhap.NgayTao          = globalVariables.SysDate;
                            objXuatNhap.NguoiTao         = globalVariables.UserName;
                            objXuatNhap.IdThuockho       = Utility.Int32Dbnull(objPhieuNhapCt.IdChuyen);
                            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.IdKhoxuat);
                            objXuatNhap.NgayHethan       = objPhieuNhapCt.NgayHethan.Date;
                            objXuatNhap.MaNhacungcap     = objPhieuNhapCt.MaNhacungcap;
                            objXuatNhap.SoChungtuKemtheo = objPhieuNhap.SoChungtuKemtheo;
                            objXuatNhap.SoLo             = objPhieuNhapCt.SoLo;
                            objXuatNhap.SoDky            = objPhieuNhapCt.SoDky;
                            objXuatNhap.SoQdinhthau      = objPhieuNhapCt.SoQdinhthau;
                            objXuatNhap.MaLoaiphieu      = (byte)LoaiPhieu.PhieuXuatKhoBenhNhanTuTutruc;
                            objXuatNhap.TenLoaiphieu     = Utility.TenLoaiPhieu(LoaiPhieu.PhieuXuatKhoBenhNhanTuTutruc);
                            objXuatNhap.NgayBiendong     = objPhieuNhap.NgayXacnhan;
                            objXuatNhap.NgayHoadon       = objPhieuNhap.NgayHoadon;
                            objXuatNhap.KieuThuocvattu   = objPhieuNhapCt.KieuThuocvattu;
                            objXuatNhap.IdKhoaLinh       = objPhieuNhap.IdKhoalinh;
                            objXuatNhap.IsNew            = true;
                            objXuatNhap.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)
                        .And(TPhieuNhapxuatthuoc.LoaiPhieuColumn).IsEqualTo(objPhieuNhap.LoaiPhieu).Execute();
                    }
                    Scope.Complete();
                    return(ActionResult.Success);
                }
            }
            catch (Exception ex)
            {
                Utility.CatchException("Lỗi khi xác nhận phiếu trả thuốc từ tủ trực khoa nội trú về kho lẻ", ex);
                return(ActionResult.Error);
            }
        }