Exemplo n.º 1
0
        public JobWorkersPage(JobFunctionView jobFunctionView)
        {
            InitializeComponent();
            passedJobFunctionView = jobFunctionView;

            Title = $"{jobFunctionView.JobName} on {jobFunctionView.DayMonthToGroupBy}";
        }
Exemplo n.º 2
0
        private async void JobFuncListViewPopulate()
        {
            bool existsAlreadyJobFuncV = false;

            jobFunctionViews.Clear();

            List <JobFunction> todaysJobFunctions = App.JobFunctions.Where(u => u.DateScheduled.Date == DateTime.Today).ToList();

            foreach (var item in todaysJobFunctions)
            {
                if (jobFunctionViews.Count > 0)
                {
                    existsAlreadyJobFuncV = jobFunctionViews.Where(u => u.JobID == item.JobID && u.DateScheduled == item.DateScheduled).Any();
                }

                if (!existsAlreadyJobFuncV)
                {
                    JobFunctionView jobFunctionView = new JobFunctionView(item.JobID, item.DateScheduled)
                    {
                        ID            = item.ID,
                        TaskID        = item.TaskID,
                        DateScheduled = item.DateScheduled,
                    };

                    bool laborAssigned = false;

                    if (App.Labors.Count > 0)
                    {
                        laborAssigned = App.Labors.Where(u => u.JobFunctionID == jobFunctionView.ID).Any();
                    }
                    if (laborAssigned)
                    {
                        jobFunctionView.WorkersAssigned = true;
                    }
                    else
                    {
                        jobFunctionView.WorkersAssigned = false;
                    }

                    jobFunctionViews.Add(jobFunctionView);
                }
            }

            if (jobFunctionViews.Count == 0)
            {
                await Application.Current.MainPage.DisplayAlert("Alert", "No Jobs Scheduled for today.", "OK");
            }
            listView.ItemsSource = jobFunctionViews;
            listView.DataSource.SortDescriptors.Clear();

            listView.DataSource.SortDescriptors.Add(new SortDescriptor {
                PropertyName = "HourToSortBy", Direction = Syncfusion.DataSource.ListSortDirection.Ascending
            });
        }
        private async void callItem_Clicked(object sender, EventArgs e)
        {
            if (JobFuncListView.SelectedItem != null)
            {
                string number = string.Empty;

                JobFunctionView jobViewSelected = JobFuncListView.SelectedItem as JobFunctionView;
                Job             jobSelected     = App.Jobs.Where(u => u.ID == jobViewSelected.JobID).FirstOrDefault();
                Customer        custSelected    = App.Customers.Where(u => u.ID == jobSelected.CustomerID).FirstOrDefault();

                if (custSelected.CustomerPhone2 != null)
                {
                    bool choice = await Application.Current.MainPage.DisplayAlert("Selection", $"Choose which number", $"{custSelected.CustomerPhone}", $"{custSelected.CustomerPhone2}");

                    if (choice)
                    {
                        number = custSelected.CustomerPhone;
                    }
                    else
                    {
                        number = custSelected.CustomerPhone2;
                    }
                }
                else
                {
                    number = custSelected.CustomerPhone;
                }

                try
                {
                    PhoneDialer.Open(number);
                }
                catch (ArgumentNullException anEx)
                {
                    await Application.Current.MainPage.DisplayAlert("Error", $"{anEx}", "OK");

                    // Number was null or white space
                }
                catch (FeatureNotSupportedException ex)
                {
                    // Phone Dialer is not supported on this device.
                    await Application.Current.MainPage.DisplayAlert("Error", $"{ex}", "OK");
                }
                catch (Exception ex)
                {
                    await Application.Current.MainPage.DisplayAlert("Error", $"{ex}", "OK");

                    // Other error has occurred.
                }
            }
        }
        private async void navigateItem_Clicked(object sender, EventArgs e)
        {
            if (JobFuncListView.SelectedItem != null)
            {
                JobFunctionView jobViewSelected = JobFuncListView.SelectedItem as JobFunctionView;
                Job             jobSelected     = App.Jobs.Where(u => u.ID == jobViewSelected.JobID).FirstOrDefault();


                if (Device.RuntimePlatform == Device.iOS)
                {
                    //https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html;
                    await Launcher.OpenAsync($"http://maps.apple.com/?q={jobSelected.JobStreetAddress}+{jobSelected.JobCity}+{jobSelected.JobState}");
                }
                else if (Device.RuntimePlatform == Device.Android)
                {
                    // open the maps app directly
                    await Launcher.OpenAsync($"geo:0,0?q={jobSelected.JobStreetAddress}+{jobSelected.JobCity}+{jobSelected.JobState}");
                }
                else if (Device.RuntimePlatform == Device.UWP)
                {
                    await Launcher.OpenAsync($"http://maps.apple.com/?q={jobSelected.JobStreetAddress}+{jobSelected.JobCity}+{jobSelected.JobState}");
                }
            }
        }
        //cant make the joins between jobs, tasks and labor to make jobfunction
        private void JobFuncListViewPopulate()
        {
            List <JobFunction> jobfunctionsForThisUser = new List <JobFunction>()
            {
            };
            bool existsAlreadyJobFuncV = false;

            if (App.Customers.Count > 0)
            {
                jobFunctionViews.Clear();

                var thisUsersLabors = App.Labors.Where(u => u.EmployeeID == App.user.ID).ToList();

                foreach (Labor labor in thisUsersLabors)
                {
                    jobfunctionsForThisUser = App.JobFunctions.Where(u => u.ID == labor.JobFunctionID).ToList();
                }

                foreach (var item in jobfunctionsForThisUser)
                {
                    if (jobFunctionViews.Count > 0)
                    {
                        existsAlreadyJobFuncV = jobFunctionViews.Where(u => u.JobID == item.JobID && u.DateScheduled == item.DateScheduled).Any();
                    }

                    if (!existsAlreadyJobFuncV)
                    {
                        JobFunctionView jobFunctionView = new JobFunctionView(item.JobID, item.DateScheduled)
                        {
                            ID            = item.ID,
                            TaskID        = item.TaskID,
                            DateScheduled = item.DateScheduled,
                        };

                        jobFunctionViews.Add(jobFunctionView);
                    }
                }

                JobFuncListView.ItemsSource = jobFunctionViews;
                JobFuncListView.DataSource.SortDescriptors.Clear();

                JobFuncListView.DataSource.GroupDescriptors.Clear();
                JobFuncListView.DataSource.GroupDescriptors.Add(new GroupDescriptor()
                {
                    PropertyName = "YearToGroupBy",
                    KeySelector  = (object obj1) =>
                    {
                        var item = (obj1 as JobFunctionView);
                        return(item.YearToGroupBy);
                    },
                });
                JobFuncListView.DataSource.GroupDescriptors.Add(new GroupDescriptor()
                {
                    PropertyName = "MonthToGroupBy",
                    KeySelector  = (object obj1) =>
                    {
                        var item = (obj1 as JobFunctionView);
                        return(item.MonthToGroupBy);
                    },
                });
                JobFuncListView.DataSource.GroupDescriptors.Add(new GroupDescriptor()
                {
                    PropertyName = "DayMonthToGroupBy",
                    KeySelector  = (object obj1) =>
                    {
                        var item = (obj1 as JobFunctionView);
                        return(item.DayMonthToGroupBy);
                    },
                });
                JobFuncListView.DataSource.SortDescriptors.Add(new SortDescriptor {
                    PropertyName = "YearToGroupBy", Direction = Syncfusion.DataSource.ListSortDirection.Ascending
                });
                JobFuncListView.DataSource.SortDescriptors.Add(new SortDescriptor {
                    PropertyName = "MonthToGroupBy", Direction = Syncfusion.DataSource.ListSortDirection.Ascending
                });
                JobFuncListView.DataSource.SortDescriptors.Add(new SortDescriptor {
                    PropertyName = "DayMonthToGroupBy", Direction = Syncfusion.DataSource.ListSortDirection.Ascending
                });
                JobFuncListView.DataSource.SortDescriptors.Add(new SortDescriptor {
                    PropertyName = "HourToSortBy", Direction = Syncfusion.DataSource.ListSortDirection.Ascending
                });
            }
        }
        //cant make the joins between jobs, tasks and labor to make jobfunction
        private void JobFuncListViewPopulate()
        {
            bool existsAlreadyJobFuncV = false;

            if (App.Customers.Count > 0)
            {
                jobFunctionViews.Clear();
                foreach (var item in App.JobFunctions)
                {
                    if (jobFunctionViews.Count > 0)
                    {
                        existsAlreadyJobFuncV = jobFunctionViews.Where(u => u.JobID == item.JobID && u.DateScheduled == item.DateScheduled).Any();
                    }

                    if (!existsAlreadyJobFuncV)
                    {
                        JobFunctionView jobFunctionView = new JobFunctionView(item.JobID, item.DateScheduled)
                        {
                            ID            = item.ID,
                            TaskID        = item.TaskID,
                            DateScheduled = item.DateScheduled,
                        };

                        bool laborAssigned = false;

                        if (App.Labors.Count > 0)
                        {
                            laborAssigned = App.Labors.Where(u => u.JobFunctionID == jobFunctionView.ID).Any();
                        }
                        if (laborAssigned)
                        {
                            jobFunctionView.WorkersAssigned = true;
                        }
                        else
                        {
                            jobFunctionView.WorkersAssigned = false;
                        }


                        jobFunctionViews.Add(jobFunctionView);
                    }
                }

                JobFuncListView.ItemsSource = jobFunctionViews;
                JobFuncListView.DataSource.SortDescriptors.Clear();

                JobFuncListView.DataSource.GroupDescriptors.Clear();
                JobFuncListView.DataSource.GroupDescriptors.Add(new GroupDescriptor()
                {
                    PropertyName = "YearToGroupBy",
                    KeySelector  = (object obj1) =>
                    {
                        var item = (obj1 as JobFunctionView);
                        return(item.YearToGroupBy);
                    },
                });
                JobFuncListView.DataSource.GroupDescriptors.Add(new GroupDescriptor()
                {
                    PropertyName = "MonthToGroupBy",
                    KeySelector  = (object obj1) =>
                    {
                        var item = (obj1 as JobFunctionView);
                        return(item.MonthToGroupBy);
                    },
                });
                JobFuncListView.DataSource.GroupDescriptors.Add(new GroupDescriptor()
                {
                    PropertyName = "DayMonthToGroupBy",
                    KeySelector  = (object obj1) =>
                    {
                        var item = (obj1 as JobFunctionView);
                        return(item.DayMonthToGroupBy);
                    },
                });
                JobFuncListView.DataSource.SortDescriptors.Add(new SortDescriptor {
                    PropertyName = "YearToGroupBy", Direction = Syncfusion.DataSource.ListSortDirection.Ascending
                });
                JobFuncListView.DataSource.SortDescriptors.Add(new SortDescriptor {
                    PropertyName = "MonthToGroupBy", Direction = Syncfusion.DataSource.ListSortDirection.Ascending
                });
                JobFuncListView.DataSource.SortDescriptors.Add(new SortDescriptor {
                    PropertyName = "DayMonthToGroupBy", Direction = Syncfusion.DataSource.ListSortDirection.Ascending
                });
                JobFuncListView.DataSource.SortDescriptors.Add(new SortDescriptor {
                    PropertyName = "HourToSortBy", Direction = Syncfusion.DataSource.ListSortDirection.Ascending
                });
            }
        }
 public TaskPage(JobFunctionView jobFunctionView)
 {
     InitializeComponent();
     passedJobFunctionView = jobFunctionView;
     Title = $"{passedJobFunctionView.JobName}";
 }
Exemplo n.º 8
0
        private async System.Threading.Tasks.Task CalendarPopulate()
        {
            calendar.DataSource = null;
            bool existsAlreadyJobFuncV = false;

            if (App.Customers.Count > 0)
            {
                jobFunctionViews.Clear();
                CalendarInlineEvents.Clear();
                calendar.DataSource = null;

                foreach (var item in App.JobFunctions)
                {
                    if (jobFunctionViews.Count > 0)
                    {
                        existsAlreadyJobFuncV = jobFunctionViews.Where(u => u.JobID == item.JobID && u.DateScheduled == item.DateScheduled).Any();
                    }

                    if (!existsAlreadyJobFuncV)
                    {
                        JobFunctionView jobFunctionView = new JobFunctionView(item.JobID, item.DateScheduled)
                        {
                            ID            = item.ID,
                            TaskID        = item.TaskID,
                            DateScheduled = item.DateScheduled,
                        };

                        jobFunctionViews.Add(jobFunctionView);
                    }
                }

                foreach (JobFunctionView item in jobFunctionViews)
                {
                    CalendarInlineEvent workEvents = new CalendarInlineEvent();

                    workEvents.StartTime = item.DateScheduled;
                    workEvents.EndTime   = item.DateScheduled.AddMinutes(30);
                    var findTaskName = App.Tasks.Where(u => u.ID == item.TaskID).FirstOrDefault();
                    workEvents.Subject = item.JobName + " " + findTaskName.TaskName;
                    workEvents.Color   = (Color)Application.Current.Resources["buttonscolor"];

                    CalendarInlineEvents.Add(workEvents);
                }

                if (App.Requests.Count > 0)
                {
                    foreach (Request item in App.Requests)
                    {
                        if (item.ReasonForRequest == "Blocked Date")
                        {
                            CalendarInlineEvent blockedEvents = new CalendarInlineEvent();

                            blockedEvents.StartTime = item.RequestDate.Date;
                            blockedEvents.EndTime   = item.RequestDate.AddDays(1).AddHours(-1);
                            blockedEvents.IsAllDay  = true;
                            blockedEvents.Subject   = "Date blocked from selection and requests off for employees.";
                            blockedEvents.Color     = Color.Black;

                            CalendarInlineEvents.Add(blockedEvents);
                        }
                        else
                        {
                            CalendarInlineEvent employeeEvents = new CalendarInlineEvent();

                            employeeEvents.StartTime = item.RequestDate.Date;
                            employeeEvents.EndTime   = item.RequestDate.AddDays(1).AddHours(-1);
                            employeeEvents.IsAllDay  = true;
                            if (item.Approved == true)
                            {
                                employeeEvents.Subject = item.EmployeeName + " " + item.ReasonForRequest + " - Approved";
                                employeeEvents.Color   = (Color)Application.Current.Resources["headerfootercolor"];
                            }
                            else
                            {
                                employeeEvents.Subject = item.EmployeeName + " " + item.ReasonForRequest + "- Not Approved";
                                employeeEvents.Color   = (Color)Application.Current.Resources["highlightscolor"];
                            }
                            CalendarInlineEvents.Add(employeeEvents);
                        }
                    }
                }

                calendar.DataSource = CalendarInlineEvents;
            }
        }