558 lines
23 KiB
Plaintext
558 lines
23 KiB
Plaintext
RAG Knowledge Chunks for CMH.HFA.Accounting.AccountsReceivable
|
|
---
|
|
Title: CustomerCreateLambda - Oracle Customer Creation Component
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: CustomerCreateLambda
|
|
• type: component
|
|
• domain: Customer Management
|
|
• system: Oracle
|
|
Content: Purpose: AWS Lambda function that creates new customer records in Oracle via OracleCustomerIntegration.
|
|
Processing Logic:
|
|
• Accepts OracleCustomer object as input
|
|
• Sets AccountSource to "HFA" for first account
|
|
• Delegates to IOracleCustomerIntegration.CreateCustomer
|
|
• Returns created OracleCustomer with Oracle-assigned IDs
|
|
Key Rules:
|
|
• AccountSource is always "HFA" for account creation
|
|
• Lambda configuration: 256MB memory, 30s timeout
|
|
Example Questions:
|
|
• How do I create a new customer in Oracle?
|
|
• What AccountSource is used for HFA customer creation?
|
|
• Which component handles customer creation?
|
|
---
|
|
Title: CustomerGetLambda - Multi-Method Customer Retrieval
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: CustomerGetLambda
|
|
• type: component
|
|
• domain: Customer Management
|
|
• system: Oracle
|
|
Content: Purpose: AWS Lambda providing multiple methods to retrieve customer data from Oracle and account links from AccountsService.
|
|
Processing Logic:
|
|
• Get() method: Retrieves customer by AccountSourceReference, AccountNumber, or CustAccountId (priority order)
|
|
• GetAccountWithLinks(): Retrieves iSeries account key linked to AccountSourceReference
|
|
• GetAccountLinksByLinkedAccountNumber(): Retrieves accounts by linked account number and source
|
|
• GetCustomerActivity(): Retrieves customer account activity summary by CustAccountId
|
|
Key Rules:
|
|
• Throws ArgumentNullException if all identifiers are null
|
|
• Priority: AccountSourceReference > AccountNumber > CustAccountId
|
|
Example Questions:
|
|
• How do I retrieve a customer using policy number?
|
|
• What identifiers can query Oracle customers?
|
|
• How do I get iSeries account keys for Oracle customers?
|
|
---
|
|
Title: OracleCustomer DTO Structure
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: OracleCustomer
|
|
• type: concept
|
|
• domain: Customer Management
|
|
• system: Oracle
|
|
Content: Purpose: Data structure representing Oracle customer entity with party and account information.
|
|
Properties:
|
|
• Version, SourceSystem, PartyId
|
|
• CustomerNumber (Oracle-assigned)
|
|
• PartyType (Person/Organization)
|
|
• FirstName, MiddleName, LastName, NameSuffix
|
|
• PartySourceSystemReferenceId (external system reference)
|
|
• Accounts[] (array of Account objects)
|
|
Inheritance: Extends AuditableEntityBase for audit tracking
|
|
Example Questions:
|
|
• What fields define an Oracle customer?
|
|
• How is customer name structured in Oracle?
|
|
• What is PartySourceSystemReferenceId used for?
|
|
---
|
|
Title: Account DTO Structure
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: Account
|
|
• type: concept
|
|
• domain: Customer Management
|
|
• system: Oracle
|
|
Content: Purpose: Data structure representing Oracle customer account with source references and status.
|
|
Properties:
|
|
• CustAccountId (Oracle ID, mapped from "CustAccountId" JSON)
|
|
• AccountNumber, AccountSource, AccountSourceReference
|
|
• AccountDescription, AccountType, CustomerClass
|
|
• AccountEstablishedDate, AccountTerminationDate (DateOnly)
|
|
• AccountStatus, PartyId
|
|
• Sites[] (array of Site objects)
|
|
Inheritance: Extends AuditableEntityBase
|
|
Example Questions:
|
|
• What identifies an Oracle account record?
|
|
• How are account source references structured?
|
|
• What account metadata is tracked?
|
|
---
|
|
Title: AccountIdDto - Account Identifier Container
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: AccountIdDto
|
|
• type: concept
|
|
• domain: Customer Management
|
|
• system: Multi-system
|
|
Content: Purpose: Container for passing account identifiers between step functions and Lambda invocations.
|
|
Properties:
|
|
• AccountSourceReference (nullable string) - external system reference
|
|
• AccountNumber (nullable string) - Oracle account number
|
|
• CustAccountId (nullable string) - Oracle customer account ID
|
|
Key Rules:
|
|
• All fields optional, at least one required for customer lookups
|
|
• Used as input parameter for CustomerGetLambda methods
|
|
Example Questions:
|
|
• How do I pass account identifiers to Lambda functions?
|
|
• What account lookup keys are supported?
|
|
• What DTO is used for step function account passing?
|
|
---
|
|
Title: PolicyInvoiceLambda - Invoice Get/Post Operations
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: PolicyInvoiceLambda
|
|
• type: component
|
|
• domain: Invoice Management
|
|
• system: Oracle
|
|
Content: Purpose: AWS Lambda for retrieving and posting invoices to Oracle via OIC (Oracle Integration Cloud).
|
|
Processing Logic:
|
|
• Get(): Retrieves invoice by InvoiceId OR by PolicyNumber+CustomerNumber combination
|
|
• Post(): Creates new invoice in Oracle
|
|
• Delegates all operations to IOracleInvoiceIntegration
|
|
Key Rules:
|
|
• Get requires either InvoiceId OR (PolicyNumber AND CustomerNumber)
|
|
• Throws exception for invalid request combinations
|
|
Example Questions:
|
|
• How do I retrieve an invoice by policy number?
|
|
• Which Lambda posts invoices to Oracle?
|
|
• What are valid invoice lookup parameters?
|
|
---
|
|
Title: InvoicesGetLambda - Multi-Invoice Retrieval with Sorting
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: InvoicesGetLambda
|
|
• type: component
|
|
• domain: Invoice Management
|
|
• system: Oracle
|
|
Content: Purpose: Retrieves multiple invoices from Oracle with configurable sorting.
|
|
Processing Logic:
|
|
• Accepts GetInvoicesDto with filter and sort criteria
|
|
• Delegates retrieval to IOracleInvoiceIntegration
|
|
• Applies sorting based on OrderOptions.PropertyName and SortBy
|
|
• Returns sorted List<OracleInvoice>
|
|
Sortable Fields:
|
|
• DocumentNumber (default), TransactionDate, DueDate, AccountingDate, TransactionNumber
|
|
Key Rules:
|
|
• Throws ArgumentException for unsupported sort fields
|
|
• Supports Ascending/Descending order via SortByOption
|
|
Example Questions:
|
|
• How do I retrieve invoices sorted by due date?
|
|
• What fields can invoices be sorted by?
|
|
• Which Lambda handles bulk invoice retrieval?
|
|
---
|
|
Title: OracleInvoice DTO Structure
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: OracleInvoice
|
|
• type: concept
|
|
• domain: Invoice Management
|
|
• system: Oracle
|
|
Content: Purpose: Data structure representing an invoice in Oracle AR system.
|
|
Key Properties:
|
|
• TransactionID, TransactionNumber, DocumentNumber
|
|
• TransactionClass (always "Invoice"), TransactionType
|
|
• TransactionDate, AccountingDate, DueDate (date fields)
|
|
• CustomerAccountNumber, SitePurposeSiteNumber
|
|
• TransactionLines[] (list of Transactionline objects)
|
|
• InvoiceBalanceAmount, TransactionStatus, PrintStatus
|
|
Static Values:
|
|
• BusinessUnit = "HFA BU"
|
|
• TransactionSource = "HFA Agency Management System"
|
|
• CurrencyCode = "USD"
|
|
• LegalEntityID = "62-1764688"
|
|
Computed Property:
|
|
• PremiumAmount: Sum of transaction lines containing "premium" in description
|
|
Example Questions:
|
|
• What fields define an Oracle invoice?
|
|
• What static values are set for HFA invoices?
|
|
• How is premium amount calculated?
|
|
---
|
|
Title: InvoiceStatic Constants - Invoice Configuration Values
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: InvoiceStatic
|
|
• type: rule
|
|
• domain: Invoice Management
|
|
• system: Oracle
|
|
Content: Purpose: Centralized constant values for invoice processing configuration.
|
|
Core Constants:
|
|
• HfaLegalEntityID: "62-1764688"
|
|
• HfaAgencyManagementSystem: "HFA Agency Management System"
|
|
• USD: "USD", Invoice: "Invoice", Billing: "Billing"
|
|
• GenerateBillNo: "No", BillTo: "BILL_TO"
|
|
Business Groups:
|
|
• HfaHmhPremium, HfaMhwHbppPremium, HfaMhwEscPremium
|
|
Line Types:
|
|
• Premium, Fees, NonRefundableFees, NonRefundableFeesWithCommission, SalesTax
|
|
Coverage Codes:
|
|
• CTX, EMPAT, FCPRS, HCFAS, IGA, LFPEA, MNFSR, POLFE, SURC
|
|
Example Questions:
|
|
• What is the HFA legal entity ID for invoices?
|
|
• What business groups are supported?
|
|
• What line types are available for invoices?
|
|
---
|
|
Title: HfaStatic Constants - HFA System-Wide Values
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: HfaStatic
|
|
• type: rule
|
|
• domain: System Configuration
|
|
• system: HFA
|
|
Content: Purpose: System-wide constant values used across HFA accounting modules.
|
|
Constants:
|
|
• Credit: "Credit", Debit: "Debit"
|
|
• HFA: "HFA"
|
|
• HfaAgencyManagementSystem: "HFA Agency Management System"
|
|
• HfaBusinessUnit: "HFA BU"
|
|
• HFASystems: "HFA SYSTEMS"
|
|
• NewStatus: "New", RenewalStatus: "Renewal"
|
|
• USD: "USD"
|
|
Usage: Referenced throughout invoice, general ledger, and customer modules for consistent value assignment.
|
|
Example Questions:
|
|
• What is the HFA business unit identifier?
|
|
• What currency code is used for HFA transactions?
|
|
• What status values are used for new vs renewal transactions?
|
|
---
|
|
Title: GeneralLedgerStatic Constants - GL Configuration
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: GeneralLedgerStatic
|
|
• type: rule
|
|
• domain: General Ledger
|
|
• system: Oracle GL
|
|
Content: Purpose: Centralized constants for general ledger posting configuration.
|
|
Core Constants:
|
|
• LedgerName: "Clayton GAAP USD"
|
|
• ActualFlag_A: "A", Version19: "V1.9"
|
|
• ApplicaitonName: "CMH.HFA.Accounting.AccountsReceivable"
|
|
• SourceServer: "AWS", Priority: 2, MaxWait: 3000
|
|
Account Codes:
|
|
• A198000, A200001, A200110, A201004, A450007, A450008
|
|
Cost Centers: C0700, C999, C9999 Entities: E200, E400, E500, E501, E999 Product Lines: P001, P003, P004, P999 Location: L00000, Future: F99999
|
|
Example Questions:
|
|
• What ledger name is used for HFA general ledger?
|
|
• What account codes are used for GL postings?
|
|
• What is the GL version identifier?
|
|
---
|
|
Title: GeneralLedgerHelper - GL Posting and Event Publishing
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: GeneralLedgerHelper
|
|
• type: component
|
|
• domain: General Ledger
|
|
• system: Integration Hub
|
|
Content: Purpose: Posts general ledger entries to Integration Hub and publishes retail disbursement events.
|
|
Processing Logic:
|
|
• Post(): Submits GeneralLedgerModel to Integration Hub
|
|
• GetRetailDisbursementEvent(): Maps PreGeneralLedger to CommissionDisbursementEvent for retail consumption
|
|
Key Rules:
|
|
• Returns success message with GL ID from first payload item
|
|
• Event includes SubType, PolicyNumber, CommissionReference, amounts
|
|
Example Questions:
|
|
• How do I post general ledger entries?
|
|
• Which component publishes retail disbursement events?
|
|
• What is included in commission disbursement events?
|
|
---
|
|
Title: ApPaymentRequestHelper - AP Payment Processing
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: ApPaymentRequestHelper
|
|
• type: component
|
|
• domain: Accounts Payable
|
|
• system: Integration Hub
|
|
Content: Purpose: Posts AP payment requests to Integration Hub and maps account links to keys.
|
|
Processing Logic:
|
|
• Post(): Validates and submits ApPaymentRequestModel
|
|
• MapAccountLinkToAccountKey(): Extracts iSeriesAccountKey from AccountLinks
|
|
• MapAccountLinkToPolicyNo(): Extracts HfaPolicyNumber from AccountLinks
|
|
Validation Rules:
|
|
• ClaytonBusinessUnit, ApplicationName, SourceServer required
|
|
• Payload must have at least one item
|
|
• Invoice with InvoiceNumber and InvoiceLines required
|
|
• InvoiceLine Amount must be > 0
|
|
Example Questions:
|
|
• How do I submit an AP payment request?
|
|
• How do I map account links to iSeries account key?
|
|
• What validations apply to AP payment requests?
|
|
---
|
|
Title: AccountLink Mapping Rules - iSeries and Policy Number Extraction
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: ApPaymentRequestHelper
|
|
• type: rule
|
|
• domain: Account Management
|
|
• system: Multi-system
|
|
Content: Purpose: Extract specific account keys from AccountLinks array based on AccountSource.
|
|
Mapping Logic:
|
|
• iSeriesAccountKey: Find AccountLink where AccountSource contains "iSeriesAccountKey" (case-insensitive substring match)
|
|
• HfaPolicyNumber: Find AccountLink where AccountSource equals "HfaPolicyNumber" (case-insensitive exact match)
|
|
Key Rules:
|
|
• Throws InvalidOperationException if target AccountLink not found
|
|
• Requires at least one AccountLink in AccountDto
|
|
• Returns AccountNumber from matched AccountLink
|
|
Example Questions:
|
|
• How do I extract iSeries account key from account links?
|
|
• What AccountSource identifies HFA policy numbers?
|
|
• How are account links filtered?
|
|
---
|
|
Title: UnappliedCashReceiptNotifyLambda - Email Notification Workflow
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: UnappliedCashReceiptNotifyLambda
|
|
• type: workflow
|
|
• domain: Cash Receipts
|
|
• system: Email/Mail Relay
|
|
Content: Purpose: Notifies stakeholders about unapplied cash receipts via email with Excel attachment.
|
|
Processing Flow:
|
|
1. Filter receipts: UnappliedAmount > 0 AND ReceiptState = "Unapplied" (case-insensitive)
|
|
2. Generate Excel report with receipt details (if receipts found)
|
|
3. Send email via IMailRelayService with attachment
|
|
4. Return execution result with email status
|
|
Key Rules:
|
|
• FromEmail: "noreply_hfa_accountsreceivable@claytonhomes.com"
|
|
• Resilient: sends email without attachment if Excel generation fails
|
|
• Returns success if no unapplied receipts (nothing to notify)
|
|
Example Questions:
|
|
• How are unapplied receipts identified?
|
|
• Which Lambda sends unapplied receipt notifications?
|
|
• What happens if no unapplied receipts are found?
|
|
---
|
|
Title: ReceiptStatic Constants - Receipt Configuration
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: ReceiptStatic
|
|
• type: rule
|
|
• domain: Cash Receipts
|
|
• system: Oracle AR
|
|
Content: Purpose: Constant values for receipt processing and status identification.
|
|
Constants:
|
|
• ReceiptMethodIcVmf: "HFA I/C VMF"
|
|
• Unapplied: "Unapplied"
|
|
• Remitted: "Remitted"
|
|
Usage: Used to identify receipt states and methods throughout receipt processing workflows.
|
|
Example Questions:
|
|
• What receipt method identifier is used for VMF?
|
|
• What value indicates an unapplied receipt?
|
|
• What are valid receipt status values?
|
|
---
|
|
Title: OracleIntegrationBase - Authentication and Request Building
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: OracleIntegrationBase
|
|
• type: component
|
|
• domain: Integration
|
|
• system: Oracle OIC
|
|
Content: Purpose: Base class for Oracle Integration Cloud (OIC) integrations providing authentication and request configuration.
|
|
Processing Logic:
|
|
• OracleBaseUrl(): Constructs base URL using environment-specific OIC subdomain
|
|
• GetRequestAsync(): Creates authenticated Flurl request with basic auth credentials
|
|
• GetRequestForJsonContent(): Adds "Content-Type: application/json" header
|
|
Secret Management:
|
|
• Retrieves credentials from secrets: {environment}-hfa-oic-username, {environment}-hfa-oic-password
|
|
• Retrieves OIC environment from: {environment}-hfa-oic-environment
|
|
URL Pattern: https://erp-{oicEnv}-oicintegration-idq4hj6bgo2f-ia.integration.ocp.oraclecloud.com
|
|
Example Questions:
|
|
• How do Oracle integrations authenticate?
|
|
• What is the OIC base URL structure?
|
|
• How are OIC credentials retrieved?
|
|
---
|
|
Title: OracleEndpoints - OIC API Endpoint Definitions
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: OracleEndpoints
|
|
• type: rule
|
|
• domain: Integration
|
|
• system: Oracle OIC
|
|
Content: Purpose: Centralized definitions of Oracle Integration Cloud REST API endpoints.
|
|
Endpoint Definitions:
|
|
• LookupEndpoint: /ic/api/integration/v1/flows/rest/CHI_LOOKUP_API/1.0/lookup?LookupType=CHI_HFA_LOOKUPS
|
|
• InvoiceEndpoint: /ic/api/integration/v1/flows/rest/CHI_ARINVOICE_AP/1.0/invoice
|
|
• CustomerEndpoint: /ic/api/integration/v1/flows/rest/CHI_CUSTOMER_API/1.0/Customer
|
|
• InstallmentEndpoint: /ic/api/integration/v1/flows/rest/CHI_INSTALLMEN_API/1.0/installment
|
|
• PostApplyReceiptToInvoiceEndpoint: /ic/api/integration/v1/flows/rest/CHI_RECEIPTAPP_API/1.0/ReceiptApplication
|
|
• CustomerAccountActivitySummaryEndpoint: /ic/api/integration/v1/flows/rest/CHI_ARCUSTOMER_API/1.0/ARCustomerAccountActivities
|
|
Example Questions:
|
|
• What is the endpoint for posting invoices to Oracle?
|
|
• Which endpoint retrieves customer account activity?
|
|
• What are the OIC flow names for HFA integrations?
|
|
---
|
|
Title: DecrementPolicyNumberLambda - Policy Number Decrement Logic
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: DecrementPolicyNumberLambda
|
|
• type: component
|
|
• domain: Policy Management
|
|
• system: HFA
|
|
Content: Purpose: Decrements the last two digits of a policy number using modulo arithmetic.
|
|
Processing Logic:
|
|
• Extract prefix (all characters except last 2)
|
|
• Extract numeral part (last 2 characters)
|
|
• Parse numeral as integer
|
|
• Decrement: (numeral - 1 + 100) % 100
|
|
• Return: prefix + decremented numeral (zero-padded to 2 digits)
|
|
Validation:
|
|
• Policy number must be at least 2 characters
|
|
• Last 2 characters must be numeric
|
|
Example Questions:
|
|
• How do I decrement a policy number?
|
|
• What format is required for policy numbers?
|
|
• How are policy number suffixes handled?
|
|
---
|
|
Title: StringExtension - Pre-Value Padding Helper
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: StringExtension
|
|
• type: rule
|
|
• domain: String Manipulation
|
|
• system: N/A
|
|
Content: Purpose: Extension method to pad strings with leading characters to reach target length.
|
|
Method Signature:
|
|
• AddPreValuePadding(this string value, int totalCharLimit, char paddingChar = '0')
|
|
Processing Logic:
|
|
• If value is null, treat as empty string
|
|
• If value.Length > totalCharLimit, return unchanged
|
|
• Calculate padding: totalCharLimit - value.Length
|
|
• Return: new string(paddingChar, padding) + value
|
|
Default Behavior: Pads with '0' characters
|
|
Example Questions:
|
|
• How do I left-pad a string with zeros?
|
|
• What happens if string exceeds character limit?
|
|
• How do I pad transaction numbers to fixed length?
|
|
---
|
|
Title: RetailGeneralLedger - Retail GL Mapping Component
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: RetailGeneralLedger
|
|
• type: component
|
|
• domain: General Ledger
|
|
• system: Retail
|
|
Content: Purpose: Maps retail general ledger DTOs to GeneralLedgerModel for debit and credit entries.
|
|
Processing Logic:
|
|
• MapDebit(): Maps debit retail commission to GL lines
|
|
• MapCredit(): Maps credit retail commission to GL lines
|
|
• Both methods delegate line generation to IRetailCommissionMapHelper
|
|
• Sets shared properties: JournalSource, JournalCategory, LedgerName, batch/journal names
|
|
Key Rules:
|
|
• JournalSource = JournalCategory = RetailStatic.JournalSource
|
|
• LedgerName = "Clayton GAAP USD"
|
|
• BusinessCategory = "Retail"
|
|
• ClaytonBusinessUnit = "Retail"
|
|
Example Questions:
|
|
• How do I map retail commissions to general ledger?
|
|
• Which component handles retail GL entries?
|
|
• What journal source is used for retail transactions?
|
|
---
|
|
Title: Retail GL Journal Entry Naming Convention
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: RetailGeneralLedger
|
|
• type: rule
|
|
• domain: General Ledger
|
|
• system: Retail
|
|
Content: Purpose: Defines naming conventions for retail GL batch and journal entries.
|
|
BatchName Format:
|
|
• Pattern: "INS {TransactionDate} {PolicyNumber} {TransactionNumber}"
|
|
• TransactionDate format: "yyyy-MM-dd"
|
|
JournalEntryName Format:
|
|
• Total length: exactly 12 characters
|
|
• Pattern: "INS" + zero-padding + TransactionNumber
|
|
• Padding calculation: 12 - TransactionNumber.Length - 3
|
|
• Example: "INS000012345" for transaction number 12345
|
|
Example Questions:
|
|
• What format is used for retail GL batch names?
|
|
• How are journal entry names constructed?
|
|
• What is the fixed length for journal entry names?
|
|
---
|
|
Title: LicensingLambda - Home Center License Validation
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: LicensingLambda
|
|
• type: component
|
|
• domain: Licensing
|
|
• system: Licensing API
|
|
Content: Purpose: Validates if a home center is licensed in a specific state via Licensing API integration.
|
|
Processing Logic:
|
|
• Accepts LicenseInfo with MasterDealerNumber and StateCode
|
|
• Skips validation if MasterDealerNumber <= 0
|
|
• Calls ILicensingApiIntegration.GetLicenseInfo with today's date
|
|
• Sets IsHomeCenterLicensed = true if any license matches StateCode
|
|
• Returns updated LicenseInfo
|
|
Key Rules:
|
|
• Only processes when MasterDealerNumber > 0
|
|
• Validates against current date (DateOnly.FromDateTime(DateTime.Today))
|
|
Example Questions:
|
|
• How do I check if a home center is licensed?
|
|
• Which Lambda validates dealer licensing?
|
|
• What determines if a home center is licensed in a state?
|
|
---
|
|
Title: PolicyRefundDisbursementLambda - Refund Event Publishing
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: PolicyRefundDisbursementLambda
|
|
• type: component
|
|
• domain: Refunds
|
|
• system: Event Publishing
|
|
Content: Purpose: Publishes policy refund disbursement events to accounting service event bus.
|
|
Processing Logic:
|
|
• PublishCheck(): Publishes event with EventSubType = "Check"
|
|
• PublishTransfer(): Publishes event with EventSubType = "Transfer"
|
|
• Both methods wrap PolicyRefundDisbursementPayload in EventMessage
|
|
• Delegates publishing to IAccountingServiceIntegration
|
|
Event Properties:
|
|
• EventType: "PolicyRefundDisbursement"
|
|
• Source: "Aws.Accounting.AccountsReceivable"
|
|
• Reporter: "AccountsReceivable.Event.PolicyRefundDisbursementLambda"
|
|
• EventVersion: "v1", EventClass: EventClass.Detail
|
|
Example Questions:
|
|
• How do I publish a policy refund event?
|
|
• What event types are available for refund disbursements?
|
|
• Which component publishes refund check events?
|
|
---
|
|
Title: Unapplied Receipt Filtering Rule
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: UnappliedCashReceiptNotifyLambda
|
|
• type: rule
|
|
• domain: Cash Receipts
|
|
• system: Oracle AR
|
|
Content: Purpose: Defines criteria for identifying unapplied cash receipts requiring notification.
|
|
Filter Criteria (both conditions must be true):
|
|
• UnappliedAmount > 0 (decimal comparison)
|
|
• ReceiptState equals "Unapplied" (case-insensitive string comparison)
|
|
Processing:
|
|
• Applied using LINQ Where clause on IEnumerable<OracleReceipt>
|
|
• Result used to trigger email notification workflow
|
|
• Empty result skips notification
|
|
Example Questions:
|
|
• What conditions identify an unapplied receipt?
|
|
• How are unapplied receipts filtered from receipt lists?
|
|
• What ReceiptState value triggers notifications?
|
|
---
|
|
Title: Journal Entry Description Mapping by Line Context
|
|
Metadata:
|
|
• module: CMH.HFA.Accounting.AccountsReceivable
|
|
• component: RetailGeneralLedger
|
|
• type: rule
|
|
• domain: General Ledger
|
|
• system: Retail
|
|
Content: Purpose: Maps business group line context to appropriate journal entry descriptions.
|
|
Mapping Rules:
|
|
• HfaHmhPremium → "InsPolicyTransaction" (from JournalEntryLineDescription)
|
|
• HfaMhwHbppPremium → "HbpPolicies"
|
|
• HfaMhwEscPremium → "HbpPolicies"
|
|
• Default: "HbpPolicies"
|
|
Processing: Uses case-insensitive StringComparison.OrdinalIgnoreCase for matching.
|
|
Example Questions:
|
|
• What journal description is used for HMH premium?
|
|
• How are journal entry descriptions determined?
|
|
• What description applies to HBPP premium transactions?
|
|
---
|
|
This completes the RAG knowledge chunks for the CMH.HFA.Accounting.AccountsReceivable module. Each chunk is atomic, focuses on a single concept, and provides query-ready information optimized for retrieval-augmented generation systems.
|