FS03 Approval Amount By Period

From ADempiere ERP Wiki
Revision as of 22:32, 8 December 2010 by CarlosRuiz (talk | contribs) (minor)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
Qss.jpg   {{#if: Carlos Ruiz, Quality Systems & Solutions (QSS)|This contribution was provided by Carlos Ruiz, Quality Systems & Solutions (QSS)|This contribution was provided by The Adempiere Community}}
{{#if: http://globalqss.com%7Chttp://globalqss.com%7Chttp://wiki.adempiere.net}}
{{{sf_ref}}}}}

Status: Approved to be integrated in branch 361 by Functional Team

Development Status: Integrated to Branch GlobalQSS 361

SourceForge Forum thread to discuss.

Approval Amount by Period - Functional Specifications[edit]

Author: Carlos Ruiz

Overview[edit]

Purpose[edit]

Implement a mechanism to control the approval amount by a period of time.

Scope[edit]

The proposed change is very focused (low risk), it just modify the validation on approval amount on workflows, and it's developed backward compatible.

At the moment this proposal is global for all the documents with the same document base type, a future enhancement could be to develop finer control per document type, but at this moment this is out of scope.

References[edit]

Tracker: Feature Requests 3123769

Design Considerations[edit]

Backward compatibility: When installed and when not configured the system must behave the same as it does actually.

Assumptions[edit]

... empty ...


Dependencies[edit]

... empty ...


Constraints[edit]

... empty ...


Glossary[edit]

... empty ...


Functional Requirements[edit]

User roles & profiles[edit]

User trying to approve documents: The user will have an amount authorized per document and an amount authorized for a period of days (for the same document base types).

Business process definition[edit]

User stories[edit]

Adempiere provides a functionality to configure approval amounts per role, so you can configure workflows to disable users approving documents which they don't have the corresponding amount of authorization, escalating to their supervisor until an approver with authorization is reached.

Users can circumvent the control splitting the document in parts with an amount they can approve.


Functional requirements based on business processes[edit]

The current proposal implements a mechanism to control the approval amount by a period of time, allowing a finer control and trying to avoid the splitting document issue.

The idea is to implement two new configuration fields on role table/window:

Days Approval Accumulated: The number of days to take into account when configuring this functionality (it must be >0 to have any sense). One meaning just today, two meaning today and yesterday, and so on.

Approval Amount Accumulated: The amount the user can approve in the number of days defined in the previous field.

When completing a document, Adempiere will add all the documents approved by the user with the same document base type within the number of days indicated, when the limit per period is reached Adempiere escalate the approval to the supervisor as usually does.

User Interface Mockups[edit]

In the example the users with role "GardenWorld Admin" can approve single documents where the total to be approved is US$500. But, within a period of 2 days (it adds documents approved by the user today, yesterday and the day before yesterday) the user cannot approve more than US$2000.

FS03 RoleApprovalPeriod.png

Technical Requirements[edit]

  • Create two fields on role table/window and change approval algorithm to take into account the new case

Non-Functional Requirements[edit]

... empty ...


Open Discussion Items[edit]

This is an important comment from Steven Sackett (Adaxa) proposing a more complete solution, maybe a module to manage approval amounts - bringing here the comment for documentation purposes for future improvements:

This sounds proposal good to me. But... ultimately ADempiere needs to fix the whole question of 'approval amounts'.

If I am a sales rep then I can complete a sales order for $500,000 .. but I may be able to place a purchase order for only $5 or zero. I realise this can be controlled in part because the purchase order window is not on the sales reps role but it is a kludge.

It gets worse of course because the Purchasing clerk is authorised to place an order for $100,000 of stock on a PO created by a replenishment run but $1000 on miscellaneous expenses and zero on capital expenditure.

Same with say write-offs. I may be happy for a vendor invoice clerk to do a quick adjustment and write-off an amount but I may not want a debtors clerk to able to write-off anything.

We really need the Role Authority amount to be related to a value stored against each window and process in the role.. Maybe we even need to classify GL account codes to replenishment, expense or capital, store an authority value against each window/process for each of the 3 types and then evaluate in the workflow.

Closed Discussion Items[edit]

... empty ...