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));
        }
Exemplo n.º 3
0
        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());
        }