private void onOwnerPropChange( CswNbtNodeProp NodeProp, bool Creating )
 {
     if( Owner.wasAnySubFieldModified() )
     {
         _trySetNodeTypeSelectDefaultValues();
     }
 }
 private void OnWorkUnitPropChange( CswNbtNodeProp NodeProp, bool Creating )
 {
     if( null == WorkUnit.RelatedNodeId )
     {
         ApplyToAllWorkUnits.Checked = CswEnumTristate.True;
     }
 }
 private void OnRolePropChange( CswNbtNodeProp NodeProp, bool Creating )
 {
     if( null == Role.RelatedNodeId )
     {
         ApplyToAllRoles.Checked = CswEnumTristate.True;
     }
 }
Example #4
0
 private void OnUserNamePropChange(CswNbtNodeProp Prop, bool Creating)
 {
     if (false == Prop.Empty)
     {
         Prop.setReadOnly(true, true);
     }
 }
        /// <summary>
        /// Throws dni exception if other non-obsolete methods exist with the same prop number  CIS-52300
        /// </summary>
        /// <param name="NodeProp"></param>
        /// <param name="Creating"></param>
        private void _onAfterMethodNumberChange(CswNbtNodeProp NodeProp, bool Creating)
        {
            string thisMethodNo = MethodNo.Text;

            //create a view of all Method nodes
            CswNbtView MethodView = new CswNbtView(_CswNbtResources);

            MethodView.ViewName = "Check for Duplicate Method View";

            //ignore already obsolete methods
            CswNbtViewRelationship        MethodRelationship = MethodView.AddViewRelationship(ObjectClass, true);
            CswNbtMetaDataObjectClassProp MethodNoOCP        = ObjectClass.getObjectClassProp(PropertyName.MethodNo);

            MethodView.AddViewPropertyAndFilter(MethodRelationship, MethodNoOCP,
                                                Value: thisMethodNo,
                                                FilterMode: CswEnumNbtFilterMode.Equals);

            ICswNbtTree MethodNodesTree = _CswNbtResources.Trees.getTreeFromView(MethodView, false, false, false);

            if (MethodNodesTree.getChildNodeCount() > 0)
            {
                throw new CswDniException(CswEnumErrorType.Warning,
                                          "Method number must be unique",
                                          "Found existing non-obsolete method with method number: " + thisMethodNo);
            }
        }//_onAfterMethodChange()
Example #6
0
 private void onAccountLockedPropChange(CswNbtNodeProp NodeProp, bool Creating)
 {
     if (CswEnumTristate.True != AccountLocked.Checked)
     {
         clearFailedLoginCount();
     }
 }
Example #7
0
        public void OnCurrentWorkUnitPropertyChange(CswNbtNodeProp Prop, bool Creating)
        {
            CswPrimaryKey UsersCurrentWorkUnitId = CurrentWorkUnitId;

            //Case 30817
            //if( null != UsersWorkUnitId )
            if (false == CswTools.IsPrimaryKey(UsersCurrentWorkUnitId))
            {
                UsersCurrentWorkUnitId = GetFirstAvailableWorkUnitNodeId();
            }

            if (false == AvailableWorkUnits.CheckValue(UsersCurrentWorkUnitId.ToString()))
            {
                if (false == _CswNbtResources.CurrentNbtUser is CswNbtSystemUser &&
                    _CswNbtResources.CurrentNbtUser.Username != ChemSWAdminUsername)
                {
                    throw new CswDniException(CswEnumErrorType.Warning,
                                              CurrentWorkUnitProperty.CachedNodeName +
                                              " is not an available Work Unit for user " + Username,
                                              _CswNbtResources.CurrentNbtUser.Username + " attempted to assign User: "******" to Work Unit: " + UsersCurrentWorkUnitId +
                                              " when Users available Work Units are: " + AvailableWorkUnits.Value);
                }
                // We add the work unit to the list and then check it!
                AvailableWorkUnits.AddValue(UsersCurrentWorkUnitId.ToString());
                CurrentWorkUnitProperty.RelatedNodeId = UsersCurrentWorkUnitId;
                CurrentWorkUnitProperty.SyncGestalt();

                _updateAvailableWorkUnits();
            }
        }
Example #8
0
 public void OnTypePropChange(CswNbtNodeProp Prop, bool Creating)
 {
     if (Type.Value == TypeOptionView)
     {
         OutputFormat.Value = CswEnumNbtMailReportFormatOptions.Link.ToString();
     }
 } // OnTypePropChange()
Example #9
0
 private void onRolePropChange(CswNbtNodeProp NodeProp, bool Creating)
 {
     if (null != _CswNbtResources.CurrentNbtUser &&
         CswTools.IsPrimaryKey(Role.RelatedNodeId) &&
         Role.RelatedNodeId.PrimaryKey != CswConvert.ToInt32(Role.GetOriginalPropRowValue(CswEnumNbtPropColumn.Field1_FK)))
     {
         if (false == _CswNbtResources.CurrentNbtUser.IsAdministrator())
         {
             throw new CswDniException(CswEnumErrorType.Warning, "Only Administrators can change user roles",
                                       "Current user (" + _CswNbtResources.CurrentUser.Username +
                                       ") attempted to edit a user role.");
         }
         if (this.Username != ChemSWAdminUsername &&
             ((CswNbtObjClassRole)_CswNbtResources.Nodes[Role.RelatedNodeId]).Name.Text ==
             CswNbtObjClassRole.ChemSWAdminRoleName)
         {
             throw new CswDniException(CswEnumErrorType.Warning,
                                       "New users may not be assigned to the '" +
                                       CswNbtObjClassRole.ChemSWAdminRoleName + "' role",
                                       "Current user (" + _CswNbtResources.CurrentUser.Username +
                                       ") attempted to assign a new user to the '" +
                                       CswNbtObjClassRole.ChemSWAdminRoleName + "' role.");
         }
     }
 }
Example #10
0
 private void onEventPropChange(CswNbtNodeProp Prop, bool Creating)
 {
     if (string.IsNullOrEmpty(Event.Value) && Type.Value == TypeOptionView)
     {
         throw new CswDniException(CswEnumErrorType.Warning, "View based Mail Reports must have a value for Event.", "Attempted to set a null or empty value to Event for a Report type of 'View'.");
     }
 }
Example #11
0
        public override void setPropUIVisibility(CswNbtNodeProp Prop)
        {
            bool IsVisible = true;

            switch (Prop.PropName)
            {
            case CswNbtObjClassRequestItem.PropertyName.Container:
            case CswNbtObjClassRequestItem.PropertyName.EnterprisePart:
            case CswNbtObjClassRequestItem.PropertyName.Size:
            case CswNbtObjClassRequestItem.PropertyName.SizeCount:
            case CswNbtObjClassRequestItem.PropertyName.NewMaterialType:
            case CswNbtObjClassRequestItem.PropertyName.NewMaterialTradename:
            case CswNbtObjClassRequestItem.PropertyName.NewMaterialSupplier:
            case CswNbtObjClassRequestItem.PropertyName.NewMaterialPartNo:
                Prop.setHidden(true, SaveToDb: false);
                IsVisible = false;
                break;

            case CswNbtObjClassRequestItem.PropertyName.Material:
                Prop.setReadOnly(true, SaveToDb: false);
                break;
            }
            if (IsVisible && _RequestItem.IsRecurring.Checked == CswEnumTristate.True)
            {
                setRecurringPropVisibility(Prop);
            }
        }
Example #12
0
        public override void onTypePropChange(CswNbtNodeProp Prop)
        {
            Type.setReadOnly(value: true, SaveToDb: true);

            Fulfill.MenuOptions = FulfillMenu.Options.ToString();
            Fulfill.State       = FulfillMenu.Create;
        }
        private void onParentTypePropChange( CswNbtNodeProp NodeProp, bool Creating )
        {
            if( ParentType.wasAnySubFieldModified() )
            {

            }
        }
Example #14
0
        public void _RegulatoryList_OnChange(CswNbtNodeProp Prop, bool Creating)
        {
            if (null != RegulatoryList.RelatedNodeId &&
                RegulatoryList.RelatedNodeId.PrimaryKey != CswConvert.ToInt32(RegulatoryList.GetOriginalPropRowValue(CswNbtFieldTypeRuleRelationship.SubFieldName.NodeID)))
            {
                // case 28303 - set ByUser to current user when regulatory list is modified
                if (false == SetByChemical && false == _CswNbtResources.CurrentNbtUser is CswNbtSystemUser)
                {
                    ByUser.RelatedNodeId = _CswNbtResources.CurrentNbtUser.UserId;

                    // case 28303 - remove list from Chemical's Suppressed list
                    if (CswTools.IsPrimaryKey(Chemical.RelatedNodeId))
                    {
                        CswNbtObjClassChemical ChemicalNode = _CswNbtResources.Nodes[Chemical.RelatedNodeId];
                        if (null != ChemicalNode)
                        {
                            if (ChemicalNode.isRegulatoryListSuppressed(RegulatoryList.RelatedNodeId))    // important to prevent an infinite loop
                            {
                                ChemicalNode.removeSuppressedRegulatoryList(RegulatoryList.RelatedNodeId);
                                ChemicalNode.postChanges(false);
                            }
                        }
                    }
                }
            }
        } // _RegulatoryList_OnChange()
        }                                                                                         //&& _CswNbtResources.Modules.IsModuleEnabled( CswNbtModuleName.MLM ); } }
        private void onIsRecurringChange(CswNbtNodeProp NodeProp)
        {
            if (IsRecurring.WasModified)
            {
                //Both Recurring and Favorites will be 'copied' at some frequency back to genuine Pending Request Items
                //Support both directions

                _toggleRequestItemPropVisibility();
                if (_IsRecurring)
                {
                    //Case 29393: Use a better status than ""
                    Status.Value = NonRequestableStatus;
                    RecurringFrequency.setHidden(value: false, SaveToDb: true);
                    NextReorderDate.setHidden(value: false, SaveToDb: true);
                    Name.setHidden(value: true, SaveToDb: true);
                }
                else if (false == _IsFavorite)
                {
                    if (string.IsNullOrEmpty(Status.Value) || Status.Value == NonRequestableStatus)
                    {
                        Status.Value = Statuses.Pending;
                    }
                    IsRecurring.setHidden(value: true, SaveToDb: true);
                    RecurringFrequency.setHidden(value: true, SaveToDb: true);
                    NextReorderDate.setHidden(value: true, SaveToDb: true);
                }
            }
        }
 private void onQuantityPropChange(CswNbtNodeProp Prop)
 {
     if (CswTools.IsPrimaryKey(Quantity.UnitId) && TotalDispensed.UnitId != Quantity.UnitId)
     {
         TotalDispensed.UnitId = Quantity.UnitId;
     }
 }
        private void _onStatusPropChange(CswNbtNodeProp Prop)
        {
            AssignedTo.setHidden(value: (Status.Value == Statuses.Pending || Status.Value == Statuses.Completed || Status.Value == Statuses.Cancelled), SaveToDb: true);
            Fulfill.setHidden(value: (Status.Value == Statuses.Pending || Status.Value == Statuses.Completed || Status.Value == Statuses.Cancelled), SaveToDb: true);

            //27800 - don't show redundant props when status is pending
            Request.setHidden(value: (Status.Value == Statuses.Pending), SaveToDb: true);
            Name.setHidden(value: (Status.Value == Statuses.Pending), SaveToDb: true);
            Requestor.setHidden(value: (Status.Value == Statuses.Pending), SaveToDb: true);
            Status.setHidden(value: (Status.Value == Statuses.Pending), SaveToDb: true);
            Priority.setHidden(value: (Status.Value == Statuses.Pending), SaveToDb: true);
            ExternalOrderNumber.setHidden(value: (Status.Value == Statuses.Pending), SaveToDb: true);
            Type.setHidden(value: (Status.Value == Statuses.Pending), SaveToDb: true);

            switch (Status.Value)
            {
            case Statuses.Submitted:
                toggleReadOnlyProps(true, this);
                break;

            case Statuses.Cancelled:     //This fallthrough is intentional
            case Statuses.Completed:
                CswNbtObjClassRequest NodeAsRequest = _CswNbtResources.Nodes[Request.RelatedNodeId];
                if (null != NodeAsRequest)
                {
                    NodeAsRequest.setCompletedDate();
                }
                _toggleReadOnlyProps(IsReadOnly: true, ItemInstance: this);
                Node.setReadOnly(value: true, SaveToDb: true);
                break;
            }

            onStatusPropChange(Prop);
        }
        public override void setPropUIVisibility(CswNbtNodeProp Prop)
        {
            switch (Prop.PropName)
            {
            case CswNbtObjClassRequestItem.PropertyName.Location:
            case CswNbtObjClassRequestItem.PropertyName.ExternalOrderNumber:
            case CswNbtObjClassRequestItem.PropertyName.EnterprisePart:
            case CswNbtObjClassRequestItem.PropertyName.Material:
            case CswNbtObjClassRequestItem.PropertyName.Quantity:
            case CswNbtObjClassRequestItem.PropertyName.TotalDispensed:
            case CswNbtObjClassRequestItem.PropertyName.Size:
            case CswNbtObjClassRequestItem.PropertyName.SizeCount:
            case CswNbtObjClassRequestItem.PropertyName.TotalMoved:
            case CswNbtObjClassRequestItem.PropertyName.NewMaterialType:
            case CswNbtObjClassRequestItem.PropertyName.NewMaterialTradename:
            case CswNbtObjClassRequestItem.PropertyName.NewMaterialSupplier:
            case CswNbtObjClassRequestItem.PropertyName.NewMaterialPartNo:
            case CswNbtObjClassRequestItem.PropertyName.GoodsReceived:
            case CswNbtObjClassRequestItem.PropertyName.ReceiptLotToDispense:
            case CswNbtObjClassRequestItem.PropertyName.ReceiptLotsReceived:
                Prop.setHidden(true, SaveToDb: false);
                break;

            case CswNbtObjClassRequestItem.PropertyName.InventoryGroup:
                Prop.setReadOnly(true, SaveToDb: false);
                break;
            }
        }
        public override void onTypePropChange(CswNbtNodeProp Prop)
        {
            switch (Type.Value)
            {
            case Types.Size:
                Fulfill.MenuOptions = FulfillMenu.Options.Remove(FulfillMenu.Dispense).ToString();
                Fulfill.State       = FulfillMenu.Move;
                Quantity.clearQuantity(ForceClear: true);
                break;

            case Types.Bulk:
                Fulfill.MenuOptions = FulfillMenu.Options.Remove(FulfillMenu.Move).ToString();
                Fulfill.State       = FulfillMenu.Dispense;
                Size.clearRelationship();
                Count.Value = Double.NaN;
                break;
            }

            /* Spec W1010: Quantity applies only to Request by Bulk and Dispense */
            bool QuantityDisabled = Type.Value == Types.Size;

            Quantity.setHidden(value: QuantityDisabled, SaveToDb: true);
            Size.setHidden(value: false == QuantityDisabled, SaveToDb: true);
            Count.setHidden(value: false == QuantityDisabled, SaveToDb: true);

            Type.setReadOnly(value: true, SaveToDb: true);
        }
Example #20
0
 private void onIsRecurringChange(CswNbtNodeProp NodeProp, bool Creating)
 {
     if (IsRecurring.wasAnySubFieldModified())
     {
         _toggleProps();
     }
 }
Example #21
0
 private void onIsFavortiteChange(CswNbtNodeProp NodeProp, bool Creating)
 {
     if (IsFavorite.wasAnySubFieldModified())
     {
         _toggleProps();
     }
 }
        private void OnLocationScanPropChange( CswNbtNodeProp Prop, bool Creating )
        {
            if( null != LocationScan.Text )
            {
                CswNbtMetaDataObjectClass LocationOc = _CswNbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.LocationClass );
                CswNbtView LocationView = new CswNbtView( _CswNbtResources );

                CswNbtViewRelationship LocationRel = LocationView.AddViewRelationship( LocationOc, false );
                CswNbtMetaDataObjectClassProp BarcodeOcp = LocationOc.getObjectClassProp( CswNbtObjClassLocation.PropertyName.Barcode );

                LocationView.AddViewPropertyAndFilter( LocationRel, BarcodeOcp, LocationScan.Text );
                ICswNbtTree LocationTree = _CswNbtResources.Trees.getTreeFromView( LocationView, false, false, true );
                if( LocationTree.getChildNodeCount() > 0 )
                {
                    LocationTree.goToNthChild( 0 );
                    CswNbtObjClassLocation LocationNode = LocationTree.getNodeForCurrentPosition();
                    Location.SelectedNodeId = LocationNode.NodeId;
                    Location.RefreshNodeName();
                }
                else
                {
                    Location.SelectedNodeId = null;
                    Location.CachedNodeName = String.Empty;
                    Location.CachedPath = String.Empty;
                    Location.CachedBarcode = String.Empty;
                }
            }
            _setStatus();
        }
Example #23
0
        private void onSubmittedDatePropChange(CswNbtNodeProp NodeProp, bool Creating)
        {
            if (SubmittedDate.DateTimeValue != DateTime.MinValue)
            {
                ICswNbtTree Tree         = _getRelatedRequestItemsTree(FilterByStatus: CswNbtObjClassRequestItem.Statuses.Pending);
                int         RequestCount = Tree.getChildNodeCount();
                if (RequestCount == 1)
                {
                    Tree.goToNthChild(0);

                    Int32 RequestItemNodeCount = Tree.getChildNodeCount();
                    if (RequestItemNodeCount > 0)
                    {
                        for (Int32 N = 0; N < RequestItemNodeCount; N += 1)
                        {
                            Tree.goToNthChild(N);
                            CswNbtObjClassRequestItem RequestItem = Tree.getNodeForCurrentPosition();
                            RequestItem.Status.Value = CswNbtObjClassRequestItem.Statuses.Submitted;
                            RequestItem.Request.RefreshNodeName();
                            RequestItem.Name.RecalculateReferenceValue();
                            RequestItem.postChanges(ForceUpdate: false);
                            Tree.goToParentNode();
                        }
                    }
                }
            }
        }
Example #24
0
 private void OnCompanyIdPropChange( CswNbtNodeProp NodeProp, bool Creating )
 {
     if ( false == CswTools.IsValidUsername( CompanyID.Text ) )
     {
         throw new CswDniException( CswEnumErrorType.Warning, "The suppplied CustomerId is not in a valid format.", "CustomerId: {" + CompanyID.Text + "} is not well-formed." );
     }
 }
        private void OnContainerScanPropChange( CswNbtNodeProp Prop, bool Creating )
        {
            if( null != ContainerScan.Text )
            {
                CswNbtMetaDataObjectClass ContainerOc = _CswNbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.ContainerClass );
                CswNbtView ContainerView = new CswNbtView( _CswNbtResources );

                CswNbtViewRelationship ContainerRel = ContainerView.AddViewRelationship( ContainerOc, false );
                CswNbtMetaDataObjectClassProp BarcodeOcp = ContainerOc.getObjectClassProp( CswNbtObjClassContainer.PropertyName.Barcode );

                ContainerView.AddViewPropertyAndFilter( ContainerRel, BarcodeOcp, ContainerScan.Text );
                ICswNbtTree ContainerTree = _CswNbtResources.Trees.getTreeFromView( ContainerView, false, false, true );
                if( ContainerTree.getChildNodeCount() > 0 )
                {
                    ContainerTree.goToNthChild( 0 );
                    CswNbtObjClassContainer ContainerNode = ContainerTree.getNodeForCurrentPosition();
                    Container.RelatedNodeId = ContainerNode.NodeId;
                }
                else
                {
                    Container.RelatedNodeId = null;
                }
            }
            _setStatus();
        }
        /// <summary>
        /// Hide props that should not be present on Request Items that are marked as Recurring
        /// Make props that should not be edited on Recurring Request Items readonly
        /// </summary>
        protected void setRecurringPropVisibility(CswNbtNodeProp Prop)
        {
            switch (Prop.PropName)
            {
            case CswNbtObjClassRequestItem.PropertyName.Status:
            case CswNbtObjClassRequestItem.PropertyName.ExternalOrderNumber:
            case CswNbtObjClassRequestItem.PropertyName.ItemNumber:
            case CswNbtObjClassRequestItem.PropertyName.AssignedTo:
            case CswNbtObjClassRequestItem.PropertyName.NeededBy:
            case CswNbtObjClassRequestItem.PropertyName.Priority:
            case CswNbtObjClassRequestItem.PropertyName.TotalDispensed:
            case CswNbtObjClassRequestItem.PropertyName.TotalMoved:
            case CswNbtObjClassRequestItem.PropertyName.Comments:
            case CswNbtObjClassRequestItem.PropertyName.FulfillmentHistory:
            case CswNbtObjClassRequestItem.PropertyName.ReceiptLotToDispense:
            case CswNbtObjClassRequestItem.PropertyName.ReceiptLotsReceived:
            case CswNbtObjClassRequestItem.PropertyName.GoodsReceived:
                Prop.setHidden(true, SaveToDb: false);
                break;

            case CswNbtObjClassRequestItem.PropertyName.InventoryGroup:
            case CswNbtObjClassRequestItem.PropertyName.Location:
            case CswNbtObjClassRequestItem.PropertyName.Quantity:
            case CswNbtObjClassRequestItem.PropertyName.Size:
            case CswNbtObjClassRequestItem.PropertyName.SizeCount:
                Prop.setReadOnly(true, SaveToDb: false);
                break;
            }
        }
 private void OnOwnerPropChange( CswNbtNodeProp NodeProp, bool Creating )
 {
     if( CswTools.IsPrimaryKey( Owner.RelatedNodeId ) )
     {
         archiveMatchingDocs();
     }
 }
Example #28
0
        private void _ObjectClassProperty_Change(CswNbtNodeProp Prop, bool Creating)
        {
            CswEnumNbtObjectClass OriginalOC = ObjectClassProperty.GetOriginalPropRowValue(CswNbtFieldTypeRuleList.SubFieldName.Text);

            if (false == string.IsNullOrEmpty(OriginalOC) &&
                OriginalOC != CswNbtResources.UnknownEnum &&
                ObjectClassPropertyValue.ObjectClass != CswEnumNbtObjectClass.GenericClass &&
                ObjectClassPropertyValue.ObjectClass != OriginalOC)
            {
                if (OriginalOC == CswEnumNbtObjectClass.GenericClass)
                {
                    // Convert NodeType

                    //NodeType = CheckVersioning( RelationalNodeType );

                    IconFileName.Value.FromString(ObjectClassPropertyValue.IconFileName);

                    // Sync properties with new object class
                    // see case 31678
                    _requiresSync = true;

                    ObjectClassProperty.ServerManaged = true;
                }
                else if (_overrideNodeConversionCheck)
                {
                    _requiresSync = true;
                }
                else
                {
                    throw new CswDniException(CswEnumErrorType.Warning, "Cannot convert this NodeType", "Nodetype " + RelationalNodeType.NodeTypeName + " (" + RelationalNodeType.NodeTypeId + ") cannot be converted because it is not Generic");
                }
            }
        } // _ObjectClassProperty_Change
Example #29
0
        private void OnStatusPropChange(CswNbtNodeProp NodeProp, bool Creating)
        {
            switch (Status.Value)
            {
            case CswEnumNbtInspectionStatus.Completed:
            case CswEnumNbtInspectionStatus.CompletedLate:
                if (_InspectionState.Deficient)
                {
                    Status.Value = CswEnumNbtInspectionStatus.ActionRequired;
                }
                else
                {
                    _toggleButtonVisibility(Finish, IsVisible: false, SaveToDb: true);
                    _toggleButtonVisibility(SetPreferred, IsVisible: false, SaveToDb: true);
                    _toggleButtonVisibility(Cancel, IsVisible: false, SaveToDb: true);
                    Node.setReadOnly(value: true, SaveToDb: true);
                }
                break;

            case CswEnumNbtInspectionStatus.Cancelled:
            case CswEnumNbtInspectionStatus.Missed:
                //InspectionDate.DateTimeValue = DateTime.Now;
                _toggleButtonVisibility(Finish, IsVisible: false, SaveToDb: true);
                _toggleButtonVisibility(SetPreferred, IsVisible: false, SaveToDb: true);
                _toggleButtonVisibility(Cancel, IsVisible: false, SaveToDb: true);
                Node.setReadOnly(value: true, SaveToDb: true);
                break;

            case CswEnumNbtInspectionStatus.ActionRequired:
                _toggleButtonVisibility(Finish, IsVisible: true, SaveToDb: true);
                _toggleButtonVisibility(SetPreferred, IsVisible: false, SaveToDb: true);
                _toggleButtonVisibility(Cancel, IsVisible: true, SaveToDb: true);
                Node.setReadOnly(value: false, SaveToDb: true);
                break;

            case CswEnumNbtInspectionStatus.Overdue:
            case CswEnumNbtInspectionStatus.Pending:
                _toggleButtonVisibility(Finish, IsVisible: true, SaveToDb: true);
                _toggleButtonVisibility(SetPreferred, IsVisible: true, SaveToDb: true);
                _toggleButtonVisibility(Cancel, IsVisible: true, SaveToDb: true);
                Node.setReadOnly(value: false, SaveToDb: true);
                break;
            } // switch( Status.Value )

            CswNbtNode ParentNode = _CswNbtResources.Nodes.GetNode(this.Parent.RelatedNodeId);

            if (ParentNode != null && false == IsTemp)
            {
                ICswNbtPropertySetInspectionParent ParentAsParent = CswNbtPropSetCaster.AsPropertySetInspectionParent(ParentNode);
                bool IsDeficient = areMoreActionsRequired();  //case 25041

                String OKStatus = (ParentAsParent.Status.Value == CswEnumNbtInspectionTargetStatus.TargetStatusAsString(CswEnumNbtInspectionTargetStatus.TargetStatus.Not_Inspected) &&
                                   Status.Value == CswEnumNbtInspectionStatus.Pending || Status.Value == CswEnumNbtInspectionStatus.Overdue) ?
                                  CswEnumNbtInspectionTargetStatus.TargetStatusAsString(CswEnumNbtInspectionTargetStatus.TargetStatus.Not_Inspected) : CswEnumNbtInspectionTargetStatus.TargetStatusAsString(CswEnumNbtInspectionTargetStatus.TargetStatus.OK);
                ParentAsParent.Status.Value = IsDeficient ? CswEnumNbtInspectionTargetStatus.TargetStatusAsString(CswEnumNbtInspectionTargetStatus.TargetStatus.Deficient) : OKStatus;
                //Parent.LastInspectionDate.DateTimeValue = DateTime.Now;
                ParentNode.postChanges(false);
            } // if( ParentNode != null )
        }     // OnStatusPropChange()
 private void OnLinkPropChange( CswNbtNodeProp NodeProp, bool Creating )
 {
     if( AcquiredDate.DateTimeValue == DateTime.MinValue &&
         false == string.IsNullOrEmpty( Link.Href ) )
     {
         AcquiredDate.DateTimeValue = DateTime.Now;
     }
 }