public TeamGroupedCheckoutsDto FormatBarCheckouts(BarTeam barTeam, List <CheckoutOverviewDto> checkouts, List <EarningDto> earnings) { TeamGroupedCheckoutsDto barCheckouts = new TeamGroupedCheckoutsDto { TeamId = barTeam.Id, CheckoutHasBeenRun = barTeam.CheckoutHasBeenRun, }; foreach (CheckoutOverviewDto c in checkouts) { if (c.JobWorkedTitle.ToUpper() == "BARTENDER") { barCheckouts.TeamCheckouts.Add(c); } } if (barCheckouts.CheckoutHasBeenRun) { foreach (EarningDto e in earnings) { if (e.JobWorked.ToUpper() == "BARTENDER") { barCheckouts.TeamEarnings.Add(e); } } } return(barCheckouts); }
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); }
public BarTeam GetBarTeamForShift(DateTime shiftDate, string lunchOrDinner) { TeamEntity barTeamEntity = _teamRepository.GetBarTeamForShift(shiftDate, lunchOrDinner); BarTeam barTeam = Mapper.Map <BarTeam>(barTeamEntity); return(barTeam); }
public TestingBarEarningCalculator() { ShiftDate = DateTime.Now; Bartender = new Job() { Id = 2, Title = "bartender" }; Team = new BarTeam(ShiftDate, "dinner") { CheckoutHasBeenRun = false }; StaffMember1 = new StaffMember() { FirstName = "Grant", LastName = "Elmer", Id = 1, Status = "acitve" }; StaffMember2 = new StaffMember() { FirstName = "James", LastName = "Brooks", Id = 2, Status = "active" }; }
public IActionResult GetCheckoutsForShift([FromBody] GetCheckoutsForShiftDto data) { try { data.ShiftDate = Convert.ToDateTime(data.StringDate).Date; UtilityMethods.ValidateLunchOrDinnerSpecification(data.LunchOrDinner); List <CheckoutOverviewDto> checkouts = _checkoutsCore.GetCheckoutsForShift(data.ShiftDate, data.LunchOrDinner).ToList(); List <ServerTeamDto> serverTeams = _serverTeamCore.GetServerTeamsForShift(data.ShiftDate, data.LunchOrDinner, "Server"); BarTeam barTeam = _barCore.GetBarTeamForShift(data.ShiftDate, data.LunchOrDinner); List <EarningDto> shiftEarnings = _earningsCore.GetEarningsForShift(data.ShiftDate, data.LunchOrDinner); CheckoutPagePresentationDto pageData = _checkoutsCore.FormatPageData(checkouts, serverTeams, shiftEarnings, barTeam); return(Ok(pageData)); } catch (Exception e) { ModelState.AddModelError("Get Checkouts Error", e.Message); if (e is InvalidOperationException) { return(BadRequest(ModelState)); } _logger.LogError(e.Message); return(StatusCode(500, ModelState)); } }
public override void Enter() { FactionManager.NeutralUnitCount = 0; MaxTimer = 500; do { if (WaveManager.CurrentTeamCount != -1) { BarTeam TopBar = OverTeamBar.BarTeams[0]; TopBar.ListTargetPosition = FactionManager.TeamCount - 1; for (int i = 1; i < OverTeamBar.BarTeams.Count; i++) { OverTeamBar.BarTeams[i - 1] = OverTeamBar.BarTeams[i]; OverTeamBar.BarTeams[i].ListTargetPosition--; } OverTeamBar.BarTeams[OverTeamBar.BarTeams.Count - 1] = TopBar; } WaveManager.ActiveTeam = OverTeamBar.BarTeams[0].Team; }while (FactionManager.TeamDead.ContainsKey(WaveManager.ActiveTeam) && FactionManager.TeamDead[WaveManager.ActiveTeam]); WaveManager.CurrentTeamCount++; if (!FactionManager.TeamStreak.ContainsKey(WaveManager.ActiveTeam)) { FactionManager.TeamStreak.Add(WaveManager.ActiveTeam, 0); } else { FactionManager.TeamStreak[WaveManager.ActiveTeam]++; } if (WaveManager.CurrentTeamCount > FactionManager.TeamCount - 1) { WaveManager.CurrentTeamCount = 0; WaveManager.CurrentWaveEvent += WaveManager.GameSpeed; if (WaveManager.CurrentWaveEvent > 1) { WaveManager.NewWave(GameManager.GetLevel().getCurrentScene()); WaveManager.CurrentWaveEvent = 0; } } Timer = 0; MaxTimer = 2000; PathFindingManager.Rebuild(); base.Enter(); }
public CheckoutPagePresentationDto FormatPageData(List <CheckoutOverviewDto> checkouts, List <ServerTeamDto> serverTeams, List <EarningDto> shiftEarnings, BarTeam barTeam) { CheckoutPagePresentationDto pageData = new CheckoutPagePresentationDto(); //Here the teams that have had their checkouts run are assembled into groups for presentation foreach (ServerTeamDto s in serverTeams) { IEnumerable <CheckoutEntity> entities = _repository.GetCheckoutsForATeam(s.Id); if (entities.Count() > 0) { List <ServerTeamGroupedCheckoutsDto> groupedCheckouts = groupFormatter.FormatServerTeamGroupCheckouts(s, entities, checkouts, serverTeams, shiftEarnings); foreach (ServerTeamGroupedCheckoutsDto t in groupedCheckouts) { pageData.TeamCheckouts.Add(t); } } } //Here is where the distinctions need to be made between bar checkouts, patio, //and the server teamed/unrun checkouts // *IMPORTANT* - bar checkouts are not saved nor grouped by the teamcheckouts relationship. This is because // even though server checkouts can't be grouped by job worked due to the splitting of tips between select people, // Bartenders all split up the money based on hours on the same team. So pulling them based on date and job worked // is possible because they all go together. pageData.BarCheckouts = groupFormatter.FormatBarCheckouts(barTeam, checkouts, shiftEarnings); //Now to grab all the checkouts that havent been run and then return the whole dataset pageData.NotRunCheckouts = groupFormatter.FormatUnrunServerCheckouts(checkouts, pageData.TeamCheckouts); return(pageData); }
public void Test1() { // When given a list of checkouts and earnings, the group formatted should be able to return the // correct earnings for bartenders DateTime shiftDate = DateTime.Now; CheckoutOverviewDto checkout1 = new CheckoutOverviewDto("Grant Elmer", "Bartender") { Sales = 1200, ShiftDate = shiftDate, BarSales = 300, CashTips = 0, CcTips = 230, StaffMemberId = 1, Hours = 6.5m, Id = 2, LunchOrDinner = "dinner", }; CheckoutOverviewDto checkout2 = new CheckoutOverviewDto("Alyson Elmer", "Server") { Sales = 1200, ShiftDate = shiftDate, BarSales = 300, CashTips = 0, CcTips = 230, StaffMemberId = 1, Hours = 6.5m, Id = 2, LunchOrDinner = "dinner", }; CheckoutOverviewDto checkout3 = new CheckoutOverviewDto("James Brooks", "Bartender") { Sales = 1200, ShiftDate = shiftDate, BarSales = 300, CashTips = 0, CcTips = 230, StaffMemberId = 1, Hours = 6.5m, Id = 3, LunchOrDinner = "dinner", }; List <CheckoutOverviewDto> checkouts = new List <CheckoutOverviewDto>() { checkout1, checkout2, checkout3 }; EarningDto earning1 = new EarningDto { CcTips = 100, JobWorked = "Bartender", Id = 3, StaffMemberId = 1, LunchOrDinner = "Dinner", ShiftDate = shiftDate, CashTips = 0, TotalTipsForPayroll = 100, }; EarningDto earning2 = new EarningDto { CcTips = 100, JobWorked = "Server", Id = 6, StaffMemberId = 2, LunchOrDinner = "Dinner", ShiftDate = shiftDate, CashTips = 0, TotalTipsForPayroll = 100, }; EarningDto earning3 = new EarningDto { CcTips = 100, JobWorked = "Bartender", Id = 9, StaffMemberId = 3, LunchOrDinner = "Dinner", ShiftDate = shiftDate, CashTips = 0, TotalTipsForPayroll = 100, }; List <EarningDto> earnings = new List <EarningDto>() { earning1, earning2, earning3 }; BarTeam barTeam = new BarTeam(shiftDate, "dinner") { CheckoutHasBeenRun = true }; TeamGroupedCheckoutsDto barData = groupFormatter.FormatBarCheckouts(barTeam, checkouts, earnings); Assert.Contains(earning1, barData.TeamEarnings); Assert.Contains(checkout3, barData.TeamCheckouts); }
public override void Update(GameTime gameTime) { if (RandomCounter > 0) { if (OverTeamBar.SizeBonus < 1) { OverTeamBar.SizeBonus = Math.Min(1, OverTeamBar.SizeBonus + SizeBonusChange * gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f); OverTeamBar.Alpha = Math.Min(1, OverTeamBar.Alpha + SizeBonusChange * gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f); OverMap.SizeMult = Math.Max(0, OverMap.SizeMult - SizeBonusChange * gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f); } else { Timer += gameTime.ElapsedGameTime.Milliseconds * Shuffles; if (Timer > MaxTimer) { int SwapPos = Rand.r.Next(RandomCounter + 1); Teams[RandomCounter].ListTargetPosition = SwapPos; Teams[SwapPos].ListTargetPosition = RandomCounter; BarTeam Temp = Teams[SwapPos]; Teams[SwapPos] = Teams[RandomCounter]; Teams[RandomCounter] = Temp; Teams[SwapPos].PositionChangeSpeed = 0.01f * Shuffles; Teams[RandomCounter].PositionChangeSpeed = 0.01f * Shuffles; RandomCounter--; if (RandomCounter == 0) { SoundManager.PlaySound("Open", 1, 0, 0); } else { SoundManager.PlaySound("Arive", 1, 0, 0); } Timer -= MaxTimer; if (RandomCounter == 0 && Shuffles > 1) { RandomCounter = TeamCount - 1; Shuffles--; } } } } else { Timer += gameTime.ElapsedGameTime.Milliseconds; if (Timer > MaxTimer) { OverMap.SizeMult = Math.Min(1, OverMap.SizeMult + SizeBonusChange * gameTime.ElapsedGameTime.Milliseconds * 60 / 1000f); OverTeamBar.SizeBonus -= gameTime.ElapsedGameTime.Milliseconds * SizeBonusChange * 60 / 1000f; if (OverTeamBar.SizeBonus < 0) { OverTeamBar.SizeBonus = 0; OverMap.SizeMult = 1; WaveManager.SetState(WaveStartState.self); } } } base.Update(gameTime); }