COBRAPaymentAmount

Update COBRA Coverage with Payment

Minor Business Rule

Object Name: N0800280

Parent DLL: CHRM

Location: Client/Server

Language: NER

Data Structure

D0800280A - COBRA Payment Amount

Parameter NameData ItemData TypeReq/OptI/O/Both
mnParticipantAddressPAN8MATH_NUMERICOPTINPUT

The address number of the participant as defined in the Participant file table (F08901).

szQualifyingEvent1QE1charOPTINPUT

A user defined code (08/QE) that indicates the initial event that qualified a participant for COBRA continuation coverage.  

jdQualifyingEventDate1QD1JDEDATEOPTINPUT

The date of the first (initial) event that qualified a participant for COBRA continuation coverage.

jdDateLastPaidDLPJDEDATEOPTOUTPUT

The date of the last premium payment.

cEverestEventPoint01EV01charOPTINPUT

An option that specifies the type of processing for an event.

szError_DTAIDTAIcharOPTNONE

A code that identifies and defines a unit of information. It is an alphanumeric code up to 8 characters long that does not allow blanks or 
special characters such as %, &, or +. You create new data items using system codes 55-59. You cannot change the alias.

mnMonthlyPremiumMATH01MATH_NUMERICOPTOUTPUT

- - - Good Performance Low Value. 

mnBalanceDueMATH01MATH_NUMERICOPTOUTPUT

- - - Good Performance Low Value. 

Related Functions

None

Related Tables

None
COBRAUpdateCoverageWithPayment

COBRAUpdateCoverageWithPayment

Update COBRA Coverage with Payment

Minor Business Rule

Object Name: N0800280

Parent DLL: CHRM

Location: Client/Server

Language: NER

1.1Purpose

This function is used from the COBRA received payments application.  It is used to update the F08920 when payments are received or voided.


1.2Setup Notes and Prerequisites



1.3Special Logic


 It updates the payments received and payments remaining and last pay date.  It only updates those records that match the payments due and have no 

balance.  Otherwise it will return the error code MORE/LESS and the amount due and difference between amount due and payment.


2.Technical Specifications


2.1Parameters:

Data Item Data Structure DescriptionII/ORequiredNotes

PAN8mnParticipantAddressIYCOBRA Participant Addresss

QE1szQualifyingEvent1IY

QD1jdQualifyingEventDate1IY

CBCKmnCOBRACheckNumberIY

CKAMTmnCOBRACheckAmountIY

CBCKSszCOBRACheckStatusIY

CBCKADjdDateCOBRACheckArrivalIY

CBCKDTjdDateCOBRACheckDateIN

EV01cSuppressErrorINMay suppress error

DTAIszErrorCodeONError Code returned 

MATH01mnTotalPaymentDueONTotal of all payments/balances

PREPmnDifferenceAmountPaymentONDifference between check and due

DATE01jdDatebeforeAddI/OYWill be saved to F08994




2.2Related Tables 

Table Table Description

F08920COBRA Coverage

F08994COBREA Received Payments


2.3Related Business Functions

NONE


2.4Processing 



// // Set process code to E for only elected plans

VA evt_mnTotalPremiumPayment_PREP = "0"

VA evt_mnTotalPremBalanceDue_PBL = "0"

VA evt_cCobraProcessCode_CYST = "E"

// ********************************************

// open coverage table

// ********************************************

F08920.Open

// ********************************************

// select only records that are elected and for this person/event Add Payments

// ********************************************

F08920.Select

F08920.Fetch Next

While SV File_IO_Status is equal to CO SUCCESS 

// ********************************************

// add up payments for each elected benefit

// ********************************************

VA evt_mnTotalPremiumPayment_PREP = ([VA evt_mnTotalPremiumPayment_PREP]+[VA evt_mnPremiumPayment_PREP])

VA evt_mnTotalPremBalanceDue_PBL = [VA evt_mnTotalPremBalanceDue_PBL]+[VA evt_mnPremiumBalanceDue_PBL]

F08920.Fetch Next

End While

F08920.Close

VA evt_mnTotalAmountDue_MATH01 = [VA evt_mnTotalPremBalanceDue_PBL]+[VA evt_mnTotalPremiumPayment_PREP]

// ********************************************

// send back total payment and previous date

// ********************************************

BF jdDatebeforeAdd = VA evt_jdDateLastPaid_DLP

BF mnTotalPaymentDue = VA evt_mnTotalAmountDue_MATH01

// ********************************************

// Only Update F08920 record of amount of check is equal to premium payment

// and there is no outstanding balance.

// ********************************************

If BF mnCOBRACheckAmount is not equal to VA evt_mnTotalAmountDue_MATH01 Or VA evt_mnTotalPremBalanceDue_PBL 

is not equal to  

// ********************************************

// Send out code specifiying that check was more or less than total due

// ********************************************

If BF mnCOBRACheckAmount is less than VA evt_mnTotalAmountDue_MATH01 

BF szErrorCode = "LESS"

// ********************************************

// Send back difference when less

// ********************************************

BF mnDifferenceAmountPayment = [VA evt_mnTotalAmountDue_MATH01]-[BF mnCOBRACheckAmount]

Else

If BF mnCOBRACheckAmount is greater than VA evt_mnTotalAmountDue_MATH01 

BF szErrorCode = "MORE"

// ********************************************

// Send back difference when more

// ********************************************

BF mnDifferenceAmountPayment = [BF mnCOBRACheckAmount]-[VA evt_mnTotalAmountDue_MATH01]

Else

// ********************************************

// Indicate that a balance is due

// ********************************************

BF szErrorCode = "BAL"

End If

End If

Else

If BF mnCOBRACheckAmount is equal to VA evt_mnTotalAmountDue_MATH01 And VA 

evt_mnTotalPremBalanceDue_PBL is equal to  

// ********************************************

// Check amount == premium and no balance due

// ********************************************

F08920.Open

F08920.Select

F08920.Fetch Next

While SV File_IO_Status is equal to CO SUCCESS 

// ********************************************

// 0nly update on an add (check status A)

// ********************************************

If BF szCOBRACheckStatus is equal to "A" 

// ********************************************

// ADDING

// ********************************************

VA evt_mnNoPaymentsRemaining_NPX = [VA evt_mnNoPaymentsRemaining_NPX]-1

VA evt_mnNoPaymentsReceived_NPR = [VA evt_mnNoPaymentsReceived_NPR]+1

F08920.Update

Else

// ********************************************

// VOIDING

// ********************************************

VA evt_mnNoPaymentsRemaining_NPX = [VA evt_mnNoPaymentsRemaining_NPX]+1

VA evt_mnNoPaymentsReceived_NPR = [VA evt_mnNoPaymentsReceived_NPR]-1

// ********************************************

// If 0 payments recived last pay date is blank

// ********************************************

If VA evt_mnNoPaymentsReceived_NPR is equal to  

VA evt_jdDateLastPaid_DLP = ""

Else

// ********************************************

// Loop through payments to find the most recent last pay date

// ********************************************

VA evt_szCOBRACheckStatus_CBCKS = "A"

F08994.Open

F08994.Select

F08994.Fetch Next

While SV File_IO_Status is equal to CO SUCCESS 

If VA evt_jdMostRecentArrival_DATE01 is greater than VA evt_jdSaveArrival_DATE01 

VA evt_jdSaveArrival_DATE01 = VA evt_jdMostRecentArrival_DATE01

End If

If VA evt_jdMostRecentDate_DATE01 is greater than VA evt_jdSavePreviousDate_DATE01 

VA evt_jdSavePreviousDate_DATE01 = VA evt_jdMostRecentDate_DATE01

End If

F08994.Fetch Next

End While

F08994.Close

If VA evt_jdSaveArrival_DATE01 is greater than VA evt_jdSavePreviousDate_DATE01 

VA evt_jdDateLastPaid_DLP = VA evt_jdSaveArrival_DATE01

Else

VA evt_jdDateLastPaid_DLP = VA evt_jdSavePreviousDate_DATE01

End If

End If

F08920.Update

End If

F08920.Fetch Next

End While

// ********************************************

// End of if payment = amount 

// ********************************************

F08920.Close

End If

End If


Data Structure

D0800280 - Update COBRA Coverage with Payment

Parameter NameData ItemData TypeReq/OptI/O/Both
mnParticipantAddressPAN8MATH_NUMERICREQINPUT

The address number of the participant as defined in the Participant file table (F08901).

szQualifyingEvent1QE1charREQINPUT

A user defined code (08/QE) that indicates the initial event that qualified a participant for COBRA continuation coverage.  

jdQualifyingEventDate1QD1JDEDATEREQINPUT

The date of the first (initial) event that qualified a participant for COBRA continuation coverage.

mnCOBRACheckNumberCBCKMATH_NUMERICOPTINPUT

The number on the check received for payment of COBRA benefits.

mnCOBRACheckAmountCKAMTMATH_NUMERICOPTINPUT

The amount of the payment check received for COBRA benefits.

szCOBRACheckStatusCBCKScharOPTINPUT

The status of the check entry in the F08994 - COBRA Payment History file. Based on UDC 08/ZO COBRA Received Payment Status. Valid 
values are: A Check Accepted (the payment entry is correct)   V Voided Check Entry (the payment entry is incorrect or invalid)

jdDateCOBRACheckArrivalCBCKADJDEDATEOPTINPUT

The date that the check for payment of COBRA benefits was received.

jdDateCOBRACheckDateCBCKDTJDEDATEOPTINPUT

The date on the check received for payment of COBRA benefits.

cSuppressErrorEV01charOPTINPUT

An option that specifies the type of processing for an event.

szErrorCodeDTAIcharOPTOUTPUT

A code that identifies and defines a unit of information. It is an alphanumeric code up to 8 characters long that does not allow blanks or 
special characters such as %, &, or +. You create new data items using system codes 55-59. You cannot change the alias.

mnDifferenceAmountPaymentPREPMATH_NUMERICOPTOUTPUT

The premium payment amount that applies to this plan.

jdDatebeforeAddDATE01JDEDATEOPTBOTH

Event point for JDE Date.

mnTotalPaymentDueMATH01MATH_NUMERICOPTOUTPUT

- - - Good Performance Low Value. 

Related Functions

None

Related Tables

None