private static PwsTimecardDetail GenerateNewTimeCard() { //Create a new time card - WIP PwsTimecardDetail pwsTimecardDetail = new PwsTimecardDetail(); //For a new timecard to be valid the below must be set as a minimum pwsTimecardDetail.WorkMinutes = 450; pwsTimecardDetail.WorkDate = DateTime.Parse("2019-04-24T00:00:00Z").ToUniversalTime(); pwsTimecardDetail.CardStatus = "D"; //Also needs the below, each needing at least one of the ID types PwsProjectRef pwsProjectRef = new PwsProjectRef(); pwsProjectRef.ProjectCode = ""; PwsProjectRateTypeRef pwsProjectRateTypeRef = new PwsProjectRateTypeRef(); pwsProjectRateTypeRef.ExternalSystemIdentifier = ""; PwsProjectTaskRef pwsProjectTaskRef = new PwsProjectTaskRef(); pwsProjectTaskRef.ExternalSystemIdentifier = ""; PwsProjectRoleRef pwsProjectRoleRef = new PwsProjectRoleRef(); pwsProjectRoleRef.ExternalSystemIdentifier = ""; pwsTimecardDetail.ProjectIdentity = pwsProjectRef; pwsTimecardDetail.ProjectRateTypeIdentity = pwsProjectRateTypeRef; pwsTimecardDetail.ProjectTaskIdentity = pwsProjectTaskRef; pwsTimecardDetail.RoleIdentity = pwsProjectRoleRef; return(pwsTimecardDetail); }
private static PwsSaveTimeCardsRs SaveTimeCard(string sessionKey, PwsTimecardDetail timeCard, PwsUserElement userDetails) { PwsTimecardDetail[] timeCards = { timeCard }; PwsSaveTimeCardsRq timeCardsRq = new PwsSaveTimeCardsRq(); timeCardsRq.SessionTicket = sessionKey; timeCardsRq.SaveTimeCards = timeCards; timeCardsRq.ResourceIdentity = userDetails.ResourceIdentity; timeCardsRq.StartDate = DateTime.Parse("2019-04-24T00:00:00Z").ToUniversalTime(); timeCardsRq.EndDate = DateTime.Parse("2019-04-25T00:00:00Z").ToUniversalTime(); return(pwsProjectorServices.PwsSaveTimeCards(timeCardsRq)); }
private PwsTimecardDetail[] CreateTimeCards(Person person, string sessionTicket) { List <PwsTimecardDetail> timecardDetails = new List <PwsTimecardDetail>(); foreach (Job job in person.Jobs) { if (job.SoldHours > 0) { PwsProjectElement pwsProject = GetPwsProject(job.Code, sessionTicket); if (pwsProject == null) { string commentCode = CheckCommentCodeValid(job.Comment); if (commentCode != null) { pwsProject = GetPwsProject(commentCode, sessionTicket); } else { errors.Add(new ErrorOccurance() { Error = new Error() { Type = ErrorType.IncorrectFormatFromComment, Description = "Comment did not match Regex" }, Person = person }); } } if (pwsProject != null) { PwsTimecardDetail timeCard = new PwsTimecardDetail(); timeCard.CardStatus = "D"; timeCard.ProjectIdentity = new PwsProjectRef() { ProjectUid = pwsProject.ProjectDetail.ProjectUid }; timeCard.ProjectRateTypeIdentity = new PwsProjectRateTypeRef() { ProjectRateTypeUid = pwsProject.RateTypes[0].ProjectRateTypeDetail.ProjectRateTypeUid }; timeCard.ProjectTaskIdentity = new PwsProjectTaskRef() { ProjectTaskUid = pwsProject.Tasks[0].ProjectTaskDetail.ProjectTaskUid }; timeCard.WorkMinutes = (int)(job.SoldHours * 60); //Date details need figured out and added here timecardDetails.Add(timeCard); } else { errors.Add(new ErrorOccurance() { Error = new Error() { Type = ErrorType.JobNotOnProjectorFromComment, Description = "Comment valid but not on Projector" }, Person = person }); } } else if (job.UnutilisedHours > 0) { PwsProjectElement pwsProject = GetPwsProject("PP002236-001", sessionTicket); PwsTimecardDetail timeCard = new PwsTimecardDetail(); timeCard.CardStatus = "D"; timeCard.ProjectIdentity = new PwsProjectRef() { ProjectUid = pwsProject.ProjectDetail.ProjectUid }; timeCard.ProjectRateTypeIdentity = new PwsProjectRateTypeRef() { ProjectRateTypeUid = pwsProject.RateTypes[0].ProjectRateTypeDetail.ProjectRateTypeUid }; timeCard.ProjectTaskIdentity = new PwsProjectTaskRef() { ProjectTaskUid = pwsProject.Tasks[0].ProjectTaskDetail.ProjectTaskUid }; timeCard.WorkMinutes = (int)(job.UnutilisedHours * 60); //Date details need figured out and added here timecardDetails.Add(timeCard); } } return(timecardDetails.ToArray()); }