public virtual void EPCompanyTreeMaster_RowDeleting(PXCache cache, PXRowDeletingEventArgs e) { EPCompanyTreeMaster row = (EPCompanyTreeMaster)e.Row; if (row == null) { return; } EPAssignmentRoute route = PXSelect <EPAssignmentRoute, Where <EPAssignmentRoute.workgroupID, Equal <Required <EPCompanyTreeMaster.workGroupID> > > > . Select(this, row.WorkGroupID); if (route != null) { EPAssignmentMap map = PXSelect <EPAssignmentMap, Where <EPAssignmentMap.assignmentMapID, Equal <Required <EPAssignmentRoute.assignmentMapID> > > > . Select(this, route.AssignmentMapID); if (map == null) { throw new PXException(Objects.EP.Messages.WorkgroupIsInUse); } throw new PXException(Objects.EP.Messages.WorkgroupIsInUseAtAssignmentMap, map.Name); } }
public virtual IEnumerable Right(PXAdapter adapter) { EPCompanyTreeMaster current = Item.SelectWindowed(0, 1, CurrentSelected.FolderID); if (current != null) { int currentItemIndex; PXResultset <EPCompanyTreeMaster> items = SelectSiblings(current.ParentWGID, current.WorkGroupID, out currentItemIndex); if (currentItemIndex > 0) { EPCompanyTreeMaster prev = items[currentItemIndex - 1]; items = SelectSiblings(prev.WorkGroupID); int index = 1; if (items.Count > 0) { EPCompanyTreeMaster last = items[items.Count - 1]; index = (last.SortOrder ?? 0) + 1; } current = (EPCompanyTreeMaster)Items.Cache.CreateCopy(current); current.ParentWGID = prev.WorkGroupID; current.SortOrder = index; Items.Update(current); } } return(adapter.Get()); }
private bool VerifyForUsing(EPCompanyTreeMaster row) { string res = ""; foreach (EPAssignmentMap map in PXSelectJoin <EPAssignmentMap, InnerJoin <EPRule, On <EPRule.assignmentMapID, Equal <EPAssignmentMap.assignmentMapID> > >, Where <EPRule.workgroupID, Equal <Required <EPRule.workgroupID> > > > . Select(this, row.WorkGroupID)) { if (map == null) { throw new PXException(Objects.EP.Messages.WorkgroupIsInUse); } string MapType = ""; if (map.MapType == EPMapType.Assignment) { MapType = Objects.EP.Messages.Assignment; } else { MapType = Objects.EP.Messages.Approval; } res = res + string.Format(Objects.EP.Messages.WorkgroupIsInUseAtAssignmentMap, row.Description, MapType, map.Name) + "\n"; } if (!String.IsNullOrEmpty(res)) { throw new PXException(res); } return(true); }
private void insertHRecords(EPCompanyTreeMaster record) { int level = -1; foreach (EPCompanyTreeH item in parents.Select(record.ParentWGID)) { if (level == -1) { level = item.WorkGroupLevel.GetValueOrDefault() + 1; } EPCompanyTreeH ins = (EPCompanyTreeH)treeH.Cache.CreateCopy(item); ins.WorkGroupID = record.WorkGroupID; ins.WorkGroupLevel = level; ins.WaitTime += record.WaitTime; treeH.Cache.Insert(ins); } EPCompanyTreeH self = new EPCompanyTreeH(); self.WorkGroupID = record.WorkGroupID; self.WorkGroupLevel = level; self.ParentWGID = record.WorkGroupID; self.ParentWGLevel = level; self.WaitTime = 0; treeH.Cache.Insert(self); }
protected virtual void EPCompanyTreeMaster_RowInserted(PXCache cache, PXRowInsertedEventArgs e) { EPCompanyTreeMaster row = e.Row as EPCompanyTreeMaster; if (row == null) { return; } insertHRecords(row); }
protected virtual void EPCompanyTreeMaster_ParentWGID_FieldDefaulting(PXCache sender, PXFieldDefaultingEventArgs e) { EPCompanyTreeMaster row = e.Row as EPCompanyTreeMaster; if (row == null) { return; } e.NewValue = this.CurrentSelected.FolderID ?? 0; e.Cancel = true; }
protected virtual void EPCompanyTreeMaster_Description_FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e) { EPCompanyTreeMaster item = PXSelect <EPCompanyTreeMaster, Where <EPCompanyTreeMaster.description, Equal <Required <EPCompanyTreeMaster.description> > > > . SelectWindowed(this, 0, 1, e.NewValue); if (item != null) { throw new PXSetPropertyException(ErrorMessages.DuplicateEntryAdded, "Description"); } }
protected virtual void EPCompanyTreeMaster_RowDeleted(PXCache cache, PXRowDeletedEventArgs e) { EPCompanyTreeMaster row = e.Row as EPCompanyTreeMaster; if (row == null || row.WorkGroupID == null) { return; } deleteHRecords(row.WorkGroupID); deleteRecurring(row); }
protected virtual void EPCompanyTreeMaster_RowSelected(PXCache sender, PXRowSelectedEventArgs e) { EPCompanyTreeMaster row = e.Row as EPCompanyTreeMaster; if (row == null) { return; } PXUIFieldAttribute.SetEnabled <EPCompanyTree.waitTime>(sender, row, row.BypassEscalation != true && row.ParentWGID != 0); PXUIFieldAttribute.SetEnabled <EPCompanyTree.bypassEscalation>(sender, row, row.ParentWGID != 0); }
protected virtual void EPCompanyTreeMaster_BypassEscalation_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e) { EPCompanyTreeMaster row = e.Row as EPCompanyTreeMaster; if (row == null) { return; } if (row.BypassEscalation == true) { row.WaitTime = 0; } }
private bool VerifyRecurringBeforeDelete(EPCompanyTreeMaster map) { if (map != null) { foreach (EPCompanyTreeMaster child in PXSelect <EPCompanyTreeMaster, Where <EPCompanyTreeMaster.parentWGID, Equal <Required <EPCompanyTreeMaster.parentWGID> > > > .Select(this, map.WorkGroupID)) { VerifyRecurringBeforeDelete(child); } } return(VerifyForUsing(map)); }
protected virtual void EPCompanyTreeMaster_RowUpdated(PXCache cache, PXRowUpdatedEventArgs e) { EPCompanyTreeMaster row = e.Row as EPCompanyTreeMaster, oldRow = e.OldRow as EPCompanyTreeMaster; if (row == null || oldRow == null) { return; } if (row.ParentWGID != oldRow.ParentWGID) { updateHRecordParent(row); } }
private void deleteRecurring(EPCompanyTreeMaster map) { if (map != null) { foreach (EPCompanyTreeMaster child in PXSelect <EPCompanyTreeMaster, Where <EPCompanyTreeMaster.parentWGID, Equal <Required <EPCompanyTreeMaster.workGroupID> > > > .Select(this, map.WorkGroupID)) { deleteRecurring(child); } Items.Cache.Delete(map); } }
private void updateHRecordParent(EPCompanyTreeMaster item) { PXResultset <EPCompanyTreeH> newParents = parents.Select(item.ParentWGID); int parentLevel = -1; if (newParents.Count > 0) { EPCompanyTreeH newParent = newParents[newParents.Count - 1]; parentLevel = newParent.WorkGroupLevel.GetValueOrDefault(); } int levelDelta = 0; EPCompanyTreeH root = null; foreach (EPCompanyTreeH child in childrens.Select(item.WorkGroupID)) { if (root == null) { root = (EPCompanyTreeH)treeH.Cache.CreateCopy(child); levelDelta = parentLevel + 1 - child.WorkGroupLevel.GetValueOrDefault(); } foreach (EPCompanyTreeH parent in parents.Select(child.WorkGroupID)) { if (parent.WorkGroupID != parent.ParentWGID && parent.ParentWGLevel < root.WorkGroupLevel) { treeH.Cache.Delete(parent); } else { EPCompanyTreeH upd = (EPCompanyTreeH)treeH.Cache.CreateCopy(parent); upd.WorkGroupLevel += levelDelta; upd.ParentWGLevel += levelDelta; treeH.Cache.Update(upd); } } foreach (EPCompanyTreeH parent in newParents) { EPCompanyTreeH ins = (EPCompanyTreeH)treeH.Cache.CreateCopy(parent); ins.WorkGroupID = child.WorkGroupID; ins.WorkGroupLevel = child.WorkGroupLevel; ins.WaitTime += child.WaitTime + item.WaitTime; treeH.Cache.Insert(ins); } } }
public virtual IEnumerable Up(PXAdapter adapter) { EPCompanyTreeMaster curr = Folders.Current; EPCompanyTreeMaster prev = PXSelect <EPCompanyTreeMaster, Where <EPCompanyTreeMaster.parentWGID, Equal <Required <EPCompanyTreeMaster.parentWGID> >, And <EPCompanyTreeMaster.sortOrder, Less <Required <EPCompanyTreeMaster.parentWGID> > > >, OrderBy <Desc <EPCompanyTreeMaster.sortOrder> > > .SelectSingleBound(this, null, Folders.Current.ParentWGID, Folders.Current.SortOrder); if (prev != null && curr != null) { int temp = (int)curr.SortOrder; curr.SortOrder = prev.SortOrder; prev.SortOrder = temp; Caches[typeof(EPCompanyTreeMaster)].Update(prev); Caches[typeof(EPCompanyTreeMaster)].Update(curr); } return(adapter.Get()); }
public virtual IEnumerable Down(PXAdapter adapter) { EPCompanyTreeMaster curr = Folders.Current; EPCompanyTreeMaster next = PXSelect <EPCompanyTreeMaster, Where <EPCompanyTreeMaster.parentWGID, Equal <Required <EPCompanyTreeMaster.parentWGID> >, And <EPCompanyTreeMaster.sortOrder, Greater <Required <EPCompanyTreeMaster.parentWGID> > > >, OrderBy <Asc <EPCompanyTreeMaster.sortOrder> > > .SelectSingleBound(this, null, Folders.Current.ParentWGID, Folders.Current.SortOrder); if (next != null && curr != null) { int temp = (int)curr.SortOrder; curr.SortOrder = next.SortOrder; next.SortOrder = temp; Caches[typeof(EPCompanyTreeMaster)].Update(next); Caches[typeof(EPCompanyTreeMaster)].Update(curr); } return(adapter.Get()); }
public virtual IEnumerable Up(PXAdapter adapter) { int currentItemIndex; PXResultset <EPCompanyTreeMaster> items = SelectSiblings(CurrentSelected.FolderID, CurrentSelected.WorkGroupID, out currentItemIndex); if (currentItemIndex > 0) { EPCompanyTreeMaster current = items[currentItemIndex]; EPCompanyTreeMaster prev = items[currentItemIndex - 1]; current.SortOrder -= 1; prev.SortOrder += 1; Items.Update(current); Items.Update(prev); } return(adapter.Get()); }
public virtual IEnumerable Down(PXAdapter adapter) { int currentItemIndex; PXResultset <EPCompanyTreeMaster> items = SelectSiblings(CurrentSelected.FolderID, CurrentSelected.WorkGroupID, out currentItemIndex); if (currentItemIndex >= 0 && currentItemIndex < items.Count - 1) { EPCompanyTreeMaster current = items[currentItemIndex]; EPCompanyTreeMaster next = items[currentItemIndex + 1]; current.SortOrder += 1; next.SortOrder -= 1; Items.Update(current); Items.Update(next); } return(adapter.Get()); }
public virtual IEnumerable moveWorkGroup(PXAdapter adapter) { EPCompanyTreeMaster cur = Caches[typeof(EPCompanyTreeMaster)].Current as EPCompanyTreeMaster; SelectedFolders.Current.WorkGroupID = Folders.Current.WorkGroupID; if (cur != null) { if (SelectedParentFolders.View.Answer == WebDialogResult.None) { SelectedParentFolders.Current.WorkGroupID = cur.ParentWGID; } if (SelectedParentFolders.AskExt() == WebDialogResult.OK) { cur.ParentWGID = SelectedParentFolders.Current.WorkGroupID; cur.TempParentID = SelectedParentFolders.Current.WorkGroupID; EPCompanyTreeMaster previous = PXSelect <EPCompanyTreeMaster, Where <EPCompanyTreeMaster.parentWGID, Equal <Required <EPCompanyTreeMaster.parentWGID> > >, OrderBy <Desc <EPCompanyTreeMaster.sortOrder> > > .SelectSingleBound(this, null, SelectedParentFolders.Current.WorkGroupID); if (previous != null) { int sortOrder = (int)previous.SortOrder; cur.SortOrder = sortOrder + 1; } else { cur.SortOrder = 1; } cur = Caches[typeof(EPCompanyTreeMaster)].Update(cur) as EPCompanyTreeMaster; PXSelect <EPCompanyTreeMaster, Where <EPCompanyTreeMaster.parentWGID, Equal <Required <EPCompanyTreeMaster.parentWGID> > >, OrderBy <Asc <EPCompanyTreeMaster.sortOrder> > > .Clear(this); Folders.Cache.ActiveRow = cur; Folders.View.RequestRefresh(); } } return(adapter.Get()); }
protected virtual void EPCompanyTreeMaster_SortOrder_FieldDefaulting(PXCache sender, PXFieldDefaultingEventArgs e) { EPCompanyTreeMaster row = (EPCompanyTreeMaster)e.Row; if (row == null) { return; } e.NewValue = 1; e.Cancel = true; PXResultset <EPCompanyTreeMaster> list = Items.Select(row.ParentWGID); if (list.Count > 0) { EPCompanyTreeMaster last = list[list.Count - 1]; e.NewValue = last.SortOrder + 1; } }
public virtual IEnumerable Left(PXAdapter adapter) { EPCompanyTreeMaster current = Item.SelectWindowed(0, 1, CurrentSelected.FolderID); if (current != null && current.ParentWGID != 0) { EPCompanyTreeMaster parent = Item.SelectWindowed(0, 1, current.ParentWGID); if (parent != null) { int parentIndex; PXResultset <EPCompanyTreeMaster> items = SelectSiblings(parent.ParentWGID, parent.WorkGroupID, out parentIndex); if (parentIndex >= 0) { EPCompanyTreeMaster last = items[items.Count - 1]; current = (EPCompanyTreeMaster)Items.Cache.CreateCopy(current); current.ParentWGID = parent.ParentWGID; current.SortOrder = last.SortOrder + 1; Items.Update(current); } } } return(adapter.Get()); }
public virtual void EPCompanyTreeMaster_RowDeleting(PXCache cache, PXRowDeletingEventArgs e) { EPCompanyTreeMaster row = (EPCompanyTreeMaster)e.Row; if (row == null) { return; } string res = ""; foreach (EPAssignmentMap map in PXSelectJoin <EPAssignmentMap, InnerJoin <EPRule, On <EPRule.assignmentMapID, Equal <EPAssignmentMap.assignmentMapID> > >, Where <EPRule.workgroupID, Equal <Required <EPRule.workgroupID> > > > . Select(this, row.WorkGroupID)) { if (map == null) { throw new PXException(Objects.EP.Messages.WorkgroupIsInUse); } string MapType = ""; if (map.MapType == EPMapType.Assignment) { MapType = Objects.EP.Messages.Assignment; } else { MapType = Objects.EP.Messages.Approval; } res = res + string.Format(Objects.EP.Messages.WorkgroupIsInUseAtAssignmentMap, row.Description, MapType, map.Name) + "\n"; } if (!String.IsNullOrEmpty(res)) { throw new PXException(res); } }
public virtual IEnumerable addWorkGroup(PXAdapter adapter) { EPCompanyTreeMaster current = Folders.Current; if (current == null) { current = Folders.Select(); } if (current != null) { int ParentID = (int)current.WorkGroupID; EPCompanyTreeMaster inserted = (EPCompanyTreeMaster)Caches[typeof(EPCompanyTreeMaster)].CreateInstance(); inserted.Description = PX.Objects.CR.Messages.New; inserted.ParentWGID = ParentID; inserted = Caches[typeof(EPCompanyTreeMaster)].Insert(inserted) as EPCompanyTreeMaster; if (inserted != null) { inserted.TempChildID = inserted.WorkGroupID; inserted.TempParentID = ParentID; EPCompanyTreeMaster previous = PXSelect <EPCompanyTreeMaster, Where <EPCompanyTreeMaster.parentWGID, Equal <Required <EPCompanyTreeMaster.parentWGID> > >, OrderBy <Desc <EPCompanyTreeMaster.sortOrder> > > .SelectSingleBound(this, null, ParentID); int sortOrder = (int)previous.SortOrder; sortOrder = sortOrder + 1; inserted.SortOrder = previous != null ? sortOrder : 1; Folders.Cache.ActiveRow = inserted; PXSelect <EPCompanyTreeMaster, Where <EPCompanyTreeMaster.parentWGID, Equal <Required <EPCompanyTreeMaster.parentWGID> > >, OrderBy <Desc <EPCompanyTreeMaster.sortOrder> > > .Clear(this); } } return(adapter.Get()); }
protected virtual void EPCompanyTreeMaster_RowUpdated(PXCache cache, PXRowUpdatedEventArgs e) { EPCompanyTreeMaster row = e.Row as EPCompanyTreeMaster, oldRow = e.OldRow as EPCompanyTreeMaster; if (row == null || oldRow == null) { return; } if (row.ParentWGID == 0 || row.BypassEscalation == true) { row.WaitTime = 0; } if (row.ParentWGID != oldRow.ParentWGID) { updateHRecordParent(row); } else if (row.WaitTime != oldRow.WaitTime) { updateHRecordTime(row.WorkGroupID, row.WaitTime.GetValueOrDefault() - oldRow.WaitTime.GetValueOrDefault()); } }