public override void update()
        {
            // Create the view
            CswNbtMetaDataPropertySet MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet );

            CswNbtMetaDataObjectClass ManufacturerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ManufacturerClass );
            CswNbtMetaDataObjectClassProp MaterialOCP = ManufacturerOC.getObjectClassProp( CswNbtObjClassManufacturer.PropertyName.Material );
            CswNbtMetaDataObjectClassProp ManufacturingSiteOCP = ManufacturerOC.getObjectClassProp( CswNbtObjClassManufacturer.PropertyName.ManufacturingSite );
            CswNbtMetaDataObjectClassProp QualifiedOCP = ManufacturerOC.getObjectClassProp( CswNbtObjClassManufacturer.PropertyName.Qualified );

            CswNbtView ManufacturersView = _CswNbtSchemaModTrnsctn.makeSafeView( "ManufacturingSites", CswEnumNbtViewVisibility.Property );
            ManufacturersView.ViewName = "ManufacturingSites";
            ManufacturersView.ViewMode = CswEnumNbtViewRenderingMode.Grid;
            ManufacturersView.Root.ChildRelationships.Clear();

            CswNbtViewRelationship root = ManufacturersView.AddViewRelationship( MaterialPS, false );
            CswNbtViewRelationship relationship = ManufacturersView.AddViewRelationship( root, CswEnumNbtViewPropOwnerType.Second, MaterialOCP, true );

            ManufacturersView.AddViewProperty( relationship, ManufacturingSiteOCP );
            ManufacturersView.AddViewProperty( relationship, QualifiedOCP );

            ManufacturersView.save();

            foreach( CswNbtMetaDataObjectClass MaterialOC in MaterialPS.getObjectClasses() )
            {
                CswNbtMetaDataObjectClassProp GridOCP = MaterialOC.getObjectClassProp( CswNbtPropertySetMaterial.PropertyName.ManufacturingSites );
                _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( GridOCP, CswEnumNbtObjectClassPropAttributes.viewxml, ManufacturersView.ToString() );
            }

        } // update()
        public override void update()
        {
            // Assigned SDS property view - Chemical
            CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass );
            CswNbtView SDSDocumentsView = _editView( "SDS Document", ChemicalOC, CswNbtObjClassChemical.PropertyName.AssignedSDS );
            _updateAssignedSDSOCP( SDSDocumentsView );

            // Documents property view on Equipment
            CswNbtMetaDataObjectClass EquipmentOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.EquipmentClass );
            _editView( "Equipment Document", EquipmentOC, CswNbtObjClassEquipment.PropertyName.Documents );

            // Documents property view on Assemblies
            CswNbtMetaDataObjectClass EquipAssemblyOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.EquipmentAssemblyClass );
            _editView( "Assembly Document", EquipAssemblyOC, CswNbtObjClassEquipmentAssembly.PropertyName.Documents );

            // Documents property view on Containers
            CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass );
            _editView( "Container Document", ContainerOC, CswNbtObjClassContainer.PropertyName.Documents );

            // Documents property view on all Materials
            CswNbtMetaDataPropertySet MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet );
            foreach( CswNbtMetaDataObjectClass MaterialOC in MaterialPS.getObjectClasses() )
            {
                _editView( "Material Document", MaterialOC, CswNbtPropertySetMaterial.PropertyName.Documents );
            }

        } // update()
Esempio n. 3
0
        }//_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()
 {
     if( _CswNbtSchemaModTrnsctn.isMaster() )
     {
         CswNbtObjClassRole CISProReceiverRole = null;
         CswNbtMetaDataObjectClass RoleOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.RoleClass );
         foreach( CswNbtObjClassRole RoleNode in RoleOC.getNodes( false, false, false, true ) )
         {
             if( RoleNode.Name.Text == "CISPro_Receiver" )
             {
                 CISProReceiverRole = RoleNode;
                 break;
             }
         }
         if( null != CISProReceiverRole )
         {
             _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtActionName.Create_Material, CISProReceiverRole, true );
             CswNbtMetaDataPropertySet MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet );
             foreach( CswNbtMetaDataObjectClass MaterialOC in MaterialPS.getObjectClasses() )
             {
                 foreach( CswNbtMetaDataNodeType MaterialNT in MaterialOC.getNodeTypes() )
                 {
                     _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtNodeTypePermission.View, MaterialNT, CISProReceiverRole, true );
                     _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtNodeTypePermission.Edit, MaterialNT, CISProReceiverRole, true );
                     _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtNodeTypePermission.Create, MaterialNT, CISProReceiverRole, true );
                     _CswNbtSchemaModTrnsctn.Permit.set( CswEnumNbtNodeTypePermission.Delete, MaterialNT, CISProReceiverRole, true );
                 }
             }
         }
     }
 } // update()
Esempio n. 5
0
        } // InitActionPermissionOptions()

        private void _deleteRelatedPermissionNodes()
        {
            CswNbtView PermissionsView = new CswNbtView( _CswNbtResources );
            CswNbtMetaDataPropertySet PermissionPS = _CswNbtResources.MetaData.getPropertySet( CswEnumNbtPropertySetName.PermissionSet );
            CswNbtViewRelationship RootVR = PermissionsView.AddViewRelationship( PermissionPS, false );
            CswNbtViewPropertyFilter Filter = null;
            foreach( CswNbtMetaDataObjectClass PermOC in PermissionPS.getObjectClasses() )
            {
                if( Filter == null )
                {
                    CswNbtMetaDataNodeType PermNT = PermOC.FirstNodeType;
                    if( null != PermNT )
                    {
                        CswNbtMetaDataNodeTypeProp RoleOCP = PermNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetPermission.PropertyName.Role );
                        Filter = PermissionsView.AddViewPropertyAndFilter( RootVR,
                                                                           MetaDataProp: RoleOCP,
                                                                           Value: NodeId.PrimaryKey.ToString(),
                                                                           SubFieldName: CswEnumNbtSubFieldName.NodeID,
                                                                           FilterMode: CswEnumNbtFilterMode.Equals );
                    }
                }
                else
                {
                    break;
                }
            }
            ICswNbtTree PermissionsTree = _CswNbtResources.Trees.getTreeFromView( PermissionsView, false, true, true );
            for( int i = 0; i < PermissionsTree.getChildNodeCount(); i++ )
            {
                PermissionsTree.goToNthChild( i );
                CswNbtNode PermissionNode = PermissionsTree.getNodeForCurrentPosition();
                PermissionNode.delete();
                PermissionsTree.goToRoot();
            }
        }
Esempio n. 6
0
        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()
Esempio n. 7
0
        protected override void OnEnable()
        {
            //Show the following Container properties...
            //   Requests
            //   Submitted Requests
            CswNbtMetaDataObjectClass ContainerOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ContainerClass);

            foreach (int NodeTypeId in ContainerOC.getNodeTypeIds().Keys)
            {
                _CswNbtResources.Modules.ShowProp(NodeTypeId, CswNbtObjClassContainer.PropertyName.Request);
                _CswNbtResources.Modules.ShowProp(NodeTypeId, CswNbtObjClassContainer.PropertyName.SubmittedRequests);
            }

            //Show the following Inventory Group properties...
            //   Limit Request Delivery Location
            CswNbtMetaDataObjectClass InventoryGroupOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.InventoryGroupClass);

            foreach (int NodeTypeId in InventoryGroupOC.getNodeTypeIds().Keys)
            {
                _CswNbtResources.Modules.ShowProp(NodeTypeId, CswNbtObjClassInventoryGroup.PropertyName.LimitRequestDeliveryLocation);
            }

            //Show the following Location properties...
            //   Request Delivery Location
            CswNbtMetaDataObjectClass LocationOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.LocationClass);

            foreach (int NodeTypeId in LocationOC.getNodeTypeIds().Keys)
            {
                _CswNbtResources.Modules.ShowProp(NodeTypeId, CswNbtObjClassLocation.PropertyName.RequestDeliveryLocation);
            }

            //Show the following Material properties...
            //   Request Button
            CswNbtMetaDataPropertySet MaterialSet = _CswNbtResources.MetaData.getPropertySet(CswEnumNbtPropertySetName.MaterialSet);

            foreach (CswNbtMetaDataObjectClass MaterialOC in MaterialSet.getObjectClasses())
            {
                foreach (int NodeTypeId in MaterialOC.getNodeTypeIds().Keys)
                {
                    _CswNbtResources.Modules.ShowProp(NodeTypeId, CswNbtObjClassChemical.PropertyName.Request);
                }
            }

            //Show all views in the Requests category
            _CswNbtResources.Modules.ToggleViewsInCategory(false, "Requests", CswEnumNbtViewVisibility.Global);

            //Show the request fulfiller Role/User
            _CswNbtResources.Modules.ToggleRoleNodes(false, "request_fulfiller");
            _CswNbtResources.Modules.ToggleUserNodes(false, "request_fulfiller");
            //TODO - Case 31274 - Add CISPro_Guardian Role/User to this list

            // Case 28930 - Enable Scheduled Rules
            _CswNbtResources.Modules.ToggleScheduledRule(CswEnumNbtScheduleRuleNames.GenRequest, Disabled: false);

            //Case 31546 - If we're enabling Requesting AFTER MLM, we need to show the MLM props
            if (_CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.MLM))
            {
                CswNbtObjClassRequestItem.ToggleMLMProps(_CswNbtResources, false);
            }
        }
Esempio n. 8
0
        } // OnDisable()

        private void _toggleMaterialSupplierView(bool MLMDisabled)
        {
            CswNbtMetaDataObjectClass vendorOC    = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.VendorClass);
            CswNbtMetaDataPropertySet MaterialSet = _CswNbtResources.MetaData.getPropertySet(CswEnumNbtPropertySetName.MaterialSet);

            foreach (CswNbtMetaDataObjectClass materialOC in MaterialSet.getObjectClasses())
            {
                foreach (CswNbtMetaDataNodeType materialNT in _CswNbtResources.MetaData.getNodeTypes(materialOC.ObjectClassId))
                {
                    CswNbtMetaDataNodeTypeProp supplierNTP = materialNT.getNodeTypePropByObjectClassProp(CswNbtObjClassChemical.PropertyName.Supplier);
                    CswNbtView supplierView = _CswNbtResources.ViewSelect.restoreView(supplierNTP.ViewId);
                    supplierView.Clear();
                    CswNbtViewRelationship parent = supplierView.AddViewRelationship(vendorOC, true);
                    if (false == MLMDisabled)
                    {
                        CswNbtMetaDataObjectClassProp vendorTypeOCP = vendorOC.getObjectClassProp(CswNbtObjClassVendor.PropertyName.VendorTypeName);
                        supplierView.AddViewPropertyAndFilter(parent,
                                                              MetaDataProp: vendorTypeOCP,
                                                              Value: CswNbtObjClassVendor.VendorTypes.Corporate,
                                                              FilterMode: CswEnumNbtFilterMode.Equals);
                    }
                    supplierView.Visibility = CswEnumNbtViewVisibility.Property;
                    supplierView.ViewName   = "Supplier";
                    supplierView.save();
                }
            }
        }
 public override void update()
 {
     CswNbtMetaDataPropertySet DocumentPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.DocumentSet );
     foreach( CswNbtMetaDataObjectClass DocumentOC in DocumentPS.getObjectClasses() )
     {
         CswNbtMetaDataObjectClassProp FileTypeOCP = DocumentOC.getObjectClassProp( CswNbtPropertySetDocument.PropertyName.FileType );
         _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( FileTypeOCP, CswEnumNbtObjectClassPropAttributes.readOnly, true );
     }
 } // update()
        private void _upgradeMaterialSetOCNTPs()
        {
            CswNbtMetaDataPropertySet MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet(CswEnumNbtPropertySetName.MaterialSet);

            foreach (CswNbtMetaDataObjectClass MaterialOC in MaterialPS.getObjectClasses())
            {
                _createGridOCPFromNTP(MaterialOC, CswNbtPropertySetMaterial.PropertyName.Documents);
                _createGridOCPFromNTP(MaterialOC, CswNbtPropertySetMaterial.PropertyName.Synonyms);
            }
        }
Esempio n. 11
0
        public override void update()
        {
            CswTableUpdate JctPSOCPUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "29499_jctpsocp_update", "jct_propertyset_ocprop" );
            DataTable JctPSOCPTable = JctPSOCPUpdate.getEmptyTable();

            CswNbtMetaDataPropertySet DocumentPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.DocumentSet );
            foreach( CswNbtMetaDataObjectClass DocOC in DocumentPS.getObjectClasses() )
            {
                _createProps( DocOC, JctPSOCPTable, DocumentPS.PropertySetId );
            }

            JctPSOCPUpdate.update( JctPSOCPTable );
        } // update()
Esempio n. 12
0
        public override void update()
        {
            // Remove the C3SyncDate Property from the Material Property Set
            CswNbtMetaDataPropertySet MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet );
            foreach( CswNbtMetaDataObjectClass CurrentObjectClass in MaterialPS.getObjectClasses() )
            {
                CswNbtMetaDataObjectClassProp C3SyncDateOCP = CurrentObjectClass.getObjectClassProp( "C3SyncDate" );
                if( null != C3SyncDateOCP )
                {
                    _CswNbtSchemaModTrnsctn.MetaData.DeleteJctPropertySetOcPropRow( C3SyncDateOCP );
                    _CswNbtSchemaModTrnsctn.MetaData.DeleteObjectClassProp( C3SyncDateOCP, true );
                }
            }

        } // update()
 public override void update()
 {
     CswNbtMetaDataPropertySet MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet );
     foreach( CswNbtMetaDataObjectClass objectClass in MaterialPS.getObjectClasses() )
     {
         foreach( CswNbtMetaDataNodeType nodeType in objectClass.getNodeTypes() )
         {
             CswNbtMetaDataNodeTypeProp LegacyMaterialIdNTP = nodeType.getNodeTypeProp( CswNbtPropertySetMaterial.PropertyName.LegacyMaterialId );
             if( null != LegacyMaterialIdNTP )
             {
                 LegacyMaterialIdNTP.removeFromAllLayouts();
             }
         }
     }
 } // update()
        public override void update()
        {
            if( _CswNbtSchemaModTrnsctn.isMaster() )
            {
                CswNbtMetaDataPropertySet SchedulerSet = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.SchedulerSet );
                foreach( CswNbtMetaDataObjectClass ScheduleOc in SchedulerSet.getObjectClasses() )
                {
                    foreach( CswNbtNode Schedule in ScheduleOc.getNodes( forceReInit : false, includeSystemNodes : false ) )
                    {
                        ICswNbtPropertySetScheduler ISchedule = CswNbtPropSetCaster.AsPropertySetScheduler( Schedule );
                        ISchedule.Enabled.Checked = CswEnumTristate.False;
                        Schedule.postChanges( ForceUpdate: false );
                    }
                }

            }
        } // update()
Esempio n. 15
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()
        {

            CswNbtMetaDataPropertySet materialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet );
            foreach( CswNbtMetaDataObjectClass objectClass in materialPS.getObjectClasses() )
            {
                foreach( CswNbtMetaDataNodeType nodeType in objectClass.getNodeTypes() )
                {
                    CswNbtMetaDataNodeTypeTab documentsTab = nodeType.getNodeTypeTab( "Documents" );
                    CswNbtMetaDataNodeTypeProp documentsNT = nodeType.getNodeTypeProp( "Documents" );
                    if( null != documentsNT && null != documentsTab )
                    {
                        _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Edit, nodeType.NodeTypeId, documentsNT, true, documentsTab.TabId );
                    }
                }
            }

        } // 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()
Esempio n. 18
0
        /// <summary>
        /// The actual update call
        /// </summary>
        public override void update()
        {
            CswNbtMetaDataPropertySet MaterialSet = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet(CswEnumNbtPropertySetName.MaterialSet);

            foreach (CswNbtMetaDataObjectClass MaterialOC in MaterialSet.getObjectClasses())
            {
                CswNbtMetaDataObjectClassProp ExpirationLockedOCP = MaterialOC.getObjectClassProp(CswNbtPropertySetMaterial.PropertyName.ContainerExpirationLocked);
                if (null == ExpirationLockedOCP)
                {
                    ExpirationLockedOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp(MaterialOC, new CswNbtWcfMetaDataModel.ObjectClassProp
                    {
                        PropName    = CswNbtPropertySetMaterial.PropertyName.ContainerExpirationLocked,
                        FieldType   = CswEnumNbtFieldType.Logical,
                        SetValOnAdd = false,
                        IsRequired  = true
                    });
                    _CswNbtSchemaModTrnsctn.MetaData.SetObjectClassPropDefaultValue(ExpirationLockedOCP, CswEnumTristate.True, CswEnumNbtSubFieldName.Checked);
                }
            }
        }
Esempio n. 19
0
        public override void update()
        {
            // Create OpenUrl DocumentPS property
            CswTableUpdate JctPSOCPUpdate = _CswNbtSchemaModTrnsctn.makeCswTableUpdate( "31210_jctpsocp_update", "jct_propertyset_ocprop" );
            DataTable JctPSOCPTable = JctPSOCPUpdate.getEmptyTable();

            CswNbtMetaDataPropertySet DocumentPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.DocumentSet );
            foreach( CswNbtMetaDataObjectClass DocOC in DocumentPS.getObjectClasses() )
            {
                CswNbtMetaDataObjectClassProp OpenFileOCP = DocOC.getObjectClassProp( CswNbtPropertySetDocument.PropertyName.OpenFile );
                if( null == OpenFileOCP )
                {
                    OpenFileOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( DocOC, new CswNbtWcfMetaDataModel.ObjectClassProp( DocOC )
                    {
                        PropName = CswNbtPropertySetDocument.PropertyName.OpenFile,
                        FieldType = CswEnumNbtFieldType.Button
                    } );

                    DataRow NewJctPSOCPRow = JctPSOCPTable.NewRow();
                    NewJctPSOCPRow["objectclasspropid"] = OpenFileOCP.PropId;
                    NewJctPSOCPRow["propertysetid"] = CswConvert.ToDbVal( DocumentPS.PropertySetId );
                    JctPSOCPTable.Rows.Add( NewJctPSOCPRow );
                }
            }
            JctPSOCPUpdate.update( JctPSOCPTable );

            // Create ChemWatch property on SDSDocumentOC
            CswNbtMetaDataObjectClass SDSDocumentOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.SDSDocumentClass );
            CswNbtMetaDataObjectClassProp ChemWatchOCP = SDSDocumentOC.getObjectClassProp( CswNbtObjClassSDSDocument.PropertyName.ChemWatch );
            if( null == ChemWatchOCP )
            {
                _CswNbtSchemaModTrnsctn.createObjectClassProp( SDSDocumentOC, new CswNbtWcfMetaDataModel.ObjectClassProp( SDSDocumentOC )
                    {
                        PropName = CswNbtObjClassSDSDocument.PropertyName.ChemWatch,
                        FieldType = CswEnumNbtFieldType.Text,
                        ReadOnly = true
                    } );
            }

        } // update()
Esempio n. 20
0
        public override void update()
        {

            //Last Modified By and Last Modified On are only on Edit layouts
            CswNbtMetaDataPropertySet DocumentPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.DocumentSet );
            foreach( CswNbtMetaDataObjectClass DocumentOC in DocumentPS.getObjectClasses() )
            {
                foreach( CswNbtMetaDataNodeType DocumentNT in DocumentOC.getNodeTypes() )
                {
                    CswNbtMetaDataNodeTypeTab firstTab = DocumentNT.getFirstNodeTypeTab();

                    CswNbtMetaDataNodeTypeProp LastModifiedOnNTP = DocumentNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetDocument.PropertyName.LastModifiedOn );
                    LastModifiedOnNTP.removeFromAllLayouts();
                    _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Edit, DocumentNT.NodeTypeId, LastModifiedOnNTP, false, firstTab.TabId );

                    CswNbtMetaDataNodeTypeProp LastModifiedByNTP = DocumentNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetDocument.PropertyName.LastModifiedBy );
                    LastModifiedByNTP.removeFromAllLayouts();
                    _CswNbtSchemaModTrnsctn.MetaData.NodeTypeLayout.updatePropLayout( CswEnumNbtLayoutType.Edit, DocumentNT.NodeTypeId, LastModifiedByNTP, false, firstTab.TabId );
                }
            }

        } // update()
Esempio n. 21
0
        } // _toggleConstituentProps()

        public override void addDefaultViewFilters( CswNbtViewRelationship ParentRelationship )
        {
            // Not IsConstituent
            ICswNbtMetaDataProp IsConstituentProp = null;
            // Exclude Materials that have Obsolete == true
            ICswNbtMetaDataProp ObsoleteProp = null;

            CswNbtMetaDataPropertySet materialPs = _CswNbtResources.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet );
            CswNbtMetaDataObjectClass firstMaterialOc = materialPs.getObjectClasses().FirstOrDefault();

            // Case 30136 - don't add this filter if the ownertype is nodetype
            if( ParentRelationship.getOwnerType() == CswEnumNbtViewRelatedIdType.ObjectClassId )
            {
                CswNbtMetaDataObjectClass ObjClass = ParentRelationship.getObjClassOwner();
                IsConstituentProp = ObjClass.getObjectClassProp( PropertyName.IsConstituent );
            }
            else if( ParentRelationship.getOwnerType() == CswEnumNbtViewRelatedIdType.PropertySetId )
            {
                //Bug - We're adding the Chemical IsConstituent property here, but for NTPs treeloader works by PropName. Not ideal, but works unless the propname changes
                IsConstituentProp = firstMaterialOc.getObjectClassProp( PropertyName.IsConstituent ).getNodeTypeProps().FirstOrDefault();
            }

            if( null != IsConstituentProp )
            {
                CswNbtViewProperty viewProp1 = ParentRelationship.View.AddViewProperty( ParentRelationship, IsConstituentProp );
                viewProp1.ShowInGrid = false;
                ParentRelationship.View.AddViewPropertyFilter( viewProp1, FilterMode : CswEnumNbtFilterMode.NotEquals, Value : CswEnumTristate.True );
            }

            ObsoleteProp = firstMaterialOc.getObjectClassProp( PropertyName.Obsolete );
            if( null != ObsoleteProp )
            {
                CswNbtViewProperty viewProp2 = ParentRelationship.View.AddViewProperty( ParentRelationship, ObsoleteProp );
                viewProp2.ShowInGrid = false;
                ParentRelationship.View.AddViewPropertyFilter( viewProp2, FilterMode : CswEnumNbtFilterMode.NotEquals, Value : CswEnumTristate.True, ShowAtRuntime : true );
            }

            onPropertySetAddDefaultViewFilters( ParentRelationship );
        }
Esempio n. 22
0
        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()
Esempio n. 23
0
        public override void update()
        {
            // Add property reference property to Container
            CswNbtMetaDataPropertySet MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswEnumNbtPropertySetName.MaterialSet );
            CswNbtMetaDataObjectClassProp ObsoleteOCP = MaterialPS.getObjectClasses().FirstOrDefault().getObjectClassProp( CswNbtPropertySetMaterial.PropertyName.Obsolete );

            CswNbtMetaDataObjectClass ContainerOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass );
            CswNbtMetaDataObjectClassProp MaterialOCP = ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Material );
            CswNbtMetaDataObjectClassProp MaterialObsoleteOCP = ContainerOC.getObjectClassProp( CswNbtObjClassContainer.PropertyName.MaterialObsolete );
            if( null == MaterialObsoleteOCP )
            {
                MaterialObsoleteOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( ContainerOC, new CswNbtWcfMetaDataModel.ObjectClassProp( ContainerOC )
                {
                    PropName = CswNbtObjClassContainer.PropertyName.MaterialObsolete,
                    FieldType = CswEnumNbtFieldType.PropertyReference,
                    IsFk = true,
                    FkType = CswEnumNbtViewPropIdType.ObjectClassPropId.ToString(),
                    FkValue = MaterialOCP.PropId,
                    ValuePropId = ObsoleteOCP.PropId,
                    ValuePropType = CswEnumNbtViewPropIdType.ObjectClassPropId.ToString()
                } );
            }

        } // update()
Esempio n. 24
0
        public override void update()
        {
            CswNbtMetaDataObjectClass ChemicalOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.ChemicalClass );

            CswNbtMetaDataNodeType ConstituentNT = null;
            Collection<CswNbtMetaDataNodeType> ChemicalNTs = new Collection<CswNbtMetaDataNodeType>();
            foreach( CswNbtMetaDataNodeType NodeType in _CswNbtSchemaModTrnsctn.MetaData.getNodeTypes( CswEnumNbtObjectClass.ChemicalClass ) )
            {
                if( NodeType.NodeTypeName == "Constituent" )
                {
                    ConstituentNT = NodeType;
                }
                else
                {
                    ChemicalNTs.Add( NodeType );
                }
            }

            if( null != ConstituentNT && ChemicalNTs.Count > 0 )
            {
                //4. Change Components Consituent property to point to the Constituent NT
                CswNbtMetaDataObjectClass ComponentOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.MaterialComponentClass );

                // Only Constituents for 'Constituent' property
                CswNbtMetaDataObjectClassProp ComponentConstituentOCP = ComponentOC.getObjectClassProp( CswNbtObjClassMaterialComponent.PropertyName.Constituent );
                {
                    CswNbtView ocConstituentView = _CswNbtSchemaModTrnsctn.makeView();
                    ocConstituentView.ViewName = "Constituent View";
                    CswNbtViewRelationship rel1 = ocConstituentView.AddViewRelationship( ChemicalOC, false );
                    ocConstituentView.AddViewPropertyAndFilter( rel1,
                                                                ChemicalOC.getObjectClassProp( CswNbtObjClassChemical.PropertyName.IsConstituent ),
                                                                FilterMode: CswEnumNbtFilterMode.Equals,
                                                                Value: CswEnumTristate.True.ToString() );
                    _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( ComponentConstituentOCP, CswEnumNbtObjectClassPropAttributes.viewxml, ocConstituentView.ToString() );
                }
                // Exclude Constituents from 'Mixture' property
                CswNbtMetaDataObjectClassProp ComponentMixtureOCP = ComponentOC.getObjectClassProp( CswNbtObjClassMaterialComponent.PropertyName.Mixture );
                {
                    CswNbtView ocMixtureView = _CswNbtSchemaModTrnsctn.makeView();
                    ocMixtureView.ViewName = "Mixture View";
                    CswNbtViewRelationship rel2 = ocMixtureView.AddViewRelationship( ChemicalOC, false );
                    ocMixtureView.AddViewPropertyAndFilter( rel2,
                                                            ChemicalOC.getObjectClassProp( CswNbtObjClassChemical.PropertyName.IsConstituent ),
                                                            FilterMode: CswEnumNbtFilterMode.NotEquals,
                                                            Value: CswEnumTristate.True.ToString() );
                    _CswNbtSchemaModTrnsctn.MetaData.UpdateObjectClassProp( ComponentMixtureOCP, CswEnumNbtObjectClassPropAttributes.viewxml, ocMixtureView.ToString() );
                }
                // Fix views on existing nodetypes
                foreach( CswNbtMetaDataNodeType ComponentNT in ComponentOC.getNodeTypes() )
                {
                    // Only Constituents for 'Constituent' property
                    {
                        CswNbtMetaDataNodeTypeProp ComponentConstituentNTP = ComponentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMaterialComponent.PropertyName.Constituent );
                        ComponentConstituentNTP.SetFK( CswEnumNbtViewRelatedIdType.NodeTypeId.ToString(), ConstituentNT.NodeTypeId );

                        CswNbtView ntConstituentView = _CswNbtSchemaModTrnsctn.restoreView( ComponentConstituentNTP.ViewId );
                        ntConstituentView.Root.ChildRelationships.Clear();
                        CswNbtViewRelationship rel3 = ntConstituentView.AddViewRelationship( ConstituentNT, false );
                        //ntConstituentView.AddViewPropertyAndFilter( rel3,
                        //                                            ChemicalOC.getObjectClassProp( CswNbtObjClassChemical.PropertyName.IsConstituent ),
                        //                                            FilterMode: CswEnumNbtFilterMode.Equals,
                        //                                            Value: CswEnumTristate.True.ToString() );
                        ntConstituentView.save();
                    }
                    // Exclude Constituents from 'Mixture' property
                    {
                        CswNbtMetaDataNodeTypeProp ComponentMixtureNTP = ComponentNT.getNodeTypePropByObjectClassProp( CswNbtObjClassMaterialComponent.PropertyName.Mixture );
                        CswNbtView ntMixtureView = _CswNbtSchemaModTrnsctn.restoreView( ComponentMixtureNTP.ViewId );
                        ntMixtureView.Root.ChildRelationships.Clear();
                        CswNbtViewRelationship rel4 = ntMixtureView.AddViewRelationship( ChemicalOC, false );
                        ntMixtureView.AddViewPropertyAndFilter( rel4,
                                                                ChemicalOC.getObjectClassProp( CswNbtObjClassChemical.PropertyName.IsConstituent ),
                                                                FilterMode: CswEnumNbtFilterMode.NotEquals,
                                                                Value: CswEnumTristate.True.ToString() );
                        ntMixtureView.save();
                    }
                } // foreach( CswNbtMetaDataNodeType ComponentNT in ComponentOC.getNodeTypes() )

                //// Fix Chemical Components Grid
                //foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalNTs )
                //{
                //    CswNbtMetaDataNodeTypeProp ComponentsGridNTP = ChemicalNT.getNodeTypeProp( "Components" );
                //    if( null != ComponentsGridNTP )
                //    {
                //        CswNbtMetaDataObjectClassProp ComponentPercentOCP = ComponentOC.getObjectClassProp( CswNbtObjClassMaterialComponent.PropertyName.Percentage );

                //        CswNbtView ComponentsGridView = _CswNbtSchemaModTrnsctn.restoreView( ComponentsGridNTP.ViewId );
                //        ComponentsGridView.Root.ChildRelationships.Clear();
                //        CswNbtViewRelationship ChemRel = ComponentsGridView.AddViewRelationship( ChemicalNT, false );
                //        CswNbtViewRelationship MixRel = ComponentsGridView.AddViewRelationship( ChemRel, CswEnumNbtViewPropOwnerType.Second, ComponentMixtureOCP, false );
                //        ComponentsGridView.AddViewProperty( MixRel, ComponentConstituentOCP, 1 );
                //        ComponentsGridView.AddViewProperty( MixRel, ComponentPercentOCP, 2 );
                //        ComponentsGridView.save();
                //    }
                //} // foreach( CswNbtMetaDataNodeType ChemicalNT in ChemicalNTs )


                // 6. Update any views or props that point to the Chemical ObjClass to point to the Chemical NT. 
                // We don't want Constituent Chemicals to show as the target for things like Requests Material or Size Owner.

                string Sql = @"select ocp.propname, oc.objectclass, t.nodetypename, p.propname, p.nodetypepropid, p.fktype, p.fkvalue
                                 from nodetype_props p
                                 join nodetypes t on p.nodetypeid = t.nodetypeid
                                 join object_class oc on t.objectclassid = oc.objectclassid
                                 left outer join object_class_props ocp on p.objectclasspropid = ocp.objectclasspropid
                                 join field_types f on p.fieldtypeid = f.fieldtypeid
                                where (    ( p.fktype = 'PropertySetId' and p.fkvalue = (select propertysetid from property_set where name = 'MaterialSet' ) )
                                        or ( p.fktype = 'ObjectClassId' and p.fkvalue = (select objectclassid from object_class where objectclass = 'ChemicalClass' ) )
                                        or ( p.fktype = 'NodeTypeId' and p.fkvalue = (select nodetypeid from nodetypes where nodetypename = 'Chemical' ) ) 
                                      )
                                  and f.fieldtype = 'Relationship'
                                  and ( p.objectclasspropid is null 
                                        or not (    ( oc.objectclass = 'GHSClass' and ocp.propname = 'Material' )
                                                 or ( oc.objectclass = 'MaterialComponentClass' and ocp.propname = 'Mixture' ) 
                                                 or ( oc.objectclass = 'MaterialComponentClass' and ocp.propname = 'Constituent' ) 
                                                 or ( oc.objectclass = 'DocumentClass' and ocp.propname = 'Owner' ) 
                                               )
                                      )";
                CswArbitrarySelect Select = _CswNbtSchemaModTrnsctn.makeCswArbitrarySelect( "29680_relationship_select", Sql );
                DataTable Table = Select.getTable();

                /*    
                    MaterialSynonymClass                Material	
                    SizeClass                           Material	
                    ContainerClass                      Material	
                    InventoryLevelClass                 Material	
                    CofAMethodTemplateClass             Material	
                    ManufacturerEquivalentPartClass     Material	
                    ReceiptLotClass                     Material	
                    RequestContainerDispenseClass       Material	
                    RequestContainerUpdateClass         Material	
                    RequestMaterialCreateClass          Material	
                    RequestMaterialDispenseClass        Material	
                */

                foreach( DataRow Row in Table.Rows )
                {

                    CswNbtMetaDataNodeTypeProp Prop = _CswNbtSchemaModTrnsctn.MetaData.getNodeTypeProp( CswConvert.ToInt32( Row["nodetypepropid"] ) );
                    CswNbtView View = _CswNbtSchemaModTrnsctn.restoreView( Prop.ViewId );
                    if( View.Root.ChildRelationships.Count == 0 )
                    {
                        // The 'Default Filter' will filter out constituents for us
                        if( Row["fktype"].ToString() == CswEnumNbtViewRelatedIdType.NodeTypeId.ToString() )
                        {
                            View.AddViewRelationship( _CswNbtSchemaModTrnsctn.MetaData.getNodeType( CswConvert.ToInt32( Row["fkvalue"] ) ), true );
                        }
                        else if( Row["fktype"].ToString() == CswEnumNbtViewRelatedIdType.ObjectClassId.ToString() )
                        {
                            View.AddViewRelationship( _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswConvert.ToInt32( Row["fkvalue"] ) ), true );
                        }
                        else if( Row["fktype"].ToString() == CswEnumNbtViewRelatedIdType.PropertySetId.ToString() )
                        {
                            View.AddViewRelationship( _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( CswConvert.ToInt32( Row["fkvalue"] ) ), true );
                        }
                    }
                    else
                    {
                        foreach( CswNbtViewRelationship viewRel in View.Root.GetAllChildrenOfType( CswEnumNbtViewNodeType.CswNbtViewRelationship ) )
                        {
                            if( CswConvert.ToInt32( Row["fkvalue"] ) == viewRel.SecondId )
                            {
                                if( Row["fktype"].ToString() == CswEnumNbtViewRelatedIdType.NodeTypeId.ToString() )
                                {
                                    CswNbtMetaDataNodeType MaterialNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( viewRel.SecondId );
                                    CswNbtViewProperty viewProp = View.AddViewProperty( viewRel, MaterialNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetMaterial.PropertyName.IsConstituent ) );
                                    viewProp.ShowInGrid = false;
                                    View.AddViewPropertyFilter( viewProp,
                                                                FilterMode: CswEnumNbtFilterMode.NotEquals,
                                                                Value: CswEnumTristate.True.ToString() );
                                }
                                else if( Row["fktype"].ToString() == CswEnumNbtViewRelatedIdType.ObjectClassId.ToString() )
                                {
                                    CswNbtMetaDataObjectClass MaterialOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( viewRel.SecondId );
                                    CswNbtViewProperty viewProp = View.AddViewProperty( viewRel, MaterialOC.getObjectClassProp( CswNbtPropertySetMaterial.PropertyName.IsConstituent ) );
                                    viewProp.ShowInGrid = false;
                                    View.AddViewPropertyFilter( viewProp,
                                                                FilterMode: CswEnumNbtFilterMode.NotEquals,
                                                                Value: CswEnumTristate.True.ToString() );
                                }
                                else if( Row["fktype"].ToString() == CswEnumNbtViewRelatedIdType.PropertySetId.ToString() )
                                {
                                    CswNbtMetaDataPropertySet MaterialPS = _CswNbtSchemaModTrnsctn.MetaData.getPropertySet( viewRel.SecondId );
                                    CswNbtViewProperty viewProp = View.AddViewProperty( viewRel, MaterialPS.getObjectClasses().First().getObjectClassProp( CswNbtPropertySetMaterial.PropertyName.IsConstituent ) );
                                    viewProp.ShowInGrid = false;
                                    View.AddViewPropertyFilter( viewProp,
                                                                FilterMode: CswEnumNbtFilterMode.NotEquals,
                                                                Value: CswEnumTristate.True.ToString() );
                                }
                            }
                        } // foreach( CswNbtViewRelationship viewRel in View.Root.GetAllChildrenOfType( CswEnumNbtViewNodeType.CswNbtViewRelationship ) )
                    }
                    View.save();
                } // foreach( DataRow relRow in relTable.Rows )

            } // if( null != ConstituentNT && ChemicalNTs.Count > 0 )
        } // update()
        public override CswNbtViewEditorData HandleAction()
        {
            CswNbtViewEditorData Return = new CswNbtViewEditorData();

            if (Request.Action == "Click")
            {
                CswNbtViewNode foundNode = Request.CurrentView.FindViewNodeByArbitraryId(Request.ArbitraryId);
                if (null != foundNode)
                {
                    CswNbtView TempView = _CswNbtResources.ViewSelect.restoreView(CurrentView.ToString());
                    if (foundNode is CswNbtViewPropertyFilter)
                    {
                        Return.Step6.FilterNode = (CswNbtViewPropertyFilter)foundNode;
                    }
                    else if (foundNode is CswNbtViewRelationship)
                    {
                        CswNbtViewRelationship asRelationship = (CswNbtViewRelationship)foundNode;

                        if (asRelationship.SecondType == CswEnumNbtViewRelatedIdType.NodeTypeId)
                        {
                            CswNbtMetaDataNodeType NodeType = _CswNbtResources.MetaData.getNodeType(asRelationship.SecondId);
                            foreach (CswNbtViewProperty prop in _getProps(NodeType, TempView, new HashSet <string>(), asRelationship))
                            {
                                if (((CswEnumNbtViewRenderingMode.Tree == Request.CurrentView.ViewMode || CswEnumNbtViewRenderingMode.List == Request.CurrentView.ViewMode) && CswEnumNbtFieldType.Button != prop.FieldType) ||
                                    CswEnumNbtViewRenderingMode.Grid == Request.CurrentView.ViewMode || CswEnumNbtViewRenderingMode.Table == Request.CurrentView.ViewMode)
                                {
                                    Return.Step6.Properties.Add(prop);
                                }
                            }
                        }
                        else if (asRelationship.SecondType == CswEnumNbtViewRelatedIdType.ObjectClassId)
                        {
                            CswNbtMetaDataObjectClass ObjClass = _CswNbtResources.MetaData.getObjectClass(asRelationship.SecondId);
                            foreach (CswNbtViewProperty prop in _getProps(ObjClass, TempView, new HashSet <string>(), asRelationship))
                            {
                                if (((CswEnumNbtViewRenderingMode.Tree == Request.CurrentView.ViewMode || CswEnumNbtViewRenderingMode.List == Request.CurrentView.ViewMode) && CswEnumNbtFieldType.Button != prop.FieldType) ||
                                    CswEnumNbtViewRenderingMode.Grid == Request.CurrentView.ViewMode || CswEnumNbtViewRenderingMode.Table == Request.CurrentView.ViewMode)
                                {
                                    Return.Step6.Properties.Add(prop);
                                }
                            }
                        }
                        else
                        {
                            CswNbtMetaDataPropertySet PropSet   = _CswNbtResources.MetaData.getPropertySet(asRelationship.SecondId);
                            HashSet <string>          seenProps = new HashSet <string>();
                            foreach (CswNbtMetaDataObjectClass ObjClass in PropSet.getObjectClasses())
                            {
                                foreach (CswNbtViewProperty prop in _getProps(ObjClass, TempView, seenProps, asRelationship).OrderBy(prop => prop.TextLabel))
                                {
                                    if (((CswEnumNbtViewRenderingMode.Tree == Request.CurrentView.ViewMode || CswEnumNbtViewRenderingMode.List == Request.CurrentView.ViewMode) && CswEnumNbtFieldType.Button != prop.FieldType) ||
                                        CswEnumNbtViewRenderingMode.Grid == Request.CurrentView.ViewMode || CswEnumNbtViewRenderingMode.Table == Request.CurrentView.ViewMode)
                                    {
                                        Return.Step6.Properties.Add(prop);
                                    }
                                }
                            }
                        }

                        Return.Step6.Relationships = getViewChildRelationshipOptions(CurrentView, asRelationship.ArbitraryId);

                        Return.Step6.RelationshipNode = asRelationship;
                    }
                    else if (foundNode is CswNbtViewRoot && CurrentView.Visibility != CswEnumNbtViewVisibility.Property)  //can't add to view root on Prop view
                    {
                        TempView.Root.ChildRelationships.Clear();
                        foreach (CswNbtMetaDataNodeType NodeType in _CswNbtResources.MetaData.getNodeTypes().OrderBy(NT => NT.NodeTypeName))
                        {
                            Return.Step6.Relationships.Add(TempView.AddViewRelationship(NodeType, false));
                        }
                        foreach (CswNbtMetaDataObjectClass ObjClass in _CswNbtResources.MetaData.getObjectClasses().OrderBy(OC => OC.ObjectClass.Value))
                        {
                            Return.Step6.Relationships.Add(TempView.AddViewRelationship(ObjClass, false));
                        }
                        foreach (CswNbtMetaDataPropertySet PropSet in _CswNbtResources.MetaData.getPropertySets().OrderBy(PS => PS.Name))
                        {
                            Return.Step6.Relationships.Add(TempView.AddViewRelationship(PropSet, false));
                        }
                        Return.Step6.RootNode = (CswNbtViewRoot)foundNode;
                    }
                    else if (foundNode is CswNbtViewProperty && CswEnumNbtFieldType.Button != ((CswNbtViewProperty)foundNode).FieldType)
                    {
                        Return.Step6.PropertyNode = (CswNbtViewProperty)foundNode;
                        Request.Relationship      = (CswNbtViewRelationship)foundNode.Parent; //getFilterProps needs Request.Relationship to be populated
                        _getFilterProps(Return);
                    }
                }
            }
            else if (Request.Action == "AddProp")
            {
                ICswNbtMetaDataProp prop = null;
                if (Request.Property.Type == CswEnumNbtViewPropType.NodeTypePropId)
                {
                    prop = _CswNbtResources.MetaData.getNodeTypeProp(Request.Property.NodeTypePropId);
                }
                else
                {
                    prop = _CswNbtResources.MetaData.getObjectClassProp(Request.Property.ObjectClassPropId);
                }
                CswNbtViewRelationship relToAddTo = (CswNbtViewRelationship)CurrentView.FindViewNodeByArbitraryId(Request.Relationship.ArbitraryId);
                CurrentView.AddViewProperty(relToAddTo, prop, CurrentView.getOrderedViewProps(false).Count + 1);
            }
            else if (Request.Action == "AddRelationship")
            {
                CswNbtViewRelationship relToAddTo = (CswNbtViewRelationship)CurrentView.FindViewNodeByArbitraryId(Request.ArbitraryId);
                ICswNbtMetaDataProp    prop       = null;
                if (Request.Relationship.PropType == CswEnumNbtViewPropIdType.NodeTypePropId)
                {
                    prop = _CswNbtResources.MetaData.getNodeTypeProp(Request.Relationship.PropId);
                }
                else
                {
                    prop = _CswNbtResources.MetaData.getObjectClassProp(Request.Relationship.PropId);
                }
                CurrentView.AddViewRelationship(relToAddTo, Request.Relationship.PropOwner, prop, true);
            }
            else if (Request.Action == "AddFilter")
            {
                CswNbtViewProperty propNode = (CswNbtViewProperty)CurrentView.FindViewNodeByArbitraryId(Request.PropArbId);
                if (false == _hasFilter(propNode))
                {
                    CurrentView.AddViewPropertyFilter(propNode,
                                                      Conjunction: (CswEnumNbtFilterConjunction)Request.FilterConjunction,
                                                      SubFieldName: (CswEnumNbtSubFieldName)Request.FilterSubfield,
                                                      FilterMode: (CswEnumNbtFilterMode)Request.FilterMode,
                                                      Value: Request.FilterValue
                                                      );
                }
                Return.Step6.PropertyNode = propNode;
            }
            else if (Request.Action == "RemoveNode")
            {
                CswNbtViewNode nodeToRemove = CurrentView.FindViewNodeByArbitraryId(Request.ArbitraryId);
                CswNbtViewNode parent       = nodeToRemove.Parent;
                parent.RemoveChild(nodeToRemove);

                if (parent.ViewNodeType == CswEnumNbtViewNodeType.CswNbtViewProperty)
                {
                    Return.Step6.PropertyNode = (CswNbtViewProperty)parent;
                }
                else if (parent.ViewNodeType == CswEnumNbtViewNodeType.CswNbtViewRelationship)
                {
                    Return.Step6.RelationshipNode = (CswNbtViewRelationship)parent;
                }
                else if (parent.ViewNodeType == CswEnumNbtViewNodeType.CswNbtViewRoot)
                {
                    Return.Step6.RootNode = (CswNbtViewRoot)parent;
                }
            }
            else if (Request.Action == "UpdateView")
            {
                string grp = string.Empty;
                if (null != Request.Property)
                {
                    CswNbtViewRelationship selectedPropsParent = (CswNbtViewRelationship)CurrentView.FindViewNodeByArbitraryId(Request.Property.ParentArbitraryId);
                    Request.Property.Parent = selectedPropsParent;
                    CswNbtViewProperty rel = (CswNbtViewProperty)CurrentView.FindViewNodeByArbitraryId(Request.Property.ArbitraryId);
                    if (null == rel)
                    {
                        CswNbtViewRelationship parent = (CswNbtViewRelationship)CurrentView.FindViewNodeByArbitraryId(Request.Property.ParentArbitraryId);
                        ICswNbtMetaDataProp    prop   = null;
                        if (Request.Property.Type == CswEnumNbtViewPropType.NodeTypePropId)
                        {
                            prop = _CswNbtResources.MetaData.getNodeTypeProp(Request.Property.NodeTypePropId);
                        }
                        else
                        {
                            prop = _CswNbtResources.MetaData.getObjectClassProp(Request.Property.ObjectClassPropId);
                        }
                        rel = CurrentView.AddViewProperty(parent, prop);
                    }
                    grp = rel.TextLabel;
                }

                CurrentView.GridGroupByCol = grp;
            }

            base.Finalize(Return);
            return(Return);
        }
        protected override void OnDisable()
        {
            //Hide the following Location properties...
            //   Containers
            //   Inventory Levels
            //   Allow Inventory
            //   Inventory Group
            //   Storate Compatibility
            CswNbtMetaDataObjectClass locationOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.LocationClass);

            foreach (int NodeTypeId in locationOC.getNodeTypeIds().Keys)
            {
                _CswNbtResources.Modules.HideProp(NodeTypeId, CswNbtObjClassLocation.PropertyName.Containers);
                _CswNbtResources.Modules.HideProp(NodeTypeId, "Inventory Levels");
                _CswNbtResources.Modules.HideProp(NodeTypeId, CswNbtObjClassLocation.PropertyName.AllowInventory);
                _CswNbtResources.Modules.HideProp(NodeTypeId, CswNbtObjClassLocation.PropertyName.InventoryGroup);
                _CswNbtResources.Modules.HideProp(NodeTypeId, CswNbtObjClassLocation.PropertyName.StorageCompatibility);
            }

            //Hide the following Material properties...
            //   Inventory Levels
            //   Sizes
            //   Containers
            //   Approved for Receiving
            //   Receive (button)
            //   Storage Compatibility
            CswNbtMetaDataPropertySet MaterialSet = _CswNbtResources.MetaData.getPropertySet(CswEnumNbtPropertySetName.MaterialSet);

            foreach (CswNbtMetaDataObjectClass materialOC in MaterialSet.getObjectClasses())
            {
                foreach (CswNbtMetaDataNodeType materialNT in _CswNbtResources.MetaData.getNodeTypes(materialOC.ObjectClassId))
                {
                    string sizesNTPName = materialNT.NodeTypeName + " Sizes";
                    _CswNbtResources.Modules.HideProp(materialNT.NodeTypeId, sizesNTPName);

                    _CswNbtResources.Modules.HideProp(materialNT.NodeTypeId, "Inventory Levels");

                    string containersNTPName = materialNT.NodeTypeName + " Containers";
                    _CswNbtResources.Modules.HideProp(materialNT.NodeTypeId, containersNTPName);

                    _CswNbtResources.Modules.HideProp(materialNT.NodeTypeId, CswNbtObjClassChemical.PropertyName.ApprovedForReceiving);
                    _CswNbtResources.Modules.HideProp(materialNT.NodeTypeId, CswNbtObjClassChemical.PropertyName.Receive);
                    _CswNbtResources.Modules.HideProp(materialNT.NodeTypeId, CswNbtObjClassChemical.PropertyName.StorageCompatibility);
                }
            }

            //Hide all views in the Containers category
            _CswNbtResources.Modules.ToggleViewsInCategory(true, "Containers", CswEnumNbtViewVisibility.Global);

            //Hide all reports in the Containers category
            _CswNbtResources.Modules.ToggleReportNodes("Containers", true);

            //We handle Kiosk Mode in module logic because it can be turned on by different modules
            if (false == _CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.IMCS))
            {
                _CswNbtResources.Modules.ToggleAction(false, CswEnumNbtActionName.Kiosk_Mode);
            }

            //Hide Print Labels with a dependent NodeType
            _CswNbtResources.Modules.TogglePrintLabels(true, CswEnumNbtModuleName.Containers);

            // Case 28930 - Disable Scheduled Rules
            _CswNbtResources.Modules.ToggleScheduledRule(CswEnumNbtScheduleRuleNames.ExpiredContainers, Disabled: true);
            _CswNbtResources.Modules.ToggleScheduledRule(CswEnumNbtScheduleRuleNames.ContainerReconciliationActions, Disabled: true);
        } // OnDisable()
        public override void ToJSON( JObject ParentObject )
        {
            CswNbtNode RelatedNode = null;
            if( CswTools.IsPrimaryKey( RelatedNodeId ) )
            {
                //ParentObject[_NodeIDSubField.ToXmlNodeName( true ).ToLower()] = RelatedNodeId.ToString();
                RelatedNode = _CswNbtResources.Nodes[RelatedNodeId];
            }

            if( IsEditModeEditable )
            {
                JArray JOptions = (JArray) ( ParentObject["options"] = new JArray() );
                bool AllowEdit = _CswNbtResources.Permit.isPropWritable( CswEnumNbtNodeTypePermission.Create, NodeTypeProp, null );
                Int32 OptionCount = 0;
                if( AllowEdit )
                {
                    CswPrimaryKey pk = null;
                    if( null != RelatedNode )
                    {
                        pk = RelatedNode.NodeId;
                    }
                    //Dictionary<CswPrimaryKey, string> Options = _OptionsOverride ?? _getOptions( _CswNbtResources, _CswNbtMetaDataNodeTypeProp.IsRequired, _CswNbtMetaDataNodeTypeProp.FKValue, pk, View );
                    Dictionary<CswPrimaryKey, string> Options = _OptionsOverride ?? _getOptions( _CswNbtResources,
                                                                                                 CswConvert.ToBoolean( _CswNbtNodePropData[CswNbtFieldTypeRuleRelationship.AttributeName.Required] ),
                                                                                                 CswConvert.ToInt32( _CswNbtNodePropData[CswNbtFieldTypeRuleRelationship.AttributeName.Target, CswNbtFieldTypeRuleMetaDataList.SubFieldName.Id] ),
                                                                                                 pk, View );
                    if( Options.Count > _SearchThreshold )
                    {
                        ParentObject["usesearch"] = true;
                    }
                    else
                    {
                        ParentObject["usesearch"] = false;
                        CswPrimaryKey FirstPk = null;
                        foreach( CswPrimaryKey NodePk in Options.Keys )
                        {
                            if( CswTools.IsPrimaryKey( NodePk ) )
                            {
                                OptionCount += 1;
                                JObject JOption = new JObject();
                                FirstPk = FirstPk ?? NodePk;
                                JOption["id"] = NodePk.ToString();
                                JOption["value"] = Options[NodePk];
                                JOption["link"] = CswNbtNode.getNodeLink( NodePk, Options[NodePk] );
                                JOptions.Add( JOption );
                            }
                        }

                        //If Required, show empty when no value is selected and if there is more than one option to select from
                        bool ShowEmptyOption = Required && false == CswTools.IsPrimaryKey( RelatedNodeId ) && 1 < OptionCount;
                        //If not Required, always show the empty value
                        ShowEmptyOption = ShowEmptyOption || false == Required;

                        if( ShowEmptyOption )
                        {
                            JObject JOption = new JObject();
                            JOption["id"] = "";
                            JOption["value"] = "";
                            JOptions.AddFirst( JOption );
                        }
                        else
                        {
                            //Case 30030
                            if( null == RelatedNode &&
                                Required &&
                                Options.Count == 1 &&
                                CswTools.IsPrimaryKey( FirstPk ) )
                            {
                                RelatedNode = _CswNbtResources.Nodes[FirstPk];
                            }
                        }
                    }
                }

                ParentObject["nodetypeid"] = 0;
                ParentObject["objectclassid"] = 0;
                ParentObject["propertysetid"] = 0;
                bool AllowAdd = false;
                bool AllowView = true;
                if( null != RelatedNodeId )
                {
                    CswNbtMetaDataNodeType TargetNodeType = _CswNbtResources.MetaData.getNodeTypeFromNodeId( RelatedNodeId );
                    AllowAdd = ( null != TargetNodeType && _CswNbtResources.Permit.canNodeType( CswEnumNbtNodeTypePermission.Create, TargetNodeType ) );
                    AllowView = ( null != TargetNodeType && _CswNbtResources.Permit.canNodeType( CswEnumNbtNodeTypePermission.View, TargetNodeType ) );
                }
                else if( TargetType == CswEnumNbtViewRelatedIdType.NodeTypeId )
                {
                    ParentObject["nodetypeid"] = TargetId;
                    CswNbtMetaDataNodeType TargetNodeType = _CswNbtResources.MetaData.getNodeType( TargetId );
                    AllowAdd = ( null != TargetNodeType && _CswNbtResources.Permit.canNodeType( CswEnumNbtNodeTypePermission.Create, TargetNodeType ) );
                    AllowView = ( null != TargetNodeType && _CswNbtResources.Permit.canNodeType( CswEnumNbtNodeTypePermission.View, TargetNodeType ) );
                }
                else if( TargetType == CswEnumNbtViewRelatedIdType.ObjectClassId )
                {
                    ParentObject["objectclassid"] = TargetId;
                    CswNbtMetaDataObjectClass TargetObjectClass = _CswNbtResources.MetaData.getObjectClass( TargetId );
                    AllowAdd = ( null != TargetObjectClass &&
                                 TargetObjectClass.CanAdd &&
                                 TargetObjectClass.getNodeTypes().Any( nt => _CswNbtResources.Permit.canNodeType( CswEnumNbtNodeTypePermission.Create, nt ) ) );
                    if( false == AllowAdd )
                    {
                        AllowView = ( null != TargetObjectClass &&
                                      TargetObjectClass.getNodeTypes().Any( nt => _CswNbtResources.Permit.canNodeType( CswEnumNbtNodeTypePermission.View, nt ) ) );
                    }
                }
                else if( TargetType == CswEnumNbtViewRelatedIdType.PropertySetId )
                {
                    ParentObject["propertysetid"] = TargetId;
                    CswNbtMetaDataPropertySet TargetPropSet = _CswNbtResources.MetaData.getPropertySet( TargetId );
                    AllowAdd = TargetPropSet.getObjectClasses().Any( oc => null != oc &&
                                                                           oc.CanAdd &&
                                                                           oc.getNodeTypes().Any( nt => _CswNbtResources.Permit.canNodeType( CswEnumNbtNodeTypePermission.Create, nt ) ) );
                    if( false == AllowAdd )
                    {
                        AllowView = TargetPropSet.getObjectClasses().Any( oc => null != oc &&
                                                                                oc.getNodeTypes().Any( nt => _CswNbtResources.Permit.canNodeType( CswEnumNbtNodeTypePermission.View, nt ) ) );
                    }
                }
                ParentObject["allowadd"] = AllowAdd;
                ParentObject["allowview"] = AllowView;

                if( null != View )
                {
                    ParentObject["viewid"] = View.ViewId.ToString();
                    if( AllowEdit && OptionCount == 0 )
                    {
                        ParentObject["doGetNodes"] = true;
                    }
                }
            } // if( ForEdit )

            ParentObject[_NodeIDSubField.ToXmlNodeName( true ).ToLower()] = string.Empty;
            ParentObject[_NameSubField.ToXmlNodeName( true ).ToLower()] = CachedNodeName;
            ParentObject["relatednodeid"] = string.Empty;
            ParentObject["relatednodelink"] = string.Empty;
            if( null != RelatedNode )
            {
                ParentObject[_NodeIDSubField.ToXmlNodeName( true ).ToLower()] = RelatedNode.NodeId.ToString();
                ParentObject[_NameSubField.ToXmlNodeName( true ).ToLower()] = RelatedNode.NodeName;
                ParentObject["relatednodeid"] = RelatedNode.NodeId.ToString();
                ParentObject["relatednodelink"] = RelatedNode.NodeLink;
            }
        } // ToJSON()
Esempio n. 28
0
        } // OnEnable()

        protected override void OnDisable()
        {
            //Turn on off views in the MLM (demo) category
            _CswNbtResources.Modules.ToggleViewsInCategory(true, "MLM (demo)", CswEnumNbtViewVisibility.Global);

            //Case 27866 on disable hide Container props...
            //   Lot Controlled
            //   Requisitionable
            //   Reserved For
            CswNbtMetaDataObjectClass containerOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ContainerClass);

            foreach (CswNbtMetaDataNodeType containerNT in containerOC.getNodeTypes())
            {
                _CswNbtResources.Modules.HideProp(containerNT.NodeTypeId, CswNbtObjClassContainer.PropertyName.LotControlled);
                _CswNbtResources.Modules.HideProp(containerNT.NodeTypeId, CswNbtObjClassContainer.PropertyName.Requisitionable);
                _CswNbtResources.Modules.HideProp(containerNT.NodeTypeId, CswNbtObjClassContainer.PropertyName.ReservedFor);
                //if( null != cmgTab )
                //{
                //    cmgTab.DesignNode.Node.delete( false, true );
                //}
            }

            //Case 31546 - If requesting is disabled, we don't need to hide anything on the Request Item OC because it is not available
            if (_CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.Requesting))
            {
                CswNbtObjClassRequestItem.ToggleMLMProps(_CswNbtResources, true);
            }

            //Case 28339
            //   Hide Vendor.VendorType and CorporateEntity
            //   Remove filter on Material.Supplier
            CswNbtMetaDataObjectClass vendorOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.VendorClass);

            foreach (CswNbtMetaDataNodeType vendorNT in vendorOC.getNodeTypes())
            {
                _CswNbtResources.Modules.HideProp(vendorNT.NodeTypeId, CswNbtObjClassVendor.PropertyName.VendorTypeName);
                _CswNbtResources.Modules.HideProp(vendorNT.NodeTypeId, CswNbtObjClassVendor.PropertyName.CorporateEntityName);
            }

            CswNbtView newSupplierPropView = new CswNbtView(_CswNbtResources);

            newSupplierPropView.saveNew("Supplier", CswEnumNbtViewVisibility.Property);
            newSupplierPropView.AddViewRelationship(vendorOC, true);
            newSupplierPropView.save();

            _toggleMaterialSupplierView(true);
            _toggleReceiptLotManufacturerView(true);

            //Case CIS-52280 on disable hide Material props...
            //   Manufacturing Sites Grid
            //   Requires Cleaning Event
            CswNbtMetaDataPropertySet materialPS = _CswNbtResources.MetaData.getPropertySet(CswEnumNbtPropertySetName.MaterialSet);

            foreach (CswNbtMetaDataObjectClass materialOC in materialPS.getObjectClasses())
            {
                foreach (CswNbtMetaDataNodeType materialNT in materialOC.getNodeTypes())
                {
                    _CswNbtResources.Modules.HideProp(materialNT.NodeTypeId, CswNbtPropertySetMaterial.PropertyName.ManufacturingSites);
                    _CswNbtResources.Modules.HideProp(materialNT.NodeTypeId, CswNbtPropertySetMaterial.PropertyName.RequiresCleaningEvent);
                }
            }

            setReceiptLotPermissions(_CswNbtResources, false);
        } // OnDisable()
Esempio n. 29
0
        } // getObjectClasses()

        /// <summary>
        /// Get a list of all NodeTypes, optionally limited according to supplied parameters
        /// </summary>
        /// <param name="ObjectClass">(Optional) An Object Class to constrain results.</param>
        /// <param name="ExcludeNodeTypeIds">(Optional) A comma-delimited string of NodeTypeIds to exclude from the return.</param>
        /// <param name="RelationshipTargetNodeTypeId">(Optional [Requires RelationshipObjectClassPropName])
        /// <para>A related NodeTypeId to further constrain the results to nodetypes whose relationship targets the supplied RelationshipTargetNodeTypeId</para>
        /// <para>Use case: get all nodetypes of Size object class whose Material relationships target Chemicals.</para>
        /// </param>
        /// <param name="RelationshipObjectClassPropName">(Optional [Requires RelationshipObjectClassPropName])
        /// <para>The name of the Object Class Prop which defines the relationship to RelationshipTargetNodeTypeId</para>
        /// <param name="FilterToPermission">Restrict nodeTypes to those to which the user has this permission (default is 'View')</param>
        /// <param name="FilterToViewId">(Optional) Limit to nodetypes within this view</param>
        /// <param name="Searchable">If true, only include searchable nodetypes</param>
        /// <returns></returns>
        public JObject getNodeTypes(CswNbtMetaDataPropertySet PropertySet  = null,
                                    CswNbtMetaDataObjectClass ObjectClass  = null,
                                    string ExcludeNodeTypeIds              = "",
                                    Int32 RelationshipTargetNodeTypeId     = Int32.MinValue,
                                    string RelationshipObjectClassPropName = "",
                                    Int32 RelationshipNodeTypePropId       = Int32.MinValue,
                                    string FilterToPermission              = null,
                                    CswNbtView FilterToView = null,
                                    bool Searchable         = false)
        {
            JObject ReturnVal = new JObject();

            if (string.IsNullOrEmpty(FilterToPermission))
            {
                // We default the Permission type to 'View'
                FilterToPermission = CswEnumNbtNodeTypePermission.View;
            }

            CswCommaDelimitedString ExcludedNodeTypes = new CswCommaDelimitedString();
            Collection <Int32>      ExcludedIds       = new Collection <Int32>();

            if (false == string.IsNullOrEmpty(ExcludeNodeTypeIds))
            {
                ExcludedNodeTypes.FromString(ExcludeNodeTypeIds);
                ExcludedIds = ExcludedNodeTypes.ToIntCollection();
            }

            IEnumerable <CswNbtMetaDataNodeType> NodeTypes;

            if (Int32.MinValue != RelationshipNodeTypePropId)
            {
                CswNbtMetaDataNodeTypeProp RelationshipProp = _CswNbtResources.MetaData.getNodeTypeProp(RelationshipNodeTypePropId);
                NodeTypes = _CswNbtResources.MetaData.getNodeTypes().Where(nt => RelationshipProp.FkMatches(nt));
            }
            else if (null != FilterToView)
            {
                NodeTypes = new Collection <CswNbtMetaDataNodeType>();
                Collection <CswNbtViewRelationship> relationships = FilterToView.getAllNbtViewRelationships();
                foreach (CswNbtViewRelationship rel in relationships)
                {
                    if (rel.SecondType == CswEnumNbtViewRelatedIdType.NodeTypeId)
                    {
                        ((Collection <CswNbtMetaDataNodeType>)NodeTypes).Add(_CswNbtResources.MetaData.getNodeType(rel.SecondId));
                    }
                    else if (rel.SecondType == CswEnumNbtViewRelatedIdType.ObjectClassId)
                    {
                        NodeTypes = NodeTypes.Union(_CswNbtResources.MetaData.getObjectClass(rel.SecondId).getNodeTypes());
                    }
                    else if (rel.SecondType == CswEnumNbtViewRelatedIdType.PropertySetId)
                    {
                        NodeTypes = NodeTypes.Union(_CswNbtResources.MetaData.getPropertySet(rel.SecondId).getNodeTypes());
                    }
                }
            }
            else if (null != PropertySet)
            {
                List <CswNbtMetaDataNodeType> NTs = new List <CswNbtMetaDataNodeType>();
                foreach (CswNbtMetaDataObjectClass OC in PropertySet.getObjectClasses())
                {
                    NTs.AddRange(OC.getLatestVersionNodeTypes());
                }
                NodeTypes = NTs;
            }
            else if (null == ObjectClass)
            {
                NodeTypes = _CswNbtResources.MetaData.getNodeTypesLatestVersion();
            }
            else
            {
                NodeTypes = ObjectClass.getLatestVersionNodeTypes();
                ReturnVal["objectClassId"] = ObjectClass.ObjectClassId;
            }

            Int32 NodeTypeCount = 0;

            foreach (CswNbtMetaDataNodeType RetNodeType in NodeTypes
                     .Where(_RetNodeType => (false == Searchable || _RetNodeType.IsSearchResult()))
                     .OrderBy(_RetNodeType => _RetNodeType.NodeTypeName))
            {
                bool AddThisNodeType = false;
                if (false == ExcludedIds.Contains(RetNodeType.NodeTypeId))
                {
                    AddThisNodeType = true;
                    if (Int32.MinValue != RelationshipTargetNodeTypeId &&
                        false == string.IsNullOrEmpty(RelationshipObjectClassPropName))
                    {
                        CswNbtMetaDataNodeTypeProp RelationshipNtp = RetNodeType.getNodeTypePropByObjectClassProp(RelationshipObjectClassPropName);
                        if (null != RelationshipNtp &&
                            RelationshipNtp.getFieldTypeValue() == CswEnumNbtFieldType.Relationship)
                        {
                            CswNbtMetaDataNodeType RelatedNodeType = _CswNbtResources.MetaData.getNodeType(RelationshipTargetNodeTypeId);
                            if (null == RelatedNodeType ||
                                false == RelationshipNtp.FkMatches(RelatedNodeType, true))
                            {
                                AddThisNodeType = false;
                            }
                        }
                    }
                    if (false == _userHasPermission(FilterToPermission, RetNodeType))
                    {
                        AddThisNodeType = false;
                    }
                }

                if (AddThisNodeType)
                {
                    _addNodeTypeAttributes(RetNodeType, ReturnVal);
                    NodeTypeCount += 1;
                }
            }

            ReturnVal["count"] = NodeTypeCount;
            return(ReturnVal);
        } // getNodeTypes()
Esempio n. 30
0
        protected override void OnEnable()
        {
            //Turn on all views in the MLM (demo) category
            _CswNbtResources.Modules.ToggleViewsInCategory(false, "MLM (demo)", CswEnumNbtViewVisibility.Global);

            //Case 27866/28156 on enable show Container props...
            //   Lot Controlled
            //   Requisitionable
            //   Reserved For
            //   Receipt Lot
            CswNbtMetaDataObjectClass containerOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ContainerClass);

            foreach (CswNbtMetaDataNodeType containerNT in containerOC.getNodeTypes())
            {
                _CswNbtResources.Modules.ShowProp(containerNT.NodeTypeId, CswNbtObjClassContainer.PropertyName.LotControlled);
                _CswNbtResources.Modules.ShowProp(containerNT.NodeTypeId, CswNbtObjClassContainer.PropertyName.Requisitionable);
                _CswNbtResources.Modules.ShowProp(containerNT.NodeTypeId, CswNbtObjClassContainer.PropertyName.ReservedFor);
                //Case 30723 - Receipt Lot is only "semi-disabled" when MLM is off, so just add it back to the layout when it's enabled
                CswNbtMetaDataNodeTypeProp ReceiptLotNTP = _CswNbtResources.MetaData.getNodeTypeProp(containerNT.NodeTypeId, CswNbtObjClassContainer.PropertyName.ReceiptLot);
                if (null != ReceiptLotNTP)
                {
                    CswNbtMetaDataNodeTypeProp StatusNTP = containerNT.getNodeTypePropByObjectClassProp(CswNbtObjClassContainer.PropertyName.Status);
                    ReceiptLotNTP.updateLayout(CswEnumNbtLayoutType.Edit, StatusNTP, true);
                }
            }

            //Case 31546 - If requesting is disabled, we don't need to show anything on the Request Item OC because it is not available
            if (_CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.Requesting))
            {
                CswNbtObjClassRequestItem.ToggleMLMProps(_CswNbtResources, false);
            }

            //Case 28339
            //   Show Vendor.VendorType and CorporateEntity
            //   Add a filter to Material.Supplier where VendorType = 'Coporate'
            CswNbtMetaDataObjectClass vendorOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.VendorClass);

            foreach (CswNbtMetaDataNodeType vendorNT in vendorOC.getNodeTypes())
            {
                _CswNbtResources.Modules.ShowProp(vendorNT.NodeTypeId, CswNbtObjClassVendor.PropertyName.VendorTypeName);
                _CswNbtResources.Modules.ShowProp(vendorNT.NodeTypeId, CswNbtObjClassVendor.PropertyName.CorporateEntityName);
            }

            _toggleMaterialSupplierView(false);
            _toggleReceiptLotManufacturerView(false);

            setReceiptLotPermissions(_CswNbtResources, true);

            //Case CIS-52280 on enable show Material props...
            //   Manufacturing Sites Grid
            //   Requires Cleaning Event
            CswNbtMetaDataPropertySet materialPS = _CswNbtResources.MetaData.getPropertySet(CswEnumNbtPropertySetName.MaterialSet);

            foreach (CswNbtMetaDataObjectClass materialOC in materialPS.getObjectClasses())
            {
                foreach (CswNbtMetaDataNodeType materialNT in materialOC.getNodeTypes())
                {
                    _CswNbtResources.Modules.ShowProp(materialNT.NodeTypeId, CswNbtPropertySetMaterial.PropertyName.ManufacturingSites);
                    _CswNbtResources.Modules.ShowProp(materialNT.NodeTypeId, CswNbtPropertySetMaterial.PropertyName.RequiresCleaningEvent);
                }
            }
        } // OnEnable()