RAG Knowledge Chunks for CMH.HFA.Accounting.AccountsReceivable.Adjustments --- Title: InvoiceAdjustment Lambda - Invoice Adjustment Get/Post/Map Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: InvoiceAdjustment • type: component • domain: Invoice Adjustments • system: Oracle Content: Purpose: AWS Lambda for retrieving, creating, and mapping invoice adjustments in Oracle AR. Processing Logic: • Get(): Retrieves invoice adjustments by filter criteria via IInvoiceAdjustmentIntegration • Post(): Creates new invoice adjustment in Oracle • Map(): Filters adjustments list by ReceivablesTrxId, creates mapped adjustment with negated amount Key Rules: • Throws ArgumentNullException if request is null • Map uses ordinal string comparison for ReceivablesTrxId matching • Mapped adjustment: Amount negated (*-1), ApplyDate/GlDate set to today • Sets OrgId, SetOfBooksId from AdjustmentConfiguration Example Questions: • How do I create an invoice adjustment in Oracle? • Which Lambda maps earned premium invoice adjustments? • How are invoice adjustment amounts negated? --- Title: CreditMemoAdjustment Lambda - Credit Memo Adjustment Operations Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: CreditMemoAdjustment • type: component • domain: Credit Memo Adjustments • system: Oracle Content: Purpose: AWS Lambda for retrieving, creating, and mapping credit memo adjustments in Oracle AR. Processing Logic: • Get(): Retrieves credit memo adjustments by filter criteria • Post(): Creates new credit memo adjustment in Oracle • Map(): Filters adjustments by ReceivablesTrxId, creates mapped adjustment with negated amount Key Rules: • Throws ArgumentNullException if request is null • Map uses ordinal string comparison for ReceivablesTrxId matching (trimmed) • Mapped adjustment: Amount negated (*-1), ApplyDate/GlDate set to today • TransactionAdjustmentType="LINE", AdjustmentType="M", CurrencyCode="USD" Example Questions: • How do I post a credit memo adjustment? • Which Lambda handles credit memo adjustment mapping? • What adjustment type is used for credit memos? --- Title: WriteOffAdjustment Lambda - Write-Off Threshold Logic Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: WriteOffAdjustment • type: component • domain: Write-Off Adjustments • system: Oracle Content: Purpose: Creates write-off adjustments for credit memos and installments below threshold balance. Processing Logic: • Map1(): Maps credit memo to write-off adjustment if UnappliedBalance within threshold • Map2(): Maps installment to write-off adjustment if single open installment within threshold • Returns null if balance exceeds WriteOffBalanceThreshold (5.00) or is zero Key Rules: • WriteOffBalanceThreshold = 5m (decimal) • TransactionAdjustmentType="LINE", AdjustmentType="M" • Amount negated: Math.Abs(balance) * -1 • Map2 throws exception if multiple open installments found Example Questions: • What is the write-off balance threshold? • How do I write off small credit memo balances? • Which Lambda handles installment write-offs? --- Title: Write-Off Balance Threshold Rule Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: WriteOffAdjustment • type: rule • domain: Write-Off Adjustments • system: Oracle Content: Purpose: Defines threshold for automatic write-off eligibility. Threshold Value: 5.00 (decimal constant WriteOffBalanceThreshold) Eligibility Criteria: • Credit Memo: 0 < Math.Abs(UnappliedBalanceDecimal) <= 5.00 • Installment: 0 < Sum(InstallmentBalanceDue) <= 5.00 • Returns null if balance is zero or exceeds threshold Additional Rules: • Only "Open" status installments considered • Only one open installment allowed for write-off • Amount always negated in adjustment Example Questions: • What is the maximum write-off amount? • When is a credit memo eligible for write-off? • What balance triggers automatic write-off? --- Title: ServiceFeeAdjustment Lambda - Service Fee Processing Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: ServiceFeeAdjustment • type: component • domain: Service Fee Adjustments • system: Oracle Content: Purpose: Processes and maps service fee adjustments for open installments. Processing Logic: • Pre(): Filters open installments with AmountAdjusted > 0, creates adjustment list • Map(): Creates reinstatement service fee for earliest open installment within 30 days • MapFee(): Creates fee adjustment for earliest open installment if no matching adjustment exists • Value(): Returns sum of adjustment amounts from Pre() Key Rules: • Only "Open" status installments processed (case-insensitive) • InstallmentBalanceDue > 0 and AmountAdjustedDecimal > 0 required • Amount negated: AmountAdjustedDecimal * -1 • Earliest installment selected by InstallmentDueDate Example Questions: • How are service fee adjustments calculated? • Which Lambda processes installment service fees? • What conditions trigger service fee adjustments? --- Title: Service Fee Adjustment Eligibility Rule Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: ServiceFeeAdjustment • type: rule • domain: Service Fee Adjustments • system: Oracle Content: Purpose: Defines criteria for service fee adjustment creation on installments. Eligibility Criteria (all must be true): • InstallmentBalanceDue > 0 • AmountAdjustedDecimal > 0 • InstallmentStatus = "Open" (case-insensitive) • ReceivablesTrxId matches AdjustmentConfiguration.ReceivableTrxId Timing Rule: • InstallmentDueDate <= DateTime.Today.AddDays(30) • Earliest open installment selected (OrderBy InstallmentDueDate) Processing: • Requires more than 1 installment • Skips if matching adjustment already exists Example Questions: • When is a service fee adjustment applicable? • What date range qualifies for service fee? • How are eligible installments identified? --- Title: AdjustmentConfigurationModel - Adjustment Configuration Structure Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: AdjustmentConfigurationModel • type: concept • domain: Adjustment Configuration • system: Oracle Content: Purpose: Configuration model defining Oracle adjustment transaction parameters. Properties: • Id (Guid): Unique identifier • ReceivableTrxId (string): Oracle receivables transaction ID • Name, Type: Configuration identifiers • OrgId, SetOfBooksId: Oracle organizational identifiers • IsActiveFlag (bool): Active status • StartActiveDate, InactiveDate, EndActiveDate: Date range strings Usage: Passed in mapping DTOs to provide Oracle-specific configuration values for adjustment creation. Example Questions: • What fields configure adjustment transactions? • How are Oracle org parameters specified? • What is ReceivableTrxId used for? --- Title: GetAdjustmentDto - Base Adjustment Query DTO Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: GetAdjustmentDto • type: concept • domain: Adjustment Retrieval • system: Oracle Content: Purpose: Abstract base DTO for querying adjustments with common filter parameters. Properties: • AdjustmentNumber (string): Filter by adjustment number • AdjustmentId (string): Filter by adjustment ID Derived Classes: • GetInvoiceAdjustmentDto: Adds InvoiceAdjustmentId property • GetCreditMemoAdjustmentDto: Adds CreditMemoAdjustmentId property Usage: Provides common query parameters inherited by specific adjustment type queries. Example Questions: • What parameters filter adjustment queries? • How do I query adjustments by number? • What is the base DTO for adjustment retrieval? --- Title: MapInvoiceAdjustmentDto - Invoice Adjustment Mapping Input Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: MapInvoiceAdjustmentDto • type: concept • domain: Invoice Adjustments • system: Oracle Content: Purpose: Input DTO for mapping earned premium invoice adjustments from adjustment list. Properties: • Adjustments (IList): List of adjustments to filter • AdjustmentConfiguration (AdjustmentConfigurationModel): Oracle configuration parameters Processing Context: • Used by InvoiceAdjustment.Map() to find matching adjustment by ReceivableTrxId • Returns mapped adjustment with negated amount and today's dates Example Questions: • What input is needed for invoice adjustment mapping? • How are adjustments filtered for mapping? • What DTO provides adjustment configuration? --- Title: MapCreditMemoAdjustmentDto - Credit Memo Adjustment Mapping Input Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: MapCreditMemoAdjustmentDto • type: concept • domain: Credit Memo Adjustments • system: Oracle Content: Purpose: Input DTO for mapping earned premium credit memo adjustments from adjustment list. Properties: • Adjustments (IList): List of credit memo adjustments to filter • AdjustmentConfiguration (AdjustmentConfigurationModel): Oracle configuration parameters Processing Context: • Used by CreditMemoAdjustment.Map() to find matching adjustment by ReceivableTrxId • Returns mapped adjustment with negated amount and today's dates Example Questions: • What input is needed for credit memo adjustment mapping? • How do I pass credit memo adjustments for mapping? • What configuration is required for credit memo adjustments? --- Title: MapCreditMemoWriteOffAdjustmentDto - Credit Memo Write-Off Input Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: MapCreditMemoWriteOffAdjustmentDto • type: concept • domain: Write-Off Adjustments • system: Oracle Content: Purpose: Input DTO for creating credit memo write-off adjustments. Properties: • CreditMemo (CreditMemo): Credit memo with UnappliedBalanceDecimal to write off • AdjustmentConfiguration (AdjustmentConfigurationModel): Oracle configuration parameters Processing Context: • Used by WriteOffAdjustment.Map1() to create write-off for balances <= $5.00 • Returns null if balance exceeds threshold or is zero Example Questions: • What input creates credit memo write-off adjustments? • How do I pass credit memo data for write-off? • What DTO wraps credit memo and configuration? --- Title: MapInstallmentWriteOffAdjustmentDto - Installment Write-Off Input Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: MapInstallmentWriteOffAdjustmentDto • type: concept • domain: Write-Off Adjustments • system: Oracle Content: Purpose: Input DTO for creating installment write-off adjustments. Properties: • Installments (IList): List of installments to evaluate for write-off • AdjustmentConfiguration (AdjustmentConfigurationModel): Oracle configuration parameters Processing Context: • Used by WriteOffAdjustment.Map2() to create write-off for single open installment • Filters for "Open" status installments • Returns null if multiple open installments or balance exceeds threshold Example Questions: • What input creates installment write-off adjustments? • How do I pass installments for write-off processing? • What DTO handles installment write-off mapping? --- Title: PreProcessServiceFeeAdjustmentDto - Service Fee Pre-Processing Input Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: PreProcessServiceFeeAdjustmentDto • type: concept • domain: Service Fee Adjustments • system: Oracle Content: Purpose: Input DTO for pre-processing service fee adjustments on installments. Properties: • Installments (IList): List of installments to process • Adjustments (IList): Existing adjustments • AdjustmentConfiguration (AdjustmentConfigurationModel): Oracle configuration parameters Processing Context: • Used by ServiceFeeAdjustment.Pre() to create adjustments for open installments with service fees • Matches installments to adjustments by PaymentScheduleId • Filters for InstallmentBalanceDue > 0, AmountAdjustedDecimal > 0, Status="Open" Example Questions: • What input is needed for service fee pre-processing? • How are installments and adjustments passed together? • What DTO handles service fee adjustment creation? --- Title: PreProcessReinstatementServiceFeeAdjustmentDto - Reinstatement Fee Input Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: PreProcessReinstatementServiceFeeAdjustmentDto • type: concept • domain: Service Fee Adjustments • system: Oracle Content: Purpose: Input DTO for creating reinstatement service fee adjustments. Properties: • Installments (IList): List of installments to evaluate • Invoice (OracleInvoice): Invoice containing InstallmentFee value • AdjustmentConfiguration (AdjustmentConfigurationModel): Oracle configuration parameters Processing Context: • Used by ServiceFeeAdjustment.Map() for reinstatement scenarios • Selects earliest open installment within 30 days of due date • Uses Invoice.InstallmentFee as adjustment amount Example Questions: • What input creates reinstatement service fee adjustments? • How is installment fee passed for reinstatement? • What DTO handles reinstatement fee processing? --- Title: MapServiceFeeAdjustmentDto - Service Fee Mapping Input Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: MapServiceFeeAdjustmentDto • type: concept • domain: Service Fee Adjustments • system: Oracle Content: Purpose: Input DTO for mapping service fee adjustments to invoices. Properties: • Installments (IList): Installments for fee allocation • Invoice (OracleInvoice): Invoice to apply fee adjustment • Adjustments (IList): Existing adjustments to check • AdjustmentConfiguration (AdjustmentConfigurationModel): Oracle configuration Processing Context: • Used by ServiceFeeAdjustment.MapFee() to create fee adjustment if none exists • Checks for matching ReceivableTrxId and PaymentScheduleId • Creates adjustment only if earliest open installment within 30 days and no match found Example Questions: • What input maps service fee to invoice? • How do I check for existing service fee adjustments? • What DTO handles service fee invoice mapping? --- Title: OracleInvoiceAdjustment Integration - Invoice Adjustment API Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: OracleInvoiceAdjustment • type: component • domain: Invoice Adjustments • system: Oracle OIC Content: Purpose: Oracle Integration Cloud (OIC) client for invoice adjustment operations. Interface Methods: • GetInvoiceAdjustmentsAsync(): Retrieves invoice adjustments by query parameters • PostInvoiceAdjustmentAsync(): Posts new invoice adjustment to Oracle Implementation: • Inherits from OracleBaseAdjustment • Delegates to base GetAdjustmentsAsync and PostAdjustmentsAsync • Passes InvoiceAdjustmentId as customerTrxId parameter Example Questions: • How do I integrate with Oracle invoice adjustment API? • Which integration retrieves invoice adjustments? • What interface defines invoice adjustment operations? --- Title: OracleCreditMemoAdjustment Integration - Credit Memo Adjustment API Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: OracleCreditMemoAdjustment • type: component • domain: Credit Memo Adjustments • system: Oracle OIC Content: Purpose: Oracle Integration Cloud (OIC) client for credit memo adjustment operations. Interface Methods: • GetCreditMemoAdjustmentsAsync(): Retrieves credit memo adjustments by query parameters • PostCreditMemoAdjustmentAsync(): Posts new credit memo adjustment to Oracle Implementation: • Inherits from OracleBaseAdjustment • Delegates to base GetAdjustmentsAsync and PostAdjustmentsAsync • Passes CreditMemoAdjustmentId as customerTrxId parameter Example Questions: • How do I integrate with Oracle credit memo adjustment API? • Which integration posts credit memo adjustments? • What interface defines credit memo adjustment operations? --- Title: OracleBaseAdjustment - Base Adjustment Integration Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: OracleBaseAdjustment • type: component • domain: Adjustments • system: Oracle OIC Content: Purpose: Abstract base class for Oracle adjustment API integrations. Endpoint: • AdjustmentEndpoint: "/ic/api/integration/v1/flows/rest/CHI_ADJUSTMENT_API/1.0/Adjustment" Methods: • GetAdjustmentsAsync(): GET with query params (CustomerTrxId, AdjustmentId, AdjustmentNumber), returns ARAdjustments array from JSON • PostAdjustmentsAsync(): POST with JSON body, returns deserialized response Key Rules: • Allows HTTP 404 status on GET requests • Extracts adjustments from JObject["ARAdjustments"] • Returns empty list if null Example Questions: • What is the Oracle adjustment API endpoint? • How are adjustment query parameters passed? • Which base class handles adjustment API calls? --- Title: Adjustment Mapping Amount Negation Rule Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: InvoiceAdjustment, CreditMemoAdjustment, WriteOffAdjustment, ServiceFeeAdjustment • type: rule • domain: Adjustments • system: Oracle Content: Purpose: Defines amount transformation rule for adjustment mapping across all adjustment types. Negation Formula: • Invoice/CreditMemo Earned Premium: (decimal.Parse(Amount) * -1).ToString() • Write-Off Credit Memo: (Math.Abs(UnappliedBalanceDecimal) * -1).ToString() • Write-Off Installment: (InstallmentBalanceDue * -1).ToString() • Service Fee: (AmountAdjustedDecimal * -1).ToString() Key Rule: All adjustment amounts are negated (*-1) during mapping to reverse original transaction amounts. Example Questions: • Why are adjustment amounts negated? • How are adjustment amounts calculated? • What transformation is applied to adjustment amounts? --- Title: Adjustment Common Field Values Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: All Adjustment Lambdas • type: rule • domain: Adjustments • system: Oracle Content: Purpose: Defines standard field values consistently applied across all adjustment types. Standard Values: • TransactionAdjustmentType: "LINE" • AdjustmentType: "M" • CurrencyCode: "USD" • ApplyDate: DateOnly.FromDateTime(DateTime.Today) • GlDate: DateOnly.FromDateTime(DateTime.Today) Configuration-Derived Values: • OrgId: From AdjustmentConfiguration.OrgId • SetOfBooksId: From AdjustmentConfiguration.SetOfBooksId • ReceivablesTrxId: From AdjustmentConfiguration.ReceivableTrxId Example Questions: • What adjustment type code is used? • What currency is used for adjustments? • What GL date is set for adjustments? --- Title: Adjustment Workflow - Earned Premium Reversal Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: InvoiceAdjustment, CreditMemoAdjustment • type: workflow • domain: Invoice/Credit Memo Adjustments • system: Oracle Content: Purpose: Describes workflow for reversing earned premium via invoice or credit memo adjustments. Workflow Steps: 1. Retrieve existing adjustments list from Oracle 2. Filter adjustments: match ReceivablesTrxId (trimmed, ordinal comparison) to AdjustmentConfiguration.ReceivableTrxId 3. If match found, create new adjustment copying matched values 4. Negate amount: (decimal.Parse(match.Amount) * -1).ToString() 5. Set ApplyDate and GlDate to today 6. Set OrgId, SetOfBooksId from AdjustmentConfiguration 7. Post new adjustment to Oracle via integration Example Questions: • How are earned premium adjustments reversed? • What workflow maps adjustment amounts? • How is ReceivablesTrxId matched for adjustments? --- Title: Service Fee Adjustment Workflow - Open Installment Processing Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: ServiceFeeAdjustment • type: workflow • domain: Service Fee Adjustments • system: Oracle Content: Purpose: Describes workflow for creating service fee adjustments on open installments. Workflow Steps: 1. Match installments to adjustments by PaymentScheduleId (InstallmentId) 2. Filter for: InstallmentBalanceDue > 0, AmountAdjustedDecimal > 0, Status="Open", ReceivablesTrxId match 3. For each eligible installment, create InvoiceAdjustmentModel 4. Set Amount to (AmountAdjustedDecimal * -1) 5. Set CustomerTrxId from TransactionId 6. Set TransactionAdjustmentType="LINE", AdjustmentType="M" 7. Apply dates and configuration values 8. Return list of adjustments for posting Example Questions: • How are service fees matched to installments? • What workflow creates service fee adjustments? • How are installments filtered for service fee processing? --- Title: Write-Off Adjustment Workflow - Threshold-Based Creation Metadata: • module: CMH.HFA.Accounting.AccountsReceivable.Adjustments • component: WriteOffAdjustment • type: workflow • domain: Write-Off Adjustments • system: Oracle Content: Purpose: Describes workflow for creating write-off adjustments based on balance threshold. Workflow Steps (Credit Memo): 1. Check UnappliedBalanceDecimal != 0 and Math.Abs(UnappliedBalanceDecimal) <= 5.00 2. If within threshold, create adjustment with negated absolute value 3. Otherwise return null Workflow Steps (Installment): 1. Filter for InstallmentStatus="Open" 2. Check sum(InstallmentBalanceDue) > 0 and <= 5.00 3. Ensure exactly one open installment (throw exception if multiple) 4. Create adjustment with negated balance 5. Otherwise return null Example Questions: • How are write-offs created based on balance? • What workflow checks write-off threshold? • When is a write-off adjustment generated? --- This completes the RAG knowledge chunks for the CMH.HFA.Accounting.AccountsReceivable.Adjustments module. Each chunk is atomic, non-overlapping, and optimized for retrieval-augmented generation systems with precise technical information.