| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- using Comal.Classes;
- using Comal.Stores;
- using InABox.Core;
- using PRSStores.AssignmentCosting;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace PRSStores;
- internal class TimeSheetStore : BaseStore<TimeSheet>
- {
- protected override void AfterSave(TimeSheet entity)
- {
- base.AfterSave(entity);
- UpdateAssignmentCosting(entity);
- }
- private void UpdateAssignmentCosting(TimeSheet entity)
- {
- if(!entity.HasOriginalValue(x => x.Approved)
- && !entity.HasOriginalValue(x => x.ApprovedStart)
- && !entity.HasOriginalValue(x => x.ApprovedFinish)
- && !entity.HasOriginalValue(x => x.Start)
- && !entity.HasOriginalValue(x => x.Finish)
- && !entity.HasOriginalValue(x => x.EmployeeLink.ID)
- && !entity.HasOriginalValue(x => x.Date))
- {
- // No change we care about.
- return;
- }
- var changedEmployee = entity.TryGetOriginalValue(x => x.EmployeeLink.ID, out var employeeID);
- if (!changedEmployee)
- {
- employeeID = entity.EmployeeLink.ID;
- }
- var changedDate = entity.TryGetOriginalValue(x => x.Date, out var date);
- if (!changedDate)
- {
- date = entity.Date;
- }
- if(changedEmployee || changedDate)
- {
- AssignmentCostingUtils.CheckAssignmentCosts(this, date, employeeID);
- }
- AssignmentCostingUtils.CheckAssignmentCosts(this, entity.Date, entity.EmployeeLink.ID);
- }
- }
|