Esempio n. 1
0
        public List <Earnings> RunBarTeamCheckout(DateTime shiftDate, string lunchOrDinner, int barBackCount)
        {
            TeamEntity            barTeam   = _teamRepository.GetBarTeamForShift(shiftDate, lunchOrDinner);
            BarTeam               team      = Mapper.Map <BarTeam>(barTeam);
            List <CheckoutEntity> checkouts = _checkoutRepository.GetCheckoutsForATeam(team.Id).ToList();

            foreach (CheckoutEntity c in checkouts)
            {
                Checkout chkout = Mapper.Map <Checkout>(c);
                team.Checkouts.Add(chkout);
            }
            List <TipOutEntity> serverTipOuts = _teamRepository.GetTipOuts(shiftDate, lunchOrDinner, "server");
            decimal             serverTips    = 0;

            foreach (TipOutEntity t in serverTipOuts)
            {
                serverTips += t.BarTipOut;
            }

            if (team.CheckoutHasBeenRun == true)
            {
                _teamRepository.DeleteTipOut(team.Id);
            }

            List <Earnings> teamEarnings = team.RunBarCheckout(serverTips, barBackCount);
            TipOutEntity    tipoutEntity = Mapper.Map <TipOutEntity>(team.TipOut);

            tipoutEntity.Team = barTeam;
            _teamRepository.AddTipOut(tipoutEntity);
            return(teamEarnings);
        }
Esempio n. 2
0
        public void EarningsShouldBeGeneratedForEachTeamMember()
        {
            Checkout checkout1 = new Checkout(StaffMember1, ShiftDate, Bartender)
            {
                Sales         = 1200,
                ShiftDate     = ShiftDate,
                BarSales      = 300,
                CashTips      = 0,
                CcTips        = 230,
                Hours         = 7m,
                LunchOrDinner = "dinner",
            };
            Checkout checkout3 = new Checkout(StaffMember2, ShiftDate, Bartender)
            {
                Sales         = 900,
                ShiftDate     = ShiftDate,
                BarSales      = 100,
                CashTips      = 0,
                CcTips        = 120,
                Hours         = 5.5m,
                LunchOrDinner = "dinner",
            };

            Team.Checkouts.Add(checkout1);
            Team.Checkouts.Add(checkout3);
            List <Earnings> earnings      = Team.RunBarCheckout(123, 1);
            var             grantsEarning = earnings.FirstOrDefault(e => e.StaffMember.Id == 1);
            var             jamesEarning  = earnings.FirstOrDefault(e => e.StaffMember.Id == 2);

            Assert.IsTrue(earnings.Any(e => e.StaffMember.Id == 1));
            Assert.IsTrue(earnings.Any(e => e.StaffMember.Id == 2));
            Assert.AreNotEqual(earnings[0], earnings[1]);
            Assert.IsTrue(grantsEarning.CcTips > jamesEarning.CcTips);
        }