โครงการ

ทั่วๆ ไป

Profile

Defect #183 » usp_GetDataAdditionalExplanationFromListTopic(backup).sql

backup - Anonymous, 07/04/2021 02:54

 
1
??USE [CAPDB_CORP_SIT]
2

3
GO
4

5
/****** Object:  StoredProcedure [dbo].[usp_GetDataAdditionalExplanationFromListTopic]    Script Date: 4/6/2021 2:39:27 PM ******/
6

7
SET ANSI_NULLS ON
8

9
GO
10

11
SET QUOTED_IDENTIFIER ON
12

13
GO
14

15
-- =============================================
16

17
-- Author:		<Puwanat>
18

19
-- Create date: <19/02/2563>
20

21
-- Description:	<3-42"@4H!@4!>
22

23
-- =============================================
24

25
ALTER    PROCEDURE [dbo].[usp_GetDataAdditionalExplanationFromListTopic] 
26

27
	@movmntID			NVARCHAR(50)	= NULL,
28

29
	@topicCode			NVARCHAR(50)	= NULL,
30

31
	@accTypCde			NVARCHAR(50)	= NULL,
32

33
	@movAccTypId		NVARCHAR(200)	= NULL
34

35
AS  
36

37
BEGIN 
38

39
DECLARE @EmptyGuid			UNIQUEIDENTIFIER	= 0x0  
40

41
DECLARE @txtDefault			NVARCHAR(500)		= ''
42

43
DECLARE @frofitDefault		NVARCHAR(500)		= ''
44

45
DECLARE @Topic TABLE(
46

47
	rowNo		INT
48

49
	,topic		NVARCHAR(500) 
50

51
)
52

53
INSERT INTO @Topic 
54

55
VALUES (1,'PERIOD'), (2,'FEE'), (3,'PROFIT'), (4,'PAYMENT'), (5,'PF_PAY')
56

57

58

59
DECLARE @Response	TABLE(
60

61
	topicCode		NVARCHAR(50),				
62

63
	createDate		DATETIME,				
64

65
	createDateStr	NVARCHAR(200),			
66

67
	editorId		UNIQUEIDENTIFIER,				
68

69
	custCde			NVARCHAR(50),				
70

71
	attachId		UNIQUEIDENTIFIER,				
72

73
	editorDetail	NVARCHAR(2000),			
74

75
	version			INT,				
76

77
	appState		INT		
78

79
)
80

81

82

83
DECLARE @index		INT = 1
84

85

86

87
WHILE EXISTS(SELECT 1 FROM @Topic WHERE rowNo = @index)
88

89
BEGIN
90

91
	SET @topicCode = (SELECT TOP 1 topic FROM @Topic WHERE rowNo = @index)
92

93

94

95

96

97
	IF (@topicCode = 'FEE') 
98

99
	BEGIN
100

101
		select
102

103
			@txtDefault += (CSR010.thDesc + ' ')
104

105
		from
106

107
			CBMSAPP100 as APP100
108

109
			LEFT JOIN CBTBMKT049 AS MKT049 ON MKT049.pgmCde = APP100.pgmCde ----
110

111
			LEFT JOIN CBTBCSR010 AS CSR010 ON CSR010.trnCde = MKT049.trnCde
112

113
		where
114

115
			APP100.movmntId = @movmntID
116

117
			and APP100.accTypCde = @accTypCde
118

119
			and APP100.pgmCde != '99999'
120

121
	END
122

123
	IF (@topicCode = 'PROFIT')
124

125
	BEGIN
126

127
		select
128

129
			@frofitDefault += ('-1#23D#'+ ' '+APP100.profitRteCde + ' ' + convert(NVARCHAR(50),APP100.discnt)+'%' )
130

131
		from CBMSAPP100 as APP100
132

133
		where
134

135
			APP100.movmntId = @movmntID
136

137
			and APP100.movAccTypId = @movAccTypId
138

139
	END
140

141
	
142

143
	INSERT INTO @Response 
144

145
		select top 1 * from
146

147
	    (
148

149
	        select * from
150

151
	            (
152

153
	                SELECT
154

155
	                    TOP 1 SYS60.topicCode								AS topicCode,
156

157
	                    APP80.createDate									AS createDate,
158

159
	                    FORMAT(APP80.createDate, 'dd/MM/yyyy', 'th-TH')		AS createDateStr,
160

161
	                    APP80.editorId										AS editorId,
162

163
	                    APP80.custCde										AS custCde,
164

165
	                    APP80.attachId										AS attachId,
166

167
	                    CASE
168

169
	                        WHEN @topicCode = 'FEE' THEN ISNULL(APP80.editorDetail, @txtDefault)
170

171
	                        ELSE CASE
172

173
								WHEN @topicCode = 'PROFIT' THEN ISNULL(APP80.editorDetail, @frofitDefault)
174

175
								ELSE APP80.editorDetail
176

177
							END
178

179
	                    END													AS editorDetail,
180

181
	                    APP80.version										AS version,
182

183
	                    APP80.appState										AS appState
184

185
	                FROM
186

187
	                    CBMSAPP080 AS APP80
188

189
	                    INNER JOIN CBTBSYS060 AS SYS60 ON APP80.attachId = SYS60.attachId
190

191
	                WHERE
192

193
	                    APP80.movmntID = @movmntID
194

195
	                    AND APP80.accTypCde = @accTypCde
196

197
						AND APP80.movAccTypId = @movAccTypId
198

199
	                    AND SYS60.topicCode = @topicCode --in('PERIOD', 'FEE', 'PROFIT', 'PAYMENT', 'PF_PAY')
200

201
	                    AND APP80.editEmpNo IS NULL
202

203
	                ORDER BY
204

205
	                    APP80.createDate DESC
206

207
	            ) as x
208

209
	        UNION
210

211
	        SELECT
212

213
	            @topicCode									AS topicCode,
214

215
	            getdate()									AS createDate,
216

217
	            FORMAT(getdate(), 'dd/MM/yyyy', 'th-TH')	AS createDateStr,
218

219
	            @EmptyGuid									AS editorId,
220

221
	            ''											AS custCde,
222

223
	            @EmptyGuid									AS attachId,
224

225
	            @txtDefault									AS editorDetail,
226

227
	            0											AS version,
228

229
	            0											AS appState
230

231
	    ) as DataComment
232

233

234

235
		SET @index	+= 1 
236

237
	END
238

239

240

241
	SELECT * FROM @Response
242

243
END
(3-3/3)