public override void update()
        {
            // Make sure all Location nodetypes are using the Location sequence

            CswSequenceName LocationSeqName = new CswSequenceName( "Locations" );
            Int32 LocationSeqId;
            if(_CswNbtSchemaModTrnsctn.doesSequenceExist(LocationSeqName ))
            {
                DataTable SeqTable = _CswNbtSchemaModTrnsctn.getSequence( LocationSeqName );
                LocationSeqId = CswConvert.ToInt32( SeqTable.Rows[0]["sequenceid"] );
            }
            else
            {
                LocationSeqId = _CswNbtSchemaModTrnsctn.makeSequence( LocationSeqName, "LS", string.Empty, 6, 1 );
            }

            if(Int32.MinValue != LocationSeqId )
            {
                CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.LocationClass );
                foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() )
                {
                    // Set sequence id
                    CswNbtMetaDataNodeTypeProp BarcodeNTP = LocationNT.getNodeTypePropByObjectClassProp( CswNbtObjClassLocation.PropertyName.Barcode );
                    BarcodeNTP.setSequence( LocationSeqId );
                
                } // foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() )
            } // if(Int32.MinValue != LocationSeqId )

        } //Update()
        public override void update()
        {
            // Fix existing barcode values
            CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.LocationClass );
            foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() )
            {
                foreach( CswNbtObjClassLocation LocationNode in LocationNT.getNodes( false, false ) )
                {
                    if( false == LocationNode.Barcode.Barcode.StartsWith( "LS" ) )
                    {
                        LocationNode.Barcode.setBarcodeValue( OverrideExisting: true );
                    }
                    if( LocationNode.Barcode.SequenceNumber == Int32.MinValue )
                    {
                        LocationNode.Barcode.resetSequenceNumber();
                    }
                    if( LocationNode.Barcode.Barcode.Length < 8 )
                    {
                        string NewBarcodeValue = "LS" + CswTools.PadInt( CswConvert.ToInt32( LocationNode.Barcode.SequenceNumber ), 6 );
                        LocationNode.Barcode.setBarcodeValueOverride( NewBarcodeValue, false );
                    }
                    LocationNode.postChanges( false );
                } // foreach( CswNbtObjClassLocation LocationNode in LocationNT.getNodes( false, false ) )
            } // foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() )

        } //Update()
        public override void update()
        {
            // For each Location Node type that isn't Site, the Full Path should be Path + > + Name
            // and for Sites, the Full Path should be Name.

            CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.LocationClass);

            foreach (CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes())
            {
                CswNbtMetaDataNodeTypeProp FullPathNTP = LocationNT.getNodeTypePropByObjectClassProp(CswNbtObjClassLocation.PropertyName.FullPath);
                CswNbtMetaDataNodeTypeProp LocationNTP = LocationNT.getNodeTypePropByObjectClassProp(CswNbtObjClassLocation.PropertyName.Location);
                CswNbtMetaDataNodeTypeProp NameNTP     = LocationNT.getNodeTypePropByObjectClassProp(CswNbtObjClassLocation.PropertyName.Name);
                if (null != FullPathNTP)
                {
                    // Set the value of the property
                    if (LocationNT.NodeTypeName != "Site")
                    {
                        FullPathNTP.DesignNode.AttributeProperty[CswNbtFieldTypeRuleComposite.AttributeName.Template].AsText.Text = "{" + LocationNTP.PropId + "} > " + "{" + NameNTP.PropId + "}";
                    }
                    else
                    {
                        FullPathNTP.DesignNode.AttributeProperty[CswNbtFieldTypeRuleComposite.AttributeName.Template].AsText.Text = "{" + NameNTP.PropId + "}";
                    }

                    // Set the layout position and remove from the add layout
                    FullPathNTP.removeFromLayout(CswEnumNbtLayoutType.Add);
                    FullPathNTP.updateLayout(CswEnumNbtLayoutType.Edit, LocationNTP, true);
                }
            }

            _setLocationsPendingUpdate();
        }
Esempio n. 4
0
 public override void update()
 {
     CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.LocationClass );
     foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() )
     {
         CswNbtMetaDataNodeTypeProp NodetypeProp = LocationNT.getNodeTypePropByObjectClassProp( CswNbtObjClassLocation.PropertyName.LocationCode );
         NodetypeProp.removeFromAllLayouts();
     }
 } // update()
Esempio n. 5
0
        public override void update()
        {
            // Add storage compatibility to location preview
            CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.LocationClass );
            foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() )
            {
                CswNbtMetaDataNodeTypeProp StorageCompatOCP = LocationNT.getNodeTypePropByObjectClassProp( CswNbtObjClassLocation.PropertyName.StorageCompatibility );
                StorageCompatOCP.updateLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Preview, false );
            }

        } //Update()
Esempio n. 6
0
        public override void update()
        {
            CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.LocationClass );
            foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() )
            {
                CswNbtMetaDataNodeTypeTab LocationSettingsNTT = LocationNT.getNodeTypeTab( "Location Settings" );
                if( null != LocationSettingsNTT )
                {
                    _CswNbtSchemaModTrnsctn.MetaData.DeleteNodeTypeTab( LocationSettingsNTT );
                }
            }

        } // update()
Esempio n. 7
0
        public override void update()
        {
            // Set 'Allow Inventory' on Room location and below

            CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.LocationClass );
            CswNbtMetaDataObjectClassProp LocationAllowInvOCP = LocationOC.getObjectClassProp( CswNbtObjClassLocation.AllowInventoryPropertyName);

            // Make it required
            _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( LocationAllowInvOCP, CswNbtMetaDataObjectClassProp.ObjectClassPropAttributes.isrequired, true );

            // Default values on nodetypes
            foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() )
            {
                CswNbtMetaDataNodeTypeProp LocationAllowInvNTP = LocationNT.getNodeTypePropByObjectClassProp( CswNbtObjClassLocation.AllowInventoryPropertyName );
                if( LocationNT.NodeTypeName == "Room" ||
                    LocationNT.NodeTypeName == "Cabinet" ||
                    LocationNT.NodeTypeName == "Shelf" ||
                    LocationNT.NodeTypeName == "Box" )
                {
                    LocationAllowInvNTP.DefaultValue.AsLogical.Checked = Tristate.True;
                }
                else
                {
                    LocationAllowInvNTP.DefaultValue.AsLogical.Checked = Tristate.False;
                }
            }

            // Values for existing nodes
            foreach(CswNbtObjClassLocation LocationNode in LocationOC.getNodes(false, true))
            {
                if( LocationNode.NodeType.NodeTypeName == "Room" ||
                    LocationNode.NodeType.NodeTypeName == "Cabinet" ||
                    LocationNode.NodeType.NodeTypeName == "Shelf" ||
                    LocationNode.NodeType.NodeTypeName == "Box" )
                {
                    LocationNode.AllowInventory.Checked = Tristate.True;
                }
                else
                {
                    LocationNode.AllowInventory.Checked = Tristate.False;
                }
                LocationNode.postChanges(false);
            } // foreach(CswNbtObjClassLocation in LocationOC.getNodes(false, true))
        }//Update()
Esempio n. 8
0
 public override void update()
 {
     // this is also in CswNbtModuleRuleCISPro
     if( false == _CswNbtSchemaModTrnsctn.Modules.IsModuleEnabled( CswNbtModuleName.CISPro ) )
     {
         CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.LocationClass );
         foreach( CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes() )
         {
             CswNbtMetaDataNodeTypeProp LocationContainersGridNTP = LocationNT.getNodeTypeProp( "Containers" );
             if( null != LocationContainersGridNTP )
             {
                 LocationContainersGridNTP.removeFromAllLayouts();
                 CswNbtMetaDataNodeTypeTab LocationContainersTab = LocationNT.getNodeTypeTab( "Containers" );
                 if( LocationContainersTab != null )
                 {
                     _CswNbtSchemaModTrnsctn.MetaData.DeleteNodeTypeTab( LocationContainersTab );
                 }
             }
         }
     }
 } //Update()
        public override void update()
        {
            CswNbtMetaDataObjectClass LocationOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.LocationClass);

            foreach (CswNbtMetaDataNodeType LocationNT in LocationOC.getNodeTypes())
            {
                // Object class props first
                Int32 FirstTabId = LocationNT.getFirstNodeTypeTab().TabId;
                foreach (CswNbtMetaDataNodeTypeProp PropNTP in LocationNT.getNodeTypeProps().Where(p => Int32.MinValue != p.ObjectClassPropId))
                {
                    switch (PropNTP.getObjectClassPropName())
                    {
                    case CswNbtObjClassLocation.PropertyName.Barcode:
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Add, true, DisplayRow: 1, DisplayColumn: 1);
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Edit, true, FirstTabId, DisplayRow: 1, DisplayColumn: 1);
                        break;

                    case CswNbtObjClassLocation.PropertyName.Name:
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Add, true, DisplayRow: 2, DisplayColumn: 1);
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Edit, true, FirstTabId, DisplayRow: 2, DisplayColumn: 1);
                        break;

                    case CswNbtObjClassLocation.PropertyName.Location:
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Add, true, DisplayRow: 3, DisplayColumn: 1);
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Edit, true, FirstTabId, DisplayRow: 3, DisplayColumn: 1);
                        break;

                    case CswNbtObjClassLocation.PropertyName.Order:
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Add, true, DisplayRow: 4, DisplayColumn: 1);
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Edit, true, FirstTabId, DisplayRow: 4, DisplayColumn: 1);
                        break;

                    case CswNbtObjClassLocation.PropertyName.LocationCode:
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Add, true, DisplayRow: 5, DisplayColumn: 1);
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Edit, true, FirstTabId, DisplayRow: 5, DisplayColumn: 1);
                        break;

                    case CswNbtObjClassLocation.PropertyName.AllowInventory:
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Add, true, DisplayRow: 6, DisplayColumn: 1);
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Edit, true, FirstTabId, DisplayRow: 6, DisplayColumn: 1);
                        break;

                    case CswNbtObjClassLocation.PropertyName.InventoryGroup:
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Add, true, DisplayRow: 7, DisplayColumn: 1);
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Edit, true, FirstTabId, DisplayRow: 7, DisplayColumn: 1);
                        break;

                    case CswNbtObjClassLocation.PropertyName.StorageCompatibility:
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Add, true, DisplayRow: 8, DisplayColumn: 1);
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Edit, true, FirstTabId, DisplayRow: 8, DisplayColumn: 1);
                        break;

                    case CswNbtObjClassLocation.PropertyName.ControlZone:
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Add, true, DisplayRow: 9, DisplayColumn: 1);
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Edit, true, FirstTabId, DisplayRow: 9, DisplayColumn: 1);
                        break;

                    case CswNbtObjClassLocation.PropertyName.Containers:
                        // fine as is
                        break;

                    case CswNbtObjClassLocation.PropertyName.InventoryLevels:
                        // fine as is
                        break;

                    case CswNbtObjClassLocation.PropertyName.Responsible:
                        PropNTP.removeFromAllLayouts();
                        break;

                    case CswNbtObjClassLocation.PropertyName.LocationTemplate:
                        PropNTP.removeFromAllLayouts();
                        break;

                    case CswNbtObjClassLocation.PropertyName.ChildLocationType:
                        PropNTP.removeFromAllLayouts();
                        break;

                    case CswNbtObjClassLocation.PropertyName.Rows:
                        PropNTP.removeFromAllLayouts();
                        break;

                    case CswNbtObjClassLocation.PropertyName.Columns:
                        PropNTP.removeFromAllLayouts();
                        break;
                    }
                }

                // NodeTypeProps next
                Int32 r = 10;
                foreach (CswNbtMetaDataNodeTypeProp PropNTP in LocationNT.getNodeTypeProps().Where(p => Int32.MinValue == p.ObjectClassPropId))
                {
                    if (PropNTP.PropName != "Legacy Id")
                    {
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Add, true, DisplayRow: r, DisplayColumn: 1);
                        PropNTP.updateLayout(CswEnumNbtLayoutType.Edit, true, FirstTabId, DisplayRow: r, DisplayColumn: 1);
                        r++;
                    }
                }
            }
        } // 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()