Exemplo n.º 1
0
        internal override void Calculate(int soLuong)
        {
            Plus(soLuong);

            if (TonChiTietInfo.IdChiTiet != 0)
            {
                var tonChiTietBckInfo = TonChiTietInfo.Clone() as HangHoa_ChiTietInfo;

                while (TblHangHoaChiTietDataProvider.Update(TonChiTietInfo) == 0)
                {
                    TonChiTietInfo = TblHangHoaChiTietDataProvider.
                                     GetHangHoaChiTietByMaVach(TonChiTietInfo.IdKho,
                                                               TonChiTietInfo.IdSanPham,
                                                               TonChiTietInfo.MaVach,
                                                               TonChiTietInfo.IdTrungTam);
                    Plus(soLuong);

                    //TonChiTietInfo.DeltaSoLuong = tonChiTietBckInfo.DeltaSoLuong;
                }
            }
            else //if (TonChiTietInfo.SoLuong > 0)
            {
                if (TblHangHoaChiTietDataProvider.IsUsedForAnotherProduct(TonChiTietInfo.MaVach, TonChiTietInfo.IdSanPham))
                {
                    throw new Exception(String.Format("Mã vạch '{0}' đã được sử dụng cho loại sản phẩm khác!", TonChiTietInfo.MaVach));
                }
                TonChiTietInfo.IdChiTiet = TblHangHoaChiTietDataProvider.Insert(TonChiTietInfo);
            }
        }
Exemplo n.º 2
0
        internal override void Calculate(int soLuong)
        {
            var tonChiTietTmpInfo = TonChiTietInfo.Clone() as HangHoa_ChiTietInfo;

            Minus(soLuong);

            if (soLuong != 0 && (TonChiTietInfo.SoLuong < 0))
            {
                var soTon = tonChiTietTmpInfo == null ? 0 : tonChiTietTmpInfo.SoLuong;

                var message = String.Format("Số lượng mã vạch '{0}' {1}, không thể thực hiện được.", tonChiTietTmpInfo.MaVach,
                                            soTon > 0 ? "chỉ còn " + soTon : "đã hết");
                message += "\nIdSanPham: " + tonChiTietTmpInfo.IdSanPham;
                message += "\nIdKho: " + tonChiTietTmpInfo.IdKho;
                message += "\nIdTrungTam: " + tonChiTietTmpInfo.IdTrungTam;
                message += "\nIdChiTiet: " + tonChiTietTmpInfo.IdChiTiet;
                throw new TinhTonException(message);
            }

            if (soLuong == 0)
            {
                return;
            }

            if (TonChiTietInfo.IdChiTiet != 0)
            {
                while (TblHangHoaChiTietDataProvider.Update(TonChiTietInfo) == 0)
                {
                    TonChiTietInfo = TblHangHoaChiTietDataProvider.
                                     GetHangHoaChiTietByMaVach(TonChiTietInfo.IdKho,
                                                               TonChiTietInfo.IdSanPham,
                                                               TonChiTietInfo.MaVach,
                                                               TonChiTietInfo.IdTrungTam);

                    tonChiTietTmpInfo = TonChiTietInfo.Clone() as HangHoa_ChiTietInfo;

                    //TonChiTietInfo.DeltaSoLuong = tonChiTietTmpInfo.DeltaSoLuong;

                    Minus(soLuong);

                    if (soLuong != 0 && (TonChiTietInfo.SoLuong < 0))
                    {
                        var soTon = tonChiTietTmpInfo == null ? 0 : tonChiTietTmpInfo.SoLuong;

                        var message = String.Format("Số lượng mã vạch '{0}' {1}, không thể thực hiện được.", tonChiTietTmpInfo.MaVach,
                                                    soTon > 0 ? "chỉ còn " + soTon : "đã hết");
                        message += "\nIdSanPham: " + tonChiTietTmpInfo.IdSanPham;
                        message += "\nIdKho: " + tonChiTietTmpInfo.IdKho;
                        message += "\nIdTrungTam: " + tonChiTietTmpInfo.IdTrungTam;
                        message += "\nIdChiTiet: " + tonChiTietTmpInfo.IdChiTiet;
                        throw new TinhTonException(message);
                    }
                }
            }
        }