/// <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 HuyXacNhanPhieuTraLaiKho(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) { //Kiểm tra ở kho nhập xem thuốc đã sử dụng chưa ActionResult _Kiemtrathuochuyxacnhan = Kiemtrathuochuyxacnhan(objPhieuNhap, objPhieuNhapCt); if (_Kiemtrathuochuyxacnhan != ActionResult.Success) { return(_Kiemtrathuochuyxacnhan); } int id_thuockho = -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, id_thuockho, objPhieuNhap.NgayXacnhan, objPhieuNhapCt.GiaBhyt, objPhieuNhapCt.GiaPhuthuDungtuyen, objPhieuNhapCt.GiaPhuthuTraituyen, objPhieuNhapCt.KieuThuocvattu); sp.Execute(); sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhoxuat, 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(); errorMessage = Utility.sDbnull(sp.OutputValues[0]); } //Xóa toàn bộ chi tiết trong TBiendongThuoc new Delete().From(TBiendongThuoc.Schema) .Where(TBiendongThuoc.IdPhieuColumn).IsEqualTo(objPhieuNhap.IdPhieu).Execute(); new Update(TPhieuNhapxuatthuoc.Schema) .Set(TPhieuNhapxuatthuoc.Columns.IdNhanvien).EqualTo(null) .Set(TPhieuNhapxuatthuoc.Columns.NguoiXacnhan).EqualTo(null) .Set(TPhieuNhapxuatthuoc.Columns.NgayXacnhan).EqualTo(null) .Set(TPhieuNhapxuatthuoc.Columns.TrangThai).EqualTo(0) .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); } }
public TPhieuNhapxuatthuocChitietCollection FetchAll() { TPhieuNhapxuatthuocChitietCollection coll = new TPhieuNhapxuatthuocChitietCollection(); Query qry = new Query(TPhieuNhapxuatthuocChitiet.Schema); coll.LoadAndCloseReader(qry.ExecuteReader()); return coll; }
/// <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 HuyXacNhanPhieuNhapKho(TPhieuNhapxuatthuoc objPhieuNhap, ref string errMsg) { 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) { ActionResult kiemtrathuochuyxacnhan = Kiemtrathuochuyxacnhan(objPhieuNhap, objPhieuNhapCt); if (kiemtrathuochuyxacnhan != ActionResult.Success) { return(kiemtrathuochuyxacnhan); } //Xóa toàn bộ chi tiết trong TBiendongThuoc new Delete().From(TBiendongThuoc.Schema) .Where(TBiendongThuoc.IdPhieuColumn).IsEqualTo(objPhieuNhap.IdPhieu) .And(TBiendongThuoc.IdPhieuChitietColumn).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet) .And(TBiendongThuoc.MaLoaiphieuColumn).IsEqualTo(objPhieuNhap.LoaiPhieu).Execute(); new Update(TPhieuNhapxuatthuocChitiet.Schema).Set(TPhieuNhapxuatthuocChitiet.Columns.IdThuockho).EqualTo(-1) .Set(TPhieuNhapxuatthuocChitiet.Columns.NgayNhap).EqualTo(null) .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieuchitiet).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet).Execute(); StoredProcedure sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhonhap, objPhieuNhapCt.IdThuoc, objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan, Utility.DecimaltoDbnull(objPhieuNhap.Vat), objPhieuNhapCt.SoLuong, objPhieuNhapCt.IdThuockho, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, 0, errMsg); sp.Execute(); } new Update(TPhieuNhapxuatthuoc.Schema) .Set(TPhieuNhapxuatthuoc.Columns.IdNhanvien).EqualTo(-1) .Set(TPhieuNhapxuatthuoc.Columns.NguoiXacnhan).EqualTo(null) .Set(TPhieuNhapxuatthuoc.Columns.NgayXacnhan).EqualTo(null) .Set(TPhieuNhapxuatthuoc.Columns.TrangThai).EqualTo(0) .Where(TPhieuNhapxuatthuoc.Columns.IdPhieu).IsEqualTo(objPhieuNhap.IdPhieu).Execute(); } Scope.Complete(); return(ActionResult.Success); } } catch (Exception ex) { Utility.CatchException("Lỗi khi hủy xác nhận nhập kho", ex); return(ActionResult.Error); } }
public ActionResult HuyXacNhanPhieuHuy_thanhly_Thuoc(TPhieuNhapxuatthuoc objPhieuNhap, 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>(); foreach (TPhieuNhapxuatthuocChitiet objPhieuNhapCt in objPhieuNhapCtCollection) { long idthuockho = -1; //Nhập lại kho thanh lý StoredProcedure sp = SPs.ThuocNhapkhoOutput(objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan, objPhieuNhapCt.SoLuong, Utility.DecimaltoDbnull(objPhieuNhapCt.Vat), objPhieuNhapCt.IdThuoc, objPhieuNhap.IdKhoxuat, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, objPhieuNhapCt.SoDky, objPhieuNhapCt.SoQdinhthau, idthuockho, idthuockho, objPhieuNhapCt.NgayNhap, objPhieuNhapCt.GiaBhyt, objPhieuNhapCt.GiaPhuthuDungtuyen, objPhieuNhapCt.GiaPhuthuTraituyen, objPhieuNhapCt.KieuThuocvattu); sp.Execute(); idthuockho = Utility.Int64Dbnull(sp.OutputValues[0], -1); if (idthuockho != objPhieuNhapCt.IdThuockho)//Nếu ai đó xóa bằng tay trong bảng thuốc kho thì cần update lại { new Update(TPhieuNhapxuatthuocChitiet.Schema).Set(TPhieuNhapxuatthuocChitiet.Columns.IdThuockho).EqualTo(idthuockho) .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieuchitiet).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet).Execute(); } } //Xóa toàn bộ chi tiết trong TBiendongThuoc new Delete().From(TBiendongThuoc.Schema) .Where(TBiendongThuoc.IdPhieuColumn).IsEqualTo(objPhieuNhap.IdPhieu) .And(TBiendongThuoc.MaLoaiphieuColumn).IsEqualTo(objPhieuNhap.LoaiPhieu).Execute(); new Update(TPhieuNhapxuatthuoc.Schema) .Set(TPhieuNhapxuatthuoc.Columns.NguoiSua).EqualTo(globalVariables.UserName) .Set(TPhieuNhapxuatthuoc.Columns.NgaySua).EqualTo(globalVariables.SysDate) .Set(TPhieuNhapxuatthuoc.Columns.NguoiXacnhan).EqualTo(null) .Set(TPhieuNhapxuatthuoc.Columns.NgayXacnhan).EqualTo(null) .Set(TPhieuNhapxuatthuoc.Columns.TrangThai).EqualTo(0) .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 hủy xác nhận phiếu ", ex); 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); } }
/// <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 HuyXacNhanPhieuXuatKho(TPhieuNhapxuatthuoc objPhieuNhap, 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>(); foreach (TPhieuNhapxuatthuocChitiet objPhieuNhapCt in objPhieuNhapCtCollection) { //Kiểm tra ở kho nhập xem thuốc đã sử dụng chưa ActionResult _Kiemtrathuochuyxacnhan = Kiemtrathuochuyxacnhan(objPhieuNhap, objPhieuNhapCt, ref errMsg); if (_Kiemtrathuochuyxacnhan != ActionResult.Success) { return(_Kiemtrathuochuyxacnhan); } //Xóa biến động kho nhập new Delete().From(TBiendongThuoc.Schema) .Where(TBiendongThuoc.IdPhieuColumn).IsEqualTo(objPhieuNhap.IdPhieu) .And(TBiendongThuoc.IdPhieuChitietColumn).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet) .And(TBiendongThuoc.MaLoaiphieuColumn).IsEqualTo((byte)LoaiPhieu.PhieuNhapKho).Execute(); //Xóa biến động kho xuất new Delete().From(TBiendongThuoc.Schema) .Where(TBiendongThuoc.IdPhieuColumn).IsEqualTo(objPhieuNhap.IdPhieu) .And(TBiendongThuoc.IdPhieuChitietColumn).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet) .And(TBiendongThuoc.MaLoaiphieuColumn).IsEqualTo((byte)LoaiPhieu.PhieuXuatKhoBenhNhan).Execute(); long id_Thuockho_new = -1; new Update(TPhieuNhapxuatthuocChitiet.Schema).Set(TPhieuNhapxuatthuocChitiet.Columns.IdThuockho).EqualTo(-1) .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieuchitiet).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet).Execute(); StoredProcedure sp = SPs.ThuocNhapkhoOutput(objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan, objPhieuNhapCt.SoLuong, Utility.DecimaltoDbnull(objPhieuNhapCt.Vat), objPhieuNhapCt.IdThuoc, objPhieuNhap.IdKhoxuat, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, objPhieuNhapCt.SoDky, objPhieuNhapCt.SoQdinhthau, objPhieuNhapCt.IdThuockho.Value, id_Thuockho_new, objPhieuNhapCt.NgayNhap, objPhieuNhapCt.GiaBhyt, objPhieuNhapCt.GiaPhuthuDungtuyen, objPhieuNhapCt.GiaPhuthuTraituyen, objPhieuNhapCt.KieuThuocvattu); sp.Execute(); sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhonhap, 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(TPhieuNhapxuatthuoc.Schema) .Set(TPhieuNhapxuatthuoc.Columns.IdNhanvien).EqualTo(null) .Set(TPhieuNhapxuatthuoc.Columns.NguoiXacnhan).EqualTo(null) .Set(TPhieuNhapxuatthuoc.Columns.NgayXacnhan).EqualTo(null) .Set(TPhieuNhapxuatthuoc.Columns.TrangThai).EqualTo(0) .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 hủy xác nhận phiếu chuyển kho", ex); return(ActionResult.Error); } }
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); } }
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); } }
/// <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(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) { 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.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia); objXuatNhap.GiaBan = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan); objXuatNhap.MotaThem = objPhieuNhap.MotaThem; 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.SoDky = objPhieuNhapCt.SoDky; objXuatNhap.SoQdinhthau = objPhieuNhapCt.SoQdinhthau; objXuatNhap.SoLo = objPhieuNhapCt.SoLo; objXuatNhap.IdNhanvien = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien); objXuatNhap.IdKhoaLinh = Utility.Int16Dbnull(objPhieuNhap.IdKhonhap); objXuatNhap.IdKho = Utility.Int16Dbnull(objPhieuNhap.IdKhonhap); objXuatNhap.NgayHethan = objPhieuNhapCt.NgayHethan; objXuatNhap.MaNhacungcap = objPhieuNhap.MaNhacungcap; objXuatNhap.MaLoaiphieu = Utility.ByteDbnull(LoaiPhieu.PhieuTraNcc); objXuatNhap.TenLoaiphieu = Utility.sDbnull(objPhieuNhap.TenLoaiphieu); objXuatNhap.NgayBiendong = objPhieuNhap.NgayXacnhan; objXuatNhap.IsNew = true; objXuatNhap.Save(); int id_thuockho = -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, id_thuockho, objPhieuNhap.NgayXacnhan, objPhieuNhapCt.GiaBhyt, objPhieuNhapCt.GiaPhuthuDungtuyen, objPhieuNhapCt.GiaPhuthuTraituyen, objPhieuNhapCt.KieuThuocvattu); sp.Execute(); log.Info(string.Format("Nhạp tra lai kho {0} voi so phieu {1}", objPhieuNhap.IdKhonhap, 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.DonGia = Utility.DecimaltoDbnull(objPhieuNhapCt.DonGia); objXuatNhap.GiaBan = Utility.DecimaltoDbnull(objPhieuNhapCt.GiaBan); 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.SoDky = objPhieuNhapCt.SoDky; objXuatNhap.SoQdinhthau = objPhieuNhapCt.SoQdinhthau; objXuatNhap.SoLo = objPhieuNhapCt.SoLo; objXuatNhap.IdNhanvien = Utility.Int16Dbnull(objPhieuNhap.IdNhanvien); objXuatNhap.IdKhoaLinh = Utility.Int16Dbnull(objPhieuNhap.IdKhonhap); objXuatNhap.IdKho = Utility.Int16Dbnull(objPhieuNhap.IdKhonhap); 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.MotaThem = objPhieuNhap.MotaThem; objXuatNhap.IsNew = true; objXuatNhap.Save(); 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(); log.Info(string.Format("xuat tra lai kho {0} voi so phieu {1}", objPhieuNhap.IdKhoxuat, objPhieuNhapCt.IdPhieuchitiet)); } new Update(TPhieuNhapxuatthuoc.Schema) .Set(TPhieuNhapxuatthuoc.Columns.NgaySua).EqualTo(globalVariables.SysDate) .Set(TPhieuNhapxuatthuoc.Columns.NguoiSua).EqualTo(globalVariables.UserName) .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) .And(TPhieuNhapxuatthuoc.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; } }
/// <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(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>(); foreach (TPhieuNhapxuatthuocChitiet 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.IdKhonhap, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, objPhieuNhapCt.SoDky, objPhieuNhapCt.SoQdinhthau, objPhieuNhapCt.IdChuyen, idthuockho, objPhieuNhapCt.NgayNhap, objPhieuNhapCt.GiaBhyt, objPhieuNhapCt.GiaPhuthuDungtuyen, objPhieuNhapCt.GiaPhuthuTraituyen, 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.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; ///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.NgayHoadon; objXuatNhap.KieuThuocvattu = Utility.sDbnull(objPhieuNhapCt.KieuThuocvattu); objXuatNhap.MotaThem = objPhieuNhap.MotaThem; objXuatNhap.SoChungtuKemtheo = ""; objXuatNhap.Noitru = 0; objXuatNhap.QuayThuoc = 0; objXuatNhap.GiaBhyt = objPhieuNhapCt.GiaBhyt; objXuatNhap.GiaBhytCu = 0; objXuatNhap.ThuocVay = 0; objXuatNhap.GiaPhuthuDungtuyen = objPhieuNhapCt.GiaPhuthuDungtuyen; objXuatNhap.GiaPhuthuTraituyen = objPhieuNhapCt.GiaPhuthuTraituyen; 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.IdKhonhap); objXuatNhap.IdKho = Utility.Int16Dbnull(objPhieuNhap.IdKhonhap); 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.NgayHoadon; objXuatNhap.KieuThuocvattu = Utility.sDbnull(objPhieuNhapCt.KieuThuocvattu); objXuatNhap.MotaThem = objPhieuNhap.MotaThem; objXuatNhap.SoChungtuKemtheo = ""; objXuatNhap.Noitru = 0; objXuatNhap.QuayThuoc = 0; objXuatNhap.GiaBhyt = objPhieuNhapCt.GiaBhyt; objXuatNhap.GiaBhytCu = 0; objXuatNhap.GiaPhuthuDungtuyen = objPhieuNhapCt.GiaPhuthuDungtuyen; objXuatNhap.GiaPhuthuTraituyen = objPhieuNhapCt.GiaPhuthuTraituyen; 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.IdKhoxuat); objXuatNhap.IdKho = Utility.Int16Dbnull(objPhieuNhap.IdKhoxuat); 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(TPhieuNhapxuatthuoc.Schema) .Set(TPhieuNhapxuatthuoc.Columns.NgaySua).EqualTo(globalVariables.SysDate) .Set(TPhieuNhapxuatthuoc.Columns.NguoiSua).EqualTo(globalVariables.UserName) .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) .And(TPhieuNhapxuatthuoc.LoaiPhieuColumn).IsEqualTo(objPhieuNhap.LoaiPhieu).Execute(); } Scope.Complete(); return ActionResult.Success; } } catch (Exception ex) { ErrMsg="Lỗi khi xác nhận phiếu trả thuốc từ kho lẻ về kho chẵn-->"+ex.Message; return ActionResult.Error; } }
public TPhieuNhapxuatthuocChitietCollection FetchByQuery(Query qry) { TPhieuNhapxuatthuocChitietCollection coll = new TPhieuNhapxuatthuocChitietCollection(); coll.LoadAndCloseReader(qry.ExecuteReader()); return coll; }
public TPhieuNhapxuatthuocChitietCollection FetchByID(object IdPhieuchitiet) { TPhieuNhapxuatthuocChitietCollection coll = new TPhieuNhapxuatthuocChitietCollection().Where("id_phieuchitiet", IdPhieuchitiet).Load(); return coll; }
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); } }
public ActionResult HuyXacNhanPhieuTrathuocTutrucKhoaVeKho(TPhieuNhapxuatthuoc objPhieuNhap, 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>(); foreach (TPhieuNhapxuatthuocChitiet objPhieuNhapCt in objPhieuNhapCtCollection) { //Kiểm tra ở kho nhập xem thuốc đã sử dụng chưa ActionResult _Kiemtrathuochuyxacnhan = Kiemtrathuochuyxacnhan(objPhieuNhap, objPhieuNhapCt, ref errMsg); if (_Kiemtrathuochuyxacnhan != ActionResult.Success) { return(_Kiemtrathuochuyxacnhan); } //Xóa biến động kho nhập new Delete().From(TBiendongThuoc.Schema) .Where(TBiendongThuoc.IdPhieuColumn).IsEqualTo(objPhieuNhap.IdPhieu) .And(TBiendongThuoc.IdPhieuChitietColumn).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet) .And(TBiendongThuoc.MaLoaiphieuColumn).IsEqualTo((byte)LoaiPhieu.PhieuNhapKhoTututruc).Execute(); //Xóa biến động kho xuất new Delete().From(TBiendongThuoc.Schema) .Where(TBiendongThuoc.IdPhieuColumn).IsEqualTo(objPhieuNhap.IdPhieu) .And(TBiendongThuoc.IdPhieuChitietColumn).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet) .And(TBiendongThuoc.MaLoaiphieuColumn).IsEqualTo((byte)LoaiPhieu.PhieuXuatKhoBenhNhanTuTutruc).Execute(); //Cộng trả lại kho xuất long idthuockho = -1; //Nhập theo tủ trực theo số lượng 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 Sluong = 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, Sluong, Utility.DecimaltoDbnull(objPhieuNhapCt.Vat), objPhieuNhapCt.IdThuoc, objPhieuNhap.IdKhoxuat, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, objPhieuNhapCt.SoDky, objPhieuNhapCt.SoQdinhthau, -1, idthuockho, objPhieuNhapCt.NgayNhap, objPhieuNhapCt.GiaBhyt, objPhieuNhapCt.GiaPhuthuDungtuyen, objPhieuNhapCt.GiaPhuthuTraituyen, objPhieuNhapCt.KieuThuocvattu); sp.Execute(); idthuockho = Utility.Int64Dbnull(sp.OutputValues[0], -1); //Xuất thứ nguyên từ kho nhận sp = SPs.ThuocXuatkho(objPhieuNhap.IdKhonhap, objPhieuNhapCt.IdThuoc, objPhieuNhapCt.NgayHethan, objPhieuNhapCt.GiaNhap, objPhieuNhapCt.GiaBan, Utility.DecimaltoDbnull(objPhieuNhapCt.Vat), objPhieuNhapCt.SoLuong, objPhieuNhapCt.IdThuockho, objPhieuNhapCt.MaNhacungcap, objPhieuNhapCt.SoLo, objHisDuocProperties.XoaDulieuKhiThuocDaHet ? 1 : 0, errorMessage); sp.Execute(); //Cạp nhật lại id_thuockho =-1(giá trị này được update khi xác nhận phiếu). Giá trị id_chuyen cho biết chuyển từ id_thuockho của kho nội trú. new Update(TPhieuNhapxuatthuocChitiet.Schema).Set(TPhieuNhapxuatthuocChitiet.Columns.IdThuockho).EqualTo(-1) .Where(TPhieuNhapxuatthuocChitiet.Columns.IdPhieuchitiet).IsEqualTo(objPhieuNhapCt.IdPhieuchitiet).Execute(); } new Update(TPhieuNhapxuatthuoc.Schema) .Set(TPhieuNhapxuatthuoc.Columns.IdNhanvien).EqualTo(null) .Set(TPhieuNhapxuatthuoc.Columns.NguoiXacnhan).EqualTo(null) .Set(TPhieuNhapxuatthuoc.Columns.NgayXacnhan).EqualTo(null) .Set(TPhieuNhapxuatthuoc.Columns.TrangThai).EqualTo(0) .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 hủy xác nhận phiếu trả thuốc từ tủ trực về kho lẻ nội trú", ex); return(ActionResult.Error); } }