Files
Chartwell/Books/Accounting/AccountsReceivable/AccountsReceivableCreditMemos.txt
2026-04-08 12:47:30 -04:00

191 lines
7.3 KiB
Plaintext

Title: CreditMemoLambda - Post Method
Metadata:
• module: CreditMemos
• component: CreditMemoLambda
• type: component
• domain: Accounts Receivable
• system: Oracle AR
Content:
Purpose: Posts a credit memo to Oracle AR system.
Processing Logic:
• Accepts CreditMemo model from Common namespace
• Delegates to ICreditMemoOicIntegration.PostCreditMemoAsync
• Returns posted CreditMemo with Oracle-assigned values
• Lambda configuration: 256MB memory, 30s timeout
• Resource name: "CreditMemoPost"
Example Questions:
• How do I create a credit memo in Oracle?
• What Lambda method posts credit memos?
• What is the return value when posting a credit memo?
---
Title: CreditMemoLambda - Get Method
Metadata:
• module: CreditMemos
• component: CreditMemoLambda
• type: component
• domain: Accounts Receivable
• system: Oracle AR
Content:
Purpose: Retrieves credit memos from Oracle AR based on search criteria.
Processing Logic:
• Accepts GetCreditMemosDto with search parameters
• Delegates to ICreditMemoOicIntegration.GetCreditMemoAsync
• Returns IEnumerable<CreditMemo>
• Lambda configuration: 256MB memory, 30s timeout
Example Questions:
• How do I retrieve credit memos by customer account number?
• What Lambda method gets credit memos from Oracle?
• What search criteria can I use to find credit memos?
---
Title: CreditMemoLambda - SelectMostRecentValidCreditMemo Method
Metadata:
• module: CreditMemos
• component: CreditMemoLambda
• type: component
• domain: Accounts Receivable
• system: Oracle AR
Content:
Purpose: Filters and selects the most recent valid cancellation credit memo from a list.
Processing Logic:
• Accepts List<CreditMemo>
• Filters by AllowedTypes: "HFA CM Cancel Int" or "HFA CM Cancel Ext" (case-insensitive)
• Orders by TransactionDate descending
• Returns first match or null if none found
• Lambda configuration: 256MB memory, 30s timeout
Example Questions:
• How do I find the most recent cancellation credit memo?
• What credit memo types are valid for selection?
• How does the system filter credit memos by transaction type?
---
Title: Credit Memo - Valid Cancellation Type Rule
Metadata:
• module: CreditMemos
• component: CreditMemoLambda
• type: rule
• domain: Accounts Receivable
• system: Oracle AR
Content:
Purpose: Defines allowed transaction types for cancellation credit memo selection.
Processing Logic:
• AllowedTypes HashSet contains: "HFA CM Cancel Int", "HFA CM Cancel Ext"
• Case-insensitive comparison via StringComparer.OrdinalIgnoreCase
• Used by SelectMostRecentValidCreditMemo to filter valid credit memos
Key Rules:
• Only internal and external cancellation credit memos are valid
• Case-insensitive matching
Example Questions:
• What transaction types are valid for cancellation credit memos?
• How are credit memo types validated for selection?
• Is credit memo type matching case-sensitive?
---
Title: GetCreditMemosDto
Metadata:
• module: CreditMemos
• component: GetCreditMemosDto
• type: concept
• domain: Accounts Receivable
• system: Oracle AR
Content:
Purpose: Query parameters DTO for retrieving credit memos from Oracle.
Processing Logic:
• CustomerAccountNumber: filters by customer account
• CreditMemoId: filters by unique transaction identifier
• PurchaseOrderNumber: optional secondary filter used with CustomerAccountNumber
• At least one identifier required (CustomerAccountNumber or CreditMemoId)
Example Questions:
• What parameters can I use to search for credit memos?
• How do I query credit memos by purchase order number?
• What is the structure of the credit memo query DTO?
---
Title: CreditMemoOicIntegration - GET Method
Metadata:
• module: CreditMemos
• component: CreditMemoOicIntegration
• type: component
• domain: Accounts Receivable
• system: Oracle OIC
Content:
Purpose: Retrieves credit memos from Oracle Integration Cloud with conditional query logic.
Processing Logic:
• Endpoint: "/ic/api/integration/v1/flows/rest/CHI_CREDITMEMO_API/1.0/CreditMemo"
• If CustomerAccountNumber provided: appends CustomerAccountNumber query param, optionally appends PurchaseOrderNumber
• Else if CreditMemoId provided: appends as "TransactionId" query param
• Else throws ArgumentException "An Identifier is Required to GET Credit Memo"
• Parses JSON response, extracts "ARCreditMemos" array
• Returns List<CreditMemo> or empty list if null
Example Questions:
• What Oracle OIC endpoint retrieves credit memos?
• How does the API validate credit memo search criteria?
• What JSON property contains the credit memo array in responses?
---
Title: CreditMemoOicIntegration - POST Method
Metadata:
• module: CreditMemos
• component: CreditMemoOicIntegration
• type: component
• domain: Accounts Receivable
• system: Oracle OIC
Content:
Purpose: Posts credit memo to Oracle Integration Cloud.
Processing Logic:
• Endpoint: "/ic/api/integration/v1/flows/rest/CHI_CREDITMEMO_API/1.0/CreditMemo"
• Serializes CreditMemo to JSON using Newtonsoft.Json
• Sets Content-Type header to "application/json"
• Posts via Flurl PostStringAsync
• Deserializes response to CreditMemo
• Returns created credit memo with Oracle-assigned values
Example Questions:
• What Oracle OIC endpoint is used for posting credit memos?
• How are credit memos serialized for Oracle integration?
• What is the return value from the Oracle credit memo API?
---
Title: Credit Memo Query - Conditional Parameter Logic
Metadata:
• module: CreditMemos
• component: CreditMemoOicIntegration
• type: workflow
• domain: Accounts Receivable
• system: Oracle OIC
Content:
Purpose: Implements conditional query parameter logic for credit memo retrieval.
Processing Logic:
1. Check if CustomerAccountNumber is provided (not null/empty)
• If yes: append CustomerAccountNumber query param
• Check if PurchaseOrderNumber is provided
• If yes: append PurchaseOrderNumber query param
2. Else check if CreditMemoId is provided (not null/empty)
• If yes: append as "TransactionId" query param
3. Else throw ArgumentException
Key Rules:
• CustomerAccountNumber is primary search method
• PurchaseOrderNumber only valid with CustomerAccountNumber
• CreditMemoId maps to "TransactionId" query parameter
• At least one identifier required
Example Questions:
• How does the credit memo API determine which query parameters to use?
• Can I search credit memos by purchase order alone?
• What happens if no search criteria are provided?
---
Title: Credit Memo Selection - Most Recent by Transaction Date
Metadata:
• module: CreditMemos
• component: CreditMemoLambda
• type: workflow
• domain: Accounts Receivable
• system: Oracle AR
Content:
Purpose: Selects most recent valid cancellation credit memo from a collection.
Processing Logic:
1. Validate input list not null or empty (return null if invalid)
2. Filter credit memos where TransactionType matches AllowedTypes ("HFA CM Cancel Int" or "HFA CM Cancel Ext")
3. Order filtered results by TransactionDate descending
4. Return FirstOrDefault (most recent or null)
Key Rules:
• TransactionDate is sorting key
• Only cancellation types considered
• Returns null if no valid credit memos found
Example Questions:
• How does the system determine the most recent credit memo?
• What sorting is applied to credit memo selection?
• What happens when no valid credit memos exist?