Changeset - 1bb129b4875b
[Not reviewed]
0 1 0
Bradley Kuhn (bkuhn) - 8 years ago 2016-08-30 18:22:54
bkuhn@ebb.org
Wordsmith,grammar, and formatting changes.

No substantive change here, just writing style, grammar, and formatting
changes.
1 file changed with 8 insertions and 6 deletions:
0 comments (0 inline, 0 general)
Reimbursements/Requirements.mdwn
Show inline comments
...
 
@@ -48,25 +48,25 @@ For each question, the administrator can define any number of conditions to
 
check against the requestor's answer.  When a requestor submits an answer that does
 
not comply with all of the conditions, the answer is flagged in the interface
 
as making the expense non-reimuburseable.  The first release must support the
 
following conditions:
 

	
 
* Boolean: is yes, or is no
 
* Selection: the selected value is in a specific subset of values
 
* Date: the value is N days before and/or after today or a date in another answer
 

	
 
Using these same conditions, the administrator can define questions that are
 
conditional on other questions' answers.  These questions are only presented
 
to the requestors when they submit an answer that meets the specified conditions.
 
For illustration purposes, the common deployment is expected to have
 
For illustration purposes, the canonical deployment will have
 
relatively few unconditional questions about each expense (type of expense,
 
receipt, amount), and then a series of conditional questions based on those
 
answers (e.g., follow-up questions specific to airfare expenses,
 
accommodations expenses, etc.).
 

	
 
### Requestor workflow
 

	
 
Requestors can log in and see the status of all their requests.  They can also
 
create a new request, which starts either the Pre-Approval or the In Progress
 
state.
 

	
 
When they view a report, it shows the questions and answers about the entire
...
 
@@ -89,39 +89,40 @@ follow-up questions as necessary based on those answers.
 
When an In Progress report has at least one expense associated with it, and
 
all questions have been answered, the requestor may submit the request for
 
approval.  If any of the answers do not meet the administrator's conditions
 
for payment, the requestor may still submit the request, and provide an
 
explanation for why the request should be paid (e.g., because it was
 
approved in advance).  Once the request is submitted, it moves to the
 
Submitted state.
 

	
 
### Bookkeeper workflow
 

	
 
Bookkeepers can log into the system and see all requests.
 

	
 
When bookkeepers reviews a Submitted report, they can change the report's
 
When bookkeepers review a Submitted report, they can change the report's
 
state, and include a note explaining why the report was moved to that state
 
(e.g., moved back to In Progress because a specific receipt was insufficient
 
documentation).  When they do this, the system sends e-mail to the requestor
 
letting them know about the change, including the rationale provided by the
 
bookkeeper.
 

	
 
The bookkeeper can export any request to the books.  The first release of the
 
software will simply provide an archive that includes all of the request's
 
supporting documentation, plus a `.ledger` file with entries for each
 
expense.  However, note that when building this feature in the code and UI,
 
it should be relatively generic.  Exporting needs to be abstract enough that
 
it's simple to integrate with other accounting systems.  Even the mechanics
 
may be different; for example, an SQLedger exporter may add entries to the
 
system directly, rather than providing the bookkeeper with a file download.
 
it should be relatively generic.  Exporting should remain abstract enough
 
that integration with other accounting systems remains simple and
 
straightforward.  Note that even the mechanics could be different; for
 
example, an SQLedger exporter may add entries to the system directly, rather
 
than providing the bookkeeper with a file download.
 

	
 
## Requirements potentially for first release
 

	
 
These are features that we would like the system to have, and it may make
 
sense to make them requirements of the first release depending on how it's
 
built.
 

	
 
* CiviCRM integration: Many NPOs are already using CiviCRM.  CiviCRM
 
  integration would provide a familiar interface to users, and simplify
 
  system administration for the organization.  It may be possible to build
 
  the system as a CiviCRM extension.  If so, we would get this feature for
 
  "free."
...
 
@@ -144,24 +145,25 @@ built.
 

	
 
These are features that we would ultimately like the system to have, but we
 
know aren't necessary for the first version.  It's good to keep them in mind
 
when architecting, but also to know that they've been considered and aren't
 
immediately necessary.
 

	
 
* Allow optional questions: With this, question conditions probably need to
 
be extended to address the case of "other question isn't answered"
 

	
 
* Additional exporters:
 
  * Export to SQLedger
 
  * [Certainly many more, feel free to add them here]
 

	
 
* Richer lifecycle management: A leader may need to approve a request before
 
  it's added to the books, like an employee's manager or a program director
 

	
 
* Various currency improvements:
 
   * Automatic currency conversion for validation (e.g., validate that an amount
 
     in an aribtrary currency is within a limit in USD)
 

	
 
   * Validate currency amounts from outside data sources: The main case for
 
     this is per diem, where many organizations use rates that are determined
 
     by another party (e.g., US GSA) and updated periodically.
 

	
 
   * Handle totaling the request based on currency (e.g., expenses can are in
0 comments (0 inline, 0 general)