<% '======================================================================================================================= ' Kit Model '======================================================================================================================= Class KitModel_Class Public Validator Public Class_Get_Properties Public ID '90 Public JobNumber '106 Public Jcode '106 Private Sub Class_Initialize 'ValidateExitsts Me, "","" Class_Get_Properties = Array("ID, JobNumber, Jcode") End Sub End CLass Class IndexKitModel_Class Public Validator Public Class_Get_Properties Public ID Public JobNumber '90 Public Jurisdiction '106 Public LabelCount '106 Public CreatedOn Public LabelsPrinted Public ExportedToSnailWorks Public InkJetJob Public JobType Public Filename Public Cass Public Status Private Sub Class_Initialize 'ValidateExitsts Me, "","" Class_Get_Properties = Array("ID, JobNumber, Jurisdiction,LabelCount,CreatedOn,LabelsPrinted,ExportedToSnailWorks,InkJetJob,JobType,Filename,Cass,Status") End Sub End Class '======================================================================================================================= ' Kit Repository '======================================================================================================================= Class KitRepository_Class Public Function PagedPurpleEnvelopsIndexView(per_page, page_num, ByRef page_count, ByRef record_count) dim sql : sql = "SELECT Kit.ID,Kit.JobNumber as [JobNumber], " &_ "Jurisdiction.Name As Jurisdiction," &_ "(SELECT COUNT(*) From KitLabels Where KitId = Kit.ID)" &_ " As [LabelCount],[CreatedOn],[LabelsPrinted],[ExportedToSnailWorks],[InkJetJob],[JobType],[Filename],[Cass],[Status] FROM Kit INNER JOIN Jurisdiction ON Kit.Jcode = Jurisdiction.JCode Where Kit.JobType = 'Purple Envelopes';" dim list : set list = new LinkedList_Class dim rs : set rs = DAL.PagedQuery(sql, empty, per_page, page_num) If Not rs.EOF and Not (IsEmpty(per_page) and IsEmpty(page_num) and IsEmpty(page_count) and IsEmpty(record_count)) then rs.PageSize = per_page rs.AbsolutePage = page_num page_count = rs.PageCount record_count = rs.RecordCount End If set PagedPurpleEnvelopsIndexView = PagedIndexViewKitList(rs, per_page) Destroy rs End Function Public Function PagedIndexView(per_page, page_num, ByRef page_count, ByRef record_count) dim sql : sql = "SELECT Kit.ID,Kit.JobNumber as [JobNumber], " &_ "Jurisdiction.Name As Jurisdiction," &_ "(SELECT COUNT(*) From KitLabels Where KitId = Kit.ID)" &_ " As [LabelCount],[CreatedOn],[LabelsPrinted],[ExportedToSnailWorks],[JobType] FROM Kit INNER JOIN Jurisdiction ON Kit.Jcode = Jurisdiction.JCode Where Kit.JobType = 'Labels';" dim list : set list = new LinkedList_Class dim rs : set rs = DAL.PagedQuery(sql, empty, per_page, page_num) If Not rs.EOF and Not (IsEmpty(per_page) and IsEmpty(page_num) and IsEmpty(page_count) and IsEmpty(record_count)) then rs.PageSize = per_page rs.AbsolutePage = page_num page_count = rs.PageCount record_count = rs.RecordCount End If set PagedIndexView = PagedIndexViewKitList(rs, per_page) Destroy rs End Function Private Function PagedIndexViewKitList(rs, per_page) dim list : set list = new LinkedList_Class dim x : x =0 Do While x < per_page and Not rs.EOF list.Push Automapper.AutoMap(rs, new IndexKitModel_Class) x = x +1 rs.MoveNext Loop set PagedIndexViewKitList = list End Function Public Function SwitchBoardEditFindById(ID) dim sql : sql = "SELECT Kit.ID,Kit.JobNumber as [JobNumber], " &_ "Jurisdiction.Name As Jurisdiction," &_ "(SELECT COUNT(*) From KitLabels Where KitId = Kit.ID)" &_ " As [LabelCount],[CreatedOn],[LabelsPrinted],[ExportedToSnailWorks],[JobType] FROM Kit INNER JOIN Jurisdiction ON Kit.Jcode = Jurisdiction.JCode " &_ "WHERE ID = ? AND Kit.JobType = 'Labels'" dim rs : set rs = DAL.Query(sql,ID) If rs.EOF then Err.Raise 1, "KitRepository_Class", KitNotFoundException("ID", ID) Else set SwitchBoardEditFindByID = Automapper.AutoMap(rs,"IndexKitModel_Class") End If End Function Public Function SwitchBoardPurpleEnvelopeEditFindById(ID) dim sql : sql = "SELECT Kit.ID,Kit.JobNumber as [JobNumber], " &_ "Jurisdiction.Name As Jurisdiction," &_ "(SELECT COUNT(*) From InkjetRecords Where KitID = Kit.ID)" &_ " As [LabelCount],[CreatedOn],[LabelsPrinted],[ExportedToSnailWorks],[JobType] FROM Kit INNER JOIN Jurisdiction ON Kit.Jcode = Jurisdiction.JCode " &_ "WHERE ID = ? AND Kit.JobType Is Null or Kit.JobType = 'Purple Envelopes'" dim rs : set rs = DAL.Query(sql,ID) If rs.EOF then Err.Raise 1, "KitRepository_Class", KitNotFoundException("ID", ID) Else Set SwitchBoardPurpleEnvelopeEditFindById = Automapper.AutoMap(rs,"IndexKitModel_Class") End If End Function Public Function FindByID(ID) dim sql : sql = "Select [ID], [JobNumber], [Jcode] FROM [Kit] WHERE ID = ?" dim rs : set rs = DAL.Query(sql,ID) If rs.EOF then Err.Raise 1, "KitRepository_Class", KitNotFoundException("ID", ID) Else set FindByID = Automapper.AutoMap(rs,"KitModel_Class") End If End Function Public Function GetAll(orderBy) set GetAll = Find(empty,orderBy) End Function Public Function Find(where_kvarray, order_string_or_array) dim sql : sql = "Select [ID], [JobNumber], [Jcode] FROM [Kit]" If Not IsEmpty(where_kvarray) then sql = sql & " WHERE " dim where_keys, where_values KVUnzip where_kvarray, where_keys, where_values dim i For i = 0 to UBound(where_keys) If i > 0 then sql = sql & " AND " sql = sql & " " & where_keys(i) & " " Next End If If Not IsEmpty(order_string_or_array) then sql = sql & "ORDER BY " If IsArray(order_string_or_array) then dim order_array : order_array = order_string_or_array For i = 0 to UBound(order_array) If i > 0 then sql = sql & ", " sql = sql & " " & order_array(i) Next Else sql = sql & order_string_or_array & " " End If End If dim rs : set rs = DAL.Query(sql, where_values) set Find = KitList(rs) Destroy rs End Function Public Function FindPaged(where_kvarray, order_string_or_array, per_page, page_num, ByRef page_count, ByRef record_count) dim sql : sql = "Select [ID], [JobNumber], [Jcode] FROM [Kit]" If Not IsEmpty(where_kvarray) then sql = sql & " WHERE " dim where_keys, where_values KVUnzip where_kvarray, where_keys, where_values dim i For i = 0 to UBound(where_keys) If i > 0 then sql = sql & " AND " sql = sql & " " & where_keys(i) & " " Next End If If Not IsEmpty(order_string_or_array) then sql = sql & "ORDER BY " If IsArray(order_string_or_array) then dim order_array : order_array = order_string_or_array For i = 0 to UBound(order_array) If i > 0 then sql = sql & ", " sql = sql & " " & order_array(i) Next Else sql = sql & order_string_or_array & " " End If End If dim list : set list = new LinkedList_Class dim rs : set rs = DAL.PagedQuery(sql, where_values, per_page, page_num) If Not rs.EOF and Not (IsEmpty(per_page) and IsEmpty(page_num) and IsEmpty(page_count) and IsEmpty(record_count)) then rs.PageSize = per_page rs.AbsolutePage = page_num page_count = rs.PageCount record_count = rs.RecordCount End If set FindPaged = PagedKitList(rs, per_page) Destroy rs End Function Public Function SearchTablePaged(where_kvarray, order_string_or_array, per_page, page_num, ByRef page_count, ByRef record_count) dim sql : sql = "Select [ID], [JobNumber], [Jcode] FROM [Kit]" If Not IsEmpty(where_kvarray) then sql = sql & " WHERE " dim where_keys, where_values KVUnzip where_kvarray, where_keys, where_values dim i For i = 0 to UBound(where_keys) If i > 0 then sql = sql & " OR" sql = sql & " " & where_keys(i) & " LIKE ?" Next End If If Not IsEmpty(order_string_or_array) then sql = sql & " ORDER BY " If IsArray(order_string_or_array) then dim order_array : order_array = order_string_or_array For i = 0 to UBound(order_array) If i > 0 then sql = sql & ", " sql = sql & " " & order_array(i) Next Else sql = sql & order_string_or_array & " " End If End If dim list : set list = new LinkedList_Class dim rs : set rs = DAL.PagedQuery(sql, where_values, per_page, page_num) If Not rs.EOF and Not (IsEmpty(per_page) and IsEmpty(page_num) and IsEmpty(page_count) and IsEmpty(record_count)) then rs.PageSize = per_page rs.AbsolutePage = page_num page_count = rs.PageCount record_count = rs.RecordCount End If set SearchTablePaged = PagedKitList(rs, per_page) Destroy rs End Function Private Function PagedKitList(rs, per_page) dim list : set list = new LinkedList_Class dim x : x =0 Do While x < per_page and Not rs.EOF list.Push Automapper.AutoMap(rs, new KitModel_Class) x = x +1 rs.MoveNext Loop set PagedKitList = list End Function Private Function KitNotFoundException(ByVal field_name, ByVal field_val) KitNotFoundException = "Kit was not found with " & field_name & " of '" & field_val & "'." End Function Private Function KitList(rs) dim list : set list = new LinkedList_Class dim model Do until rs.EOF set model = new KitModel_Class list.Push Automapper.AutoMap(rs, model) rs.MoveNext Loop set KitList = list End Function Public Sub AddNew(ByRef model) dim sql : sql = "INSERT INTO [Kit] (" &_ "[JobNumber]," &_ "[Jcode]," &_ "[CreatedOn]," &_ "[JobType])" &_ "VALUES (?,?,?,?)" DAL.Execute sql, Array(model.JobNumber, _ model.Jcode,Now(),"Labels") sql = "SELECT TOP 1 ID FROM [Kit] ORDER BY ID DESC" dim rs : set rs = DAL.Query(sql, empty) model.ID = rs("ID") Destroy rs End Sub Public Sub Update(model) dim sql : sql = "UPDATE [Kit] SET [JobNumber] = ?," &_ "[Jcode] = ?" &_ " WHERE [ID] = ?" DAL.Execute sql, Array(model.JobNumber, _ model.Jcode, _ model.ID) End Sub Public Sub Delete(id) dim sql : sql = "DELETE FROM [Kit] WHERE [ID] = ?" DAL.Execute sql, id End Sub End Class dim KitRepository__Singleton Function KitRepository() If IsEmpty(KitRepository__Singleton) then set KitRepository__Singleton = new KitRepository_Class End If set KitRepository = KitRepository__Singleton End Function %>