Project

General

Profile

[GSOFT - BVBANK] - Script đóng stored ASS_AMORT_START.txt

Luc Tran Van, 02/25/2025 05:33 PM

 
1
ALTER PROCEDURE [dbo].[ASS_AMORT_Start]
2
	@p_AMORT_ID	varchar(15)  = NULL
3
AS
4
--	--declare @l_CURR_AMORT_AMT decimal(18,0)
5
--	declare @l_CURR_AMORT_STATUS nvarchar(100)
6
--	declare @l_EXP_GL varchar(50)
7
--	DECLARE @l_AMORT_GL varchar(50)
8
--	declare @l_GROUP_ID varchar(15)
9
--	declare @l_ASSET_ID varchar(15)
10
--	declare @l_AMORT_AMT decimal(18,0)
11
--	declare @l_BRANCH_ID varchar(15)
12
--	declare @l_AMORTIZED_MONTH DECIMAL(18,2)
13
--	declare @l_ET_ID varchar(15)
14
--	declare @l_AMORTDT_ID varchar(15)
15
--	declare @l_AMORT_END_DATE datetime
16
	
17
--	declare @sToday varchar(10) = convert(varchar(10), getdate(), 103)
18
--	declare @sExecDT datetime
19
--	declare @l_TRN_REF_NO varchar(20) = NULL
20
--	declare @l_DO_BRANCH_ID varchar(15)= NULL
21
--	DECLARE @l_TYPE_ID	varchar(15)  = NULL
22
	
23
--	DECLARE @l_DR_BRN_ID varchar(15), @l_CR_BRN_ID varchar(15)		
24
--	DECLARE @l_HO_BRN_ID varchar(15)	
25
--	DECLARE @l_DEP_ID varchar(15)
26
	
27
--	DECLARE @l_MAKER_ID varchar(15), @l_CHECKER_ID varchar(15), @l_BRANCH_ID_DO varchar(20), @l_ASSET_TYPE_DO varchar(15),
28
--	@l_BRANCH_TYPE_DO varchar(15)
29
--	DECLARE @l_ASSET_TYPE VARCHAR(15), @l_DESC_CORE nvarchar(200),@l_AMORT_TERM varchar(20) --thieuvq them loai tai san de dien giai hach toan
30
--	--Put valodation here	
31

    
32
--	--Phong added for cost allocate starts :: 1/11/2018	
33
--	declare @l_AMORTCOSTDT_ID varchar(15)
34
--	declare @l_Cost decimal(18,0)
35
--	declare @l_COSTDT_ID varchar(15)
36
--	declare @l_COST_EXP_GL varchar(50)
37
--	declare @l_COST_BRANCH_ID varchar(15),@l_AMORT_START_DATE datetime
38
--	--Phong added for cost allocate ends :: 1/11/2018	
39
	
40
--	--get data
41
--	select @sExecDT = EXECUTE_DT, @l_MAKER_ID = MAKER_ID, @l_CHECKER_ID = CHECKER_ID, @l_AMORT_TERM = AMORT_TERM,
42
--	--
43
--	@l_BRANCH_ID_DO = BRANCH_ID, @l_ASSET_TYPE_DO = ASSET_TYPE--thieuvq them 01/08/2014
44
--	--
45
--	FROM ASS_AMORT 
46
--	where AMORT_ID = @p_AMORT_ID
47

    
48
--	SET @l_AMORT_TERM = REPLACE(@l_AMORT_TERM,'/',' ')
49

    
50
--	--Lay branch_id cua user duyet
51
--	select @l_DO_BRANCH_ID = a.TLSUBBRID from TL_USER a where a.TLNANME = (SELECT MAKER_ID FROM ASS_AMORT WHERE AMORT_ID = @p_AMORT_ID)	
52
	
53
--	--BRN_ID HOI SO
54
--	SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'	
55

    
56
--	--lay branch type cua don vi thuc hien
57
--	SELECT @l_BRANCH_TYPE_DO = BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_ID_DO
58
	
59
--	--oepn cursor
60
--	declare pCur cursor for
61
--		 SELECT A.AMORTDT_ID, A.ASSET_ID, A.BRANCH_ID, A.DEP_ID, A.AMORT_AMT, 
62
--				AM.GROUP_ID, AM.AMORTIZED_MONTH, AM.AMORT_END_DATE, AM.[TYPE_ID], AM.AMORT_START_DATE
63
--		 FROM ASS_AMORT_DT  A
64
--		 LEFT JOIN ASS_MASTER AM ON AM.ASSET_ID = A.ASSET_ID
65
--		 WHERE AMORT_ID = @p_AMORT_ID AND A.EXECUTED = '0'
66

    
67
--	open pCur
68
--	DECLARE @SOKY INT = 1
69
--	DECLARE @BeginDate DATE = CONVERT(DATE,(CONVERT(VARCHAR(10),YEAR(@sExecDT))+'-'+CONVERT(VARCHAR(4),MONTH(@sExecDT)) +'-1'))
70
--	--SELECT @BeginDate
71
--BEGIN TRANSACTION
72

    
73
--	--chay khau hao
74
--	FETCH NEXT FROM pCur INTO  @l_AMORTDT_ID, @l_ASSET_ID, @l_BRANCH_ID, @l_DEP_ID, @l_AMORT_AMT, 
75
--				@l_GROUP_ID, @l_AMORTIZED_MONTH, @l_AMORT_END_DATE, @l_ASSET_TYPE, @l_AMORT_START_DATE
76
	
77
--	WHILE @@FETCH_STATUS = 0	
78
--	BEGIN
79
--		--lay thong tin tai khoan
80
--		SELECT @l_EXP_GL = G.EXP_ACCTNO, @l_AMORT_GL = G.AMORT_ACCTNO,@l_Type_ID = G.[TYPE_ID]
81
--		FROM ASS_GROUP G
82
--		WHERE G.GROUP_ID = @l_GROUP_ID
83
--		IF @@ERROR<>0 GOTO ABORT
84

    
85
--		SET @SOKY = 1
86
--		IF (@l_AMORTIZED_MONTH = 0) --Khau hao thang dau tien
87
--		BEGIN			
88
--			SET @l_CURR_AMORT_STATUS = 'DKH'
89
--			--------THIEUVQ KHAU HAO LUI 15012019-----------------
90
--			--------BEGIN
91
--			IF @l_AMORT_START_DATE < @BeginDate
92
--			BEGIN
93
--				--TINH SO KY KHAO HAO
94
--				--SELECT DATEDIFF(MONTH,'2018-11-10','2019-1-1')
95
--				SET @SOKY = DATEDIFF(MONTH, @l_AMORT_START_DATE, @BeginDate) + 1
96
--				IF dbo.FN_GetLastDayOfMonth(@sExecDT) >= dbo.FN_GetLastDayOfMonth(@l_AMORT_END_DATE) --Ky khau hao cuoi cung
97
--				BEGIN
98
--					--SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
99
--					SET @l_CURR_AMORT_STATUS = 'KHX'		
100
--				END				
101
--			END
102
--			--------END
103
--		END
104
--		ELSE IF dbo.FN_GetLastDayOfMonth(@sExecDT) = dbo.FN_GetLastDayOfMonth(@l_AMORT_END_DATE) --Ky khau hao cuoi cung
105
--		BEGIN
106
--			--SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
107
--			SET @l_CURR_AMORT_STATUS = 'KHX'		
108
--		END
109
--		ELSE --tai san dang khau hao binh thuong
110
--		BEGIN			
111
--			SET @l_CURR_AMORT_STATUS = 'DKH'
112
--		END
113

    
114
--		--Insert vao bang dbo.ASS_ENTRIES_POST
115
--		EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST', @l_ET_ID out
116
--		IF @l_ET_ID='' OR @l_ET_ID IS NULL GOTO ABORT	
117
		
118
--		--ref_no de ben core tra ve thieuvq - 071118
119
--		--EXEC ASS_TRN_REF_NO_Gen @l_Type_ID, @sToday, @l_TRN_REF_NO out	
120
		
121
--		--IF @l_BRANCH_ID = @l_HO_BRN_ID 
122
--		--BEGIN
123
--		--	SET @l_DR_BRN_ID = @l_DEP_ID
124
--		--END
125
--		--ELSE
126
--		--BEGIN
127
--			SET @l_DR_BRN_ID = @l_BRANCH_ID
128
--		--END
129

    
130
--		--thieuvq dien giai hach toan khau hao
131
--		IF @l_ASSET_TYPE = 'TSCD'
132
--		BEGIN
133
--			SET @l_DESC_CORE = 'KHAU HAO TSCD KY ' + @l_AMORT_TERM
134
--			SET @l_CR_BRN_ID = @l_BRANCH_ID--@l_HO_BRN_ID
135
--		END
136
--		ELSE
137
--		BEGIN
138
--			SET @l_DESC_CORE = 'PHAN BO CHI PHI CCLD KY ' + @l_AMORT_TERM
139
--			SET @l_CR_BRN_ID = @l_BRANCH_ID
140
--		END
141
		
142
--		INSERT INTO ASS_ENTRIES_POST
143
--		(
144
--			ET_ID,REF_NO, ASSET_ID, TRN_TYPE, REF_ID,DO_BRN, CR_ACCT, CR_BRN, DR_ACCT, DR_BRN, AMT,EXP_TO_CORE, TRN_DATE, TRN_DESC, MAKER_ID, CHECKER_ID, TRN_ID
145
--		)
146
--		VALUES
147
--		(
148
--			@l_ET_ID,@l_TRN_REF_NO, @l_ASSET_ID, 'AMORT', @l_AMORTDT_ID,@l_DO_BRANCH_ID, dbo.fn_replace_acctno(@l_AMORT_GL,@l_CR_BRN_ID), @l_CR_BRN_ID, @l_EXP_GL, @l_DR_BRN_ID, @l_AMORT_AMT,'Y',
149
--			@sExecDT, @l_DESC_CORE, @l_MAKER_ID, @l_CHECKER_ID,@p_AMORT_ID
150
--		)
151
--		IF @@Error <> 0 GOTO ABORT	
152
		
153
--		--- Phong added for cost allocate starts :: 1/11/2018
154
--		IF EXISTS(SELECT 1 FROM ASS_AMORT_COST_DT A WHERE A.AMORTDT_ID = @l_AMORTDT_ID)
155
--		BEGIN
156
--			--update lai chi phi phan bo cho don vi chinh
157
--			IF EXISTS(SELECT 1 FROM ASS_AMORT_COST_DT
158
--						WHERE AMORTDT_ID = @l_AMORTDT_ID
159
--						AND BRANCH_ID = @l_BRANCH_ID/*THIEUVQ THEM DK IS NULL NAY 140519*/AND COSTDT_ID IS NULL
160
--						AND EXECUTED = '0')
161
--			BEGIN
162
--				SELECT @l_Cost = ISNULL(SUM(COST_AMT),0)
163
--				FROM ASS_AMORT_COST_DT
164
--				WHERE AMORTDT_ID = @l_AMORTDT_ID
165
--				AND BRANCH_ID = @l_BRANCH_ID/*THIEUVQ THEM DK IS NULL NAY 140519*/AND COSTDT_ID IS NULL
166
--				AND EXECUTED = '0'
167
--			END
168
--			ELSE
169
--			BEGIN
170
--				SET @l_Cost = 0
171
--			END
172

    
173
--			UPDATE ASS_ENTRIES_POST
174
--			SET AMT = @l_Cost
175
--			WHERE ET_ID = @l_ET_ID
176
--			IF @@Error <> 0 GOTO ABORT	
177

    
178
--			--hach toan Phan bo chi phi
179
--			declare pCurCost cursor for
180
--				SELECT a.AMORTCOSTDT_ID, a.COSTDT_ID, A.COST_AMT, A.BRANCH_ID, B.EXP_ACCTNO
181
--				FROM ASS_AMORT_COST_DT  A
182
--				INNER JOIN ASS_COST_ALLOC_DT B ON A.COSTDT_ID = B.COSTDT_ID
183
--				WHERE AMORTDT_ID = @l_AMORTDT_ID
184
--				/*THIEUVQ SUA DIEU KIEN 140519*/AND A.COSTDT_ID IS NOT NULL--AND A.BRANCH_ID <> @l_BRANCH_ID
185
--				AND EXECUTED = '0'
186

    
187
--			open pCurCost
188

    
189
--			FETCH NEXT FROM pCurCost INTO @l_AMORTCOSTDT_ID, @l_COSTDT_ID, @l_Cost, @l_COST_BRANCH_ID, @l_COST_EXP_GL
190
	
191
--			WHILE @@FETCH_STATUS = 0	
192
--			BEGIN
193
--				EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST', @l_ET_ID out
194
--				IF @l_ET_ID='' OR @l_ET_ID IS NULL GOTO ABORT	
195

    
196
--				INSERT INTO ASS_ENTRIES_POST
197
--				(
198
--					ET_ID,REF_NO, ASSET_ID, TRN_TYPE, REF_ID,DO_BRN, CR_ACCT, CR_BRN, DR_ACCT, DR_BRN, AMT,EXP_TO_CORE, TRN_DATE, TRN_DESC, MAKER_ID, CHECKER_ID, TRN_ID
199
--				)
200
--				VALUES
201
--				(
202
--					@l_ET_ID,@l_TRN_REF_NO, @l_ASSET_ID, 'AMORT', @l_AMORTDT_ID,@l_DO_BRANCH_ID, dbo.fn_replace_acctno(@l_AMORT_GL,@l_CR_BRN_ID), @l_CR_BRN_ID, @l_COST_EXP_GL, /*@l_DR_BRN_ID*/ @l_COST_BRANCH_ID,@l_Cost/* @l_AMORT_AMT*/,'Y',
203
--					@sExecDT, @l_DESC_CORE, @l_MAKER_ID, @l_CHECKER_ID,@p_AMORT_ID
204
--				)
205
--				IF @@Error <> 0 GOTO ABORT	
206

    
207
--				UPDATE ASS_COST_ALLOC_DT
208
--				SET COSTED_MONTH = ISNULL(COSTED_MONTH,0) + @SOKY,
209
--					COSTED_AMT = ISNULL(COSTED_AMT,0) + @l_Cost
210
--				WHERE COSTDT_ID = @l_COSTDT_ID
211

    
212
--				UPDATE ASS_AMORT_COST_DT
213
--				SET EXECUTED = '1'
214
--				WHERE AMORTCOSTDT_ID = @l_AMORTCOSTDT_ID
215

    
216
--				FETCH NEXT FROM pCurCost INTO  @l_AMORTCOSTDT_ID, @l_COSTDT_ID, @l_Cost, @l_COST_BRANCH_ID, @l_COST_EXP_GL
217
--			END
218
		
219
--			CLOSE pCurCost
220
--			DEALLOCATE pCurCost		
221
--		END
222

    
223

    
224
--		--- Phong added for cost allocate ends :: 1/11/2018
225

    
226
--		--UPDATE BANG ASS_MASTER
227
--		UPDATE ASS_MASTER 
228
--		SET AMORTIZED_AMT = isnull(AMORTIZED_AMT, 0) + @l_AMORT_AMT,
229
--			AMORTIZED_MONTH = isnull(AMORTIZED_MONTH, 0) + @SOKY,
230
--			AMORT_STATUS = @l_CURR_AMORT_STATUS
231
--		WHERE ASSET_ID = @l_ASSET_ID
232
--		IF @@Error <> 0 GOTO ABORT	
233
		
234
--		--update da hach toan
235
--		UPDATE ASS_AMORT_DT
236
--		SET EXECUTED = '1'
237
--		WHERE AMORTDT_ID = @l_AMORTDT_ID
238
--		IF @@Error <> 0 GOTO ABORT					
239

    
240
--		FETCH NEXT FROM pCur INTO  @l_AMORTDT_ID, @l_ASSET_ID, @l_BRANCH_ID, @l_DEP_ID, @l_AMORT_AMT, 
241
--				@l_GROUP_ID, @l_AMORTIZED_MONTH, @l_AMORT_END_DATE, @l_ASSET_TYPE, @l_AMORT_START_DATE
242
--	END
243
	
244
--	--UPDATE STATUS CHO BANG ASS_AMORT
245
--	UPDATE ASS_AMORT
246
--	SET PROCESS_STATUS = 'S'
247
--	WHERE AMORT_ID = @p_AMORT_ID
248
--	IF @@Error <> 0 GOTO ABORT		
249

    
250
--	/*****THIEUVQ bo doan nay vi BAN VIET khong co dung
251
--	/****CAP NHAT CCLD TINH TRANG: DPB(Đã phân bổ chi phí khi xuất sử dụng) VE DANG KHAU HAO***/
252
--	--IF @l_ASSET_TYPE_DO = 'CCLD'
253
--	--BEGIN
254
--	--	 UPDATE ASS_MASTER SET AMORT_STATUS = 'DKH'
255
--	--	 WHERE AMORT_STATUS IN ('DPB')
256
--	--		--AND convert(date, AMORT_START_DATE) <= convert(date, @sExecDT)
257
--	--		AND convert(date, AMORT_START_DATE) <= convert(date, dbo.FN_GetLastDayOfMonth(@sExecDT))			
258
--	--		AND AMORTIZED_AMT < AMORT_AMT
259
--	--		AND RECORD_STATUS = '1'
260
--	--		AND AUTH_STATUS = 'A'		
261
--	--		AND TYPE_ID = 'CCLD'	
262
--	--		AND (BRANCH_ID = @l_BRANCH_ID_DO 				
263
--	--			OR (@l_BRANCH_TYPE_DO = 'CN' --NEU LA CN THI PHAN BO LUON CHO PGD THUOC CHI NHANH DO
264
--	--				--AND BRANCH_ID IN (SELECT * FROM [dbo].[CM_BRANCH_GETCHILDID](@l_BRANCH_ID_DO)))) --THIEUVQ
265
--	--				AND BRANCH_ID IN (SELECT BR.BRANCH_ID FROM ASS_AMORT_BRN BR WHERE BR.AMORT_ID  = @p_AMORT_ID))) --THIEUVQ  28092016
266
--	--END
267

    
268
--	******/
269

    
270
--	/*******************THIEUVQ - HUY CAC GIAO DICH CHUA DUYET - 251218 - BEGIN:*****************************/
271
--	UPDATE ASS_ADDNEW SET AUTH_STATUS = 'D', AUTH_STATUS_KT = 'D', CHECKER_ID_KT = 'system' 
272
--	WHERE AUTH_STATUS = 'U' OR (AUTH_STATUS_KT = 'U' AND MAKER_ID_KT IS NOT NULL)
273
	
274
--	UPDATE ASS_USE_MULTI_DT SET AUTH_STATUS_KT = 'D', CHECKER_ID_KT = 'system' WHERE USER_MASTER_ID IN (SELECT A.USER_MASTER_ID FROM ASS_USE_MULTI_MASTER A WHERE A.AUTH_STATUS = 'U' OR (AUTH_STATUS_KT = 'U' AND MAKER_ID_KT IS NOT NULL))
275
--	UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS = 'D', AUTH_STATUS_KT = 'D', CHECKER_ID_KT = 'system' WHERE AUTH_STATUS = 'U' OR (AUTH_STATUS_KT = 'U' AND MAKER_ID_KT IS NOT NULL)
276

    
277
--	UPDATE ASS_LIQUIDATION_DT SET AUTH_STATUS = 'D', MAKER_ID = 'system' WHERE LIQ_ID IN (SELECT A.LIQ_ID FROM ASS_LIQUIDATION A WHERE A.AUTH_STATUS = 'U' OR (AUTH_STATUS_KT = 'U' AND MAKER_ID_KT IS NOT NULL))	
278
--	UPDATE ASS_LIQUIDATION SET AUTH_STATUS = 'D', AUTH_STATUS_KT = 'D', CHECKER_ID_KT = 'system' WHERE AUTH_STATUS = 'U' OR (AUTH_STATUS_KT = 'U' AND MAKER_ID_KT IS NOT NULL)
279
	
280
--	UPDATE ASS_COLLECT_MULTI_DT SET AUTH_STATUS_KT = 'D', CHECKER_ID_KT = 'system' WHERE COL_MULTI_MASTER_ID IN (SELECT A.COL_MULTI_MASTER_ID FROM ASS_COLLECT_MULTI_MASTER A WHERE A.AUTH_STATUS = 'U' OR (AUTH_STATUS_KT = 'U' AND MAKER_ID_KT IS NOT NULL))
281
--	UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS = 'D', AUTH_STATUS_KT = 'D', CHECKER_ID_KT = 'system' WHERE AUTH_STATUS = 'U' OR (AUTH_STATUS_KT = 'U' AND MAKER_ID_KT IS NOT NULL)
282
	
283
--	UPDATE ASS_TRANSFER_MULTI_DT SET AUTH_STATUS_KT = 'D', CHECKER_ID_KT = 'system' WHERE TRANS_MULTI_MASTER_ID IN (SELECT A.TRANS_MULTI_MASTER_ID FROM ASS_TRANSFER_MULTI_MASTER A WHERE A.AUTH_STATUS = 'U' OR (AUTH_STATUS_KT = 'U' AND MAKER_ID_KT IS NOT NULL))
284
--	UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS = 'D', AUTH_STATUS_KT = 'D', CHECKER_ID_KT = 'system' WHERE AUTH_STATUS = 'U' OR (AUTH_STATUS_KT = 'U' AND MAKER_ID_KT IS NOT NULL)
285

    
286
--	UPDATE ASS_UPDATE SET AUTH_STATUS = 'D', CHECKER_ID = 'system' WHERE AUTH_STATUS = 'U'
287
--	/*********************END:***************************/
288

    
289
--	CLOSE pCur
290
--	DEALLOCATE pCur
291

    
292
--COMMIT TRANSACTION
293
--SELECT '0' as Result, '' ErrorDesc
294
--RETURN '0'
295
--ABORT:
296
--BEGIN
297

    
298
--		CLOSE pCur
299
--		DEALLOCATE pCur
300

    
301
--		CLOSE pCurCost
302
--		DEALLOCATE pCurCost	
303
					
304
--		ROLLBACK TRANSACTION
305
--		SELECT '-1' as Result,  ERROR_MESSAGE() ErrorDesc
306
--		RETURN '-1'
307
--End