โครงการ

ทั่วๆ ไป

Profile

Defect #539 » 230FTVISZERO.sql

Chom-Nattanicha Phedpo, 06/09/2021 05:00

 
1
??--ALTER  PROCEDURE [dbo].[usp_CalAppFTV] 
2

3
DECLARE @Applno NVARCHAR(20)				
4

5

6

7
	SET NOCOUNT ON;
8

9
	--declare @Applno NVARCHAR(20)	
10

11
	--set @Applno  ='AP00008-200917-00087'
12

13

14

15
	declare @TmpApplno nvarchar(50)
16

17
	declare @TmpTableName nvarchar(100)
18

19
	declare @SQLTxt01	varchar(max)
20

21
	declare @SQLTxt02	varchar(max)
22

23
	declare @SQLTxt03   varchar(max)
24

25
	declare @movmntID	uniqueidentifier 
26

27
	declare @marketvalues decimal(18,2)
28

29
	declare @smktValue decimal(18,2)
30

31
	declare @grpCollaLessAmt decimal(18,2)
32

33
	declare @valueCollateral  decimal(18,2)
34

35
	declare @valueAPP162 decimal(18,2)
36

37
	declare @AppState int
38

39
	declare @checkStatus int
40

41
	declare @Exposure  decimal(18,2)
42

43
	declare @pgmCde nvarchar(20)
44

45
	declare @checkauthTyp int
46

47

48

49
	set @checkStatus=0
50

51
	set @valueAPP162=0
52

53
	set @marketvalues=0
54

55
	set @smktValue =0
56

57
	set @valueCollateral=0
58

59
	set @movmntID = (select movmntID from cbmsapp010 where applno = @Applno and recsts='A')
60

61
	
62

63
	set @AppState=(select appstate from cbmsapp010 where applno = @Applno and recsts='A')
64

65

66

67
	set @Exposure =(select exposure from CBMSAPP010 where applno = @Applno and recsts='A')
68

69

70

71
	set @pgmCde =(select pgmCde from CBTBMKT040 where pgmNam like '%top up%' 
72

73
                     and pgmCde in (select  pgmCde from CBMSAPP010 where applNo=@Applno and recsts='A' ))
74

75

76

77
	print @pgmCde
78

79

80

81
	IF(@AppState>40)
82

83
	BEGIN
84

85
	
86

87
		select @checkStatus=COUNT(*)	from CBMSAPP162 where movmntID = @movmntID and recSts='A'  and procTyp = 0   --D!H3*H
88

89
		
90

91
		-- #22#0@!4 2H2"#1#-#22
92

93
		select @valueAPP162=authValue	from CBMSAPP162 where movmntID = @movmntID and recSts='A'   and authSys=1 and apists=3 --H2"#1#-!2A%I'
94

95

96

97
		select @checkauthTyp = (SELECT authTyp FROM CBMSAPP162 WHERE movmntID = @movmntID and recSts='A')
98

99

100

101
	---- #5!5+%1#01!2'H2 1 #2"2# 0@-2 #22#0@!4 2 +%1#01 !2#'!1 A%I' Update APP162
102

103
	--===================UPDATE BY Lannicha Kaensusadee 2020-08-21=================== 
104

105
	
106

107

108

109
			--#22#0@!4*   5H tab +%1#01
110

111
			SELECT @valueCollateral	=	SUM(app.smktValue) 
112

113
			FROM(	SELECT ISNULL(PP150.smktValue,0) as smktValue  --5H4#I-!*4H%9*4H%9*#I2
114

115
					FROM CBMSAPP212 PP212 
116

117
					left join CBMSAPP150  PP150  ON PP212.collaDetailId =PP150.collaDetailId and PP150.recSts='A'
118

119
					WHERE  PP212.movmntID=@movmntID
120

121
					and PP212.recSts='A'
122

123
					UNION
124

125
					SELECT ISNULL(PP151.smktValue,0)  as smktValue --5H4
126

127
					FROM CBMSAPP212 PP212 		
128

129
					left join Cbmsapp151  PP151  ON PP212.collaDetailId =PP151.collaDetailId and PP151.recSts='A'
130

131
					WHERE  PP212.movmntID=@movmntID
132

133
					and PP212.recSts='A'
134

135
					UNION
136

137
					--updated by was
138

139
					SELECT ISNULL(PP154.smktValue,0)  as smktValue ---B
140

141
					FROM CBMSAPP212 PP212 		
142

143
					left join CBMSAPP154 PP154  ON PP212.collaDetailId =PP154.collaDetailId and PP154.recSts='A'
144

145
					WHERE  PP212.movmntID=@movmntID
146

147
					and PP212.recSts='A'
148

149
					--end updated by was
150

151
			) AS app
152

153

154

155
			
156

157
			--#227I-2"* 5H tab +%1#01
158

159
							--CBMSAPP150 5H4#I-!*4H%9*#I2
160

161
			SELECT @marketvalues	=	SUM(AppMarketvalues.marketvalues) 
162

163
			FROM(	SELECT ISNULL(PP150.marketvalues,0) as marketvalues
164

165
					FROM CBMSAPP212 PP212 
166

167
					left join CBMSAPP150  PP150  ON PP212.collaDetailId =PP150.collaDetailId and PP150.recSts='A'
168

169
					WHERE  PP212.movmntID=@movmntID
170

171
					and PP212.recSts='A'
172

173
					UNION  --CBMSAPP151 5H4
174

175
					SELECT ISNULL(PP151.marketvalues,0)  as marketvalues
176

177
					FROM CBMSAPP212 PP212 		
178

179
					left join Cbmsapp151  PP151  ON PP212.collaDetailId =PP151.collaDetailId and PP151.recSts='A'
180

181
					WHERE  PP212.movmntID=@movmntID
182

183
					and PP212.recSts='A'
184

185

186

187
					UNION   --CBMSAPP154 -B
188

189
					SELECT ISNULL(PP154.mktValue,0)  as marketvalues
190

191
					FROM CBMSAPP212 PP212 		
192

193
					left join CBMSAPP154  PP154  ON PP212.collaDetailId =PP154.collaDetailId and PP154.recSts='A'
194

195
					WHERE  PP212.movmntID=@movmntID
196

197
					and PP212.recSts='A'
198

199

200

201
					UNION   --CBMSAPP154 *4H%9*#I2
202

203
					SELECT ISNULL(PP152.mktValue,0)  as marketvalues
204

205
					FROM CBMSAPP212 PP212 		
206

207
					left join CBMSAPP152  PP152  ON PP212.collaDetailId =PP152.collaDetailId and PP152.recSts='A'
208

209
					WHERE  PP212.movmntID=@movmntID
210

211
					and PP212.recSts='A'
212

213

214

215
					
216

217
			) AS AppMarketvalues
218

219

220

221
			
222

223
			IF(@valueCollateral>0) --#22#0@!4 2+%1#01!5H2!2'H2 0 0-1@ 22##1#-#22
224

225
			BEGIN
226

227

228

229
					
230

231
					UPDATE  CBMSAPP162 SET authValue=@valueCollateral    --authValue 22##1#-#22
232

233

234

235
					WHERE  movmntID=@movmntID and recSts='A'
236

237

238

239
					SET @smktValue= @valueCollateral
240

241
			END
242

243

244

245
			
246

247
			IF(@valueAPP162>0)  -- #5#1#-#22!2A%I'
248

249
			BEGIN
250

251
								---@valueAPP162 22##1#-#22
252

253
							    ---@marketvalues #227I-2"
254

255
					--select 'case 1',@marketvalues,@valueAPP162
256

257
					SELECT  @grpCollaLessAmt=case when @marketvalues >  @valueAPP162   then @valueAPP162 else @marketvalues end 
258

259

260

261
					-- update #22#0@!4 I'"#225H22##1#-!2
262

263
					update PP150 set smktValue = @valueAPP162
264

265
					FROM CBMSAPP150 PP150 where collaDetailId in (select collaDetailId from CBMSAPP212 where movmntID = @movmntID)				
266

267
							
268

269
					update PP151 set smktValue = @valueAPP162
270

271
					FROM CBMSAPP151 PP151 where collaDetailId in (select collaDetailId from CBMSAPP212 where movmntID = @movmntID)
272

273

274

275
					update PP154 set smktValue = @valueAPP162
276

277
					FROM CBMSAPP154 PP154 where collaDetailId in (select collaDetailId from CBMSAPP212 where movmntID = @movmntID)
278

279

280

281
					
282

283
					
284

285
			END
286

287
			ELSE
288

289
			BEGIN  --#5"1D!H#1#-#22
290

291
				   --select 'case 2' ,@marketvalues	,@smktValue
292

293
								---@smktValue #22#0@!4
294

295
								---@marketvalues #227I-2"
296

297
					SELECT  @grpCollaLessAmt=case when @marketvalues >  @smktValue   then @smktValue else @marketvalues end 
298

299
					
300

301
			END
302

303
			IF(@checkStatus>0) --#5D!H3*H#0@!4
304

305
			BEGIN		
306

307
				 --select 'case 3'	,@marketvalues	,@smktValue
308

309
								---@smktValue #22#0@!4
310

311
								---@marketvalues #227I-2"
312

313
					SELECT  @grpCollaLessAmt=case when @marketvalues >  @smktValue   then @smktValue else @marketvalues end 
314

315

316

317
					
318

319
			END
320

321

322

323
	--------------------------------------------------------------------------------
324

325
	IF (@checkauthTyp = 2) --#1#-#22 D!H#1#- 3+C+ID!H!5H2#22#0@!43D3'
326

327
	BEGIN
328

329
		SET @grpCollaLessAmt = 0
330

331
	END
332

333

334

335

336

337
	DECLARE @TbDataCalFTV  TABLE 
338

339
							(	applno nvarchar(20),	
340

341
								movmntID uniqueidentifier,	
342

343
								prdTyp nvarchar(10),	
344

345
								accTypCde varchar(20),	
346

347
								amount decimal(18,4),	
348

349
								grpCollalessamt decimal(18,4),	
350

351
								FTVPacc decimal(18,2)
352

353
							)
354

355
	
356

357
	
358

359
		INSERT INTO @TbDataCalFTV
360

361
		SELECT   a.applno
362

363
				,a.movmntID
364

365
				,APP100.prdTyp
366

367
				,APP100.accTypCde
368

369
				,APP100.amount
370

371
				,@grpCollaLessAmt 
372

373
		      , case when (@grpCollaLessAmt >0) and (ISNULL(@pgmCde,'')<>'')  then   round((isnull(@Exposure,0) / isnull(@grpCollaLessAmt,0)) * 100,2)   --case top up  
374

375
			   else  case when (@grpCollaLessAmt >0) and (ISNULL(@pgmCde,'')='') then  round((isnull(APP100.amount,0) / isnull(@grpCollaLessAmt,0)) * 100,2)   --case 4 
376

377
				   else 0 end  end as FTVPacc
378

379
		 from CBMSAPP010 a  
380

381
		 left join CBMSAPP100 APP100 on (a.applno = APP100.applno  and APP100.recsts = 'A' and APP100.pgmMRTA<>1) 		 
382

383
		 where a.applno = @Applno 
384

385
		 and a.recsts = 'A'
386

387
		 and APP100.pgmMRTA<>1
388

389

390

391
		  
392

393

394

395
		 --select FTV.FTVPacc
396

397
		 --FROM CBMSAPP100  APP100 
398

399
		 --INNER JOIN @TbDataCalFTV FTV ON APP100.applNo=FTV.applno AND APP100.accTypCde=FTV.accTypCde
400

401
		 --WHERE APP100.applNo=@Applno
402

403
		 --AND APP100.recSts='A'
404

405

406

407
		 --select  * from @TbDataCalFTV
408

409
		 ------Update APP100----
410

411
		 UPDATE APP100  SET FTVPacc = FTV.FTVPacc
412

413
		 FROM CBMSAPP100  APP100 
414

415
		 INNER JOIN @TbDataCalFTV FTV ON APP100.applNo=FTV.applno AND APP100.accTypCde=FTV.accTypCde
416

417
		 WHERE APP100.applNo=@Applno
418

419
		 AND APP100.recSts='A'
420

421

422

423

424

425
		
426

427
		
428

429
		 ------Update APP010-----
430

431
		 UPDATE APP010 set FTVPerc = case when (isnull(b.amt,0) > 0) and (isnull(b.grpCollalessamt,0) > 0 ) and (ISNULL(@pgmCde,'')<>'') --case top up
432

433
		 then round((isnull(@Exposure,0)/b.grpCollalessamt) * 100,2) else
434

435
		 case when (isnull(b.amt,0) > 0) and (isnull(b.grpCollalessamt,0) > 0 ) and (ISNULL(@pgmCde,'')='')  --case 4
436

437
		 then round((b.amt/b.grpCollalessamt) * 100,2)  
438

439
		 else 0 
440

441
		 end end 
442

443

444

445

446

447

448

449

450

451
					from CBMSAPP010 APP010,( select applno,grpCollalessamt,sum(amount) as amt
452

453
										from @TbDataCalFTV
454

455
										group by applno,grpCollalessamt) b
456

457
					where APP010.applno = b.applno
458

459
					and APP010.applno = @Applno
460

461

462

463
		--select FTVPerc,* from CBMSAPP010 where applno = @Applno
464

465
	END
466

467
		
468

469
	--================================4 function 5H5H@5" '15H 2020-08-21 5H5H@5" ======================================
470

471
	
472

473
	--set @TmpApplno = REPLACE(@Applno,'-','')
474

475
	--set @TmpTableName = '#AppCalFTV'+@TmpApplno
476

477
	-- set @SQLTxt01 = N'select a.applno,a.movmntID,APP100.prdTyp,APP100.accTypCde,APP100.amount,APP162.grpCollalessamt  
478

479
	--	 ,case when isnull(APP162.grpCollalessamt,0) >0 then   
480

481
	--	   round(isnull(APP100.amount,0) / isnull(APP175.grpCollaLessAmt,isnull(APP162.grpCollalessamt,0)) * 100,2)   
482

483
	--	   else 0 end  
484

485
	--	 as FTVPacc  
486

487
	--	 into '+@TmpTableName+'  
488

489
	--	 from cbmsapp010 a  
490

491
	--	 left join cbmsapp100 APP100 on (a.applno = APP100.applno  and APP100.recsts = ''A'')  
492

493
	--	 --left join CBMSAPP175  APP175 on APP175.movmntID = a.movmntID and APP175.recSts = ''A''
494

495
	--	 left join ( select movmntID,isnull(grpCollalessamt,0) as grpCollalessamt  
496

497
	--		from cbmsapp162   
498

499
	--		where movmntID = '''+cast(@movmntID as varchar(100))+'''  
500

501
	--		and authSys  = 1  
502

503
	--		and recsts = ''A'') APP162 on (a.movmntID = APP162.movmntID)  
504

505
	--	 left join cbmsapp175 APP175 on (a.movmntID=APP175.movmntID AND APP175.recSts=''A'')  
506

507
	--	 where a.applno = '''+@Applno+'''   
508

509
	--	 and a.recsts = ''A''     
510

511
	--	 '  
512

513
	--set @SQLTxt02 = N'update cbmsapp100 set FTVPacc = b.FTVPacc
514

515
	--				  from cbmsapp100 a,'+@TmpTableName+' b
516

517
	--				  where a.applno = b.applNo
518

519
	--				  and a.accTypCde = b.accTypCde
520

521
	--				  and a.recsts = ''A'' 
522

523
	--				  '
524

525

526

527
	--set @SQLTxt03 = N'update cbmsapp010 set FTVPerc = case when isnull(b.amt,0) > 0 and isnull(b.grpCollalessamt,0) > 0 then round(b.amt/b.grpCollalessamt * 100,2) else 0 end
528

529
	--				from cbmsapp010 a,( select applno,grpCollalessamt,sum(amount) as amt
530

531
	--									from '+@TmpTableName+'
532

533
	--									group by applno,grpCollalessamt) b
534

535
	--				where a.applno = b.applno
536

537
	--				and a.applno = '''+@Applno+'''  '
538

539
	--	--print @SQLTxt01+@SQLTxt02
540

541
	--	--print @SQLTxt03
542

543
	--	--print(@SQLTxt01)
544

545
	--EXECUTE( @SQLTxt01 + @SQLTxt02 + @SQLTxt03)
(1-1/2)