|
- <%
- ' HouseholderNameController - CRUD controller for HouseholderNames
- ' NorthTerritory app
- '
- ' Dependencies (all included via HouseholdController which loads first):
- ' - app/models/POBO_HouseholderNames.asp
- ' - app/models/HouseholderNamesRepository.asp
- ' - app/models/POBO_Households.asp
- ' - app/models/HouseholdsRepository.asp
-
- Class HouseholderNameController_Class
- Private m_useLayout
- Private m_title
-
- ' Public properties for views
- Public householderNames ' LinkedList for Index
- Public householderName ' Single POBO for Show/Edit
- Public household ' Parent household
- Public householdsList ' For dropdown
-
- ' Pagination properties
- Public currentPage
- Public pageCount
- Public recordCount
- Public perPage
- Public searchTerm
- Public filterHouseholdId
-
- Private Sub Class_Initialize()
- m_useLayout = True
- m_title = "Householder Names"
- currentPage = 1
- pageCount = 0
- recordCount = 0
- perPage = 25
- searchTerm = ""
- filterHouseholdId = 0
- End Sub
-
- Public Property Get useLayout
- useLayout = m_useLayout
- End Property
-
- Public Property Let useLayout(v)
- m_useLayout = v
- End Property
-
- Public Property Get Title
- Title = m_title
- End Property
-
- Public Property Let Title(v)
- m_title = v
- End Property
-
- '-------------------------------------------------------------------------------------------------------------------
- ' Index - List all householder names with pagination, search, and household filter
- '-------------------------------------------------------------------------------------------------------------------
- Public Sub Index()
- ' Get pagination params
- If Request.QueryString("page") <> "" And IsNumeric(Request.QueryString("page")) Then
- currentPage = CInt(Request.QueryString("page"))
- If currentPage < 1 Then currentPage = 1
- End If
-
- ' Get search param
- searchTerm = Trim(Request.QueryString("q") & "")
-
- ' Get household filter
- If Request.QueryString("household") <> "" And IsNumeric(Request.QueryString("household")) Then
- filterHouseholdId = CLng(Request.QueryString("household"))
- End If
-
- ' Fetch householder names with pagination
- If searchTerm <> "" Then
- ' Search in Name column
- Set householderNames = HouseholderNamesRepository.SearchTablePaged( _
- Array("Name"), _
- searchTerm, _
- Empty, _
- perPage, _
- currentPage, _
- pageCount, _
- recordCount _
- )
- ElseIf filterHouseholdId > 0 Then
- ' Filter by household
- Set householderNames = HouseholderNamesRepository.FindPaged( _
- Array("HouseholdId", filterHouseholdId), _
- Empty, _
- perPage, _
- currentPage, _
- pageCount, _
- recordCount _
- )
- ' Load parent household for context
- On Error Resume Next
- Set household = HouseholdsRepository.FindByID(filterHouseholdId)
- On Error GoTo 0
- Else
- Set householderNames = HouseholderNamesRepository.FindPaged( _
- Empty, _
- Empty, _
- perPage, _
- currentPage, _
- pageCount, _
- recordCount _
- )
- End If
-
- %> <!--#include file="../views/HouseholderName/index.asp" --> <%
- End Sub
-
- '-------------------------------------------------------------------------------------------------------------------
- ' Show - Display a single householder name
- '-------------------------------------------------------------------------------------------------------------------
- Public Sub Show(id)
- On Error Resume Next
- Set householderName = HouseholderNamesRepository.FindByID(id)
- If Err.Number <> 0 Or householderName Is Nothing Then
- On Error GoTo 0
- Flash().Error = "Householder name not found."
- Response.Redirect "/householder-names"
- Exit Sub
- End If
- On Error GoTo 0
-
- ' Load parent household
- On Error Resume Next
- Set household = HouseholdsRepository.FindByID(householderName.HouseholdId)
- On Error GoTo 0
-
- %> <!--#include file="../views/HouseholderName/show.asp" --> <%
- End Sub
-
- '-------------------------------------------------------------------------------------------------------------------
- ' Create - Display form for new householder name
- '-------------------------------------------------------------------------------------------------------------------
- Public Sub Create()
- Set householderName = New POBO_HouseholderNames
- householderName.Created = Now()
- householderName.LetterReturned = 0
-
- ' Pre-fill household if passed in query string
- If Request.QueryString("household") <> "" And IsNumeric(Request.QueryString("household")) Then
- householderName.HouseholdId = CLng(Request.QueryString("household"))
- ' Load parent household for context
- On Error Resume Next
- Set household = HouseholdsRepository.FindByID(householderName.HouseholdId)
- On Error GoTo 0
- End If
-
- %> <!--#include file="../views/HouseholderName/create.asp" --> <%
- End Sub
-
- '-------------------------------------------------------------------------------------------------------------------
- ' Store - Save new householder name
- '-------------------------------------------------------------------------------------------------------------------
- Public Sub Store()
- Set householderName = New POBO_HouseholderNames
- householderName.Name = Trim(Request.Form("Name"))
- householderName.HouseholdId = Request.Form("HouseholdId")
- householderName.LetterReturned = IIf(Request.Form("LetterReturned") = "1", 1, 0)
- householderName.Created = Now()
-
- If Request.Form("ReturnDate") <> "" Then
- On Error Resume Next
- householderName.ReturnDate = CDate(Request.Form("ReturnDate"))
- On Error GoTo 0
- End If
-
- ' Validation
- If householderName.Name = "" Then
- Flash().Error = "Name is required."
- Response.Redirect "/householder-names/new?household=" & householderName.HouseholdId
- Exit Sub
- End If
-
- If Not IsNumeric(householderName.HouseholdId) Or CLng(householderName.HouseholdId) < 1 Then
- Flash().Error = "Please select a household."
- Response.Redirect "/householder-names/new"
- Exit Sub
- End If
-
- HouseholderNamesRepository.AddNew householderName
-
- Flash().Success = "Householder name created successfully."
- Response.Redirect "/householder-names/" & householderName.Id
- End Sub
-
- '-------------------------------------------------------------------------------------------------------------------
- ' Edit - Display form to edit householder name
- '-------------------------------------------------------------------------------------------------------------------
- Public Sub Edit(id)
- On Error Resume Next
- Set householderName = HouseholderNamesRepository.FindByID(id)
- If Err.Number <> 0 Or householderName Is Nothing Then
- On Error GoTo 0
- Flash().Error = "Householder name not found."
- Response.Redirect "/householder-names"
- Exit Sub
- End If
- On Error GoTo 0
-
- ' Load parent household for context
- On Error Resume Next
- Set household = HouseholdsRepository.FindByID(householderName.HouseholdId)
- On Error GoTo 0
-
- %> <!--#include file="../views/HouseholderName/edit.asp" --> <%
- End Sub
-
- '-------------------------------------------------------------------------------------------------------------------
- ' Update - Save changes to householder name
- '-------------------------------------------------------------------------------------------------------------------
- Public Sub Update(id)
- On Error Resume Next
- Set householderName = HouseholderNamesRepository.FindByID(id)
- If Err.Number <> 0 Or householderName Is Nothing Then
- On Error GoTo 0
- Flash().Error = "Householder name not found."
- Response.Redirect "/householder-names"
- Exit Sub
- End If
- On Error GoTo 0
-
- householderName.Name = Trim(Request.Form("Name"))
- householderName.LetterReturned = IIf(Request.Form("LetterReturned") = "1", 1, 0)
-
- If Request.Form("ReturnDate") <> "" Then
- On Error Resume Next
- householderName.ReturnDate = CDate(Request.Form("ReturnDate"))
- On Error GoTo 0
- Else
- householderName.ReturnDate = #1/1/1970#
- End If
-
- ' Validation
- If householderName.Name = "" Then
- Flash().Error = "Name is required."
- Response.Redirect "/householder-names/" & id & "/edit"
- Exit Sub
- End If
-
- HouseholderNamesRepository.Update householderName
-
- Flash().Success = "Householder name updated successfully."
- Response.Redirect "/householder-names/" & id
- End Sub
-
- '-------------------------------------------------------------------------------------------------------------------
- ' Delete - Remove a householder name
- '-------------------------------------------------------------------------------------------------------------------
- Public Sub Delete(id)
- On Error Resume Next
- Set householderName = HouseholderNamesRepository.FindByID(id)
- If Err.Number <> 0 Or householderName Is Nothing Then
- On Error GoTo 0
- Flash().Error = "Householder name not found."
- Response.Redirect "/householder-names"
- Exit Sub
- End If
- On Error GoTo 0
-
- Dim householdId
- householdId = householderName.HouseholdId
-
- HouseholderNamesRepository.Delete id
-
- Flash().Success = "Householder name deleted successfully."
- Response.Redirect "/householder-names?household=" & householdId
- End Sub
-
- End Class
-
- ' Singleton instance
- Dim HouseholderNameController_Class__Singleton
- Function HouseholderNameController()
- If IsEmpty(HouseholderNameController_Class__Singleton) Then
- Set HouseholderNameController_Class__Singleton = New HouseholderNameController_Class
- End If
- Set HouseholderNameController = HouseholderNameController_Class__Singleton
- End Function
- %>
|