Projects/Business Partner Set/Functional Specification
Contents |
Overview
Purpose
The purpose of this development is to make it easier to define a discount which only applies to a specific sets of business partners, for example all male customers between 19-22 years old.
Scope
- Backoffice:
- in the backoffice make it possible to define business partner sets
- support import of business partners into a set from a file
- support linking a business partner set into a discount
- WebPOS
- load the business partner set information into the client
- use the business partner set in the client side to determine if a business partner is eligible for a discount
- ERP: the business partner set concept will not be used in the discounting logic of the backoffice ERP. For example when entering a sales order.
References
Design Considerations
Assumptions
- Assumption: it is possible for an external system or user to provide the list of business partner with values in the list corresponding to values in the identifying columns (the search key for example) of the business partner table in Openbravo.
Dependencies
No specific functional dependencies.
Constraints
There can be constraints on how many business partners can be imported in one time (100000s of records per import is probably the limit).
We can probably load maximum in the 100000s business partner sets records in the webpos database. See open questions below.
The import file format is assumed to be a csv/text file with one column. We will make it flexible so that it can be defined to which business partner column it will map. Still the single column should match the value in the corresponding business partner record/column to find a business partner.
Functional Requirements
User stories
Sales Admin: define business partner set and import
- The sales administrator logs into Openbravo and goes to the Business Partner Set window.
- He/she creates a new business partner set
- He/she exports a list of business partners from for example CRM. The list is manipulated to only contain a single column with the identifying value.
- The sales admin goes to the newly created business partner set window and clicks the (new) import button.
- The import popup is shown with the following options:
- field to select a file
- an enumerate field with the following values: Import and Add to Set, Import and Replace current Set. The first option adds the imported business partners to the set, the second clears the set and imports the BP.
- Error handling, an enum field: stop on error, continue on error and report. Determines if the import stops if a business partner can't be found or should just continue and report the error records.
- Start and end date which is set in the bp set line to set its validity.
- Button to start the import, the logic validates if all the fields are filled in.
- After the import a popup is shown with the overall result: Total records:110, Imported 100 records, 10 error records. In addition a csv file is returned with the error records.
Sales Admin: link to discounts
- the sales admin visits the discounts window and selects or creates a discount
- he/she opens the subtab: Business Partner Sets and clicks the new button
- the form allows him/her to select a business partner set to link to the discount
Note: the business partner set concept is only used for the logic controlled by the field in discounts and promotions: 'Included Business Partner'.
WebPOS User
- the WebPOS user logs in, at login the business partner set information is imported (see open discussing topics)
- the WebPOS user creates a ticket and selects a specific business partner
- when new products are added the applicable discount is also selected on the basis of the business partner set information loaded in the client.
Import Logic
- The system will go through each line in the file and try to find a business partner using the searchKey column of the business partner table.
- If more than one or zero business partners are found an error is registered.
- If the bp set line already exists for the BP then only the start and end date are updated.
- If the bp set line does not yet exist a new record is created.
- At the end of the process the changes are committed or not (depends on the error-handling parameter and if there were errors).
- At the end of the process a file is returned with the error records and the related message.
Status & Functional requirements based on business processes
Requirement | Importance | Status | Comments |
---|---|---|---|
A window, tab and tables to administer the business partner set and its contents. | Must have | Done (pending feedback) | Will be a standard Openbravo window with one main tab (Business Partner Set) and one child tab (business partners by set). |
A new table and tab (in discounts and promotions window) to support linking a business partner set to a discount. | Must have | Done (pending feedback) | Standard openbravo tab on a table. |
Show a new button and dialog in the business partner set window/tab. | Must have | Done (pending feedback) | The dialog shows the fields to select a file and the import parameters. After clicking OK the process starts and the errors are reported. |
The import logic on the server and report back to the client. | Must have | Done (without using connector framework, pending feedback) | The dialog shows the fields to select a file and the import parameters. After clicking OK the process starts and the errors are reported. |
Defining the WebPOS client offline tables and logic to load the data (incrementally) | Must have | Not started | Load the data in webpos for offline usage. |
Modify WebPOS discounting engine to use the business partner set to check that a BP is eligible for a discount. | Must have | Not started | Use the business partner set in the client side. |
Add automated test case to cover webpos discount logic. | Must have | Not started | Use the business partner set in the client side. |
User Interface Mockups
See here the BP Set window with the header tab and the business partner child tab, notice the import button next to the attachment button in the toolbar:
The import button is enabled when the child tab is activated and one parent record is selected. Clicking the import button shows this popup:
The link between discounts and business partner set:
Open Discussion Items
- How many business partners can be included in one import file?
- How many business partners by business partner set will there be in total?
- How many business partner sets can we expect?
- Should the business partner set discount logic be available offline (depends on total volume)?
Closed Discussion Items
- Is an expiry date needed in a business partner set?
- A starting and ending date has been added