OLE Many PO to One Invoice
Overview
Link
https://jira.kuali.org/browse/OLE-2657 and related linked tasks
Description
Library vendors routinely send invoices billing for multiple Purchase Orders (POs). In many cases, the cost of additional charges (freight, shipping, etc) needs to be split among the accounts on these POs. Instead of manually creating one Payment Request (PREQ) for each PO referenced on the Invoice, users need a way to process the Invoice on one screen in order to avoid having to create individual PREQs and to distribute the cost of additional charges.
Design: Technical
Design Technical
The technical design document shall lay out the high level design of how the Many Purchase Orders to One Invoice. The details laid out shall include the Wire¬frames for User Interface design, Data Element Layout, including the logical Database Design, Component Specifications including artifacts such as Class Diagram, State Chart Diagrams, OJB.xml specifications and other relevant information.
Service Design and Implementation
Screen Flow Diagram
Layout use cases based on the screen flows indicating navigation between different screens.
Security
- Roles – list of roles to be defined
- OLE-PURAP Accounts Payable Processor
- OLE-PURAP Purchasing Processor
- OLE-SYS Tax Manager
- OLE-PURAP Accounts Payable Document Reviewer
- KR-WKFLW Approve Request Recipient
- OLE-SYS Accounts Payable Manager
- OLE-PURAP Payment Request Hold / Cancel Initiator
- OLE-SYS System User
- OLE-SYS Manager
- OLE-SELECT Accounting-AQ2
- OLE-SELECT Accounting-AQ3
- OLE-SELECT Accounting-AQ4
- OLE-SELECT OLE-Receive-Mgr
- OLE-SELECT Receiving-AQ3
- OLE-SELECT OLE-Invoicing
- OLE-SELECT Receiving-AQ4
- OLE-SELECT OLE_Prepayment
- OLE-SELECT OLE_RCV
- OLE-SELECT OLE-Payment
- OLE-SYS Fiscal Officer
- KR-SYS Document Initiator
- OLE-SYS Workflow Administrator
- OLE-SYS Treasury Manager
- OLE-SYS User
- KR-WKFLW Initiator or Reviewer
- KR-NS Document Editor
- OLE-SYS Active Faculty or Staff
- Recall Document (KR-WKFLW)
- Recall Document OLE (OLE-SYS)
- OLE-SELECT OLE_User
- KR-WKFLW Initiator
- KR-WKFLW Non-Ad Hoc Approve Request Recipient
- KR-NS Document Opener
- OLE-PURAP Budget Reviewer
- OLE-PURAP Sub-Account Reviewer
- OLE-SYS Accounting Reviewer
- OLE-SYS Tax Manager
- OLE-SELECT OLE-Payment
- OLE-SELECT OLE_Prepayment
- OLE-SELECT OLE-Invoicing
- Permissions – list of permissions to be defined
- Add Note / Attachment PREQ Invoice Image (OLE-PURAP)
- View Note / Attachment PREQ Invoice Image (OLE-PURAP)
- Edit Document PREQ R (OLE-PURAP)
- Use Transactional Document PREQ requestPaymentRequestCancel (OLE-PURAP)
- Use Transactional Document PREQ paymentRequestHoldCancelRemoval (OLE-PURAP)
- Use Transactional Document PREQ requestPaymentRequestHold (OLE-PURAP)
- Edit Document PREQ P (OLE-PURAP)
- Edit Document PREQ F (OLE-PURAP)
- Edit Bank Code PREQ (OLE-PURAP)
- Blanket Approve Document PREQ (OLE-PURAP)
- Initiate Document PREQ (OLE-PURAP)
- Edit ENROUTE Payment Request Document (OLE-SELECT)
- Edit PROCESSED Payment Request Document (OLE-SELECT)
- Edit FINAL Payment Request Document (OLE-SELECT)
- Modify PREQ Account Accounting Lines (OLE-SELECT)
- Cancel Payment Request (OLE-SELECT)
- Edit Payment Request Document (OLE-SELECT)
- Edit Document AP PreRoute (OLE-PURAP)
- Modify Accounting Lines AP Account items.sourceAccountingLines (OLE-PURAP)
- Use Transactional Document AP editPreExtract (OLE-PURAP)
- Modify Accounting Lines AP PreRoute items.sourceAccountingLines (OLE-PURAP)
- Use Transactional Document AP managerCancel (OLE-PURAP)
- Use Transactional Document AP processorCancel (OLE-PURAP)
- Open Document PRAP (OLE-PURAP)
- Error Correct Document KFST (OLE-SYS)
- Administer Routing for Document KFST (OLE-SYS)
- Edit Bank Code OpenLibraryEnvironmentTransactionalDocument (OLE-SYS)
- Administer Routing for Document KFS (OLE-SYS)
- Blanket Approve Document KFS (OLE-SYS)
- Initiate Document KFS (OLE-SYS)
- Open Document KFS (OLE-SYS)
- save Document KFS (OLE-SYS)
- Delete Note / Attachment OLE FALSE (OLE-SYS)
- Ad Hoc Review Document KFS A (OLE-SYS)
- Ad Hoc Review Document KFS F (OLE-SYS)
- Ad Hoc Review Document KFS K (OLE-SYS)
- Copy Document KFS (OLE-SYS)
- Add Message to Route Log KFS (OLE-SYS)
- Super User Approve Single Action Request OLE (OLE-SYS)
- Super User Approve Document OLE (OLE-SYS)
- Super User Disapprove Document OLE (OLE-SYS)
- Open Document (OLE-SELECT)
- Initiate OLE Documents (OLE-SELECT)
- Cancel Document (KUALI)
- Route Document (KUALI)
- Edit Kuali ENROUTE Document Node Name PreRoute (KUALI)
- Edit Kuali ENROUTE Document Route Status Code R (KUALI)
- Add Note / Attachment Kuali Document (KUALI)
- View Note / Attachment Kuali Document (KUALI)
- Send FYI Request Kuali Document (KR-SYS)
- Send Acknowledge Request Kuali Document (KR-SYS)
- Send Approve Request Kuali Document (KR-SYS)
- Add Message to Route Log (KUALI)
- Send Complete Request Kuali Document (KR-SYS)
Component Design
- OBJ.xml
- State Chart Diagram
Service Contracts
Service Implementation
Process Diagram
Work-flow Diagram
UI Wire-frames Design
Invoice Process Screen
Document Overview Tab
Vendor Tab
Invoice Info Tab
Invoice Process Items Tab
Accounting lines
Account Summary Tab
Related Documents
Payment History
General Ledger Pending Entries
Data Model
User Story : Many Purchase Orders to One Invoice
Entity: OLE_AP_INV_T
NAME | LENGTH | DATE TYPE | DEFAULT VALUE | INPUT TYPE | ACTION EVENT | VALIDATION TYPE | TAB INDEX | REMARKS |
INV_RQST_ID | 9,0 | DECIMAL | 0 |
|
|
|
|
|
OBJ_ID | 36 | VARCHAR |
|
|
|
|
|
|
INV_RQST_STAT_CD | 4 | VARCHAR |
|
|
|
|
|
|
FDOC_NBR | 14 | VARCHAR |
|
|
|
|
| A unique, sequential, system-assigned number for a document. |
AP_PUR_DOC_LNK_ID | 10,0 | DECIMAL |
|
|
|
|
| New link identifier generated for invoice is stored. |
INV_PD_DT |
| DATETIME |
|
|
|
|
| Enter the invoice date from the vendor invoice or select the date from the calendar cal. |
INV_DT |
| DATETIME |
|
|
|
|
| invoice date |
INV_NBR | 25 | VARCHAR |
|
|
|
|
| The identifying invoice number from the vendor invoice. |
VNDR_INV_AMT | 19,2 | DECIMAL |
|
|
|
|
| The net dollar amount of the invoice to be processed. For OLE-FS this is where US dollars are entered |
INV_RQST_PAY_DT |
| DATETIME |
|
|
|
|
|
|
INV_RQST_CST_SRC_CD | 4 | VARCHAR |
|
|
|
|
|
|
VNDR_HDR_GNRTD_ID | 10,0 | DECIMAL |
|
|
|
|
| Vendor header generated ID. |
VNDR_DTL_ASND_ID | 10,0 | DECIMAL |
|
|
|
|
| Vendor detail assigned ID.<BR>A vendor can have more than one transmission type; but only 1 should be preferred. The preferred will appear as the default, but any are selectable. |
VNDR_NM | 45 | VARCHAR |
|
|
|
|
|
|
OLE_VNDR_CURR_ID | 10,0 | DECIMAL |
|
|
|
|
|
|
OLE_VNDR_FOR_CURR_INV_AMT | 19,2 | DECIMAL |
|
|
|
|
| The net amount of the invoice to be processed in foreign currency. |
OLE_INV_TYP_ID | 10,0 | DECIMAL |
|
|
|
|
| Primary Key of the Invoice Type maintenance table. |
OLE_INV_SUB_TYP_ID | 10,0 | DECIMAL |
|
|
|
|
| Primary key of Invoice Subtype table. |
OLE_INV_MTHD_ID | 10,0 | DECIMAL |
|
|
|
|
|
|
INV_NTE_LN1_TXT | 90 | VARCHAR |
|
|
|
|
|
|
INV_NTE_LN2_TXT | 90 | VARCHAR |
|
|
|
|
|
|
INV_NTE_LN3_TXT | 90 | VARCHAR |
|
|
|
|
|
|
INV_SPCL_HANDLG_INSTRC_LN1_TXT | 90 | VARCHAR |
|
|
|
|
|
|
INV_SPCL_HANDLG_INSTRC_LN2_TXT | 90 | VARCHAR |
|
|
|
|
|
|
INV_SPCL_HANDLG_INSTRC_LN3_TXT | 90 | VARCHAR |
|
|
|
|
|
|
Entity: OLE_AP_INV_PO_ITM_T
NAME | LENGTH | DATE TYPE | DEFAULT VALUE | INPUT TYPE | ACTION EVENT | VALIDATION TYPE | TAB INDEX | REMARKS |
INV_PO_ITM_ID | 9,0 | DECIMAL | 0 |
|
|
|
|
|
INV_RQST_ID | 9,0 | DECIMAL | 0 |
|
|
|
|
|
PO_ID | 9,0 | DECIMAL |
|
|
|
|
|
|
PO_ENCUM_FSCL_YR | 4,0 | DECIMAL |
|
|
|
|
| To identify the purchase order number |
AP_PUR_DOC_LNK_ID | 10,0 | DECIMAL |
|
|
|
|
| stores PO Link Identifier |
CLOSE_PO_IND | 1 | VARCHAR | NULL |
|
|
|
|
|
REOPEN_PO_IND | 1 | VARCHAR | NULL |
|
|
|
|
|
PO_LN_NBR | 3,0 | DECIMAL | NULL |
|
|
|
|
|
ITM_TYP_CD | 4 | VARCHAR |
|
|
|
|
| Item Type defines the different descriptive categories that can be applied to requisition, purchase order, payment request and credit memo line items. Some examples are: quantity, non-quantity, shipping , and freight. The purchase order item type carries to the line items of the payment request and credit memo. |
ITM_LN_NBR | 3,0 | DECIMAL |
|
|
|
|
|
|
ITM_DESC | 4000 | VARCHAR |
|
|
|
|
|
|
ITM_CATLG_NBR | 30 | VARCHAR |
|
|
|
|
|
|
ITM_AUX_PART_ID | 300 | VARCHAR |
|
|
|
|
|
|
ITM_UOM_CD | 4 | VARCHAR |
|
|
|
|
|
|
ITM_INV_QTY | 11,2 | DECIMAL |
|
|
|
|
|
|
ITM_UNIT_PRC | 19,4 | DECIMAL |
|
|
|
|
|
|
PO_ITM_UNIT_PRC | 19,4 | DECIMAL |
|
|
|
|
|
|
ITM_OSTND_INV_QTY | 11,2 | DECIMAL |
|
|
|
|
|
|
ITM_OSTND_INV_AMT | 19,2 | DECIMAL |
|
|
|
|
|
|
ITM_TAX_AMT | 19, | DECIMAL |
|
|
|
|
|
|
ITM_EXTND_PRC | 19,2 | DECIMAL |
|
|
|
|
|
|
OLE_ITM_OSTND_INV_PRTS | 11,2 | DECIMAL |
|
|
|
|
|
|
OLE_ITM_INV_PRTS | 11,2 | DECIMAL |
|
|
|
|
|
|
OLE_PO_ITM_ID | 10,0 | DECIMAL |
|
|
|
|
|
|
OLE_LST_PRC
| 19,4 | DECIMAL |
|
|
|
|
|
|
OLE_DOCUMENT_UUID | 50 | VARCHAR |
|
|
|
|
|
|
OLE_ADDL_CHRG_USD | 1 | VARCHAR | N |
|
|
|
|
|
ITM_ASND_TO_TRADE_IN_IND | 1 | VARCHAR |
|
|
|
|
| Indicates if the Item is to be Assigned to Trade In |
OLE_DISCNT | 19,4 | DECIMAL |
|
|
|
|
|
|
OLE_DISCNT_TYP | 1 | VARCHAR |
|
|
|
Entity: OLE_AP_INV_ACCT_T
NAME | LENGTH | DATE TYPE | DEFAULT VALUE | INPUT TYPE | ACTION EVENT | VALIDATION TYPE | TAB INDEX | REMARKS |
INV_ACCT_ID | 10,0 | DECIMAL |
|
|
|
|
|
|
INV_PO_ITM_ID | 8,0 | DECIMAL |
|
|
|
|
|
|
FIN_COA_CD | 2 | VARCHAR |
|
|
|
|
| The chart code associated with the account assigned to the sub-account. |
ACCOUNT_NBR | 7 | VARCHAR |
|
|
|
|
| The account number associated with the Sub-Account. The Sub-Account Number is unique to this account. |
SUB_ACCT_NBR | 5 | VARCHAR |
|
|
|
|
| An optional element of the accounting string that allows you to track financial activity within a particular account at a finer level of detail. |
FIN_SUB_OBJ_CD | 3 | VARCHAR |
|
|
|
|
| SubObject Code used. |
FIN_OBJECT_CD | 4 | VARCHAR |
|
|
|
|
| Object Code used. |
ITM_ACCT_TOT_AMT | 19,2 | DECIMAL |
|
|
|
|
| Dollar amount for account. |
DISENC_AMT` | 19,2 | DECIMAL |
|
|
|
|
| The amount the Payment Request Account will be disemcumbered according to the payment revision. |
Entity: OLE_AP_INV_SUM_ACCT_T
NAME | LENGTH | DATE TYPE | DEFAULT VALUE | INPUT TYPE | ACTION EVENT | VALIDATION TYPE | TAB INDEX | REMARKS |
SUM_ACCT_ID | 10,0 | DECIMAL |
|
|
|
|
|
|
INV_RQST_ID | 9,0 | DECIMAL |
|
|
|
|
|
|
FIN_COA_CD | 2 | VARCHAR |
|
|
|
|
| The chart code associated with the account assigned to the sub-account. |
ACCOUNT_NBR | 7 | VARCHAR |
|
|
|
|
| The account number associated with the Sub-Account. The Sub-Account Number is unique to this account. |
SUB_ACCT_NBR | 5 | VARCHAR |
|
|
|
|
| An optional element of the accounting string that allows you to track financial activity within a particular account at a finer level of detail. |
FIN_SUB_OBJ_CD | 3 | VARCHAR |
|
|
|
|
| SubObject Code used |
FIN_OBJECT_CD | 4 | VARCHAR |
|
|
|
|
| Object Code used. |
ITM_ACCT_TOT_AMT | 19,2 | DECIMAL |
|
|
|
|
| Dollar amount for account. |
CRDT_MEMO_ID | 9,0 | DECIMAL |
|
|
|
|
| Credit memo number defined in KFS. |
Entity: OLE_AP_INV_PO_ITM_USE_TAX_T
NAME | LENGTH | DATE TYPE | DEFAULT VALUE | INPUT TYPE | ACTION EVENT | VALIDATION TYPE | TAB INDEX | REMARKS |
INV_PO_ITM_USE_TAX_ID | 10,0 | DECIMAL |
|
|
|
|
|
|
INV_PO_ITM_ID | 10,0 | DECIMAL |
|
|
|
|
|
|
FIN_COA_CD | 2 | VARCHAR |
|
|
|
|
| The chart code associated with the account assigned to the sub-account. |
ACCOUNT_NBR | 7 | VARCHAR |
|
|
|
|
| The account number associated with the Sub-Account. The Sub-Account Number is unique to this account. |
FIN_OBJECT_CD | 4 | VARCHAR |
|
|
|
|
| Object Code used. |
RATE_CD | 10 | VARCHAR |
|
|
|
|
|
|
TAX_AMT | 19,4 | DECIMAL |
|
|
|
|
|
|
Questions
1) How to handle the credit/debit data, in Invoice Document. As per new requirement user can give credit/debit for the invoice amount in Invoice. When debit is given or no data is given, logic will be handled
as in Payment Request now. If the user gives credit.. what needs to be done.
Answer : Not sure of functional requirements. May be need to generate credit memo's for credit Transaction and Payment Requests for Debit Transaction.
2) Now SFC is to be done in Invoice and not in Payment Request. As we are not going to save gl entries in Invoice Screen, gl entries are saved only in Payment Request. We may end up in wrong SFC calculation as
expense amount will not reflect correct amount. How to handle the gl entries?
Answer : Generate temporary gl entries and do not save these entries and check SFC based on these values. Create one sample role like OLE-SYS-USER with one user and forward the document to that user.
3) How to handle document linkage identifier,...where we need to have the linkage identifier. What identifier needs to be stored in Invoice and Payment Request.
Answer : Store AP_PUR_DOC_LNK_ID generated for PO document in OLE_AP_INV_PO_ITM_T table. Generate new AP_PUR_DOC_LNK_ID and save it in OLE_AP_INV_T table.
Store AP_PUR_DOC_LNK_ID generated for invoice in AP_PMT_RQST_T table, if Payment Request is created through Invoice Screen. If Payment request is created through Payment Request Screen, then store AP_PUR_DOC_LNK_ID generated for PO document.
4) Payment Terms Calculation...How to handle the Payment Terms Calculation in Invoice and Payment Request Screen.
Answer : OLE currently does not take into account the Payment Terms discount amount at the document level. The info is captured in PDP extract process, when the actual cheque is cut-off.
5) Payment Info.. From where and how the information is fetched?
Answer : The info is fetched after PDP Process is run. Not required in Invoice as PDP Process is done only in Payment Request Screen.
Date : 13-July-2013
1) Accepting negative value in invoice document should result in creating vendor credit memo or the Invoice / Payment Request documents should allow negative values ?
If so how accounting data should be posted concern accounts?
2) Requirement is Extract date should be added to PDP_PROC_T : Process Date (PROC_TS column) is available in PDP_PROC_T table. Is that a extract date or do we need to create new field as extract date in that table
3) The scope for this 1.0 is only the insertion of data into PDP tables or it includes extraction of scripts and services also?
4) How the invoice / Payment Request Documents should process the prorating ?
Date: 29-July-2013
1) If one item in PO line item is negative and another item in the same PO is in positive value, do we need to create Vendor credit memo for negative value and Payment Request for positive value for the same PO?
2) Pay through Receiving Queue Search : [Pay], [Receive and Pay] should create invoice for the selected title automatically or should show invoice document to the user to create invoice manually ?
VARCHAR
PDP_PROC_T
Operated as a Community Resource by the Open Library Foundation