}//_addMaterialComponentPermissions() private void _addTitleToDocumentsView() { CswNbtMetaDataPropertySet MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet ); foreach( CswNbtMetaDataObjectClass MaterialOC in MaterialPS.getObjectClasses() ) { foreach( CswNbtMetaDataNodeType MaterialNT in MaterialOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp DocumentsNTP = MaterialNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetMaterial.PropertyName.Documents ); CswNbtMetaDataNodeType MaterialDocumentNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Material Document" ); if( null != MaterialDocumentNT ) { CswNbtMetaDataObjectClass DocumentOC = MaterialDocumentNT.getObjectClass(); CswNbtMetaDataNodeTypeProp[] propsToAdd = { MaterialDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Title ) }; CswNbtView DocumentsView = _CswNbtSchemaModTrnsctn.restoreView( DocumentsNTP.ViewId ); if( null != DocumentsView ) { _addPropertiesToView( DocumentsView, DocumentsView.Root.ChildRelationships, DocumentOC, MaterialDocumentNT, propsToAdd ); } } } } }
public override void update() { _CswNbtSchemaModTrnsctn.createAction( CswEnumNbtActionName.Container_Expiration_Lock, false, String.Empty, "Containers" ); _CswNbtSchemaModTrnsctn.createModuleActionJunction( CswEnumNbtModuleName.Containers, CswEnumNbtActionName.Container_Expiration_Lock ); CswNbtMetaDataObjectClass RoleOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RoleClass ); foreach( CswNbtObjClassRole RoleNode in RoleOC.getNodes( false, true ) ) { _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtActionName.Container_Expiration_Lock, RoleNode.Node, RoleNode.Administrator.Checked == CswEnumTristate.True ); } CswNbtMetaDataPropertySet MaterialSet = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet ); foreach( CswNbtMetaDataObjectClass MaterialOC in MaterialSet.getObjectClasses() ) { foreach( CswNbtMetaDataNodeType MaterialNT in MaterialOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp ExpirationLockedNTP = MaterialNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetMaterial.PropertyName.ContainerExpirationLocked ); ExpirationLockedNTP.removeFromLayout( CswEnumNbtLayoutType.Add ); } foreach( CswNbtPropertySetMaterial MaterialNode in MaterialOC.getNodes( false, false ) ) { MaterialNode.ContainerExpirationLocked.Checked = CswEnumTristate.True; MaterialNode.postChanges( false ); } } } // update()
public override void update() { // Remove the HazardClassesNTP from all layouts for any MaterialNTs != Chemical CswNbtMetaDataObjectClass MaterialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); if( null != MaterialOC ) { foreach( CswNbtMetaDataNodeType MaterialNT in MaterialOC.getNodeTypes() ) { if( false == MaterialNT.NodeTypeName.Equals( "Chemical" ) ) { CswNbtMetaDataNodeTypeProp HazardClassesNTP = MaterialNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.HazardClasses ); HazardClassesNTP.removeFromAllLayouts(); } } } } // update()
public override void update() { // Remove the UN Code property from the add layout for all Material types CswNbtMetaDataObjectClass MaterialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.MaterialClass ); if( null != MaterialOC ) { foreach( CswNbtMetaDataNodeType MaterialNT in MaterialOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp UNCodeNTP = MaterialNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMaterial.PropertyName.UNCode ); if( null != UNCodeNTP ) { UNCodeNTP.removeFromLayout( LayoutType: CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add ); } } } } //Update()
public override void update() { CswNbtMetaDataNodeType SDSDocumentNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "SDS Document" ); if( null != SDSDocumentNT ) { CswNbtMetaDataObjectClass MaterialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); foreach( CswNbtMetaDataNodeType MaterialNT in MaterialOC.getNodeTypes() ) { if( MaterialNT.NodeTypeName == "Chemical" ) { CswNbtMetaDataNodeTypeProp AssignedSDSNTP = MaterialNT.getNodeTypeProp( "Assigned SDS" ); if( null != AssignedSDSNTP ) { CswNbtMetaDataNodeTypeProp OwnerOCP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Owner ); CswNbtMetaDataNodeTypeProp RevisionDateNTP = SDSDocumentNT.getNodeTypeProp( "Revision Date" ); CswNbtMetaDataNodeTypeProp ArchivedNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Archived ); CswNbtMetaDataNodeTypeProp FileNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.File ); CswNbtMetaDataNodeTypeProp LinkNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Link ); CswNbtMetaDataNodeTypeProp LanguageNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassSDSDocument.PropertyName.Language ); CswNbtMetaDataNodeTypeProp FormatNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassSDSDocument.PropertyName.Format ); CswNbtView AssignedSDSView = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( AssignedSDSNTP.ViewId ); AssignedSDSView.Root.ChildRelationships.Clear(); CswNbtViewRelationship RootRel = AssignedSDSView.AddViewRelationship( MaterialNT, false ); CswNbtViewRelationship DocRel = AssignedSDSView.AddViewRelationship( RootRel, CswEnumNbtViewPropOwnerType.Second, OwnerOCP, true ); AssignedSDSView.AddViewPropertyAndFilter( DocRel, ArchivedNTP, CswEnumTristate.False.ToString(), FilterMode: CswEnumNbtFilterMode.Equals, ShowAtRuntime: true, ShowInGrid: false ); if( null != RevisionDateNTP ) { AssignedSDSView.AddViewProperty( DocRel, RevisionDateNTP, 1 ); } AssignedSDSView.AddViewProperty( DocRel, FileNTP, 2 ); AssignedSDSView.AddViewProperty( DocRel, LinkNTP, 3 ); AssignedSDSView.AddViewProperty( DocRel, LanguageNTP, 4 ); AssignedSDSView.AddViewProperty( DocRel, FormatNTP, 5 ); AssignedSDSView.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(); }
public override void update() { CswNbtMetaDataPropertySet MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet ); foreach( CswNbtMetaDataObjectClass MaterialOC in MaterialPS.getObjectClasses() ) { // Set default value for Obsolete property on Materials to false // Remove obsolete from Add layout CswNbtMetaDataObjectClassProp ManufacturerSitesOCP = MaterialOC.getObjectClassProp( CswNbtPropertySetMaterial.PropertyName.ManufacturingSites ); CswNbtView ManufacturersView = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( "ManufacturingSites", CswEnumNbtViewVisibility.Property ); // Set view on nodetypes foreach( CswNbtMetaDataNodeType MaterialNT in MaterialOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp ObsoleteNTP = MaterialNT.getNodeTypeProp( CswNbtPropertySetMaterial.PropertyName.Obsolete ); //ObsoleteNTP.getDefaultValue( true ).AsLogical.Checked = CswEnumTristate.False; ObsoleteNTP.DesignNode.AttributeProperty[CswEnumNbtPropertyAttributeName.DefaultValue].AsLogical.Checked = CswEnumTristate.False; ObsoleteNTP.removeFromLayout( CswEnumNbtLayoutType.Add ); CswNbtMetaDataNodeTypeProp GridNTP = MaterialNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetMaterial.PropertyName.ManufacturingSites ); GridNTP.ViewId.set( ManufacturersView.ViewId.get() ); } } } // update()
public override void update() { // case 25898 - Fix material layout // Note: While it is possible for nodetype and property names to have been mutated by customers, // it's impossible at this stage of CISPro development, so we can rely on existing names. CswNbtMetaDataObjectClass MaterialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswNbtMetaDataObjectClass.NbtObjectClass.MaterialClass); CswNbtMetaDataNodeTypeLayoutMgr.LayoutType EditLayout = CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit; CswNbtMetaDataNodeTypeLayoutMgr.LayoutType AddLayout = CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add; CswNbtMetaDataNodeTypeTab IdentityTab; CswNbtMetaDataNodeTypeTab namedTab; CswNbtMetaDataNodeTypeTab HazardsTab; CswNbtMetaDataNodeTypeTab PhysicalTab; CswNbtMetaDataNodeTypeTab StructureTab; CswNbtMetaDataNodeTypeTab DocumentsTab; CswNbtMetaDataNodeTypeTab ContainersTab; CswNbtMetaDataNodeTypeTab BiosafetyTab; CswNbtMetaDataNodeTypeTab PictureTab; foreach (CswNbtMetaDataNodeType MaterialNT in MaterialOC.getNodeTypes()) { foreach (CswNbtMetaDataNodeTypeProp MatNTP in MaterialNT.getNodeTypeProps()) { _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.removePropFromAllLayouts(MatNTP); switch (MaterialNT.NodeTypeName) { case "Chemical": MaterialNT.IconFileName = "atom.gif"; MaterialNT.setNameTemplateText(CswNbtMetaData.MakeTemplateEntry(CswNbtObjClassMaterial.TradenamePropertyName)); IdentityTab = _getTab(MaterialNT, "Identity", 0); namedTab = _getTab(MaterialNT, MaterialNT.NodeTypeName, 1); HazardsTab = _getTab(MaterialNT, "Hazards", 2); PhysicalTab = _getTab(MaterialNT, "Physical", 3); StructureTab = _getTab(MaterialNT, "Structure", 4); DocumentsTab = _getTab(MaterialNT, "Documents", 5); ContainersTab = _getTab(MaterialNT, "Containers", 6); switch (MatNTP.PropName) { // Identity case CswNbtObjClassMaterial.TradenamePropertyName: MatNTP.updateLayout(EditLayout, false, IdentityTab.TabId, 1, 1); MatNTP.updateLayout(AddLayout, false, Int32.MinValue, 1, 1); break; case CswNbtObjClassMaterial.SupplierPropertyName: MatNTP.updateLayout(EditLayout, false, IdentityTab.TabId, 2, 1); MatNTP.updateLayout(AddLayout, false, Int32.MinValue, 2, 1); break; case CswNbtObjClassMaterial.PartNumberPropertyName: MatNTP.updateLayout(EditLayout, false, IdentityTab.TabId, 3, 1); MatNTP.updateLayout(AddLayout, false, Int32.MinValue, 3, 1); break; case CswNbtObjClassMaterial.RequestPropertyName: MatNTP.updateLayout(EditLayout, false, IdentityTab.TabId, 4, 1); break; case CswNbtObjClassMaterial.ReceivePropertyName: MatNTP.updateLayout(EditLayout, false, IdentityTab.TabId, 5, 1); break; // Chemical case "Synonyms": MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 1, 1); break; case CswNbtObjClassMaterial.CasNoPropertyName: MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 2, 1); break; case "Components": MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 3, 1); break; case CswNbtObjClassMaterial.RegulatoryListsPropertyName: MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 4, 1); break;; case CswNbtObjClassMaterial.ExpirationIntervalPropertyName: MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 5, 1); break; case CswNbtObjClassMaterial.ApprovalStatusPropertyName: MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 6, 1); break; // Hazards case "Hazardous": MatNTP.updateLayout(EditLayout, false, HazardsTab.TabId, 1, 1); break; case "NFPA": MatNTP.updateLayout(EditLayout, false, HazardsTab.TabId, 2, 1); break; case CswNbtObjClassMaterial.StorageCompatibilityPropertyName: MatNTP.updateLayout(EditLayout, false, HazardsTab.TabId, 3, 1); break; case "PPE": MatNTP.updateLayout(EditLayout, false, HazardsTab.TabId, 4, 1); break; // Physical case "Physical Description": MatNTP.updateLayout(EditLayout, false, PhysicalTab.TabId, 1, 1); MatNTP.TextAreaColumns = 20; break; case CswNbtObjClassMaterial.PhysicalStatePropertyName: MatNTP.updateLayout(EditLayout, false, PhysicalTab.TabId, 2, 1); MatNTP.updateLayout(AddLayout, false, Int32.MinValue, 4, 1); break; case "Molecular Weight": MatNTP.updateLayout(EditLayout, false, PhysicalTab.TabId, 3, 1); break; case CswNbtObjClassMaterial.SpecificGravityPropertyName: MatNTP.updateLayout(EditLayout, false, PhysicalTab.TabId, 4, 1); break; case "pH": MatNTP.updateLayout(EditLayout, false, PhysicalTab.TabId, 5, 1); break; case "Boiling Point": MatNTP.updateLayout(EditLayout, false, PhysicalTab.TabId, 3, 2); break; case "Melting Point": MatNTP.updateLayout(EditLayout, false, PhysicalTab.TabId, 4, 2); break; case "Aqueous Solubility": MatNTP.updateLayout(EditLayout, false, PhysicalTab.TabId, 5, 2); break; case "Flash Point": MatNTP.updateLayout(EditLayout, false, PhysicalTab.TabId, 3, 3); break; case "Vapor Pressure": MatNTP.updateLayout(EditLayout, false, PhysicalTab.TabId, 4, 3); break; case "Vapor Density": MatNTP.updateLayout(EditLayout, false, PhysicalTab.TabId, 5, 3); break; // Structure case "Formula": MatNTP.updateLayout(EditLayout, false, StructureTab.TabId, 1, 1); break; case "Structure": MatNTP.updateLayout(EditLayout, false, StructureTab.TabId, 2, 1); break; // Documents case "Documents": MatNTP.updateLayout(EditLayout, false, DocumentsTab.TabId, 1, 1); break; // Containers case "Inventory Levels": MatNTP.updateLayout(EditLayout, false, ContainersTab.TabId, 1, 2); break; // (delete) case "Storage Type": _CswNbtSchemaModTrnsctn.MetaData.DeleteNodeTypeProp(MatNTP); break; } break; case "Biological": MaterialNT.IconFileName = "dna.gif"; MaterialNT.setNameTemplateText(CswNbtMetaData.MakeTemplateEntry("Biological Name")); IdentityTab = _getTab(MaterialNT, "Identity", 0); namedTab = _getTab(MaterialNT, MaterialNT.NodeTypeName, 1); BiosafetyTab = _getTab(MaterialNT, "Biosafety", 2); PictureTab = _getTab(MaterialNT, "Picture", 3); DocumentsTab = _getTab(MaterialNT, "Documents", 4); ContainersTab = _getTab(MaterialNT, "Containers", 5); _removeTab(MaterialNT, "Physical"); switch (MatNTP.PropName) { // Identity case CswNbtObjClassMaterial.TradenamePropertyName: MatNTP.PropName = "Biological Name"; MatNTP.updateLayout(EditLayout, false, IdentityTab.TabId, 1, 1); MatNTP.updateLayout(AddLayout, false, Int32.MinValue, 1, 1); break; case CswNbtObjClassMaterial.SupplierPropertyName: MatNTP.updateLayout(EditLayout, false, IdentityTab.TabId, 2, 1); MatNTP.updateLayout(AddLayout, false, Int32.MinValue, 2, 1); break; case CswNbtObjClassMaterial.PartNumberPropertyName: MatNTP.updateLayout(EditLayout, false, IdentityTab.TabId, 3, 1); MatNTP.updateLayout(AddLayout, false, Int32.MinValue, 3, 1); break; case CswNbtObjClassMaterial.RequestPropertyName: MatNTP.updateLayout(EditLayout, false, IdentityTab.TabId, 4, 1); break; // Biological case "Synonyms": MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 1, 1); break; case "Reference Number": MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 2, 1); break; case "Type": MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 3, 1); break; case "Species Origin": MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 4, 1); break; case "Vectors": MatNTP.updateLayout(EditLayout, false, BiosafetyTab.TabId, 5, 1); break; case "Reference Type": MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 6, 1); break; //case CswNbtObjClassMaterial.ExpirationIntervalPropertyName: MatNTP.updateLayout( EditLayout, false, namedTab.TabId, 6, 1 ); break; case CswNbtObjClassMaterial.ApprovalStatusPropertyName: MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 7, 1); break; // Biosafety case "Biosafety Level": MatNTP.updateLayout(EditLayout, false, BiosafetyTab.TabId, 1, 1); break; case CswNbtObjClassMaterial.PhysicalStatePropertyName: MatNTP.updateLayout(EditLayout, false, BiosafetyTab.TabId, 3, 1); MatNTP.updateLayout(AddLayout, false, Int32.MinValue, 4, 1); MatNTP.ListOptions = CswNbtObjClassMaterial.PhysicalStates.Options.ToString(); break; case CswNbtObjClassMaterial.SpecificGravityPropertyName: MatNTP.updateLayout(EditLayout, false, BiosafetyTab.TabId, 4, 1); break; //case CswNbtObjClassMaterial.StorageCompatibilityPropertyName: MatNTP.updateLayout( EditLayout, false, BiosafetyTab.TabId, 5, 1 ); break; // Documents case "Documents": MatNTP.updateLayout(EditLayout, false, DocumentsTab.TabId, 1, 1); break; // Containers case "Inventory Levels": MatNTP.updateLayout(EditLayout, false, ContainersTab.TabId, 1, 2); break; //case CswNbtObjClassMaterial.CasNoPropertyName: MatNTP.updateLayout( EditLayout, false, namedTab.TabId, 1, 2 ); break; //case CswNbtObjClassMaterial.RegulatoryListsPropertyName: MatNTP.updateLayout( EditLayout, false, namedTab.TabId, 1, 4 ); break; // (delete) case "Storage Type": _CswNbtSchemaModTrnsctn.MetaData.DeleteNodeTypeProp(MatNTP); break; } break; case "Supply": MaterialNT.IconFileName = "tube.gif"; MaterialNT.setNameTemplateText(CswNbtMetaData.MakeTemplateEntry(CswNbtObjClassMaterial.TradenamePropertyName)); IdentityTab = _getTab(MaterialNT, "Identity", 0); namedTab = _getTab(MaterialNT, MaterialNT.NodeTypeName, 1); PictureTab = _getTab(MaterialNT, "Picture", 2); DocumentsTab = _getTab(MaterialNT, "Documents", 3); ContainersTab = _getTab(MaterialNT, "Containers", 4); _removeTab(MaterialNT, "Physical"); switch (MatNTP.PropName) { // Identity case CswNbtObjClassMaterial.TradenamePropertyName: MatNTP.updateLayout(EditLayout, false, IdentityTab.TabId, 1, 1); MatNTP.updateLayout(AddLayout, false, Int32.MinValue, 1, 1); break; case CswNbtObjClassMaterial.SupplierPropertyName: MatNTP.updateLayout(EditLayout, false, IdentityTab.TabId, 2, 1); MatNTP.updateLayout(AddLayout, false, Int32.MinValue, 2, 1); break; case CswNbtObjClassMaterial.PartNumberPropertyName: MatNTP.updateLayout(EditLayout, false, IdentityTab.TabId, 3, 1); MatNTP.updateLayout(AddLayout, false, Int32.MinValue, 3, 1); break; case CswNbtObjClassMaterial.RequestPropertyName: MatNTP.updateLayout(EditLayout, false, IdentityTab.TabId, 4, 1); break; // Supply case "Description": MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 1, 1); break; case "Synonyms": MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 2, 1); break; //case CswNbtObjClassMaterial.ExpirationIntervalPropertyName: MatNTP.updateLayout( EditLayout, false, namedTab.TabId, 4, 1 ); break; case CswNbtObjClassMaterial.ApprovalStatusPropertyName: MatNTP.updateLayout(EditLayout, false, namedTab.TabId, 5, 1); break; // Picture case "Picture": MatNTP.updateLayout(EditLayout, false, PictureTab.TabId, 1, 1); break; // Documents case "Documents": MatNTP.updateLayout(EditLayout, false, DocumentsTab.TabId, 1, 1); break; //case CswNbtObjClassMaterial.CasNoPropertyName: MatNTP.updateLayout( EditLayout, false, namedTab.TabId, 1, 2 ); break; //case CswNbtObjClassMaterial.RegulatoryListsPropertyName: MatNTP.updateLayout( EditLayout, false, namedTab.TabId, 1, 4 ); break; ; //case CswNbtObjClassMaterial.StorageCompatibilityPropertyName: MatNTP.updateLayout( EditLayout, false, HazardsTab.TabId, 1, 3 ); break; //case CswNbtObjClassMaterial.PhysicalStatePropertyName: MatNTP.updateLayout( EditLayout, false, PhysicalTab.TabId, 1, 2 ); break; //case CswNbtObjClassMaterial.SpecificGravityPropertyName: MatNTP.updateLayout( EditLayout, false, PhysicalTab.TabId, 1, 4 ); break; // Containers case "Inventory Levels": MatNTP.updateLayout(EditLayout, false, ContainersTab.TabId, 1, 2); break; // (delete) case "Storage Type": _CswNbtSchemaModTrnsctn.MetaData.DeleteNodeTypeProp(MatNTP); break; case "Components": _CswNbtSchemaModTrnsctn.MetaData.DeleteNodeTypeProp(MatNTP); break; } break; } // switch( MaterialNT.NodeTypeName ) } // foreach( CswNbtMetaDataNodeTypeProp MatNTP in MaterialNT.getNodeTypeProps() ) } // foreach( CswNbtMetaDataNodeType MaterialNT in MaterialOC.getNodeTypes() ) } // update()
public override void update() { CswNbtMetaDataNodeType SDSDocumentNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "SDS Document" ); if( null != SDSDocumentNT ) { CswNbtMetaDataObjectClass MaterialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.MaterialClass ); foreach( CswNbtMetaDataNodeType MaterialNT in MaterialOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp DocumentsNTP = MaterialNT.getNodeTypeProp("Documents"); if( null != DocumentsNTP ) { //Material: Documents - MaterialClass->MaterialDocument (by Owner) - Title, Acquired Date, Expiration Date, Archived, File, Link (no filters) CswNbtView DocumentsView = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( DocumentsNTP.ViewId ); CswNbtMetaDataNodeType MaterialDocumentNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Material Document" ); if( null != MaterialDocumentNT ) { _removeDocumentClassPropAndFilters( DocumentsView, MaterialDocumentNT ); } } if( MaterialNT.NodeTypeName == "Chemical") { //Chemical: Assigned SDS - MaterialClass->SDS Document (by Owner) - Title, Language, Format, File, Link, Revision Date, Archived (equals 0, show at runtime) CswNbtMetaDataNodeTypeProp AssignedSDSNTP = MaterialNT.getNodeTypeProp( "Assigned SDS" ); if( null != AssignedSDSNTP ) { CswNbtView AssignedSDSView = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( AssignedSDSNTP.ViewId ); AssignedSDSView.Root.ChildRelationships.Clear(); CswNbtViewRelationship RootRel = AssignedSDSView.AddViewRelationship( MaterialNT, false ); CswNbtMetaDataNodeTypeProp OwnerOCP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Owner ); CswNbtViewRelationship DocRel = AssignedSDSView.AddViewRelationship( RootRel, NbtViewPropOwnerType.Second, OwnerOCP, true ); CswNbtMetaDataNodeTypeProp ArchivedNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Archived ); AssignedSDSView.AddViewPropertyAndFilter( DocRel, ArchivedNTP, Tristate.False.ToString(), FilterMode: CswNbtPropFilterSql.PropertyFilterMode.Equals, ShowAtRuntime: true, ShowInGrid: false ); CswNbtMetaDataNodeTypeProp TitleNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Title ); AssignedSDSView.AddViewProperty( DocRel, TitleNTP ); CswNbtMetaDataNodeTypeProp LanguageNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Language ); AssignedSDSView.AddViewProperty( DocRel, LanguageNTP ); CswNbtMetaDataNodeTypeProp FormatNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Format ); AssignedSDSView.AddViewProperty( DocRel, FormatNTP ); CswNbtMetaDataNodeTypeProp FileNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.File ); AssignedSDSView.AddViewProperty( DocRel, FileNTP ); CswNbtMetaDataNodeTypeProp LinkNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.Link ); AssignedSDSView.AddViewProperty( DocRel, LinkNTP ); CswNbtMetaDataNodeTypeProp RevisionDateNTP = SDSDocumentNT.getNodeTypeProp( "Revision Date" ); if( null != RevisionDateNTP ) { AssignedSDSView.AddViewProperty( DocRel, RevisionDateNTP ); } AssignedSDSView.save(); } } } CswNbtView SDSView = _CswNbtSchemaModTrnsctn.restoreView("SDS Expiring Next Month"); if( null != SDSView ) { //ViewSelect: SDS Expiring Next Month - SDS Document - Expiration Date (value <= today+30) SDSView.Root.ChildRelationships.Clear(); CswNbtViewRelationship RootRel = SDSView.AddViewRelationship( SDSDocumentNT, false ); CswNbtMetaDataNodeTypeProp ExpirationDateNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.ExpirationDate ); SDSView.AddViewPropertyAndFilter( RootRel, ExpirationDateNTP, "today+30", FilterMode: CswNbtPropFilterSql.PropertyFilterMode.LessThanOrEquals); SDSView.save(); } } } //Update()
public override void update() { //1 - add MaterialName column to Location's Containers Grid Property CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.LocationClass ); foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp ContainersGridProp = LocationNT.getNodeTypePropByObjectClassProp(CswNbtObjClassLocation.PropertyName.Containers); CswNbtView ContainersView = _CswNbtSchemaModTrnsctn.restoreView( ContainersGridProp.ViewId ); if( null != ContainersView ) { ContainersView.ViewMode = NbtViewRenderingMode.Grid; ContainersView.Root.ChildRelationships.Clear(); ContainersView.ViewVisibility = NbtViewVisibility.Property.ToString(); CswNbtViewRelationship LocRootRel = ContainersView.AddViewRelationship( LocationOC, false ); CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.ContainerClass ); CswNbtMetaDataObjectClassProp LocationOCP = LocationOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Location ); CswNbtViewRelationship ContainerRel = ContainersView.AddViewRelationship( LocRootRel, NbtViewPropOwnerType.Second, LocationOCP, false ); CswNbtViewProperty BarcodeVP = ContainersView.AddViewProperty( ContainerRel, ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Barcode ) ); BarcodeVP.Order = 1; CswNbtViewProperty MaterialVP = ContainersView.AddViewProperty( ContainerRel, ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Material ) ); MaterialVP.Order = 2; CswNbtViewProperty StatusVP = ContainersView.AddViewProperty( ContainerRel, ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Status ) ); StatusVP.Order = 3; CswNbtViewProperty ExpDateVP = ContainersView.AddViewProperty( ContainerRel, ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.ExpirationDate ) ); ExpDateVP.Order = 4; CswNbtViewProperty MissingVP = ContainersView.AddViewProperty( ContainerRel, ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Missing ) ); MissingVP.Order = 5; CswNbtViewProperty OwnerVP = ContainersView.AddViewProperty( ContainerRel, ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Owner ) ); OwnerVP.Order = 6; CswNbtViewProperty DisposedVP = ContainersView.AddViewProperty( ContainerRel, ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Disposed ) ); DisposedVP.Order = 7; DisposedVP.ShowInGrid = false; ContainersView.AddViewPropertyFilter( DisposedVP, CswNbtPropFilterSql.PropertyFilterConjunction.And, CswNbtPropFilterSql.FilterResultMode.Hide, CswNbtSubField.SubFieldName.Checked, CswNbtPropFilterSql.PropertyFilterMode.Equals, "false" ); ContainersView.save(); } } //2 - Move the Material Buttons to the second column in the Identity Tab in Edit Layout CswNbtMetaDataObjectClass MaterialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.MaterialClass ); foreach( CswNbtMetaDataNodeType MaterialNT in MaterialOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeTab IdentityTab = MaterialNT.getIdentityTab(); CswNbtMetaDataNodeTypeProp RequestNTP = MaterialNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMaterial.PropertyName.Request ); RequestNTP.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit, true, IdentityTab.TabId, 1, 2 ); CswNbtMetaDataNodeTypeProp ReceiveNTP = MaterialNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMaterial.PropertyName.Receive ); ReceiveNTP.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit, true, IdentityTab.TabId, 2, 2 ); CswNbtMetaDataNodeTypeProp PartNumberNTP = MaterialNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMaterial.PropertyName.PartNumber ); PartNumberNTP.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit, true, IdentityTab.TabId, 1, 1 ); CswNbtMetaDataNodeTypeProp TradenameNTP = MaterialNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMaterial.PropertyName.Tradename ); TradenameNTP.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit, true, IdentityTab.TabId, 2, 1 ); CswNbtMetaDataNodeTypeProp SupplierNTP = MaterialNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMaterial.PropertyName.Supplier ); SupplierNTP.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit, true, IdentityTab.TabId, 3, 1 ); } //3 - Add the following properties to the Chemical's Preview Layout: TradeName, Supplier, NFPA, PPE, GHS pictos, Storage Compatibility ChemicalNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Chemical" ); if( null != ChemicalNT ) { _addToPreview( CswNbtObjClassMaterial.PropertyName.Tradename ); _addToPreview( CswNbtObjClassMaterial.PropertyName.Supplier ); _addToPreview( "NFPA" ); _addToPreview( "PPE" ); _addToPreview( "GHS Pictos" ); _addToPreview( CswNbtObjClassMaterial.PropertyName.StorageCompatibility ); } //4 - Rename Expired Containers View to "My Expired Contianers" CswNbtView MyExpiredContainersView = _CswNbtSchemaModTrnsctn.restoreView( "Expiring Containers" ); if( null != MyExpiredContainersView ) { MyExpiredContainersView.ViewName = "My Expiring Containers"; MyExpiredContainersView.save(); } //5 - Create new "My Contianers" grid, which is essentially the Containers view with an "owner=me" filter _createMyContainersView(); //6-8 - update action and view permissions for CIS_Pro roles, and add WelcomePage Items (in Part 2 of script) //9 - rename MSDS to SDS everywhere CswNbtMetaDataObjectClass DocumentClass = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.DocumentClass ); foreach(CswNbtMetaDataNodeType DocumentNT in DocumentClass.getNodeTypes()) { DocumentClassNTP = DocumentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassDocument.PropertyName.DocumentClass ); DocumentClassNTP.ListOptions = DocumentClassNTP.ListOptions.Replace( "MSDS", "SDS" ); DocumentClassNTP.DefaultValue.AsList.Value = DocumentClassNTP.DefaultValue.AsList.Value.Replace( "MSDS", "SDS" ); DocumentClassNTP.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add, true, DocumentNT.getFirstNodeTypeTab().TabId ); _filterToSDS( DocumentNT, CswNbtObjClassDocument.PropertyName.Language ); _filterToSDS( DocumentNT, CswNbtObjClassDocument.PropertyName.Format ); _filterToSDS( DocumentNT, "Issue Date" ); } foreach( CswNbtObjClassDocument DocumentNode in DocumentClass.getNodes( false, false ) ) { if( DocumentNode.DocumentClass.Value == "MSDS" ) { DocumentNode.DocumentClass.Value = "SDS"; DocumentNode.postChanges( false ); } } CswNbtView MSDSView = _CswNbtSchemaModTrnsctn.restoreView( "MSDS Expiring Next Month" ); if( null != MSDSView ) { MSDSView.ViewName = "SDS Expiring Next Month"; MSDSView.save(); } }//Update()
public override void update() { // New 'IsConstituent' property CswNbtMetaDataPropertySet MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet ); foreach( CswNbtMetaDataObjectClass MaterialOC in _CswNbtSchemaModTrnsctn.MetaData.getObjectClassesByPropertySetId( MaterialPS.PropertySetId ) ) { foreach( CswNbtMetaDataNodeType MaterialNT in MaterialOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp IsConstituentNTP = MaterialNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetMaterial.PropertyName.IsConstituent ); IsConstituentNTP.DefaultValue.AsLogical.Checked = CswEnumTristate.False; IsConstituentNTP.removeFromAllLayouts(); foreach( CswNbtPropertySetMaterial MaterialNode in MaterialNT.getNodes( false, true ) ) { MaterialNode.IsConstituent.Checked = CswEnumTristate.False; MaterialNode.postChanges( false ); } } } CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); if( null != ChemicalOC.FirstNodeType ) { //1. Create a new NodeType (of ObjClassChemical) called "Constituent" CswNbtMetaDataNodeType ConstituentNT = _CswNbtSchemaModTrnsctn.MetaData.CopyNodeType( ChemicalOC.FirstNodeType, "Constituent" ); CswNbtMetaDataNodeTypeProp TradeNameNTP = ConstituentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.TradeName ); ConstituentNT.setNameTemplateText( CswNbtMetaData.MakeTemplateEntry( TradeNameNTP.PropName ) ); // IsConstituent is true here CswNbtMetaDataNodeTypeProp IsConstituentNTP = ConstituentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.IsConstituent ); IsConstituentNTP.DefaultValue.AsLogical.Checked = CswEnumTristate.True; //2. Set Allow Receiving prop to "false" by default CswNbtMetaDataNodeTypeProp ApprovedReceivingNTP = ConstituentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.ApprovedForReceiving ); ApprovedReceivingNTP.DefaultValue.AsLogical.Checked = CswEnumTristate.False; ApprovedReceivingNTP.ServerManaged = true; Collection<CswNbtMetaDataNodeTypeProp> PropertiesToDelete = new Collection<CswNbtMetaDataNodeTypeProp>(); PropertiesToDelete.Add( ConstituentNT.getNodeTypeProp( "Chemical Sizes" ) ); PropertiesToDelete.Add( ConstituentNT.getNodeTypeProp( "Inventory Levels" ) ); PropertiesToDelete.Add( ConstituentNT.getNodeTypeProp( "Chemical Containers" ) ); PropertiesToDelete.Add( ConstituentNT.getNodeTypeProp( "Components" ) ); foreach( CswNbtMetaDataNodeTypeProp DoomedProp in PropertiesToDelete ) { if( null != DoomedProp ) { _CswNbtSchemaModTrnsctn.MetaData.DeleteNodeTypeProp( DoomedProp ); } } CswNbtMetaDataNodeTypeProp SupplierNTP = ConstituentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.Supplier ); SupplierNTP.removeFromAllLayouts(); // 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, ConstituentNT, CISProAdminRole, true ); } // if( null != ChemicalOC.FirstNodeType ) } // update()