Esempio n. 1
0
 protected override bool onButtonClick(NbtButtonData ButtonData)
 {
     if (null != ButtonData.NodeTypeProp)
     {
         string OCPPropName = ButtonData.NodeTypeProp.getObjectClassPropName();
         switch (OCPPropName)
         {
         case PropertyName.Request:
             if (_CswNbtResources.Permit.can(CswEnumNbtActionName.Submit_Request))
             {
                 ButtonData.Action = CswEnumNbtButtonAction.request;
                 CswNbtActRequesting       RequestAct  = new CswNbtActRequesting(_CswNbtResources);
                 CswNbtObjClassRequestItem RequestItem = RequestAct.makeEnterprisePartRequestItem(this, ButtonData);
                 ButtonData.Data["titleText"]             = "Add to Cart: " + RequestItem.Type.Value;
                 ButtonData.Data["requestItemProps"]      = RequestAct.getRequestItemAddProps(RequestItem.Node);
                 ButtonData.Data["requestItemNodeTypeId"] = RequestItem.NodeTypeId;
             }
             else
             {
                 throw new CswDniException(CswEnumErrorType.Warning, "You do not have permission to the Submit Request action.", "You do not have permission to the Submit Request action.");
             }
             break;
         }
     }
     return(true);
 }
Esempio n. 2
0
        }//afterPopulateProps()

        protected override bool onButtonClick(NbtButtonData ButtonData)
        {
            if (null != ButtonData.NodeTypeProp)
            {
                //Remember: Save is an OCP too
                if (PropertyName.RunNow == ButtonData.NodeTypeProp.getObjectClassPropName())
                {
                    if (DueDateInterval.getStartDate() < DateTime.Now)  //if the button was clicked after the first due date
                    {
                        NextDueDate.DateTimeValue = DateTime.Now;
                        Node.postChanges(false);
                        ButtonData.Action = CswEnumNbtButtonAction.refresh;
                    }
                    else
                    {
                        _CswNbtResources.Messages.Add(new CswWebSvcReturnBase.ErrorMessage()
                        {
                            ShowError = true,
                            Type      = CswEnumErrorType.Warning,
                            Message   = "A mail report cannot be run before its first scheduled due date.",
                            Detail    = "Run now is invalid before initial due date."
                        });
                    }
                }
            }
            return(true);
        }
        protected override bool onButtonClick(NbtButtonData ButtonData)
        {
            bool Ret = false;

            if (null != ButtonData.NodeTypeProp)
            {
                //Remember: Save is an OCP too
                switch (ButtonData.NodeTypeProp.getObjectClassPropName())
                {
                case PropertyName.Fulfill:
                    switch (ButtonData.SelectedText)
                    {
                    case FulfillMenu.Cancel:
                        Status.Value        = Statuses.Cancelled;
                        Fulfill.State       = FulfillMenu.Cancel;
                        Fulfill.MenuOptions = "";
                        ButtonData.Action   = CswEnumNbtButtonAction.refresh;
                        break;

                    case FulfillMenu.Complete:
                        Status.Value        = Statuses.Completed;
                        Fulfill.State       = FulfillMenu.Complete;
                        Fulfill.MenuOptions = "";
                        ButtonData.Action   = CswEnumNbtButtonAction.refresh;
                        break;
                    }
                    break;
                }
                Ret = onPropertySetButtonClick(ButtonData);
                postChanges(ForceUpdate: false);
            }

            return(Ret);
        }
        /// <summary>
        /// Abstract override to be called on onButtonClick
        /// </summary>
        public override bool onPropertySetButtonClick(NbtButtonData ButtonData)
        {
            if (null != ButtonData.NodeTypeProp)
            {
                //Remember: Save is an OCP too
                switch (ButtonData.NodeTypeProp.getObjectClassPropName())
                {
                case PropertyName.Fulfill:
                    CswNbtObjClassContainer NodeAsContainer = null;
                    switch (ButtonData.SelectedText)
                    {
                    case FulfillMenu.Dispense:
                        NodeAsContainer = _CswNbtResources.Nodes.GetNode(Container.RelatedNodeId);
                        if (null != NodeAsContainer && null != NodeAsContainer.Dispense.NodeTypeProp)
                        {
                            NbtButtonData DispenseData = new NbtButtonData(NodeAsContainer.Dispense.NodeTypeProp);
                            NodeAsContainer.triggerOnButtonClick(DispenseData);
                            ButtonData.clone(DispenseData);
                        }
                        else
                        {
                            ButtonData.Data["containernodetypeid"]    = Container.TargetId;
                            ButtonData.Data["containerobjectclassid"] = Container.TargetId;
                            JObject InitialQuantity = null;
                            if (null != Size.RelatedNodeId && Int32.MinValue != Size.RelatedNodeId.PrimaryKey)
                            {
                                CswNbtObjClassSize NodeAsSize = _CswNbtResources.Nodes[Size.RelatedNodeId];
                                if (null != NodeAsSize)
                                {
                                    InitialQuantity = new JObject();
                                    NodeAsSize.InitialQuantity.ToJSON(InitialQuantity);
                                    ButtonData.Data["initialQuantity"] = InitialQuantity;
                                }
                            }
                            else if (false == Quantity.Empty)
                            {
                                InitialQuantity = new JObject();
                                Quantity.ToJSON(InitialQuantity);
                            }
                            if (null != InitialQuantity)
                            {
                                ButtonData.Data["initialQuantity"] = InitialQuantity;
                            }
                            ButtonData.Action = CswEnumNbtButtonAction.dispense;
                        }
                        break;
                    }     //switch( ButtonData.SelectedText )

                    _getNextStatus(ButtonData.SelectedText);
                    ButtonData.Data["requestitem"] = ButtonData.Data["requestitem"] ?? new JObject();
                    ButtonData.Data["requestitem"]["requestitemid"] = NodeId.ToString();
                    ButtonData.Data["requestitem"]["materialid"]    = (Material.RelatedNodeId ?? new CswPrimaryKey()).ToString();
                    ButtonData.Data["requestitem"]["containerid"]   = (Container.RelatedNodeId ?? new CswPrimaryKey()).ToString();
                    ButtonData.Data["requestitem"]["locationid"]    = (Location.SelectedNodeId ?? new CswPrimaryKey()).ToString();
                    break;     //case PropertyName.Fulfill:
                }
            }
            return(true);
        }
Esempio n. 5
0
        } //afterPopulateProps()

        protected override bool onButtonClick(NbtButtonData ButtonData)
        {
            if (null != ButtonData && null != ButtonData.NodeTypeProp)
            {
                /*Do Something*/
            }
            return(true);
        }
Esempio n. 6
0
        }//afterPopulateProps()

        /// <summary>
        ///
        /// </summary>
        public override bool onPropertySetButtonClick(NbtButtonData ButtonData)
        {
            if (null != ButtonData.NodeTypeProp)
            {
                //Remember: Save is an OCP too
                switch (ButtonData.NodeTypeProp.getObjectClassPropName())
                {
                case PropertyName.Fulfill:
                    //If we do this here, we'll override the Actions for other options managed by the Property Set
                    //ButtonData.Action = NbtButtonAction.nothing;
                    switch (ButtonData.SelectedText)
                    {
                    case FulfillMenu.Create:
                        ButtonData.Action = CswEnumNbtButtonAction.nothing;
                        if (PotentialMaterial().existsInDb(ForceRecalc: true))
                        {
                            ButtonData.Message = "The requested Material has already been created: " + PotentialMaterial().existingMaterial().Node.NodeLink;
                        }
                        else
                        {
                            CswNbtPropertySetMaterial NewMaterial = PotentialMaterial().commit();         //See Case 28310. We do not want to upversion this node. The Create Material Wizard will do that for us.
                            bool Success = null != NewMaterial;
                            if (Success)
                            {
                                ButtonData.Action      = CswEnumNbtButtonAction.creatematerial;
                                Material.RelatedNodeId = NewMaterial.NodeId;
                                Fulfill.State          = FulfillMenu.Create;

                                ButtonData.Data["state"] = new JObject();
                                ButtonData.Data["state"]["materialType"]         = new JObject();
                                ButtonData.Data["state"]["materialType"]["name"] = PotentialMaterial().NodeTypeName;
                                ButtonData.Data["state"]["materialType"]["val"]  = PotentialMaterial().NodeTypeId;
                                ButtonData.Data["state"]["materialId"]           = NewMaterial.NodeId.ToString();
                                ButtonData.Data["state"]["tradeName"]            = PotentialMaterial().TradeName;
                                ButtonData.Data["state"]["supplier"]             = new JObject();
                                ButtonData.Data["state"]["supplier"]["val"]      = PotentialMaterial().SupplierId.ToString();
                                ButtonData.Data["state"]["supplier"]["name"]     = PotentialMaterial().SupplierName;
                                ButtonData.Data["state"]["partNo"] = NewMaterialPartNo.Text;
                            }
                            else
                            {
                                ButtonData.Message = "The requested Material cannot not be created.";
                            }
                            ButtonData.Data["success"] = Success;
                        }
                        break;
                    }     //switch( ButtonData.SelectedText )

                    _getNextStatus(ButtonData.SelectedText);
                    ButtonData.Data["requestitem"] = ButtonData.Data["requestitem"] ?? new JObject();
                    ButtonData.Data["requestitem"]["requestitemid"] = NodeId.ToString();
                    ButtonData.Data["requestitem"]["materialid"]    = (Material.RelatedNodeId ?? new CswPrimaryKey()).ToString();
                    break;     //case PropertyName.Fulfill:
                }
            }
            return(true);
        }
Esempio n. 7
0
        protected override bool onButtonClick(NbtButtonData ButtonData)
        {
            bool Ret = false;

            if (null != ButtonData.NodeTypeProp)
            {
                Ret = onPropertySetButtonClick(ButtonData);
            }
            return(Ret);
        }//afterPopulateProps()
        }//afterPopulateProps()

        protected override bool onButtonClick( NbtButtonData ButtonData )
        {
            if( null != ButtonData && null != ButtonData.NodeTypeProp )
            {
                string OCPPropName = ButtonData.NodeTypeProp.getObjectClassPropName();
                //Remember: Save is an OCP too
                if( PropertyName.LoadUserContext == OCPPropName )
                {
                    ButtonData.Data["action"] = OCPPropName;

                    ButtonData.Data["type"] = "view"; //assume it's a view unless it's an action
                    CswEnumNbtActionName ActionName = CswNbtAction.ActionNameStringToEnum( Action.Text );
                    if( CswResources.UnknownEnum != ActionName )
                    {
                        if( null != _CswNbtResources.Actions[ActionName] )
                        {
                            CswNbtAction action = _CswNbtResources.Actions[ActionName];
                            ButtonData.Data["type"] = "action";
                            ButtonData.Data["actionname"] = action.Name.ToString();
                            ButtonData.Data["actionid"] = action.ActionId.ToString();
                            ButtonData.Data["actionurl"] = action.Url.ToString();
                        }
                    }
                    else
                    {
                        ButtonData.Data["selectedNodeId"] = SelectedNodeId.Text;
                        if( null != CurrentViewMode )
                        {
                            ButtonData.Data["viewmode"] = CurrentViewMode.Text;
                        }
                        //CswNbtViewId delimitedViewId = new CswNbtViewId( CswConvert.ToInt32( View.SelectedViewIds.ToString() ) );
                        CswNbtViewId delimitedViewId = View.ViewId;
                        if( null != delimitedViewId )
                        {
                            ButtonData.Data["viewid"] = delimitedViewId.ToString();
                        }
                        if( null != Author.RelatedNodeId )
                        {
                            if( _CswNbtResources.CurrentNbtUser.UserId != Author.RelatedNodeId )
                            {
                                ButtonData.Data["userid"] = Author.RelatedNodeId.ToString();
                                CswNbtObjClassUser userNode = _CswNbtResources.Nodes[Author.RelatedNodeId];
                                if( null != userNode )
                                {
                                    ButtonData.Data["username"] = userNode.Username;
                                }
                            }
                        }
                    }
                    ButtonData.Action = CswEnumNbtButtonAction.loadView;
                }
            }
            return true;
        }
Esempio n. 9
0
 protected override bool onButtonClick(NbtButtonData ButtonData)
 {
     if (null != ButtonData.NodeTypeProp)
     {
         if (PropertyName.BtnRun == ButtonData.NodeTypeProp.getObjectClassPropName())
         {
             ButtonData.Action      = CswEnumNbtButtonAction.popup;
             ButtonData.Data["url"] = ReportUrl;
         }
     }
     return(true);
 }
Esempio n. 10
0
 protected override bool onButtonClick( NbtButtonData ButtonData )
 {
     if( null != ButtonData.NodeTypeProp )
     {
         //Remember: Save is an OCP too
         if( PropertyName.Login == ButtonData.NodeTypeProp.getObjectClassPropName() )
         {
             ButtonData.Action = CswEnumNbtButtonAction.reauthenticate;
         }
     }
     return true;
 }
 protected override bool onButtonClick(NbtButtonData ButtonData)
 {
     if (null != ButtonData && null != ButtonData.NodeTypeProp)
     {
         string OCPPropName = ButtonData.NodeTypeProp.getObjectClassPropName();
         switch (OCPPropName)
         {
         case PropertyName.ViewCofA:
             getCofA(ButtonData);
             break;
         }
     }
     return(true);
 }
Esempio n. 12
0
        /// <summary>
        /// Abstract override to be called on onButtonClick
        /// </summary>
        public override bool onPropertySetButtonClick(NbtButtonData ButtonData)
        {
            if (null != ButtonData.NodeTypeProp)
            {
                //Remember: Save is an OCP too
                switch (ButtonData.NodeTypeProp.getObjectClassPropName())
                {
                case PropertyName.Fulfill:
                    CswNbtObjClassContainer NodeAsContainer = null;
                    switch (ButtonData.SelectedText)
                    {
                    case FulfillMenu.Dispose:
                        NodeAsContainer = _CswNbtResources.Nodes.GetNode(Container.RelatedNodeId);
                        if (null != NodeAsContainer)
                        {
                            NodeAsContainer.DisposeContainer();
                            NodeAsContainer.postChanges(true);
                            Status.Value = Statuses.Completed;
                        }
                        ButtonData.Action = CswEnumNbtButtonAction.refresh;
                        break;

                    case FulfillMenu.Move:
                        if (null != Container.RelatedNodeId)
                        {
                            NodeAsContainer = _CswNbtResources.Nodes.GetNode(Container.RelatedNodeId);
                            if (null != NodeAsContainer)
                            {
                                NodeAsContainer.Location.SelectedNodeId = Location.SelectedNodeId;
                                NodeAsContainer.Location.CachedNodeName = Location.CachedNodeName;
                                NodeAsContainer.Location.CachedPath     = Location.CachedPath;
                                NodeAsContainer.postChanges(false);
                                Status.Value      = Statuses.Completed;
                                ButtonData.Action = CswEnumNbtButtonAction.refresh;
                            }
                        }
                        break;
                    }     //switch( ButtonData.SelectedText )

                    _getNextStatus(ButtonData.SelectedText);

                    ButtonData.Data["requestitem"] = ButtonData.Data["requestitem"] ?? new JObject();
                    ButtonData.Data["requestitem"]["requestitemid"] = NodeId.ToString();
                    ButtonData.Data["requestitem"]["containerid"]   = (Container.RelatedNodeId ?? new CswPrimaryKey()).ToString();
                    ButtonData.Data["requestitem"]["locationid"]    = (Location.SelectedNodeId ?? new CswPrimaryKey()).ToString();
                    break;
                }//case PropertyName.Fulfill:
            }
            return(true);
        }
        /// <summary>
        /// Gets the url for the active C of A Document attached to this ReceiptLot node.
        /// </summary>
        /// <param name="ButtonData">Data required for the client to open the file</param>
        public void getCofA(NbtButtonData ButtonData)
        {
            if (_CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.ManufacturerLotInfo))
            {
                if (ButtonData.SelectedText.Equals(PropertyName.ViewCofA))
                {
                    CswNbtObjClassCofADocument CofADoc = CswNbtObjClassCofADocument.getActiveCofADocument(_CswNbtResources, NodeId);
                    if (null != CofADoc)
                    {
                        string url = "";
                        switch (CofADoc.FileType.Value)
                        {
                        case CswNbtPropertySetDocument.CswEnumDocumentFileTypes.File:
                            url = CswNbtNodePropBlob.getLink(CofADoc.File.JctNodePropId, CofADoc.NodeId);
                            break;

                        case CswNbtPropertySetDocument.CswEnumDocumentFileTypes.Link:
                            url = CswNbtNodePropLink.GetFullURL(CofADoc.Link.Prefix, CofADoc.Link.Href, CofADoc.Link.Suffix);
                            break;
                        }
                        ButtonData.Data["url"] = url;
                        ButtonData.Action      = CswEnumNbtButtonAction.popup;
                    }
                    else
                    {
                        ButtonData.Message = "There are no active C of A assigned to this " + NodeType.NodeTypeName;
                        ButtonData.Action  = CswEnumNbtButtonAction.nothing;
                    }
                }
                else
                {
                    CswNbtView AssignedCofADocsView = CswNbtObjClassCofADocument.getAssignedCofADocumentsView(_CswNbtResources, NodeId);
                    if (null != AssignedCofADocsView)
                    {
                        AssignedCofADocsView.SaveToCache(IncludeInQuickLaunch: false, UpdateCache: true);
                        ButtonData.Data["viewid"]     = AssignedCofADocsView.SessionViewId.ToString();
                        ButtonData.Data["title"]      = AssignedCofADocsView.ViewName;
                        ButtonData.Data["nodeid"]     = NodeId.ToString();
                        ButtonData.Data["nodetypeid"] = NodeTypeId.ToString();
                        ButtonData.Action             = CswEnumNbtButtonAction.griddialog;
                    }
                    else
                    {
                        ButtonData.Message = "Could not find the Assigned C of A prop";
                        ButtonData.Action  = CswEnumNbtButtonAction.nothing;
                    }
                }
            }
        }
Esempio n. 14
0
        protected override bool onButtonClick(NbtButtonData ButtonData)
        {
            if (null != ButtonData && null != ButtonData.NodeTypeProp)
            {
                if (PropertyName.ManageLocations == ButtonData.NodeTypeProp.getObjectClassPropName())
                {
                    ButtonData.Action = CswEnumNbtButtonAction.managelocations;

                    JObject ActionOptioinsJObj = new JObject();
                    ActionOptioinsJObj["ivgnodeid"]  = NodeId.ToString();
                    ButtonData.Data["ActionOptions"] = ActionOptioinsJObj;
                }//if clicked button is manage locations
            }
            return(true);
        }
Esempio n. 15
0
        /// <summary>
        /// After the Object Class Button Click Event is triggered, determine whether any properties were part of the request. If so, return the updated properties for the provided tabs, if any.
        /// </summary>
        private void _onAfterButtonClickSaveProps(string TabId, NbtButtonData ButtonData)
        {
            Int32   TabIdAsInt  = CswConvert.ToInt32(TabId);
            JObject SelectedTab = null;

            if (null != ButtonData.PropsToSave && ButtonData.PropsToSave.HasValues)
            {
                SelectedTab = CswConvert.ToJObject(ButtonData.PropsToSave[TabId]);
            }
            if (TabIdAsInt > 0 || (null != SelectedTab && SelectedTab.HasValues))
            {
                CswNbtSdTabsAndProps Sd = new CswNbtSdTabsAndProps(_CswNbtResources);
                ButtonData.PropsToReturn = Sd.getProps(NodeId.ToString(), null, TabId, NodeTypeId, null, null, ForceReadOnly: false);
            }
        }
Esempio n. 16
0
 private void _setCofAData( NbtButtonData ButtonData )
 {
     bool canAddCofA = false;
     CswNbtMetaDataObjectClass CofADocOC = _CswNbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.CofADocumentClass );
     if( _CswNbtResources.Modules.IsModuleEnabled( CswEnumNbtModuleName.ManufacturerLotInfo ) )
     {
         CswNbtMetaDataNodeType CofANT = CofADocOC.FirstNodeType;
         canAddCofA = _CswNbtResources.Permit.canNodeType( CswEnumNbtNodeTypePermission.Create, CofANT );
         if( canAddCofA )
         {
             CswNbtMetaDataObjectClass ReceiptLotOC = _CswNbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.ReceiptLotClass );
             ButtonData.Data["state"]["cofaDocTypeId"] = CofANT.NodeTypeId;
             ButtonData.Data["state"]["receiptLotTypeId"] = ReceiptLotOC.FirstNodeType.NodeTypeId;
         }
     }
     ButtonData.Data["state"]["canAddCofA"] = canAddCofA;
 }
Esempio n. 17
0
        /// <summary>
        /// Save any properties before the Object Class Button Click Event is triggered
        /// </summary>
        private void _onBeforeButtonClickSaveProps(string TabId, NbtButtonData ButtonData)
        {
            Int32   TabIdAsInt  = CswConvert.ToInt32(TabId);
            JObject SelectedTab = null;

            if (null != ButtonData.PropsToSave && ButtonData.PropsToSave.HasValues)
            {
                SelectedTab = CswConvert.ToJObject(ButtonData.PropsToSave[TabId]);
            }
            if (TabIdAsInt > 0 || (null != SelectedTab && SelectedTab.HasValues))
            {
                if (canSave(TabId))
                {
                    CswNbtSdTabsAndProps Sd = new CswNbtSdTabsAndProps(_CswNbtResources);
                    ButtonData.Action = CswEnumNbtButtonAction.refresh;
                    Sd.saveProps(this.NodeId, TabIdAsInt, SelectedTab, this.NodeTypeId, null, false);
                }
            }
        }
Esempio n. 18
0
        } //afterPopulateProps()

        protected override bool onButtonClick(NbtButtonData ButtonData)
        {
            if (null != ButtonData && null != ButtonData.NodeTypeProp)
            {
                string OCPPropName = ButtonData.NodeTypeProp.getObjectClassPropName();
                switch (OCPPropName)
                {
                case PropertyName.ViewNodesButton:
                    CswNbtView DefaultView = RelationalNodeType.CreateDefaultView(includeDefaultFilters: true);
                    DefaultView.ViewName = NodeTypeName.Text + " Default View";
                    DefaultView.SaveToCache(IncludeInQuickLaunch: true);

                    ButtonData.Action           = CswEnumNbtButtonAction.loadView;
                    ButtonData.Data["viewid"]   = DefaultView.SessionViewId.ToString();
                    ButtonData.Data["viewmode"] = DefaultView.ViewMode.ToString();
                    ButtonData.Data["type"]     = "view";
                    break;
                }
            }
            return(true);
        }
        protected override bool onButtonClick( NbtButtonData ButtonData )
        {
            bool HasPermission = true;
            if( null != ButtonData.NodeTypeProp )
            {
                HasPermission = false;
                string OCPPropName = ButtonData.NodeTypeProp.getObjectClassPropName();
                switch( OCPPropName )
                {
                    case PropertyName.OpenFile:
                        HasPermission = true;
                        string url = "";
                        if( FileType.Value.Equals( CswEnumDocumentFileTypes.File ) )
                        {
                            url = File.Href;
                        }
                        else if( FileType.Value.Equals( CswEnumDocumentFileTypes.Link ) )
                        {
                            url = Link.GetFullURL();
                        }
                        else if( FileType.Value.Equals( CswNbtObjClassSDSDocument.CswEnumDocumentFileTypes.ChemWatch ) )
                        {
                            if( CswEnumNbtObjectClass.SDSDocumentClass == Node.ObjClass.ObjectClass.ObjectClass )
                            {
                                CswNbtObjClassSDSDocument SDSDocNode = Node;
                                if( null != SDSDocNode.ChemWatch && false == string.IsNullOrEmpty( SDSDocNode.ChemWatch.Text ) )
                                {
                                    url = "Services/ChemWatch/GetSDSDocument?filename=" + SDSDocNode.ChemWatch.Text;
                                }
                            }
                        }

                        ButtonData.Data["url"] = url;
                        ButtonData.Action = CswEnumNbtButtonAction.popup;
                        break;
                }
            }
            return HasPermission;
        }
Esempio n. 20
0
 public void clone(NbtButtonData DataToCopy)
 {
     if (null != DataToCopy)
     {
         if (null != DataToCopy.Action)
         {
             Action = DataToCopy.Action;
         }
         if (null != DataToCopy.SelectedText)
         {
             SelectedText = DataToCopy.SelectedText;
         }
         if (null != DataToCopy.Data)
         {
             Data = DataToCopy.Data;
         }
         if (null != DataToCopy.Message)
         {
             Message = DataToCopy.Message;
         }
     }
 }
 /// <summary>
 /// Button click event for derived classes to implement
 /// </summary>
 public virtual bool onPropertySetButtonClick( NbtButtonData ButtonData ) { return true; }
Esempio n. 22
0
 public override void onReceiveButtonClick( NbtButtonData ButtonData )
 {
     ButtonData.Data["state"]["canAddSDS"] = false;
 }
Esempio n. 23
0
 /// <summary>
 /// ObjectClass-specific logic to execute after clicking an object-class button (including the Save button)
 /// </summary>
 protected virtual bool onButtonClick(NbtButtonData ButtonData)
 {
     return(true);
 }
Esempio n. 24
0
        public bool triggerOnButtonClick(NbtButtonData ButtonData)
        {
            bool Ret = false;

            //1: We have Button Data
            if (null != ButtonData)
            {
                //2: Before the Button Click, Save the Node if any tabs and properties have been provided
                Collection <Int32> TabIds = new Collection <int>();
                if (null != ButtonData.TabIds)
                {
                    TabIds = ButtonData.TabIds.ToIntCollection(ExcludeMinVal: true, ExcludeDuplicates: true);
                }

                if (TabIds.Count > 0)
                {
                    foreach (Int32 TabId in TabIds)
                    {
                        _onBeforeButtonClickSaveProps(CswConvert.ToString(TabId), ButtonData);
                    }
                }
                else
                {
                    if (_CswNbtResources.EditMode == CswEnumNbtNodeEditMode.Add)
                    {
                        //Client-side, we are defining a tabid as EditMode + '_tab'. This isn't great, but it's what we've got right now.
                        _onBeforeButtonClickSaveProps(CswEnumNbtNodeEditMode.Add + "_tab", ButtonData);
                    }
                }

                //3: If we're adding, we're always refreshing on add as the default option
                if (_CswNbtResources.EditMode == CswEnumNbtNodeEditMode.Add)
                {
                    ButtonData.Action = CswEnumNbtButtonAction.refreshonadd;
                }

                //4: If this is the Save property, we're done; else execute the click event
                if (null != ButtonData.NodeTypeProp && ButtonData.NodeTypeProp.IsSaveProp)
                {
                    Ret = true;
                }
                else
                {
                    Ret = onButtonClick(ButtonData);
                }

                //5: If we had tabs or props coming in, we should get the current values to send back (they probably changed after the button click)
                if (TabIds.Count > 0)
                {
                    foreach (Int32 TabId in TabIds)
                    {
                        _onAfterButtonClickSaveProps(CswConvert.ToString(TabId), ButtonData);
                    }
                    if (ButtonData.NodeIds.Count > 1)
                    {
                        Collection <CswPrimaryKey> MultiNodePks = new Collection <CswPrimaryKey>();
                        foreach (string CopyToNodeId in ButtonData.NodeIds)
                        {
                            CswPrimaryKey MultiNodePk = CswConvert.ToPrimaryKey(CopyToNodeId);
                            if (null != MultiNodePk && MultiNodePk != NodeId)
                            {
                                MultiNodePks.Add(MultiNodePk);
                            }
                        }
                        if (ButtonData.NodeIds.Count >= CswNbtBatchManager.getBatchThreshold(_CswNbtResources))
                        {
                            if (ButtonData.PropIds.Count > 0)
                            {
                                Collection <Int32> NodeTypePropIds = new Collection <Int32>();
                                foreach (string PropIdAttrStr in ButtonData.PropIds)
                                {
                                    CswPropIdAttr PropIdAttr = new CswPropIdAttr(PropIdAttrStr);
                                    NodeTypePropIds.Add(PropIdAttr.NodeTypePropId);
                                }
                                CswNbtBatchOpMultiEdit op    = new CswNbtBatchOpMultiEdit(_CswNbtResources);
                                CswNbtObjClassBatchOp  Batch = op.makeBatchOp(Node, MultiNodePks, NodeTypePropIds);
                                ButtonData.Action        = CswEnumNbtButtonAction.batchop;
                                ButtonData.Data["batch"] = Batch.Node.NodeLink;
                            }
                            if (ButtonData.MultiClick && null != ButtonData.NodeTypeProp)
                            {
                                CswNbtBatchOpMultiButtonClick op    = new CswNbtBatchOpMultiButtonClick(_CswNbtResources);
                                CswNbtObjClassBatchOp         Batch = op.makeBatchOp(MultiNodePks, ButtonData.NodeTypeProp.PropId);
                                ButtonData.Action        = CswEnumNbtButtonAction.batchop;
                                ButtonData.Data["batch"] = Batch.Node.NodeLink;
                            }
                        }
                        else
                        {
                            if (ButtonData.PropIds.Count > 0)
                            {
                                CswNbtSdTabsAndProps Sd = new CswNbtSdTabsAndProps(_CswNbtResources);
                                Sd.copyPropValues(Node, ButtonData.NodeIds, ButtonData.PropIds);
                            }
                            if (ButtonData.MultiClick)
                            {
                                foreach (CswPrimaryKey MultiNodeId in MultiNodePks)
                                {
                                    CswNbtNode MultiNode = _CswNbtResources.Nodes[MultiNodeId];
                                    if (null != MultiNode)
                                    {
                                        MultiNode.ObjClass.onButtonClick(ButtonData);
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    if (_CswNbtResources.EditMode == CswEnumNbtNodeEditMode.Add)
                    {
                        _onAfterButtonClickSaveProps(CswEnumNbtNodeEditMode.Add + "_tab", ButtonData);
                    }
                }
            }
            return(Ret);
        }
Esempio n. 25
0
        }         //afterPopulateProps()

        public override bool onPropertySetButtonClick(NbtButtonData ButtonData)
        {
            if (null != ButtonData && null != ButtonData.NodeTypeProp) /*Do Something*/ } {
Esempio n. 26
0
        } //afterPopulateProps()

        public override bool onPropertySetButtonClick(NbtButtonData ButtonData)
        {
            if (null != ButtonData && null != ButtonData.NodeTypeProp)
            {
                switch (ButtonData.NodeTypeProp.getObjectClassPropName())
                {
                case PropertyName.Finish:
                    if (false == _CswNbtResources.IsSystemUser)
                    {
                        InspectionDate.DateTimeValue = DateTime.Now;
                        Inspector.RelatedNodeId      = _CswNbtResources.CurrentNbtUser.UserId;
                    }
                    if (_InspectionState.AllAnswered)
                    {
                        if (_InspectionState.Deficient)
                        {
                            ButtonData.Message = "Inspection is deficient and requires further action.";
                            this.Status.Value  = CswEnumNbtInspectionStatus.ActionRequired;
                        }
                        else
                        {
                            string StatusValue = _InspectionState.AllAnsweredInTime ? CswEnumNbtInspectionStatus.Completed : CswEnumNbtInspectionStatus.CompletedLate;
                            ButtonData.Message = "Inspection marked " + StatusValue + ".";
                            this.Status.Value  = StatusValue;
                            ButtonData.Action  = CswEnumNbtButtonAction.refresh;
                        }
                    }     // if( _allAnswered )
                    else
                    {
                        ButtonData.Message =
                            "Inspection can not be finished until all questions are answered.  Questions remaining: " +
                            _InspectionState.UnAnsweredQuestions.ToString();
                    }
                    break;

                case PropertyName.Cancel:
                    ButtonData.Message = "Inspection has been cancelled.";
                    this.Status.Value  = CswEnumNbtInspectionStatus.Cancelled;
                    ButtonData.Action  = CswEnumNbtButtonAction.refresh;
                    break;

                case PropertyName.SetPreferred:
                    CswNbtPropEnmrtrFiltered QuestionsFlt  = Node.Properties[(CswEnumNbtFieldType)CswEnumNbtFieldType.Question];
                    int NumOfQuestionsSetToPreferredAnswer = 0;
                    foreach (CswNbtNodePropWrapper PropWrapper in QuestionsFlt)
                    {
                        CswNbtNodePropQuestion QuestionProp = PropWrapper;      // don't refactor this into the foreach.  it doesn't work. case 28300.
                        if (string.IsNullOrEmpty(QuestionProp.Answer.Trim()))
                        {
                            QuestionProp.Answer = QuestionProp.PreferredAnswer;
                            NumOfQuestionsSetToPreferredAnswer++;
                        }
                    }
                    ButtonData.Message = NumOfQuestionsSetToPreferredAnswer + " unanswered questions have been set to their preferred answer.";
                    _toggleButtonVisibility(SetPreferred, IsVisible: false, SaveToDb: true);
                    ButtonData.Action = CswEnumNbtButtonAction.refresh;
                    break;

                case CswNbtObjClass.PropertyName.Save:
                    break;
                }
                this.postChanges(false);
            } // if( null != NodeTypeProp )
            return(true);
        }
Esempio n. 27
0
 /// <summary>
 /// ObjectClass-specific data for Receive button click
 /// </summary>
 public abstract void onReceiveButtonClick( NbtButtonData ButtonData );
Esempio n. 28
0
        protected override bool onButtonClick( NbtButtonData ButtonData )
        {
            if( null != ButtonData.NodeTypeProp )
            {
                bool HasPermission = false;
                string OCPPropName = ButtonData.NodeTypeProp.getObjectClassPropName();
                switch( OCPPropName )
                {
                    case PropertyName.Request:
                        if( _CswNbtResources.Permit.can( CswEnumNbtActionName.Submit_Request ) )
                        {
                            // Case CIS-52280
                            if( Obsolete.Checked == CswEnumTristate.True )
                            {
                                throw new CswDniException( CswEnumErrorType.Warning, "Can't request Material " + TradeName + " because it is obsolete.", "Material is obsolete" );
                            }

                            HasPermission = true;
                            CswNbtActRequesting RequestAct = new CswNbtActRequesting( _CswNbtResources );

                            CswNbtObjClassRequestItem RequestItem = RequestAct.makeMaterialRequestItem( this, ButtonData );

                            ButtonData.Data["requestaction"] = ButtonData.SelectedText;
                            //ButtonData.Data["requestaction"] = OCPPropName;
                            //Case 31298: Default Option Text "Request" != "Request By Bulk"
                            if( ButtonData.SelectedText == "Request" )
                            {
                                ButtonData.SelectedText = CswEnumRequestOption.Bulk;
                            }
                            ButtonData.Data["titleText"] = ButtonData.SelectedText + " for " + TradeName.Text;
                            ButtonData.Data["requestItemProps"] = RequestAct.getRequestItemAddProps( RequestItem.Node );
                            ButtonData.Data["requestItemNodeTypeId"] = RequestItem.NodeTypeId;
                            ButtonData.Data["relatednodeid"] = NodeId.ToString();
                            ButtonData.Action = CswEnumNbtButtonAction.request;
                        }
                        break;
                    case PropertyName.Receive:
                        if( _CswNbtResources.Permit.can( CswEnumNbtActionName.Receiving ) )
                        {
                            // Case CIS-52280
                            if( Obsolete.Checked == CswEnumTristate.True )
                            {
                                throw new CswDniException( CswEnumErrorType.Warning, "Can't receive Material " + TradeName + " because it is obsolete.", "Material is obsolete" );
                            }

                            HasPermission = true;
                            CswNbtActReceiving Act = new CswNbtActReceiving( _CswNbtResources, NodeId );
                            _CswNbtResources.setAuditActionContext( CswEnumNbtActionName.Receiving );

                            Action<CswNbtNode> After = delegate( CswNbtNode NewNode )
                                {
                                    CswNbtObjClassContainer newContainer = NewNode;
                                    //Case 29436
                                    if( newContainer.isLocationInAccessibleInventoryGroup( _CswNbtResources.CurrentNbtUser.DefaultLocationId ) )
                                    {
                                        newContainer.Location.SelectedNodeId = _CswNbtResources.CurrentNbtUser.DefaultLocationId;
                                    }
                                    newContainer.Owner.RelatedNodeId = _CswNbtResources.CurrentNbtUser.UserId;
                                    DateTime ExpirationDate = getDefaultExpirationDate( DateTime.Now );
                                    if( DateTime.MinValue != ExpirationDate )
                                    {
                                        newContainer.ExpirationDate.DateTimeValue = ExpirationDate;
                                    }
                                    //Container.postChanges( false );
                                };
                            CswNbtObjClassContainer Container = Act.makeContainer( After );

                            ButtonData.Data["state"] = new JObject();
                            ButtonData.Data["state"]["materialId"] = NodeId.ToString();
                            ButtonData.Data["state"]["materialNodeTypeId"] = NodeTypeId;
                            ButtonData.Data["state"]["tradeName"] = TradeName.Text;
                            ButtonData.Data["state"]["nodeName"] = NodeName;

                            Int32 ContainerLimit = CswConvert.ToInt32( _CswNbtResources.ConfigVbls.getConfigVariableValue( CswEnumNbtConfigurationVariables.container_receipt_limit.ToString() ) );
                            ButtonData.Data["state"]["containerlimit"] = ContainerLimit;
                            ButtonData.Data["state"]["containerNodeId"] = Container.NodeId.ToString();
                            ButtonData.Data["state"]["containerNodeTypeId"] = Container.NodeTypeId;
                            bool customBarcodes = CswConvert.ToBoolean( _CswNbtResources.ConfigVbls.getConfigVariableValue( CswEnumNbtConfigurationVariables.custom_barcodes.ToString() ) );
                            ButtonData.Data["state"]["customBarcodes"] = customBarcodes;
                            ButtonData.Data["state"]["nodetypename"] = this.NodeType.NodeTypeName;
                            ButtonData.Data["state"]["containerAddLayout"] = Act.getContainerAddProps( Container );

                            onReceiveButtonClick( ButtonData );
                            _setCofAData( ButtonData );
                            ButtonData.Action = CswEnumNbtButtonAction.receive;
                        }
                        break;
                    case CswNbtObjClass.PropertyName.Save:
                        HasPermission = true;
                        break;
                }
                HasPermission = HasPermission || onPropertySetButtonClick( ButtonData );
                if( false == HasPermission )
                {
                    throw new CswDniException( CswEnumErrorType.Warning, "You do not have permission to the " + OCPPropName + " action.", "You do not have permission to the " + OCPPropName + " action." );
                }
            }

            return true;
        }
        }//afterPopulateProps()

        /// <summary>
        ///
        /// </summary>
        public override bool onPropertySetButtonClick(NbtButtonData ButtonData)
        {
            if (null != ButtonData.NodeTypeProp)
            {
                //Remember: Save is an OCP too
                switch (ButtonData.NodeTypeProp.getObjectClassPropName())
                {
                case PropertyName.Fulfill:
                    switch (ButtonData.SelectedText)
                    {
                    case FulfillMenu.Order:
                        ButtonData.Action         = CswEnumNbtButtonAction.editprop;
                        ButtonData.Data["nodeid"] = NodeId.ToString();
                        CswPropIdAttr OrdIdAttr = new CswPropIdAttr(Node, ExternalOrderNumber.NodeTypeProp);
                        ButtonData.Data["propidattr"] = OrdIdAttr.ToString();
                        ButtonData.Data["title"]      = "Enter the External Order Number";
                        break;

                    case FulfillMenu.Receive:
                        CswNbtPropertySetMaterial NodeAsMaterial = _CswNbtResources.Nodes.GetNode(Material.RelatedNodeId);
                        if (null != NodeAsMaterial)
                        {
                            if (null != NodeAsMaterial.Receive.NodeTypeProp)
                            {
                                NbtButtonData ReceiveData = new NbtButtonData(NodeAsMaterial.Receive.NodeTypeProp);
                                NodeAsMaterial.triggerOnButtonClick(ReceiveData);
                                ButtonData.clone(ReceiveData);
                                if (_CswNbtResources.Modules.IsModuleEnabled(CswEnumNbtModuleName.SDS))
                                {
                                    CswNbtMetaDataObjectClass SDSDocOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.SDSDocumentClass);
                                    Int32 SDSNodeTypeId = SDSDocOC.FirstNodeType.NodeTypeId;
                                    if (Int32.MinValue != SDSNodeTypeId)
                                    {
                                        ButtonData.Data["documenttypeid"] = SDSNodeTypeId;
                                    }
                                }
                            }
                        }
                        break;

                    case FulfillMenu.Dispense:
                        JObject InitialQuantity = null;
                        if (false == Quantity.Empty)
                        {
                            InitialQuantity = new JObject();
                            Quantity.ToJSON(InitialQuantity);
                        }
                        if (null != InitialQuantity)
                        {
                            ButtonData.Data["initialQuantity"] = InitialQuantity;
                        }
                        string Title = "Fulfill Request for " + Quantity.Gestalt + " of " + Material.Gestalt;
                        if (TotalDispensed.Quantity > 0)
                        {
                            Title += " (" + TotalDispensed.Gestalt + ") dispensed.";
                        }
                        ButtonData.Data["title"] = Title;
                        ButtonData.Action        = CswEnumNbtButtonAction.dispense;
                        break;

                    case FulfillMenu.Move:
                        ButtonData.Data["title"]    = "Fulfill Request for " + Count.Value + " x " + Size.Gestalt + " of " + Material.Gestalt;
                        ButtonData.Data["sizeid"]   = Size.RelatedNodeId.ToString();
                        ButtonData.Data["location"] = Location.Gestalt;
                        ButtonData.Action           = CswEnumNbtButtonAction.move;
                        break;
                    }     //switch( ButtonData.SelectedText )

                    _getNextStatus(ButtonData.SelectedText);
                    ButtonData.Data["requestitem"] = ButtonData.Data["requestitem"] ?? new JObject();
                    ButtonData.Data["requestitem"]["requestMode"]      = Type.Value.ToLower();
                    ButtonData.Data["requestitem"]["requestitemid"]    = NodeId.ToString();
                    ButtonData.Data["requestitem"]["inventorygroupid"] = (InventoryGroup.RelatedNodeId ?? new CswPrimaryKey()).ToString();
                    ButtonData.Data["requestitem"]["materialid"]       = (Material.RelatedNodeId ?? new CswPrimaryKey()).ToString();
                    ButtonData.Data["requestitem"]["locationid"]       = (Location.SelectedNodeId ?? new CswPrimaryKey()).ToString();
                    break;     //case PropertyName.Fulfill:
                }
            }
            return(true);
        }
 /// <summary>
 /// Button click event for derived classes to implement
 /// </summary>
 public abstract bool onPropertySetButtonClick(NbtButtonData ButtonData);