public override void update() { CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.ChemicalClass); foreach (CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes()) { CswNbtMetaDataNodeTypeProp GHSNTP = ChemicalNT.getNodeTypePropByObjectClassProp(CswNbtObjClassChemical.PropertyName.Jurisdiction); if (null != GHSNTP) { GHSNTP.updateLayout(CswEnumNbtLayoutType.Preview, true); } } CswNbtMetaDataObjectClass GHSOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.GHSClass); foreach (CswNbtMetaDataNodeType GHSNT in GHSOC.getNodeTypes()) { CswNbtMetaDataNodeTypeProp PictosNTP = GHSNT.getNodeTypePropByObjectClassProp(CswNbtObjClassGHS.PropertyName.Pictograms); foreach (CswNbtMetaDataNodeTypeProp GHSNTP in GHSNT.getNodeTypeProps()) { if (null != PictosNTP && GHSNTP.PropId == PictosNTP.PropId) { GHSNTP.updateLayout(CswEnumNbtLayoutType.Preview, true); } else { GHSNTP.removeFromLayout(CswEnumNbtLayoutType.Preview); } } } }
public override void update() { // add active to constituent grid CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); CswNbtMetaDataObjectClass ComponentOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.MaterialComponentClass ); foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp ChemicalComponentsNTP = ChemicalNT.getNodeTypeProp( "Components" ); if( null != ChemicalComponentsNTP ) { CswNbtView ComponentsView = _CswNbtSchemaModTrnsctn.restoreView( ChemicalComponentsNTP.ViewId ); if( ComponentsView.Root.ChildRelationships.Count > 0 ) { CswNbtViewRelationship ChemRel = ComponentsView.Root.ChildRelationships[0]; if( ChemRel.ChildRelationships.Count > 0 ) { CswNbtViewRelationship CompRel = ChemRel.ChildRelationships[0]; Int32 order = 1; foreach( CswNbtViewProperty vp in CompRel.Properties ) { vp.Order = order; order++; } ComponentsView.AddViewProperty( CompRel, ComponentOC.getObjectClassProp( CswNbtObjClassMaterialComponent.PropertyName.Active ), order ); } } ComponentsView.save(); } // if( null != ChemicalComponentsNTP ) } // foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) } // update()
public override void update() { CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp HazardInfoNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.HazardInfo ); HazardInfoNTP.removeFromAllLayouts(); CswNbtMetaDataNodeTypeProp DisposalNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.DisposalInstructions ); DisposalNTP.removeFromAllLayouts(); CswNbtMetaDataNodeTypeProp SMILESNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.SMILES ); SMILESNTP.removeFromAllLayouts(); CswNbtMetaDataNodeTypeProp CompGasNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.CompressedGas ); CompGasNTP.removeFromAllLayouts(); CswNbtMetaDataNodeTypeProp DOTCodeNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.DOTCode ); DOTCodeNTP.removeFromAllLayouts(); DOTCodeNTP.MaxValue = 999; //DOT codes are 3 numbers DOTCodeNTP.MinValue = 0; CswNbtMetaDataNodeTypeProp OpenExpireIntervalNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.OpenExpireInterval ); OpenExpireIntervalNTP.removeFromAllLayouts(); CswNbtMetaDataNodeTypeProp EINECSNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.EINECS ); EINECSNTP.removeFromAllLayouts(); CswNbtMetaDataNodeTypeProp SubclassNameNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.SubclassName ); SubclassNameNTP.removeFromAllLayouts(); } } // update()
public override void update() { CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp LQNoNTP = ChemicalNT.getNodeTypePropByObjectClassProp(CswNbtObjClassChemical.PropertyName.LQNo); LQNoNTP.removeFromAllLayouts(); CswNbtMetaDataNodeTypeProp UNCodeNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.UNCode ); UNCodeNTP.removeFromAllLayouts(); } } // update()
public override void update() { CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp AssignedSDSNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.AssignedSDS ); CswNbtMetaDataNodeTypeProp LinkChemWatchNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.LinkChemWatch ); LinkChemWatchNTP.removeFromAllLayouts(); LinkChemWatchNTP.updateLayout( CswEnumNbtLayoutType.Edit, AssignedSDSNTP, true ); } } // update()
public override void update() { CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp LegacyMaterialIdNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.LegacyMaterialId ); LegacyMaterialIdNTP.removeFromAllLayouts(); CswNbtMetaDataNodeTypeProp ProductDescriptionNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.ProductDescription ); ProductDescriptionNTP.removeFromAllLayouts(); } } // update()
public override void update() { // Set Material Tradename to be unique for Constituents CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp IsConstituentNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.IsConstituent ); if( CswEnumTristate.True == IsConstituentNTP.DefaultValue.AsLogical.Checked ) { CswNbtMetaDataNodeTypeProp TradenameNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.TradeName ); TradenameNTP.setIsUnique( true ); } } }
public override void update() { CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); if( null != ChemicalOC ) { foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { // Remove Regulatory Lists Grid header on Chemical CswNbtMetaDataNodeTypeProp RegListsGridNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.RegulatoryListsGrid ); RegListsGridNTP.Attribute1 = false.ToString(); // case 28303 - Hide Suppressed Regulatory Lists prop CswNbtMetaDataNodeTypeProp SuppressedRegListsNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.SuppressedRegulatoryLists ); SuppressedRegListsNTP.removeFromAllLayouts(); } } CswNbtMetaDataObjectClass RegListOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RegulatoryListClass ); CswNbtMetaDataObjectClass RegListMemberOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RegulatoryListMemberClass ); if( null != RegListOC && null != RegListMemberOC ) { foreach( CswNbtMetaDataNodeType RegListNT in RegListOC.getNodeTypes() ) { // Fix help text on Regulatory List 'Add CAS Numbers' property CswNbtMetaDataNodeTypeProp AddCasNosNTP = RegListNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRegulatoryList.PropertyName.AddCASNumbers ); AddCasNosNTP.HelpText = @"Enter a list of CAS numbers to add to this regulatory list, delimited by commas or newlines."; // Add help text to Regulatory List 'Exclusive' property CswNbtMetaDataNodeTypeProp ExclusiveNTP = RegListNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRegulatoryList.PropertyName.Exclusive ); ExclusiveNTP.HelpText = @"If checked, the normal behavior of the regulatory list is reversed; a chemical is only considered a member of the list if it does not match any CAS number on the list."; // Fix property name of CASNosGrid CswNbtMetaDataNodeTypeProp CASNosGridNTP = RegListNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRegulatoryList.PropertyName.CASNosGrid ); CASNosGridNTP.PropName = CswNbtObjClassRegulatoryList.PropertyName.CASNosGrid; // Add Chemical grid on Regulatory List CswNbtMetaDataNodeTypeTab ChemTab = _CswNbtSchemaModTrnsctn.MetaData.makeNewTabDeprecated( RegListNT, "Chemicals", 2 ); CswNbtMetaDataNodeTypeProp ChemGrid = _CswNbtSchemaModTrnsctn.MetaData.makeNewPropDeprecated( RegListNT, CswEnumNbtFieldType.Grid, "Chemicals", ChemTab.TabId ); CswNbtView ChemView = _CswNbtSchemaModTrnsctn.restoreView( ChemGrid.ViewId ); ChemView.Root.ChildRelationships.Clear(); CswNbtViewRelationship regListRel = ChemView.AddViewRelationship( RegListOC, false ); CswNbtViewRelationship memberRel = ChemView.AddViewRelationship( regListRel, CswEnumNbtViewPropOwnerType.Second, RegListMemberOC.getObjectClassProp( CswNbtObjClassRegulatoryListMember.PropertyName.RegulatoryList ), false ); CswNbtViewRelationship chemRel = ChemView.AddViewRelationship( memberRel, CswEnumNbtViewPropOwnerType.First, RegListMemberOC.getObjectClassProp( CswNbtObjClassRegulatoryListMember.PropertyName.Chemical ), false ); ChemView.AddViewProperty( chemRel, ChemicalOC.getObjectClassProp( CswNbtObjClassChemical.PropertyName.TradeName ) ); ChemView.AddViewProperty( chemRel, ChemicalOC.getObjectClassProp( CswNbtObjClassChemical.PropertyName.CasNo ) ); ChemView.save(); } } } // update()
public override void update() { // Update the PPE list options on all Chemical NTs const string UpdatedPPEOptions = "Goggles,Gloves,Clothing,Fume Hood,Respirator,Dust Mask,Face Shield,Isolation Lab,Lab Coat,Safety Cabinet"; CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp PPENTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.PPE ); if( null != PPENTP ) { PPENTP._DataRow["listoptions"] = UpdatedPPEOptions; } } } // update()
public override void update() { // Remove default value from Specific Gravity and Physical State CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp SpecificGravityNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.SpecificGravity ); SpecificGravityNTP.getDefaultValue( false ).ClearValue(); SpecificGravityNTP.updateLayout( CswEnumNbtLayoutType.Add, true, Int32.MinValue, 5, 1 ); CswNbtMetaDataNodeTypeProp PhysicalStateNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.PhysicalState ); PhysicalStateNTP.getDefaultValue( false ).ClearValue(); PhysicalStateNTP.updateLayout( CswEnumNbtLayoutType.Add, true, Int32.MinValue, 3, 1 ); } } // update()
}// OnEnable() protected override void OnDisable() { CswNbtMetaDataObjectClass ChemicalOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ChemicalClass); foreach (CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes()) { CswNbtMetaDataNodeTypeProp PictogramsNTP = ChemicalNT.getNodeTypePropByObjectClassProp(CswNbtObjClassChemical.PropertyName.Pictograms); _CswNbtResources.Modules.HideProp(PictogramsNTP); CswNbtMetaDataNodeTypeProp LabelCodesNTP = ChemicalNT.getNodeTypePropByObjectClassProp(CswNbtObjClassChemical.PropertyName.LabelCodes); _CswNbtResources.Modules.HideProp(LabelCodesNTP); CswNbtMetaDataNodeTypeProp LabelCodesGridNTP = ChemicalNT.getNodeTypePropByObjectClassProp(CswNbtObjClassChemical.PropertyName.LabelCodesGrid); _CswNbtResources.Modules.HideProp(LabelCodesGridNTP); } } // OnDisable()
} // OnDisable() private void _toggleChemWatchBtn(bool Hidden) { CswNbtMetaDataObjectClass ChemicalOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ChemicalClass); foreach (CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes()) { CswNbtMetaDataNodeTypeProp LinkChemWatchNTP = ChemicalNT.getNodeTypePropByObjectClassProp(CswNbtObjClassChemical.PropertyName.LinkChemWatch); if (Hidden) { _CswNbtResources.Modules.HideProp(LinkChemWatchNTP); } else { _CswNbtResources.Modules.ShowProp(LinkChemWatchNTP); } } }
public override void update() { HashSet<CswNbtViewId> SeenViewIds = new HashSet<CswNbtViewId>(); CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); CswNbtMetaDataObjectClass MaterialComponentOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.MaterialComponentClass ); CswNbtMetaDataObjectClassProp ConstituentOCP = MaterialComponentOC.getObjectClassProp( CswNbtObjClassMaterialComponent.PropertyName.Constituent ); CswNbtMetaDataObjectClassProp MixtureOCP = MaterialComponentOC.getObjectClassProp( CswNbtObjClassMaterialComponent.PropertyName.Mixture ); CswNbtMetaDataObjectClassProp PercentageOCP = MaterialComponentOC.getObjectClassProp( CswNbtObjClassMaterialComponent.PropertyName.Percentage ); CswNbtMetaDataNodeType ConstituentNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Constituent" ); if( null != ConstituentNT ) { CswNbtMetaDataNodeTypeProp ConstituentCASNoNTP = ConstituentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.CasNo ); foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp ConstituentNTP = ChemicalNT.getNodeTypeProp( "Components" ); if( null != ConstituentNTP ) { if( false == SeenViewIds.Contains( ConstituentNTP.ViewId ) ) { CswNbtView ConstituentsPropView = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( ConstituentNTP.ViewId ); ConstituentsPropView.Root.ChildRelationships.Clear(); CswNbtViewRelationship ChemicalParent = ConstituentsPropView.AddViewRelationship( ChemicalOC, false ); CswNbtViewRelationship MaterialComponentRelationship = ConstituentsPropView.AddViewRelationship( ChemicalParent, CswEnumNbtViewPropOwnerType.Second, MixtureOCP, true ); ConstituentsPropView.AddViewProperty( MaterialComponentRelationship, ConstituentOCP, 1 ); CswNbtViewRelationship ConstituentRelationship = ConstituentsPropView.AddViewRelationship( MaterialComponentRelationship, CswEnumNbtViewPropOwnerType.First, ConstituentOCP, false ); ConstituentsPropView.AddViewProperty( ConstituentRelationship, ConstituentCASNoNTP, 2 ); ConstituentsPropView.AddViewProperty( MaterialComponentRelationship, PercentageOCP, 3 ); ConstituentsPropView.save(); SeenViewIds.Add( ConstituentNTP.ViewId ); } } } } } // update()
public override void update() { CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp NodetypeProp = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.AddLabelCodes ); //NodetypeProp.Hidden = true; NodetypeProp.removeFromAllLayouts(); } // Add material to name template for ghs nodetypes CswNbtMetaDataObjectClass GHSOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.GHSClass ); foreach( CswNbtMetaDataNodeType GHSNT in GHSOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp JurisdictionNTP = GHSNT.getNodeTypePropByObjectClassProp( CswNbtObjClassGHS.PropertyName.Jurisdiction ); CswNbtMetaDataNodeTypeProp MaterialNTP = GHSNT.getNodeTypePropByObjectClassProp( CswNbtObjClassGHS.PropertyName.Material ); GHSNT.setNameTemplateText( CswNbtMetaData.MakeTemplateEntry( JurisdictionNTP.PropName ) + " " + CswNbtMetaData.MakeTemplateEntry( MaterialNTP.PropName ) ); } } // update()
protected override void OnEnable() { CswNbtMetaDataObjectClass ChemicalOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ChemicalClass); foreach (CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes()) { CswNbtMetaDataNodeTypeProp PictogramsNTP = ChemicalNT.getNodeTypePropByObjectClassProp(CswNbtObjClassChemical.PropertyName.Pictograms); _CswNbtResources.Modules.ShowProp(PictogramsNTP); CswNbtMetaDataNodeTypeProp LabelCodesNTP = ChemicalNT.getNodeTypePropByObjectClassProp(CswNbtObjClassChemical.PropertyName.LabelCodes); _CswNbtResources.Modules.ShowProp(LabelCodesNTP); CswNbtMetaDataNodeTypeProp LabelCodesGridNTP = ChemicalNT.getNodeTypePropByObjectClassProp(CswNbtObjClassChemical.PropertyName.LabelCodesGrid); _CswNbtResources.Modules.ShowProp(LabelCodesGridNTP); CswNbtMetaDataNodeTypeTab DSDTab = ChemicalNT.getNodeTypeTab("DSD"); if (null == DSDTab) { CswNbtMetaDataNodeTypeTab GHSTab = ChemicalNT.getNodeTypeTab("GHS"); //Move all tabs over foreach (CswNbtMetaDataNodeTypeTab tab in ChemicalNT.getNodeTypeTabs().Where(Tab => Tab.TabOrder > GHSTab.TabOrder)) { //tab.TabOrder++; tab.DesignNode.Order.Value += 1; } //Create the DSD tab and put it next to the GHS tab DSDTab = _CswNbtResources.MetaData.makeNewTab(ChemicalNT, "DSD", GHSTab.TabOrder + 1); } if (false == DSDTab.HasProps) { //Put the DSD props on the tab PictogramsNTP.updateLayout(CswEnumNbtLayoutType.Edit, true, DSDTab.TabId); LabelCodesNTP.updateLayout(CswEnumNbtLayoutType.Edit, PictogramsNTP, true); LabelCodesGridNTP.updateLayout(CswEnumNbtLayoutType.Edit, LabelCodesNTP, true); } } }// OnEnable()
public override void update() { #region Create DSD NodeType CswNbtMetaDataNodeType DSD_NT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeType( CswEnumNbtObjectClass.DSDPhraseClass, "DSD Phrase", "System" ); DSD_NT.setNameTemplateText( CswNbtMetaData.MakeTemplateEntry( CswNbtPropertySetPhrase.PropertyName.Code ) ); foreach( CswNbtMetaDataNodeTypeProp NTP in DSD_NT.getNodeTypeProps() ) { if( CswNbtPropertySetPhrase.PropertyName.English != NTP.PropName && CswNbtPropertySetPhrase.PropertyName.Code != NTP.PropName && CswNbtObjClassDSDPhrase.PropertyName.Category != NTP.PropName ) { NTP.removeFromAllLayouts(); } } #endregion #region Create SD Phrases #region Risk Phrases Dictionary<string, string> RiskPhrases = new Dictionary<string, string>() { {"R0", "no code"}, {"R1", "Explosive when dry."}, {"R10", "Flammable."}, {"R11", "Highly flammable."}, {"R12", "Extremely flammable."}, {"R14", "Reacts violently with water."}, {"R14/15", "Reacts violently with water, liberating extremely flammable gases."}, {"R15", "Contact with water liberates extremely flammable gases."}, {"R15/29", "Contact with water liberates toxic, extremely flammable gas."}, {"R16", "Explosive when mixed with oxidising substances."}, {"R17", "Spontaneously flammable in air."}, {"R18", "In use, may form flammable/explosive vapour-air mixture."}, {"R19", "May form explosive peroxides."}, {"R2", "Risk of explosion by shock, friction, fire or other sources of ignition."}, {"R20", "Harmful by inhalation."}, {"R20/21", "Harmful by inhalation and in contact with skin."}, {"R20/21/22", "Harmful by inhalation, in contact with skin and if swallowed."}, {"R20/22", "Harmful by inhalation and if swallowed."}, {"R21", "Harmful in contact with skin."}, {"R21/22", "Harmful in contact with skin and if swallowed."}, {"R22", "Harmful if swallowed."}, {"R23", "Toxic by inhalation."}, {"R23/24", "Toxic by inhalation and in contact with skin."}, {"R23/24/25", "Toxic by inhalation, in contact with skin and if swallowed."}, {"R23/25", "Toxic by inhalation and if swallowed."}, {"R24", "Toxic in contact with skin."}, {"R24/25", "Toxic in contact with skin and if swallowed."}, {"R25", "Toxic if swallowed."}, {"R26", "Very toxic by inhalation."}, {"R26/27", "Very toxic by inhalation and in contact with skin."}, {"R26/27/28", "Very toxic by inhalation, in contact with skin and if swallowed."}, {"R26/28", "Very toxic by inhalation and if swallowed."}, {"R27", "Very toxic in contact with skin."}, {"R27/28", "Very toxic in contact with skin and if swallowed."}, {"R28", "Very toxic if swallowed."}, {"R29", "Contact with water liberates toxic gas."}, {"R3", "Extreme risk of explosion by shock, friction, fire or other sources of ignition."}, {"R30", "Can become highly flammable in use."}, {"R31", "Contact with acids liberates toxic gas."}, {"R32", "Contact with acids liberates very toxic gas."}, {"R33", "Danger of cumulative effects."}, {"R34", "Causes burns."}, {"R35", "Causes severe burns."}, {"R36", "Irritating to eyes."}, {"R36/37", "Irritating to eyes and respiratory system."}, {"R36/37/38", "Irritating to eyes, respiratory system and skin."}, {"R36/38", "Irritating to eyes and skin."}, {"R37", "Irritating to respiratory system."}, {"R37/38", "Irritating to respiratory system and skin."}, {"R38", "Irritating to skin."}, {"R39", "Danger of very serious irreversible effects."}, {"R39/23", "Toxic: danger of very serious irreversible effects through inhalation."}, {"R39/23/24", "Toxic: danger of very serious irreversible effects through inhalation and in contact with skin."}, {"R39/23/24/25", "Toxic: danger of very serious irreversible effects through inhalation, in contact with skin and if swallowed."}, {"R39/23/25", "Toxic: danger of very serious irreversible effects through inhalation and if swallowed."}, {"R39/24", "Toxic: danger of very serious irreversible effects in contact with skin."}, {"R39/24/25", "Toxic: danger of very serious irreversible effects in contact with skin and if swallowed."}, {"R39/25", "Toxic: danger of very serious irreversible effects if swallowed."}, {"R39/26", "Very toxic: danger of very serious irreversible effects through inhalation."}, {"R39/26/27", "Very toxic: danger of very serious irreversible effects through inhalation and in contact with skin."}, {"R39/26/27/28", "Very toxic: danger of very serious irreversible effects through inhalation, in contact with skin and if swallowed."}, {"R39/26/28", "Very toxic: danger of very serious irreversible effects through inhalation and if swallowed."}, {"R39/27", "Very toxic: danger of very serious irreversible effects in contact with skin."}, {"R39/27/28", "Very toxic: danger of very serious irreversible effects in contact with skin and if swallowed."}, {"R39/28", "Very toxic: danger of very serious irreversible effects if swallowed."}, {"R4", "Forms very sensitive explosive metallic compounds."}, {"R40", "Limited evidence of a carcinogenic effect."}, {"R41", "Risk of serious damage to eyes."}, {"R42", "May cause sensitisation by inhalation."}, {"R42/43", "May cause sensitisation by inhalation and skin contact."}, {"R43", "May cause sensitisation by skin contact."}, {"R44", "Risk of explosion if heated under confinement."}, {"R45", "May cause cancer."}, {"R46", "May cause heritable genetic damage."}, {"R48", "Danger of serious damage to health by prolonged exposure."}, {"R48/20", "Harmful: danger of serious damage to health by prolonged exposure through inhalation."}, {"R48/20/21", "Harmful: danger of serious damage to health by prolonged exposure through inhalation and in contact with skin."}, {"R48/20/21/22", "Harmful: danger of serious damage to health by prolonged exposure through inhalation, in contact with skin and if swallowed."}, {"R48/20/22", "Harmful: danger of serious damage to health by prolonged exposure through inhalation and if swallowed."}, {"R48/21", "Harmful: danger of serious damage to health by prolonged exposure in contact with skin."}, {"R48/21/22", "Harmful: danger of serious damage to health by prolonged exposure in contact with skin and if swallowed."}, {"R48/22", "Harmful: danger of serious damage to health by prolonged exposure if swallowed."}, {"R48/23", "Toxic: danger of serious damage to health by prolonged exposure through inhalation."}, {"R48/23/24", "Toxic: danger of serious damage to health by prolonged exposure through inhalation and in contact with skin."}, {"R48/23/24/25", "Toxic: danger of serious damage to health by prolonged exposure through inhalation, in contact with skin and if swallowed."}, {"R48/23/25", "Toxic: danger of serious damage to health by prolonged exposure through inhalation and if swallowed."}, {"R48/24", "Toxic: danger of serious damage to health by prolonged exposure in contact with skin."}, {"R48/24/25", "Toxic: danger of serious damage to health by prolonged exposure in contact with skin and if swallowed."}, {"R48/25", "Toxic: danger of serious damage to health by prolonged exposure if swallowed."}, {"R49", "May cause cancer by inhalation."}, {"R5", "Heating may cause an explosion."}, {"R50", "Very toxic to aquatic organisms."}, {"R50/53", "Very toxic to aquatic organisms, may cause long-term adverse effects in the aquatic environment."}, {"R51", "Toxic to aquatic organisms."}, {"R51/53", "Toxic to aquatic organisms, may cause long-term adverse effects in the aquatic environment."}, {"R52", "Harmful to aquatic organisms."}, {"R52/53", "Harmful to aquatic organisms, may cause long-term adverse effects in the aquatic environment."}, {"R53", "May cause long-term adverse effects in the aquatic environment."}, {"R54", "Toxic to flora."}, {"R55", "Toxic to fauna."}, {"R56", "Toxic to soil organisms."}, {"R57", "Toxic to bees."}, {"R58", "May cause long-term adverse effects in the environment."}, {"R59", "Dangerous for the ozone layer."}, {"R6", "Explosive with or without contact with air."}, {"R60", "May impair fertility."}, {"R61", "May cause harm to the unborn child."}, {"R62", "Possible risk of impaired fertility."}, {"R63", "Possible risk of harm to the unborn child."}, {"R64", "May cause harm to breastfed babies."}, {"R65", "Harmful: may cause lung damage if swallowed."}, {"R66", "Repeated exposure may cause skin dryness or cracking."}, {"R67", "Vapours may cause drowsiness and dizziness."}, {"R68", "Possible risk of irreversible effects."}, {"R68/20", "Harmful: possible risk of irreversible effects through inhalation."}, {"R68/20/21", "Harmful: possible risk of irreversible effects through inhalation and in contact with skin."}, {"R68/20/21/22", "Harmful: possible risk of irreversible effects through inhalation, in contact with skin and if swallowed."}, {"R68/20/22", "Harmful: possible risk of irreversible effects through inhalation and if swallowed."}, {"R68/21", "Harmful: possible risk of irreversible effects in contact with skin."}, {"R68/21/22", "Harmful: possible risk of irreversible effects in contact with skin and if swallowed."}, {"R68/22", "Harmful: possible risk of irreversible effects if swallowed."}, {"R7", "May cause fire."}, {"R8", "Contact with combustible material may cause fire."}, {"R9", "Explosive when mixed with combustible material."} }; #endregion #region Safety Phrases Dictionary<string, string> SafetyPhrases = new Dictionary<string, string>() { {"S1", "Keep locked up."}, {"S1/2", "Keep locked up and out of the reach of children."}, {"S12", "Do not keep the container sealed."}, {"S13", "Keep away from food, drink and animal feedingstuffs."}, {"S14", "Keep away from . (incompatible materials to be indicated by the manufacturer)."}, {"S15", "Keep away from heat."}, {"S16", "Keep away from sources of ignition . No smoking."}, {"S17", "Keep away from combustible material."}, {"S18", "Handle and open container with care."}, {"S2", "Keep out of the reach of children."}, {"S20", "When using do not eat or drink."}, {"S20/21", "When using do not eat, drink or smoke."}, {"S21", "When using do not smoke."}, {"S22", "Do not breathe dust."}, {"S23", "Do not breathe gas/fumes/vapour/spray (appropriate wording to be specified by the manufacturer)."}, {"S24", "Avoid contact with skin."}, {"S24/25", "Avoid contact with skin and eyes."}, {"S25", "Avoid contact with eyes."}, {"S26", "In case of contact with eyes, rinse immediately with plenty of water and seek medical advice."}, {"S27", "Take off immediately all contaminated clothing."}, {"S27/28", "After contact with skin, take off immediately all contaminated clothing, and wash immediately with plenty of (to be specified by the manufacturer)."}, {"S28", "After contact with skin, wash immediately with plenty of . (to be specified by the manufacturer)."}, {"S29", "Do not empty into drains."}, {"S29/35", "Do not empty into drains; dispose of this material and its container in a safe way."}, {"S29/56", "Do not empty into drains, dispose of this material and its container at hazardous or special waste collection point."}, {"S3", "Keep in a cool place."}, {"S3/14", "Keep in a cool place away from . (incompatible materials to be indicated by the manufacturer)."}, {"S3/7", "Keep container tightly closed in a cool place."}, {"S3/9/14", "Keep in a cool, well-ventilated place away from . (incompatible materials to be indicated by the manufacturer)."}, {"S3/9/14/49", "Keep only in the original container in a cool, well-ventilated place away from . (incompatible materials to be indicated by the manufacturer)."}, {"S3/9/49", "Keep only in the original container in a cool, well-ventilated place."}, {"S30", "Never add water to this product."}, {"S33", "Take precautionary measures against static discharges."}, {"S35", "This material and its container must be disposed of in a safe way."}, {"S36", "Wear suitable protective clothing."}, {"S36/37", "Wear suitable protective clothing and gloves."}, {"S36/37/39", "Wear suitable protective clothing, gloves and eye/face protection."}, {"S36/39", "Wear suitable protective clothing and eye/face protection."}, {"S37", "Wear suitable gloves."}, {"S37/39", "Wear suitable gloves and eye/face protection."}, {"S38", "In case of insufficient ventilation, wear suitable respiratory equipment."}, {"S39", "Wear eye/face protection."}, {"S4", "Keep away from living quarters."}, {"S40", "To clean the floor and all objects contaminated by this material, use . (to be specified by the manufacturer)."}, {"S41", "In case of fire and/or explosion do not breathe fumes."}, {"S42", "During fumigation/spraying wear suitable respiratory equipment (appropriate wording to be specified by the manufacturer)."}, {"S43", "In case of fire, use . (indicate in the space the precise type of fire-fighting equipment. If water increases risk, add .Never use water.)."}, {"S45", "In case of accident or if you feel unwell, seek medical advice immediately (show the label where possible)."}, {"S46", "If swallowed, seek medical advice immediately and show this container or label."}, {"S47", "Keep at temperature not exceeding . °C (to be specified by the manufacturer)."}, {"S47/49", "Keep only in the original container at a temperature not exceeding . °C (to be specified by the manufacturer)."}, {"S48", "Keep wet with . (appropriate material to be specified by the manufacturer)."}, {"S49", "Keep only in the original container."}, {"S5", "Keep contents under . (appropriate liquid to be specified by the manufacturer)."}, {"S50", "Do not mix with . (to be specified by the manufacturer)."}, {"S51", "Use only in well-ventilated areas."}, {"S52", "Not recommended for interior use on large surface areas."}, {"S53", "Avoid exposure . obtain special instructions before use."}, {"S56", "Dispose of this material and its container to hazardous or special waste collection point."}, {"S57", "Use appropriate container to avoid environmental contamination."}, {"S59", "Refer to manufacturer/supplier for information on recovery/recycling."}, {"S6", "Keep under . (inert gas to be specified by the manufacturer)."}, {"S60", "This material and its container must be disposed of as hazardous waste."}, {"S61", "Avoid release to the environment. Refer to special instructions/safety data sheets."}, {"S62", "If swallowed, do not induce vomiting: seek medical advice immediately and show this container or label."}, {"S63", "In case of accident by inhalation: remove casualty to fresh air and keep at rest."}, {"S64", "If swallowed, rinse mouth with water (only if the person is conscious)."}, {"S7", "Keep container tightly closed."}, {"S7/47", "Keep container tightly closed and at a temperature not exceeding . °C (to be specified by the manufacturer)."}, {"S7/8", "Keep container tightly closed and dry."}, {"S7/9", "Keep container tightly closed and in a well-ventilated place."}, {"S8", "Keep container dry."}, {"S9", "Keep container in a well-ventilated place."} }; #endregion CswNbtMetaDataObjectClass DSDPhraseOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.DSDPhraseClass ); foreach( KeyValuePair<string, string> Phrase in RiskPhrases ) { _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( DSDPhraseOC.getNodeTypeIds().FirstOrDefault(), OnAfterMakeNode: delegate( CswNbtNode NewNode ) { CswNbtObjClassDSDPhrase NewPhrase = NewNode; NewPhrase.Code.Text = Phrase.Key; NewPhrase.English.Text = Phrase.Value; NewPhrase.Category.Value = "Risk"; } ); } foreach( KeyValuePair<string, string> Phrase in SafetyPhrases ) { _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( DSDPhraseOC.getNodeTypeIds().FirstOrDefault(), OnAfterMakeNode: delegate( CswNbtNode NewNode ) { CswNbtObjClassDSDPhrase NewPhrase = NewNode; NewPhrase.Code.Text = Phrase.Key; NewPhrase.English.Text = Phrase.Value; NewPhrase.Category.Value = "Safety"; } ); } #endregion #region DSD Tab CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeTab GHSTab = ChemicalNT.getNodeTypeTab( "GHS" ); int DSDTabOrder = ( null != GHSTab ? GHSTab.TabOrder : ChemicalNT.getMaximumTabOrder() ) + 1; CswNbtMetaDataNodeTypeTab DSDTab = ChemicalNT.getNodeTypeTab( "DSD" ) ?? _CswNbtSchemaModTrnsctn.MetaData.makeNewTab( ChemicalNT, "DSD", DSDTabOrder ); CswNbtMetaDataNodeTypeProp PictogramsNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.Pictograms ); PictogramsNTP.removeFromAllLayouts(); PictogramsNTP.updateLayout( CswEnumNbtLayoutType.Edit, true, DSDTab.TabId ); CswNbtMetaDataNodeTypeProp LabelCodesNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.LabelCodes ); LabelCodesNTP.Extended = ","; LabelCodesNTP.removeFromAllLayouts(); LabelCodesNTP.updateLayout( CswEnumNbtLayoutType.Edit, true, DSDTab.TabId ); CswNbtView LabelCodesView = _CswNbtSchemaModTrnsctn.ViewSelect.restoreView( "DSD Label Codes Property Grid", CswEnumNbtViewVisibility.Property ); CswNbtMetaDataNodeTypeProp LabelCodesGridNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.LabelCodesGrid ); LabelCodesGridNTP.ViewId = LabelCodesView.ViewId; LabelCodesGridNTP.Extended = "Small"; LabelCodesGridNTP.removeFromAllLayouts(); LabelCodesGridNTP.updateLayout( CswEnumNbtLayoutType.Edit, true, DSDTab.TabId ); } #endregion #region DSD Module int dsdModuleId = _CswNbtSchemaModTrnsctn.createModule( "Dangerous Substances Directive", CswEnumNbtModuleName.DSD, false ); _CswNbtSchemaModTrnsctn.Modules.CreateModuleDependency( CswEnumNbtModuleName.CISPro, CswEnumNbtModuleName.DSD ); _CswNbtSchemaModTrnsctn.createModuleObjectClassJunction( dsdModuleId, DSDPhraseOC.ObjectClassId ); #endregion } // update()
public override void update() { #region Update all NTPs "Hidden" column to "false" _CswNbtSchemaModTrnsctn.execArbitraryPlatformNeutralSql( "update nodetype_props set hidden = " + CswConvert.ToDbVal( false ) ); #endregion #region CISPro CswNbtMetaDataObjectClass UserOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.UserClass ); foreach( CswNbtMetaDataNodeType UserNT in UserOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp UserJurisdictionNTP = UserNT.getNodeTypePropByObjectClassProp( CswNbtObjClassUser.PropertyName.Jurisdiction ); if( null != UserJurisdictionNTP ) { UserJurisdictionNTP.updateLayout( CswEnumNbtLayoutType.Add, false ); UserJurisdictionNTP.updateLayout( CswEnumNbtLayoutType.Edit, DoMove: false, TabId: UserNT.getFirstNodeTypeTab().TabId ); } } #endregion #region Containers CswNbtMetaDataObjectClass locationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.LocationClass ); foreach( int NodeTypeId in locationOC.getNodeTypeIds() ) { _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( NodeTypeId, CswNbtObjClassLocation.PropertyName.Containers, "Containers" ); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( NodeTypeId, "Inventory Levels", "Inventory Levels", 2 ); _CswNbtSchemaModTrnsctn.Modules.AddPropToFirstTab( NodeTypeId, CswNbtObjClassLocation.PropertyName.AllowInventory ); _CswNbtSchemaModTrnsctn.Modules.AddPropToFirstTab( NodeTypeId, CswNbtObjClassLocation.PropertyName.InventoryGroup ); _CswNbtSchemaModTrnsctn.Modules.AddPropToFirstTab( NodeTypeId, CswNbtObjClassLocation.PropertyName.StorageCompatibility ); CswNbtMetaDataNodeTypeProp AllowInvNTP = _CswNbtSchemaModTrnsctn.MetaData.getNodeTypeProp( NodeTypeId, CswNbtObjClassLocation.PropertyName.AllowInventory ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Add, NodeTypeId, AllowInvNTP, false ); CswNbtMetaDataNodeTypeProp InvGrpNTP = _CswNbtSchemaModTrnsctn.MetaData.getNodeTypeProp( NodeTypeId, CswNbtObjClassLocation.PropertyName.InventoryGroup ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Add, NodeTypeId, InvGrpNTP, false ); CswNbtMetaDataNodeTypeProp StorageCompatNTP = _CswNbtSchemaModTrnsctn.MetaData.getNodeTypeProp( NodeTypeId, CswNbtObjClassLocation.PropertyName.StorageCompatibility ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Add, NodeTypeId, StorageCompatNTP, false ); } CswNbtMetaDataPropertySet MaterialSet = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet ); foreach( CswNbtMetaDataObjectClass materialOC in MaterialSet.getObjectClasses() ) { foreach( CswNbtMetaDataNodeType materialNT in _CswNbtSchemaModTrnsctn.MetaData.getNodeTypes( materialOC.ObjectClassId ) ) { string sizesNTPName = materialNT.NodeTypeName + " Sizes"; _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( materialNT.NodeTypeId, sizesNTPName, "Containers", 99 ); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( materialNT.NodeTypeId, "Inventory Levels", "Containers", 99 ); string containersNTPName = materialNT.NodeTypeName + " Containers"; _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( materialNT.NodeTypeId, containersNTPName, "Containers", 99 ); CswNbtMetaDataNodeTypeTab materialNTT = materialNT.getFirstNodeTypeTab(); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( materialNT.NodeTypeId, CswNbtObjClassChemical.PropertyName.ApprovedForReceiving, materialNTT ); CswNbtMetaDataNodeTypeTab materialIdentityNTT = materialNT.getIdentityTab(); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( materialNT.NodeTypeId, CswNbtObjClassChemical.PropertyName.Receive, materialIdentityNTT, 2, 2 ); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( materialNT.NodeTypeId, CswNbtObjClassChemical.PropertyName.Request, materialIdentityNTT, 1, 2 ); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( materialNT.NodeTypeId, CswNbtObjClassChemical.PropertyName.StorageCompatibility, "Hazards" ); } } #endregion #region Fire Code CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.LocationClass ); foreach( int LocationNTId in LocationOC.getNodeTypeIds() ) { _CswNbtSchemaModTrnsctn.Modules.AddPropToFirstTab( LocationNTId, CswNbtObjClassLocation.PropertyName.ControlZone ); CswNbtMetaDataNodeTypeProp CtrlZoneNTP = _CswNbtSchemaModTrnsctn.MetaData.getNodeTypeProp( LocationNTId, CswNbtObjClassLocation.PropertyName.ControlZone ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Add, LocationNTId, CtrlZoneNTP, false ); } CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); foreach( CswNbtMetaDataNodeType ChemicalNT in _CswNbtSchemaModTrnsctn.MetaData.getNodeTypes( ChemicalOC.ObjectClassId ) ) { foreach( CswNbtMetaDataNodeTypeTab Tab in ChemicalNT.getNodeTypeTabs() ) { if( Tab.TabOrder >= 4 ) Tab.TabOrder += 1; } CswNbtMetaDataNodeTypeTab HazardsTab = ChemicalNT.getNodeTypeTab( "Hazards" ); if( null == HazardsTab ) { HazardsTab = _CswNbtSchemaModTrnsctn.MetaData.makeNewTab( ChemicalNT, "Hazards", 4 ); } _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( ChemicalNT.NodeTypeId, "Material Type", HazardsTab, 4, 2, "Fire Reporting" ); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( ChemicalNT.NodeTypeId, "Special Flags", HazardsTab, 5, 2, "Fire Reporting" ); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( ChemicalNT.NodeTypeId, "Hazard Categories", HazardsTab, 6, 2, "Fire Reporting" ); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( ChemicalNT.NodeTypeId, "Hazard Classes", HazardsTab, 7, 2, "Fire Reporting" ); } CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass ); foreach( int ContainerNTId in ContainerOC.getNodeTypeIds() ) { _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( ContainerNTId, "Storage Pressure", "Fire Code" ); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( ContainerNTId, "Storage Temperature", "Fire Code" ); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( ContainerNTId, "Use Type", "Fire Code" ); } #endregion #region Manufacturer Lot Info CswNbtMetaDataObjectClass ReceiptLotOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ReceiptLotClass ); foreach( CswNbtMetaDataNodeType ReceiptLotNT in ReceiptLotOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeProp ManufacturerNTP = _CswNbtSchemaModTrnsctn.MetaData.getNodeTypeProp( ReceiptLotNT.NodeTypeId, CswNbtObjClassReceiptLot.PropertyName.Manufacturer ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Edit, ReceiptLotNT.NodeTypeId, ManufacturerNTP, true, ReceiptLotNT.getFirstNodeTypeTab().TabId, 7, 1 ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Add, ReceiptLotNT.NodeTypeId, ManufacturerNTP, true ); CswNbtMetaDataNodeTypeProp ManufacturerLotNoNTP = _CswNbtSchemaModTrnsctn.MetaData.getNodeTypeProp( ReceiptLotNT.NodeTypeId, CswNbtObjClassReceiptLot.PropertyName.ManufacturerLotNo ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Edit, ReceiptLotNT.NodeTypeId, ManufacturerLotNoNTP, true, ReceiptLotNT.getFirstNodeTypeTab().TabId, 8, 1 ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Add, ReceiptLotNT.NodeTypeId, ManufacturerLotNoNTP, true ); CswNbtMetaDataNodeTypeProp ManufacturedDateNTP = _CswNbtSchemaModTrnsctn.MetaData.getNodeTypeProp( ReceiptLotNT.NodeTypeId, CswNbtObjClassReceiptLot.PropertyName.ManufacturedDate ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Edit, ReceiptLotNT.NodeTypeId, ManufacturedDateNTP, true, ReceiptLotNT.getFirstNodeTypeTab().TabId, 9, 1 ); _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Add, ReceiptLotNT.NodeTypeId, ManufacturedDateNTP, true ); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( ReceiptLotNT.NodeTypeId, CswNbtObjClassReceiptLot.PropertyName.AssignedCofA, ReceiptLotNT.getFirstNodeTypeTab(), 10, 1 ); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( ReceiptLotNT.NodeTypeId, CswNbtObjClassReceiptLot.PropertyName.ViewCofA, ReceiptLotNT.getIdentityTab(), 1, 1 ); } foreach( CswNbtMetaDataNodeType ContainerNT in ContainerOC.getNodeTypes() ) { _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( ContainerNT.NodeTypeId, "View C of A", ContainerNT.getIdentityTab(), 1, 3 ); } #endregion #region MLM CswNbtMetaDataObjectClass containerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass ); foreach( CswNbtMetaDataNodeType containerNT in containerOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeTab cmgTab = containerNT.getNodeTypeTab( "Central Material Group" ); if( null == cmgTab ) { cmgTab = _CswNbtSchemaModTrnsctn.MetaData.makeNewTab( containerNT, "Central Material Group", containerNT.getMaximumTabOrder() + 1 ); } CswNbtMetaDataNodeTypeProp lotControlledNTP = containerNT.getNodeTypePropByObjectClassProp( CswNbtObjClassContainer.PropertyName.LotControlled ); lotControlledNTP.updateLayout( CswEnumNbtLayoutType.Edit, false, TabId: cmgTab.TabId ); CswNbtMetaDataNodeTypeProp requisitionableNTP = containerNT.getNodeTypePropByObjectClassProp( CswNbtObjClassContainer.PropertyName.Requisitionable ); requisitionableNTP.updateLayout( CswEnumNbtLayoutType.Edit, false, TabId: cmgTab.TabId ); CswNbtMetaDataNodeTypeProp reservedForNTP = containerNT.getNodeTypePropByObjectClassProp( CswNbtObjClassContainer.PropertyName.ReservedFor ); reservedForNTP.updateLayout( CswEnumNbtLayoutType.Edit, false, TabId: cmgTab.TabId ); CswNbtMetaDataNodeTypeProp receiptLotNTP = containerNT.getNodeTypePropByObjectClassProp( CswNbtObjClassContainer.PropertyName.ReceiptLot ); CswNbtMetaDataNodeTypeTab firstTab = containerNT.getFirstNodeTypeTab(); receiptLotNTP.updateLayout( CswEnumNbtLayoutType.Edit, false, TabId: firstTab.TabId ); } CswNbtMetaDataObjectClass RequestMatDispOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RequestMaterialDispenseClass ); foreach( CswNbtMetaDataNodeType NodeType in RequestMatDispOc.getLatestVersionNodeTypes() ) { CswNbtMetaDataNodeTypeTab CmgTab = NodeType.getNodeTypeTab( "Central Material Group" ) ?? _CswNbtSchemaModTrnsctn.MetaData.makeNewTab( NodeType, "Central Material Group", NodeType.getNextTabOrder() ); CswNbtMetaDataNodeTypeProp RofNtp = NodeType.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestMaterialDispense.PropertyName.RecurringFrequency ); RofNtp.updateLayout( CswEnumNbtLayoutType.Edit, true, CmgTab.TabId ); CswNbtMetaDataNodeTypeProp NrdNtp = NodeType.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestMaterialDispense.PropertyName.NextReorderDate ); NrdNtp.updateLayout( CswEnumNbtLayoutType.Edit, RofNtp, true ); CswNbtMetaDataNodeTypeProp LastNtp = NrdNtp; foreach( string CmgTabProp in CswNbtObjClassRequestMaterialDispense.PropertyName.MLMCmgTabProps ) { CswNbtMetaDataNodeTypeProp CmgNtp = NodeType.getNodeTypePropByObjectClassProp( CmgTabProp ); CmgNtp.updateLayout( CswEnumNbtLayoutType.Edit, LastNtp, true ); LastNtp = CmgNtp; } CswNbtMetaDataNodeTypeTab ReceiveTab = NodeType.getNodeTypeTab( "Receive" ) ?? _CswNbtSchemaModTrnsctn.MetaData.makeNewTab( NodeType, "Receive", NodeType.getNextTabOrder() ); foreach( string ReceiveTabProp in CswNbtObjClassRequestMaterialDispense.PropertyName.MLMReceiveTabProps ) { CswNbtMetaDataNodeTypeProp ReceiveNtp = NodeType.getNodeTypePropByObjectClassProp( ReceiveTabProp ); ReceiveNtp.updateLayout( CswEnumNbtLayoutType.Edit, true, ReceiveTab.TabId ); } } //Case 28339 // Show Vendor.VendorType and CorporateEntity // Add a filter to Material.Supplier where VendorType = 'Coporate' CswNbtMetaDataObjectClass vendorOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.VendorClass ); foreach( CswNbtMetaDataNodeType vendorNT in vendorOC.getNodeTypes() ) { CswNbtMetaDataNodeTypeTab firstTab = vendorNT.getFirstNodeTypeTab(); CswNbtMetaDataNodeTypeProp vendorTypeNTP = vendorNT.getNodeTypePropByObjectClassProp( CswNbtObjClassVendor.PropertyName.VendorTypeName ); vendorTypeNTP.updateLayout( CswEnumNbtLayoutType.Edit, true, TabId: firstTab.TabId ); vendorTypeNTP.updateLayout( CswEnumNbtLayoutType.Add, true, TabId: firstTab.TabId ); CswNbtMetaDataNodeTypeProp corporateEntityNTP = vendorNT.getNodeTypePropByObjectClassProp( CswNbtObjClassVendor.PropertyName.CorporateEntityName ); corporateEntityNTP.updateLayout( CswEnumNbtLayoutType.Edit, true, TabId: firstTab.TabId ); } _toggleMaterialRequestApprovalLevel( CswEnumNbtObjectClass.RequestMaterialCreateClass, false ); _toggleMaterialRequestApprovalLevel( CswEnumNbtObjectClass.RequestMaterialDispenseClass, false ); #endregion #region SDS foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { foreach( CswNbtMetaDataNodeTypeTab Tab in ChemicalNT.getNodeTypeTabs() ) { if( Tab.TabOrder >= 3 ) Tab.TabOrder += 1; } CswNbtMetaDataNodeTypeTab HazardsTab = ChemicalNT.getNodeTypeTab( "Hazards" ) ?? _CswNbtSchemaModTrnsctn.MetaData.makeNewTab( ChemicalNT, "Hazards", 3 ); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( ChemicalNT.NodeTypeId, "Assigned SDS", HazardsTab, 1, 1 ); _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( ChemicalNT.NodeTypeId, "View SDS", ChemicalNT.getIdentityTab(), 3, 2 ); } //Show the following Container properties... // View SDS if( _CswNbtSchemaModTrnsctn.Modules.IsModuleEnabled( CswEnumNbtModuleName.Containers ) ) { foreach( CswNbtMetaDataNodeType ContainerNT in ContainerOC.getNodeTypes() ) { _CswNbtSchemaModTrnsctn.Modules.AddPropToTab( ContainerNT.NodeTypeId, "View SDS", ContainerNT.getIdentityTab(), 1, 2 ); } } #endregion } // update()
public override void update() { // Fix DSD Picto Paths CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass ); foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) { CswDelimitedString PictoPaths = new CswDelimitedString( '\n' ) { "Images/cispro/DSD/512/none.gif", "Images/cispro/DSD/512/e.gif", "Images/cispro/DSD/512/o.gif", "Images/cispro/DSD/512/f.gif", "Images/cispro/DSD/512/f_plus.gif", "Images/cispro/DSD/512/t.gif", "Images/cispro/DSD/512/t_plus.gif", "Images/cispro/DSD/512/xn.gif", "Images/cispro/DSD/512/xi.gif", "Images/cispro/DSD/512/c.gif", "Images/cispro/DSD/512/n.gif" }; CswNbtMetaDataNodeTypeProp PictogramsNTP = ChemicalNT.getNodeTypePropByObjectClassProp( CswNbtObjClassChemical.PropertyName.Pictograms ); PictogramsNTP.DesignNode.AttributeProperty[CswNbtFieldTypeRuleImageList.AttributeName.ImageUrls].AsMemo.Text = PictoPaths.ToString(); PictogramsNTP.DesignNode.AttributeProperty[CswNbtFieldTypeRuleImageList.AttributeName.HeightInPixels].AsNumber.Value = 77; PictogramsNTP.DesignNode.AttributeProperty[CswNbtFieldTypeRuleImageList.AttributeName.WidthInPixels].AsNumber.Value = 77; PictogramsNTP.DesignNode.postChanges( false ); foreach( CswNbtObjClassChemical ChemicalNode in ChemicalNT.getNodes( false, true ) ) { CswDelimitedString oldVals = ChemicalNode.Pictograms.Value; CswDelimitedString newVals = new CswDelimitedString( CswNbtNodePropImageList.Delimiter ); foreach( string oldVal in oldVals ) { if( oldVal.IndexOf( "/DSD/" ) >= 0 && oldVal.IndexOf( "/DSD/512" ) == 0 ) { newVals.Add( oldVal.Replace( "/DSD/", "/DSD/512/" ) ); } else { newVals.Add( oldVal ); } } ChemicalNode.Pictograms.Value = newVals; ChemicalNode.postChanges( false ); } // foreach( CswNbtObjClassChemical ChemicalNode in ChemicalNT.getNodes( false, true ) ) } // foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes() ) // Example DSD Print Label CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass ); CswNbtMetaDataObjectClass PrintLabelOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.PrintLabelClass ); if( null != PrintLabelOC ) { CswNbtMetaDataNodeType PrintLabelNT = PrintLabelOC.FirstNodeType; if( null != PrintLabelNT ) { CswNbtObjClassPrintLabel DsdLabel = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId( PrintLabelNT.NodeTypeId ); DsdLabel.LabelName.Text = "Example DSD Label"; if( null != ContainerOC ) { foreach(CswNbtMetaDataNodeType ContainerNT in ContainerOC.getNodeTypes()) { DsdLabel.NodeTypes.SelectedNodeTypeIds.Add( ContainerNT.NodeTypeId.ToString() ); } } DsdLabel.EplText.Text = @"I8,0,001 S2 OD JF WN D12 ZB q375 N A25,15,0,2,1,1,N,""{Material}"" B25,45,0,1,3,6,40,N,""{Barcode}"" A25,80,0,2,1,1,N,""{Barcode}"" A25,130,0,2,1,1,N,""{NBTDSDB}"" GW0,160,{NBTDSDPICTOS} GW128,160,{NBTDSDPICTOS_2} GW256,160,{NBTDSDPICTOS_3} P1"; DsdLabel.postChanges( false ); } } } // update()
public static void initializeCreateMaterial(ICswResources CswResources, MaterialResponse Response, string NodeId) { if (null != CswResources) { CswNbtResources NbtResources = (CswNbtResources)CswResources; CswNbtActCreateMaterial CreateMaterialAction = new CswNbtActCreateMaterial(NbtResources); // Get/Create a node CswPrimaryKey NodePk = CreateMaterialAction.makeTemp(NodeId); CswNbtNode TempNode = NbtResources.getNode(NodePk, null); Response.Data.TempNode = new CswNbtNode.Node(TempNode); Response.Data.TempNodeObjClassId = CswConvert.ToString(TempNode.getObjectClassId()); // Suppliers view CswNbtView SupplierView = CreateMaterialAction.getMaterialSuppliersView(); if (null != SupplierView) { Response.Data.SuppliersView.SessionViewId = SupplierView.SessionViewId; } // CIS-53353 - Allow adding suppliers if the user has Create on any Vendor nodetype Response.Data.AllowSupplierAdd = false; CswNbtMetaDataObjectClass VendorOC = NbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.VendorClass); foreach (CswNbtMetaDataNodeType VendorNT in VendorOC.getNodeTypes()) { if (NbtResources.Permit.canNodeType(CswEnumNbtNodeTypePermission.Create, VendorNT)) { Response.Data.AllowSupplierAdd = true; } } //Determine the steps int StepNo = 1; MaterialResponse.WizardStep TypeAndIdentity = new MaterialResponse.WizardStep() { StepNo = StepNo, StepName = "Choose Type and Identity" }; Response.Data.Steps.Add(TypeAndIdentity); StepNo++; MaterialResponse.WizardStep AdditionalProps = new MaterialResponse.WizardStep() { StepNo = StepNo, StepName = "Additional Properties" }; Response.Data.Steps.Add(AdditionalProps); StepNo++; #region Alert wizard to active modules bool ContainersEnabled = NbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.Containers); if (ContainersEnabled) { bool CanSize = false; CswNbtMetaDataObjectClass SizeOC = NbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.SizeClass); foreach (CswNbtMetaDataNodeType SizeNT in SizeOC.getNodeTypes()) { if (NbtResources.Permit.canNodeType(CswEnumNbtNodeTypePermission.Create, SizeNT)) { CanSize = true; } } if (CanSize) { MaterialResponse.WizardStep Sizes = new MaterialResponse.WizardStep() { StepNo = StepNo, StepName = "Size(s)" }; Response.Data.Steps.Add(Sizes); Response.Data.ContainerLimit = CswConvert.ToInt32(NbtResources.ConfigVbls.getConfigVariableValue(CswEnumNbtConfigurationVariables.container_receipt_limit.ToString())); StepNo++; } else { ContainersEnabled = false; } } Response.Data.ContainersModuleEnabled = ContainersEnabled; bool SDSEnabled = NbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.SDS); if (SDSEnabled) { MaterialResponse.WizardStep AttachSDS = new MaterialResponse.WizardStep() { StepNo = StepNo, StepName = "Attach SDS" }; Response.Data.Steps.Add(AttachSDS); // Permission is a separate check now because we still want to show the Attach SDS step // even if the User doesn't have permission. If they don't have permission, we display // a message on the client. CswNbtMetaDataNodeType SDSNT = NbtResources.MetaData.getNodeType("SDS Document"); Response.Data.addSDSPermission = null != SDSNT && NbtResources.Permit.canNodeType(CswEnumNbtNodeTypePermission.Create, SDSNT); } Response.Data.SDSModuleEnabled = SDSEnabled; #endregion Alert wizard to active modules // Get the ChemicalObjClassId CswNbtMetaDataObjectClass ChemicalOC = NbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ChemicalClass); Response.Data.ChemicalObjClassId = CswConvert.ToString(ChemicalOC.ObjectClassId); // Determine Constituent NodeTypes CswCommaDelimitedString ConstituentNodeTypeIds = new CswCommaDelimitedString(); foreach (CswNbtMetaDataNodeType ChemicalNT in ChemicalOC.getNodeTypes()) { CswNbtMetaDataNodeTypeProp IsConstituentNTP = ChemicalNT.getNodeTypePropByObjectClassProp(CswNbtObjClassChemical.PropertyName.IsConstituent); // Yes this is a weird way to know whether a nodetype is a Constituent nodetype, // but as long as this property remains servermanaged, this will work if (IsConstituentNTP.HasDefaultValue() && CswEnumTristate.True == IsConstituentNTP.getDefaultValue(false).AsLogical.Checked) { ConstituentNodeTypeIds.Add(ChemicalNT.NodeTypeId.ToString()); } } Response.Data.ConstituentNodeTypeIds = ConstituentNodeTypeIds.ToString(); } }