/// <summary>
        /// Kiểm tra xem thuốc trong kho xuất đã được sử dụng hay chưa?
        /// </summary>
        /// <param name="objPhieuNhap"></param>
        /// <param name="objPhieuNhapCt"></param>
        /// <returns></returns>
        public ActionResult Kiemtrathuochuyxacnhan(TPhieuNhapxuatthuoc objPhieuNhap, TPhieuNhapxuatthuocChitiet objPhieuNhapCt)
        {
            TThuockhoCollection vCollection = new TThuockhoController().FetchByQuery(
              TThuockho.CreateQuery()
              .WHERE(TThuockho.IdKhoColumn.ColumnName, Comparison.Equals, objPhieuNhap.IdKhonhap)
              .AND(TThuockho.IdThuocColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.IdThuoc)
              .AND(TThuockho.NgayHethanColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.NgayHethan.Date)
              .AND(TThuockho.GiaNhapColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.GiaNhap)
              .AND(TThuockho.GiaBanColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.GiaBan)
              );

            if (vCollection.Count <= 0) return ActionResult.Exceed;//Lỗi không có dòng dữ liệu trong bảng kho-thuốc
            int SoLuong = vCollection[0].SoLuong;
            SoLuong = SoLuong - objPhieuNhapCt.SoLuong;
            if (SoLuong < 0) return ActionResult.NotEnoughDrugInStock;//Thuốc đã sử dụng nhiều nên không thể hủy
            return ActionResult.Success;
        }
Beispiel #2
0
        public ActionResult Kiemtrathuocxacnhan(TPhieuNhapxuatthuoc objPhieuNhap, TPhieuNhapxuatthuocChitiet objPhieuNhapCt, ref string errMsg)
        {
            TThuockhoCollection vCollection = new TThuockhoController().FetchByQuery(
              TThuockho.CreateQuery()
              .WHERE(TThuockho.IdKhoColumn.ColumnName, Comparison.Equals, objPhieuNhap.IdKhoxuat)
              .AND(TThuockho.IdThuocColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.IdThuoc)
              .AND(TThuockho.NgayHethanColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.NgayHethan.Date)
              .AND(TThuockho.GiaNhapColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.GiaNhap)
              .AND(TThuockho.GiaBanColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.GiaBan)
              .AND(TThuockho.MaNhacungcapColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.MaNhacungcap)
              .AND(TThuockho.SoLoColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.SoLo)
               .AND(TThuockho.NgayNhapColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.NgayNhap)
                .AND(TThuockho.GiaBhytColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.GiaBhyt)
              .AND(TThuockho.VatColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.Vat)
              );

            if (vCollection.Count <= 0)
            {
                errMsg = string.Format("ID thuốc={0}, không tồn tại trong kho {1}", objPhieuNhapCt.IdThuoc.ToString(), objPhieuNhap.IdKhonhap.ToString());
                return ActionResult.Exceed;//Lỗi không có dòng dữ liệu trong bảng kho-thuốc
            }
            int SoLuong = vCollection[0].SoLuong;
            SoLuong = SoLuong - objPhieuNhapCt.SoLuong;
            if (SoLuong < 0)
            {
                errMsg = string.Format("ID thuốc={0}, Số lượng còn trong kho {1}, Số lượng bị trừ {2}", objPhieuNhapCt.IdThuoc.ToString(), vCollection[0].SoLuong.ToString(), objPhieuNhapCt.SoLuong.ToString());
                return ActionResult.NotEnoughDrugInStock;//Thuốc đã sử dụng nhiều nên không thể hủy
            }
            return ActionResult.Success;
        }
        public ActionResult Kiemtrathuochuychuyenkho(TPhieuNhapxuatthuoc objPhieuNhap, TPhieuNhapxuatthuocChitiet objPhieuNhapCt)
        {
            using (var scope = new TransactionScope())
            {
                //TThuockhoCollection vCollection2 = new TThuockhoCollection();
                TThuockhoCollection vCollection = new TThuockhoController().FetchByQuery(
                  TThuockho.CreateQuery()
                  .WHERE(TThuockho.IdKhoColumn.ColumnName, Comparison.Equals, objPhieuNhap.IdKhoxuat)
                  .AND(TThuockho.IdThuocColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.IdThuoc)
                  .AND(TThuockho.NgayHethanColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.NgayHethan.Date)
                  .AND(TThuockho.GiaNhapColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.GiaNhap)
                  .AND(TThuockho.GiaBanColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.GiaBan)
                  .AND(TThuockho.MaNhacungcapColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.MaNhacungcap)
                  .AND(TThuockho.SoLoColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.SoLo)
                  .AND(TThuockho.VatColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.Vat)
                  );
                if (vCollection.Count <= 0)
                {
                    TThuockho TThuockho1 = new TThuockho();
                    TThuockho1.IdThuoc = objPhieuNhapCt.IdThuoc;
                    TThuockho1.IdKho = Utility.Int32Dbnull(objPhieuNhap.IdKhoxuat);
                    TThuockho1.NgayHethan = objPhieuNhapCt.NgayHethan.Date;
                    TThuockho1.GiaNhap = objPhieuNhapCt.GiaNhap;
                    TThuockho1.GiaBan = objPhieuNhapCt.GiaBan;
                    TThuockho1.SoLuong = objPhieuNhapCt.SoLuong;
                    TThuockho1.MaNhacungcap = objPhieuNhapCt.MaNhacungcap;
                    TThuockho1.Vat = objPhieuNhapCt.Vat.Value;
                    TThuockho1.SoLo = objPhieuNhapCt.SoLo;
                    TThuockho1.IsNew = true;
                    TThuockho1.Save();
                }
                int sl = objPhieuNhapCt.SoLuong + vCollection[0].SoLuong;
                new Update(TThuockho.Schema)
                    .Set(TThuockho.Columns.SoLuong).EqualTo(sl)
                    .Where(TThuockho.Columns.IdKho).IsEqualTo(objPhieuNhap.IdKhoxuat).And(TThuockho.Columns.IdThuoc).
                    IsEqualTo(objPhieuNhapCt.IdThuoc).And(TThuockho.Columns.GiaNhap).IsEqualTo(objPhieuNhapCt.GiaNhap)
                    .And(TThuockho.Columns.GiaBan).IsEqualTo(objPhieuNhapCt.GiaBan)
                    .And(TThuockho.Columns.NgayHethan).IsEqualTo(objPhieuNhapCt.NgayHethan)
                    .And(TThuockho.Columns.Vat).IsEqualTo(objPhieuNhapCt.Vat)
                    .And(TThuockho.Columns.MaNhacungcap).IsEqualTo(objPhieuNhapCt.MaNhacungcap)
                    .And(TThuockho.Columns.SoLo).IsEqualTo(objPhieuNhapCt.SoLo)
                    .Execute();

                TThuockhoCollection vCollection1 = new TThuockhoController().FetchByQuery(
                  TThuockho.CreateQuery()
                  .WHERE(TThuockho.IdKhoColumn.ColumnName, Comparison.Equals, objPhieuNhap.IdKhonhap)
                  .AND(TThuockho.IdThuocColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.IdThuoc)
                  .AND(TThuockho.NgayHethanColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.NgayHethan.Date)
                  .AND(TThuockho.GiaNhapColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.GiaNhap)
                  .AND(TThuockho.GiaBanColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.GiaBan)
                   .AND(TThuockho.MaNhacungcapColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.MaNhacungcap)
                  .AND(TThuockho.SoLoColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.SoLo)
                  .AND(TThuockho.VatColumn.ColumnName, Comparison.Equals, objPhieuNhapCt.Vat)
                  );
                if (vCollection1.Count <= 0) return ActionResult.Exceed;//Lỗi mất dòng dữ liệu trong bảng kho-thuốc
                int SoLuong1 = vCollection1[0].SoLuong;
                SoLuong1 = SoLuong1 - objPhieuNhapCt.SoLuong;
                if (SoLuong1 < 0) return ActionResult.NotEnoughDrugInStock;//Thuốc đã sử dụng nhiều nên không thể hủy
                scope.Complete();
                return ActionResult.Success;
            }
        }