Пример #1
0
        public override void update()
        {
            MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet );
            ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass );

            //Set FK Type on all material-related props to Material PropertySet
            setPropFK( CswEnumNbtObjectClass.SizeClass, CswNbtObjClassSize.PropertyName.Material, "Size" );
            setPropFK( CswEnumNbtObjectClass.DocumentClass, CswNbtObjClassDocument.PropertyName.Owner, "Material Document" );
            setPropFK( CswEnumNbtObjectClass.InventoryLevelClass, CswNbtObjClassInventoryLevel.PropertyName.Material, "Inventory Level" );
            setPropFK( CswEnumNbtObjectClass.ContainerClass, CswNbtObjClassContainer.PropertyName.Material, "Container" );
            setPropFK( CswEnumNbtObjectClass.MaterialSynonymClass, CswNbtObjClassMaterialSynonym.PropertyName.Material, "Material Synonym" );
            setPropFK( CswEnumNbtObjectClass.RequestContainerDispenseClass, CswNbtPropertySetRequestItem.PropertyName.Material, "Request Container Dispense" );
            setPropFK( CswEnumNbtObjectClass.RequestContainerUpdateClass, CswNbtPropertySetRequestItem.PropertyName.Material, "Request Container Update" );
            setPropFK( CswEnumNbtObjectClass.RequestMaterialCreateClass, CswNbtPropertySetRequestItem.PropertyName.Material, "Request Material Create" );
            setPropFK( CswEnumNbtObjectClass.RequestMaterialCreateClass, CswNbtObjClassRequestMaterialCreate.PropertyName.NewMaterialType, "Request Material Create" );
            setPropFK( CswEnumNbtObjectClass.RequestMaterialDispenseClass, CswNbtPropertySetRequestItem.PropertyName.Material, "Request Material Dispense" );
            //Set FK Type on all chemical-related props to Chemical ObjectClass
            setPropFK( CswEnumNbtObjectClass.DocumentClass, CswNbtObjClassDocument.PropertyName.Owner, "SDS Document", true );
            setPropFK( CswEnumNbtObjectClass.GHSClass, CswNbtObjClassGHS.PropertyName.Material, "GHS", true );
            setPropFK( CswEnumNbtObjectClass.ReceiptLotClass, CswNbtObjClassReceiptLot.PropertyName.Material, "Receipt Lot", true );
            setPropFK( CswEnumNbtObjectClass.ManufacturerEquivalentPartClass, CswNbtObjClassManufacturerEquivalentPart.PropertyName.Material, "Manufacturing Equivalent Part", true );
            setPropFK( CswEnumNbtObjectClass.MaterialComponentClass, CswNbtObjClassMaterialComponent.PropertyName.Constituent, "Material Component", true );
            setPropFK( CswEnumNbtObjectClass.MaterialComponentClass, CswNbtObjClassMaterialComponent.PropertyName.Mixture, "Material Component", true );

            //Update all Material grid prop views to use MaterialSet as root relationship
            foreach( CswNbtMetaDataObjectClass MatOC in MaterialPS.getObjectClasses() )
            {
                foreach( CswNbtMetaDataNodeType MaterialNT in MatOC.getNodeTypes() )
                {
                    if( null != MaterialNT )
                    {
                        _updateSynonymsView( MaterialNT );
                        _updateDocumentsView( MaterialNT );
                        _updateSizesView( MaterialNT );
                        _updateInventoryLevelsView( MaterialNT );
                        _updateContainersView( MaterialNT );
                    }
                }
            }

            //Update ViewSelect views to use proper Material root relationship
            _updateUnapprovedMaterialsView();
            _updateMissingHazardClassesView();

        } // update()
        public override void update()
        {
            List<CswPrimaryKey> MaterialPKs = new List<CswPrimaryKey>();

            //Rename all existing material demo data
            CswNbtMetaDataPropertySet MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet );

            foreach( CswNbtMetaDataObjectClass MatOC in MaterialPS.getObjectClasses() )
            {
                foreach( CswNbtPropertySetMaterial DemoMaterial in MatOC.getNodes( false, false, false ) )
                {
                    if( DemoMaterial.IsDemo )
                    {
                        MaterialPKs.Add( DemoMaterial.NodeId );
                        DemoMaterial.TradeName.Text = DemoMaterial.TradeName.Text.Replace( "Default", "(demo)" );
                        DemoMaterial.ApprovedForReceiving.Checked = CswEnumTristate.True;
                        DemoMaterial.postChanges( false );
                    }
                }
            }

            //Fix existing demo material sizes
            CswNbtMetaDataObjectClass SizeOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.SizeClass );
            foreach( CswNbtObjClassSize DemoSize in SizeOC.getNodes( false, false ) )
            {
                if( DemoSize.IsDemo && MaterialPKs.Contains( DemoSize.Material.RelatedNodeId ) )
                {
                    DemoSize.InitialQuantity.Quantity = 10;
                    CswNbtPropertySetMaterial DemoMaterial = _CswNbtSchemaModTrnsctn.Nodes[DemoSize.Material.RelatedNodeId];
                    if( DemoMaterial.ObjectClass.ObjectClass == CswEnumNbtObjectClass.NonChemicalClass )
                    {
                        CswNbtObjClassUnitOfMeasure CasesUnit = _getUnit( "Unit (Each)", "Cases" );
                        if( null != CasesUnit )
                        {
                            DemoSize.InitialQuantity.UnitId = CasesUnit.NodeId;
                            DemoSize.InitialQuantity.View.Root.ChildRelationships.Clear();
                            DemoSize.InitialQuantity.View.AddViewRelationship( CasesUnit.NodeType, true );
                            DemoSize.InitialQuantity.View.save();
                        }
                    }
                    DemoSize.postChanges( false );
                }
            }
        } // update()