private CswNbtView _getBadSchedulesAndTasksView() { CswNbtView BadSchedulesView = _CswNbtSchemaModTrnsctn.makeNewView( "29684 - Bad Schedules", CswEnumNbtViewVisibility.Property ); BadSchedulesView.ViewMode = CswEnumNbtViewRenderingMode.Tree; BadSchedulesView.Width = 100; CswNbtMetaDataNodeTypeProp AssemblyTargetTypeNTP = AssemblyScheduleNT.getNodeTypePropByObjectClassProp( CswNbtObjClassGenerator.PropertyName.TargetType ); CswNbtMetaDataNodeTypeProp EquipmentTargetTypeNTP = EquipmentScheduleNT.getNodeTypePropByObjectClassProp( CswNbtObjClassGenerator.PropertyName.TargetType ); CswNbtMetaDataNodeTypeProp AssemblyScheduleNTP = AssemblyTaskNT.getNodeTypePropByObjectClassProp( CswNbtObjClassTask.PropertyName.Generator ); CswNbtMetaDataNodeTypeProp EquipmentScheduleNTP = EquipmentTaskNT.getNodeTypePropByObjectClassProp( CswNbtObjClassTask.PropertyName.Generator ); CswNbtViewRelationship AssemblySchedRel = BadSchedulesView.AddViewRelationship( AssemblyScheduleNT, true ); CswNbtViewRelationship EquipmentSchedRel = BadSchedulesView.AddViewRelationship( EquipmentScheduleNT, true ); BadSchedulesView.AddViewRelationship( EquipmentSchedRel, CswEnumNbtViewPropOwnerType.Second, AssemblyScheduleNTP, true ); BadSchedulesView.AddViewRelationship( AssemblySchedRel, CswEnumNbtViewPropOwnerType.Second, EquipmentScheduleNTP, true ); CswNbtViewProperty AssemblyTargetTypeVP = BadSchedulesView.AddViewProperty( AssemblySchedRel, AssemblyTargetTypeNTP ); BadSchedulesView.AddViewPropertyFilter( AssemblyTargetTypeVP, CswEnumNbtFilterConjunction.And, CswEnumNbtFilterResultMode.Unknown, CswEnumNbtSubFieldName.NodeType, CswEnumNbtFilterMode.Contains, "Equipment" ); CswNbtViewProperty EquipmentTargetTypeVP = BadSchedulesView.AddViewProperty( EquipmentSchedRel, EquipmentTargetTypeNTP ); BadSchedulesView.AddViewPropertyFilter( EquipmentTargetTypeVP, CswEnumNbtFilterConjunction.And, CswEnumNbtFilterResultMode.Unknown, CswEnumNbtSubFieldName.NodeType, CswEnumNbtFilterMode.Contains, "Assembly" ); return BadSchedulesView; }
private void _updateMissingHazardClassesView() { CswNbtView MHCView = _CswNbtSchemaModTrnsctn.restoreView( "Missing Hazard Classes" ); if( null == MHCView ) { MHCView = _CswNbtSchemaModTrnsctn.makeNewView( "Missing Hazard Classes", CswEnumNbtViewVisibility.Global ); MHCView.ViewMode = CswEnumNbtViewRenderingMode.Tree; MHCView.Category = "Materials"; } else { MHCView.Root.ChildRelationships.Clear(); } CswNbtViewRelationship RootRel = MHCView.AddViewRelationship( ChemicalOC, true ); CswNbtMetaDataObjectClassProp SpecialFlagsOCP = ChemicalOC.getObjectClassProp( CswNbtObjClassChemical.PropertyName.SpecialFlags ); CswNbtViewProperty SpecialFlagsVP = MHCView.AddViewProperty( RootRel, SpecialFlagsOCP ); MHCView.AddViewPropertyFilter( SpecialFlagsVP, CswEnumNbtFilterConjunction.And, CswEnumNbtFilterResultMode.Hide, CswEnumNbtSubFieldName.Value, CswEnumNbtFilterMode.NotContains, "Not Reportable" ); CswNbtMetaDataObjectClassProp HazardClassesOCP = ChemicalOC.getObjectClassProp( CswNbtObjClassChemical.PropertyName.HazardClasses ); CswNbtViewProperty HazardClassesVP = MHCView.AddViewProperty( RootRel, HazardClassesOCP ); MHCView.AddViewPropertyFilter( HazardClassesVP, CswEnumNbtFilterConjunction.And, CswEnumNbtFilterResultMode.Hide, CswEnumNbtSubFieldName.Value, CswEnumNbtFilterMode.Null ); MHCView.save(); }
}//afterPopulateProps() public override CswNbtNode CopyNode(bool IsNodeTemp = false, Action <CswNbtNode> OnCopy = null) { // Copy this Assembly CswNbtNode CopiedAssemblyNode = base.CopyNodeImpl(IsNodeTemp, OnCopy); // Copy all Equipment CswNbtMetaDataObjectClass EquipmentObjectClass = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.EquipmentClass); CswNbtView EquipmentView = new CswNbtView(_CswNbtResources); CswNbtViewRelationship EquipmentRelationship = EquipmentView.AddViewRelationship(EquipmentObjectClass, false); CswNbtViewProperty AssemblyProperty = EquipmentView.AddViewProperty(EquipmentRelationship, EquipmentObjectClass.getObjectClassProp(CswNbtObjClassEquipment.PropertyName.Assembly)); CswNbtViewPropertyFilter AssemblyIsOriginalFilter = EquipmentView.AddViewPropertyFilter( AssemblyProperty, CswNbtFieldTypeRuleRelationship.SubFieldName.NodeID, CswEnumNbtFilterMode.Equals, NodeId.PrimaryKey.ToString()); ICswNbtTree EquipmentTree = _CswNbtResources.Trees.getTreeFromView(_CswNbtResources.CurrentNbtUser, EquipmentView, true, false, false); EquipmentTree.goToRoot(); Int32 c = 0; while (c < EquipmentTree.getChildNodeCount()) { EquipmentTree.goToNthChild(c); CswNbtObjClassEquipment OriginalEquipmentNode = EquipmentTree.getNodeForCurrentPosition(); OriginalEquipmentNode.CopyNode(IsNodeTemp, delegate(CswNbtNode CopiedEquipmentNode) { ((CswNbtObjClassEquipment)CopiedEquipmentNode).Assembly.RelatedNodeId = CopiedAssemblyNode.NodeId; }); EquipmentTree.goToParentNode(); c++; } return(CopiedAssemblyNode); }
public override void update() { CswNbtMetaDataNodeType ChemicalNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Chemical" ); if( null != ChemicalNT ) { CswNbtView MHCView = _CswNbtSchemaModTrnsctn.makeNewView( "Missing Hazard Classes", NbtViewVisibility.Global ); MHCView.Category = "Materials"; MHCView.Visibility = NbtViewVisibility.Global; MHCView.ViewMode = NbtViewRenderingMode.Tree; CswNbtViewRelationship RootRel = MHCView.AddViewRelationship( ChemicalNT, true ); CswNbtMetaDataNodeTypeProp SpecialFlagsNTP = ChemicalNT.getNodeTypeProp( "Special Flags" ); CswNbtViewProperty SpecialFlagsVP = MHCView.AddViewProperty( RootRel, SpecialFlagsNTP ); MHCView.AddViewPropertyFilter( SpecialFlagsVP, CswNbtPropFilterSql.PropertyFilterConjunction.And, CswNbtPropFilterSql.FilterResultMode.Hide, CswNbtSubField.SubFieldName.Value, CswNbtPropFilterSql.PropertyFilterMode.NotContains, "Not Reportable"); CswNbtMetaDataNodeTypeProp HazardClassesNTP = ChemicalNT.getNodeTypeProp( "Hazard Classes" ); CswNbtViewProperty HazardClassesVP = MHCView.AddViewProperty( RootRel, HazardClassesNTP ); MHCView.AddViewPropertyFilter( HazardClassesVP, CswNbtPropFilterSql.PropertyFilterConjunction.And, CswNbtPropFilterSql.FilterResultMode.Hide, CswNbtSubField.SubFieldName.Value, CswNbtPropFilterSql.PropertyFilterMode.Null); MHCView.save(); } }//Update()
} //Update() private void _addRegListLOLIListCodesGrid() { CswNbtMetaDataObjectClass RegListOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.RegulatoryListClass); if (null != RegListOC) { // Grid property CswNbtMetaDataObjectClassProp RegListLOLIListCodesGridOCP = RegListOC.getObjectClassProp(CswNbtObjClassRegulatoryList.PropertyName.LOLIListCodes); if (null == RegListLOLIListCodesGridOCP) { RegListLOLIListCodesGridOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp(new CswNbtWcfMetaDataModel.ObjectClassProp(RegListOC) { PropName = CswNbtObjClassRegulatoryList.PropertyName.LOLIListCodes, FieldType = CswEnumNbtFieldType.Grid }); CswNbtMetaDataObjectClass RegListListCodeOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.RegulatoryListListCodeClass); if (null != RegListListCodeOC) { CswNbtMetaDataObjectClassProp RegListListCodeRegListOCP = RegListListCodeOC.getObjectClassProp(CswNbtObjClassRegulatoryListListCode.PropertyName.RegulatoryList); // Grid View CswNbtView RegListListCodesView = _CswNbtSchemaModTrnsctn.makeView(); RegListListCodesView.ViewName = CswNbtObjClassRegulatoryList.PropertyName.LOLIListCodes; RegListListCodesView.ViewMode = CswEnumNbtViewRenderingMode.Grid; CswNbtViewRelationship RegListRel = RegListListCodesView.AddViewRelationship(RegListOC, false); CswNbtViewRelationship MemberRel = RegListListCodesView.AddViewRelationship(RegListRel, CswEnumNbtViewPropOwnerType.Second, RegListListCodeRegListOCP, true); CswNbtViewProperty LOLIListNameVP = RegListListCodesView.AddViewProperty(MemberRel, RegListListCodeOC.getObjectClassProp(CswNbtObjClassRegulatoryListListCode.PropertyName.LOLIListName), 1); _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp(RegListLOLIListCodesGridOCP, CswEnumNbtObjectClassPropAttributes.viewxml, RegListListCodesView.ToString()); } } // if( null == RegListListCodesGridOCP ) } // if( null != RegListOC ) } // _addLoliCodesGrid()
public IEnumerable <CswPrimaryKey> getContainersInGroup() { CswNbtView ContainersInGroupView = new CswNbtView(_CswNbtResources); ContainersInGroupView.ViewName = "ContainersInGroup"; CswNbtMetaDataObjectClass ContainerOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ContainerClass); CswNbtViewRelationship Rel1 = ContainersInGroupView.AddViewRelationship(ContainerOC, true); CswNbtMetaDataObjectClassProp ContainerGroupOCP = ContainerOC.getObjectClassProp(CswNbtObjClassContainer.PropertyName.ContainerGroup); CswNbtViewProperty Prop2 = ContainersInGroupView.AddViewProperty(Rel1, ContainerGroupOCP); CswNbtViewPropertyFilter Filt3 = ContainersInGroupView.AddViewPropertyFilter(Prop2, CswEnumNbtFilterConjunction.And, CswEnumNbtFilterResultMode.Hide, CswNbtFieldTypeRuleRelationship.SubFieldName.NodeID, CswEnumNbtFilterMode.Equals, this.NodeId.PrimaryKey.ToString(), false, false); Collection <CswPrimaryKey> _ContainerGroupNodePks = new Collection <CswPrimaryKey>(); ICswNbtTree ContainersInGroupTree = _CswNbtResources.Trees.getTreeFromView(ContainersInGroupView, false, true, true); ContainersInGroupTree.goToRoot(); for (int i = 0; i < ContainersInGroupTree.getChildNodeCount(); i++) { ContainersInGroupTree.goToNthChild(i); _ContainerGroupNodePks.Add(ContainersInGroupTree.getNodeIdForCurrentPosition()); ContainersInGroupTree.goToParentNode(); } return(_ContainerGroupNodePks); }
public override void update() { #region UPDATE VIEWS CswNbtMetaDataObjectClass userOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.UserClass ); CswNbtMetaDataObjectClassProp archivedOCP = userOC.getObjectClassProp( CswNbtObjClassUser.PropertyName.Archived ); foreach( CswNbtMetaDataNodeTypeProp relationshipProp in _CswNbtSchemaModTrnsctn.MetaData.getNodeTypeProps( CswNbtMetaDataFieldType.NbtFieldType.Relationship ) ) { if( relationshipProp.IsUserRelationship() ) { CswNbtView userView = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( relationshipProp.ViewId ); if( false == userView.IsEmpty() ) { CswNbtViewRelationship parent = userView.Root.ChildRelationships[0]; bool filterExists; bool viewPropExists; CswNbtViewProperty archivedVP = _viewPropAndFilterExists( out filterExists, out viewPropExists, userView, archivedOCP, CswNbtPropFilterSql.PropertyFilterMode.NotEquals, Tristate.True.ToString() ); if( false == viewPropExists ) //the view prop isn't there, add it with the filter { userView.AddViewPropertyAndFilter( parent, archivedOCP, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.NotEquals, Value: Tristate.True.ToString() ); } else if( viewPropExists && false == filterExists ) //the view prop is there, but with no filter { userView.AddViewPropertyFilter( archivedVP, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.NotEquals, Value: Tristate.True.ToString() ); } userView.save(); } } } #endregion }//Update()
private CswNbtView _siLocationsListView(bool ReInit) { CswNbtView Ret = _getSystemView(CswEnumNbtSystemViewName.SILocationsList); if (null == Ret) { CswNbtNode ChemSwAdminRoleNode = _CswNbtResources.Nodes.makeRoleNodeFromRoleName(CswNbtObjClassRole.ChemSWAdminRoleName); Ret = new CswNbtView(_CswNbtResources); Ret.saveNew(CswEnumNbtSystemViewName.SILocationsList.ToString(), CswEnumNbtViewVisibility.Role, ChemSwAdminRoleNode.NodeId); Ret.Category = SiViewCategory; Ret.ViewMode = CswEnumNbtViewRenderingMode.List; ReInit = true; } if (ReInit) { Ret.Root.ChildRelationships.Clear(); CswNbtMetaDataObjectClass LocationOc = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.LocationClass); CswNbtViewRelationship LocationVr = Ret.AddViewRelationship(LocationOc, true); CswNbtMetaDataObjectClassProp LocationLocationOcp = LocationOc.getObjectClassProp(CswNbtObjClassLocation.PropertyName.Location); CswNbtViewProperty LocationLocationVp = Ret.AddViewProperty(LocationVr, LocationLocationOcp); LocationLocationVp.SortBy = true; Ret.save(); } return(Ret); }
} //Update() private void _removeDocumentClassPropAndFilters( CswNbtView DocumentsView, CswNbtMetaDataNodeType MaterialDocumentNT ) { IEnumerable<CswNbtViewRelationship> ChildRelationships = DocumentsView.Root.ChildRelationships[0].ChildRelationships; CswNbtMetaDataNodeTypeProp DocumentClassNTP = MaterialDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.DocumentClass ); foreach( CswNbtViewRelationship Parent in ChildRelationships ) { if( Parent.SecondName.Equals( MaterialDocumentNT.NodeTypeName ) ) { CswNbtViewProperty PropToDelete = null; foreach( CswNbtViewProperty ViewProp in Parent.Properties ) { if( null != ViewProp.Filters && ViewProp.Filters.Count > 0 ) { ViewProp.removeFilter( (CswNbtViewPropertyFilter) ViewProp.Filters[0] ); } if( ViewProp.NodeTypePropId == DocumentClassNTP.PropId ) { PropToDelete = ViewProp; } } if( null != PropToDelete ) { Parent.removeProperty( PropToDelete ); } DocumentsView.save(); } } }
} // setObjectClassPropListOptions() private string _getOwnerName(CswNbtViewProperty ViewProperty) { string ret = string.Empty; CswNbtViewRelationship parent = (CswNbtViewRelationship)ViewProperty.Parent; CswEnumNbtViewRelatedIdType ownerType = parent.getOwnerType(); if (ownerType == CswEnumNbtViewRelatedIdType.NodeTypeId) { CswNbtMetaDataNodeType ntOwner = parent.getNodeTypeOwner(); ret = ntOwner.NodeTypeName; } else if (ownerType == CswEnumNbtViewRelatedIdType.ObjectClassId) { CswNbtMetaDataObjectClass ocOwner = parent.getObjClassOwner(); ret = ocOwner.ObjectClass.ToString(); } else { CswNbtMetaDataPropertySet psOwner = parent.getPropSetOwner(); ret = psOwner.Name; } return(ret); }
public void OnModifyViewFilters(CswNbtView OldView, CswNbtView NewView) { if (_RecordStatistics) { if ((null != OldView) && (null != NewView)) { CswNbtStatisticsEntry.Stats_count_viewfiltermod++; foreach (CswNbtViewPropertyFilter OldFilter in OldView.Root.GetAllChildrenOfType(CswEnumNbtViewNodeType.CswNbtViewPropertyFilter)) { foreach (CswNbtViewPropertyFilter NewFilter in NewView.Root.GetAllChildrenOfType(CswEnumNbtViewNodeType.CswNbtViewPropertyFilter)) { if (OldFilter.ArbitraryId == NewFilter.ArbitraryId && OldFilter.Value != NewFilter.Value) { CswNbtViewProperty ParentProp = ( CswNbtViewProperty )NewFilter.Parent; if (ParentProp.Type == CswEnumNbtViewPropType.NodeTypePropId) { CswNbtStatisticsEntry.IncrementHash(CswNbtStatisticsEntry.NodeTypePropsFilterMod, ParentProp.NodeTypePropId.ToString()); } else { CswNbtStatisticsEntry.IncrementHash(CswNbtStatisticsEntry.ObjectClassPropsFilterMod, ParentProp.ObjectClassPropId.ToString()); } } } } } } }
private void _createMyContainersView() { CswNbtView MyContainersView = _CswNbtSchemaModTrnsctn.restoreView( "My Containers" ) ?? _CswNbtSchemaModTrnsctn.makeNewView( "My Containers", NbtViewVisibility.Global ); MyContainersView.ViewMode = NbtViewRenderingMode.Grid; MyContainersView.Category = "Containers"; MyContainersView.Root.ChildRelationships.Clear(); CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.ContainerClass ); CswNbtViewRelationship ContainerRel = MyContainersView.AddViewRelationship( ContainerOC, false ); CswNbtViewProperty BarcodeVP = MyContainersView.AddViewProperty( ContainerRel, ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Barcode ) ); BarcodeVP.Order = 1; CswNbtViewProperty StatusVP = MyContainersView.AddViewProperty( ContainerRel, ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Status ) ); StatusVP.Order = 2; CswNbtViewProperty QuantityVP = MyContainersView.AddViewProperty( ContainerRel, ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Quantity ) ); QuantityVP.Order = 3; CswNbtViewProperty LocationVP = MyContainersView.AddViewProperty( ContainerRel, ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Location ) ); LocationVP.Order = 4; CswNbtViewProperty DisposedVP = MyContainersView.AddViewProperty( ContainerRel, ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Disposed ) ); DisposedVP.Order = 5; MyContainersView.AddViewPropertyFilter( DisposedVP, CswNbtPropFilterSql.PropertyFilterConjunction.And, CswNbtPropFilterSql.FilterResultMode.Hide, CswNbtSubField.SubFieldName.Checked, CswNbtPropFilterSql.PropertyFilterMode.Equals, "false" ); CswNbtViewProperty OwnerVP = MyContainersView.AddViewProperty( ContainerRel, ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Owner ) ); OwnerVP.Order = 6; OwnerVP.ShowInGrid = false; MyContainersView.AddViewPropertyFilter( OwnerVP, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.Equals, Value: "me" ); MyContainersView.save(); }
public CswNbtView getAllRecurringRequestItemsView(bool AddRunTimeFilters = true) { CswNbtView Ret = new CswNbtView(_CswNbtResources) { Category = "Request Configuration", Visibility = CswEnumNbtViewVisibility.Hidden, ViewMode = CswEnumNbtViewRenderingMode.Grid, ViewName = RecurringItemsViewName }; //Unlike other Request Items, Recurring requests are not tied to a Request, so they don't have a Name. CswNbtViewRelationship RequestItemRel = Ret.AddViewRelationship(_RequestItemOC, IncludeDefaultFilters: false); CswNbtViewProperty DescriptionVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Description), 1); DescriptionVP.Width = 40; CswNbtViewProperty RecurringFrequencyVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.RecurringFrequency), 2); CswNbtViewProperty NextReorderDateVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.NextReorderDate), 3); NextReorderDateVP.SortBy = true; if (AddRunTimeFilters) { Ret.AddViewPropertyFilter(NextReorderDateVP, ShowAtRuntime: true); } Ret.AddViewPropertyAndFilter(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.IsRecurring), Value: CswEnumTristate.True.ToString(), ShowInGrid: false); return(Ret); }
}//Update() /// <summary> /// Helper method to determine if a view property exists with a given filter. Returns the view property if it exists. /// </summary> /// <param name="filterExists">If the filter exists</param> /// <param name="viewPropExists">If the given prop is in the view</param> /// <param name="view">The view to check</param> /// <param name="prop">The property to check</param> /// <returns>The view property (null if the prop doesn't exist)</returns> private CswNbtViewProperty _viewPropAndFilterExists( out bool filterExists, out bool viewPropExists, CswNbtView view, CswNbtMetaDataObjectClassProp prop, CswNbtPropFilterSql.PropertyFilterMode filterMode, string value ) { CswNbtViewProperty ret = null; filterExists = false; viewPropExists = false; foreach( CswNbtViewProperty viewProp in view.getOrderedViewProps( false ) ) { foreach( CswNbtViewPropertyFilter existingFilter in viewProp.Filters ) { if( viewProp.ObjectClassPropId.Equals( prop.ObjectClassPropId ) ) { viewPropExists = true; if( existingFilter.FilterMode.Equals( filterMode ) && existingFilter.Value.Equals( value ) ) { filterExists = true; ret = viewProp; } } } } return ret; }
//takes the default request view, adds items, and filters by favorites public CswNbtView getFavoriteRequestsItemsView() { CswNbtView Ret = new CswNbtView(_CswNbtResources) { Category = "Request Configuration", Visibility = CswEnumNbtViewVisibility.Hidden, ViewMode = CswEnumNbtViewRenderingMode.Grid, ViewName = FavoriteItemsViewName, GridGroupByCol = CswNbtObjClassRequestItem.PropertyName.Name }; CswNbtViewRelationship RequestItemRel = Ret.AddViewRelationship(_RequestItemOC, false); CswNbtViewProperty NameVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Name), 1); NameVP.SortBy = true; Ret.AddViewPropertyFilter(NameVP, ShowAtRuntime: true); CswNbtViewProperty DescriptionVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Description), 2); DescriptionVP.Width = 50; CswNbtViewProperty InventoryGroupVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.InventoryGroup), 3); InventoryGroupVP.Width = 30; CswNbtViewProperty LocationVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Location), 4); LocationVP.Width = 40; Ret.AddViewPropertyAndFilter(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Requestor), Value: "me", ShowInGrid: false); Ret.AddViewPropertyAndFilter(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.IsFavorite), Value: CswNbtNodePropLogical.toLogicalGestalt(CswEnumTristate.True), ShowInGrid: false); return(Ret); }
//takes the request view, adds items, and filters by submitted public CswNbtView getSubmittedRequestItemsView() { CswNbtView Ret = getRequestViewBase(LimitToUnsubmitted: false, AddRootRel: false, IncludeDefaultFilters: false); Ret.Visibility = CswEnumNbtViewVisibility.Hidden; Ret.ViewName = SubmittedItemsViewName; Ret.GridGroupByCol = CswNbtObjClassRequestItem.PropertyName.Request; CswNbtMetaDataObjectClassProp RequestOcp = _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Request); CswNbtViewRelationship RequestItemRel = Ret.AddViewRelationship(_RequestItemOC, IncludeDefaultFilters: true); CswNbtViewProperty NameVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Name), 1); //NameVP.ShowInGrid = true; CswNbtViewPropertyFilter NameVpf = Ret.AddViewPropertyFilter(NameVP, ShowAtRuntime: true); CswNbtViewProperty ItemNumberVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.ItemNumber), 2); ItemNumberVP.Width = 10; CswNbtViewProperty StatusVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Status), 3); CswNbtViewPropertyFilter StatusVpf = Ret.AddViewPropertyFilter(StatusVP, FilterMode: CswEnumNbtFilterMode.NotEquals, Value: CswNbtObjClassRequestItem.Statuses.Pending); StatusVpf.ShowAtRuntime = true; CswNbtViewProperty DescriptionVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Description), 4); DescriptionVP.Width = 50; CswNbtViewProperty NeededByVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.NeededBy), 5); CswNbtViewProperty RequestVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Request)); CswNbtViewProperty CommentsVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Comments)); CswNbtViewProperty RequestTypeVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.RequestType), 7); RequestTypeVP.Width = 20; return(Ret); }
//Here we take the Request base and, for each requestItem type, add them to the Cart view public CswNbtView getOpenCartsView(bool IncludeItemProperties = true) { CswNbtView Ret = getRequestViewBase(IncludeDefaultFilters: true, LimitToUnsubmitted: true); CswNbtViewRelationship RootVr = Ret.Root.ChildRelationships[0]; if (null != _CurrentRequestNode) { RootVr.NodeIdsToFilterIn.Clear(); RootVr.NodeIdsToFilterIn.Add(_CurrentRequestNode.NodeId); } CswNbtMetaDataObjectClassProp RequestOcp = _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Request); CswNbtViewRelationship RequestItemRel = Ret.AddViewRelationship(RootVr, CswEnumNbtViewPropOwnerType.Second, RequestOcp, IncludeDefaultFilters: true); if (IncludeItemProperties) { CswNbtViewProperty ItemNumberVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.ItemNumber), 1); ItemNumberVP.Width = 10; CswNbtViewProperty DescriptionVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Description), 2); DescriptionVP.Width = 50; CswNbtViewProperty NeededByVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.NeededBy), 3); CswNbtViewProperty LocationVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Location), 4); LocationVP.Width = 40; CswNbtViewProperty InventoryGroupVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.InventoryGroup), 5); InventoryGroupVP.Width = 20; CswNbtViewProperty RequestedForVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.RequestedFor), 6); CswNbtViewProperty RequestTypeVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.RequestType), 7); RequestTypeVP.Width = 20; } Ret.SaveToCache(IncludeInQuickLaunch: false); return(Ret); }
} // setupPhraseView() private void _setupClassificationView(CswNbtView View, CswCommaDelimitedString SelectedClassIds) { CswNbtMetaDataObjectClass GhsClassOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.GHSClassificationClass); CswNbtMetaDataNodeType GhsClassNT = GhsClassOC.FirstNodeType; View.SetVisibility(CswEnumNbtViewVisibility.Hidden, null, null); View.ViewMode = CswEnumNbtViewRenderingMode.Grid; View.Root.ChildRelationships.Clear(); if (SelectedClassIds.Count > 0) { CswNbtViewRelationship ClassVR = View.AddViewRelationship(GhsClassOC, false); foreach (string ClassId in SelectedClassIds) { CswPrimaryKey ClassPk = new CswPrimaryKey(); ClassPk.FromString(ClassId); ClassVR.NodeIdsToFilterIn.Add(ClassPk); } View.AddViewProperty(ClassVR, GhsClassOC.getObjectClassProp(CswNbtObjClassGHSClassification.PropertyName.Category)); if (null != GhsClassNT) { CswNbtMetaDataNodeTypeProp LanguageProp = GhsClassNT.getNodeTypePropByObjectClassProp(_getLanguageForTranslation()); CswNbtViewProperty LanguageVP = View.AddViewProperty(ClassVR, LanguageProp); LanguageVP.Width = 100; } } // if( SelectedClassIds.Count > 0 ) View.SaveToCache(IncludeInQuickLaunch: false, UpdateCache: true, KeepInQuickLaunch: false); } // _setupClassificationView()
// This is used by CswNbtNodeProp for unique value enforcement public void AddUniqueFilterToView(CswNbtView View, CswNbtViewProperty UniqueValueViewProperty, CswNbtNodePropWrapper PropertyValueToCheck, bool EnforceNullEntries = false, CswNbtSubField SubField = null) { if (SubField == null) { SubField = SubFields.Default; } string StringValueToCheck = PropertyValueToCheck.GetSubFieldValue(SubField); // case 31292 - Kludge fix for NodeID filters if (SubField.Name == CswEnumNbtSubFieldName.NodeID && false == string.IsNullOrEmpty(StringValueToCheck)) { CswPrimaryKey pkValue = new CswPrimaryKey(); pkValue.FromString(StringValueToCheck); StringValueToCheck = pkValue.PrimaryKey.ToString(); } CswEnumNbtFilterMode FilterMode; //case 27670 - in order to reserve the right for compound unique props to be empty, it has to be explicitly stated when creating the ForCompundUnique view if (EnforceNullEntries && String.IsNullOrEmpty(StringValueToCheck)) { FilterMode = CswEnumNbtFilterMode.Null; } else { FilterMode = CswEnumNbtFilterMode.Equals; } View.AddViewPropertyFilter(UniqueValueViewProperty, SubField.Name, FilterMode, StringValueToCheck.Trim(), false); }
private CswPrimaryKey _HandleReference(string LocationNodeIdStr, string LocationBarcode) //, Dictionary<Int32, Int32> NodeMap ) { CswPrimaryKey LocationNodeId = new CswPrimaryKey(); if (!string.IsNullOrEmpty(LocationNodeIdStr)) { LocationNodeId.FromString(LocationNodeIdStr); if (LocationNodeId.PrimaryKey == Int32.MinValue && LocationBarcode != string.Empty) { // Find the location with this barcode value CswNbtMetaDataObjectClass LocationObjectClass = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.LocationClass); CswNbtMetaDataObjectClassProp BarcodeObjectClassProp = LocationObjectClass.getObjectClassProp(CswNbtObjClassLocation.PropertyName.Barcode); CswNbtView LocationView = new CswNbtView(_CswNbtResources); // All locations.. CswNbtViewRelationship LocationRelationship = LocationView.AddViewRelationship(LocationObjectClass, false); // ..with barcodes CswNbtViewProperty BarcodeViewProperty = LocationView.AddViewProperty(LocationRelationship, BarcodeObjectClassProp); // ..equal to the given barcode CswNbtViewPropertyFilter BarcodeViewPropertyFilter = LocationView.AddViewPropertyFilter(BarcodeViewProperty, CswNbtFieldTypeRuleBarCode.SubFieldName.Barcode, CswEnumNbtFilterMode.Equals, LocationBarcode, false); ICswNbtTree LocationTree = _CswNbtResources.Trees.getTreeFromView(_CswNbtResources.CurrentNbtUser, LocationView, true, false, false); if (LocationTree.getChildNodeCount() > 0) { LocationTree.goToNthChild(0); CswNbtNode LocationNode = LocationTree.getNodeForCurrentPosition(); LocationNodeId = LocationNode.NodeId; } } } // if(!string.IsNullOrEmpty(LocationNodeIdStr)) return(LocationNodeId); } // _HandleReference()
public CswNbtView setupPhraseView(CswNbtView View, CswCommaDelimitedString SelectedPhraseIds) { CswNbtMetaDataObjectClass GhsPhraseOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.GHSPhraseClass); CswNbtMetaDataNodeType GhsPhraseNT = GhsPhraseOC.FirstNodeType; View.SetVisibility(CswEnumNbtViewVisibility.Hidden, null, null); View.ViewMode = CswEnumNbtViewRenderingMode.Grid; View.Root.ChildRelationships.Clear(); if (SelectedPhraseIds.Count > 0) { CswNbtViewRelationship PhraseVR = View.AddViewRelationship(GhsPhraseOC, false); foreach (string PhraseId in SelectedPhraseIds) { CswPrimaryKey PhrasePk = new CswPrimaryKey(); PhrasePk.FromString(PhraseId); PhraseVR.NodeIdsToFilterIn.Add(PhrasePk); } View.AddViewProperty(PhraseVR, GhsPhraseOC.getObjectClassProp(CswNbtObjClassGHSPhrase.PropertyName.Code)); if (null != GhsPhraseNT) { CswNbtMetaDataNodeTypeProp LanguageProp = GhsPhraseNT.getNodeTypePropByObjectClassProp(_getLanguageForTranslation()); CswNbtViewProperty LanguageVP = View.AddViewProperty(PhraseVR, LanguageProp); LanguageVP.Width = 100; } } // if( SelectedPhraseIds.Count > 0 ) return(View); } // setupPhraseView()
private void _addFilter(CswNbtViewEditorData Return) { CswNbtViewRelationship parent = (CswNbtViewRelationship)CurrentView.FindViewNodeByArbitraryId(Request.Property.ParentArbitraryId); CswNbtViewRoot.forEachRelationship eachRel = relationship => { if (parent.SecondId == relationship.SecondId) { CswNbtViewProperty viewProp = relationship.Properties.FirstOrDefault(vp => vp.Name == Request.Property.Name); if (null != viewProp) { if (false == _hasFilter(viewProp)) { CurrentView.AddViewPropertyFilter(viewProp, Conjunction: (CswEnumNbtFilterConjunction)Request.FilterConjunction, SubFieldName: (CswEnumNbtSubFieldName)Request.FilterSubfield, FilterMode: (CswEnumNbtFilterMode)Request.FilterMode, Value: Request.FilterValue); } } else { ICswNbtMetaDataProp Prop = null; if (Request.Property.Type.Equals(CswEnumNbtViewPropType.NodeTypePropId)) { Prop = _CswNbtResources.MetaData.getNodeTypeProp(Request.Property.NodeTypePropId); } else if (Request.Property.Type.Equals(CswEnumNbtViewPropType.ObjectClassPropId)) { Prop = _CswNbtResources.MetaData.getObjectClassProp(Request.Property.ObjectClassPropId); } CurrentView.AddViewPropertyAndFilter(relationship, Prop, Value: Request.FilterValue, Conjunction: Request.FilterConjunction, SubFieldName: (CswEnumNbtSubFieldName)Request.FilterSubfield, FilterMode: (CswEnumNbtFilterMode)Request.FilterMode, ShowInGrid: false // the user is filtering on a prop not in the grid, don't show it in the grid ); } } }; CurrentView.Root.eachRelationship(eachRel, null); _getFilters(Return, CurrentView); HashSet <string> seenRels = new HashSet <string>(); CswNbtViewRoot.forEachRelationship eachRelationship = relationship => { if (false == seenRels.Contains(relationship.TextLabel)) { seenRels.Add(relationship.TextLabel); Return.Step4.Relationships.Add(relationship); } }; CurrentView.Root.eachRelationship(eachRelationship, null); Return.Step4.ViewJson = CswConvert.ToString(CurrentView.ToJson()); }
/// <summary> /// Creates a CswNbtViewPropertyFilter and returns its Json /// </summary> public JObject makeViewPropFilter(CswNbtView View, JObject FilterProp, bool ClearFilters = false) { JObject Ret = new JObject(); string FiltArbitraryId = CswConvert.ToString(FilterProp["filtarbitraryid"]); string PropArbitraryId = CswConvert.ToString(FilterProp["proparbitraryid"]); if (FiltArbitraryId == "undefined") { FiltArbitraryId = string.Empty; } if (PropArbitraryId == "undefined") { PropArbitraryId = string.Empty; } CswNbtViewPropertyFilter ViewPropFilt = null; if (false == string.IsNullOrEmpty(PropArbitraryId)) { CswNbtViewProperty ViewProp = (CswNbtViewProperty)View.FindViewNodeByArbitraryId(PropArbitraryId); if (false == string.IsNullOrEmpty(FiltArbitraryId)) { ViewPropFilt = (CswNbtViewPropertyFilter)View.FindViewNodeByArbitraryId(FiltArbitraryId); } else { ViewPropFilt = View.AddViewPropertyFilter(ViewProp, CswEnumNbtSubFieldName.Unknown, CswEnumNbtFilterMode.Unknown, string.Empty, false); } //Case 23779, 23937, 24064 if (ClearFilters && null != ViewPropFilt) { ViewProp.Filters.Clear(); ViewProp.Filters.Add(ViewPropFilt); } } if (ViewPropFilt != null) { CswEnumNbtFilterConjunction Conjunction = (CswEnumNbtFilterConjunction)CswConvert.ToString(FilterProp["conjunction"]); CswEnumNbtSubFieldName FieldName = (CswEnumNbtSubFieldName)CswConvert.ToString(FilterProp["subfieldname"]); CswEnumNbtFilterMode FilterMode = (CswEnumNbtFilterMode)CswConvert.ToString(FilterProp["filter"]); string FilterValue = CswConvert.ToString(FilterProp["filtervalue"]); if (FieldName != CswEnumNbtSubFieldName.Unknown && FilterMode != CswEnumNbtFilterMode.Unknown) { ViewPropFilt.FilterMode = FilterMode; ViewPropFilt.Conjunction = Conjunction; ViewPropFilt.SubfieldName = FieldName; ViewPropFilt.Value = FilterValue; _addVbPropFilter(Ret, ViewPropFilt); } } return(Ret); }
} //Update() //Get all Inspection targets with Status = OK, and any inspection design nodes that been touched (i.e. - not pending or overdue) //If no designs exist in the view for the given target, then the target should have a status of Not Inspected instead. private CswNbtView _getInvalidTargetsView() { CswNbtView myView = _CswNbtSchemaModTrnsctn.makeView(); myView.Visibility = NbtViewVisibility.Global; myView.ViewMode = NbtViewRenderingMode.Tree; CswNbtMetaDataObjectClass Rel1SecondOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(NbtObjectClass.InspectionTargetClass); CswNbtViewRelationship Rel1 = myView.AddViewRelationship(Rel1SecondOC, true); CswNbtViewProperty Prop2 = null; foreach (CswNbtMetaDataNodeType Rel1NT in Rel1SecondOC.getNodeTypes()) { CswNbtMetaDataNodeTypeProp Prop2NTP = Rel1NT.getNodeTypeProp("Status"); if (null != Prop2NTP) { Prop2 = myView.AddViewProperty(Rel1, Prop2NTP); break; } } myView.AddViewPropertyFilter(Prop2, CswNbtPropFilterSql.PropertyFilterConjunction.And, CswNbtPropFilterSql.FilterResultMode.Hide, CswNbtSubField.SubFieldName.Value, CswNbtPropFilterSql.PropertyFilterMode.Equals, "OK"); CswNbtMetaDataObjectClass Rel4SecondOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(NbtObjectClass.InspectionDesignClass); CswNbtMetaDataObjectClassProp Rel4Prop = Rel4SecondOC.getObjectClassProp(CswNbtObjClassInspectionDesign.PropertyName.Target); CswNbtViewRelationship Rel4 = myView.AddViewRelationship(Rel1, NbtViewPropOwnerType.Second, Rel4Prop, true); CswNbtViewProperty Prop5 = null; foreach (CswNbtMetaDataNodeType Rel4NT in Rel4SecondOC.getNodeTypes()) { CswNbtMetaDataNodeTypeProp Prop5NTP = Rel4NT.getNodeTypeProp("Status"); if (null != Prop5NTP) { Prop5 = myView.AddViewProperty(Rel4, Prop5NTP); break; } } myView.AddViewPropertyFilter(Prop5, CswNbtPropFilterSql.PropertyFilterConjunction.And, CswNbtPropFilterSql.FilterResultMode.Hide, CswNbtSubField.SubFieldName.Value, CswNbtPropFilterSql.PropertyFilterMode.NotEquals, "Pending"); myView.AddViewPropertyFilter(Prop5, CswNbtPropFilterSql.PropertyFilterConjunction.And, CswNbtPropFilterSql.FilterResultMode.Hide, CswNbtSubField.SubFieldName.Value, CswNbtPropFilterSql.PropertyFilterMode.NotEquals, "Overdue"); return(myView); }
protected bool _hasFilter(CswNbtViewProperty ViewProp) { return(ViewProp.Filters.Any(Filter => Filter.Value == Request.FilterValue && Filter.Conjunction == (CswEnumNbtFilterConjunction)Request.FilterConjunction && Filter.FilterMode == (CswEnumNbtFilterMode)Request.FilterMode && Filter.SubfieldName == (CswEnumNbtSubFieldName)Request.FilterSubfield )); }
private CswNbtNode _getTargetNodeForGenerator(CswNbtNode CswNbtNodeGenerator, CswPrimaryKey ParentPk, string TargetDateFilter) { CswNbtNode ReturnVal = null; CswNbtObjClassGenerator GeneratorNode = (CswNbtObjClassGenerator)CswNbtNodeGenerator; if (String.IsNullOrEmpty(GeneratorNode.TargetType.SelectedNodeTypeIds.ToString())) { throw new CswDniException(CswEnumErrorType.Error, "Invalid generator configuration", "_getTargetNodeForGenerator got a null SelectedNodeTypeIds on nodeid " + GeneratorNode.NodeId); } else { Int32 NodeTypeId = CswConvert.ToInt32(GeneratorNode.TargetType.SelectedNodeTypeIds[0]); // case 28612 - just check the first one if (Int32.MinValue != NodeTypeId) { CswNbtMetaDataNodeType ThisCreatedNodeType = _CswNbtResources.MetaData.getNodeType(NodeTypeId); if (null != ThisCreatedNodeType) { CswNbtMetaDataNodeType CreatedNodeType = ThisCreatedNodeType.getNodeTypeLatestVersion(); CswNbtMetaDataObjectClass CreatedMetaDataObjectClass = CreatedNodeType.getObjectClass(); CswNbtObjClass CreatedObjClass = CswNbtObjClassFactory.makeObjClass(_CswNbtResources, CreatedMetaDataObjectClass); if (!(CreatedObjClass is CswNbtPropertySetGeneratorTarget)) { throw new CswDniException("CswNbtActGenerateNodes got an invalid object class: " + CreatedObjClass.ObjectClass.ToString()); } CswNbtPropertySetGeneratorTarget GeneratorTarget = (CswNbtPropertySetGeneratorTarget)CreatedObjClass; // CreatedForNTP is the parent or owner of the new node. Inspections created for Inspection Targets, Tasks for Equipment, etc. CswNbtMetaDataNodeTypeProp CreatedForNTP = CreatedNodeType.getNodeTypePropByObjectClassProp(GeneratorTarget.ParentPropertyName); CswNbtMetaDataNodeTypeProp GeneratorNTP = CreatedNodeType.getNodeTypePropByObjectClassProp(CswNbtPropertySetGeneratorTarget.PropertyName.Generator); CswNbtMetaDataNodeTypeProp DueDateNTP = CreatedNodeType.getNodeTypePropByObjectClassProp(CswNbtPropertySetGeneratorTarget.PropertyName.DueDate); CswNbtView CswNbtView = new CswNbtView(_CswNbtResources); CswNbtView.ViewName = "Nodes for Generator"; CswNbtViewRelationship RootRelationship = CswNbtView.AddViewRelationship(CreatedNodeType, false); CswNbtViewProperty CreatedForParentProp = CswNbtView.AddViewProperty(RootRelationship, CreatedForNTP); CswNbtView.AddViewPropertyFilter(CreatedForParentProp, CswNbtFieldTypeRuleRelationship.SubFieldName.NodeID, CswEnumNbtFilterMode.Equals, ParentPk.PrimaryKey.ToString(), false); CswNbtViewProperty GeneratorProp = CswNbtView.AddViewProperty(RootRelationship, GeneratorNTP); CswNbtView.AddViewPropertyFilter(GeneratorProp, CswNbtFieldTypeRuleRelationship.SubFieldName.NodeID, CswEnumNbtFilterMode.Equals, CswNbtNodeGenerator.NodeId.PrimaryKey.ToString(), false); CswNbtViewProperty DueDateProp = CswNbtView.AddViewProperty(RootRelationship, DueDateNTP); //Case 24572 CswNbtView.AddViewPropertyFilter(DueDateProp, CswNbtFieldTypeRuleDateTime.SubFieldName.Value, CswEnumNbtFilterMode.Equals, TargetDateFilter, false); ICswNbtTree ExistingNodesTree = _CswNbtResources.Trees.getTreeFromView(_CswNbtResources.CurrentNbtUser, CswNbtView, true, false, false); if (ExistingNodesTree.getChildNodeCount() > 0) { ExistingNodesTree.goToNthChild(0); ReturnVal = ExistingNodesTree.getNodeForCurrentPosition(); } } } } return(ReturnVal); }//_getTargetNodeForGenerator
/// <summary> /// Get table from a universal search. /// </summary> /// <param name="View"></param> /// <returns></returns> public JObject getTable( CswNbtView View ) { _View = View; JObject ret = new JObject(); if( _View != null ) { // Find current max order set in view Int32 maxOrder = ( from ViewRel in _View.Root.ChildRelationships from ViewProp in ViewRel.Properties select ViewProp.Order ).Concat( new[] { 0 } ).Max(); // thanks Resharper! // Set default order for properties in the view without one foreach( CswNbtViewProperty ViewProp in from ViewRel in _View.Root.ChildRelationships from ViewProp in ViewRel.Properties where Int32.MinValue == ViewProp.Order select ViewProp ) { ViewProp.Order = maxOrder + 1; maxOrder++; } // Add 'default' Table layout elements for the nodetype to the view for efficiency // Set the order to be after properties in the view foreach( CswNbtViewRelationship ViewRel in _View.Root.ChildRelationships ) { if( ViewRel.SecondType == CswEnumNbtViewRelatedIdType.NodeTypeId ) { IEnumerable<CswNbtMetaDataNodeTypeProp> Props = _CswNbtResources.MetaData.NodeTypeLayout.getPropsInLayout( ViewRel.SecondId, Int32.MinValue, CswEnumNbtLayoutType.Table ); foreach( CswNbtMetaDataNodeTypeProp NTProp in Props ) { bool AlreadyExists = false; foreach( CswNbtViewProperty ViewProp in ViewRel.Properties ) { if( ViewProp.NodeTypePropId == NTProp.PropId ) { AlreadyExists = true; } } if( false == AlreadyExists ) { CswNbtViewProperty NewViewProp = _View.AddViewProperty( ViewRel, NTProp ); CswNbtMetaDataNodeTypeLayoutMgr.NodeTypeLayout propTableLayout = NTProp.getTableLayout(); NewViewProp.Order = maxOrder + propTableLayout.DisplayRow; } } // foreach( CswNbtMetaDataNodeTypeProp NTProp in Props ) } // if( ViewRel.SecondType == RelatedIdType.NodeTypeId ) } // foreach( CswNbtViewRelationship ViewRel in View.Root.ChildRelationships ) ICswNbtTree Tree = _CswNbtResources.Trees.getTreeFromView( _View, true, false, false ); ret = makeTableFromTree( Tree, null ); } // if( _View != null ) return ret; } // getTable()
private void _deleteFutureNodes() { // BZ 6754 - Delete all future nodes CswNbtMetaDataObjectClass GeneratorObjectClass = ObjectClass; if( TargetType.SelectedNodeTypeIds.Count == 1 ) { Int32 SelectedTargetNtId = CswConvert.ToInt32( TargetType.SelectedNodeTypeIds[0] ); if( Int32.MinValue != SelectedTargetNtId ) { CswNbtMetaDataNodeType TargetNodeType = _CswNbtResources.MetaData.getNodeType( SelectedTargetNtId ); if( null != TargetNodeType ) { CswNbtMetaDataObjectClass TargetObjectClass = TargetNodeType.getObjectClass(); CswNbtObjClass TargetObjClass = CswNbtObjClassFactory.makeObjClass( _CswNbtResources, TargetObjectClass ); if( !( TargetObjClass is CswNbtPropertySetGeneratorTarget ) ) { throw new CswDniException( "CswNbtObjClassGenerator.beforeDeleteNode() got an invalid object class: " + TargetObjectClass.ObjectClass ); } CswNbtMetaDataNodeTypeProp GeneratorProp = TargetNodeType.getNodeTypePropByObjectClassProp( CswNbtPropertySetGeneratorTarget.PropertyName.Generator ); CswNbtMetaDataNodeTypeProp IsFutureProp = TargetNodeType.getNodeTypePropByObjectClassProp( CswNbtPropertySetGeneratorTarget.PropertyName.IsFuture ); CswNbtView View = new CswNbtView( _CswNbtResources ); View.ViewName = "CswNbtObjClassSchedule.beforeDeleteNode()"; CswNbtViewRelationship GeneratorRelationship = View.AddViewRelationship( GeneratorObjectClass, false ); GeneratorRelationship.NodeIdsToFilterIn.Add( _CswNbtNode.NodeId ); CswNbtViewRelationship TargetRelationship = View.AddViewRelationship( GeneratorRelationship, CswEnumNbtViewPropOwnerType.Second, GeneratorProp, false ); CswNbtViewProperty IsFutureProperty = View.AddViewProperty( TargetRelationship, IsFutureProp ); View.AddViewPropertyFilter( IsFutureProperty, CswNbtFieldTypeRuleLogical.SubFieldName.Checked, CswEnumNbtFilterMode.Equals, CswEnumTristate.True ); ICswNbtTree TargetTree = _CswNbtResources.Trees.getTreeFromView( _CswNbtResources.CurrentNbtUser, View, true, false, false ); TargetTree.goToRoot(); if( TargetTree.getChildNodeCount() > 0 ) // should always be the case { TargetTree.goToNthChild( 0 ); if( TargetTree.getChildNodeCount() > 0 ) // might not always be the case { for( int i = 0; i < TargetTree.getChildNodeCount(); i += 1 ) { TargetTree.goToNthChild( i ); CswNbtNode TargetNode = TargetTree.getNodeForCurrentPosition(); TargetNode.delete(); TargetTree.goToParentNode(); } } } } } } }
/// <summary> /// Returns a view used to show the containers available for dispense for the given Request Item /// </summary> /// <returns></returns> public CswNbtView getDispensibleContainersView(CswPrimaryKey RequestItemId) { CswNbtView Ret = new CswNbtView(_CswNbtResources); CswNbtObjClassRequestItem NodeAsRequestItem = _CswNbtResources.Nodes[RequestItemId]; if (null != NodeAsRequestItem) { //TODO - if we're dispensing a specific container or EP, we don't care about the specific material CswNbtNode TargetNode = _CswNbtResources.Nodes[NodeAsRequestItem.Target.RelatedNodeId]; if (null != TargetNode) { Ret.ViewName = "Containers of " + TargetNode.NodeName; Ret.ViewMode = CswEnumNbtViewRenderingMode.Grid; Ret.Category = "Dispensing"; CswNbtMetaDataObjectClass ContainerOc = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ContainerClass); CswNbtViewRelationship ContainerRel = Ret.AddViewRelationship(ContainerOc, true); CswNbtViewProperty BarcodeVp = Ret.AddViewProperty(ContainerRel, ContainerOc.getObjectClassProp(CswNbtObjClassContainer.PropertyName.Barcode)); //Filter Containers by Materials in Requested EP if (NodeAsRequestItem.Type.Value == CswNbtObjClassRequestItem.Types.EnterprisePart) { CswCommaDelimitedString EPMaterialPks = _getMaterialPKsForEP(NodeAsRequestItem.EnterprisePart.RelatedNodeId); Ret.AddViewPropertyAndFilter(ContainerRel, ContainerOc.getObjectClassProp(CswNbtObjClassContainer.PropertyName.Material), SubFieldName: CswEnumNbtSubFieldName.NodeID, FilterMode: CswEnumNbtFilterMode.In, Value: EPMaterialPks.ToString(), ShowInGrid: false); } else//Filters Containers by Requested Material { Ret.AddViewPropertyAndFilter(ContainerRel, ContainerOc.getObjectClassProp(CswNbtObjClassContainer.PropertyName.Material), SubFieldName: CswEnumNbtSubFieldName.NodeID, Value: TargetNode.NodeId.PrimaryKey.ToString(), ShowInGrid: false); } Ret.AddViewPropertyAndFilter(ContainerRel, ContainerOc.getObjectClassProp(CswNbtObjClassContainer.PropertyName.Missing), FilterMode: CswEnumNbtFilterMode.NotEquals, Value: CswEnumTristate.True, ShowInGrid: false); Ret.AddViewPropertyAndFilter(ContainerRel, ContainerOc.getObjectClassProp(CswNbtObjClassContainer.PropertyName.Quantity), SubFieldName: CswEnumNbtSubFieldName.Value, FilterMode: CswEnumNbtFilterMode.GreaterThan, Value: "0"); Ret.AddViewPropertyAndFilter(ContainerRel, ContainerOc.getObjectClassProp(CswNbtObjClassContainer.PropertyName.Status), FilterMode: CswEnumNbtFilterMode.NotEquals, Value: CswEnumNbtContainerStatuses.Expired, ShowInGrid: false); Ret.AddViewProperty(ContainerRel, ContainerOc.getObjectClassProp(CswNbtObjClassContainer.PropertyName.Location)); CswNbtMetaDataObjectClass LocationOc = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.LocationClass); CswNbtMetaDataObjectClassProp InventoryGroupOcp = LocationOc.getObjectClassProp(CswNbtObjClassLocation.PropertyName.InventoryGroup); CswNbtViewRelationship LocationVr = Ret.AddViewRelationship(ContainerRel, CswEnumNbtViewPropOwnerType.First, ContainerOc.getObjectClassProp(CswNbtObjClassContainer.PropertyName.Location), IncludeDefaultFilters: true); if (CswTools.IsPrimaryKey(NodeAsRequestItem.InventoryGroup.RelatedNodeId)) //Filter by Inventory Group { Ret.AddViewPropertyAndFilter(LocationVr, InventoryGroupOcp, SubFieldName: CswEnumNbtSubFieldName.NodeID, Value: NodeAsRequestItem.InventoryGroup.RelatedNodeId.PrimaryKey.ToString(), ShowInGrid: false); } else { Ret.AddViewPropertyAndFilter(LocationVr, InventoryGroupOcp, SubFieldName: CswEnumNbtSubFieldName.NodeID, FilterMode: CswEnumNbtFilterMode.Null, ShowInGrid: false); } if (NodeAsRequestItem.Type.Value == CswNbtObjClassRequestItem.Types.MaterialSize) //Filter By Size (if present) { Ret.AddViewPropertyAndFilter(ContainerRel, ContainerOc.getObjectClassProp(CswNbtObjClassContainer.PropertyName.Size), SubFieldName: CswEnumNbtSubFieldName.NodeID, Value: NodeAsRequestItem.Size.RelatedNodeId.PrimaryKey.ToString(), ShowInGrid: false); } } } return(Ret); }
}//afterPopulateProps() public override void addDefaultViewFilters(CswNbtViewRelationship ParentRelationship) { // BZ 10454 // Filter out Retired Equipment by default CswNbtMetaDataObjectClassProp StatusOCP = this.ObjectClass.getObjectClassProp(PropertyName.Status); CswNbtViewProperty StatusViewProp = ParentRelationship.View.AddViewProperty(ParentRelationship, StatusOCP); CswNbtViewPropertyFilter StatusViewPropFilter = ParentRelationship.View.AddViewPropertyFilter(StatusViewProp, StatusOCP.getFieldTypeRule().SubFields.Default.Name, CswEnumNbtFilterMode.NotEquals, "Retired", //StatusOptionToDisplayString( StatusOption.Retired ), false); }