public ActionResult ClockOut(string username) { TimeCard finishProject = new TimeCard(); finishProject.Username = username; return(View("ClockOut", finishProject)); }
public async Task <IActionResult> Edit(int id, [Bind("TimeCardID,UserID,GroupID,ClockIn,ClockOut")] TimeCard timeCard) { if (id != timeCard.TimeCardID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(timeCard); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TimeCardExists(timeCard.TimeCardID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(timeCard)); }
public void TestTimeCardTransaction() { int empId = 31; var t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25, database); t.Execute(); var today = DateTime.UtcNow; var tct = new TimeCardTransaction(today, 8.0, empId, database); tct.Execute(); Employee e = database.GetEmployee(empId); Assert.IsNotNull(e); PaymentClassification pc = e.Classification; Assert.IsTrue(pc is HourlyClassification); HourlyClassification hc = pc as HourlyClassification; TimeCard tc = hc.GetTimeCard(today); Assert.IsNotNull(tc); Assert.AreEqual(8.0, tc.Hours); }
private TimeCard GetTimeCard(TimeCard request) { var id = request?.Id; TimeCard ret = null; var query = DocQuery.ActiveQuery ?? Execute; DocPermissionFactory.SetSelect <TimeCard>(currentUser, "TimeCard", request.Select); DocEntityTimeCard entity = null; if (id.HasValue) { entity = DocEntityTimeCard.Get(id.Value); } if (null == entity) { throw new HttpError(HttpStatusCode.NotFound, $"No TimeCard found for Id {id.Value}"); } if (!DocPermissionFactory.HasPermission(entity, currentUser, DocConstantPermission.VIEW)) { throw new HttpError(HttpStatusCode.Forbidden, "You do not have VIEW permission for this route."); } ret = entity?.ToDto(); return(ret); }
public string AddTimeCard() { TimeCard newtimecard = new TimeCard(); TimeCardViewModel timecardVM = new TimeCardViewModel() { WorkedHours = 0 }; try { newtimecard.UpdateTimeCard(timecardVM); //{ WorkedHours=0}; //pr.TimeCard.Add(newTimeCard); //pr.Commit(); // _timecardRepository.Add(newtimecard); _unitOfWork.Commit(); return("New TimeCard added"); } catch (DbUpdateException ex) { return(ex.InnerException.Message); } catch (Exception ex) { LogError(ex); return("No Timecard added" + ex.ToString()); } }
public static GenericStatusChainHandler GenerateStatus(TimeCard timeCard, DateTime now) { var immutableStatusHandler = new ImmutableStatusChainHandler(timeCard, now); var unexcusedAbsenceHandler = new UnexcusedAbsenceChainHandler(timeCard, now); var notYetAtWorkHandler = new NotYetAtWorkChainHandler(timeCard, now); var todayInvalidLogsHandler = new TodayInvalidLogsStatusHandler(timeCard, now); var presentHandler = new PresentChainHandler(timeCard, now); var breakHandler = new BreakChainHandler(timeCard, now); var notTodayInvalidLogsHandler = new NotTodayInvalidLogsChainHandler(timeCard, now); var fulltimeHandler = new FulltimeDayChainHandler(timeCard, now); var undertimeHandler = new UndertimeDayChainHandler(timeCard, now); var overtimeHandler = new OvertimeDayChainHandler(timeCard, now); var invalidStatusHandler = new FallbackStatusChainHandler(timeCard, now); var firstHandler = immutableStatusHandler; firstHandler .SetNext(unexcusedAbsenceHandler) .SetNext(notYetAtWorkHandler) .SetNext(todayInvalidLogsHandler) .SetNext(presentHandler) .SetNext(breakHandler) .SetNext(notTodayInvalidLogsHandler) .SetNext(fulltimeHandler) .SetNext(undertimeHandler) .SetNext(overtimeHandler) .SetNext(invalidStatusHandler); return(firstHandler); }
private double CalculatePayForTimeCard(TimeCard timeCard) { double overtimeHours = Math.Max(0.0, timeCard.Hours - 8); double normalHours = timeCard.Hours - overtimeHours; return(HourlyRate * normalHours + HourlyRate * 1.5 * overtimeHours); }
public async Task GetAllTimeCards_ShouldAddEventsToCreatedAttendances_WhenUpdatedWithEndOfWork() { var userId = Guid.NewGuid(); var timeCardId = Guid.NewGuid(); var card = new TimeCard { Id = timeCardId, UserId = userId, }; TheSession.Store(card); var date1 = DateTime.Now; var start1 = new GettingWorkStarted(attendanceId1, userId, date1); var end1 = new EndOfWork(attendanceId2, userId, date1.AddHours(1)); var start2 = new GettingWorkStarted(attendanceId3, userId, date1.AddHours(2)); var end2 = new EndOfWork(attendanceId4, userId, date1.AddHours(3)); TheSession.Events.Append(timeCardId, start1, end1, start2, end2); TheSession.SaveChanges(); var repo = new TimeCardsRepository(TheStore); var timeCards = await repo.GetAllTimeCards(userId, default); timeCards.Should().HaveCount(1); }
public void ClockOut(TimeCard tc) { try { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlCommand cmd = new SqlCommand(SQL_ClockOut, conn); cmd.Parameters.AddWithValue("@user_name", tc.Username); cmd.Parameters.AddWithValue("@project", tc.Project); cmd.Parameters.AddWithValue("@end_datetime", DateTime.Now); cmd.Parameters.AddWithValue("@notes", tc.Notes); cmd.ExecuteNonQuery(); return; } } catch (SqlException ex) { throw; } }
public IActionResult SaveTime([FromBody] Object json) { String JsonString = json.ToString(); TimeCard timecard = JsonConvert.DeserializeObject <TimeCard>(JsonString); // Checks the time input on the server side to stop any manual posts that are not valid. DateTime timeIn, timeOut; // Is time in a date?, is time out a date? // are hours negative?, is time out a future date? if ((!DateTime.TryParse(timecard.timeIn, out timeIn) || !DateTime.TryParse(timecard.timeOut, out timeOut) || (timeOut.CompareTo(timeIn) < 0) || timeOut > DateTime.Now || timeIn > DateTime.Now)) { return(BadRequest("Invalid time entered")); } else if (IsAdmin() || GetUserID() == timecard.userID || IsInstructorForCourse(GetCourseForGroup(timecard.groupID))) { if (DBHelper.SaveTime(timecard)) { return(Ok()); } return(StatusCode(500)); } return(Unauthorized()); }
public void TestTimeCardTransaction() { int empId = 5; var name = "Łukasz"; var hourlyRate = 15.25; var date = new DateTime(2005, 7, 31); var hours = 8.0; AddHourlyEmployee t = new AddHourlyEmployee(empId, name, "Home", hourlyRate); t.Execute(); TimeCardTransaction tct = new TimeCardTransaction(date, hours, empId); tct.Execute(); Employee e = PayrollDatabase.GetEmployee(empId); Assert.IsNotNull(e); IPaymentClassification pc = e.Classification; Assert.IsTrue(pc is HourlyClassification); HourlyClassification hc = pc as HourlyClassification; TimeCard tc = hc.GetTimeCard(date); Assert.IsNotNull(tc); Assert.AreEqual(hours, tc.Hours); }
public void TestNumberOfHoursWorked() { DateTime startingDay = new DateTime(2016, 7, 3); TimeCard t = new TimeCard(startingDay); t.PayPeriod[4].SetHours(Day.TimeCodes.REGULAR, 15.0f); t.PayPeriod[6].SetHours(Day.TimeCodes.REGULAR, 8.0f); t.PayPeriod[2].SetHours(Day.TimeCodes.REGULAR, 20.0f); t.PayPeriod[3].SetHours(Day.TimeCodes.REGULAR, 5.0f); t.PayPeriod[10].SetHours(Day.TimeCodes.REGULAR, 12.0f); t.CaluclateHoursWorked(); float expectedRegular = 60.0f; Assert.AreEqual(expectedRegular, t.totalHoursWorked[0]); t.PayPeriod[5].SetHours(Day.TimeCodes.SICK, 12.0f); t.PayPeriod[1].SetHours(Day.TimeCodes.SICK, 5.0f); t.CaluclateHoursWorked(); float expectedSick = 17.0f; Assert.AreEqual(expectedSick, t.totalHoursWorked[1]); t.PayPeriod[12].SetHours(Day.TimeCodes.VACATION, 10.0f); t.PayPeriod[11].SetHours(Day.TimeCodes.VACATION, 10.0f); t.CaluclateHoursWorked(); float expectedVacation = 20.0f; Assert.AreEqual(expectedVacation, t.totalHoursWorked[2]); }
private double CalculatePayForTimeCard(TimeCard tc) { var overTimeHours = Math.Max(0.0, tc.Hours - 8); var normalHours = tc.Hours - overTimeHours; return(HourlyRate * normalHours + HourlyRate * overTimeHours * 1.5); }
public void ShouldReturnFalseWhenIsInPeriod() { var timeCard = new TimeCard(new DateTime(2020, 2, 1, 10, 0, 0), 8); var period = new Period(2020, 1); Assert.IsFalse(timeCard.IsIn(period)); }
public TimeCard Post(TimeCard request) { if (request == null) { throw new HttpError(HttpStatusCode.NotFound, "Request cannot be null."); } request.Select = request.Select ?? new List <string>(); TimeCard ret = null; using (Execute) { Execute.Run(ssn => { if (!DocPermissionFactory.HasPermissionTryAdd(currentUser, "TimeCard")) { throw new HttpError(HttpStatusCode.Forbidden, "You do not have ADD permission for this route."); } ret = _AssignValues(request, DocConstantPermission.ADD, ssn); }); } return(ret); }
public void Delete(TimeCard request) { using (Execute) { Execute.Run(ssn => { if (!(request?.Id > 0)) { throw new HttpError(HttpStatusCode.NotFound, $"No Id provided for delete."); } var en = DocEntityTimeCard.Get(request?.Id); if (null == en) { throw new HttpError(HttpStatusCode.NotFound, $"No TimeCard could be found for Id {request?.Id}."); } if (en.IsRemoved) { return; } if (!DocPermissionFactory.HasPermission(en, currentUser, DocConstantPermission.DELETE)) { throw new HttpError(HttpStatusCode.Forbidden, "You do not have DELETE permission for this route."); } en.Remove(); DocCacheClient.RemoveSearch(DocConstantModelName.TIMECARD); DocCacheClient.RemoveById(request.Id); }); } }
public long DeleteTimeCard(TimeCard timeCard) { _context.TimeCards.Remove(timeCard); _context.SaveChanges(); return(0); }
private bool CheckTimeCardContainsErrors(TimeCard timecard) { bool containsErrors = false; //Check if entry contains errors //Flag if there is not matched rostered shift if (timecard.Shift == null) { containsErrors = true; } if (!timecard.ClockOut.HasValue) //Flag if the user has not clocked out. { containsErrors = true; } if (!containsErrors && timecard.Shift != null) { var dtStartMinTime = timecard.Shift.StartTime.AddMinutes(-WebUI.Common.Constants.TimeCardShiftVariance); var dtStartMaxTime = timecard.Shift.StartTime.AddMinutes(WebUI.Common.Constants.TimeCardShiftVariance); var dtFinishMinTime = timecard.Shift.FinishTime.AddMinutes(-WebUI.Common.Constants.TimeCardShiftVariance); var dtFinishMaxTime = timecard.Shift.FinishTime.AddMinutes(WebUI.Common.Constants.TimeCardShiftVariance); if ((timecard.ClockIn < dtStartMinTime || dtStartMaxTime < timecard.ClockIn) ||//If the clockin is earlier than set period before shit or later than period after rostered start then error (timecard.ClockOut < dtFinishMinTime || timecard.ClockOut > dtFinishMaxTime)) //Or the clock out is more than set time early or later { containsErrors = true; } } return(containsErrors); }
public void TestTimeCardTransaction() { int empId = 5; AddHourlyEmployee t = new AddHourlyEmployee(empId, "Bill", "Home", 15.25, database); t.Execute(); TimeCardTransaction tct = new TimeCardTransaction( new DateTime(2005, 7, 31), 8.0, empId, database); tct.Execute(); Employee e = database.GetEmployee(empId); Assert.IsNotNull(e); PaymentClassification pc = e.Classification; Assert.IsTrue(pc is HourlyClassification); HourlyClassification hc = pc as HourlyClassification; TimeCard tc = hc.GetTimeCard(new DateTime(2005, 7, 31)); Assert.IsNotNull(tc); Assert.AreEqual(8.0, tc.Hours); }
public void RemoveHoursTest() { DateTime dateTime = new DateTime(2016, 8, 21); Day test = new Day(dateTime); TimeCard time = new TimeCard(dateTime); time.AddHour(0, Day.TimeCodes.REGULAR, 8); time.RemoveHours(0, Day.TimeCodes.REGULAR, 8);//should negate what is added. string expected = ("Day: " + test.dateTime + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n" + "Day: " + test.dateTime.AddDays(1) + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n" + "Day: " + test.dateTime.AddDays(2) + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n" + "Day: " + test.dateTime.AddDays(3) + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n" + "Day: " + test.dateTime.AddDays(4) + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n" + "Day: " + test.dateTime.AddDays(5) + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n" + "Day: " + test.dateTime.AddDays(6) + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n" + "Day: " + test.dateTime.AddDays(7) + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n" + "Day: " + test.dateTime.AddDays(8) + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n" + "Day: " + test.dateTime.AddDays(9) + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n" + "Day: " + test.dateTime.AddDays(10) + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n" + "Day: " + test.dateTime.AddDays(11) + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n" + "Day: " + test.dateTime.AddDays(12) + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n" + "Day: " + test.dateTime.AddDays(13) + " Reg: " + 0 + " Sick: " + 0 + " Vac: " + 0 + " Total: " + 0 + "\n");//reverts everything back to zero string result = time.ToString(); Assert.AreEqual(expected, result); }
public void TestAddTimeCard() { #region Arrange int employeeId = 7; AddHourlyEmployee t = new AddHourlyEmployee(employeeId, "user", "home", 97.5); t.Execute(); DateTime workingDay = new DateTime(2019, 4, 21); TimeCardTransaction tct = new TimeCardTransaction( employeeId, workingDay, 8.0 ); #endregion #region Action tct.Execute(); #endregion #region Assert Employee e = PayrollRepository.GetEmployee(employeeId); e.Should().NotBeNull(); e.Classification.Should().BeOfType <HourlyClassification>(); HourlyClassification hc = e.Classification as HourlyClassification; TimeCard tc = hc.GetTimeCard(workingDay); tc.Should().NotBeNull(); tc.Hours.Should().Be(8.0); #endregion }
public ActionResult Index() { var card = new TimeCard(); this.Session["card"] = card; return(View(card)); }
/// <summary> /// Creates a TimeCard and returns the timeSlotID /// </summary> /// <param name="json"></param> /// <returns></returns> public IActionResult CreateTimeCard([FromBody] Object json) { String JsonString = json.ToString(); TimeCard timeCard = JsonConvert.DeserializeObject <TimeCard>(JsonString); int courseID = GetCourseForGroup(timeCard.groupID); if (IsAdmin() || IsInstructorForCourse(courseID) || IsStudentInCourse(courseID)) { if (GetUserType() == 'S' && GetUserID() == timeCard.userID) { timeCard.timeslotID = (int)DBHelper.CreateTimeCard(timeCard); } else { timeCard.timeslotID = (int)DBHelper.CreateTimeCard(timeCard); } if (timeCard.timeslotID > 0) { return(Ok(timeCard.timeslotID)); } return(StatusCode(500)); } return(Unauthorized()); }
public async Task Seed(string migrationName) { Employee sam = new Employee { Name = "Sam", TimeCards = new List <TimeCard>() }; Employee melinda = new Employee { Name = "Melinda", TimeCards = new List <TimeCard>() }; TimeCard t1 = new TimeCard { Employee = sam, HoursWorked = 12, WorkDate = DateTime.Now }; TimeCard t2 = new TimeCard { Employee = sam, HoursWorked = 10, WorkDate = DateTime.Now.AddDays(-7) }; TimeCard t3 = new TimeCard { Employee = melinda, HoursWorked = 12, WorkDate = DateTime.Now }; TimeCard t4 = new TimeCard { Employee = melinda, HoursWorked = 9, WorkDate = DateTime.Now.AddDays(-7) }; db.Entry(sam).State = EntityState.Added; db.Entry(melinda).State = EntityState.Added; db.Entry(t1).State = EntityState.Added; db.Entry(t2).State = EntityState.Added; db.Entry(t3).State = EntityState.Added; db.Entry(t4).State = EntityState.Added; await db.SaveChangesAsync(); }
public ActionResult DeleteConfirmed(int id) { TimeCard timecard = db.TimeCards.Find(id); db.TimeCards.Remove(timecard); db.SaveChanges(); return(RedirectToAction("Index")); }
public TimeCard AddTimeCard(TimeCard time) { var ctx = HttpContext.Current; var currentData = ((TimeCard[])ctx.Cache[CacheKey]).ToList(); currentData.Add(time); ctx.Cache[CacheKey] = currentData.ToArray(); return(time); }
private void btnSave_Click(object sender, EventArgs e) { DialogResult retval = MessageBox.Show("Are you sure you want to replace the time file with these changes?", "Overrite Time File", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (retval == DialogResult.Yes) { TimeCard.Save(); MinimizeToTray(); } }
public static void Run( [QueueTrigger("timecard-writer")] TimeCard input, [CosmosDB( databaseName: "TimeRecorder", collectionName: "TimeCard", ConnectionStringSetting = "CosmosDBConnection")] out TimeCard output ) { output = input; }
public ActionResult Submit(TimeCard card) { if (this.ModelState.IsValid) { this.Session["card"] = card; X.Msg.Notify("Submit", "The card was successfully saved").Show(); } return(this.FormPanel(this.ModelState)); }
public MonthlyRecord GetMonthlyRecordOrDefault(TimeCard timeCard) { var targetMonth = new DateTime(timeCard.RecordDate.Year, timeCard.RecordDate.Month, 1); return(_container.GetItemLinqQueryable <MonthlyRecord>(allowSynchronousQueryExecution: true, requestOptions: new QueryRequestOptions { PartitionKey = new Microsoft.Azure.Cosmos.PartitionKey(timeCard.UserId) }) .AsEnumerable() .FirstOrDefault(r => r.ReportMonth == targetMonth) ?? new MonthlyRecord(targetMonth, timeCard.UserId)); }
public ActionResult Submit(TimeCard card) { if (this.ModelState.IsValid) { this.Session["card"] = card; X.Msg.Notify("Submit", "The card was successfully saved").Show(); } return this.FormPanel(this.ModelState); }
public void TestStartsOnSunday() { try { DateTime startingDay = new DateTime(2016, 6, 30); TimeCard t = new TimeCard(startingDay); } catch(Exception e) { Assert.IsInstanceOfType(e, typeof(ArgumentOutOfRangeException)); } }
public void Test2WeekPayPeriod() { DateTime startingDay = new DateTime(2016, 7, 3); TimeCard t = new TimeCard(startingDay); int arraySize = 0; for(int i = 0; i < t.PayPeriod.Length; i++) { Assert.AreEqual(t.PayPeriod[i].dateTime, startingDay.AddDays(i)); ++arraySize; } }
public ActionResult Submit(TimeCard card) { if (this.ModelState.IsValid) { X.Msg.Notify("Submit", "The card was successfully saved").Show(); } else { this.GetCmp<ModelStateStore>("ModelStateStore1").DataBind(); } return this.FormPanel(this.ModelState); }
public void TestOverTime() { DateTime startingDay = new DateTime(2016, 7, 3); TimeCard t = new TimeCard(startingDay); t.PayPeriod[4].SetHours(Day.TimeCodes.REGULAR, 15.0f); t.PayPeriod[6].SetHours(Day.TimeCodes.REGULAR, 8.0f); t.PayPeriod[2].SetHours(Day.TimeCodes.REGULAR, 20.0f); t.PayPeriod[3].SetHours(Day.TimeCodes.REGULAR, 5.0f); t.PayPeriod[10].SetHours(Day.TimeCodes.REGULAR, 12.0f); t.CalculateOverTime(); float expected = 8.0f; Assert.AreEqual(expected, t.OverTime); }
private void clockInBtn_Click(object sender, EventArgs e) { if (validateFormData()) { try { TimeCard tc = new TimeCard(); tc.Employee = this.currEmp; tc.WorkSite = (WorkSite)this.workSiteCmbo.SelectedItem; tc.Job = (Job)this.jobCmbo.SelectedItem; LaborService.LaborServiceClient proxy = new LaborService.LaborServiceClient(); //proxy.ClientCredentials.UserName.UserName = "******"; //proxy.ClientCredentials.UserName.Password = "******"; proxy.doClockIn(tc); } catch (FaultException ex) { MessageBox.Show(this, "Server Error occurred during processing of Clock In. See Server logs for details (i.e. Call Jim and cry for help!)", "Server Error"); } this.Close(); } }
public TimeSheetWindow() { card = new TimeCard(start); InitializeComponent(); SetupDays(0); }
public ActionResult Index() { var card = new TimeCard(); this.Session["card"] = card; return View(card); }