Esempio n. 1
0
 public Rental Build(PriceProvider priceType, string title, int daysRented)
 {
     return(new Rental(new Movie(priceType, title))
     {
         DaysRented = daysRented
     });
 }
Esempio n. 2
0
        public void GetButterPrice()
        {
            var priceProvider = new PriceProvider();
            var milkPrice     = priceProvider.GetPrice(Products.Butter);

            Assert.AreEqual(0.80m, milkPrice);
        }
Esempio n. 3
0
        public void GetPriceForItemNotInPriceList()
        {
            var priceProvider = new PriceProvider();
            var price         = priceProvider.GetPrice("testProduct");

            Assert.AreEqual(0.0m, price);
        }
Esempio n. 4
0
        private async Task <DialogTurnResult> ShowPrice(WaterfallStepContext stepContext)
        {
            var context    = stepContext.Context;
            var priceState = await priceStateAccessor.GetAsync(context);

            var provider = new PriceProvider();
            var value    = await provider.GetPrice(priceState.StockCode);

            var code = priceState.StockCode != priceState.StockName ? $" ({priceState.StockCode})" : "";

            if (value.HasValue)
            {
                if (priceState.StockCode != priceState.StockName)
                {
#pragma warning disable 4014
                    /*await - fire and forget*/ provider.AddMap(priceState.StockName, priceState.StockCode);
#pragma warning restore 4014
                }

                await context.SendActivityAsync($"Price of {priceState.StockName}{code} is {value}");
            }
            else
            {
                await context.SendActivityAsync($"Sorry, I can't find the price of {priceState.StockName} ({priceState.StockCode}).");
            }

            //cleanup so that next dialog starts fresh
            priceState.StockName = null;
            priceState.StockCode = null;
            await priceStateAccessor.SetAsync(context, priceState);

            return(await stepContext.EndDialogAsync());
        }
        protected virtual async Task <ProductSearchViewModel> CreateProductSearchViewModelAsync(ProductDocument productDocument, CreateProductSearchResultsViewModelParam <TParam> createSearchViewModelParam, IDictionary <Tuple <string, string>, ProductMainImage> imgDictionary)
        {
            var cultureInfo = createSearchViewModelParam.SearchParam.Criteria.CultureInfo;

            string variantId = null;

            if (productDocument.PropertyBag.ContainsKey(VariantPropertyBagKey))
            {
                variantId = productDocument.PropertyBag[VariantPropertyBagKey] as string;
            }

            var productSearchVm = ViewModelMapper.MapTo <ProductSearchViewModel>(productDocument, cultureInfo);

            productSearchVm.BrandId = ExtractLookupId("Brand_Facet", productDocument.PropertyBag);

            MapProductSearchViewModelInfos(productSearchVm, productDocument, cultureInfo);
            MapProductSearchViewModelUrl(productSearchVm, variantId, cultureInfo, createSearchViewModelParam.SearchParam.Criteria.BaseUrl);
            MapProductSearchViewModelImage(productSearchVm, imgDictionary);
            productSearchVm.IsAvailableToSell = await GetProductSearchViewModelAvailableForSell(productSearchVm, productDocument).ConfigureAwait(false);

            productSearchVm.Pricing = await PriceProvider.GetPriceAsync(productSearchVm.HasVariants, productDocument).ConfigureAwait(false);

            productSearchVm.IsEligibleForRecurring = RecurringOrdersSettings.Enabled && productDocument.PropertyBag.IsEligibleForRecurring();

            productSearchVm.Context["IsEligibleForRecurring "] = productSearchVm.IsEligibleForRecurring;

            return(productSearchVm);
        }
Esempio n. 6
0
        public void GetMilkPrice()
        {
            var priceProvider = new PriceProvider();
            var milkPrice     = priceProvider.GetPrice(Products.Milk);

            Assert.AreEqual(1.15m, milkPrice);
        }
Esempio n. 7
0
        public void GetBreadPrice()
        {
            var priceProvider = new PriceProvider();
            var breadPrice    = priceProvider.GetPrice(Products.Bread);

            Assert.AreEqual(1.00m, breadPrice);
        }
Esempio n. 8
0
        public void CalculateTotal()
        {
            IList <Price.Model.Product> products = new List <Price.Model.Product>();

            foreach (BasketItem bi in BasketItems)
            {
                products.Add(new Price.Model.Product(bi.ProductId, bi.Quantity));
            }
            Total = PriceProvider.Calculate(products).Total;
        }
Esempio n. 9
0
        public void Setup()
        {
            var priceProvider = new PriceProvider();

            this.basket = new ShoppingBasket(new TotalCalculator(
                                                 new List <IDiscount>
            {
                new ButterBreadDiscount(priceProvider),
                new MilkDiscount(priceProvider)
            }, priceProvider));
        }
Esempio n. 10
0
        static void Main()
        {
            Console.WriteLine("Hello YouScan!");

            var priceProvider = new PriceProvider();

            priceProvider.SetPricing(
                new List <Price>
            {
                new Price {
                    Name = "A", ItemPrice = 125m, Volumes = new Dictionary <int, decimal> {
                        { 3, 300 }
                    }
                },
                new Price {
                    Name = "B", ItemPrice = 425m
                },
                new Price {
                    Name = "C", ItemPrice = 100, Volumes = new Dictionary <int, decimal> {
                        { 6, 500 }
                    }
                },
                new Price {
                    Name = "D", ItemPrice = 75m
                }
            });

            var discountProvider = new DiscountProvider();

            discountProvider.SetDicountTable(
                new List <DiscountSet>
            {
                new DiscountSet {
                    StartingValue = 1000, Discount = 1
                },
                new DiscountSet {
                    StartingValue = 2000, Discount = 3
                },
                new DiscountSet {
                    StartingValue = 5000, Discount = 5
                },
                new DiscountSet {
                    StartingValue = 9999, Discount = 7
                }
            });


            _terminal = new PointOfSaleTerminal(priceProvider, new DiscountCardRepository(), discountProvider);

            Run("ABCDABA");
            Run("CCCCCCC");
            Run("ABCD");
        }
Esempio n. 11
0
 public PriceProviderTest()
 {
     _sut = new PriceProvider();
     _sut.SetPricing(
         new List <Price>
     {
         new Price {
             Name = "A", ItemPrice = 1.25m, Volumes = new Dictionary <int, decimal> {
                 { 3, 3 }
             }
         },
         new Price {
             Name = "B", ItemPrice = 4.25m
         }
     }
         );
 }
Esempio n. 12
0
        private async Task <string> TryExtractCode(string name)
        {
            var pp = new PriceProvider();
            var c  = pp.GetCode(name.ToLower());

            if (!string.IsNullOrEmpty(c) && await pp.IsValidAsCode(c))
            {
                return(c);
            }

            if (await pp.IsValidAsCode(name))
            {
                return(name);
            }

            return(null);
        }
Esempio n. 13
0
        public void PriceProviderAddsPriceFromPricePart()
        {
            var cart = new List <ShoppingCartItem>
            {
                new ShoppingCartItem(1, BuildProduct(50.0M)),
                new ShoppingCartItem(4, BuildProduct(30.0M)),
                new ShoppingCartItem(1, BuildProduct(10.0M))
            };
            var priceProvider = new PriceProvider();

            priceProvider.AddPrices(cart);

            foreach (var item in cart)
            {
                Assert.Single(item.Prices);
                Assert.Equal(item.Prices.Single().Price.Value, item.Product.As <PricePart>().Price.Value, 2);
            }
        }
Esempio n. 14
0
        public async void PriceProviderAddsPriceFromPricePart()
        {
            var cart = new List <ShoppingCartItem>
            {
                new ShoppingCartItem(1, "foo"),
                new ShoppingCartItem(4, "bar"),
                new ShoppingCartItem(1, "baz")
            };
            var productService = new DummyProductService(
                BuildProduct("foo", 50.0M),
                BuildProduct("bar", 30.0M),
                BuildProduct("baz", 10.0M));
            var priceProvider = new PriceProvider(productService);
            await priceProvider.AddPrices(cart);

            foreach (var item in cart)
            {
                Assert.Single(item.Prices);
                Assert.Equal(item.Prices.Single().Value, (await productService.GetProduct(item.ProductSku)).ContentItem.As <PricePart>().Price.Value, 2);
            }
        }
        public async void PriceProviderAddsPriceFromPricePart()
        {
            var cart = new ShoppingCart(
                new ShoppingCartItem(1, "foo"),
                new ShoppingCartItem(4, "bar"),
                new ShoppingCartItem(1, "baz"));
            var productService = new DummyProductService(
                BuildProduct("foo", 50.0M),
                BuildProduct("bar", 30.0M),
                BuildProduct("baz", 10.0M));
            var priceProvider = new PriceProvider(productService, new TestMoneyService());

            cart = cart.With(await priceProvider.AddPrices(cart.Items));

            foreach (var item in cart.Items)
            {
                Assert.Single(item.Prices);
                Assert.Equal(
                    item.Prices.Single().Price.Value,
                    (await productService.GetProduct(item.ProductSku)).ContentItem.As <PricePart>().Price.Value,
                    precision: 2);
            }
        }
Esempio n. 16
0
 public static double _getGia(Hospital data, int maDV, int makho, string macc)
 => PriceProvider.GetGiaTheoNhaCungCap(data, maDV, makho, macc);
Esempio n. 17
0
 public static Gia_SoLo_HanSuDung _getGia(Hospital data, int maDV, int makho)
 => PriceProvider.GetGia_SoLo_HSD(data, maDV, makho);
Esempio n. 18
0
 public static double _getGiaDM(Hospital data, int maDV, int trongDM, int mabn, DateTime ngaychidinh)
 => PriceProvider.GetGiaDM(data, maDV, trongDM, mabn, ngaychidinh);
Esempio n. 19
0
 public static bool GiaCu(int mabn, int TrongDM, DateTime ngaychidinh)
 => PriceProvider.GetGiaCu(mabn, TrongDM, ngaychidinh);
Esempio n. 20
0
 public Movie(PriceProvider priceType, string title)
 {
     PriceType = priceType;
     Title     = title;
 }
Esempio n. 21
0
        public static bool Update_Delete_CongKham(int _maBN, int idkb, bool update, DateTime ngaychidinh)
        {
            int    _idDTBN = -1;
            int    _madvCK = -1;
            int    maxid = -1;
            double _tyleTT = 1, _Dongia = 0;
            string BNBHYT   = "";
            string _makpsd  = ";";
            int    _makp    = 0;
            bool   ngoaigio = false;

            bool     landenkham  = false; //kiểm tra bệnh nhân đến khám lần thứ mấy trong ngày : false: lần đầu tiên; true: các lần sau
            Hospital DaTaContext = new Hospital();

            #region kiểm tra lần đến khám
            var      qbenhnhan   = DaTaContext.BenhNhans.Single(p => p.MaBNhan == _maBN);
            DateTime tungaykham  = FormatHelper.BeginDate(qbenhnhan.NNhap.Value);
            DateTime denngaykham = FormatHelper.EndDate(qbenhnhan.NNhap.Value);
            var      bndakham    = DaTaContext.BenhNhans.Where(p => qbenhnhan.IDPerson > 0 && p.IDPerson == qbenhnhan.IDPerson && p.NNhap >= tungaykham && p.NNhap <= denngaykham).ToList();
            if (bndakham.Count > 1)
            {
                landenkham = true;
            }
            else
            {
                landenkham = false;
            }
            #endregion
            var bnhan = DaTaContext.BenhNhans.Where(p => p.MaBNhan == _maBN).FirstOrDefault();
            int _mack = -1;
            int dtbn  = -1;
            if (bnhan != null)
            {
                _idDTBN = bnhan.IDDTBN;
                if (_makp == 0)
                {
                    _makp = bnhan.MaKP ?? 0;
                }
                _makpsd = ";" + bnhan.MaKP + ";";
                var qchuyenkhoa = (from kp in DaTaContext.KPhongs.Where(p => p.MaKP == _makp) select kp).FirstOrDefault();
                if (qchuyenkhoa != null)
                {
                    _mack = qchuyenkhoa.MaCK;//?? 0;
                }
                dtbn = DaTaContext.DTBNs.Where(p => p.IDDTBN == _idDTBN).Select(p => p.HTTT).FirstOrDefault();
            }

            var bnkbT = DaTaContext.BNKBs.Where(p => p.MaBNhan == _maBN).ToList();
            var bnkb  = bnkbT.Where(p => p.IDKB == idkb).ToList();
            if (bnkb.Count > 0)
            {
                _mack   = bnkb.First().MaCK;
                _makpsd = ";" + bnkb.First().MaKP + ";";
                _makp   = bnkb.First().MaKP == null ? 0 : bnkb.First().MaKP.Value;
                if (Common.MaBV == "01071")
                {
                    if (CommonHelper.isWeekend(bnkb.First().NgayKham.Value) || FormatHelper.isNgoaiGioHanhChinh(bnkb.First().NgayKham.Value))
                    {
                        ngoaigio = true;
                    }
                }
            }
            else if (bnhan != null)
            {
                if (Common.MaBV == "01071")
                {
                    if (CommonHelper.isWeekend(bnhan.NNhap.Value) || FormatHelper.isNgoaiGioHanhChinh(bnhan.NNhap.Value))
                    {
                        ngoaigio = true;
                    }
                }
            }


            string mackham_ck = ChuyenKhoaProvider.GetMaCongKham_ChuyenKhoa(_mack);



            var ckham2 = (from nhom in DaTaContext.NhomDVs.Where(p => p.TenNhomCT.Contains("Khám bệnh"))
                          join dvu in DaTaContext.DichVus.Where(p => p.PLoai == 2 && p.Status == 1 && p.Loai == _idDTBN) on nhom.IDNhom equals dvu.IDNhom
                          select new { dvu.MaKPsd, dvu.DonGia, dvu.DonGia2, dvu.DonGiaDV2, dvu.DonGiaBHYT, dvu.MaDV, dvu.DonVi, dvu.TrongDM, dvu.MaQD }).OrderByDescending(p => p.DonGia).ToList();

            #region xác định có khai báo công khám theo chuyên khoa
            List <string> lck = new List <string>();
            for (int i = 1; i < 18; i++)
            {
                lck.Add(i.ToString("D2") + ".1895");
                lck.Add(i.ToString("D2") + ".1896");
                lck.Add(i.ToString("D2") + ".1897");
                lck.Add(i.ToString("D2") + ".1898");
                lck.Add(i.ToString("D2") + ".1899");
            }
            var  qCheckChuyenKhoa   = ckham2.Where(p => lck.Contains(p.MaQD)).ToList();
            bool boolTheoChuyenKhoa = false;
            if (qCheckChuyenKhoa.Count > 0)
            {
                boolTheoChuyenKhoa = true;
            }
            #endregion
            var ckham = (from dv in ckham2
                         where (dv.MaKPsd != null && dv.MaKPsd.Contains(_makpsd))
                         select new { dv.DonGia, dv.DonGiaBHYT, dv.DonGia2, dv.DonGiaDV2, dv.MaDV, dv.DonVi, dv.TrongDM, dv.MaQD }).OrderByDescending(p => p.DonGia).ToList();
            if (bnhan != null)
            {
                BNBHYT = bnhan.DTuong;
                if (Common.MaBV == "01071")
                {
                    if (bnhan != null && dtbn != 1)
                    {
                        if (bnhan.CapCuu == 1)// nếu bệnh nhân cấp cứu (bệnh nhân dịch vụ lấy công khám theo chuyên khoa cấp cứu)
                        {
                            mackham_ck = ChuyenKhoaProvider.GetMaCongKham_ChuyenKhoa(47);
                        }
                        else if (ngoaigio) // nếu là bệnh nhân ngoài giờ (đang áp dụng cho bv 01071 )
                        {
                            mackham_ck = _idDTBN + "." + Common.mack_theoHangBV[BenhvienProvider.GetHangBVCK(Common.MaBV)] + ".NG";
                        }
                    }
                }
                if (dtbn != 1 && !boolTheoChuyenKhoa && !ngoaigio && (bnhan.CapCuu != 1 || Common.MaBV == "01017"))
                {
                    mackham_ck = _idDTBN.ToString() + "." + Common.mack_theoHangBV[BenhvienProvider.GetHangBVCK(Common.MaBV)];
                }

                //bn dịch vụ đã thiết lập công khám theo chuyên khoa khám thì lấy theo mã đó, còn nếu không lấy theo mã dv chung
                if (dtbn != 1 && ckham.Where(p => p.MaQD == mackham_ck).Count() == 0)
                {
                    mackham_ck = _idDTBN.ToString() + "." + Common.mack_theoHangBV[BenhvienProvider.GetHangBVCK(Common.MaBV)];
                }
            }

            List <int> _lmack = new List <int>();
            foreach (var i in ckham)
            {
                _lmack.Add(i.MaDV);
            }
            bool kttontaick = false;
            bool giacu      = PriceProvider.GetGiaCu(_maBN, -1, ngaychidinh);
            if (landenkham)
            {
                _tyleTT = 0.3;
            }

            #region tính công khám bệnh nhân
            foreach (var item in ckham)
            {
                if (item.MaQD == mackham_ck)
                {
                    kttontaick = true;
                    _madvCK    = item.MaDV;

                    //   _Dongia = item.TrongDM == 1 ? (giacu ? item.DonGia : item.DonGiaBHYT) : (giacu ? item.DonGia : item.DonGiaDV2);


                    _Dongia = (lck.Contains(item.MaQD) && bnhan.DTuong == "BHYT") ? (giacu ? item.DonGia : item.DonGiaBHYT) : (giacu ? item.DonGia2.Value : item.DonGiaDV2);

                    var kt    = DaTaContext.DThuocs.Where(p => p.PLDV == 2).Where(p => p.MaBNhan == _maBN).ToList();
                    var ktck2 = (from dt in DaTaContext.DThuocs.Where(p => p.MaBNhan == _maBN)
                                 join dtct1 in DaTaContext.DThuoccts on dt.IDDon equals dtct1.IDDon
                                 select dtct1).ToList();

                    var ktck = (from dt in ktck2
                                join b in _lmack on dt.MaDV equals b
                                select dt).ToList();
                    if (update) // thêm công khám
                    {
                        // kiểm tra công khám có chuyên khoa rồi thì không thêm
                        var ktckhoa = bnkbT.Where(p => p.MaCK == _mack).ToList();
                        if (ktckhoa.Count > 1)
                        {
                            continue;
                        }
                        //
                        // kiểm tra kp lâm sàng không thêm công khám
                        var ktpl = DaTaContext.KPhongs.Where(p => p.PLoai == "Lâm sàng" && p.MaKP == _makp).ToList();
                        if (ktpl.Count > 0)
                        {
                            continue;
                        }

                        // kiểm tra tiền công khám đã thu trực tiếp
                        var kttu = (from tu in DaTaContext.TamUngs
                                    join tuuct in DaTaContext.TamUngcts on tu.IDTamUng equals tuuct.IDTamUng
                                    where tu.MaBNhan == _maBN && tuuct.MaDV == _madvCK
                                    select tu).ToList();
                        if (kt.Count <= 0)
                        {
                            DThuoc dthuoccd = new DThuoc();
                            if (bnkb.Count > 0 && bnkb.First().NgayKham != null)
                            {
                                dthuoccd.NgayKe = bnkb.First().NgayKham;
                            }
                            else
                            {
                                dthuoccd.NgayKe = bnhan.NNhap;
                            }
                            dthuoccd.MaBNhan = _maBN;
                            dthuoccd.KieuDon = -1;
                            dthuoccd.PLDV    = 2;
                            if (bnkb.Count > 0 && bnkb.First().MaCB != null)
                            {
                                dthuoccd.MaCB = bnkb.First().MaCB;
                            }
                            if (bnkb.Count > 0 && bnkb.First().MaKP != null)
                            {
                                dthuoccd.MaKP = bnkb.First().MaKP;
                            }
                            else
                            {
                                dthuoccd.MaKP = _makp;
                            }

                            DaTaContext.DThuocs.Add(dthuoccd);
                            if (DaTaContext.SaveChanges() == 1)
                            {
                                maxid = DaTaContext.DThuocs.Where(p => p.MaBNhan == _maBN).ToList().Max(p => p.IDDon);
                            }
                        }
                        else
                        {
                            if (ktck.Count <= 0)
                            {
                                maxid = kt.First().IDDon;
                            }
                            else
                            {
                                maxid = kt.First().IDDon;
                                if (ktck.Count < 4)
                                {
                                    _tyleTT = 0.3;
                                }
                                else
                                if (ktck.Count == 4)
                                {
                                    _tyleTT = 0.1;
                                }
                                else
                                {
                                    _tyleTT = 0;
                                }
                            }
                        }
                        if (_tyleTT > 0 && (_tyleTT == 1 || (_tyleTT < 1 && BNBHYT == "BHYT")))
                        {
                            DThuocct dtct = new DThuocct();
                            dtct.MaKP    = _makp;
                            dtct.IDDon   = maxid;
                            dtct.IDKB    = idkb;
                            dtct.MaDV    = item.MaDV;
                            dtct.SoLuong = 1;
                            if (bnkb.Count > 0 && bnkb.First().NgayKham != null)
                            {
                                dtct.NgayNhap = bnkb.First().NgayKham;
                            }
                            else
                            {
                                dtct.NgayNhap = bnhan.NNhap;
                            }
                            dtct.DonVi     = item.DonVi;
                            dtct.DonGia    = _Dongia;
                            dtct.ThanhTien = _Dongia * _tyleTT;
                            dtct.TrongBH   = (lck.Contains(item.MaQD) && dtbn == 1) ? 1 : 0; //item.TrongDM == null ? 0 : item.TrongDM.Value;
                            if (kttu.Count > 0)
                            {
                                dtct.ThanhToan = 1;
                            }
                            dtct.TyLeTT = _tyleTT * 100;
                            DaTaContext.DThuoccts.Add(dtct);
                            DaTaContext.SaveChanges();
                            return(true);
                        }
                    }
                    else
                    { // xóa công khám
                        if (ktck.Count > 0)
                        {
                            List <DThuocct> _lxoa = (from dt in DaTaContext.DThuocs.Where(p => p.MaBNhan == _maBN)
                                                     join dtct1 in DaTaContext.DThuoccts.Where(p => p.MaDV == _madvCK && p.IDKB == idkb) on dt.IDDon equals dtct1.IDDon
                                                     select dtct1).ToList();
                            foreach (var a in _lxoa)
                            {
                                DaTaContext.DThuoccts.Remove(a);
                                DaTaContext.SaveChanges();
                                return(true);
                            }
                        }
                    }
                }
            }
            #endregion

            if (kttontaick == false)
            {
                if (ckham2.Where(p => p.MaQD == mackham_ck).ToList().Count > 0)
                {
                    MessageBox.Show("Công khám trong danh mục có mã QĐ: " + mackham_ck + " chưa được chọn sử dụng cho phòng khám của bạn");
                }
                else
                {
                    MessageBox.Show("Bạn chưa thiết lập dịch vụ tiền công khám trong danh mục có mã QĐ: " + mackham_ck);
                }
            }
            return(false);
        }
Esempio n. 22
0
 public Rental Build(PriceProvider priceType, string title, int daysRented)
 {
     return new Rental(new Movie(priceType, title)) { DaysRented = daysRented };
 }
Esempio n. 23
0
 /// <summary>
 /// Lấy giá nhập cho bệnh viện 30340 khi biết giá xuất, trong BH
 /// </summary>
 /// <param name="maDV"></param>
 /// <param name="DonGiaX">đơn giá xuất</param>
 /// <returns></returns>
 public static double getGiaNhapByGiaXuat(int?maDV, double DonGiaX, int trongBH)
 => PriceProvider.GetGiaNhapByGiaXuat(maDV, DonGiaX, trongBH);
Esempio n. 24
0
 public Movie(PriceProvider priceType, string title)
 {
     PriceType = priceType;
     Title = title;
 }