Exemple #1
0
        } // _setPropertyValuesFromObjectClass()

        public Collection <CswNbtObjClassDesignNodeTypeProp> getPropNodes()
        {
            Collection <CswNbtObjClassDesignNodeTypeProp> ret = new Collection <CswNbtObjClassDesignNodeTypeProp>();

            CswNbtMetaDataObjectClass     DesignPropOC   = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.DesignNodeTypePropClass);
            CswNbtMetaDataObjectClassProp NtpNodeTypeOCP = DesignPropOC.getObjectClassProp(CswNbtObjClassDesignNodeTypeProp.PropertyName.NodeTypeValue);

            CswNbtView             PropsView = new CswNbtView(_CswNbtResources);
            CswNbtViewRelationship ocRel     = PropsView.AddViewRelationship(this.ObjectClass, false);

            ocRel.NodeIdsToFilterIn.Add(this.NodeId);
            PropsView.AddViewRelationship(ocRel, CswEnumNbtViewPropOwnerType.Second, NtpNodeTypeOCP, false);

            ICswNbtTree PropsTree = _CswNbtResources.Trees.getTreeFromView(PropsView, false, true, true);

            for (Int32 nt = 0; nt < PropsTree.getChildNodeCount(); nt++)
            {
                PropsTree.goToNthChild(nt);
                for (Int32 p = 0; p < PropsTree.getChildNodeCount(); p++)
                {
                    PropsTree.goToNthChild(p);
                    ret.Add(PropsTree.getCurrentNode());
                    PropsTree.goToParentNode();
                }
                PropsTree.goToParentNode();
            } // for( Int32 nt = 0; nt < PropsTree.getChildNodeCount(); nt++ )
            return(ret);
        }     // PropNodes()
Exemple #2
0
        public override void update()
        {
            List<CswNbtView> ReportViews = _CswNbtSchemaModTrnsctn.restoreViews( "Reports" );
            foreach( CswNbtView ReportView in ReportViews )
            {
                if( ReportView.Visibility != CswEnumNbtViewVisibility.Property )
                {
                    ReportView.Root.ChildRelationships.Clear();
                    CswNbtMetaDataObjectClass ReportGroupOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReportGroupClass );
                    CswNbtViewRelationship ReportGroupVR = ReportView.AddViewRelationship( ReportGroupOC, IncludeDefaultFilters: false );
                    CswNbtMetaDataObjectClass ReportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReportClass );
                    CswNbtMetaDataObjectClassProp ReportGroupOCP = ReportOC.getObjectClassProp( CswNbtObjClassReport.PropertyName.ReportGroup );
                    ReportView.AddViewRelationship( ReportGroupVR, CswEnumNbtViewPropOwnerType.Second, ReportGroupOCP, false );
                    ReportView.save();
                }
            }

            List<CswNbtView> MailReportViews = _CswNbtSchemaModTrnsctn.restoreViews( "Mail Reports" );
            foreach( CswNbtView MailReportView in MailReportViews )
            {
                _updateMailReportView( MailReportView );
            }

            List<CswNbtView> MailReportFEViews = _CswNbtSchemaModTrnsctn.restoreViews( "Mail Reports (FE)" );
            foreach( CswNbtView MailReportView in MailReportFEViews )
            {
                _updateMailReportView( MailReportView );
            }

            List<CswNbtView> MailReportIMCSViews = _CswNbtSchemaModTrnsctn.restoreViews( "Mail Reports (IMCS)" );
            foreach( CswNbtView MailReportView in MailReportIMCSViews )
            {
                _updateMailReportView( MailReportView );
            }
        } // update()
Exemple #3
0
        public override void update()
        {
            CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass );
            CswNbtMetaDataObjectClassProp SizeOCP = ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Size );

            // To be compatible with case 27330, remove 'Size' from Container layout by default
            if( _CswNbtSchemaModTrnsctn.isMaster() )
            {
                foreach( CswNbtMetaDataNodeTypeProp SizeNTP in SizeOCP.getNodeTypeProps() )
                {
                    SizeNTP.removeFromAllLayouts();
                }
            }

            // To resolve case 30647, clear out .Hidden flag on 'Size'
            foreach( CswNbtMetaDataNodeTypeProp SizeNTP in SizeOCP.getNodeTypeProps() )
            {
                SizeNTP.Hidden = false;
                foreach( CswNbtObjClassContainer ContainerNode in ContainerOC.getNodes( false, true ) )
                {
                    ContainerNode.Size.setHidden( false, true );
                    ContainerNode.postChanges( false );
                }
            }

        } // update()
 public override void update()
 {
     CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass );
     CswNbtMetaDataObjectClassProp RequestOCP = ContainerOC.getObjectClassProp( "Request" );
     _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( RequestOCP, CswEnumNbtObjectClassPropAttributes.statictext, "Request" );
     // This is a placeholder script that does nothing.
 } // update()
        public override void update()
        {

            CswNbtMetaDataObjectClass reportOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReportClass );
            CswNbtMetaDataObjectClassProp instructionsOCP = reportOC.getObjectClassProp( CswNbtObjClassReport.PropertyName.Instructions );
            CswNbtMetaDataObjectClassProp sqlOCP = reportOC.getObjectClassProp( CswNbtObjClassReport.PropertyName.Sql );

            foreach( CswNbtMetaDataNodeTypeProp instructionsNTP in instructionsOCP.getNodeTypeProps() )
            {
                instructionsNTP.TextAreaColumns = 65;
                instructionsNTP.TextAreaRows = 8;
            }

            foreach( CswNbtMetaDataNodeTypeProp sqlNTP in sqlOCP.getNodeTypeProps() )
            {
                sqlNTP.HelpText = "";
            }

            //string txt = "To create a parameterized sql report wrap the parameter name(s) in {} brackets.\n\n";
            //txt += "Enter a User property name such as 'username' to have the parameter automatically filled in with the current users value for that property. You may also use the keywords 'nodeid' or 'userid' to have the primary key of the current user filled in as the value for that parameter.";

            string txt = @"To create a parameterized report, enclose the name of the property in {}.  For example:
    and datecolumn < '{Date}'
will prompt the user to enter a Date. Parameters that match properties on the current User will be automatically filled in. For example:
    {Username} - The username of the user running the report.
    {Role} - The role of the user running the report.
    {userid} - The primary key of the user running the report.";

            foreach( CswNbtObjClassReport reportNode in reportOC.getNodes( false, true, false, true ) )
            {
                reportNode.Instructions.Text = txt;
                reportNode.postChanges( false );
            }

        } // update()
Exemple #6
0
        public override void update()
        {
            // Add nodetypes for new object classes
            CswNbtMetaDataObjectClass RegListMemberOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RegulatoryListMemberClass );
            CswNbtMetaDataObjectClassProp RegListMemberChemicalOCP = RegListMemberOC.getObjectClassProp( CswNbtObjClassRegulatoryListMember.PropertyName.Chemical );
            CswNbtMetaDataNodeType RegListMemberNT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeTypeDeprecated( new CswNbtWcfMetaDataModel.NodeType( RegListMemberOC )
                {
                    NodeTypeName = "Regulatory List Member",
                    Category = "Materials",
                    SearchDeferObjectClassPropId = RegListMemberChemicalOCP.ObjectClassPropId
                } );
            RegListMemberNT.setNameTemplateText( CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassRegulatoryListMember.PropertyName.Chemical ) + "-" + CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassRegulatoryListMember.PropertyName.RegulatoryList ) );
            
            RegListMemberNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRegulatoryListMember.PropertyName.ByUser ).removeFromLayout( CswEnumNbtLayoutType.Add );

            CswNbtMetaDataObjectClass RegListCasNoOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RegulatoryListCasNoClass );
            CswNbtMetaDataObjectClassProp RegListCasNoRegListOCP = RegListCasNoOC.getObjectClassProp( CswNbtObjClassRegulatoryListCasNo.PropertyName.RegulatoryList );
            CswNbtMetaDataNodeType RegListCasNoNT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeTypeDeprecated( new CswNbtWcfMetaDataModel.NodeType( RegListCasNoOC )
                {
                    NodeTypeName = "Regulatory List CAS",
                    Category = "Materials",
                    SearchDeferObjectClassPropId = RegListCasNoRegListOCP.ObjectClassPropId
                } );
            RegListCasNoNT.setNameTemplateText( CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassRegulatoryListCasNo.PropertyName.RegulatoryList ) + "-" + CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassRegulatoryListCasNo.PropertyName.CASNo ) );

            // Grant permissions to cispro_admin
            CswNbtObjClassRole CISProAdminRole = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "CISPro_Admin" );
            CswEnumNbtNodeTypePermission[] AllPerms = new CswEnumNbtNodeTypePermission[]
                {
                    CswEnumNbtNodeTypePermission.Create, CswEnumNbtNodeTypePermission.Delete, CswEnumNbtNodeTypePermission.Edit, CswEnumNbtNodeTypePermission.View
                };
            _CswNbtSchemaModTrnsctn.Permit.set( AllPerms, RegListMemberNT, CISProAdminRole, true );
            _CswNbtSchemaModTrnsctn.Permit.set( AllPerms, RegListCasNoNT, CISProAdminRole, true );

        } // update()
Exemple #7
0
        public override void update()
        {
            CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass );
            CswNbtMetaDataObjectClassProp QuantityOCP = ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Quantity );
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( QuantityOCP, CswEnumNbtObjectClassPropAttributes.isrequired, true );

        } // update()
Exemple #8
0
        public override void update()
        {
            CswNbtMetaDataObjectClass ContDispTransOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.ContainerDispenseTransactionClass );
            CswNbtMetaDataObjectClassProp DispensedDate = ContDispTransOc.getObjectClassProp( CswNbtObjClassContainerDispenseTransaction.DispensedDatePropertyName );

            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp(
                DispensedDate,
                CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.extended,
                ChemSW.Nbt.PropTypes.CswNbtNodePropDateTime.DateDisplayMode.DateTime.ToString()
            );

            CswNbtMetaDataNodeType ContDispTransNt = ContDispTransOc.getLatestVersionNodeTypes().FirstOrDefault();
            if( null == ContDispTransNt )
            {
                CswStatusMessage Msg = new CswStatusMessage
                {
                    AppType = AppType.SchemUpdt,
                    ContentType = ContentType.Error
                };
                Msg.Attributes.Add( Log.LegalAttribute.escoteric_message, "Could not get a Container Dispense Transaction NodeType" );
                _CswNbtSchemaModTrnsctn.CswLogger.send( Msg );
            }
            else
            {
                CswNbtView GridView = _CswNbtSchemaModTrnsctn.restoreView( "Container Container Dispense Transactions Grid Property View" );
                if( GridView != null )
                {
                    GridView.ViewName = "Container Dispense Transactions";
                    GridView.save();
                }
            }
        }//Update()
Exemple #9
0
        public override void update()
        {
            CswNbtMetaDataObjectClass RequestOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.RequestClass );
            CswNbtMetaDataObjectClassProp DoomedRequestInventoryGroupOcp = RequestOc.getObjectClassProp( "Inventory Group" );
            if( null != DoomedRequestInventoryGroupOcp )
            {
                _CswNbtSchemaModTrnsctn.MetaData.DeleteObjectClassProp( DoomedRequestInventoryGroupOcp, DeleteNodeTypeProps: true );
            }

            CswNbtMetaDataObjectClass RequestItemOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.RequestItemClass );
            CswNbtMetaDataObjectClass InventoryGroupOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.InventoryGroupClass );
            CswNbtMetaDataObjectClassProp DoomedItemInventoryGroupOcp = RequestItemOc.getObjectClassProp( CswNbtObjClassRequestItem.PropertyName.InventoryGroup );
            _CswNbtSchemaModTrnsctn.MetaData.DeleteObjectClassProp( DoomedItemInventoryGroupOcp, DeleteNodeTypeProps: true );
            _CswNbtSchemaModTrnsctn.createObjectClassProp( new CswNbtWcfMetaDataModel.ObjectClassProp( RequestItemOc )
                {
                    PropName = CswNbtObjClassRequestItem.PropertyName.InventoryGroup,
                    FieldType = CswNbtMetaDataFieldType.NbtFieldType.Relationship,
                    IsFk = true,
                    FkType = NbtViewRelatedIdType.ObjectClassId.ToString(),
                    FkValue = InventoryGroupOc.ObjectClassId,
                    IsRequired = true,
                    SetValOnAdd = true
                } );

        }//Update()
        protected override void OnEnable()
        {
            //case 26717 - show the following...
            //   Inspector Manager role and user
            //   Inspector role and user
            //   All views in categories Lab Safety, Lab Safety (Demo) and Inspections
            _CswNbtResources.Modules.ToggleRoleNodes(false, "inspector");
            _CswNbtResources.Modules.ToggleRoleNodes(false, "inspection manager");
            _CswNbtResources.Modules.ToggleUserNodes(false, "inspector");
            _CswNbtResources.Modules.ToggleUserNodes(false, "inspectmgr");
            _CswNbtResources.Modules.ToggleViewsInCategory(false, "Lab Safety (demo)", CswEnumNbtViewVisibility.Global);
            _CswNbtResources.Modules.ToggleViewsInCategory(false, "Inspections", CswEnumNbtViewVisibility.Global);
            _CswNbtResources.Modules.ToggleViewsInCategory(false, "Lab Safety", CswEnumNbtViewVisibility.Global);

            CswNbtMetaDataObjectClass     reportOC      = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ReportClass);
            CswNbtMetaDataObjectClassProp reportNameOCP = reportOC.getObjectClassProp(CswNbtObjClassReport.PropertyName.ReportName);
            CswNbtNode deficientInspectionsNode         = _findNode("Deficient Inspections", reportOC, reportNameOCP);

            if (null != deficientInspectionsNode)
            {
                deficientInspectionsNode.Hidden = false;
                deficientInspectionsNode.postChanges(false);
            }

            //Case 28117 - show Future Scheduling
            _CswNbtResources.Modules.ToggleAction(true, CswEnumNbtActionName.Future_Scheduling);

            _CswNbtResources.Modules.ToggleScheduledRule(CswEnumNbtScheduleRuleNames.UpdtInspection, Disabled: false);

            //Mail Reports
            _CswNbtResources.Modules.ToggleNode(false, "Lab 1 Deficiencies Mail Report", CswEnumNbtObjectClass.MailReportClass);
            _CswNbtResources.Modules.ToggleNode(false, "Lab Safety Checklist (demo) Action Required Notification", CswEnumNbtObjectClass.MailReportClass);
        }
        /// <summary>
        /// The actual update call
        /// </summary>
        public override void update()
        {
            CswNbtMetaDataObjectClass     EquipmentType = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.EquipmentTypeClass);
            CswNbtMetaDataObjectClassProp NameOCP       = EquipmentType.getObjectClassProp(CswNbtObjClassEquipmentType.PropertyName.TypeName);

            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp(NameOCP, CswEnumNbtObjectClassPropAttributes.isunique, true);
        }
Exemple #12
0
        public Collection<string> getCASNumbers()
        {
            Collection<string> ret = new Collection<string>();
            CswNbtMetaDataObjectClass RegListCasNoOC = _CswNbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.RegulatoryListCasNoClass );
            CswNbtMetaDataObjectClassProp RegListCasNoCasNoOCP = RegListCasNoOC.getObjectClassProp( CswNbtObjClassRegulatoryListCasNo.PropertyName.CASNo );
            CswNbtMetaDataObjectClassProp RegListCasNoRegListOCP = RegListCasNoOC.getObjectClassProp( CswNbtObjClassRegulatoryListCasNo.PropertyName.RegulatoryList );

            CswNbtView View = new CswNbtView( _CswNbtResources );
            View.ViewName = "Reglist_getCASNumbers";
            CswNbtViewRelationship casnoRel = View.AddViewRelationship( RegListCasNoOC, false );
            View.AddViewProperty( casnoRel, RegListCasNoCasNoOCP );
            View.AddViewPropertyAndFilter( casnoRel,
                                           RegListCasNoRegListOCP,
                                           SubFieldName: CswNbtFieldTypeRuleRelationship.SubFieldName.NodeID,
                                           FilterMode: CswEnumNbtFilterMode.Equals,
                                           Value: this.NodeId.PrimaryKey.ToString() );

            ICswNbtTree Tree = _CswNbtResources.Trees.getTreeFromView( View, RequireViewPermissions: false, IncludeSystemNodes: true, IncludeHiddenNodes: true );
            for( Int32 i = 0; i < Tree.getChildNodeCount(); i++ )
            {
                Tree.goToNthChild( i );

                CswNbtTreeNodeProp casnoTreeProp = Tree.getChildNodePropsOfNode().FirstOrDefault( p => p.ObjectClassPropName == RegListCasNoCasNoOCP.PropName );
                if( null != casnoTreeProp )
                {
                    ret.Add( casnoTreeProp[( (CswNbtFieldTypeRuleCASNo) RegListCasNoCasNoOCP.getFieldTypeRule() ).TextSubField.Column] );
                }

                Tree.goToParentNode();
            }
            return ret;
        } // getCASNumbers()
        public override void update()
        {

            // add some objclass calls
            CswNbtMetaDataObjectClassProp locCodeOcp = _CswNbtSchemaModTrnsctn.createObjectClassProp( CswNbtMetaDataObjectClass.NbtObjectClass.LocationClass, "Location Code",
                CswNbtMetaDataFieldType.NbtFieldType.Text, IsUnique: true );
            CswNbtMetaDataObjectClassProp allowInvOcp = _CswNbtSchemaModTrnsctn.createObjectClassProp( CswNbtMetaDataObjectClass.NbtObjectClass.LocationClass, "Allow Inventory",
                CswNbtMetaDataFieldType.NbtFieldType.Logical );
            CswNbtMetaDataObjectClassProp storCompatOcp = _CswNbtSchemaModTrnsctn.createObjectClassProp( CswNbtMetaDataObjectClass.NbtObjectClass.LocationClass, "Storage Compatability",
                CswNbtMetaDataFieldType.NbtFieldType.ImageList );
            CswDelimitedString listOpts = new CswDelimitedString( '\n' );
            listOpts.FromArray( new string[] { "None", "Inorganic Acids", "Organic Acids", 
                "Bases", "Oxidizing Inorganic Acids",
                "Oxidizers", "Toxics", "Flammables" } );
            //            storCompatOcp.ListOptions = listOpts.ToString();
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( storCompatOcp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.listoptions, listOpts.ToString() );
            CswDelimitedString valOpts = new CswDelimitedString( '\n' );
            valOpts.FromArray( new string[] { "Images/cispro/0w.gif", "Images/cispro/1o.gif", "Images/cispro/2y.gif", 
                "Images/cispro/3g.gif", "Images/cispro/4b.gif", 
                "Images/cispro/5l.gif", "Images/cispro/6p.gif", "Images/cispro/7r.gif" } );
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( storCompatOcp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.valueoptions, valOpts.ToString() );

            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( storCompatOcp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.textarearows, "32" );
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( storCompatOcp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.textareacols, "32" );

        }//Update()
Exemple #14
0
        }     // PropNodes()

        public Collection <CswNbtObjClassDesignNodeTypeTab> getTabNodes()
        {
            Collection <CswNbtObjClassDesignNodeTypeTab> ret = new Collection <CswNbtObjClassDesignNodeTypeTab>();

            CswNbtMetaDataObjectClass     DesignTabOCP   = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.DesignNodeTypeTabClass);
            CswNbtMetaDataObjectClassProp NttNodeTypeOCP = DesignTabOCP.getObjectClassProp(CswNbtObjClassDesignNodeTypeTab.PropertyName.NodeTypeValue);

            CswNbtView             TabsView = new CswNbtView(_CswNbtResources);
            CswNbtViewRelationship ocRel    = TabsView.AddViewRelationship(this.ObjectClass, false);

            ocRel.NodeIdsToFilterIn.Add(this.NodeId);
            TabsView.AddViewRelationship(ocRel, CswEnumNbtViewPropOwnerType.Second, NttNodeTypeOCP, false);

            ICswNbtTree TabsTree = _CswNbtResources.Trees.getTreeFromView(TabsView, false, true, true);

            for (Int32 nt = 0; nt < TabsTree.getChildNodeCount(); nt++)
            {
                TabsTree.goToNthChild(nt);
                for (Int32 t = 0; t < TabsTree.getChildNodeCount(); t++)
                {
                    TabsTree.goToNthChild(t);
                    ret.Add(TabsTree.getCurrentNode());
                    TabsTree.goToParentNode();
                }
                TabsTree.goToParentNode();
            } // for( Int32 nt = 0; nt < TabsTree.getChildNodeCount(); nt++ )
            return(ret);
        }     // TabNodes()
        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 CswCommaDelimitedString _getMaterialPKsForEP(CswPrimaryKey EPId)
        {
            CswCommaDelimitedString       EPMaterialPks = new CswCommaDelimitedString();
            CswNbtMetaDataObjectClass     ManufacturerEquivalentPartOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ManufacturerEquivalentPartClass);
            CswNbtMetaDataObjectClassProp EPOCP       = ManufacturerEquivalentPartOC.getObjectClassProp(CswNbtObjClassManufacturerEquivalentPart.PropertyName.EnterprisePart);
            CswNbtMetaDataObjectClassProp MaterialOCP = ManufacturerEquivalentPartOC.getObjectClassProp(CswNbtObjClassManufacturerEquivalentPart.PropertyName.Material);

            CswNbtView EPMatsView = new CswNbtView(_CswNbtResources);

            EPMatsView.ViewName = "Materials under " + EPId;
            CswNbtViewRelationship MEPVR = EPMatsView.AddViewRelationship(ManufacturerEquivalentPartOC, false);

            EPMatsView.AddViewPropertyAndFilter(MEPVR, EPOCP, SubFieldName: CswEnumNbtSubFieldName.NodeID, Value: EPId.PrimaryKey.ToString());
            CswNbtViewRelationship MatVR = EPMatsView.AddViewRelationship(MEPVR, CswEnumNbtViewPropOwnerType.First, MaterialOCP, false);

            ICswNbtTree EPMatsTree = _CswNbtResources.Trees.getTreeFromView(EPMatsView, false, true, true);

            for (int i = 0; i < EPMatsTree.getChildNodeCount(); i++)
            {
                EPMatsTree.goToNthChild(i);   //EP's MEPs
                if (EPMatsTree.getChildNodeCount() > 0)
                {
                    EPMatsTree.goToNthChild(0);   //MEP's Material
                    EPMaterialPks.Add(EPMatsTree.getNodeIdForCurrentPosition().PrimaryKey.ToString());
                    EPMatsTree.goToParentNode();
                }
                EPMatsTree.goToParentNode();
            }

            return(EPMaterialPks);
        }
        }//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;
        }
Exemple #18
0
        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);
        }
Exemple #19
0
 public override void update()
 {
     CswNbtMetaDataObjectClass MEPOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ManufacturerEquivalentPartClass );
     CswNbtMetaDataObjectClass ManufacturerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ManufacturerClass );
     if( null != ManufacturerOC )
     {
         CswNbtMetaDataObjectClassProp MaterialOCP = MEPOC.getObjectClassProp( "Material" );
         if( null != MaterialOCP )
         {
             _CswNbtSchemaModTrnsctn.MetaData.DeleteObjectClassProp( MaterialOCP, true );
         }
         CswNbtMetaDataObjectClassProp ManufacturerOCP = MEPOC.getObjectClassProp( CswNbtObjClassManufacturerEquivalentPart.PropertyName.Manufacturer );
         if( null != ManufacturerOCP )
         {
             CswNbtView ManufacturerView = _CswNbtSchemaModTrnsctn.makeView();
             CswNbtViewRelationship parent = ManufacturerView.AddViewRelationship( ManufacturerOC, true );
             ManufacturerView.Visibility = CswEnumNbtViewVisibility.Property;
             ManufacturerView.ViewName = "Manufacturer";
             _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( ManufacturerOCP, CswEnumNbtObjectClassPropAttributes.viewxml, ManufacturerView.ToString() );
             _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( ManufacturerOCP, CswEnumNbtObjectClassPropAttributes.fktype, CswEnumNbtViewRelatedIdType.ObjectClassId.ToString() );
             _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( ManufacturerOCP, CswEnumNbtObjectClassPropAttributes.fkvalue, ManufacturerOC.ObjectClassId.ToString() );
             _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( ManufacturerOCP, CswEnumNbtObjectClassPropAttributes.isrequired, true );
             CswNbtMetaDataObjectClassProp EPOCP = MEPOC.getObjectClassProp( CswNbtObjClassManufacturerEquivalentPart.PropertyName.EnterprisePart );
             _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( EPOCP, CswEnumNbtObjectClassPropAttributes.isrequired, true );
             foreach( CswNbtMetaDataNodeType MEPNT in MEPOC.getNodeTypes() )
             {
                 CswNbtMetaDataNodeTypeProp ManufacturerNTP = MEPNT.getNodeTypePropByObjectClassProp( ManufacturerOCP );
                 ManufacturerNTP.DesignNode.syncFromObjectClassProp();
                 CswNbtMetaDataNodeTypeProp EPNTP = MEPNT.getNodeTypePropByObjectClassProp( EPOCP );
                 EPNTP.DesignNode.syncFromObjectClassProp();
             }
         }
         _CswNbtSchemaModTrnsctn.createModuleObjectClassJunction( CswEnumNbtModuleName.MLM, MEPOC.ObjectClassId );
     }
 } // update()
        private void OnContainerScanPropChange( CswNbtNodeProp Prop, bool Creating )
        {
            if( null != ContainerScan.Text )
            {
                CswNbtMetaDataObjectClass ContainerOc = _CswNbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass );
                CswNbtView ContainerView = new CswNbtView( _CswNbtResources );

                CswNbtViewRelationship ContainerRel = ContainerView.AddViewRelationship( ContainerOc, false );
                CswNbtMetaDataObjectClassProp BarcodeOcp = ContainerOc.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Barcode );

                ContainerView.AddViewPropertyAndFilter( ContainerRel, BarcodeOcp, ContainerScan.Text );
                ICswNbtTree ContainerTree = _CswNbtResources.Trees.getTreeFromView( ContainerView, false, false, true );
                if( ContainerTree.getChildNodeCount() > 0 )
                {
                    ContainerTree.goToNthChild( 0 );
                    CswNbtObjClassContainer ContainerNode = ContainerTree.getNodeForCurrentPosition();
                    Container.RelatedNodeId = ContainerNode.NodeId;
                }
                else
                {
                    Container.RelatedNodeId = null;
                }
            }
            _setStatus();
        }
        public override void update()
        {
            CswNbtMetaDataObjectClass SizeOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.SizeClass );
            CswNbtMetaDataObjectClassProp QeOcp = SizeOc.getObjectClassProp( CswNbtObjClassSize.QuantityEditablePropertyName );
            _CswNbtSchemaModTrnsctn.MetaData.SetObjectClassPropDefaultValue( QeOcp, QeOcp.getFieldTypeRule().SubFields.Default.Name, Tristate.True );

        }//Update()
        private void OnLocationScanPropChange( CswNbtNodeProp Prop, bool Creating )
        {
            if( null != LocationScan.Text )
            {
                CswNbtMetaDataObjectClass LocationOc = _CswNbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.LocationClass );
                CswNbtView LocationView = new CswNbtView( _CswNbtResources );

                CswNbtViewRelationship LocationRel = LocationView.AddViewRelationship( LocationOc, false );
                CswNbtMetaDataObjectClassProp BarcodeOcp = LocationOc.getObjectClassProp( CswNbtObjClassLocation.PropertyName.Barcode );

                LocationView.AddViewPropertyAndFilter( LocationRel, BarcodeOcp, LocationScan.Text );
                ICswNbtTree LocationTree = _CswNbtResources.Trees.getTreeFromView( LocationView, false, false, true );
                if( LocationTree.getChildNodeCount() > 0 )
                {
                    LocationTree.goToNthChild( 0 );
                    CswNbtObjClassLocation LocationNode = LocationTree.getNodeForCurrentPosition();
                    Location.SelectedNodeId = LocationNode.NodeId;
                    Location.RefreshNodeName();
                }
                else
                {
                    Location.SelectedNodeId = null;
                    Location.CachedNodeName = String.Empty;
                    Location.CachedPath = String.Empty;
                    Location.CachedBarcode = String.Empty;
                }
            }
            _setStatus();
        }
Exemple #23
0
        public override void update()
        {

            //add supplier and catalog number to size name template
            CswNbtMetaDataNodeType sizeNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Size" );
            if( null != sizeNT )
            {
                CswNbtMetaDataNodeTypeProp materialNTP = sizeNT.getNodeTypeProp( CswNbtObjClassSize.MaterialPropertyName );
                CswNbtMetaDataObjectClass materialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( materialNTP.FKValue );
                CswNbtMetaDataObjectClassProp supplierOCP = materialOC.getObjectClassProp( CswNbtObjClassMaterial.SupplierPropertyName );

                CswNbtMetaDataObjectClass sizeOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.SizeClass );
                CswNbtMetaDataObjectClassProp materialOCP = sizeOC.getObjectClassProp( CswNbtObjClassSize.MaterialPropertyName );

                CswNbtMetaDataNodeTypeTab sizeTab = _getTab( sizeNT, "Size", 1 );

                CswNbtMetaDataNodeTypeProp sizeSupplierNTP = _CswNbtSchemaModTrnsctn.MetaData.makeNewProp( sizeNT, CswNbtMetaDataFieldType.NbtFieldType.PropertyReference, "Supplier", sizeTab.TabId );
                sizeSupplierNTP.SetFK( NbtViewPropIdType.ObjectClassPropId.ToString(), materialOCP.PropId, NbtViewPropIdType.ObjectClassPropId.ToString(), supplierOCP.PropId );

                string templateText = sizeNT.NameTemplateValue;
                templateText += CswNbtMetaData.MakeTemplateEntry( sizeSupplierNTP.PropName ); //add supplier (NTP) name to template
                templateText += " " + CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassSize.CatalogNoPropertyName ); //add catalog number to name template
                sizeNT.setNameTemplateText( templateText );

            }

        }//Update()
Exemple #24
0
        private CswNbtSchemaUpdateLayoutMgr.LayoutProp _vetLayoutOp(string PropName, bool DoNotTrack, CswEnumNbtLayoutType LayoutType = null)
        {
            LayoutType = LayoutType ?? _LayoutMgr.LayoutType;
            CswNbtMetaDataObjectClassProp Ocp = _LayoutMgr.ObjectClass.getObjectClassProp(PropName);

            if (null == Ocp)
            {
                throw new CswDniException("Cannot copy a property that is not an Object Class prop. Object Class Prop {" + PropName + "} was null.");
            }

            CswNbtSchemaUpdateLayoutMgr.LayoutProp Ret = new CswNbtSchemaUpdateLayoutMgr.LayoutProp(Ocp, LayoutType, "");
            //I originally thought we could prevent copy/paste errors by tracking which props had been positioned where, but this turns out to be non trivial.
            //It's not a bad idea, but not worth the overhead to do correctly right now.

            //if ( _LayoutMgr.Props.Contains( Ret ) )
            //{
            //    if ( DoNotTrack )
            //    {
            //        _LayoutMgr.Props.Remove( Ret );
            //    }
            //    else
            //    {
            //        throw new CswDniException( "This property has already been placed in this layout. Prop: {" + PropName + "}, LayoutType: {" + LayoutType + "}, Tab: {" + CurrentTabName + "}." );
            //    }
            //}

            //if ( false == DoNotTrack )
            //{
            //    _LayoutMgr.Props.Add( Ret );
            //}
            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);
        }
Exemple #26
0
        //  This is a repeat of case 02F_Case30647.  See case 31079.
        public override void update()
        {
            CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass );
            CswNbtMetaDataObjectClassProp SizeOCP = ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Size );

            // To resolve case 30647, clear out .Hidden flag on 'Size'
            foreach( CswNbtMetaDataNodeTypeProp SizeNTP in SizeOCP.getNodeTypeProps() )
            {
                SizeNTP.Hidden = false;
            }

            //  getNodes() truncates!!!!!!
            //foreach( CswNbtObjClassContainer ContainerNode in ContainerOC.getNodes( false, true, false, true ) )
            //{
            //    ContainerNode.Size.setHidden( value: false, SaveToDb: true );
            //    ContainerNode.postChanges( false );
            //}
            _CswNbtSchemaModTrnsctn.execArbitraryPlatformNeutralSql( @"update jct_nodes_props
                                                                          set hidden = '0'
                                                                        where nodetypepropid in (select p.nodetypepropid
                                                                                                   from nodetype_props p
                                                                                                   join object_class_props op on p.objectclasspropid = op.objectclasspropid
                                                                                                   join object_class oc on op.objectclassid = oc.objectclassid
                                                                                                  where oc.objectclass = 'ContainerClass'
                                                                                                    and op.propname = 'Size')
                                                                          and hidden = '1'" );

        } // update()
        public override void update()
        {
            CswNbtMetaDataObjectClass ReceiptLotOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReceiptLotClass );
            if( null != ReceiptLotOC )
            {

                CswNbtMetaDataObjectClassProp ReceiptLotNoOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( ReceiptLotOC, new CswNbtWcfMetaDataModel.ObjectClassProp
                    {
                        PropName = CswNbtObjClassReceiptLot.PropertyName.ReceiptLotNo,
                        FieldType = CswEnumNbtFieldType.Sequence,
                        SetValOnAdd = true,
                        ServerManaged = true,
                    } );

                _CswNbtSchemaModTrnsctn.MetaData.makeMissingNodeTypeProps(); //if we don't do this, .setSequence( SequenceId ) throws an ORNI


                if( null != ReceiptLotNoOCP )
                {
                    int SequenceId = _CswNbtSchemaModTrnsctn.makeSequence( new CswSequenceName( "ReceiptLotNo" ), "RL", "", 6, 1 );

                    foreach( CswNbtMetaDataNodeType ReceiptLotNT in ReceiptLotOC.getNodeTypes() )
                    {
                        ReceiptLotNT.addNameTemplateText( CswNbtObjClassReceiptLot.PropertyName.ReceiptLotNo );
                        ReceiptLotNT.getNodeTypePropByObjectClassProp( ReceiptLotNoOCP ).setSequence( SequenceId );
                        foreach( CswNbtObjClassReceiptLot ReceiptLot in ReceiptLotNT.getNodes( true, true ) )
                        {
                            ReceiptLot.ReceiptLotNo.setSequenceValue();
                            ReceiptLot.postChanges( false );
                        }
                    }
                }
            }
        } // update()
        public override void update()
        {
            // Add graphics to storage compatibility property on Materials.
            CswNbtMetaDataObjectClass MaterialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.MaterialClass );
            CswNbtMetaDataObjectClassProp StorCompatOCP = MaterialOC.getObjectClassProp( CswNbtObjClassMaterial.StorageCompatibilityPropertyName );

            CswDelimitedString ImageNames = new CswDelimitedString( '\n' ) {
                "0 - None",
		        "1 - Inorganic Acids",
		        "2 - Organic Acids",
		        "3 - Bases",
		        "4 - Oxidizing Inorganic Acids",
		        "5 - Oxidizers",
		        "6 - Toxics",
		        "7 - Flammables"
            };

            CswDelimitedString ImageUrls = new CswDelimitedString( '\n' ) {
                "/NbtWebApp/Images/cispro/0w.gif",
                "/NbtWebApp/Images/cispro/1o.gif",
                "/NbtWebApp/Images/cispro/2y.gif",
                "/NbtWebApp/Images/cispro/3g.gif",
                "/NbtWebApp/Images/cispro/4b.gif",
                "/NbtWebApp/Images/cispro/5l.gif",
                "/NbtWebApp/Images/cispro/6p.gif",
                "/NbtWebApp/Images/cispro/7r.gif"
            };

            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( StorCompatOCP, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.listoptions, ImageNames.ToString() );
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( StorCompatOCP, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.valueoptions, ImageUrls.ToString() );
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( StorCompatOCP, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.textarearows, 50 );
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( StorCompatOCP, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.textareacols, 50 );

        }//Update()
        public override void onPropertySetAddDefaultViewFilters(CswNbtViewRelationship ParentRelationship)
        {
            CswNbtMetaDataObjectClassProp RequestorOcp = ObjectClass.getObjectClassProp(PropertyName.Requestor);

            ParentRelationship.View.AddViewPropertyAndFilter(ParentRelationship, RequestorOcp,
                                                             FilterMode: CswEnumNbtFilterMode.Equals,
                                                             Value: "me",
                                                             ShowInGrid: false);

            CswNbtMetaDataObjectClassProp IsFavoriteOcp = ObjectClass.getObjectClassProp(PropertyName.IsFavorite);

            ParentRelationship.View.AddViewPropertyAndFilter(ParentRelationship, IsFavoriteOcp,
                                                             FilterMode: CswEnumNbtFilterMode.NotEquals,
                                                             Value: CswNbtNodePropLogical.toLogicalGestalt(CswEnumTristate.True),
                                                             ShowInGrid: false);

            CswNbtMetaDataObjectClassProp IsRecurringOcp = ObjectClass.getObjectClassProp(PropertyName.IsRecurring);

            ParentRelationship.View.AddViewPropertyAndFilter(ParentRelationship, IsRecurringOcp,
                                                             FilterMode: CswEnumNbtFilterMode.NotEquals,
                                                             Value: CswEnumTristate.True.ToString(),
                                                             ShowInGrid: false);

            CswNbtMetaDataObjectClassProp StatusOcp = ObjectClass.getObjectClassProp(PropertyName.Status);

            ParentRelationship.View.AddViewPropertyAndFilter(ParentRelationship, StatusOcp,
                                                             FilterMode: CswEnumNbtFilterMode.NotEquals,
                                                             Value: NonRequestableStatus,
                                                             ShowInGrid: false);
        }
        public override void update()
        {
            //Set Container.Quantity to ReadOnly
            CswNbtMetaDataObjectClass ContainerObjClass = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.ContainerClass );
            CswNbtMetaDataObjectClassProp QuantityProp = _CswNbtSchemaModTrnsctn.MetaData.getObjectClassProp( ContainerObjClass.ObjectClassId, CswNbtObjClassContainer.QuantityPropertyName );
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( QuantityProp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.readOnly, true );

            //Add "N/A" to Material.PhysicalState
            CswNbtMetaDataObjectClass MaterialObjClass = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.MaterialClass );
            CswNbtMetaDataObjectClassProp PhysicalStateProp = _CswNbtSchemaModTrnsctn.MetaData.getObjectClassProp( MaterialObjClass.ObjectClassId, CswNbtObjClassMaterial.PhysicalStatePropertyName );
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( PhysicalStateProp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.listoptions, "solid,liquid,gas,n/a" );
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( PhysicalStateProp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.setvalonadd, true );
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( PhysicalStateProp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.isrequired, true );

            //Set Supplies.PhysicalState DefaultValue to "N/A", ReadOnly = true
            CswNbtMetaDataNodeType SupplyNodeType = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Supply" );
            if( SupplyNodeType != null )
            {
                CswNbtMetaDataNodeTypeProp PhysicalStateNTProp = _CswNbtSchemaModTrnsctn.MetaData.getNodeTypePropByObjectClassProp( SupplyNodeType.NodeTypeId, PhysicalStateProp.ObjectClassPropId );
                PhysicalStateNTProp.DefaultValue.AsList.Value = "N/A";
                _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.removePropFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add, PhysicalStateNTProp, PhysicalStateNTProp.AddLayout.TabId );
                PhysicalStateNTProp.ReadOnly = true;
            }

            //Undo Set Size.Capacity SetValOnAdd = false
            CswNbtMetaDataObjectClass SizeObjClass = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.SizeClass );
            CswNbtMetaDataObjectClassProp CapacityProp = _CswNbtSchemaModTrnsctn.MetaData.getObjectClassProp( SizeObjClass.ObjectClassId, CswNbtObjClassSize.InitialQuantityPropertyName );
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( CapacityProp, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.setvalonadd, true );

        }//Update()