โครงการ

ทั่วๆ ไป

Profile

Defect #183 » usp_GetDataAdditionalExplanationFromListTopic(update).sql

update - Anonymous, 07/04/2021 02:53

 
1
??USE [CAPDB_CORP_SIT]
2

3
GO
4

5
/****** Object:  StoredProcedure [dbo].[usp_GetDataAdditionalExplanationFromListTopic]    Script Date: 4/6/2021 2:45:22 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
if OBJECT_ID('tempdb..#AdditionalFromListTopic') is not null
60

61
BEGIN
62

63
  PRINT 'Yes'
64

65
END
66

67
ELSE
68

69
BEGIN
70

71

72

73
  PRINT 'No'
74

75
CREATE TABLE #AdditionalFromListTopic
76

77
(
78

79
	topicCode		NVARCHAR(50),				
80

81
	createDate		DATETIME,				
82

83
	createDateStr	NVARCHAR(200),			
84

85
	editorId		UNIQUEIDENTIFIER,				
86

87
	custCde			NVARCHAR(50),				
88

89
	attachId		UNIQUEIDENTIFIER,				
90

91
	editorDetail	NVARCHAR(2000),			
92

93
	version			INT,				
94

95
	appState		INT,
96

97
	movmntID		NVARCHAR(50),
98

99
	accTypCde		NVARCHAR(50),
100

101
	movAccTypId		NVARCHAR(200)
102

103
)
104

105
END
106

107

108

109
DECLARE @index		INT = 1
110

111

112

113
WHILE EXISTS(SELECT 1 FROM @Topic WHERE rowNo = @index)
114

115
BEGIN
116

117
	SET @topicCode = (SELECT TOP 1 topic FROM @Topic WHERE rowNo = @index)
118

119

120

121

122

123
	IF (@topicCode = 'FEE') 
124

125
	BEGIN
126

127
		select
128

129
			@txtDefault += (CSR010.thDesc + ' ')
130

131
		from
132

133
			CBMSAPP100 as APP100
134

135
			LEFT JOIN CBTBMKT049 AS MKT049 ON MKT049.pgmCde = APP100.pgmCde ----
136

137
			LEFT JOIN CBTBCSR010 AS CSR010 ON CSR010.trnCde = MKT049.trnCde
138

139
		where
140

141
			APP100.movmntId = @movmntID
142

143
			and APP100.accTypCde = @accTypCde
144

145
			and APP100.pgmCde != '99999'
146

147
	END
148

149
	IF (@topicCode = 'PROFIT')
150

151
	BEGIN
152

153
		select
154

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

157
		from CBMSAPP100 as APP100
158

159
		where
160

161
			APP100.movmntId = @movmntID
162

163
			and APP100.movAccTypId = @movAccTypId
164

165
	END
166

167
	
168

169
		INSERT INTO #AdditionalFromListTopic 
170

171
	                SELECT
172

173
	                    TOP 1 SYS60.topicCode								AS topicCode,
174

175
	                    APP80.createDate									AS createDate,
176

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

179
	                    APP80.editorId										AS editorId,
180

181
	                    APP80.custCde										AS custCde,
182

183
	                    APP80.attachId										AS attachId,
184

185
	                    CASE
186

187
	                        WHEN @topicCode = 'FEE' THEN ISNULL(APP80.editorDetail, @txtDefault)
188

189
	                        ELSE CASE
190

191
								WHEN @topicCode = 'PROFIT' THEN ISNULL(APP80.editorDetail, @frofitDefault)
192

193
								ELSE APP80.editorDetail
194

195
							END
196

197
	                    END													AS editorDetail,
198

199
	                    APP80.version										AS version,
200

201
	                    APP80.appState										AS appState,
202

203
						@movmntID as movmntID,
204

205
						@accTypCde as accTypCde,
206

207
						@movAccTypId as movAccTypId
208

209
	                FROM
210

211
	                    CBMSAPP080 AS APP80
212

213
	                    INNER JOIN CBTBSYS060 AS SYS60 ON APP80.attachId = SYS60.attachId
214

215
	                WHERE
216

217
	                    APP80.movmntID = @movmntID
218

219
	                    AND APP80.accTypCde = @accTypCde
220

221
						AND APP80.movAccTypId = @movAccTypId
222

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

225
	                    AND APP80.editEmpNo IS NULL
226

227
	                ORDER BY
228

229
	                    APP80.createDate DESC
230

231

232

233
		SET @index	+= 1 
234

235
	END
236

237

238

239
SELECT * FROM #AdditionalFromListTopic 
240

241
where movmntID = @movmntID
242

243
and accTypCde = @accTypCde
244

245
and movAccTypId = @movAccTypId
246

247

248

249
delete #AdditionalFromListTopic 
250

251
where movmntID = @movmntID
252

253
and accTypCde = @accTypCde
254

255
and movAccTypId = @movAccTypId
256

257
END
(2-2/3)