public JobWorkersPage(JobFunctionView jobFunctionView) { InitializeComponent(); passedJobFunctionView = jobFunctionView; Title = $"{jobFunctionView.JobName} on {jobFunctionView.DayMonthToGroupBy}"; }
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}"; }
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; } }