Project

General

Profile

FILE_2_COMPARE_DB.txt

Luc Tran Van, 04/18/2023 10:19 AM

 
1

    
2

    
3
ALTER FUNCTION [dbo].[FN_GET_USER_BY_ROLE] (
4
	@ROLE_NAME VARCHAR(MAX),
5
	@BRANCH_ID VARCHAR(20) = NULL,
6
	@DEPT_ID VARCHAR(20) = NULL)
7
RETURNS @result TABLE (
8
	TLNANME		VARCHAR(100),
9
	TLFullName	NVARCHAR(200),
10
	BRANCH_ID	VARCHAR(15),
11
	DEP_ID		VARCHAR(50),
12
	ROLE_OLD	VARCHAR(100),
13
	ROLE_NEW	VARCHAR(100),
14
	EFF_DATE	DATETIME,
15
	EXP_DATE	DATETIME
16
)
17
AS
18
BEGIN
19
	DECLARE @ROLES TABLE(RoleName VARCHAR(20))
20
	INSERT @ROLES(RoleName) SELECT VALUE FROM wsiSplit(@ROLE_NAME,',')
21

    
22
	DECLARE @BRANCH_TYPE VARCHAR(15) = (SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = @BRANCH_ID)
23
	INSERT INTO @result
24
	SELECT * FROM (
25
		SELECT TU.TLNANME, TU.TLFullName, TU.TLSUBBRID AS BRANCH_ID, TU.SECUR_CODE AS DEP_ID, R.DisplayName AS ROLE_OLD, TRM.ROLE_NEW,NULL AS EFF_DATE, NULL AS EXP_DATE
26
		FROM dbo.TL_USER TU
27
		LEFT JOIN dbo.AbpUserRoles UR ON TU.ID = UR.UserId
28
		INNER JOIN dbo.AbpRoles R ON R.Id = UR.RoleId
29
		LEFT JOIN (SELECT * FROM dbo.TL_SYS_ROLE_MAPPING RM WHERE RM.TLNAME IS NULL OR RM.TLNAME = '') TRM ON (TRM.ROLE_OLD = R.DisplayName)
30
		UNION ALL
31
		SELECT TU.TLNANME, TU.TLFullName, RM.BRANCH_ID, RM.DEP_ID, RM.ROLE_OLD, RM.ROLE_NEW, RM.EFF_DATE,RM.EXP_DATE
32
		FROM dbo.TL_USER TU
33
		LEFT JOIN dbo.TL_SYS_ROLE_MAPPING RM ON TU.TLNANME = RM.TLNAME
34
		WHERE CAST(RM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
35
	) TMP 
36
	WHERE 1 = 1
37
	AND ((TMP.ROLE_OLD IN (SELECT * FROM @ROLES) OR TMP.ROLE_NEW IN (SELECT * FROM @ROLES)) OR @ROLE_NAME IS NULL OR @ROLE_NAME = '')
38
	AND ((@BRANCH_TYPE = 'HS' AND TMP.BRANCH_ID = @BRANCH_ID AND TMP.DEP_ID = @DEPT_ID)
39
		OR (@BRANCH_TYPE <> 'HS' AND TMP.BRANCH_ID = @BRANCH_ID)
40
		OR (@BRANCH_ID IS NULL OR @BRANCH_ID = '')
41
	)
42
	RETURN;
43
END
44

    
45
GO
46
IF @@ERROR <> 0 SET NOEXEC ON
47
GO
48
PRINT N'Altering [dbo].[ASS_MASTER_VIEW]'
49
GO
50
ALTER VIEW [dbo].[ASS_MASTER_VIEW] 
51
AS SELECT
52
  dbo.CM_SUPPLIER.SUP_NAME
53
 ,dbo.CM_SUPPLIER.SUP_CODE
54
 ,dbo.CM_SUPPLIER.SUP_TYPE_ID
55
 ,dbo.CM_SUPPLIER.ADDR
56
 ,dbo.CM_SUPPLIER.EMAIL
57
 ,dbo.ASS_GROUP.GROUP_CODE
58
 ,dbo.ASS_GROUP.GROUP_NAME
59
 ,dbo.CM_EMPLOYEE.EMP_NAME
60
 ,dbo.CM_EMPLOYEE.EMP_CODE
61
 ,dbo.CM_DIVISION.DIV_CODE
62
 ,dbo.CM_DIVISION.DIV_NAME
63
 ,dbo.CM_DEPARTMENT.DEP_CODE
64
 ,dbo.CM_DEPARTMENT.DEP_NAME
65
 ,dbo.CM_BRANCH.BRANCH_CODE
66
 ,dbo.CM_BRANCH.BRANCH_NAME
67
 ,dbo.ASS_MASTER.ASSET_ID
68
 ,dbo.ASS_MASTER.TYPE_ID
69
 ,dbo.ASS_MASTER.GROUP_ID
70
 ,dbo.ASS_MASTER.ASSET_CODE
71
 ,dbo.ASS_MASTER.ASSET_NAME
72
 ,dbo.ASS_MASTER.ASSET_SERIAL_NO
73
 ,dbo.ASS_MASTER.ASSET_DESC
74
 ,dbo.ASS_MASTER.SUP_ID
75
 ,dbo.ASS_MASTER.BUY_PRICE
76
 ,dbo.ASS_MASTER.AMORT_AMT
77
 ,dbo.ASS_MASTER.ASS_TYPE
78
 ,dbo.ASS_MASTER.BRANCH_ID
79
 ,dbo.ASS_MASTER.DEPT_ID
80
 ,dbo.ASS_MASTER.EMP_ID
81
 ,dbo.ASS_MASTER.DIVISION_ID
82
 ,dbo.ASS_MASTER.BUY_DATE
83
 ,dbo.ASS_MASTER.USE_DATE
84
 ,dbo.ASS_MASTER.SPECIAL_ASS
85
 ,dbo.ASS_MASTER.AMORT_MONTH
86
 ,dbo.ASS_MASTER.AMORT_RATE
87
 ,dbo.ASS_MASTER.AMORT_START_DATE
88
 ,dbo.ASS_MASTER.AMORT_END_DATE
89
 ,dbo.ASS_MASTER.FIRST_AMORT_AMT
90
 ,dbo.ASS_MASTER.MONTHLY_AMORT_AMT
91
 ,dbo.ASS_MASTER.AMORTIZED_MONTH
92
 ,dbo.ASS_MASTER.AMORTIZED_AMT
93
 ,dbo.ASS_MASTER.LIQUIDATION_DT
94
 ,dbo.ASS_MASTER.PO_ID
95
 ,dbo.ASS_MASTER.PD_ID
96
 ,dbo.ASS_MASTER.WAREHOUSE_ID
97
 ,dbo.ASS_MASTER.LOCATION
98
 ,dbo.ASS_MASTER.REF_ASSET_ID
99
 ,dbo.ASS_MASTER.REF_AMORTIZED_AMT
100
 ,dbo.ASS_MASTER.WARRANTY_MONTHS
101
 ,dbo.ASS_MASTER.NOTES
102
 ,dbo.ASS_MASTER.AMORT_STATUS
103
 ,dbo.ASS_MASTER.ASS_STATUS
104
 ,dbo.ASS_MASTER.ASS_STATUS_DESC
105
 ,dbo.ASS_MASTER.RECORD_STATUS
106
 ,dbo.ASS_MASTER.AUTH_STATUS
107
 ,dbo.ASS_MASTER.MAKER_ID
108
 ,dbo.ASS_MASTER.CREATE_DT
109
 ,dbo.ASS_MASTER.CHECKER_ID
110
 ,dbo.ASS_MASTER.APPROVE_DT
111
 ,dbo.ASS_PO.PO_CODE
112
 ,dbo.TR_PO_MASTER.PO_NAME
113
 ,ISNULL(dbo.ASS_MASTER.BUY_PRICE - dbo.ASS_MASTER.AMORTIZED_AMT, 0) AS REMAIN_VALUE
114
 ,ISNULL(dbo.ASS_MASTER.AMORT_AMT - dbo.ASS_MASTER.AMORTIZED_AMT, 0) AS REMAIN_AMORT_AMT
115
 ,dbo.ASS_TYPE.TYPE_CODE
116
 ,dbo.ASS_TYPE.TYPE_NAME
117
 ,dbo.ASS_AMORT_STATUS.STATUS_NAME AS AMORT_STATUS_NAME
118
 --,dbo.ASS_STATUS.STATUS_NAME AS ASS_STATUS_NAME,
119
 ,CASE WHEN ASS_MASTER.LIQ_W_STATUS = '1' AND ASS_MASTER.AMORT_STATUS = 'DTL' THEN N'Đã thanh lý' ELSE ASS_STATUS.STATUS_NAME
120
 END AS ASS_STATUS_NAME
121
 ,RA.ASSET_CODE AS REF_ASSET_CODE
122
 ,RA.ASSET_NAME AS REF_ASSET_NAME
123
 ,dbo.ASS_MASTER.USE_DATE_KT
124
 ,dbo.ASS_MASTER.BUY_DATE_KT
125
 ,dbo.ASS_MASTER.USE_STATUS
126
 ,dbo.ASS_MASTER.BRANCH_CREATE
127
 ,BRCR.BRANCH_NAME AS BRANCH_CREATE_NAME
128
 ,BRCR.BRANCH_CODE AS BRANCH_CREATE_CODE
129
 ,dbo.ASS_MASTER.ACCOUNT_GL
130
 ,dbo.ASS_MASTER.VAT
131
 ,dbo.ASS_MASTER.PRICE_VAT
132
 ,OS.CONTENT AS IS_OS
133
 ,LICENSE.CONTENT AS IS_MO_LICENSE
134
 ,ASS_MASTER.OS
135
 ,ASS_MASTER.MO_LICENSE,
136
--RG.GROUP_CODE AS REF_GROUP_CODE, RG.GROUP_NAME AS REF_GROUP_NAME,
137
--RT.TYPE_CODE AS REF_TYPE_CODE, RT.TYPE_NAME AS REF_TYPE_NAME
138
--dbo.FN_GET_CHINHANH(dbo.ASS_MASTER.BRANCH_ID,'KV') KHU_VUC,
139
--dbo.FN_GET_CHINHANH(dbo.ASS_MASTER.BRANCH_ID,'CN') CHI_NHANH, 
140
--D.BRANCH_NAME PGD
141
AN.PR_CODE, --SỐ PR
142
AN.CONTRACT_ID AS ASS_CONTRACT_CODE, -- SỐ HỢP ĐỒNG
143
AN.PL_CODE, --SỐ TỜ TRÌNH
144
AP.INVOICE_NO --SỐ HOÁ ĐƠN
145
FROM dbo.ASS_MASTER
146
LEFT OUTER JOIN dbo.ASS_GROUP
147
  ON dbo.ASS_MASTER.GROUP_ID = dbo.ASS_GROUP.GROUP_ID
148
LEFT OUTER JOIN dbo.CM_SUPPLIER
149
  ON dbo.ASS_MASTER.SUP_ID = dbo.CM_SUPPLIER.SUP_ID
150
LEFT OUTER JOIN dbo.CM_EMPLOYEE
151
  ON dbo.ASS_MASTER.EMP_ID = dbo.CM_EMPLOYEE.EMP_ID
152
LEFT OUTER JOIN dbo.CM_BRANCH
153
  ON dbo.ASS_MASTER.BRANCH_ID = dbo.CM_BRANCH.BRANCH_ID
154
LEFT OUTER JOIN dbo.CM_AUTH_STATUS
155
  ON dbo.ASS_MASTER.AUTH_STATUS = dbo.CM_AUTH_STATUS.AUTH_STATUS
156
LEFT OUTER JOIN dbo.CM_DEPARTMENT
157
  ON dbo.ASS_MASTER.DEPT_ID = dbo.CM_DEPARTMENT.DEP_ID
158
LEFT OUTER JOIN dbo.CM_DIVISION
159
  ON dbo.ASS_MASTER.DIVISION_ID = dbo.CM_DIVISION.DIV_ID
160
LEFT OUTER JOIN dbo.TR_PO_MASTER
161
  ON dbo.TR_PO_MASTER.PO_ID = dbo.ASS_MASTER.PO_ID
162
LEFT OUTER JOIN dbo.ASS_TYPE
163
  ON dbo.ASS_TYPE.TYPE_ID = dbo.ASS_MASTER.TYPE_ID
164
LEFT OUTER JOIN dbo.ASS_AMORT_STATUS
165
  ON dbo.ASS_AMORT_STATUS.STATUS_CODE = dbo.ASS_MASTER.AMORT_STATUS
166
LEFT OUTER JOIN dbo.ASS_STATUS
167
  ON dbo.ASS_STATUS.STATUS_ID = dbo.ASS_MASTER.ASS_STATUS
168
LEFT OUTER JOIN dbo.ASS_MASTER RA
169
  ON RA.ASSET_ID = dbo.ASS_MASTER.REF_ASSET_ID
170
LEFT OUTER JOIN dbo.ASS_PO
171
  ON dbo.ASS_MASTER.PO_ID = dbo.ASS_PO.ASSPO_ID
172
LEFT OUTER JOIN dbo.CM_BRANCH BRCR
173
  ON dbo.ASS_MASTER.BRANCH_CREATE = BRCR.BRANCH_ID
174
LEFT JOIN CM_ALLCODE OS
175
  ON ASS_MASTER.OS = OS.CDVAL
176
    AND OS.CDNAME = 'OS_LICENSE'
177
    AND OS.CDTYPE = 'STATUS'
178
LEFT JOIN CM_ALLCODE LICENSE
179
  ON ASS_MASTER.MO_LICENSE = LICENSE.CDVAL
180
    AND LICENSE.CDNAME = 'OS_LICENSE'
181
    AND LICENSE.CDTYPE = 'STATUS'
182
LEFT JOIN ASS_TRANSACTIONS AT ON AT.ASSET_ID = dbo.ASS_MASTER.ASSET_ID AND AT.TRN_TYPE = 'ADD_NEW'
183
LEFT JOIN ASS_ADDNEW AN ON AT.TRN_ID = AN.ADDNEW_ID AND AT.TRN_TYPE = 'ADD_NEW'
184
LEFT JOIN ASS_PO AP ON AN.ADDNEW_ID = AP.ADDNEW_ID
185

    
186
						 --dbo.ASS_GROUP RG ON RG.GROUP_ID = RA.GROUP_ID AND RA.ASSET_ID = dbo.ASS_MASTER.REF_ASSET_ID LEFT JOIN
187
						 --dbo.ASS_TYPE RT ON RG.TYPE_ID = RA.TYPE_ID AND RA.ASSET_ID = dbo.ASS_MASTER.REF_ASSET_ID
188
						-- LEFT JOIN CM_BRANCH D ON  D.BRANCH_ID = dbo.ASS_MASTER.BRANCH_ID
189
GO
190
IF @@ERROR <> 0 SET NOEXEC ON
191
GO
192
PRINT N'Altering [dbo].[ASS_LIQUIDDETAIL_BVB_ById]'
193
GO
194
ALTER PROCEDURE [dbo].[ASS_LIQUIDDETAIL_BVB_ById]
195
@p_LIQ_ID	varchar(15)  = NULL
196

    
197
AS
198
	
199
BEGIN 
200
    SELECT A.LIQDT_ID,A.LIQ_ID,A.ASSET_ID,A.LIQ_PRICE,A.LIQ_TYPE,A.AUTH_STATUS,A.MAKER_ID, A.NOTE,
201
	A.CREATE_DT,A.CHECKER_ID,A.APPROVE_DT, B.ASSET_NAME, B.ASSET_CODE, B.BUY_PRICE,
202
	A.REMAIN_AMORTIZED_AMT, A.BUY_PRICE, A.BUY_PRICE_LIQ, A.REMAIN_VALUE, A.LIQ_AMT,
203
    CASE 
204
    	WHEN A.ASS_STATUS IS NULL OR A.ASS_STATUS = '' THEN ASS.STATUS_NAME 
205
    	ELSE ASS2.STATUS_NAME 
206
    END AS ASS_STATUS_NAME, --Tinh trang tai san
207

    
208
	B.ASS_STATUS_DESC, B.AMORT_STATUS, 
209
    CASE 
210
    	WHEN A.AMORT_STATUS IS NULL OR A.AMORT_STATUS = '' THEN AAS.STATUS_NAME
211
    	ELSE AAS2.STATUS_NAME
212
    END AS AMORT_STATUS_NAME, -- Trang thai khau hao
213

    
214
    CB.BRANCH_NAME AS BRANCH_NAME_USE, CB.BRANCH_ID AS BRANCH_ID_USE,
215
    CD.DEP_NAME AS DEPT_NAME_USE, CD.DEP_ID AS DEPT_ID_USE
216
    , AZ.LIST_LIQ_REQUEST
217
    , A.LIQ_REQ_ID, 
218
    CASE WHEN A.ASS_AMORTIZED_MONTH IS NULL THEN ISNULL(B.AMORTIZED_MONTH,0) ELSE ISNULL(A.ASS_AMORTIZED_MONTH,0) END ASS_AMORTIZED_MONTH,
219
    CASE WHEN A.ASS_AMORTIZED_AMT IS NULL THEN ISNULL(B.AMORTIZED_AMT,0) ELSE ISNULL(A.ASS_AMORTIZED_AMT,0) END ASS_AMORTIZED_AMT
220
    , CASE WHEN A.LIQ_VAT IS NULL THEN 0 ELSE A.LIQ_VAT END AS LIQ_VAT
221
    , CASE WHEN A.LIQ_VAT IS NULL THEN 0 ELSE A.LIQ_PRICE_VAT END AS LIQ_PRICE_VAT
222
    ,A.REQ_AMT
223
--    ,A.REQ_AMT - ISNULL(A.LIQ_PRICE_VAT, 0) AS LIQ_AMT_BE_VAT
224
    , A.LIQ_AMT_BE_VAT
225
    ,A.LIQ_REASON
226
	FROM ASS_LIQUIDATION_DT A 
227
	LEFT JOIN ASS_MASTER B ON A.ASSET_ID=B.ASSET_ID
228
    LEFT JOIN ASS_AMORT_STATUS AAS ON AAS.STATUS_CODE = B.AMORT_STATUS
229
	LEFT JOIN ASS_STATUS ASS ON B.ASS_STATUS = ASS.STATUS_ID
230
    LEFT JOIN ASS_AMORT_STATUS AAS2 ON AAS.STATUS_CODE = A.AMORT_STATUS
231
	LEFT JOIN ASS_STATUS ASS2 ON A.ASS_STATUS = ASS.STATUS_ID
232
    LEFT JOIN CM_BRANCH CB ON A.BRANCH_ID_USE = CB.BRANCH_ID
233
    LEFT JOIN CM_DEPARTMENT CD ON CD.DEP_ID = A.DEP_ID_USE
234
	LEFT JOIN ASS_LIQUIDATION AZ ON A.LIQ_ID = AZ.LIQ_ID
235
	WHERE 1 = 1 AND A.LIQ_ID = @p_LIQ_ID
236
END
237
GO
238
IF @@ERROR <> 0 SET NOEXEC ON
239
GO
240
PRINT N'Altering [dbo].[ASS_COST_ALLOCATION_Byid]'
241
GO
242
ALTER   PROC [dbo].[ASS_COST_ALLOCATION_Byid]
243
@p_COS_ID VARCHAR(15)
244
AS
245
SELECT A.*,B.BRANCH_CODE, B.BRANCH_NAME, ISNULL(C.DEP_CODE,B.BRANCH_CODE) DEP_CODE, ISNULL(C.DEP_NAME,B.BRANCH_NAME) DEP_NAME
246
FROM ASS_COST_ALLOC_DT A
247
LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
248
LEFT JOIN CM_DEPARTMENT C ON A.DEPT_ID = C.DEP_ID
249
WHERE 1=1
250
AND(A.COS_ID =@p_COS_ID)
251
AND A.RECORD_STATUS <>'D'
252
GO
253
IF @@ERROR <> 0 SET NOEXEC ON
254
GO
255
PRINT N'Altering [dbo].[ASS_MASTER_Search]'
256
GO
257
ALTER PROCEDURE [dbo].[ASS_MASTER_Search]
258
	@p_ASSET_ID			varchar(15) = NULL,
259
	@p_TYPE_ID			varchar(15) = NULL,
260
	@p_GROUP_ID			varchar(15) = NULL,
261
	@p_ASSET_CODE		nvarchar(MAX) = NULL,
262
	@p_ASSET_NAME		nvarchar(1000) = NULL,
263
	@p_ASSET_SERIAL_NO	nvarchar(MAX) = NULL,
264
	@p_ASSET_DESC		nvarchar(MAX) = NULL,
265
	@p_SUP_ID			varchar(15) = NULL,
266
	@p_BUY_PRICE		decimal(18,2) = NULL,
267
	@p_AMORT_AMT		decimal(18,2) = NULL,
268
	@p_ASS_TYPE			varchar(1) = NULL,
269
	@p_ASS_CAT			varchar(10) = NULL,
270
	@p_BRANCH_ID		varchar(15) = NULL,
271
	@p_BRANCH_LOGIN		varchar(15) = NULL,
272
	@p_DEPT_ID			varchar(15) = NULL,
273
	@p_EMP_ID			varchar(15) = NULL,
274
	@p_DIVISION_ID		varchar(15) = NULL,
275
	@p_BUY_DATE			varchar(10) = NULL,
276
	@p_USE_DATE			varchar(10) = NULL,
277
	@p_SPECIAL_ASS		varchar(1) = NULL,
278
	@p_AMORT_MONTH		decimal(18,2) = NULL,
279
	@p_AMORT_RATE		decimal(18,2) = NULL,
280
	@p_AMORT_START_DATE	varchar(10) = NULL,
281
	@p_AMORT_END_DATE	varchar(10) = NULL,
282
	@p_FIRST_AMORT_AMT	decimal(18,2) = NULL,
283
	@p_AMORTIZED_MONTH	decimal(18,2)= NULL,
284
	@p_REMAIN_MONTH		decimal(18,2) = NULL, --so thang khau hao con lai
285
	@p_AMORTIZED_AMT	decimal(18,2) = NULL,
286
	@p_PO_ID			varchar(15) = NULL,
287
	@p_WAREHOUSE_ID		varchar(15) = NULL,
288
	@p_LOCATION			nvarchar(500) = NULL,
289
	@p_REF_ASSET_ID		varchar(15) = NULL,
290
	@p_REF_AMORTIZED_AMT decimal(18,2) = NULL,
291
	@p_WARRANTY_MONTHS	INT = NULL,
292
	@p_NOTES			nvarchar(1000) = NULL,
293
	@p_AMORT_STATUS		nvarchar(50) = NULL, --Neu muon list nhieu trang thai thi trueyn vao nhieu status cach dau bang dau , vidu: 'VNM,CKH'
294
	@p_ASS_STATUS		nvarchar(20) = NULL,	
295
	@p_ASS_STATUS_DESC	nvarchar(1000) = NULL,
296
	@p_TOP				INT = NULL,
297
	@p_ORDER_BY			varchar(500) = 1,
298
	@p_LEVEL			varchar(10) = NULL,
299
	@p_USE_STATUS			varchar(15) = NULL,
300
	--- LUCTV 22-03-2019 BO SUNG 1 SO FIELD HO TRO TIM KIEM
301
	@p_EMP_CODE NVARCHAR(500) = NULL,
302
	@p_EMP_NAME NVARCHAR(500) = NULL,
303
	@p_ADDNEWID VARCHAR(20) = NULL,
304
	@p_ADDNEW_NOTES NVARCHAR(1000) = NULL,
305
	@p_USE_MASTER_ID VARCHAR(50) = NULL,
306
	@P_YEAR VARCHAR(5) = NULL,
307
  @P_UNUSED_ASSET VARCHAR(5) = NULL,
308
  --PHUCVH 31-10-22 BỔ SUNG TÌM THEO HỆ ĐIỀU HÀNH VÀ BẢN QUYỀN MICROSOFT OFFICE
309
  @P_OS VARCHAR(10) = NULL,
310
  @P_MO_LICENSE VARCHAR(10) = NULL,
311
  @P_REQ_ID VARCHAR(15) = NULL, --Tìm kiếm TS theo PYC
312
  @P_REQ_DT_TYPE VARCHAR(15) = NULL, --Tìm kiếm TS theo loại tài sản trong PYC
313
  @P_BRANCH_PYC VARCHAR(15) = NULL, --TÌM KIẾM 
314
  @P_USER_LOGIN VARCHAR(50),
315
  @p_IS_FIND_REQ_ID VARCHAR(5) = NULL, -- TÌM THEO TÀI SẢN NHẬP MỚI (VALLUE = 1)
316
  @p_FROM_BUY_DATE VARCHAR(50) = NULL, --Ngày nhập tài sản (từ ngày)
317
  @p_TO_BUY_DATE VARCHAR(50) = NULL, --Ngày nhập tài sản (đến ngày)
318
  @p_FROM_USE_DATE_KT VARCHAR(50) = NULL, --Ngày xuất tài sản (từ ngày)
319
  @p_TO_USE_DATE_KT VARCHAR(50) = NULL, --Ngày xuất tài sản (đến ngày)
320
  @p_PR_CODE VARCHAR(100) = NULL, --Số PR
321
  @p_PL_CODE VARCHAR(100) = NULL, --SỐ TỜ TRÌNH
322
  @p_INVOICE_NO VARCHAR(100) = NULL, -- SỐ HOÁ ĐƠN
323
  @p_INVOICE_SYMPOL VARCHAR(100) = NULL, -- KÝ HIỆU HOÁ ĐƠN
324
  @p_ASS_CONTRACT_CODE VARCHAR(100) = NULL, --SỐ HỢP ĐỒNG
325
  @p_REQ_CODE VARCHAR(100) = NULL --Thêm trường tìm kiếm số PYC
326
AS
327
--thieuvq 19/7/2016 - DOC DU LIEU BO QUA COMMIT TRANSACTION 
328
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
329
--
330
--gan tam sau khi golive thi xoa thieuvq 05082015
331
--IF @p_ASSET_NAME = 'khoinm15479' OR @p_ASSET_NAME = 'nghiann17858'
332
--BEGIN
333
--	SET @p_ASSET_NAME = ''
334
--	SET @p_LEVEL = 'ALL'
335
--END
336
DECLARE @l_LSTASSETCODE TABLE (
337
		[ID] [int] IDENTITY(1,1) NOT NULL,
338
		[VALUE] [VARCHAR](MAX) NULL)
339
		INSERT INTO @l_LSTASSETCODE SELECT VALUE FROM WSISPLIT(@p_ASSET_CODE,',')
340
--DIEU CHINH CHO PHEP SEARCH TOAN HANG - CHI THAO - 5/9/2016
341
--IF @p_ASS_CAT = 'CAR' BEGIN SET @p_LEVEL = 'ALL' END
342
BEGIN -- PAGING
343
	declare @tmp1 table(BRANCH_ID varchar(15))
344
	insert into @tmp1  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
345
	declare @tmp2 table(BRANCH_ID varchar(15))
346
	insert into @tmp2  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
347
	--IF @p_TOP = '' SET @p_TOP = 1000000
348
	DECLARE @P_TARGET_BRANCH_ID VARCHAR(15), @DEP_LOGIN VARCHAR(20)
349
  SELECT @DEP_LOGIN = tu.DEP_ID FROM TL_USER tu WHERE tu.TLNANME = @P_USER_LOGIN
350
	IF @p_TOP IS NULL OR @p_TOP  = ''
351
	BEGIN  
352
	-- PAGING BEGIN
353
		SELECT
354
		MK.TLSUBBRID,A.MONTHLY_AMORT_AMT,
355
				A.ASSET_ID, A.[TYPE_ID],C.[TYPE_CODE],  C.[TYPE_NAME], A.GROUP_ID,B.GROUP_CODE, B.GROUP_NAME, B.ASS_CAT, 
356
        CASE 
357
        	WHEN A.ASSET_CODE IS NULL OR A.ASSET_CODE  = '' THEN A.ASS_CODE_TMP
358
        	ELSE A.ASSET_CODE
359
        END AS ASSET_CODE,  
360
        A.ASSET_NAME, A.ASSET_SERIAL_NO, A.ASSET_DESC,
361
				A.SUP_ID, A.BUY_PRICE, A.AMORT_AMT, A.ASS_TYPE, A.BRANCH_ID,BR.BRANCH_CODE,BR.BRANCH_NAME,A.DEPT_ID,DP.DEP_CODE,DP.DEP_NAME, A.EMP_ID,EM.EMP_CODE AS EMP_CODE,EM.EMP_NAME AS EMP_NAME, A.DIVISION_ID,
362
				A.BUY_DATE, A.USE_DATE, A.SPECIAL_ASS, A.AMORT_MONTH, A.AMORT_RATE, A.AMORT_START_DATE, A.AMORT_END_DATE,
363
				A.FIRST_AMORT_AMT, 
364
				A.AMORTIZED_MONTH, 
365
				(A.AMORT_MONTH - A.AMORTIZED_MONTH) AS REMAIN_MONTH,
366
				A.AMORTIZED_AMT, 
367
				ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), ISNULL(A.AMORT_AMT,0)) AS REMAIN_AMORTIZED_AMT,  --So tien khau hao con lai
368
				A.PO_ID,A.PD_ID, A.WAREHOUSE_ID, A.LOCATION, A.REF_ASSET_ID,
369
				A.REF_AMORTIZED_AMT,
370
				A.WARRANTY_MONTHS, 
371
				A.NOTES, 
372
				A.AMORT_STATUS, 
373
				D.STATUS_NAME AMORT_STATUS_NAME, 
374
				A.ASS_STATUS, 
375
                CASE
376
                	WHEN A.LIQ_W_STATUS = '1' AND A.AMORT_STATUS = 'DTL' THEN N'Đã thanh lý'
377
                	ELSE E.STATUS_NAME
378
                END AS ASS_STATUS_NAME,  --Tinh trang tai san
379
				A.ASS_STATUS_DESC,
380
				A.RECORD_STATUS, 
381
				A.AUTH_STATUS, 
382
				ZZ.AUTH_STATUS_NAME,
383
				A.MAKER_ID, 
384
				A.CREATE_DT, 
385
				A.CHECKER_ID, 
386
				A.USE_STATUS,--THIEUVQ 23062015
387
				A.APPROVE_DT,
388
				A.ACCOUNT_GL,
389
				A.VAT,
390
				A.PRICE_VAT,
391
				--dbo.FN_GET_CHINHANH(A.BRANCH_ID,'KV') KHU_VUC,
392
        NULL AS KHU_VUC,
393
						 --dbo.FN_GET_CHINHANH(A.BRANCH_ID,'CN') CHI_NHANH, 
394
						 BRCR.BRANCH_NAME CHI_NHANH, 
395
						 BBB.BRANCH_NAME PGD				,
396
						 B.AMORT_MONTH AS GROUP_AMORT_MONTH,
397
						 BRCR.BRANCH_NAME AS BRANCH_RECIVE,
398
						 BRCR.BRANCH_NAME AS BRANCH_CREATE_NAME,
399
						 BRCR.BRANCH_ID AS BRANCH_CREATE_ID,
400
						 BRCR.BRANCH_CODE AS BRANCH_CREATE_CODE,
401
						 --LUCTV : 26-12-2018 BO SUNG AMORT MIN - MAX CUA TAI SAN THEO NHOM DE HIEN THI BEN MAN HINH CHINH SUA THONG TIN TAI SAN
402
						 B.AMORT_MONTH_MAX,
403
						 B.AMORT_MONTH_MIN,
404
						--LUCTV : 22 -03 -19 BO SUNG LEFT JOIN ASS_TRANSACTIONS
405
						AN.ADDNEW_ID, AN.NOTES AS ADDNEW_NOTES,AUMD.USER_MASTER_ID AS USE_MASTER_ID,
406
						DPT.DEP_ID as DVCM_ID, DPT.DEP_NAME AS DVCM_NAME,
407
            AN.WAR_EXPIRE_DT,--Ngày hết hạn bảo hành
408
            AN.PR_CODE, --SỐ PR
409
            AN.CONTRACT_ID AS ASS_CONTRACT_CODE, -- SỐ HỢP ĐỒNG
410
            AN.PL_CODE, --SỐ TỜ TRÌNH
411
            AP.INVOICE_NO, --SỐ HOÁ ĐƠN
412
            AP.INVOICE_SYMPOL, --SỐ HOÁ ĐƠN
413
            ----Start Phucvh 13/10/22 Get khối/Trung tâm/Phòng ban          
414
            CASE WHEN DP.TYPE = 'K' THEN DP.DEP_ID ELSE K.DEP_ID END AS BLOCK_ID,
415
            CASE WHEN DP.TYPE = 'K' THEN DP.DEP_NAME ELSE K.DEP_NAME END AS BLOCK_NAME,
416
            CASE WHEN DP.TYPE = 'TT' THEN DP.DEP_ID ELSE TT.DEP_ID END AS CENTER_ID,
417
            CASE WHEN DP.TYPE = 'TT' THEN DP.DEP_NAME ELSE TT.DEP_NAME END AS CENTER_NAME,
418
            CASE WHEN DP.TYPE = 'PB' THEN DP.DEP_ID ELSE NULL END AS DEPT_ID_1,
419
            CASE WHEN DP.TYPE = 'PB' THEN DP.DEP_NAME ELSE NULL END AS DEP_NAME_1,
420
            ----End Phucvh 13/10/22 Get khối/Trung tâm/Phòng ban
421
            CA.CONTENT AS IS_OS, --Hệ điều hành
422
            CA1.CONTENT AS IS_MO_LICENSE, --Bản quyền Microsoft Office
423
            A.REQ_ID,
424
            A.REQ_CODE,
425
            AN.WAR_EXPIRE_DT AS WAR_END_DT, --ngày hết hạn bảo hành
426
            (CASE  WHEN A.IS_COLLECT <> '1' THEN N'Đang sử dụng'  ELSE N'Đã thu hồi' END) AS IS_COLLECT_NAME --Trạng thái tài sản (đang sử dụng || đang thu hồi)
427
            ,
428
            --A.ASS_CONTRACT_CODE,
429
            CASE 
430
            	WHEN DEP_CRE.DEP_ID IS NULL AND A.BRANCH_CREATE = 'DV0001' THEN N'PHÒNG QUẢN LÝ TÀI SẢN'
431
            	ELSE DEP_CRE.DEP_NAME
432
            END AS DEP_CREATE_NAME,
433
            CU.UNIT_NAME AS UNIT_NAME,
434
            CR.REGION_NAME AS REGION_NAME,
435
            '1' AS QTY,
436
            B1.GROUP_NAME AS GROUP_NAME_1,
437
            B2.GROUP_NAME AS GROUP_NAME_2
438
--KHIEMCHG: LẤY THÔNG TIN TÀI SẢN CHO KẾ TOÁN
439
            ,A.AMORT_START_DATE NGAY_BD_KH,
440
            ISNULL(A.FIRST_AMORT_AMT,0) SO_TIEN_KH_THANG_DAU_TIEN,
441
            ISNULL(A.MONTHLY_AMORT_AMT,0) SO_TIEN_KH_HANG_THANG,
442
            A.AMORT_MONTH SO_THANG_KH,
443
            ISNULL(A.AMORTIZED_AMT,0) KHAU_HAO_LK,
444
            CASE
445
            	WHEN A.TYPE_ID = 'TSCD' THEN (CASE WHEN A.AMORT_STATUS ='VNM' THEN epa.ACC_NO
446
                                                ELSE ISNULL(agkt3.ASSET_ACCTNO,agkt.ASSET_ACCTNO) END)
447
            	WHEN A.TYPE_ID = 'CCLD' THEN (CASE 
448
                                                WHEN A.AMORT_STATUS ='VNM' THEN agkt.ASSET_ACCTNO
449
                                                WHEN A.AMORT_STATUS ='NKH' OR A.IS_COLLECT = 1 THEN epa2.ACC_NO
450
                                                ELSE agkt.AMORT_ACCTNO END)
451
            END AS TK
452
            
453
  	-- SELECT END
454
		FROM ASS_MASTER A
455
		LEFT JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
456
		LEFT JOIN ASS_TYPE C ON A.[TYPE_ID] = C.[TYPE_ID]
457
		LEFT JOIN ASS_AMORT_STATUS D ON A.AMORT_STATUS = D.STATUS_CODE
458
		LEFT JOIN ASS_STATUS E ON A.ASS_STATUS = E.STATUS_ID
459
		LEFT JOIN CM_AUTH_STATUS ZZ ON ZZ.AUTH_STATUS = A.AUTH_STATUS
460
		LEFT JOIN CM_BRANCH BR ON BR.BRANCH_ID=A.BRANCH_ID
461
		LEFT JOIN CM_EMPLOYEE EM ON EM.EMP_ID=A.EMP_ID
462
		LEFT JOIN TL_USER MK ON MK.TLNANME = A.MAKER_ID
463
		LEFT JOIN CM_BRANCH BBB ON BBB.BRANCH_ID = A.BRANCH_ID
464
		LEFT JOIN CM_DEPARTMENT DP ON DP.DEP_ID = A.DEPT_ID
465
		LEFT JOIN CM_DEPARTMENT DPT ON DPT.DEP_ID = B.DVCM_ID
466
		LEFT JOIN CM_BRANCH BRCR ON BRCR.BRANCH_ID = A.BRANCH_CREATE
467
		--LUCTV : 22 -03 -19 BO SUNG LEFT JOIN ASS_TRANSACTIONS
468
		LEFT JOIN ASS_TRANSACTIONS AT ON AT.ASSET_ID = A.ASSET_ID AND AT.TRN_TYPE = 'ADD_NEW'
469
		LEFT JOIN ASS_ADDNEW AN ON AT.TRN_ID = AN.ADDNEW_ID AND AT.TRN_TYPE = 'ADD_NEW'
470
    LEFT JOIN CM_DEPARTMENT DEP_CRE ON AN.DEPT_CREATE = DEP_CRE.DEP_ID
471
    LEFT JOIN ASS_PO AP ON AN.ADDNEW_ID = AP.ADDNEW_ID
472
		--LUCTV: 26-08-2019 BO SUNG THEM DIEU KIEN KHI NAO NHAP MA PHIEU XUAT THI MOI LEFT JOIN
473
		LEFT JOIN ASS_TRANSACTIONS AU ON AU.ASSET_ID = A.ASSET_ID AND AU.TRN_TYPE ='ADD_USE'
474
    LEFT JOIN ASS_USE_MULTI_DT AUMD ON AU.TRN_ID = AUMD.USE_MULTI_ID AND AU.TRN_TYPE ='ADD_USE'
475
    LEFT JOIN CM_ALLCODE CA ON A.OS = CA.CDVAL AND CA.CDNAME = 'OS_LICENSE' AND CA.CDTYPE = 'STATUS' --HỆ ĐIỀU HÀNH
476
    LEFT JOIN CM_ALLCODE CA1 ON A.MO_LICENSE = CA1.CDVAL AND CA1.CDNAME = 'OS_LICENSE' AND CA1.CDTYPE = 'STATUS' --BẢN QUYỀN MICROSOFT OFFICE
477
    LEFT JOIN CM_UNIT CU ON B.UNIT = CU.UNIT_ID
478
    LEFT JOIN CM_REGIONS CR ON BR.REGION_ID = CR.REGION_ID
479
    LEFT JOIN ASS_GROUP B1 ON B1.GROUP_ID = B.PARENT_ID
480
    LEFT JOIN ASS_GROUP B2 ON B2.GROUP_ID = B1.PARENT_ID
481
    --PHUCVH: GET KHOI/TRUNG TAM/ PHONG BAN CUA TAI SAN
482
    LEFT JOIN CM_DEPARTMENT TT ON TT.DEP_ID = DP.FATHER_ID
483
    LEFT JOIN CM_DEPARTMENT K ON K.DEP_ID = DP.KHOI_ID
484
    LEFT JOIN TR_REQUEST_SHOP_DOC REQ ON A.REQ_ID = REQ.REQ_ID
485
    --KHIEMCHG: LẤY THÔNG TIN TÀI SẢN CHO KẾ TOÁN
486
    LEFT JOIN ASS_GROUP agkt3 ON A.REF_GROUP_ID = agkt3.GROUP_ID
487
    LEFT JOIN ASS_GROUP agkt ON A.GROUP_ID = agkt.GROUP_ID
488
    LEFT JOIN ASS_GROUP agkt1 ON agkt1.GROUP_ID=agkt.PARENT_ID
489
    LEFT JOIN ASS_GROUP agkt2 ON agkt2.GROUP_ID=agkt1.PARENT_ID
490
    LEFT JOIN ENTRIES_POST_ACCNO epa ON ISNULL(A.REF_GROUP_ID,agkt2.GROUP_ID)=epa.GROUP_ID AND epa.ACC_TYPE='BUY_TSCD'
491
    LEFT JOIN ENTRIES_POST_ACCNO epa2 ON epa2.ACC_TYPE='BW_AMORT_CCLD'
492
		WHERE 1 = 1
493
		AND (A.ASSET_ID = @p_ASSET_ID OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
494
		AND (A.[TYPE_ID] = @p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID = '')
495
		AND (B.[ASS_CAT] = @p_ASS_CAT OR @p_ASS_CAT IS NULL OR @p_ASS_CAT = '')
496
		AND (A.GROUP_ID = @p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID = '')
497
		AND ((A.ASSET_CODE like '%' + @p_ASSET_CODE + '%' OR @p_ASSET_CODE IS NULL OR @p_ASSET_CODE = '')
498
          OR (A.ASS_CODE_TMP like '%' + @p_ASSET_CODE + '%' OR @p_ASSET_CODE IS NULL OR @p_ASSET_CODE = ''))
499
		AND (A.ASSET_NAME like N'%' + @p_ASSET_NAME + '%' OR @p_ASSET_NAME IS NULL OR @p_ASSET_NAME = '')
500
		AND (A.ASSET_SERIAL_NO like N'%' + @p_ASSET_SERIAL_NO + '%' OR @p_ASSET_SERIAL_NO IS NULL OR @p_ASSET_SERIAL_NO = '')
501
		AND (A.ASSET_DESC like N'%' + @p_ASSET_DESC + '%' OR @p_ASSET_DESC IS NULL OR @p_ASSET_DESC = '')
502
		AND (A.SUP_ID = @p_SUP_ID OR @p_SUP_ID IS NULL OR @p_SUP_ID = '')
503
		AND (A.BUY_PRICE = @p_BUY_PRICE OR @p_BUY_PRICE IS NULL)
504
		AND (A.AMORT_AMT = @p_AMORT_AMT OR @p_AMORT_AMT IS NULL)
505
		AND (A.ASS_TYPE = @p_ASS_TYPE OR @p_ASS_TYPE IS NULL OR @p_ASS_TYPE = '')
506
		AND (((A.AMORT_STATUS <> 'VNM' AND A.AMORT_STATUS IS NOT NULL
507
					AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp1 WHERE BRANCH_ID = A.BRANCH_ID))
508
					OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID)))
509
				OR ((A.AMORT_STATUS = 'VNM' OR ((A.AMORT_STATUS = 'DTL' OR A.AMORT_STATUS IS NULL OR A.AMORT_STATUS = '')))
510
				AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp1 WHERE BRANCH_ID = A.BRANCH_CREATE))
511
					OR (@p_LEVEL = 'UNIT' AND ((A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <>'' AND A.BRANCH_ID =@p_BRANCH_ID) OR A.BRANCH_CREATE = @p_BRANCH_ID)))))
512
			OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR (@p_LOCATION = 'ASS_PRIVATE_TF' AND A.AMORT_STATUS <> 'DTL' AND A.BRANCH_ID = @p_BRANCH_ID AND(A.DEPT_ID = @DEP_LOGIN OR @DEP_LOGIN IS NULL OR @DEP_LOGIN = ''))
513
			)			
514
			AND (((A.AMORT_STATUS <> 'VNM' AND A.AMORT_STATUS IS NOT NULL
515
					AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp2 WHERE BRANCH_ID = A.BRANCH_ID))
516
					OR (@p_LEVEL = 'UNIT' AND ((A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <>'' AND A.BRANCH_ID =@p_BRANCH_ID) OR A.BRANCH_CREATE = @p_BRANCH_LOGIN)))) 
517
				OR ((A.AMORT_STATUS = 'VNM' OR ((A.AMORT_STATUS = 'DTL' OR A.AMORT_STATUS IS NULL OR A.AMORT_STATUS = '')))
518
					AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp2 WHERE BRANCH_ID = A.BRANCH_CREATE))
519
					OR (@p_LEVEL = 'UNIT' AND ((A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <>'' AND A.BRANCH_ID =@p_BRANCH_LOGIN) OR A.BRANCH_CREATE = @p_BRANCH_LOGIN))))) 
520
			OR @p_BRANCH_LOGIN IS NULL OR @p_BRANCH_LOGIN = '' OR (@p_LOCATION = 'ASS_PRIVATE_TF' AND A.AMORT_STATUS <> 'DTL' AND A.BRANCH_ID = @p_BRANCH_ID AND(A.DEPT_ID = @DEP_LOGIN OR @DEP_LOGIN IS NULL OR @DEP_LOGIN = ''))
521
			)
522
			AND (A.DEPT_ID = @p_DEPT_ID OR @p_DEPT_ID IS NULL OR @p_DEPT_ID = '')
523
			AND (A.EMP_ID = @p_EMP_ID OR @p_EMP_ID IS NULL OR @p_EMP_ID = '')
524
			AND (A.DIVISION_ID = @p_DIVISION_ID OR @p_DIVISION_ID IS NULL OR @p_DIVISION_ID = '')
525
			AND (DATEDIFF(DAYOFYEAR,A.BUY_DATE,CONVERT(datetime, @p_BUY_DATE,103)) = 0 OR @p_BUY_DATE IS NULL OR  @p_BUY_DATE = '')
526
			-- DuyTN bổ sung điều kiện search theo năm
527
			AND (YEAR(A.BUY_DATE) = @P_YEAR OR @P_YEAR = '' OR @P_YEAR IS NULL)
528
			--AND (DATEDIFF(DAYOFYEAR,A.USE_DATE,CONVERT(datetime, @p_USE_DATE,103)) = 0 OR @p_USE_DATE IS NULL OR  @p_USE_DATE = '')
529
			AND (A.SPECIAL_ASS = @p_SPECIAL_ASS OR @p_SPECIAL_ASS IS NULL OR @p_SPECIAL_ASS = '')
530
			AND (A.AMORT_MONTH = @p_AMORT_MONTH OR @p_AMORT_MONTH IS NULL)
531
			AND (A.AMORT_RATE = @p_AMORT_RATE OR @p_AMORT_RATE IS NULL)
532
			AND (DATEDIFF(DAYOFYEAR,A.AMORT_START_DATE,CONVERT(datetime, @p_AMORT_START_DATE,103)) = 0 OR @p_AMORT_START_DATE IS NULL OR  @p_AMORT_START_DATE = '')
533
			AND (DATEDIFF(DAYOFYEAR,A.AMORT_END_DATE,CONVERT(datetime, @p_AMORT_END_DATE,103)) = 0 OR @p_AMORT_END_DATE IS NULL OR  @p_AMORT_END_DATE = '')
534
			AND (A.AMORTIZED_MONTH = @p_AMORTIZED_MONTH OR @p_AMORTIZED_MONTH IS NULL)
535
			AND ((A.AMORT_MONTH - A.AMORTIZED_MONTH) = @p_REMAIN_MONTH OR @p_REMAIN_MONTH IS NULL)
536
			AND (A.PO_ID = @p_PO_ID OR @p_PO_ID IS NULL OR @p_PO_ID = '')
537
			AND (A.WAREHOUSE_ID = @p_WAREHOUSE_ID OR @p_WAREHOUSE_ID IS NULL OR @p_WAREHOUSE_ID = '')
538
			--AND (A.LOCATION like N'%' + @p_LOCATION + '' OR @p_LOCATION IS NULL OR @p_LOCATION = '')
539
			AND (A.REF_ASSET_ID = @p_REF_ASSET_ID OR @p_REF_ASSET_ID IS NULL OR @p_REF_ASSET_ID = '')
540
			AND (A.REF_AMORTIZED_AMT = @p_REF_AMORTIZED_AMT OR @p_REF_AMORTIZED_AMT IS NULL)
541
			--AND (A.AMORT_STATUS = @p_AMORT_STATUS OR @p_AMORT_STATUS IS NULL OR @p_AMORT_STATUS = '')
542
			AND (A.ASS_STATUS = @p_ASS_STATUS OR @p_ASS_STATUS IS NULL OR @p_ASS_STATUS = '')
543
  		AND  (CHARINDEX(ISNULL(A.AMORT_STATUS,''), @p_AMORT_STATUS) <> 0 OR @p_AMORT_STATUS = '' OR @p_AMORT_STATUS IS NULL 
544
            OR(A.AMORT_STATUS IS NULL AND @p_LOCATION = 'ADD_USE'))
545
			AND (A.ASS_STATUS_DESC like N'%' + @p_ASS_STATUS_DESC + '' OR @p_ASS_STATUS_DESC IS NULL OR @p_ASS_STATUS_DESC = '')
546
			AND (A.WARRANTY_MONTHS = @p_WARRANTY_MONTHS OR @p_WARRANTY_MONTHS IS NULL)
547
			AND (A.NOTES like N'%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
548
			AND A.RECORD_STATUS = '1'
549
			AND (A.USE_STATUS = @p_USE_STATUS OR @p_USE_STATUS IS NULL OR @p_USE_STATUS = '')
550
		  AND ((@p_LOCATION =N'IS_LIQUID' AND NOT EXISTS(SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE AUTH_STATUS='A' AND IS_LIQ ='1' AND A.ASSET_ID = A.ASSET_ID)) 
551
				OR (@p_LOCATION =N'IS_COL' AND NOT EXISTS(SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE AUTH_STATUS='A' AND A.ASSET_ID = A.ASSET_ID)) 
552
				OR (@p_LOCATION =N'LIQ' AND EXISTS(SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE AUTH_STATUS='A' AND IS_LIQ ='1' AND ASSET_ID = A.ASSET_ID))
553
		-- ----26-02-2020 BO SUNG THEM NEU LOCATION TRUYEN XUONG LA PRINT TEMP THI LUC NAY CHI LAY NHUNG TAI SAN <> 'VNM' VA CHI LAY DON VI DOC LAP, KHONG LAY TOAN HANG
554
		--		 ----VI HIEN TAI DANG MAC DINH LAY TOAN HANG, TRONG KHI IN NHAN DANG MAC DINH IN THEO DON VI DOC LAP
555
			  OR (@p_LOCATION =N'PRINT_TEMP' AND A.AMORT_STATUS  <>'VNM' AND A.BRANCH_ID =@p_BRANCH_ID)
556
        --START Phucvh 06/10/22 Tài sản được nhập thông qua PYC thuộc ĐV Xuất có loại tài sản chưa hoàn thành và TYPE_XL: Mua mới - Tài sản không nhập từ PYC
557
        OR (@p_LOCATION = N'ADD_USE' AND (A.CURRENT_TRANS IS NULL OR A.CURRENT_TRANS = '') AND (A.BRANCH_ID IS NULL OR A.BRANCH_ID = '')
558
            AND ((REQ.BRANCH_ID = @P_BRANCH_PYC AND A.REQ_ID IS NOT NULL AND A.REQ_ID <> '')
559
                  OR (REQ.REQ_ID IS NULL OR REQ.REQ_ID = '')))
560
        --END Phucvh 06/10/22 Tài sản được nhập thông qua PYC thuộc ĐV Xuất có loại tài sản chưa hoàn thành và TYPE_XL: Mua mới - Tài sản không nhập từ PYC
561
				OR (@p_LOCATION = N'TRANSFER' AND A.AMORT_STATUS <> 'DTL')
562
        --Start Phucvh 25/10/22
563
        OR (@p_LOCATION = N'ASS_COLLECT'  AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')--PYC THU HỒI TÀI SẢN
564
        OR (@p_LOCATION = N'ASS_TRANSFER' AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')--PYC ĐIỀU CHUYỂN
565
        OR (@p_LOCATION = N'ASS_REPAIR'   AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')--PYC SỬA CHỮA
566
        --End Phucvh 25/10/22
567
        --Sửa chữa nhiều TS
568
        OR (@p_LOCATION = N'ASS_REPAIR_MUL' AND (
569
             (@P_REQ_ID IS NOT NULL AND @P_REQ_ID <> '' AND EXISTS(SELECT DT.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT DT WHERE DT.REQ_DOC_ID = @P_REQ_ID AND DT.IS_DVCM = '0' AND DT.ASS_ID = A.ASSET_ID))
570
             OR((@P_REQ_ID IS NULL OR @P_REQ_ID = '') AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')))
571
        --Điều chuyển tài sản nội bộ
572
        OR (@p_LOCATION = N'ASS_PRIVATE_TF' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '' AND A.AUTH_STATUS = 'A')
573
        OR (@p_LOCATION = N'ASS_COLLECT_MUL' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '' AND A.AUTH_STATUS = 'A')
574
        --KHANHNHD 1/11/2 Tài sản đã thêm vào phiếu đề xuất thì không được tìm thấy 
575
--				OR (@p_LOCATION = N'ASS_LIQ' AND( @P_REQ_ID iS NULL OR @P_REQ_ID='') AND A.CURRENT_TRANS IS NULL  AND A.ASSET_ID  NOT IN (SELECT ASSET_ID 
576
--        FROM  ASS_LIQ_REQUEST_DT DT
577
--				WHERE (ASSET_ID = @p_ASSET_ID OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
578
--			))
579
        OR (@p_LOCATION = N'ASS_LIQ' AND( @P_REQ_ID iS NULL OR @P_REQ_ID='') AND A.CURRENT_TRANS IS NULL  AND NOT EXISTS(SELECT ASSET_ID 
580
          FROM  ASS_LIQ_REQUEST_DT DT
581
  				WHERE DT.ASSET_ID = A.ASSET_ID))
582
      	OR (@p_LOCATION = N'ASS_LIQDATION' AND NOT EXISTS (SELECT ASSET_ID 
583
        FROM  ASS_LIQUIDATION_DT ald WHERE ald.ASSET_ID=A.ASSET_ID))
584
				--KHANHNHD 1/11/2 Tài sản đã thêm vào phiếu đề xuất thì không được tìm thấy  
585
        --khiemchg TÌM KIẾM THEO LOẠI TS TRONG PYC -- ĐIỀU CHUYỂN TÀI SẢN
586
--        OR (@p_LOCATION = N'ASS_TRANSFER_MULTI' AND CHARINDEX(ISNULL(A.AMORT_STATUS,''), 'CKH,DKH,DPB,KHX,KKH,NKH') <> 0
587
--            AND A.AUTH_STATUS = 'A'
588
--            AND (@P_REQ_DT_TYPE = 'CPDC' 
589
--                    AND (A.GROUP_ID IN (SELECT IG.GROUP_ID FROM ASS_GROUP IG WHERE IG.GROUP_CODE IN (SELECT AG.GROUP_CODE FROM ASS_GROUP AG WHERE AG.GROUP_ID IN (SELECT ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT A 
590
--                                                                                                        WHERE REQ_DOC_ID = @P_REQ_ID AND TYPE_XL =  @P_REQ_DT_TYPE)))
591
--                    AND (A.BRANCH_ID <> (SELECT BRANCH_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID)
592
--                    OR (A.DEPT_ID <> (SELECT A.DEP_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID) AND A.BRANCH_ID = 'DV0001')))
593
--                  OR (@P_REQ_DT_TYPE = 'DCTS' AND A.ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @P_REQ_ID))
594
--                OR @P_REQ_DT_TYPE = '' OR @P_REQ_DT_TYPE IS NULL)
595
--            )
596
          OR (@p_LOCATION = N'ASS_TRANSFER_MULTI' AND CHARINDEX(ISNULL(A.AMORT_STATUS,''), 'CKH,DKH,DPB,KHX,KKH,NKH') <> 0
597
            AND A.AUTH_STATUS = 'A'
598
            AND (@P_REQ_DT_TYPE = 'CPDC' 
599
                    AND (EXISTS(SELECT IG.GROUP_ID FROM ASS_GROUP IG WHERE IG.GROUP_ID = A.GROUP_ID AND EXISTS(SELECT AG.GROUP_CODE FROM ASS_GROUP AG WHERE AG.GROUP_CODE = IG.GROUP_CODE AND EXISTS(SELECT ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT A 
600
                                                                                                        WHERE REQ_DOC_ID = @P_REQ_ID AND TYPE_XL =  @P_REQ_DT_TYPE AND A.ASS_GROUP_ID = AG.GROUP_ID)))
601
                    AND (A.BRANCH_ID <> (SELECT BRANCH_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID)
602
                    OR (A.DEPT_ID <> (SELECT A.DEP_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID) AND A.BRANCH_ID = 'DV0001')))
603
                  OR (@P_REQ_DT_TYPE = 'DCTS' AND EXISTS(SELECT DT.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT DT WHERE DT.REQ_DOC_ID = @P_REQ_ID AND DT.ASS_ID = A.ASSET_ID))
604
                OR @P_REQ_DT_TYPE = '' OR @P_REQ_DT_TYPE IS NULL)
605
            )
606
        --khiemchg enD
607
        OR @p_LOCATION = 'ASS_INFO'
608
        --Tìm tài sản phiếu đề xuất thì range lại trong phạm vi của phiếu //khiemchg
609
          --		OR (@p_LOCATION = N'ASS_LIQ' AND @P_REQ_ID IS NOT NULL AND @P_REQ_ID <> ''  AND A.ASSET_ID IN (SELECT ASSET_ID 
610
          --                                                         FROM  ASS_LIQ_REQUEST_DT DT
611
          --                                                         WHERE DT.LIQ_REQ_ID IN (SELECT  value FROM dbo.wsiSplit (@P_REQ_ID, ','))))
612
          OR (@p_LOCATION = N'ASS_LIQ' AND @P_REQ_ID IS NOT NULL AND @P_REQ_ID <> ''  AND EXISTS(SELECT ASSET_ID 
613
                                                         FROM  ASS_LIQ_REQUEST_DT DT
614
                                                         WHERE DT.ASSET_ID = A.ASSET_ID AND EXISTS(SELECT  value FROM dbo.wsiSplit (@P_REQ_ID, ',') WHERE value = DT.LIQ_REQ_ID)))
615
		--Tìm tài sản phiếu đề xuất thì range lại trong phạm vi của phiếu //khiemchg  
616
        OR ((@p_LOCATION IS NULL OR @p_LOCATION='') AND A.AUTH_STATUS = 'A'))
617
			----LUCTV : 22 -03 -19 BO SUNG LEFT JOIN ASS_TRANSACTIONS
618
		AND (AN.ADDNEW_ID  LIKE N'%'+ @p_ADDNEWID +'%' OR @p_ADDNEWID ='' OR @p_ADDNEWID IS NULL) 
619
		AND (AN.NOTES LIKE N'%' + @p_ADDNEW_NOTES + '%' OR @p_ADDNEW_NOTES ='' OR @p_ADDNEW_NOTES IS NULL) 
620
		AND (EM.EMP_NAME LIKE N'%'+ @p_EMP_NAME +'%' OR @p_EMP_NAME ='' OR @p_EMP_NAME IS NULL)
621
		AND (EM.EMP_CODE LIKE N'%'+ @p_EMP_CODE +'%' OR @p_EMP_CODE ='' OR @p_EMP_CODE IS NULL)
622
		AND (AU.TRN_ID LIKE N'%'+ @p_USE_MASTER_ID +'%' OR @p_USE_MASTER_ID IS NULL OR @p_USE_MASTER_ID ='')
623
		AND (@P_UNUSED_ASSET IS NULL OR @P_UNUSED_ASSET = ''
624
      OR (@P_UNUSED_ASSET = 'TK' AND (((A.EMP_ID IS NULL OR A.EMP_ID = '') AND (A.BRANCH_ID IS NULL OR A.BRANCH_ID = ''))
625
                                  OR (A.BRANCH_ID IS NOT NULL AND (A.EMP_ID IS NULL OR A.EMP_ID = ''))))
626
        OR (@P_UNUSED_ASSET = 'TH' AND A.IS_COLLECT = '1')
627
        OR (@P_UNUSED_ASSET = 'DSD' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '' AND a.EMP_ID IS NOT NULL AND A.EMP_ID <> ''))
628
    --PHUCVH 05/11/22 TÌM KIẾM THEO HDH VÀ BẢN QUYỀN MICROSOFT
629
    AND (A.OS = @P_OS OR @P_OS IS NULL OR @P_OS = '')
630
    AND (A.MO_LICENSE = @P_MO_LICENSE OR @P_MO_LICENSE IS NULL OR @P_MO_LICENSE = '')
631
    AND ((A.REQ_ID = @P_REQ_ID AND @p_IS_FIND_REQ_ID = '1') OR @p_IS_FIND_REQ_ID = '0' OR @p_IS_FIND_REQ_ID IS NULL OR @p_IS_FIND_REQ_ID = '' OR @P_REQ_ID IS NULL OR @P_REQ_ID = '')	
632
    AND (CONVERT(DATETIME,A.BUY_DATE,103) >= CONVERT(DATETIME,@p_FROM_BUY_DATE,103) OR @p_FROM_BUY_DATE IS NULL OR @p_FROM_BUY_DATE = '')	
633
    AND (CONVERT(DATETIME,A.BUY_DATE,103) <= CONVERT(DATETIME,@p_TO_BUY_DATE,103) OR @p_TO_BUY_DATE IS NULL OR @p_TO_BUY_DATE = '')
634
    AND (CONVERT(DATETIME,A.USE_DATE_KT,103) >= CONVERT(DATETIME,@p_FROM_USE_DATE_KT,103) OR @p_FROM_USE_DATE_KT IS NULL OR @p_FROM_USE_DATE_KT = '')	
635
    AND (CONVERT(DATETIME,A.USE_DATE_KT,103) <= CONVERT(DATETIME,@p_TO_USE_DATE_KT,103) OR @p_TO_USE_DATE_KT IS NULL OR @p_TO_USE_DATE_KT = '')
636
		AND (AN.PR_CODE like N'%' + @p_PR_CODE + '%' OR @p_PR_CODE IS NULL OR @p_PR_CODE = '')
637
		AND (AN.PL_CODE like N'%' + @p_PL_CODE + '%' OR @p_PL_CODE IS NULL OR @p_PL_CODE = '')
638
		AND (AN.CONTRACT_ID like N'%' + @p_ASS_CONTRACT_CODE + '%' OR @p_ASS_CONTRACT_CODE IS NULL OR @p_ASS_CONTRACT_CODE = '')
639
		AND (AP.INVOICE_NO like N'%' + @p_INVOICE_NO + '%' OR @p_INVOICE_NO IS NULL OR @p_INVOICE_NO = '')
640
		AND (AP.INVOICE_SYMPOL like N'%' + @p_INVOICE_SYMPOL + '%' OR @p_INVOICE_SYMPOL IS NULL OR @p_INVOICE_SYMPOL = '')
641
    AND(A.REQ_CODE like N'%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
642
    ORDER BY A.CREATE_DT DESC
643
	-- PAGING END
644
	END
645
	ELSE
646
	BEGIN	
647
	-- PAGING BEGIN
648
		SELECT TOP (@p_TOP)
649
		MK.TLSUBBRID,A.MONTHLY_AMORT_AMT,
650
				A.ASSET_ID, A.[TYPE_ID],C.[TYPE_CODE],  C.[TYPE_NAME], A.GROUP_ID,B.GROUP_CODE, B.GROUP_NAME, B.ASS_CAT, 
651
        CASE 
652
        	WHEN A.ASSET_CODE IS NULL OR A.ASSET_CODE  = '' THEN A.ASS_CODE_TMP
653
        	ELSE A.ASSET_CODE
654
        END AS ASSET_CODE,  
655
        A.ASSET_NAME, A.ASSET_SERIAL_NO, A.ASSET_DESC,
656
				A.SUP_ID, A.BUY_PRICE, A.AMORT_AMT, A.ASS_TYPE, A.BRANCH_ID,BR.BRANCH_CODE,BR.BRANCH_NAME,A.DEPT_ID,DP.DEP_CODE,DP.DEP_NAME, A.EMP_ID,EM.EMP_CODE AS EMP_CODE,EM.EMP_NAME AS EMP_NAME, A.DIVISION_ID,
657
				A.BUY_DATE, A.USE_DATE, A.SPECIAL_ASS, A.AMORT_MONTH, A.AMORT_RATE, A.AMORT_START_DATE, A.AMORT_END_DATE,
658
				A.FIRST_AMORT_AMT, 
659
				A.AMORTIZED_MONTH, 
660
				(A.AMORT_MONTH - A.AMORTIZED_MONTH) AS REMAIN_MONTH,
661
				A.AMORTIZED_AMT, 
662
				ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), ISNULL(A.AMORT_AMT,0)) AS REMAIN_AMORTIZED_AMT,  --So tien khau hao con lai
663
				A.PO_ID,A.PD_ID, A.WAREHOUSE_ID, A.LOCATION, A.REF_ASSET_ID,
664
				A.REF_AMORTIZED_AMT,
665
				A.WARRANTY_MONTHS, 
666
				A.NOTES, 
667
				A.AMORT_STATUS, 
668
				D.STATUS_NAME AMORT_STATUS_NAME, 
669
				A.ASS_STATUS, 
670
				CASE
671
                	WHEN A.LIQ_W_STATUS = '1' AND A.AMORT_STATUS = 'DTL' THEN N'Đã thanh lý'
672
                	ELSE E.STATUS_NAME
673
                END AS ASS_STATUS_NAME,  --Tinh trang tai san
674
				A.ASS_STATUS_DESC,
675
				A.RECORD_STATUS, 
676
				A.AUTH_STATUS, 
677
				ZZ.AUTH_STATUS_NAME,
678
				A.MAKER_ID, 
679
				A.CREATE_DT, 
680
				A.CHECKER_ID, 
681
				A.USE_STATUS,--THIEUVQ 23062015
682
				A.APPROVE_DT,
683
				A.ACCOUNT_GL,
684
				A.VAT,
685
				A.PRICE_VAT,
686
				--dbo.FN_GET_CHINHANH(A.BRANCH_ID,'KV') KHU_VUC,
687
        NULL AS KHU_VUC,
688
						 --dbo.FN_GET_CHINHANH(A.BRANCH_ID,'CN') CHI_NHANH, 
689
						 BRCR.BRANCH_NAME CHI_NHANH, 
690
						 BBB.BRANCH_NAME PGD				,
691
						 B.AMORT_MONTH AS GROUP_AMORT_MONTH,
692
						 BRCR.BRANCH_NAME AS BRANCH_RECIVE,
693
						 BRCR.BRANCH_NAME AS BRANCH_CREATE_NAME,
694
						 BRCR.BRANCH_ID AS BRANCH_CREATE_ID,
695
						 BRCR.BRANCH_CODE AS BRANCH_CREATE_CODE,
696
						 --LUCTV : 26-12-2018 BO SUNG AMORT MIN - MAX CUA TAI SAN THEO NHOM DE HIEN THI BEN MAN HINH CHINH SUA THONG TIN TAI SAN
697
						 B.AMORT_MONTH_MAX,
698
						 B.AMORT_MONTH_MIN,
699
						--LUCTV : 22 -03 -19 BO SUNG LEFT JOIN ASS_TRANSACTIONS
700
						AN.ADDNEW_ID, AN.NOTES AS ADDNEW_NOTES,AUMD.USER_MASTER_ID AS USE_MASTER_ID,
701
						DPT.DEP_ID as DVCM_ID, DPT.DEP_NAME AS DVCM_NAME,
702
            AN.WAR_EXPIRE_DT,--Ngày hết hạn bảo hành
703
            AN.PR_CODE, --SỐ PR
704
            AN.CONTRACT_ID AS ASS_CONTRACT_CODE, -- SỐ HỢP ĐỒNG
705
            AN.PL_CODE, --SỐ TỜ TRÌNH
706
            AP.INVOICE_NO, --SỐ HOÁ ĐƠN
707
            AP.INVOICE_SYMPOL, --SỐ HOÁ ĐƠN
708
            ----Start Phucvh 13/10/22 Get khối/Trung tâm/Phòng ban          
709
            CASE WHEN DP.TYPE = 'K' THEN DP.DEP_ID ELSE K.DEP_ID END AS BLOCK_ID,
710
            CASE WHEN DP.TYPE = 'K' THEN DP.DEP_NAME ELSE K.DEP_NAME END AS BLOCK_NAME,
711
            CASE WHEN DP.TYPE = 'TT' THEN DP.DEP_ID ELSE TT.DEP_ID END AS CENTER_ID,
712
            CASE WHEN DP.TYPE = 'TT' THEN DP.DEP_NAME ELSE TT.DEP_NAME END AS CENTER_NAME,
713
            CASE WHEN DP.TYPE = 'PB' THEN DP.DEP_ID ELSE NULL END AS DEPT_ID_1,
714
            CASE WHEN DP.TYPE = 'PB' THEN DP.DEP_NAME ELSE NULL END AS DEP_NAME_1,
715
            ----End Phucvh 13/10/22 Get khối/Trung tâm/Phòng ban
716
            CA.CONTENT AS IS_OS, --Hệ điều hành
717
            CA1.CONTENT AS IS_MO_LICENSE, --Bản quyền Microsoft Office
718
            A.REQ_ID,
719
            A.REQ_CODE,
720
            AN.WAR_EXPIRE_DT AS WAR_END_DT, --ngày hết hạn bảo hành
721
            (CASE  WHEN A.IS_COLLECT <> '1' THEN N'Đang sử dụng'  ELSE N'Đã thu hồi' END) AS IS_COLLECT_NAME --Trạng thái tài sản (đang sử dụng || đang thu hồi)
722
            ,
723
            --A.ASS_CONTRACT_CODE,
724
            CASE 
725
            	WHEN DEP_CRE.DEP_ID IS NULL AND A.BRANCH_CREATE = 'DV0001' THEN N'PHÒNG QUẢN LÝ TÀI SẢN'
726
            	ELSE DEP_CRE.DEP_NAME
727
            END AS DEP_CREATE_NAME,
728
            CU.UNIT_NAME AS UNIT_NAME,
729
            CR.REGION_NAME AS REGION_NAME,
730
            '1' AS QTY,
731
            B1.GROUP_NAME AS GROUP_NAME_1,
732
            B2.GROUP_NAME AS GROUP_NAME_2
733
            
734
--KHIEMCHG: LẤY THÔNG TIN TÀI SẢN CHO KẾ TOÁN
735
            ,A.AMORT_START_DATE NGAY_BD_KH,
736
            ISNULL(A.FIRST_AMORT_AMT,0) SO_TIEN_KH_THANG_DAU_TIEN,
737
            ISNULL(A.MONTHLY_AMORT_AMT,0) SO_TIEN_KH_HANG_THANG,
738
            A.AMORT_MONTH SO_THANG_KH,
739
            ISNULL(A.AMORTIZED_AMT,0) KHAU_HAO_LK,
740
            CASE
741
            	WHEN A.TYPE_ID = 'TSCD' THEN (CASE WHEN A.AMORT_STATUS ='VNM' THEN epa.ACC_NO
742
                                                ELSE ISNULL(agkt3.ASSET_ACCTNO,agkt.ASSET_ACCTNO) END)
743
            	WHEN A.TYPE_ID = 'CCLD' THEN (CASE 
744
                                                WHEN A.AMORT_STATUS ='VNM' THEN agkt.ASSET_ACCTNO
745
                                                WHEN A.AMORT_STATUS ='NKH' OR A.IS_COLLECT = 1 THEN epa2.ACC_NO
746
                                                ELSE agkt.AMORT_ACCTNO END)
747
            END AS TK
748
  	-- SELECT END
749
		FROM ASS_MASTER A
750
		LEFT JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
751
		LEFT JOIN ASS_TYPE C ON A.[TYPE_ID] = C.[TYPE_ID]
752
		LEFT JOIN ASS_AMORT_STATUS D ON A.AMORT_STATUS = D.STATUS_CODE
753
		LEFT JOIN ASS_STATUS E ON A.ASS_STATUS = E.STATUS_ID
754
		LEFT JOIN CM_AUTH_STATUS ZZ ON ZZ.AUTH_STATUS = A.AUTH_STATUS
755
		LEFT JOIN CM_BRANCH BR ON BR.BRANCH_ID=A.BRANCH_ID
756
		LEFT JOIN CM_EMPLOYEE EM ON EM.EMP_ID=A.EMP_ID
757
		LEFT JOIN TL_USER MK ON MK.TLNANME = A.MAKER_ID
758
		LEFT JOIN CM_BRANCH BBB ON BBB.BRANCH_ID = A.BRANCH_ID
759
		LEFT JOIN CM_DEPARTMENT DP ON DP.DEP_ID = A.DEPT_ID
760
		LEFT JOIN CM_DEPARTMENT DPT ON DPT.DEP_ID = B.DVCM_ID
761
		LEFT JOIN CM_BRANCH BRCR ON BRCR.BRANCH_ID = A.BRANCH_CREATE
762
		--LUCTV : 22 -03 -19 BO SUNG LEFT JOIN ASS_TRANSACTIONS
763
		LEFT JOIN ASS_TRANSACTIONS AT ON AT.ASSET_ID = A.ASSET_ID AND AT.TRN_TYPE = 'ADD_NEW'
764
		LEFT JOIN ASS_ADDNEW AN ON AT.TRN_ID = AN.ADDNEW_ID AND AT.TRN_TYPE = 'ADD_NEW'
765
    LEFT JOIN CM_DEPARTMENT DEP_CRE ON AN.DEPT_CREATE = DEP_CRE.DEP_ID
766
    LEFT JOIN ASS_PO AP ON AN.ADDNEW_ID = AP.ADDNEW_ID
767
		--LUCTV: 26-08-2019 BO SUNG THEM DIEU KIEN KHI NAO NHAP MA PHIEU XUAT THI MOI LEFT JOIN
768
		LEFT JOIN ASS_TRANSACTIONS AU ON AU.ASSET_ID = A.ASSET_ID AND AU.TRN_TYPE ='ADD_USE'
769
    LEFT JOIN ASS_USE_MULTI_DT AUMD ON AU.TRN_ID = AUMD.USE_MULTI_ID AND AU.TRN_TYPE ='ADD_USE'
770
    LEFT JOIN CM_ALLCODE CA ON A.OS = CA.CDVAL AND CA.CDNAME = 'OS_LICENSE' AND CA.CDTYPE = 'STATUS' --HỆ ĐIỀU HÀNH
771
    LEFT JOIN CM_ALLCODE CA1 ON A.MO_LICENSE = CA1.CDVAL AND CA1.CDNAME = 'OS_LICENSE' AND CA1.CDTYPE = 'STATUS' --BẢN QUYỀN MICROSOFT OFFICE
772
    LEFT JOIN CM_UNIT CU ON B.UNIT = CU.UNIT_ID
773
    LEFT JOIN CM_REGIONS CR ON BR.REGION_ID = CR.REGION_ID
774
    LEFT JOIN ASS_GROUP B1 ON B1.GROUP_ID = B.PARENT_ID
775
    LEFT JOIN ASS_GROUP B2 ON B2.GROUP_ID = B1.PARENT_ID
776
    --PHUCVH: GET KHOI/TRUNG TAM/ PHONG BAN CUA TAI SAN
777
    LEFT JOIN CM_DEPARTMENT TT ON TT.DEP_ID = DP.FATHER_ID
778
    LEFT JOIN CM_DEPARTMENT K ON K.DEP_ID = DP.KHOI_ID
779
    LEFT JOIN TR_REQUEST_SHOP_DOC REQ ON A.REQ_ID = REQ.REQ_ID
780
    --KHIEMCHG: LẤY THÔNG TIN TÀI SẢN CHO KẾ TOÁN
781
    LEFT JOIN ASS_GROUP agkt3 ON A.REF_GROUP_ID = agkt3.GROUP_ID
782
    LEFT JOIN ASS_GROUP agkt ON A.GROUP_ID = agkt.GROUP_ID
783
    LEFT JOIN ASS_GROUP agkt1 ON agkt1.GROUP_ID=agkt.PARENT_ID
784
    LEFT JOIN ASS_GROUP agkt2 ON agkt2.GROUP_ID=agkt1.PARENT_ID
785
    LEFT JOIN ENTRIES_POST_ACCNO epa ON ISNULL(A.REF_GROUP_ID,agkt2.GROUP_ID)=epa.GROUP_ID AND epa.ACC_TYPE='BUY_TSCD'
786
    LEFT JOIN ENTRIES_POST_ACCNO epa2 ON epa2.ACC_TYPE='BW_AMORT_CCLD'
787
		WHERE 1 = 1
788
		AND (A.ASSET_ID = @p_ASSET_ID OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
789
		AND (A.[TYPE_ID] = @p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID = '')
790
		AND (B.[ASS_CAT] = @p_ASS_CAT OR @p_ASS_CAT IS NULL OR @p_ASS_CAT = '')
791
		AND (A.GROUP_ID = @p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID = '')
792
		AND ((A.ASSET_CODE like '%' + @p_ASSET_CODE + '%' OR @p_ASSET_CODE IS NULL OR @p_ASSET_CODE = '')
793
          OR (A.ASS_CODE_TMP like '%' + @p_ASSET_CODE + '%' OR @p_ASSET_CODE IS NULL OR @p_ASSET_CODE = ''))
794
		AND (A.ASSET_NAME like N'%' + @p_ASSET_NAME + '%' OR @p_ASSET_NAME IS NULL OR @p_ASSET_NAME = '')
795
		AND (A.ASSET_SERIAL_NO like N'%' + @p_ASSET_SERIAL_NO + '%' OR @p_ASSET_SERIAL_NO IS NULL OR @p_ASSET_SERIAL_NO = '')
796
		AND (A.ASSET_DESC like N'%' + @p_ASSET_DESC + '%' OR @p_ASSET_DESC IS NULL OR @p_ASSET_DESC = '')
797
		AND (A.SUP_ID = @p_SUP_ID OR @p_SUP_ID IS NULL OR @p_SUP_ID = '')
798
		AND (A.BUY_PRICE = @p_BUY_PRICE OR @p_BUY_PRICE IS NULL)
799
		AND (A.AMORT_AMT = @p_AMORT_AMT OR @p_AMORT_AMT IS NULL)
800
		AND (A.ASS_TYPE = @p_ASS_TYPE OR @p_ASS_TYPE IS NULL OR @p_ASS_TYPE = '')
801
		AND (((A.AMORT_STATUS <> 'VNM' AND A.AMORT_STATUS IS NOT NULL
802
					AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp1 WHERE BRANCH_ID = A.BRANCH_ID))
803
					OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID)))
804
				OR ((A.AMORT_STATUS = 'VNM' OR ((A.AMORT_STATUS = 'DTL' OR A.AMORT_STATUS IS NULL OR A.AMORT_STATUS = '')))
805
				AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp1 WHERE BRANCH_ID = A.BRANCH_CREATE))
806
					OR (@p_LEVEL = 'UNIT' AND ((A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <>'' AND A.BRANCH_ID =@p_BRANCH_ID) OR A.BRANCH_CREATE = @p_BRANCH_ID)))))
807
			OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR (@p_LOCATION = 'ASS_PRIVATE_TF' AND A.AMORT_STATUS <> 'DTL' AND A.BRANCH_ID = @p_BRANCH_ID AND(A.DEPT_ID = @DEP_LOGIN OR @DEP_LOGIN IS NULL OR @DEP_LOGIN = ''))
808
			)			
809
			AND (((A.AMORT_STATUS <> 'VNM' AND A.AMORT_STATUS IS NOT NULL
810
					AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp2 WHERE BRANCH_ID = A.BRANCH_ID))
811
					OR (@p_LEVEL = 'UNIT' AND ((A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <>'' AND A.BRANCH_ID =@p_BRANCH_ID) OR A.BRANCH_CREATE = @p_BRANCH_LOGIN)))) 
812
				OR ((A.AMORT_STATUS = 'VNM' OR ((A.AMORT_STATUS = 'DTL' OR A.AMORT_STATUS IS NULL OR A.AMORT_STATUS = '')))
813
					AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp2 WHERE BRANCH_ID = A.BRANCH_CREATE))
814
					OR (@p_LEVEL = 'UNIT' AND ((A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <>'' AND A.BRANCH_ID =@p_BRANCH_LOGIN) OR A.BRANCH_CREATE = @p_BRANCH_LOGIN))))) 
815
			OR @p_BRANCH_LOGIN IS NULL OR @p_BRANCH_LOGIN = '' OR (@p_LOCATION = 'ASS_PRIVATE_TF' AND A.AMORT_STATUS <> 'DTL' AND A.BRANCH_ID = @p_BRANCH_ID AND(A.DEPT_ID = @DEP_LOGIN OR @DEP_LOGIN IS NULL OR @DEP_LOGIN = ''))
816
			)
817
			AND (A.DEPT_ID = @p_DEPT_ID OR @p_DEPT_ID IS NULL OR @p_DEPT_ID = '')
818
			AND (A.EMP_ID = @p_EMP_ID OR @p_EMP_ID IS NULL OR @p_EMP_ID = '')
819
			AND (A.DIVISION_ID = @p_DIVISION_ID OR @p_DIVISION_ID IS NULL OR @p_DIVISION_ID = '')
820
			AND (DATEDIFF(DAYOFYEAR,A.BUY_DATE,CONVERT(datetime, @p_BUY_DATE,103)) = 0 OR @p_BUY_DATE IS NULL OR  @p_BUY_DATE = '')
821
			-- DuyTN bổ sung điều kiện search theo năm
822
			AND (YEAR(A.BUY_DATE) = @P_YEAR OR @P_YEAR = '' OR @P_YEAR IS NULL)
823
			--AND (DATEDIFF(DAYOFYEAR,A.USE_DATE,CONVERT(datetime, @p_USE_DATE,103)) = 0 OR @p_USE_DATE IS NULL OR  @p_USE_DATE = '')
824
			AND (A.SPECIAL_ASS = @p_SPECIAL_ASS OR @p_SPECIAL_ASS IS NULL OR @p_SPECIAL_ASS = '')
825
			AND (A.AMORT_MONTH = @p_AMORT_MONTH OR @p_AMORT_MONTH IS NULL)
826
			AND (A.AMORT_RATE = @p_AMORT_RATE OR @p_AMORT_RATE IS NULL)
827
			AND (DATEDIFF(DAYOFYEAR,A.AMORT_START_DATE,CONVERT(datetime, @p_AMORT_START_DATE,103)) = 0 OR @p_AMORT_START_DATE IS NULL OR  @p_AMORT_START_DATE = '')
828
			AND (DATEDIFF(DAYOFYEAR,A.AMORT_END_DATE,CONVERT(datetime, @p_AMORT_END_DATE,103)) = 0 OR @p_AMORT_END_DATE IS NULL OR  @p_AMORT_END_DATE = '')
829
			AND (A.AMORTIZED_MONTH = @p_AMORTIZED_MONTH OR @p_AMORTIZED_MONTH IS NULL)
830
			AND ((A.AMORT_MONTH - A.AMORTIZED_MONTH) = @p_REMAIN_MONTH OR @p_REMAIN_MONTH IS NULL)
831
			AND (A.PO_ID = @p_PO_ID OR @p_PO_ID IS NULL OR @p_PO_ID = '')
832
			AND (A.WAREHOUSE_ID = @p_WAREHOUSE_ID OR @p_WAREHOUSE_ID IS NULL OR @p_WAREHOUSE_ID = '')
833
			--AND (A.LOCATION like N'%' + @p_LOCATION + '' OR @p_LOCATION IS NULL OR @p_LOCATION = '')
834
			AND (A.REF_ASSET_ID = @p_REF_ASSET_ID OR @p_REF_ASSET_ID IS NULL OR @p_REF_ASSET_ID = '')
835
			AND (A.REF_AMORTIZED_AMT = @p_REF_AMORTIZED_AMT OR @p_REF_AMORTIZED_AMT IS NULL)
836
			--AND (A.AMORT_STATUS = @p_AMORT_STATUS OR @p_AMORT_STATUS IS NULL OR @p_AMORT_STATUS = '')
837
			AND (A.ASS_STATUS = @p_ASS_STATUS OR @p_ASS_STATUS IS NULL OR @p_ASS_STATUS = '')
838
  		AND  (CHARINDEX(ISNULL(A.AMORT_STATUS,''), @p_AMORT_STATUS) <> 0 OR @p_AMORT_STATUS = '' OR @p_AMORT_STATUS IS NULL 
839
            OR(A.AMORT_STATUS IS NULL AND @p_LOCATION = 'ADD_USE'))
840
			AND (A.ASS_STATUS_DESC like N'%' + @p_ASS_STATUS_DESC + '' OR @p_ASS_STATUS_DESC IS NULL OR @p_ASS_STATUS_DESC = '')
841
			AND (A.WARRANTY_MONTHS = @p_WARRANTY_MONTHS OR @p_WARRANTY_MONTHS IS NULL)
842
			AND (A.NOTES like N'%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
843
			AND A.RECORD_STATUS = '1'
844
			AND (A.USE_STATUS = @p_USE_STATUS OR @p_USE_STATUS IS NULL OR @p_USE_STATUS = '')
845
		  AND ((@p_LOCATION =N'IS_LIQUID' AND NOT EXISTS(SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE AUTH_STATUS='A' AND IS_LIQ ='1' AND A.ASSET_ID = A.ASSET_ID)) 
846
				OR (@p_LOCATION =N'IS_COL' AND NOT EXISTS(SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE AUTH_STATUS='A' AND A.ASSET_ID = A.ASSET_ID)) 
847
				OR (@p_LOCATION =N'LIQ' AND EXISTS(SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE AUTH_STATUS='A' AND IS_LIQ ='1' AND ASSET_ID = A.ASSET_ID))
848
		-- ----26-02-2020 BO SUNG THEM NEU LOCATION TRUYEN XUONG LA PRINT TEMP THI LUC NAY CHI LAY NHUNG TAI SAN <> 'VNM' VA CHI LAY DON VI DOC LAP, KHONG LAY TOAN HANG
849
		--		 ----VI HIEN TAI DANG MAC DINH LAY TOAN HANG, TRONG KHI IN NHAN DANG MAC DINH IN THEO DON VI DOC LAP
850
			  OR (@p_LOCATION =N'PRINT_TEMP' AND A.AMORT_STATUS  <>'VNM' AND A.BRANCH_ID =@p_BRANCH_ID)
851
        --START Phucvh 06/10/22 Tài sản được nhập thông qua PYC thuộc ĐV Xuất có loại tài sản chưa hoàn thành và TYPE_XL: Mua mới - Tài sản không nhập từ PYC
852
        OR (@p_LOCATION = N'ADD_USE' AND (A.CURRENT_TRANS IS NULL OR A.CURRENT_TRANS = '') AND (A.BRANCH_ID IS NULL OR A.BRANCH_ID = '')
853
            AND ((REQ.BRANCH_ID = @P_BRANCH_PYC AND A.REQ_ID IS NOT NULL AND A.REQ_ID <> '')
854
                  OR (REQ.REQ_ID IS NULL OR REQ.REQ_ID = '')))
855
        --END Phucvh 06/10/22 Tài sản được nhập thông qua PYC thuộc ĐV Xuất có loại tài sản chưa hoàn thành và TYPE_XL: Mua mới - Tài sản không nhập từ PYC
856
				OR (@p_LOCATION = N'TRANSFER' AND A.AMORT_STATUS <> 'DTL')
857
        --Start Phucvh 25/10/22
858
        OR (@p_LOCATION = N'ASS_COLLECT'  AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')--PYC THU HỒI TÀI SẢN
859
        OR (@p_LOCATION = N'ASS_TRANSFER' AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')--PYC ĐIỀU CHUYỂN
860
        OR (@p_LOCATION = N'ASS_REPAIR'   AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')--PYC SỬA CHỮA
861
        --End Phucvh 25/10/22
862
        --Sửa chữa nhiều TS
863
        OR (@p_LOCATION = N'ASS_REPAIR_MUL' AND (
864
             (@P_REQ_ID IS NOT NULL AND @P_REQ_ID <> '' AND EXISTS(SELECT DT.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT DT WHERE DT.REQ_DOC_ID = @P_REQ_ID AND DT.IS_DVCM = '0' AND DT.ASS_ID = A.ASSET_ID))
865
             OR((@P_REQ_ID IS NULL OR @P_REQ_ID = '') AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')))
866
        --Điều chuyển tài sản nội bộ
867
        OR (@p_LOCATION = N'ASS_PRIVATE_TF' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '' AND A.AUTH_STATUS = 'A')
868
        OR (@p_LOCATION = N'ASS_COLLECT_MUL' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '' AND A.AUTH_STATUS = 'A')
869
        --KHANHNHD 1/11/2 Tài sản đã thêm vào phiếu đề xuất thì không được tìm thấy 
870
--				OR (@p_LOCATION = N'ASS_LIQ' AND( @P_REQ_ID iS NULL OR @P_REQ_ID='') AND A.CURRENT_TRANS IS NULL  AND A.ASSET_ID  NOT IN (SELECT ASSET_ID 
871
--        FROM  ASS_LIQ_REQUEST_DT DT
872
--				WHERE (ASSET_ID = @p_ASSET_ID OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
873
--			))
874
        OR (@p_LOCATION = N'ASS_LIQ' AND( @P_REQ_ID iS NULL OR @P_REQ_ID='') AND A.CURRENT_TRANS IS NULL  AND NOT EXISTS(SELECT ASSET_ID 
875
          FROM  ASS_LIQ_REQUEST_DT DT
876
  				WHERE DT.ASSET_ID = A.ASSET_ID))
877
      	OR (@p_LOCATION = N'ASS_LIQDATION' AND NOT EXISTS (SELECT ASSET_ID 
878
        FROM  ASS_LIQUIDATION_DT ald WHERE ald.ASSET_ID=A.ASSET_ID))
879
				--KHANHNHD 1/11/2 Tài sản đã thêm vào phiếu đề xuất thì không được tìm thấy  
880
        --khiemchg TÌM KIẾM THEO LOẠI TS TRONG PYC -- ĐIỀU CHUYỂN TÀI SẢN
881
--        OR (@p_LOCATION = N'ASS_TRANSFER_MULTI' AND CHARINDEX(ISNULL(A.AMORT_STATUS,''), 'CKH,DKH,DPB,KHX,KKH,NKH') <> 0
882
--            AND A.AUTH_STATUS = 'A'
883
--            AND (@P_REQ_DT_TYPE = 'CPDC' 
884
--                    AND (A.GROUP_ID IN (SELECT IG.GROUP_ID FROM ASS_GROUP IG WHERE IG.GROUP_CODE IN (SELECT AG.GROUP_CODE FROM ASS_GROUP AG WHERE AG.GROUP_ID IN (SELECT ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT A 
885
--                                                                                                        WHERE REQ_DOC_ID = @P_REQ_ID AND TYPE_XL =  @P_REQ_DT_TYPE)))
886
--                    AND (A.BRANCH_ID <> (SELECT BRANCH_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID)
887
--                    OR (A.DEPT_ID <> (SELECT A.DEP_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID) AND A.BRANCH_ID = 'DV0001')))
888
--                  OR (@P_REQ_DT_TYPE = 'DCTS' AND A.ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @P_REQ_ID))
889
--                OR @P_REQ_DT_TYPE = '' OR @P_REQ_DT_TYPE IS NULL)
890
--            )
891
          OR (@p_LOCATION = N'ASS_TRANSFER_MULTI' AND CHARINDEX(ISNULL(A.AMORT_STATUS,''), 'CKH,DKH,DPB,KHX,KKH,NKH') <> 0
892
            AND A.AUTH_STATUS = 'A'
893
            AND (@P_REQ_DT_TYPE = 'CPDC' 
894
                    AND (EXISTS(SELECT IG.GROUP_ID FROM ASS_GROUP IG WHERE IG.GROUP_ID = A.GROUP_ID AND EXISTS(SELECT AG.GROUP_CODE FROM ASS_GROUP AG WHERE AG.GROUP_CODE = IG.GROUP_CODE AND EXISTS(SELECT ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT A 
895
                                                                                                        WHERE REQ_DOC_ID = @P_REQ_ID AND TYPE_XL =  @P_REQ_DT_TYPE AND A.ASS_GROUP_ID = AG.GROUP_ID)))
896
                    AND (A.BRANCH_ID <> (SELECT BRANCH_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID)
897
                    OR (A.DEPT_ID <> (SELECT A.DEP_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID) AND A.BRANCH_ID = 'DV0001')))
898
                  OR (@P_REQ_DT_TYPE = 'DCTS' AND EXISTS(SELECT DT.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT DT WHERE DT.REQ_DOC_ID = @P_REQ_ID AND DT.ASS_ID = A.ASSET_ID))
899
                OR @P_REQ_DT_TYPE = '' OR @P_REQ_DT_TYPE IS NULL)
900
            )
901
        --khiemchg enD
902
        OR @p_LOCATION = 'ASS_INFO'
903
        --Tìm tài sản phiếu đề xuất thì range lại trong phạm vi của phiếu //khiemchg
904
          --		OR (@p_LOCATION = N'ASS_LIQ' AND @P_REQ_ID IS NOT NULL AND @P_REQ_ID <> ''  AND A.ASSET_ID IN (SELECT ASSET_ID 
905
          --                                                         FROM  ASS_LIQ_REQUEST_DT DT
906
          --                                                         WHERE DT.LIQ_REQ_ID IN (SELECT  value FROM dbo.wsiSplit (@P_REQ_ID, ','))))
907
          OR (@p_LOCATION = N'ASS_LIQ' AND @P_REQ_ID IS NOT NULL AND @P_REQ_ID <> ''  AND EXISTS(SELECT ASSET_ID 
908
                                                         FROM  ASS_LIQ_REQUEST_DT DT
909
                                                         WHERE DT.ASSET_ID = A.ASSET_ID AND EXISTS(SELECT  value FROM dbo.wsiSplit (@P_REQ_ID, ',') WHERE value = DT.LIQ_REQ_ID)))
910
		--Tìm tài sản phiếu đề xuất thì range lại trong phạm vi của phiếu //khiemchg  
911
        OR ((@p_LOCATION IS NULL OR @p_LOCATION='') AND A.AUTH_STATUS = 'A'))
912
			----LUCTV : 22 -03 -19 BO SUNG LEFT JOIN ASS_TRANSACTIONS
913
		AND (AN.ADDNEW_ID  LIKE N'%'+ @p_ADDNEWID +'%' OR @p_ADDNEWID ='' OR @p_ADDNEWID IS NULL) 
914
		AND (AN.NOTES LIKE N'%' + @p_ADDNEW_NOTES + '%' OR @p_ADDNEW_NOTES ='' OR @p_ADDNEW_NOTES IS NULL) 
915
		AND (EM.EMP_NAME LIKE N'%'+ @p_EMP_NAME +'%' OR @p_EMP_NAME ='' OR @p_EMP_NAME IS NULL)
916
		AND (EM.EMP_CODE LIKE N'%'+ @p_EMP_CODE +'%' OR @p_EMP_CODE ='' OR @p_EMP_CODE IS NULL)
917
		AND (AU.TRN_ID LIKE N'%'+ @p_USE_MASTER_ID +'%' OR @p_USE_MASTER_ID IS NULL OR @p_USE_MASTER_ID ='')
918
		AND (@P_UNUSED_ASSET IS NULL OR @P_UNUSED_ASSET = ''
919
      OR (@P_UNUSED_ASSET = 'TK' AND (((A.EMP_ID IS NULL OR A.EMP_ID = '') AND (A.BRANCH_ID IS NULL OR A.BRANCH_ID = ''))
920
                                  OR (A.BRANCH_ID IS NOT NULL AND (A.EMP_ID IS NULL OR A.EMP_ID = ''))))
921
        OR (@P_UNUSED_ASSET = 'TH' AND A.IS_COLLECT = '1')
922
        OR (@P_UNUSED_ASSET = 'DSD' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '' AND a.EMP_ID IS NOT NULL AND A.EMP_ID <> ''))
923
    --PHUCVH 05/11/22 TÌM KIẾM THEO HDH VÀ BẢN QUYỀN MICROSOFT
924
    AND (A.OS = @P_OS OR @P_OS IS NULL OR @P_OS = '')
925
    AND (A.MO_LICENSE = @P_MO_LICENSE OR @P_MO_LICENSE IS NULL OR @P_MO_LICENSE = '')
926
    AND ((A.REQ_ID = @P_REQ_ID AND @p_IS_FIND_REQ_ID = '1') OR @p_IS_FIND_REQ_ID = '0' OR @p_IS_FIND_REQ_ID IS NULL OR @p_IS_FIND_REQ_ID = '' OR @P_REQ_ID IS NULL OR @P_REQ_ID = '')	
927
    AND (CONVERT(DATETIME,A.BUY_DATE,103) >= CONVERT(DATETIME,@p_FROM_BUY_DATE,103) OR @p_FROM_BUY_DATE IS NULL OR @p_FROM_BUY_DATE = '')	
928
    AND (CONVERT(DATETIME,A.BUY_DATE,103) <= CONVERT(DATETIME,@p_TO_BUY_DATE,103) OR @p_TO_BUY_DATE IS NULL OR @p_TO_BUY_DATE = '')
929
    AND (CONVERT(DATETIME,A.USE_DATE_KT,103) >= CONVERT(DATETIME,@p_FROM_USE_DATE_KT,103) OR @p_FROM_USE_DATE_KT IS NULL OR @p_FROM_USE_DATE_KT = '')	
930
    AND (CONVERT(DATETIME,A.USE_DATE_KT,103) <= CONVERT(DATETIME,@p_TO_USE_DATE_KT,103) OR @p_TO_USE_DATE_KT IS NULL OR @p_TO_USE_DATE_KT = '')
931
		AND (AN.PR_CODE like N'%' + @p_PR_CODE + '%' OR @p_PR_CODE IS NULL OR @p_PR_CODE = '')
932
		AND (AN.PL_CODE like N'%' + @p_PL_CODE + '%' OR @p_PL_CODE IS NULL OR @p_PL_CODE = '')
933
		AND (AN.CONTRACT_ID like N'%' + @p_ASS_CONTRACT_CODE + '%' OR @p_ASS_CONTRACT_CODE IS NULL OR @p_ASS_CONTRACT_CODE = '')
934
		AND (AP.INVOICE_NO like N'%' + @p_INVOICE_NO + '%' OR @p_INVOICE_NO IS NULL OR @p_INVOICE_NO = '')
935
		AND (AP.INVOICE_SYMPOL like N'%' + @p_INVOICE_SYMPOL + '%' OR @p_INVOICE_SYMPOL IS NULL OR @p_INVOICE_SYMPOL = '')
936
    AND(A.REQ_CODE like N'%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
937
    ORDER BY A.CREATE_DT DESC
938
		-- --PAGING END
939
	END
940
END -- PAGING
941
GO
942
IF @@ERROR <> 0 SET NOEXEC ON
943
GO
944
PRINT N'Altering [dbo].[rpt_TSCD_BC017_Excel_BanViet]'
945
GO
946
ALTER PROCEDURE [dbo].[rpt_TSCD_BC017_Excel_BanViet]
947
	-- Add the parameters for the stored procedure here
948
	@p_BRANCH_ID varchar(30) = NULL,
949
	@p_FromDate varchar(30) = NULL,
950
	@p_ToDate varchar(15) = NULL,
951
	@p_BRANCH_LOGIN varchar(15) = NULL,
952
	@p_LEVEL varchar(10) = 'ALL',
953
	@p_ASSET_TYPE varchar(15) = '', -- loai tai san TSCD/CCLD
954
	@p_PriceFrom varchar(18) = null, -- nguyen gia tu
955
	@p_PriceTo varchar(18) = null, -- nguyen gia den
956
	@p_SupplierId varchar(15) = null, -- nha cung cap
957
	@p_ASSET_GROUP_ID varchar(15) = null, -- Nhom tai san
958
	@p_Branch_ID_Use varchar(15) = null ,-- don vi su dung
959
	@p_User_ID varchar(15) = null -- nguoi su dung	
960
AS
961
BEGIN
962
-- Do du lieu ao
963

    
964
declare @tmp table(BRANCH_ID varchar(15))
965
insert into @tmp  SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
966
declare @tmp_login table(BRANCH_ID varchar(15))
967
insert into @tmp_login  SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
968
if @p_PriceFrom = '0' and @p_PriceTo = '0'
969
	begin
970
		set	@p_PriceFrom = null
971
		set	@p_PriceTo = null
972
	end
973
	SELECT 
974
	Row_number() over(order by L.LIQ_ID) AS STT,
975
	[dbo].[FN_GET_GROUPNAME](M.GROUP_ID,'1') AS NHOMTS,
976
--		[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'1') AS NHOMTSLV1, --EM GOM NHOM THEO 3 CAI THUOC TINH NAY NHA
977
	[dbo].[FN_GET_GROUPNAME](M.GROUP_ID,'2') AS NHOM_LV2,
978
	[dbo].[FN_GET_GROUPNAME](M.GROUP_ID,'3') AS NHOM_LV3,
979
	--G.GROUP_NAME NHOMTS, -- NHOM TAI SAN
980
	M.ASSET_CODE MATS,
981
	M.ASSET_NAME TENTS,
982
	M.BUY_DATE NGAYNHAP, -- NGAY NHAP
983
	M.BUY_PRICE NGUYENGIA,
984
	--L.APPROVE_DT NGAY_TL, -- NGAY THANH LY
985
	L.APPROVE_DT_KT NGAY_TL, --
986
	--M.AMORTIZED_MONTH AS KHLK_NGAY_TL, -- KHAU HAO LUY KE DEN NGAY THANH LY
987
	(M.AMORT_AMT - LD.REMAIN_VALUE) KHLK_NGAY_TL,
988
	--M.BUY_PRICE - M.AMORTIZED_MONTH AS GTCL_NGAY_TL, -- GIA TRI CON LAI NGAY THANH LY
989
	LD.REMAIN_VALUE GTCL_NGAY_TL,
990
	LD.LIQ_PRICE GTTH, -- GIA TRI THU HOI
991
	--(M.BUY_PRICE - M.AMORTIZED_MONTH - LD.LIQ_PRICE) AS LAI_LO, -- LAI~ HAY LO~
992
	(LD.LIQ_AMT_BE_VAT - LD.REMAIN_VALUE) LAI_LO,
993
	LD.LIQ_PRICE AS GT_TL,
994
	L.BUY_COMPANY_ID, --  DON VI MUA
995
	CASE WHEN M.BRANCH_ID <>'' THEN BR.BRANCH_NAME ELSE BR_CR.BRANCH_NAME END DVSD, -- DON VI SU DUNG
996
	CASE WHEN M.BRANCH_ID <>'' THEN BR.BRANCH_CODE ELSE BR_CR.BRANCH_CODE END BRANCH_CODE, -- DON VI SU DUNG
997
	DP.DEP_NAME PHONGBAN_SD,DP.DEP_CODE, -- PHONG BAN SU DUNG
998
	M.AMORT_START_DATE NGAYBD_KHPB, -- NGAY BAT DAU KHAU HAO PHAN BO
999
	M.AMORT_MONTH THOIGIAN_KH,-- THOI GIAN KHAU HAO PHAN BO
1000
	M.AMORT_MONTH  - (M.AMORTIZED_MONTH - ISNULL(AMT.ST_KH_PD_TAM,0)) SOTHANG_KH_CL ,-- SO THANG HAU HAO CON LAI,
1001
	M.BRANCH_CREATE, M.BRANCH_ID
1002
	from ASS_LIQUIDATION L
1003
	LEFT JOIN ASS_LIQUIDATION_DT LD ON L.LIQ_ID = LD.LIQ_ID
1004
	LEFT JOIN ASS_MASTER M ON LD.ASSET_ID = M.ASSET_ID
1005
	LEFT JOIN ASS_GROUP G ON  M.GROUP_ID =G.GROUP_ID 
1006
	LEFT JOIN CM_BRANCH BR ON M.BRANCH_ID = BR.BRANCH_ID
1007
	LEFT JOIN CM_BRANCH BR_CR ON M.BRANCH_CREATE = BR_CR.BRANCH_ID
1008
	LEFT JOIN CM_DEPARTMENT DP ON M.DEPT_ID = DP.DEP_ID
1009
	-- TINH SO THANG DA KHAU HAO = AMORTED_MONTH - SỐ THÁNG ĐÃ KHẤU HAO : AMORT_DT > TO_DATE
1010
		LEFT JOIN 
1011
		(
1012
			--SELECT AM_DT.ASSET_ID, ISNULL(SUM(ISNULL(AM_DT.AMORT_AMT,0)),0) AS ST_DA_PB FROM ASS_AMORT_DT AM_DT 
1013
			SELECT AM_DT.ASSET_ID, ISNULL(COUNT (*),0) AS ST_KH_PD_TAM FROM ASS_AMORT_DT AM_DT 
1014
			WHERE CONVERT(DATE,AM_DT.AMORT_DT) > CONVERT(DATE,@p_ToDate,103)
1015
			AND AM_DT.CRDR='C'
1016
			GROUP BY AM_DT.ASSET_ID
1017
		) AMT ON AMT.ASSET_ID = M.ASSET_ID 
1018
	-- END
1019
	-- SELECT * FROM ASS_LIQUIDATION
1020
	WHERE 
1021
	--(M.BRANCH_ID =  @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID  = '')
1022
	--LUCTV: 26-12-2018: CHUYEN TU APPROVE HANH CHINH SANG APPROVE KE TOAN
1023
	--LUCTV : 03-12-2018: CHI LAY NHUNG THANH LY DA DUOC DUYET
1024
	(L.AUTH_STATUS_KT='A')
1025
	AND(CONVERT(datetime,L.APPROVE_DT_KT,103)>= CONVERT(datetime,  @p_FromDate, 103) OR @p_FromDate IS NULL OR @p_FromDate  = '')
1026
	AND (CONVERT(datetime,L.APPROVE_DT_KT,103)<= CONVERT(datetime,  @p_ToDate, 103) OR @p_ToDate IS NULL OR @p_ToDate  = '')
1027
	AND (M.TYPE_ID = @p_ASSET_TYPE OR @p_ASSET_TYPE IS NULL OR @p_ASSET_TYPE  = '')
1028
	AND (M.BUY_PRICE >= CONVERT(decimal(18),@p_PriceFrom) OR @p_PriceFrom IS NULL OR @p_PriceFrom  = '')
1029
	AND (M.BUY_PRICE <= CONVERT(decimal(18),@p_PriceTo) OR @p_PriceTo IS NULL OR @p_PriceTo  = '')
1030
	AND (M.SUP_ID = @p_SupplierId OR @p_SupplierId IS NULL OR @p_SupplierId  = '')
1031
	AND (M.GROUP_ID = @p_ASSET_GROUP_ID OR @p_ASSET_GROUP_ID IS NULL OR @p_ASSET_GROUP_ID  = '')
1032
	AND (M.EMP_ID = @p_User_ID OR @p_User_ID IS NULL OR @p_User_ID  = '')
1033
	-- PHAN QUYEN
1034
	--AND ((@p_LEVEL = 'ALL' AND M.BRANCH_ID IN (select BRANCH_ID from @tmp) or M.BRANCH_ID='' or M.BRANCH_ID is null )
1035
	--OR (@p_LEVEL = 'UNIT' AND M.BRANCH_ID = @p_BRANCH_ID) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL)
1036
	--AND ((@p_LEVEL = 'ALL' AND M.BRANCH_ID IN (select BRANCH_ID from @tmp_login)or M.BRANCH_ID='' or M.BRANCH_ID is null)
1037
	--OR (@p_LEVEL = 'UNIT' AND M.BRANCH_ID = @p_BRANCH_LOGIN) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL 
1038
	--OR @p_BRANCH_ID IS NOT NULL OR @p_BRANCH_ID <> '')
1039
	--LUCTV: 04-12-2019 : BỔ SUNG THÊM NẾU CHƯA XUẤT SỬ DỤNG THÌ LỌC TÀI SẢN THEO ĐƠN VỊ TẠO
1040
	--AND ((@p_LEVEL = 'ALL' AND M.BRANCH_ID IN (select BRANCH_ID from @tmp) OR (M.BRANCH_ID IS NULL OR M.BRANCH_ID ='' AND M.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp)))
1041
	--OR (@p_LEVEL = 'UNIT' AND M.BRANCH_ID = @p_BRANCH_ID OR (M.BRANCH_ID IS NULL OR M.BRANCH_ID ='' AND M.BRANCH_CREATE = @p_BRANCH_ID)))
1042
	--AND ((@p_LEVEL = 'ALL' AND M.BRANCH_ID IN (select BRANCH_ID from @tmp_login) OR (M.BRANCH_ID IS NULL OR M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login)))
1043
	--OR (@p_LEVEL = 'UNIT' AND M.BRANCH_ID = @p_BRANCH_LOGIN  OR (M.BRANCH_ID IS NULL OR M.BRANCH_ID ='' AND M.BRANCH_CREATE =@p_BRANCH_LOGIN)))
1044
	AND ((@p_LEVEL = 'ALL' AND (M.BRANCH_ID IN (select BRANCH_ID from @tmp) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp))))
1045
		OR (@p_LEVEL = 'UNIT' AND((M.BRANCH_ID ='' AND M.BRANCH_CREATE = @p_BRANCH_ID) OR M.BRANCH_ID = @p_BRANCH_ID)))
1046
	--AND ((@p_LEVEL = 'ALL' AND (M.BRANCH_ID IN (select BRANCH_ID from @tmp_login) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login))))
1047
		--luctv 01/01/19 bo dieu kien Unit di vi dieu kien nay bi sai.
1048
		--OR (@p_LEVEL = 'UNIT' AND((M.BRANCH_ID ='' AND M.BRANCH_CREATE = @p_BRANCH_LOGIN)OR M.BRANCH_ID =@p_BRANCH_LOGIN))
1049
		--)
1050
	AND ((M.BRANCH_ID IN (select BRANCH_ID from @tmp_login) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login))))
1051
	--@p_BRANCH_LOGIN varchar(15) = NULL,
1052
	--@p_LEVEL varchar(10) = 'ALL',
1053
	
1054
	--@p_Branch_ID_Use varchar(15) = null ,-- don vi su dung
1055
	--@p_User_ID varchar(15) = null -- nguoi su dung
1056
	--SELECT TOP 2 * FROM ASS_MASTER
1057
	--SELECT * FROM ASS_LIQUIDATION
1058
	--SELECT * FROM ASS_LIQUIDATION_DT
1059
	--SELECT * FROM ASS_GROUP
1060

    
1061
    IF(
1062
    SELECT COUNT(M.BRANCH_ID)
1063
    from ASS_LIQUIDATION L
1064
	LEFT JOIN ASS_LIQUIDATION_DT LD ON L.LIQ_ID = LD.LIQ_ID
1065
	LEFT JOIN ASS_MASTER M ON LD.ASSET_ID = M.ASSET_ID
1066
	LEFT JOIN ASS_GROUP G ON  M.GROUP_ID =G.GROUP_ID 
1067
	LEFT JOIN CM_BRANCH BR ON M.BRANCH_ID = BR.BRANCH_ID
1068
	LEFT JOIN CM_BRANCH BR_CR ON M.BRANCH_CREATE = BR_CR.BRANCH_ID
1069
	LEFT JOIN CM_DEPARTMENT DP ON M.DEPT_ID = DP.DEP_ID
1070
		LEFT JOIN 
1071
		(
1072
			SELECT AM_DT.ASSET_ID, ISNULL(COUNT (*),0) AS ST_KH_PD_TAM FROM ASS_AMORT_DT AM_DT 
1073
			WHERE CONVERT(DATE,AM_DT.AMORT_DT) > CONVERT(DATE,@p_ToDate,103)
1074
			AND AM_DT.CRDR='C'
1075
			GROUP BY AM_DT.ASSET_ID
1076
		) AMT ON AMT.ASSET_ID = M.ASSET_ID 
1077
	WHERE 
1078
	(L.AUTH_STATUS_KT='A')
1079
	AND(CONVERT(datetime,L.APPROVE_DT_KT,103)>= CONVERT(datetime,  @p_FromDate, 103) OR @p_FromDate IS NULL OR @p_FromDate  = '')
1080
	AND (CONVERT(datetime,L.APPROVE_DT_KT,103)<= CONVERT(datetime,  @p_ToDate, 103) OR @p_ToDate IS NULL OR @p_ToDate  = '')
1081
	AND (M.TYPE_ID = @p_ASSET_TYPE OR @p_ASSET_TYPE IS NULL OR @p_ASSET_TYPE  = '')
1082
	AND (M.BUY_PRICE >= CONVERT(decimal(18),@p_PriceFrom) OR @p_PriceFrom IS NULL OR @p_PriceFrom  = '')
1083
	AND (M.BUY_PRICE <= CONVERT(decimal(18),@p_PriceTo) OR @p_PriceTo IS NULL OR @p_PriceTo  = '')
1084
	AND (M.SUP_ID = @p_SupplierId OR @p_SupplierId IS NULL OR @p_SupplierId  = '')
1085
	AND (M.GROUP_ID = @p_ASSET_GROUP_ID OR @p_ASSET_GROUP_ID IS NULL OR @p_ASSET_GROUP_ID  = '')
1086
	AND (M.EMP_ID = @p_User_ID OR @p_User_ID IS NULL OR @p_User_ID  = '')
1087
	AND ((@p_LEVEL = 'ALL' AND (M.BRANCH_ID IN (select BRANCH_ID from @tmp) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp))))
1088
		OR (@p_LEVEL = 'UNIT' AND((M.BRANCH_ID ='' AND M.BRANCH_CREATE = @p_BRANCH_ID) OR M.BRANCH_ID = @p_BRANCH_ID)))
1089
	AND ((M.BRANCH_ID IN (select BRANCH_ID from @tmp_login) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login))))
1090
    GROUP BY M.BRANCH_ID) = 1
1091
    BEGIN
1092
    	SELECT TOP 1 L.MAKER_ID_KT AS GDV, L.CHECKER_ID_KT AS KSV
1093
        from ASS_LIQUIDATION L
1094
	LEFT JOIN ASS_LIQUIDATION_DT LD ON L.LIQ_ID = LD.LIQ_ID
1095
	LEFT JOIN ASS_MASTER M ON LD.ASSET_ID = M.ASSET_ID
1096
	LEFT JOIN ASS_GROUP G ON  M.GROUP_ID =G.GROUP_ID 
1097
	LEFT JOIN CM_BRANCH BR ON M.BRANCH_ID = BR.BRANCH_ID
1098
	LEFT JOIN CM_BRANCH BR_CR ON M.BRANCH_CREATE = BR_CR.BRANCH_ID
1099
	LEFT JOIN CM_DEPARTMENT DP ON M.DEPT_ID = DP.DEP_ID
1100
		LEFT JOIN 
1101
		(
1102
			SELECT AM_DT.ASSET_ID, ISNULL(COUNT (*),0) AS ST_KH_PD_TAM FROM ASS_AMORT_DT AM_DT 
1103
			WHERE CONVERT(DATE,AM_DT.AMORT_DT) > CONVERT(DATE,@p_ToDate,103)
1104
			AND AM_DT.CRDR='C'
1105
			GROUP BY AM_DT.ASSET_ID
1106
		) AMT ON AMT.ASSET_ID = M.ASSET_ID 
1107
	WHERE 
1108
	(L.AUTH_STATUS_KT='A')
1109
	AND(CONVERT(datetime,L.APPROVE_DT_KT,103)>= CONVERT(datetime,  @p_FromDate, 103) OR @p_FromDate IS NULL OR @p_FromDate  = '')
1110
	AND (CONVERT(datetime,L.APPROVE_DT_KT,103)<= CONVERT(datetime,  @p_ToDate, 103) OR @p_ToDate IS NULL OR @p_ToDate  = '')
1111
	AND (M.TYPE_ID = @p_ASSET_TYPE OR @p_ASSET_TYPE IS NULL OR @p_ASSET_TYPE  = '')
1112
	AND (M.BUY_PRICE >= CONVERT(decimal(18),@p_PriceFrom) OR @p_PriceFrom IS NULL OR @p_PriceFrom  = '')
1113
	AND (M.BUY_PRICE <= CONVERT(decimal(18),@p_PriceTo) OR @p_PriceTo IS NULL OR @p_PriceTo  = '')
1114
	AND (M.SUP_ID = @p_SupplierId OR @p_SupplierId IS NULL OR @p_SupplierId  = '')
1115
	AND (M.GROUP_ID = @p_ASSET_GROUP_ID OR @p_ASSET_GROUP_ID IS NULL OR @p_ASSET_GROUP_ID  = '')
1116
	AND (M.EMP_ID = @p_User_ID OR @p_User_ID IS NULL OR @p_User_ID  = '')
1117
	AND ((@p_LEVEL = 'ALL' AND (M.BRANCH_ID IN (select BRANCH_ID from @tmp) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp))))
1118
		OR (@p_LEVEL = 'UNIT' AND((M.BRANCH_ID ='' AND M.BRANCH_CREATE = @p_BRANCH_ID) OR M.BRANCH_ID = @p_BRANCH_ID)))
1119
	AND ((M.BRANCH_ID IN (select BRANCH_ID from @tmp_login) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login))))
1120
    END
1121
END
1122
GO
1123
IF @@ERROR <> 0 SET NOEXEC ON
1124
GO
1125
PRINT N'Altering [dbo].[CM_REJECT_LOG_Ins]'
1126
GO
1127
ALTER   PROC [dbo].[CM_REJECT_LOG_Ins]
1128
@p_LOG_ID	varchar(15)	= NULL,
1129
@p_STAGE	varchar(10)	 = NULL,
1130
@p_TRN_ID	varchar(15)	 = NULL,
1131
@p_TRN_TYPE	nvarchar(100)	 = NULL,
1132
@p_LOG_DT	VARCHAR	 = NULL,
1133
@p_AUTH_STAT	varchar(3)	 = NULL,
1134
@p_REASON	nvarchar(4000)	 = NULL,
1135
@p_IS_LATEST	varchar(1)	 = NULL,
1136
@p_REJECTED_BY	varchar(20)	 = NULL,
1137
@p_REJECTED_DT	VARCHAR	 = NULL
1138
AS
1139
BEGIN TRANSACTION
1140
		DECLARE @TRADED_ID VARCHAR(15), @AMT_EXE DECIMAL(18,0)
1141
		DECLARE @PAY_ADVANCE_ID VARCHAR(15), @AMT_PAY DECIMAL(18,0), @AMT_REVERT DECIMAL(18,0), @AMT_ADD DECIMAL(18,0)
1142
		DECLARE @p_MESSAGE NVARCHAR(100) = NULL
1143
    DECLARE  @TBL_GROUP_CODE_ASS_USE TABLE (GROUP_ID VARCHAR(100))
1144

    
1145
		IF(EXISTS (SELECT * FROM CM_REJECT_LOG WHERE TRN_ID = @p_TRN_ID))
1146
		BEGIN
1147
			UPDATE CM_REJECT_LOG SET IS_LATEST ='N' WHERE TRN_ID =@p_TRN_ID
1148
		END
1149
		-- Thu hồi tài sản
1150
		IF(@p_TRN_TYPE ='ASS_COLLECT_MUL')
1151
		BEGIN
1152
			IF(@p_STAGE='KT')
1153
			BEGIN -- KSV trả về GDV
1154
				IF(EXISTS (SELECT * FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @p_TRN_ID  AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT'))
1155
				BEGIN
1156
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thu hồi tài sản đã được kế toán duyệt'
1157
					ROLLBACK TRANSACTION
1158
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1159
					RETURN '-1'
1160
				END
1161
				ELSE
1162
				BEGIN
1163
					IF(EXISTS(SELECT * FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
1164
					BEGIN
1165
						UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS_KT ='R' WHERE COL_MULTI_MASTER_ID =@p_TRN_ID
1166
						SET @p_MESSAGE =N'Thông tin thu hồi tài sản đã được trả về giao dịch viên thành công'
1167
						-- HUYHT 06/05/2022 THAY ĐỔI TRẠNG THÁI UPDATE CŨ THÀNH UPDATE_KT
1168
						UPDATE dbo.PL_PROCESS SET PROCESS_ID = 'UPDATE_KT' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'UPDATE'
1169
						-- GiaNT 29/09/2021
1170
						INSERT INTO dbo.PL_PROCESS
1171
						(
1172
							REQ_ID,
1173
							PROCESS_ID,
1174
							CHECKER_ID,
1175
							APPROVE_DT,
1176
							PROCESS_DESC,NOTES
1177
						)
1178
						VALUES
1179
						(   @p_TRN_ID,       
1180
							'REJECT',        
1181
							@p_REJECTED_BY,       
1182
							GETDATE(), 
1183
						   N'Từ chối phiếu',
1184
               @p_REASON    
1185
						)
1186
					END
1187
					ELSE
1188
					BEGIN
1189
						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thu hồi tài sản chưa được kế toán cập nhật'
1190
						ROLLBACK TRANSACTION
1191
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1192
						RETURN '-1'
1193
					END
1194
				END
1195
			END
1196
			ELSE IF(@p_STAGE='KT_HC')
1197
			BEGIN -- KSV - GDV trả về người tạo
1198
				IF(EXISTS (SELECT * FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @p_TRN_ID  AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT_HC'))
1199
					BEGIN
1200
						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thu hồi tài sản đã được kế toán duyệt'
1201
						ROLLBACK TRANSACTION
1202
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1203
						RETURN '-1'
1204
					END
1205
				ELSE
1206
				BEGIN
1207
          --PHUCVH 16/11/22 UPDATE TÀI SẢN XONG GIAO DỊCH
1208
          UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
1209
          WHERE ASSET_ID IN (SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE COL_MULTI_MASTER_ID = @p_TRN_ID)
1210

    
1211
					-- Xóa thông tin xác nhận thu hồi
1212
					DELETE dbo.ASS_COLLECT_CONFIRM_MASTER WHERE COL_MULTI_MASTER_ID = @p_TRN_ID
1213

    
1214
					UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS ='R',CREATE_DT_KT = NULL,MAKER_ID_KT = NULL,APPROVE_DT_KT = NULL,CHECKER_ID_KT = NULL, CORE_NOTE = NULL WHERE COL_MULTI_MASTER_ID =@p_TRN_ID
1215
					SET @p_MESSAGE =N'Thông tin thu hồi tài sản đã được trả về người tạo thành công'
1216
					-- GiaNT 29/09/2021
1217
					INSERT INTO dbo.PL_PROCESS
1218
					(
1219
						REQ_ID,
1220
						PROCESS_ID,
1221
						CHECKER_ID,
1222
						APPROVE_DT,
1223
						PROCESS_DESC,NOTES
1224
					)
1225
					VALUES
1226
					(   @p_TRN_ID,       
1227
						'REJECT',        
1228
						@p_REJECTED_BY,       
1229
						GETDATE(), 
1230
						N'Từ chối phiếu',
1231
            @p_REASON    
1232
					)
1233
				END
1234
			END
1235
			ELSE
1236
			BEGIN -- TDV trả về người tạo
1237
				IF(EXISTS (SELECT * FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @p_TRN_ID  AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
1238
				BEGIN
1239
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thu hồi tài sản đã được hành chính duyệt'
1240
					ROLLBACK TRANSACTION
1241
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1242
					RETURN '-1'
1243
				END
1244
				ELSE
1245
				BEGIN
1246
          --PHUCVH 16/11/22 UPDATE TÀI SẢN XONG GIAO DỊCH
1247
          UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
1248
          WHERE ASSET_ID IN (SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE COL_MULTI_MASTER_ID = @p_TRN_ID)
1249

    
1250
					UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS ='R' WHERE COL_MULTI_MASTER_ID =@p_TRN_ID
1251
					SET @p_MESSAGE =N'Thông tin thu hồi tài sản đã được trả về người tạo thành công'
1252
					INSERT INTO dbo.PL_PROCESS
1253
					(
1254
						REQ_ID,
1255
						PROCESS_ID,
1256
						CHECKER_ID,
1257
						APPROVE_DT,
1258
						PROCESS_DESC,NOTES
1259
					)
1260
					VALUES
1261
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
1262
						'REJECT',        -- PROCESS_ID - varchar(10)
1263
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
1264
						GETDATE(), -- APPROVE_DT - datetime
1265
						N'Từ chối phiếu',      -- PROCESS_DESC - nvarchar(1000)
1266
            @p_REASON
1267
					)
1268
				END
1269
			END
1270

    
1271
		END
1272
		--SỬA CHỮA TÀI SẢN
1273
    ELSE IF(@p_TRN_TYPE = 'ASS_REPAIR_MUL')
1274
    BEGIN
1275
        IF(EXISTS (SELECT REPAIR_MUL_ID FROM ASS_REPAIR_MULTI_MASTER WHERE REPAIR_MUL_ID = @p_TRN_ID  AND AUTH_STATUS='A'))
1276
				BEGIN
1277
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin sửa chữa tài sản đã được duyệt.'
1278
					ROLLBACK TRANSACTION
1279
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1280
					RETURN '-1'
1281
				END
1282
				ELSE
1283
				BEGIN
1284
          --PHUCVH 16/11/22 UPDATE TÀI SẢN XONG GIAO DỊCH
1285
          UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
1286
          WHERE ASSET_ID IN (SELECT ASSET_ID FROM ASS_REPAIR_MULTI_DT WHERE REPAIR_MUL_ID = @p_TRN_ID)
1287

    
1288
					UPDATE ASS_REPAIR_MULTI_MASTER SET AUTH_STATUS ='R' WHERE REPAIR_MUL_ID = @p_TRN_ID          
1289
					SET @p_MESSAGE =N'Thông tin sửa chữa tài sản đã được trả về người tạo thành công'
1290

    
1291
					INSERT INTO dbo.PL_PROCESS
1292
					(
1293
						REQ_ID,
1294
						PROCESS_ID,
1295
						CHECKER_ID,
1296
						APPROVE_DT,
1297
						PROCESS_DESC,NOTES
1298
					)
1299
					VALUES
1300
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
1301
						'REJECT',        -- PROCESS_ID - varchar(10)
1302
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
1303
						GETDATE(), -- APPROVE_DT - datetime
1304
						N'Phiếu bị trả về',      -- PROCESS_DESC - nvarchar(1000)
1305
            @p_REASON
1306
					)
1307
				END
1308
    END
1309
    -- Điều chuyển tài sản 
1310
		ELSE IF(@p_TRN_TYPE ='ASS_TRANSFER_MUL')
1311
		BEGIN
1312

    
1313
            UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID IN (SELECT ASSET_ID FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID)
1314
			---- GiaNT 29/09/2021 Sửa
1315
			IF(@p_STAGE='KT')
1316
			BEGIN -- KSV trả về GDV
1317
				IF(EXISTS (SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID  AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT'))
1318
				BEGIN
1319
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển tài sản đã được kế toán duyệt'
1320
					ROLLBACK TRANSACTION
1321
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1322
					RETURN '-1'
1323
				END
1324
				ELSE
1325
				BEGIN				
1326
					IF(EXISTS(SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
1327
					BEGIN
1328
						UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS_KT ='R' WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID
1329
						SET @p_MESSAGE =N'Thông tin điều chuyển tài sản đã được trả về giao dịch viên thành công'
1330
						-- HUYHT 06/05/2022 THAY ĐỔI TRẠNG THÁI UPDATE CŨ THÀNH UPDATE_KT
1331
						UPDATE dbo.PL_PROCESS SET PROCESS_ID = 'UPDATE_KT' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'UPDATE'
1332
						-- GiaNT 29/09/2021
1333
						INSERT INTO dbo.PL_PROCESS
1334
						(
1335
							REQ_ID,
1336
							PROCESS_ID,
1337
							CHECKER_ID,
1338
							APPROVE_DT,
1339
							PROCESS_DESC,NOTES
1340
						)
1341
						VALUES
1342
						(   @p_TRN_ID,        
1343
							'REJECT',        
1344
							@p_REJECTED_BY,       
1345
							GETDATE() ,
1346
							N'Trả về nhân viên xử lý'  , 
1347
							@p_REASON   
1348
						)
1349
					END
1350
					ELSE
1351
					BEGIN
1352
						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển tài sản chưa được kế toán cập nhật'
1353
						ROLLBACK TRANSACTION
1354
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1355
						RETURN '-1'
1356
					END
1357
				END
1358
			END
1359
			ELSE IF(@p_STAGE='KT_HC')
1360
			BEGIN -- KSV - GDV trả về người tạo
1361
				IF(EXISTS (SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID  AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT_HC'))
1362
					BEGIN
1363
						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển tài sản đã được kế toán duyệt'
1364
						ROLLBACK TRANSACTION
1365
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1366
						RETURN '-1'
1367
					END
1368
				ELSE
1369
				BEGIN
1370
					UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS ='R', STATUS = 'REJECT', AUTH_STATUS_KT = NULL, APPROVE_DT = NULL,CHECKER_ID = NULL, MAKER_ID_KT = NULL, CREATE_DT_KT = NULL , CORE_NOTE = NULL
1371
					WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID
1372

    
1373
					-- Xóa thông tin xác nhận điều chuyển
1374
					DELETE ASS_TRANSFER_CONFIRM_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID
1375
                    
1376
                    --Xoá PL_REQUEST_PROCESS
1377
                    DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID
1378
                    INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID)
1379
		                                             VALUES(@p_TRN_ID,'REJECT','C','QLTS','','')
1380

    
1381
					SET @p_MESSAGE =N'Thông tin điều chuyển tài sản đã được trả về người tạo thành công'
1382
					INSERT INTO dbo.PL_PROCESS
1383
					(
1384
						REQ_ID,
1385
						PROCESS_ID,
1386
						CHECKER_ID,
1387
						APPROVE_DT,
1388
						PROCESS_DESC,NOTES
1389
					)
1390
					VALUES
1391
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
1392
						'REJECT',        -- PROCESS_ID - varchar(10)
1393
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
1394
						GETDATE(), -- APPROVE_DT - datetime
1395
						N'Trả về hành chính' ,@p_REASON     -- PROCESS_DESC - nvarchar(1000)
1396
					)
1397
				END
1398
			END
1399
			ELSE
1400
			BEGIN -- TDV trả về người tạo
1401
				IF(EXISTS (SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID  AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
1402
				BEGIN
1403
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển tài sản đã được hành chính duyệt'
1404
					ROLLBACK TRANSACTION
1405
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1406
					RETURN '-1'
1407
				END
1408
				ELSE
1409
				BEGIN
1410
					UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS ='R' WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID
1411
					SET @p_MESSAGE =N'Thông tin điều chuyển tài sản đã được trả về thành công'
1412
					INSERT INTO dbo.PL_PROCESS
1413
						(
1414
							REQ_ID,
1415
							PROCESS_ID,
1416
							CHECKER_ID,
1417
							APPROVE_DT,
1418
							PROCESS_DESC,NOTES
1419
						)
1420
						VALUES
1421
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
1422
							'REJECT',        -- PROCESS_ID - varchar(10)
1423
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
1424
							GETDATE(), -- APPROVE_DT - datetime
1425
						   @p_REASON ,N'Từ chối phiếu'      -- PROCESS_DESC - nvarchar(1000)
1426
						)
1427
				END
1428
			END
1429
		END
1430
		-- Xuất sử dụng tài sản 
1431
		ELSE IF(@p_TRN_TYPE ='ASS_USE_MUL')
1432
		BEGIN
1433
			IF(@p_STAGE='KT')
1434
			BEGIN -- KSV trả về GDV
1435
				IF(EXISTS (SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID =@p_TRN_ID  AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT'))
1436
				BEGIN
1437
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản đã được kế toán duyệt'
1438
					ROLLBACK TRANSACTION
1439
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1440
					RETURN '-1'
1441
				END
1442
				ELSE
1443
				BEGIN
1444
					IF(EXISTS(SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
1445
					BEGIN
1446
						UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS_KT ='R' WHERE USER_MASTER_ID =@p_TRN_ID
1447
						SET @p_MESSAGE =N'Thông tin xuất sử dụng tài sản đã được trả về giao dịch viên thành công'
1448
						-- HUYHT 06/05/2022 THAY ĐỔI TRẠNG THÁI UPDATE CŨ THÀNH UPDATE_KT
1449
						UPDATE dbo.PL_PROCESS SET PROCESS_ID = 'UPDATE_KT' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'UPDATE'
1450
						-- GiaNT 29/09/2021
1451
						INSERT INTO dbo.PL_PROCESS
1452
						(
1453
							REQ_ID,
1454
							PROCESS_ID,
1455
							CHECKER_ID,
1456
							APPROVE_DT,
1457
							PROCESS_DESC,NOTES
1458
						)
1459
						VALUES
1460
						(   @p_TRN_ID,       
1461
							'REJECT',        
1462
							@p_REJECTED_BY,       
1463
							GETDATE(), 
1464
						  N'Trả về GDV',
1465
              @p_REASON    
1466
						)
1467
					END
1468
					ELSE
1469
					BEGIN
1470
						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản chưa được kế toán cập nhật'
1471
						ROLLBACK TRANSACTION
1472
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1473
						RETURN '-1'
1474
					END
1475
				END
1476
			END
1477
			ELSE IF(@p_STAGE='KT_HC')
1478
			BEGIN -- KSV - GDDV nhận - GDV trả về người tạo
1479
--				IF(EXISTS (SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @p_TRN_ID  AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT_HC'))
1480
--					BEGIN
1481
--						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản đã được kế toán duyệt'
1482
--						ROLLBACK TRANSACTION
1483
--						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1484
--						RETURN '-1'
1485
--					END
1486
--				ELSE
1487
--				BEGIN
1488
--					-- Xóa thông tin xác nhận xuất sử dụng
1489
--					DELETE dbo.ASS_USE_CONFIRM_MASTER WHERE USER_MASTER_ID = @p_TRN_ID
1490
--
1491
--					UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS ='R',CREATE_DT_KT = NULL,MAKER_ID_KT = NULL,APPROVE_DT_KT = NULL,CHECKER_ID_KT = NULL WHERE USER_MASTER_ID =@p_TRN_ID
1492
--					SET @p_MESSAGE =N'Thông tin xuất sử dụng tài sản đã được trả về người tạo thành công'
1493
--					-- GiaNT 29/09/2021
1494
--					INSERT INTO dbo.PL_PROCESS
1495
--					(
1496
--						REQ_ID,
1497
--						PROCESS_ID,
1498
--						CHECKER_ID,
1499
--						APPROVE_DT,
1500
--						PROCESS_DESC,NOTES
1501
--					)
1502
--					VALUES
1503
--					(   @p_TRN_ID,       
1504
--						'REJECT',        
1505
--						@p_REJECTED_BY,       
1506
--						GETDATE(), 
1507
--						@p_REASON ,
1508
--						N'Từ chối phiếu'    
1509
--					)
1510
--				END
1511
				IF(EXISTS (SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @p_TRN_ID  AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT'))
1512
					BEGIN
1513
						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản đã được kế toán duyệt'
1514
						ROLLBACK TRANSACTION
1515
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1516
						RETURN '-1'
1517
					END
1518
				ELSE
1519
				BEGIN
1520
          --PHUCVH 16/11/22 UPDATE TÀI SẢN XONG GIAO DỊCH
1521
          UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
1522
          WHERE ASSET_ID IN (SELECT A.ASSET_ID FROM ASS_USE_MULTI_DT A WHERE A.USER_MASTER_ID = @p_TRN_ID)
1523
				
1524
        	UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS ='R', AUTH_STATUS_KT = 'E', CHECKER_ID = NULL, APPROVE_DT = NULL, CREATE_DT_KT = NULL,MAKER_ID_KT = NULL,APPROVE_DT_KT = NULL,CHECKER_ID_KT = NULL WHERE USER_MASTER_ID =@p_TRN_ID
1525

    
1526

    
1527
          IF(EXISTS(SELECT 1 FROM ASS_USE_CONFIRM_MASTER aucm WHERE aucm.USER_MASTER_ID = @p_TRN_ID))
1528
          BEGIN
1529
              
1530
    					-- Xóa thông tin xác nhận xuất sử dụng
1531
    					DELETE dbo.ASS_USE_CONFIRM_MASTER WHERE USER_MASTER_ID = @p_TRN_ID
1532
              
1533
              --UPDATE ASS_MASTER
1534
              UPDATE ASS_MASTER SET USE_DATE = NULL,USE_DATE_KT = NULL , AMORT_RATE = NULL , BRANCH_ID = NULL, DEPT_ID = NULL, EMP_ID = NULL, DIVISION_ID = NULL
1535
			  WHERE ASSET_ID IN (SELECT aumd.ASSET_ID FROM ASS_USE_MULTI_DT aumd WHERE aumd.USER_MASTER_ID = @p_TRN_ID)
1536
    
1537
              --DELETE ASS_MASTER_HIST
1538
              DELETE ASS_MASTER_HIST WHERE ASSHIST_ID IN (SELECT at.ASSHIST_ID 
1539
                                                          FROM ASS_TRANSACTIONS at
1540
                                                          LEFT JOIN ASS_USE_MULTI_DT aumd ON at.TRN_ID = aumd.USE_MULTI_ID
1541
                                                              AND aumd.USER_MASTER_ID = @p_TRN_ID)
1542
              
1543
              --UPDATE ASS_WAREHOUSE_DT  
1544
              UPDATE ASS_WAREHOUSE_DT SET OUT_DATE = NULL, STATUS = 'I' WHERE ASSET_ID IN (SELECT A.ASSET_ID FROM ASS_USE_MULTI_DT A WHERE A.USER_MASTER_ID = @p_TRN_ID)
1545
    
1546
              --DELETE ASS_LOCATION_HIST
1547
              DELETE ASS_LOCATION_HIST WHERE LOCHIST_ID IN (SELECT at.LOCHIST_ID 
1548
                                                          FROM ASS_TRANSACTIONS at
1549
                                                          LEFT JOIN ASS_USE_MULTI_DT aumd ON at.TRN_ID = aumd.USE_MULTI_ID 
1550
                                                              AND aumd.USER_MASTER_ID = @p_TRN_ID)
1551
    
1552
              --DELETE ASS_TRANSACTION
1553
              DELETE ASS_TRANSACTIONS WHERE TRN_ID IN (SELECT aumd.USE_MULTI_ID FROM ASS_USE_MULTI_DT aumd WHERE aumd.USER_MASTER_ID = @p_TRN_ID)
1554
    
1555
    
1556
              --START PHUCVH 07/10/22 UPDATE ALLOCATED PHIẾU YÊU CẦU DT
1557
              DECLARE @TBL_CHECK_UPD TABLE (REQDT_ID VARCHAR(15), REQ_DOC_ID VARCHAR(15), ASS_GROUP_ID VARCHAR(15), ASS_ID VARCHAR(15), REQ_DT_TYPE VARCHAR(20), TYPE_XL VARCHAR(20))
1558
              DECLARE @IS_MULTI_GROUP VARCHAR(1) = '0'
1559
              INSERT INTO @TBL_CHECK_UPD
1560
              SELECT DISTINCT A.REQDT_ID, A.REQ_DOC_ID, A.ASS_GROUP_ID, A.ASS_ID, A.REQ_DT_TYPE, A.TYPE_XL
1561
              FROM ASS_USE_MULTI_DT B
1562
              LEFT JOIN TR_REQUEST_SHOP_DOC_DT A ON B.REQ_ID = A.REQ_DOC_ID 
1563
              WHERE B.USER_MASTER_ID = @p_TRN_ID AND B.REQ_ID IS NOT NULL AND B.REQ_ID <> ''
1564
                    AND(A.REQ_DT_TYPE = 'BUYNEW' 
1565
                      OR (A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPTK')) 
1566
          
1567
              DECLARE @C_REQDT_ID VARCHAR(15), @C_REQ_DOC_ID VARCHAR(15), @C_ASS_GROUP_ID VARCHAR(15), @C_ASS_ID VARCHAR(15), @C_REQ_DT_TYPE VARCHAR(15), @C_TYPE_XL VARCHAR(20)
1568
          
1569
              DECLARE DATA_CURSOR_CHECK_UPD CURSOR FOR
1570
              SELECT * FROM @TBL_CHECK_UPD
1571
          
1572
              OPEN DATA_CURSOR_CHECK_UPD
1573
          
1574
              FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO
1575
              @C_REQDT_ID,@C_REQ_DOC_ID,@C_ASS_GROUP_ID,@C_ASS_ID,@C_REQ_DT_TYPE,@C_TYPE_XL
1576
          
1577
              DECLARE @ALLOCATED INT
1578
              WHILE @@FETCH_STATUS = 0
1579
              BEGIN
1580
                  SET @IS_MULTI_GROUP = '0'
1581

    
1582
                  DELETE @TBL_GROUP_CODE_ASS_USE
1583
                  INSERT INTO @TBL_GROUP_CODE_ASS_USE (GROUP_ID)
1584
                  SELECT A.GROUP_ID FROM ASS_GROUP A WHERE A.GROUP_CODE = (SELECT B.GROUP_CODE FROM ASS_GROUP B WHERE B.GROUP_ID  = @C_ASS_GROUP_ID)
1585
    
1586
                  IF((SELECT COUNT(*) FROM @TBL_GROUP_CODE_ASS_USE WHERE GROUP_ID IN (SELECT trsdd.ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT trsdd WHERE trsdd.REQ_DOC_ID = @C_REQ_DOC_ID AND(trsdd.REQ_DT_TYPE = 'BUYNEW' 
1587
                      OR (trsdd.REQ_DT_TYPE = 'XKSD' AND trsdd.TYPE_XL = 'CPTK')))) > 1)
1588
                  BEGIN
1589
                      SET @IS_MULTI_GROUP = '1'
1590
                  END
1591

    
1592
                  IF (@C_REQ_DT_TYPE = 'BUYNEW')
1593
                  BEGIN
1594
                  SET @ALLOCATED = (SELECT SUM(TMP.COUNT) FROM (
1595
                                    (SELECT COUNT(*) AS COUNT
1596
                                    FROM ASS_USE_MULTI_DT A
1597
                                    LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
1598
                                    WHERE A.USER_MASTER_ID = @p_TRN_ID
1599
                                    GROUP BY A.REQ_ID, C.GROUP_ID, C.REQ_ID
1600
                                    HAVING A.REQ_ID = @C_REQ_DOC_ID
1601
                                      AND C.GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE WHERE ((@IS_MULTI_GROUP = '1' AND C.GROUP_ID = @C_ASS_GROUP_ID) OR @IS_MULTI_GROUP = '0'))
1602
                                      AND ((@C_REQ_DT_TYPE = 'BUYNEW' AND C.REQ_ID = @C_REQ_DOC_ID))))TMP)
1603
                  END
1604
                  ELSE IF (@C_TYPE_XL = 'CPTK')
1605
                  BEGIN
1606
                  SET @ALLOCATED = (SELECT SUM(TMP.COUNT) FROM (
1607
                                    (SELECT COUNT(*) AS COUNT
1608
                                    FROM ASS_USE_MULTI_DT A
1609
                                    LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
1610
                                    WHERE A.USER_MASTER_ID = @p_TRN_ID
1611
                                    GROUP BY A.REQ_ID, C.GROUP_ID, C.REQ_ID
1612
                                    HAVING A.REQ_ID = @C_REQ_DOC_ID
1613
                                      AND C.GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE WHERE ((@IS_MULTI_GROUP = '1' AND C.GROUP_ID = @C_ASS_GROUP_ID) OR @IS_MULTI_GROUP = '0'))
1614
                                      AND ((@C_TYPE_XL = 'CPTK' AND (C.REQ_ID IS NULL OR C.REQ_ID = '')))))TMP)
1615
                  END
1616
                                    
1617
                  UPDATE TR_REQUEST_SHOP_DOC_DT 
1618
                  SET ALLOCATED = ALLOCATED - ISNULL(@ALLOCATED,0)
1619
                  WHERE REQDT_ID = @C_REQDT_ID
1620
    
1621
                  UPDATE TR_REQUEST_SHOP_DOC SET IS_DONE = 0, STATUS = 'APPROVE' WHERE REQ_ID = @C_REQ_DOC_ID
1622
                  UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE PROCESS_ID = 'APPROVE' AND REQ_ID = @C_REQ_DOC_ID
1623
                  DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @C_REQ_DOC_ID AND PROCESS_ID = 'DONE'
1624
    
1625
                  FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO
1626
                  @C_REQDT_ID,@C_REQ_DOC_ID,@C_ASS_GROUP_ID,@C_ASS_ID,@C_REQ_DT_TYPE,@C_TYPE_XL
1627
              END
1628
              CLOSE DATA_CURSOR_CHECK_UPD
1629
              DEALLOCATE DATA_CURSOR_CHECK_UPD
1630
              --END PHUCVH 07/10/22 UPDATE ALLOCATED PHIẾU YÊU CẦU DT
1631
          END
1632

    
1633
					SET @p_MESSAGE =N'Thông tin xuất sử dụng tài sản đã được trả về người tạo thành công'
1634
					-- GiaNT 29/09/2021
1635
					INSERT INTO dbo.PL_PROCESS
1636
					(
1637
						REQ_ID,
1638
						PROCESS_ID,
1639
						CHECKER_ID,
1640
						APPROVE_DT,
1641
						PROCESS_DESC,NOTES
1642
					)
1643
					VALUES
1644
					(   @p_TRN_ID,       
1645
						'REJECT',        
1646
						@p_REJECTED_BY,       
1647
						GETDATE(), 
1648
						N'Trả về người tạo',
1649
            @p_REASON   
1650
					)
1651
				END
1652
			END
1653
			ELSE IF(@p_STAGE='HC')
1654
			BEGIN 
1655
				IF(EXISTS (SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @p_TRN_ID  AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT'))
1656
					BEGIN
1657
						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản đã được kế toán duyệt'
1658
						ROLLBACK TRANSACTION
1659
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1660
						RETURN '-1'
1661
					END
1662
				ELSE
1663
				BEGIN
1664
          
1665

    
1666
          --PHUCVH 16/11/22 UPDATE TÀI SẢN XONG GIAO DỊCH
1667
          UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
1668
          WHERE ASSET_ID IN (SELECT A.ASSET_ID FROM ASS_USE_MULTI_DT A WHERE A.USER_MASTER_ID = @p_TRN_ID)
1669

    
1670
					UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS ='R',CHECKER_ID = NULL, APPROVE_DT = NULL WHERE USER_MASTER_ID =@p_TRN_ID
1671
          UPDATE ASS_USE_MULTI_DT SET AUTH_STATUS ='R',CHECKER_ID = NULL, APPROVE_DT = NULL WHERE USER_MASTER_ID =@p_TRN_ID
1672
--          
1673
--          --UPDATE ASS_MASTER
1674
--          UPDATE ASS_MASTER SET USE_DATE = NULL, AMORT_RATE = NULL WHERE ASSET_ID IN (SELECT aumd.ASSET_ID FROM ASS_USE_MULTI_DT aumd WHERE aumd.USER_MASTER_ID = @p_TRN_ID)
1675
--
1676
--          --DELETE ASS_MASTER_HIST
1677
--          DELETE ASS_MASTER_HIST WHERE ASSHIST_ID IN (SELECT at.ASSHIST_ID 
1678
--                                                      FROM ASS_TRANSACTIONS at
1679
--                                                      LEFT JOIN ASS_USE_MULTI_DT aumd ON at.TRN_ID = aumd.USE_MULTI_ID
1680
--                                                          AND aumd.USER_MASTER_ID = @p_TRN_ID)
1681
--          
1682
--          --UPDATE ASS_WAREHOUSE_DT  
1683
--          UPDATE ASS_WAREHOUSE_DT SET OUT_DATE = NULL, STATUS = 'I' WHERE ASSET_ID IN (SELECT A.ASSET_ID FROM ASS_USE_MULTI_DT A WHERE A.USER_MASTER_ID = @p_TRN_ID)
1684
--
1685
--          --DELETE ASS_LOCATION_HIST
1686
--          DELETE ASS_LOCATION_HIST WHERE LOCHIST_ID IN (SELECT at.LOCHIST_ID 
1687
--                                                      FROM ASS_TRANSACTIONS at
1688
--                                                      LEFT JOIN ASS_USE_MULTI_DT aumd ON at.TRN_ID = aumd.USE_MULTI_ID 
1689
--                                                          AND aumd.USER_MASTER_ID = @p_TRN_ID)
1690
--
1691
--          --DELETE ASS_TRANSACTION
1692
--          DELETE ASS_TRANSACTIONS WHERE TRN_ID IN (SELECT aumd.USE_MULTI_ID FROM ASS_USE_MULTI_DT aumd WHERE aumd.USER_MASTER_ID = @p_TRN_ID)
1693
--
1694
--          --START PHUCVH 07/10/22 UPDATE ALLOCATED PHIẾU YÊU CẦU DT
1695
--          DECLARE @TBL_CHECK_UPD_1 TABLE (REQDT_ID VARCHAR(15), REQ_DOC_ID VARCHAR(15), ASS_GROUP_ID VARCHAR(15), ASS_ID VARCHAR(15), REQ_DT_TYPE VARCHAR(20), TYPE_XL VARCHAR(20))
1696
--          
1697
--          INSERT INTO @TBL_CHECK_UPD_1
1698
--          SELECT DISTINCT A.REQDT_ID, A.REQ_DOC_ID, A.ASS_GROUP_ID, A.ASS_ID, A.REQ_DT_TYPE, A.TYPE_XL
1699
--          FROM ASS_USE_MULTI_DT B
1700
--          LEFT JOIN TR_REQUEST_SHOP_DOC_DT A ON B.REQ_ID = A.REQ_DOC_ID 
1701
--          WHERE B.USER_MASTER_ID = @p_TRN_ID AND B.REQ_ID IS NOT NULL AND B.REQ_ID <> ''
1702
--                AND(A.REQ_DT_TYPE = 'BUYNEW' 
1703
--                  OR (A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPTK')) 
1704
--      
1705
--          DECLARE @C_REQDT_ID_1 VARCHAR(15), @C_REQ_DOC_ID_1 VARCHAR(15), @C_ASS_GROUP_ID_1 VARCHAR(15), @C_ASS_ID_1 VARCHAR(15), @C_REQ_DT_TYPE_1 VARCHAR(15), @C_TYPE_XL_1 VARCHAR(20)
1706
--      
1707
--          DECLARE DATA_CURSOR_CHECK_UPD_1 CURSOR FOR
1708
--          SELECT * FROM @TBL_CHECK_UPD_1
1709
--      
1710
--          OPEN DATA_CURSOR_CHECK_UPD_1
1711
--      
1712
--          FETCH NEXT FROM DATA_CURSOR_CHECK_UPD_1 INTO
1713
--          @C_REQDT_ID_1,@C_REQ_DOC_ID_1,@C_ASS_GROUP_ID_1,@C_ASS_ID_1,@C_REQ_DT_TYPE_1,@C_TYPE_XL_1
1714
--      
1715
--          DECLARE @ALLOCATED_1 INT
1716
--          WHILE @@FETCH_STATUS = 0
1717
--          BEGIN
1718
--              DELETE @TBL_GROUP_CODE_ASS_USE
1719
--              INSERT INTO @TBL_GROUP_CODE_ASS_USE (GROUP_ID)
1720
--              SELECT A.GROUP_ID FROM ASS_GROUP A WHERE A.GROUP_CODE = (SELECT B.GROUP_CODE FROM ASS_GROUP B WHERE B.GROUP_ID  = @C_ASS_GROUP_ID_1)
1721
--
1722
--              IF (@C_REQ_DT_TYPE_1 = 'BUYNEW')
1723
--              BEGIN
1724
--              SET @ALLOCATED_1 = (SELECT SUM(TMP.COUNT) FROM (
1725
--                                (SELECT COUNT(*) AS COUNT
1726
--                                FROM ASS_USE_MULTI_DT A
1727
--                                LEFT JOIN ASS_USE_CONFIRM_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID
1728
--                                LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
1729
--                                WHERE B.USER_CONFIRM_MASTER_ID IS NOT NULL
1730
--                                GROUP BY A.REQ_ID, C.GROUP_ID, C.REQ_ID
1731
--                                HAVING A.REQ_ID = @C_REQ_DOC_ID_1
1732
--                                  AND C.GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE)
1733
--                                  AND ((@C_REQ_DT_TYPE_1 = 'BUYNEW' AND C.REQ_ID = @C_REQ_DOC_ID_1))))TMP)
1734
--              END
1735
--              ELSE IF (@C_TYPE_XL_1 = 'CPTK')
1736
--              BEGIN
1737
--              SET @ALLOCATED_1 = (SELECT SUM(TMP.COUNT) FROM (
1738
--                                (SELECT COUNT(*) AS COUNT
1739
--                                FROM ASS_USE_MULTI_DT A
1740
--                                LEFT JOIN ASS_USE_CONFIRM_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID
1741
--                                LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
1742
--                                WHERE B.USER_CONFIRM_MASTER_ID IS NOT NULL
1743
--                                GROUP BY A.REQ_ID, C.GROUP_ID, C.REQ_ID
1744
--                                HAVING A.REQ_ID = @C_REQ_DOC_ID_1
1745
--                                  AND C.GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE)
1746
--                                  AND ((@C_TYPE_XL_1 = 'CPTK' AND (C.REQ_ID IS NULL OR C.REQ_ID = '')))))TMP)
1747
--              END
1748
--                                
1749
--              UPDATE TR_REQUEST_SHOP_DOC_DT 
1750
--              SET ALLOCATED = ALLOCATED - ISNULL(@ALLOCATED_1,0)
1751
--              WHERE REQDT_ID = @C_REQDT_ID_1
1752
--
1753
--              UPDATE TR_REQUEST_SHOP_DOC SET IS_DONE = 0, STATUS = 'APPROVE' WHERE REQ_ID = @C_REQ_DOC_ID_1
1754
--              UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE PROCESS_ID = 'APPROVE' AND REQ_ID = @C_REQ_DOC_ID_1
1755
--              DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @C_REQ_DOC_ID_1 AND PROCESS_ID = 'DONE'
1756
--      
1757
--              FETCH NEXT FROM DATA_CURSOR_CHECK_UPD_1 INTO
1758
--              @C_REQDT_ID_1,@C_REQ_DOC_ID_1,@C_ASS_GROUP_ID_1,@C_ASS_ID_1,@C_REQ_DT_TYPE_1,@C_TYPE_XL_1
1759
--          END
1760
--          CLOSE DATA_CURSOR_CHECK_UPD_1
1761
--          DEALLOCATE DATA_CURSOR_CHECK_UPD_1
1762
--          --END PHUCVH 07/10/22 UPDATE ALLOCATED PHIẾU YÊU CẦU DT
1763

    
1764
					SET @p_MESSAGE =N'Thông tin xuất sử dụng tài sản đã được trả về người tạo thành công'
1765
					-- GiaNT 29/09/2021
1766
					INSERT INTO dbo.PL_PROCESS
1767
					(
1768
						REQ_ID,
1769
						PROCESS_ID,
1770
						CHECKER_ID,
1771
						APPROVE_DT,
1772
						PROCESS_DESC,NOTES
1773
					)
1774
					VALUES
1775
					(   @p_TRN_ID,       
1776
						'REJECT',        
1777
						@p_REJECTED_BY,       
1778
						GETDATE(), 
1779
						N'Trả về người tạo',
1780
            @p_REASON   
1781
					)
1782
				END
1783
			END
1784
			ELSE
1785
			BEGIN -- TDV trả về người tạo
1786
				IF(EXISTS (SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @p_TRN_ID  AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
1787
				BEGIN
1788
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản đã được hành chính duyệt'
1789
					ROLLBACK TRANSACTION
1790
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1791
					RETURN '-1'
1792
				END
1793
				ELSE
1794
				BEGIN
1795
          --PHUCVH 16/11/22 UPDATE TÀI SẢN XONG GIAO DỊCH
1796
          UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
1797
          WHERE ASSET_ID IN (SELECT A.ASSET_ID FROM ASS_USE_MULTI_DT A WHERE A.USER_MASTER_ID = @p_TRN_ID)
1798

    
1799
					UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS ='R', CHECKER_ID = NULL, APPROVE_DT = NULL WHERE USER_MASTER_ID =@p_TRN_ID
1800
					SET @p_MESSAGE =N'Thông tin xuất sử dụng tài sản đã được trả về người tạo thành công'
1801
					INSERT INTO dbo.PL_PROCESS
1802
					(
1803
						REQ_ID,
1804
						PROCESS_ID,
1805
						CHECKER_ID,
1806
						APPROVE_DT,
1807
						PROCESS_DESC,NOTES
1808
					)
1809
					VALUES
1810
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
1811
						'REJECT',        -- PROCESS_ID - varchar(10)
1812
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
1813
						GETDATE(), -- APPROVE_DT - datetime
1814
						@p_REASON,
1815
						N'Từ chối phiếu'      -- PROCESS_DESC - nvarchar(1000)
1816
					)
1817
				END
1818
			END
1819

    
1820
		END
1821
		-- Thanh lý tài sản
1822
		ELSE IF(@p_TRN_TYPE ='ASS_LIQ_MUL')
1823
		BEGIN
1824
			IF(@p_STAGE='KT')
1825
			BEGIN -- KSV trả về GDV
1826
				IF(EXISTS (SELECT * FROM ASS_LIQUIDATION WHERE LIQ_ID =@p_TRN_ID  AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT'))
1827
				BEGIN
1828
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý tài sản đã được kế toán duyệt'
1829
					ROLLBACK TRANSACTION
1830
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1831
					RETURN '-1'
1832
				END
1833
				ELSE
1834
				BEGIN
1835
					IF(EXISTS(SELECT * FROM ASS_LIQUIDATION WHERE LIQ_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
1836
					BEGIN
1837
						UPDATE ASS_LIQUIDATION SET AUTH_STATUS_KT ='R', SEND_APP_DT = NULL WHERE LIQ_ID =@p_TRN_ID
1838
						SET @p_MESSAGE =N'Thông tin thanh lý tài sản đã được trả về giao dịch viên thành công'
1839
						-- GiaNT 29/09/2021
1840
						INSERT INTO dbo.PL_PROCESS
1841
						(
1842
							REQ_ID,
1843
							PROCESS_ID,
1844
							CHECKER_ID,
1845
							APPROVE_DT,
1846
							PROCESS_DESC,NOTES
1847
						)
1848
						VALUES
1849
						(   @p_TRN_ID,       
1850
							'REJECT',        
1851
							@p_REJECTED_BY,       
1852
							GETDATE(), 
1853
						   @p_REASON ,
1854
						   N'Từ chối phiếu'    
1855
						)
1856
					END
1857
					ELSE
1858
					BEGIN
1859
						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý tài sản chưa được kế toán cập nhật'
1860
						ROLLBACK TRANSACTION
1861
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1862
						RETURN '-1'
1863
					END
1864
				END
1865
			END
1866
			ELSE IF(@p_STAGE='KT_HC')
1867
			BEGIN -- KSV - GDV trả về người tạo
1868
				IF(EXISTS (SELECT * FROM ASS_LIQUIDATION WHERE LIQ_ID = @p_TRN_ID  AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT_HC'))
1869
					BEGIN
1870
						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý tài sản đã được kế toán duyệt'
1871
						ROLLBACK TRANSACTION
1872
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1873
						RETURN '-1'
1874
					END
1875
				ELSE
1876
				BEGIN
1877
					UPDATE ASS_LIQUIDATION SET AUTH_STATUS ='R',CREATE_DT_KT = NULL,MAKER_ID_KT = NULL,
1878
                                                APPROVE_DT_KT = NULL,CHECKER_ID_KT = NULL, CORE_NOTE = NULL, SEND_APP_DT = NULL
1879
                    WHERE LIQ_ID =@p_TRN_ID
1880
					SET @p_MESSAGE =N'Thông tin thanh lý tài sản đã được trả về người tạo thành công'
1881
					-- GiaNT 29/09/2021
1882

    
1883
                    -- CLEAR các trans cho trường hợp trả về người tạo rồi lên cấp tdv duyệt
1884
                      DELETE ASS_TRANSACTIONS WHERE TRN_ID = @p_TRN_ID
1885

    
1886
						INSERT INTO dbo.PL_PROCESS
1887
						(
1888
							REQ_ID,
1889
							PROCESS_ID,
1890
							CHECKER_ID,
1891
							APPROVE_DT,
1892
							PROCESS_DESC,NOTES
1893
						)
1894
						VALUES
1895
						(   @p_TRN_ID,       
1896
							'REJECT',        
1897
							@p_REJECTED_BY,       
1898
							GETDATE(), 
1899
						   @p_REASON ,
1900
						   N'Từ chối phiếu'    
1901
						)
1902
				END
1903
			END
1904
			ELSE
1905
			BEGIN -- TDV trả về người tạo
1906
				IF(EXISTS (SELECT * FROM ASS_LIQUIDATION WHERE LIQ_ID = @p_TRN_ID  AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
1907
				BEGIN
1908
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý tài sản đã được hành chính duyệt'
1909
					ROLLBACK TRANSACTION
1910
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1911
					RETURN '-1'
1912
				END
1913
				ELSE
1914
				BEGIN
1915
					UPDATE ASS_LIQUIDATION SET AUTH_STATUS ='R' WHERE LIQ_ID = @p_TRN_ID
1916
					SET @p_MESSAGE =N'Thông tin thanh lý tài sản đã được trả về người tạo thành công'
1917
					INSERT INTO dbo.PL_PROCESS
1918
						(
1919
							REQ_ID,
1920
							PROCESS_ID,
1921
							CHECKER_ID,
1922
							APPROVE_DT,
1923
							PROCESS_DESC,NOTES
1924
						)
1925
						VALUES
1926
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
1927
							'REJECT',        -- PROCESS_ID - varchar(10)
1928
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
1929
							GETDATE(), -- APPROVE_DT - datetime
1930
						   @p_REASON ,N'Từ chối phiếu'      -- PROCESS_DESC - nvarchar(1000)
1931
						)
1932
				END
1933
			END
1934
		END
1935
		-- Nhập mới tài sản
1936
		ELSE IF(@p_TRN_TYPE ='ASS_ADDNEW_MUL')
1937
		BEGIN
1938
			IF(@p_STAGE='KT')
1939
			BEGIN -- KSV trả về GDV
1940
				IF(EXISTS (SELECT * FROM ASS_ADDNEW WHERE ADDNEW_ID =@p_TRN_ID  AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT'))
1941
				BEGIN
1942
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới tài sản đã được kế toán duyệt'
1943
					ROLLBACK TRANSACTION
1944
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1945
					RETURN '-1'
1946
				END
1947
				ELSE
1948
				BEGIN
1949
					IF(EXISTS(SELECT * FROM ASS_ADDNEW WHERE ADDNEW_ID =@p_TRN_ID AND (MAKER_ID_KT IS NOT NULL OR MAKER_ID_KT <>'') AND AUTH_STATUS_KT = 'U'))
1950
					BEGIN
1951
						UPDATE ASS_ADDNEW SET AUTH_STATUS_KT ='R' WHERE ADDNEW_ID =@p_TRN_ID
1952
						SET @p_MESSAGE =N'Thông tin nhập mới tài sản đã được trả về giao dịch viên thành công'
1953
						-- HUYHT 06/05/2022 THAY ĐỔI TRẠNG THÁI UPDATE CŨ THÀNH UPDATE_KT
1954
						UPDATE dbo.PL_PROCESS SET PROCESS_ID = 'UPDATE_KT' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'UPDATE'
1955
						-- GiaNT 29/09/2021
1956
						INSERT INTO dbo.PL_PROCESS
1957
						(
1958
							REQ_ID,
1959
							PROCESS_ID,
1960
							CHECKER_ID,
1961
							APPROVE_DT,
1962
							PROCESS_DESC,NOTES
1963
						)
1964
						VALUES
1965
						(   @p_TRN_ID,       
1966
							'REJECT',        
1967
							@p_REJECTED_BY,       
1968
							GETDATE(), 
1969
						   N'Từ chối phiếu'  ,
1970
						   @p_REASON 
1971
						)
1972
					END
1973
					ELSE
1974
					BEGIN
1975
						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới tài sản chưa được kế toán cập nhật'
1976
						ROLLBACK TRANSACTION
1977
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1978
						RETURN '-1'
1979
					END
1980
				END
1981
			END
1982
			ELSE IF(@p_STAGE='KT_HC')
1983
			BEGIN -- KSV - GDV trả về người tạo
1984
				IF(EXISTS (SELECT * FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_TRN_ID  AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT_HC'))
1985
					BEGIN
1986
						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới tài sản đã được kế toán duyệt'
1987
						ROLLBACK TRANSACTION
1988
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
1989
						RETURN '-1'
1990
					END
1991
				ELSE
1992
				BEGIN
1993
					UPDATE ASS_ADDNEW SET AUTH_STATUS ='R',CREATE_DT_KT = NULL,MAKER_ID_KT = NULL,APPROVE_DT_KT = NULL,CHECKER_ID_KT = NULL WHERE ADDNEW_ID =@p_TRN_ID
1994
					SET @p_MESSAGE =N'Thông tin nhập mới tài sản đã được trả về người tạo thành công'
1995

    
1996
          --khiemchg ROLLBACK DATA khi KT trả về người tạo
1997
          DECLARE @REQ_ID VARCHAR(15), @REQ_CODE VARCHAR(50)
1998
          SELECT @REQ_ID = AA.REQ_ID, @REQ_CODE = AA.REQ_CODE FROM ASS_ADDNEW AA WHERE AA.ADDNEW_ID = @p_TRN_ID AND AUTH_STATUS_KT='A'
1999
          DECLARE @ASS_MASTER_tmp TABLE
2000
          (
2001
          	ASS_ID VARCHAR(15) NULL
2002
          )
2003
          INSERT INTO @ASS_MASTER_tmp SELECT AT.ASSET_ID FROM ASS_TRANSACTIONS AT
2004
                                      WHERE AT.TRN_ID = @p_TRN_ID AND AT.TRN_TYPE ='ADD_NEW'
2005
          DECLARE @QTY INT = (SELECT ISNULL(COUNT(ASS_ID), 0) FROM @ASS_MASTER_tmp)
2006
          DECLARE @GROUP_ID VARCHAR(15) = (SELECT AA.GROUP_ID FROM ASS_ADDNEW AA WHERE AA.ADDNEW_ID = @p_TRN_ID AND AUTH_STATUS_KT='A')
2007
          
2008
          DELETE ASS_MASTER WHERE ASSET_ID IN (SELECT ASS_ID FROM @ASS_MASTER_tmp)
2009
          DELETE ASS_MASTER_HIST WHERE ASSET_ID IN (SELECT ASS_ID FROM @ASS_MASTER_tmp)
2010
          DELETE ASS_LOCATION_HIST WHERE ASSET_ID IN (SELECT ASS_ID FROM @ASS_MASTER_tmp)
2011
          DELETE ASS_TRANSACTIONS WHERE ASSET_ID IN (SELECT ASS_ID FROM @ASS_MASTER_tmp)
2012
          DELETE ASS_WARRANTY_DT WHERE ASSET_ID IN (SELECT ASS_ID FROM @ASS_MASTER_tmp)
2013
          DELETE ASS_USE_MULTI_DT WHERE ASSET_ID IN (SELECT ASS_ID FROM @ASS_MASTER_tmp) AND REQ_ID = @REQ_ID
2014
          UPDATE TR_REQUEST_SHOP_DOC SET IS_DONE = '0' WHERE REQ_ID = @REQ_ID AND REQ_CODE = @REQ_CODE
2015
          UPDATE TR_REQUEST_SHOP_DOC_DT SET ALLOCATED = ALLOCATED - @QTY WHERE REQ_DOC_ID = @REQ_ID AND ASS_GROUP_ID = @GROUP_ID
2016
          -- khiemchg end
2017

    
2018
					-- GiaNT 29/09/2021
2019
						INSERT INTO dbo.PL_PROCESS
2020
						(
2021
							REQ_ID,
2022
							PROCESS_ID,
2023
							CHECKER_ID,
2024
							APPROVE_DT,
2025
							PROCESS_DESC,NOTES
2026
						)
2027
						VALUES
2028
						(   @p_TRN_ID,       
2029
							'REJECT',        
2030
							@p_REJECTED_BY,       
2031
							GETDATE(),  
2032
						   N'Từ chối phiếu' ,
2033
						   @p_REASON   
2034
						)
2035
				END
2036
			END -- KSV - GDV trả về người tạo
2037
			ELSE 
2038
			BEGIN -- TDV trả về người tạo
2039
				IF(EXISTS (SELECT * FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_TRN_ID  AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
2040
				BEGIN
2041
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới tài sản đã được hành chính duyệt'
2042
					ROLLBACK TRANSACTION
2043
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2044
					RETURN '-1'
2045
				END
2046
				ELSE
2047
				BEGIN
2048
					UPDATE ASS_ADDNEW SET AUTH_STATUS ='R' WHERE ADDNEW_ID = @p_TRN_ID
2049
					SET @p_MESSAGE =N'Thông tin nhập mới tài sản đã được trả về người tạo thành công'
2050
					INSERT INTO dbo.PL_PROCESS
2051
						(
2052
							REQ_ID,
2053
							PROCESS_ID,
2054
							CHECKER_ID,
2055
							APPROVE_DT,
2056
							PROCESS_DESC,NOTES
2057
						)
2058
						VALUES
2059
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2060
							'REJECT',        -- PROCESS_ID - varchar(10)
2061
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2062
							GETDATE(), -- APPROVE_DT - datetime
2063
						   N'Từ chối phiếu' ,@p_REASON      -- PROCESS_DESC - nvarchar(1000)
2064
						)
2065
				END
2066
			END
2067
		END
2068
		-- Kiểm kê tài sản
2069
		ELSE IF(@p_TRN_TYPE ='ASS_INV_MUL')
2070
		BEGIN
2071
			IF(@p_STAGE='APPROVE')
2072
			BEGIN -- Trưởng ban kiểm kê trả về người tạo
2073
				IF(EXISTS (SELECT * FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_TRN_ID  AND AUTH_STATUS='A'))
2074
				BEGIN
2075
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin kiểm kê tài sản đã được trưởng ban kiểm kê duyệt'
2076
					ROLLBACK TRANSACTION
2077
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2078
					RETURN '-1'
2079
				END
2080
				ELSE
2081
				BEGIN
2082
					UPDATE ASS_INVENTORY_MASTER SET AUTH_STATUS_DVKD ='R',AUTH_STATUS ='R',APPROVE_DT_DVKD=NULL,CHECKER_ID_DVKD=NULL WHERE INVENT_ID = @p_TRN_ID
2083
					UPDATE dbo.ASS_INVENTORY_PARTY_DT SET IS_DONE = '0', COMMENT = NULL, CONFIRM_DT = NULL WHERE INVENT_ID = @p_TRN_ID
2084
					SET @p_MESSAGE =N'Thông tin nhập kiểm kê sản đã được trả về người tạo thành công'
2085
					INSERT INTO dbo.PL_PROCESS
2086
					(
2087
						REQ_ID,
2088
						PROCESS_ID,
2089
						CHECKER_ID,
2090
						APPROVE_DT,
2091
						PROCESS_DESC,NOTES
2092
					)
2093
					VALUES
2094
					(   @p_TRN_ID,       
2095
						'REJECT',        
2096
						@p_REJECTED_BY,       
2097
						GETDATE(), 
2098
						@p_REASON ,
2099
						N'Từ chối phiếu'    
2100
					)
2101
				END
2102
			END
2103
			ELSE IF(@p_STAGE='CONFIRM')
2104
			BEGIN -- Thành phần ban kiểm kê trả về người tạo
2105
				IF(EXISTS(SELECT * FROM dbo.ASS_INVENTORY_PARTY_DT WHERE INVENT_ID = @p_TRN_ID AND PARTY_NAME = @p_REJECTED_BY AND IS_DONE = 1))
2106
					BEGIN
2107
						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin kiểm kê tài sản đã được thành phần ban kiểm kê duyệt'
2108
						ROLLBACK TRANSACTION
2109
						SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2110
						RETURN '-1'
2111
					END
2112
				ELSE IF (EXISTS(SELECT * FROM dbo.ASS_INVENTORY_PARTY_DT WHERE INVENT_ID = @p_TRN_ID AND PARTY_NAME = @p_REJECTED_BY AND IS_DONE = 0))
2113
				BEGIN
2114
					UPDATE ASS_INVENTORY_MASTER SET AUTH_STATUS_DVKD ='R',AUTH_STATUS='R',APPROVE_DT_DVKD=NULL,CHECKER_ID_DVKD=NULL WHERE INVENT_ID =@p_TRN_ID
2115
					UPDATE dbo.ASS_INVENTORY_PARTY_DT SET IS_DONE = '0', COMMENT = NULL, CONFIRM_DT = NULL WHERE INVENT_ID = @p_TRN_ID
2116
					SET @p_MESSAGE =N'Thông tin kiểm kê tài sản đã được trả về người tạo thành công'
2117
					INSERT INTO dbo.PL_PROCESS
2118
					(
2119
						REQ_ID,
2120
						PROCESS_ID,
2121
						CHECKER_ID,
2122
						APPROVE_DT,
2123
						PROCESS_DESC,NOTES
2124
					)
2125
					VALUES
2126
					(   @p_TRN_ID,       
2127
						'REJECT',        
2128
						@p_REJECTED_BY,       
2129
						GETDATE(), 
2130
						@p_REASON ,
2131
						N'Từ chối phiếu'    
2132
					)
2133
				END
2134
			END
2135
			ELSE
2136
			BEGIN -- TDV trả về người tạo
2137
				IF(EXISTS (SELECT * FROM dbo.ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_TRN_ID  AND AUTH_STATUS_DVKD='A' AND @p_STAGE ='HC'))
2138
				BEGIN
2139
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin kiểm kê tài sản đã được trưởng đơn vị duyệt'
2140
					ROLLBACK TRANSACTION
2141
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2142
					RETURN '-1'
2143
				END
2144
				ELSE
2145
				BEGIN
2146
					UPDATE ASS_INVENTORY_MASTER SET AUTH_STATUS_DVKD ='R',AUTH_STATUS ='R' WHERE INVENT_ID = @p_TRN_ID
2147
					SET @p_MESSAGE =N'Thông tin kiểm kê tài sản đã được trả về người tạo thành công'
2148
					INSERT INTO dbo.PL_PROCESS
2149
					(
2150
						REQ_ID,
2151
						PROCESS_ID,
2152
						CHECKER_ID,
2153
						APPROVE_DT,
2154
						PROCESS_DESC,NOTES
2155
					)
2156
					VALUES
2157
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2158
						'REJECT',        -- PROCESS_ID - varchar(10)
2159
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2160
						GETDATE(), -- APPROVE_DT - datetime
2161
						@p_REASON ,N'Từ chối phiếu'      -- PROCESS_DESC - nvarchar(1000)
2162
					)
2163
				END
2164
			END
2165
		END
2166
		ELSE IF(@p_TRN_TYPE ='MW_IN')
2167
		BEGIN
2168
			BEGIN
2169
			IF(@p_STAGE='KT')
2170
			BEGIN
2171
				IF(EXISTS (SELECT * FROM MW_IN_MASTER WHERE IN_ID =@p_TRN_ID  AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT'))
2172
				BEGIN
2173
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới vật liệu đã được kế toán duyệt'
2174
					ROLLBACK TRANSACTION
2175
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2176
					RETURN '0'
2177
				END
2178
				ELSE
2179
				BEGIN
2180
					--UPDATE MW_IN_MASTER SET AUTH_STATUS_KT ='R' WHERE IN_ID =@p_TRN_ID
2181
					--SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công'
2182
					IF(EXISTS(SELECT * FROM MW_IN_MASTER WHERE IN_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
2183
					BEGIN
2184
						UPDATE MW_IN_MASTER SET AUTH_STATUS_KT ='R' WHERE IN_ID =@p_TRN_ID
2185
						SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công'
2186

    
2187
						INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2188
						VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2189

    
2190
					END
2191
					ELSE
2192
					BEGIN
2193
						SET @p_STAGE ='HC'
2194
						UPDATE MW_IN_MASTER SET AUTH_STATUS ='R' WHERE IN_ID =@p_TRN_ID
2195
						SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về hành chính thành công'
2196

    
2197
						INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2198
						VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2199
					END
2200
				END
2201
			END
2202
			ELSE IF(@p_STAGE='KT_HC')
2203
				BEGIN
2204
					BEGIN
2205
					IF(EXISTS (SELECT * FROM MW_IN_MASTER WHERE IN_ID =@p_TRN_ID  AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT'))
2206
						BEGIN
2207
							SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới vật liệu đã được kế toán duyệt'
2208
							ROLLBACK TRANSACTION
2209
							SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2210
							RETURN '0'
2211
						END
2212
					ELSE
2213
						BEGIN
2214
							SET @p_STAGE ='HC'
2215
							UPDATE MW_IN_MASTER SET AUTH_STATUS ='R',CORE_NOTE = NULL
2216
							, MAKER_ID_KT = NULL, CREATE_DT_KT = NULL, APPROVE_DT = NULL, CHECKER_ID = NULL
2217
							--,CHECKER_ID_KT = @p_REJECTED_BY,APPROVE_DT_KT = GETDATE()
2218
							WHERE IN_ID =@p_TRN_ID
2219
							SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về hành chính thành công'
2220

    
2221
							INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2222
							VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2223
						END
2224
					END
2225
				END
2226
			ELSE
2227
			BEGIN
2228
				IF(EXISTS (SELECT * FROM MW_IN_MASTER WHERE IN_ID =@p_TRN_ID  AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
2229
				BEGIN
2230
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới vật liệu đã được hành chính duyệt'
2231
					ROLLBACK TRANSACTION
2232
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2233
					RETURN '0'
2234
				END
2235
				ELSE
2236
				BEGIN
2237
					UPDATE MW_IN_MASTER SET AUTH_STATUS ='R' WHERE IN_ID =@p_TRN_ID
2238
					SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công'
2239

    
2240
					INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2241
					VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2242
				END
2243
			END
2244
			END
2245
		END
2246
		--- MW - TRANSFER : ĐIỀU CHUYỂN VẬT LIỆU
2247
		ELSE IF(@p_TRN_TYPE ='MW_TRANSFER')
2248
		BEGIN
2249
			BEGIN
2250
			IF(@p_STAGE='KT')
2251
			BEGIN
2252
				IF(EXISTS (SELECT * FROM MW_TRANSFER WHERE TRANSFER_ID =@p_TRN_ID  AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT'))
2253
					BEGIN
2254
						SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển vật liệu đã được kế toán duyệt'
2255
						ROLLBACK TRANSACTION
2256
						SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2257
						RETURN '0'
2258
					END
2259
				ELSE
2260
					BEGIN
2261
						--UPDATE MW_TRANSFER SET KT_AUTH_STATUS ='R' WHERE TRANSFER_ID =@p_TRN_ID
2262
						--SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về thành công'
2263
						IF(EXISTS(SELECT * FROM MW_TRANSFER WHERE TRANSFER_ID =@p_TRN_ID AND KT_MAKER_ID IS NOT NULL AND KT_MAKER_ID <>''))
2264
						BEGIN
2265
							UPDATE MW_TRANSFER SET KT_AUTH_STATUS ='R' WHERE TRANSFER_ID =@p_TRN_ID
2266
							SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về thành công'
2267

    
2268
							INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2269
							VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2270
						END
2271
						ELSE
2272
						BEGIN
2273
							SET @p_STAGE ='HC'
2274
							UPDATE MW_TRANSFER SET AUTH_STATUS ='R' WHERE TRANSFER_ID =@p_TRN_ID
2275
							SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về hành chính thành công'
2276

    
2277
							INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2278
							VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2279
						END
2280
					END
2281
			END
2282
			ELSE IF(@p_STAGE='KT_HC')
2283
				BEGIN
2284
					IF(EXISTS (SELECT * FROM MW_TRANSFER WHERE TRANSFER_ID =@p_TRN_ID  AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT'))
2285
						BEGIN
2286
							SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển vật liệu đã được kế toán duyệt'
2287
							ROLLBACK TRANSACTION
2288
							SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2289
							RETURN '0'
2290
						END
2291
					ELSE
2292
						BEGIN
2293
							SET @p_STAGE ='HC'
2294
							UPDATE MW_TRANSFER SET AUTH_STATUS ='R', CORE_NOTE = NULL 
2295
							, KT_MAKER_ID = NULL, KT_CREATE_DT = NULL, APPROVE_DT = NULL, CHECKER_ID = NULL
2296
							--,KT_CHECKER_ID = @p_REJECTED_BY, KT_APPROVE_DT = GETDATE()
2297
							WHERE TRANSFER_ID =@p_TRN_ID
2298
							SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về hành chính thành công'
2299

    
2300
							INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2301
							VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2302
						END
2303
				END
2304
			ELSE
2305
			BEGIN
2306
				IF(EXISTS (SELECT * FROM MW_TRANSFER WHERE TRANSFER_ID =@p_TRN_ID  AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
2307
				BEGIN
2308
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển vật liệu đã được hành chính duyệt'
2309
					ROLLBACK TRANSACTION
2310
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2311
					RETURN '0'
2312
				END
2313
				ELSE
2314
				BEGIN
2315
					UPDATE MW_TRANSFER SET AUTH_STATUS ='R' WHERE TRANSFER_ID =@p_TRN_ID
2316
					SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về thành công'
2317

    
2318
					INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2319
					VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2320
				END
2321
			END
2322
			END
2323

    
2324
		END
2325
		--- MW_OUT : XUẤT VẬT LIỆU
2326
		ELSE IF(@p_TRN_TYPE ='MW_OUT')
2327
		BEGIN
2328
			BEGIN
2329
			IF(@p_STAGE='KT')
2330
			BEGIN
2331
				IF(EXISTS (SELECT * FROM MW_OUT WHERE OUT_ID =@p_TRN_ID  AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT'))
2332
				BEGIN
2333
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng vật liệu đã được kế toán duyệt'
2334
					ROLLBACK TRANSACTION
2335
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2336
					RETURN '0'
2337
				END
2338
				ELSE
2339
				BEGIN
2340
					--UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
2341
					--SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công'
2342
					IF(EXISTS(SELECT * FROM MW_OUT WHERE OUT_ID =@p_TRN_ID AND KT_MAKER_ID IS NOT NULL AND KT_MAKER_ID <>''))
2343
					BEGIN
2344
						UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
2345
						SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công'
2346

    
2347
						INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2348
						VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2349
					END
2350
					ELSE
2351
					BEGIN
2352
						SET @p_STAGE ='HC'
2353
						UPDATE MW_OUT SET AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
2354
						SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về hành chính thành công'
2355

    
2356
						INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2357
						VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2358
					END
2359
				END
2360
			END
2361
			ELSE IF(@p_STAGE='KT_HC')
2362
				BEGIN
2363
					IF(EXISTS (SELECT * FROM MW_OUT WHERE OUT_ID =@p_TRN_ID  AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT'))
2364
						BEGIN
2365
							SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng vật liệu đã được kế toán duyệt'
2366
							ROLLBACK TRANSACTION
2367
							SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2368
							RETURN '0'
2369
						END
2370
					ELSE
2371
						BEGIN
2372
							SET @p_STAGE ='HC'
2373
							UPDATE MW_OUT SET AUTH_STATUS ='R', CORE_NOTE = NULL
2374
							, KT_MAKER_ID = NULL, KT_CREATE_DT = NULL, APPROVE_DT = NULL, CHECKER_ID = NULL
2375
							--, KT_APPROVE_DT = GETDATE() ,KT_CHECKER_ID = @p_REJECTED_BY
2376
							WHERE OUT_ID =@p_TRN_ID
2377
							SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về hành chính thành công'
2378

    
2379
							INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2380
							VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2381
						END
2382
				END
2383
			ELSE
2384
			BEGIN
2385
				IF(EXISTS (SELECT * FROM MW_OUT WHERE OUT_ID =@p_TRN_ID  AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
2386
				BEGIN
2387
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng vật liệu đã được hành chính duyệt'
2388
					ROLLBACK TRANSACTION
2389
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2390
					RETURN '0'
2391
				END
2392
				ELSE
2393
				BEGIN
2394
					UPDATE MW_OUT SET AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
2395
					SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công'
2396

    
2397
					INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2398
					VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2399
				END
2400
			END
2401
			END
2402
		END
2403
		--- MW_OUT : THANH LÝ VẬT LIỆU
2404
		ELSE IF(@p_TRN_TYPE ='MW_LIQ_MASTER')
2405
		BEGIN
2406
			BEGIN
2407
			IF(@p_STAGE='KT')
2408
			BEGIN
2409
				IF(EXISTS (SELECT * FROM MW_LIQ_MASTER WHERE LIQ_ID =@p_TRN_ID  AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT'))
2410
				BEGIN
2411
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý vật liệu đã được kế toán duyệt'
2412
					ROLLBACK TRANSACTION
2413
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2414
					RETURN '0'
2415
				END
2416
				ELSE
2417
				BEGIN
2418
					--UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
2419
					--SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công'
2420
					IF(EXISTS(SELECT * FROM MW_LIQ_MASTER WHERE LIQ_ID =@p_TRN_ID AND KT_MAKER_ID IS NOT NULL AND KT_MAKER_ID <>''))
2421
					BEGIN
2422
						UPDATE MW_LIQ_MASTER SET KT_AUTH_STATUS ='R' WHERE LIQ_ID =@p_TRN_ID
2423
						SET @p_MESSAGE =N'Thông tin thanh lý vật liệu đã được trả về thành công'
2424

    
2425
						INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2426
						VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2427
					END
2428
					ELSE
2429
					BEGIN
2430
						SET @p_STAGE ='HC'
2431
						UPDATE MW_LIQ_MASTER SET AUTH_STATUS ='R' WHERE LIQ_ID =@p_TRN_ID
2432
						SET @p_MESSAGE =N'Thông tin thanh lý vật liệu đã được trả về hành chính thành công'
2433

    
2434
						INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2435
						VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2436
					END
2437
				END
2438
			END
2439
			ELSE IF(@p_STAGE='KT_HC')
2440
				BEGIN
2441
					IF(EXISTS (SELECT * FROM MW_LIQ_MASTER WHERE LIQ_ID =@p_TRN_ID  AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT'))
2442
						BEGIN
2443
							SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý vật liệu đã được kế toán duyệt'
2444
							ROLLBACK TRANSACTION
2445
							SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2446
							RETURN '0'
2447
						END
2448
					ELSE
2449
						BEGIN
2450
							SET @p_STAGE ='HC'
2451
							UPDATE MW_LIQ_MASTER SET AUTH_STATUS ='R', CORE_NOTE = NULL
2452
							, KT_MAKER_ID = NULL, KT_CREATE_DT = NULL, APPROVE_DT = NULL, CHECKER_ID = NULL
2453
							--,KT_CHECKER_ID = @p_REJECTED_BY, KT_APPROVE_DT = GETDATE()
2454
							WHERE LIQ_ID =@p_TRN_ID
2455
							SET @p_MESSAGE =N'Thông tin thanh lý vật liệu đã được trả về hành chính thành công'
2456

    
2457
							INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2458
							VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2459
						END
2460
				END
2461
			ELSE
2462
			BEGIN
2463
				IF(EXISTS (SELECT * FROM MW_LIQ_MASTER WHERE LIQ_ID =@p_TRN_ID  AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
2464
				BEGIN
2465
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý vật liệu đã được hành chính duyệt'
2466
					ROLLBACK TRANSACTION
2467
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2468
					RETURN '0'
2469
				END
2470
				ELSE
2471
				BEGIN
2472
					UPDATE MW_LIQ_MASTER SET AUTH_STATUS ='R' WHERE LIQ_ID =@p_TRN_ID
2473
					SET @p_MESSAGE =N'Thông tin thanh lý vật liệu đã được trả về thành công'
2474

    
2475
					INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
2476
					VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
2477
				END
2478
			END
2479
			END
2480
		END
2481
		-- PHIEU DE NGHI TAM UNG 05 11 2019
2482
		ELSE IF(@p_TRN_TYPE ='REQ_ADVANCE_PAY')
2483
		BEGIN
2484
			
2485
			IF(@p_STAGE='KT')
2486
			BEGIN
2487
				-- doanptt them rang buoc nhap ky do tra ve
2488
				IF(@p_REASON IS NULL OR @p_REASON = '')
2489
				BEGIN
2490
					SET @p_MESSAGE =N'Lý do trả về không được để trống'
2491
					ROLLBACK TRANSACTION
2492
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2493
					RETURN '-1'
2494
				END
2495

    
2496
				IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID  AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT'))
2497
				BEGIN
2498
					SET @p_MESSAGE =N'Trả về thất bại! Phiếu đề nghị tạm ứng đã được kế toán duyệt'
2499
					ROLLBACK TRANSACTION
2500
					SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2501
					RETURN '-1'
2502
				END
2503
				ELSE
2504
				BEGIN
2505
					-- NEU DANG O VI TRI TKTGD, TKHDQT
2506
					IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID AND ROLE_USER IN ('TKTGD','TKHDQT') AND STATUS ='C'))
2507
					BEGIN
2508
						IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TYPE_JOB ='KS' AND TLNAME =@p_REJECTED_BY))
2509
							BEGIN
2510
								SET @p_MESSAGE =N'Trả về thất bại! Phiếu đề nghị tạm ứng chưa được điều phối cho nhân viên xử lý'
2511
								ROLLBACK TRANSACTION
2512
								SELECT '-1' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2513
								RETURN '-1'
2514
						END
2515
						--UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='R' WHERE REQ_PAY_ID =@p_TRN_ID
2516
						SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng đã được trả về nhân viên xử lý thành công'
2517
						---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
2518
						UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE TLNAME =(SELECT TOP 1 TLNAME FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TYPE_JOB ='XL')
2519
						AND REQ_ID =@p_TRN_ID
2520
					    -- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE
2521
						UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE TLNAME =@p_REJECTED_BY AND REQ_ID =@p_TRN_ID AND TYPE_JOB ='KS'
2522
						INSERT INTO dbo.PL_PROCESS
2523
						(
2524
							REQ_ID,
2525
							PROCESS_ID,
2526
							CHECKER_ID,
2527
							APPROVE_DT,
2528
							PROCESS_DESC,NOTES
2529
						)
2530
						VALUES
2531
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2532
							'REJECT',        -- PROCESS_ID - varchar(10)
2533
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2534
							GETDATE(), -- APPROVE_DT - datetime
2535
							@p_REASON ,N'Trưởng văn phòng từ chối nhân viên xử lý'       -- PROCESS_DESC - nvarchar(1000)
2536
						)
2537
						EXEC SYS_CodeMasters_Gen 'CM_REJECT_LOG', @p_LOG_ID out
2538
						IF @p_LOG_ID='' OR @p_LOG_ID IS NULL GOTO ABORT
2539
						INSERT INTO [dbo].[CM_REJECT_LOG] VALUES (@p_LOG_ID,'HC',@p_TRN_ID,@p_TRN_TYPE,CONVERT(DATETIME,GETDATE(),103),'R',@p_REASON,'Y',@p_REJECTED_BY,CONVERT(DATETIME,GETDATE(),103))
2540
						COMMIT TRANSACTION
2541
						SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2542
						RETURN '0'
2543
					END
2544
					--UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
2545
					--SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công'
2546
					IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
2547
					BEGIN
2548
						UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='R' WHERE REQ_PAY_ID =@p_TRN_ID
2549
						SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng đã được trả về thành công'
2550
						---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
2551
						UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE TLNAME =(SELECT MAKER_ID_KT FROM  TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID)
2552
						AND REQ_ID =@p_TRN_ID
2553
					    -- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE
2554
						UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE TLNAME =@p_REJECTED_BY AND REQ_ID =@p_TRN_ID
2555
						INSERT INTO dbo.PL_PROCESS
2556
						(
2557
							REQ_ID,
2558
							PROCESS_ID,
2559
							CHECKER_ID,
2560
							APPROVE_DT,
2561
							PROCESS_DESC,NOTES
2562
						)
2563
						VALUES
2564
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2565
							'REJECT',        -- PROCESS_ID - varchar(10)
2566
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2567
							GETDATE(), -- APPROVE_DT - datetime
2568
							@p_REASON ,N'KSV trả về cho GDV'       -- PROCESS_DESC - nvarchar(1000)
2569
						)
2570
					END
2571
					ELSE
2572
					BEGIN
2573
						SET @p_STAGE ='HC'
2574
						UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS ='R',PROCESS ='',MAKER_ID_KT = NULL, CREATE_DT_KT =NULL, APPROVE_DT = NULL, CHECKER_ID = NULL WHERE REQ_PAY_ID =@p_TRN_ID
2575
						SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng đã được trả về đơn vị thành công'
2576
						---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
2577
						DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID
2578
						DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID
2579
						-- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE
2580
						INSERT INTO dbo.PL_PROCESS
2581
						(
2582
							REQ_ID,
2583
							PROCESS_ID,
2584
							CHECKER_ID,
2585
							APPROVE_DT,
2586
							PROCESS_DESC,NOTES
2587
						)
2588
						VALUES
2589
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2590
							'REJECT',        -- PROCESS_ID - varchar(10)
2591
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2592
							GETDATE(), -- APPROVE_DT - datetime
2593
							@p_REASON,N'Trả về cho người tạo phiếu'    -- PROCESS_DESC - nvarchar(1000)
2594
						)
2595
					END
2596
				END
2597
			END
2598
			ELSE IF(@p_STAGE='KT_HC')
2599
			BEGIN
2600
				IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID  AND AUTH_STATUS_KT = 'A'))
2601
				BEGIN
2602
					SET @p_MESSAGE =N'Hủy trả về thất bại!Phiếu đề nghị tạm ứng đã được kế toán duyệt'
2603
					ROLLBACK TRANSACTION
2604
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2605
					RETURN '0'
2606
				END
2607
				ELSE
2608
				BEGIN
2609
					SET @p_STAGE ='HC'
2610
					UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS ='R',PROCESS ='',MAKER_ID_KT = NULL, CREATE_DT_KT =NULL, APPROVE_DT = NULL, CHECKER_ID = NULL WHERE REQ_PAY_ID =@p_TRN_ID
2611
					SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng đã được trả về đơn vị thành công'
2612
					---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
2613
					DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID
2614
					DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID
2615
					-- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE
2616
					INSERT INTO dbo.PL_PROCESS
2617
					(
2618
						REQ_ID,
2619
						PROCESS_ID,
2620
						CHECKER_ID,
2621
						APPROVE_DT,
2622
						PROCESS_DESC,NOTES
2623
					)
2624
					VALUES
2625
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2626
						'REJECT',        -- PROCESS_ID - varchar(10)
2627
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2628
						GETDATE(), -- APPROVE_DT - datetime
2629
						@p_REASON,N'Trả về cho người tạo phiếu'    -- PROCESS_DESC - nvarchar(1000)
2630
					)
2631
				END
2632
			END
2633
			ELSE IF(@p_STAGE ='HC')
2634
			BEGIN
2635
				IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID  AND AUTH_STATUS='A' AND @p_STAGE ='HC' AND (MAKER_ID_KT IS  NULL OR  MAKER_ID_KT ='')))
2636
				BEGIN
2637
					SET @p_MESSAGE =N'Hủy trả về thất bại! Phiếu đề nghị tạm ứng đã được duyệt hoàn tất ở cấp độ Hành Chính Quản Trị'
2638
					ROLLBACK TRANSACTION
2639
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2640
					RETURN '0'
2641
				END
2642
				IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID  AND AUTH_STATUS='R'))
2643
				BEGIN
2644
					SET @p_MESSAGE =N'Hủy trả về thất bại! Phiếu đề nghị tạm ứng đã được trả về trước đó'
2645
					ROLLBACK TRANSACTION
2646
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2647
					RETURN '0'
2648
				END
2649
				ELSE
2650
				BEGIN
2651
					UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS ='R',PROCESS ='',CHECKER_ID ='',APPROVE_DT =NULL, MAKER_ID_KT =NULL, CREATE_DT_KT = NULL, APPROVE_DT_KT =NULL WHERE REQ_PAY_ID =@p_TRN_ID
2652
					SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng được trả về về thành công'
2653
					--NEU PHIEU DANG TRONG QUA TRINH PHE DUYET THI XOA TOAN BO PL_PROCESS VA PL_REQUEST_PROCESS 
2654
					-- XOA CAC CAP PHE DUYET, KHI DON VI THUC HIEN CHINH SUA THI HE THONG SE INSERT LAI
2655
					DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID
2656
				    DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID
2657
					--DELETE FROM PL_PROCESS WHERE REQ_ID =@p_TRN_ID
2658
					-- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE
2659
						INSERT INTO dbo.PL_PROCESS
2660
						(
2661
							REQ_ID,
2662
							PROCESS_ID,
2663
							CHECKER_ID,
2664
							APPROVE_DT,
2665
							PROCESS_DESC,NOTES
2666
						)
2667
						VALUES
2668
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2669
							'REJECT',        -- PROCESS_ID - varchar(10)
2670
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2671
							GETDATE(), -- APPROVE_DT - datetime
2672
							@p_REASON ,N'Trả về'    -- PROCESS_DESC - nvarchar(1000)
2673
						)
2674
				END
2675
			END
2676
			ELSE IF(@p_STAGE ='SUG')
2677
			BEGIN
2678
				UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_TRN_ID AND TLNAME=@p_REJECTED_BY
2679
				DECLARE @LEVEL_JOB VARCHAR(5), @LEVEL_JOB_PREV INT
2680
				SET @LEVEL_JOB =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TLNAME=@p_REJECTED_BY)
2681
				SET @LEVEL_JOB_PREV = CONVERT(INT,@LEVEL_JOB) -1
2682
				UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_TRN_ID AND LEVEL_JOB = CONVERT(VARCHAR(5),@LEVEL_JOB_PREV)
2683
				-- CAP NHAT TINH TRANG VE DANG XU LY
2684
				UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='S' WHERE REQ_PAY_ID =@p_TRN_ID
2685
				INSERT INTO dbo.PL_PROCESS
2686
						(
2687
							REQ_ID,
2688
							PROCESS_ID,
2689
							CHECKER_ID,
2690
							APPROVE_DT,
2691
							PROCESS_DESC,NOTES
2692
						)
2693
						VALUES
2694
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2695
							'REJECT',        -- PROCESS_ID - varchar(10)
2696
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2697
							GETDATE(), -- APPROVE_DT - datetime
2698
							@p_REASON ,N'GDV đề xuất từ chối phiếu'      -- PROCESS_DESC - nvarchar(1000)
2699
						)
2700
				SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng được đề xuất từ chối thành công'
2701
			END
2702
			ELSE IF(@p_STAGE ='DEL')
2703
			BEGIN
2704
				UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='D',AUTH_STATUS ='D' WHERE REQ_PAY_ID =@p_TRN_ID
2705
				UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID =@p_TRN_ID
2706
				UPDATE TR_REQ_PAYMENT_DT SET AUTH_STATUS_KT ='D' WHERE PAY_ID =@p_TRN_ID
2707
				UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT='D' WHERE PAY_ID =@p_TRN_ID
2708
				UPDATE TR_REQ_PAY_PERIOD SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID =@p_TRN_ID
2709
				---------------------------------------------------------------------------------------------------------------------
2710
				DECLARE CURS_TRADE CURSOR FOR SELECT A.TRADE_ID, A.AMT_EXE FROM TR_REQ_PAY_BUDGET A WHERE A.REQ_PAY_ID =@p_TRN_ID
2711
				OPEN CURS_TRADE
2712
					FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE
2713
					WHILE @@FETCH_STATUS = 0
2714
					BEGIN
2715
						UPDATE PL_TRADEDETAIL SET AMT_EXE = ISNULL(AMT_EXE,0) + @AMT_EXE
2716
						WHERE TRADE_ID =@TRADED_ID
2717
						FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE
2718
					END
2719
				CLOSE CURS_TRADE
2720
				DEALLOCATE CURS_TRADE
2721
				
2722
				DECLARE CURS CURSOR FOR SELECT A.PAY_ADV_ID,A.AMT_USE,A.AMT_ADD,A.AMT_REVERT FROM TR_REQ_PAYMENT_DT A WHERE A.PAY_ID =@p_TRN_ID
2723
				OPEN CURS
2724
					FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_ADD , @AMT_REVERT
2725
					WHILE @@FETCH_STATUS = 0
2726
					BEGIN
2727
						UPDATE TR_REQ_ADVANCE_PAYMENT
2728
						SET PAY_AMT = ISNULL(PAY_AMT,0) - @AMT_PAY - @AMT_REVERT + @AMT_ADD WHERE REQ_PAY_ID=@PAY_ADVANCE_ID
2729
						FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_ADD , @AMT_REVERT
2730
					END
2731
				CLOSE CURS
2732
				DEALLOCATE CURS
2733
				INSERT INTO dbo.PL_PROCESS
2734
						(
2735
							REQ_ID,
2736
							PROCESS_ID,
2737
							CHECKER_ID,
2738
							APPROVE_DT,
2739
							PROCESS_DESC,NOTES
2740
						)
2741
						VALUES
2742
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2743
							'DEL',        -- PROCESS_ID - varchar(10)
2744
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2745
							GETDATE(), -- APPROVE_DT - datetime
2746
							@p_REASON ,N'KSV hủy phiếu'      -- PROCESS_DESC - nvarchar(1000)
2747
						)
2748
				--doanptt ẩn nscp khi hủy hoặc trả phiếu về HC
2749
				UPDATE TR_REQ_BUDGET_MONTH_LIMIT_DETAIL SET RECORD_STATUS = '0'
2750
				UPDATE TR_REQ_BUDGET_YEAR_LIMIT_DETAIL SET RECORD_STATUS = '0'
2751
				SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng được hủy thành công. Bạn vẫn có thể xem thông tin giao dịch với tình trạng đã bị hủy'
2752
			END
2753
			
2754
		END
2755
		-- END  PHIEU DE NGHI TAM UNG 05 11 2019
2756
		-- START PHIEU DE THI THANH TOAN 19-11-2019
2757
		ELSE IF(@p_TRN_TYPE ='TR_REQ_PAY')
2758
		BEGIN
2759
			BEGIN
2760
			IF(@p_STAGE='KT')
2761
			BEGIN
2762
				IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID  AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT'))
2763
				BEGIN
2764
					SET @p_MESSAGE =N'Hủy trả về thất bại!Phiếu đề nghị thanh toán đã được kế toán duyệt'
2765
					ROLLBACK TRANSACTION
2766
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2767
					RETURN '0'
2768
				END
2769
				ELSE
2770
				BEGIN
2771
					--UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
2772
					--SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công'
2773
					IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
2774
					BEGIN
2775
						UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='R' WHERE REQ_PAY_ID =@p_TRN_ID
2776
						SET @p_MESSAGE =N'Phiếu đề nghị thanh toán đã được trả về thành công'
2777
						---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
2778
						UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE TLNAME =(SELECT MAKER_ID_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID)
2779
						AND REQ_ID =@p_TRN_ID
2780
						UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE TLNAME =@p_REJECTED_BY AND REQ_ID =@p_TRN_ID
2781
						-- INSERT VAO BANG LICH SU
2782
						INSERT INTO dbo.PL_PROCESS
2783
						(
2784
							REQ_ID,
2785
							PROCESS_ID,
2786
							CHECKER_ID,
2787
							APPROVE_DT,
2788
							PROCESS_DESC,NOTES
2789
						)
2790
						VALUES
2791
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2792
							'REJECT',        -- PROCESS_ID - varchar(10)
2793
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2794
							GETDATE(), -- APPROVE_DT - datetime
2795
							@p_REASON ,N'KSV trả về cho GDV'     -- PROCESS_DESC - nvarchar(1000)
2796
						)
2797
					END
2798
					ELSE 
2799
					BEGIN
2800
						SET @p_STAGE ='HC'
2801
						UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R',PROCESS ='',MAKER_ID_KT = NULL, CREATE_DT_KT =NULL, APPROVE_DT = NULL, CHECKER_ID = NULL WHERE REQ_PAY_ID =@p_TRN_ID
2802
						SET @p_MESSAGE =N'Phiếu đề nghị thanh toán đã được trả về đơn vị thành công'
2803
						-- XOA DI DU LIEU DA DIEU PHOI, CHO DON VI XU LY VA DUYET LAI SE DIEU PHOI LAI
2804
						---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
2805
						DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID
2806
						-- INSERT VAO BANG LICH SU
2807
						INSERT INTO dbo.PL_PROCESS
2808
						(
2809
							REQ_ID,
2810
							PROCESS_ID,
2811
							CHECKER_ID,
2812
							APPROVE_DT,
2813
							PROCESS_DESC,NOTES
2814
						)
2815
						VALUES
2816
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2817
							'REJECT',        -- PROCESS_ID - varchar(10)
2818
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2819
							GETDATE(), -- APPROVE_DT - datetime
2820
							@p_REASON ,N'Từ chối phiếu'      -- PROCESS_DESC - nvarchar(1000)
2821
						)
2822
						SET @p_MESSAGE =N'Phiếu đề nghị thanh toán được từ chối thành công'
2823
						--doanptt 210622 xóa nscp khi hủy hoặc trả phiếu về HC
2824
						DELETE FROM TR_REQ_BUDGET_MONTH_LIMIT_DETAIL WHERE REQ_PAY_ID = @p_TRN_ID
2825
						DELETE FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE REQ_PAY_ID = @p_TRN_ID
2826
					END
2827
				END
2828
			END
2829
			ELSE IF(@p_STAGE='KT_HC')
2830
			BEGIN
2831
				IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID  AND AUTH_STATUS_KT = 'A'))
2832
				BEGIN
2833
					SET @p_MESSAGE =N'Hủy trả về thất bại!Phiếu đề nghị thanh toán đã được kế toán duyệt'
2834
					ROLLBACK TRANSACTION
2835
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2836
					RETURN '0'
2837
				END
2838
				ELSE
2839
				BEGIN
2840
					SET @p_STAGE ='HC'
2841
					UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R',PROCESS ='',MAKER_ID_KT = NULL, CREATE_DT_KT =NULL, APPROVE_DT = NULL, CHECKER_ID = NULL WHERE REQ_PAY_ID =@p_TRN_ID
2842
					SET @p_MESSAGE =N'Phiếu đề nghị thanh toán đã được trả về đơn vị thành công'
2843
					---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
2844
					DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID
2845
					DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID
2846
					-- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE
2847
					INSERT INTO dbo.PL_PROCESS
2848
					(
2849
						REQ_ID,
2850
						PROCESS_ID,
2851
						CHECKER_ID,
2852
						APPROVE_DT,
2853
						PROCESS_DESC,NOTES
2854
					)
2855
					VALUES
2856
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2857
						'REJECT',        -- PROCESS_ID - varchar(10)
2858
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2859
						GETDATE(), -- APPROVE_DT - datetime
2860
						@p_REASON,N'Trả về cho người tạo phiếu'    -- PROCESS_DESC - nvarchar(1000)
2861
					)
2862
				END
2863
			END
2864
			ELSE IF(@p_STAGE ='HC')
2865
			BEGIN
2866
				IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID  AND AUTH_STATUS='A' AND @p_STAGE ='HC'AND (MAKER_ID_KT IS  NULL OR  MAKER_ID_KT ='')))
2867
				BEGIN
2868
					SET @p_MESSAGE =N'Hủy trả về thất bại!Phiếu đề nghị thanh toán đã được trưởng đơn vị duyệt'
2869
					ROLLBACK TRANSACTION
2870
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
2871
					RETURN '0'
2872
				END
2873
				ELSE
2874
				BEGIN
2875
					UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R',PROCESS='',CHECKER_ID ='',APPROVE_DT =NULL, MAKER_ID_KT =NULL, CREATE_DT_KT = NULL, APPROVE_DT_KT =NULL WHERE REQ_PAY_ID =@p_TRN_ID
2876
					DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID
2877
					SET @p_MESSAGE =N'Phiếu đề nghị thanh toán được trả về thành công'
2878
					-- INSERT VAO BANG LICH SU
2879
						INSERT INTO dbo.PL_PROCESS
2880
						(
2881
							REQ_ID,
2882
							PROCESS_ID,
2883
							CHECKER_ID,
2884
							APPROVE_DT,
2885
							PROCESS_DESC,NOTES
2886
						)
2887
						VALUES
2888
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2889
							'REJECT',        -- PROCESS_ID - varchar(10)
2890
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2891
							GETDATE(), -- APPROVE_DT - datetime
2892
							@p_REASON,N'Trả về'        -- PROCESS_DESC - nvarchar(1000)
2893
						)
2894

    
2895
					--doanptt xóa nscp khi hủy hoặc trả phiếu về HC
2896
					DELETE FROM TR_REQ_BUDGET_MONTH_LIMIT_DETAIL WHERE REQ_PAY_ID = @p_TRN_ID
2897
					DELETE FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE REQ_PAY_ID = @p_TRN_ID
2898
				END
2899
			END
2900
			ELSE IF(@p_STAGE ='SUG')
2901
			BEGIN
2902
				UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_TRN_ID AND TLNAME=@p_REJECTED_BY
2903
				DECLARE @LEVEL_JOB_PAY VARCHAR(5), @LEVEL_JOB_PREV_PAY INT
2904
				SET @LEVEL_JOB_PAY =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TLNAME=@p_REJECTED_BY)
2905
				SET @LEVEL_JOB_PREV_PAY = CONVERT(INT,@LEVEL_JOB_PAY) -1
2906
				UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_TRN_ID AND LEVEL_JOB = CONVERT(VARCHAR(5),@LEVEL_JOB_PREV_PAY)
2907
				UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='S' WHERE REQ_PAY_ID =@p_TRN_ID
2908
				INSERT INTO dbo.PL_PROCESS
2909
						(
2910
							REQ_ID,
2911
							PROCESS_ID,
2912
							CHECKER_ID,
2913
							APPROVE_DT,
2914
							PROCESS_DESC,NOTES
2915
						)
2916
						VALUES
2917
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2918
							'SUG',        -- PROCESS_ID - varchar(10)
2919
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2920
							GETDATE(), -- APPROVE_DT - datetime
2921
							@p_REASON ,N'GDV đề xuất từ chối phiếu'      -- PROCESS_DESC - nvarchar(1000)
2922
						)
2923
			SET @p_MESSAGE =N'Phiếu đề nghị thanh toán được đề xuất từ chối thành công'
2924
			END
2925
			ELSE IF(@p_STAGE ='DEL')
2926
			BEGIN
2927
				UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='D',AUTH_STATUS ='D' WHERE REQ_PAY_ID =@p_TRN_ID
2928
				UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID =@p_TRN_ID
2929
				UPDATE TR_REQ_PAYMENT_DT SET AUTH_STATUS_KT ='D' WHERE PAY_ID =@p_TRN_ID
2930
				UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT='D' WHERE PAY_ID =@p_TRN_ID
2931
				---------------------------------------------------------------------------------------------------------------------
2932
				--DECLARE @TRADED_ID VARCHAR(15), @AMT_EXE DECIMAL(18,0)
2933
				DECLARE CURS_TRADE CURSOR FOR SELECT A.TRADE_ID, A.AMT_EXE FROM TR_REQ_PAY_BUDGET A WHERE A.REQ_PAY_ID =@p_TRN_ID
2934
				OPEN CURS_TRADE
2935
					FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE
2936
					WHILE @@FETCH_STATUS = 0
2937
					BEGIN
2938
						UPDATE PL_TRADEDETAIL SET AMT_EXE = ISNULL(AMT_EXE,0) + @AMT_EXE
2939
						WHERE TRADE_ID =@TRADED_ID
2940
						FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE
2941
					END
2942
				CLOSE CURS_TRADE
2943
				DEALLOCATE CURS_TRADE
2944
				-- XOA NGAN SACH
2945
				--DELETE FROM TR_REQ_PAY_BUDGET WHERE  REQ_PAY_ID= @p_TRN_ID
2946
				--- NEU LA TAM UNG NOI BO THI PHAI REVERT LAI SO TIEN DA HOAN UNG CUA PHIEU DE NGHI TAM UNG
2947
				--DECLARE @PAY_ADVANCE_ID VARCHAR(15), @AMT_PAY DECIMAL(18,0), @AMT_REVERT DECIMAL(18,0), @AMT_ADD DECIMAL(18,0)
2948
				DECLARE CURS CURSOR FOR SELECT A.PAY_ADV_ID,A.AMT_USE,A.AMT_ADD,A.AMT_REVERT FROM TR_REQ_PAYMENT_DT A WHERE A.PAY_ID =@p_TRN_ID
2949
				OPEN CURS
2950
					FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_ADD , @AMT_REVERT
2951
					WHILE @@FETCH_STATUS = 0
2952
					BEGIN
2953
						UPDATE TR_REQ_ADVANCE_PAYMENT
2954
						SET PAY_AMT = ISNULL(PAY_AMT,0) - @AMT_PAY - @AMT_REVERT + @AMT_ADD WHERE REQ_PAY_ID=@PAY_ADVANCE_ID
2955
						FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_ADD , @AMT_REVERT
2956
					END
2957
				CLOSE CURS
2958
				DEALLOCATE CURS
2959
				----  XOA DI SO TIEN DA HOAN UNG CUA KI THANH TOAN NEU THANH TOAN NHA CUNG CAP VUA HOAN UNG DOT CŨ VÀ VỪA THANH TOÁN ĐỢT MỚI
2960
				--DECLARE @REQ_PAY_ID VARCHAR(15), @AMT_REAL DECIMAL(18,0)
2961
				--DECLARE CURS_SCHE CURSOR FOR SELECT A.REQ_PAY_ID, A.AMT_PAY_REAL FROM TR_REQ_PAY_SCHEDULE A WHERE A.REQ_PAY_ID =@p_TRN_ID
2962
				--OPEN CURS_SCHE
2963
				--	FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE
2964
				--	WHILE @@FETCH_STATUS = 0
2965
				--	BEGIN
2966
				--		UPDATE PL_TRADEDETAIL SET AMT_EXE = ISNULL(AMT_EXE,0) + @AMT_EXE
2967
				--		WHERE TRADE_ID =@TRADED_ID
2968
				--		FETCH NEXT FROM CURS_SCHE INTO @TRADED_ID,@AMT_EXE
2969
				--	END
2970
				--CLOSE CURS_SCHE
2971
				--DEALLOCATE CURS_SCHE
2972
				INSERT INTO dbo.PL_PROCESS
2973
						(
2974
							REQ_ID,
2975
							PROCESS_ID,
2976
							CHECKER_ID,
2977
							APPROVE_DT,
2978
							PROCESS_DESC,NOTES
2979
						)
2980
						VALUES
2981
						(   @p_TRN_ID,        -- REQ_ID - varchar(15)
2982
							'DEL',        -- PROCESS_ID - varchar(10)
2983
							@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
2984
							GETDATE(), -- APPROVE_DT - datetime
2985
							@p_REASON ,N'KSV hủy phiếu'      -- PROCESS_DESC - nvarchar(1000)
2986
						)
2987
				SET @p_MESSAGE =N'Phiếu đề nghị thanh toán được hủy thành công. Bạn vẫn có thể xem thông tin giao dịch với tình trạng đã bị hủy'
2988
				--doanptt ẩn nscp khi hủy hoặc trả phiếu về HC
2989
				UPDATE TR_REQ_BUDGET_MONTH_LIMIT_DETAIL SET RECORD_STATUS = '0'
2990
				UPDATE TR_REQ_BUDGET_YEAR_LIMIT_DETAIL SET RECORD_STATUS = '0'
2991
			END
2992
			
2993
			END
2994
		END
2995
		-- END PHIEU DE THI THANH TOAN 19-11-2019
2996

    
2997
		--- Tờ trình chủ trương
2998
		ELSE IF(@p_TRN_TYPE='PL_REQUEST_DOC')
2999
		BEGIN	IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID='APPROVE'))
3000
				BEGIN
3001
					SET @p_MESSAGE =N'Trả về thất bại! Tờ trình chủ trương đã được duyệt'
3002
					ROLLBACK TRANSACTION
3003
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3004
					RETURN '0'
3005
				END
3006
				ELSE
3007
				BEGIN
3008
					UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID='REJECT',AUTH_STATUS='R' WHERE REQ_ID=@p_TRN_ID
3009
					INSERT INTO dbo.PL_PROCESS
3010
					(
3011
						REQ_ID,
3012
						PROCESS_ID,
3013
						CHECKER_ID,
3014
						APPROVE_DT,
3015
						PROCESS_DESC,NOTES
3016
					)
3017
					VALUES
3018
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
3019
						'REJECT',        -- PROCESS_ID - varchar(10)
3020
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
3021
						GETDATE(), -- APPROVE_DT - datetime
3022
					   @p_REASON ,N'Từ chối phiếu'      -- PROCESS_DESC - nvarchar(1000)
3023
					)
3024
					SET @p_MESSAGE =N'Tờ trình chủ trương đã được trả về thành công'
3025
					 -- 28-10-2020 LUCTV, KHI TRA VE PHAI PL_REQUEST_PROCESS
3026
					 UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Tờ trình bị trả về' WHERE PROCESS_ID='APPNEW' AND REQ_ID=@p_TRN_ID
3027
					 UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='SIGN' AND REQ_ID=@p_TRN_ID
3028
			 END
3029
		END
3030
		ELSE IF(@p_TRN_TYPE='TR_REQUEST_DOC')
3031
		BEGIN
3032
			--IF(@p_STAGE='DVMS')
3033
			--BEGIN
3034
			--END
3035
			IF(@p_STAGE='PDYC' OR @p_STAGE ='DV')
3036
			BEGIN
3037
				IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID='APPROVE'))
3038
				BEGIN
3039
					SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được duyệt'
3040
					ROLLBACK TRANSACTION
3041
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3042
					RETURN '0'
3043
				END
3044
				ELSE
3045
				BEGIN
3046
					UPDATE dbo.TR_REQUEST_DOC SET PROCESS_ID='REJECT', AUTH_STATUS ='R' WHERE REQ_ID=@p_TRN_ID
3047
					INSERT INTO dbo.PL_PROCESS
3048
					(
3049
						REQ_ID,
3050
						PROCESS_ID,
3051
						CHECKER_ID,
3052
						APPROVE_DT,
3053
						PROCESS_DESC,NOTES
3054
					)
3055
					VALUES
3056
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
3057
						'REJECT',        -- PROCESS_ID - varchar(10)
3058
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
3059
						GETDATE(), -- APPROVE_DT - datetime
3060
					   @p_REASON ,N'Từ chối phiếu'      -- PROCESS_DESC - nvarchar(1000)
3061
					)
3062
					 SET @p_MESSAGE =N'Phiếu yêu cầu mua sắm đã được trả về thành công'
3063
					 -- 28-10-2020 LUCTV, KHI TRA VE PHAI PL_REQUEST_PROCESS
3064
					 UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='APPNEW' AND REQ_ID=@p_TRN_ID
3065
					 UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='SIGN' AND REQ_ID=@p_TRN_ID
3066
				 END
3067
			END	
3068
		END
3069
		-- END IF
3070
		-- NEU LA TRA VE CUA HOP DONG
3071
		ELSE IF(@p_TRN_TYPE='TR_CONTRACT')
3072
		BEGIN
3073
		--- CAP NHAT AUTH_STATUS CUA HOP DONG VE R
3074
		IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS='R'))
3075
		BEGIN
3076
			SET @p_MESSAGE =N'Trả về thất bại! Hợp đồng đã được trả về trước đó. Vui lòng đợi nhân viên cập nhật thông tin và bấm gửi phê duyệt'
3077
			ROLLBACK TRANSACTION
3078
			SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3079
			RETURN '0'
3080
		END
3081
		IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS='A'))
3082
		BEGIN
3083
			SET @p_MESSAGE =N'Trả về thất bại! Hợp đồng đã được phê duyệt thành công trước đó!'
3084
			ROLLBACK TRANSACTION
3085
			SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3086
			RETURN '0'
3087
		END
3088
		UPDATE TR_CONTRACT SET AUTH_STATUS ='R', IS_SEND_APPR = 'N' 
3089
		WHERE CONTRACT_ID =@p_TRN_ID
3090
		INSERT INTO dbo.PL_PROCESS
3091
					(
3092
						REQ_ID,
3093
						PROCESS_ID,
3094
						CHECKER_ID,
3095
						APPROVE_DT,
3096
						PROCESS_DESC,NOTES
3097
					)
3098
					VALUES
3099
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
3100
						'REJECT',        -- PROCESS_ID - varchar(10)
3101
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
3102
						GETDATE(), -- APPROVE_DT - datetime
3103
					   @p_REASON ,N'Từ chối phiếu'      -- PROCESS_DESC - nvarchar(1000)
3104
					)
3105
			SET @p_MESSAGE =N'Hợp đồng đã được trả về thành công'		
3106
		END
3107
		-- NEU LA TRA VE CUA HOP DONG
3108
		ELSE IF(@p_TRN_TYPE='TR_PO')
3109
		BEGIN
3110
		--- CAP NHAT AUTH_STATUS CUA HOP DONG VE R
3111
		IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS='R'))
3112
		BEGIN
3113
			SET @p_MESSAGE =N'Trả về thất bại! PO đã được trả về trước đó. Vui lòng đợi nhân viên cập nhật thông tin và bấm gửi phê duyệt'
3114
			ROLLBACK TRANSACTION
3115
			SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3116
			RETURN '0'
3117
		END
3118
		IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS='A'))
3119
		BEGIN
3120
			SET @p_MESSAGE =N'Trả về thất bại! PO đã được phê duyệt thành công trước đó!'
3121
			ROLLBACK TRANSACTION
3122
			SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3123
			RETURN '0'
3124
		END
3125
		UPDATE TR_PO_MASTER SET 
3126
			AUTH_STATUS ='R', IS_SEND_APPR = 'N' 
3127
		WHERE PO_ID =@p_TRN_ID
3128
		INSERT INTO dbo.PL_PROCESS
3129
					(
3130
						REQ_ID,
3131
						PROCESS_ID,
3132
						CHECKER_ID,
3133
						APPROVE_DT,
3134
						PROCESS_DESC,NOTES
3135
					)
3136
					VALUES
3137
					(   @p_TRN_ID,        -- REQ_ID - varchar(15)
3138
						'REJECT',        -- PROCESS_ID - varchar(10)
3139
						@p_REJECTED_BY,        -- CHECKER_ID - varchar(15)
3140
						GETDATE(), -- APPROVE_DT - datetime
3141
					   @p_REASON ,N'Từ chối phiếu'      -- PROCESS_DESC - nvarchar(1000)
3142
					)
3143
			SET @p_MESSAGE =N'PO đã được trả về thành công'		
3144
		END
3145
		--- KET THUC TRA VE PO
3146
		ELSE
3147
		BEGIN
3148
			SET @p_MESSAGE =N'Trả về giao dịch thành công'
3149
		END
3150

    
3151
		---BAODNQ 28/12/2021: Thêm xử lý trả về cho phân hệ quản lý cho thuê------
3152
		-------Khai báo DTSD nội bộ-------
3153
		IF(@p_TRN_TYPE ='BUD_INTERNAL')
3154
		--BEGIN ELSE IF---
3155
		BEGIN
3156
			IF(EXISTS (SELECT * FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID =@p_TRN_ID  AND AUTH_STATUS ='A'))
3157
			BEGIN
3158
				SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin khai báo DTSD nội bộ đã được duyệt'
3159
				ROLLBACK TRANSACTION
3160
				SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3161
				RETURN '0'
3162
			END
3163
			UPDATE BUD_CONTRACT_MASTER 
3164
			SET AUTH_STATUS ='R', 
3165
			---BAODNQ 31/12/2021: Gán IS_SEND_APPR = 'N' khi bị trả về------
3166
				IS_SEND_APPR = 'N',
3167
				CHECKER_ID = NULL,
3168
				APPROVE_DT = NULL,
3169
				SEND_APPR_DT = NULL,
3170
				SIGN_DT = NULL
3171
			WHERE CONTRACT_ID=@p_TRN_ID
3172
			SET @p_MESSAGE =N'Thông tin khai báo DTSD nội bộ đã được trả về thành công'
3173

    
3174
			--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
3175
			INSERT INTO dbo.PL_PROCESS
3176
					(
3177
						REQ_ID,
3178
						PROCESS_ID,
3179
						CHECKER_ID,
3180
						APPROVE_DT,
3181
						PROCESS_DESC,
3182
						NOTES
3183
					)
3184
					VALUES
3185
					(	@p_TRN_ID,       
3186
						'REJECT',
3187
						@p_REJECTED_BY,        
3188
						GETDATE(), 
3189
						@p_REASON ,      
3190
						N'Từ chối phiếu'       
3191
					)
3192
			IF @@ERROR <> 0 GOTO ABORT
3193

    
3194
		---END ELSE IF---
3195
		END
3196
		-------Quản lý hợp đồng khách thuê-------
3197
		ELSE IF(@p_TRN_TYPE ='BUD_RENTAL')
3198
		--BEGIN ELSE IF---
3199
		BEGIN
3200
			IF(EXISTS (SELECT * FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID =@p_TRN_ID  AND AUTH_STATUS ='A'))
3201
			BEGIN
3202
				SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin khai báo DT cho khách thuê đã được duyệt'
3203
				ROLLBACK TRANSACTION
3204
				SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3205
				RETURN '0'
3206
			END
3207
			UPDATE BUD_CONTRACT_CUST_MASTER 
3208
			SET AUTH_STATUS ='R',
3209
			---BAODNQ 31/12/2021: Gán IS_SEND_APPR = 'N' khi bị trả về------
3210
				IS_SEND_APPR = 'N',
3211
				CHECKER_ID = NULL,
3212
				APPROVE_DT = NULL,
3213
				SEND_APPR_DT = NULL,
3214
				SIGN_DT = NULL
3215
			WHERE CONTRACT_ID=@p_TRN_ID
3216
			SET @p_MESSAGE =N'Thông tin khai báo DT cho khách thuê đã được trả về thành công'
3217

    
3218
			--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
3219
			INSERT INTO dbo.PL_PROCESS
3220
					(
3221
						REQ_ID,
3222
						PROCESS_ID,
3223
						CHECKER_ID,
3224
						APPROVE_DT,
3225
						PROCESS_DESC,
3226
						NOTES
3227
					)
3228
					VALUES
3229
					(	@p_TRN_ID,       
3230
						'REJECT',
3231
						@p_REJECTED_BY,        
3232
						GETDATE(), 
3233
						@p_REASON ,      
3234
						N'Từ chối phiếu'       
3235
					)
3236
			IF @@ERROR <> 0 GOTO ABORT
3237

    
3238
		---END ELSE IF---
3239
		END
3240
		---datmq 28/12/2021: Thêm xử lý trả về cho phân hệ quản lý cho thuê------
3241
			-------Quản lý trụ sở-------
3242
		ELSE IF(@p_TRN_TYPE ='BUD_MASTER')
3243
		--BEGIN ELSE IF---
3244
		BEGIN
3245
			IF(EXISTS (SELECT * FROM BUD_MASTER WHERE BUILDING_ID =@p_TRN_ID  AND AUTH_STATUS ='A'))
3246
			BEGIN
3247
				SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin quản lý cho thuê đã được duyệt'
3248
				ROLLBACK TRANSACTION
3249
				SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3250
				RETURN '0'
3251
			END
3252
			---BAODNQ 26/1/2021: Gán IS_SEND_APPR = 'N' khi bị trả về------
3253
			UPDATE BUD_MASTER SET 
3254
				AUTH_STATUS ='R',  IS_SEND_APPR = 'N',
3255
				CHECKER_ID = NULL,
3256
				APPROVE_DT = NULL,
3257
				SEND_APPR_DT = NULL,
3258
				SIGN_DT = NULL
3259
			WHERE BUILDING_ID=@p_TRN_ID
3260
			SET @p_MESSAGE =N'Thông tin quản lý trụ sở đã được trả về thành công'
3261

    
3262
			--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
3263
			INSERT INTO dbo.PL_PROCESS
3264
					(
3265
						REQ_ID,
3266
						PROCESS_ID,
3267
						CHECKER_ID,
3268
						APPROVE_DT,
3269
						PROCESS_DESC,
3270
						NOTES
3271
					)
3272
					VALUES
3273
					(	@p_TRN_ID,       
3274
						'REJECT',
3275
						@p_REJECTED_BY,        
3276
						GETDATE(), 
3277
						@p_REASON ,      
3278
						N'Từ chối phiếu'       
3279
					)
3280
			IF @@ERROR <> 0 GOTO ABORT
3281

    
3282
		---END ELSE IF---
3283
		END
3284

    
3285
		/*
3286
		---doanptt 10/02/2022: Thêm xử lý trả về cho phân hệ quản lý thanh toán/ tạm ứng------
3287
		ELSE IF(@p_TRN_TYPE ='TR_REQ_PAY')
3288
		BEGIN
3289
			IF(@p_STAGE='HC')
3290
			BEGIN
3291
				IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID  AND AUTH_STATUS = 'A' AND @p_STAGE ='HC'))
3292
				BEGIN
3293
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới phiếu đề nghị thanh toán đã được hành chính duyệt'
3294
					ROLLBACK TRANSACTION
3295
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3296
					RETURN '0'
3297
				END
3298
				ELSE
3299
				BEGIN
3300
					--UPDATE MW_IN_MASTER SET AUTH_STATUS_KT ='R' WHERE IN_ID =@p_TRN_ID
3301
					--SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công'
3302
					IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND MAKER_ID IS NOT NULL AND MAKER_ID <>''))
3303
					BEGIN
3304
						UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R' WHERE REQ_PAY_ID =@p_TRN_ID
3305
						SET @p_MESSAGE =N'Thông tin nhập mới phiếu đề nghị thanh toán đã được trả về thành công'
3306
					END
3307
				END
3308
			END
3309
		END
3310

    
3311
		---doanptt 10/02/2022: Thêm xử lý trả về cho phân hệ quản lý thanh toán/ tạm ứng------
3312
		ELSE IF(@p_TRN_TYPE ='TR_REQ_ADVACNE_PAY')
3313
		BEGIN
3314
			IF(@p_STAGE='HC')
3315
			BEGIN
3316
				IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID  AND AUTH_STATUS = 'A' AND @p_STAGE ='HC'))
3317
				BEGIN
3318
					SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới phiếu đề nghị tạm ứng đã được hành chính duyệt'
3319
					ROLLBACK TRANSACTION
3320
					SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3321
					RETURN '0'
3322
				END
3323
				ELSE
3324
				BEGIN
3325
					--UPDATE MW_IN_MASTER SET AUTH_STATUS_KT ='R' WHERE IN_ID =@p_TRN_ID
3326
					--SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công'
3327
					IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND MAKER_ID IS NOT NULL AND MAKER_ID <>''))
3328
					BEGIN
3329
						UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R' WHERE REQ_PAY_ID =@p_TRN_ID
3330
						SET @p_MESSAGE =N'Thông tin nhập mới phiếu đề nghị tạm ứng đã được trả về thành công'
3331
					END
3332
					/*ELSE
3333
					BEGIN
3334
						SET @p_STAGE ='HC'
3335
						UPDATE MW_IN_MASTER SET AUTH_STATUS ='R' WHERE IN_ID =@p_TRN_ID
3336
						SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về hành chính thành công'
3337
					END*/
3338
				END
3339
			END
3340
		END
3341
		*/
3342

    
3343
	------BAODNQ 14/02/2022: Thêm xử lý trả về cho phân hệ quản lý BDS------
3344
		-------------Quản lý BDS---------------
3345
		ELSE IF(@p_TRN_TYPE = 'RET_MASTER')
3346
		BEGIN
3347
			IF(EXISTS(SELECT * FROM RET_MASTER WHERE RET_ID = @p_TRN_ID AND AUTH_STATUS = 'A'))
3348
			BEGIN
3349
				SET @p_MESSAGE = N'Hủy trả về thất bại! Thông tin bất động sản đã được duyệt'
3350
				ROLLBACK TRANSACTION
3351
				SELECT '0' AS Result, @p_LOG_ID LOG_ID, @p_MESSAGE ErrorDesc
3352
				RETURN '0'
3353
			END
3354
			UPDATE RET_MASTER
3355
			SET AUTH_STATUS = 'R', IS_SEND_APPR = 'N',
3356
				CHECKER_ID = NULL,
3357
				APPROVE_DT = NULL,
3358
				SEND_APPR_DT = NULL,
3359
				SIGN_DT = NULL
3360
			WHERE RET_ID = @p_TRN_ID
3361
			SET @p_MESSAGE = N'Thông tin bất động sản đã được trả về thành công'
3362

    
3363
			--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
3364
			INSERT INTO dbo.PL_PROCESS
3365
					(
3366
						REQ_ID,
3367
						PROCESS_ID,
3368
						CHECKER_ID,
3369
						APPROVE_DT,
3370
						PROCESS_DESC,
3371
						NOTES
3372
					)
3373
					VALUES
3374
					(	@p_TRN_ID,       
3375
						'REJECT',
3376
						@p_REJECTED_BY,        
3377
						GETDATE(), 
3378
						@p_REASON ,      
3379
						N'Từ chối phiếu'       
3380
					)
3381
			IF @@ERROR <> 0 GOTO ABORT
3382

    
3383
		END
3384

    
3385
		-------Thông tin sửa chữa BDS--------------
3386
		ELSE IF(@p_TRN_TYPE = 'RET_REPAIR')
3387
		BEGIN
3388
			IF(EXISTS(SELECT * FROM RET_REPAIR WHERE RP_ID = @p_TRN_ID AND AUTH_STATUS = 'A'))
3389
			BEGIN
3390
				SET @p_MESSAGE =N'Hủy trả về thất bại! Thông tin sửa chữa BDS đã được duyệt'
3391
				ROLLBACK TRANSACTION
3392
				SELECT '0' AS Result, @p_LOG_ID LOG_ID, @p_MESSAGE ErrorDesc
3393
				RETURN '0'
3394
			END
3395
			UPDATE RET_REPAIR 
3396
			SET AUTH_STATUS = 'R', IS_SEND_APPR = 'N',
3397
				CHECKER_ID = NULL,
3398
				APPROVE_DT = NULL,
3399
				SEND_APPR_DT = NULL,
3400
				SIGN_DT = NULL
3401
			WHERE RP_ID = @p_TRN_ID
3402
			SET @p_MESSAGE = N'Thông tin sửa chữa BDS đã được trả về thành công'
3403

    
3404
			--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
3405
			INSERT INTO dbo.PL_PROCESS
3406
					(
3407
						REQ_ID,
3408
						PROCESS_ID,
3409
						CHECKER_ID,
3410
						APPROVE_DT,
3411
						PROCESS_DESC,
3412
						NOTES
3413
					)
3414
					VALUES
3415
					(	@p_TRN_ID,       
3416
						'REJECT',
3417
						@p_REJECTED_BY,        
3418
						GETDATE(), 
3419
						@p_REASON ,      
3420
						N'Từ chối phiếu'       
3421
					)
3422
			IF @@ERROR <> 0 GOTO ABORT
3423

    
3424
		END
3425

    
3426
		-----BDS thuê làm trụ sở CN/PGD--------
3427
		ELSE IF(@p_TRN_TYPE = 'REAL_ESTATE_R_H')
3428
		BEGIN
3429
			IF(EXISTS(SELECT * FROM REAL_ESTATE_R_H WHERE RET_R_H_ID = @p_TRN_ID AND AUTH_STATUS = 'A'))
3430
			BEGIN
3431
				SET @p_MESSAGE =N'Hủy trả về thất bại! BDS thuê làm trụ sở CN/PGD đã được duyệt'
3432
				ROLLBACK TRANSACTION
3433
				SELECT '0' AS Result, @p_LOG_ID LOG_ID, @p_MESSAGE ErrorDesc
3434
				RETURN '0'
3435
			END
3436
			UPDATE REAL_ESTATE_R_H 
3437
			SET AUTH_STATUS = 'R', IS_SEND_APPR = 'N',
3438
				CHECKER_ID = NULL,
3439
				APPROVE_DT = NULL,
3440
				SEND_APPR_DT = NULL,
3441
				SIGN_DT = NULL
3442
			WHERE RET_R_H_ID = @p_TRN_ID
3443
			SET @p_MESSAGE = N'BDS thuê làm trụ sở CN/PGD đã được trả về thành công'
3444

    
3445
			--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
3446
			INSERT INTO dbo.PL_PROCESS
3447
					(
3448
						REQ_ID,
3449
						PROCESS_ID,
3450
						CHECKER_ID,
3451
						APPROVE_DT,
3452
						PROCESS_DESC,
3453
						NOTES
3454
					)
3455
					VALUES
3456
					(	@p_TRN_ID,       
3457
						'REJECT',
3458
						@p_REJECTED_BY,        
3459
						GETDATE(), 
3460
						@p_REASON ,      
3461
						N'Từ chối phiếu'       
3462
					)
3463
			IF @@ERROR <> 0 GOTO ABORT
3464

    
3465
		END
3466

    
3467
		-----BDS đang hoàn thiện thủ tục pháp lý--------
3468
		ELSE IF(@p_TRN_TYPE = 'REAL_ESTATE_L_C')
3469
		BEGIN
3470
			IF(EXISTS(SELECT * FROM REAL_ESTATE_L_C WHERE RET_L_C_ID  = @p_TRN_ID AND AUTH_STATUS = 'A'))
3471
			BEGIN
3472
				SET @p_MESSAGE =N'Hủy trả về thất bại! BDS đang hoàn thiện thủ tục pháp lý đã được duyệt'
3473
				ROLLBACK TRANSACTION
3474
				SELECT '0' AS Result, @p_LOG_ID LOG_ID, @p_MESSAGE ErrorDesc
3475
				RETURN '0'
3476
			END
3477
			UPDATE REAL_ESTATE_L_C 
3478
			SET AUTH_STATUS = 'R', IS_SEND_APPR = 'N',
3479
				CHECKER_ID = NULL,
3480
				APPROVE_DT = NULL,
3481
				SEND_APPR_DT = NULL,
3482
				SIGN_DT = NULL
3483
			WHERE RET_L_C_ID = @p_TRN_ID
3484
			SET @p_MESSAGE = N'BDS đang hoàn thiện thủ tục pháp lý đã được trả về thành công'
3485

    
3486
			--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
3487
			INSERT INTO dbo.PL_PROCESS
3488
					(
3489
						REQ_ID,
3490
						PROCESS_ID,
3491
						CHECKER_ID,
3492
						APPROVE_DT,
3493
						PROCESS_DESC,
3494
						NOTES
3495
					)
3496
					VALUES
3497
					(	@p_TRN_ID,       
3498
						'REJECT',
3499
						@p_REJECTED_BY,        
3500
						GETDATE(), 
3501
						@p_REASON ,      
3502
						N'Từ chối phiếu'       
3503
					)
3504
			IF @@ERROR <> 0 GOTO ABORT
3505

    
3506
		END
3507

    
3508
		---------BAODNQ 18/3/2022: Đánh giá NCC--------
3509
		-------Đánh giá NCC---------
3510
		ELSE IF(@p_TRN_TYPE = 'TR_RATE_SUPPLIER_MASTER')
3511
		BEGIN
3512
			IF(EXISTS(SELECT * FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID  = @p_TRN_ID AND AUTH_STATUS = 'A'))
3513
			BEGIN
3514
				SET @p_MESSAGE =N'Hủy trả về thất bại! Biên bản đánh giá NCC đã được duyệt'
3515
				ROLLBACK TRANSACTION
3516
				SELECT '0' AS Result, @p_LOG_ID LOG_ID, @p_MESSAGE ErrorDesc
3517
				RETURN '0'
3518
			END
3519
			UPDATE TR_RATE_SUPPLIER_MASTER 
3520
				SET AUTH_STATUS = 'R', 
3521
					IS_SEND_APPR = 'N',
3522
					PROCESS_STATUS = 'REJECT'
3523
			WHERE RATE_ID = @p_TRN_ID
3524
			SET @p_MESSAGE = N'Biên bản đánh giá NCC đã được trả về thành công'
3525

    
3526
			--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
3527
			INSERT INTO dbo.PL_PROCESS
3528
					(
3529
						REQ_ID,
3530
						PROCESS_ID,
3531
						CHECKER_ID,
3532
						APPROVE_DT,
3533
						PROCESS_DESC,
3534
						NOTES
3535
					)
3536
					VALUES
3537
					(	@p_TRN_ID,       
3538
						'REJECT',
3539
						@p_REJECTED_BY,        
3540
						GETDATE(), 
3541
						@p_REASON ,      
3542
						N'Từ chối phiếu'       
3543
					)
3544
			IF @@ERROR <> 0 GOTO ABORT
3545
		END
3546
		ELSE IF(@p_TRN_TYPE ='TR_REQUEST_CAR')
3547
		BEGIN
3548
			DECLARE @p_PROCESS_ID VARCHAR(15)
3549
			SELECT @p_PROCESS_ID=PROCESS_ID FROM TR_REQUEST_CAR WHERE REQ_ID =@p_TRN_ID
3550
			IF(@p_PROCESS_ID='DONE')
3551
			BEGIN
3552
				SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin phiếu yêu cầu xe đã được duyệt'
3553
				ROLLBACK TRANSACTION
3554
				SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3555
				RETURN '0'
3556
			END
3557
			IF(@p_PROCESS_ID IN ('SEND','TP_APP'))
3558
			BEGIN
3559
				UPDATE TR_REQUEST_CAR 
3560
				SET AUTH_STATUS ='R',PROCESS_ID='REJECT',IS_SEND_APPR = 'N'
3561
				WHERE REQ_ID=@p_TRN_ID
3562
				SET @p_MESSAGE =N'Thông tin phiếu yêu cầu xe đã được trả về thành công'
3563
				IF(@p_PROCESS_ID='SEND')
3564
					BEGIN
3565
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='SEND' AND REQ_ID=@p_TRN_ID
3566
					END
3567
				ELSE
3568
					BEGIN
3569
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='TP_APP' AND REQ_ID=@p_TRN_ID
3570
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='CV_APP' AND REQ_ID=@p_TRN_ID
3571
					END
3572
			END
3573
			ELSE IF(@p_PROCESS_ID='USER_SEND')
3574
			BEGIN
3575
					UPDATE TR_REQUEST_CAR
3576
					SET AUTH_STATUS ='R',PROCESS_ID='CV_REJECT'
3577
					WHERE REQ_ID=@p_TRN_ID
3578
					SET @p_MESSAGE =N'Thông tin phiếu yêu cầu xe đã được trả về thành công'
3579
					UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='P' WHERE TYPE_JOB='CV' AND REQ_ID=@p_TRN_ID
3580
					UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE TYPE_JOB='XL' AND REQ_ID=@p_TRN_ID
3581
			END
3582
			ELSE IF(@p_PROCESS_ID IN ('MAKER_APP','CVSENDCONF'))
3583
			BEGIN
3584
				
3585
					UPDATE TR_REQUEST_CAR
3586
					SET AUTH_STATUS ='R',PROCESS_ID='COSTREJECT',IS_CONFIRM_COST='N'
3587
					WHERE REQ_ID=@p_TRN_ID
3588
					SET @p_MESSAGE =N'Thông tin chi phí phiếu yêu cầu xe đã được trả về thành công'
3589
					IF(@p_PROCESS_ID='MAKER_APP')
3590
					BEGIN
3591
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE PROCESS_ID='CV_XL' AND REQ_ID=@p_TRN_ID
3592
						UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE TYPE_JOB='CV' AND REQ_ID=@p_TRN_ID
3593
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='MAKER_APP' AND REQ_ID=@p_TRN_ID
3594
					END
3595
				ELSE
3596
					BEGIN
3597
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE PROCESS_ID='CV_XL' AND REQ_ID=@p_TRN_ID
3598
						UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE TYPE_JOB='CV' AND REQ_ID=@p_TRN_ID
3599
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='MAKER_APP' AND REQ_ID=@p_TRN_ID
3600
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='TDV_C_APP' AND REQ_ID=@p_TRN_ID
3601
					END
3602
			END
3603
			INSERT INTO dbo.PL_PROCESS
3604
					(
3605
						REQ_ID,
3606
						PROCESS_ID,
3607
						CHECKER_ID,
3608
						APPROVE_DT,
3609
						PROCESS_DESC,NOTES
3610
					)
3611
					VALUES
3612
					(   @p_TRN_ID,       
3613
						'REJECT',        
3614
						@p_REJECTED_BY,       
3615
						GETDATE(), 
3616
						@p_REASON,
3617
						N'Từ chối phiếu'    
3618
					)
3619
			
3620
		END
3621
		ELSE IF(@p_TRN_TYPE ='TR_REQUEST_JOB_FORM')
3622
		BEGIN
3623
			DECLARE @PROCESS_ID VARCHAR(15),@SIGN_USER VARCHAR(50)
3624
			SELECT @PROCESS_ID=PROCESS_ID,@SIGN_USER=SIGN_USER FROM dbo.TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_TRN_ID
3625
			IF(@PROCESS_ID='APPROVE')
3626
			BEGIN
3627
				SET @p_MESSAGE =N'Hủy trả về thất bại! Thông tin phiếu yêu cầu xe đã được duyệt'
3628
				ROLLBACK TRANSACTION
3629
				SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3630
				RETURN '0'
3631
			END
3632

    
3633
			IF(@PROCESS_ID IN ('SEND','SIGN'))
3634
			BEGIN
3635
				UPDATE dbo.TR_REQUEST_JOB_FORM 
3636
				SET AUTH_STATUS ='R',PROCESS_ID='REJECT',IS_SEND_APPR = 'N'
3637
				WHERE REQ_ID=@p_TRN_ID
3638
				SET @p_MESSAGE =N'Thông tin phiếu yêu cầu công tác đã được trả về thành công'
3639

    
3640
				IF(@PROCESS_ID='SEND' AND @SIGN_USER IS NOT NULL)
3641
					BEGIN
3642
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='SIGN' AND REQ_ID=@p_TRN_ID
3643
					END
3644
				ELSE
3645
					BEGIN
3646
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='APPNEW' AND REQ_ID=@p_TRN_ID
3647
						UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='SIGN' AND REQ_ID=@p_TRN_ID
3648
					END
3649
			END
3650
			ELSE IF(@PROCESS_ID='HO_APP')
3651
			BEGIN
3652
					UPDATE dbo.TR_REQUEST_JOB_FORM
3653
					SET AUTH_STATUS ='R',PROCESS_ID='APPNEW'
3654
					WHERE REQ_ID=@p_TRN_ID
3655
					SET @p_MESSAGE =N'Thông tin phiếu yêu cầu công tác đã được trả về thành công'
3656
					UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='HO_APP' AND REQ_ID=@p_TRN_ID
3657
					UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='MAKER_CONF' AND REQ_ID=@p_TRN_ID
3658
			END
3659
			ELSE IF(@PROCESS_ID = 'MAKER_APP')
3660
			BEGIN
3661
					UPDATE TR_REQUEST_JOB_FORM
3662
					SET AUTH_STATUS ='R',PROCESS_ID='HCHO_XL'
3663
					WHERE REQ_ID=@p_TRN_ID
3664
					SET @p_MESSAGE =N'Thông tin chi phí phiếu yêu cầu công tác đã được trả về thành công'
3665
					UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='MAKER_APP' AND REQ_ID=@p_TRN_ID
3666
					UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='TDV_APP' AND REQ_ID=@p_TRN_ID
3667
			END
3668
			INSERT INTO dbo.PL_PROCESS
3669
					(
3670
						REQ_ID,
3671
						PROCESS_ID,
3672
						CHECKER_ID,
3673
						APPROVE_DT,
3674
						PROCESS_DESC,NOTES
3675
					)
3676
					VALUES
3677
					(   @p_TRN_ID,       
3678
						'REJECT',        
3679
						@p_REJECTED_BY,       
3680
						GETDATE(), 
3681
						@p_REASON,
3682
						N'Từ chối phiếu'    
3683
					)
3684
			
3685
		END
3686
    --Phucvh từ chối phiếu yêu cầu sửa chữa
3687
    ELSE IF(@p_TRN_TYPE ='ASS_REPAIR_ASS')
3688
		BEGIN     
3689
			IF(EXISTS(SELECT trsd.REQ_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.AUTH_STATUS = 'A' AND trsd.REQ_ID = @p_TRN_ID))
3690
			BEGIN
3691
				SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu yêu cầu sửa chữa đã được duyệt'
3692
				ROLLBACK TRANSACTION
3693
				SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3694
				RETURN '0'
3695
			END
3696

    
3697
			UPDATE TR_REQUEST_SHOP_DOC
3698
			SET AUTH_STATUS ='R', STATUS = 'REJECT', CHECKER_ID = NULL, APPROVE_DT = NULL, HO_NOTES = NULL, SEND_APP_DT = NULL
3699
			WHERE REQ_ID=@p_TRN_ID
3700
			SET @p_MESSAGE =N'Trả về thành công'
3701
      
3702
      --PHUCVH 16/11/22 UPDATE TÀI SẢN XONG GIAO DỊCH
3703
      UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
3704
      WHERE ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @p_TRN_ID)
3705

    
3706
      UPDATE TR_REQUEST_SHOP_COSTCENTER SET NOTES = NULL, RE_CONTENT = NULL, QUANTITY = 0, ASS_STATUS = NULL,  CHECKER_ID = NULL, APPROVE_DT = NULL, AUTH_STATUS = 'E', MAKER_ID = NULL, CREATE_DT = NULL WHERE REQ_ID = @p_TRN_ID
3707
      DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID
3708
			INSERT INTO dbo.PL_PROCESS
3709
					(
3710
						REQ_ID,
3711
						PROCESS_ID,
3712
						CHECKER_ID,
3713
						APPROVE_DT,
3714
						PROCESS_DESC,
3715
            NOTES
3716
					)
3717
					VALUES
3718
					(   @p_TRN_ID,       
3719
						'REJECT',        
3720
						@p_REJECTED_BY,       
3721
						GETDATE(), 
3722
						N'Trả về người tạo',
3723
						@p_REASON    
3724
					)
3725
			
3726
		END
3727
    --Phucvh từ chối phiếu yêu cầu điều chuyển
3728
    ELSE IF(@p_TRN_TYPE ='ASS_TRANSFER')
3729
		BEGIN     
3730
			IF(EXISTS(SELECT trsd.REQ_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.AUTH_STATUS = 'A' AND trsd.REQ_ID = @p_TRN_ID))
3731
			BEGIN
3732
				SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu yêu cầu điều chuyển đã được duyệt'
3733
				ROLLBACK TRANSACTION
3734
				SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3735
				RETURN '0'
3736
			END
3737

    
3738
			UPDATE TR_REQUEST_SHOP_DOC
3739
			SET AUTH_STATUS ='R', STATUS = 'REJECT', CHECKER_ID = NULL, APPROVE_DT = NULL, HO_NOTES = NULL, SEND_APP_DT = NULL
3740
			WHERE REQ_ID=@p_TRN_ID
3741
			SET @p_MESSAGE =N'Trả về thành công'
3742
      
3743
      --PHUCVH 16/11/22 UPDATE TÀI SẢN XONG GIAO DỊCH
3744
      UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
3745
      WHERE ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @p_TRN_ID)
3746

    
3747
      UPDATE TR_REQUEST_SHOP_COSTCENTER SET NOTES = NULL, RE_CONTENT = NULL, QUANTITY = 0, ASS_STATUS = NULL,  CHECKER_ID = NULL, APPROVE_DT = NULL, AUTH_STATUS = 'E', MAKER_ID = NULL, CREATE_DT = NULL WHERE REQ_ID = @p_TRN_ID
3748
      DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID
3749
			INSERT INTO dbo.PL_PROCESS
3750
					(
3751
						REQ_ID,
3752
						PROCESS_ID,
3753
						CHECKER_ID,
3754
						APPROVE_DT,
3755
						PROCESS_DESC,NOTES
3756
					)
3757
					VALUES
3758
					(   @p_TRN_ID,       
3759
						'REJECT',        
3760
						@p_REJECTED_BY,       
3761
						GETDATE(),						
3762
						N'Trả về người tạo',
3763
            @p_REASON    
3764
					)
3765
			
3766
		END
3767
    --khiemchg từ chối phiếu yêu cầu cấp phát tài sản
3768
    ELSE IF(@p_TRN_TYPE ='PYC_CPTS')
3769
		BEGIN
3770
			IF(EXISTS(SELECT trsd.REQ_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.AUTH_STATUS = 'A' AND trsd.REQ_ID = @TRADED_ID))
3771
			BEGIN
3772
				SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu yêu cầu cấp phát tài sản đã được duyệt'
3773
				ROLLBACK TRANSACTION
3774
				SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3775
				RETURN '0'
3776
			END
3777

    
3778
			UPDATE TR_REQUEST_SHOP_DOC
3779
			SET AUTH_STATUS ='R', STATUS = 'REJECT', SEND_APP_DT = NULL
3780
			WHERE REQ_ID=@p_TRN_ID
3781
			SET @p_MESSAGE =N'Trả về thành công'
3782
      
3783
          DELETE PL_REQUEST_PROCESS where REQ_ID =@p_TRN_ID
3784
          UPDATE TR_REQUEST_SHOP_COSTCENTER SET NOTES = NULL, AUTH_STATUS = 'E', CHECKER_ID = NULL WHERE REQ_ID = @p_TRN_ID
3785
          UPDATE TR_REQUEST_SHOP_DOC SET HO_NOTES = NULL, SEND_APP_DT = NULL WHERE REQ_ID = @p_TRN_ID
3786

    
3787
      IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS prp where prp.REQ_ID = @p_TRN_ID AND prp.PROCESS_ID = 'REJECT'))
3788
      BEGIN
3789
        UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'REJECT'
3790
      END
3791
      ELSE
3792
      BEGIN
3793

    
3794
--          DECLARE @temp TABLE(ID INT IDENTITY,REQDT_ID VARCHAR(15),ASS_GROUP VARCHAR(15),QTY DECIMAL)
3795
--          INSERT INTO @temp SELECT REQDT_ID, ASS_GROUP_ID , SUM(ISNULL(QTY_ETM,0)) FROM TR_REQUEST_SHOP_DOC_DT 
3796
--                            WHERE REQ_DOC_ID = @p_TRN_ID AND (TYPE_XL = 'CPDC' OR TYPE_XL = 'CPTK') GROUP BY REQDT_ID, ASS_GROUP_ID
3797
--          DECLARE @INTT INT = 1, @COUNTT INT = (SELECT COUNT(*) FROM @TEMP)
3798
--          WHILE @INTT <= @COUNTT 
3799
--          BEGIN  
3800
--            DECLARE @REQDT VARCHAR(20) = (SELECT REQDT_ID FROM @TEMP WHERE ID = @INTT)
3801
--            DECLARE @SL DECIMAL = (SELECT QTY FROM @TEMP WHERE ID = @INTT)
3802
--            DECLARE @AG VARCHAR(20) = (SELECT ASS_GROUP FROM @TEMP WHERE ID = @INTT)
3803
--            IF(EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_TRN_ID AND ASS_GROUP_ID = @AG AND REQ_DT_TYPE = 'BUYNEW'))
3804
--            BEGIN
3805
--            	UPDATE TR_REQUEST_SHOP_DOC_DT SET QTY_ETM = QTY_ETM + @SL WHERE REQ_DOC_ID = @p_TRN_ID AND ASS_GROUP_ID = @AG AND REQ_DT_TYPE = 'BUYNEW'
3806
--            END
3807
--            ELSE
3808
--            BEGIN
3809
--                DECLARE @l_REQDT_ID VARCHAR(15)
3810
--    			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_SHOP_DOC_DT', @l_REQDT_ID out
3811
--    			IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT
3812
--                	INSERT INTO TR_REQUEST_SHOP_DOC_DT(REQDT_ID, REQ_DOC_ID,
3813
--                    ASS_GROUP_ID, DESCRIPTION, REASON, UNIT_ID, NOTES, 
3814
--                    RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL, RECORD_STATUS, MAKER_ID, CREATE_DT, 
3815
--                    AUTH_STATUS, RECEIVE_EMAIL, REQ_DT_TYPE, QTY_ETM, EMP_ID, TYPE_XL) 
3816
--                    SELECT @l_REQDT_ID, @p_TRN_ID,
3817
--                    ASS_GROUP_ID, DESCRIPTION, REASON, UNIT_ID, NOTES, 
3818
--                    RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL, RECORD_STATUS, MAKER_ID, CREATE_DT, 
3819
--                    AUTH_STATUS, RECEIVE_EMAIL, 'BUYNEW', QTY_ETM, EMP_ID, 'BUYNEW' 
3820
--                    FROM TR_REQUEST_SHOP_DOC_DT WHERE REQDT_ID = @REQDT AND REQ_DOC_ID = @p_TRN_ID
3821
--            END
3822
--            DELETE TR_REQUEST_SHOP_DOC_DT WHERE REQDT_ID = @REQDT AND REQ_DOC_ID = @p_TRN_ID
3823
--
3824
--            SET @INTT = @INTT + 1
3825
--          END
3826
            DELETE TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_TRN_ID AND REQ_DT_TYPE = 'XKSD'
3827
            DELETE TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_TRN_ID AND REQ_DT_TYPE = 'BUYNEW'
3828
          INSERT INTO PL_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD, DEP_ID, DVKD_USER_APP, RECEPTION_DT)
3829
          VALUES (@p_TRN_ID, 'REJECT', 'C', 'GDDV', 'DV0001',@p_REJECTED_BY , GETDATE(), '', 'N', '', '', N'Từ chối phiếu', 0, '', '', GETDATE());
3830
      END
3831
			INSERT INTO dbo.PL_PROCESS
3832
					(
3833
						REQ_ID,
3834
						PROCESS_ID,
3835
						CHECKER_ID,
3836
						APPROVE_DT,
3837
						PROCESS_DESC,NOTES
3838
					)
3839
					VALUES
3840
					(   @p_TRN_ID,       
3841
						'REJECT',        
3842
						@p_REJECTED_BY,       
3843
						GETDATE(), 
3844
						N'Từ chối phiếu', @p_REASON  
3845
					)
3846
			
3847
  	END
3848
    --Phucvh từ chối phiếu yêu cầu thu hồi tài sản
3849
    ELSE IF(@p_TRN_TYPE ='ASS_COLLECT')
3850
		BEGIN     
3851
			IF(EXISTS(SELECT trsd.REQ_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.AUTH_STATUS = 'A' AND trsd.REQ_ID = @p_TRN_ID))
3852
			BEGIN
3853
				SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu yêu cầu thu hồi đã được duyệt'
3854
				ROLLBACK TRANSACTION
3855
				SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3856
				RETURN '0'
3857
			END
3858

    
3859
      --PHUCVH 16/11/22 UPDATE TÀI SẢN XONG GIAO DỊCH
3860
      UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
3861
      WHERE ASSET_ID IN (SELECT A.ASSET_ID FROM TR_REQUEST_DOC_ASSET_DT A WHERE A.REQ_DOC_ID = @p_TRN_ID)
3862

    
3863
			UPDATE TR_REQUEST_SHOP_DOC
3864
			SET AUTH_STATUS ='R', STATUS = 'REJECT', CHECKER_ID = NULL, APPROVE_DT = NULL, HO_NOTES = NULL, SEND_APP_DT = NULL
3865
			WHERE REQ_ID=@p_TRN_ID
3866
			SET @p_MESSAGE =N'Trả về thành công'
3867
      
3868
      UPDATE TR_REQUEST_SHOP_COSTCENTER SET NOTES = NULL, RE_CONTENT = NULL, QUANTITY = 0, ASS_STATUS = NULL,  CHECKER_ID = NULL, APPROVE_DT = NULL, AUTH_STATUS = 'E', MAKER_ID = NULL, CREATE_DT = NULL WHERE REQ_ID = @p_TRN_ID
3869
      DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID
3870
			INSERT INTO dbo.PL_PROCESS
3871
					(
3872
						REQ_ID,
3873
						PROCESS_ID,
3874
						CHECKER_ID,
3875
						APPROVE_DT,
3876
						PROCESS_DESC,NOTES
3877
					)
3878
					VALUES
3879
					(   @p_TRN_ID,       
3880
						'REJECT',        
3881
						@p_REJECTED_BY,       
3882
						GETDATE(), 
3883
						N'Trả về người tạo',
3884
            @p_REASON    
3885
					)
3886
			
3887
		END
3888
    --PHUCVH 16/01/22 ĐIỀU CHUYỂN TÀI SẢN NỘI BỘ
3889
    ELSE IF(@p_TRN_TYPE = 'ASS_PRIVATE_TRANSFER_MUL')
3890
    BEGIN
3891
        IF(EXISTS(SELECT 1 FROM ASS_PRIVATE_TRANSFER_MASTER aptm WHERE aptm.TRANS_MULTI_MASTER_ID = @p_TRN_ID AND aptm.AUTH_STATUS = 'A'))
3892
        BEGIN
3893
            SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu điều chuyển đã được duyệt'
3894
    				ROLLBACK TRANSACTION
3895
    				SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3896
    				RETURN '0'
3897
        END
3898

    
3899
        UPDATE ASS_PRIVATE_TRANSFER_MASTER SET AUTH_STATUS = 'R' WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID
3900

    
3901
        UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL 
3902
        WHERE ASSET_ID IN (SELECT aptd.ASSET_ID FROM ASS_PRIVATE_TRANSFER_DT aptd WHERE aptd.TRANS_MULTI_MASTER_ID = @p_TRN_ID)
3903

    
3904
  			INSERT INTO dbo.PL_PROCESS
3905
  					(
3906
  						REQ_ID,
3907
  						PROCESS_ID,
3908
  						CHECKER_ID,
3909
  						APPROVE_DT,
3910
  						PROCESS_DESC,NOTES
3911
  					)
3912
  					VALUES
3913
  					(   @p_TRN_ID,       
3914
  						'REJECT',        
3915
  						@p_REJECTED_BY,       
3916
  						GETDATE(), 
3917
  						N'Trả về người tạo',
3918
              @p_REASON    
3919
  					)
3920
            SET @p_MESSAGE =N'Trả về thành công'
3921
    END
3922
		--- INSERT VAO BANG CM_REJECT_LOG
3923
		EXEC SYS_CodeMasters_Gen 'CM_REJECT_LOG', @p_LOG_ID out
3924
		IF @p_LOG_ID='' OR @p_LOG_ID IS NULL GOTO ABORT
3925
		INSERT INTO [dbo].[CM_REJECT_LOG] VALUES (@p_LOG_ID,@p_STAGE,@p_TRN_ID,@p_TRN_TYPE,CONVERT(DATETIME,GETDATE(),103),'R',@p_REASON,'Y',@p_REJECTED_BY,CONVERT(DATETIME,GETDATE(),103))
3926
		IF @@Error <> 0 GOTO ABORT
3927
COMMIT TRANSACTION
3928
SELECT '0' as Result, @p_LOG_ID  LOG_ID ,@p_MESSAGE ErrorDesc
3929
RETURN '0'
3930
ABORT:
3931
BEGIN
3932

    
3933
		ROLLBACK TRANSACTION
3934
		SELECT '-1' as Result, '' LOG_ID, '' ErrorDesc
3935
		RETURN '-1'
3936
END
3937
--06032023_secretkey
3938
GO
3939
IF @@ERROR <> 0 SET NOEXEC ON
3940
GO
3941
PRINT N'Altering [dbo].[ASS_ADDNEW_KT_BVB_Upd]'
3942
GO
3943
ALTER PROCEDURE [dbo].[ASS_ADDNEW_KT_BVB_Upd]
3944
	@p_ADDNEW_ID		varchar(15)  = NULL,	
3945
	@p_AMORT_START_DATE	varchar(30)	= NULL,------------THEM NGAY BD KHAU HAO	
3946
	@p_AMORT_END_DATE	varchar(30)	= NULL,------------THEM NGAY BD KHAU HAO	
3947
	@p_AMORT_MONTH		DECIMAL(18,2) = NULL,
3948
	@p_AMORT_RATE		decimal(18,2)  = NULL,	
3949
	@p_CORE_NOTE		nvarchar(500) = NULL,
3950
	@p_ENTRY_BOOKED		varchar(1)	= NULL, --Them de kiem tra co hach toan tai san khi nhap ts khong (Y/N)?			
3951
	@p_MAKER_ID			varchar(15)  = NULL,
3952
	@p_MAKER_ID_KT			varchar(15)  = NULL,
3953
	@p_CREATE_DT		VARCHAR(30) = NULL,
3954
	@p_CHECKER_ID		varchar(15)  = NULL,
3955
	@p_APPROVE_DT		VARCHAR(30) = NULL,	
3956
	@p_POSTED_STATUS	VARCHAR(1) = NULL,
3957
	@p_BRANCH_CREATE	VARCHAR(15) = NULL,
3958
	--
3959
	@p_BUY_DATE			VARCHAR(30) = NULL,
3960
	@p_TYPE_ID			varchar(15)  = NULL,
3961
	@p_GROUP_ID			varchar(15)  = NULL,
3962
	@p_ASSET_NAME		nvarchar(1000)  = NULL,
3963
	@p_ASSET_SERIAL_NO	nvarchar(MAX)  = NULL,
3964
	@p_ASSET_DESC		nvarchar(max) = NULL,
3965
	@p_BRANCH_ID		varchar(15)  = NULL,
3966
	@p_DEPT_ID			varchar(15)  = NULL,---------Them ma phong ban
3967
	@p_EMP_ID			varchar(15)  = NULL,-----------Them Nguoi su dung
3968
	@p_DIVISION_ID		varchar(15)  = NULL,----------Them co so	
3969
	@p_BUY_PRICE		decimal(18)  = NULL,		
3970
	@p_IS_MULTIPLE		varchar(1)  = NULL,
3971
	@p_QTY				int = NULL,
3972
	@p_PO_ID			varchar(15)  = NULL,
3973
	@p_PD_ID			varchar(15)  = NULL, --Them de luu chi tiet PO
3974
	@p_REF_ASSET_ID		varchar(15)  = NULL,
3975
	@p_REF_AMORTIZED_AMT	decimal(18)  = NULL,
3976
	@p_WARRANTY_MONTHS	int = NULL,
3977
	@p_NOTES			nvarchar(1000)  = NULL,		
3978
	@p_ADDNEW_DT		XML = NULL,
3979
	@p_RECORD_STATUS	varchar(1)  = NULL,
3980
	@p_AUTH_STATUS		varchar(1)  = NULL,	
3981
	@p_CONSTRUCT_ID		VARCHAR(15) = NULL,
3982
	@p_ACCOUNT_GL VARCHAR(50),
3983
	@VAT DECIMAL(18,2),
3984
	@PRICE_VAT DECIMAL(18,2),
3985
	--/************ LUCTV ***************/
3986
	@p_ASS_PO_ID VARCHAR(15)= NULL,
3987
	--@l_ADDNEW_ID VARCHAR(15) = NULL,
3988
	@p_PO_CODE VARCHAR(500) = NULL,
3989
	@p_PR_CODE VARCHAR(500) = NULL,
3990
	@p_INVOICE_NO VARCHAR(500) = NULL,
3991
	@p_INVOICE_SYMPOL VARCHAR(500) = NULL,
3992
	@p_INVOICE_DT VARCHAR(20) = NULL
3993
     ,@p_WIN          VARCHAR(1) NULL
3994
     ,@p_OFFICE          VARCHAR(1) NULL
3995
 ,@p_PL_CODE       VARCHAR(50) NULL
3996
AS
3997
--IF(@p_PR_CODE IS NULL OR @p_PR_CODE ='')
3998
--BEGIN
3999
--		SELECT '-1' Result, ''  ADDNEW_ID, N'Số PR không được để trống' ErrorDesc
4000
--		RETURN '-1'
4001
--END
4002
IF(@p_INVOICE_NO IS NULL OR @p_INVOICE_NO ='')
4003
BEGIN
4004
		SELECT '-1' Result, @p_ADDNEW_ID  ADDNEW_ID, N'Số hóa đơn không được để trống' ErrorDesc
4005
		RETURN '-1'
4006
END
4007
IF(@p_INVOICE_DT IS NULL OR @p_INVOICE_DT ='')
4008
BEGIN
4009
		SELECT '-1' Result, @p_ADDNEW_ID  ADDNEW_ID, N'Ngày hóa đơn không được để trống' ErrorDesc
4010
		RETURN '-1'
4011
END	
4012
-- GIANT 04/11/2021 @p_TYPE_ID
4013
--IF((@p_BUY_PRICE IS NULL OR @p_BUY_PRICE ='') AND @p_BUY_PRICE >= 30000000 AND @p_TYPE_ID = 'TSCD')
4014
--BEGIN
4015
--		SELECT '-1' Result, ''  ADDNEW_ID, N'Giá trị tài sản phải lớn hơn hoặc bằng 30,000,000 khi thuộc nhóm Tài sản cố định' ErrorDesc
4016
--		RETURN '-1'
4017
--END		
4018
--IF((@p_BUY_PRICE IS NULL OR @p_BUY_PRICE ='') AND @p_BUY_PRICE < 30000000 AND @p_TYPE_ID = 'CCLD')
4019
--BEGIN
4020
--		SELECT '-1' Result, ''  ADDNEW_ID, N'Giá trị tài sản phải bé hơn 30,000,000 khi thuộc nhóm Công cụ lao động' ErrorDesc
4021
--		RETURN '-1'
4022
--END		
4023

    
4024
--IF((@p_AMORT_MONTH IS NULL OR @p_AMORT_MONTH ='') AND EXISTS(SELECT * FROM ASS_GROUP WHERE GROUP_ID = @p_GROUP_ID AND @p_AMORT_MONTH >= AMORT_MONTH_MIN AND @p_AMORT_MONTH <= AMORT_MONTH_MAX))
4025
--BEGIN
4026
--		SELECT '-1' Result, ''  ADDNEW_ID, N'Số tháng khấu hao phải nằm trong (' + (SELECT AMORT_MONTH_MIN FROM ASS_GROUP WHERE GROUP_ID = @p_GROUP_ID) + ' - ' + (SELECT AMORT_MONTH_MAX FROM ASS_GROUP WHERE GROUP_ID = @p_GROUP_ID) + ')' ErrorDesc
4027
--		RETURN '-1'
4028
--END		
4029

    
4030

    
4031

    
4032

    
4033

    
4034
--IF CONVERT(DATE, @p_AMORT_START_DATE, 103) < CONVERT(DATE,@p_CREATE_DT, 103)
4035
--BEGIN
4036
--	SELECT '-1' as Result, '' ADDNEW_ID, N'Ngày bắt đầu phân bổ không được nhỏ hơn ngày hiện tại' ErrorDesc
4037
--	RETURN '-1'
4038
--END
4039
--HCQT KHONG XUAT THI KT KHONG DUOC XUAT - thieuvq bo dieu kien nay 051719 - KT duoc phep khi hc khong xuat
4040
--DECLARE @_PRE_BRANCH_ID VARCHAR(15) = (SELECT BRANCH_ID FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_ADDNEW_ID)
4041
--IF ((@_PRE_BRANCH_ID IS NULL OR @_PRE_BRANCH_ID = '') AND (@p_BRANCH_ID <> ''))
4042
--BEGIN
4043
--	SELECT '-1' as Result, '' ADDNEW_ID, N'Bạn không được xuất sử dụng khi HCQT chưa xuất' ErrorDesc
4044
--	RETURN '-1'
4045
--END
4046

    
4047
DECLARE @l_C_TYPE_ID VARCHAR(50) = (SELECT AA.TYPE_ID FROM ASS_ADDNEW AA WHERE AA.ADDNEW_ID = @p_ADDNEW_ID)
4048
DECLARE @l_C_GR_ID VARCHAR(50) = (SELECT AA.GROUP_ID FROM ASS_ADDNEW AA WHERE AA.ADDNEW_ID = @p_ADDNEW_ID)
4049
DECLARE @l_C_GROUP_CODE VARCHAR(50) = (SELECT AG.GROUP_CODE FROM ASS_GROUP AG WHERE AG.GROUP_ID = @l_C_GR_ID)
4050
DECLARE @l_NEW_GROUP_ID VARCHAR(50) = (SELECT AG.GROUP_ID FROM ASS_GROUP AG WHERE AG.GROUP_CODE = @l_C_GROUP_CODE AND AG.TYPE_ID = @p_TYPE_ID)
4051
IF(@l_C_TYPE_ID <> @p_TYPE_ID)
4052
BEGIN
4053
	IF(NOT EXISTS(SELECT AG.GROUP_ID FROM ASS_GROUP AG WHERE AG.GROUP_CODE = @l_C_GROUP_CODE AND AG.TYPE_ID = @p_TYPE_ID))
4054
    BEGIN
4055
    		SELECT '-1' as Result, @p_ADDNEW_ID ADDNEW_ID, N'Loại tài sản hiện tại không có trong Nhóm tài sản' + @p_TYPE_ID ErrorDesc
4056
        	RETURN '-1'
4057
    END
4058
    ELSE UPDATE ASS_ADDNEW SET GROUP_ID = @l_NEW_GROUP_ID WHERE ADDNEW_ID = @p_ADDNEW_ID
4059
END
4060

    
4061
BEGIN TRANSACTION
4062

    
4063
----BO 2 KY TU DAC BIET & VA < TRONG DIEN GIAI HACH TOAN - THIEUVQ 020719 - BEGIN
4064
SET @p_CORE_NOTE = REPLACE(@p_CORE_NOTE,'&', 'VA')
4065
SET @p_CORE_NOTE = REPLACE(@p_CORE_NOTE,'<', ' ')
4066
--------------END---------------
4067

    
4068
------nhap moi la luon ghi tang tai san Chaunth 031218 - BEGIN -----
4069
IF @p_BRANCH_ID <>'' OR @p_BRANCH_ID IS NOT NULL SET @p_ENTRY_BOOKED = 'Y'
4070
--END----------
4071
	UPDATE ASS_ADDNEW
4072
	SET 		
4073
		[AMORT_START_DATE]	= (CASE WHEN @p_AMORT_START_DATE IS NULL OR @p_AMORT_START_DATE = '' THEN NULL ELSE CONVERT(DATETIME, @p_AMORT_START_DATE, 103) END),-----------Them	
4074
		[AMORT_END_DATE]	= (CASE WHEN @p_AMORT_END_DATE IS NULL OR @p_AMORT_END_DATE = '' THEN NULL ELSE CONVERT(DATETIME, @p_AMORT_END_DATE, 103) END),-----------Them				
4075
		[AMORT_MONTH]		= @p_AMORT_MONTH,
4076
		[AMORT_RATE]		= @p_AMORT_RATE,		
4077
		[CORE_NOTE]			= @p_CORE_NOTE,
4078
		[ENTRY_BOOKED]		= @p_ENTRY_BOOKED, -- THEM KHI NHAP MOI CO TANG TAI SAN KHONG		
4079
		[MAKER_ID_KT]		= @p_MAKER_ID_KT,
4080
		[CREATE_DT_KT]			= GETDATE(),
4081
		--[CHECKER_ID_KT]		= @p_CHECKER_ID,
4082
		--[APPROVE_DT_KT]		=CASE WHEN @p_APPROVE_DT = '' OR @p_APPROVE_DT IS NULL THEN NULL ELSE CONVERT(DATETIME, @p_APPROVE_DT, 103) END,		
4083
		[POSTED_STATUS]		= @p_POSTED_STATUS,-- THEM 14/04/2014
4084
		[BRANCH_CREATE]		= @p_BRANCH_CREATE,-- THEM 14/04/2014
4085
		--
4086
		BUY_DATE = CONVERT(DATETIME,@p_BUY_DATE, 103),
4087
		[TYPE_ID] = @p_TYPE_ID,
4088
		GROUP_ID = @l_NEW_GROUP_ID,
4089
		ASSET_NAME = @p_ASSET_NAME,
4090
		ASSET_SERIAL_NO = @p_ASSET_SERIAL_NO,
4091
		ASSET_DESC = @p_ASSET_DESC,
4092
		BRANCH_ID = @p_BRANCH_ID,
4093
		DEPT_ID = @p_DEPT_ID,
4094
		EMP_ID = @p_EMP_ID,
4095
		DIVISION_ID = @p_DIVISION_ID,
4096
		BUY_PRICE = @p_BUY_PRICE,
4097
		AMORT_AMT = @p_BUY_PRICE,
4098
		IS_MULTIPLE = @p_IS_MULTIPLE,
4099
		QTY = @p_QTY,
4100
		PO_ID = @p_PO_ID,
4101
		PD_ID = @p_PD_ID,
4102
		REF_ASSET_ID = @p_REF_ASSET_ID,
4103
		REF_AMORTIZED_AMT = @p_REF_AMORTIZED_AMT,
4104
		WARRANTY_MONTHS = @p_WARRANTY_MONTHS,
4105
		NOTES = @p_NOTES,		
4106
		RECORD_STATUS = @p_RECORD_STATUS,
4107
		--AUTH_STATUS = @p_AUTH_STATUS,
4108
		CONSTRUCT_ID = @p_CONSTRUCT_ID,
4109
		--
4110
		[ACCOUNT_GL] = @p_ACCOUNT_GL,
4111
		[VAT] = @VAT,
4112
		[PRICE_VAT] = @PRICE_VAT,
4113
		---khiemchg BO SUNG CAP NHAT AUTH_STATUS =E cho gửi phê duyệt
4114
		AUTH_STATUS_KT='E',
4115
        PR_CODE = @p_PR_CODE
4116
      ,WIN_CRACK = @p_WIN
4117
      ,OFFICE_CRACK = @p_OFFICE, PL_CODE = @p_PL_CODE
4118
	WHERE ADDNEW_ID = @p_ADDNEW_ID
4119
	IF @@Error <> 0 GOTO ABORT
4120
SET @p_ASS_PO_ID = (SELECT AA.PO_ID FROM ASS_ADDNEW AA WHERE AA.ADDNEW_ID = @p_ADDNEW_ID)
4121
	UPDATE ASS_PO
4122
	SET PO_CODE=@p_PO_CODE,
4123
	    INVOICE_DATE = CONVERT(DATETIME,@p_INVOICE_DT,103),
4124
		INVOICE_NO =@p_INVOICE_NO, INVOICE_SYMPOL = @p_INVOICE_SYMPOL,
4125
		ADDNEW_ID =@p_ADDNEW_ID
4126
		WHERE ASSPO_ID = @p_ASS_PO_ID
4127
	IF @@Error <> 0 GOTO ABORT
4128
	
4129
	-- HUYHT 06/05/2022: XÓA CÁC PROCESS UPDATE CŨ
4130
	DELETE dbo.PL_PROCESS WHERE REQ_ID = @p_ADDNEW_ID AND PROCESS_ID = 'UPDATE'
4131
		-- GIANT Insert to table PL_PROCESS
4132
	INSERT INTO dbo.PL_PROCESS
4133
					(
4134
					    REQ_ID,
4135
					    PROCESS_ID,
4136
					    CHECKER_ID,
4137
					    APPROVE_DT,
4138
					    PROCESS_DESC,
4139
					    NOTES
4140
					)
4141
					VALUES
4142
					(   @p_ADDNEW_ID,       
4143
						'UPDATE',
4144
					    @p_MAKER_ID_KT,        
4145
					    GETDATE(), 
4146
					    N'Giao dịch viên cập nhật hạch toán thành công' ,      
4147
					    N'Giao dịch viên cập nhật hạch toán'       
4148
					 )
4149

    
4150
COMMIT TRANSACTION
4151
SELECT '0' as Result, @p_ADDNEW_ID  ADDNEW_ID, '' ErrorDesc
4152
RETURN '0'
4153
ABORT:
4154
BEGIN
4155
		ROLLBACK TRANSACTION
4156
		SELECT '-1' as Result, @p_ADDNEW_ID ADDNEW_ID, '' ErrorDesc
4157
		RETURN '-1'
4158
End
4159
IF @@ERROR <> 0 SET NOEXEC ON
4160
GO
4161
PRINT N'Altering [dbo].[TR_ROLE_NOTIFI_ID]'
4162
GO
4163
ALTER PROCEDURE [dbo].[TR_ROLE_NOTIFI_ID]
4164
@PO_ID	varchar(500),
4165
@TYPE VARCHAR(100),
4166
@p_TLNAME VARCHAR(100)
4167
AS
4168
	DECLARE 
4169
		@BRANCH_CREATE VARCHAR(15),
4170
		@DEP_CREATE VARCHAR(15),
4171
		@BRANCH_TYPE VARCHAR(15),
4172
		@FATHER_ID VARCHAR(15),
4173
		@FLAG VARCHAR(2), -- FLAG = 1: THANH TOÁN / TẠM ỨNG
4174
		@AUTH_STATUS VARCHAR(10),
4175
		@PROCESS VARCHAR(10),
4176
		@MAKER_ID VARCHAR(100),
4177
		@DEP_CODE VARCHAR(15),
4178
		@NV_XL_MS VARCHAR(15),
4179
		@BRANCH_QLTS VARCHAR(15) = 'DV0001',
4180
		@DEP_KT VARCHAR(15) = 'DEP000000000068',--(SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_QLTS')
4181
		@TLFullName_USER_CREATE NVARCHAR(500) = NULL,
4182
		@Email_USER_CREATE VARCHAR(500) = NULL,
4183
		@USER_CREATE_ID INT ,
4184
		@BRANCH_LOGIN VARCHAR(15) = (SELECT TOP 1 TLSUBBRID FROM TL_USER WHERE TLNANME = @p_TLNAME), 
4185
		@DEP_LOGIN VARCHAR(15) = (SELECT TOP 1 DEP_ID FROM TL_USER WHERE TLNANME = @p_TLNAME)
4186
	DECLARE @ROLE_CURRENT VARCHAR(15), @USER_RECIVE_MAIL VARCHAR(15), @REQ_TYPE VARCHAR(15)
4187
	DECLARE @SYS_PREFIX VARCHAR(15),@PAGE NVARCHAR(200)
4188
	DECLARE @l_LST_REQ_ID TABLE (
4189
	[ID] [int] IDENTITY(1,1) NOT NULL,
4190
	[REQ_PAY_ID] [VARCHAR](50) NULL)
4191
	INSERT INTO @l_LST_REQ_ID SELECT VALUE FROM WSISPLIT(@PO_ID,',')
4192
	DECLARE @LST_POID TABLE(ID VARCHAR(15))
4193
	DECLARE @LST_USER_RECIVE TABLE (TLNAME VARCHAR(100))
4194
	DECLARE @LST_USER_RECIVE_PYC TABLE (TLFullName NVARCHAR(500), Email VARCHAR(500), USER_ID INT)
4195
	--- DECLARE TABLE NHAN DU LIEU LA USER NAME DANG O BUOC PHE DUYET HIEN TAI
4196
	DECLARE @PL_PROCESS_CURRENT_SEARCH_TEMP TABLE
4197
	(
4198
	REQ_ID varchar(15),
4199
	PROCESS_ID varchar(10),
4200
	DVDM_NAME nvarchar(500),
4201
	TLNAME nvarchar(255),
4202
	TLFullName nvarchar(255),
4203
	NOTES nvarchar(500)
4204
	)
4205
	-----BAODNQ 5/1/2021 : Thêm gửi mail cho GDDV, TP, PP----------
4206
	DECLARE @p_MAKER_ID VARCHAR(100), @p_ROLE_ID VARCHAR(15), @p_ROLE_NAME VARCHAR(15) 
4207
	DECLARE @LST_ROLE TABLE(ROLE_ID VARCHAR(15), ROLE_NAME VARCHAR(15))
4208
	--------------------------
4209
	IF @TYPE = 'PO'
4210
	BEGIN
4211
		INSERT INTO @LST_POID VALUES(@PO_ID)
4212
		SET @FLAG = 0
4213
	END ELSE
4214
	IF @TYPE = 'USE'
4215
	BEGIN
4216
		INSERT INTO @LST_POID SELECT B.PO_ID 
4217
		FROM ASS_MASTER_PO B WHERE B.ASSET_ID = (SELECT A.ASSET_ID FROM ASS_USE A WHERE A.USE_ID = @PO_ID)
4218
		SET @FLAG = 0
4219
	END ELSE
4220
	IF @TYPE = 'USE_MUILT'
4221
	BEGIN
4222
	    SELECT @BRANCH_CREATE = BRANCH_ID FROM ASS_USE_MULTI_MASTER where USER_MASTER_ID = @PO_ID
4223
		INSERT INTO @LST_USER_RECIVE SELECT TLNANME
4224
		FROM TL_USER 
4225
		WHERE 1=1
4226
				AND TLSUBBRID = @BRANCH_CREATE
4227
				AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV'))
4228
		SET @FLAG = 9
4229
	END ELSE
4230
	IF @TYPE = 'USE_ADDNEW'
4231
	BEGIN
4232
		INSERT INTO @LST_POID SELECT B.PO_ID 
4233
		FROM ASS_ADDNEW_PO B WHERE B.ADDNEW_ID = @PO_ID
4234
		SET @FLAG = 0
4235
	END 	
4236
	-- Tạm ứng 
4237
	ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_SEND_APR')
4238
	BEGIN
4239
		SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =  @PO_ID)
4240
		IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PO_ID AND (TRASFER_USER_RECIVE IS NOT NULL AND TRASFER_USER_RECIVE <>'')))
4241
			BEGIN
4242
				INSERT INTO @LST_USER_RECIVE (TLNAME) 
4243
				(SELECT TRASFER_USER_RECIVE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
4244
			END
4245
			ELSE
4246
			BEGIN
4247
				SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =  @PO_ID)
4248
				SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_ADVANCE_PAYMENT  WHERE REQ_PAY_ID =  @PO_ID)
4249
				SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT  WHERE REQ_PAY_ID =  @PO_ID)
4250
				SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4251
				SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4252
				IF(@BRANCH_TYPE = 'PGD' )
4253
				BEGIN
4254
					INSERT INTO @LST_USER_RECIVE (TLNAME) 
4255
					SELECT TLNANME FROM TL_USER 
4256
					WHERE 1=1
4257
					AND TLSUBBRID = @BRANCH_CREATE
4258
					AND (RoleName IN ('TPGD','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('TPGD','PP')))
4259
				
4260
				END
4261
				ELSE IF(@BRANCH_TYPE = 'CN' )
4262
				BEGIN
4263
					INSERT INTO @LST_USER_RECIVE (TLNAME) 
4264
					SELECT TLNANME FROM TL_USER 
4265
					WHERE 1=1
4266
					AND TLSUBBRID = @BRANCH_CREATE 
4267
					AND (RoleName IN ('GDDV','PGD') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PGD')))
4268
				END
4269
				ELSE IF(@BRANCH_TYPE = 'HS' )
4270
				BEGIN
4271
						INSERT INTO @LST_USER_RECIVE (TLNAME) 
4272
						SELECT TLNANME FROM TL_USER
4273
						WHERE 1=1
4274
						AND TLSUBBRID = @BRANCH_CREATE
4275
						AND SECUR_CODE = @DEP_CREATE
4276
						AND (RoleName IN ('GDDV','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PP')))
4277
				END
4278
			END
4279
	SET @FLAG = 1
4280
	END 
4281
	ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_CONFIRM')
4282
	BEGIN
4283
		SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =  @PO_ID)
4284
		SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_ADVANCE_PAYMENT  WHERE REQ_PAY_ID =  @PO_ID)
4285
		SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT  WHERE REQ_PAY_ID =  @PO_ID)
4286
		SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4287
		SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4288
		SET @REQ_TYPE =(SELECT TOP 1 REQ_TYPE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@PO_ID)
4289
		SET @DEP_CODE =(SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =@DEP_CREATE)
4290
		IF(@BRANCH_TYPE = 'PGD' )
4291
		BEGIN
4292
			INSERT INTO @LST_USER_RECIVE (TLNAME) 
4293
			SELECT TLNANME FROM TL_USER 
4294
			WHERE 1=1
4295
			AND TLSUBBRID = @FATHER_ID
4296
			AND (RoleName IN ('TPGD','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('TPGD','PP')))
4297
			
4298
		END
4299
		ELSE IF(@BRANCH_TYPE = 'CN' )
4300
		BEGIN
4301
			INSERT INTO @LST_USER_RECIVE (TLNAME) 
4302
			SELECT TLNANME FROM TL_USER 
4303
			WHERE 1=1
4304
			AND TLSUBBRID = @BRANCH_CREATE 
4305
			AND (RoleName IN ('GDDV','PGD') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PGD')))
4306
		END
4307
		ELSE IF(@BRANCH_TYPE = 'HS' )
4308
		BEGIN
4309
			IF(EXISTS(SELECT PROCESS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PO_ID AND (PROCESS ='' OR PROCESS IS NULL)))
4310
			BEGIN
4311
				INSERT INTO @LST_USER_RECIVE (TLNAME) 
4312
				SELECT TLNANME FROM TL_USER
4313
				WHERE 1=1
4314
				AND TLSUBBRID = @BRANCH_CREATE
4315
				AND SECUR_CODE = @DEP_CREATE
4316
				AND (RoleName IN ('GDDV','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PP')))
4317
			END
4318
			ELSE
4319
			BEGIN
4320
				
4321
				IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='GDK' AND @REQ_TYPE ='I'))
4322
				BEGIN
4323
					IF(@DEP_CREATE ='DEP000000000014' OR (@DEP_CODE LIKE'%06906%' AND @DEP_CODE <> '0690605'))
4324
					BEGIN
4325
						SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='tunt')
4326
						INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4327
					END
4328
					ELSE IF((@DEP_CODE LIKE'%06909%'))
4329
					BEGIN
4330
						SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='haipv')
4331
						INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4332
					END
4333
					ELSE IF((@DEP_CODE LIKE'%06921%'))
4334
					BEGIN
4335
						SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='cuongpv2')
4336
						INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4337
					END
4338
					ELSE IF((@DEP_CODE LIKE'%06907%'))
4339
					BEGIN
4340
						SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='linhvtk')
4341
						INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4342
					END
4343
					ELSE IF((@DEP_CODE LIKE'%06908%'))
4344
					BEGIN
4345
						SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='nhalc')
4346
						INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4347
					END
4348
				END
4349
				-- NEU CAP TIEP THEO LA PTGD
4350
				ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='PTGD' AND @REQ_TYPE ='I'))
4351
				BEGIN
4352
					IF(@DEP_CREATE ='DEP000000000014' OR (@DEP_CODE LIKE'%06906%' AND @DEP_CODE <> '0690605'))
4353
					BEGIN
4354
						SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='PTGD' AND TLNANME ='hantt')
4355
						INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4356
					END
4357
					ELSE IF(@DEP_CODE ='0690405')
4358
					BEGIN
4359
						SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='PTGD' AND TLNANME ='tupa')
4360
						INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4361
					END
4362
				END
4363
			END
4364
		END
4365
		SET @FLAG = 1
4366
	END 
4367
	ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_APR')
4368
	BEGIN
4369
		 SET @REQ_TYPE =(SELECT TOP 1 REQ_TYPE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@PO_ID)
4370
		--SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =  @PO_ID)
4371
		 SET @BRANCH_CREATE = (SELECT TOP 1 BRANCH_CREATE FROM TR_REQ_ADVANCE_PAYMENT  WHERE REQ_PAY_ID =  @PO_ID)
4372
		 SET @DEP_CREATE = (SELECT TOP 1 DEP_ID FROM TR_REQ_ADVANCE_PAYMENT  WHERE REQ_PAY_ID =  @PO_ID)
4373
		 SET @DEP_CODE =(SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =@DEP_CREATE)
4374
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='TKTGD' AND @REQ_TYPE ='I'))
4375
		BEGIN
4376
			INSERT INTO @LST_USER_RECIVE SELECT TLNANME FROM TL_USER WHERE RoleName ='TKTGD'
4377
		END
4378
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='TKHDQT' AND @REQ_TYPE ='I'))
4379
		BEGIN
4380
			INSERT INTO @LST_USER_RECIVE SELECT TLNANME FROM TL_USER WHERE RoleName ='TKHDQT'
4381
		END
4382
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='TGD' AND @REQ_TYPE ='I'))
4383
		BEGIN
4384
			--SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='TGD')
4385
			--INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4386
			INSERT INTO @LST_USER_RECIVE SELECT TLNANME FROM TL_USER WHERE RoleName ='TGD'
4387
		END
4388
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='HDQT' AND @REQ_TYPE ='I'))
4389
		BEGIN
4390
			--SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='TGD')
4391
			--INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4392
			INSERT INTO @LST_USER_RECIVE SELECT TLNANME FROM TL_USER WHERE RoleName ='HDQT'
4393
		END
4394
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='GDK' AND @REQ_TYPE ='I'))
4395
		BEGIN
4396
			IF(@DEP_CREATE ='DEP000000000014' OR (@DEP_CODE LIKE'%06906%' AND @DEP_CODE <> '0690605'))
4397
			BEGIN
4398
				SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='tunt')
4399
				INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4400
			END
4401
			ELSE IF((@DEP_CODE LIKE'%06909%'))
4402
			BEGIN
4403
				SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='haipv')
4404
				INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4405
			END
4406
			ELSE IF((@DEP_CODE LIKE'%06921%'))
4407
			BEGIN
4408
				SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='cuongpv2')
4409
				INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4410
			END
4411
			ELSE IF((@DEP_CODE LIKE'%06907%'))
4412
			BEGIN
4413
				SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='linhvtk')
4414
				INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4415
			END
4416
			ELSE IF(@DEP_CODE LIKE'%06908%')
4417
			BEGIN
4418
				SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='nhalc')
4419
				INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4420
			END
4421
		END
4422
		IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='PTGD' AND @REQ_TYPE ='I'))
4423
		BEGIN
4424
			IF(@DEP_CREATE ='DEP000000000014' OR (@DEP_CODE LIKE'%06906%' AND @DEP_CODE <> '0690605'))
4425
			BEGIN
4426
				SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='PTGD' AND TLNANME ='hantt')
4427
				INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4428
			END
4429
			ELSE IF( @DEP_CODE ='0690405')
4430
			BEGIN
4431
				SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='PTGD' AND TLNANME ='tupa')
4432
				INSERT INTO @LST_USER_RECIVE (TLNAME)  VALUES (@USER_RECIVE_MAIL)
4433
			END
4434
		END
4435
		IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PO_ID AND AUTH_STATUS ='A'))
4436
		BEGIN
4437
			INSERT INTO @LST_USER_RECIVE (TLNAME) 
4438
			SELECT TOP 1 MAKER_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID 
4439
			--INSERT INTO @LST_USER_RECIVE (TLNAME) 
4440
			--SELECT TOP 1 MAKER_ID_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID 
4441
		END
4442
		SET @FLAG = 1
4443
	END
4444
	-- Điều phối tạm ứng/ thanh toán PL_REQUEST_PROCESS_CHILD
4445
	ELSE IF (@TYPE = 'TR_REQ_PAYMENT_TRANSFER')
4446
	BEGIN
4447
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
4448
		SELECT TLNAME FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID) AND TYPE_JOB = 'XL' AND STATUS_JOB ='C'
4449
		SET @FLAG = 1
4450
	END
4451
	-- 
4452
	ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_KT_SEND_APR')
4453
	BEGIN
4454
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
4455
		SELECT TOP 1 TLNAME FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @PO_ID AND TYPE_JOB = 'KS'
4456
		SET @FLAG = 1
4457
	END
4458
	ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_KT_APPR')
4459
	BEGIN
4460
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
4461
		SELECT TOP 1 MAKER_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID 
4462
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
4463
		SELECT TOP 1 MAKER_ID_KT FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID 
4464
		SET @FLAG = 1
4465
	END
4466
	-- Thanh toán
4467
	ELSE IF (@TYPE = 'TR_REQ_PAYMENT_SEND_APR')
4468
	BEGIN
4469
		SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =  @PO_ID)
4470
			IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@PO_ID AND (TRASFER_USER_RECIVE IS NOT NULL AND TRASFER_USER_RECIVE <>'')))
4471
			BEGIN
4472
				INSERT INTO @LST_USER_RECIVE (TLNAME) 
4473
				(SELECT TRASFER_USER_RECIVE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
4474
			END
4475
			ELSE
4476
			BEGIN
4477
				SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =  @PO_ID)
4478
				SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_PAYMENT  WHERE REQ_PAY_ID =  @PO_ID)
4479
				SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_PAYMENT  WHERE REQ_PAY_ID =  @PO_ID)
4480
				SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4481
				SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4482
				IF(@BRANCH_TYPE = 'PGD' )
4483
				BEGIN
4484
					INSERT INTO @LST_USER_RECIVE (TLNAME) 
4485
					SELECT TLNANME FROM TL_USER 
4486
					WHERE 1=1
4487
					AND TLSUBBRID = @BRANCH_CREATE
4488
					AND (RoleName IN ('TPGD','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('TPGD','PP')))
4489
				END
4490
				ELSE IF(@BRANCH_TYPE = 'CN' )
4491
				BEGIN
4492
					INSERT INTO @LST_USER_RECIVE (TLNAME) 
4493
					SELECT TLNANME FROM TL_USER 
4494
					WHERE 1=1
4495
					AND TLSUBBRID = @BRANCH_CREATE 
4496
					AND (RoleName IN ('GDDV','PGD') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PGD')))
4497
				END
4498
				ELSE IF(@BRANCH_TYPE = 'HS' )
4499
				BEGIN
4500
					INSERT INTO @LST_USER_RECIVE (TLNAME) 
4501
					SELECT TLNANME FROM TL_USER
4502
					WHERE 1=1
4503
					AND TLSUBBRID = @BRANCH_CREATE
4504
					AND SECUR_CODE = @DEP_CREATE
4505
					AND (RoleName IN ('GDDV','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PP')))
4506
				END
4507
			END
4508
			SET @FLAG = 1
4509
	END 
4510
	ELSE IF(@TYPE = 'TR_REQ_PAYMENT_APR')
4511
	BEGIN
4512
		SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =  @PO_ID)
4513
		IF(@AUTH_STATUS  = 'A')
4514
		BEGIN
4515
			SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =  @PO_ID)
4516
			SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_PAYMENT  WHERE REQ_PAY_ID =  @PO_ID)
4517
			SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_PAYMENT  WHERE REQ_PAY_ID =  @PO_ID)
4518
			SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4519
			SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4520
			INSERT INTO @LST_USER_RECIVE (TLNAME) 
4521
			SELECT TLNANME FROM TL_USER 
4522
			WHERE 1=1
4523
			--AND TLSUBBRID = @BRANCH_CREATE 
4524
			AND (RoleName = 'KSV' OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW = 'KSV'))
4525
			AND TLSUBBRID = 'DV0001' AND SECUR_CODE ='DEP000000000022'
4526
			SET @FLAG = 1
4527
		END
4528
	END
4529
	ELSE IF(@TYPE = 'TR_REQ_PAYMENT_CONFIRM')
4530
	BEGIN
4531
		SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =  @PO_ID)
4532
		SET @PROCESS = ( SELECT TOP 1 PROCESS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =  @PO_ID)
4533
		IF(@AUTH_STATUS  = 'U' AND @PROCESS = '0')
4534
		BEGIN
4535
			SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =  @PO_ID)
4536
			SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_PAYMENT  WHERE REQ_PAY_ID =  @PO_ID)
4537
			SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_PAYMENT  WHERE REQ_PAY_ID =  @PO_ID)
4538
			SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4539
			SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4540
			IF(@BRANCH_TYPE = 'PGD' )
4541
			BEGIN
4542
				INSERT INTO @LST_USER_RECIVE (TLNAME) 
4543
				SELECT TLNANME FROM TL_USER 
4544
				WHERE 1=1
4545
				AND TLSUBBRID = @FATHER_ID
4546
				AND (RoleName IN ('TPGD','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('TPGD','PP')))
4547
				
4548
			END
4549
			ELSE IF(@BRANCH_TYPE = 'CN' )
4550
			BEGIN
4551
				INSERT INTO @LST_USER_RECIVE (TLNAME) 
4552
				SELECT TLNANME FROM TL_USER 
4553
				WHERE 1=1
4554
				AND TLSUBBRID = @BRANCH_CREATE 
4555
				AND (RoleName IN ('GDDV','PGD') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PGD')))
4556
			END
4557
			ELSE IF(@BRANCH_TYPE = 'HS' )
4558
			BEGIN
4559
				INSERT INTO @LST_USER_RECIVE (TLNAME) 
4560
				SELECT TLNANME FROM TL_USER
4561
				WHERE 1=1
4562
				AND TLSUBBRID = @BRANCH_CREATE
4563
				AND SECUR_CODE = @DEP_CREATE
4564
				AND (RoleName IN ('GDDV','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PP')))
4565
			END
4566
			SET @FLAG = 1
4567
		END
4568
	END
4569
	ELSE IF(@TYPE = 'TR_REQ_PAYMENT_KT_SEND_APR')
4570
	BEGIN
4571
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
4572
		SELECT TOP 1 TLNAME FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @PO_ID AND TYPE_JOB = 'KS'
4573
		SET @FLAG = 1
4574
	END
4575
	ELSE IF(@TYPE = 'TR_REQ_PAYMENT_KT_APR')
4576
	BEGIN
4577
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
4578
		SELECT TOP 1 MAKER_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID 
4579
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
4580
		SELECT TOP 1 MAKER_ID_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID 
4581
		SET @FLAG = 1
4582
	END
4583
	-- Tờ trình chủ trương
4584
	ELSE IF(@TYPE = 'PL_SEND_APP' OR @TYPE ='PL_REQUEST_DOC_App'  OR @TYPE ='REQ_PROCESS_CHILD_Upd' OR @TYPE='REQ_PROCESS_CHILD_App')
4585
	BEGIN
4586
		SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID)
4587
		INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
4588
		EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'TTCT-DVKD'
4589
		SET @FLAG = 2
4590
	END
4591
	ELSE IF(@TYPE='PL_REQ_PROCESS_CHILD_Ins')
4592
	BEGIN
4593
		DECLARE @PLREQ_ID VARCHAR(15)
4594
		WHILE((SELECT COUNT(*) FROM @l_LST_REQ_ID) >0)
4595
		BEGIN
4596
			SET @PLREQ_ID =(SELECT TOP 1 REQ_PAY_ID FROM @l_LST_REQ_ID)
4597
			SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID)
4598
			INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
4599
			EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PLREQ_ID,@MAKER_ID,'TTCT-DVKD'
4600
			DELETE FROM @l_LST_REQ_ID WHERE REQ_PAY_ID =@PLREQ_ID
4601
		END
4602
		SET @FLAG = 2
4603
	END
4604
	ELSE IF(@TYPE='REQUEST_DOC_PROCESS_Approve')
4605
	BEGIN
4606
		IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='APPROVE'))
4607
		BEGIN
4608
			IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='TGD'))
4609
			BEGIN
4610
				SET @FLAG = 2
4611
				--SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID)
4612
				INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
4613
				EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'TTCT-DVKD'
4614
			END
4615
			ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='TGD'))
4616
			BEGIN
4617
				SET @FLAG = 2
4618
				--SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID)
4619
				INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
4620
				EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'TTCT-DVKD'
4621
				INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP (REQ_ID,TLNAME) SELECT @PO_ID, TLNANME FROM TL_USER WHERE RoleName ='TKTGD'
4622
			END
4623
			ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='HDQT'))
4624
			BEGIN
4625
				SET @FLAG = 2
4626
				--SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID)
4627
				INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
4628
				EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'TTCT-DVKD'
4629
				--INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP (REQ_ID,TLNAME) SELECT @PO_ID, TLNANME FROM TL_USER WHERE RoleName ='TKTGD'
4630
			END
4631
		END
4632
		ELSE
4633
		BEGIN
4634
			SET @FLAG = 3
4635
			SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID)
4636
			--INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
4637
			--EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @REQ_ID,@MAKER_ID,'TTCT-DVKD'
4638
		END
4639
	END
4640
	-------------------------------------------------------------------------------------------------------
4641
	----- PHIẾU YÊU CẦU MUA SẮM --------------
4642
	ELSE IF(@TYPE = 'TR_REQUEST_DOC_SendApp' OR @TYPE ='TR_REQUEST_DOC_App' OR @TYPE ='TR_REQ_PROCESS_CHILD_App' OR @TYPE ='TR_REQ_PROCESS_CHILD_Upd' OR @TYPE='REQ_PROCESS_CHILD_App')
4643
	BEGIN
4644
		SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID)
4645
		INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
4646
		EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'PYCMS-DVKD'
4647
		SET @FLAG = 2
4648
	END
4649
	ELSE IF(@TYPE='TR_REQ_PROCESS_CHILD_Ins')
4650
	BEGIN
4651
		
4652
		DECLARE @REQ_DOC_ID VARCHAR(15)
4653
		WHILE((SELECT COUNT(*) FROM @l_LST_REQ_ID) >0)
4654
		BEGIN
4655
			SET @REQ_DOC_ID =(SELECT TOP 1 REQ_PAY_ID FROM @l_LST_REQ_ID)
4656
			SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID)
4657
			INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
4658
			EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @REQ_DOC_ID,@MAKER_ID,'PYCMS-DVKD'
4659
			DELETE FROM @l_LST_REQ_ID WHERE REQ_PAY_ID =@REQ_DOC_ID
4660
		END
4661
		SET @FLAG = 2
4662
	END
4663
	ELSE IF(@TYPE='TR_REQUEST_DOC_PROCESS_Approve')
4664
	BEGIN
4665
		IF(NOT EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='APPROVE'))
4666
		BEGIN
4667
			--SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID)
4668
			INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
4669
			EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'PYCMS-DVKD'
4670
			SET @FLAG = 3
4671
		END
4672
		ELSE
4673
		BEGIN
4674
			SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID)
4675
			SET @NV_XL_MS =(SELECT TOP 1 USER_DVMS FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID)
4676
			SET @FLAG = 4
4677
		END
4678
	END
4679
	------BAODNQ 4/1/2022: --------------
4680
	-----Khai báo DTSD nội bộ - gửi YC phê duyệt-------
4681
	ELSE IF @TYPE='BUD_CONTRACT_MASTER_SEND_APPROVE'
4682
	BEGIN
4683
		-----Có cấp phê duyệt trung gian-------
4684
		IF (EXISTS (SELECT*FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID AND SIGN_USER IS NOT NULL))
4685
		BEGIN
4686
			INSERT INTO @LST_USER_RECIVE (TLNAME) 
4687
					(SELECT A.SIGN_USER FROM BUD_CONTRACT_MASTER A WHERE A.CONTRACT_ID = @PO_ID)
4688
		END
4689
		ELSE
4690
		-----Ko có cấp phê duyệt trung gian-------
4691
		BEGIN
4692
			SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID)
4693
			SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4694
			SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID)
4695
			SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
4696
			IF(@BRANCH_TYPE = 'PGD')
4697
			BEGIN
4698
				INSERT INTO @LST_USER_RECIVE (TLNAME)
4699
						--(SELECT TLNANME FROM TL_USER 
4700
						--WHERE 1=1
4701
						--AND TLSUBBRID = @BRANCH_CREATE
4702
						--AND RoleName IN ('TPGD', 'PPGD'))
4703
						SELECT TLNANME
4704
						FROM TL_USER
4705
						WHERE 1=1
4706
						AND TLSUBBRID = @BRANCH_CREATE
4707
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
4708
			END
4709
			ELSE IF(@BRANCH_TYPE = 'CN')
4710
			BEGIN
4711
				INSERT INTO @LST_USER_RECIVE (TLNAME)
4712
						--(SELECT TLNANME FROM TL_USER 
4713
						--WHERE 1=1
4714
						--AND TLSUBBRID = @BRANCH_CREATE
4715
						--AND RoleName IN ('GDDV', 'PDG'))
4716
						SELECT TLNANME
4717
						FROM TL_USER
4718
						WHERE 1=1
4719
						AND TLSUBBRID = @BRANCH_CREATE
4720
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
4721
			END
4722
			ELSE IF(@BRANCH_TYPE = 'HS')
4723
			BEGIN
4724
				INSERT INTO @LST_USER_RECIVE (TLNAME)
4725
						--(SELECT TLNANME FROM TL_USER 
4726
						--WHERE 1=1
4727
						--AND TLSUBBRID = @BRANCH_CREATE
4728
						--AND DEP_ID = @DEP_CREATE
4729
						--AND RoleName IN ('GDDV', 'PP'))
4730
						SELECT TLNANME
4731
						FROM TL_USER
4732
						WHERE 1=1
4733
						AND TLSUBBRID = @BRANCH_CREATE
4734
						AND DEP_ID = @DEP_CREATE
4735
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
4736
			END
4737
		END
4738
		
4739
		SET @FLAG = 5
4740
	END
4741
	
4742
	-----Khai báo DTSD nội bộ - trung gian duyệt thành công-------
4743
	ELSE IF @TYPE='BUD_CONTRACT_MASTER_CONFIRM'
4744
	BEGIN
4745
		SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID)
4746
		SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4747
		SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID)
4748
		SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
4749
		IF(@BRANCH_TYPE = 'PGD')
4750
		BEGIN
4751
			INSERT INTO @LST_USER_RECIVE (TLNAME)
4752
					--(SELECT TLNANME FROM TL_USER 
4753
					--WHERE 1=1
4754
					--AND TLSUBBRID = @BRANCH_CREATE
4755
					--AND RoleName IN ('TPGD', 'PPGD'))
4756
					SELECT TLNANME
4757
					FROM TL_USER
4758
					WHERE 1=1
4759
					AND TLSUBBRID = @BRANCH_CREATE
4760
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
4761
		END
4762
		ELSE IF(@BRANCH_TYPE = 'CN')
4763
		BEGIN
4764
			INSERT INTO @LST_USER_RECIVE (TLNAME)
4765
					--(SELECT TLNANME FROM TL_USER 
4766
					--WHERE 1=1
4767
					--AND TLSUBBRID = @BRANCH_CREATE
4768
					--AND RoleName IN ('GDDV', 'PDG'))
4769
					SELECT TLNANME
4770
					FROM TL_USER
4771
					WHERE 1=1
4772
					AND TLSUBBRID = @BRANCH_CREATE
4773
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
4774
		END
4775
		ELSE IF(@BRANCH_TYPE = 'HS')
4776
		BEGIN
4777
			INSERT INTO @LST_USER_RECIVE (TLNAME)
4778
					--(SELECT TLNANME FROM TL_USER 
4779
					--WHERE 1=1
4780
					--AND TLSUBBRID = @BRANCH_CREATE
4781
					--AND DEP_ID = @DEP_CREATE
4782
					--AND RoleName IN ('GDDV', 'PP'))
4783
					SELECT TLNANME
4784
					FROM TL_USER
4785
					WHERE 1=1
4786
					AND TLSUBBRID = @BRANCH_CREATE
4787
					AND DEP_ID = @DEP_CREATE
4788
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
4789
		END
4790
		
4791
		SET @FLAG = 5
4792
	END
4793
	-----Khai báo DTSD nội bộ - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-------
4794
	ELSE IF @TYPE='BUD_CONTRACT_MASTER_APPROVED'
4795
	BEGIN
4796
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
4797
					(SELECT A.MAKER_ID FROM BUD_CONTRACT_MASTER A WHERE A.CONTRACT_ID = @PO_ID)
4798
		
4799
		SET @FLAG = 5
4800
	END
4801
	---Quản lý hợp đồng khách thuê - gửi YC phê duyệt-----
4802
	ELSE IF @TYPE='BUD_CONTRACT_CUST_MASTER_SEND_APPROVE'
4803
	BEGIN
4804
		-----Có cấp phê duyệt trung gian-------
4805
		IF (EXISTS (SELECT*FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID AND SIGN_USER IS NOT NULL))
4806
		BEGIN
4807
			INSERT INTO @LST_USER_RECIVE (TLNAME) 
4808
					(SELECT A.SIGN_USER FROM BUD_CONTRACT_CUST_MASTER A WHERE A.CONTRACT_ID = @PO_ID) 
4809
		END	
4810
		ELSE
4811
		-----Ko có cấp phê duyệt trung gian-------
4812
		BEGIN
4813
			SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID)
4814
			SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4815
			SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID)
4816
			SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
4817
			IF(@BRANCH_TYPE = 'PGD')
4818
			BEGIN
4819
				INSERT INTO @LST_USER_RECIVE (TLNAME)
4820
						--SELECT TLNANME FROM TL_USER 
4821
						--WHERE 1=1
4822
						--AND TLSUBBRID = @BRANCH_CREATE
4823
						--AND RoleName IN ('TPGD', 'PP')
4824
						SELECT TLNANME
4825
						FROM TL_USER
4826
						WHERE 1=1
4827
						AND TLSUBBRID = @BRANCH_CREATE
4828
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
4829
			END
4830
			ELSE IF(@BRANCH_TYPE = 'CN')
4831
			BEGIN
4832
				INSERT INTO @LST_USER_RECIVE (TLNAME)
4833
						--SELECT TLNANME FROM TL_USER 
4834
						--WHERE 1=1
4835
						--AND TLSUBBRID = @BRANCH_CREATE
4836
						--AND RoleName IN ('GDDV', 'PDG')
4837
						SELECT TLNANME
4838
						FROM TL_USER
4839
						WHERE 1=1
4840
						AND TLSUBBRID = @BRANCH_CREATE
4841
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
4842
			END
4843
			ELSE IF(@BRANCH_TYPE = 'HS')
4844
			BEGIN
4845
				INSERT INTO @LST_USER_RECIVE (TLNAME)
4846
						--SELECT TLNANME FROM TL_USER 
4847
						--WHERE 1=1
4848
						--AND TLSUBBRID = @BRANCH_CREATE
4849
						--AND DEP_ID = @DEP_CREATE
4850
						--AND RoleName IN ('GDDV', 'PP')
4851
						SELECT TLNANME
4852
						FROM TL_USER
4853
						WHERE 1=1
4854
						AND TLSUBBRID = @BRANCH_CREATE
4855
						AND DEP_ID = @DEP_CREATE
4856
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
4857
			END
4858
		END
4859
		SET @FLAG = 5
4860
	END
4861
	---Quản lý hợp đồng khách thuê - trung gian duyệt thành công-----
4862
	ELSE IF @TYPE='BUD_CONTRACT_CUST_MASTER_CONFIRM'
4863
	BEGIN
4864
		SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID)
4865
		SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4866
		SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID)
4867
		SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
4868
		IF(@BRANCH_TYPE = 'PGD')
4869
		BEGIN
4870
			INSERT INTO @LST_USER_RECIVE (TLNAME)
4871
					--(SELECT TLNANME FROM TL_USER 
4872
					--WHERE 1=1
4873
					--AND TLSUBBRID = @BRANCH_CREATE
4874
					--AND RoleName IN ('TPGD', 'PP'))
4875
					SELECT TLNANME
4876
					FROM TL_USER
4877
					WHERE 1=1
4878
					AND TLSUBBRID = @BRANCH_CREATE
4879
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
4880
		END
4881
		ELSE IF(@BRANCH_TYPE = 'CN')
4882
		BEGIN
4883
			INSERT INTO @LST_USER_RECIVE (TLNAME)
4884
					--(SELECT TLNANME FROM TL_USER 
4885
					--WHERE 1=1
4886
					--AND TLSUBBRID = @BRANCH_CREATE
4887
					--AND RoleName IN ('GDDV', 'PDG'))
4888
					SELECT TLNANME
4889
					FROM TL_USER
4890
					WHERE 1=1
4891
					AND TLSUBBRID = @BRANCH_CREATE
4892
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
4893
		END
4894
		ELSE IF(@BRANCH_TYPE = 'HS')
4895
		BEGIN
4896
			INSERT INTO @LST_USER_RECIVE (TLNAME)
4897
					--(SELECT TLNANME FROM TL_USER 
4898
					--WHERE 1=1
4899
					--AND TLSUBBRID = @BRANCH_CREATE
4900
					--AND DEP_ID = @DEP_CREATE
4901
					--AND RoleName IN ('GDDV', 'PP'))
4902
					SELECT TLNANME
4903
					FROM TL_USER
4904
					WHERE 1=1
4905
					AND TLSUBBRID = @BRANCH_CREATE
4906
					AND DEP_ID = @DEP_CREATE
4907
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
4908
		END
4909
		
4910
		SET @FLAG = 5
4911
	END
4912
	---Quản lý hợp đồng khách thuê - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
4913
	ELSE IF @TYPE='BUD_CONTRACT_CUST_MASTER_APPROVED'
4914
	BEGIN
4915
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
4916
					(SELECT A.MAKER_ID FROM BUD_CONTRACT_CUST_MASTER A WHERE A.CONTRACT_ID = @PO_ID)
4917
		SET @FLAG = 5
4918
	END
4919
	------datmq 7/1/2022: --------------
4920
	-----Quản lý trụ sở - gửi YC phê duyệt-------
4921
	ELSE IF @TYPE='BUD_MASTER_SEND_APPROVE'
4922
	BEGIN
4923
		-----Có cấp phê duyệt trung gian-------
4924
		IF (EXISTS (SELECT*FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID AND SIGN_USER IS NOT NULL))
4925
		BEGIN
4926
			INSERT INTO @LST_USER_RECIVE (TLNAME) 
4927
					(SELECT A.SIGN_USER FROM BUD_MASTER A WHERE A.BUILDING_ID = @PO_ID)
4928
		END
4929
		ELSE
4930
		-----Ko có cấp phê duyệt trung gian-------
4931
		BEGIN
4932
			SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID)
4933
			SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4934
			SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID)
4935
			SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
4936
			IF(@BRANCH_TYPE = 'PGD')
4937
			BEGIN
4938
				INSERT INTO @LST_USER_RECIVE (TLNAME)
4939
						--SELECT TLNANME FROM TL_USER 
4940
						--WHERE 1=1
4941
						--AND TLSUBBRID = @BRANCH_CREATE
4942
						--AND RoleName IN ('TPGD', 'PP')
4943
						SELECT TLNANME
4944
						FROM TL_USER
4945
						WHERE 1=1
4946
						AND TLSUBBRID = @BRANCH_CREATE
4947
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
4948
			END
4949
			ELSE IF(@BRANCH_TYPE = 'CN')
4950
			BEGIN
4951
				INSERT INTO @LST_USER_RECIVE (TLNAME)
4952
						--SELECT TLNANME FROM TL_USER 
4953
						--WHERE 1=1
4954
						--AND TLSUBBRID = @BRANCH_CREATE
4955
						--AND RoleName IN ('GDDV', 'PDG')
4956
						SELECT TLNANME
4957
						FROM TL_USER
4958
						WHERE 1=1
4959
						AND TLSUBBRID = @BRANCH_CREATE
4960
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
4961
			END
4962
			ELSE IF(@BRANCH_TYPE = 'HS')
4963
			BEGIN
4964
				INSERT INTO @LST_USER_RECIVE (TLNAME)
4965
						--SELECT TLNANME FROM TL_USER 
4966
						--WHERE 1=1
4967
						--AND TLSUBBRID = @BRANCH_CREATE
4968
						--AND DEP_ID = @DEP_CREATE
4969
						--AND RoleName IN ('GDDV', 'PP')
4970
						SELECT TLNANME
4971
						FROM TL_USER
4972
						WHERE 1=1
4973
						AND TLSUBBRID = @BRANCH_CREATE
4974
						AND DEP_ID = @DEP_CREATE
4975
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
4976
			END
4977
		END
4978
		SET @FLAG = 6
4979
	END
4980
	-----Quản lý trụ sở - trung gian duyệt thành công-------
4981
	ELSE IF @TYPE='BUD_MASTER_CONFIRM'
4982
	BEGIN
4983
		SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID)
4984
		SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
4985
		SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID)
4986
		SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
4987
		IF(@BRANCH_TYPE = 'PGD')
4988
		BEGIN
4989
			INSERT INTO @LST_USER_RECIVE (TLNAME)
4990
					--(SELECT TLNANME FROM TL_USER 
4991
					--WHERE 1=1
4992
					--AND TLSUBBRID = @BRANCH_CREATE
4993
					--AND RoleName IN ('TPGD', 'PPGD'))
4994
					SELECT TLNANME
4995
					FROM TL_USER
4996
					WHERE 1=1
4997
					AND TLSUBBRID = @BRANCH_CREATE
4998
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
4999
		END
5000
		ELSE IF(@BRANCH_TYPE = 'CN')
5001
		BEGIN
5002
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5003
					--(SELECT TLNANME FROM TL_USER 
5004
					--WHERE 1=1
5005
					--AND TLSUBBRID = @BRANCH_CREATE
5006
					--AND RoleName IN ('GDDV', 'PDG'))
5007
					SELECT TLNANME
5008
					FROM TL_USER
5009
					WHERE 1=1
5010
					AND TLSUBBRID = @BRANCH_CREATE
5011
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
5012
		END
5013
		ELSE IF(@BRANCH_TYPE = 'HS')
5014
		BEGIN
5015
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5016
					--(SELECT TLNANME FROM TL_USER 
5017
					--WHERE 1=1
5018
					--AND TLSUBBRID = @BRANCH_CREATE
5019
					--AND DEP_ID = @DEP_CREATE
5020
					--AND RoleName IN ('GDDV', 'PP'))
5021
					SELECT TLNANME
5022
					FROM TL_USER
5023
					WHERE 1=1
5024
					AND TLSUBBRID = @BRANCH_CREATE
5025
					AND DEP_ID = @DEP_CREATE
5026
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
5027
		END
5028
		
5029
		SET @FLAG = 6
5030
	END
5031
	---Quản lý trụ sở - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
5032
	ELSE IF @TYPE='BUD_MASTER_APPROVED'
5033
	BEGIN
5034
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
5035
					(SELECT A.MAKER_ID FROM BUD_MASTER A WHERE A.BUILDING_ID = @PO_ID)
5036
		SET @FLAG = 6
5037
	END
5038
	-----PhongNT 15/9/2022: Quản lý TSCĐ/CCLĐ--------
5039
	-- Thêm mới tài sản HCQT
5040
	
5041
	--ELSE IF @TYPE = 'ASS_SEND_TDV'
5042
	--BEGIN
5043
	--	--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
5044
	--	SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
5045
	--	  SELECT SUBSTRING(@PO_ID, PATINDEX('%[a-z]%', @PO_ID), LEN(@PO_ID)) Val
5046
	--	)x)
5047
	--	SELECT @PAGE = sp.ID
5048
	--	FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
5049
		
5050
	-- --   SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID)
5051
	--	--SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
5052
	--	--SET @p_MAKER_ID = (SELECT MAKER_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID)
5053
	--	--SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
5054
	--	IF(@PAGE='ASS_ADDNEW')
5055
	--		BEGIN
5056
	--			SELECT @BRANCH_CREATE = B.TLSUBBRID, @BRANCH_TYPE = B.BRANCH_TYPE, @DEP_CREATE = B.DEP_ID
5057
	--			FROM (SELECT MAKER_ID FROM ASS_ADDNEW WHERE ADDNEW_ID =@PO_ID) A
5058
	--			LEFT JOIN TL_USER B ON  B.TLNANME = A.MAKER_ID
5059
	--		END
5060
	--	ELSE IF(@PAGE='ASS_COLLECT_MULTI_MASTER')
5061
	--		BEGIN
5062
	--			SELECT @BRANCH_CREATE=B.TLSUBBRID, @BRANCH_TYPE =B.BRANCH_TYPE, @DEP_CREATE = B.DEP_ID
5063
	--			FROM (SELECT MAKER_ID FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID =@PO_ID) A
5064
	--			LEFT JOIN TL_USER B ON  B.TLNANME = A.MAKER_ID
5065
	--		END
5066
	--	ELSE IF(@PAGE='ASS_TRANSFER_MULTI_MASTER')
5067
	--		BEGIN
5068
	--			SELECT @BRANCH_CREATE=B.TLSUBBRID, @BRANCH_TYPE =B.BRANCH_TYPE, @DEP_CREATE = B.DEP_ID
5069
	--			FROM (SELECT MAKER_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID =@PO_ID) A
5070
	--			LEFT JOIN TL_USER B ON  B.TLNANME = A.MAKER_ID
5071
	--		END
5072
	--	ELSE IF(@PAGE='ASS_USE_MULTI_MASTER')
5073
	--		BEGIN
5074
	--			SELECT @BRANCH_CREATE=B.TLSUBBRID, @BRANCH_TYPE =B.BRANCH_TYPE, @DEP_CREATE = B.DEP_ID
5075
	--			FROM (SELECT MAKER_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID =@PO_ID) A
5076
	--			LEFT JOIN TL_USER B ON  B.TLNANME = A.MAKER_ID	
5077
	--		END
5078
	--	ELSE IF(@PAGE='ASS_LIQUIDATION')
5079
	--		BEGIN
5080
	--			SELECT @BRANCH_CREATE=B.TLSUBBRID, @BRANCH_TYPE =B.BRANCH_TYPE, @DEP_CREATE = B.DEP_ID
5081
	--			FROM (SELECT MAKER_ID FROM ASS_LIQUIDATION WHERE LIQ_ID =@PO_ID) A
5082
	--			LEFT JOIN TL_USER B ON  B.TLNANME = A.MAKER_ID	
5083
	--		END
5084
	--	IF (@BRANCH_TYPE = 'HS')
5085
	--	BEGIN
5086
	--		INSERT INTO @LST_USER_RECIVE (TLNAME)
5087
	--			(SELECT TLNANME FROM TL_USER 
5088
	--			WHERE 1=1
5089
	--			AND TLSUBBRID = @BRANCH_CREATE
5090
	--			AND SECUR_CODE = @DEP_CREATE
5091
	--			AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TP'))
5092
	--			UNION ALL
5093
	--			SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
5094
	--			WHERE 1=1
5095
	--			AND BRANCH_ID = @BRANCH_CREATE
5096
	--			AND DEP_ID = @DEP_CREATE
5097
	--			AND ROLE_NEW IN ('GDDV','TP')
5098
	--			AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
5099
	--			AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
5100
	--	END
5101
	--	ELSE
5102
	--	BEGIN
5103
	--		INSERT INTO @LST_USER_RECIVE (TLNAME)
5104
	--			(SELECT TLNANME FROM TL_USER 
5105
	--			WHERE 1=1
5106
	--			AND TLSUBBRID = @BRANCH_CREATE
5107
	--			AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TPGD'))
5108
	--			UNION ALL
5109
	--			SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
5110
	--			WHERE 1=1
5111
	--			AND BRANCH_ID = @BRANCH_CREATE
5112
	--			AND ROLE_NEW IN ('GDDV','TPGD')
5113
	--			AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
5114
	--			AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
5115
	--	END
5116
	--	SET @FLAG = 6
5117
	--END
5118
	--ELSE IF @TYPE = 'ASS_SEND_GDV'
5119
	--	BEGIN
5120
	--		INSERT INTO @LST_USER_RECIVE (TLNAME)
5121
	--		 SELECT TLNANME
5122
	--			FROM TL_USER 
5123
	--			WHERE 1=1
5124
	--			AND TLSUBBRID = 'DV0001'
5125
	--			AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDV'))
5126
	--		SET @FLAG = 6
5127
	--	END
5128
	ELSE IF @TYPE = 'ASS_REJECT_GDV'
5129
		BEGIN
5130
		--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
5131
		SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
5132
		  SELECT SUBSTRING(@PO_ID, PATINDEX('%[a-z]%', @PO_ID), LEN(@PO_ID)) Val
5133
		)x)
5134
		SELECT @PAGE = sp.ID
5135
		FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
5136
			IF(@PAGE='ASS_ADDNEW')
5137
			BEGIN
5138
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5139
				(
5140
				SELECT MAKER_ID_KT
5141
				FROM ASS_ADDNEW 
5142
				WHERE ADDNEW_ID = @PO_ID
5143
				)
5144
			END
5145
		ELSE IF(@PAGE='ASS_COLLECT_MULTI_MASTER')
5146
			BEGIN
5147
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5148
				(
5149
				SELECT MAKER_ID_KT
5150
				FROM ASS_COLLECT_MULTI_MASTER 
5151
				WHERE COL_MULTI_MASTER_ID = @PO_ID
5152
				)
5153
			END
5154
		ELSE IF(@PAGE='ASS_TRANSFER_MULTI_MASTER')
5155
			BEGIN
5156
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5157
				(
5158
				SELECT MAKER_ID_KT
5159
				FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
5160
				)
5161
			END
5162
		ELSE IF(@PAGE='ASS_USE_MULTI_MASTER')
5163
			BEGIN
5164
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5165
				(
5166
				SELECT MAKER_ID_KT
5167
				FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
5168
				)
5169
			END
5170
		ELSE IF(@PAGE='ASS_LIQUIDATION')
5171
			BEGIN
5172
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5173
				(
5174
				SELECT MAKER_ID_KT
5175
				FROM ASS_LIQUIDATION WHERE LIQ_ID = @PO_ID
5176
				)
5177
			END
5178
		SET @FLAG = 6
5179
	END
5180
	--ELSE IF @TYPE = 'ASS_SEND_KSV'
5181
	--	BEGIN
5182
	--		INSERT INTO @LST_USER_RECIVE (TLNAME)
5183
	--		 SELECT TLNANME
5184
	--			FROM TL_USER 
5185
	--			WHERE 1=1
5186
	--			AND TLSUBBRID = 'DV0001'
5187
	--			AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('KSV'))
5188
	--		SET @FLAG = 6
5189
	--	END
5190
	ELSE IF @TYPE = 'ASS_APPROVED'
5191
		BEGIN
5192
			--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
5193
			SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
5194
			  SELECT SUBSTRING(@PO_ID, PATINDEX('%[a-z]%', @PO_ID), LEN(@PO_ID)) Val
5195
			)x)
5196
			SELECT @PAGE = sp.ID
5197
			FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
5198
			
5199
		IF(@PAGE='ASS_ADDNEW')
5200
			BEGIN
5201
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5202
				(SELECT MAKER_ID
5203
				FROM ASS_ADDNEW 
5204
				WHERE ADDNEW_ID = @PO_ID
5205
				--UNION
5206
				--SELECT MAKER_ID_KT
5207
				--FROM ASS_ADDNEW 
5208
				--WHERE ADDNEW_ID = @PO_ID
5209
				)
5210
			END
5211
		ELSE IF(@PAGE='ASS_COLLECT_MULTI_MASTER')
5212
			BEGIN
5213
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5214
				(SELECT MAKER_ID
5215
				FROM ASS_COLLECT_MULTI_MASTER 
5216
				WHERE COL_MULTI_MASTER_ID = @PO_ID
5217
				--UNION
5218
				--SELECT MAKER_ID_KT
5219
				--FROM ASS_COLLECT_MULTI_MASTER 
5220
				--WHERE COL_MULTI_MASTER_ID = @PO_ID
5221
				)
5222
			END
5223
		ELSE IF(@PAGE='ASS_TRANSFER_MULTI_MASTER')
5224
			BEGIN
5225
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5226
				(SELECT MAKER_ID
5227
				FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
5228
				--UNION
5229
				--SELECT MAKER_ID_KT
5230
				--FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
5231
				)
5232
			END
5233
		ELSE IF(@PAGE='ASS_USE_MULTI_MASTER')
5234
			BEGIN
5235
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5236
				(SELECT MAKER_ID
5237
				FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
5238
				--UNION
5239
				--SELECT MAKER_ID_KT
5240
				--FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
5241
				)
5242
			END
5243
		ELSE IF(@PAGE='ASS_LIQUIDATION')
5244
			BEGIN
5245
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5246
				(SELECT MAKER_ID
5247
				FROM ASS_LIQUIDATION WHERE LIQ_ID = @PO_ID
5248
				--UNION
5249
				--SELECT MAKER_ID_KT
5250
				--FROM ASS_LIQUIDATION WHERE LIQ_ID = @PO_ID
5251
				)
5252
			END
5253
			SET @FLAG = 6
5254
	END
5255
	ELSE IF @TYPE = 'ASS_SEND_NT'
5256
		BEGIN
5257
			--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
5258
			SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
5259
			  SELECT SUBSTRING(@PO_ID, PATINDEX('%[a-z]%', @PO_ID), LEN(@PO_ID)) Val
5260
			)x)
5261
			SELECT @PAGE = sp.ID
5262
			FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
5263
			
5264
		IF(@PAGE='ASS_ADDNEW')
5265
			BEGIN
5266
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5267
				(SELECT MAKER_ID
5268
				FROM ASS_ADDNEW 
5269
				WHERE ADDNEW_ID = @PO_ID
5270
				)
5271
			END
5272
		ELSE IF(@PAGE='ASS_COLLECT_MULTI_MASTER')
5273
			BEGIN
5274
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5275
				(SELECT MAKER_ID
5276
				FROM ASS_COLLECT_MULTI_MASTER 
5277
				WHERE COL_MULTI_MASTER_ID = @PO_ID
5278
				)
5279
			END
5280
		ELSE IF(@PAGE='ASS_TRANSFER_MULTI_MASTER')
5281
			BEGIN
5282
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5283
				(SELECT MAKER_ID
5284
				FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
5285
				)
5286
			END
5287
		ELSE IF(@PAGE='ASS_USE_MULTI_MASTER')
5288
			BEGIN
5289
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5290
				(SELECT MAKER_ID
5291
				FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
5292
				)
5293
			END
5294
		ELSE IF(@PAGE='ASS_LIQUIDATION')
5295
			BEGIN
5296
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5297
				(SELECT MAKER_ID
5298
				FROM ASS_LIQUIDATION WHERE LIQ_ID = @PO_ID
5299
				)
5300
			END
5301
		ELSE IF(@PAGE = 'ASS_PRIVATE_TRANSFER_MASTER')
5302
			BEGIN
5303
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5304
				(SELECT MAKER_ID
5305
				FROM ASS_PRIVATE_TRANSFER_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
5306
				)
5307
			END
5308
		ELSE IF(@PAGE = 'ASS_REPAIR_MULTI_MASTER')
5309
			BEGIN
5310
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5311
				(SELECT MAKER_ID
5312
				FROM ASS_REPAIR_MULTI_MASTER WHERE REPAIR_MUL_ID = @PO_ID
5313
				)
5314
			END
5315
		ELSE IF(@PAGE = 'ASS_INVENTORY_MASTER')
5316
		BEGIN
5317
		INSERT INTO @LST_USER_RECIVE (TLNAME)
5318
			(SELECT MAKER_ID
5319
			FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @PO_ID
5320
			)
5321
		END
5322
		--TRẢ VỀ NGƯỜI TẠO. PYC DC,SC,TH,CPTS
5323
		SET @REQ_TYPE = (SELECT TOP 1 REQ_TYPE FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @PO_ID)
5324
		IF(@REQ_TYPE IS NOT NULL AND @REQ_TYPE <> '')
5325
		BEGIN
5326
			INSERT INTO @LST_USER_RECIVE(TLNAME)
5327
			SELECT MAKER_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @PO_ID
5328
		END
5329
		
5330
		SET @FLAG = 6
5331
	END
5332
	ELSE IF @TYPE = 'ASS_SEND_CONFIRM'
5333
		BEGIN
5334
			--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
5335
			SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
5336
				SELECT SUBSTRING(@PO_ID, PATINDEX('%[a-z]%', @PO_ID), LEN(@PO_ID)) Val
5337
			)x)
5338
			SELECT @PAGE = sp.ID
5339
			FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
5340
			DECLARE @BRANCH_ID VARCHAR(20),@DEP_ID VARCHAR(20)
5341
		
5342
		PRINT @PAGE
5343
		IF(@PAGE='ASS_COLLECT_MULTI_MASTER')
5344
			BEGIN
5345
				SELECT TOP 1 @BRANCH_CREATE = BRANCH_ID_RECEIVE, @DEP_CREATE = DEPT_ID_RECEIVE,@BRANCH_TYPE =B.BRANCH_TYPE
5346
				FROM  dbo.ASS_COLLECT_MULTI_DT A
5347
				LEFT JOIN dbo.CM_BRANCH B ON A.BRANCH_ID_RECEIVE =B.BRANCH_ID
5348
				WHERE COL_MULTI_MASTER_ID = @PO_ID
5349
				ORDER BY COLLECT_MULTI_ID ASC
5350
			END
5351
		ELSE IF(@PAGE='ASS_USE_MULTI_MASTER')
5352
			BEGIN
5353
				--SELECT TOP 1 @BRANCH_CREATE = A.BRANCH_ID, @DEP_CREATE = DEPT_ID,@BRANCH_TYPE =B.BRANCH_TYPE
5354
				--FROM  dbo.ASS_USE_MULTI_DT A
5355
				--LEFT JOIN dbo.CM_BRANCH B ON A.BRANCH_ID =B.BRANCH_ID
5356
				--WHERE USE_MULTI_ID = @PO_ID
5357
				--ORDER BY USE_MULTI_ID ASC
5358
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5359
				(SELECT MAKER_ID
5360
				FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
5361
				)
5362
			END
5363
		ELSE IF(@PAGE='ASS_ADDNEW')
5364
			BEGIN
5365
				SELECT TOP 1 @BRANCH_CREATE = A.BRANCH_ID, @DEP_CREATE = DEPT_ID,@BRANCH_TYPE =B.BRANCH_TYPE
5366
				FROM  dbo.ASS_ADDNEW A
5367
				LEFT JOIN dbo.CM_BRANCH B ON A.BRANCH_ID =B.BRANCH_ID
5368
				WHERE ADDNEW_ID = @PO_ID
5369
				ORDER BY ADDNEW_ID ASC
5370
			END
5371
			PRINT @BRANCH_CREATE
5372
			PRINT @DEP_CREATE
5373
		--IF (@BRANCH_TYPE = 'HS')
5374
		--BEGIN
5375
		--	INSERT INTO @LST_USER_RECIVE (TLNAME)
5376
		--		(SELECT TLNANME FROM TL_USER 
5377
		--		WHERE 1=1
5378
		--		AND TLSUBBRID = @BRANCH_CREATE
5379
		--		AND SECUR_CODE = @DEP_CREATE
5380
		--		AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TP'))
5381
		--		UNION ALL
5382
		--		SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
5383
		--		WHERE 1=1
5384
		--		AND 
5385
		--		((BRANCH_ID = @BRANCH_ID AND DEP_ID = @DEP_ID)
5386
		--		OR
5387
		--		(BRANCH_ID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE))
5388
		--		AND ROLE_NEW IN ('GDDV','TP')
5389
		--		AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
5390
		--		AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
5391
		--END
5392
		--ELSE
5393
		--BEGIN
5394
		--	INSERT INTO @LST_USER_RECIVE (TLNAME)
5395
		--		(SELECT TLNANME FROM TL_USER 
5396
		--		WHERE 1=1
5397
		--		AND TLSUBBRID = @BRANCH_CREATE
5398
		--		AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TPGD'))
5399
		--		UNION ALL
5400
		--		SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
5401
		--		WHERE 1=1
5402
		--		AND 
5403
		--		((BRANCH_ID = @BRANCH_ID)
5404
		--		OR
5405
		--		(BRANCH_ID = @BRANCH_CREATE))
5406
		--		AND ROLE_NEW IN ('GDDV','TPGD')
5407
		--		AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
5408
		--		AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
5409
		--END
5410
		SET @FLAG =6
5411
	END
5412
	ELSE IF @TYPE ='ASS_TRANSFER_CONFIRM_HANDOVER'
5413
	BEGIN
5414
		SELECT TOP 1 @BRANCH_CREATE=A.BRANCH_ID_OLD,@DEP_CREATE =DEPT_ID_OLD,@BRANCH_TYPE =b.BRANCH_TYPE
5415
		FROM  dbo.ASS_TRANSFER_MULTI_DT A
5416
		LEFT  JOIN dbo.CM_BRANCH B ON B.BRANCH_ID = A.BRANCH_ID_OLD
5417
		ORDER BY TRANSFER_MULTI_ID ASC
5418
		IF (@BRANCH_TYPE = 'HS')
5419
		BEGIN
5420
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5421
				(SELECT TLNANME FROM TL_USER 
5422
				WHERE 1=1
5423
				AND TLSUBBRID = @BRANCH_CREATE
5424
				AND SECUR_CODE = @DEP_CREATE
5425
				AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TP'))
5426
				UNION ALL
5427
				SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
5428
				WHERE 1=1
5429
				AND 
5430
				((BRANCH_ID = @BRANCH_ID AND DEP_ID = @DEP_ID)
5431
				OR
5432
				(BRANCH_ID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE))
5433
				AND ROLE_NEW IN ('GDDV','TP')
5434
				AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
5435
				AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
5436
		END
5437
		ELSE
5438
		BEGIN
5439
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5440
				(SELECT TLNANME FROM TL_USER 
5441
				WHERE 1=1
5442
				AND TLSUBBRID = @BRANCH_CREATE
5443
				AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TPGD'))
5444
				UNION ALL
5445
				SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
5446
				WHERE 1=1
5447
				AND 
5448
				((BRANCH_ID = @BRANCH_ID)
5449
				OR
5450
				(BRANCH_ID = @BRANCH_CREATE))
5451
				AND ROLE_NEW IN ('GDDV','TPGD')
5452
				AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
5453
				AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
5454
		END
5455
	END
5456
	ELSE IF @TYPE ='ASS_TRANSFER_CONFIRM_RECEIVER'
5457
	BEGIN
5458
		SELECT TOP 1 @BRANCH_CREATE=A.BRANCH_ID,@DEP_CREATE =DEPT_ID,@BRANCH_TYPE =b.BRANCH_TYPE
5459
		FROM  dbo.ASS_TRANSFER_MULTI_DT A
5460
		LEFT  JOIN dbo.CM_BRANCH B ON B.BRANCH_ID = A.BRANCH_ID
5461
		ORDER BY TRANSFER_MULTI_ID ASC
5462
		IF (@BRANCH_TYPE = 'HS')
5463
		BEGIN
5464
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5465
				(SELECT TLNANME FROM TL_USER 
5466
				WHERE 1=1
5467
				AND TLSUBBRID = @BRANCH_CREATE
5468
				AND SECUR_CODE = @DEP_CREATE
5469
				AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TP'))
5470
				UNION ALL
5471
				SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
5472
				WHERE 1=1
5473
				AND 
5474
				((BRANCH_ID = @BRANCH_ID AND DEP_ID = @DEP_ID)
5475
				OR
5476
				(BRANCH_ID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE))
5477
				AND ROLE_NEW IN ('GDDV','TP')
5478
				AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
5479
				AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
5480
		END
5481
		ELSE
5482
		BEGIN
5483
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5484
				(SELECT TLNANME FROM TL_USER 
5485
				WHERE 1=1
5486
				AND TLSUBBRID = @BRANCH_CREATE
5487
				AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TPGD'))
5488
				UNION ALL
5489
				SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
5490
				WHERE 1=1
5491
				AND 
5492
				((BRANCH_ID = @BRANCH_ID)
5493
				OR
5494
				(BRANCH_ID = @BRANCH_CREATE))
5495
				AND ROLE_NEW IN ('GDDV','TPGD')
5496
				AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
5497
				AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
5498
		END
5499
	END
5500
	ELSE IF @TYPE ='ASS_INVENTORY_RECIVE_MAIL'
5501
	BEGIN
5502
		INSERT INTO @LST_USER_RECIVE (TLNAME)
5503
		(SELECT PARTY_NAME FROM dbo.ASS_INVENTORY_PARTY_DT WHERE IS_RECIVE_MAIL =1)
5504
	END
5505
	ELSE IF @TYPE ='ASS_INVENTORY_MAIN'
5506
	BEGIN
5507
		INSERT INTO @LST_USER_RECIVE (TLNAME)
5508
		(SELECT PARTY_NAME FROM dbo.ASS_INVENTORY_PARTY_DT WHERE IS_MAIN = 1)
5509
	END
5510
	----------BAODNQ :15/2/2022 --Xử lý gửi mail cho phân hệ Quản lý BDS---------
5511
	---Quản lý BDS- gửi YC phê duyệt-----
5512
	ELSE IF @TYPE='RET_MASTER_SEND_APPROVE'
5513
	BEGIN
5514
		-----Có cấp phê duyệt trung gian-------
5515
		IF (EXISTS (SELECT * FROM RET_MASTER WHERE RET_ID = @PO_ID AND SIGN_USER IS NOT NULL))
5516
		BEGIN
5517
			INSERT INTO @LST_USER_RECIVE (TLNAME) 
5518
					(SELECT A.SIGN_USER FROM RET_MASTER A WHERE A.RET_ID = @PO_ID) 
5519
		END	
5520
		ELSE
5521
		-----Ko có cấp phê duyệt trung gian-------
5522
		BEGIN
5523
			SET @BRANCH_CREATE = 
5524
				(SELECT  B.BRANCH_ID
5525
				FROM RET_MASTER A
5526
				LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
5527
				WHERE RET_ID = @PO_ID)
5528
			SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
5529
			SET @p_MAKER_ID = (SELECT MAKER_ID FROM RET_MASTER WHERE RET_ID = @PO_ID)
5530
			SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
5531
			IF(@BRANCH_TYPE = 'PGD')
5532
			BEGIN
5533
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5534
						--SELECT TLNANME FROM TL_USER 
5535
						--WHERE 1=1
5536
						--AND TLSUBBRID = @BRANCH_CREATE
5537
						--AND RoleName IN ('TPGD', 'PP')
5538
						SELECT TLNANME
5539
						FROM TL_USER
5540
						WHERE 1=1
5541
						AND TLSUBBRID = @BRANCH_CREATE
5542
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
5543
			END
5544
			ELSE IF(@BRANCH_TYPE = 'CN')
5545
			BEGIN
5546
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5547
						--SELECT TLNANME FROM TL_USER 
5548
						--WHERE 1=1
5549
						--AND TLSUBBRID = @BRANCH_CREATE
5550
						--AND RoleName IN ('GDDV', 'PDG')
5551
						SELECT TLNANME
5552
						FROM TL_USER
5553
						WHERE 1=1
5554
						AND TLSUBBRID = @BRANCH_CREATE
5555
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
5556
			END
5557
			ELSE IF(@BRANCH_TYPE = 'HS')
5558
			BEGIN
5559
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5560
						--SELECT TLNANME FROM TL_USER 
5561
						--WHERE 1=1
5562
						--AND TLSUBBRID = @BRANCH_CREATE
5563
						--AND DEP_ID = @DEP_CREATE
5564
						--AND RoleName IN ('GDDV', 'PP')
5565
						SELECT TLNANME
5566
						FROM TL_USER
5567
						WHERE 1=1
5568
						AND TLSUBBRID = @BRANCH_CREATE
5569
						AND DEP_ID = @DEP_CREATE
5570
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
5571
			END
5572
		END
5573
		SET @FLAG = 7
5574
	END
5575
	---Quản lý BDS - trung gian duyệt thành công-----
5576
	ELSE IF @TYPE='RET_MASTER_CONFIRM'
5577
	BEGIN
5578
		SET @BRANCH_CREATE = 
5579
				(SELECT  B.BRANCH_ID
5580
				FROM RET_MASTER A
5581
				LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
5582
				WHERE RET_ID = @PO_ID)
5583
		SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
5584
		SET @p_MAKER_ID = (SELECT MAKER_ID FROM RET_MASTER WHERE RET_ID = @PO_ID)
5585
		SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
5586
		IF(@BRANCH_TYPE = 'PGD')
5587
		BEGIN
5588
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5589
					--(SELECT TLNANME FROM TL_USER 
5590
					--WHERE 1=1
5591
					--AND TLSUBBRID = @BRANCH_CREATE
5592
					--AND RoleName IN ('TPGD', 'PP'))
5593
					SELECT TLNANME
5594
					FROM TL_USER
5595
					WHERE 1=1
5596
					AND TLSUBBRID = @BRANCH_CREATE
5597
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
5598
		END
5599
		ELSE IF(@BRANCH_TYPE = 'CN')
5600
		BEGIN
5601
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5602
					--(SELECT TLNANME FROM TL_USER 
5603
					--WHERE 1=1
5604
					--AND TLSUBBRID = @BRANCH_CREATE
5605
					--AND RoleName IN ('GDDV', 'PDG'))
5606
					SELECT TLNANME
5607
					FROM TL_USER
5608
					WHERE 1=1
5609
					AND TLSUBBRID = @BRANCH_CREATE
5610
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
5611
		END
5612
		ELSE IF(@BRANCH_TYPE = 'HS')
5613
		BEGIN
5614
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5615
					--(SELECT TLNANME FROM TL_USER 
5616
					--WHERE 1=1
5617
					--AND TLSUBBRID = @BRANCH_CREATE
5618
					--AND DEP_ID = @DEP_CREATE
5619
					--AND RoleName IN ('GDDV', 'PP'))
5620
					SELECT TLNANME
5621
					FROM TL_USER
5622
					WHERE 1=1
5623
					AND TLSUBBRID = @BRANCH_CREATE
5624
					AND DEP_ID = @DEP_CREATE
5625
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
5626
		END
5627
		
5628
		SET @FLAG = 7
5629
	END
5630
	---Quản lý BDS - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
5631
	ELSE IF @TYPE='RET_MASTER_APPROVED'
5632
	BEGIN
5633
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
5634
					(SELECT A.MAKER_ID FROM RET_MASTER A WHERE A.RET_ID = @PO_ID)
5635
		SET @FLAG = 7
5636
	END
5637
	---Thông tin sửa chữa BDS- gửi YC phê duyệt-----
5638
	ELSE IF @TYPE='RET_REPAIR_SEND_APPROVE'
5639
	BEGIN
5640
		-----Có cấp phê duyệt trung gian-------
5641
		IF (EXISTS (SELECT*FROM RET_REPAIR WHERE RP_ID = @PO_ID AND SIGN_USER IS NOT NULL))
5642
		BEGIN
5643
			INSERT INTO @LST_USER_RECIVE (TLNAME) 
5644
					(SELECT A.SIGN_USER FROM RET_REPAIR A WHERE A.RP_ID = @PO_ID) 
5645
		END	
5646
		ELSE
5647
		-----Ko có cấp phê duyệt trung gian-------
5648
		BEGIN
5649
			SET @BRANCH_CREATE = (SELECT OFFER_BRANCH FROM RET_REPAIR WHERE RP_ID = @PO_ID)
5650
			SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
5651
			SET @p_MAKER_ID = (SELECT MAKER_ID FROM RET_REPAIR WHERE RP_ID = @PO_ID)
5652
			SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
5653
			IF(@BRANCH_TYPE = 'PGD')
5654
			BEGIN
5655
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5656
						--SELECT TLNANME FROM TL_USER 
5657
						--WHERE 1=1
5658
						--AND TLSUBBRID = @BRANCH_CREATE
5659
						--AND RoleName IN ('TPGD', 'PP')
5660
						SELECT TLNANME
5661
						FROM TL_USER
5662
						WHERE 1=1
5663
						AND TLSUBBRID = @BRANCH_CREATE
5664
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
5665
			END
5666
			ELSE IF(@BRANCH_TYPE = 'CN')
5667
			BEGIN
5668
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5669
						--SELECT TLNANME FROM TL_USER 
5670
						--WHERE 1=1
5671
						--AND TLSUBBRID = @BRANCH_CREATE
5672
						--AND RoleName IN ('GDDV', 'PDG')
5673
						SELECT TLNANME
5674
						FROM TL_USER
5675
						WHERE 1=1
5676
						AND TLSUBBRID = @BRANCH_CREATE
5677
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
5678
			END
5679
			ELSE IF(@BRANCH_TYPE = 'HS')
5680
			BEGIN
5681
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5682
						--SELECT TLNANME FROM TL_USER 
5683
						--WHERE 1=1
5684
						--AND TLSUBBRID = @BRANCH_CREATE
5685
						--AND DEP_ID = @DEP_CREATE
5686
						--AND RoleName IN ('GDDV', 'PP')
5687
						SELECT TLNANME
5688
						FROM TL_USER
5689
						WHERE 1=1
5690
						AND TLSUBBRID = @BRANCH_CREATE
5691
						AND DEP_ID = @DEP_CREATE
5692
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
5693
			END
5694
		END
5695
		SET @FLAG = 7
5696
	END
5697
	---Thông tin sửa chữa BDS - trung gian duyệt thành công-----
5698
	ELSE IF @TYPE='RET_REPAIR_CONFIRM'
5699
	BEGIN
5700
		SET @BRANCH_CREATE = (SELECT OFFER_BRANCH FROM RET_REPAIR WHERE RP_ID = @PO_ID)
5701
		SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
5702
		SET @p_MAKER_ID = (SELECT MAKER_ID FROM RET_REPAIR WHERE RP_ID = @PO_ID)
5703
		SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
5704
		IF(@BRANCH_TYPE = 'PGD')
5705
		BEGIN
5706
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5707
					--(SELECT TLNANME FROM TL_USER 
5708
					--WHERE 1=1
5709
					--AND TLSUBBRID = @BRANCH_CREATE
5710
					--AND RoleName IN ('TPGD', 'PP'))
5711
					SELECT TLNANME
5712
					FROM TL_USER
5713
					WHERE 1=1
5714
					AND TLSUBBRID = @BRANCH_CREATE
5715
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
5716
		END
5717
		ELSE IF(@BRANCH_TYPE = 'CN')
5718
		BEGIN
5719
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5720
					--(SELECT TLNANME FROM TL_USER 
5721
					--WHERE 1=1
5722
					--AND TLSUBBRID = @BRANCH_CREATE
5723
					--AND RoleName IN ('GDDV', 'PDG'))
5724
					SELECT TLNANME
5725
					FROM TL_USER
5726
					WHERE 1=1
5727
					AND TLSUBBRID = @BRANCH_CREATE
5728
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
5729
		END
5730
		ELSE IF(@BRANCH_TYPE = 'HS')
5731
		BEGIN
5732
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5733
					--(SELECT TLNANME FROM TL_USER 
5734
					--WHERE 1=1
5735
					--AND TLSUBBRID = @BRANCH_CREATE
5736
					--AND DEP_ID = @DEP_CREATE
5737
					--AND RoleName IN ('GDDV', 'PP'))
5738
					SELECT TLNANME
5739
					FROM TL_USER
5740
					WHERE 1=1
5741
					AND TLSUBBRID = @BRANCH_CREATE
5742
					AND DEP_ID = @DEP_CREATE
5743
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
5744
		END
5745
		
5746
		SET @FLAG = 7
5747
	END
5748
	---Thông tin sửa chữa BDS - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
5749
	ELSE IF @TYPE='RET_REPAIR_APPROVED'
5750
	BEGIN
5751
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
5752
					(SELECT A.MAKER_ID FROM RET_REPAIR A WHERE A.RP_ID = @PO_ID)
5753
		SET @FLAG = 7
5754
	END
5755
	---BDS thuê làm trụ sở CN/PGD - gửi YC phê duyệt-----
5756
	ELSE IF @TYPE='REAL_ESTATE_R_H_SEND_APPROVE'
5757
	BEGIN
5758
		-----Có cấp phê duyệt trung gian-------
5759
		IF (EXISTS (SELECT*FROM REAL_ESTATE_R_H WHERE RET_R_H_ID = @PO_ID AND SIGN_USER IS NOT NULL))
5760
		BEGIN
5761
			INSERT INTO @LST_USER_RECIVE (TLNAME) 
5762
					(SELECT A.SIGN_USER FROM REAL_ESTATE_R_H A WHERE A.RET_R_H_ID = @PO_ID) 
5763
		END	
5764
		ELSE
5765
		-----Ko có cấp phê duyệt trung gian-------
5766
		BEGIN
5767
			SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM REAL_ESTATE_R_H WHERE RET_R_H_ID = @PO_ID)
5768
			SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
5769
			SET @p_MAKER_ID = (SELECT MAKER_ID FROM REAL_ESTATE_R_H WHERE RET_R_H_ID = @PO_ID)
5770
			SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
5771
			IF(@BRANCH_TYPE = 'PGD')
5772
			BEGIN
5773
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5774
						--SELECT TLNANME FROM TL_USER 
5775
						--WHERE 1=1
5776
						--AND TLSUBBRID = @BRANCH_CREATE
5777
						--AND RoleName IN ('TPGD', 'PP')
5778
						SELECT TLNANME
5779
						FROM TL_USER
5780
						WHERE 1=1
5781
						AND TLSUBBRID = @BRANCH_CREATE
5782
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
5783
			END
5784
			ELSE IF(@BRANCH_TYPE = 'CN')
5785
			BEGIN
5786
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5787
						--SELECT TLNANME FROM TL_USER 
5788
						--WHERE 1=1
5789
						--AND TLSUBBRID = @BRANCH_CREATE
5790
						--AND RoleName IN ('GDDV', 'PDG')
5791
						SELECT TLNANME
5792
						FROM TL_USER
5793
						WHERE 1=1
5794
						AND TLSUBBRID = @BRANCH_CREATE
5795
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
5796
			END
5797
			ELSE IF(@BRANCH_TYPE = 'HS')
5798
			BEGIN
5799
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5800
						--SELECT TLNANME FROM TL_USER 
5801
						--WHERE 1=1
5802
						--AND TLSUBBRID = @BRANCH_CREATE
5803
						--AND DEP_ID = @DEP_CREATE
5804
						--AND RoleName IN ('GDDV', 'PP')
5805
						SELECT TLNANME
5806
						FROM TL_USER
5807
						WHERE 1=1
5808
						AND TLSUBBRID = @BRANCH_CREATE
5809
						AND DEP_ID = @DEP_CREATE
5810
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
5811
			END
5812
		END
5813
		SET @FLAG = 7
5814
	END
5815
	---BDS thuê làm trụ sở CN/PGD - trung gian duyệt thành công-----
5816
	ELSE IF @TYPE='REAL_ESTATE_R_H_CONFIRM'
5817
	BEGIN
5818
		SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM REAL_ESTATE_R_H WHERE RET_R_H_ID = @PO_ID)
5819
		SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
5820
		SET @p_MAKER_ID = (SELECT MAKER_ID FROM REAL_ESTATE_R_H WHERE RET_R_H_ID = @PO_ID)
5821
		SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
5822
		IF(@BRANCH_TYPE = 'PGD')
5823
		BEGIN
5824
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5825
					--(SELECT TLNANME FROM TL_USER 
5826
					--WHERE 1=1
5827
					--AND TLSUBBRID = @BRANCH_CREATE
5828
					--AND RoleName IN ('TPGD', 'PP'))
5829
					SELECT TLNANME
5830
					FROM TL_USER
5831
					WHERE 1=1
5832
					AND TLSUBBRID = @BRANCH_CREATE
5833
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
5834
		END
5835
		ELSE IF(@BRANCH_TYPE = 'CN')
5836
		BEGIN
5837
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5838
					--(SELECT TLNANME FROM TL_USER 
5839
					--WHERE 1=1
5840
					--AND TLSUBBRID = @BRANCH_CREATE
5841
					--AND RoleName IN ('GDDV', 'PDG'))
5842
					SELECT TLNANME
5843
					FROM TL_USER
5844
					WHERE 1=1
5845
					AND TLSUBBRID = @BRANCH_CREATE
5846
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
5847
		END
5848
		ELSE IF(@BRANCH_TYPE = 'HS')
5849
		BEGIN
5850
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5851
					--(SELECT TLNANME FROM TL_USER 
5852
					--WHERE 1=1
5853
					--AND TLSUBBRID = @BRANCH_CREATE
5854
					--AND DEP_ID = @DEP_CREATE
5855
					--AND RoleName IN ('GDDV', 'PP'))
5856
					SELECT TLNANME
5857
					FROM TL_USER
5858
					WHERE 1=1
5859
					AND TLSUBBRID = @BRANCH_CREATE
5860
					AND DEP_ID = @DEP_CREATE
5861
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
5862
		END
5863
		
5864
		SET @FLAG = 7
5865
	END
5866
	---BDS thuê làm trụ sở CN/PGD - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
5867
	ELSE IF @TYPE='REAL_ESTATE_R_H_APPROVED'
5868
	BEGIN
5869
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
5870
					(SELECT A.MAKER_ID FROM REAL_ESTATE_R_H A WHERE A.RET_R_H_ID = @PO_ID)
5871
		SET @FLAG = 7
5872
	END
5873
	---BDS đang hoàn thiện thủ tục pháp lý - gửi YC phê duyệt-----
5874
	ELSE IF @TYPE='REAL_ESTATE_L_C_SEND_APPROVE'
5875
	BEGIN
5876
		-----Có cấp phê duyệt trung gian-------
5877
		IF (EXISTS (SELECT*FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @PO_ID AND SIGN_USER IS NOT NULL))
5878
		BEGIN
5879
			INSERT INTO @LST_USER_RECIVE (TLNAME) 
5880
					(SELECT A.SIGN_USER FROM REAL_ESTATE_L_C A WHERE A.RET_L_C_ID = @PO_ID) 
5881
		END	
5882
		ELSE
5883
		-----Ko có cấp phê duyệt trung gian-------
5884
		BEGIN
5885
			SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @PO_ID)
5886
			SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
5887
			SET @p_MAKER_ID = (SELECT MAKER_ID FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @PO_ID)
5888
			SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
5889
			IF(@BRANCH_TYPE = 'PGD')
5890
			BEGIN
5891
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5892
						--SELECT TLNANME FROM TL_USER 
5893
						--WHERE 1=1
5894
						--AND TLSUBBRID = @BRANCH_CREATE
5895
						--AND RoleName IN ('TPGD', 'PP')
5896
						SELECT TLNANME
5897
						FROM TL_USER
5898
						WHERE 1=1
5899
						AND TLSUBBRID = @BRANCH_CREATE
5900
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
5901
			END
5902
			ELSE IF(@BRANCH_TYPE = 'CN')
5903
			BEGIN
5904
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5905
						--SELECT TLNANME FROM TL_USER 
5906
						--WHERE 1=1
5907
						--AND TLSUBBRID = @BRANCH_CREATE
5908
						--AND RoleName IN ('GDDV', 'PDG')
5909
						SELECT TLNANME
5910
						FROM TL_USER
5911
						WHERE 1=1
5912
						AND TLSUBBRID = @BRANCH_CREATE
5913
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
5914
			END
5915
			ELSE IF(@BRANCH_TYPE = 'HS')
5916
			BEGIN
5917
				INSERT INTO @LST_USER_RECIVE (TLNAME)
5918
						--SELECT TLNANME FROM TL_USER 
5919
						--WHERE 1=1
5920
						--AND TLSUBBRID = @BRANCH_CREATE
5921
						--AND DEP_ID = @DEP_CREATE
5922
						--AND RoleName IN ('GDDV', 'PP')
5923
						SELECT TLNANME
5924
						FROM TL_USER
5925
						WHERE 1=1
5926
						AND TLSUBBRID = @BRANCH_CREATE
5927
						AND DEP_ID = @DEP_CREATE
5928
						AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
5929
			END
5930
		END
5931
		SET @FLAG = 7
5932
	END
5933
	---BDS đang hoàn thiện thủ tục pháp lý - trung gian duyệt thành công-----
5934
	ELSE IF @TYPE='REAL_ESTATE_L_C_CONFIRM'
5935
	BEGIN
5936
		SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @PO_ID)
5937
		SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
5938
		SET @p_MAKER_ID = (SELECT MAKER_ID FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @PO_ID)
5939
		SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
5940
		IF(@BRANCH_TYPE = 'PGD')
5941
		BEGIN
5942
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5943
					--(SELECT TLNANME FROM TL_USER 
5944
					--WHERE 1=1
5945
					--AND TLSUBBRID = @BRANCH_CREATE
5946
					--AND RoleName IN ('TPGD', 'PP'))
5947
					SELECT TLNANME
5948
					FROM TL_USER
5949
					WHERE 1=1
5950
					AND TLSUBBRID = @BRANCH_CREATE
5951
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
5952
		END
5953
		ELSE IF(@BRANCH_TYPE = 'CN')
5954
		BEGIN
5955
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5956
					--(SELECT TLNANME FROM TL_USER 
5957
					--WHERE 1=1
5958
					--AND TLSUBBRID = @BRANCH_CREATE
5959
					--AND RoleName IN ('GDDV', 'PDG'))
5960
					SELECT TLNANME
5961
					FROM TL_USER
5962
					WHERE 1=1
5963
					AND TLSUBBRID = @BRANCH_CREATE
5964
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
5965
		END
5966
		ELSE IF(@BRANCH_TYPE = 'HS')
5967
		BEGIN
5968
			INSERT INTO @LST_USER_RECIVE (TLNAME)
5969
					--(SELECT TLNANME FROM TL_USER 
5970
					--WHERE 1=1
5971
					--AND TLSUBBRID = @BRANCH_CREATE
5972
					--AND DEP_ID = @DEP_CREATE
5973
					--AND RoleName IN ('GDDV', 'PP'))
5974
					SELECT TLNANME
5975
					FROM TL_USER
5976
					WHERE 1=1
5977
					AND TLSUBBRID = @BRANCH_CREATE
5978
					AND DEP_ID = @DEP_CREATE
5979
					AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
5980
		END
5981
		
5982
		SET @FLAG = 7
5983
	END
5984
	---BDS đang hoàn thiện thủ tục pháp lý - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
5985
	ELSE IF @TYPE='REAL_ESTATE_L_C_APPROVED'
5986
	BEGIN
5987
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
5988
					(SELECT A.MAKER_ID FROM REAL_ESTATE_L_C A WHERE A.RET_L_C_ID = @PO_ID)
5989
		SET @FLAG = 7
5990
	END
5991
	--PHONGNT 24/2/2022 PHIẾU YÊU CẦU CÔNG TÁC--
5992
	---PHIẾU YÊU CẦU CÔNG TÁC - gửi YC phê duyệt---
5993
	ELSE IF @TYPE='TR_REQUEST_JOB_FORM_SEND_APPROVE'
5994
	BEGIN
5995
		-----Có cấp phê duyệt trung gian-------
5996
		IF (EXISTS (SELECT*FROM TR_REQUEST_JOB_FORM WHERE REQ_ID = @PO_ID AND SIGN_USER IS NOT NULL))
5997
		BEGIN
5998
			INSERT INTO @LST_USER_RECIVE (TLNAME) 
5999
					(SELECT A.SIGN_USER FROM TR_REQUEST_JOB_FORM A WHERE A.REQ_ID = @PO_ID) 
6000
		END	
6001
		ELSE
6002
		-----Ko có cấp phê duyệt trung gian-------
6003
		BEGIN
6004
			SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID = @PO_ID)
6005
			SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
6006
			SET @p_MAKER_ID = (SELECT MAKER_ID FROM TR_REQUEST_JOB_FORM WHERE @PO_ID = @PO_ID)
6007
			SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
6008
			IF(@BRANCH_TYPE = 'PGD')
6009
			BEGIN
6010
				INSERT INTO @LST_USER_RECIVE (TLNAME)
6011
						SELECT TLNANME FROM TL_USER 
6012
						WHERE 1=1
6013
						AND TLSUBBRID = @BRANCH_CREATE
6014
						AND RoleName IN ('TPGD', 'PP')
6015
			END
6016
			ELSE IF(@BRANCH_TYPE = 'CN')
6017
			BEGIN
6018
				INSERT INTO @LST_USER_RECIVE (TLNAME)
6019
						SELECT TLNANME FROM TL_USER 
6020
						WHERE 1=1
6021
						AND TLSUBBRID = @BRANCH_CREATE
6022
						AND RoleName IN ('GDDV', 'PDG')
6023
			END
6024
			ELSE IF(@BRANCH_TYPE = 'HS')
6025
			BEGIN
6026
				INSERT INTO @LST_USER_RECIVE (TLNAME)
6027
						SELECT TLNANME FROM TL_USER 
6028
						WHERE 1=1
6029
						AND TLSUBBRID = @BRANCH_CREATE
6030
						AND DEP_ID = @DEP_CREATE
6031
						AND RoleName IN ('GDDV', 'PP')
6032
			END
6033
		END
6034
		SET @FLAG = 7
6035
	END
6036
	---Phiếu yêu cầu công tác - trung gian duyệt thành công-----
6037
	ELSE IF @TYPE='TR_REQUEST_JOB_FORM_CONFIRM'
6038
	BEGIN
6039
		SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID = @PO_ID)
6040
		SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
6041
		SET @p_MAKER_ID = (SELECT MAKER_ID FROM TR_REQUEST_JOB_FORM WHERE REQ_ID = @PO_ID)
6042
		SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
6043
		IF(@BRANCH_TYPE = 'PGD')
6044
		BEGIN
6045
			INSERT INTO @LST_USER_RECIVE (TLNAME)
6046
					(SELECT TLNANME FROM TL_USER 
6047
					WHERE 1=1
6048
					AND TLSUBBRID = @BRANCH_CREATE
6049
					AND RoleName IN ('TPGD', 'PP'))
6050
		END
6051
		ELSE IF(@BRANCH_TYPE = 'CN')
6052
		BEGIN
6053
			INSERT INTO @LST_USER_RECIVE (TLNAME)
6054
					(SELECT TLNANME FROM TL_USER 
6055
					WHERE 1=1
6056
					AND TLSUBBRID = @BRANCH_CREATE
6057
					AND RoleName IN ('GDDV', 'PDG'))
6058
		END
6059
		ELSE IF(@BRANCH_TYPE = 'HS')
6060
		BEGIN
6061
			INSERT INTO @LST_USER_RECIVE (TLNAME)
6062
					(SELECT TLNANME FROM TL_USER 
6063
					WHERE 1=1
6064
					AND TLSUBBRID = @BRANCH_CREATE
6065
					AND DEP_ID = @DEP_CREATE
6066
					AND RoleName IN ('GDDV', 'PP'))
6067
		END
6068
		
6069
		SET @FLAG = 7
6070
	END
6071
	---Phiếu yêu cầu công tác - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
6072
	ELSE IF @TYPE='TR_REQUEST_JOB_FORM_APPROVED'
6073
	BEGIN
6074
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
6075
					(SELECT A.MAKER_ID FROM TR_REQUEST_JOB_FORM A WHERE A.REQ_ID = @PO_ID)
6076
		SET @FLAG = 7
6077
	END
6078
	--PHONGNT 24/2/2022 PHIẾU YÊU CẦU XE--
6079
	---PHIẾU YÊU CẦU XE - gửi YC phê duyệt---
6080
	ELSE IF @TYPE='TR_REQUEST_CAR_SEND_TDV'
6081
	BEGIN
6082
			SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQUEST_CAR WHERE REQ_ID = @PO_ID)
6083
			SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
6084
			SET @p_MAKER_ID = (SELECT MAKER_ID FROM TR_REQUEST_CAR WHERE REQ_ID = @PO_ID)
6085
			SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
6086
			IF(@BRANCH_TYPE = 'PGD')
6087
			BEGIN
6088
				INSERT INTO @LST_USER_RECIVE (TLNAME)
6089
						SELECT TLNANME FROM TL_USER A
6090
						JOIN AbpUserRoles B ON B.UserId = A.ID
6091
						JOIN AbpRoles C ON C.Id=B.RoleId
6092
						WHERE 1=1
6093
						AND A.TLSUBBRID = @BRANCH_CREATE
6094
						AND C.DisplayName IN ('TPGD', 'PPGD')
6095
			END
6096
			ELSE IF(@BRANCH_TYPE = 'CN')
6097
			BEGIN
6098
				INSERT INTO @LST_USER_RECIVE (TLNAME)
6099
						SELECT TLNANME FROM TL_USER A
6100
						JOIN AbpUserRoles B ON B.UserId = A.ID
6101
						JOIN AbpRoles C ON C.Id=B.RoleId
6102
						WHERE 1=1
6103
						AND A.TLSUBBRID = @BRANCH_CREATE
6104
						AND RoleName IN ('GDDV', 'PDG')
6105
			END
6106
			ELSE IF(@BRANCH_TYPE = 'HS')
6107
			BEGIN
6108
			INSERT INTO @LST_USER_RECIVE (TLNAME)
6109
						SELECT TLNANME FROM TL_USER A
6110
						JOIN AbpUserRoles B ON B.UserId = A.ID
6111
						JOIN AbpRoles C ON C.Id=B.RoleId
6112
						WHERE 1=1
6113
						AND A.TLSUBBRID = @BRANCH_CREATE
6114
						AND A.DEP_ID = @DEP_CREATE
6115
						AND RoleName IN ('GDDV', 'TP','TBP','PP')
6116
			END
6117
		SET @FLAG = 7
6118
	END
6119
	---Phiếu yêu cầu xe - gửi mail cho người cập nhật phiếu-----
6120
	ELSE IF @TYPE='TR_REQUEST_CAR_SEND_USERUPD'
6121
	BEGIN
6122
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
6123
					(SELECT USER_UPDATE FROM TR_REQUEST_CAR  WHERE REQ_ID = @PO_ID) 
6124
		SET @FLAG = 7
6125
	END
6126
	---Phiếu yêu cầu xe - gửi mail cho CVĐĐ Xe-----
6127
	ELSE IF @TYPE='TR_REQUEST_CAR_SEND_CV'
6128
	BEGIN
6129
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
6130
					(SELECT CDVAL FROM CM_ALLCODE  WHERE CDNAME = 'REQCAR') 
6131
		SET @FLAG = 7
6132
	END
6133
	---Phiếu yêu cầu xe - gửi mail cho người tạo-----
6134
	ELSE IF @TYPE='TR_REQUEST_CAR_COST_SEND_MAKER'
6135
	BEGIN
6136
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
6137
					(SELECT MAKER_ID FROM TR_REQUEST_CAR  WHERE REQ_ID = @PO_ID) 
6138
		SET @FLAG = 7
6139
	END
6140
	---Phiếu yêu cầu xe - CVĐĐ Xe đã duyệt, gửi mail cho Lãnh Đạo HC HO-----
6141
	ELSE IF @TYPE='TR_REQUEST_CAR_COST_CV_App'
6142
	BEGIN
6143
		SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQUEST_CAR WHERE REQ_ID = @PO_ID)
6144
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6145
					(SELECT TLNANME FROM TL_USER 
6146
					WHERE 1=1
6147
					AND TLSUBBRID = @BRANCH_CREATE
6148
					AND RoleName IN ('GDDV', 'PP'))
6149
		SET @FLAG = 7
6150
	END
6151
	---Phiếu yêu cầu xe - Gửi CV và người tạo-----
6152
	ELSE IF @TYPE='TR_REQUEST_CAR_SEND_CV_USER'
6153
	BEGIN
6154
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
6155
					(SELECT MAKER_ID FROM TR_REQUEST_CAR  WHERE REQ_ID = @PO_ID) 
6156
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
6157
					(SELECT USER_UPDATE FROM TR_REQUEST_CAR  WHERE REQ_ID = @PO_ID) 
6158
		SET @FLAG = 7
6159
	END
6160
	--DUYHD 18/07/2022 Phiếu đề nghị thanh toán - KT--
6161
	---Phiếu đề nghị thanh toán- KT - gửi mail cho người tạo-----
6162
	ELSE IF @TYPE='REQ_PAYMENT_KT_SEND_MAKER'
6163
	BEGIN
6164
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
6165
					(SELECT MAKER_ID FROM TR_REQ_PAYMENT  WHERE REQ_PAY_ID = @PO_ID) 
6166
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
6167
					(SELECT TLNANME FROM TL_USER WHERE RoleName = 'TGD') 
6168
		SET @FLAG = 8
6169
	END
6170
	---Phiếu đề nghị tạm ứng- KT - gửi mail cho người tạo-----
6171
	ELSE IF @TYPE='REQ_ADVANCE_PAYMENT_KT_SEND_MAKER'
6172
	BEGIN
6173
		INSERT INTO @LST_USER_RECIVE (TLNAME) 
6174
					(SELECT MAKER_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID) 
6175
		SET @FLAG = 8
6176
	END
6177
	--START PHUCVH 06/01/22 GẮN MAIL: ---- PYC: DC,SC,TH,CP ---- SỬA CHỮA TÀI SẢN	---- THU HỒI TÀI SẢN ---- ĐIỀU CHUYỂN NỘI BỘ ---- ĐIỀU CHUYỂN ---- XUẤT SD	---- NHẬP MỚI  ----Thanh Lý
6178
	--PHIẾU YÊU CẦU ĐIỀU CHUYỂN, SỬA CHỮA, THU HỒI
6179
	
6180
	---------------PHIẾU YÊU CẦU ---------------
6181
	
6182
	ELSE IF(@TYPE='PYC_VB_CONFIRM_APPROVE')
6183
	BEGIN
6184
		SET @PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @PO_ID AND STATUS = 'C')
6185
			
6186
		IF(@PROCESS = 'APPROVE')
6187
		BEGIN --PHIẾU DUYỆT HOÀN TẤT. GỬI MAIL BỘ PHẬN QLTS
6188
			SELECT TOP 1 @TLFullName_USER_CREATE = B.TLFullName, @Email_USER_CREATE = B.EMAIL, @USER_CREATE_ID = B.ID
6189
			FROM TR_REQUEST_SHOP_DOC A
6190
			LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
6191
			WHERE REQ_ID = @PO_ID
6192
			INSERT INTO @LST_USER_RECIVE_PYC(TLFullName,Email,USER_ID)
6193
			VALUES('',(SELECT TOP 1 ParaValue FROM SYS_PARAMETERS WHERE ParaKey = 'EMAIL_QLTS_VB'),0),
6194
			(@TLFullName_USER_CREATE,@Email_USER_CREATE,@USER_CREATE_ID)
6195
			
6196
			SET @FLAG = 10
6197
		END
6198
		ELSE IF(@PROCESS = 'CANCEL' OR @PROCESS = 'REJECT')
6199
		BEGIN --PHIẾU BỊ HUỶ HOẶC TRẢ VỀ THÌ GỬI MAIL VỀ CHO NGƯỜI TẠO
6200
			INSERT INTO @LST_USER_RECIVE (TLNAME)
6201
			SELECT MAKER_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @PO_ID
6202
			SET @FLAG = 6
6203
		END
6204
		ELSE
6205
		BEGIN --PHIẾU ĐANG XỬ LÝ -> GỬI TDV, DVCM, GDDV DVCM, TBP, TDV QLTS, TTDVNB
6206
			DECLARE @combinedString VARCHAR(MAX)
6207
			IF(((SELECT STATUS FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @PO_ID) <> 'DVCM') 
6208
				OR ((SELECT STATUS FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @PO_ID) = 'DVCM' AND NOT EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS WHERE REQ_ID = @PO_ID AND STATUS = 'C' AND PROCESS_ID = 'DVCM_D')))
6209
			BEGIN
6210
				SELECT @combinedString = COALESCE(@combinedString + ',', '') +
6211
										(CASE WHEN PL.PROCESS_ID = 'APPROVE' OR PL.PROCESS_ID = 'DONE' THEN NULL
6212
                              				ELSE (SELECT  TOP 1 TLNANME = STUFF(
6213
													(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6214
													FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) A)
6215
											END)
6216
									FROM PL_REQUEST_PROCESS PL 
6217
									WHERE PL.STATUS = 'C' AND PL.REQ_ID = @PO_ID
6218
			END
6219
			ELSE
6220
			BEGIN
6221
				SELECT @combinedString = COALESCE(@combinedString + ',', '') +
6222
						(CASE WHEN PL.PROCESS_ID = 'APPROVE' OR PL.PROCESS_ID = 'DONE' THEN NULL
6223
                            ELSE (SELECT  TOP 1 TLNANME = STUFF(
6224
									(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6225
									FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) A)
6226
							END)
6227
					FROM PL_REQUEST_PROCESS PL 
6228
					WHERE PL.REQ_ID = @PO_ID
6229
					--AND PL.CHECKER_ID = @p_TLNAME 
6230
					AND PL.PROCESS_ID = 'DVCM_D'
6231
					AND PL.DEP_ID IN (SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_TLNAME)
6232
			END
6233
			INSERT INTO @LST_USER_RECIVE (TLNAME)
6234
			SELECT VALUE 
6235
			FROM STRING_SPLIT(@combinedString,',')
6236
			GROUP BY VALUE
6237
			SET @FLAG = 6
6238
		END
6239
	END
6240
	
6241
	---------------ĐIỀU CHUYỂN TÀI SẢN NỘI BỘ ---------------
6242
	
6243
	--ĐIỀU CHUYỂN TÀI SẢN NỘI BỘ
6244
	ELSE IF(@TYPE = 'ASS_PRIVATE_TRANSFER_MASTER_SendAppr')
6245
	BEGIN
6246
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6247
		SELECT VALUE 
6248
		FROM STRING_SPLIT((SELECT DISTINCT (SELECT  TOP 1 TLNANME = STUFF(
6249
										(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',PL.BRANCH_ID,PL.DEPT_CREATE) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6250
									FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',PL.BRANCH_ID,PL.DEPT_CREATE) A) AS TLNAME
6251
							FROM ASS_PRIVATE_TRANSFER_MASTER PL
6252
							WHERE PL.TRANS_MULTI_MASTER_ID = @PO_ID),',')
6253
		GROUP BY VALUE
6254
		SET @FLAG = 6
6255
	END
6256
	--ĐIỀU CHUYỂN TÀI SẢN NỘI BỘ - TDV DUYỆT HOÀN TẤT => GỬI CHO NGƯỜI TẠO
6257
	ELSE IF(@TYPE = 'ASS_PRIVATE_TRANSFER_MASTER_App_SEND_USERCREATE')
6258
	BEGIN
6259
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6260
		SELECT MAKER_ID FROM ASS_PRIVATE_TRANSFER_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
6261
		SET @FLAG = 6
6262
	END
6263
	
6264
	---------------SỬA CHỮA NHIỀU TÀI SẢN ---------------
6265
	
6266
	--SỬA CHỮA NHIỀU TÀI SẢN
6267
	ELSE IF(@TYPE = 'ASS_REPAIR_MULTI_MASTER_SendAppr')
6268
	BEGIN
6269
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6270
		SELECT VALUE 
6271
		FROM STRING_SPLIT((SELECT DISTINCT (SELECT  TOP 1 TLNANME = STUFF(
6272
										(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',B.TLSUBBRID,B.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6273
									FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',B.TLSUBBRID,B.DEP_ID) A) AS TLNAME
6274
							FROM ASS_REPAIR_MULTI_MASTER PL
6275
							LEFT JOIN TL_USER B ON PL.MAKER_ID = B.TLNANME
6276
							WHERE PL.REPAIR_MUL_ID = @PO_ID),',')
6277
		GROUP BY VALUE
6278
		SET @FLAG = 6
6279
	END
6280
	--SỬA CHỮA NHIỀU TÀI SẢN - TDV DUYỆT HOÀN TẤT PHIẾU => GỬI CHO NGƯỜI TẠO
6281
	ELSE IF(@TYPE = 'ASS_REPAIR_MULTI_MASTER_App_SEND_USERCREATE')
6282
	BEGIN
6283
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6284
		SELECT MAKER_ID FROM ASS_REPAIR_MULTI_MASTER WHERE REPAIR_MUL_ID = @PO_ID
6285
		SET @FLAG = 6
6286
	END
6287
	
6288
	---------------THU HỒI TÀI SẢN ---------------
6289
	
6290
	--THU HỒI TÀI SẢN - QLTS (GỬI MAIL CHO GDDV_QLTS DUYỆT)
6291
	ELSE IF(@TYPE = 'ASS_COLLECT_MULTI_MASTER_SendAppr')
6292
	BEGIN
6293
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6294
		SELECT VALUE 
6295
		FROM STRING_SPLIT((SELECT DISTINCT (SELECT  TOP 1 TLNANME = STUFF(
6296
									--	(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS',B.TLSUBBRID,B.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6297
									--FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS',B.TLSUBBRID,B.DEP_ID) A) AS TLNAME
6298
									(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',B.TLSUBBRID,B.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6299
									FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',B.TLSUBBRID,B.DEP_ID) A) AS TLNAME
6300
							FROM ASS_COLLECT_MULTI_MASTER PL
6301
							LEFT JOIN TL_USER B ON PL.MAKER_ID = B.TLNANME
6302
							WHERE PL.COL_MULTI_MASTER_ID = @PO_ID),',')
6303
		GROUP BY VALUE
6304
		SET @FLAG = 6
6305
	END
6306
	--THU HỒI TÀI SẢN - XÁC NHẬN BÀN GIAO TÀI SẢN THU HỒI (GỬI MAIL CHO GDDV_QLTS CỦA TÀI SẢN CẦN THU HỒI) VÀ GỬI MAIL CHO NGƯỜI TẠO
6307
	ELSE IF(@TYPE = 'ASS_COLLECT_MULTI_MASTER_App')
6308
	BEGIN
6309
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6310
		SELECT VALUE 
6311
		FROM STRING_SPLIT((SELECT DISTINCT (SELECT  TOP 1 TLNANME = STUFF(
6312
										(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',PL.BRANCH_ID,PL.DEPT_ID_USE) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6313
									FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',PL.BRANCH_ID,PL.DEPT_ID_USE) A) AS TLNAME
6314
							FROM ASS_COLLECT_MULTI_DT PL
6315
							WHERE PL.COL_MULTI_MASTER_ID = @PO_ID),',')
6316
		GROUP BY VALUE
6317
		--GỬI CHO NGƯỜI TẠO
6318
		INSERT INTO @LST_USER_RECIVE
6319
		VALUES((SELECT TOP 1 MAKER_ID FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @PO_ID))
6320
		SET @FLAG = 6
6321
	END
6322
	--THU HỒI TÀI SẢN - KẾ TOÁN NHẬP (CẬP NHẬT HẠCH TOÁN)
6323
	ELSE IF(@TYPE = 'ASS_COLLECT_CONFIRM_MASTER_Ins')
6324
	BEGIN
6325
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6326
		SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
6327
		--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV','','') GROUP BY TLNANME
6328
		SET @FLAG = 6
6329
	END
6330
	--THU HỒI TÀI SẢN - TDV XÁC NHẬN => GỬI MAIL NGƯỜI TẠO
6331
	--ELSE IF(@TYPE = 'ASS_COLLECT_CONFIRM_MASTER_Ins_SEND_USERCREATE')
6332
	--BEGIN
6333
	--	INSERT INTO @LST_USER_RECIVE (TLNAME)
6334
	--	SELECT MAKER_ID FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @PO_ID
6335
	--	SET @FLAG = 6
6336
	--END
6337
	--THU HỒI TÀI SẢN - KT (DUYỆT) (GDV GỬI KSV PHÊ DUYỆT)
6338
	ELSE IF(@TYPE = 'ASS_COLLECT_MULTI_KT_SendAppr_KT')
6339
	BEGIN
6340
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6341
		SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
6342
		--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV','','') GROUP BY TLNANME
6343
		SET @FLAG = 6
6344
	END
6345
	
6346
	---------------XUẤT SỬ DỤNG TÀI SẢN ---------------
6347
	
6348
	--XUẤT SỬ DỤNG TÀI SẢN - QLTS (QLTS GỬI GDDV_QLTS PHÊ DUYỆT)
6349
	ELSE IF(@TYPE = 'ASS_USE_MUILTI_MASTER_SendAppr')
6350
	BEGIN
6351
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6352
		SELECT VALUE 
6353
		FROM STRING_SPLIT((SELECT DISTINCT (SELECT  TOP 1 TLNANME = STUFF(
6354
									--	(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS,GDDV',PL.BRANCH_CREATE,PL.DEPT_CREATE) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6355
									--FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS,GDDV',PL.BRANCH_CREATE,PL.DEPT_CREATE) A) AS TLNAME
6356
										(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',PL.BRANCH_CREATE,PL.DEPT_CREATE) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6357
									FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',PL.BRANCH_CREATE,PL.DEPT_CREATE) A) AS TLNAME
6358
							FROM ASS_USE_MULTI_MASTER PL
6359
							WHERE PL.USER_MASTER_ID = @PO_ID),',')
6360
		GROUP BY VALUE
6361
		SET @FLAG = 6
6362
	END
6363
	--XUẤT SỬ DỤNG TÀI SẢN - XÁC NHẬN XUẤT SỬ DỤNG TÀI SẢN (GỬI MAIL CHO GDDV NHẬN TÀI SẢN) VÀ GỬI CHO NGƯỜI TẠO
6364
	ELSE IF(@TYPE = 'ASS_USE_MULTI_BVB_MASTER_App')
6365
	BEGIN
6366
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6367
		SELECT VALUE 
6368
		FROM STRING_SPLIT((SELECT DISTINCT (SELECT  TOP 1 TLNANME = STUFF(
6369
										(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',PL.BRANCH_ID,PL.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6370
									FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',PL.BRANCH_ID,PL.DEP_ID) A) AS TLNAME
6371
							FROM ASS_USE_MULTI_MASTER PL
6372
							WHERE PL.USER_MASTER_ID = @PO_ID),',')
6373
		GROUP BY VALUE
6374
		--GỬI CHO NGƯỜI TẠO
6375
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6376
		VALUES ((SELECT TOP 1 MAKER_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID))
6377
		SET @FLAG = 6
6378
	END
6379
	--XUẤT SỬ DỤNG TÀI SẢN - TDV XÁC NHẬN => GỬI MAIL CHO NGƯỜI TẠO
6380
	--ELSE IF(@TYPE = 'ASS_USE_CONFIRM_MASTER_Ins_SEND_USERCREATE')
6381
	--BEGIN
6382
	--		INSERT INTO @LST_USER_RECIVE (TLNAME)
6383
	--		SELECT MAKER_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
6384
	--		SET @FLAG = 6
6385
	--END
6386
	--XUẤT SỬ DỤNG TÀI SẢN - KT DUYỆT HOÀN TẤT => GỬI MAIL CHO NGƯỜI TẠO
6387
	ELSE IF(@TYPE = 'ASS_USE_MULTI_BVB_KT_App')
6388
	BEGIN
6389
			INSERT INTO @LST_USER_RECIVE (TLNAME)
6390
			SELECT MAKER_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
6391
			SET @FLAG = 6
6392
	END
6393
	--XUẤT SỬ DỤNG TÀI SẢN - KẾ TOÁN NHẬP (CẬP NHẬT HẠCH TOÁN)
6394
	ELSE IF(@TYPE = 'ASS_USE_CONFIRM_MASTER_Ins')
6395
	BEGIN
6396
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6397
		SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
6398
		--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV','','') GROUP BY TLNANME
6399
		SET @FLAG = 6
6400
	END
6401
	--XUẤT SỬ DỤNG TÀI SẢN - KT(DUYỆT) (GDV GỬI KSV PHÊ DUYỆT)
6402
	ELSE IF(@TYPE = 'ASS_USE_MUILTI_MASTER_SendAppr_KT')
6403
	BEGIN
6404
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6405
		SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
6406
		--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV','','') GROUP BY TLNANME
6407
		SET @FLAG = 6
6408
	END
6409
	
6410
	---------------NHẬP MỚI TÀI SẢN ---------------
6411
	--NHẬP MỚI TÀI SẢN - QLTS (QLTS GỬI GDDV_QLTS PHÊ DUYỆT)
6412
	ELSE IF(@TYPE = 'ASS_ADDNEW_BVB_SendAppr')
6413
	BEGIN
6414
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6415
		SELECT VALUE 
6416
		FROM STRING_SPLIT((SELECT DISTINCT (SELECT  TOP 1 TLNANME = STUFF(
6417
									--	(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS,GDDV',PL.BRANCH_CREATE,PL.DEPT_CREATE) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6418
									--FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS,GDDV',PL.BRANCH_CREATE,PL.DEPT_CREATE) A) AS TLNAME
6419
									(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',PL.BRANCH_CREATE,PL.DEPT_CREATE) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6420
									FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',PL.BRANCH_CREATE,PL.DEPT_CREATE) A) AS TLNAME
6421
							FROM ASS_ADDNEW PL
6422
							WHERE PL.ADDNEW_ID = @PO_ID),',')
6423
		GROUP BY VALUE
6424
		SET @FLAG = 6
6425
	END
6426
	--NHẬP MỚI TÀI SẢN - KẾ TOÁN NHẬP (CẬP NHẬT HẠCH TOÁN)
6427
	ELSE IF(@TYPE = 'ASS_ADDNEW_QLTS_Appr')
6428
	BEGIN
6429
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6430
		SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
6431
		--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV','','') GROUP BY TLNANME
6432
		SET @FLAG = 6
6433
	END
6434
	--NHẬP MỚI TÀI SẢN - KT(DUYỆT) (GDV GỬI KSV PHÊ DUYỆT)
6435
	ELSE IF(@TYPE = 'ASS_ADDNEW_KT_BVB_SendAppr')
6436
	BEGIN
6437
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6438
		SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
6439
		--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV','','') GROUP BY TLNANME
6440
		SET @FLAG = 6
6441
	END
6442
	
6443
	---------------ĐIỀU CHUYỂN TÀI SẢN ---------------
6444
	
6445
	--ĐIỀU CHUYỂN TÀI SẢN - QLTS (QLTS GỬI GDDV_QLTS PHÊ DUYỆT)
6446
	ELSE IF(@TYPE = 'ASS_TRANSFER_MULTI_Master_SendAppr_S_TDV')
6447
	BEGIN
6448
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6449
		SELECT VALUE 
6450
		FROM string_split((SELECT B.TLNANME
6451
				FROM (SELECT DISTINCT (CASE WHEN PL.PROCESS_ID = 'APPROVE' OR PL.PROCESS_ID = 'DONE' THEN NULL
6452
                              						ELSE (SELECT  TOP 1 TLNANME = STUFF(
6453
															(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6454
															FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) A)
6455
													END) AS TLNANME
6456
											FROM PL_REQUEST_PROCESS PL
6457
											WHERE PL.STATUS = 'C' AND PL.REQ_ID = @PO_ID) B
6458
					GROUP BY B.TLNANME),',')
6459
		SET @FLAG = 6
6460
	END
6461
	--ĐIỀU CHUYỂN TÀI SẢN - TDV GIAO NHẬN XÁC NHẬN => GỬI MAIL CHO NGƯỜI TẠO
6462
	--ELSE IF(@TYPE = 'ASS_TRANSFER_MULTI_MASTER_SendAppr_SEND_USERCREATE')
6463
	--BEGIN
6464
	--	IF(EXISTS(SELECT TOP 1 '1'
6465
	--				FROM ASS_TRANSFER_MULTI_MASTER A
6466
	--				LEFT JOIN PL_REQUEST_PROCESS B ON A.TRANS_MULTI_MASTER_ID = B.REQ_ID
6467
	--				WHERE B.PROCESS_ID = 'APPROVE' AND B.STATUS = 'C' AND A.AUTH_STATUS_KT = 'E' AND A.TRANS_MULTI_MASTER_ID = @PO_ID))
6468
	--	BEGIN
6469
	--		INSERT INTO @LST_USER_RECIVE (TLNAME)
6470
	--		SELECT MAKER_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
6471
	--	END
6472
	--	SET @FLAG = 6
6473
	--END
6474
	--ĐIỀU CHUYỂN TÀI SẢN - KT DUYỆT HOÀN TẤT PHIẾU => GỬI MAIL CHO NGƯỜI TẠO
6475
	ELSE IF(@TYPE = 'ASS_TRANSFER_MULTI_MASTER_KT_App_SEND_USERCREATE')
6476
	BEGIN
6477
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6478
		SELECT MAKER_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
6479
		SET @FLAG = 6
6480
	END
6481
	--ĐIỀU CHUYỂN TÀI SẢN - XÁC NHẬN CỦA BÊN GIAO/NHẬN OR TTDVNB DUYỆT VÀ NGƯỜI TẠO
6482
	ELSE IF(@TYPE = 'ASS_TRANSFER_MULTI_MASTER_APP')
6483
	BEGIN		
6484
		SELECT @combinedString = COALESCE(@combinedString + ',', '') +
6485
											(CASE WHEN PL.PROCESS_ID = 'APPROVE' OR PL.PROCESS_ID = 'DONE' THEN NULL
6486
                              							ELSE (SELECT  TOP 1 TLNANME = STUFF(
6487
																(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6488
																FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) A)
6489
														END)
6490
												FROM PL_REQUEST_PROCESS PL
6491
												WHERE PL.STATUS = 'C' AND PL.REQ_ID = @PO_ID
6492
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6493
		SELECT VALUE 
6494
		FROM string_split(@combinedString,',')
6495
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6496
		VALUES((SELECT TOP 1 MAKER_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID))
6497
		SET @FLAG = 6
6498
	END
6499
	--ĐIỀU CHUYỂN TÀI SẢN - GỬI CHO KẾ TOÁN NHẬP (CẬP NHẬT HẠCH TOÁN) 
6500
	ELSE IF(@TYPE = 'ASS_TRANSFER_MULTI_Master_SendAppr_CONFIRM')
6501
	BEGIN  
6502
		  IF(NOT EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS prp WHERE prp.REQ_ID = @PO_ID AND prp.PROCESS_ID = 'XNGN' AND prp.STATUS = 'C'))
6503
		  BEGIN
6504
				--CODE ĐÃ THÊM VÀO FLOW (TẤT CẢ CÁC TDV XÁC NHẬN GIAO NHẬN INSERT VÀO PL_REQUEST_PROCESS ĐẾN BƯỚC GDV)
6505
				INSERT INTO @LST_USER_RECIVE (TLNAME)
6506
				SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
6507
				--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV','','') GROUP BY TLNANME
6508
				SET @FLAG = 6
6509
		  END
6510
	END
6511
	--ĐIỀU CHUYỂN TÀI SẢN - KT(DUYỆT) (GDV GỬI KSV DUYỆT) 
6512
	ELSE IF(@TYPE = 'ASS_TRANSFER_MULTI_Master_SendAppr_KT')
6513
	BEGIN		
6514
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6515
		SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
6516
		--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV','','') GROUP BY TLNANME
6517
		SET @FLAG = 6
6518
	END
6519
	---------------THANH LÝ TÀI SẢN ---------------
6520
	--THANH LÝ TÀI SẢN - QLTS (GỬI MAIL CHO GDDV_QLTS DUYỆT)
6521
	ELSE IF(@TYPE = 'ASS_LIQUIDATION_BVB_SendAppr')
6522
	BEGIN
6523
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6524
		SELECT VALUE 
6525
		FROM STRING_SPLIT((SELECT DISTINCT (SELECT  TOP 1 TLNANME = STUFF(
6526
									--	(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS,GDDV',B.TLSUBBRID,B.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6527
									--FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS,GDDV',B.TLSUBBRID,B.DEP_ID) A) AS TLNAME
6528
									(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',B.TLSUBBRID,B.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6529
									FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',B.TLSUBBRID,B.DEP_ID) A) AS TLNAME
6530
							FROM ASS_LIQUIDATION PL
6531
							LEFT JOIN TL_USER B ON PL.MAKER_ID = B.TLNANME
6532
							WHERE PL.LIQ_ID = @PO_ID),',')
6533
		GROUP BY VALUE
6534
		SET @FLAG = 6
6535
	END
6536
	--THANH LÝ TÀI SẢN - KẾ TOÁN NHẬP (CẬP NHẬT HẠCH TOÁN)
6537
	ELSE IF(@TYPE = 'ASS_LIQUIDATION_BVB_App')
6538
	BEGIN
6539
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6540
		SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
6541
		--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV','','') GROUP BY TLNANME
6542
		SET @FLAG = 6
6543
	END
6544
	--THANH LÝ TÀI SẢN - KT (DUYỆT) (GDV GỬI KSV PHÊ DUYỆT)
6545
	ELSE IF(@TYPE = 'ASS_LIQUIDATION_BVB_KT_SendAppr')
6546
	BEGIN
6547
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6548
		SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
6549
		--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV','','') GROUP BY TLNANME
6550
		SET @FLAG = 6
6551
	END
6552
	--THANH LÝ TÀI SẢN - KT DUYỆT HOÀN TẤT PHIẾU => GỬI CHO NGƯỜI TẠO
6553
	ELSE IF(@TYPE = 'ASS_LIQUIDATION_BVB_KT_App_SEND_USERCREATE')
6554
	BEGIN
6555
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6556
		SELECT MAKER_ID FROM ASS_LIQUIDATION WHERE LIQ_ID = @PO_ID
6557
		SET @FLAG = 6
6558
	END
6559
	--KIỂM KÊ TÀI SẢN - GỬI DUYỆT
6560
	ELSE IF(@TYPE = 'ASS_INVENTORY_SendApp')
6561
	BEGIN
6562
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6563
		SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID = @PO_ID AND STATUS = 'C'
6564
		SET @FLAG = 6
6565
	END
6566
	--KIỂM KÊ TÀI SẢN - GỬI XÁC NHẬN
6567
	ELSE IF(@TYPE = 'ASS_INVENTORY_MASTER_DVKD_APP')
6568
	BEGIN
6569
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6570
		SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID = @PO_ID AND STATUS = 'C'
6571
		SET @FLAG = 6
6572
	END
6573
	--KIỂM KÊ TÀI SẢN - THÀNH PHẦN KIỂM KÊ XÁC NHẬN
6574
	ELSE IF(@TYPE = 'ASS_INVENTORY_MASTER_APPROVE_CONFIRM')
6575
	BEGIN
6576
		IF(EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS WHERE REQ_ID = @PO_ID AND PROCESS_ID = 'TBKK' AND STATUS = 'C'))
6577
		BEGIN
6578
			INSERT INTO @LST_USER_RECIVE (TLNAME)
6579
			SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID = @PO_ID AND STATUS = 'C'
6580
			SET @FLAG = 6
6581
		END
6582
	END
6583
	--KIỂM KÊ TÀI SẢN - TRƯỞNG BAN KIỂM KÊ DUYỆT
6584
	ELSE IF(@TYPE = 'ASS_INVENTORY_App')
6585
	BEGIN
6586
		INSERT INTO @LST_USER_RECIVE (TLNAME)
6587
		SELECT MAKER_ID FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @PO_ID
6588
		SET @FLAG = 6
6589
	END
6590
	--ĐỀ XUẤT THANH LÝ TÀI SẢN
6591
	ELSE IF(@TYPE = 'ASS_LIQ_REQUEST_App')
6592
	BEGIN
6593
		DECLARE @combinedString1 VARCHAR(MAX),@TL_NAME VARCHAR(5000)
6594
		SELECT @TL_NAME = CASE 
6595
					WHEN A.AUTH_STATUS = 'A' THEN A.MAKER_ID -- TRẢ VỀ NGƯỜI TẠO
6596
					WHEN EXISTS(SELECT 1 FROM CM_REQUEST_PROCESS E WHERE A.LIQ_REQ_ID = E.REQ_ID AND E.STATUS = 'G' AND E.DONE = 0 AND A.AUTH_STATUS = 'E') THEN --GDDV-DVCM TRẢ VỀ NHÂN VIÊN DVCM
6597
													(SELECT TOP 1 E.CHECKER_ID FROM CM_REQUEST_PROCESS E WHERE E.REQ_ID = A.LIQ_REQ_ID AND E.STATUS = 'F' AND E.DONE = 1 AND E.BRANCH_ID = @BRANCH_LOGIN AND E.DEPT_ID = @DEP_LOGIN)
6598
					WHEN EXISTS(SELECT 1 FROM CM_REQUEST_PROCESS E WHERE A.LIQ_REQ_ID = E.REQ_ID AND E.STATUS IN ('H','K','L') AND E.DONE = 0 AND A.AUTH_STATUS = 'E') THEN 'DVCM' --CÁC BƯỚC TRÊN TRẢ VỀ DVCM													
6599
					WHEN EXISTS(SELECT 1 FROM CM_REQUEST_PROCESS E WHERE A.LIQ_REQ_ID = E.REQ_ID AND E.STATUS IN ('G','H','K','L') AND E.DONE = 0 AND A.AUTH_STATUS = 'C') THEN 
6600
													(SELECT TOP 1 E.CHECKER_ID FROM CM_REQUEST_PROCESS E WHERE E.REQ_ID = A.LIQ_REQ_ID AND E.STATUS = 'E' AND E.DONE = 1)
6601
					WHEN A.AUTH_STATUS = 'B' THEN (SELECT  TOP 1 TLNANME = STUFF(
6602
														(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV',A.BRANCH_ID,A.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6603
													FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV',A.BRANCH_ID,A.DEP_ID) B)  
6604
					WHEN A.AUTH_STATUS = 'C' THEN (SELECT  TOP 1 TLNANME = STUFF(
6605
														(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS','DV0001','DEP000000000048') GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6606
													FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS','DV0001','DEP000000000048') B)  
6607
					WHEN A.AUTH_STATUS = 'E' AND EXISTS(SELECT TOP 1 1 FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @PO_ID) THEN N'DVCM' 
6608
					WHEN A.AUTH_STATUS = 'E' AND NOT EXISTS(SELECT TOP 1 1 FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @PO_ID) THEN (SELECT  TOP 1 TLNANME = STUFF(
6609
														(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS','DV0001','DEP000000000048') GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6610
													FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS','DV0001','DEP000000000048') B)  
6611
					WHEN A.AUTH_STATUS = 'F' THEN N'GDDV_DVCM'  
6612
					WHEN A.AUTH_STATUS = 'G' THEN (SELECT  TOP 1 TLNANME = STUFF(
6613
														(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS','DV0001','DEP000000000048') GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6614
													FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS','DV0001','DEP000000000048') B) 
6615
					WHEN A.AUTH_STATUS = 'H' THEN (SELECT  TOP 1 TLNANME = STUFF(
6616
														(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS','DV0001','DEP000000000048') GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6617
													FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS','DV0001','DEP000000000048') B)     
6618
					WHEN A.AUTH_STATUS = 'K' THEN (SELECT  TOP 1 TLNANME = STUFF(
6619
														(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV','DV0001','DEP000000000048') GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6620
													FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV','DV0001','DEP000000000048') B) 
6621
					WHEN A.AUTH_STATUS = 'L' THEN A.MAKER_ID
6622
					ELSE '' END
6623
		FROM ASS_LIQ_REQUEST A    
6624
		WHERE A.LIQ_REQ_ID = @PO_ID
6625
		IF(@TL_NAME = 'DVCM')
6626
		BEGIN
6627
			SELECT @combinedString1 = COALESCE(@combinedString1 + ',', '') +
6628
  					(SELECT  TOP 1 TLNANME = STUFF(
6629
  								(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('DVCM','DV0001',PL.COST_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6630
    								FROM dbo.FN_GET_USER_BY_ROLE_VB('DVCM','DV0001',PL.COST_ID) A)
6631
  				FROM TR_REQUEST_SHOP_COSTCENTER PL 
6632
  				WHERE PL.REQ_ID = @PO_ID
6633
			INSERT INTO @LST_USER_RECIVE (TLNAME)
6634
			SELECT VALUE FROM string_split(@combinedString1,',')
6635
		END
6636
		ELSE IF(@TL_NAME = 'GDDV_DVCM')
6637
		BEGIN
6638
			SELECT @combinedString1 = COALESCE(@combinedString1 + ',', '') +
6639
  					(SELECT  TOP 1 TLNANME = STUFF(
6640
  								(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV','DV0001',PL.COST_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '') 
6641
    								FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV','DV0001',PL.COST_ID) A)
6642
  				FROM TR_REQUEST_SHOP_COSTCENTER PL 
6643
  				WHERE PL.REQ_ID = @PO_ID AND PL.COST_ID IN (SELECT tu.DEP_ID FROM TL_USER tu WHERE tu.TLNANME = @p_TLNAME)
6644
			INSERT INTO @LST_USER_RECIVE (TLNAME)
6645
			SELECT VALUE FROM string_split(@combinedString1,',')
6646
		END		
6647
		ELSE IF(@TL_NAME IS NOT NULL AND @TL_NAME <> '')
6648
		BEGIN
6649
			INSERT INTO @LST_USER_RECIVE (TLNAME)
6650
			SELECT VALUE FROM string_split(@TL_NAME,',')
6651
		END
6652
		SET @FLAG = 6
6653
	END
6654
	
6655
	ELSE IF(@TYPE = 'CHECK_WARRANTY_DT')
6656
	BEGIN
6657
		INSERT INTO @LST_USER_RECIVE_PYC(TLFullName,Email,USER_ID)
6658
		VALUES('',(SELECT TOP 1 ParaValue FROM SYS_PARAMETERS WHERE ParaKey = 'EMAIL_QLTS_VB'),0)
6659
			
6660
		SET @FLAG = 10
6661
	END
6662
	IF(@TYPE LIKE N'%CHECK_TRANS_NOT_APPROVE|%')
6663
	BEGIN
6664
		IF(@TYPE LIKE N'%|GDV|%')
6665
		BEGIN
6666
			INSERT INTO @LST_USER_RECIVE (TLNAME)
6667
			SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
6668
			--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV,GDV_QLTS','','') GROUP BY TLNANME
6669
		END
6670
		ELSE IF(@TYPE LIKE N'%|KSV|%')
6671
		BEGIN
6672
			INSERT INTO @LST_USER_RECIVE (TLNAME)
6673
			SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
6674
			--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV,GDV_QLTS','','') GROUP BY TLNANME
6675
		END
6676
--
6677
--		SET @FLAG = 6
6678
		--INSERT INTO @LST_USER_RECIVE_PYC(TLFullName,Email,USER_ID)
6679
		--VALUES('',(SELECT TOP 1 ParaValue FROM SYS_PARAMETERS WHERE ParaKey = 'EMAIL_QLTS_VB'),0)
6680
			
6681
		SET @FLAG = 10
6682
	END
6683
	--END PHUCVH 06/01/22 GẮN MAIL: ---- PYC: DC,SC,TH,CP ---- SỬA CHỮA TÀI SẢN	---- THU HỒI TÀI SẢN ---- ĐIỀU CHUYỂN NỘI BỘ ---- ĐIỀU CHUYỂN ---- XUẤT SD	---- NHẬP MỚI  ----Thanh lý
6684
	---Phiếu đề nghị tạm ứng- KT - gửi mail cho tổng giám đốc-----
6685
	--ELSE IF @TYPE='REQ_ADVANCE_PAYMENT_KT_SEND_TGD'
6686
	--BEGIN
6687
	--	INSERT INTO @LST_USER_RECIVE (TLNAME) 
6688
	--				(SELECT TLNANME FROM TL_USER WHERE RoleName = 'TGD') 
6689
	--	SET @FLAG = 8
6690
	--END
6691
	----- END PYC MUA SẮM --------------------
6692
	IF(@FLAG = 0)
6693
	BEGIN 
6694
		SELECT A.*,B.TLFullName,B.EMAIL 
6695
		FROM TL_ROLE_NOTIFICATION A
6696
		LEFT JOIN TL_USER B ON A.TL_NAME=B.TLNANME
6697
		WHERE EXISTS(SELECT * FROM @LST_POID WHERE ID = A.PO_ID)
6698
		
6699
	END
6700
	ELSE IF(@FLAG = 1)
6701
	BEGIN 
6702
		SELECT B.*,A.TLFullName,A.EMAIL 
6703
		FROM TL_USER  A
6704
		LEFT JOIN TL_ROLE_NOTIFICATION B ON B.TL_NAME=A.TLNANME AND 1 >2
6705
		WHERE (A.TLNANME IN (SELECT * FROM @LST_USER_RECIVE))
6706
		AND A.TLNANME NOT IN  ('trungnq1','taila')
6707
	END
6708
	-- NEU LA TO TRINH CHU TRUONG, PYC MS THÌ TRA VE FLAG =2
6709
	ELSE IF(@FLAG = 2)
6710
	BEGIN 
6711
		SELECT B.*,A.TLFullName,A.EMAIL 
6712
		FROM TL_USER  A
6713
		LEFT JOIN TL_ROLE_NOTIFICATION B ON B.TL_NAME=A.TLNANME AND 1>2
6714
		WHERE (A.TLNANME IN (SELECT TLNAME FROM @PL_PROCESS_CURRENT_SEARCH_TEMP))
6715
		AND A.TLNANME NOT IN  ('trungnq1','taila')
6716
		
6717
	END
6718
	-- SAU KHI TT CHU TRUONG DUOC PHE DUYET THI THONG BAO CHO NGUOI TAO TO TRINH
6719
	ELSE IF(@FLAG = 3)
6720
	BEGIN 
6721
		SELECT B.*,A.TLFullName,A.EMAIL 
6722
		FROM TL_USER  A
6723
		LEFT JOIN TL_ROLE_NOTIFICATION B ON B.TL_NAME=A.TLNANME AND 1>2
6724
		WHERE (A.TLNANME  =@MAKER_ID OR A.TLNANME IN (SELECT TLNAME FROM @PL_PROCESS_CURRENT_SEARCH_TEMP))
6725
		--AND A.TLNANME NOT IN  ('trungnq1','taila')
6726
	END
6727
	-- SAU KHI PYCMS  DUOC PHE DUYET THI THONG BAO CHO NGUOI TAO VA NGUOI XU LY
6728
	ELSE IF(@FLAG = 4)
6729
	BEGIN 
6730
		SELECT B.*,A.TLFullName,A.EMAIL 
6731
		FROM TL_USER  A
6732
		LEFT JOIN TL_ROLE_NOTIFICATION B ON B.TL_NAME=A.TLNANME AND 1>2
6733
		WHERE (A.TLNANME  =@MAKER_ID OR A.TLNANME =@NV_XL_MS)
6734
		AND A.TLNANME NOT IN  ('trungnq1','taila')
6735
	END
6736
	-----------Quản lý cho thuê----------------
6737
	ELSE IF(@FLAG = 5)
6738
	BEGIN
6739
		SELECT TLFullName, EMAIL AS Email, ID as [USER_ID]
6740
		FROM TL_USER  
6741
		WHERE (TLNANME IN (SELECT TLNAME FROM @LST_USER_RECIVE))
6742
	END
6743
	ELSE IF(@FLAG = 6)
6744
	BEGIN
6745
		SELECT TLFullName, EMAIL AS Email, ID as [USER_ID]
6746
		FROM TL_USER  
6747
		WHERE (TLNANME IN (SELECT TLNAME FROM @LST_USER_RECIVE))
6748
	END
6749
	--------------BAODNQ 15/2/2022: Quản lý BDS--------------------
6750
	ELSE IF(@FLAG = 7)
6751
	BEGIN
6752
		SELECT TLFullName, EMAIL AS Email, ID as [USER_ID]
6753
		FROM TL_USER  
6754
		WHERE (TLNANME IN (SELECT TLNAME FROM @LST_USER_RECIVE))
6755
	END
6756
	--------------QUẢN LÝ THANH TOÁN TẠM ỨNG------------------
6757
	ELSE IF(@FLAG = 8)
6758
	BEGIN
6759
		SELECT TLFullName, EMAIL AS Email, ID as [USER_ID]
6760
		FROM TL_USER  
6761
		WHERE (TLNANME IN (SELECT TLNAME FROM @LST_USER_RECIVE))
6762
	END
6763
	ELSE IF(@FLAG = 9)
6764
	BEGIN
6765
		SELECT TLFullName, EMAIL AS Email, ID as [USER_ID]
6766
		FROM TL_USER  
6767
		WHERE (TLNANME IN (SELECT TLNAME FROM @LST_USER_RECIVE))
6768
	END
6769
	ELSE IF(@FLAG = 10)
6770
	BEGIN --PHÊ DUYỆT HOÀN TẤT PHIẾU YÊU CẦU
6771
		SELECT TLFullName,Email,USER_ID FROM @LST_USER_RECIVE_PYC	
6772
	END
6773
GO
6774
IF @@ERROR <> 0 SET NOEXEC ON
6775
GO
6776
PRINT N'Altering [dbo].[CM_SUPPLIER_Ins]'
6777
GO
6778
ALTER PROCEDURE [dbo].[CM_SUPPLIER_Ins]
6779
@p_SUP_CODE	varchar(15)  = NULL,
6780
@p_SUP_NAME	NVARCHAR(300)  = NULL,
6781
@p_SUP_TYPE_ID	varchar(15)  = NULL,
6782
@p_REGION_ID	varchar(15)  = NULL,
6783
@p_ADDR	nvarchar(200)  = NULL,
6784
@p_EMAIL	varchar(50)  = NULL,
6785
@p_TAX_NO	varchar(20)  = NULL,
6786
@p_TEL	varchar(20)  = NULL,
6787
@p_CONTACT_PERSON	nvarchar(200)  = NULL,
6788
@p_DISCIPLINES VARCHAR(15) = NULL,
6789
@p_NOTES	nvarchar(1000)  = NULL,
6790
@p_RECORD_STATUS	varchar(1)  = NULL,
6791
@p_MAKER_ID	varchar(100)  = NULL,
6792
@p_CREATE_DT	VARCHAR(20) = NULL,
6793
@p_AUTH_STATUS	varchar(50)  = NULL,
6794
@p_CHECKER_ID	varchar(100)  = NULL,
6795
@p_APPROVE_DT	VARCHAR(20) = NULL,
6796
@p_ACC_NUM VARCHAR(100) = NULL,
6797
@p_ACC_NAME VARCHAR(100) = NULL,
6798
@p_BANK_NAME VARCHAR(200) = NULL,
6799
@p_ACC_NUM_OUT VARCHAR(100) = NULL,
6800
@p_ACC_NAME_OUT VARCHAR(100) = NULL,
6801
@p_BANK_NAME_OUT VARCHAR(200) = NULL
6802
AS
6803
BEGIN TRANSACTION
6804
--Validation is here
6805
IF EXISTS(SELECT * FROM CM_SUPPLIER WHERE SUP_NAME = @p_SUP_NAME)
6806
BEGIN
6807
		ROLLBACK TRANSACTION
6808
		SELECT '-1' as Result, '' SUP_ID, N'Thêm mới nhà cung cấp thất bại, tên nhà cung cấp đã tồn tại trong hệ thống' ErrorDesc
6809
		RETURN '-1'
6810
END
6811
DECLARE @ERRORSYS NVARCHAR(15) = '' 
6812
  IF ( EXISTS ( SELECT * FROM CM_SUPPLIER WHERE TAX_NO=@p_TAX_NO))
6813
	 SET @ERRORSYS = 'SUP-0001'
6814
IF @ERRORSYS <> '' 
6815
BEGIN
6816
	ROLLBACK TRANSACTION
6817
			SELECT '-1' as Result, N'Mã số thuế của nhà cung cấp đã tồn tại.' ErrorDesc
6818
			RETURN '-1'
6819
	RETURN '0'
6820
END 
6821
IF (select case when @p_TAX_NO not like '%[^0-9]%' then 0 else 1 end) <> 0
6822
		BEGIN
6823
			ROLLBACK TRANSACTION
6824
			SELECT '-1' as Result, N' Mã số thuế chỉ được phép nhập số' ErrorDesc
6825
			RETURN '-1'
6826
		END
6827
DECLARE @l_SUP_ID VARCHAR(15)
6828
		
6829

    
6830
		EXEC SYS_CodeMasters_Gen 'CM_SUPPLIER', @l_SUP_ID out
6831
		IF @l_SUP_ID='' OR @l_SUP_ID IS NULL GOTO ABORT
6832
		INSERT INTO CM_SUPPLIER([DISCIPLINES],[SUP_ID],[SUP_CODE],[SUP_NAME],[SUP_TYPE_ID],[REGION_ID],[ADDR],[EMAIL],[TAX_NO],[TEL],[CONTACT_PERSON],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[ACC_NUM],[ACC_NAME],[BANK_NAME],[ACC_NUM_OUT],[ACC_NAME_OUT],[BANK_NAME_OUT])
6833
		VALUES(@p_DISCIPLINES, @l_SUP_ID ,@l_SUP_ID ,@p_SUP_NAME ,@p_SUP_TYPE_ID ,@p_REGION_ID ,@p_ADDR ,@p_EMAIL ,@p_TAX_NO ,@p_TEL ,@p_CONTACT_PERSON ,@p_NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),@p_ACC_NUM,@p_ACC_NAME,@p_BANK_NAME,@p_ACC_NUM_OUT,@p_ACC_NAME_OUT,@p_BANK_NAME_OUT)
6834
		IF @@Error <> 0 GOTO ABORT
6835
COMMIT TRANSACTION
6836
SELECT 0 as Result, @l_SUP_ID  SUP_ID, '' ErrorDesc, @l_SUP_ID id
6837
RETURN 0
6838
ABORT:
6839
BEGIN
6840
		ROLLBACK TRANSACTION
6841
		SELECT -1 as Result, '' SUP_ID, '' ErrorDesc
6842
		RETURN -1
6843
End
6844
GO
6845
IF @@ERROR <> 0 SET NOEXEC ON
6846
GO
6847
PRINT N'Altering [dbo].[rpt_INVENTORY_Search]'
6848
GO
6849
ALTER PROCEDURE [dbo].[rpt_INVENTORY_Search]
6850
	@p_FromDate varchar(20) = null,
6851
	@p_ToDate varchar(20) = null,
6852
	@p_BRANCH_ID varchar(15) = null,
6853
	@p_ASS_STATUS NVARCHAR(20)=NULL,
6854
	@p_BRANCH_LOGIN VARCHAR(15) = NULL,
6855
	@p_LEVEL VARCHAR(15) = 'ALL',
6856
	@p_DEP_ID VARCHAR(15) = NULL,
6857
	@p_TYPE_ID VARCHAR(15) = NULL,
6858
	@p_IGNORE VARCHAR(10) = NULL,--KHONG TINH DON VI DANG XUAT
6859
	@l_NGAYSAOKE VARCHAR(25)=NULL,--NGAY KIEM KE
6860
	@p_TERM_ID VARCHAR(25)=NULL, --DOT KIEM KE
6861
	@p_IS_REDUNDANT VARCHAR(1)=NULL -- XUAT DU LiEU THUA THIEU
6862
AS
6863
BEGIN
6864
	DECLARE
6865
	@lp_Fromdate varchar(20) = null,
6866
	@lp_Todate varchar(20) = null,
6867
	@lp_BRANCH_ID varchar(15) = null,
6868
	@lp_ASS_STATUS NVARCHAR(20)=NULL,
6869
	@lp_BRANCH_LOGIN VARCHAR(15) = NULL,
6870
	@lP_LEVEL VARCHAR(15) = 'ALL',
6871
	@lp_DEP_ID VARCHAR(15) = NULL,
6872
	@lp_TYPE_ID VARCHAR(15) = NULL,
6873
	@lp_IGNORE VARCHAR(10) = NULL,--KHONG TINH DON VI DANG XUAT
6874
	@ll_NGAYSAOKE VARCHAR(25)=NULL,--NGAY KIEM KE
6875
	@lp_TERM_ID VARCHAR(25)=NULL --DOT KIEM KE
6876
	set @lp_Fromdate         = @p_FromDate
6877
	set @lp_Todate			 = @p_ToDate
6878
	set @lp_BRANCH_ID 		 = @p_BRANCH_ID
6879
	set @lp_ASS_STATUS 		 = @p_ASS_STATUS
6880
	set @lp_BRANCH_LOGIN 	 = @p_BRANCH_LOGIN
6881
	set @lP_LEVEL 			 = @p_LEVEL
6882
	set @lp_DEP_ID			 = @p_DEP_ID
6883
	set @lp_TYPE_ID 		 = @p_TYPE_ID
6884
	set @lp_IGNORE 			 = @p_IGNORE
6885
	set @ll_NGAYSAOKE 		 = @l_NGAYSAOKE
6886
	set @lp_TERM_ID 		 = @p_TERM_ID
6887

    
6888
DECLARE @DEP_TYPE VARCHAR(20) = (SELECT TYPE FROM CM_DEPARTMENT CD WHERE CD.DEP_ID = @p_DEP_ID)
6889

    
6890
--thieuvq 19/7/2016 - DOC DU LIEU BO QUA COMMIT TRANSACTION 
6891
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
6892
--
6893
declare --@ll_NGAYSAOKE varchar(25) = '30/11/2014',
6894
@lp_FromdateSK varchar(25) = @ll_NGAYSAOKE
6895
declare @ltmp table(BRANCH_ID varchar(15))
6896
insert into @ltmp  SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@lp_BRANCH_ID)
6897
declare @ltmp_login table(BRANCH_ID varchar(15))
6898
insert into @ltmp_login  SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@lp_BRANCH_LOGIN)
6899
declare @statusHistTmp table(
6900
	ASSET_ID VARCHAR(15),
6901
	STATUS_ID VARCHAR(15),
6902
	[ASS_STATUS] [nvarchar](500) NULL,
6903
	[ASSET_DESC] [nvarchar](500) NULL,
6904
	NOTES [nvarchar](1000) NULL
6905
)
6906
insert into @statusHistTmp(ASSET_ID, STATUS_ID,ASS_STATUS, ASSET_DESC,NOTES)
6907
SELECT HIS.ASSET_ID, STAT.STATUS_ID,HIS.ASS_STATUS, HIS.ASSET_DESC, NOTES FROM dbo.GetLatestAssetHis(NULL, @p_ToDate) HIS
6908
LEFT JOIN ASS_STATUS STAT ON STAT.STATUS_NAME = HIS.ASS_STATUS
6909
DECLARE @tmp TABLE(GROUP_ID VARCHAR(15), LEVEL_CODE NVARCHAR(MAX), ASSET_CODE NVARCHAR(MAX))
6910
INSERT INTO @tmp
6911
(
6912
    GROUP_ID,
6913
    LEVEL_CODE,
6914
    ASSET_CODE
6915
)
6916
SELECT GROUP_ID, CASE WHEN TYPE_ID = 'CCLD' THEN [dbo].[FN_GET_GROUPCODE](GROUP_ID,'1') 
6917
ELSE [dbo].[FN_GET_GROUPCODE](GROUP_ID,'2') END AS LEVEL_CODE,
6918
CASE WHEN TYPE_ID = 'CCLD' THEN [dbo].[FN_GET_GROUPNAME](GROUP_ID,'1') ELSE
6919
[dbo].[FN_GET_GROUPNAME](GROUP_ID,'2') END AS ASSET_CODE
6920
FROM dbo.ASS_GROUP
6921
--
6922
	SELECT 
6923
	Row_number() over(order by A.ASSET_NAME)  AS STT,
6924
	(CASE C.BRANCH_TYPE  WHEN 'PGD' then D.BRANCH_NAME 		
6925
		ELSE C.BRANCH_NAME END) CHI_NHANH,
6926
	(CASE C.BRANCH_TYPE when 'HS' Then F.DEP_NAME 	
6927
		ELSE C.BRANCH_NAME END) PGD_PHONG_BAN, 
6928
	AG.GROUP_NAME AS ASSET_GROUP_NAME,
6929
	A.ASSET_CODE, --MA SO TAI SAN
6930
	A.ASSET_NAME, --TEN TAI SAN
6931
	A.ASSET_SERIAL_NO,
6932
	A.BUY_PRICE, -- NGUYÊN GIÁ
6933
	(ISNULL(CC.PHAT_SINH_DAU,0) + ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0) - ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0)) AS NGUYEN_GIA,
6934
	(ISNULL(DD.PHAT_SINH_CUOI,0) - ISNULL(AA.TONG_KH_TRONG_KHOANG,0) - ISNULL(BB.TONG_KH_DAU,0) + ISNULL(DR.TONG_KH_TRONG_KHOANG,0)) AS GTCL, --GIA TRI CON LAI	
6935
	CONVERT(VARCHAR(10),A.USE_DATE,110) AS USE_DATE,--NGAY SU DUNG
6936
	A.ASSET_DESC, --MO TA	
6937
	PQ.ASSET_DESC AS HIEN_TRANG, --HIEN TRANG CCLD	
6938
	A.NOTES, 
6939
	'' NKSC,--NHAT KY SUA CHUA
6940
	--'' NQL, -- NGUOI QUAN LY
6941
	A.USE_STATUS NQL, -- NGUOI QUAN LY
6942
	ISNULL(KK.ASS_STATUS,N'Chưa kiểm kê') AS TINHTRANGKIEMKE,
6943
	A.AMORT_RATE AS TLKH,
6944
  CONVERT(VARCHAR(10),A.AMORT_END_DATE,110) AS AMORT_END_DATE,
6945
  DD.PHAT_SINH_CUOI - BB.TONG_KH_DAU AS REMAIN_VALUE,
6946
  '1' AS SL_SS, '' AS SL_TT, '' AS SL_THUA, '' AS SL_THIEU, AST.STATUS_NAME AS ASS_STATUS,
6947
  CE.EMP_NAME, CE.EMP_CODE, CB.BRANCH_NAME,AG.GROUP_CODE AS ASSET_GROUP_CODE,
6948
  CASE WHEN CB.BRANCH_TYPE = 'HS' THEN CD.DEP_CODE ELSE CB.BRANCH_CODE END AS BRANCH_DEP_CODE,
6949
  CD.DEP_NAME, CU.UNIT_NAME, A.TYPE_ID
6950
	FROM ASS_MASTER  A
6951
	LEFT JOIN @tmp T ON A.GROUP_ID = T.GROUP_ID
6952
  LEFT JOIN ASS_STATUS AST ON A.ASS_STATUS = AST.STATUS_ID
6953
  LEFT JOIN ASS_GROUP AG ON A.GROUP_ID = AG.GROUP_ID
6954
  LEFT JOIN CM_EMPLOYEE CE ON A.EMP_ID = CE.EMP_ID
6955
  LEFT JOIN CM_BRANCH CB ON A.BRANCH_ID = CB.BRANCH_ID
6956
  LEFT JOIN CM_DEPARTMENT CD ON A.DEPT_ID = CD.DEP_ID
6957
  LEFT JOIN CM_UNIT CU ON AG.UNIT = CU.UNIT_ID
6958
	--LEFT JOIN 
6959
	--(
6960
	--	SELECT M.ASSET_ID, N.APPROVE_DT, N.ASSET_STATUS, N.INVENT_DESC, N.ASS_STATUS, N.AUTH_STATUS, N.RECORD_STATUS, N.NOTES
6961
	--	FROM 
6962
	--	(
6963
	--	SELECT A.ASSET_ID, MAX(A.INVENTDT_ID) AS INVENTDT_ID
6964
	--	FROM 
6965
	--	(
6966
	--	SELECT A.INVENTDT_ID, A.ASSET_ID, A.ASSET_STATUS, B.APPROVE_DT FROM ASS_INVENTORY_DT A
6967
	--	LEFT JOIN ASS_INVENTORY_MASTER B ON A.INVENT_ID = B.INVENT_ID
6968
	--	WHERE
6969
	--		(CONVERT(DATE,B.APPROVE_DT) >= CONVERT(DATE,@lp_Fromdate,103) OR @lp_Fromdate IS NULL OR @lp_Fromdate = '')
6970
	--		AND (CONVERT(DATE,B.APPROVE_DT) < CONVERT(DATE,@lp_Todate,103) OR @lp_Todate IS NULL OR @lp_Todate = '')
6971
	--		AND B.AUTH_STATUS = 'A'
6972
	--		AND B.RECORD_STATUS = '1'
6973
	--		--THIEUVQ THEM DIEU KIEN THONG KE THEO DOT KIEM KE
6974
	--			AND B.TERM = @lp_TERM_ID 
6975
	--			AND CONVERT(DATE,B.INVENTORY_DT) = CONVERT(DATE,@ll_NGAYSAOKE,103)
6976
	--		--THIEUVQ THEM DIEU KIEN KHONG LAY TAI SAN THUA LEN SAO KE - 02122016 TANPN
6977
	--		AND A.ASSET_STATUS <> '6'
6978
	--	GROUP BY A.INVENTDT_ID, A.ASSET_ID, A.ASSET_STATUS, B.APPROVE_DT
6979
	--	--ORDER BY A.ASSET_ID, B.APPROVE_DT DESC
6980
	--	) AS A
6981
	--	GROUP BY A.ASSET_ID
6982
	--	) AS M
6983
	--	INNER JOIN
6984
	--	(
6985
	--	SELECT A.INVENTDT_ID, A.ASSET_ID, A.ASSET_STATUS, B.APPROVE_DT, A.INVENT_DESC, C.ASS_STATUS, B.AUTH_STATUS, B.RECORD_STATUS , A.NOTES
6986
	--	FROM ASS_INVENTORY_DT A
6987
	--	LEFT JOIN ASS_INVENTORY_MASTER B ON A.INVENT_ID = B.INVENT_ID
6988
	--	--LEFT JOIN ASS_STATUS C ON A.ASSET_STATUS = C.STATUS_ID
6989
	--	LEFT JOIN 
6990
	--		( 
6991
	--			SELECT * FROM GetLatestAssetHis(NULL, @p_ToDate)
6992
	--		) C ON C.ASSET_ID = A.ASSET_ID
6993
	--	WHERE 
6994
	--		(CONVERT(DATE,B.APPROVE_DT) >= CONVERT(DATE,@lp_Fromdate,103) OR @lp_Fromdate IS NULL OR @lp_Fromdate = '')
6995
	--		AND (CONVERT(DATE,B.APPROVE_DT) < CONVERT(DATE,@lp_Todate,103) OR @lp_Todate IS NULL OR @lp_Todate = '')
6996
	--		AND B.AUTH_STATUS = 'A'
6997
	--		AND B.RECORD_STATUS = '1'
6998
	--		--THIEUVQ THEM DIEU KIEN THONG KE THEO DOT KIEM KE
6999
	--			AND B.TERM = @lp_TERM_ID 
7000
	--			AND CONVERT(DATE,B.INVENTORY_DT) = CONVERT(DATE,@ll_NGAYSAOKE,103)
7001
	--		--THIEUVQ THEM DIEU KIEN KHONG LAY TAI SAN THUA LEN SAO KE - 02122016 TANPN
7002
	--		AND A.ASSET_STATUS <> '6'
7003
	--	GROUP BY A.INVENTDT_ID, A.ASSET_ID, A.ASSET_STATUS, B.APPROVE_DT, A.INVENT_DESC, C.ASS_STATUS, B.AUTH_STATUS, B.RECORD_STATUS, A.NOTES
7004
	--	) AS N ON M.ASSET_ID = N.ASSET_ID
7005
	--	WHERE M.INVENTDT_ID = N.INVENTDT_ID
7006
	--	--ORDER BY M.ASSET_ID
7007
	--) AS KK ON A.ASSET_ID = KK.ASSET_ID
7008
		LEFT JOIN @statusHistTmp KK ON KK.ASSET_ID = A.ASSET_ID
7009
		LEFT JOIN ASS_STATUS ST ON KK.STATUS_ID = ST.STATUS_ID
7010
	LEFT JOIN 
7011
	(
7012
		SELECT A.ASSET_ID,		
7013
			ISNULL(TR.BRANCH_ID, TRN.BRANCH_ID) AS BRANCH_ID,
7014
			CASE WHEN TR.BRANCH_ID IS NULL THEN TRN.DEPT_ID ELSE TR.DEPT_ID END AS DEPT_ID,
7015
			CASE WHEN TR.BRANCH_ID IS NULL THEN TRN.EMP_ID ELSE TR.EMP_ID END AS EMP_ID				
7016
		FROM ASS_MASTER A
7017
		LEFT JOIN --LAY DON VI MOI NHAT 
7018
		(
7019
			SELECT A.ASSET_ID, A.BRANCH_ID, A.DEPT_ID, A.EMP_ID		
7020
			FROM ASS_LOCATION_HIST A		
7021
			INNER JOIN
7022
			(
7023
				SELECT MAX(B.LOCHIST_ID) AS LOCHIST_ID, B.ASSET_ID
7024
				FROM ASS_LOCATION_HIST B 
7025
				WHERE B.USE_START_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103)
7026
				GROUP BY B.ASSET_ID
7027
			) AS TRN ON TRN.LOCHIST_ID = A.LOCHIST_ID		
7028
		) AS TR ON TR.ASSET_ID = A.ASSET_ID
7029
		LEFT JOIN --LAY DON VI CU NHAT
7030
		(
7031
			SELECT A.ASSET_ID, A.BRANCH_ID, A.DEPT_ID, A.EMP_ID		
7032
			FROM ASS_LOCATION_HIST A		
7033
			INNER JOIN
7034
			(
7035
				SELECT MIN(B.LOCHIST_ID) AS LOCHIST_ID, B.ASSET_ID
7036
				FROM ASS_LOCATION_HIST B 
7037
				WHERE B.USE_START_DT > CONVERT(DATE,@ll_NGAYSAOKE,103)
7038
				GROUP BY B.ASSET_ID
7039
			) AS TRN ON TRN.LOCHIST_ID = A.LOCHIST_ID		
7040
		) AS TRN ON TRN.ASSET_ID = A.ASSET_ID
7041
	) AS BRN_HIST ON BRN_HIST.ASSET_ID = A.ASSET_ID
7042
	
7043
	--LEFT JOIN ASS_INVENTORY_DT IDT ON IDT.ASSET_ID = A.ASSET_ID
7044
	LEFT JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
7045
	LEFT JOIN CM_BRANCH C ON BRN_HIST.BRANCH_ID = C.BRANCH_ID
7046
	LEFT JOIN CM_BRANCH D ON D.BRANCH_ID = C.FATHER_ID
7047
	LEFT JOIN CM_EMPLOYEE E ON BRN_HIST.EMP_ID = E.EMP_ID
7048
	LEFT JOIN CM_DEPARTMENT F ON BRN_HIST.DEPT_ID = F.DEP_ID	
7049
	LEFT JOIN
7050
	(
7051
		SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_TRONG_KHOANG
7052
		FROM ASS_AMORT_DT X
7053
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
7054
		WHERE 
7055
		(X.AMORT_DT >= CONVERT(DATE,@lp_FromdateSK,103) OR @lp_FromdateSK IS NULL OR @lp_FromdateSK = '') 
7056
		AND 
7057
		(X.AMORT_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103)OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '')
7058
		AND CRDR = 'C'
7059
		GROUP BY X.ASSET_ID
7060
	) AA ON A.ASSET_ID = AA.ASSET_ID
7061
	LEFT JOIN
7062
	(
7063
		SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_TRONG_KHOANG
7064
		FROM ASS_AMORT_DT X
7065
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
7066
		WHERE 
7067
		(X.AMORT_DT >= CONVERT(DATE,@lp_FromdateSK,103) OR @lp_FromdateSK IS NULL OR @lp_FromdateSK = '') 
7068
		AND (X.AMORT_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103)OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '')
7069
		AND CRDR = 'D'
7070
		GROUP BY X.ASSET_ID
7071
	) DR ON A.ASSET_ID = DR.ASSET_ID
7072
	-- SELECT * FROM ASS_AMORT_DT
7073
	LEFT JOIN
7074
	(
7075
		--SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_DAU
7076
		SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR  WHEN 'C' THEN X.AMORT_AMT WHEN 'D' THEN -X.AMORT_AMT END),0) AS TONG_KH_DAU
7077
		FROM ASS_AMORT_DT X
7078
		--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
7079
		INNER JOIN ASS_MASTER Z ON X.ASSET_ID = Z.ASSET_ID
7080
		WHERE 
7081
		(X.AMORT_DT >= CONVERT(DATE,Z.AMORT_START_DATE)) AND (CONVERT(DATE,Z.LIQUIDATION_DT) > CONVERT(DATE,@lp_FromdateSK,103) OR Z.LIQUIDATION_DT IS NULL OR Z.LIQUIDATION_DT = '')
7082
		AND (X.AMORT_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103) OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '')
7083
		GROUP BY X.ASSET_ID
7084
	) BB ON A.ASSET_ID = BB.ASSET_ID
7085
	-- SELECT TOP 200 * FROM ASS_MASTER
7086
	-- PHAT SINH TANG VA GIAM TRONG KHOANG THOI GIAN TU BAT DAU KHAU HAO DEN THOI DIEM FROM
7087
	
7088
	-- PHAT SINH TANG VA GIAM TRONG KHOANG THOI GIAN TU THỜI ĐIỂM BAT DAU ĐẾN THỜI ĐIỂM TO
7089
	-- SELECT * FROM ASS_MASTER
7090
	LEFT JOIN
7091
	(
7092
		SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR  WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS PHAT_SINH_CUOI
7093
		FROM ASS_VALUES X
7094
		INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
7095
		WHERE --X.CREATE_DT >= Y.CREATE_DT 
7096
			 (X.CREATE_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103) OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '')
7097
		GROUP BY X.ASSET_ID
7098
	) DD ON A.ASSET_ID = DD.ASSET_ID
7099
	-- PHAT SINH TANG TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
7100
	-- select * from ass_values where trn_type = 'ass_use'	
7101
	LEFT JOIN
7102
	(
7103
		SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR  WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS PHAT_SINH_DAU 
7104
		FROM ASS_VALUES X
7105
		INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
7106
		WHERE (X.TRN_DT < CONVERT(DATE,@lp_FromdateSK,103) OR @lp_FromdateSK IS NULL OR @lp_FromdateSK = '') 
7107
		--(X.CREATE_DT >= Y.CREATE_DT) 
7108
		--AND (X.CREATE_DT <= CONVERT(DATETIME,@lp_Fromdate,103) OR @lp_Fromdate IS NULL OR @lp_Fromdate = '')
7109
		GROUP BY X.ASSET_ID
7110
	) CC ON A.ASSET_ID = CC.ASSET_ID
7111
	-- PHAT SINH TANG TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
7112
	-- select * from ass_values where trn_type = 'ass_use'
7113
	LEFT JOIN
7114
	(
7115
		SELECT X.ASSET_ID,ISNULL(SUM(X.ASSET_AMT),0) AS PHAT_SINH_TANG_TRONG_KHOANG
7116
		FROM ASS_VALUES X
7117
		--INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
7118
		WHERE (X.CREATE_DT >= CONVERT(DATE,@lp_FromdateSK,103) OR @lp_FromdateSK IS NULL OR @lp_FromdateSK = '') 
7119
		AND (X.CREATE_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103) OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '')
7120
		AND X.CRDR = 'C'
7121
		GROUP BY X.ASSET_ID
7122
	) EE ON A.ASSET_ID = EE.ASSET_ID
7123
	-- PHAT SINH GIAM TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
7124
	LEFT JOIN
7125
	(
7126
		SELECT X.ASSET_ID,ISNULL(SUM(X.ASSET_AMT),0) AS PHAT_SINH_GIAM_TRONG_KHOANG
7127
		FROM ASS_VALUES X
7128
		--INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
7129
		WHERE (X.CREATE_DT >= CONVERT(DATE,@lp_FromdateSK,103) OR @lp_FromdateSK IS NULL OR @lp_FromdateSK = '') 
7130
		AND (X.CREATE_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103) OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '')
7131
		AND X.CRDR = 'D'
7132
		GROUP BY X.ASSET_ID
7133
	) FF ON A.ASSET_ID = FF.ASSET_ID
7134
	LEFT JOIN  -- vietpq join theo ass_status_hist 09-01-20
7135
	(
7136
		SELECT DISTINCT ASSET_ID, MAX(STATUS_DT) AS STATUS_DT FROM dbo.ASS_STATUS_HIST
7137
		GROUP BY ASSET_ID
7138
	) HST_TEMP ON HST_TEMP.ASSET_ID = A.ASSET_ID
7139
	LEFT JOIN  -- vietpq join theo ass_status_hist 09-01-20
7140
	(
7141
		SELECT * FROM ASS_STATUS_HIST
7142
	) PQ ON PQ.ASSET_ID = HST_TEMP.ASSET_ID AND PQ.STATUS_DT = HST_TEMP.STATUS_DT
7143
	-- SELECT * FROM ASS_VALUES
7144
	WHERE  A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A'
7145
	AND A.ENTRY_BOOKED = 'Y'
7146
		-- NHOM TAI SAN			
7147
	AND (A.USE_DATE <= CONVERT(DATE,@ll_NGAYSAOKE,103) OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '') --THEM 15/04 THIEUVQ
7148
	AND A.TYPE_ID = @lp_TYPE_ID --THEM 15/04 THIEUVQ	
7149
	AND (BRN_HIST.DEPT_ID = @lp_DEP_ID OR @lp_DEP_ID IS NULL OR @lp_DEP_ID = '')
7150
	AND ((@lP_LEVEL = 'ALL' AND BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @ltmp))
7151
		OR (@lP_LEVEL = 'UNIT' AND BRN_HIST.BRANCH_ID = @lp_BRANCH_ID) OR @lp_BRANCH_ID = '' OR @lp_BRANCH_ID IS NULL)
7152
	AND ((@lP_LEVEL = 'ALL' AND BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @ltmp_login))
7153
		OR (@lP_LEVEL = 'UNIT' AND BRN_HIST.BRANCH_ID = @lp_BRANCH_LOGIN) OR @lp_BRANCH_LOGIN = '' OR @lp_BRANCH_LOGIN IS NULL 
7154
		OR @lp_BRANCH_ID IS NOT NULL OR @lp_BRANCH_ID <> '')
7155
	AND (CONVERT(DATE,A.LIQUIDATION_DT) > CONVERT(DATE,@lp_FromdateSK,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT = '')
7156
	AND A.AMORT_STATUS <> 'VNM'
7157
	AND ((@p_IS_REDUNDANT = '1' AND (ST.STATUS_CODE = '05' OR ST.STATUS_CODE = '06')) OR @p_IS_REDUNDANT IS NULL OR @p_IS_REDUNDANT = '' OR @p_IS_REDUNDANT <> '1')
7158
	ORDER BY A.ASSET_NAME
7159

    
7160
    SELECT AT.TYPE_NAME FROM ASS_TYPE AT WHERE AT.TYPE_ID = @lp_TYPE_ID
7161
END
7162
GO
7163
IF @@ERROR <> 0 SET NOEXEC ON
7164
GO
7165
PRINT N'Altering [dbo].[ASS_MASTER_ById]'
7166
GO
7167
/*
7168
	[ASS_MASTER_ById] 'ASS000000000001',''	
7169
	SELECT * FROM ASS_MASTER ORDER BY ASSET_CODE
7170
*/
7171

    
7172
ALTER PROCEDURE [dbo].[ASS_MASTER_ById]
7173
	@p_ASSET_ID			varchar(15) = NULL,	
7174
	@p_ASSET_CODE		varchar(150) = NULL
7175
AS
7176
	declare @l_Asset_ID varchar(15)
7177
BEGIN
7178
	SELECT @l_Asset_ID = ASSET_ID
7179
	FROM ASS_MASTER
7180
	WHERE ASSET_CODE = @p_ASSET_CODE
7181
	
7182
		SELECT --TOP 1
7183
				A.ASSET_ID, A.[TYPE_ID],C.[TYPE_CODE],  C.[TYPE_NAME], A.GROUP_ID,B.GROUP_CODE, B.GROUP_NAME,B.EXP_ACCTNO, A.ASSET_CODE, A.ASSET_NAME, A.ASSET_SERIAL_NO, A.ASSET_DESC,
7184
				A.SUP_ID, A.BUY_PRICE, A.AMORT_AMT, A.ASS_TYPE, A.BRANCH_ID,BR.BRANCH_CODE,BR.BRANCH_NAME,A.DEPT_ID, A.EMP_ID,EM.TLNANME AS EMP_CODE,EM.TLFullName AS EMP_NAME, A.DIVISION_ID,CM.DIV_NAME, CM.ADDR,
7185
				A.BUY_DATE, A.USE_DATE, A.SPECIAL_ASS, A.AMORT_MONTH, A.AMORT_RATE, A.AMORT_START_DATE, A.AMORT_END_DATE,
7186
				A.MONTHLY_AMORT_AMT FIRST_AMORT_AMT, 
7187
				A.AMORTIZED_MONTH, 
7188
				(A.AMORT_MONTH - A.AMORTIZED_MONTH) AS REMAIN_MONTH,
7189
				A.AMORTIZED_AMT, 
7190
				ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), A.AMORT_AMT) AS REMAIN_AMORTIZED_AMT,  --So tien khau hao con lai
7191
				A.PO_ID,A.PD_ID, A.WAREHOUSE_ID, A.LOCATION, A.REF_ASSET_ID,
7192
				A.REF_AMORTIZED_AMT,
7193
				A.WARRANTY_MONTHS, 
7194
				A.NOTES, 
7195
				A.AMORT_STATUS, 
7196
				D.STATUS_NAME AMORT_STATUS_NAME, 
7197
				A.ASS_STATUS, 
7198
				E.STATUS_NAME ASS_STATUS_NAME, --Tinh trang tai san
7199
				A.ASS_STATUS_DESC,
7200
				A.RECORD_STATUS, 
7201
				A.AUTH_STATUS, 
7202
				ZZ.AUTH_STATUS_NAME,
7203
				A.MAKER_ID, 
7204
				A.CREATE_DT, 
7205
				A.CHECKER_ID, 
7206
				A.APPROVE_DT, DP.DEP_ID	, DP.DEP_CODE, DP.DEP_NAME,B.EXP_ACCTNO,
7207
				A.MONTHLY_AMORT_AMT, --luctv:09/01/2019 So tien khau hau 1 thang
7208
				a.FIRST_AMORT_AMT,    --luctv:09/01/2019 So tien khau hao thang dau tien
7209
				------------BAODNQ 14/4/2022 : LẤY THÔNG TIN ĐƠN VỊ TẠO------
7210
				A.BRANCH_CREATE AS BRANCH_CREATE_ID,
7211
				BRC.BRANCH_NAME AS BRANCH_CREATE_NAME,
7212
				------------END BAODNQ-----------------
7213
				--khanhnhd
7214
				B.DVCM_ID
7215
				--end khanhnhd
7216

    
7217
		FROM ASS_MASTER A
7218
		LEFT JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
7219
		LEFT JOIN ASS_TYPE C ON A.[TYPE_ID] = C.[TYPE_ID]
7220
		LEFT JOIN ASS_AMORT_STATUS D ON A.AMORT_STATUS = D.STATUS_CODE
7221
		LEFT JOIN ASS_STATUS E ON A.ASS_STATUS = E.STATUS_ID
7222
		LEFT JOIN CM_AUTH_STATUS ZZ ON ZZ.AUTH_STATUS = A.AUTH_STATUS
7223
		LEFT JOIN CM_BRANCH BR ON BR.BRANCH_ID=A.BRANCH_ID
7224
		LEFT JOIN TL_USER EM ON EM.TLNANME=A.EMP_ID
7225
		LEFT JOIN CM_DIVISION CM ON CM.DIV_ID=A.DIVISION_ID
7226
		LEFT JOIN CM_DEPARTMENT DP ON DP.DEP_ID = A.DEPT_ID
7227
		--------------BAODNQ :14/4/2022: LẤY THÔNG TIN ĐƠN VỊ TẠO---------
7228
		LEFT JOIN CM_BRANCH BRC ON A.BRANCH_CREATE = BRC.BRANCH_ID
7229
		----------------END BAODNQ-------------
7230
		WHERE 1 = 1
7231
			AND (A.ASSET_ID = @p_ASSET_ID OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')				
7232
			AND (A.ASSET_CODE = @p_ASSET_CODE OR @p_ASSET_CODE IS NULL OR @p_ASSET_CODE = '')	
7233
			
7234
						
7235
		--SELECT * 
7236
		--FROM ASS_WARRANTY_DT A
7237
		--WHERE 1=1
7238
		--	AND (A.ASSET_ID = @l_Asset_ID OR @l_Asset_ID IS NULL OR @l_Asset_ID = '')				
7239

    
7240
END
7241
GO
7242
IF @@ERROR <> 0 SET NOEXEC ON
7243
GO
7244
PRINT N'Altering [dbo].[CM_EMPLOYEE_Search_NotMapping]'
7245
GO
7246
ALTER PROCEDURE [dbo].[CM_EMPLOYEE_Search_NotMapping]
7247
	@p_EMP_ID	varchar(15) = null ,
7248
	@p_EMP_CODE	varchar(15) = NULL ,
7249
	@p_EMP_NAME	nvarchar(50) = NULL ,
7250
	@p_BRANCH_ID	varchar(15) = NULL ,
7251
	@p_BRANCH_CODE	varchar(15) = NULL ,
7252
	@p_DEP_ID	varchar(15) = NULL ,
7253
	@p_NOTES	nvarchar(1000) = NULL ,
7254
	@p_RECORD_STATUS	varchar(1) = NULL ,
7255
	@p_AUTH_STATUS	varchar(1) = NULL ,
7256
	@p_MAKER_ID	varchar(100) = NULL ,
7257
	@p_CREATE_DT	VARCHAR(20) = NULL,
7258
	@p_CHECKER_ID	varchar(100) = NULL ,
7259
	@p_APPROVE_DT	VARCHAR(20) = NULL,
7260
	@p_TOP INT = NULL,
7261
	@p_LEVEL varchar(10) = NULL
7262
AS
7263
BEGIN -- PAGING
7264

    
7265
  IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
7266
  -- PAGING BEGIN
7267
  SELECT A.*
7268
  -- SELECT END
7269
  FROM CM_EMPLOYEE A 
7270
  WHERE 1 = 1
7271
    AND (A.EMP_ID LIKE '%' + @p_EMP_ID + '%' OR  @p_EMP_ID IS NULL OR @p_EMP_ID = '')
7272
    AND (A.EMP_CODE LIKE '%' + @p_EMP_CODE + '%' OR  @p_EMP_CODE IS NULL OR @p_EMP_CODE = '')
7273
    AND (A.EMP_NAME LIKE '%' + @p_EMP_NAME + '%' OR  @p_EMP_NAME IS NULL OR @p_EMP_NAME = '')
7274
    AND (A.DEP_ID LIKE '%' + @p_DEP_ID + '%' OR  @p_DEP_ID IS NULL OR @p_DEP_ID = '')
7275
    AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
7276
    AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
7277
    AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
7278
    AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
7279
    AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) =0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
7280
    AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
7281
    AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
7282
    AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
7283
    AND A.RECORD_STATUS = '1'
7284
    --AND A.EMP_CODE NOT IN (SELECT EL.EMP_CODE FROM CM_EMPLOYEE_LOG EL) 
7285
--    AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)
7286
--	  OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID)) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL
7287
-- PAGING END
7288
ELSE
7289
-- PAGING BEGIN
7290

    
7291
  SELECT TOP(CONVERT(INT,@p_TOP))A.*
7292
	-- SELECT END
7293
  FROM CM_EMPLOYEE A 
7294
  WHERE 1 = 1
7295
   AND (A.EMP_ID LIKE '%' + @p_EMP_ID + '%' OR  @p_EMP_ID IS NULL OR @p_EMP_ID = '')
7296
   AND (A.EMP_CODE LIKE '%' + @p_EMP_CODE + '%' OR  @p_EMP_CODE IS NULL OR @p_EMP_CODE = '')
7297
   AND (A.EMP_NAME LIKE '%' + @p_EMP_NAME + '%' OR  @p_EMP_NAME IS NULL OR @p_EMP_NAME = '')
7298
   AND (A.DEP_ID LIKE '%' + @p_DEP_ID + '%' OR  @p_DEP_ID IS NULL OR @p_DEP_ID = '')
7299
   AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
7300
   AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
7301
   AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
7302
   AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
7303
   AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) =0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
7304
   AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
7305
   AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
7306
   AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
7307
   AND A.RECORD_STATUS = '1'
7308
   --AND A.EMP_CODE NOT IN (SELECT EL.EMP_CODE FROM CM_EMPLOYEE_LOG EL) 
7309
--   AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)
7310
--  	OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID)) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL
7311
-- PAGING END
7312
END -- PAGING
7313
GO
7314
IF @@ERROR <> 0 SET NOEXEC ON
7315
GO
7316
PRINT N'Altering [dbo].[ASS_UPDATE_App]'
7317
GO
7318
ALTER PROCEDURE [dbo].[ASS_UPDATE_App]
7319
	@p_UPDATE_ID varchar(15),
7320
	@P_AUTH_STATUS VARCHAR(1),
7321
	@p_CHECKER_ID VARCHAR(100),
7322
	@p_APPROVE_DT varchar(20)
7323

    
7324
AS
7325
BEGIN TRY
7326
	DECLARE @ERRORSYS NVARCHAR(15) = '', @ERROR NVARCHAR(500) = ''
7327

    
7328
	declare @l_ASSHIST_ID varchar(15)
7329
	declare @l_ASSET_ID varchar(15)
7330
	declare @l_TYPE_ID nvarchar(15)
7331
	DECLARE @l_MAKER_ID	varchar(100)	
7332
	DECLARE @l_BRANCH_CREATE VARCHAR(15), @l_BRANCH_ID VARCHAR(15),@l_DEP_ID VARCHAR(15)
7333
	
7334
	declare @l_NEW_GROUP_ID varchar(15),  @l_OLD_GROUP_ID varchar(15)
7335
	declare @l_NEW_ASSET_NAME nvarchar(1000)--,  @l_OLD_ASSET_NAME nvarchar(1000)
7336
	declare @l_NEW_ASSET_SERIAL_NO nvarchar(100)--,  @l_OLD_ASSET_SERIAL_NO nvarchar(100)
7337
	declare @l_NEW_ASSET_DESC nvarchar(max)--,  @l_OLD_ASSET_DESC nvarchar(max)
7338
	declare @l_NEW_BUY_PRICE decimal(18,0),  @l_OLD_BUY_PRICE decimal(18,0)
7339
	declare @l_NEW_AMORT_AMT decimal(18,0),  @l_OLD_AMORT_AMT decimal(18,0)
7340
	declare @l_NEW_AMORT_MONTH decimal(18,2), @l_OLD_AMORT_MONTH decimal(18,2)
7341
	declare @l_AMORTIZED_MONTH decimal(18,2), @l_AMORTIZED_AMT decimal(18,0)
7342
	declare @l_SPECIAL_ASS varchar(1)
7343
	
7344
	DECLARE @l_AMORT_STATUS VARCHAR(15), @L_AMORT_RATE DECIMAL(18,2)
7345
	DECLARE @l_AMORT_START_DATE datetime, @l_AMORT_END_DATE datetime
7346
	DECLARE @l_NEW_FIRST_AMORT_AMT	numeric(18,0), @l_OLD_FIRST_AMORT_AMT	numeric(18,0)
7347
	DECLARE @l_NEW_MONTHLY_AMT 	numeric(18,0), @l_OLD_MONTHLY_AMT 	numeric(18,0) 
7348
	
7349
	declare @l_GROUP_ID_UPD varchar(1) = 'N'
7350
	declare @l_AMORT_AMT_UPD varchar(1) = 'N', @l_AMORT_MONTH_UPD VARCHAR(1) = 'N'
7351
	declare @l_DO_BRANCH_ID varchar(15)
7352
	DECLARE @l_VALUE_ID varchar(15)
7353
	DECLARE @l_HO_BRN_ID varchar(15)
7354
	declare @l_ET_ID varchar(15)
7355
	DECLARE @sToday varchar(10) = convert(varchar(10), getdate(), 103)
7356
	declare @l_TRN_REF_NO varchar(20)
7357
		
7358
	DECLARE @l_SUPPEND_GL varchar(50)
7359
	DECLARE @l_ASSET_GL  varchar(50), @l_AMORT_ACCTNO VARCHAR(50)
7360
	declare @l_ASSET_VALUE decimal(18,0)	
7361
	declare @l_CORE_NOTE NVARCHAR(500)
7362

    
7363
	DECLARE @l_DATE1 DATE,@l_DATE2 DATE
7364
    DECLARE @l_ASSET_CODE VARCHAR(50) -- KHIEMCHG Bo sung ASSETCODE REF cho HACH TOAN
7365
			    
7366
   DECLARE  @l_TRN_NO VARCHAR(15)
7367
IF(EXISTS(SELECT * FROM ASS_UPDATE WHERE AUTH_STATUS ='A' AND  UPDATE_ID=@p_UPDATE_ID))
7368
	BEGIN
7369
				--ROLLBACK TRANSACTION
7370
				SELECT '-1' as Result, '' UPDATE_ID, N'Phiếu cập nhật tài sản đã được duyệt.' ErrorDesc
7371
				RETURN '-1'
7372
	END
7373

    
7374
EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = 'DV0001'
7375
                        ,@p_TRN_DATE = @p_APPROVE_DT
7376
                        ,@p_KeyGen = @l_TRN_NO OUT
7377

    
7378
	SELECT	@l_ASSET_ID = A.ASSET_ID,
7379
			@l_NEW_GROUP_ID = A.GROUP_ID,
7380
			--@l_NEW_AMORT_MONTH = CASE WHEN M.[TYPE_ID] = 'TSCD' THEN G.AMORT_MONTH ELSE A.AMORT_AMT END,
7381
			@l_NEW_AMORT_MONTH = A.AMORT_MONTH,--THIEUVQ 18/04/2014
7382
			@l_NEW_ASSET_NAME = A.ASSET_NAME,
7383
			@l_NEW_ASSET_SERIAL_NO = A.ASSET_SERIAL_NO,
7384
			@l_NEW_ASSET_DESC = A.ASSET_DESC,
7385
			@l_NEW_BUY_PRICE = A.BUY_PRICE,
7386
			@l_NEW_AMORT_AMT = A.AMORT_AMT, @l_CORE_NOTE = CORE_NOTE,
7387
			@l_MAKER_ID = A.MAKER_ID,
7388
			@l_SUPPEND_GL = A.ACCOUNT_GL
7389
	FROM ASS_UPDATE A
7390
	INNER JOIN ASS_GROUP G on G.GROUP_ID = A.GROUP_ID
7391
	INNER JOIN ASS_MASTER M ON M.ASSET_ID = A.ASSET_ID
7392
	WHERE UPDATE_ID = @p_UPDATE_ID
7393
	
7394
	SELECT	 
7395
			@l_OLD_GROUP_ID = ISNULL(A.REF_GROUP_ID,A.GROUP_ID),
7396
			@l_OLD_AMORT_MONTH = AMORT_MONTH,
7397
			@l_AMORTIZED_MONTH = AMORTIZED_MONTH,
7398
			--@l_OLD_ASSET_NAME = ASSET_NAME,
7399
			--@l_OLD_ASSET_SERIAL_NO = ASSET_SERIAL_NO,
7400
			--@l_OLD_ASSET_DESC = ASSET_DESC,
7401
			@l_OLD_BUY_PRICE = BUY_PRICE,
7402
			@l_OLD_FIRST_AMORT_AMT = FIRST_AMORT_AMT,
7403
			@l_OLD_MONTHLY_AMT = A.MONTHLY_AMORT_AMT,
7404
			@l_AMORT_START_DATE = AMORT_START_DATE,
7405
			@l_AMORT_END_DATE = AMORT_END_DATE,
7406
			@l_OLD_AMORT_AMT = AMORT_AMT,
7407
			@l_AMORTIZED_AMT = AMORTIZED_AMT,
7408
			@l_SPECIAL_ASS = SPECIAL_ASS,
7409
			@l_TYPE_ID = TYPE_ID,
7410
			@l_AMORT_STATUS = AMORT_STATUS,
7411
			@L_AMORT_RATE = AMORT_RATE,
7412
			@l_BRANCH_CREATE = A.BRANCH_CREATE,
7413
			@l_BRANCH_ID = A.BRANCH_ID,
7414
      @l_DEP_ID=A.DEPT_ID,
7415
            @l_ASSET_CODE = A.ASSET_CODE
7416
	FROM ASS_MASTER A
7417
	WHERE ASSET_ID = @l_ASSET_ID	
7418
	
7419
	--Lay branch_id cua user duyet
7420
	select @l_DO_BRANCH_ID = a.TLSUBBRID from TL_USER a where a.TLNANME = @p_CHECKER_ID	
7421
	
7422
	--BRN_ID HOI SO
7423
	SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'			
7424

    
7425
	--Lay suppend GL
7426
	
7427
	---THAY DOI TAI KHOAN HACH TOAN GL THIEUVQ - 09092016
7428
	--SET @l_SUPPEND_GL = dbo.fn_replace_acctno(UPPER(@l_SUPPEND_GL) + 'XXXX',@l_DO_BRANCH_ID)
7429
	SELECT @l_SUPPEND_GL = A.ParaValue FROM SYS_PARAMETERS A WHERE A.ParaKey='ASSET_SUPPEND_GL'
7430
	
7431
	--ASSET_GL
7432
	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))
7433
	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)
7434
    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)
7435
--Validation is here
7436

    
7437
--Kiem tra so thang khau hao cua nhom moi co lon hon so thang da khau hao ko?
7438
IF (@l_NEW_GROUP_ID <> @l_OLD_GROUP_ID AND @l_NEW_AMORT_MONTH <> @l_OLD_AMORT_MONTH)
7439
BEGIN	
7440
	--IF @l_NEW_AMORT_MONTH <= @l_AMORTIZED_MONTH
7441
	IF @l_NEW_AMORT_MONTH <= @l_AMORTIZED_MONTH AND @l_AMORT_STATUS IN ('CKH','DKH') --thieuvq 18/04/2014
7442
	BEGIN
7443
		--SET @ERRORSYS = 'ASS-00009'		
7444
		--CAP NHAT LẠI NGAY KET THUC KHAU HAO --thieuvq 18/04/2014
7445
		SET @l_DATE1= CONVERT(DATE,'1/'+CONVERT(VARCHAR(10),MONTH(CONVERT(DATE,@p_APPROVE_DT,103)))
7446
								+'/'+CONVERT(VARCHAR(10),YEAR(CONVERT(DATE,@p_APPROVE_DT,103))),103)
7447
		SET @l_DATE2 = CONVERT(DATE,'1/'+CONVERT(VARCHAR(10),MONTH(@l_AMORT_END_DATE))
7448
								+'/'+CONVERT(VARCHAR(10),YEAR(@l_AMORT_END_DATE)),103)
7449
		SET @l_AMORT_END_DATE = DATEADD(MONTH,DATEDIFF(MONTH,@l_DATE2,@l_DATE1),@l_AMORT_END_DATE)
7450

    
7451
		SET @L_AMORT_RATE = ROUND((100.00/@l_NEW_AMORT_MONTH)*12,2)
7452
	END
7453

    
7454
	SET @l_GROUP_ID_UPD = 'Y'
7455
END
7456
	
7457
--Kiem tra gia tri khau hao moi > so tien da khau hao
7458
IF (@l_NEW_AMORT_AMT<=@l_AMORTIZED_AMT AND @l_NEW_AMORT_AMT <> @l_OLD_AMORT_AMT)
7459
BEGIN
7460
	SET @ERRORSYS = 'ASS-00014'	
7461
END
7462
ELSE
7463
BEGIN
7464
	IF (@l_NEW_AMORT_AMT <> @l_OLD_AMORT_AMT)
7465
	BEGIN	
7466
		SET @l_AMORT_AMT_UPD = 'Y'
7467
	END
7468
END
7469

    
7470
---KIEM TRA SO THANG KHAU HAO MOI NHO HON SO THANG DA KHAU HAO KHONG  - THIEUVQ 210618 ::BEGIN
7471
IF @l_NEW_AMORT_MONTH < @l_AMORTIZED_MONTH
7472
BEGIN
7473
	SET @ERRORSYS = 'ASS-99994'
7474
END
7475
ELSE
7476
BEGIN
7477
	IF @l_NEW_AMORT_MONTH <> @l_OLD_AMORT_MONTH
7478
	SET @l_AMORT_MONTH_UPD = 'Y'
7479
	SET @l_AMORT_END_DATE = DATEADD(MONTH,@l_NEW_AMORT_MONTH,@l_AMORT_START_DATE)
7480
	SET @l_AMORT_END_DATE = DATEADD(DAY,-1,@l_AMORT_END_DATE)
7481
END
7482
-----::END
7483

    
7484
----NEU THAY DOI SO KY KHAU HAO => KIEM TRA CHO TRUONG HOP CCLD
7485
--IF (@l_GROUP_ID_UPD = 'Y' AND @l_TYPE_ID = 'CCLD')
7486
--BEGIN
7487
--	RETURN 0
7488
--END
7489

    
7490
--Neu co thay doi gia tri khau hao
7491
--IF (@l_TYPE_ID = 'TSCD' AND @l_AMORT_STATUS IN ('CKH','DKH'))
7492
IF @l_AMORT_STATUS IN ('CKH','DKH')
7493
BEGIN
7494
	IF (@l_AMORT_AMT_UPD = 'Y' OR @l_AMORT_MONTH_UPD = 'Y')
7495
	BEGIN
7496
		IF (@l_AMORTIZED_MONTH = 0) --Chua chay khau hao thi phai tinh lai khau hao cua thang dau tien
7497
		BEGIN
7498
			SET @l_NEW_MONTHLY_AMT = ROUND((@l_NEW_AMORT_AMT - ISNULL(@l_AMORTIZED_AMT,0)) / @l_NEW_AMORT_MONTH, 0)
7499
			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)		
7500
		END
7501
		ELSE
7502
		BEGIN
7503
			--thieuvq - sua lai doan tinh khau hao
7504
			--TINH LAI SO KY KHAU HAO TINH THEO NGAY DUYET
7505
			DECLARE @l_KY_KHAU_HAO_CL FLOAT
7506
			--BAN VIET THAY DOI CACH TINH 230119
7507
			--DECLARE @l_NGAY_DUYET DATE = CONVERT(DATE,@p_APPROVE_DT,103)
7508
			----SET @l_NGAY_DUYET = CONVERT(VARCHAR(10),YEAR(@l_NGAY_DUYET)) + '-'+CONVERT(VARCHAR(10),MONTH(@l_NGAY_DUYET)) + '-'+ '1'
7509
			----SET @l_KY_KHAU_HAO_CL = round((datepart(day,@l_AMORT_END_DATE)*1.0/dbo.[FN_GetDaysInMonth](@l_AMORT_END_DATE)),2)
7510
			------THIEUVQ COMMENT 29072015
7511
			------IF @l_KY_KHAU_HAO_CL = 1 SET @l_KY_KHAU_HAO_CL  = DATEDIFF(MM, @l_NGAY_DUYET, @l_AMORT_END_DATE)
7512
			------ELSE 
7513
			--SET @l_KY_KHAU_HAO_CL  = DATEDIFF(MM, @l_NGAY_DUYET, @l_AMORT_END_DATE) --+ @l_KY_KHAU_HAO_CL
7514

    
7515
			----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
7516
			--IF EXISTS (SELECT * FROM ASS_AMORT WHERE AMORT_TERM = CONVERT(VARCHAR(5),MONTH(@l_NGAY_DUYET))+'/'+CONVERT(VARCHAR(5),YEAR(@l_NGAY_DUYET)) 
7517
			--											AND ASSET_TYPE = 'ALL')
7518
			--											--AND ASSET_TYPE = 'TSCD')
7519
			--BEGIN SET @l_KY_KHAU_HAO_CL = @l_KY_KHAU_HAO_CL - 1 END
7520
			SET @l_KY_KHAU_HAO_CL = /*@l_OLD_AMORT_MONTH*/ @l_NEW_AMORT_MONTH - @l_AMORTIZED_MONTH
7521
			--SET @l_NEW_MONTHLY_AMT = ROUND((@l_NEW_AMORT_AMT - @l_AMORTIZED_AMT)/ @l_NEW_AMORT_MONTH, -3)
7522
			SET @l_NEW_MONTHLY_AMT = ROUND((@l_NEW_AMORT_AMT - @l_AMORTIZED_AMT)/ @l_KY_KHAU_HAO_CL, 0)
7523
			SET @l_NEW_FIRST_AMORT_AMT = @l_OLD_FIRST_AMORT_AMT
7524
		END
7525
		print 'Y'
7526
	END
7527
	ELSE 
7528
	BEGIN
7529
		SET @l_NEW_FIRST_AMORT_AMT = @l_OLD_FIRST_AMORT_AMT
7530
		SET @l_NEW_MONTHLY_AMT= @l_OLD_MONTHLY_AMT
7531
		print 'N'
7532
	END
7533
END
7534
ELSE 
7535
BEGIN
7536
	--THIEUVQ- DIEPTT 03092015 TRUONG HOP KHAU HAO XONG NHUNG TANG NGUYEN GIA
7537
	--BAT LAI TINH TRANG TAI SAN DANG KHAU HAO VA SE KHAU HAO HET VAO THANG NAY
7538
	IF (@l_AMORT_AMT_UPD = 'Y')
7539
	BEGIN
7540
		SET @l_AMORT_END_DATE = CONVERT(DATETIME,@p_APPROVE_DT,103)
7541
		--KIEM TRA NEU NGAY DIEU CHINH DA CHAY KHAU HAO ROI THI CHUYEN KHAU HAO HET VAO THANG SAU
7542
		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)) 
7543
														AND ASSET_TYPE = 'ALL')
7544
		BEGIN			
7545
			SET @l_AMORT_END_DATE = DATEADD(MM,1,@l_AMORT_END_DATE )
7546
		END		
7547
			
7548
		SET @l_AMORT_STATUS = 'DKH'
7549
	END
7550
	SET @l_NEW_FIRST_AMORT_AMT = @l_OLD_FIRST_AMORT_AMT
7551
	SET @l_NEW_MONTHLY_AMT= @l_OLD_MONTHLY_AMT
7552
	print 'N'
7553
END
7554

    
7555
IF @ERRORSYS <> '' 
7556
BEGIN
7557
	SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
7558
	RETURN '0'
7559
END 
7560

    
7561
BEGIN TRANSACTION
7562
	--Move to history	
7563
	--Phat sinh Asset_ID
7564
	EXEC SYS_CodeMasters_Gen 'ASS_MASTER_HIST', @l_ASSHIST_ID out
7565
	
7566
	INSERT INTO ASS_MASTER_HIST 
7567
		SELECT @l_ASSHIST_ID, a.*
7568
		FROM ASS_MASTER a
7569
		where a.ASSET_ID = @l_ASSET_ID
7570

    
7571
	UPDATE ASS_MASTER
7572
	SET
7573
		ASSET_NAME = @l_NEW_ASSET_NAME,
7574
		ASSET_DESC = @l_NEW_ASSET_DESC,
7575
		ASSET_SERIAL_NO = @l_NEW_ASSET_SERIAL_NO,
7576
		BUY_PRICE	= @l_NEW_BUY_PRICE,
7577
		AMORT_AMT = @l_NEW_AMORT_AMT,
7578
		FIRST_AMORT_AMT = @l_NEW_FIRST_AMORT_AMT,
7579
		MONTHLY_AMORT_AMT = @l_NEW_MONTHLY_AMT,		
7580
		APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103),
7581
		AMORT_END_DATE = @l_AMORT_END_DATE, -- thieuvq them 18/04/2014
7582
		AMORT_MONTH = @l_NEW_AMORT_MONTH,
7583
		AMORT_RATE = @L_AMORT_RATE,
7584
		--THIEUVQ 03092015
7585
		AMORT_STATUS = @l_AMORT_STATUS
7586
	WHERE ASSET_ID = @l_ASSET_ID
7587

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

    
7590
    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)
7591
    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)
7592
    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)
7593

    
7594

    
7595
    DECLARE @_NEW_AMT_AMORT DECIMAL(18,2)
7596
    DECLARE @_NEW_AMT_AMORT_RE DECIMAL(18,2)
7597
    DECLARE @_NEW_AMT_AMORT_RENEW DECIMAL(18,2)
7598
    DECLARE @_NEW_AMT_AMORT_OLD DECIMAL(18,2)
7599
    DECLARE @_NEW_AMT_AMORT_LAST DECIMAL(18,2)
7600
    DECLARE @_NUM_AMT_AMORT_DT DECIMAL(18,2)
7601

    
7602

    
7603
    DECLARE @_CUR_DATE DECIMAL(18,2) = CAST((DAY(CONVERT(DATETIME,@p_APPROVE_DT,103))) AS DECIMAL) + 0.00
7604
    DECLARE @_END_OF_MONTH DECIMAL(18,2) = DAY(dbo.FN_GetLastDayOfMonth(CONVERT(DATETIME,@p_APPROVE_DT,103)))
7605

    
7606
    --- KHẤU HAO LUỸ KẾ 
7607
    DECLARE @KH_CUM DECIMAL(18,2) = (SELECT ISNULL(AM.AMORTIZED_AMT,0) FROM ASS_MASTER AM WHERE AM.ASSET_ID = @l_ASSET_ID)
7608
 
7609
    IF(YEAR(@l_AMORT_START_DATE) <> YEAR(CONVERT(DATETIME,@p_APPROVE_DT,103)))
7610
    BEGIN
7611
        -- Số tiền trích khấu hao của tháng mới theo nguyên giá mới
7612
        SET @_NEW_AMT_AMORT = ROUND((@l_NEW_BUY_PRICE - @AMT_OLD_AMORT)/(@l_NEW_AMORT_MONTH-@MONTH_OLD_AMORT),0) 
7613
    END
7614
    ELSE 
7615
    BEGIN
7616
        SET @_NEW_AMT_AMORT = ROUND((@l_NEW_BUY_PRICE - @KH_CUM)/@l_KY_KHAU_HAO_CL,0)
7617
    END  
7618

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

    
7628

    
7629
    -- 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
7630
    --SET @_NEW_AMT_AMORT_RENEW = ROUND(@_NEW_AMT_AMORT/@_END_OF_MONTH,0)*@_NUM_AMT_AMORT_DT
7631
    SET @_NEW_AMT_AMORT_RENEW = ROUND((@_NEW_AMT_AMORT-@l_OLD_MONTHLY_AMT)*@MONTH_NEW_AMORT,0)
7632
    -- Số tiền khấu hao cũ theo ngày còn lại
7633
    --SET @_NEW_AMT_AMORT_OLD = ROUND(@_NEW_AMT_AMORT_RE/@_END_OF_MONTH, 0)*@_NUM_AMT_AMORT_DT
7634

    
7635

    
7636
    -- Số tiền trích khấu hao cho cặp hạch toán phát sinh tăng giảm
7637
    --SET @_NEW_AMT_AMORT_LAST = ROUND(@_NEW_AMT_AMORT_OLD - @_NEW_AMT_AMORT_RENEW,0)
7638
    IF (@l_NEW_BUY_PRICE <> @l_OLD_BUY_PRICE) --TANG NGUYEN GIA
7639
	BEGIN
7640
        SET @_NEW_AMT_AMORT_LAST = @_NEW_AMT_AMORT_RENEW
7641
        UPDATE ASS_MASTER SET MONTHLY_AMORT_AMT = ISNULL(@_NEW_AMT_AMORT, @l_NEW_MONTHLY_AMT) WHERE ASSET_ID = @l_ASSET_ID
7642
        IF(@_NEW_AMT_AMORT_LAST < 0) SET @_NEW_AMT_AMORT_LAST = -@_NEW_AMT_AMORT_LAST
7643
    END
7644

    
7645

    
7646

    
7647
--HẠCH TOÁN TĂNG GIẢM NGUYÊN GIÁ 
7648
     DECLARE @AC_TSCD VARCHAR(20) 
7649
   IF(EXISTS(SELECT am.ASSET_ID FROM ASS_MASTER am WHERE am.ASSET_ID=@l_ASSET_ID AND am.ENTRY_BOOKED='Y'))
7650
   BEGIN
7651
      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)))
7652
      IF(@AC_TSCD IS NULL OR @AC_TSCD = '') 
7653
        SET @AC_TSCD = (SELECT ACC_NO FROM ENTRIES_POST_ACCNO WHERE ACC_TYPE ='ASSET_TSCD' AND GROUP_ID = @l_OLD_GROUP_ID)
7654

    
7655
   END
7656
   ELSE
7657
   BEGIN
7658
      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)))
7659
      IF(@AC_TSCD IS NULL OR @AC_TSCD = '') 
7660
        SET @AC_TSCD = (SELECT ACC_NO FROM ENTRIES_POST_ACCNO WHERE ACC_TYPE ='BUY_TSCD' AND GROUP_ID = @l_OLD_GROUP_ID)
7661
  
7662
  END
7663
  
7664
  
7665
  DECLARE @AC_HS_MAIN VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'PAY_HS')
7666
    DECLARE @l_EXP_ACCTNO VARCHAR(20), @l_AMORT_BASIC VARCHAR(20)
7667
    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)
7668
	--BRN_ID HOI SO
7669
	SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'
7670

    
7671
          SET @l_C_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_HO_BRN_ID)
7672
          SET @l_D_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_CREATE)
7673
          SET @l_DEP_CODE =(SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@l_DEP_ID)
7674
    --ASSET_GL
7675
	SELECT @l_ASSET_GL = ASSET_ACCTNO,
7676
			@l_AMORT_BASIC = EXP_ACCTNO,
7677
			@l_AMORT_ACCTNO = AMORT_ACCTNO
7678
	FROM ASS_GROUP A 
7679
	WHERE A.GROUP_ID = @l_OLD_GROUP_ID
7680
	--Neu co thay doi nguyen gia
7681
	IF (@l_NEW_BUY_PRICE <> @l_OLD_BUY_PRICE)
7682
	BEGIN
7683
		DECLARE @AMT DECIMAL(18,0) 
7684
		DECLARE @BRN_ID VARCHAR(15)
7685
		IF @l_BRANCH_ID IS NULL OR @l_BRANCH_ID = ''
7686
			SET @BRN_ID = @l_BRANCH_CREATE
7687
		ELSE SET @BRN_ID = @l_BRANCH_ID
7688

    
7689
          SET @l_AC_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@BRN_ID)
7690

    
7691
        DECLARE @NOTE_AMORT NVARCHAR(500) = N'KHAU HAO TSCD TRICH NGUYEN GIA TANG'
7692
        DECLARE @NOTE_AMORT2 NVARCHAR(500) = N'KHAU HAO TSCD TRICH NGUYEN GIA GIAM'
7693

    
7694
		IF (@l_NEW_BUY_PRICE > @l_OLD_BUY_PRICE) --TANG NGUYEN GIA
7695
		BEGIN
7696
				SET @AMT = @l_NEW_BUY_PRICE - @l_OLD_BUY_PRICE
7697
				--insert dbo.ASS_VALUES
7698
				EXEC SYS_CodeMasters_Gen 'ASS_VALUES', @l_VALUE_ID out
7699
						
7700
				INSERT INTO ASS_VALUES
7701
				(
7702
					VALUE_ID, ASSET_ID, BRANCH_ID, TRN_DT, CRDR, ASSET_AMT, [DESCRIPTION], TRN_ID, TRN_TYPE,
7703
					RECORD_STATUS, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, AMORT_AMT
7704
				)
7705
				VALUES
7706
				(
7707
					@l_VALUE_ID, @l_ASSET_ID, @BRN_ID, CONVERT(datetime, @sToday, 103), 'C', @AMT, N'DIEU CHINH TSCD/CCLD', @p_UPDATE_ID, 'ASS_UPDATE',
7708
					'1','A',@l_MAKER_ID, CONVERT(datetime, @sToday, 103), @p_CHECKER_ID, CONVERT(datetime, @sToday, 103), @l_NEW_AMORT_AMT - @l_OLD_AMORT_AMT
7709
				)
7710

    
7711
				IF @l_TYPE_ID = 'TSCD'
7712
				BEGIN
7713
				--NO ASSET_ACCTNO - CO ASSET_SUPPEND_GL: GIA TRI CHENH LECH
7714
					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',
7715
					@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
7716
					@l_ET_ID OUT
7717
					--IF @ERROR <> 0 GOTO ABORT_ERROR
7718
                  -- TSCD
7719
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
7720
                  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)
7721
                  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);
7722
                  -- TRẢ HỘI SỞ
7723
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
7724
                  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)
7725
                  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);
7726
                  
7727
                  --ĐỒNG THỜI TRÍCH BỔ SUNG SỐ TRÍCH KHẤU HAO TRONG NĂM HIỆN HÀNH
7728
                  IF(@_NEW_AMT_AMORT_LAST IS NOT NULL AND @_NEW_AMT_AMORT_LAST <> 0)
7729
                  BEGIN
7730
                  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',
7731
					@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
7732
					@l_ET_ID OUT
7733
                  -- Chi phí KH cơ bản
7734
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
7735
                  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)
7736
                  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);
7737
                  -- Hao mòn TSCD
7738
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
7739
                  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)
7740
                  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);
7741
                 END 
7742
				END
7743
--				ELSE IF @l_TYPE_ID = 'CCLD'
7744
--				BEGIN
7745
--				--NO ASSET_ACCTNO - CO ASSET_SUPPEND_GL: GIA TRI CHENH LECH
7746
--					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',
7747
--					@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
7748
--					@l_ET_ID OUT
7749
--					--IF @ERROR <> 0 GOTO ABORT_ERROR
7750
--				END								
7751

    
7752
		END
7753
		ELSE --GIAM NGUYEN GIA
7754
		BEGIN
7755
				SET @AMT = @l_OLD_BUY_PRICE - @l_NEW_BUY_PRICE
7756
				--insert dbo.ASS_VALUES
7757
				EXEC SYS_CodeMasters_Gen 'ASS_VALUES', @l_VALUE_ID out
7758
							
7759
				INSERT INTO ASS_VALUES
7760
				(
7761
					VALUE_ID, ASSET_ID, BRANCH_ID, TRN_DT, CRDR, ASSET_AMT, [DESCRIPTION], TRN_ID, TRN_TYPE,
7762
					RECORD_STATUS, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, AMORT_AMT
7763
				)
7764
				VALUES
7765
				(
7766
					@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',
7767
					'1','A',@l_MAKER_ID, CONVERT(datetime, @sToday, 103), @p_CHECKER_ID, CONVERT(datetime, @sToday, 103), @l_NEW_AMORT_AMT - @l_OLD_AMORT_AMT
7768
				)
7769

    
7770
				IF @l_TYPE_ID = 'TSCD'
7771
				BEGIN
7772
				--NO ASSET_SUPPEND_GL - CO ASSET_ACCTNO: GIA TRI CHENH LECH
7773
					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',
7774
					@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
7775
						@l_ET_ID OUT
7776
					--IF @ERROR <> 0 GOTO ABORT_ERROR
7777

    
7778
                     -- TRẢ HỘI SỞ
7779
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
7780
                  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)
7781
                  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);
7782
                  
7783
                  -- TSCD
7784
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
7785
                  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)
7786
                  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);
7787
--                 
7788
                  --ĐỒ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
7789
                   IF(@_NEW_AMT_AMORT_LAST IS NOT NULL AND @_NEW_AMT_AMORT_LAST <> 0)
7790
                  BEGIN
7791
                  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',
7792
					@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
7793
						@l_ET_ID OUT
7794
                  -- Hao mòn TSCD
7795
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
7796
                  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)
7797
                  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);
7798
                  
7799
                  -- Chi phí KH cơ bản
7800
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
7801
                  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)
7802
                  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);
7803
                  END
7804
				END
7805
--				ELSE IF @l_TYPE_ID = 'CCLD'
7806
--				BEGIN
7807
--				--NO ASSET_SUPPEND_GL - CO ASSET_ACCTNO: GIA TRI CHENH LECH
7808
--					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',
7809
--					@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
7810
--					@ERROR OUT
7811
--					--IF @ERROR <> 0 GOTO ABORT_ERROR					
7812
--				END
7813
		END
7814
	END
7815

    
7816
	UPDATE ASS_UPDATE 
7817
	SET 
7818
		AUTH_STATUS = @P_AUTH_STATUS, 
7819
		CHECKER_ID = @p_CHECKER_ID, 
7820
		APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
7821
	WHERE UPDATE_ID = @p_UPDATE_ID
7822
	UPDATE PL_PROCESS SET PROCESS_ID='UPDATE_NT' WHERE REQ_ID = @p_UPDATE_ID AND PROCESS_ID ='UPDATE'
7823
	INSERT INTO dbo.PL_PROCESS
7824
		(
7825
			REQ_ID,
7826
			PROCESS_ID,
7827
			CHECKER_ID,
7828
			APPROVE_DT,
7829
			PROCESS_DESC,NOTES
7830
		)
7831
		VALUES
7832
		(   @p_UPDATE_ID,        -- REQ_ID - varchar(15)
7833
			'APPROVE',        -- PROCESS_ID - varchar(10)
7834
			@p_CHECKER_ID,        -- CHECKER_ID - varchar(15)
7835
			GETDATE(), -- APPROVE_DT - datetime
7836
			N'Phê duyệt phiếu cập nhật tài sản thành công' ,
7837
			N'Phê duyệt phiếu cập nhật tài sản'      -- PROCESS_DESC - nvarchar(1000)
7838
		)
7839
END TRY
7840

    
7841
BEGIN CATCH	
7842
	IF @@TRANCOUNT>0
7843
		ROLLBACK TRANSACTION
7844
		
7845
	SELECT '-1' as Result,  convert(varchar(100),ERROR_NUMBER()) + ' - ' + ERROR_MESSAGE() ErrorDesc
7846
	RETURN '-1'		
7847

    
7848
END CATCH;
7849

    
7850

    
7851
IF @@TRANCOUNT>0
7852
	COMMIT TRANSACTION
7853

    
7854
SELECT '0' as Result, '' ErrorDesc
7855
RETURN '-1'	
7856

    
7857
ABORT_ERROR:
7858
BEGIN
7859
	IF @@TRANCOUNT>0
7860
		ROLLBACK TRANSACTION
7861
		
7862
	SELECT '-1' as Result,  convert(varchar(100),ERROR_NUMBER()) + ' - ' + ERROR_MESSAGE() + @ERROR ErrorDesc
7863
	RETURN '-1'		
7864
END
7865
GO
7866
IF @@ERROR <> 0 SET NOEXEC ON
7867
GO
7868
PRINT N'Altering [dbo].[ASS_LIQUIDATION_BVB_Export]'
7869
GO
7870
ALTER PROCEDURE [dbo].[ASS_LIQUIDATION_BVB_Export]
7871
@p_LIQ_ID	varchar(15)  = NULL
7872

    
7873
AS
7874
	
7875
BEGIN 
7876
	SELECT ROW_NUMBER() OVER (ORDER BY A.LIQ_ID) AS STT, A.*, B.ASSET_NAME, B.ASSET_CODE,
7877
	--A.REMAIN_VALUE AS REMAIN_AMORTIZED_AMT,
7878
	ISNULL((B.AMORT_AMT - B.AMORTIZED_AMT), B.AMORT_AMT) AS REMAIN_AMORTIZED_AMT,  --So tien khau hao con lai
7879
	E.STATUS_NAME ASS_STATUS_NAME, --Tinh trang tai san
7880
	BR_C.BRANCH_CODE BRANCH_CODE_CRE, BR_C.BRANCH_NAME BRANCH_NAME_CRE, BR_U.BRANCH_CODE BRANCH_CODE_USE, BR_U.BRANCH_NAME BRANCH_NAME_USE,
7881
    AMORT_MONTH,ISNULL(AMORT_MONTH-AMORTIZED_MONTH,AMORT_MONTH) AS REMAIN_AMORT_MONTH,
7882
	DP_U.DEP_CODE AS DEPT_CODE_USE, DP_U.DEP_NAME AS DEPT_NAME_USE,B.BUY_DATE_KT,B.AMORTIZED_MONTH,B.AMORTIZED_AMT,
7883
    TY.TYPE_NAME,convert(nvarchar(20),convert(INT,AMORT_MONTH/12) ) + N' năm' as R_AMORT_MONTH,CM.TERM_TYPE, BD.CREATE_DT, B.USE_DATE, 
7884
    BR_C.BRANCH_CODE
7885
	FROM ASS_LIQUIDATION_DT A 
7886
	LEFT JOIN ASS_MASTER B ON A.ASSET_ID=B.ASSET_ID
7887
	LEFT JOIN ASS_TYPE TY ON B.TYPE_ID=TY.TYPE_ID
7888
	LEFT JOIN ASS_LIQ_REQUEST BDD ON A.LIQ_ID=BDD.LIQ_ID
7889
	LEFT JOIN CM_TERM CM ON BDD.TERM_ID=CM.TERM_ID
7890
	LEFT JOIN ASS_LIQUIDATION BD ON A.LIQ_ID=BD.LIQ_ID
7891
	LEFT JOIN ASS_STATUS E ON B.ASS_STATUS = E.STATUS_ID
7892
	--LUCTV: 19-12-2018 BO SUNG LEFT JOIN DE LAY THONG TIN DON VI NHAP TAI SAN, DON VI DANG SU SUNG TAI SAN
7893
	LEFT JOIN CM_BRANCH BR_C ON B.BRANCH_CREATE = BR_C.BRANCH_ID
7894
	LEFT JOIN CM_BRANCH BR_U ON B.BRANCH_ID = BR_U.BRANCH_ID
7895
	LEFT JOIN dbo.CM_DEPARTMENT DP_U ON B.DEPT_ID = DP_U.DEP_ID
7896
	WHERE 1 = 1 AND A.LIQ_ID = @p_LIQ_ID
7897
END
7898
GO
7899
IF @@ERROR <> 0 SET NOEXEC ON
7900
GO
7901
PRINT N'Altering [dbo].[CM_EMPLOYEE_LOG_Ins]'
7902
GO
7903
ALTER PROCEDURE [dbo].[CM_EMPLOYEE_LOG_Ins]
7904
@p_EMP_CODE	varchar(15)  = NULL,
7905
@p_EMP_NAME	nvarchar(50)  = NULL,
7906
@p_BRANCH_CODE	varchar(15)  = NULL,
7907
@p_DEP_CODE	varchar(15)  = NULL,
7908
@p_USER_DOMAIN varchar(15)  = NULL,
7909
@p_POS_CODE varchar(15)  = NULL,
7910
@p_POS_NAME nvarchar(500)  = NULL,
7911
@p_CREATE_DT varchar(20)  = NULL
7912
AS
7913
--Validation is here
7914

    
7915
--DECLARE @ERRORSYS NVARCHAR(15) = '' 
7916
--  IF ( EXISTS ( SELECT 1 FROM CM_EMPLOYEE_LOG WHERE USER_DOMAIN = @p_USER_DOMAIN))
7917
--	 SET @ERRORSYS = 'EMPLOG-001'
7918
--IF @ERRORSYS <> '' 
7919
--BEGIN
7920
--	SELECT ErrorCode Result, ''  ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
7921
--	RETURN '0'
7922
--END
7923

    
7924
BEGIN TRANSACTION
7925
DECLARE @l_EMP_ID VARCHAR(15)
7926
    INSERT INTO CM_EMPLOYEE_LOG(EMP_CODE, EMP_NAME, BRANCH_CODE, DEP_CODE, USER_DOMAIN, POS_CODE, POS_NAME, CREATE_DT)
7927
    VALUES(@p_EMP_CODE, @p_EMP_NAME, @p_BRANCH_CODE, @p_DEP_CODE, @p_USER_DOMAIN, @p_POS_CODE, @p_POS_NAME, CONVERT(DATETIME, @p_CREATE_DT, 103)) 
7928

    
7929
    --PHUCVH 26/12/22 UPDATE CHỨC DANH BẢNG CM_EMPLOYEE. ĐỂ CM_EMPLOYEE VÀ CM_EMPLOYEE_LOG ĐỒNG BỘ DATA VỚI NHAU
7930
    UPDATE CM_EMPLOYEE
7931
    SET POS_NAME = @p_POS_NAME, POS_CODE = @p_POS_CODE
7932
    WHERE EMP_CODE = @p_EMP_CODE
7933

    
7934
		IF @@Error <> 0 GOTO ABORT
7935
COMMIT TRANSACTION
7936
SELECT '0' as Result, @l_EMP_ID  ID, '' ErrorDesc
7937
RETURN '0'
7938
ABORT:
7939
BEGIN
7940
		ROLLBACK TRANSACTION
7941
		SELECT '-1' as Result, '' ID, '' ErrorDesc
7942
		RETURN '-1'
7943
End
7944
GO
7945
IF @@ERROR <> 0 SET NOEXEC ON
7946
GO
7947
PRINT N'Altering [dbo].[CM_SUPPLIER_Upd]'
7948
GO
7949
ALTER PROCEDURE [dbo].[CM_SUPPLIER_Upd]
7950
@p_SUP_ID	varchar(15) = null ,
7951
@p_SUP_CODE	varchar(15) = NULL ,
7952
@p_SUP_NAME	Nvarchar(300) = NULL ,
7953
@p_SUP_TYPE_ID	varchar(15) = NULL ,
7954
@p_REGION_ID	varchar(15) = NULL ,
7955
@p_ADDR	nvarchar(200) = NULL ,
7956
@p_EMAIL	varchar(50) = NULL ,
7957
@p_TAX_NO	varchar(20) = NULL ,
7958
@p_TEL	varchar(20) = NULL ,
7959
@p_CONTACT_PERSON	nvarchar(200) = NULL ,
7960
@p_DISCIPLINES VARCHAR(15) = NULL,
7961
@p_NOTES	nvarchar(1000) = NULL ,
7962
@p_RECORD_STATUS	varchar(1) = NULL ,
7963
@p_MAKER_ID	varchar(100) = NULL ,
7964
@p_CREATE_DT	VARCHAR(20) = NULL,
7965
@p_AUTH_STATUS	varchar(50) = NULL ,
7966
@p_CHECKER_ID	varchar(100) = NULL ,
7967
@p_APPROVE_DT	VARCHAR(20) = NULL,
7968
@p_ACC_NUM VARCHAR(100) = NULL,
7969
@p_ACC_NAME VARCHAR(100) = NULL,
7970
@p_BANK_NAME VARCHAR(200) = NULL,
7971
@p_ACC_NUM_OUT VARCHAR(100) = NULL,
7972
@p_ACC_NAME_OUT VARCHAR(100) = NULL,
7973
@p_BANK_NAME_OUT VARCHAR(200) = NULL,
7974
@p_EDITOR_ID VARCHAR(15) = NULL,
7975
@p_EDITOR_DT VARCHAR(15) = NULL
7976
AS
7977
BEGIN TRANSACTION
7978
--Validation is here
7979
		DECLARE @ERRORSYS NVARCHAR(15) = '' 
7980
		IF (select case when @p_TAX_NO not like '%[^0-9]%' then 0 else 1 end) <> 0
7981
		BEGIN
7982
			ROLLBACK TRANSACTION
7983
			SELECT '-1' as Result, N' Mã số thuế chỉ được phép nhập số' ErrorDesc
7984
			RETURN '-1'
7985
		END
7986
		IF ( EXISTS ( SELECT * FROM CM_SUPPLIER WHERE TAX_NO=@p_TAX_NO AND SUP_ID<>@p_SUP_ID))
7987
		 SET @ERRORSYS = 'SUP-0001'
7988
		IF @ERRORSYS <> '' 
7989
		BEGIN
7990
			SELECT ErrorCode Result, ''  SUP_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
7991
			RETURN '0'
7992
		END 
7993
		-- KIEM TRA XEM THONG TIN NGAN HANG CO DANG DUOC THANH TOAN TAM UNG HAY KHONG
7994
		--
7995
		UPDATE CM_SUPPLIER SET [DISCIPLINES] = @p_DISCIPLINES, [SUP_CODE] = @p_SUP_CODE,[SUP_NAME] = @p_SUP_NAME,[SUP_TYPE_ID] = @p_SUP_TYPE_ID,[REGION_ID] = @p_REGION_ID,[ADDR] = @p_ADDR,[EMAIL] = @p_EMAIL,[TAX_NO] = @p_TAX_NO,[TEL] = @p_TEL,[CONTACT_PERSON] = @p_CONTACT_PERSON,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),
7996
		[AUTH_STATUS] = @p_AUTH_STATUS,[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),EDITOR_ID = @p_EDITOR_ID, EDITOR_DT = GETDATE(),
7997
		ACC_NUM=@p_ACC_NUM,ACC_NAME = @p_ACC_NAME,BANK_NAME = @p_BANK_NAME, ACC_NUM_OUT=@p_ACC_NUM_OUT,ACC_NAME_OUT = @p_ACC_NAME_OUT,BANK_NAME_OUT = @p_BANK_NAME_OUT
7998
		WHERE  SUP_ID= @p_SUP_ID
7999
		IF @@Error <> 0 GOTO ABORT
8000
COMMIT TRANSACTION
8001
		SELECT 0 as Result, @p_SUP_ID  SUP_ID, '' ErrorDesc, @p_SUP_ID id
8002
		RETURN 0
8003
ABORT:
8004
BEGIN
8005
		ROLLBACK TRANSACTION
8006
		SELECT -1 as Result, '' SUP_ID, '' ErrorDesc
8007
		RETURN -1
8008
End
8009
GO
8010
IF @@ERROR <> 0 SET NOEXEC ON
8011
GO
8012
PRINT N'Altering [dbo].[ASS_LIQUIDATION_BVB_Import]'
8013
GO
8014
ALTER PROCEDURE [dbo].[ASS_LIQUIDATION_BVB_Import]
8015
	@p_BRANCH_ID		varchar(15) = NULL,
8016
	@p_BRANCH_LOGIN		varchar(15) = NULL,
8017
	@p_LEVEL			varchar(10) = NULL,
8018
	@p_XML XML
8019

    
8020
AS
8021
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
8022
BEGIN -- PAGING
8023
	declare @tmp table(BRANCH_ID varchar(15))
8024
	insert into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
8025

    
8026
	
8027
	
8028
	declare @tmpAssetCode table(
8029
		STT				INT,
8030
		ASSET_CODE varchar(50),
8031
		LIQ_AMT	decimal(18,0),
8032
		LIQ_REASON NVARCHAR(1000),
8033
		LIQ_TYPE	nvarchar(max)
8034
	)
8035

    
8036
	
8037
	Declare @hdoc INT
8038
	Exec sp_xml_preparedocument @hdoc Output,  @p_XML
8039
	insert into @tmpAssetCode
8040
--	select ROW_NUMBER() OVER(ORDER BY (SELECT 1)), ASSET_CODE,LIQ_AMT,LIQ_REASON, CASE
8041
--                                                                                  	WHEN LIQ_TYPE LIKE N'%Toàn%' THEN '1'
8042
--                                                                                  	ELSE '0'
8043
--                                                                                  END LIQ_TYPE
8044
    select ROW_NUMBER() OVER(ORDER BY (SELECT 1)), ASSET_CODE,LIQ_AMT,LIQ_REASON,LIQ_TYPE
8045
	from OPENXML(@hdoc,'/Root/LiquiDetail',2)
8046
	WITH 
8047
	(
8048
		STT				INT,
8049
		ASSET_CODE	varchar(50),
8050
		LIQ_AMT	decimal(18,0),
8051
		LIQ_REASON NVARCHAR(1000),
8052
		LIQ_TYPE	nvarchar(100)
8053
	)
8054

    
8055
	-- validate begin
8056
	DECLARE @ERROR_MESSAGE NVARCHAR(MAX)
8057
    
8058
    --valide dup code
8059
    select @ERROR_MESSAGE = STUFF( (
8060
	--select ',' + ASSET_CODE from @tmpAssetCode T 
8061
    SELECT ASSET_CODE, COUNT(ASSET_CODE)
8062
    FROM @tmpAssetCode
8063
    GROUP BY ASSET_CODE
8064
    HAVING COUNT(ASSET_CODE) > 1
8065
	
8066
	FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
8067

    
8068
	IF(LEN(@ERROR_MESSAGE) > 0)
8069
	BEGIN
8070
		set @ERROR_MESSAGE = N'Mã tài sản trong file trùng dữ liệu: ' + @ERROR_MESSAGE
8071
		exec sp_seterrormessage @ERROR_MESSAGE
8072
		RETURN '-1'
8073
	END
8074
    ------- end dup -----
8075

    
8076
	select @ERROR_MESSAGE = STUFF( (
8077
	select ',' + ASSET_CODE from @tmpAssetCode T 
8078
	WHERE T.ASSET_CODE IS NOT NULL AND NOT EXISTS(
8079
		SELECT ASSET_CODE 
8080
		FROM ASS_MASTER A 	
8081
		WHERE A.ASSET_CODE = T.ASSET_CODE and A.RECORD_STATUS = '1'
8082
		AND  ( 
8083
					((A.AMORT_STATUS <> 'VNM' AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
8084
												OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID)))
8085
						OR
8086
					((A.AMORT_STATUS = 'VNM' OR (A.AMORT_STATUS = 'DTL' AND (A.BRANCH_ID IS NULL OR A.BRANCH_ID = ''))) 
8087
							--AND ((@p_LEVEL = 'ALL' AND MK.TLSUBBRID IN (SELECT BRANCH_ID from @tmp))
8088
							--					OR (@p_LEVEL = 'UNIT' AND MK.TLSUBBRID = @p_BRANCH_ID))) ) 
8089
							AND ((@p_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
8090
												OR (@p_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @p_BRANCH_ID))) ) 
8091
					OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = ''
8092
				)			
8093
				AND ( 
8094
					((A.AMORT_STATUS <> 'VNM' AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
8095
												OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN)))
8096
						OR
8097
					((A.AMORT_STATUS = 'VNM' OR (A.AMORT_STATUS = 'DTL' AND (A.BRANCH_ID IS NULL OR A.BRANCH_ID = '')))
8098
							AND ((@p_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
8099
												OR (@p_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @p_BRANCH_LOGIN)))) 
8100
					OR @p_BRANCH_LOGIN IS NULL OR @p_BRANCH_LOGIN = ''
8101
				)
8102
	
8103
	
8104
		) FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
8105

    
8106

    
8107
	IF(LEN(@ERROR_MESSAGE) > 0)
8108
	BEGIN
8109
		set @ERROR_MESSAGE = N'Mã tài sản không thuộc đơn vị hoặc không tồn tại trong hệ thống: ' + @ERROR_MESSAGE
8110
		exec sp_seterrormessage @ERROR_MESSAGE
8111
		RETURN '-1'
8112
	END
8113

    
8114
	select @ERROR_MESSAGE = STUFF( (
8115
	select ',' + ASSET_CODE from @tmpAssetCode T 
8116
	WHERE T.ASSET_CODE IS NOT NULL AND EXISTS(
8117
		SELECT ASSET_CODE 
8118
		FROM ASS_MASTER A 	
8119
		WHERE A.ASSET_CODE = T.ASSET_CODE and A.RECORD_STATUS = '1' AND A.AMORT_STATUS='DTL'
8120
		) FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
8121
		
8122
	-- validate end
8123

    
8124
	IF(LEN(@ERROR_MESSAGE) > 0)
8125
	BEGIN
8126
		set @ERROR_MESSAGE = N'Mã tài sản đã được thanh lý: ' + @ERROR_MESSAGE
8127
		exec sp_seterrormessage @ERROR_MESSAGE
8128
		RETURN '-1'
8129
	END
8130

    
8131

    
8132

    
8133

    
8134
---------------------------
8135
	
8136
		SELECT
8137
			A.ASSET_ID,
8138
			A.ASSET_CODE,
8139
			A.ASSET_NAME,
8140
			T.LIQ_AMT AS REQ_AMT,
8141
			A.BUY_PRICE,
8142
            ISNULL(ALRD.REQ_AMT, ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), A.AMORT_AMT)) AS LIQ_AMT,
8143
			ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), A.AMORT_AMT) AS REMAIN_AMORTIZED_AMT,  --So tien khau hao con lai
8144
			ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), A.AMORT_AMT) AS LIQ_PRICE, 
8145
			CASE WHEN A.BUY_PRICE > 0 THEN A.BUY_PRICE ELSE 0 END AS BUY_PRICE_LIQ,
8146
			E.STATUS_NAME ASS_STATUS_NAME, --Tinh trang tai san
8147
			A.BRANCH_ID,
8148
			T.LIQ_TYPE AS NOTE,	
8149
			--(T.BUY_PRICE_LIQ / A.BUY_PRICE) * ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), A.AMORT_AMT) AS REMAIN_VALUE,
8150
			T.LIQ_REASON,
8151
			C.BRANCH_NAME AS BRANCH_NAME_USE,
8152
			D.DEP_NAME AS DEPT_NAME_USE,
8153
			F.STATUS_NAME AMORT_STATUS_NAME
8154
		FROM ASS_MASTER A
8155
			LEFT JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID AND B.RECORD_STATUS = '1'
8156
			LEFT JOIN dbo.CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
8157
			
8158
			LEFT JOIN dbo.CM_DEPARTMENT D ON A.DEPT_ID = D.DEP_ID
8159
			LEFT JOIN ASS_STATUS E ON A.ASS_STATUS = E.STATUS_ID
8160
			LEFT JOIN ASS_AMORT_STATUS F ON A.AMORT_STATUS = F.STATUS_CODE
8161
			INNER JOIN @tmpAssetCode T ON A.ASSET_CODE = T.ASSET_CODE
8162
            LEFT JOIN ASS_LIQ_REQUEST_DT ALRD ON ALRD.ASSET_ID = A.ASSET_ID
8163
			
8164
		ORDER BY STT
8165

    
8166
	END
8167
GO
8168
IF @@ERROR <> 0 SET NOEXEC ON
8169
GO
8170
PRINT N'Altering [dbo].[ASS_LIQ_REQUEST_Search]'
8171
GO
8172
ALTER PROCEDURE [dbo].[ASS_LIQ_REQUEST_Search]
8173
@p_LIQ_REQ_ID	varchar(15)  = NULL,
8174
@p_ASS_TYPE_ID	varchar(15)  = NULL,
8175
@p_REQ_DT	VARCHAR(20) = NULL,
8176
@p_BRANCH_ID	varchar(15)  = NULL,
8177
@p_NOTES	nvarchar(1000)  = NULL,
8178
@p_RECORD_STATUS	varchar(1)  = NULL,
8179
@p_MAKER_ID	varchar(12)  = NULL,
8180
@p_CREATE_DT	VARCHAR(20) = NULL,
8181
@p_AUTH_STATUS	varchar(50)  = NULL,
8182
@p_STATUS	varchar(50)  = NULL,
8183
@p_CHECKER_ID	varchar(12)  = NULL,
8184
@p_APPROVE_DT	VARCHAR(20) = NULL,
8185
@p_TOP	INT = 10,
8186
@p_BRANCH_CREATE	VARCHAR(15) = NULL,
8187
@p_LEVEL	VARCHAR(50) = 'UNIT',
8188
@p_TERM_ID VARCHAR(15) = NULL,
8189
@p_USER_LOGIN VARCHAR(20)=NULL
8190
AS
8191

    
8192

    
8193
BEGIN -- PAGING
8194

    
8195
DECLARE @DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20)
8196
DECLARE  @ROLE_LOGIN TABLE(USER_ROLE VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20))
8197

    
8198
  INSERT INTO @ROLE_LOGIN
8199
  SELECT tugr.ROLE_ID, tugr.BRANCH_ID, tugr.DEPT_ID FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr
8200

    
8201
	SET @DEP_ID= (SELECT DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USER_LOGIN)
8202
	SET @BRANCH_ID= (SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_USER_LOGIN)
8203

    
8204
	DECLARE @lstCOST TABLE (COST_ID VARCHAR(20))
8205
	INSERT INTO @lstCOST
8206
	SELECT COST_ID FROM dbo.CM_COSTCENTER_DT WHERE BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID
8207

    
8208

    
8209

    
8210
DECLARE @MAX_ID INT = (SELECT MAX(CRP.ID) FROM CM_REQUEST_PROCESS CRP WHERE CRP.REQ_ID = @p_LIQ_REQ_ID)
8211

    
8212
DECLARE @LIQ_REQ_ID_Temp TABLE(LIQ_REQ_ID VARCHAR(20))
8213
INSERT INTO @LIQ_REQ_ID_Temp
8214
SELECT A.LIQ_REQ_ID FROM ASS_LIQ_REQUEST A
8215
LEFT JOIN CM_REQUEST_PROCESS B ON A.LIQ_REQ_ID = B.REQ_ID
8216
WHERE (EXISTS(SELECT RL.USER_ROLE FROM @ROLE_LOGIN RL WHERE RL.BRANCH_ID = B.BRANCH_ID
8217
    AND (B.BRANCH_ID = 'DV0001' AND B.DEP_ID = RL.DEP_ID OR B.BRANCH_ID <> 'DV0001')
8218
    AND RL.USER_ROLE = B.ROLE)
8219
  OR EXISTS(SELECT * FROM @ROLE_LOGIN RL
8220
    JOIN CM_REQUEST_PROCESS C ON C.REQ_ID = A.LIQ_REQ_ID AND C.ID = @MAX_ID AND RL.BRANCH_ID = C.BRANCH_ID
8221
    AND (C.BRANCH_ID = 'DV0001' AND C.DEP_ID = RL.DEP_ID OR C.BRANCH_ID <> 'DV0001')
8222
    AND RL.USER_ROLE = C.ROLE)
8223
  OR A.MAKER_ID = @p_USER_LOGIN)
8224
GROUP BY A.LIQ_REQ_ID
8225

    
8226

    
8227
--SELECT DISTINCT BRANCH_ID,DEP_ID FROM CM_REQUEST_PROCESS WHERE PROCESS_KEY = 'AssLiqRequest' AND REQ_ID = @p_LIQ_REQ_ID
8228

    
8229

    
8230

    
8231
IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
8232
-- PAGING BEGIN
8233
SELECT A.*,C.BRANCH_NAME, C.BRANCH_CODE,E.TYPE_NAME, CB.BRANCH_CODE AS BRANCH_CODE_CREATE, CB.BRANCH_NAME AS BRANCH_NAME_CREATE,
8234
	T.TERM_CODE, T.TERM_TYPE
8235
	,CASE   WHEN A.IS_REJECTED = 0 AND CRP.STATUS = 'B' THEN N'Mới tạo' 
8236
            WHEN A.IS_REJECTED = 0 THEN CRP.DESCRIBE
8237
            WHEN A.IS_REJECTED = 1 THEN N'Từ chối'  
8238
        ELSE CRP.DESCRIBE
8239
    END AS DESCRIBE, CRP.STATUS
8240
	,CASE  
8241
      WHEN A.IS_REJECTED = 1 THEN N'Từ chối'
8242
      WHEN A.IS_REJECTED = 0 AND CRP.STATUS = 'B' THEN N'Lưu nháp'
8243
      WHEN A.IS_REJECTED = 0 AND  CRP.STATUS = 'M' THEN N'Đã duyệt'
8244
      ELSE N'Chờ duyệt'
8245
   END AS AUTH_STATUS_NAME
8246
-- SELECT END
8247
	FROM ASS_LIQ_REQUEST A
8248
	LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
8249
	LEFT JOIN CM_BRANCH CB ON A.BRANCH_CREATE = CB.BRANCH_ID
8250
	LEFT JOIN ASS_TYPE E ON A.ASS_TYPE_ID=E.TYPE_ID
8251
	LEFT JOIN CM_TERM T ON T.TERM_ID = A.TERM_ID
8252
	LEFT JOIN CM_REQUEST_PROCESS CRP ON CRP.REQ_ID = A.LIQ_REQ_ID AND CRP.DONE = 0
8253
 WHERE 1 = 1
8254
	AND (A.LIQ_REQ_ID LIKE '%' + @p_LIQ_REQ_ID + '%' OR  @p_LIQ_REQ_ID IS NULL OR @p_LIQ_REQ_ID = '')
8255
	AND (A.ASS_TYPE_ID LIKE '%' + @p_ASS_TYPE_ID + '%' OR  @p_ASS_TYPE_ID IS NULL OR @p_ASS_TYPE_ID = '')
8256
	AND (DATEDIFF(DAYOFYEAR, A.REQ_DT,CONVERT(DATETIME, @p_REQ_DT, 103)) = 0 OR  @p_REQ_DT IS NULL OR @p_REQ_DT = '')
8257
	AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
8258
	AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
8259
	AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
8260
	--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
8261
	AND A.RECORD_STATUS = '1'
8262
  AND ((@p_AUTH_STATUS = 'A' AND A.AUTH_STATUS = 'L')
8263
        OR (@p_AUTH_STATUS = 'E' AND A.AUTH_STATUS = 'B')
8264
        OR (@p_AUTH_STATUS = 'U' AND A.AUTH_STATUS IN (SELECT * FROM STRING_SPLIT('C,E,Z,F,G,H,K', ',')))
8265
        OR (@p_AUTH_STATUS = 'R' AND (A.AUTH_STATUS = 'R' OR A.IS_REJECTED = 1))
8266
        OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
8267
        )
8268
	--AND (CRP.PROCESS_ID LIKE '%' + @p_AUTH_STATUS + '%' OR (CRP.PROCESS_ID IS NULL AND  @p_AUTH_STATUS<> N'U') OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
8269
	AND (A.TERM_ID = @p_TERM_ID OR @p_TERM_ID IS NULL OR @p_TERM_ID = '')
8270
	AND ((@p_STATUS = 'Z' AND A.IS_REJECTED = 1) OR (CRP.[STATUS] LIKE '%' + @p_STATUS + '%' OR  @p_STATUS IS NULL OR @p_STATUS = ''))
8271
  AND EXISTS(SELECT * FROM @LIQ_REQ_ID_Temp RL WHERE RL.LIQ_REQ_ID = A.LIQ_REQ_ID)
8272
  AND CRP.ROLE IN (SELECT USER_ROLE FROM @ROLE_LOGIN) 
8273
  OR A.MAKER_ID = @p_USER_LOGIN
8274
	ORDER BY A.CREATE_DT DESC
8275
-- PAGING END
8276
ELSE
8277
---- PAGING BEGIN
8278
SELECT TOP(CONVERT(INT,@p_TOP)) A.*,C.BRANCH_NAME, C.BRANCH_CODE,E.TYPE_NAME, CB.BRANCH_CODE AS BRANCH_CODE_CREATE, CB.BRANCH_NAME AS BRANCH_NAME_CREATE,
8279
	T.TERM_CODE, T.TERM_TYPE
8280
	,CASE   WHEN A.IS_REJECTED = 0 AND CRP.STATUS = 'B' THEN N'Mới tạo' 
8281
            WHEN A.IS_REJECTED = 0 THEN CRP.DESCRIBE
8282
            WHEN A.IS_REJECTED = 1 THEN N'Từ chối' 
8283
        ELSE CRP.DESCRIBE
8284
    END AS DESCRIBE, CRP.STATUS
8285
	,CASE  
8286
      WHEN A.IS_REJECTED = 1 THEN N'Từ chối'
8287
      WHEN A.IS_REJECTED = 0 AND CRP.STATUS = 'B' THEN N'Lưu nháp'
8288
      WHEN A.IS_REJECTED = 0 AND  CRP.STATUS = 'M' THEN N'Đã duyệt'
8289
      ELSE N'Chờ duyệt'
8290
   END AS AUTH_STATUS_NAME
8291
-- SELECT END
8292
	FROM ASS_LIQ_REQUEST A
8293
	LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
8294
	LEFT JOIN CM_BRANCH CB ON A.BRANCH_CREATE = CB.BRANCH_ID
8295
	LEFT JOIN ASS_TYPE E ON A.ASS_TYPE_ID=E.TYPE_ID
8296
	LEFT JOIN CM_TERM T ON T.TERM_ID = A.TERM_ID
8297
	LEFT JOIN CM_REQUEST_PROCESS CRP ON CRP.REQ_ID = A.LIQ_REQ_ID AND CRP.DONE = 0
8298
 WHERE 1 = 1
8299
	AND (A.LIQ_REQ_ID LIKE '%' + @p_LIQ_REQ_ID + '%' OR  @p_LIQ_REQ_ID IS NULL OR @p_LIQ_REQ_ID = '')
8300
	AND (A.ASS_TYPE_ID LIKE '%' + @p_ASS_TYPE_ID + '%' OR  @p_ASS_TYPE_ID IS NULL OR @p_ASS_TYPE_ID = '')
8301
	AND (DATEDIFF(DAYOFYEAR, A.REQ_DT,CONVERT(DATETIME, @p_REQ_DT, 103)) = 0 OR  @p_REQ_DT IS NULL OR @p_REQ_DT = '')
8302
	AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
8303
	AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
8304
	AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
8305
	--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
8306
  AND ((@p_AUTH_STATUS = 'A' AND A.AUTH_STATUS = 'L')
8307
        OR (@p_AUTH_STATUS = 'E' AND A.AUTH_STATUS = 'B')
8308
        OR (@p_AUTH_STATUS = 'U' AND A.AUTH_STATUS IN (SELECT * FROM STRING_SPLIT('C,E,Z,F,G,H,K', ',')))
8309
        OR (@p_AUTH_STATUS = 'R' AND (A.AUTH_STATUS = 'R' OR A.IS_REJECTED = 1))
8310
        OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
8311
        )
8312
	AND A.RECORD_STATUS = '1'
8313
	--AND (CRP.PROCESS_ID LIKE '%' + @p_AUTH_STATUS + '%' OR (CRP.PROCESS_ID IS NULL AND  @p_AUTH_STATUS<> N'U') OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
8314
	AND (A.TERM_ID = @p_TERM_ID OR @p_TERM_ID IS NULL OR @p_TERM_ID = '')
8315
	AND ((@p_STATUS = 'Z' AND A.IS_REJECTED = 1) OR (CRP.[STATUS] LIKE '%' + @p_STATUS + '%' OR  @p_STATUS IS NULL OR @p_STATUS = ''))
8316
  AND EXISTS(SELECT * FROM @LIQ_REQ_ID_Temp RL WHERE RL.LIQ_REQ_ID = A.LIQ_REQ_ID)
8317
  AND CRP.ROLE IN (SELECT USER_ROLE FROM @ROLE_LOGIN)
8318
  OR A.MAKER_ID = @p_USER_LOGIN
8319
	ORDER BY A.CREATE_DT DESC
8320
-- PAGING END
8321
END -- PAGING
8322
GO
8323
IF @@ERROR <> 0 SET NOEXEC ON
8324
GO
8325
PRINT N'Altering [dbo].[CM_PROCESS_DT_Create]'
8326
GO
8327

    
8328

    
8329
ALTER PROC [dbo].[CM_PROCESS_DT_Create]
8330
@p_ID VARCHAR(15) = NULL,
8331
@p_REQ_ID VARCHAR(50)=NULL,
8332
@p_TLNAME VARCHAR(200)=NULL
8333
AS
8334
BEGIN
8335

    
8336
DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20), @ROLE VARCHAR(20), @CURRENTSTATE VARCHAR(15), @CONDITION_STATUS VARCHAR(1), @DESCRIBE NVARCHAR(MAX), @COUNTDVCM INT, @TEMPDVCM_ID INT
8337
DECLARE @TEMPDVCM TABLE (
8338
  ID INT NOT NULL IDENTITY(1,1),
8339
  COST_ID VARCHAR(15),
8340
  REQ_ID VARCHAR(15)
8341
  --,RANGE_PROCESS VARCHAR(15)
8342
) 
8343
BEGIN TRANSACTION
8344

    
8345
SET @CURRENTSTATE = (SELECT TOP 1 crp.[STATUS] FROM CM_REQUEST_PROCESS crp WHERE crp.REQ_ID = @p_REQ_ID AND  PROCESS_ID=CONVERT(INT, @p_ID))
8346
SET @CONDITION_STATUS = (SELECT TOP 1 [STATUS] FROM CM_PROCESS WHERE ID=CONVERT(INT, @p_ID))    
8347
SET @ROLE = (SELECT TOP 1 ROLE FROM CM_PROCESS cp WHERE CONDITION_STATUS IN (SELECT  [STATUS] FROM CM_PROCESS WHERE ID=CONVERT(INT, @p_ID)) AND CONDITION_STATUS<>[STATUS] )
8348

    
8349
INSERT INTO @TEMPDVCM SELECT trsc.COST_ID, trsc.REQ_ID FROM TR_REQUEST_SHOP_COSTCENTER trsc  
8350
                      WHERE trsc.REQ_ID = @p_REQ_ID 
8351
                      AND trsc.COST_ID NOT IN (SELECT crp.DEPT_ID FROM CM_REQUEST_PROCESS crp WHERE crp.REQ_ID = @p_REQ_ID AND crp.STATUS = 'G' AND crp.PROCESS_ID = 32) 
8352

    
8353
SET @TEMPDVCM_ID = 1
8354
SET @COUNTDVCM = (SELECT COUNT(*) FROM @TEMPDVCM WHERE [@TEMPDVCM].REQ_ID = @p_REQ_ID GROUP BY [@TEMPDVCM].REQ_ID)	
8355

    
8356

    
8357
  INSERT INTO [dbo].[PL_PROCESS]
8358
           ([REQ_ID]
8359
           ,[PROCESS_ID]
8360
           ,[CHECKER_ID]
8361
           ,[APPROVE_DT]
8362
           ,[PROCESS_DESC]
8363
           ,[NOTES]
8364
           ,[AUTH_STATUS])
8365
    SELECT @p_REQ_ID
8366
	,ID
8367
	,@p_TLNAME
8368
	,GETDATE()
8369
	,UPPER(LEFT(cp.DESCRIPTION,1))+LOWER(SUBSTRING(cp.DESCRIPTION,2,LEN(cp.DESCRIPTION))) --uppercase/capitalize the first letter vs just wanted to change it only for displaying and do not need the actual data in table to change
8370
	,cp.NOTES
8371
	,[STATUS] FROM CM_PROCESS cp WHERE ID=CONVERT(INT, @p_ID)
8372

    
8373
	DECLARE @TABLE VARCHAR(50)=NULL
8374
	--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý,...
8375
		DECLARE @SYS_PREFIX VARCHAR(20) =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
8376
		  SELECT SUBSTRING(@p_REQ_ID, PATINDEX('%[a-z]%', @p_REQ_ID), LEN(@p_REQ_ID)) Val
8377
		)x)
8378
	SET @TABLE=(SELECT sp.ID FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX)
8379

    
8380
  SELECT @BRANCH_ID=BRANCH_ID,@DEP_ID=DEP_ID FROM ASS_LIQ_REQUEST ALR WHERE ALR.LIQ_REQ_ID = @p_REQ_ID
8381

    
8382
	--UPDATE STATUS DONE CM_REQUEST_PROCESS
8383
	UPDATE CM_REQUEST_PROCESS SET DONE=1 
8384
	WHERE REQ_ID=@p_REQ_ID 
8385
	AND PROCESS_ID=CONVERT(INT, @p_ID)
8386
	AND(DEPT_ID=(SELECT DEP_ID FROM TL_USER WHERE TLNANME=@p_TLNAME) OR DEPT_ID IS NULL OR DEPT_ID='')
8387

    
8388
	DELETE CM_REQUEST_PROCESS
8389
	WHERE (DONE<>1 OR DONE IS NULL)
8390
	AND REQ_ID=@p_REQ_ID 
8391
	AND PROCESS_ID<>CONVERT(INT, @p_ID)
8392
	AND CONDITION_STATUS=(SELECT TOP 1 CONDITION_STATUS FROM CM_REQUEST_PROCESS WHERE PROCESS_ID=CONVERT(INT, @p_ID) AND REQ_ID=@p_REQ_ID)
8393
	AND(DEPT_ID=(SELECT DEP_ID FROM TL_USER WHERE TLNANME=@p_TLNAME) OR DEPT_ID IS NULL OR DEPT_ID='')
8394
  
8395
   IF @ROLE LIKE '%QLTS'
8396
    BEGIN
8397
      SET @BRANCH_ID = 'DV0001'
8398
     SET @DEP_ID = 'DEP000000000048'
8399
    END
8400
  
8401
  IF(@CURRENTSTATE = 'E' AND NOT EXISTS (SELECT * FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID=@p_REQ_ID))
8402
  BEGIN
8403
    SET @p_ID = (SELECT cp.ID FROM CM_PROCESS cp WHERE cp.[STATUS] = 'G')
8404
    SET @BRANCH_ID = 'DV0001' 
8405
    SET @DEP_ID = 'DEP000000000048'
8406
    SET @CONDITION_STATUS = 'E'
8407
    SET @ROLE = 'QLTS'
8408
  END
8409

    
8410
   IF @ROLE LIKE '%DVCM' --AND @COUNTDVCM = 1     
8411
   BEGIN  
8412
    SET @BRANCH_ID = 'DV0001' 
8413
    SET @DEP_ID = (SELECT COST_ID FROM @TEMPDVCM WHERE REQ_ID = @p_REQ_ID AND ID = 1)--(SELECT TRS.COST_ID FROM TR_REQUEST_SHOP_COSTCENTER TRS WHERE TRS.REQ_ID=@p_REQ_ID)
8414
   END
8415

    
8416
--   IF @ROLE LIKE 'DVCM' AND @COUNTDVCM > 1 AND NOT EXISTS (SELECT * FROM CM_REQUEST_PROCESS crp WHERE crp.REQ_ID = @p_REQ_ID AND crp.STATUS = 'F' AND crp.ROLE LIKE 'DVCM')
8417
--   BEGIN
8418
--    SET @BRANCH_ID = 'DV0001' 
8419
--    SET @DEP_ID = (SELECT COST_ID FROM @TEMPDVCM WHERE REQ_ID = @p_REQ_ID AND ID = 1)
8420
--   END
8421

    
8422
   IF(@ROLE LIKE 'GDDVCM')
8423
   BEGIN
8424
    SET @ROLE = 'GDDV'
8425
    SET @BRANCH_ID = 'DV0001'
8426
    SET @DEP_ID = (SELECT COST_ID FROM @TEMPDVCM WHERE REQ_ID = @p_REQ_ID AND ID = 1)--(SELECT TRS.COST_ID FROM TR_REQUEST_SHOP_COSTCENTER TRS WHERE TRS.REQ_ID=@p_REQ_ID)
8427
   END 
8428
      
8429
	--CHECK STEP DVCM IN PROCESS
8430
	IF(EXISTS(SELECT * FROM CM_PROCESS WHERE  ID=CONVERT(INT,@p_ID) AND [STATUS] IN (SELECT CONDITION_STATUS FROM CM_PROCESS WHERE RANGE_PROCESS='DEPT'))
8431
	AND NOT EXISTS (SELECT * FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID=@p_REQ_ID))
8432
	BEGIN
8433
		--CHANGE ID TO NEXT STEP
8434
		SET @p_ID=(SELECT TOP(1) ID FROM CM_PROCESS WHERE [ORDER]>(SELECT [ORDER] FROM CM_PROCESS WHERE ID=CONVERT(INT, @p_ID)) AND (RANGE_PROCESS='DEPT') ORDER BY [ORDER] DESC)
8435
    SET @DEP_ID = (SELECT TRS.COST_ID FROM TR_REQUEST_SHOP_COSTCENTER TRS WHERE TRS.REQ_ID=@p_REQ_ID)
8436
	END
8437
  
8438
  
8439
  IF(@CURRENTSTATE = 'G' AND EXISTS(SELECT * FROM @TEMPDVCM WHERE COST_ID IS NOT NULL AND REQ_ID = @p_REQ_ID))  
8440
  BEGIN 
8441
    SET @p_ID = (SELECT cp.ID FROM CM_PROCESS cp WHERE cp.[STATUS] = 'E') 
8442
    SET @BRANCH_ID = 'DV0001'
8443
    SET @DEP_ID = (SELECT COST_ID FROM @TEMPDVCM WHERE REQ_ID = @p_REQ_ID AND ID = 1)
8444
    SET @CONDITION_STATUS = 'G'
8445
    SET @ROLE = 'DVCM'
8446
  END 
8447
	--INSERT INTO PL_REQUEST_PROCESS
8448
	IF(
8449
	NOT EXISTS(SELECT * FROM CM_REQUEST_PROCESS WHERE PROCESS_ID=CONVERT(INT,@p_ID) AND REQ_ID=@p_REQ_ID AND (DONE<>1 OR DONE IS NULL OR DONE ='') AND [ACTION]='APPROVE')
8450
--	AND
8451
--	NOT EXISTS(SELECT * FROM CM_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND [STATUS] IN(SELECT [STATUS] FROM CM_PROCESS WHERE CONDITION_STATUS=(SELECT  [STATUS] FROM CM_PROCESS WHERE ID=CONVERT(INT, @p_ID)) AND CONDITION_STATUS<>[STATUS] ) )
8452
  )
8453
	BEGIN
8454
  
8455
		INSERT INTO [dbo].[CM_REQUEST_PROCESS]
8456
			   ([REQ_ID]
8457
			   ,PROCESS_KEY
8458
			   ,[PROCESS_ID]
8459
			   ,[STATUS]
8460
			   ,[ROLE]
8461
			   ,[BRANCH_ID]
8462
         ,[DEPT_ID]
8463
			   ,[DEP_ID]
8464
			   ,[NOTES]
8465
			   ,[ORDER]
8466
			   ,[ACTION]
8467
			   ,[FROM_STATUS]
8468
			   ,[FROM]
8469
			   ,[CONDITION_STATUS]
8470
			   ,[DESCRIBE]
8471
			   ,[NAME_ACTION]
8472
			   ,[RANGE_PROCESS]
8473
         ,[MARKER_ID]
8474
         ,CHECKER_ID
8475
         ,APPROVE_DT)
8476
			   SELECT 
8477
			   @p_REQ_ID
8478
			   ,CP.PROCESS_KEY
8479
			   ,CP.ID
8480
			   ,CP.[STATUS]
8481
			   ,@ROLE
8482
			   ,@BRANCH_ID
8483
         ,[@TEMPDVCM].COST_ID --TRSC.COST_ID--
8484
			   ,@DEP_ID
8485
			   ,CP.NOTES
8486
			   ,CP.[ORDER]
8487
			   ,[ACTION]
8488
			   ,FROM_STATUS
8489
			   ,[STATUS]
8490
			   ,@CONDITION_STATUS
8491
			   ,DESCRIBE
8492
			   ,NAME_ACTION
8493
			   ,RANGE_PROCESS
8494
         ,alr.MAKER_ID
8495
         ,alr.CHECKER_ID
8496
         ,CONVERT(DATETIME,GETDATE(),103)
8497
			   FROM CM_PROCESS CP
8498
         LEFT JOIN ASS_LIQ_REQUEST alr ON alr.LIQ_REQ_ID = @p_REQ_ID
8499
         --LEFT JOIN TR_REQUEST_SHOP_COSTCENTER TRSC ON TRSC.REQ_ID=@p_REQ_ID AND CP.RANGE_PROCESS='DEPT'
8500
         LEFT JOIN @TEMPDVCM ON [@TEMPDVCM].REQ_ID = @p_REQ_ID AND CP.RANGE_PROCESS='DEPT' AND [@TEMPDVCM].ID = 1--AND TRSC.COST_ID = [@TEMPDVCM].COST_ID   
8501
			   WHERE CONDITION_STATUS IN (SELECT [STATUS] FROM CM_PROCESS WHERE ID=CONVERT(INT, @p_ID))
8502
			   AND CONDITION_STATUS <> [STATUS] 
8503
         --IF @@ERROR <> 0 GOTO ABORT
8504
  
8505
	END
8506
   
8507
	-- END INSERT PL_REQUEST_PROCESS
8508

    
8509
COMMIT TRANSACTION
8510
SELECT '0' as Result, @p_REQ_ID  REQ_ID, '' ErrorDesc, @p_ID ID, @BRANCH_ID BRANCH_ID, @DEP_ID DEP_ID, @ROLE [ROLE], @CURRENTSTATE CURRENTSTATE, @COUNTDVCM COUNTDVCM, @TEMPDVCM_ID TEMPDVCM_ID  
8511
RETURN '0'
8512
ABORT:
8513
BEGIN
8514
		ROLLBACK TRANSACTION
8515
		SELECT '-1' as Result, '' REQ_ID, '' ErrorDesc
8516
		RETURN '-1'
8517
End
8518
END
8519

    
8520

    
8521

    
8522
GO
8523
IF @@ERROR <> 0 SET NOEXEC ON
8524
GO
8525
PRINT N'Altering [dbo].[TR_REQUEST_SHOP_DOC_DT_ById]'
8526
GO
8527
ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_DOC_DT_ById]
8528
@p_REQ_ID varchar(15),
8529
@BRANCH_LOGIN	varchar(15) = NULL,
8530
@ASSET_TYPE	varchar(15) = NULL
8531
AS
8532
DECLARE @l_CCLD_VALUE decimal(18,0) = 0
8533
SET @l_CCLD_VALUE = (SELECT ParaValue FROM SYS_PARAMETERS WHERE ParaKey = 'ASSET_VALUE')
8534
IF @@ERROR <> 0 SET @l_CCLD_VALUE = 0
8535
SELECT 
8536
		A.REQDT_ID,
8537
       A.REQ_DOC_ID,
8538
       A.PLAN_ID,
8539
       A.TRADE_ID,
8540
       A.ASS_GROUP_ID,
8541
       A.DESCRIPTION,
8542
       A.REASON,
8543
       A.UNIT_ID,
8544
       A.QUANTITY,
8545
       A.PRICE,
8546
       A.TOTAL_AMT,
8547
       A.NOTES,
8548
       A.RECEIVE_BRANCH,
8549
       A.RECEIVE_ADDR,
8550
       A.RECEIVE_PERSON,
8551
       A.RECEIVE_TEL,
8552
       A.RECORD_STATUS,
8553
       A.MAKER_ID,
8554
       A.CREATE_DT,
8555
       A.AUTH_STATUS,
8556
       A.CHECKER_ID,
8557
       A.APPROVE_DT,
8558
       A.NOTES_DVCM,
8559
       A.QUANTITY_USE,
8560
       A.RECEIVE_SUBBRANCH,
8561
       A.RECEIVE_DEP,
8562
       A.RECEIVE_EMAIL,
8563
       A.REQ_DT_TYPE,A.PRICE AS PRICE_D,E.BRANCH_CODE, E.BRANCH_ID,E.BRANCH_NAME,  C.UNIT_CODE, C.UNIT_ID, C.UNIT_NAME, F.PLAN_CODE, F.PLAN_NAME,
8564
	   G.BRANCH_CODE AS R_BRANCH_CODE, G.BRANCH_NAME AS R_BRANCH_NAME,A.QTY_ETM,EMP.EMP_CODE, EMP.EMP_ID,EMP.EMP_NAME,
8565
       AG.GROUP_CODE AS ASS_GROUP_CODE,
8566
       AG.GROUP_NAME AS ASS_GROUP_NAME,
8567
        
8568
        CASE WHEN A.EMP_ID IS NULL OR A.EMP_ID = '' THEN E.BRANCH_ID ELSE CBE.BRANCH_ID END AS BRANCH_OLD,
8569
        CASE WHEN A.EMP_ID IS NULL OR A.EMP_ID = '' THEN E.BRANCH_CODE ELSE CBE.BRANCH_CODE END AS BRANCH_OLD_CODE,
8570
        CASE WHEN A.EMP_ID IS NULL OR A.EMP_ID = '' THEN E.BRANCH_NAME ELSE CBE.BRANCH_NAME END AS BRANCH_OLD_NAME,
8571
                                      
8572
        CASE WHEN A.EMP_ID IS NULL OR A.EMP_ID = '' THEN CDR.DEP_ID ELSE CDE.DEP_ID END AS DEP_OLD,
8573
        CASE WHEN A.EMP_ID IS NULL OR A.EMP_ID = '' THEN CDR.DEP_CODE ELSE CDE.DEP_CODE END AS DEP_OLD_CODE,
8574
        CASE WHEN A.EMP_ID IS NULL OR A.EMP_ID = '' THEN CDR.DEP_NAME ELSE CDE.DEP_NAME END AS DEP_OLD_NAME,
8575
        --CBE.BRANCH_ID AS BRANCH_OLD, CBE.BRANCH_CODE AS BRANCH_OLD_CODE, CBE.BRANCH_NAME AS BRANCH_OLD_NAME, 
8576
        CDE.DEP_ID AS DEP_OLD, CDE.DEP_CODE AS DEP_OLD_CODE, CDE.DEP_NAME AS DEP_OLD_NAME, 
8577

    
8578
		CD.DEP_CODE AS R_DEP_CODE,CD.DEP_NAME AS R_DEP_NAME, AG.DVCM_ID AS ID_DVCM,
8579
    R.REQ_CODE, R.REQ_NAME, A.ALLOCATED,
8580
    (CASE 
8581
    	WHEN A.REQ_DT_TYPE = 'BUYNEW' THEN N'Mua mới'
8582
    	WHEN A.TYPE_XL = 'CPTK' THEN N'Xuất kho'
8583
    	WHEN A.TYPE_XL = 'CPDC' THEN N'Tận dụng/Điều chuyển'
8584
    END) AS REQ_DT_TYPE_NAME
8585
FROM TR_REQUEST_SHOP_DOC_DT A
8586
LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
8587
LEFT JOIN dbo.TR_REQUEST_SHOP_DOC R ON R.REQ_ID=A.REQ_DOC_ID
8588
LEFT JOIN PL_MASTER F ON F.PLAN_ID = A.PLAN_ID 
8589
LEFT JOIN CM_BRANCH E ON E.BRANCH_ID =  R.BRANCH_ID
8590
LEFT JOIN dbo.CM_DEPARTMENT CDR ON CDR.DEP_ID=R.DEP_ID
8591
LEFT JOIN CM_BRANCH G ON G.BRANCH_ID =  A.RECEIVE_BRANCH
8592
LEFT JOIN CM_EMPLOYEE  EMP ON EMP.EMP_ID = A.EMP_ID
8593
LEFT JOIN CM_BRANCH CBE ON CBE.BRANCH_ID = EMP.BRANCH_ID
8594
LEFT JOIN dbo.CM_DEPARTMENT CDE ON CDE.DEP_ID=EMP.DEP_ID
8595
LEFT JOIN ASS_GROUP AG ON A.ASS_GROUP_ID = AG.GROUP_ID
8596
LEFT JOIN dbo.CM_DEPARTMENT CK ON CK.DEP_ID=A.RECEIVE_SUBBRANCH AND CK.KHOI_ID = 'K'
8597
LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=A.RECEIVE_SUBBRANCH
8598
LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=A.RECEIVE_DEP
8599

    
8600
 WHERE A.REQ_DOC_ID=@p_REQ_ID AND (A.RECEIVE_BRANCH = @BRANCH_LOGIN OR @BRANCH_LOGIN IS NULL OR @BRANCH_LOGIN = '')
8601
		--AND ((@ASSET_TYPE = 'TSCD' AND A.PRICE >= @l_CCLD_VALUE) OR (@ASSET_TYPE = 'CCLD' AND A.PRICE < @l_CCLD_VALUE) OR @ASSET_TYPE IS NULL OR @ASSET_TYPE = '')
8602

    
8603
ORDER BY A.CREATE_DT DESC
8604
 --EXEC TR_PO_DETAIL_ById 'TRPM00000000001', 'DV0001'
8605
GO
8606
IF @@ERROR <> 0 SET NOEXEC ON
8607
GO
8608
PRINT N'Altering [dbo].[ASS_LIQ_REQUEST_App]'
8609
GO
8610
ALTER PROCEDURE [dbo].[ASS_LIQ_REQUEST_App]
8611
@p_LIQ_REQ_ID VARCHAR(15),
8612
@p_AUTH_STATUS VARCHAR(1),
8613
@p_CHECKER_ID VARCHAR(12),
8614
@p_APPROVE_DT VARCHAR(20)
8615

    
8616
AS
8617
--Validation is here
8618
DECLARE @ERRORSYS NVARCHAR(15) = '' 
8619
  IF ( NOT EXISTS ( SELECT * FROM ASS_LIQ_REQUEST WHERE  LIQ_REQ_ID = @p_LIQ_REQ_ID))
8620
	SET @ERRORSYS = 'ASSL-00002'
8621
IF @ERRORSYS <> '' 
8622
BEGIN
8623
	SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
8624
	RETURN '0'
8625
END 
8626
--khanhnhd kiểm tra thêm loại thanh lý role 'PHCQT_QLTS'
8627
/*IF(EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES] (@p_CHECKER_ID) WHERE ROLE_ID = 'PHCQT_QLTS') AND EXISTS(SELECT * FROM ASS_LIQ_REQUEST WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID AND (TERM_ID IS NULL OR TERM_ID ='')))
8628
BEGIN
8629
		SELECT '-1' as Result, N'Vui lòng chọn loại thanh lý' ErrorDesc
8630
		RETURN '-1'
8631
END */
8632
--end khanhnhd kiểm tra thêm loại thanh lý role 'PHCQT_QLTS'
8633
BEGIN TRANSACTION
8634
DECLARE @ASSET_ID_LST VARCHAR(MAX), @CURRENT_TRANS_ERROR NVARCHAR(MAX)
8635
 --KIỂM TRA TÀI SẢN ĐANG TREO TRONG GIAO DỊCH KHÁC
8636
        SET @ASSET_ID_LST = (SELECT B.ASSET_ID + ',' FROM (SELECT ALD.ASSET_ID
8637
            FROM ASS_LIQ_REQUEST_DT ALD
8638
            LEFT JOIN ASS_MASTER AM ON ALD.ASSET_ID = AM.ASSET_ID
8639
            where ALD.LIQ_REQ_ID = @p_LIQ_REQ_ID AND AM.CURRENT_TRANS <> @p_LIQ_REQ_ID) B FOR XML PATH (''))
8640

    
8641
        IF(@p_AUTH_STATUS = 'B')
8642
        --IF(EXISTS(SELECT * FROM ASS_MASTER AM WHERE AM.ASSET_ID IN (SELECT * FROM STRING_SPLIT(@ASSET_ID_LST,',')) AND AM.CURRENT_TRANS <> @p_LIQ_REQ_ID))
8643
        BEGIN
8644
        	BEGIN
8645
            	SELECT @CURRENT_TRANS_ERROR = dbo.ASSET_CHECK_CURRENT_TRANS(@ASSET_ID_LST)
8646
            IF(@CURRENT_TRANS_ERROR IS NOT NULL AND @CURRENT_TRANS_ERROR <> '')
8647
            BEGIN
8648
          		ROLLBACK TRANSACTION
8649
                SELECT '-1' as Result, '' LIQ_ID, @CURRENT_TRANS_ERROR ErrorDesc
8650
                RETURN '-1'
8651
            END
8652
        END
8653
        END
8654
        
8655

    
8656
Declare @ASSET_CODE VARCHAR(30), @CURRENT_TRANS VARCHAR(20), @CURRENT_TRANS_TYPE  VARCHAR(20), @ROLEDVCM VARCHAR(5), @ROLEGDDVCM VARCHAR(10)
8657
	--Declare @ASSET_ID varchar(15) = (select ASSET_ID from ASS_LIQ_REQUEST_DT where LIQ_REQ_ID = @p_LIQ_REQ_ID )
8658
	--UPDATE ASS_MASTER SET CURRENT_TRANS = @p_LIQ_REQ_ID, CURRENT_TRANS_TYPE = 'ASS_LIQ'
8659
	--WHERE ASSET_ID = @ASSET_ID	-- KIEM TRA MA TAI SAN
8660
    SET @ROLEDVCM = (SELECT ROLE_ID FROM [dbo].[TL_USER_GET_ROLES] (@p_CHECKER_ID) WHERE ROLE_ID = 'DVCM')
8661
    SET @ROLEGDDVCM = (SELECT ROLE_ID FROM [dbo].[TL_USER_GET_ROLES] (@p_CHECKER_ID) WHERE ROLE_ID = 'GDDVCM')
8662
    IF(@p_AUTH_STATUS = 'F' OR @p_AUTH_STATUS = 'G')
8663
    BEGIN
8664
        UPDATE trsc SET AUTH_STATUS ='A'
8665
        FROM TR_REQUEST_SHOP_COSTCENTER trsc 
8666
        LEFT JOIN CM_DEPARTMENT cd ON cd.DEP_ID = trsc.COST_ID
8667
        LEFT JOIN TL_USER tu1 ON cd.DEP_ID = tu1.DEP_ID
8668
        WHERE REQ_ID = @p_LIQ_REQ_ID AND tu1.TLNANME = @p_CHECKER_ID
8669
    END
8670

    
8671
    IF (@ROLEDVCM = 'DVCM' AND (EXISTS ( SELECT trsc.RE_CONTENT 
8672
                                         FROM TR_REQUEST_SHOP_COSTCENTER trsc 
8673
                                         LEFT JOIN TL_USER tu ON trsc.COST_ID = tu.DEP_ID
8674
                                         WHERE trsc.REQ_ID = @p_LIQ_REQ_ID AND tu.TLNANME = @p_CHECKER_ID AND trsc.RE_CONTENT = ''))) 
8675
    GOTO ABORT2  
8676
    
8677
    IF(@ROLEGDDVCM = 'GDDVCM' AND @p_AUTH_STATUS = 'F') GOTO ABORT3
8678
    UPDATE ASS_LIQ_REQUEST SET AUTH_STATUS = @p_AUTH_STATUS,  CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103), IS_REJECTED = 0 WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID
8679

    
8680
    UPDATE ASS_LIQ_REQUEST SET AUTH_STATUS = @p_AUTH_STATUS,  CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103), IS_REJECTED = 0 WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID
8681
   
8682
    UPDATE CM_REQUEST_PROCESS SET CHECKER_ID = (SELECT alr.CHECKER_ID FROM ASS_LIQ_REQUEST alr WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID) WHERE REQ_ID = @p_LIQ_REQ_ID AND DONE = 0 OR DONE = ''
8683
   
8684
     
8685
	IF @@Error <> 0 GOTO ABORT
8686
	-- GIANT Insert to table PL_PROCESS
8687
	--INSERT INTO dbo.PL_PROCESS
8688
	--				(
8689
	--				    REQ_ID,
8690
	--				    PROCESS_ID,
8691
	--				    CHECKER_ID,
8692
	--				    APPROVE_DT,
8693
	--				    PROCESS_DESC,
8694
	--				    NOTES
8695
	--				)
8696
	--				VALUES
8697
	--				(   @p_LIQ_REQ_ID,       
8698
	--					'APPROVE',
8699
	--				    @p_CHECKER_ID,        
8700
	--				    GETDATE(), 
8701
	--				    N'Trưởng đơn vị phê duyệt thành công' ,      
8702
	--				    N'Trưởng đơn vị phê duyệt'       
8703
	--				 )
8704

    
8705
        IF(@p_AUTH_STATUS = 'B')
8706
        BEGIN
8707
           UPDATE ASS_MASTER SET CURRENT_TRANS = @p_LIQ_REQ_ID, CURRENT_TRANS_TYPE = 'ASS_LIQ_REQ' 
8708
                WHERE ASSET_ID IN (SELECT ASSET_ID FROM ASS_LIQ_REQUEST_DT  WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID)
8709
        END
8710

    
8711

    
8712

    
8713

    
8714
COMMIT TRANSACTION
8715
SELECT '0' as Result, '' ErrorDesc, @ROLEDVCM RoleDVCM, @ROLEGDDVCM RoleGDDVCM
8716
RETURN '0'
8717
ABORT:
8718
BEGIN
8719
		ROLLBACK TRANSACTION
8720
		SELECT '-1' as Result, '' ErrorDesc, @ROLEDVCM RoleDVCM, @ROLEGDDVCM RoleGDDVCM
8721
		RETURN '-1'
8722
END
8723

    
8724
ABORT2:
8725
BEGIN
8726
  ROLLBACK TRANSACTION
8727
  SELECT '-1' AS Result, N'Nội dung đề xuất không được để trống !' ErrorDesc 
8728
  RETURN '-1'
8729
END
8730

    
8731
ABORT3:
8732
BEGIN
8733
  ROLLBACK TRANSACTION
8734
  SELECT '-1' AS Result, N'Xác nhận thất bại ! Trưởng đơn vị chuyên môn không được quyền xác nhận phiếu này ! Vui lòng chờ chuyên viên đơn vị chuyên môn xác nhận' ErrorDesc 
8735
  RETURN '-1'
8736
END
8737
GO
8738
IF @@ERROR <> 0 SET NOEXEC ON
8739
GO
8740
PRINT N'Altering [dbo].[ASS_PENDING_ITEM_Searchnew]'
8741
GO
8742
ALTER PROCEDURE [dbo].[ASS_PENDING_ITEM_Searchnew]
8743
	@p_CREATE_DT varchar(15) = NULL,
8744
	@p_BRANCH_ID VARCHAR(15) = NULL,
8745
	@p_BRANCH_LOGIN NVARCHAR(100) = NULL,
8746
	@p_ASSET_TYPE VARCHAR(15) = NULL,
8747
	@p_MAKER_ID VARCHAR(100) = NULL,
8748
	@p_AUTH_STATUS VARCHAR(15) = NULL,
8749
	@p_MODULE NVARCHAR(500) = NULL,
8750
	@p_USER_LOGIN varchar(20) = NULL
8751
AS
8752
DECLARE @l_BRANCH_TYPE VARCHAR(15)
8753
SET @l_BRANCH_TYPE = (SELECT A.BRANCH_TYPE FROM CM_BRANCH A WHERE A.BRANCH_ID = @p_BRANCH_LOGIN)
8754
declare @tmp table(BRANCH_ID varchar(15))
8755
	insert into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
8756

    
8757
DECLARE @LISTTYPE TABLE(TRN_TYPE VARCHAR(50), DUONGDAN VARCHAR(500), PHANHE NVARCHAR(500))
8758
INSERT INTO @LISTTYPE values ('ASS_ADDNEW', '/AssetManager/ASSAddNewList',N'Quản lý TSCĐ/CCLĐ')
8759
INSERT INTO @LISTTYPE values('ASS_USE', '/AssetManager/ASSUseList',N'Quản lý TSCĐ/CCLĐ')
8760
INSERT INTO @LISTTYPE values('ASS_TRANSFER', '/AssetManager/ASSTransferList',N'Quản lý TSCĐ/CCLĐ')
8761
INSERT INTO @LISTTYPE values('ASS_MASTER', '/AssetManager/ASSMasterList',N'Quản lý TSCĐ/CCLĐ')
8762
INSERT INTO @LISTTYPE values('ASS_COLLECT', '/AssetManager/ASSCollectList',N'Quản lý TSCĐ/CCLĐ')
8763
INSERT INTO @LISTTYPE values('ASS_GROUP', '/AssCommon/AssetGroupList',N'Quản lý danh mục')
8764
INSERT INTO @LISTTYPE values('ASS_AMORT', '/AssetManager/ASSAmort',N'Quản lý TSCĐ/CCLĐ')
8765
INSERT INTO @LISTTYPE values('ASS_UPDATE', '/AssetManager/ASSUpdateList',N'Quản lý TSCĐ/CCLĐ')
8766
BEGIN -- PAGING
8767
select A.*, BB.DUONGDAN DUONGDAN, BB.PHANHE PHANHE, CM.BRANCH_NAME
8768
-- SELECT END
8769
	from ASS_PENDING_ITEM  A
8770
	LEFT JOIN CM_BRANCH CM ON A.BRANCH_CREATE= CM.BRANCH_ID
8771
	LEFT JOIN @LISTTYPE BB ON A.TRAN_TYPE = BB.TRN_TYPE
8772
where 
8773
--A.BRANCH_CREATE LIKE '%'+ @p_BRANCH_CREATE +'%' OR @p_BRANCH_CREATE = '' OR @p_BRANCH_CREATE IS NULL
8774
	(A.MAKER_ID_KT LIKE '%'+ @p_MAKER_ID +'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
8775
--AND(CM.BRANCH_NAME LIKE '%'+@p_BRANCH_NAME +'%' OR @p_BRANCH_NAME IS NULL OR @p_BRANCH_NAME='')
8776
AND (CONVERT(DATE,A.CREATE_DT_KT)= CONVERT(DATE,@p_CREATE_DT,103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT='')
8777
AND (A.AUTH_STATUS_KT =@p_AUTH_STATUS OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS ='')
8778
AND (BB.PHANHE = @p_MODULE OR @p_MODULE IS NULL OR @p_MODULE = '' OR @p_MODULE = N'---Tất cả---')
8779
AND ((A.BRANCH_CREATE IN (SELECT * FROM @tmp) OR  @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL)
8780
OR ((A.BRANCH_CREATE IS NULL OR A.BRANCH_CREATE = '') AND @l_BRANCH_TYPE = 'HS'))
8781
-- PAGING END
8782
END -- PAGING
8783
GO
8784
IF @@ERROR <> 0 SET NOEXEC ON
8785
GO
8786
PRINT N'Altering [dbo].[ASS_LIQ_REQUEST_Upd]'
8787
GO
8788
ALTER PROCEDURE [dbo].[ASS_LIQ_REQUEST_Upd]
8789
@p_LIQ_REQ_ID VARCHAR(15) = NULL,
8790
@p_ASS_TYPE_ID	varchar(15)  = NULL,
8791
@p_REQ_DT	VARCHAR(20) = NULL,
8792
@p_BRANCH_ID	varchar(15)  = NULL,
8793
@p_NOTES	nvarchar(1000)  = NULL,
8794
@p_RECORD_STATUS	varchar(1)  = NULL,
8795
@p_MAKER_ID	varchar(12)  = NULL,
8796
@p_CREATE_DT	VARCHAR(20) = NULL,
8797
@p_AUTH_STATUS	varchar(50)  = NULL,
8798
@p_CHECKER_ID	varchar(12)  = NULL,
8799
@p_APPROVE_DT	VARCHAR(20) = NULL,
8800
@p_LiqDetails XML = NULL,
8801
@p_ListCostCenter XML = NULL,
8802
@p_BRANCH_CREATE	VARCHAR(15) = NULL,
8803
@p_DEP_ID	VARCHAR(15) = NULL,
8804
@p_TERM_ID VARCHAR(15) = NULL,
8805
@p_HO_NOTES NVARCHAR(1000) = NULL,
8806
@p_USER_LOGIN VARCHAR(15)
8807
AS
8808
--Validation is here
8809
	DECLARE @ERRORSYS NVARCHAR(15) = '' 
8810
	IF ( NOT EXISTS ( SELECT * FROM ASS_LIQ_REQUEST WHERE  LIQ_REQ_ID= @p_LIQ_REQ_ID))
8811
		SET @ERRORSYS = ''
8812
	IF @ERRORSYS <> '' 
8813
	BEGIN
8814
		SELECT ErrorCode Result, ''  LIQ_REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
8815
		RETURN '0'
8816
	END 
8817
	Declare @hdoc INT
8818
	Exec sp_xml_preparedocument @hdoc Output,@p_LiqDetails
8819
	--Them dieu kien kiem tra lý do de xuat khong duoc de trong
8820
	DECLARE @reason NVARCHAR(max) = ''
8821
	SELECT @reason = COALESCE(@reason + ', ', '') + ASSET_CODE 
8822
	FROM OPENXML(@hdoc,'/Root/LiquiDetail',2)
8823
	WITH 
8824
	(
8825
		ASSET_ID	varchar(15),
8826
		LIQ_REASON	nvarchar(1000),
8827
		NOTES	nvarchar(1000)	,
8828
		REQ_AMT DECIMAL(18,0),
8829
		LIQ_RECEIVE NVARCHAR(500),
8830
		BRANCH_USE VARCHAR(15),
8831
		DEPT_USE VARCHAR(15),
8832
		REMAIN_VALUE DECIMAL(18,0),
8833
		ASSET_CODE varchar(100),
8834
		IS_IMP varchar(15)
8835
	)
8836
	WHERE LIQ_REASON = '' OR LIQ_REASON IS NULL
8837
	IF @reason <> ''
8838
	BEGIN
8839
		SELECT '-1' as Result, '' LIQ_REQ_ID, N'Lý do đề xuất thanh lý không được để trống! DS tài sản: '+ @reason ErrorDesc
8840
		RETURN '-1'
8841
	END
8842
	-------BO SUNG PHAN IMPORT TS TU FILE
8843
	----KIEM TRA TS IMPORT PHAI THUOC DON VI DA CHON
8844
	declare @tmp table(BRANCH_ID varchar(15))
8845
	insert into @tmp  SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
8846
	DECLARE liqDetail CURSOR FOR
8847
	SELECT B.DETAIL_ID,
8848
	--A.ASSET_ID,
8849
	B.ASSET_ID,
8850
		B.LIQ_REASON,
8851
		B.NOTES,
8852
		B.REQ_AMT,
8853
		B.LIQ_RECEIVE,
8854
		--khanhnhd
8855
		--(CASE WHEN IS_IMP = 'N' THEN B.BRANCH_USE ELSE B.ASSET_ID END) BRANCH_USE,
8856
		--(CASE WHEN IS_IMP = 'N' THEN B.DEPT_USE ELSE B.ASSET_ID END) DEPT_USE,		
8857
		B.BRANCH_USE,
8858
		B.DEPT_USE,
8859
		--end khanhnhd
8860
		B.REMAIN_VALUE
8861
	FROM OPENXML(@hdoc,'/Root/LiquiDetail',2)
8862
	WITH 
8863
	(
8864
		DETAIL_ID VARCHAR(15),
8865
		ASSET_ID	varchar(15),
8866
		LIQ_REASON	nvarchar(1000),
8867
		NOTES	nvarchar(1000)	,
8868
		REQ_AMT DECIMAL(18,0),
8869
		LIQ_RECEIVE NVARCHAR(500),
8870
		BRANCH_USE VARCHAR(15),
8871
		DEPT_USE VARCHAR(15),
8872
		REMAIN_VALUE DECIMAL(18,0),
8873
		ASSET_CODE varchar(100),
8874
			IS_IMP varchar(15)
8875
	) B
8876
	--LAY MA TAI SAN
8877
	--LEFT JOIN ASS_MASTER A ON A.ASSET_CODE = B.ASSET_CODE AND A.BRANCH_ID IN (SELECT C.* FROM @tmp C)
8878
	OPEN liqDetail
8879
	
8880
BEGIN TRANSACTION
8881
		IF @p_APPROVE_DT = '' SET @p_APPROVE_DT = NULL
8882
    SET @p_MAKER_ID = (SELECT alr.MAKER_ID FROM ASS_LIQ_REQUEST alr WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID)
8883
		UPDATE ASS_LIQ_REQUEST SET [ASS_TYPE_ID] = @p_ASS_TYPE_ID,[REQ_DT] = CONVERT(DATETIME, @p_REQ_DT, 103),[BRANCH_ID] = @p_BRANCH_ID,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = @p_AUTH_STATUS,[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),
8884
		BRANCH_CREATE= @p_BRANCH_CREATE, TERM_ID = @p_TERM_ID,DEP_ID=@p_DEP_ID, HO_NOTES = @p_HO_NOTES
8885
		WHERE  LIQ_REQ_ID= @p_LIQ_REQ_ID
8886
		IF @@Error <> 0 GOTO ABORT 
8887
		PRINT 'A'
8888
		DELETE FROM ASS_LIQ_REQUEST_DT WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID
8889
		PRINT 'B'
8890
		Declare @DETAIL_ID  VARCHAR(15), @ASSET_ID VARCHAR(15), @LIQ_REASON NVARCHAR(1000),@NOTES NVARCHAR(1000), 
8891
		@REQ_AMT DECIMAL(18,0), @LIQ_RECEIVE NVARCHAR(500), @BRANCH_USE VARCHAR(15), @DEPT_USE VARCHAR(15), @REMAIN_VALUE DECIMAL(18,0)
8892
		FETCH NEXT FROM liqDetail INTO @DETAIL_ID,@ASSET_ID, @LIQ_REASON, @NOTES, @REQ_AMT, @LIQ_RECEIVE,@BRANCH_USE, @DEPT_USE, @REMAIN_VALUE
8893
		WHILE @@FETCH_STATUS = 0	
8894
		BEGIN
8895
			IF LEN (@DETAIL_ID) =  0
8896
			BEGIN
8897
				PRINT 'C'
8898
				EXEC SYS_CodeMasters_Gen 'ASS_LIQ_REQUEST_DT', @DETAIL_ID out
8899
				IF @DETAIL_ID='' OR @DETAIL_ID IS NULL GOTO ABORT
8900
			END
8901
			PRINT @DETAIL_ID
8902
			--print 'asset_id: ' + @ASSET_ID
8903
			INSERT INTO ASS_LIQ_REQUEST_DT([LIQREQDT_ID],[LIQ_REQ_ID],[ASSET_ID],[LIQ_REASON],[NOTES],[RECORD_STATUS],
8904
			[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT], [REQ_AMT], [LIQ_RECEIVE], [BRANCH_USE], [DEPT_USE], [REMAIN_VALUE])
8905
			VALUES(@DETAIL_ID ,@p_LIQ_REQ_ID ,@ASSET_ID ,@LIQ_REASON ,@NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,
8906
			CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103), @REQ_AMT, @LIQ_RECEIVE,
8907
			@BRANCH_USE, @DEPT_USE, @REMAIN_VALUE )
8908
			IF @@Error <> 0 GOTO ABORT
8909
			FETCH NEXT FROM liqDetail INTO @DETAIL_ID,@ASSET_ID, @LIQ_REASON, @NOTES, @REQ_AMT, @LIQ_RECEIVE,@BRANCH_USE, @DEPT_USE, @REMAIN_VALUE
8910
		END
8911
		CLOSE liqDetail
8912
		DEALLOCATE liqDetail
8913
		--khanhnhd cập nhật đơn vị chuyên môn
8914
	Declare @hdocc INT
8915
	Exec sp_xml_preparedocument @hdocc Output,@p_ListCostCenter
8916
	DECLARE ConcenterDetaisls CURSOR FOR
8917
	SELECT D.REQ_COST_ID,
8918
		D.COST_ID,
8919
		D.REQ_ID,
8920
    D.ASS_STATUS,
8921
    D.RE_CONTENT,
8922
		D.NOTES,
8923
		D.AUTH_STATUS
8924
	FROM OPENXML(@hdocc,'/Root/ListCostCenter',2)
8925
	WITH 
8926
	(
8927
		REQ_COST_ID	varchar(15),
8928
		COST_ID	nvarchar(1000),
8929
		REQ_ID	nvarchar(1000),
8930
    ASS_STATUS NVARCHAR(100),
8931
    RE_CONTENT NVARCHAR(100),
8932
		NOTES nvarchar(500),
8933
		AUTH_STATUS NVARCHAR(500)
8934
	)D
8935
	OPEN ConcenterDetaisls
8936
	Declare @REQ_COST_ID VARCHAR(15), @COST_ID NVARCHAR(1000), @REQ_ID NVARCHAR(1000), @ASS_STATUS NVARCHAR(100), @RE_CONTENT NVARCHAR(100), @AUTH_STATUS NVARCHAR(500)
8937
		
8938
		DELETE FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID =@p_LIQ_REQ_ID 
8939
		FETCH NEXT FROM ConcenterDetaisls INTO @REQ_COST_ID, @COST_ID, @REQ_ID, @ASS_STATUS, @RE_CONTENT, @NOTES, @AUTH_STATUS
8940
		WHILE @@FETCH_STATUS = 0	
8941
		BEGIN
8942
		  DECLARE @l_REQ_COST_ID VARCHAR(15)
8943
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_SHOP_COSTCENTER', @l_REQ_COST_ID out
8944
			IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
8945
      IF(EXISTS(SELECT tugr.ROLE_ID FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr WHERE ROLE_ID LIKE 'DVCM') AND @RE_CONTENT IS NULL)
8946
      BEGIN
8947
        ROLLBACK TRANSACTION
8948
      	SELECT '-1' as Result, '' LIQ_REQ_ID, N'Nội dung đề xuất không được để trống!' ErrorDesc
8949
      	RETURN '-1'
8950
      END
8951
      
8952
			INSERT INTO TR_REQUEST_SHOP_COSTCENTER([REQ_COST_ID],[COST_ID],[ASS_STATUS],[RE_CONTENT],[REQ_ID],[NOTES],[AUTH_STATUS])		
8953
			VALUES(@l_REQ_COST_ID ,@COST_ID, @ASS_STATUS, @RE_CONTENT, @p_LIQ_REQ_ID, @NOTES, @AUTH_STATUS)
8954
				IF @@Error <> 0 GOTO ABORT
8955
					FETCH NEXT FROM ConcenterDetaisls INTO @REQ_COST_ID, @COST_ID, @REQ_ID, @ASS_STATUS, @RE_CONTENT, @NOTES, @AUTH_STATUS
8956
	  END
8957
	CLOSE ConcenterDetaisls
8958
	DEALLOCATE ConcenterDetaisls
8959
	--end khanhnhd
8960
		--INSERT DETAIL 
8961
COMMIT TRANSACTION
8962
SELECT '0' as Result, @p_LIQ_REQ_ID  LIQ_REQ_ID,  @l_REQ_COST_ID  REQ_COST_ID,'' ErrorDesc
8963
RETURN '0'
8964
ABORT:
8965
BEGIN
8966
		ROLLBACK TRANSACTION
8967
		SELECT '-1' as Result, '' LIQ_REQ_ID, '' ErrorDesc
8968
		RETURN '-1'
8969
End
8970
GO
8971
IF @@ERROR <> 0 SET NOEXEC ON
8972
GO
8973
PRINT N'Altering [dbo].[ASS_LIQUIDATION_BVB_KT_App]'
8974
GO
8975
ALTER PROCEDURE [dbo].[ASS_LIQUIDATION_BVB_KT_App]
8976
	@P_LIQ_ID VARCHAR(15),
8977
	@P_AUTH_STATUS_KT VARCHAR(1),
8978
	@P_CHECKER_ID_KT VARCHAR(100),
8979
	@P_APPROVE_DT_KT VARCHAR(20)
8980

    
8981
AS
8982
BEGIN
8983
	declare @l_OLD_LOCHIST_ID varchar(15)
8984
	declare @l_LOCHIST_ID varchar(15)
8985
	declare @l_ASSHIST_ID varchar(15)
8986
	declare @l_ASSET_ID varchar(15)
8987
	declare @l_BRANCH_ID varchar(15)
8988
	declare @l_DEPT_ID	varchar(15)
8989
	declare @l_EMP_ID	varchar(15)
8990
	declare @l_DESC	nvarchar(1000)
8991
	declare @l_LOCATION nvarchar(500)
8992
	DECLARE @l_MAKER_ID			varchar(15)
8993
	DECLARE @sToday varchar(10) = convert(varchar(10), getdate(), 103)	
8994
	DECLARE @l_LIQDT_ID VARCHAR(15)
8995
	declare @l_LIQ_PRICE numeric(18,2)
8996
	declare @l_DO_BRANCH_ID varchar(15)
8997
  DECLARE @l_ASSET_CODE VARCHAR(25)
8998
	
8999
	declare @l_VALUE_ID varchar(15)
9000
	DECLARE @l_ET_ID varchar(15)
9001
	declare @l_TRN_REF_NO varchar(20)
9002
	DECLARE @l_HO_BRN_ID varchar(15)
9003
	
9004
	declare @l_AMORTIZED_AMT numeric(18,2), @l_AMORTIZED_AMT_CL numeric(18,2)
9005
	declare @l_AMORT_AMT numeric(18,2), @l_AMORT_AMT_CL numeric(18,2)
9006
	declare @l_AMORT_REMAIN_AMT numeric(18,2)
9007
  DECLARE @l_BUY_PRICE_REMAIN numeric(18,2)
9008
	declare @l_BUY_PRICE numeric(18,2), @l_BUY_PRICE_CL numeric(18,2)
9009
	DECLARE @l_TYPE_ID	varchar(15)  = NULL
9010
	declare @l_GROUP_ID varchar(15)  = NULL
9011
	DECLARE @l_SUPPEND_GL varchar(50)
9012
	DECLARE @l_ASSET_GL  varchar(50), @l_LIQ_GL varchar(50), @l_INC_GL varchar(50), @l_AMORT_GL varchar(50)
9013
	declare @l_ASSET_VALUE decimal(18,0)
9014
	declare @l_AMORTDT_ID varchar(15)
9015
	DECLARE @p_CORE_NOTE NVARCHAR(500)
9016
	DECLARE @l_AMORT_DT_ID VARCHAR(15)
9017
	DECLARE @l_AMORT_STATUS VARCHAR(20)
9018
	DECLARE @l_EXP_TO_CORE VARCHAR(20) = 'Y'
9019
	DECLARE @l_LIQ_TYPE VARCHAR(1),  @l_BUY_PRICE_LIQ decimal(18,0)--@l_AMORT_LIQ VARCHAR(15) = 'DTL',
9020
  DECLARE @l_LIQ_AMT DECIMAL(18,0)
9021
  DECLARE @l_REQ_AMT DECIMAL(18,2)
9022
  DECLARE @l_LIQ_PRICE_VAT DECIMAL(18,2)
9023
	DECLARE @l_MONTLY_AMORT_AMT decimal(18,0), @l_AMORTIZED_MONTH DECIMAL(18,2), 
9024
			@l_NEW_FIRST_AMORT_AMT DECIMAL(18,0), @ERROR NVARCHAR(500) = '', @l_BRANCH_CREATE VARCHAR(15),
9025
			@l_AMORT_MONTH DECIMAL(18,2), @l_AMORT_START_DATE datetime, @l_AMORT_END_DATE datetime
9026
	DECLARE @l_GTCL DECIMAL(18,0) = 0
9027
	DECLARE @l_PRICE_VAT DECIMAL(18,0) = 0
9028
	DECLARE @INDEX INT =0
9029
	declare @l_CUR_AMORTIZED_AMT decimal(18,2)
9030
	declare @l_IS_COLLECT BIT
9031
	--Validation is here
9032
	DECLARE @ERRORSYS NVARCHAR(15) = '' 
9033
	 IF ( NOT EXISTS ( SELECT * FROM ASS_LIQUIDATION WHERE LIQ_ID = @P_LIQ_ID))
9034
	SET @ERRORSYS = 'ASSL-00001'
9035
	IF @ERRORSYS <> '' 
9036
	BEGIN
9037
		SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
9038
		RETURN '0'
9039
	END 
9040

    
9041
	---THANH LY BANG TAY
9042
	DECLARE @l_LIQ_NOTES NVARCHAR(500), @l_LIQ_DATE DATETIME
9043
	
9044
	
9045
	--LAY DIEN GIAI HACH TOAN
9046
	SELECT @p_CORE_NOTE = CORE_NOTE, @l_MAKER_ID = MAKER_ID_KT, @l_LIQ_NOTES = NOTES, @l_LIQ_DATE = CREATE_DT FROM ASS_LIQUIDATION WHERE LIQ_ID = @P_LIQ_ID
9047

    
9048
	IF (SELECT CHARINDEX('ATGETD',@l_LIQ_NOTES)) > 0
9049
	BEGIN
9050
		SET @sToday = convert(varchar(10), @l_LIQ_DATE, 103)
9051
		SET @P_APPROVE_DT_KT = @sToday
9052
	END
9053

    
9054
	--BRN_ID HOI SO
9055
	SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'
9056

    
9057
	--Lay suppend GL
9058
	SELECT @l_SUPPEND_GL = A.ParaValue FROM SYS_PARAMETERS A WHERE A.ParaKey='ASSET_SUPPEND_GL'
9059

    
9060
	--Lay branch_id cua user duyet
9061
	select @l_DO_BRANCH_ID = a.TLSUBBRID from TL_USER a where a.TLNANME = @P_CHECKER_ID_KT
9062

    
9063
	/***thieuvq 20/01/2015 them kiem tra khong cho CN thuc hien thanh ly TSCD**/
9064
	--IF(SELECT BRANCH_ID FROM ASS_LIQUIDATION WHERE LIQ_ID = @P_LIQ_ID) <> @l_HO_BRN_ID
9065
	--BEGIN
9066
	--	IF (EXISTS (SELECT * FROM ASS_LIQUIDATION_DT A LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID WHERE A.LIQ_ID = @P_LIQ_ID AND B.TYPE_ID = 'TSCD' ))
9067
	--	BEGIN
9068
	--	SELECT 'ASSL-TLTSCD' Result, N'ĐƠN VỊ KHÔNG ĐƯỢC PHÉP THANH LÝ TSCĐ, VUI LÒNG XÓA TÀI SẢN LÀ TSCĐ KHỎI ĐỢT THANH LÝ TRƯỚC KHI DUYỆT' ErrorDesc
9069
	--	RETURN '0'
9070
	--END 
9071
	--END
9072

    
9073
BEGIN TRANSACTION
9074
BEGIN
9075
 --KIEM TRA NEU TINH TRANG DANG LA 'A' THI KHONG CHO PHEP DUYET
9076
		IF(EXISTS(SELECT * FROM ASS_LIQUIDATION WHERE AUTH_STATUS_KT ='A' AND LIQ_ID =@P_LIQ_ID))
9077
		BEGIN
9078
					ROLLBACK TRANSACTION
9079
					SELECT '-1' as Result, '' LIQ_ID, N'Phiếu thanh lý đã được duyệt trước đó.' ErrorDesc
9080
					RETURN '-1'
9081
		END
9082
	--KIEM TRA NEU TINH TRANG DANG LA 'R' THI KHONG CHO PHEP DUYET
9083
		IF(EXISTS(SELECT * FROM ASS_LIQUIDATION WHERE AUTH_STATUS_KT ='R' AND LIQ_ID =@P_LIQ_ID))
9084
		BEGIN
9085
					ROLLBACK TRANSACTION
9086
					SELECT '-1' as Result, '' LIQ_ID, N'Thông tin thanh lý tài sản đang bị trả về. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
9087
					RETURN '-1'
9088
		END
9089
        --KIEM TRA NEU TINH TRANG DANG LA 'E' THI KHONG CHO PHEP DUYET
9090
		IF(EXISTS(SELECT * FROM ASS_LIQUIDATION WHERE AUTH_STATUS_KT ='E' AND LIQ_ID =@P_LIQ_ID))
9091
		BEGIN
9092
					ROLLBACK TRANSACTION
9093
					SELECT '-1' as Result, '' LIQ_ID, N'Thông tin thanh lý tài sản chưa được giao dịch viên xử lý. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
9094
					RETURN '-1'
9095
		END
9096
--APPROVE FOR MASTER
9097
UPDATE ASS_LIQUIDATION 
9098
SET AUTH_STATUS_KT = @P_AUTH_STATUS_KT, 
9099
	CHECKER_ID_KT = @P_CHECKER_ID_KT, 
9100
	APPROVE_DT_KT = CONVERT(DATETIME,@P_APPROVE_DT_KT,103)
9101
WHERE LIQ_ID = @P_LIQ_ID
9102

    
9103
--get all liqui detail 
9104
DECLARE CUR CURSOR FOR 
9105
	SELECT A.LIQDT_ID,A.ASSET_ID
9106
	FROM ASS_LIQUIDATION_DT A
9107
	WHERE A.LIQ_ID = @P_LIQ_ID
9108

    
9109

    
9110
   DECLARE  @l_TRN_NO VARCHAR(15)
9111

    
9112

    
9113
EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = 'DV0001'
9114
                        ,@p_TRN_DATE = @P_APPROVE_DT_KT
9115
                        ,@p_KeyGen = @l_TRN_NO OUT
9116

    
9117
OPEN CUR
9118
FETCH NEXT FROM CUR INTO @l_LIQDT_ID, @l_ASSET_ID
9119
WHILE @@FETCH_STATUS = 0
9120
BEGIN
9121
	--Lay thong tin
9122
	SELECT	@l_ASSET_ID = A.ASSET_ID,
9123
			--@l_DEPT_ID	= DEPT_ID,
9124
			--@l_EMP_ID	= EMP_ID,
9125
			--@l_LOCATION = LOCATION,
9126
            @l_LIQ_AMT=A.LIQ_AMT_BE_VAT,
9127
			@l_LIQ_PRICE = A.LIQ_PRICE,
9128
			@l_LIQ_TYPE = LIQ_TYPE,
9129
			@l_BUY_PRICE_LIQ = BUY_PRICE_LIQ,
9130
            @l_REQ_AMT = A.REQ_AMT,
9131
            @l_LIQ_PRICE_VAT = A.LIQ_PRICE_VAT
9132
	FROM ASS_LIQUIDATION_DT A 
9133
	--INNER JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
9134
	WHERE LIQDT_ID = @l_LIQDT_ID
9135
	--LUCTV : 12-11-2018 KIEM TRA TAI SAN NAY DA DUOC THANH LY TOAN PHAN HAY CHUA
9136
	SET @INDEX = @INDEX+1
9137
	IF(EXISTS(SELECT * FROM ASS_MASTER WHERE ASSET_ID = @l_ASSET_ID AND AMORT_STATUS ='DTL'))
9138
	BEGIN
9139
		CLOSE CUR
9140
		DEALLOCATE CUR		
9141
		ROLLBACK TRANSACTION
9142
		SELECT '-1' as Result, N' Dòng '+ CONVERT(VARCHAR(15),@INDEX)+N': Tài sản có mã '+ (SELECT ASSET_CODE FROM ASS_MASTER WHERE ASSET_ID = @l_ASSET_ID)+ N' đã được thanh lý' ErrorDesc
9143
		RETURN '-1'
9144
	END
9145
	--lay group_id va type_id
9146
	select	@l_TYPE_ID = A.TYPE_ID,
9147
			@l_GROUP_ID = ISNULL(A.REF_GROUP_ID,A.GROUP_ID),
9148
			@l_AMORTIZED_AMT = A.AMORTIZED_AMT,
9149
			@l_AMORT_AMT = A.AMORT_AMT,
9150
			@l_BUY_PRICE = A.BUY_PRICE,
9151
			@l_BRANCH_ID = A.BRANCH_ID,
9152
			@l_DEPT_ID = A.DEPT_ID, --@l_NEW_MONTHLY_AMT = A.MONTHLY_AMORT_AMT,@l_NEW_FIRST_AMORT_AMT = A.FIRST_AMORT_AMT,
9153
			@l_AMORT_STATUS = A.AMORT_STATUS,@l_AMORT_START_DATE = A.AMORT_START_DATE, @l_AMORT_END_DATE = A.AMORT_END_DATE,
9154
			@l_AMORTIZED_MONTH = A.AMORTIZED_MONTH, @l_AMORT_MONTH = A.AMORT_MONTH, @l_BRANCH_CREATE = BRANCH_CREATE,
9155
      @l_ASSET_CODE=A.ASSET_CODE,
9156
            @l_PRICE_VAT = A.PRICE_VAT,
9157
            @l_CUR_AMORTIZED_AMT = (A.AMORT_AMT - ISNULL(A.AMORTIZED_AMT,0)), @l_IS_COLLECT = A.IS_COLLECT
9158
	from ASS_MASTER A
9159
	where a.ASSET_ID = @l_ASSET_ID
9160
    
9161

    
9162

    
9163

    
9164
	---------------THIEUVQ 19102016 - TRUONG HOP VNM THANH LY, LAY BRANCH_ID = DV THUC HIEN THANH LY -----------
9165
	IF @l_AMORT_STATUS = 'VNM'
9166
	BEGIN
9167
		SET @l_BRANCH_ID = @l_BRANCH_CREATE
9168
		SET @l_EXP_TO_CORE = 'N'
9169
	END
9170
	-------------------------------------------
9171
	--ASSET_GL
9172
	SELECT @l_ASSET_GL = ASSET_ACCTNO,
9173
			@l_LIQ_GL = LIQ_ACCTNO,
9174
			@l_INC_GL = INC_ACCTNO,
9175
			@l_AMORT_GL = AMORT_ACCTNO
9176
	FROM ASS_GROUP A 
9177
	WHERE A.GROUP_ID = @l_GROUP_ID
9178
		
9179
	--print 'l1' + @l_ASSET_GL
9180
	--print 'l2' + @l_AMORT_GL
9181
	
9182
	--Move to history	
9183
	--Phat sinh Asset_ID
9184
	EXEC SYS_CodeMasters_Gen 'ASS_MASTER_HIST', @l_ASSHIST_ID out
9185
		
9186
	IF @l_ASSHIST_ID='' OR @l_ASSHIST_ID IS NULL GOTO ABORT		
9187

    
9188
	INSERT INTO ASS_MASTER_HIST
9189
		SELECT @l_ASSHIST_ID, a.*
9190
		FROM ASS_MASTER a
9191
		where a.ASSET_ID = @l_ASSET_ID
9192
	IF @@Error <> 0 GOTO ABORT
9193
		
9194
	/*************-----------------------THIEUVQ 19102016 - THANH LY 1 PHAN---------------------------*******/
9195
			IF @l_LIQ_TYPE = '0'
9196
			BEGIN
9197
				--SET @l_AMORT_LIQ = @l_AMORT_STATUS
9198
				DECLARE @TILE FLOAT = 1.00*@l_BUY_PRICE_LIQ/@l_BUY_PRICE
9199

    
9200
				--GIA TRI GIAM
9201
				SET @l_BUY_PRICE_CL = ROUND(@l_BUY_PRICE*@TILE,0)
9202
				SET @l_AMORTIZED_AMT_CL = ROUND(@l_AMORTIZED_AMT*@TILE,0)
9203
				SET @l_AMORT_AMT_CL = ROUND(@l_AMORT_AMT*@TILE,0)
9204
				--GIA TRI SAU KHI GIAM
9205
				SET @l_BUY_PRICE = ROUND(@l_BUY_PRICE*(1.00 - @TILE),0)
9206
				SET @l_AMORTIZED_AMT = ROUND(@l_AMORTIZED_AMT*(1.00 - @TILE),0)
9207
				SET @l_AMORT_AMT = ROUND(@l_AMORT_AMT*(1.00 - @TILE),0)
9208

    
9209
				--NEU CON KHAU HAO THI TINH LAI GIA TRI PHAN BO HANG THANG
9210
				IF @l_AMORT_STATUS IN ('DKH', 'CKH')
9211
				BEGIN
9212
					--IF (@l_AMORTIZED_MONTH = 0) --Chua chay khau hao thi phai tinh lai khau hao cua thang dau tien
9213
					--BEGIN
9214
					--	SET @l_MONTLY_AMORT_AMT = ROUND((@l_AMORT_AMT - @l_AMORTIZED_AMT) / @l_AMORT_MONTH, -3)
9215
					--	SET @l_NEW_FIRST_AMORT_AMT = ROUND(@l_MONTLY_AMORT_AMT/dbo.[FN_GetDaysInMonth](@l_AMORT_START_DATE) * (DATEDIFF(day,@l_AMORT_START_DATE, dbo.FN_GetLastDayOfMonth(@l_AMORT_START_DATE)) + 1), -3)		
9216
					--END
9217
					--ELSE
9218
					--BEGIN
9219
					--	--thieuvq - sua lai doan tinh khau hao
9220
					--	--TINH LAI SO KY KHAU HAO TINH THEO NGAY DUYET
9221
					--	DECLARE @l_KY_KHAU_HAO_CL FLOAT
9222
					--	DECLARE @l_NGAY_DUYET DATE = CONVERT(DATE,@P_APPROVE_DT_KT,103)
9223
					--	SET @l_NGAY_DUYET = CONVERT(VARCHAR(10),YEAR(@l_NGAY_DUYET)) + '-'+CONVERT(VARCHAR(10),MONTH(@l_NGAY_DUYET)) + '-'+ '1'
9224
					--	SET @l_KY_KHAU_HAO_CL = round((datepart(day,@l_AMORT_END_DATE)*1.0/dbo.[FN_GetDaysInMonth](@l_AMORT_END_DATE)),2)
9225
					--	--THIEUVQ COMMENT 29072015
9226
					--	--IF @l_KY_KHAU_HAO_CL = 1 SET @l_KY_KHAU_HAO_CL  = DATEDIFF(MM, @l_NGAY_DUYET, @l_AMORT_END_DATE)
9227
					--	--ELSE 
9228
					--	SET @l_KY_KHAU_HAO_CL  = DATEDIFF(MM, @l_NGAY_DUYET, @l_AMORT_END_DATE) + @l_KY_KHAU_HAO_CL
9229

    
9230
					--	--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
9231
					--	IF EXISTS (SELECT * FROM ASS_AMORT WHERE AMORT_TERM = CONVERT(VARCHAR(5),MONTH(@l_NGAY_DUYET))+'/'+CONVERT(VARCHAR(5),YEAR(@l_NGAY_DUYET)) 
9232
					--												AND ASSET_TYPE = 'TSCD')
9233
					--	BEGIN SET @l_KY_KHAU_HAO_CL = @l_KY_KHAU_HAO_CL - 1 END
9234
			
9235
					--	--SET @l_NEW_MONTHLY_AMT = ROUND((@l_NEW_AMORT_AMT - @l_AMORTIZED_AMT)/ @l_NEW_AMORT_MONTH, -3)
9236
					--	SET @l_MONTLY_AMORT_AMT = ROUND((@l_AMORT_AMT - @l_AMORTIZED_AMT)/ @l_KY_KHAU_HAO_CL, -3)
9237
					--	--SET @l_NEW_FIRST_AMORT_AMT = @l_OLD_FIRST_AMORT_AMT
9238
					--END
9239

    
9240
					------TINH LAI SO TIEN KHAU HAO HANG THANG
9241
					DECLARE @l_NGAY_DUYET DATE = CONVERT(DATE,@P_APPROVE_DT_KT,103)
9242
					DECLARE @l_KY_KHAU_HAO_CL INT = DATEDIFF(MONTH, @l_NGAY_DUYET, @l_AMORT_END_DATE)
9243
					SET @l_MONTLY_AMORT_AMT = ROUND((@l_AMORT_AMT - @l_AMORTIZED_AMT) / @l_KY_KHAU_HAO_CL, 0)
9244
					SET @l_NEW_FIRST_AMORT_AMT = @l_MONTLY_AMORT_AMT
9245

    
9246
				END
9247
  
9248
  IF(@l_BUY_PRICE=0)
9249
  BEGIN
9250
    	UPDATE ASS_MASTER 
9251
				SET 
9252
            [AMORT_STATUS] ='DTL', LIQ_W_STATUS = '1',
9253
					AMORTIZED_AMT = @l_AMORTIZED_AMT,
9254
					LIQUIDATION_DT = CONVERT(DATETIME, @P_APPROVE_DT_KT, 103),
9255
					APPROVE_DT = CONVERT(DATETIME, @P_APPROVE_DT_KT, 103),
9256
					BUY_PRICE = @l_BUY_PRICE,
9257
					AMORT_AMT = @l_AMORT_AMT,
9258
					MONTHLY_AMORT_AMT = @l_MONTLY_AMORT_AMT,
9259
					FIRST_AMORT_AMT = @l_NEW_FIRST_AMORT_AMT
9260
				WHERE ASSET_ID = @l_ASSET_ID
9261
  END
9262
  ELSE
9263
  BEGIN
9264
    	UPDATE ASS_MASTER 
9265
				SET 
9266
        -- [AMORT_STATUS] = @l_AMORT_STATUS,
9267
					AMORTIZED_AMT = @l_AMORTIZED_AMT,
9268
					--LIQUIDATION_DT = CONVERT(DATETIME, @P_APPROVE_DT_KT, 103),
9269
					APPROVE_DT = CONVERT(DATETIME, @P_APPROVE_DT_KT, 103),
9270
					BUY_PRICE = @l_BUY_PRICE,
9271
					AMORT_AMT = @l_AMORT_AMT,
9272
					MONTHLY_AMORT_AMT = @l_MONTLY_AMORT_AMT,
9273
					FIRST_AMORT_AMT = @l_NEW_FIRST_AMORT_AMT
9274
				WHERE ASSET_ID = @l_ASSET_ID
9275
  END
9276
			
9277
				
9278

    
9279
        
9280
        IF @@Error <> 0 GOTO ABORT
9281

    
9282
				--GAN GIA TRI DE HACH TOAN GIAM
9283
				SET @l_BUY_PRICE = @l_BUY_PRICE_CL
9284
				SET @l_AMORTIZED_AMT = @l_AMORTIZED_AMT_CL
9285
				SET @l_AMORT_AMT = @l_AMORT_AMT_CL
9286
        SET @l_CUR_AMORTIZED_AMT=@l_AMORT_AMT-@l_AMORTIZED_AMT
9287
			END	
9288
			ELSE 
9289
			BEGIN
9290
				UPDATE ASS_MASTER 
9291
				SET [AMORT_STATUS] = 'DTL', LIQ_W_STATUS = '1',
9292
					AMORTIZED_AMT = @l_AMORT_AMT, --khau hao het,
9293
					LIQUIDATION_DT = CONVERT(DATETIME, @P_APPROVE_DT_KT, 103),
9294
					APPROVE_DT = CONVERT(DATETIME, @P_APPROVE_DT_KT, 103)
9295
				WHERE ASSET_ID = @l_ASSET_ID
9296
				IF @@Error <> 0 GOTO ABORT
9297
			END
9298
	
9299
DECLARE @l_BRANCH_CODE VARCHAR(25),@l_PAY_HS_ACCTNO VARCHAR(25),@l_COL_LIQ_ACCTNO VARCHAR(25),@l_ETP_ID VARCHAR(25),@l_PAY_LIQ_ACCTNO VARCHAR(25),@l_COL_LIQ_CCLD VARCHAR(25),@l_PAY_LIQ_CCLD VARCHAR(25)
9300

    
9301

    
9302
 SET @l_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_ID)
9303

    
9304
SET @l_BUY_PRICE_REMAIN=@l_BUY_PRICE-@l_AMORTIZED_AMT
9305
SET @l_PAY_HS_ACCTNO = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='PAY_HS')
9306
SET @l_COL_LIQ_ACCTNO = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='LIQ_TSCD')
9307
SET @l_PAY_LIQ_ACCTNO = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='LIQ_TSCD_PAY')
9308
SET @l_COL_LIQ_CCLD = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='LIQ_CCLD')
9309
SET @l_PAY_LIQ_CCLD = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='LIQ_CCLD_PAY')
9310

    
9311
DECLARE @AMORT_CCLD VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'AMORT_CCLD')
9312
DECLARE @BW_AMORT_CCLD VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'BW_AMORT_CCLD')
9313
DECLARE @VAT_ACCNO VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'ACC_VAT_NEC')
9314

    
9315
	-----------hach toan khi thanh ly TS
9316
	IF (@l_TYPE_ID = 'TSCD')
9317
	BEGIN
9318
            ---- TSCD HẾT KHẤU HAO
9319
            IF @l_CUR_AMORTIZED_AMT = 0
9320
            BEGIN
9321
            	---- Thanh lý 0 đồng (KHÔNG THU TIỀN)
9322
                IF(@l_LIQ_AMT = 0)
9323
                BEGIN
9324
                    EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9325
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9326
					@l_ET_ID OUT
9327

    
9328
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9329
                    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)
9330
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_AMORT_GL, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9331
                    
9332
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9333
                    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)
9334
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9335

    
9336
                END
9337
                ELSE IF(@l_LIQ_AMT > 0) --- -- THANH LÝ CÓ THU TIỀN
9338
                BEGIN
9339
                    EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9340
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9341
					@l_ET_ID OUT
9342

    
9343
                	EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9344
                    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)
9345
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_REQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9346
                    
9347
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9348
                    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)
9349
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_COL_LIQ_ACCTNO, 'VND', 'C', @l_LIQ_AMT,1, @l_LIQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9350
                    
9351
                    IF(@l_LIQ_PRICE_VAT > 0)
9352
                    BEGIN
9353

    
9354
                        EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9355
                        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)
9356
                        VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9357
                    END
9358

    
9359
                    ----------------------------------
9360

    
9361
                    EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9362
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9363
					@l_ET_ID OUT
9364

    
9365
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9366
                    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)
9367
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_AMORT_GL, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9368
                    
9369
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9370
                    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)
9371
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9372
                    
9373
                END
9374

    
9375
            END
9376
            
9377
            ---- TSCD CÒN KHẤU HAO
9378
            ELSE IF @l_CUR_AMORTIZED_AMT > 0
9379
            BEGIN
9380

    
9381
                IF(@l_LIQ_AMT > @l_CUR_AMORTIZED_AMT) --- -- THANH LÝ Lời
9382
                BEGIN
9383
                    EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9384
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9385
					@l_ET_ID OUT
9386

    
9387
                	EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9388
                    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)
9389
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT-@l_CUR_AMORTIZED_AMT,1, @l_REQ_AMT-@l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9390
                    
9391
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9392
                    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)
9393
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_COL_LIQ_ACCTNO, 'VND', 'C', @l_LIQ_AMT - @l_CUR_AMORTIZED_AMT,1, @l_LIQ_AMT - @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9394
                    
9395
                    IF(@l_LIQ_PRICE_VAT > 0)
9396
                    BEGIN
9397

    
9398
                        EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9399
                        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)
9400
                        VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9401
                    END
9402
                    ----------------- TẤT TOÁN ------------------------
9403
                    EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9404
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9405
					@l_ET_ID OUT
9406

    
9407
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9408
                    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)
9409
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9410
                    
9411
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9412
                    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)
9413
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_AMORT_GL, 'VND', 'D', ISNULL(@l_AMORTIZED_AMT, 0),1, ISNULL(@l_AMORTIZED_AMT, 0), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9414
                    
9415
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9416
                    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)
9417
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9418
                    
9419
                END
9420
                IF(@l_LIQ_AMT < @l_CUR_AMORTIZED_AMT) ------- THanh lý LỖ
9421
                BEGIN
9422

    
9423
                    IF(@l_LIQ_PRICE_VAT > 0)
9424
                    BEGIN
9425
                        EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9426
    					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9427
    					@l_ET_ID OUT
9428

    
9429
                        EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9430
                        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)
9431
                        VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9432
                    
9433
                        EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9434
                        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)
9435
                        VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9436
                    END
9437

    
9438
                    ----------------------------------------
9439
                    EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9440
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9441
					@l_ET_ID OUT
9442

    
9443
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9444
                    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)
9445
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_BUY_PRICE - (@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT) - (ISNULL(@l_AMORTIZED_AMT, 0)),1, @l_BUY_PRICE - (@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT) - (ISNULL(@l_AMORTIZED_AMT, 0)), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9446
                    
9447
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9448
                    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)
9449
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_AMORT_GL, 'VND', 'D', ISNULL(@l_AMORTIZED_AMT, 0),1, ISNULL(@l_AMORTIZED_AMT, 0), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9450
                    
9451
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9452
                    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)
9453
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_LIQ_ACCTNO, 'VND', 'D',@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT, 1, @l_CUR_AMORTIZED_AMT - @l_LIQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9454
                    
9455
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9456
                    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)
9457
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9458
                    
9459
                    
9460

    
9461
                END
9462

    
9463
                ELSE IF(@l_LIQ_AMT = @l_CUR_AMORTIZED_AMT) --- -- THANH LÝ = GTCL
9464
                BEGIN
9465
                    EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9466
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9467
					@l_ET_ID OUT
9468

    
9469
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9470
                    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)
9471
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9472
                    
9473
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9474
                    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)
9475
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_AMORT_GL, 'VND', 'D', ISNULL(@l_AMORTIZED_AMT, 0),1, ISNULL(@l_AMORTIZED_AMT, 0), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9476
                    
9477
                    EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9478
                    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)
9479
                    VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9480
                    
9481
                	
9482
                    IF(@l_LIQ_PRICE_VAT > 0)
9483
                    BEGIN
9484
                        EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9485
    					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9486
    					@l_ET_ID OUT
9487

    
9488
                        EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9489
                        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)
9490
                        VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9491
                    
9492
                        EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
9493
                        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)
9494
                        VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9495
                    END
9496
                END
9497

    
9498
            END
9499

    
9500
	END
9501
	ELSE ---- CCLD ----
9502
	BEGIN
9503
        IF((@l_BRANCH_ID IS NOT NULL AND @l_BRANCH_ID <> '') AND (@l_IS_COLLECT = 0 OR @l_IS_COLLECT IS NULL))   ------ CCLD ĐANG SỬ DỤNG
9504
        BEGIN
9505
            ------ THANH LÝ CCLD KHÔNG THU TIỀN
9506
            IF(@l_LIQ_AMT = 0)
9507
            BEGIN
9508
                IF @l_CUR_AMORTIZED_AMT = 0 --Neu gia tri khau hao phân bổ hết thì không phát sinh
9509
    			BEGIN
9510
                    PRINT 'KHONG PHAT SINH'
9511
                END
9512
                ELSE
9513
                IF @l_CUR_AMORTIZED_AMT > 0 --Neu gia tri khau hao chưa phân bổ hết
9514
    			BEGIN
9515
                    EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9516
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9517
					@l_ET_ID OUT
9518
                    
9519
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9520
                  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)
9521
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_LIQ_CCLD, 'VND', 'D', @l_AMORT_AMT - @l_AMORTIZED_AMT,1, @l_AMORT_AMT - @l_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9522
              
9523
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9524
                  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)
9525
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @AMORT_CCLD, 'VND', 'C', @l_AMORT_AMT - @l_AMORTIZED_AMT,1, @l_AMORT_AMT - @l_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9526

    
9527
                    
9528
                END
9529
                    
9530
            END
9531
            ELSE IF(@l_LIQ_AMT > 0) --- -- THANH LÝ CÓ THU TIỀN
9532
            BEGIN
9533
            	
9534
                IF @l_CUR_AMORTIZED_AMT = 0 --Neu gia tri khau hao  phân bổ hết
9535
    			BEGIN
9536
                    EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9537
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9538
					@l_ET_ID OUT
9539
                    
9540
                    --- NỢ HS
9541
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9542
                  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)
9543
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', (@l_LIQ_AMT + @l_LIQ_PRICE_VAT),1, (@l_LIQ_AMT + @l_LIQ_PRICE_VAT), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9544
              
9545
                    -- CÓ 790001002
9546
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9547
                  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)
9548
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_COL_LIQ_CCLD, 'VND', 'C', @l_LIQ_AMT,1, @l_LIQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9549
                    
9550
                    IF(@l_LIQ_PRICE_VAT > 0)
9551
                    BEGIN
9552
                        -- CÓ 453101001
9553
                      EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9554
                      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)
9555
                      VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9556
                    END
9557
                END
9558
                ELSE IF @l_CUR_AMORTIZED_AMT > 0 --Neu gia tri khau hao chưa phân bổ hết
9559
    			BEGIN
9560
                   
9561
                    ----   Thanh lý lỗ
9562
                  IF(@l_LIQ_AMT < @l_CUR_AMORTIZED_AMT)
9563
                  BEGIN
9564

    
9565
                  EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9566
        					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9567
        					@l_ET_ID OUT
9568
                    --- NỢ HS
9569
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9570
                  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)
9571
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_REQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9572
              
9573
                    -- NO 8990
9574
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9575
                  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)
9576
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_LIQ_CCLD, 'VND', 'D', (@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT),1, (@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9577

    
9578
                    -- CÓ 3880 remain value
9579
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9580
                  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)
9581
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @AMORT_CCLD, 'VND', 'C', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9582
 
9583
                ---------------------
9584
                IF(@l_LIQ_PRICE_VAT > 0)
9585
                    BEGIN                     
9586
                      EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9587
                        -- CÓ 4531 vat dau ra
9588
                      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)
9589
                      VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9590
                    END
9591
               END
9592
               ELSE IF(@l_LIQ_AMT > @l_CUR_AMORTIZED_AMT) ---- Thanh lý lời
9593
               BEGIN
9594
                  EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9595
        					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9596
        					@l_ET_ID OUT
9597
                    --- NỢ HS
9598
               	  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9599
                  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)
9600
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_REQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9601
              
9602
                    -- NO 7990
9603
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9604
                  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)
9605
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_COL_LIQ_CCLD, 'VND', 'C', (@l_LIQ_AMT - @l_CUR_AMORTIZED_AMT),1, (@l_LIQ_AMT - @l_CUR_AMORTIZED_AMT), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9606

    
9607
                    -- CÓ 3880 remain value
9608
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9609
                  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)
9610
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @AMORT_CCLD, 'VND', 'C', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9611
 
9612
                ---------------------
9613
                IF(@l_LIQ_PRICE_VAT > 0)
9614
                    BEGIN              
9615
                   EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9616
                    -- CÓ 4531 remain value
9617
                  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)
9618
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9619
                END
9620
               END
9621
   ELSE IF(@l_LIQ_AMT = @l_CUR_AMORTIZED_AMT) ---- Thanh lý không lời lổ
9622
               BEGIN
9623
                  EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9624
        					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9625
        					@l_ET_ID OUT
9626

    
9627
                    --- NỢ HS
9628
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9629
                  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)
9630
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_REQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9631
              
9632
                    -- CÓ 3880 remain value
9633
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9634
                  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)
9635
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @AMORT_CCLD, 'VND', 'C', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9636
 
9637
                     IF(@l_LIQ_PRICE_VAT > 0)
9638
                    BEGIN
9639
                            -- CÓ 4531 remain value
9640
                          EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9641
                          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)
9642
                          VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9643
                    END
9644
               END
9645
                END
9646
            END
9647
        END
9648
        ELSE IF((@l_BRANCH_ID IS NULL OR @l_BRANCH_ID = '') OR @l_IS_COLLECT = 1)--------- CCLD ĐANG THU HỒI OR TRONG KHO
9649
        BEGIN
9650
            ------ THANH LÝ CCLD KHÔNG THU TIỀN
9651
            IF(@l_LIQ_AMT = 0)
9652
            BEGIN
9653
                IF @l_CUR_AMORTIZED_AMT = 0 --Neu gia tri khau hao phân bổ hết thì không phát sinh
9654
    			BEGIN
9655
                    PRINT 'KHONG PHAT SINH'
9656
                END
9657
                ELSE
9658
                IF @l_CUR_AMORTIZED_AMT > 0 --Neu gia tri khau hao chưa phân bổ hết
9659
    			BEGIN
9660
                    EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9661
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9662
					@l_ET_ID OUT
9663
                    
9664
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9665
                  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)
9666
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_LIQ_CCLD, 'VND', 'D', @l_AMORT_AMT - @l_AMORTIZED_AMT,1, @l_AMORT_AMT - @l_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9667
              
9668
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9669
                  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)
9670
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @BW_AMORT_CCLD, 'VND', 'C', @l_AMORT_AMT - @l_AMORTIZED_AMT,1, @l_AMORT_AMT - @l_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9671

    
9672
                    
9673
                END
9674
                    
9675
            END
9676
            ELSE IF(@l_LIQ_AMT > 0) --- -- THANH LÝ CÓ THU TIỀN
9677
            BEGIN
9678
            	
9679
                IF @l_CUR_AMORTIZED_AMT = 0 --Neu gia tri khau hao  phân bổ hết
9680
    			BEGIN
9681
                    EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9682
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9683
					@l_ET_ID OUT
9684
                    
9685
                    --- NỢ HS
9686
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9687
                  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)
9688
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', (@l_LIQ_AMT + @l_LIQ_PRICE_VAT),1, (@l_LIQ_AMT + @l_LIQ_PRICE_VAT), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9689
              
9690
                    -- CÓ 790001002
9691
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9692
                  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)
9693
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_COL_LIQ_CCLD, 'VND', 'C', @l_LIQ_AMT,1, @l_LIQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9694
                  IF(@l_LIQ_PRICE_VAT > 0)
9695
                    BEGIN
9696
                        -- CÓ 453101001
9697
                      EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9698
                      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)
9699
                      VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9700
                    END
9701
                END
9702
                ELSE IF @l_CUR_AMORTIZED_AMT > 0 --Neu gia tri khau hao chưa phân bổ hết
9703
    			BEGIN
9704
                    ----   Thanh lý lỗ
9705
                  IF(@l_LIQ_AMT < @l_CUR_AMORTIZED_AMT)
9706
                  BEGIN
9707

    
9708
                  EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9709
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9710
					@l_ET_ID OUT
9711

    
9712
                    --- NỢ HS
9713
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9714
                  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)
9715
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_LIQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9716
              
9717
                    -- NO 8990
9718
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9719
                  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)
9720
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_LIQ_CCLD, 'VND', 'D', (@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT),1, (@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9721

    
9722
                    -- CÓ 3880 remain value
9723
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9724
                  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)
9725
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @BW_AMORT_CCLD, 'VND', 'C', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9726
 
9727
                ---------------------
9728
                IF(@l_LIQ_PRICE_VAT > 0)
9729
                    BEGIN
9730
                      -- CÓ 4531 vat dau ra
9731
                      EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9732
                      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)
9733
                      VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9734
                    END
9735
               
9736
               END
9737
               ELSE IF(@l_LIQ_AMT > @l_CUR_AMORTIZED_AMT) ---- Thanh lý lời
9738
               BEGIN
9739
                    EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9740
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9741
					@l_ET_ID OUT
9742

    
9743
                    --- NỢ HS
9744
               	  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9745
                  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)
9746
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_REQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9747
              
9748
                    -- NO 7990
9749
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9750
                  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)
9751
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_COL_LIQ_CCLD, 'VND', 'C', (@l_LIQ_AMT - @l_CUR_AMORTIZED_AMT),1, (@l_LIQ_AMT - @l_CUR_AMORTIZED_AMT), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9752

    
9753
                    -- CÓ 3880 remain value
9754
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9755
                  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)
9756
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @BW_AMORT_CCLD, 'VND', 'C', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9757
 
9758
                ---------------------
9759
                IF(@l_LIQ_PRICE_VAT > 0)
9760
                    BEGIN
9761
                            -- CÓ 4531 remain value
9762
                          EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9763
                          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)
9764
                          VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9765
                    END
9766
               END
9767
              ELSE IF(@l_LIQ_AMT = @l_CUR_AMORTIZED_AMT) ---- Thanh lý không lời lổ
9768
               BEGIN
9769
                  EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
9770
					, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
9771
					@l_ET_ID OUT
9772

    
9773
                    --- NỢ HS
9774
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9775
                  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)
9776
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_REQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9777
              
9778
                    -- CÓ 3880 remain value
9779
                  EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9780
                  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)
9781
                  VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @BW_AMORT_CCLD, 'VND', 'C', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9782
 
9783
                     IF(@l_LIQ_PRICE_VAT > 0)
9784
                    BEGIN
9785
                            -- CÓ 4531 remain value
9786
                          EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
9787
                          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)
9788
                          VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
9789
                    END
9790
               END
9791

    
9792
                END
9793
            END
9794
        END
9795

    
9796

    
9797
		
9798
	END
9799
	
9800
	--INSERT INTO ASS_TRANSACTIONS(ASSET_ID, TRN_ID, TRN_TYPE, TRN_DATE, RECORD_STATUS, AUTH_STATUS, 	
9801
	--		[MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT]
9802
	--)VALUES
9803
	--(
9804
	--	@l_ASSET_ID, @l_LIQDT_ID, 'ASS_LIQ', CONVERT(DATETIME, @sToday, 103), '1', 'A', 
9805
	--	@l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @P_CHECKER_ID_KT, 	CONVERT(DATETIME, @P_APPROVE_DT_KT, 103) 
9806
	--)
9807
	--IF @@Error <> 0 GOTO ABORT	
9808
	
9809
	--insert dbo.ASS_VALUES
9810
	EXEC SYS_CodeMasters_Gen 'ASS_VALUES', @l_VALUE_ID out
9811
	IF @l_VALUE_ID='' OR @l_VALUE_ID IS NULL GOTO ABORT			
9812
				
9813
	INSERT INTO ASS_VALUES
9814
	(
9815
		VALUE_ID, ASSET_ID, BRANCH_ID, TRN_DT, CRDR, ASSET_AMT, [DESCRIPTION], TRN_ID, TRN_TYPE,
9816
		RECORD_STATUS, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, AMORT_AMT
9817
	)
9818
	VALUES
9819
	(
9820
		@l_VALUE_ID, @l_ASSET_ID, @l_HO_BRN_ID, CONVERT(datetime, @sToday, 103), 'D', @l_BUY_PRICE, N'THANH LY TSCD/CCLD', @l_LIQDT_ID, 'ASS_LIQ',
9821
		'1','A',@l_MAKER_ID, CONVERT(datetime, @sToday, 103), @P_CHECKER_ID_KT, CONVERT(datetime, @sToday, 103), @l_AMORT_AMT
9822
	)
9823
	IF @@Error <> 0 GOTO ABORT		
9824
	
9825
	--THIEUVQ THEM PHAN NAY PHUC VU BAO CAO TSCD_BC03
9826
			
9827
	--GHI NHAN HET KHAU HAO KHI THUC HIEN THANH LY		
9828
	SET @l_AMORT_DT_ID = ''	
9829
	EXEC SYS_CodeMasters_Gen 'ASS_AMORT_DT', @l_AMORT_DT_ID OUT
9830
	IF @l_AMORT_DT_ID='' OR @l_AMORT_DT_ID IS NULL GOTO ABORT
9831

    
9832
	INSERT INTO ASS_AMORT_DT
9833
	(
9834
		AMORTDT_ID,AMORT_ID,AMORT_DT,CRDR,BRANCH_ID,DEP_ID,ASSET_ID,AMORT_AMT,GROUP_ID,EXECUTED,TRN_TYPE,TRN_DESC
9835
	)
9836
	VALUES
9837
	(
9838
		@l_AMORT_DT_ID,NULL,CONVERT(datetime, @sToday, 103),'D' ,@l_BRANCH_ID, @l_DEPT_ID,@l_ASSET_ID,@l_AMORTIZED_AMT,
9839
		NULL, --Khong chay khau hao theo group
9840
		'1',
9841
		'AMORT',
9842
		'THANH LY TSCD - CCLD'
9843
	)
9844
	IF @@Error <> 0 GOTO ABORT
9845
	--------	
9846
		
9847
	FETCH NEXT FROM CUR INTO @l_LIQDT_ID,@l_ASSET_ID
9848
	
9849
END
9850
CLOSE CUR
9851
DEALLOCATE CUR
9852
END
9853
UPDATE ASS_LIQ_REQUEST SET IS_DONE = 1 WHERE LIQ_REQ_ID IN (SELECT * FROM STRING_SPLIT((
9854
SELECT LIST_LIQ_REQUEST FROM ASS_LIQUIDATION WHERE LIQ_ID = @P_LIQ_ID),','))
9855

    
9856
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID IN (SELECT ALD.ASSET_ID FROM ASS_LIQUIDATION_DT ALD WHERE ALD.LIQ_ID = @P_LIQ_ID)
9857
-- GIANT Insert to table PL_PROCESS
9858
		INSERT INTO dbo.PL_PROCESS
9859
					(
9860
					    REQ_ID,
9861
					    PROCESS_ID,
9862
					    CHECKER_ID,
9863
					    APPROVE_DT,
9864
					    PROCESS_DESC,
9865
					    NOTES
9866
					)
9867
					VALUES
9868
					(   @P_LIQ_ID,       
9869
						'APPROVE',
9870
					    @P_CHECKER_ID_KT,        
9871
					    GETDATE(),
9872
              N'Kiểm soát viên phê duyệt', 
9873
					    N'Kiểm soát viên phê duyệt hoàn tất'       
9874
					 )
9875

    
9876

    
9877

    
9878
COMMIT TRANSACTION
9879
SELECT '0' as Result, '' ErrorDesc
9880
RETURN '0'
9881
ABORT:
9882
BEGIN
9883
		CLOSE CUR
9884
		DEALLOCATE CUR		
9885
		ROLLBACK TRANSACTION
9886
		SELECT '-1' as Result, @ERROR ErrorDesc
9887
		RETURN '-1'
9888
End
9889
END
9890
GO
9891
IF @@ERROR <> 0 SET NOEXEC ON
9892
GO
9893
PRINT N'Altering [dbo].[ASS_PRIVATE_TRANSFER_MASTER_Ins]'
9894
GO
9895
ALTER PROCEDURE [dbo].[ASS_PRIVATE_TRANSFER_MASTER_Ins]
9896
@p_BRANCH_ID	varchar(15)  = NULL,
9897
@p_TRANSFER_DT	VARCHAR(100) = NULL,
9898
@p_USER_TRANSFER	nvarchar(200)  = NULL,
9899
@p_NOTES	nvarchar(1000)  = NULL,
9900
@p_RECORD_STATUS	varchar(1)  = NULL,
9901
@p_AUTH_STATUS	varchar(1)  = NULL,
9902
@p_MAKER_ID	varchar(100)  = NULL,
9903
@p_CREATE_DT	VARCHAR(100) = NULL,
9904
@p_CHECKER_ID	varchar(100)  = NULL,
9905
@p_APPROVE_DT	VARCHAR(100) = NULL,
9906
@p_AUTH_STATUS_KT	varchar(15)  = NULL,
9907
@p_CREATE_DT_KT	varchar(100) = NULL,
9908
@p_APPROVE_DT_KT	VARCHAR(100) = NULL,
9909
@p_MAKER_ID_KT	varchar(100)  = NULL,
9910
@p_CHECKER_ID_KT	varchar(100)  = NULL,
9911
@p_REPORT_STATUS	varchar(15)  = NULL,
9912
@p_BRANCH_CREATE varchar(15)  = NULL,
9913
@p_XmlData XML = NUL
9914
AS
9915
/*
9916

    
9917
*/
9918
DECLARE 
9919
		@ASSET_ID	varchar(15),
9920
		@BRANCH_ID	varchar(15),
9921
		@DEPT_ID	varchar(15),
9922
		@EMP_ID	varchar(15),
9923
	    @LOCATION	varchar(500),
9924
		@DESCRIPTION	nvarchar(1000),
9925
		@BRANCH_ID_OLD	varchar(15),
9926
		@DEPT_ID_OLD	varchar(15),
9927
		@EMP_ID_OLD	varchar(15),
9928
		@REMAIN_VALUE	DECIMAL(18,0),
9929
    @BUY_PRICE	DECIMAL(18,0),
9930
		@DEPT_CREATE VARCHAR(15) = (SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME = @p_MAKER_ID)
9931
Declare @hdoc INT
9932
	Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
9933

    
9934
	DECLARE XmlData CURSOR FOR
9935
	SELECT *
9936
	FROM OPENXML(@hdoc,'/Root/XmlData',2)
9937
	WITH 
9938
	(
9939
		ASSET_ID	varchar(15),
9940
		BRANCH_ID	varchar(15),
9941
		DEPT_ID	varchar(15),
9942
		EMP_ID	varchar(15),
9943
	    LOCATION	varchar(500),
9944
		[DESCRIPTION]	nvarchar(1000),
9945
		REMAIN_VALUE DECIMAL(18,0),
9946
    BUY_PRICE DECIMAL(18,0)
9947
	)
9948
	OPEN XmlData
9949

    
9950
BEGIN TRANSACTION
9951
DECLARE @l_TRANS_MULTI_MASTER_ID VARCHAR(15)
9952
		EXEC SYS_CodeMasters_Gen 'ASS_PRIVATE_TRANSFER_MASTER', @l_TRANS_MULTI_MASTER_ID out
9953
		IF @l_TRANS_MULTI_MASTER_ID='' OR @l_TRANS_MULTI_MASTER_ID IS NULL GOTO ABORT
9954
		print 'error'
9955
		INSERT INTO ASS_PRIVATE_TRANSFER_MASTER([TRANS_MULTI_MASTER_ID],[BRANCH_ID],[TRANSFER_DT],[USER_TRANSFER],[NOTES],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[REPORT_STATUS],[DEPT_CREATE])
9956
		VALUES(@l_TRANS_MULTI_MASTER_ID ,@p_BRANCH_ID ,CONVERT(DATETIME, @p_TRANSFER_DT, 103) ,@p_USER_TRANSFER ,@p_NOTES ,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@p_REPORT_STATUS,@DEPT_CREATE)
9957
		IF @@Error <> 0 GOTO ABORT
9958

    
9959
		DECLARE @COUNT INT;
9960
		SET @COUNT = 1;
9961

    
9962
		--Insert XmlData
9963
		FETCH NEXT FROM XmlData INTO  @ASSET_ID,@BRANCH_ID,@DEPT_ID,@EMP_ID,@LOCATION,@DESCRIPTION, @REMAIN_VALUE, @BUY_PRICE
9964
		WHILE @@FETCH_STATUS = 0
9965
		BEGIN
9966
				
9967
				DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(100)
9968

    
9969
        SELECT @EMP_ID_OLD = A.EMP_ID, @BRANCH_ID = A.BRANCH_ID, @DEPT_ID = A.DEPT_ID
9970
        FROM ASS_MASTER A WHERE A.ASSET_ID = @ASSET_ID
9971

    
9972
				DECLARE @l_TRANSFER_MULTI_ID VARCHAR(15)
9973
				EXEC SYS_CodeMasters_Gen 'ASS_PRIVATE_TRANSFER_DT', @l_TRANSFER_MULTI_ID out
9974
				IF @l_TRANSFER_MULTI_ID='' OR @l_TRANSFER_MULTI_ID IS NULL GOTO ABORT
9975
				
9976
				INSERT INTO ASS_PRIVATE_TRANSFER_DT([TRANSFER_MULTI_ID],[TRANS_MULTI_MASTER_ID],[ASSET_ID],[BRANCH_ID],[DEPT_ID],[EMP_ID],[USE_START_DT],[DESCRIPTION],[LOCATION],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[BRANCH_CREATE],[AUTH_STATUS_KT],[CREATE_DT_KT],[APPROVE_DT_KT],[MAKER_ID_KT],[CHECKER_ID_KT],[REPORT_STATUS], [BRANCH_ID_OLD], [DEPT_ID_OLD], [EMP_ID_OLD], REMAIN_VALUE,BUY_PRICE)
9977
				VALUES(@l_TRANSFER_MULTI_ID ,@l_TRANS_MULTI_MASTER_ID ,@ASSET_ID ,@BRANCH_ID ,@DEPT_ID ,@EMP_ID ,CONVERT(DATETIME, @p_TRANSFER_DT, 103) ,@DESCRIPTION ,@LOCATION ,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@p_BRANCH_CREATE ,@p_AUTH_STATUS_KT ,CONVERT(DATETIME, @p_CREATE_DT_KT, 103) ,CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) ,@p_MAKER_ID_KT ,@p_CHECKER_ID_KT ,'N',
9978
				 @BRANCH_ID, @DEPT_ID , @EMP_ID_OLD, @REMAIN_VALUE,@BUY_PRICE)
9979
				IF @@Error <> 0 GOTO ABORT
9980
				SET @COUNT = @COUNT + 1;
9981
			FETCH NEXT FROM XmlData INTO  @ASSET_ID,@BRANCH_ID,@DEPT_ID,@EMP_ID,@LOCATION,@DESCRIPTION, @REMAIN_VALUE, @BUY_PRICE
9982
		END
9983
			CLOSE XmlData
9984
		DEALLOCATE XmlData
9985

    
9986
		-- GIANT 21/09/2021
9987
		print 'error2'
9988
		INSERT INTO dbo.PL_PROCESS
9989
					(
9990
						REQ_ID,
9991
						PROCESS_ID,
9992
						CHECKER_ID,
9993
						APPROVE_DT,
9994
						PROCESS_DESC,NOTES
9995
					)
9996
					VALUES
9997
					(   @l_TRANS_MULTI_MASTER_ID,        -- REQ_ID - varchar(15)
9998
						'INSERT',        -- PROCESS_ID - varchar(10)
9999
						@p_MAKER_ID,        -- CHECKER_ID - varchar(15)
10000
						GETDATE(), -- APPROVE_DT - datetime
10001
            N'Đơn vị tạo phiếu',      -- PROCESS_DESC - nvarchar(1000)
10002
					  N'Thêm mới phiều điều chuyển thành công' 
10003
					   
10004
					)
10005

    
10006
COMMIT TRANSACTION
10007
SELECT '0' as Result, @l_TRANS_MULTI_MASTER_ID  TRANS_MULTI_MASTER_ID, '' ErrorDesc
10008
RETURN '0'
10009
ABORT:
10010
BEGIN
10011
		CLOSE XmlData
10012
		DEALLOCATE XmlData
10013
		ROLLBACK TRANSACTION
10014
		SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, '' ErrorDesc
10015
		RETURN '-1'
10016
End
10017
GO
10018
IF @@ERROR <> 0 SET NOEXEC ON
10019
GO
10020
PRINT N'Altering [dbo].[TR_REQUEST_SHOP_DOC_Upd]'
10021
GO
10022
ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_DOC_Upd]
10023
@p_REQ_ID	varchar(15) = null ,
10024
@p_REQ_CODE	nvarchar(100)  = NULL,
10025
@p_REQ_NAME	nvarchar(200)  = NULL,
10026
@p_REQ_DT	VARCHAR(20) = NULL,
10027
@p_NOTES	nvarchar(1000)  = NULL,
10028
@p_RECORD_STATUS	varchar(1)  = NULL,
10029
@p_MAKER_ID VARCHAR(100)  = NULL,
10030
@p_CREATE_DT	VARCHAR(20) = NULL,
10031
@p_AUTH_STATUS	varchar(50)  = NULL,
10032
@p_CHECKER_ID VARCHAR(100)  = NULL,
10033
@p_APPROVE_DT	VARCHAR(20) = NULL,
10034
@p_LISTASSET XML = NULL,
10035
@p_ListCostCenter XML,
10036
@p_REQ_TYPE	varchar(10) = NULL,
10037
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
10038
@p_BRANCH_ID VARCHAR(15)=NULL,
10039
@p_DEP_ID VARCHAR(15)=NULL,
10040
@p_CURRENT_URI VARCHAR(500)=NULL,
10041
@p_PL_CODE VARCHAR(50) = NULL --PHUCVH 14/11/22 BỔ SUNG SỐ TỜ TRÌNH
10042
AS
10043
	
10044
	DECLARE @sErrorCode VARCHAR(20)
10045
		
10046
	IF 	@sErrorCode <> ''
10047
	BEGIN
10048
		SELECT ErrorCode Result, ''  REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @sErrorCode
10049
		RETURN '0'
10050
	END
10051

    
10052
	Declare @hdoc INT
10053
	Exec sp_xml_preparedocument @hdoc Output,@p_LISTASSET
10054
	DECLARE AssetDetail CURSOR FOR
10055
	SELECT *
10056
	FROM OPENXML(@hdoc,'/Root/AssetDetail',2)
10057
	WITH 
10058
	(
10059
		REQDT_ID VARCHAR(15),
10060
		PLAN_ID	varchar(15)  ,
10061
		TRADE_ID	varchar(15)  ,
10062
		ASS_GROUP_ID	varchar(15)  ,
10063
		[DESCRIPTION] nvarchar(500),
10064
		UNIT_ID	varchar(15)  ,
10065
		QUANTITY	decimal(18)  ,
10066
		PRICE	decimal(18)  ,
10067
		TOTAL_AMT	decimal(18),	
10068
		NOTES	nvarchar(1000),
10069
		RECEIVE_BRANCH	varchar(15),
10070
		RECEIVE_ADDR	nvarchar(1000),
10071
		RECEIVE_PERSON	nvarchar(500),
10072
		RECEIVE_TEL	varchar(100),
10073
		RECEIVE_SUBBRANCH	varchar(20),
10074
		RECEIVE_DEP	varchar(20),
10075
		RECEIVE_EMAIL	nvarchar(200),
10076
		REQ_DT_TYPE VARCHAR(20),
10077
		QTY_ETM DECIMAL(18,0),
10078
		EMP_CODE VARCHAR(15),
10079
		EMP_ID VARCHAR(15),
10080
        TYPE_XL VARCHAR(50),
10081
		DO_EMAIL VARCHAR(200),
10082
		ASS_ID VARCHAR(20),
10083
        REASON NVARCHAR(1200)
10084
	)
10085
	OPEN AssetDetail
10086

    
10087
	SET @p_DEP_ID=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
10088
  IF(@p_BRANCH_ID <> 'DV0001') SET @p_DEP_ID = NULL
10089
	PRINT 'PASS KHOI TAO'
10090
    
10091
            DECLARE @STATUS VARCHAR(15) = (SELECT STATUS FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID= @p_REQ_ID)
10092
BEGIN TRANSACTION
10093
IF(@p_REQ_NAME IS NULL OR @p_REQ_NAME='' )
10094
			BEGIN
10095
			    ROLLBACK TRANSACTION
10096
				SELECT '-1' as Result, ''  REQ_ID, N'Tên PYC bắt buộc nhập' ErrorDesc
10097
				RETURN '-1'
10098
			END
10099
--            IF(@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT='' )
10100
--			BEGIN
10101
--			    ROLLBACK TRANSACTION
10102
--				SELECT '-1' as Result, ''  REQ_ID, N'Nội dung PYC bắt buộc nhập' ErrorDesc
10103
--				RETURN '-1'
10104
--			END
10105
		--insert master
10106
		BEGIN
10107
            IF(@STATUS = 'NEW') SET @p_AUTH_STATUS = 'E'
10108
            IF(@STATUS = 'QLTS_NL' OR @STATUS = 'QLTS_N')
10109
            BEGIN
10110
            	UPDATE TR_REQUEST_SHOP_DOC 
10111
                SET [REQ_CONTENT]=@p_REQ_CONTENT
10112
                ,[REQ_NAME] = @p_REQ_NAME
10113
                ,[NOTES] = @p_NOTES,[AUTH_STATUS] = 'U'
10114
    		    ,PL_CODE = @p_PL_CODE
10115
        	    WHERE  REQ_ID= @p_REQ_ID
10116
            END
10117
            ELSE
10118
            BEGIN
10119
            	UPDATE TR_REQUEST_SHOP_DOC SET [REQ_TYPE] = @p_REQ_TYPE,[REQ_CONTENT]=@p_REQ_CONTENT,[REQ_NAME] = @p_REQ_NAME,
10120
    			[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,DEP_ID = @p_DEP_ID,[AUTH_STATUS] = @p_AUTH_STATUS,[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),[BRANCH_ID]=@p_BRANCH_ID
10121
    		    ,PL_CODE = @p_PL_CODE
10122
        	    WHERE  REQ_ID= @p_REQ_ID
10123
            END
10124
			
10125

    
10126
            IF (@STATUS = 'REJECT')
10127
            BEGIN
10128
            	UPDATE TR_REQUEST_SHOP_DOC 
10129
                SET STATUS = 'NEW', AUTH_STATUS = 'E'
10130
                WHERE  REQ_ID= @p_REQ_ID
10131

    
10132
                
10133
        		UPDATE PL_REQUEST_PROCESS SET [STATUS]='P' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='REJECT'
10134
                INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, CHECKER_ID)
10135
		        VALUES(@p_REQ_ID,'ADDNEW','C',@p_BRANCH_ID,'',@p_DEP_ID, @p_MAKER_ID)
10136
                INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE)
10137
		        VALUES(@p_REQ_ID,'APPNEW','U','GDDV',@p_BRANCH_ID,'ADDNEW',@p_DEP_ID, 'Approve')
10138
--                IF(@p_BRANCH_ID='DV0001')
10139
--        		 BEGIN
10140
--        			UPDATE PL_REQUEST_PROCESS SET [STATUS]='P' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='ADDNEW'
10141
--        			UPDATE PL_REQUEST_PROCESS SET [STATUS]='P' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='APPNEW'
10142
--                     --GỬI QLTS
10143
--            		 INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
10144
--            		 VALUES(@p_REQ_ID,'QLTS_N','C','QLTS','DV0001','APPNEW', 'DEP000000000048')
10145
--        			UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='QLTS_N', AUTH_STATUS = 'U' WHERE REQ_ID=@p_REQ_ID
10146
--        		END
10147

    
10148
                INSERT INTO dbo.PL_PROCESS
10149
					(
10150
						REQ_ID,
10151
						PROCESS_ID,
10152
						CHECKER_ID,
10153
						APPROVE_DT,
10154
						PROCESS_DESC,NOTES
10155
					)
10156
					VALUES
10157
					(   @p_REQ_ID,       
10158
						'UPDATE',        
10159
						@p_MAKER_ID,       
10160
						GETDATE(), 
10161
						N'Cập nhật phiếu bị từ chối',
10162
						N'Nhân viên tạo phiếu cập nhật sau từ chối'    
10163
					)
10164
            END
10165
		END
10166
        
10167
		IF @@Error <> 0 GOTO ABORT
10168
		PRINT 'UPD MASTER SUCCESS'
10169
		--insert asset detail tương đương như NỘI DUNG trong bảng contract detail
10170
		Declare 
10171
		@REQDT_ID VARCHAR(15),
10172
		@PLAN_ID	varchar(15),
10173
		@TRADE_ID	varchar(15),
10174
		@ASS_GROUP_ID	varchar(15),
10175
		@DESCRIPTION nvarchar(500),
10176
		@UNIT_ID	varchar(15),
10177
		@QUANTITY	decimal(18),
10178
		@PRICE	decimal(18),
10179
		@TOTAL_AMT	decimal(18),		
10180
		@NOTES	nvarchar(1000),
10181
		@REQ_ID	varchar(15)  = NULL,	
10182
		@RECEIVE_BRANCH	varchar(15)=NULL,
10183
		@RECEIVE_ADDR	nvarchar(1000)=NULL,
10184
		@RECEIVE_PERSON	nvarchar(500)=NULL,
10185
		@RECEIVE_TEL	varchar(100)=NULL,
10186
		@RECEIVE_SUBBRANCH	varchar(20),
10187
		@RECEIVE_DEP	varchar(20),
10188
		@RECEIVE_EMAIL	nvarchar(200),
10189
		@REQ_DT_TYPE VARCHAR(20),
10190
		@QTY_ETM DECIMAL(18,0),
10191
		@EMP_CODE VARCHAR(15),
10192
		@EMP_ID VARCHAR(15),
10193
        @TYPE_XL VARCHAR(50),
10194
		@DO_EMAIL VARCHAR(200),
10195
		@ASS_ID VARCHAR(20),
10196
        @REASON NVARCHAR(1200)
10197

    
10198
        IF(@STATUS = 'QLTS_NL')
10199
        BEGIN
10200
        	DELETE FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_REQ_ID AND (REQ_DT_TYPE = 'BUYNEW' OR REQ_DT_TYPE = 'XKSD')
10201
        END
10202
        ELSE IF(@STATUS = 'NEW' OR @STATUS = 'REJECT')
10203
        BEGIN
10204
        	DELETE FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_REQ_ID AND (REQ_DT_TYPE = 'ORGINAL' OR REQ_DT_TYPE = 'ASSET_BROKEN')
10205
        END
10206
        ELSE DELETE FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_REQ_ID AND REQ_DT_TYPE <> 'ASSET_BROKEN'
10207

    
10208
		FETCH NEXT FROM AssetDetail INTO @REQDT_ID,@PLAN_ID,@TRADE_ID,@ASS_GROUP_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
10209
		@PRICE,@TOTAL_AMT,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@RECEIVE_SUBBRANCH
10210
          ,@RECEIVE_DEP,@RECEIVE_EMAIL,@REQ_DT_TYPE, @QTY_ETM
10211
          ,@EMP_CODE,@EMP_ID,@TYPE_XL,@DO_EMAIL,@ASS_ID,@REASON
10212
		WHILE @@FETCH_STATUS = 0	
10213
		BEGIN
10214
			
10215
			DECLARE @l_REQDT_ID VARCHAR(15)
10216
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_SHOP_DOC_DT', @l_REQDT_ID out
10217
			IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT
10218
            
10219
--            IF(@EMP_ID IS NULL OR @EMP_ID='' )
10220
--			BEGIN
10221
--			    ROLLBACK TRANSACTION
10222
--				SELECT '-1' as Result, @p_REQ_ID  REQ_ID, N'Người sử dụng bắt buộc nhập' ErrorDesc
10223
--				RETURN '-1'
10224
--			END
10225
--			IF(@RECEIVE_EMAIL IS NULL OR @RECEIVE_EMAIL='' AND @REQ_DT_TYPE <> 'ASSET_BROKEN')
10226
--			BEGIN
10227
--			    ROLLBACK TRANSACTION
10228
--				SELECT '-1' as Result, @p_REQ_ID  REQ_ID, N'Email người nhận bắt buộc nhập' ErrorDesc
10229
--				RETURN '-1'
10230
--			END
10231

    
10232
            IF(@QTY_ETM IS NULL AND @REQ_DT_TYPE <> 'ASSET_BROKEN')
10233
			BEGIN
10234
			    ROLLBACK TRANSACTION
10235
				SELECT '-1' as Result, @p_REQ_ID  REQ_ID, N'Số lượng bắt buộc nhập' ErrorDesc
10236
				RETURN '-1'
10237
			END
10238
			
10239
            IF((SELECT COUNT(*) FROM TR_REQUEST_SHOP_DOC_DT WHERE TRADE_ID = @p_REQ_ID AND ASS_GROUP_ID = @ASS_GROUP_ID) > 0)
10240
			BEGIN
10241
			    ROLLBACK TRANSACTION
10242
				SELECT '-1' as Result, @p_REQ_ID  REQ_ID, N'Nhóm tài sản chọn không thể trùng nhau' ErrorDesc
10243
				RETURN '-1'
10244
			END
10245
            IF(@REQ_DT_TYPE = 'ASSET_BROKEN' AND NOT EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC_DT TRSDD WHERE TRSDD.ASS_ID = @ASS_ID AND TRSDD.REQ_DOC_ID = @p_REQ_ID))
10246
            BEGIN
10247
            	INSERT INTO TR_REQUEST_SHOP_DOC_DT(REQDT_ID,REQ_DOC_ID,PLAN_ID,TRADE_ID,ASS_GROUP_ID,[DESCRIPTION],UNIT_ID,
10248
    		    QUANTITY,PRICE,TOTAL_AMT,NOTES, RECEIVE_BRANCH, RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL,RECORD_STATUS,
10249
    			MAKER_ID,CREATE_DT,AUTH_STATUS,CHECKER_ID,APPROVE_DT,RECEIVE_SUBBRANCH,RECEIVE_DEP,RECEIVE_EMAIL
10250
                ,REQ_DT_TYPE,QTY_ETM,EMP_CODE,EMP_ID,TYPE_XL,REASON,ASS_ID)
10251
    			VALUES(@l_REQDT_ID,@p_REQ_ID,@PLAN_ID,@TRADE_ID,@ASS_GROUP_ID,@DESCRIPTION,@UNIT_ID,
10252
    			@QUANTITY,@PRICE,@TOTAL_AMT,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@p_RECORD_STATUS,
10253
    			@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),@p_AUTH_STATUS,@p_CHECKER_ID,CONVERT(DATETIME, @p_APPROVE_DT, 103)
10254
               ,@RECEIVE_SUBBRANCH,@RECEIVE_DEP,@RECEIVE_EMAIL,@REQ_DT_TYPE,@QTY_ETM
10255
               ,@EMP_CODE,@EMP_ID,@TYPE_XL,@REASON,@ASS_ID)
10256
            END
10257
            ELSE
10258
            BEGIN
10259
            	INSERT INTO TR_REQUEST_SHOP_DOC_DT(REQDT_ID,REQ_DOC_ID,PLAN_ID,TRADE_ID,ASS_GROUP_ID,[DESCRIPTION],UNIT_ID,
10260
    		    QUANTITY,PRICE,TOTAL_AMT,NOTES, RECEIVE_BRANCH, RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL,RECORD_STATUS,
10261
    			MAKER_ID,CREATE_DT,AUTH_STATUS,CHECKER_ID,APPROVE_DT,RECEIVE_SUBBRANCH,RECEIVE_DEP,RECEIVE_EMAIL
10262
                ,REQ_DT_TYPE,QTY_ETM,EMP_CODE,EMP_ID,TYPE_XL,REASON,ASS_ID)
10263
    			VALUES(@l_REQDT_ID,@p_REQ_ID,@PLAN_ID,@TRADE_ID,@ASS_GROUP_ID,@DESCRIPTION,@UNIT_ID,
10264
    			@QUANTITY,@PRICE,@TOTAL_AMT,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@p_RECORD_STATUS,
10265
    			@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),@p_AUTH_STATUS,@p_CHECKER_ID,CONVERT(DATETIME, @p_APPROVE_DT, 103)
10266
               ,@RECEIVE_SUBBRANCH,@RECEIVE_DEP,@RECEIVE_EMAIL,@REQ_DT_TYPE,@QTY_ETM
10267
               ,@EMP_CODE,@EMP_ID,@TYPE_XL,@REASON,@ASS_ID)
10268
            END
10269
			
10270

    
10271
    
10272
			
10273
   IF @@ERROR <> 0 GOTO ABORT
10274

    
10275
		-- next Group_Id
10276
			
10277
   FETCH NEXT FROM AssetDetail INTO @REQDT_ID,@PLAN_ID,@TRADE_ID,@ASS_GROUP_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
10278
		@PRICE,@TOTAL_AMT,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@RECEIVE_SUBBRANCH
10279
  ,@RECEIVE_DEP,@RECEIVE_EMAIL,@REQ_DT_TYPE, @QTY_ETM
10280
  ,@EMP_CODE,@EMP_ID,@TYPE_XL,@DO_EMAIL,@ASS_ID,@REASON
10281

    
10282
   END
10283
		CLOSE AssetDetail
10284
		DEALLOCATE AssetDetail
10285
            
10286
    IF(EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC TRSD WHERE TRSD.REQ_ID = @p_REQ_ID AND TRSD.STATUS = 'NEW' OR TRSD.STATUS = 'REJECT' OR TRSD.STATUS = 'QLTS_N'))
10287
    BEGIN
10288
                
10289
            IF(@STATUS <> 'QLTS_NL')
10290
            BEGIN
10291
                Declare @hdoc2 INT
10292
    		
10293
        		Declare 
10294
        		@l_NOTES NVARCHAR(MAX),
10295
        		@l_AUTH_STATUS VARCHAR(5),
10296
        		@COST_ID	varchar(15),
10297
        		@REQ_COST_ID	varchar(15)
10298
    
10299
                Exec sp_xml_preparedocument @hdoc2 Output,@p_ListCostCenter
10300
    			DECLARE ListCostCenters  CURSOR FOR
10301
    			SELECT *
10302
    			FROM OPENXML(@hdoc2,'/Root/ListCostCenter',2)
10303
    			WITH 
10304
    			(
10305
    				REQ_COST_ID VARCHAR(15),
10306
    				COST_ID	varchar(15),	
10307
    				AUTH_STATUS VARCHAR(5),
10308
    				NOTES	nvarchar(MAX)
10309
    				
10310
    			)
10311
    			OPEN ListCostCenters
10312
                DELETE TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @p_REQ_ID
10313
    			FETCH NEXT FROM ListCostCenters INTO @REQ_COST_ID,@COST_ID,@l_AUTH_STATUS, @l_NOTES
10314
    			WHILE @@FETCH_STATUS = 0	
10315
    			BEGIN
10316
    				BEGIN
10317
    				EXEC SYS_CodeMasters_Gen 'TR_REQUEST_SHOP_COSTCENTER', @REQ_COST_ID out
10318
    				IF @REQ_COST_ID='' OR @REQ_COST_ID IS NULL GOTO ABORT
10319
    				INSERT INTO dbo.TR_REQUEST_SHOP_COSTCENTER
10320
    				(
10321
    				    REQ_COST_ID,
10322
    				    COST_ID,
10323
    				    REQ_ID,
10324
    				    NOTES,
10325
    				    AUTH_STATUS,
10326
    				    MAKER_ID,
10327
    				    CREATE_DT,
10328
    				    CHECKER_ID,
10329
    				    APPROVE_DT
10330
    				)
10331
    				VALUES
10332
    				(   @REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
10333
    				    @COST_ID,        -- COST_ID - varchar(15)
10334
    					@p_REQ_ID,        -- REQ_ID - varchar(15)
10335
    				    @l_NOTES,       -- NOTES - nvarchar(500)
10336
    					'E',        -- AUTH_STATUS - varchar(1)
10337
    				    NULL,        -- MAKER_ID - varchar(15)
10338
    				    GETDATE(), -- CREATE_DT - datetime
10339
    				    '',        -- CHECKER_ID - varchar(15)
10340
    				    NULL  -- APPROVE_DT - datetime
10341
    				    )
10342
    				END						
10343
    				IF @@ERROR <> 0 GOTO ABORT2
10344
    			-- next Group_Id
10345
    				FETCH NEXT FROM ListCostCenters INTO @REQ_COST_ID,@COST_ID,@l_AUTH_STATUS, @l_NOTES
10346
    			END
10347
    			CLOSE ListCostCenters
10348
    			DEALLOCATE ListCostCenters
10349
        END
10350
    END
10351

    
10352
COMMIT TRANSACTION
10353
SELECT '0' as Result, @p_REQ_ID  REQ_ID, '' ErrorDesc
10354
RETURN '0'
10355

    
10356
ABORT:
10357
BEGIN
10358
		CLOSE AssetDetail
10359
		DEALLOCATE AssetDetail	
10360
		ROLLBACK TRANSACTION
10361
		SELECT '-1' AS RESULT
10362
		RETURN '-1'
10363
End
10364
ABORT2:
10365
BEGIN
10366
		CLOSE ListCostCenters
10367
		DEALLOCATE ListCostCenters	
10368
		ROLLBACK TRANSACTION
10369
		SELECT '-1' AS RESULT
10370
		RETURN '-1'
10371
End
10372
GO
10373
IF @@ERROR <> 0 SET NOEXEC ON
10374
GO
10375
PRINT N'Altering [dbo].[ASS_PRIVATE_TRANSFER_MASTER_Upd]'
10376
GO
10377
ALTER PROCEDURE [dbo].[ASS_PRIVATE_TRANSFER_MASTER_Upd]
10378
@p_TRANS_MULTI_MASTER_ID	varchar(15) = null ,
10379
@p_BRANCH_ID	varchar(15) = NULL ,
10380
@p_TRANSFER_DT	VARCHAR(100) = NULL,
10381
@p_USER_TRANSFER	nvarchar(200)  = NULL,
10382
@p_NOTES	nvarchar(1000) = NULL ,
10383
@p_RECORD_STATUS	varchar(1) = NULL ,
10384
@p_AUTH_STATUS	varchar(1) = NULL ,
10385
@p_MAKER_ID	varchar(100) = NULL ,
10386
@p_CREATE_DT	VARCHAR(100) = NULL,
10387
@p_CHECKER_ID	varchar(100) = NULL ,
10388
@p_APPROVE_DT	VARCHAR(100) = NULL,
10389
@p_AUTH_STATUS_KT	varchar(100) = NULL ,
10390
@p_CREATE_DT_KT	varchar(100) = NULL,
10391
@p_APPROVE_DT_KT	VARCHAR(100) = NULL,
10392
@p_MAKER_ID_KT	varchar(100) = NULL ,
10393
@p_CHECKER_ID_KT	varchar(100) = NULL ,
10394
@p_REPORT_STATUS	varchar(15) = NULL,
10395
@p_BRANCH_CREATE varchar(15)  = NULL,
10396
@p_XmlData XML = NUL
10397
AS
10398
DECLARE 
10399
		@TRANSFER_MULTI_ID varchar(15),
10400
		@ASSET_ID	varchar(15),
10401
		@BRANCH_ID	varchar(15),
10402
		@DEPT_ID	varchar(15),
10403
		@EMP_ID	varchar(15),
10404
	    @LOCATION	varchar(500),
10405
		@DESCRIPTION	nvarchar(1000),
10406
		@BRANCH_ID_OLD	varchar(15),
10407
		@DEPT_ID_OLD	varchar(15),
10408
		@EMP_ID_OLD	varchar(15),
10409
		@REMAIN_VALUE	DECIMAL(18,0),
10410
    @BUY_PRICE	DECIMAL(18,0)
10411
Declare @hdoc INT
10412
	Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
10413

    
10414
	DECLARE XmlData CURSOR FOR
10415
	SELECT *
10416
	FROM OPENXML(@hdoc,'/Root/XmlData',2)
10417
	WITH 
10418
	(
10419
		TRANSFER_MULTI_ID varchar(15),
10420
		ASSET_ID	varchar(15),
10421
		BRANCH_ID	varchar(15),
10422
		DEPT_ID	varchar(15),
10423
		EMP_ID	varchar(15),
10424
	    LOCATION	varchar(500),
10425
		[DESCRIPTION]	nvarchar(1000),
10426
		REMAIN_VALUE DECIMAL(18,0),
10427
    BUY_PRICE DECIMAL(18,0)
10428
	)
10429
	OPEN XmlData
10430

    
10431
	DELETE FROM ASS_PRIVATE_TRANSFER_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRANS_MULTI_MASTER_ID
10432

    
10433
BEGIN TRANSACTION
10434
	
10435

    
10436

    
10437
		UPDATE ASS_PRIVATE_TRANSFER_MASTER SET [BRANCH_ID] = @p_BRANCH_ID,[TRANSFER_DT] = CONVERT(DATETIME, @p_TRANSFER_DT, 103),[USER_TRANSFER] = @p_USER_TRANSFER,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[AUTH_STATUS] = @p_AUTH_STATUS,[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),[REPORT_STATUS] = @p_REPORT_STATUS
10438
		WHERE  TRANS_MULTI_MASTER_ID= @p_TRANS_MULTI_MASTER_ID
10439
		IF @@Error <> 0 GOTO ABORT
10440

    
10441
		DECLARE @COUNT INT;
10442
		SET @COUNT = 1;
10443

    
10444
		--Insert XmlData
10445
		FETCH NEXT FROM XmlData INTO  @TRANSFER_MULTI_ID,@ASSET_ID,@BRANCH_ID,@DEPT_ID,@EMP_ID,@LOCATION,@DESCRIPTION, @REMAIN_VALUE, @BUY_PRICE
10446
		WHILE @@FETCH_STATUS = 0
10447
		BEGIN
10448
			DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(100)	
10449

    
10450
  		EXEC SYS_CodeMasters_Gen 'ASS_PRIVATE_TRANSFER_DT', @TRANSFER_MULTI_ID out
10451
  		IF @TRANSFER_MULTI_ID='' OR @TRANSFER_MULTI_ID IS NULL GOTO ABORT
10452

    
10453
         SELECT @EMP_ID_OLD = A.EMP_ID, @BRANCH_ID = A.BRANCH_ID, @DEPT_ID = A.DEPT_ID
10454
        FROM ASS_MASTER A WHERE A.ASSET_ID = @ASSET_ID
10455

    
10456

    
10457
		  INSERT INTO ASS_PRIVATE_TRANSFER_DT([TRANSFER_MULTI_ID],[TRANS_MULTI_MASTER_ID],[ASSET_ID],[BRANCH_ID],[DEPT_ID],[EMP_ID],[USE_START_DT],[DESCRIPTION],[LOCATION],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[BRANCH_CREATE],[AUTH_STATUS_KT],[CREATE_DT_KT],[APPROVE_DT_KT],[MAKER_ID_KT],[CHECKER_ID_KT],[REPORT_STATUS], [BRANCH_ID_OLD], [DEPT_ID_OLD], [EMP_ID_OLD], [REMAIN_VALUE], BUY_PRICE)
10458
		  VALUES(@TRANSFER_MULTI_ID ,@p_TRANS_MULTI_MASTER_ID ,@ASSET_ID ,@BRANCH_ID ,@DEPT_ID ,@EMP_ID ,CONVERT(DATETIME, @p_TRANSFER_DT, 103) ,@DESCRIPTION ,@LOCATION ,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@p_BRANCH_CREATE ,@p_AUTH_STATUS_KT ,CONVERT(DATETIME, @p_CREATE_DT_KT, 103) ,CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) ,@p_MAKER_ID_KT ,@p_CHECKER_ID_KT ,'N',
10459
		  @BRANCH_ID, @DEPT_ID , @EMP_ID_OLD,@REMAIN_VALUE, @BUY_PRICE)
10460
		  IF @@Error <> 0 GOTO ABORT
10461

    
10462
		  SET @COUNT = @COUNT + 1;
10463

    
10464
			FETCH NEXT FROM XmlData INTO  @TRANSFER_MULTI_ID,@ASSET_ID,@BRANCH_ID,@DEPT_ID,@EMP_ID,@LOCATION,@DESCRIPTION, @REMAIN_VALUE, @BUY_PRICE
10465
		END
10466
			CLOSE XmlData
10467
		DEALLOCATE XmlData
10468
		-- HUYHT 06/05/2022: XÓA CÁC PROCESS UPDATE CŨ
10469
		DELETE dbo.PL_PROCESS WHERE REQ_ID = @p_TRANS_MULTI_MASTER_ID AND PROCESS_ID = 'UPDATE'
10470
		-- GIANT 21/09/2021
10471
		INSERT INTO dbo.PL_PROCESS
10472
		(
10473
			REQ_ID,
10474
			PROCESS_ID,
10475
			CHECKER_ID,
10476
			APPROVE_DT,
10477
			PROCESS_DESC,NOTES
10478
		)
10479
		VALUES
10480
		(   @p_TRANS_MULTI_MASTER_ID,        -- REQ_ID - varchar(15)
10481
			'UPDATE',        -- PROCESS_ID - varchar(10)
10482
			@p_MAKER_ID,        -- CHECKER_ID - varchar(15)
10483
			GETDATE(), -- APPROVE_DT - datetime
10484
			N'Đơn vị cập nhật phiếu' ,
10485
			N'Cập nhật phiếu điều chuyển thành công'
10486
		)
10487

    
10488
COMMIT TRANSACTION
10489
		SELECT '0' as Result, @p_TRANS_MULTI_MASTER_ID  TRANS_MULTI_MASTER_ID, '' ErrorDesc
10490
		RETURN '0'
10491
ABORT:
10492
BEGIN
10493
		CLOSE XmlData
10494
		DEALLOCATE XmlData
10495
		ROLLBACK TRANSACTION
10496
		SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, '' ErrorDesc
10497
		RETURN '-1'
10498
End
10499
GO
10500
IF @@ERROR <> 0 SET NOEXEC ON
10501
GO
10502
PRINT N'Altering [dbo].[ASS_LIQUIDATION_BVB_KT_Upd]'
10503
GO
10504
ALTER PROCEDURE [dbo].[ASS_LIQUIDATION_BVB_KT_Upd]
10505
@p_LIQUIDATION_ID VARCHAR(15) = NULL,
10506
@p_BUY_COMPANY_ID	Nvarchar(500)  = NULL,
10507
@p_BUY_PRICE	decimal(18)  = NULL,
10508
@p_NOTES	nvarchar(1000)  = NULL,
10509
@p_CONTENTSMINUTES	nvarchar(1000)  = NULL,
10510
@p_CORE_NOTE nvarchar(500)  = NULL,
10511
@p_RECORD_STATUS	varchar(1)  = NULL,
10512
@p_AUTH_STATUS	varchar(1)  = NULL,
10513
@p_MAKER_ID	varchar(100)  = NULL,
10514
@p_CREATE_DT	VARCHAR(20) = NULL,
10515
@p_CHECKER_ID	varchar(100)  = NULL,
10516
@p_APPROVE_DT	VARCHAR(20) = NULL,
10517
@p_LiqDetails XML = NULL,
10518
@p_BRANCH_ID	VARCHAR(15) = NULL,
10519
@p_AUTH_STATUS_KT	varchar(15)	= NULL,
10520
@p_MAKER_ID_KT	varchar(100)	= NULL,
10521
@p_CREATE_DT_KT	varchar(100)	= NULL,
10522
@p_CHECKER_ID_KT	varchar(100)	= NULL,
10523
@p_APPROVE_DT_KT	varchar(20)	= NULL
10524
AS
10525
	--IF EXISTS(SELECT * FROM PL_MASTER WHERE [PLAN_CODE]=@p_PLAN_CODE)
10526
	--BEGIN
10527
	--	SELECT ErrorCode Result, '' PLAN_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'PL-00003'
10528
	--	RETURN '0'
10529
	--END
10530
	Declare @hdoc INT
10531
	Exec sp_xml_preparedocument @hdoc Output,@p_LiqDetails
10532
	DECLARE liqDetail CURSOR FOR
10533
	SELECT *
10534
	FROM OPENXML(@hdoc,'/Root/LiquiDetail',2)
10535
	WITH 
10536
	(
10537
		LIQDT_ID	VARCHAR(15),
10538
		ASSET_ID	varchar(15),
10539
		LIQ_PRICE	decimal(18,0),
10540
		LIQ_TYPE	varchar(1),
10541
		REMAIN_VALUE	decimal(18,0),
10542
		BUY_PRICE	decimal(18,0),
10543
		BUY_PRICE_LIQ	decimal(18,0),
10544
		LIQ_AMT	decimal(18,0),
10545
		REMAIN_AMORTIZED_AMT decimal(18,0),
10546
		ASSET_CODE	VARCHAR(30),
10547
		LIQ_REASON NVARCHAR(1000),
10548
		NOTE NVARCHAR(500),
10549
        REQ_AMT DECIMAL(18, 0),
10550
        BRANCH_ID_USE VARCHAR(50),
10551
        DEPT_ID_USE VARCHAR(50),
10552
        LIQ_REQ_ID VARCHAR(50),
10553
		ASS_AMORTIZED_MONTH	DECIMAL,
10554
		ASS_AMORTIZED_AMT DECIMAL,
10555
		LIQ_VAT	DECIMAL,
10556
		LIQ_PRICE_VAT DECIMAL,
10557
		LIQ_AMT_BE_VAT DECIMAL
10558
	)
10559
	OPEN liqDetail
10560
	-- Kiem tra ma ke hoach co ton tai hay chua
10561
BEGIN TRANSACTION	
10562

    
10563
----BO 2 KY TU DAC BIET & VA < TRONG DIEN GIAI HACH TOAN - THIEUVQ 020719 - BEGIN
10564
SET @p_CORE_NOTE = REPLACE(@p_CORE_NOTE,'&', 'VA')
10565
SET @p_CORE_NOTE = REPLACE(@p_CORE_NOTE,'<', ' ')
10566
--------------END--------------
10567
		UPDATE ASS_LIQUIDATION 
10568
		SET [BUY_COMPANY_ID] = @p_BUY_COMPANY_ID,[BUY_PRICE] = @p_BUY_PRICE,
10569
		[NOTES] = @p_NOTES,CORE_NOTE=@p_CORE_NOTE,[RECORD_STATUS] = @p_RECORD_STATUS,
10570
		BRANCH_ID=@p_BRANCH_ID,[CONTENTSMINUTES] = @p_CONTENTSMINUTES,
10571
		--AUTH_STATUS_KT = @p_AUTH_STATUS_KT,
10572
		MAKER_ID_KT=@p_MAKER_ID_KT,
10573
		CREATE_DT_KT =CONVERT(DATE,@p_CREATE_DT_KT,103),
10574
		--CHECKER_ID_KT =CHECKER_ID_KT,
10575
		--APPROVE_DT_KT =CONVERT(DATE,@p_APPROVE_DT_KT,103),
10576
		---LUCTV: 24-12-2018 BO SUNG CAP NHAT AUTH_STATUS =U. 
10577
		AUTH_STATUS_KT='E'
10578
		WHERE  LIQ_ID= @p_LIQUIDATION_ID
10579
		IF @@Error <> 0 GOTO ABORT1		
10580
		Declare @LIQDT_ID VARCHAR(15), @ASSET_ID varchar(15), @LIQ_PRICE decimal(18,0),@LIQ_TYPE varchar(1), @REMAIN_VALUE	decimal(18,0),@LIQ_REASON NVARCHAR(1000),
10581
		@BUY_PRICE	decimal(18,0),@REQ_AMT	decimal(18,0), @BRANCH_ID_USE VARCHAR(50),@DEPT_ID_USE VARCHAR(50),@ASSET_CODE	VARCHAR(30),@LIQ_REQ_ID	VARCHAR(50),
10582
		@BUY_PRICE_LIQ	decimal(18,0),@LIQ_AMT decimal(18,0),@REMAIN_AMORTIZED_AMT	decimal(18,0), @NOTE NVARCHAR(500),
10583
		@ASS_AMORTIZED_MONTH	DECIMAL, @ASS_AMORTIZED_AMT	DECIMAL, @LIQ_VAT	DECIMAL, @LIQ_PRICE_VAT	DECIMAL, @LIQ_AMT_BE_VAT	DECIMAL
10584
        
10585
        Declare @ASS_STATUS VARCHAR(20)
10586
        Declare @AMORT_STATUS VARCHAR(20)
10587

    
10588
		DELETE FROM ASS_LIQUIDATION_DT WHERE LIQ_ID = @p_LIQUIDATION_ID
10589
		FETCH NEXT FROM liqDetail INTO @LIQDT_ID,@ASSET_ID, @LIQ_PRICE, @LIQ_TYPE,@REMAIN_VALUE, @BUY_PRICE, @BUY_PRICE_LIQ,@LIQ_AMT, @REMAIN_AMORTIZED_AMT,@ASSET_CODE,@LIQ_REASON,@NOTE,@REQ_AMT, @BRANCH_ID_USE,@DEPT_ID_USE,@LIQ_REQ_ID,@ASS_AMORTIZED_MONTH,@ASS_AMORTIZED_AMT, @LIQ_VAT, @LIQ_PRICE_VAT,@LIQ_AMT_BE_VAT
10590
			WHILE @@FETCH_STATUS = 0	
10591
			BEGIN
10592
                
10593
                IF ((@LIQ_AMT_BE_VAT + @LIQ_PRICE_VAT > @REQ_AMT) OR (@LIQ_AMT_BE_VAT + @LIQ_PRICE_VAT < @REQ_AMT))
10594
                BEGIN
10595
                	CLOSE liqDetail
10596
            		DEALLOCATE liqDetail
10597
            		ROLLBACK TRANSACTION
10598
            		SELECT '-1' as Result, N'Tổng số tiền trước VAT và tiền thuế VAT không được lớn hơn số tiền sau thuế' ErrorDesc, @p_LIQUIDATION_ID LIQUIDATION_ID
10599
            		RETURN '-1'
10600
                END
10601
                
10602
                SELECT @AMORT_STATUS = AM.AMORT_STATUS, @ASS_STATUS = AM.ASS_STATUS FROM ASS_MASTER AM WHERE AM.ASSET_ID = @ASSET_ID
10603

    
10604
				IF( LEN(@LIQDT_ID) = 0)
10605
				BEGIN
10606
					EXEC SYS_CodeMasters_Gen 'ASS_LIQUIDATION_DT', @LIQDT_ID out
10607
					IF @LIQDT_ID ='' OR @LIQDT_ID IS NULL GOTO ABORT1
10608
				END 
10609
--				IF (@LIQ_AMT > @REMAIN_AMORTIZED_AMT)
10610
--					BEGIN
10611
--						ROLLBACK TRANSACTION
10612
--						SELECT '-1' as Result, '' LIQ_AMT, N'số tiền thanh lý không được lớn hơn nguyên giá còn lại' ErrorDesc
10613
--						RETURN '-1'		
10614
--					END
10615
				INSERT INTO ASS_LIQUIDATION_DT([LIQDT_ID],[LIQ_ID],[ASSET_ID],[LIQ_PRICE],[LIQ_TYPE],[REMAIN_VALUE], [BUY_PRICE], [BUY_PRICE_LIQ],[LIQ_AMT],[REMAIN_AMORTIZED_AMT],[LIQ_REASON],[NOTE],REQ_AMT, BRANCH_ID_USE, DEP_ID_USE, ASS_AMORTIZED_MONTH, ASS_AMORTIZED_AMT, LIQ_VAT, LIQ_PRICE_VAT, LIQ_AMT_BE_VAT, LIQ_REQ_ID, ASS_STATUS, AMORT_STATUS)
10616
				VALUES(@LIQDT_ID,@p_LIQUIDATION_ID,@ASSET_ID,@LIQ_PRICE,@LIQ_TYPE,@REMAIN_VALUE, @BUY_PRICE, @BUY_PRICE_LIQ,@LIQ_AMT,@REMAIN_AMORTIZED_AMT,@LIQ_REASON,@NOTE,@REQ_AMT, @BRANCH_ID_USE, @DEPT_ID_USE,@ASS_AMORTIZED_MONTH,@ASS_AMORTIZED_AMT, @LIQ_VAT, @LIQ_PRICE_VAT,@LIQ_AMT_BE_VAT,@LIQ_REQ_ID, @ASS_STATUS, @AMORT_STATUS)
10617
			-- next Group_Id
10618
				IF @@ERROR <> 0 GOTO ABORT1
10619
				FETCH NEXT FROM liqDetail INTO @LIQDT_ID,@ASSET_ID, @LIQ_PRICE, @LIQ_TYPE,@REMAIN_VALUE, @BUY_PRICE, @BUY_PRICE_LIQ,@LIQ_AMT, @REMAIN_AMORTIZED_AMT,@ASSET_CODE,@LIQ_REASON,@NOTE,@REQ_AMT, @BRANCH_ID_USE,@DEPT_ID_USE,@LIQ_REQ_ID,@ASS_AMORTIZED_MONTH,@ASS_AMORTIZED_AMT, @LIQ_VAT, @LIQ_PRICE_VAT,@LIQ_AMT_BE_VAT
10620
		END
10621
		CLOSE liqDetail
10622
		DEALLOCATE liqDetail
10623

    
10624

    
10625
		-- GIANT Insert to table PL_PROCESS
10626
		INSERT INTO dbo.PL_PROCESS
10627
					(
10628
					    REQ_ID,
10629
					    PROCESS_ID,
10630
					    CHECKER_ID,
10631
					    APPROVE_DT,
10632
					    PROCESS_DESC,
10633
					    NOTES
10634
					)
10635
					VALUES
10636
					(   @p_LIQUIDATION_ID,       
10637
						'UPDATE',
10638
					    @p_MAKER_ID_KT,        
10639
					    GETDATE(),
10640
                        N'Giao dịch viên cập nhật hạch toán', 
10641
					    N'Giao dịch viên cập nhật hạch toán thành công'               
10642
					 )
10643
COMMIT TRANSACTION
10644
SELECT '0' as Result,@LIQ_AMT LIQ_AMT, @p_LIQUIDATION_ID  LIQUIDATION_ID, '' ErrorDesc
10645
RETURN '0'
10646
ABORT:
10647
BEGIN
10648
		ROLLBACK TRANSACTION
10649
		SELECT '-1' as Result, @p_LIQUIDATION_ID LIQUIDATION_ID, '' ErrorDesc
10650
		RETURN '-1'
10651
End
10652

    
10653
ABORT1:
10654
BEGIN
10655
		CLOSE liqDetail
10656
		DEALLOCATE liqDetail
10657
		ROLLBACK TRANSACTION
10658
		SELECT '-1' as Result, @p_LIQUIDATION_ID LIQUIDATION_ID, '' ErrorDesc
10659
		RETURN '-1'
10660
End
10661
GO
10662
IF @@ERROR <> 0 SET NOEXEC ON
10663
GO
10664
PRINT N'Altering [dbo].[ASS_AMORT_DO_ASSCODE]'
10665
GO
10666
ALTER PROCEDURE [dbo].[ASS_AMORT_DO_ASSCODE]
10667
	@p_ASSET_CODE	varchar(1000)  = NULL,
10668
  @p_sExecDT  DATETIME=NULL
10669
AS
10670
DECLARE @p_ASSET_TYPE VARCHAR(25),@sExecDT DATETIME,@l_LAST_AMORT_ID VARCHAR(25)
10671
	declare @l_AMORT_ID varchar(15), @l_AMORTDT_ID varchar(15),@p_MAKER_ID VARCHAR(100) ,@p_CHECKER_ID VARCHAR(100)
10672
	
10673
	declare @l_AMORT_TERM nvarchar(50) = ''
10674
	
10675
	declare @l_ASSET_ID varchar(15)
10676
	declare @l_AMORTIZED_AMT decimal(18,0)
10677
	declare @l_AMORTIZED_MONTH int
10678
	declare @l_AMORT_AMT decimal(18,0)
10679
	declare @l_AMORT_MONTH decimal(18,2)
10680
	declare @l_AMORT_END_DATE datetime, @l_AMORT_START_DATE datetime
10681
	declare @l_FIRST_AMORT_AMT decimal(18,0), @l_MONTHLY_AMORT_AMT decimal(18,0)
10682
	declare @l_BRANCH_ID varchar(15)
10683
	declare @l_DEP_ID varchar(15)	
10684
	declare @l_BRANCH_ID_DO varchar(15) = NULL, @l_BRANCH_TYPE_DO VARCHAR(15)
10685
	declare @l_CURR_AMORT_AMT decimal(18,0)
10686
	declare @l_TOTAL_AMT decimal(18,0)
10687
	declare @l_CURR_AMORT_STATUS nvarchar(100)
10688
	declare @l_DESC nvarchar(1000)
10689

    
10690
	SET @l_AMORT_TERM = convert(varchar(2), datepart(month, @sExecDT)) + '/' + convert(varchar(4), datepart(year, @sExecDT))
10691

    
10692

    
10693
SET  @sExecDT =@p_sExecDT
10694
	declare pCur cursor for
10695
		 SELECT A.ASSET_ID, A.AMORTIZED_AMT, A.AMORTIZED_MONTH,
10696
				A.AMORT_AMT,  A.AMORT_MONTH, A.AMORT_END_DATE, A.AMORT_START_DATE,
10697
				A.FIRST_AMORT_AMT, A.MONTHLY_AMORT_AMT, A.BRANCH_ID, A.DEPT_ID
10698
		 FROM ASS_MASTER A
10699
		 WHERE A.AMORT_STATUS IN ('CKH','DKH')
10700
			AND convert(date, A.AMORT_START_DATE) <= convert(date, @sExecDT)
10701
			AND A.AMORTIZED_AMT < A.AMORT_AMT
10702
			AND A.RECORD_STATUS = '1'
10703
			AND A.AUTH_STATUS = 'A'
10704
		  AND A.ASSET_CODE IN ( SELECT value FROM dbo.wsiSplit(@p_ASSET_CODE,','))  
10705

    
10706
	open pCur
10707

    
10708
	select @l_LAST_AMORT_ID = AMORT_ID
10709
	FROM ASS_AMORT
10710
	WHERE IS_LEAF = 'Y'
10711
		
10712
	--Update ky khau hao truoc khong con la nut la
10713
	IF @l_LAST_AMORT_ID IS NOT NULL 
10714
	BEGIN
10715
		UPDATE ASS_AMORT 
10716
		SET IS_LEAF = 'N'
10717
		WHERE AMORT_ID = @l_LAST_AMORT_ID
10718
	END	
10719

    
10720
	--set dien giai
10721
	IF @p_ASSET_TYPE = 'TSCD'
10722
		SET @l_DESC = N'Khấu hao kỳ ' + @l_AMORT_TERM
10723
	ELSE
10724
		SET @l_DESC = N'Phân bổ kỳ ' + @l_AMORT_TERM
10725
 
10726
	--Insert ky khau hao moi
10727
	EXEC SYS_CodeMasters_Gen 'ASS_AMORT', @l_AMORT_ID out
10728
	
10729
	INSERT INTO ASS_AMORT
10730
	(
10731
		AMORT_ID,
10732
		AMORT_TERM,
10733
		EXECUTE_DT,
10734
		TOTAL_AMT,
10735
		IS_LEAF,
10736
		PARENT_ID,
10737
		NOTES,
10738
		PROCESS_STATUS,
10739
		[RECORD_STATUS],
10740
		[MAKER_ID],
10741
		[CREATE_DT],
10742
		[AUTH_STATUS],
10743
		[CHECKER_ID],
10744
		[APPROVE_DT],
10745
		[BRANCH_ID],
10746
		[ASSET_TYPE]
10747
	)
10748
	VALUES
10749
	(
10750
		@l_AMORT_ID,
10751
		@l_AMORT_TERM,
10752
		CONVERT(datetime, @p_sExecDT, 103),
10753
		0,
10754
		'Y',
10755
		@l_LAST_AMORT_ID,
10756
		@l_DESC,--N'Khấu hao kỳ ' + @l_AMORT_TERM,
10757
		'P', --Pending cho chay khau hao
10758
		'1',
10759
		@p_MAKER_ID,
10760
		GETDATE(),
10761
		'A',
10762
		@p_CHECKER_ID,
10763
		GETDATE(),
10764
		@l_BRANCH_ID_DO,
10765
		@p_ASSET_TYPE
10766
	)	
10767
 
10768
	----------------BO DUNG DANH SACH PGD DUOC CN PHAN BO GIUM THIEUVQ - 28092016------------------
10769
	
10770
	SET @l_TOTAL_AMT = 0	
10771
 
10772
	--Tinh khau hao cho tung tai san
10773
	FETCH NEXT FROM pCur INTO  @l_ASSET_ID, @l_AMORTIZED_AMT, @l_AMORTIZED_MONTH,
10774
				@l_AMORT_AMT,  @l_AMORT_MONTH, @l_AMORT_END_DATE, @l_AMORT_START_DATE,
10775
				@l_FIRST_AMORT_AMT, @l_MONTHLY_AMORT_AMT, @l_BRANCH_ID, @l_DEP_ID
10776
	
10777
	WHILE @@FETCH_STATUS = 0	
10778
	BEGIN
10779
		--SET @l_DESC = N'Khấu hao kỳ ' + @l_AMORT_TERM
10780
	
10781
		IF (@l_AMORTIZED_MONTH = 0) --Khau hao thang dau tien
10782
		BEGIN
10783
			SET @l_CURR_AMORT_AMT = @l_FIRST_AMORT_AMT
10784
			IF(@l_AMORTIZED_AMT>0)
10785
        SET  @l_CURR_AMORT_AMT =@l_MONTHLY_AMORT_AMT
10786
      --SET @l_CURR_AMORT_STATUS = 'DKH'
10787
		END
10788
		ELSE IF dbo.FN_GetLastDayOfMonth(@sExecDT) = dbo.FN_GetLastDayOfMonth(@l_AMORT_END_DATE) --Ky khau hao cuoi cung
10789
		BEGIN
10790
      IF(@l_AMORT_AMT - @l_AMORTIZED_AMT > @l_MONTHLY_AMORT_AMT )
10791
 	        SET @l_CURR_AMORT_AMT =@l_MONTHLY_AMORT_AMT
10792
      ELSE
10793
			  SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
10794
			--SET @l_CURR_AMORT_STATUS = 'KHX'	
10795
			print 'last amort'	+ @l_ASSET_ID
10796
		END
10797
		ELSE --tai san dang khau hao binh thuong
10798
		BEGIN
10799
			SET @l_CURR_AMORT_AMT = @l_MONTHLY_AMORT_AMT
10800
			--SET @l_CURR_AMORT_STATUS = 'DKH'
10801
			--THIEUVQ THEM DK KHONG KHAU HAO AM 13112017
10802
			IF (@l_AMORTIZED_AMT + @l_CURR_AMORT_AMT) > @l_AMORT_AMT
10803
				SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
10804
		END
10805
	
10806
		--Insert to bang ASS_AMORT_DT
10807
		EXEC SYS_CodeMasters_Gen 'ASS_AMORT_DT', @l_AMORTDT_ID out
10808
	
10809
		INSERT INTO ASS_AMORT_DT
10810
		(
10811
			AMORTDT_ID,
10812
			AMORT_ID,
10813
			AMORT_DT,
10814
			CRDR,
10815
			BRANCH_ID,
10816
			DEP_ID,
10817
			ASSET_ID,
10818
			AMORT_AMT,
10819
			GROUP_ID,
10820
			EXECUTED,
10821
			TRN_TYPE,
10822
			TRN_DESC
10823
		)
10824
		VALUES
10825
		(
10826
			@l_AMORTDT_ID,
10827
			@l_AMORT_ID,
10828
			@sExecDT,
10829
			'C',
10830
			@l_BRANCH_ID,
10831
			@l_DEP_ID,
10832
			@l_ASSET_ID,
10833
			@l_CURR_AMORT_AMT,
10834
			NULL, --Khong chay khau hao theo group
10835
			'0',
10836
			'AMORT',
10837
			@l_DESC
10838
		)
10839
		
10840
		SET @l_TOTAL_AMT = @l_TOTAL_AMT + @l_CURR_AMORT_AMT
10841

    
10842
		FETCH NEXT FROM pCur INTO  @l_ASSET_ID, @l_AMORTIZED_AMT, @l_AMORTIZED_MONTH,
10843
					@l_AMORT_AMT,  @l_AMORT_MONTH, @l_AMORT_END_DATE, @l_AMORT_START_DATE,
10844
					@l_FIRST_AMORT_AMT, @l_MONTHLY_AMORT_AMT, @l_BRANCH_ID, @l_DEP_ID
10845
	END
10846
	
10847
	UPDATE ASS_AMORT
10848
	SET TOTAL_AMT = @l_TOTAL_AMT
10849
	WHERE AMORT_ID = @l_AMORT_ID
10850
	
10851

    
10852
SELECT @l_AMORT_ID