home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / software / pelne / optionp / iis4_07.cab / BenefitList.cls < prev    next >
Text File  |  1997-11-01  |  22KB  |  712 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "BenefitList"
  6. Attribute VB_GlobalNameSpace = False
  7. Attribute VB_Creatable = True
  8. Attribute VB_PredeclaredId = False
  9. Attribute VB_Exposed = True
  10. Option Explicit
  11.  
  12. Function SummaryForID(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  13.     ByVal intBenefitYear As Integer)
  14.  
  15.     ' Define transaction context for Microsoft Transaction Server(MTS)
  16.     Dim objContext As ObjectContext
  17.     Set objContext = GetObjectContext
  18.  
  19.     On Error GoTo ErrorHandler
  20.   
  21.     ' Execute SQLServer Stored Procedure to return recordset. All of the methods in
  22.     '   the BenefitList class interact with the database through Stored Procedures.
  23.     '   Methods in the Employee class interact with the database through query strings.
  24.     '   Both ways are demonstrated, but Stored Procedures usually run faster.
  25.     Dim rst As New ADOR.Recordset, strSQL As String
  26.     
  27.     ' "rst.CursorLocation = adUseClient" would put the cursor work on the client of
  28.     '   the SQLServer (in this case the Web server), which would mean less work for
  29.     '   the database. Not used here because adUseClient requires Remote Data
  30.     '   Service (RDS), which may not be loaded on the Web server.
  31.     rst.CursorLocation = adUseServer
  32.     strSQL = "EXECUTE sp_SummaryForID " & lngEmployeeId & ", " & intBenefitYear
  33.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  34.     
  35.     ' Return the recordset to the Active Server Page (ASP)
  36.     Set SummaryForID = rst
  37.     
  38.     ' Tell MTS the work by this method is now commitable
  39.     objContext.SetComplete
  40.     Exit Function
  41.     
  42. ErrorHandler:
  43.     ' This code is required to get real error messages back
  44.     If Not rst Is Nothing Then Set rst = Nothing
  45.  
  46.     ' Tell MTS to abort the work done by this method, which will reverse all
  47.     '   the work done by this method, and as far back up the line as defined
  48.     '   by the calling level transaction contexts.
  49.     objContext.SetAbort
  50.     Err.Raise Err.Number, "BenefitList.SummaryForID()", Err.Description
  51.  
  52. End Function
  53.  
  54. Function BenefitsForID(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  55.     ByVal intBenefitYear As Integer)
  56.     
  57.     Dim objContext As ObjectContext
  58.     Set objContext = GetObjectContext
  59.     
  60.     On Error GoTo ErrorHandler
  61.  
  62.     Dim rst As New ADOR.Recordset, strSQL As String
  63.     rst.CursorLocation = adUseServer
  64.     strSQL = "EXECUTE sp_BenefitsForID " & lngEmployeeId & ", " & intBenefitYear
  65.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  66.  
  67.     Set BenefitsForID = rst
  68.  
  69.     objContext.SetComplete
  70.     Exit Function
  71.     
  72. ErrorHandler:
  73.     If Not rst Is Nothing Then Set rst = Nothing
  74.  
  75.     objContext.SetAbort
  76.     Err.Raise Err.Number, "BenefitList.BenefitsForID()", Err.Description
  77.  
  78. End Function
  79.  
  80. Function Update(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  81.      ByVal lngBenefitId As Long, ByVal lngPlanId As Long, _
  82.      ByVal lngTaxStatusId As Long)
  83.  
  84.     Dim objContext As ObjectContext
  85.     Set objContext = GetObjectContext
  86.     
  87.     On Error GoTo ErrorHandler
  88.  
  89.     Dim cnn As New ADODB.Connection, strSQL As String
  90.     cnn.Open "FileDSN=" & strFileDSN
  91.     strSQL = "EXECUTE sp_Update " & lngPlanId & ", " & lngTaxStatusId & _
  92.         ", " & lngEmployeeId & ", " & lngBenefitId
  93.     cnn.Execute (strSQL)
  94.  
  95.     objContext.SetComplete
  96.     Exit Function
  97.     
  98. ErrorHandler:
  99.     If Not cnn Is Nothing Then Set cnn = Nothing
  100.  
  101.     objContext.SetAbort
  102.     Err.Raise Err.Number, "BenefitList.Update()", Err.Description
  103.  
  104. End Function
  105.  
  106. Function GetTotalCost(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  107.     ByVal intBenefitYear As Integer, ByVal lngTaxStatusId As Long)
  108.     
  109.     Dim objContext As ObjectContext
  110.     Set objContext = GetObjectContext
  111.     
  112.     On Error GoTo ErrorHandler
  113.  
  114.     Dim rst As New ADOR.Recordset, strSQL As String
  115.     rst.CursorLocation = adUseServer
  116.     strSQL = "EXECUTE sp_GetTotalCost " & lngEmployeeId & ", " & intBenefitYear & _
  117.       ", " & lngTaxStatusId
  118.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  119.         
  120.     objContext.SetComplete
  121.     If Not IsNull(rst("TotalCost")) Then
  122.       GetTotalCost = rst("TotalCost")
  123.     Else
  124.       GetTotalCost = 0
  125.     End If
  126.  
  127.     Exit Function
  128.     
  129. ErrorHandler:
  130.     If Not rst Is Nothing Then Set rst = Nothing
  131.  
  132.     objContext.SetAbort
  133.     Err.Raise Err.Number, "BenefitList.GetTotalCost()", Err.Description
  134.  
  135. End Function
  136.  
  137. Function GetTotalCredits(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  138.     ByVal intBenefitYear As Integer)
  139.     
  140.     Dim objContext As ObjectContext
  141.     Set objContext = GetObjectContext
  142.     
  143.     On Error GoTo ErrorHandler
  144.     
  145.     Dim rst As New ADOR.Recordset, strSQL As String
  146.     rst.CursorLocation = adUseServer
  147.     strSQL = "EXECUTE sp_GetTotalCredits " & lngEmployeeId & ", " & intBenefitYear
  148.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  149.  
  150.     objContext.SetComplete
  151.     If Not IsNull(rst("TotalCredits")) Then
  152.       GetTotalCredits = rst("TotalCredits")
  153.     Else
  154.       GetTotalCredits = 0
  155.     End If
  156.     
  157.     Exit Function
  158.     
  159. ErrorHandler:
  160.     If Not rst Is Nothing Then Set rst = Nothing
  161.  
  162.     objContext.SetAbort
  163.     Err.Raise Err.Number, "BenefitList.GetTotalCredits()", Err.Description
  164.  
  165. End Function
  166.  
  167. Function GetTotalPaycheck(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  168.     ByVal intBenefitYear As Integer)
  169.     
  170.     ' The calculations in this method probably have nothing to do with how taxes are
  171.     '   calculated where you work. They do show the effect of pretax vs after-tax
  172.     '   benefits. Don't use these calculations for anything real!
  173.     
  174.     Dim objContext As ObjectContext
  175.     Set objContext = GetObjectContext
  176.     
  177.     On Error GoTo ErrorHandler
  178.     
  179.     Dim curAfterTaxCost As Currency, curPreTaxCost As Currency, _
  180.       curTotalCredits As Currency, curPeriodEarnings As Currency, _
  181.       intExemptions As Integer, curTotalPaycheck As Currency, _
  182.       curAnnualEarnings As Currency, curTotalExemptions As Currency, _
  183.       curAnnualAfterTaxCost As Currency, curAnnualPreTaxCost As Currency, _
  184.       curTaxableEarnings As Currency, curAnnualTotalCredits
  185.     
  186.     ' When calling other methods in the same class, you can call them without
  187.     '   "objContext.CreateInstance"
  188.     curAfterTaxCost = GetTotalCost(strFileDSN, lngEmployeeId, intBenefitYear, 1)
  189.     curPreTaxCost = GetTotalCost(strFileDSN, lngEmployeeId, intBenefitYear, 2)
  190.     curTotalCredits = GetTotalCredits(strFileDSN, lngEmployeeId, intBenefitYear)
  191.    
  192.     Dim rst As New ADOR.Recordset, strSQL As String
  193.     rst.CursorLocation = adUseServer
  194.     strSQL = "EXECUTE sp_GetTotalPaycheck " & lngEmployeeId
  195.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  196.     
  197.     If Not IsNull(rst("PeriodEarnings")) Then
  198.       curPeriodEarnings = rst("PeriodEarnings")
  199.     Else
  200.       curPeriodEarnings = 0
  201.     End If
  202.     If Not IsNull(rst("Exemptions")) Then
  203.       intExemptions = rst("Exemptions")
  204.     Else
  205.       intExemptions = 0
  206.     End If
  207.     
  208.     curAnnualEarnings = curPeriodEarnings * 24
  209.     curAnnualAfterTaxCost = curAfterTaxCost * 24
  210.     curAnnualPreTaxCost = curPreTaxCost * 24
  211.     curAnnualTotalCredits = curTotalCredits * 24
  212.     curTotalExemptions = intExemptions * 3000
  213.     curTaxableEarnings = curAnnualEarnings - curTotalExemptions - curAnnualPreTaxCost
  214.     curTotalPaycheck = ((curTaxableEarnings * 0.67) - curAnnualAfterTaxCost + curAnnualTotalCredits) / 24
  215.     
  216.     objContext.SetComplete
  217.     GetTotalPaycheck = curTotalPaycheck
  218.     
  219.     Exit Function
  220.     
  221. ErrorHandler:
  222.     If Not rst Is Nothing Then Set rst = Nothing
  223.  
  224.     objContext.SetAbort
  225.     Err.Raise Err.Number, "BenefitList.GetTotalPaycheck()", Err.Description
  226.  
  227. End Function
  228.  
  229. Function CheckQualifier(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  230.     ByVal lngBenefitId As Long)
  231.  
  232.     Dim objContext As ObjectContext
  233.     Set objContext = GetObjectContext
  234.     
  235.     On Error GoTo ErrorHandler
  236.     
  237.     Dim rst As New ADOR.Recordset, strSQL As String
  238.     rst.CursorLocation = adUseServer
  239.     strSQL = "EXECUTE sp_CheckQualifier " & lngEmployeeId & ", " & lngBenefitId
  240.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  241.  
  242.     Set CheckQualifier = rst
  243.      
  244.     objContext.SetComplete
  245.     Exit Function
  246.     
  247. ErrorHandler:
  248.     If Not rst Is Nothing Then Set rst = Nothing
  249.  
  250.     objContext.SetAbort
  251.     Err.Raise Err.Number, "BenefitList.CheckQualifier()", Err.Description
  252.     
  253. End Function
  254.  
  255. Function CurrentPlan(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  256.     ByVal lngBenefitId As Long)
  257.  
  258.     Dim objContext As ObjectContext
  259.     Set objContext = GetObjectContext
  260.  
  261.     On Error GoTo ErrorHandler
  262.  
  263.     Dim rst As New ADOR.Recordset, strSQL As String
  264.     rst.CursorLocation = adUseServer
  265.     strSQL = "EXECUTE sp_CurrentPlan " & lngEmployeeId & ", " & lngBenefitId
  266.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  267.     
  268.     Set CurrentPlan = rst
  269.  
  270.     objContext.SetComplete
  271.     Exit Function
  272.  
  273. ErrorHandler:
  274.     If Not rst Is Nothing Then Set rst = Nothing
  275.  
  276.     objContext.SetAbort
  277.     Err.Raise Err.Number, "BenefitList.CurrentPlan()", Err.Description
  278.  
  279. End Function
  280.  
  281. Function PlanInfo(ByVal strFileDSN As String, ByVal lngBenefitId As Long, _
  282.     ByVal lngPlanId As Long)
  283.  
  284.     Dim objContext As ObjectContext
  285.     Set objContext = GetObjectContext
  286.  
  287.     On Error GoTo ErrorHandler
  288.  
  289.     Dim rst As New ADOR.Recordset, strSQL As String
  290.     rst.CursorLocation = adUseServer
  291.     strSQL = "EXECUTE sp_PlanInfo " & lngBenefitId & ", " & lngPlanId
  292.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  293.     
  294.     Set PlanInfo = rst
  295.  
  296.     objContext.SetComplete
  297.     Exit Function
  298.  
  299. ErrorHandler:
  300.     If Not rst Is Nothing Then Set rst = Nothing
  301.  
  302.     objContext.SetAbort
  303.     Err.Raise Err.Number, "BenefitList.PlanInfo()", Err.Description
  304.  
  305. End Function
  306.  
  307. Function PlanList(ByVal strFileDSN As String, ByVal lngBenefitId As Long)
  308.  
  309.     Dim objContext As ObjectContext
  310.     Set objContext = GetObjectContext
  311.  
  312.     On Error GoTo ErrorHandler
  313.  
  314.     Dim rst As New ADOR.Recordset, strSQL As String
  315.     rst.CursorLocation = adUseServer
  316.     strSQL = "EXECUTE sp_PlanList " & lngBenefitId
  317.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  318.  
  319.     Set PlanList = rst
  320.  
  321.     objContext.SetComplete
  322.     Exit Function
  323.  
  324. ErrorHandler:
  325.     If Not rst Is Nothing Then Set rst = Nothing
  326.  
  327.     objContext.SetAbort
  328.     Err.Raise Err.Number, "BenefitList.PlanList()", Err.Description
  329.  
  330. End Function
  331.  
  332. Function PlanField(ByVal strFileDSN As String, ByVal lngPlanId As Long)
  333.     
  334.     Dim objContext As ObjectContext
  335.     Set objContext = GetObjectContext
  336.     
  337.     On Error GoTo ErrorHandler
  338.     
  339.     Dim rst As New ADOR.Recordset, strSQL As String
  340.     rst.CursorLocation = adUseServer
  341.     strSQL = "EXECUTE sp_PlanField " & lngPlanId
  342.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  343.     
  344.     Set PlanField = rst
  345.     
  346.     objContext.SetComplete
  347.     Exit Function
  348.     
  349. ErrorHandler:
  350.     If Not rst Is Nothing Then Set rst = Nothing
  351.  
  352.     objContext.SetAbort
  353.     Err.Raise Err.Number, "BenefitList.PlanField()", Err.Description
  354.  
  355. End Function
  356.  
  357. Function ListDependents(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  358.     ByVal lngBenefitId As Long)
  359.     
  360.     Dim objContext As ObjectContext
  361.     Set objContext = GetObjectContext
  362.     
  363.     On Error GoTo ErrorHandler
  364.     
  365.     Dim rst As New ADOR.Recordset, strSQL As String
  366.     rst.CursorLocation = adUseServer
  367.     strSQL = "EXECUTE sp_ListDependents " & lngEmployeeId & ", " & lngBenefitId
  368.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  369.     
  370.     Set ListDependents = rst
  371.     
  372.     objContext.SetComplete
  373.     Exit Function
  374.     
  375. ErrorHandler:
  376.     If Not rst Is Nothing Then Set rst = Nothing
  377.  
  378.     objContext.SetAbort
  379.     Err.Raise Err.Number, "BenefitList.ListDependents()", Err.Description
  380.  
  381. End Function
  382.  
  383. Function PhysicianList(ByVal strFileDSN As String)
  384.     
  385.     Dim objContext As ObjectContext
  386.     Set objContext = GetObjectContext
  387.     
  388.     On Error GoTo ErrorHandler
  389.     
  390.     Dim rst As New ADOR.Recordset
  391.     rst.CursorLocation = adUseServer
  392.     rst.Open "EXECUTE sp_PhysicianList", "FILEDSN=" & strFileDSN
  393.     
  394.     Set PhysicianList = rst
  395.  
  396.     objContext.SetComplete
  397.     Exit Function
  398.     
  399. ErrorHandler:
  400.     If Not rst Is Nothing Then Set rst = Nothing
  401.  
  402.     objContext.SetAbort
  403.     Err.Raise Err.Number, "BenefitList.PhysicianList()", Err.Description
  404.  
  405. End Function
  406.  
  407. Function GenderList(ByVal strFileDSN As String)
  408.     
  409.     Dim objContext As ObjectContext
  410.     Set objContext = GetObjectContext
  411.     
  412.     On Error GoTo ErrorHandler
  413.     
  414.     Dim rst As New ADOR.Recordset
  415.     rst.CursorLocation = adUseServer
  416.     rst.Open "EXECUTE sp_GenderList", "FILEDSN=" & strFileDSN
  417.     
  418.     Set GenderList = rst
  419.  
  420.     objContext.SetComplete
  421.     Exit Function
  422.     
  423. ErrorHandler:
  424.     If Not rst Is Nothing Then Set rst = Nothing
  425.  
  426.     objContext.SetAbort
  427.     Err.Raise Err.Number, "BenefitList.GenderList()", Err.Description
  428.  
  429. End Function
  430.  
  431. Function DependentTypeList(ByVal strFileDSN As String)
  432.     
  433.     Dim objContext As ObjectContext
  434.     Set objContext = GetObjectContext
  435.     
  436.     On Error GoTo ErrorHandler
  437.     
  438.     Dim rst As New ADOR.Recordset
  439.     rst.CursorLocation = adUseServer
  440.     rst.Open "EXECUTE sp_DependentTypeList", "FILEDSN=" & strFileDSN
  441.     
  442.     Set DependentTypeList = rst
  443.  
  444.     objContext.SetComplete
  445.     Exit Function
  446.     
  447. ErrorHandler:
  448.     If Not rst Is Nothing Then Set rst = Nothing
  449.  
  450.     objContext.SetAbort
  451.     Err.Raise Err.Number, "BenefitList.DependentTypeList()", Err.Description
  452.  
  453. End Function
  454.  
  455. Function ListCoveredPersons(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  456.         ByVal lngBenefitId As Long)
  457.     
  458.     Dim objContext As ObjectContext
  459.     Set objContext = GetObjectContext
  460.     
  461.     On Error GoTo ErrorHandler
  462.  
  463.     Dim rst As New ADOR.Recordset, strSQL As String
  464.     rst.CursorLocation = adUseServer
  465.     strSQL = "EXECUTE sp_ListCoveredPersons " & lngEmployeeId & ", " & lngBenefitId
  466.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  467.     
  468.     Set ListCoveredPersons = rst
  469.     
  470.     objContext.SetComplete
  471.     Exit Function
  472.     
  473. ErrorHandler:
  474.     If Not rst Is Nothing Then Set rst = Nothing
  475.  
  476.     objContext.SetAbort
  477.     Err.Raise Err.Number, "BenefitList.ListCoveredPersons()", Err.Description
  478.  
  479. End Function
  480.  
  481. Function TaxStatusList(ByVal strFileDSN As String, ByVal lngBenefitId As Long)
  482.     
  483.     Dim objContext As ObjectContext
  484.     Set objContext = GetObjectContext
  485.     
  486.     On Error GoTo ErrorHandler
  487.  
  488.     Dim rst As New ADOR.Recordset, strSQL As String
  489.     rst.CursorLocation = adUseServer
  490.     strSQL = "EXECUTE sp_TaxStatusList " & lngBenefitId
  491.     rst.Open strSQL, "FILEDSN=" & strFileDSN, adOpenStatic, adLockReadOnly, adCmdText
  492.     
  493.     Set TaxStatusList = rst
  494.     
  495.     objContext.SetComplete
  496.     Exit Function
  497.     
  498. ErrorHandler:
  499.     If Not rst Is Nothing Then Set rst = Nothing
  500.  
  501.     objContext.SetAbort
  502.     Err.Raise Err.Number, "BenefitList.TaxStatusList()", Err.Description
  503.  
  504. End Function
  505.  
  506. Function AddQualifier(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  507.         ByVal lngQualifierId As Long, ByVal datQualifierDate As Date)
  508.  
  509.     Dim objContext As ObjectContext
  510.     Set objContext = GetObjectContext
  511.  
  512.     On Error GoTo ErrorHandler
  513.  
  514.     Dim cnn As New ADODB.Connection, strSQL As String
  515.     cnn.Open "FileDSN=" & strFileDSN
  516.     ' If date beyond permissible range entered, substitute today's date
  517.     If Year(datQualifierDate) < 1753 Or Year(datQualifierDate) > 9999 Then
  518.       datQualifierDate = Date
  519.     End If
  520.     ' Have to put single quotes around the date so it won't look like a math problem
  521.     '   of day divided by month divided by year
  522.     strSQL = "EXECUTE sp_AddQualifier " & lngEmployeeId & ", " & lngQualifierId & _
  523.         ", '" & datQualifierDate & "'"
  524.     cnn.Execute (strSQL)
  525.  
  526.     objContext.SetComplete
  527.     Exit Function
  528.     
  529. ErrorHandler:
  530.     If Not cnn Is Nothing Then Set cnn = Nothing
  531.  
  532.     objContext.SetAbort
  533.     Err.Raise Err.Number, "BenefitList.AddQualifier()", Err.Description
  534.  
  535. End Function
  536.  
  537. Function AddBenefit(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  538.         ByVal lngBenefitId As Long)
  539.  
  540.     Dim objContext As ObjectContext
  541.     Set objContext = GetObjectContext
  542.     
  543.     On Error GoTo ErrorHandler
  544.  
  545.     Dim rst As New ADOR.Recordset, strSQL As String
  546.     rst.CursorLocation = adUseServer
  547.     strSQL = "EXECUTE sp_AddBenefitSelect1 " & lngBenefitId
  548.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  549.  
  550.     If Not rst.EOF Then
  551.  
  552.         Dim cnn As New ADODB.Connection
  553.         cnn.Open "FileDSN=" & strFileDSN
  554.         strSQL = "EXECUTE sp_AddBenefitInsert " & lngEmployeeId & ", " & lngBenefitId & _
  555.             ", " & rst("PlanId") & ", " & rst("PlanCost") & ", " & rst("TaxStatusId")
  556.         cnn.Execute (strSQL)
  557.         
  558.             Dim rst2 As New ADOR.Recordset
  559.             rst2.CursorLocation = adUseServer
  560.             strSQL = "EXECUTE sp_AddBenefitSelect2 " & lngEmployeeId
  561.             rst2.Open strSQL, "FILEDSN=" & strFileDSN
  562.  
  563.             ' We can call a method in the same class without creating an object, or
  564.             '   as shown here, we can create the object. If we want to create an
  565.             '   object, we should use objContext.CreateInstance; because if use
  566.             '   CreateObject, will get a NEW transaction that cannot see the work
  567.             '   done in this (calling) transaction
  568.             If Not rst2.EOF Then
  569.             Dim BenefitList As Object
  570.             Set BenefitList = objContext.CreateInstance("Benefit.BenefitList")
  571.             Do Until rst2.EOF
  572.                 BenefitList.AddEBD strFileDSN, lngEmployeeId, lngBenefitId, _
  573.                 rst2("DependentId"), rst2("DependentTypeId")
  574.                 rst2.MoveNext
  575.             Loop
  576.         End If
  577.         
  578.     End If
  579.         
  580.     objContext.SetComplete
  581.     Exit Function
  582.     
  583. ErrorHandler:
  584.     If Not rst Is Nothing Then Set rst = Nothing
  585.     If Not cnn Is Nothing Then Set cnn = Nothing
  586.     If Not rst2 Is Nothing Then Set rst2 = Nothing
  587.  
  588.     objContext.SetAbort
  589.     Err.Raise Err.Number, "BenefitList.AddBenefit()", Err.Description
  590.  
  591. End Function
  592.  
  593. Function AddEBD(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  594.         ByVal lngBenefitId As Long, ByVal lngDependentId As Long, _
  595.         ByVal lngDependentTypeId As Long)
  596.  
  597.     Dim objContext As ObjectContext
  598.     Set objContext = GetObjectContext
  599.  
  600.     On Error GoTo ErrorHandler
  601.  
  602.     Dim intEBDStatusId As Integer
  603.     ' lngDependentTypeId = 1 indicates the employee's Dependent record
  604.     If lngDependentTypeId = 1 Then
  605.         ' intEBDStatusId = 1 means Active
  606.         intEBDStatusId = 1
  607.     Else
  608.         ' intEBDStatusId = 1 means Inactive
  609.         intEBDStatusId = 2
  610.     End If
  611.       
  612.     Dim cnn As New ADODB.Connection, strSQL As String
  613.     cnn.Open "FileDSN=" & strFileDSN
  614.     strSQL = "EXECUTE sp_AddEBD " & lngEmployeeId & ", " & lngBenefitId & _
  615.         ", " & lngDependentId & ", " & intEBDStatusId
  616.     cnn.Execute (strSQL)
  617.         
  618.     objContext.SetComplete
  619.     Exit Function
  620.     
  621. ErrorHandler:
  622.     If Not cnn Is Nothing Then Set cnn = Nothing
  623.  
  624.     objContext.SetAbort
  625.     Err.Raise Err.Number, "BenefitList.AddEBD()", Err.Description
  626.  
  627. End Function
  628.  
  629. Function InactivateDependents(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  630.      ByVal lngBenefitId As Long)
  631.  
  632.     Dim objContext As ObjectContext
  633.     Set objContext = GetObjectContext
  634.     
  635.     On Error GoTo ErrorHandler
  636.  
  637.     Dim cnn As New ADODB.Connection, strSQL As String
  638.     cnn.Open "FileDSN=" & strFileDSN
  639.     strSQL = "EXECUTE sp_InactivateDependents " & lngEmployeeId & ", " & lngBenefitId
  640.     cnn.Execute (strSQL)
  641.  
  642.     objContext.SetComplete
  643.     Exit Function
  644.     
  645. ErrorHandler:
  646.     If Not cnn Is Nothing Then Set cnn = Nothing
  647.  
  648.     objContext.SetAbort
  649.     Err.Raise Err.Number, "BenefitList.InactivateDependents()", Err.Description
  650.  
  651. End Function
  652.  
  653. Function SaveDependents(ByVal strFileDSN As String, ByVal lngEmployeeId As Long, _
  654.      ByVal lngBenefitId As Long, ByVal lngDependentId As Long, _
  655.      ByVal lngPhysicianId As Long)
  656.  
  657.     Dim objContext As ObjectContext
  658.     Set objContext = GetObjectContext
  659.     
  660.     On Error GoTo ErrorHandler
  661.  
  662.     Dim cnn As New ADODB.Connection, strSQL As String
  663.     cnn.Open "FileDSN=" & strFileDSN
  664.     strSQL = "EXECUTE sp_SaveDependents " & lngPhysicianId & ", " & lngEmployeeId & _
  665.         ", " & lngBenefitId & ", " & lngDependentId
  666.     cnn.Execute (strSQL)
  667.  
  668.     objContext.SetComplete
  669.     Exit Function
  670.     
  671. ErrorHandler:
  672.     If Not cnn Is Nothing Then Set cnn = Nothing
  673.  
  674.     objContext.SetAbort
  675.     Err.Raise Err.Number, "BenefitList.SaveDependents()", Err.Description
  676.  
  677. End Function
  678.  
  679. Function ChangeQualifierList(ByVal strFileDSN As String, ByVal lngBenefitId As Long, _
  680.         ByVal lngQualifierClassId As Long)
  681.     
  682.     Dim objContext As ObjectContext
  683.     Set objContext = GetObjectContext
  684.     
  685.     On Error GoTo ErrorHandler
  686.     
  687.     Dim rst As New ADOR.Recordset, strSQL As String
  688.     rst.CursorLocation = adUseServer
  689.     
  690.     ' Which stored procedure we should run depends on whether lngBenefitId is greater
  691.     '   than zero
  692.     If lngBenefitId > 0 Then
  693.         strSQL = "EXECUTE sp_ChangeQualifierList1 " & lngQualifierClassId & ", " & lngBenefitId
  694.     Else
  695.         strSQL = "EXECUTE sp_ChangeQualifierList2 " & lngQualifierClassId
  696.     End If
  697.  
  698.     rst.Open strSQL, "FILEDSN=" & strFileDSN
  699.     
  700.     Set ChangeQualifierList = rst
  701.     
  702.     objContext.SetComplete
  703.     Exit Function
  704.     
  705. ErrorHandler:
  706.     If Not rst Is Nothing Then Set rst = Nothing
  707.  
  708.     objContext.SetAbort
  709.     Err.Raise Err.Number, "BenefitList.ChangeQualifierList()", Err.Description
  710.  
  711. End Function
  712.