public EarningDto GetEarning(int staffMemberId, DateTime shiftDate, string lunchOrDinner) { EarningsEntity entity = earningsRepository.GetEarning(staffMemberId, shiftDate, lunchOrDinner); EarningDto earning = Mapper.Map <EarningDto>(entity); return(earning); }
public IActionResult RunServerTeamCheckout([FromBody] RunServerTeamCheckoutDto data) { try { if (!serverTeamsCore.ServerTeamExists(data.ServerTeamId)) { ModelState.AddModelError("Team ID Not Found", "No team with that ID was found"); return(BadRequest(ModelState)); } UtilityMethods.ValidateLunchOrDinnerSpecification(data.LunchOrDinner); data.FormattedDate = Convert.ToDateTime(data.StringDate); ServerTeamDto team = serverTeamsCore.GetServerTeamById(data.ServerTeamId); List <StaffMemberDto> teammates = serverTeamsCore.GetStaffMembersOnServerTeam(data.ServerTeamId); //need to reset earnings for the staff memebers if the checkout is being updated earningsCore.ResetEarningsForServerTeam(teammates, data.FormattedDate, data.LunchOrDinner); List <CheckoutEntity> checkouts = checkoutsCore.GetCheckoutEntitiesForATeam(data.ServerTeamId).ToList(); EarningDto earningDto = serverTeamsCore.RunServerTeamCheckout(data, checkouts); TipOutDto tipOutDto = serverTeamsCore.GetServerTeamTipOut(data.ServerTeamId); //The earnings get added to servers here to seperate earnings work into its own section List <EarningDto> earnings = earningsCore.AddServerEarning(teammates, earningDto); ServerTipOutEarningDto tipoutAndEarning = new ServerTipOutEarningDto { TeamTipOut = tipOutDto, ServerEarnings = earnings }; return(CreatedAtRoute("RunCheckout", tipoutAndEarning)); } catch (Exception e) { if (e.InnerException is InvalidOperationException) { ModelState.AddModelError("Invalid Operation", e.Message); return(BadRequest(ModelState)); } else if (e.InnerException is KeyNotFoundException) { ModelState.AddModelError("Key Not Found", e.Message); return(BadRequest(ModelState)); } ModelState.AddModelError("Run CheckoutError", e.Message); return(StatusCode(500, ModelState)); } }
public List <EarningDto> AddServerEarning(List <StaffMemberDto> staffMembers, EarningDto earning) { List <EarningDto> earningDtos = new List <EarningDto>(); foreach (StaffMemberDto staffMember in staffMembers) { if (earningsRepository.EarningExists(staffMember.Id, earning.ShiftDate, earning.LunchOrDinner)) { EarningsEntity earn = earningsRepository.GetEarning(staffMember.Id, earning.ShiftDate, earning.LunchOrDinner); earningsRepository.DeleteEarning(earn.Id); } EarningsEntity earningsEntity = Mapper.Map <EarningsEntity>(earning); StaffMemberEntity staffMemberEntity = Mapper.Map <StaffMemberEntity>(staffMember); earningsEntity.StaffMember = staffMemberEntity; earningsRepository.AddEarning(earningsEntity); UtilityMethods.VerifyDatabaseSaveSuccess(earningsRepository); EarningDto earningToReturn = Mapper.Map <EarningDto>(earningsEntity); earningDtos.Add(earningToReturn); } return(earningDtos); }
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); }