Example #1
0
        /// <summary>
        /// After Save.
        /// </summary>
        /// <param name="newRecord">new record</param>
        /// <param name="success">success</param>
        /// <returns>true if save complete (if not overwritten true)</returns>
        protected override bool AfterSave(bool newRecord, bool success)
        {
            log.Fine("Success=" + success);
            if (success && newRecord)
            {
                //	save all nodes -- Creating new Workflow
                MWFNode[] nodes = GetNodesInOrder(0);
                for (int i = 0; i < nodes.Length; i++)
                {
                    nodes[i].Save(Get_Trx());
                }
            }

            if (newRecord)
            {
                int             AD_Role_ID = GetCtx().GetAD_Role_ID();
                MWorkflowAccess wa         = new MWorkflowAccess(this, AD_Role_ID);
                wa.Save();
            }
            //	Menu/Workflow
            else if (Is_ValueChanged("IsActive") || Is_ValueChanged("Name") ||
                     Is_ValueChanged("Description") || Is_ValueChanged("Help"))
            {
                MMenu[] menues = MMenu.Get(GetCtx(), "AD_Workflow_ID=" + GetAD_Workflow_ID());
                for (int i = 0; i < menues.Length; i++)
                {
                    menues[i].SetIsActive(IsActive());
                    menues[i].SetName(GetName());
                    menues[i].SetDescription(GetDescription());
                    menues[i].Save();
                }
                X_AD_WF_Node[] nodes = MWindow.GetWFNodes(GetCtx(), "AD_Workflow_ID=" + GetAD_Workflow_ID());
                for (int i = 0; i < nodes.Length; i++)
                {
                    bool changed = false;
                    if (nodes[i].IsActive() != IsActive())
                    {
                        nodes[i].SetIsActive(IsActive());
                        changed = true;
                    }
                    if (nodes[i].IsCentrallyMaintained())
                    {
                        nodes[i].SetName(GetName());
                        nodes[i].SetDescription(GetDescription());
                        nodes[i].SetHelp(GetHelp());
                        changed = true;
                    }
                    if (changed)
                    {
                        nodes[i].Save();
                    }
                }
            }

            return(success);
        }