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(); }
//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); }
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(); }
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; }
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() //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); }
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
public override void update() { CswNbtMetaDataNodeType TimeUnitNodeType = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Unit (Time)" ); if( null != TimeUnitNodeType ) { CswNbtObjClassUnitOfMeasure NodeAsUnitOfMeasure = null; foreach( CswNbtObjClassUnitOfMeasure Unit in TimeUnitNodeType.getNodes( forceReInit: true, includeSystemNodes: false ) ) { if( Unit.Name.Text.ToLower().Replace( " ", "" ) == "months" ) { NodeAsUnitOfMeasure = Unit; break; } } NodeAsUnitOfMeasure = NodeAsUnitOfMeasure ?? _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( TimeUnitNodeType.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode ); NodeAsUnitOfMeasure.Name.Text = "Months"; NodeAsUnitOfMeasure.Fractional.Checked = Tristate.False; NodeAsUnitOfMeasure.postChanges( true ); CswNbtMetaDataObjectClass MaterialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.MaterialClass ); foreach( CswNbtMetaDataNodeType MaterialNodeType in MaterialOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp ExpInt = MaterialNodeType.getNodeTypePropByObjectClassProp( CswNbtObjClassMaterial.PropertyName.ExpirationInterval ); CswNbtView TimeView = _CswNbtSchemaModTrnsctn.restoreView( ExpInt.ViewId ); CswNbtViewRelationship TimeUnitNodeTypeRelationship = TimeView.Root.ChildRelationships[0]; CswNbtMetaDataNodeTypeProp TimeNameNtp = TimeUnitNodeType.getNodeTypePropByObjectClassProp( CswNbtObjClassUnitOfMeasure.PropertyName.Name ); CswNbtViewProperty TimeNameViewProp = TimeView.AddViewProperty( TimeUnitNodeTypeRelationship, TimeNameNtp ); TimeView.AddViewPropertyFilter( ParentViewProperty: TimeNameViewProp, Conjunction: CswNbtPropFilterSql.PropertyFilterConjunction.Or, SubFieldName: CswNbtSubField.SubFieldName.Text, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.Equals, Value: "Months" ); TimeView.AddViewPropertyFilter( ParentViewProperty: TimeNameViewProp, Conjunction: CswNbtPropFilterSql.PropertyFilterConjunction.Or, SubFieldName: CswNbtSubField.SubFieldName.Text, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.Equals, Value: "Years" ); TimeView.save(); } } }//Update()
// 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); }
public override void update() { CswNbtMetaDataObjectClass materialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.MaterialClass ); foreach( CswNbtMetaDataNodeType materialNT in materialOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp documentNTP = materialNT.getNodeTypeProp( "Documents" ); if( null != documentNTP ) { CswNbtView documentsPropView = _CswNbtSchemaModTrnsctn.restoreView( documentNTP.ViewId ); foreach( CswNbtViewProperty viewProp in documentsPropView.getOrderedViewProps( true ) ) { if( viewProp.Name.Equals( CswNbtObjClassDocument.PropertyName.Archived ) ) { documentsPropView.AddViewPropertyFilter( viewProp, Conjunction: CswNbtPropFilterSql.PropertyFilterConjunction.Or, SubFieldName: CswNbtSubField.SubFieldName.Checked, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.Equals, Value: CswConvert.ToDbVal( true ).ToString() ); } } documentsPropView.save(); } // if( null != documentNTP ) } //foreach( CswNbtMetaDataNodeType materialNT in materialOC.getNodeTypes() ) } //Update()
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); }
//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); }
public CswNbtNode makeRoleNodeFromRoleName(string RoleName) { CswNbtNode RoleNode = null; CswNbtMetaDataObjectClass Role_ObjectClass = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.RoleClass); CswNbtMetaDataObjectClassProp RoleName_ObjectClassProp = Role_ObjectClass.getObjectClassProp(CswNbtObjClassRole.PropertyName.Name); // generate the view CswNbtView View = new CswNbtView(_CswNbtResources); View.ViewName = "CswNbtNodes.makeRoleNodeFromRoleName(" + RoleName + ")"; CswNbtViewRelationship RoleRelationship = View.AddViewRelationship(Role_ObjectClass, false); CswNbtViewProperty Prop = View.AddViewProperty(RoleRelationship, RoleName_ObjectClassProp); CswNbtViewPropertyFilter Filter = View.AddViewPropertyFilter(Prop, CswNbtFieldTypeRuleText.SubFieldName.Text, CswEnumNbtFilterMode.Equals, RoleName, false); // generate the tree ICswNbtTree UserTree = _CswNbtResources.Trees.getTreeFromView(View, false, true, IncludeHiddenNodes: true); // get user node UserTree.goToRoot(); if (UserTree.getChildNodeCount() > 0) { UserTree.goToNthChild(0); RoleNode = UserTree.getNodeForCurrentPosition(); } return(RoleNode); }
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()
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); }
}//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); }
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 override void update() { //get all views and find the dispense requests view DataTable Views = _CswNbtSchemaModTrnsctn.ViewSelect.getAllViews(); CswNbtViewId dispenseRequestsViewId = new CswNbtViewId(); foreach( DataRow row in Views.Rows ) { if( row["viewname"].Equals( "Dispense Requests: Open" ) ) { dispenseRequestsViewId.set( CswConvert.ToInt32( row["nodeviewid"] ) ); } } /* * The dispense requests view is broken. It has THREE 'Status' properties, each with different filters */ if( dispenseRequestsViewId.isSet() ) { CswNbtView DispenseRequestsView = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( dispenseRequestsViewId ); LinkedList<CswNbtViewProperty> viewProps = DispenseRequestsView.getOrderedViewProps( false ); CswNbtViewRelationship parent = null; foreach( CswNbtViewProperty viewProp in viewProps ) //delete the 3 duplicate 'Status' view props from this view { if( viewProp.Name.Equals( "Status" ) ) { DispenseRequestsView.removeViewProperty( viewProp.MetaDataProp ); } else { parent = (CswNbtViewRelationship) viewProp.Parent; //get the view parent to add the Status prop later (in this specific case this get the root) } } //add the property to the view ONCE CswNbtMetaDataObjectClass requestItemOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.RequestItemClass ); CswNbtViewProperty statusVP = DispenseRequestsView.AddViewProperty( parent, requestItemOC.getObjectClassProp( CswNbtObjClassRequestItem.PropertyName.Status ) ); //now add the filters DispenseRequestsView.AddViewPropertyFilter( statusVP, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.NotEquals, Value: "Completed" ); DispenseRequestsView.AddViewPropertyFilter( statusVP, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.NotEquals, Value: "Cancelled" ); DispenseRequestsView.save(); } }//Update()
private CswNbtView _getReconciliationScansForOutOfScopeContainersView(ContainerData.ReconciliationRequest Request) { Collection <CswPrimaryKey> LocationIds = _getLocationIds(Request); CswNbtMetaDataObjectClass LocationOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.LocationClass); CswNbtMetaDataObjectClass ContainerOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ContainerClass); CswNbtMetaDataObjectClassProp CLocationOCP = ContainerOC.getObjectClassProp(CswNbtObjClassContainer.PropertyName.Location); CswNbtMetaDataObjectClass ContainerLocationOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ContainerLocationClass); CswNbtMetaDataObjectClassProp ContainerOCP = ContainerLocationOC.getObjectClassProp(CswNbtObjClassContainerLocation.PropertyName.Container); CswNbtMetaDataObjectClassProp TypeOCP = ContainerLocationOC.getObjectClassProp(CswNbtObjClassContainerLocation.PropertyName.Type); CswNbtMetaDataObjectClassProp LocationOCP = ContainerLocationOC.getObjectClassProp(CswNbtObjClassContainerLocation.PropertyName.Location); CswNbtMetaDataObjectClassProp ScanDateOCP = ContainerLocationOC.getObjectClassProp(CswNbtObjClassContainerLocation.PropertyName.ScanDate); CswNbtView ContainerLocationsView = new CswNbtView(_CswNbtResources); //Filter to selected location (and all child locations if applicable) CswNbtViewRelationship LocationVR = ContainerLocationsView.AddViewRelationship(LocationOC, false); LocationVR.NodeIdsToFilterIn = LocationIds; CswCommaDelimitedString LocIds = new CswCommaDelimitedString(); foreach (CswPrimaryKey LocId in LocationIds) { LocIds.Add(LocId.PrimaryKey.ToString()); } //Filter to Container Location records of type Reconcile Scans in the current time scope CswNbtViewRelationship ContainerLocationVR = ContainerLocationsView.AddViewRelationship(LocationVR, CswEnumNbtViewPropOwnerType.Second, LocationOCP, false); CswNbtViewProperty TypeVP = ContainerLocationsView.AddViewProperty(ContainerLocationVR, TypeOCP); ContainerLocationsView.AddViewPropertyFilter(TypeVP, FilterMode: CswEnumNbtFilterMode.Equals, Value: CswEnumNbtContainerLocationTypeOptions.ReconcileScans.ToString()); CswNbtViewProperty ScanDateVP = ContainerLocationsView.AddViewProperty(ContainerLocationVR, ScanDateOCP); if (CswConvert.ToDateTime(Request.StartDate) > CswConvert.ToDateTime(Request.EndDate)) { Request.StartDate = Request.EndDate; } ContainerLocationsView.AddViewPropertyFilter(ScanDateVP, FilterMode: CswEnumNbtFilterMode.GreaterThanOrEquals, Value: Request.StartDate); ContainerLocationsView.AddViewPropertyFilter(ScanDateVP, FilterMode: CswEnumNbtFilterMode.LessThanOrEquals, Value: Request.EndDate); ContainerLocationsView.setSortProperty(ScanDateVP, CswEnumNbtViewPropertySortMethod.Descending); //Filter to Containers not matching current location scope CswNbtViewRelationship ContainerVR = ContainerLocationsView.AddViewRelationship(ContainerLocationVR, CswEnumNbtViewPropOwnerType.First, ContainerOCP, false); CswNbtViewProperty CLocVP = ContainerLocationsView.AddViewProperty(ContainerVR, CLocationOCP); ContainerLocationsView.AddViewPropertyFilter(CLocVP, CswEnumNbtSubFieldName.NodeID, CswEnumNbtFilterMode.In, LocIds.ToString()); return(ContainerLocationsView); }
public static void setReceiptLotPermissions(CswNbtResources CswNbtResources, bool ModuleIsActive) { // CIS-52258 - grant Receipt Lot permissions to cispro_ roles CswNbtMetaDataObjectClass ReceiptLotOC = CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ReceiptLotClass); CswNbtMetaDataObjectClass RoleOC = CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.RoleClass); CswNbtMetaDataObjectClassProp RoleNameOCP = RoleOC.getObjectClassProp(CswNbtObjClassRole.PropertyName.Name); CswNbtView View = new CswNbtView(CswNbtResources); View.ViewName = "MLM Enable - Find CISPro roles"; CswNbtViewRelationship roleRelationship = View.AddViewRelationship(RoleOC, false); CswNbtViewProperty roleNameProp = View.AddViewProperty(roleRelationship, RoleNameOCP); View.AddViewPropertyFilter(roleNameProp, SubFieldName: CswNbtFieldTypeRuleText.SubFieldName.Text, FilterMode: CswEnumNbtFilterMode.Begins, Value: "cispro_", CaseSensitive: false); ICswNbtTree RoleTree = CswNbtResources.Trees.getTreeFromView(View, false, true, IncludeHiddenNodes: true); for (Int32 r = 0; r < RoleTree.getChildNodeCount(); r++) { RoleTree.goToNthChild(r); CswNbtObjClassRole RoleNode = RoleTree.getCurrentNode(); foreach (CswNbtMetaDataNodeType ReceiptLotNT in ReceiptLotOC.getNodeTypes()) { //if MLM is on, everyone needs View and admins/receivers need Edit if (CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.MLM)) { CswNbtResources.Permit.set(CswEnumNbtNodeTypePermission.View, ReceiptLotNT, RoleNode, true); if ("cispro_receiver" == RoleNode.Name.Text.ToLower() || "cispro_admin" == RoleNode.Name.Text.ToLower()) { CswNbtResources.Permit.set(CswEnumNbtNodeTypePermission.Edit, ReceiptLotNT, RoleNode, true); } } //otherwise, if only Lot Info is on, no one needs Edit, but everyone needs View else if (CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.ManufacturerLotInfo)) { CswNbtResources.Permit.set(CswEnumNbtNodeTypePermission.View, ReceiptLotNT, RoleNode, true); CswNbtResources.Permit.set(CswEnumNbtNodeTypePermission.Edit, ReceiptLotNT, RoleNode, false); } //if both MLM and Lot Info are off, no one needs to View or Edit else { CswNbtResources.Permit.set(CswEnumNbtNodeTypePermission.View, ReceiptLotNT, RoleNode, false); CswNbtResources.Permit.set(CswEnumNbtNodeTypePermission.Edit, ReceiptLotNT, RoleNode, false); } } //RoleNode.postChanges( false ); CswNbtPermit does this. RoleTree.goToParentNode(); } } // setReceiptLotPermissions()
/// <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); }
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(); } } } } } } }
} // CalculateMTBF() private Int32 _countProblems(DateTime StartDate, DateTime EndDate) { Int32 ret = 0; if (this.NodeId != null) { // BZ 6779 CswNbtMetaDataObjectClass ProblemOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ProblemClass); CswNbtMetaDataObjectClassProp OwnerOCP = ProblemOC.getObjectClassProp(CswNbtObjClassProblem.PropertyName.Owner); CswNbtMetaDataObjectClassProp FailureOCP = ProblemOC.getObjectClassProp(CswNbtObjClassProblem.PropertyName.Failure); CswNbtMetaDataObjectClassProp DateOpenedOCP = ProblemOC.getObjectClassProp(CswNbtObjClassProblem.PropertyName.DateOpened); CswNbtView ProblemFailuresView = new CswNbtView(_CswNbtResources); ProblemFailuresView.ViewName = "Problem Failures"; CswNbtViewRelationship ParentRelationship = ProblemFailuresView.AddViewRelationship(this.NodeTypeProp.getNodeType(), true); ParentRelationship.NodeIdsToFilterIn.Add(this.NodeId); CswNbtViewRelationship ChildRelationship = ProblemFailuresView.AddViewRelationship(ParentRelationship, CswEnumNbtViewPropOwnerType.Second, OwnerOCP, true); // BZ 10277 - Only Problems flagged Failure CswNbtViewProperty FailureVP = ProblemFailuresView.AddViewProperty(ChildRelationship, FailureOCP); CswNbtViewPropertyFilter FailureFilter = ProblemFailuresView.AddViewPropertyFilter(FailureVP, CswNbtFieldTypeRuleLogical.SubFieldName.Checked, CswEnumNbtFilterMode.Equals, CswEnumTristate.True.ToString(), false); // BZ 10259...within the calculation date scope CswNbtViewProperty DateOpenedVP = ProblemFailuresView.AddViewProperty(ChildRelationship, DateOpenedOCP); CswNbtViewPropertyFilter DateOpenedStartFilter = ProblemFailuresView.AddViewPropertyFilter(DateOpenedVP, CswNbtFieldTypeRuleDateTime.SubFieldName.Value, CswEnumNbtFilterMode.GreaterThanOrEquals, StartDate.ToString(), false); CswNbtViewPropertyFilter DateOpenedEndFilter = ProblemFailuresView.AddViewPropertyFilter(DateOpenedVP, CswNbtFieldTypeRuleDateTime.SubFieldName.Value, CswEnumNbtFilterMode.LessThanOrEquals, EndDate.ToString(), false); ICswNbtTree ProblemNodesTree = _CswNbtResources.Trees.getTreeFromView(_CswNbtResources.CurrentNbtUser, ProblemFailuresView, true, false, false); if (ProblemNodesTree.getChildNodeCount() > 0) { ProblemNodesTree.goToNthChild(0); ret = ProblemNodesTree.getChildNodeCount(); } } return(ret); } // _countProblems()
private static ICswNbtTree _getPendingBatchOpsTree(CswNbtResources CswNbtResources) { CswNbtMetaDataObjectClass BatchOpOC = CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.BatchOpClass); CswNbtMetaDataObjectClassProp StatusOCP = BatchOpOC.getObjectClassProp(CswNbtObjClassBatchOp.PropertyName.Status); CswNbtMetaDataObjectClassProp PriorityOCP = BatchOpOC.getObjectClassProp(CswNbtObjClassBatchOp.PropertyName.Priority); CswNbtView NextBatchOpView = new CswNbtView(CswNbtResources); CswNbtViewRelationship BatchVR = NextBatchOpView.AddViewRelationship(BatchOpOC, false); CswNbtViewProperty StatusVP = NextBatchOpView.AddViewProperty(BatchVR, StatusOCP); NextBatchOpView.AddViewPropertyFilter(StatusVP, FilterMode: CswEnumNbtFilterMode.NotEquals, Value: CswEnumNbtBatchOpStatus.Completed.ToString()); NextBatchOpView.AddViewPropertyFilter(StatusVP, FilterMode: CswEnumNbtFilterMode.NotEquals, Value: CswEnumNbtBatchOpStatus.Error.ToString()); NextBatchOpView.AddViewPropertyFilter(StatusVP, FilterMode: CswEnumNbtFilterMode.NotEquals, Value: CswEnumNbtBatchOpStatus.Unknown.ToString()); CswNbtViewProperty PriorityVP = NextBatchOpView.AddViewProperty(BatchVR, PriorityOCP); NextBatchOpView.setSortProperty(PriorityVP, CswEnumNbtViewPropertySortMethod.Descending); ICswNbtTree BatchOpTree = CswNbtResources.Trees.getTreeFromView(NextBatchOpView, false, true, false); return(BatchOpTree); }
}//makeNodeFromNodeTypeId() /// <summary> /// Fetches a User Node from the Username, using a View and a TreeLoader. /// </summary> /// <remarks> /// not sure if this belongs here in CswNbtNodeCollection /// </remarks> /// <param name="Username">Username of User</param> /// <param name="RequireViewPermissions"></param> public CswNbtNode makeUserNodeFromUsername(string Username, bool RequireViewPermissions = true) { CswTimer Timer = new CswTimer(); CswNbtNode UserNode = null; CswNbtMetaDataObjectClass User_ObjectClass = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.UserClass); CswNbtMetaDataObjectClassProp UserName_ObjectClassProp = User_ObjectClass.getObjectClassProp(CswNbtObjClassUser.PropertyName.Username); _CswNbtResources.logTimerResult("makeUserNodeFromUsername 1", Timer); // generate the view CswNbtView View = new CswNbtView(_CswNbtResources); View.ViewName = "CswNbtNodes.makeUserNodeFromUsername(" + Username + ")"; CswNbtViewRelationship UserRelationship = View.AddViewRelationship(User_ObjectClass, false); CswNbtViewProperty Prop = View.AddViewProperty(UserRelationship, UserName_ObjectClassProp); CswNbtViewPropertyFilter Filter = View.AddViewPropertyFilter(Prop, CswNbtFieldTypeRuleText.SubFieldName.Text, CswEnumNbtFilterMode.Equals, Username, false); _CswNbtResources.logTimerResult("makeUserNodeFromUsername 2", Timer); // generate the tree ICswNbtTree UserTree = _CswNbtResources.Trees.getTreeFromView(View, RequireViewPermissions, true, IncludeHiddenNodes: true); _CswNbtResources.logTimerResult("makeUserNodeFromUsername 3", Timer); // get user node UserTree.goToRoot(); if (UserTree.getChildNodeCount() > 0) { UserTree.goToNthChild(0); _CswNbtResources.logTimerResult("makeUserNodeFromUsername 4", Timer); UserNode = UserTree.getNodeForCurrentPosition(); } //else //{ // foreach( CswNbtMetaDataNodeType UserNodeTypes in User_ObjectClass.NodeTypes ) // { // foreach( CswNbtNode user in UserNodeTypes.getNodes( true, false ) ) // { // if( user.Properties[UserName_ObjectClassProp.PropName].AsText.Text == Username ) // { // UserNode = user; // break; // } // } // } _CswNbtResources.logTimerResult("makeUserNodeFromUsername 5", Timer); return(UserNode); }
private void _addDefaultInspectionDesignViewPropsAndFilters(CswNbtView View, CswNbtViewRelationship InspectionDesignVr, CswNbtMetaDataObjectClass InspectionDesignOc) { CswNbtViewProperty DueDateVp = View.AddViewPropertyByName(InspectionDesignVr, InspectionDesignOc, CswNbtObjClassInspectionDesign.PropertyName.DueDate); DueDateVp.SortBy = true; CswNbtViewProperty LocationVp = View.AddViewPropertyByName(InspectionDesignVr, InspectionDesignOc, CswNbtObjClassInspectionDesign.PropertyName.Location); LocationVp.SortBy = true; View.AddViewPropertyByName(InspectionDesignVr, InspectionDesignOc, "Barcode"); CswNbtMetaDataObjectClassProp StatusOcp = InspectionDesignOc.getObjectClassProp(CswNbtObjClassInspectionDesign.PropertyName.Status); CswNbtViewProperty StatusVp = View.AddViewProperty(InspectionDesignVr, StatusOcp); string Completed = CswEnumNbtInspectionStatus.Completed; string Cancelled = CswEnumNbtInspectionStatus.Cancelled; string CompletedLate = CswEnumNbtInspectionStatus.CompletedLate; string Missed = CswEnumNbtInspectionStatus.Missed; View.AddViewPropertyFilter(StatusVp, StatusOcp.getFieldTypeRule().SubFields.Default.Name, CswEnumNbtFilterMode.NotEquals, Completed, false); View.AddViewPropertyFilter(StatusVp, StatusOcp.getFieldTypeRule().SubFields.Default.Name, CswEnumNbtFilterMode.NotEquals, Cancelled, false); View.AddViewPropertyFilter(StatusVp, StatusOcp.getFieldTypeRule().SubFields.Default.Name, CswEnumNbtFilterMode.NotEquals, CompletedLate, false); View.AddViewPropertyFilter(StatusVp, StatusOcp.getFieldTypeRule().SubFields.Default.Name, CswEnumNbtFilterMode.NotEquals, Missed, false); }
private CswNbtView _getReconciliationView(ContainerData.ReconciliationRequest Request) { Collection <CswPrimaryKey> LocationIds = _getLocationIds(Request); CswNbtMetaDataObjectClass LocationOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.LocationClass); CswNbtMetaDataObjectClass ContainerOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ContainerClass); CswNbtMetaDataObjectClassProp LocationOCP = ContainerOC.getObjectClassProp(CswNbtObjClassContainer.PropertyName.Location); CswNbtMetaDataObjectClassProp DateCreatedOCP = ContainerOC.getObjectClassProp(CswNbtObjClassContainer.PropertyName.DateCreated); CswNbtMetaDataObjectClassProp DisposedOCP = ContainerOC.getObjectClassProp(CswNbtObjClassContainer.PropertyName.Disposed); CswNbtMetaDataObjectClass ContainerLocationOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ContainerLocationClass); CswNbtMetaDataObjectClassProp ContainerOCP = ContainerLocationOC.getObjectClassProp(CswNbtObjClassContainerLocation.PropertyName.Container); CswNbtMetaDataObjectClassProp ScanDateOCP = ContainerLocationOC.getObjectClassProp(CswNbtObjClassContainerLocation.PropertyName.ScanDate); CswNbtView ContainersView = new CswNbtView(_CswNbtResources); CswNbtViewRelationship LocationVR = ContainersView.AddViewRelationship(LocationOC, false); LocationVR.NodeIdsToFilterIn = LocationIds; CswNbtViewRelationship ContainerVR = ContainersView.AddViewRelationship(LocationVR, CswEnumNbtViewPropOwnerType.Second, LocationOCP, false); CswNbtViewProperty DateCreatedVP = ContainersView.AddViewProperty(ContainerVR, DateCreatedOCP); ContainersView.AddViewPropertyFilter(DateCreatedVP, FilterMode: CswEnumNbtFilterMode.LessThanOrEquals, Value: Request.EndDate); CswNbtViewProperty DisposedVP = ContainersView.AddViewProperty(ContainerVR, DisposedOCP); CswNbtViewRelationship ContainerLocationVR = ContainersView.AddViewRelationship(ContainerVR, CswEnumNbtViewPropOwnerType.Second, ContainerOCP, false); CswNbtViewProperty ScanDateVP = ContainersView.AddViewProperty(ContainerLocationVR, ScanDateOCP); if (CswConvert.ToDateTime(Request.StartDate) > CswConvert.ToDateTime(Request.EndDate)) { Request.StartDate = Request.EndDate; } ContainersView.AddViewPropertyFilter(ScanDateVP, FilterMode: CswEnumNbtFilterMode.GreaterThanOrEquals, Value: Request.StartDate); ContainersView.AddViewPropertyFilter(ScanDateVP, FilterMode: CswEnumNbtFilterMode.LessThanOrEquals, Value: Request.EndDate); ContainersView.setSortProperty(ScanDateVP, CswEnumNbtViewPropertySortMethod.Descending); return(ContainersView); }
public CswNbtView getTreeViewOfFutureNodes(IEnumerable GeneratorNodes) { CswNbtView ReturnVal = new CswNbtView(_CswNbtResources); ReturnVal.ViewName = "All Future Nodes"; CswNbtMetaDataObjectClass GeneratorObjectClass = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.GeneratorClass); CswNbtViewRelationship GeneratorRelationship = ReturnVal.AddViewRelationship(GeneratorObjectClass, false); ArrayList TargetNodeTypeIds = new ArrayList(); foreach (CswNbtNode CurrentGeneratorNode in GeneratorNodes) { GeneratorRelationship.NodeIdsToFilterIn.Add(CurrentGeneratorNode.NodeId); CswNbtObjClassGenerator Generator = CurrentGeneratorNode; foreach (String nodeTypeId in Generator.TargetType.SelectedNodeTypeIds) { Int32 CurrentTargetNodeTypeId = CswConvert.ToInt32(nodeTypeId); if (!(TargetNodeTypeIds.Contains(CurrentTargetNodeTypeId))) { TargetNodeTypeIds.Add(CurrentTargetNodeTypeId); } } } foreach (Int32 TargetNodeTypeId in TargetNodeTypeIds) { CswNbtMetaDataNodeType TargetNodeType = _CswNbtResources.MetaData.getNodeType(TargetNodeTypeId); if (TargetNodeType != null) { CswNbtMetaDataObjectClass TargetObjectClass = TargetNodeType.getObjectClass(); CswNbtObjClass TargetObjClass = CswNbtObjClassFactory.makeObjClass(_CswNbtResources, TargetObjectClass); if (!(TargetObjClass is CswNbtPropertySetGeneratorTarget)) { throw new CswDniException("CswNbtActGenerateFutureNodes.getTreeViewOfFutureNodes() got an invalid object class: " + TargetObjectClass.ObjectClass); } CswNbtViewRelationship TargetRelationship = ReturnVal.AddViewRelationship(GeneratorRelationship, CswEnumNbtViewPropOwnerType.Second, TargetNodeType.getNodeTypePropByObjectClassProp(CswNbtPropertySetGeneratorTarget.PropertyName.Generator), false); CswNbtViewProperty IsFutureFlagProperty = ReturnVal.AddViewProperty(TargetRelationship, TargetNodeType.getNodeTypePropByObjectClassProp(CswNbtPropertySetGeneratorTarget.PropertyName.IsFuture)); CswNbtViewPropertyFilter IsFutureFilter = ReturnVal.AddViewPropertyFilter(IsFutureFlagProperty, CswNbtFieldTypeRuleLogical.SubFieldName.Checked, CswEnumNbtFilterMode.Equals, CswEnumTristate.True, false); } } return(ReturnVal); }//getTreeViewOfFutureNodes()
public override void update() { CswNbtMetaDataObjectClass TaskOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.TaskClass ); CswNbtMetaDataObjectClassProp DueDataOCP = TaskOC.getObjectClassProp( CswNbtObjClassTask.PropertyName.DueDate ); CswNbtMetaDataObjectClassProp DoneOnOCP = TaskOC.getObjectClassProp( CswNbtObjClassTask.PropertyName.DoneOn ); CswNbtMetaDataObjectClassProp CompletedOCP = TaskOC.getObjectClassProp( CswNbtObjClassTask.PropertyName.Completed ); CswNbtMetaDataObjectClassProp SummaryOCP = TaskOC.getObjectClassProp( CswNbtObjClassTask.PropertyName.Summary ); CswNbtMetaDataObjectClassProp OwnerOCP = TaskOC.getObjectClassProp( CswNbtObjClassTask.PropertyName.Owner ); //Equipment or Assembly for NTs CswNbtMetaDataObjectClassProp TechOCP = TaskOC.getObjectClassProp( CswNbtObjClassTask.PropertyName.Technician ); //Location could not be upgraded to an OCP (See BV) so we just get the first Location NTP CswNbtMetaDataNodeTypeProp LocationNTP = null; CswNbtMetaDataNodeType FirstTaskNT = TaskOC.getNodeTypes().FirstOrDefault(); if( null != FirstTaskNT ) { LocationNTP = FirstTaskNT.getNodeTypeProp( "Location" ); } CswNbtView CompletedTasks = _CswNbtSchemaModTrnsctn.makeSafeView( "Tasks: Completed", CswEnumNbtViewVisibility.Global ); CompletedTasks.SetViewMode( CswEnumNbtViewRenderingMode.Grid ); CompletedTasks.Category = "Tasks"; CswNbtViewRelationship parent = CompletedTasks.AddViewRelationship( TaskOC, true ); CompletedTasks.AddViewProperty( parent, DueDataOCP, 1 ); CompletedTasks.AddViewProperty( parent, DoneOnOCP, 2 ); CswNbtViewProperty completedVP = CompletedTasks.AddViewProperty( parent, CompletedOCP ); CompletedTasks.AddViewPropertyFilter( completedVP, Value: true.ToString() ); completedVP.ShowInGrid = false; CompletedTasks.AddViewProperty( parent, SummaryOCP, 3 ); CompletedTasks.AddViewProperty( parent, OwnerOCP, 4 ); if( null != LocationNTP ) { CompletedTasks.AddViewProperty( parent, LocationNTP, 5 ); } CompletedTasks.AddViewProperty( parent, TechOCP, 6 ); CompletedTasks.save(); } // update()
private void _updateUnapprovedMaterialsView() { CswNbtMetaDataObjectClass MaterialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); CswNbtMetaDataObjectClassProp MaterialIdProp = MaterialOC.getObjectClassProp( CswNbtPropertySetMaterial.PropertyName.MaterialId ); CswNbtMetaDataObjectClassProp TradeNameProp = MaterialOC.getObjectClassProp( CswNbtPropertySetMaterial.PropertyName.TradeName ); CswNbtMetaDataObjectClassProp SupplierProp = MaterialOC.getObjectClassProp( CswNbtPropertySetMaterial.PropertyName.Supplier ); CswNbtMetaDataObjectClassProp PartNoProp = MaterialOC.getObjectClassProp( CswNbtPropertySetMaterial.PropertyName.PartNumber ); CswNbtMetaDataObjectClassProp CASNoProp = MaterialOC.getObjectClassProp( CswNbtObjClassChemical.PropertyName.CasNo ); CswNbtView UnapprovedMaterialsView = _CswNbtSchemaModTrnsctn.restoreView( "Unapproved Materials", CswEnumNbtViewVisibility.Global ); if( null == UnapprovedMaterialsView ) { UnapprovedMaterialsView = _CswNbtSchemaModTrnsctn.makeNewView( "Unapproved Materials", CswEnumNbtViewVisibility.Global ); UnapprovedMaterialsView.ViewMode = CswEnumNbtViewRenderingMode.Grid; UnapprovedMaterialsView.Category = "Materials"; } else { UnapprovedMaterialsView.Root.ChildRelationships.Clear(); } CswNbtViewRelationship MatRel = UnapprovedMaterialsView.AddViewRelationship( MaterialPS, true ); CswNbtViewProperty ApprovedForReceivingPropVP = MaterialOC.getNodeTypes() .Select( MaterialNT => MaterialNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetMaterial.PropertyName.ApprovedForReceiving ) ) .Select( ApprovedForReceivingProp => UnapprovedMaterialsView.AddViewProperty( MatRel, ApprovedForReceivingProp ) ).FirstOrDefault(); UnapprovedMaterialsView.AddViewPropertyFilter( ApprovedForReceivingPropVP, CswEnumNbtFilterConjunction.And, CswEnumNbtFilterResultMode.Hide, CswEnumNbtSubFieldName.Checked, CswEnumNbtFilterMode.Equals, "false"); UnapprovedMaterialsView.AddViewProperty( MatRel, MaterialIdProp, 1 ); UnapprovedMaterialsView.AddViewProperty( MatRel, TradeNameProp, 2 ); UnapprovedMaterialsView.AddViewProperty( MatRel, SupplierProp, 3 ); UnapprovedMaterialsView.AddViewProperty( MatRel, PartNoProp, 4 ); UnapprovedMaterialsView.AddViewProperty( MatRel, CASNoProp, 5 ); UnapprovedMaterialsView.save(); }