private Dictionary <Guid, WZScenario> GetWizardScenarios()
            {
                Dictionary <Guid, WZScenario> result = new Dictionary <Guid, WZScenario>();

                foreach (PXDataRecord record in PXDatabase.SelectMulti(typeof(WZScenario),
                                                                       new PXDataField <WZScenario.scenarioID>(),
                                                                       new PXDataField <WZScenario.nodeID>(),
                                                                       new PXDataField <WZScenario.name>(),
                                                                       new PXDataField <WZScenario.rolename>(),
                                                                       new PXDataField <WZScenario.status>(),
                                                                       new PXDataField <WZScenario.scenarioOrder>()))
                {
                    WZScenario row = new WZScenario
                    {
                        ScenarioID    = (Guid)record.GetGuid(0),
                        NodeID        = (Guid)record.GetGuid(1),
                        Name          = record.GetString(2),
                        Rolename      = record.GetString(3),
                        Status        = record.GetString(4),
                        ScenarioOrder = record.GetInt32(5)
                    };
                    result.Add((Guid)row.ScenarioID, row);
                }
                result = result.OrderBy(x => x.Value.ScenarioOrder).ToDictionary(x => x.Key, x => x.Value);
                return(result);
            }
예제 #2
0
        protected virtual void WZScenario_RowUpdated(PXCache cache, PXRowUpdatedEventArgs e)
        {
            WZScenario scenario = e.Row as WZScenario;

            if (scenario != null && scenario.Scheduled != false)
            {
                if (scenario.ScheduleID == null)
                {
                    scenario.ScheduleID = Schedule_Header.Current.ScheduleID;
                    scenario.Scheduled  = true;
                }
                else
                {
                    WZScenario dbScenario = PXSelectReadonly <WZScenario,
                                                              Where <WZScenario.scenarioID, Equal <Required <WZScenario.scenarioID> > > >
                                            .Select(this, scenario.ScenarioID);

                    if (dbScenario.ScheduleID != null && dbScenario.ScheduleID != scenario.ScheduleID)
                    {
                        cache.RaiseExceptionHandling <WZScenario.scenarioID>(scenario, scenario.Name,
                                                                             new PXSetPropertyException(Messages.ScenarioAlreadyUsed, dbScenario.ScheduleID));
                    }
                }
            }
        }
예제 #3
0
        protected virtual void WZScenario_RowInserted(PXCache cache, PXRowInsertedEventArgs e)
        {
            WZScenario row = (WZScenario)e.Row;

            if (row != null && row.ScenarioID != null)
            {
                row = PXSelectReadonly <WZScenario,
                                        Where <WZScenario.scenarioID, Equal <Required <WZScenario.scenarioID> > > >
                      .Select(this, row.ScenarioID);

                if (row != null)
                {
                    if (row.ScheduleID != null)
                    {
                        cache.RaiseExceptionHandling <WZScenario.scenarioID>(row, row.ScenarioID,
                                                                             new PXSetPropertyException(Messages.ScenarioAlreadyUsed, row.ScheduleID));
                    }
                    Scenarios.Delete(row);
                    Scenarios.Update(row);
                }
                else
                {
                    row = (WZScenario)e.Row;
                    Scenarios.Delete(row);
                    cache.RaiseExceptionHandling <WZScenario.scenarioID>(row, row.ScenarioID, new PXSetPropertyException(Messages.ScenarioReferenceIsNotValid));
                }
            }
        }
        public virtual IEnumerable CompleteScenario(PXAdapter adapter)
        {
            WZTaskEntry graph    = PXGraph.CreateInstance <WZTaskEntry>();
            WZScenario  scenario = Scenario.Current;

            if (scenario != null && scenario.Status == WizardScenarioStatusesAttribute._ACTIVE)
            {
                graph.Scenario.Current = scenario;
                graph.completeScenarioWithoutRefresh.Press();
                PXSiteMapNode node = PXSiteMap.Provider.FindSiteMapNode(typeof(WizardNotActiveScenario));
                throw new PXRedirectToUrlException(@"~\Main.aspx?ScreenId=" + node.ScreenID + "&ScenarioID=" + scenario.ScenarioID + "$target=_top", PXBaseRedirectException.WindowMode.Same, node.Title);
            }

            return(adapter.Get());
        }
예제 #5
0
        public virtual IEnumerable CompleteScenario(PXAdapter adapter)
        {
            WZTaskEntry graph    = PXGraph.CreateInstance <WZTaskEntry>();
            WZScenario  scenario = Scenario.Current;

            if (scenario != null && scenario.Status == WizardScenarioStatusesAttribute._ACTIVE)
            {
                graph.Scenario.Current = scenario;
                graph.completeScenarioWithoutRefresh.Press();
                PXSiteMapNode node = PXSiteMap.Provider.FindSiteMapNode(typeof(WizardNotActiveScenario));
                throw new PXRedirectByScreenIDException(node.ScreenID, PXBaseRedirectException.WindowMode.Same, PXRedirectByScreenIDException.FramesetBehavior.Refresh, new { ScenarioID = scenario.ScenarioID });
            }

            return(adapter.Get());
        }