AlexisReadWrite.sql 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. CREATE DATABASE AlexisReadWrite;
  2. GO
  3. USE AlexisReadWrite;
  4. GO
  5. CREATE SCHEMA [DataAccessLayer] AUTHORIZATION dbo;
  6. GO
  7. CREATE TABLE [DataAccessLayer].[TableMetaData]
  8. (
  9. [TableName] VARCHAR(100) NOT NULL,
  10. [BoundaryDateTime] DATETIME NULL,
  11. [BoundaryID] BIGINT NULL,
  12. [BoundaryType] VARCHAR(50) NOT NULL DEFAULT 'Lower',
  13. CONSTRAINT [PK_TablenameT1] PRIMARY KEY CLUSTERED
  14. (
  15. [TableName] ASC
  16. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  17. ) ON [PRIMARY];
  18. GO
  19. CREATE TABLE [dbo].[Transaction](
  20. [ID] [bigint] IDENTITY(6150000000,1) NOT FOR REPLICATION NOT NULL,
  21. [PAN] [bigint] NOT NULL,
  22. [SysDate] [datetime] NOT NULL,
  23. [TransDate] [datetime] NOT NULL,
  24. [TransCcy] [char](3) NOT NULL,
  25. [BillAmt] [decimal](19, 4) NOT NULL,
  26. [Description] [nvarchar](300) NOT NULL,
  27. [OldStatus] [char](2) NOT NULL,
  28. [NewStatus] [char](2) NOT NULL,
  29. [TransactionType] [char](1) NOT NULL,
  30. [RecordID] [bigint] NOT NULL,
  31. [TransactionStatus] [char](1) NOT NULL,
  32. [TransAmt] [money] NULL,
  33. [BillNat_Conv] [decimal](18, 15) NULL,
  34. [Actual_Balance] [decimal](19, 4) NOT NULL,
  35. [Blocked_Amount] [decimal](19, 4) NULL,
  36. [flCredit] [smallint] NULL,
  37. [ProcessingCode] [varchar](6) NULL,
  38. [AuthMethod] [smallint] NULL,
  39. [LoadSRC] [smallint] NULL,
  40. [LoadType] [smallint] NULL,
  41. [OrigStan] [varchar](50) NULL,
  42. [Note] [varchar](500) NULL,
  43. [Amount_other] [varchar](20) NULL,
  44. [Fixed_Fee] [decimal](19, 4) NULL,
  45. [Rate_Fee] [decimal](19, 4) NULL,
  46. [Fx_Padding] [decimal](19, 4) NULL,
  47. [Mcc_Padding] [decimal](19, 4) NULL,
  48. [AuthPresDiff] [decimal](19, 4) NULL,
  49. [txnCountry] [varchar](5) NULL,
  50. [FeeID] [int] NULL,
  51. [Trans_Link] [bigint] NULL,
  52. [SettlementAmt] [decimal](19, 4) NULL,
  53. [Additional_Data] [varchar](50) NULL,
  54. [BillCcy] [char](3) NULL,
  55. [SettleCcy] [char](3) NULL,
  56. [TxnTypeProcCode] [char](2) NULL,
  57. [Account_From] [char](2) NULL,
  58. [Account_To] [char](2) NULL,
  59. [traceid_lifecycle] [varchar](40) NULL,
  60. [payment_token_id] [int] NULL,
  61. [AccountID] [bigint] NULL,
  62. [WalletID] [bigint] NULL,
  63. CONSTRAINT [PK_Statement1_T2] PRIMARY KEY CLUSTERED
  64. (
  65. [ID] ASC,
  66. [TransDate] ASC
  67. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 95, DATA_COMPRESSION = PAGE))
  68. GO
  69. CREATE NONCLUSTERED INDEX [IX_FeeID_T2] ON [dbo].[Transaction]
  70. (
  71. [FeeID] ASC
  72. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90, DATA_COMPRESSION = PAGE)
  73. GO
  74. CREATE NONCLUSTERED INDEX [IX_PAN_T2] ON [dbo].[Transaction]
  75. (
  76. [PAN] ASC,
  77. [TransDate] ASC
  78. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90, DATA_COMPRESSION = PAGE)
  79. GO
  80. CREATE NONCLUSTERED INDEX [IX_RecordID_T2] ON [dbo].[Transaction]
  81. (
  82. [RecordID] ASC
  83. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90, DATA_COMPRESSION = PAGE)
  84. GO
  85. CREATE NONCLUSTERED INDEX [Ix_Transaction_Trans_Link_PAN_T2] ON [dbo].[Transaction]
  86. (
  87. [Trans_Link] ASC,
  88. [PAN] ASC
  89. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90, DATA_COMPRESSION = PAGE)
  90. GO
  91. CREATE NONCLUSTERED INDEX [ix_Transaction_TransDate_TransactionStatus_T2] ON [dbo].[Transaction]
  92. (
  93. [TransDate] ASC,
  94. [TransactionType] ASC,
  95. [TransactionStatus] ASC
  96. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90, DATA_COMPRESSION = PAGE)
  97. GO
  98. CREATE TABLE [dbo].[Transaction_Int](
  99. [ID] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
  100. [PAN] [bigint] NOT NULL,
  101. [SysDate] [datetime] NOT NULL,
  102. [TransDate] [datetime] NOT NULL,
  103. [TransCcy] [char](3) NOT NULL,
  104. [BillAmt] [decimal](9, 2) NOT NULL,
  105. [Description] [nvarchar](300) NOT NULL,
  106. [OldStatus] [char](2) NOT NULL,
  107. [NewStatus] [char](2) NOT NULL,
  108. [TransactionType] [char](1) NOT NULL,
  109. [RecordID] [int] NOT NULL,
  110. [TransactionStatus] [char](1) NOT NULL,
  111. [TransAmt] [money] NULL,
  112. [BillNat_Conv] [decimal](18, 15) NULL,
  113. [Actual_Balance] [decimal](9, 2) NOT NULL,
  114. [Blocked_Amount] [decimal](9, 2) NULL,
  115. [flCredit] [smallint] NULL,
  116. [ProcessingCode] [varchar](6) NULL,
  117. [AuthMethod] [smallint] NULL,
  118. [LoadSRC] [smallint] NULL,
  119. [LoadType] [smallint] NULL,
  120. [OrigStan] [varchar](50) NULL,
  121. [Note] [varchar](500) NULL,
  122. [Amount_other] [varchar](20) NULL,
  123. [Fixed_Fee] [decimal](9, 2) NULL,
  124. [Rate_Fee] [decimal](9, 2) NULL,
  125. [Fx_Padding] [decimal](9, 2) NULL,
  126. [Mcc_Padding] [decimal](9, 2) NULL,
  127. [AuthPresDiff] [decimal](9, 2) NULL,
  128. [txnCountry] [varchar](5) NULL,
  129. [FeeID] [int] NULL,
  130. [Trans_Link] [bigint] NULL,
  131. [SettlementAmt] [decimal](9, 2) NULL,
  132. [Additional_Data] [varchar](50) NULL,
  133. [BillCcy] [char](3) NULL,
  134. [SettleCcy] [char](3) NULL,
  135. [TxnTypeProcCode] [char](2) NULL,
  136. [Account_From] [char](2) NULL,
  137. [Account_To] [char](2) NULL,
  138. [traceid_lifecycle] [varchar](40) NULL,
  139. [payment_token_id] [int] NULL,
  140. CONSTRAINT [PK_Statement1] PRIMARY KEY NONCLUSTERED
  141. (
  142. [ID] ASC
  143. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 95, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
  144. ) ON [PRIMARY]
  145. GO
  146. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF_Statement_SysDate] DEFAULT (getdate()) FOR [SysDate]
  147. GO
  148. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF_Transaction_Available_Balance] DEFAULT ((1)) FOR [BillNat_Conv]
  149. GO
  150. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF_Transaction_Actual_Balance] DEFAULT ((0)) FOR [Actual_Balance]
  151. GO
  152. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF_Transaction_Blocked_Amount] DEFAULT ((0)) FOR [Blocked_Amount]
  153. GO
  154. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF_Transaction_flCredit] DEFAULT ((1)) FOR [flCredit]
  155. GO
  156. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF_Transaction_LoadType] DEFAULT ((0)) FOR [LoadType]
  157. GO
  158. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF_Transaction_Fixed_Fee] DEFAULT ((0.0)) FOR [Fixed_Fee]
  159. GO
  160. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF_Transaction_Rate_Fee] DEFAULT ((0.0)) FOR [Rate_Fee]
  161. GO
  162. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF_Transaction_Fx_Padding] DEFAULT ((0.0)) FOR [Fx_Padding]
  163. GO
  164. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF_Transaction_Mcc_Padding] DEFAULT ((0.0)) FOR [Mcc_Padding]
  165. GO
  166. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF_Transaction_AuthPresDiff] DEFAULT ((0.00)) FOR [AuthPresDiff]
  167. GO
  168. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF_Transaction_FeeID] DEFAULT ((0)) FOR [FeeID]
  169. GO
  170. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF__Transacti__Trans__21AEDB1F] DEFAULT ((0)) FOR [Trans_Link]
  171. GO
  172. ALTER TABLE [dbo].[Transaction_Int] ADD DEFAULT ((0)) FOR [SettlementAmt]
  173. GO
  174. ALTER TABLE [dbo].[Transaction_Int] ADD DEFAULT ('') FOR [Additional_Data]
  175. GO
  176. ALTER TABLE [dbo].[Transaction_Int] ADD CONSTRAINT [DF_TRANSACTION__payment_token_id] DEFAULT (NULL) FOR [payment_token_id]
  177. GO
  178. CREATE PROCEDURE [DataAccessLayer].[AppendTransactionNoteById]
  179. @Tier INT,
  180. @TransactionId BIGINT,
  181. @Note VARCHAR(500),
  182. @DateFrom DateTime,
  183. @DateTo DateTime
  184. AS
  185. BEGIN
  186. IF @Tier = 0 --hot
  187. BEGIN
  188. UPDATE [dbo].[Transaction]
  189. SET Note = SUBSTRING(ISNULL(Note, '') + @Note, 1, 500)
  190. WHERE Id = @TransactionId
  191. AND TransDate BETWEEN @DateFrom AND @DateTo
  192. END
  193. ELSE IF @Tier = 1 --warm
  194. BEGIN
  195. UPDATE [dbo].[Transaction_Int]
  196. SET Note = SUBSTRING(ISNULL(Note, '') + @Note, 1, 500)
  197. WHERE Id = @TransactionId
  198. AND TransDate BETWEEN @DateFrom AND @DateTo
  199. END
  200. END
  201. GO