You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
5.9KB

  1. <%
  2. Class cards_Repository_Class
  3. Private Function SelectBase()
  4. SelectBase = "SELECT [id],[board_id],[column_id],[swim_lane_id],[job_number],[job_name],[customer_name],[delivery_date],[quantity],[notes],[full_note],[position],[created_at],[created_by],[updated_at],[updated_by] FROM [cards]"
  5. End Function
  6. Public Function FindByID(id)
  7. Dim sql : sql = SelectBase() & " WHERE [id] = ?"
  8. Dim rs : Set rs = DAL.Query(sql, Array(id))
  9. If rs.EOF Then
  10. Err.Raise 1, "cards_Repository_Class", "Card not found with id = " & id
  11. Else
  12. Set FindByID = Automapper.AutoMap(rs, "POBO_cards")
  13. End If
  14. Destroy rs
  15. End Function
  16. Public Function FindByBoardId(boardId)
  17. Dim sql : sql = SelectBase() & " WHERE [board_id] = ? ORDER BY [swim_lane_id] ASC, [column_id] ASC, [position] ASC"
  18. Dim rs : Set rs = DAL.Query(sql, Array(boardId))
  19. Dim list : Set list = New LinkedList_Class
  20. Do Until rs.EOF
  21. list.Push Automapper.AutoMap(rs, "POBO_cards")
  22. rs.MoveNext
  23. Loop
  24. Set FindByBoardId = list
  25. Destroy rs
  26. End Function
  27. Public Function FindByCell(columnId, swimLaneId)
  28. Dim sql : sql = SelectBase() & " WHERE [column_id] = ? AND [swim_lane_id] = ? ORDER BY [position] ASC"
  29. Dim rs : Set rs = DAL.Query(sql, Array(columnId, swimLaneId))
  30. Dim list : Set list = New LinkedList_Class
  31. Do Until rs.EOF
  32. list.Push Automapper.AutoMap(rs, "POBO_cards")
  33. rs.MoveNext
  34. Loop
  35. Set FindByCell = list
  36. Destroy rs
  37. End Function
  38. Public Function MaxPosition(columnId, swimLaneId)
  39. Dim sql : sql = "SELECT MAX([position]) FROM [cards] WHERE [column_id] = ? AND [swim_lane_id] = ?"
  40. Dim rs : Set rs = DAL.Query(sql, Array(columnId, swimLaneId))
  41. If rs.EOF Or IsNull(rs(0)) Then
  42. MaxPosition = -1
  43. Else
  44. MaxPosition = CLng(rs(0))
  45. End If
  46. Destroy rs
  47. End Function
  48. Public Sub AddNew(ByRef model)
  49. Dim sql, params
  50. If QuantityIsBlank(model.quantity) Then
  51. sql = "INSERT INTO [cards] ([board_id],[column_id],[swim_lane_id],[job_number],[job_name],[customer_name],[delivery_date],[quantity],[notes],[full_note],[position],[created_at],[created_by],[updated_at],[updated_by]) VALUES (?,?,?,?,?,?,?,NULL,?,?,?,?,?,?,?)"
  52. params = Array(model.board_id, model.column_id, model.swim_lane_id, model.job_number, model.job_name, model.customer_name, model.delivery_date, model.notes, model.full_note, model.position, model.created_at, model.created_by, model.updated_at, model.updated_by)
  53. Else
  54. sql = "INSERT INTO [cards] ([board_id],[column_id],[swim_lane_id],[job_number],[job_name],[customer_name],[delivery_date],[quantity],[notes],[full_note],[position],[created_at],[created_by],[updated_at],[updated_by]) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
  55. params = Array(model.board_id, model.column_id, model.swim_lane_id, model.job_number, model.job_name, model.customer_name, model.delivery_date, model.quantity, model.notes, model.full_note, model.position, model.created_at, model.created_by, model.updated_at, model.updated_by)
  56. End If
  57. DAL.Execute sql, params
  58. Dim rsId : Set rsId = DAL.Query("SELECT @@IDENTITY AS NewID", Empty)
  59. If Not rsId.EOF Then
  60. If Not IsNull(rsId(0)) Then model.id = rsId(0)
  61. End If
  62. Destroy rsId
  63. End Sub
  64. Public Sub Update(model)
  65. Dim sql, params
  66. If QuantityIsBlank(model.quantity) Then
  67. sql = "UPDATE [cards] SET [job_number]=?,[job_name]=?,[customer_name]=?,[delivery_date]=?,[quantity]=NULL,[notes]=?,[full_note]=?,[updated_at]=?,[updated_by]=? WHERE [id]=?"
  68. params = Array(model.job_number, model.job_name, model.customer_name, model.delivery_date, model.notes, model.full_note, model.updated_at, model.updated_by, model.id)
  69. Else
  70. sql = "UPDATE [cards] SET [job_number]=?,[job_name]=?,[customer_name]=?,[delivery_date]=?,[quantity]=?,[notes]=?,[full_note]=?,[updated_at]=?,[updated_by]=? WHERE [id]=?"
  71. params = Array(model.job_number, model.job_name, model.customer_name, model.delivery_date, model.quantity, model.notes, model.full_note, model.updated_at, model.updated_by, model.id)
  72. End If
  73. DAL.Execute sql, params
  74. End Sub
  75. Private Function QuantityIsBlank(v)
  76. QuantityIsBlank = (Len(Trim(CStr(v & ""))) = 0)
  77. End Function
  78. Public Sub Move(id, columnId, swimLaneId, position, updatedAt, updatedBy)
  79. Dim sql : sql = "UPDATE [cards] SET [column_id]=?,[swim_lane_id]=?,[position]=?,[updated_at]=?,[updated_by]=? WHERE [id]=?"
  80. DAL.Execute sql, Array(columnId, swimLaneId, position, updatedAt, updatedBy, id)
  81. End Sub
  82. Public Sub UpdatePosition(id, position, updatedAt, updatedBy)
  83. Dim sql : sql = "UPDATE [cards] SET [position]=?,[updated_at]=?,[updated_by]=? WHERE [id]=?"
  84. DAL.Execute sql, Array(position, updatedAt, updatedBy, id)
  85. End Sub
  86. Public Sub Delete(id)
  87. DAL.Execute "DELETE FROM [cards] WHERE [id]=?", Array(id)
  88. End Sub
  89. Public Sub DeleteByBoardId(boardId)
  90. DAL.Execute "DELETE FROM [cards] WHERE [board_id]=?", Array(boardId)
  91. End Sub
  92. Public Sub DeleteByColumnId(columnId)
  93. DAL.Execute "DELETE FROM [cards] WHERE [column_id]=?", Array(columnId)
  94. End Sub
  95. Public Sub DeleteBySwimLaneId(swimLaneId)
  96. DAL.Execute "DELETE FROM [cards] WHERE [swim_lane_id]=?", Array(swimLaneId)
  97. End Sub
  98. Public Function Count()
  99. Dim rs : Set rs = DAL.Query("SELECT COUNT(*) FROM [cards]", Empty)
  100. Count = CLng(rs(0))
  101. Destroy rs
  102. End Function
  103. End Class
  104. Dim cards_Repository__Singleton
  105. Function cards_Repository()
  106. If IsEmpty(cards_Repository__Singleton) Then
  107. Set cards_Repository__Singleton = New cards_Repository_Class
  108. End If
  109. Set cards_Repository = cards_Repository__Singleton
  110. End Function
  111. %>

Powered by TurnKey Linux.