update address standardization for cust_location changes
[freeside.git] / rt / docs / design_docs / realflow.txt
diff --git a/rt/docs/design_docs/realflow.txt b/rt/docs/design_docs/realflow.txt
deleted file mode 100644 (file)
index 3717e27..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-- I have a MonitoredQueue that sets tickets to "Monitored"
-  if its subject matches /monitored/.
-  
-- I want to have a kind of Ticket that are 'Monitored'.
-- I want all monitored tickets, when they are overdue for
-  14 days, to:
-    - send notification to manager
-    - mark as stalled
-- I want all monitored tickets, when they are overdue for
-  28 days, to:
-    - mark as rejected
-- I want to query all tickets that are monitored as such
-- I want to modify 14 => 15 and have it affect all existing
-  tickets that are monitored
-
-{
-- I want to add a new "overdue for 27 days, add a 'ultimatum'
-  correspondence to it" rule for all monitored tickets.
-- I want to add a new "overdue for 27 days, add a 'ultimatum'
-  correspondence to it" rule for all _new_ monitored tickets
-  without affecting existing ones.
-}
-
-- The user of OrderRequest queue needs to fill a numeric "CF",
-  called "Price".
-- On creation, it needs to create following approvals:
-    - "Manager" approval if CF.Price is > 1000
-    - "President" approval if CF.Price is > 2000
-- When all of "M", "P" are resolved (if any, or if there were none
-  to begin with), Create a new approval, "Finance".
-- If any approvals above is rejected, reject the original ticket.
-- If "Finance" is resolved, resolve original ticket.
-- If "Finance" is rejected, create an approval for "CEO".
-- If "CEO" is resolved, resolve the original ticket.
-- If "CEO" is rejected, reject the original ticket.
-
-[RuleAction CreateTicketWithRuleset]
-  -> ReleaseMyLockOnRuleset $ruleset
-  -> UnlessLockOnRuleset $ruleset
-     # i.e. if no active tickets still have a lock on it
-     -> ForceCreateTicketWithRuleset $ruleset
-
-[Queue OrderRequest]
-  -> Condition: OnCreate
-     Action: AddTicketRuleSet "PurchaseApproval"
-             # Triggers immediately
-
-[RuleSet: PurchaseApproval]
-  -> Condition: OnCreate 
-     Condition: CF.Price > 1000
-     Action: CreateTicketWithRuleset "ManagerApproval"
-  -> Condition: OnCreate 
-     Condition: CF.Price > 2000
-     Action: CreateTicketWithRuleset "PresidentApproval"
-  -> Condition: OnCreate 
-     Action: CreateTicketWithRuleset "FinanceApproval"
-  -> Condition: OnReject
-     Action: DeleteTree
-
-[RuleSet: ManagerApproval]
-  -> Condition: OnCreate
-     Action: Prohibit Ruleset "FinanceApproval"
-  -> Condition: OnResolve
-     Action: CreateTicketWithRuleset "FinanceApproval"
-  -> Condition: OnReject
-     Action: RejectTicket TOP
-
-[RuleSet: PresidentApproval]
-  -> Condition: OnCreate
-     Action: Prohibit CreateTicketWithRuleset "FinanceApproval"
-  -> Condition: OnResolve
-     Action: CreateTicketWithRuleset "FinanceApproval"
-  -> Condition: OnReject
-     Action: RejectTicket TOP
-
-[RuleSet: FinanceApproval]
-  -> Condition: OnCreate
-     Action: Prohibit RuleSet "CEOApproval"
-  -> Condition: OnResolve
-     Action: ResolveTicket TOP
-  -> Condition: OnReject
-     Action: CreateTicketWithRuleset "CEOApproval"
-
-[RuleSet: CEOApproval]
-  -> Condition: OnResolve
-     Action: ResolveTicket TOP
-  -> Condition: OnReject
-     Action: RejectTicket TOP
-
-
-
-Prohibit Ticket Operation:
-               Ruleset CEOApproval
-
-
-
-
-
-
-
-      ,--------.
-[TOP] --> [M] --> [F]
-    ` `-> [P] -'
-     `
-      `-> [X] --> [Y]
-  
-
-[TOP] => [Approval]
-            -> Queue: B
-              -> Rule: yyy
-            -> Workflow: W
-              -> Stage: Approval
-              -> Rule: xxx
-
-isa_ok( $Approval->Type, 'RT::Ticket' );
-is( $Approval->Workflow->Name, 'W' );
-is( $Approval->Stage->Name, 'Approval' );
-
-[Queue: A]
-  -> Workflow: W
-
-[Workflow: W]
-  -> Stage: TOP
-  -> Stage: Approval
-  -> Stage: SUCCESS
-  -> Stage: FAIL
-
-"RuleCollections"
-
-[Stage: TOP]
-  -> Rule: OnCreate RunStage Approval
-
-ok( TicketA->Rules->HasEntry($ApprovalRule) )
-ok( TicketB->Rules->HasEntry($ApprovalRule) )
-
-[Rule: Approval]
-  -> Rule: OnResolve RunStage SUCCESS
-  -> Rule: OnReject RunStage FAIL
-
-[Stage: SUCCESS]
-  -> Rule: OnCreate SetStatus('resolved') TOP
-
-[Stage: FAIL]
-  -> Rule: OnCreate SetStatus('rejected') TOP
-
-[Unassociated]
-  - Rule FOO: OnAnything {
-        CreateTicketIfNotBlocked StageFOO
-        AddLink DependedOnBy TOP to Stage1
-        AssignRule DoStage2 to Stage1
-        AssignRule DoStage3 to Stage1
-    }
-  - Rule BAR: OnAnything {
-        CreateTicketIfNotBlocked StageBAR
-        DoSomethingBizzare
-    }
-
-     ,==> [Stage0] ==>.
-    ,                  .
-[TOP] ==> [Stage1] ==> [Stage3]
-    `                  '
-     `==> [Stage2] ==>'
-
-OnTransaction:
-    $self->Ticket->Queues->Scrips->Apply
-
-OnTransaction:
-    $self->Ticket->Queues->Scrips->Apply
-                 ->Scrips->Apply
-
-OnTransaction:
-    $self->Ticket->Queues->Scrips->Apply
-                 ->Stages->Scrips->Apply
-
-[QueueX]
- - Rule:
-    OnCreate: 
-        RunRule FOO
-
-[QueueY]
- - Rule:
-    OnWhatever: 
-        RunRule FOO
-
-
-[TOP] => [Stage1] => [Stage2] => [END]
-               `- => [Stage3] => [END]
-                ` -> [Stage4]
-
-[Stages]
- ->