starting to work...
[freeside.git] / rt / docs / design_docs / ruleset-workflow.txt
diff --git a/rt/docs/design_docs/ruleset-workflow.txt b/rt/docs/design_docs/ruleset-workflow.txt
deleted file mode 100644 (file)
index f19dbd7..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-# For an online version, see http://wiki.bestpractical.com/?RulesetWorkflow
-
-_*This is a design document for a work in progress.
-It describes features that do not exist today and may never exist*_
-
-== Text Description
-
-* The user of PurchaseOrder queue fill in a numeric "CF", called "Price".
-* On creation, it needs to create following approvals:
-** "ManagerApproval" if CF.Price is > 1000
-** "PresidentApproval" if CF.Price is > 2000
-* When all of "M", "P" are resolved (or if there were none to begin with), Create "FinanceApproval".
-* If any approvals above is rejected, reject the original ticket.
-* If "FinanceApproval" is resolved, resolve original ticket.
-* If "FinanceApproval" is rejected, create an approval for "CEOApproval".
-* If "CEOApproval" is resolved, resolve the original ticket.
-* If "CEOApproval" is rejected, reject the original ticket.
-
-== ASCII Diagram
-
-       ,----------.      ,---------------------->[DONE]
-       |           \    /                           ^
- [TOP]-+-?---->[M]---->[F]                          |
-       |        |  /    \                           |
-       `-?->[P]-+-'      `-(!)->[C]-----------------'
-             |  |                |
-             |  |                `-(!)---------->[FAIL]
-             |  |                                   ^
-             `-(!)----------------------------------'
-
-== Objects
-
-Note that "Scrips" are now called "Rules".
-
-=== RuleAction "AquireMyLocks"
-
-  FOREACH $Scrip IN $TicketObj->Scrips
-    WHERE $Scrip.Action.Type == "TryCreateTicketWithRuleset"
-       DO LockRuleset $Scrip.Action.Argument
-
-=== RuleAction "TryCreateTicketWithRuleset"
-
-  DO ReleaseMyLockOnRuleset $Argument
-  UNLESS RulesetLocked $Argument
-      DO CreateTicketWithRuleset $Argument
-
-=== RuleAction "CreateTicketWithRuleset"
-
-  GIVEN $Ticket AS CreateTicket(@OtherArguments)
-     DO SetTicketRuleSet $Argument
-     DO RunTicketRuleSet $Argument
-  
-=== GlobalRule "AquireLocks"
-
-* AppliesTo: All Objects
-* Condition: OnCreate
-* Action: AquireMyLocks
-
-=== Queue "PurchaseOrder"
-
-* Rule:
-** Condition: OnCreate
-** Action: SetTicketRuleSet "PurchaseFlow"
-** Action: RunTicketRuleSet "PurchaseFlow"
-
-=== RuleSet "PurchaseFlow"
-
-* Rule (implicitly run by AcquireMyLocks):
-** Condition: OnCreate
-** Action: LockRuleSet "ManagerApproval"
-** Action: LockRuleSet "PresidentApproval"
-** Action: LockRuleSet "FinanceApproval"
-
-* Rule:
-** Condition: OnCreate 
-** Condition: CF.Price > 1000
-** Action: TryCreateTicketWithRuleset "ManagerApproval"
-
-* Rule:
-** Condition: OnCreate 
-** Condition: CF.Price > 2000
-** Action: TryCreateTicketWithRuleset "PresidentApproval"
-
-* Rule:
-** Condition: OnCreate 
-** Condition: "Finance" is not blocked
-** Action: TryCreateTicketWithRuleset "FinanceApproval"
-
-* Rule:
-** Condition: OnReject
-** Action: DeleteTree
-
-=== RuleSet: "ManagerApproval"
-
-* Rule (implicitly run by AcquireMyLocks):
-** Condition: OnCreate
-** Action: LockRuleSet "FinanceApproval"
-
-* Rule:
-** Condition: OnResolve
-** Action: TryCreateTicketWithRuleset "FinanceApproval"
-
-* Rule:
-** Condition: OnReject
-** Action: RejectTicket "PurchaseFlow"
-
-=== RuleSet: "PresidentApproval"
-
-* Rule (implicitly run by AcquireMyLocks):
-** Condition: OnCreate
-** Action: LockRuleSet "FinanceApproval"
-
-* Rule:
-** Condition: OnResolve
-** Action: TryCreateTicketWithRuleset "FinanceApproval"
-
-* Rule:
-** Condition: OnReject
-** Action: RejectTicket "PurchaseFlow"
-
-=== RuleSet: "FinanceApproval"
-
-* Rule:
-** Condition: OnResolve
-** Action: ResolveTicket "PurchaseFlow"
-
-* Rule:
-** Condition: OnReject
-** Action: ForceCreateTicketWithRuleset "CEOApproval"
-
-=== RuleSet: "CEOApproval"
-
-* Rule:
-** Condition: OnResolve
-** Action: ResolveTicket "PurchaseFlow"
-
-* Rule:
-** Condition: OnReject
-** Action: RejectTicket "PurchaseFlow"
-
-### FNORD FNORD FNORD FNORD FNORD FNORD FNORD FNORD FNORD ###
-
-== Another Text Description
-
-* 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.