| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using System;
- using System.Linq;
- using Comal.Classes;
- using InABox.Core;
- using InABox.DynamicGrid;
- namespace PRSDesktop;
- public abstract class BaseEmployeeRosterItemGrid<TParent,TItem> : DynamicOneToManyGrid<TParent,TItem>
- where TParent : Entity, IRemotable, IPersistent, new()
- where TItem : Entity, IRemotable, IPersistent, IEmployeeRosterItem, new()
- {
- protected override void DoReconfigure(FluentList<DynamicGridOption> options)
- {
- base.DoReconfigure(options);
- options.Add(DynamicGridOption.DirectEdit);
- options.Remove(DynamicGridOption.SelectColumns);
- }
- protected override BaseEditor? GetEditor(object item, DynamicGridColumn column)
- {
- string[] splits = {
- "SplitShift",
- "Start2",
- "Finish2",
- "Break2"
- };
-
- if (!Security.IsAllowed<AllowEmployeeRosterSplitShifts>() && splits.Contains(column.ColumnName))
- return new NullEditor();
- return base.GetEditor(item, column);
- }
-
- protected override DynamicGridColumns LoadColumns()
- {
- var result = new DynamicGridColumns();
- result.Add<TItem,String>(x => x.Description, 0, "Description", "", Alignment.MiddleCenter);
-
- result.Add<TItem,bool>(x => x.Enabled,50, "On?", "", Alignment.MiddleCenter);
- result.Add<TItem,TimeSpan>(x => x.Start, 80, "Start", "hh:mm", Alignment.MiddleCenter);
- result.Add<TItem,TimeSpan>(x => x.Finish, 80, "Finish", "hh:mm", Alignment.MiddleCenter);
- result.Add<TItem,TimeSpan>(x => x.Break, 100, "Break", "hh:mm", Alignment.MiddleCenter);
-
- if (Security.IsAllowed<AllowEmployeeRosterSplitShifts>())
- {
- result.Add<TItem,bool>(x => x.Enabled,50, "2nd?", "", Alignment.MiddleCenter);
- result.Add<TItem,TimeSpan>(x => x.Start2, 80, "Start", "hh:mm", Alignment.MiddleCenter);
- result.Add<TItem,TimeSpan>(x => x.Finish2, 80, "Finish", "hh:mm", Alignment.MiddleCenter);
- result.Add<TItem,TimeSpan>(x => x.Finish2, 100, " Break", "hh:mm", Alignment.MiddleCenter);
- }
-
- result.Add<TItem,double>(x => x.Duration, 60, "Total", "F2", Alignment.MiddleCenter);
- result.Add<TItem,Guid>(x => x.Overtime.ID, 150, "Overtime", "", Alignment.MiddleLeft);
-
- return result;
- }
-
- public override TItem CreateItem()
- {
- var result = base.CreateItem();
- int iDay = 0;
- foreach (var item in Items)
- item.Day = ++iDay;
- SaveItems(Items.ToArray());
- result.Day = ++iDay;
- return result;
- }
- public override void DeleteItems(params CoreRow[] rows)
- {
- base.DeleteItems(rows);
- int iDay = 0;
- foreach (var item in Items)
- item.Day = ++iDay;
- SaveItems(Items.ToArray());
- }
- }
|