123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Linq.Expressions;
- using System.Windows.Controls;
- using System.Windows.Input;
- using Comal.Classes;
- using InABox.Configuration;
- using InABox.Core;
- namespace PRSDesktop
- {
- /// <summary>
- /// Interaction logic for InstallationPanel.xaml
- /// </summary>
- public partial class DeliveredOnSitePanel : UserControl, IPanel<DeliveryItem>
- {
- private bool _changing = false;
- private string _search = "";
- public DeliveredOnSiteSettings _settings;
- public DeliveredOnSitePanel()
- {
- InitializeComponent();
- }
- public bool IsReady { get; set; }
- public Dictionary<string, object[]> Selected()
- {
- return new Dictionary<string, object[]> { { typeof(DeliveryItem).EntityName(), Items.SelectedRows } };
- }
- public void Setup()
- {
- LoadSettings();
- Items.Refresh(true, false);
- }
- public void Shutdown()
- {
- }
- public void CreateToolbarButtons(IPanelHost host)
- {
- //host.CreateToolbarButton(new PanelAction() { Caption = "Design Report", OnExecute = DesignReport, Image = PRSDesktop.Resources.edit });
- //host.CreateToolbarButton(new PanelAction() { Caption = "View Report", OnExecute = ViewReport, Image = PRSDesktop.Resources.refresh });
- }
- public void Refresh()
- {
- Items.StartDate = StartPicker.SelectedDate.Value;
- Items.EndDate = EndPicker.SelectedDate.Value;
- Items.Search = Search.Text;
- Items.Refresh(false, true);
- }
- public string SectionName => "Delivered On Site";
- public DataModel DataModel(Selection selection)
- {
- var ids = Items.ExtractValues(x => x.ID, selection).ToArray();
- return new DeliveryItemDataModel(new Filter<DeliveryItem>(x => x.ID).InList(ids));
- }
- public event DataModelUpdateEvent OnUpdateDataModel;
- public void Heartbeat(TimeSpan time)
- {
- }
- private void LoadSettings()
- {
- _settings = new UserConfiguration<DeliveredOnSiteSettings>().Load();
- StartPicker.SelectedDate = _settings.StartDate;
- EndPicker.SelectedDate = _settings.EndDate;
- View.SelectedIndex = _settings.View;
- UpdateStartFinishDates();
- }
- private void SaveSettings()
- {
- if (IsReady)
- {
- _settings.View = View.SelectedIndex;
- _settings.StartDate = StartPicker.SelectedDate.Value;
- _settings.EndDate = EndPicker.SelectedDate.Value;
- new UserConfiguration<DeliveredOnSiteSettings>().Save(_settings);
- }
- }
- private Filter<DeliveryItem> SearchFilter(Expression<Func<DeliveryItem, object>> expression)
- {
- Filter<DeliveryItem> result = null;
- var comps = _search.Trim().Split(' ');
- foreach (var comp in comps)
- result = result == null ? new Filter<DeliveryItem>(expression).Contains(comp) : result.And(expression).Contains(comp);
- return result;
- }
- private void Items_OnReload(object sender, Filters<DeliveryItem> criteria, Columns<DeliveryItem> columns, ref SortOrder<DeliveryItem> sortby)
- {
- }
- public Type DataType()
- {
- return typeof(DeliveryItem);
- }
- private void UpdateStartEndPicker(DateTime start, DateTime end)
- {
- if (StartPicker == null || EndPicker == null)
- return;
- StartPicker.IsEnabled = false;
- EndPicker.IsEnabled = false;
- StartPicker.SelectedDate = start;
- EndPicker.SelectedDate = end;
- }
- private void ViewStyle_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- UpdateStartFinishDates();
- }
- private void UpdateStartFinishDates()
- {
- if (View.SelectedIndex == 0)
- {
- UpdateStartEndPicker(DateTime.Today, DateTime.Today);
- }
- else if (View.SelectedIndex == 1)
- {
- UpdateStartEndPicker(DateTime.Today.AddDays(0 - 1), DateTime.Today.AddDays(0 - 1));
- }
- else if (View.SelectedIndex == 2)
- {
- UpdateStartEndPicker(DateTime.Today.AddDays(0 - (double)DateTime.Today.DayOfWeek).AddDays(1),
- DateTime.Today.AddDays(0 - (double)DateTime.Today.DayOfWeek).AddDays(7));
- }
- else if (View.SelectedIndex == 3)
- {
- UpdateStartEndPicker(DateTime.Today.AddDays(0 - (double)DateTime.Today.DayOfWeek).AddDays(0 - 6),
- DateTime.Today.AddDays(0 - (double)DateTime.Today.DayOfWeek));
- }
- else if (View.SelectedIndex == 4)
- {
- UpdateStartEndPicker(new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1),
- new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddMonths(1).AddDays(0 - 1));
- }
- else if (View.SelectedIndex == 5)
- {
- UpdateStartEndPicker(new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddMonths(0 - 1),
- new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddDays(0 - 1));
- }
- else if (View.SelectedIndex == 6)
- {
- UpdateStartEndPicker(new DateTime(DateTime.Today.Year, 1, 1), new DateTime(DateTime.Today.Year, 1, 1).AddYears(1).AddDays(0 - 1));
- }
- else if (View.SelectedIndex == 7)
- {
- UpdateStartEndPicker(new DateTime(DateTime.Today.Year, 1, 1).AddYears(0 - 1), new DateTime(DateTime.Today.Year, 1, 1).AddDays(0 - 1));
- }
- else
- {
- StartPicker.IsEnabled = true;
- EndPicker.IsEnabled = true;
- }
- if (!IsReady)
- return;
- SaveSettings();
- Refresh();
- }
- private void SelectedDateChanged(object sender, SelectionChangedEventArgs e)
- {
- if (!StartPicker.IsEnabled || !EndPicker.IsEnabled || !IsReady)
- return;
- SaveSettings();
- Refresh();
- }
- private void Search_KeyUp(object sender, KeyEventArgs e)
- {
- if (string.IsNullOrWhiteSpace(Search.Text) || e.Key == Key.Return)
- {
- _search = Search.Text;
- Refresh();
- }
- }
- }
- }
|