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; } }
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()
private void onAccountLockedPropChange(CswNbtNodeProp NodeProp, bool Creating) { if (CswEnumTristate.True != AccountLocked.Checked) { clearFailedLoginCount(); } }
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(); } }
public void OnTypePropChange(CswNbtNodeProp Prop, bool Creating) { if (Type.Value == TypeOptionView) { OutputFormat.Value = CswEnumNbtMailReportFormatOptions.Link.ToString(); } } // OnTypePropChange()
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."); } } }
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'."); } }
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); } }
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() ) { } }
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); }
private void onIsRecurringChange(CswNbtNodeProp NodeProp, bool Creating) { if (IsRecurring.wasAnySubFieldModified()) { _toggleProps(); } }
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(); }
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(); } } } } }
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(); } }
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
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; } }