Project

General

Profile

ASS_UPDATE_APP 110423.txt

Luc Tran Van, 04/11/2023 10:44 AM

 
1

    
2
ALTER PROCEDURE dbo.ASS_UPDATE_App
3
	@p_UPDATE_ID varchar(15),
4
	@P_AUTH_STATUS VARCHAR(1),
5
	@p_CHECKER_ID VARCHAR(100),
6
	@p_APPROVE_DT varchar(20)
7

    
8
AS
9
BEGIN TRY
10
	DECLARE @ERRORSYS NVARCHAR(15) = '', @ERROR NVARCHAR(500) = ''
11

    
12
	declare @l_ASSHIST_ID varchar(15)
13
	declare @l_ASSET_ID varchar(15)
14
	declare @l_TYPE_ID nvarchar(15)
15
	DECLARE @l_MAKER_ID	varchar(100)	
16
	DECLARE @l_BRANCH_CREATE VARCHAR(15), @l_BRANCH_ID VARCHAR(15),@l_DEP_ID VARCHAR(15)
17
	
18
	declare @l_NEW_GROUP_ID varchar(15),  @l_OLD_GROUP_ID varchar(15)
19
	declare @l_NEW_ASSET_NAME nvarchar(1000)--,  @l_OLD_ASSET_NAME nvarchar(1000)
20
	declare @l_NEW_ASSET_SERIAL_NO nvarchar(100)--,  @l_OLD_ASSET_SERIAL_NO nvarchar(100)
21
	declare @l_NEW_ASSET_DESC nvarchar(max)--,  @l_OLD_ASSET_DESC nvarchar(max)
22
	declare @l_NEW_BUY_PRICE decimal(18,0),  @l_OLD_BUY_PRICE decimal(18,0)
23
	declare @l_NEW_AMORT_AMT decimal(18,0),  @l_OLD_AMORT_AMT decimal(18,0)
24
	declare @l_NEW_AMORT_MONTH decimal(18,2), @l_OLD_AMORT_MONTH decimal(18,2)
25
	declare @l_AMORTIZED_MONTH decimal(18,2), @l_AMORTIZED_AMT decimal(18,0)
26
	declare @l_SPECIAL_ASS varchar(1)
27
	
28
	DECLARE @l_AMORT_STATUS VARCHAR(15), @L_AMORT_RATE DECIMAL(18,2)
29
	DECLARE @l_AMORT_START_DATE datetime, @l_AMORT_END_DATE datetime
30
	DECLARE @l_NEW_FIRST_AMORT_AMT	numeric(18,0), @l_OLD_FIRST_AMORT_AMT	numeric(18,0)
31
	DECLARE @l_NEW_MONTHLY_AMT 	numeric(18,0), @l_OLD_MONTHLY_AMT 	numeric(18,0) 
32
	
33
	declare @l_GROUP_ID_UPD varchar(1) = 'N'
34
	declare @l_AMORT_AMT_UPD varchar(1) = 'N', @l_AMORT_MONTH_UPD VARCHAR(1) = 'N'
35
	declare @l_DO_BRANCH_ID varchar(15)
36
	DECLARE @l_VALUE_ID varchar(15)
37
	DECLARE @l_HO_BRN_ID varchar(15)
38
	declare @l_ET_ID varchar(15)
39
	DECLARE @sToday varchar(10) = convert(varchar(10), getdate(), 103)
40
	declare @l_TRN_REF_NO varchar(20)
41
		
42
	DECLARE @l_SUPPEND_GL varchar(50)
43
	DECLARE @l_ASSET_GL  varchar(50), @l_AMORT_ACCTNO VARCHAR(50)
44
	declare @l_ASSET_VALUE decimal(18,0)	
45
	declare @l_CORE_NOTE NVARCHAR(500)
46

    
47
	DECLARE @l_DATE1 DATE,@l_DATE2 DATE
48
    DECLARE @l_ASSET_CODE VARCHAR(50) -- KHIEMCHG Bo sung ASSETCODE REF cho HACH TOAN
49
			    
50
   DECLARE  @l_TRN_NO VARCHAR(15)
51
IF(EXISTS(SELECT * FROM ASS_UPDATE WHERE AUTH_STATUS ='A' AND  UPDATE_ID=@p_UPDATE_ID))
52
	BEGIN
53
				--ROLLBACK TRANSACTION
54
				SELECT '-1' as Result, '' UPDATE_ID, N'Phiếu cập nhật tài sản đã được duyệt.' ErrorDesc
55
				RETURN '-1'
56
	END
57

    
58
EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = 'DV0001'
59
                        ,@p_TRN_DATE = @p_APPROVE_DT
60
                        ,@p_KeyGen = @l_TRN_NO OUT
61

    
62
	SELECT	@l_ASSET_ID = A.ASSET_ID,
63
			@l_NEW_GROUP_ID = A.GROUP_ID,
64
			--@l_NEW_AMORT_MONTH = CASE WHEN M.[TYPE_ID] = 'TSCD' THEN G.AMORT_MONTH ELSE A.AMORT_AMT END,
65
			@l_NEW_AMORT_MONTH = A.AMORT_MONTH,--THIEUVQ 18/04/2014
66
			@l_NEW_ASSET_NAME = A.ASSET_NAME,
67
			@l_NEW_ASSET_SERIAL_NO = A.ASSET_SERIAL_NO,
68
			@l_NEW_ASSET_DESC = A.ASSET_DESC,
69
			@l_NEW_BUY_PRICE = A.BUY_PRICE,
70
			@l_NEW_AMORT_AMT = A.AMORT_AMT, @l_CORE_NOTE = CORE_NOTE,
71
			@l_MAKER_ID = A.MAKER_ID,
72
			@l_SUPPEND_GL = A.ACCOUNT_GL
73
	FROM ASS_UPDATE A
74
	INNER JOIN ASS_GROUP G on G.GROUP_ID = A.GROUP_ID
75
	INNER JOIN ASS_MASTER M ON M.ASSET_ID = A.ASSET_ID
76
	WHERE UPDATE_ID = @p_UPDATE_ID
77
	
78
	SELECT	 
79
			@l_OLD_GROUP_ID = ISNULL(A.REF_GROUP_ID,A.GROUP_ID),
80
			@l_OLD_AMORT_MONTH = AMORT_MONTH,
81
			@l_AMORTIZED_MONTH = AMORTIZED_MONTH,
82
			--@l_OLD_ASSET_NAME = ASSET_NAME,
83
			--@l_OLD_ASSET_SERIAL_NO = ASSET_SERIAL_NO,
84
			--@l_OLD_ASSET_DESC = ASSET_DESC,
85
			@l_OLD_BUY_PRICE = BUY_PRICE,
86
			@l_OLD_FIRST_AMORT_AMT = FIRST_AMORT_AMT,
87
			@l_OLD_MONTHLY_AMT = A.MONTHLY_AMORT_AMT,
88
			@l_AMORT_START_DATE = AMORT_START_DATE,
89
			@l_AMORT_END_DATE = AMORT_END_DATE,
90
			@l_OLD_AMORT_AMT = AMORT_AMT,
91
			@l_AMORTIZED_AMT = AMORTIZED_AMT,
92
			@l_SPECIAL_ASS = SPECIAL_ASS,
93
			@l_TYPE_ID = TYPE_ID,
94
			@l_AMORT_STATUS = AMORT_STATUS,
95
			@L_AMORT_RATE = AMORT_RATE,
96
			@l_BRANCH_CREATE = A.BRANCH_CREATE,
97
			@l_BRANCH_ID = A.BRANCH_ID,
98
      @l_DEP_ID=A.DEPT_ID,
99
            @l_ASSET_CODE = A.ASSET_CODE
100
	FROM ASS_MASTER A
101
	WHERE ASSET_ID = @l_ASSET_ID	
102
	
103
	--Lay branch_id cua user duyet
104
	select @l_DO_BRANCH_ID = a.TLSUBBRID from TL_USER a where a.TLNANME = @p_CHECKER_ID	
105
	
106
	--BRN_ID HOI SO
107
	SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'			
108

    
109
	--Lay suppend GL
110
	
111
	---THAY DOI TAI KHOAN HACH TOAN GL THIEUVQ - 09092016
112
	--SET @l_SUPPEND_GL = dbo.fn_replace_acctno(UPPER(@l_SUPPEND_GL) + 'XXXX',@l_DO_BRANCH_ID)
113
	SELECT @l_SUPPEND_GL = A.ParaValue FROM SYS_PARAMETERS A WHERE A.ParaKey='ASSET_SUPPEND_GL'
114
	
115
	--ASSET_GL
116
	SELECT @l_ASSET_GL = ASSET_ACCTNO, @l_AMORT_ACCTNO = A.AMORT_ACCTNO FROM ASS_GROUP A WHERE A.GROUP_ID = (SELECT AG.PARENT_ID FROM ASS_GROUP AG WHERE AG.GROUP_ID = (SELECT AG.PARENT_ID FROM ASS_GROUP AG WHERE AG.GROUP_ID = @l_OLD_GROUP_ID))
117
	IF(@l_ASSET_GL IS NULL OR @l_ASSET_GL = '') SET @l_ASSET_GL = (SELECT ASSET_ACCTNO FROM ASS_GROUP WHERE GROUP_ID = @l_OLD_GROUP_ID)
118
    IF(@l_AMORT_ACCTNO IS NULL OR @l_AMORT_ACCTNO = '') SET @l_AMORT_ACCTNO = (SELECT AMORT_ACCTNO FROM ASS_GROUP WHERE GROUP_ID = @l_OLD_GROUP_ID)
119
--Validation is here
120

    
121
--Kiem tra so thang khau hao cua nhom moi co lon hon so thang da khau hao ko?
122
IF (@l_NEW_GROUP_ID <> @l_OLD_GROUP_ID AND @l_NEW_AMORT_MONTH <> @l_OLD_AMORT_MONTH)
123
BEGIN	
124
	--IF @l_NEW_AMORT_MONTH <= @l_AMORTIZED_MONTH
125
	IF @l_NEW_AMORT_MONTH <= @l_AMORTIZED_MONTH AND @l_AMORT_STATUS IN ('CKH','DKH') --thieuvq 18/04/2014
126
	BEGIN
127
		--SET @ERRORSYS = 'ASS-00009'		
128
		--CAP NHAT LẠI NGAY KET THUC KHAU HAO --thieuvq 18/04/2014
129
		SET @l_DATE1= CONVERT(DATE,'1/'+CONVERT(VARCHAR(10),MONTH(CONVERT(DATE,@p_APPROVE_DT,103)))
130
								+'/'+CONVERT(VARCHAR(10),YEAR(CONVERT(DATE,@p_APPROVE_DT,103))),103)
131
		SET @l_DATE2 = CONVERT(DATE,'1/'+CONVERT(VARCHAR(10),MONTH(@l_AMORT_END_DATE))
132
								+'/'+CONVERT(VARCHAR(10),YEAR(@l_AMORT_END_DATE)),103)
133
		SET @l_AMORT_END_DATE = DATEADD(MONTH,DATEDIFF(MONTH,@l_DATE2,@l_DATE1),@l_AMORT_END_DATE)
134

    
135
		SET @L_AMORT_RATE = ROUND((100.00/@l_NEW_AMORT_MONTH)*12,2)
136
	END
137

    
138
	SET @l_GROUP_ID_UPD = 'Y'
139
END
140
	
141
--Kiem tra gia tri khau hao moi > so tien da khau hao
142
IF (@l_NEW_AMORT_AMT<=@l_AMORTIZED_AMT AND @l_NEW_AMORT_AMT <> @l_OLD_AMORT_AMT)
143
BEGIN
144
	SET @ERRORSYS = 'ASS-00014'	
145
END
146
ELSE
147
BEGIN
148
	IF (@l_NEW_AMORT_AMT <> @l_OLD_AMORT_AMT)
149
	BEGIN	
150
		SET @l_AMORT_AMT_UPD = 'Y'
151
	END
152
END
153

    
154
---KIEM TRA SO THANG KHAU HAO MOI NHO HON SO THANG DA KHAU HAO KHONG  - THIEUVQ 210618 ::BEGIN
155
IF @l_NEW_AMORT_MONTH < @l_AMORTIZED_MONTH
156
BEGIN
157
	SET @ERRORSYS = 'ASS-99994'
158
END
159
ELSE
160
BEGIN
161
	IF @l_NEW_AMORT_MONTH <> @l_OLD_AMORT_MONTH
162
	SET @l_AMORT_MONTH_UPD = 'Y'
163
	SET @l_AMORT_END_DATE = DATEADD(MONTH,@l_NEW_AMORT_MONTH,@l_AMORT_START_DATE)
164
	SET @l_AMORT_END_DATE = DATEADD(DAY,-1,@l_AMORT_END_DATE)
165
END
166
-----::END
167

    
168
----NEU THAY DOI SO KY KHAU HAO => KIEM TRA CHO TRUONG HOP CCLD
169
--IF (@l_GROUP_ID_UPD = 'Y' AND @l_TYPE_ID = 'CCLD')
170
--BEGIN
171
--	RETURN 0
172
--END
173

    
174
--Neu co thay doi gia tri khau hao
175
--IF (@l_TYPE_ID = 'TSCD' AND @l_AMORT_STATUS IN ('CKH','DKH'))
176
IF @l_AMORT_STATUS IN ('CKH','DKH')
177
BEGIN
178
	IF (@l_AMORT_AMT_UPD = 'Y' OR @l_AMORT_MONTH_UPD = 'Y')
179
	BEGIN
180
		IF (@l_AMORTIZED_MONTH = 0) --Chua chay khau hao thi phai tinh lai khau hao cua thang dau tien
181
		BEGIN
182
			SET @l_NEW_MONTHLY_AMT = ROUND((@l_NEW_AMORT_AMT - ISNULL(@l_AMORTIZED_AMT,0)) / @l_NEW_AMORT_MONTH, 0)
183
			SET @l_NEW_FIRST_AMORT_AMT = @l_NEW_MONTHLY_AMT--ROUND(@l_NEW_MONTHLY_AMT/dbo.[FN_GetDaysInMonth](@l_AMORT_START_DATE) * (DATEDIFF(day,@l_AMORT_START_DATE, dbo.FN_GetLastDayOfMonth(@l_AMORT_START_DATE)) + 1), -3)		
184
		END
185
		ELSE
186
		BEGIN
187
			--thieuvq - sua lai doan tinh khau hao
188
			--TINH LAI SO KY KHAU HAO TINH THEO NGAY DUYET
189
			DECLARE @l_KY_KHAU_HAO_CL FLOAT
190
			--BAN VIET THAY DOI CACH TINH 230119
191
			--DECLARE @l_NGAY_DUYET DATE = CONVERT(DATE,@p_APPROVE_DT,103)
192
			----SET @l_NGAY_DUYET = CONVERT(VARCHAR(10),YEAR(@l_NGAY_DUYET)) + '-'+CONVERT(VARCHAR(10),MONTH(@l_NGAY_DUYET)) + '-'+ '1'
193
			----SET @l_KY_KHAU_HAO_CL = round((datepart(day,@l_AMORT_END_DATE)*1.0/dbo.[FN_GetDaysInMonth](@l_AMORT_END_DATE)),2)
194
			------THIEUVQ COMMENT 29072015
195
			------IF @l_KY_KHAU_HAO_CL = 1 SET @l_KY_KHAU_HAO_CL  = DATEDIFF(MM, @l_NGAY_DUYET, @l_AMORT_END_DATE)
196
			------ELSE 
197
			--SET @l_KY_KHAU_HAO_CL  = DATEDIFF(MM, @l_NGAY_DUYET, @l_AMORT_END_DATE) --+ @l_KY_KHAU_HAO_CL
198

    
199
			----KIEM TRA THANG DUYET NAY DA CHAY KHAU HAO CHUA, NEU DA CHAY KHAU HAO ROI THI GIAM DI 1 SO KY KH CON LAI
200
			--IF EXISTS (SELECT * FROM ASS_AMORT WHERE AMORT_TERM = CONVERT(VARCHAR(5),MONTH(@l_NGAY_DUYET))+'/'+CONVERT(VARCHAR(5),YEAR(@l_NGAY_DUYET)) 
201
			--											AND ASSET_TYPE = 'ALL')
202
			--											--AND ASSET_TYPE = 'TSCD')
203
			--BEGIN SET @l_KY_KHAU_HAO_CL = @l_KY_KHAU_HAO_CL - 1 END
204
			SET @l_KY_KHAU_HAO_CL = /*@l_OLD_AMORT_MONTH*/ @l_NEW_AMORT_MONTH - @l_AMORTIZED_MONTH
205
			--SET @l_NEW_MONTHLY_AMT = ROUND((@l_NEW_AMORT_AMT - @l_AMORTIZED_AMT)/ @l_NEW_AMORT_MONTH, -3)
206
			SET @l_NEW_MONTHLY_AMT = ROUND((@l_NEW_AMORT_AMT - @l_AMORTIZED_AMT)/ @l_KY_KHAU_HAO_CL, 0)
207
			SET @l_NEW_FIRST_AMORT_AMT = @l_OLD_FIRST_AMORT_AMT
208
		END
209
		print 'Y'
210
	END
211
	ELSE 
212
	BEGIN
213
		SET @l_NEW_FIRST_AMORT_AMT = @l_OLD_FIRST_AMORT_AMT
214
		SET @l_NEW_MONTHLY_AMT= @l_OLD_MONTHLY_AMT
215
		print 'N'
216
	END
217
END
218
ELSE 
219
BEGIN
220
	--THIEUVQ- DIEPTT 03092015 TRUONG HOP KHAU HAO XONG NHUNG TANG NGUYEN GIA
221
	--BAT LAI TINH TRANG TAI SAN DANG KHAU HAO VA SE KHAU HAO HET VAO THANG NAY
222
	IF (@l_AMORT_AMT_UPD = 'Y')
223
	BEGIN
224
		SET @l_AMORT_END_DATE = CONVERT(DATETIME,@p_APPROVE_DT,103)
225
		--KIEM TRA NEU NGAY DIEU CHINH DA CHAY KHAU HAO ROI THI CHUYEN KHAU HAO HET VAO THANG SAU
226
		IF EXISTS (SELECT * FROM ASS_AMORT WHERE AMORT_TERM = CONVERT(VARCHAR(5),MONTH(@l_AMORT_END_DATE))+'/'+CONVERT(VARCHAR(5),YEAR(@l_AMORT_END_DATE)) 
227
														AND ASSET_TYPE = 'ALL')
228
		BEGIN			
229
			SET @l_AMORT_END_DATE = DATEADD(MM,1,@l_AMORT_END_DATE )
230
		END		
231
			
232
		SET @l_AMORT_STATUS = 'DKH'
233
	END
234
	SET @l_NEW_FIRST_AMORT_AMT = @l_OLD_FIRST_AMORT_AMT
235
	SET @l_NEW_MONTHLY_AMT= @l_OLD_MONTHLY_AMT
236
	print 'N'
237
END
238

    
239
IF @ERRORSYS <> '' 
240
BEGIN
241
	SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
242
	RETURN '0'
243
END 
244

    
245
BEGIN TRANSACTION
246
	--Move to history	
247
	--Phat sinh Asset_ID
248
	EXEC SYS_CodeMasters_Gen 'ASS_MASTER_HIST', @l_ASSHIST_ID out
249
	
250
	INSERT INTO ASS_MASTER_HIST 
251
		SELECT @l_ASSHIST_ID, a.*
252
		FROM ASS_MASTER a
253
		where a.ASSET_ID = @l_ASSET_ID
254

    
255
	UPDATE ASS_MASTER
256
	SET
257
		ASSET_NAME = @l_NEW_ASSET_NAME,
258
		ASSET_DESC = @l_NEW_ASSET_DESC,
259
		ASSET_SERIAL_NO = @l_NEW_ASSET_SERIAL_NO,
260
		BUY_PRICE	= @l_NEW_BUY_PRICE,
261
		AMORT_AMT = @l_NEW_AMORT_AMT,
262
		FIRST_AMORT_AMT = @l_NEW_FIRST_AMORT_AMT,
263
		MONTHLY_AMORT_AMT = @l_NEW_MONTHLY_AMT,		
264
		APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103),
265
		AMORT_END_DATE = @l_AMORT_END_DATE, -- thieuvq them 18/04/2014
266
		AMORT_MONTH = @l_NEW_AMORT_MONTH,
267
		AMORT_RATE = @L_AMORT_RATE,
268
		--THIEUVQ 03092015
269
		AMORT_STATUS = @l_AMORT_STATUS
270
	WHERE ASSET_ID = @l_ASSET_ID
271

    
272
-- SỐ TIỀN CẶP BÚT TOÁN SAU KHI GIẢM NGUYÊN GIÁ
273

    
274
    DECLARE @MONTH_OLD_AMORT DECIMAL= (SELECT COUNT(*) FROM ASS_AMORT_DT AAD WHERE YEAR(AAD.AMORT_DT) <> YEAR(CONVERT(DATETIME,@p_APPROVE_DT,103)) AND AAD.ASSET_ID = @l_ASSET_ID)
275
    DECLARE @MONTH_NEW_AMORT DECIMAL= (SELECT COUNT(*) FROM ASS_AMORT_DT AAD WHERE YEAR(AAD.AMORT_DT) = YEAR(CONVERT(DATETIME,@p_APPROVE_DT,103)) AND AAD.ASSET_ID = @l_ASSET_ID)
276
    DECLARE @AMT_OLD_AMORT DECIMAL= (SELECT SUM(AAD.AMORT_AMT) FROM ASS_AMORT_DT AAD WHERE YEAR(AAD.AMORT_DT) <> YEAR(CONVERT(DATETIME,@p_APPROVE_DT,103)) AND AAD.ASSET_ID = @l_ASSET_ID)
277

    
278

    
279
    DECLARE @_NEW_AMT_AMORT DECIMAL(18,2)
280
    DECLARE @_NEW_AMT_AMORT_RE DECIMAL(18,2)
281
    DECLARE @_NEW_AMT_AMORT_RENEW DECIMAL(18,2)
282
    DECLARE @_NEW_AMT_AMORT_OLD DECIMAL(18,2)
283
    DECLARE @_NEW_AMT_AMORT_LAST DECIMAL(18,2)
284
    DECLARE @_NUM_AMT_AMORT_DT DECIMAL(18,2)
285

    
286

    
287
    DECLARE @_CUR_DATE DECIMAL(18,2) = CAST((DAY(CONVERT(DATETIME,@p_APPROVE_DT,103))) AS DECIMAL) + 0.00
288
    DECLARE @_END_OF_MONTH DECIMAL(18,2) = DAY(dbo.FN_GetLastDayOfMonth(CONVERT(DATETIME,@p_APPROVE_DT,103)))
289

    
290
    --- KHẤU HAO LUỸ KẾ 
291
    DECLARE @KH_CUM DECIMAL(18,2) = (SELECT ISNULL(AM.AMORTIZED_AMT,0) FROM ASS_MASTER AM WHERE AM.ASSET_ID = @l_ASSET_ID)
292
 
293
    IF(YEAR(@l_AMORT_START_DATE) <> YEAR(CONVERT(DATETIME,@p_APPROVE_DT,103)))
294
    BEGIN
295
        -- Số tiền trích khấu hao của tháng mới theo nguyên giá mới
296
        SET @_NEW_AMT_AMORT = ROUND((@l_NEW_BUY_PRICE - @AMT_OLD_AMORT)/(@l_NEW_AMORT_MONTH-@MONTH_OLD_AMORT),0) 
297
    END
298
    ELSE 
299
    BEGIN
300
        SET @_NEW_AMT_AMORT = ROUND((@l_NEW_BUY_PRICE - @KH_CUM)/@l_KY_KHAU_HAO_CL,0)
301
    END  
302

    
303
    -- Số tiền khấu hao theo tháng tròn hiện tại
304
    SELECT @_NEW_AMT_AMORT_RE = AA.TOTAL_AMT FROM ASS_AMORT_DT AAD 
305
    LEFT JOIN ASS_AMORT AA ON AAD.AMORT_ID = AA.AMORT_ID
306
    WHERE AAD.ASSET_ID = @l_ASSET_ID AND AA.IS_LEAF = 'Y'
307
    IF(@_NEW_AMT_AMORT_RE IS NULL OR @_NEW_AMT_AMORT_RE = 0)
308
    SET @_NEW_AMT_AMORT_RE = (SELECT ISNULL(AM.AMORTIZED_AMT,0) FROM ASS_MASTER AM WHERE AM.ASSET_ID = @l_ASSET_ID)
309
    -- Số ngày khấu hao còn lại trong khác sau khi update tăng giảm
310
    SET @_NUM_AMT_AMORT_DT = (@_END_OF_MONTH - @_CUR_DATE) + 1.00
311

    
312

    
313
    -- Số tiền khấu hao theo số ngày còn lại của nguyên giá mới VD: Giảm tài sản A 10tr vào ngày 25-03-2023 thì tính đến cuối tháng là (31 - 25) + (ngày 25 hiện tại) = 7 ngày
314
    --SET @_NEW_AMT_AMORT_RENEW = ROUND(@_NEW_AMT_AMORT/@_END_OF_MONTH,0)*@_NUM_AMT_AMORT_DT
315
    SET @_NEW_AMT_AMORT_RENEW = ROUND((@_NEW_AMT_AMORT-@l_OLD_MONTHLY_AMT)*@MONTH_NEW_AMORT,0)
316
    -- Số tiền khấu hao cũ theo ngày còn lại
317
    --SET @_NEW_AMT_AMORT_OLD = ROUND(@_NEW_AMT_AMORT_RE/@_END_OF_MONTH, 0)*@_NUM_AMT_AMORT_DT
318

    
319

    
320
    -- Số tiền trích khấu hao cho cặp hạch toán phát sinh tăng giảm
321
    --SET @_NEW_AMT_AMORT_LAST = ROUND(@_NEW_AMT_AMORT_OLD - @_NEW_AMT_AMORT_RENEW,0)
322
    IF (@l_NEW_BUY_PRICE <> @l_OLD_BUY_PRICE) --TANG NGUYEN GIA
323
	BEGIN
324
        SET @_NEW_AMT_AMORT_LAST = @_NEW_AMT_AMORT_RENEW
325
        UPDATE ASS_MASTER SET MONTHLY_AMORT_AMT = ISNULL(@_NEW_AMT_AMORT, @l_NEW_MONTHLY_AMT) WHERE ASSET_ID = @l_ASSET_ID
326
        IF(@_NEW_AMT_AMORT_LAST < 0) SET @_NEW_AMT_AMORT_LAST = -@_NEW_AMT_AMORT_LAST
327
    END
328

    
329

    
330

    
331
--HẠCH TOÁN TĂNG GIẢM NGUYÊN GIÁ 
332
     DECLARE @AC_TSCD VARCHAR(20) 
333
   IF(EXISTS(SELECT am.ASSET_ID FROM ASS_MASTER am WHERE am.ASSET_ID=@l_ASSET_ID AND am.ENTRY_BOOKED='Y'))
334
   BEGIN
335
      SET @AC_TSCD= (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'ASSET_TSCD' AND EPA.GROUP_ID = (SELECT AG.PARENT_ID FROM ASS_GROUP AG WHERE AG.GROUP_ID = (SELECT AG.PARENT_ID FROM ASS_GROUP AG WHERE AG.GROUP_ID = @l_OLD_GROUP_ID)))
336
      IF(@AC_TSCD IS NULL OR @AC_TSCD = '') 
337
        SET @AC_TSCD = (SELECT ACC_NO FROM ENTRIES_POST_ACCNO WHERE ACC_TYPE ='ASSET_TSCD' AND GROUP_ID = @l_OLD_GROUP_ID)
338

    
339
   END
340
   ELSE
341
   BEGIN
342
      SET @AC_TSCD = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='BUY_TSCD' AND epa.GROUP_ID=(SELECT AG.PARENT_ID FROM ASS_GROUP AG WHERE AG.GROUP_ID = (SELECT AG.PARENT_ID FROM ASS_GROUP AG WHERE AG.GROUP_ID = @l_OLD_GROUP_ID)))
343
      IF(@AC_TSCD IS NULL OR @AC_TSCD = '') 
344
        SET @AC_TSCD = (SELECT ACC_NO FROM ENTRIES_POST_ACCNO WHERE ACC_TYPE ='BUY_TSCD' AND GROUP_ID = @l_OLD_GROUP_ID)
345
  
346
  END
347
  
348
  
349
  DECLARE @AC_HS_MAIN VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'PAY_HS')
350
    DECLARE @l_EXP_ACCTNO VARCHAR(20), @l_AMORT_BASIC VARCHAR(20)
351
    DECLARE  @l_ETP_ID VARCHAR(20),@l_D_BRANCH_CODE VARCHAR(25) , @l_C_BRANCH_CODE VARCHAR(25), @l_AC_BRANCH_CODE VARCHAR(25),@l_DEP_CODE VARCHAR(25)
352
	--BRN_ID HOI SO
353
	SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'
354

    
355
          SET @l_C_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_HO_BRN_ID)
356
          SET @l_D_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_CREATE)
357
          SET @l_DEP_CODE =(SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@l_DEP_ID)
358
    --ASSET_GL
359
	SELECT @l_ASSET_GL = ASSET_ACCTNO,
360
			@l_AMORT_BASIC = EXP_ACCTNO,
361
			@l_AMORT_ACCTNO = AMORT_ACCTNO
362
	FROM ASS_GROUP A 
363
	WHERE A.GROUP_ID = @l_OLD_GROUP_ID
364
	--Neu co thay doi nguyen gia
365
	IF (@l_NEW_BUY_PRICE <> @l_OLD_BUY_PRICE)
366
	BEGIN
367
		DECLARE @AMT DECIMAL(18,0) 
368
		DECLARE @BRN_ID VARCHAR(15)
369
		IF @l_BRANCH_ID IS NULL OR @l_BRANCH_ID = ''
370
			SET @BRN_ID = @l_BRANCH_CREATE
371
		ELSE SET @BRN_ID = @l_BRANCH_ID
372

    
373
          SET @l_AC_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@BRN_ID)
374

    
375
        DECLARE @NOTE_AMORT NVARCHAR(500) = N'KHAU HAO TSCD TRICH NGUYEN GIA TANG'
376
        DECLARE @NOTE_AMORT2 NVARCHAR(500) = N'KHAU HAO TSCD TRICH NGUYEN GIA GIAM'
377

    
378
		IF (@l_NEW_BUY_PRICE > @l_OLD_BUY_PRICE) --TANG NGUYEN GIA
379
		BEGIN
380
				SET @AMT = @l_NEW_BUY_PRICE - @l_OLD_BUY_PRICE
381
				--insert dbo.ASS_VALUES
382
				EXEC SYS_CodeMasters_Gen 'ASS_VALUES', @l_VALUE_ID out
383
						
384
				INSERT INTO ASS_VALUES
385
				(
386
					VALUE_ID, ASSET_ID, BRANCH_ID, TRN_DT, CRDR, ASSET_AMT, [DESCRIPTION], TRN_ID, TRN_TYPE,
387
					RECORD_STATUS, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, AMORT_AMT
388
				)
389
				VALUES
390
				(
391
					@l_VALUE_ID, @l_ASSET_ID, @BRN_ID, CONVERT(datetime, @sToday, 103), 'C', @AMT, N'DIEU CHINH TSCD/CCLD', @p_UPDATE_ID, 'ASS_UPDATE',
392
					'1','A',@l_MAKER_ID, CONVERT(datetime, @sToday, 103), @p_CHECKER_ID, CONVERT(datetime, @sToday, 103), @l_NEW_AMORT_AMT - @l_OLD_AMORT_AMT
393
				)
394

    
395
				IF @l_TYPE_ID = 'TSCD'
396
				BEGIN
397
				--NO ASSET_ACCTNO - CO ASSET_SUPPEND_GL: GIA TRI CHENH LECH
398
					EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_UPDATE', @p_UPDATE_ID,@l_DO_BRANCH_ID, @l_SUPPEND_GL, @BRN_ID, @l_ASSET_GL, @BRN_ID,@AMT ,'Y',
399
					@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
400
					@l_ET_ID OUT
401
					--IF @ERROR <> 0 GOTO ABORT_ERROR
402
                  -- TSCD
403
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
404
                  INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
405
                  VALUES (@l_ETP_ID, @l_ET_ID,@p_UPDATE_ID ,@l_AC_BRANCH_CODE , @AC_TSCD, 'VND', 'D', @AMT,1, @AMT, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
406
                  -- TRẢ HỘI SỞ
407
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
408
                  INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
409
                  VALUES (@l_ETP_ID, @l_ET_ID,@p_UPDATE_ID ,@l_C_BRANCH_CODE , @AC_HS_MAIN, 'VND', 'C', @AMT,1, @AMT, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
410
                  
411
                  --ĐỒNG THỜI TRÍCH BỔ SUNG SỐ TRÍCH KHẤU HAO TRONG NĂM HIỆN HÀNH
412
                  IF(@_NEW_AMT_AMORT_LAST IS NOT NULL AND @_NEW_AMT_AMORT_LAST <> 0)
413
                  BEGIN
414
                  EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_UPDATE', @p_UPDATE_ID,@l_DO_BRANCH_ID, @l_SUPPEND_GL, @BRN_ID, @l_ASSET_GL, @BRN_ID,@AMT ,'Y',
415
					@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
416
					@l_ET_ID OUT
417
                  -- Chi phí KH cơ bản
418
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
419
                  INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
420
                  VALUES (@l_ETP_ID, @l_ET_ID,@p_UPDATE_ID ,@l_AC_BRANCH_CODE , @l_AMORT_BASIC, 'VND', 'D', @_NEW_AMT_AMORT_LAST,1, @_NEW_AMT_AMORT_LAST, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), NULL, NULL, @l_DEP_CODE, @NOTE_AMORT,@l_TRN_NO);
421
                  -- Hao mòn TSCD
422
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
423
                  INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
424
                  VALUES (@l_ETP_ID, @l_ET_ID,@p_UPDATE_ID ,@l_C_BRANCH_CODE , @l_AMORT_ACCTNO, 'VND', 'C', @_NEW_AMT_AMORT_LAST,1, @_NEW_AMT_AMORT_LAST, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), NULL, NULL, @l_DEP_CODE, @NOTE_AMORT,@l_TRN_NO);
425
                 END 
426
				END
427
--				ELSE IF @l_TYPE_ID = 'CCLD'
428
--				BEGIN
429
--				--NO ASSET_ACCTNO - CO ASSET_SUPPEND_GL: GIA TRI CHENH LECH
430
--					EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_UPDATE', @p_UPDATE_ID,@l_DO_BRANCH_ID, @l_SUPPEND_GL, @BRN_ID, @l_AMORT_ACCTNO, @BRN_ID,@AMT ,'Y',
431
--					@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
432
--					@l_ET_ID OUT
433
--					--IF @ERROR <> 0 GOTO ABORT_ERROR
434
--				END								
435

    
436
		END
437
		ELSE --GIAM NGUYEN GIA
438
		BEGIN
439
				SET @AMT = @l_OLD_BUY_PRICE - @l_NEW_BUY_PRICE
440
				--insert dbo.ASS_VALUES
441
				EXEC SYS_CodeMasters_Gen 'ASS_VALUES', @l_VALUE_ID out
442
							
443
				INSERT INTO ASS_VALUES
444
				(
445
					VALUE_ID, ASSET_ID, BRANCH_ID, TRN_DT, CRDR, ASSET_AMT, [DESCRIPTION], TRN_ID, TRN_TYPE,
446
					RECORD_STATUS, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, AMORT_AMT
447
				)
448
				VALUES
449
				(
450
					@l_VALUE_ID, @l_ASSET_ID, @l_HO_BRN_ID, CONVERT(datetime, @sToday, 103), 'D', @l_OLD_BUY_PRICE - @l_NEW_BUY_PRICE, N'DIEU CHINH TSCD/CCLD', @p_UPDATE_ID, 'ASS_UPDATE',
451
					'1','A',@l_MAKER_ID, CONVERT(datetime, @sToday, 103), @p_CHECKER_ID, CONVERT(datetime, @sToday, 103), @l_NEW_AMORT_AMT - @l_OLD_AMORT_AMT
452
				)
453

    
454
				IF @l_TYPE_ID = 'TSCD'
455
				BEGIN
456
				--NO ASSET_SUPPEND_GL - CO ASSET_ACCTNO: GIA TRI CHENH LECH
457
					EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_UPDATE', @p_UPDATE_ID,@l_DO_BRANCH_ID, @l_ASSET_GL, @BRN_ID, @l_SUPPEND_GL , @BRN_ID,@AMT ,'Y',
458
					@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
459
						@l_ET_ID OUT
460
					--IF @ERROR <> 0 GOTO ABORT_ERROR
461

    
462
                     -- TRẢ HỘI SỞ
463
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
464
                  INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
465
                  VALUES (@l_ETP_ID, @l_ET_ID,@p_UPDATE_ID ,@l_C_BRANCH_CODE , @AC_HS_MAIN, 'VND', 'D', @AMT,1, @AMT, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
466
                  
467
                  -- TSCD
468
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
469
                  INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
470
                  VALUES (@l_ETP_ID, @l_ET_ID,@p_UPDATE_ID ,@l_AC_BRANCH_CODE , @AC_TSCD, 'VND', 'C', @AMT,1, @AMT, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
471
--                 
472
                  --ĐỒNG THỜI LẬP HẠCH TOÁN ĐIỀU CHỈNH GIẢM SỐ TRÍCH KHẤU HAO TRONG NĂM HIỆN HÀNH
473
                   IF(@_NEW_AMT_AMORT_LAST IS NOT NULL AND @_NEW_AMT_AMORT_LAST <> 0)
474
                  BEGIN
475
                  EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_UPDATE', @p_UPDATE_ID,@l_DO_BRANCH_ID, @l_ASSET_GL, @BRN_ID, @l_SUPPEND_GL , @BRN_ID,@AMT ,'Y',
476
					@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
477
						@l_ET_ID OUT
478
                  -- Hao mòn TSCD
479
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
480
                  INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
481
                  VALUES (@l_ETP_ID, @l_ET_ID,@p_UPDATE_ID ,@l_C_BRANCH_CODE , @l_AMORT_ACCTNO, 'VND', 'D', @_NEW_AMT_AMORT_LAST,1, @_NEW_AMT_AMORT_LAST, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), NULL, NULL, @l_DEP_CODE, @NOTE_AMORT2,@l_TRN_NO);
482
                  
483
                  -- Chi phí KH cơ bản
484
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
485
                  INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
486
                  VALUES (@l_ETP_ID, @l_ET_ID,@p_UPDATE_ID ,@l_AC_BRANCH_CODE , @l_AMORT_BASIC, 'VND', 'C', @_NEW_AMT_AMORT_LAST,1, @_NEW_AMT_AMORT_LAST, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), NULL, NULL, @l_DEP_CODE, @NOTE_AMORT2,@l_TRN_NO);
487
                  END
488
				END
489
--				ELSE IF @l_TYPE_ID = 'CCLD'
490
--				BEGIN
491
--				--NO ASSET_SUPPEND_GL - CO ASSET_ACCTNO: GIA TRI CHENH LECH
492
--					EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_UPDATE', @p_UPDATE_ID,@l_DO_BRANCH_ID, @l_AMORT_ACCTNO, @BRN_ID, @l_SUPPEND_GL , @BRN_ID,@AMT ,'Y',
493
--					@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
494
--					@ERROR OUT
495
--					--IF @ERROR <> 0 GOTO ABORT_ERROR					
496
--				END
497
		END
498
	END
499

    
500
	UPDATE ASS_UPDATE 
501
	SET 
502
		AUTH_STATUS = @P_AUTH_STATUS, 
503
		CHECKER_ID = @p_CHECKER_ID, 
504
		APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
505
	WHERE UPDATE_ID = @p_UPDATE_ID
506
	UPDATE PL_PROCESS SET PROCESS_ID='UPDATE_NT' WHERE REQ_ID = @p_UPDATE_ID AND PROCESS_ID ='UPDATE'
507
	INSERT INTO dbo.PL_PROCESS
508
		(
509
			REQ_ID,
510
			PROCESS_ID,
511
			CHECKER_ID,
512
			APPROVE_DT,
513
			PROCESS_DESC,NOTES
514
		)
515
		VALUES
516
		(   @p_UPDATE_ID,        -- REQ_ID - varchar(15)
517
			'APPROVE',        -- PROCESS_ID - varchar(10)
518
			@p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
519
			GETDATE(), -- APPROVE_DT - datetime
520
			N'Phê duyệt phiếu cập nhật tài sản thành công' ,
521
			N'Phê duyệt phiếu cập nhật tài sản'      -- PROCESS_DESC - nvarchar(1000)
522
		)
523
END TRY
524

    
525
BEGIN CATCH	
526
	IF @@TRANCOUNT>0
527
		ROLLBACK TRANSACTION
528
		
529
	SELECT '-1' as Result,  convert(varchar(100),ERROR_NUMBER()) + ' - ' + ERROR_MESSAGE() ErrorDesc
530
	RETURN '-1'		
531

    
532
END CATCH;
533

    
534

    
535
IF @@TRANCOUNT>0
536
	COMMIT TRANSACTION
537

    
538
SELECT '0' as Result, '' ErrorDesc
539
RETURN '-1'	
540

    
541
ABORT_ERROR:
542
BEGIN
543
	IF @@TRANCOUNT>0
544
		ROLLBACK TRANSACTION
545
		
546
	SELECT '-1' as Result,  convert(varchar(100),ERROR_NUMBER()) + ' - ' + ERROR_MESSAGE() + @ERROR ErrorDesc
547
	RETURN '-1'		
548
END