|  | @@ -15,6 +15,7 @@ using InABox.Wpf;
 | 
	
		
			
				|  |  |  using PRS.Shared;
 | 
	
		
			
				|  |  |  using Syncfusion.UI.Xaml.Kanban;
 | 
	
		
			
				|  |  |  using System.ComponentModel;
 | 
	
		
			
				|  |  | +using PRSDesktop.Panels.Timesheets;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  namespace PRSDesktop
 | 
	
		
			
				|  |  |  {
 | 
	
	
		
			
				|  | @@ -537,10 +538,32 @@ namespace PRSDesktop
 | 
	
		
			
				|  |  |              else
 | 
	
		
			
				|  |  |                  onoff.Header = "Clock Employee Out of PRS";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            var show = menu.Items[4] as MenuItem;
 | 
	
		
			
				|  |  | +            var addNote = (menu.Items[4] as MenuItem)!;
 | 
	
		
			
				|  |  | +            var editNotes = (menu.Items[5] as MenuItem)!;
 | 
	
		
			
				|  |  | +            if (Security.CanEdit<EmployeeNote>())
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                addNote.Visibility = Visibility.Visible;
 | 
	
		
			
				|  |  | +                editNotes.Visibility = Visibility.Visible;
 | 
	
		
			
				|  |  | +                editNotes.Header = "Edit Notes";
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            else
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                addNote.Visibility = Visibility.Collapsed;
 | 
	
		
			
				|  |  | +                if (Security.CanView<EmployeeNote>())
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    editNotes.Visibility = Visibility.Visible;
 | 
	
		
			
				|  |  | +                    editNotes.Header = "View Notes";
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                else
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    editNotes.Visibility = Visibility.Collapsed;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var show = menu.Items[7] as MenuItem;
 | 
	
		
			
				|  |  |              show.Visibility = !model.Active ? Visibility.Visible : Visibility.Collapsed;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            var hide = menu.Items[5] as MenuItem;
 | 
	
		
			
				|  |  | +            var hide = menu.Items[8] as MenuItem;
 | 
	
		
			
				|  |  |              hide.Visibility = model.Active ? Visibility.Visible : Visibility.Collapsed;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -676,7 +699,7 @@ namespace PRSDesktop
 | 
	
		
			
				|  |  |              if (row != null)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  var emp = new Employee { ID = id, ShowOnInOutBoard = include };
 | 
	
		
			
				|  |  | -                new Client<Employee>().Save(emp, include ? "Added To" : "Removed From" + " In/Out Board", (o, e) => { });
 | 
	
		
			
				|  |  | +                Client.Save(emp, include ? "Added To" : "Removed From" + " In/Out Board", (o, e) => { });
 | 
	
		
			
				|  |  |                  row.Set<Employee, bool>(x => x.ShowOnInOutBoard, include);
 | 
	
		
			
				|  |  |                  model.Active = include;
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -689,5 +712,42 @@ namespace PRSDesktop
 | 
	
		
			
				|  |  |              UpdateInOutStatus(model, false);
 | 
	
		
			
				|  |  |              FilterKanbans();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        private void AddNote_Click(object sender, RoutedEventArgs e)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            if (sender is not FrameworkElement el || el.Tag is not AttendanceKanban model) return;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var employeeID = Guid.Parse(model.ID);
 | 
	
		
			
				|  |  | +            var note = "";
 | 
	
		
			
				|  |  | +            if(TextBoxDialog.Execute("Edit note:", ref note))
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                var employeeNote = new EmployeeNote
 | 
	
		
			
				|  |  | +                {
 | 
	
		
			
				|  |  | +                    Note = note,
 | 
	
		
			
				|  |  | +                    Date = DateTime.Now
 | 
	
		
			
				|  |  | +                };
 | 
	
		
			
				|  |  | +                employeeNote.Employee.ID = employeeID;
 | 
	
		
			
				|  |  | +                Client.Save(employeeNote, "");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        private void EditNotes_Click(object sender, RoutedEventArgs e)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            if (sender is not FrameworkElement el || el.Tag is not AttendanceKanban model) return;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var employeeID = Guid.Parse(model.ID);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var grid = new TimesheetNotesGrid
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                EmployeeID = employeeID,
 | 
	
		
			
				|  |  | +                Date = DateTime.Today
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  | +            grid.Refresh(true, true);
 | 
	
		
			
				|  |  | +            var dlg = new DynamicContentDialog(grid, buttonsVisible: false)
 | 
	
		
			
				|  |  | +            {
 | 
	
		
			
				|  |  | +                Title = "Edit Notes"
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  | +            dlg.ShowDialog();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |