Project

General

Profile

RET_REPAIR.txt

Luc Tran Van, 11/28/2022 05:24 PM

 
1

    
2
ALTER PROCEDURE [dbo].[RET_REPAIR_Search]
3
@p_RP_ID VARCHAR(15) = NULL,
4
@p_RET_ID VARCHAR(15) = NULL,
5
@P_ASSET_CODE VARCHAR(15) = NULL,
6
@p_ASSET_ID	varchar(15)  = NULL,
7
@p_ASSET_NAME	nvarchar(200)  = NULL,
8
@p_OFFER_NO	nvarchar(50)  = NULL,
9
@p_OFFER_DT	VARCHAR(20) = NULL,
10
@p_FINISH_DT	VARCHAR(20) = NULL,
11
@p_OFFER_REP_DIVISION	nvarchar(200)  = NULL,
12
@p_OFFER_BRANCH	varchar(15)  = NULL,
13
@p_OFFER_PERSON	varchar(15)  = NULL,
14
@p_OFFER_AMT	decimal = NULL,
15
@p_OFFER_REASON	nvarchar(1000)  = NULL,
16
@p_OFFER_CONTENT	nvarchar(1000)  = NULL,
17
@p_OFFER_NOTE	nvarchar(1000)  = NULL,
18
@p_OFFER_STATUS	varchar(1)  = NULL,
19
@p_REPAIR_DT	VARCHAR(20) = NULL,
20
@p_REPAIR_DIVISION	nvarchar(200)  = NULL,
21
@p_REPAIR_AMT	decimal = NULL,
22
@p_REPAIR_CONTENT	nvarchar(1000)  = NULL,
23
@p_REPAIR_NOTE	nvarchar(1000)  = NULL,
24
@p_ISLEAF	varchar(1)  = NULL,
25
@p_PARENT_ID	varchar(15)  = NULL,
26
@p_NOTES	nvarchar(1000)  = NULL,
27
@p_RECORD_STATUS	varchar(1)  = NULL,
28
@p_MAKER_ID	varchar(12)  = NULL,
29
@p_CREATE_DT	VARCHAR(20) = NULL,
30
@p_AUTH_STATUS	varchar(50)  = NULL,
31
@p_CHECKER_ID	varchar(12)  = NULL,
32
@p_APPROVE_DT	VARCHAR(20) = NULL,
33
@P_SEARCH_TYPE VARCHAR(1) = 'A',
34
@p_TOP	INT = 300,
35
@P_LEVEL varchar(10) = NULL,
36
-------BAODNQ 16/2/2022: Truyền thêm tham số------
37
@p_USER_LOGIN VARCHAR(15)
38

    
39
AS
40
	--Validation is here
41
/*
42
	DECLARE @ERRORSYS NVARCHAR(15) = '' 
43
	IF ( [NOT] EXISTS ( SELECT * FROM [TABLE] WHERE  [CONDITION] ))
44
		 SET @ERRORSYS = ''
45
	IF @ERRORSYS <> '' 
46
	BEGIN
47
		SELECT ErrorCode Result, ''  CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
48
		RETURN '0'
49
SELECT * FROM CM_AUTH_STATUS
50
	END */
51
BEGIN -- PAGING
52
	declare @tmp table(BRANCH_ID varchar(15))
53
	insert into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_OFFER_BRANCH)
54

    
55
	--DECLARE @p_USER_LOGIN_ROLE VARCHAR(50) = (SELECT RoleName FROM TL_USER WHERE TLNANME = @p_USER_LOGIN)
56
	DECLARE @t_USER_LOGIN_ROLE_TABLE TABLE (BRANCH_ID VARCHAR(20), DEPT_ID VARCHAR(15), ROLE_ID VARCHAR(20))
57

    
58
	INSERT INTO @t_USER_LOGIN_ROLE_TABLE(BRANCH_ID, DEPT_ID, ROLE_ID)
59
	SELECT * FROM [dbo].[TL_USER_GET_ROLES](@p_USER_LOGIN)
60

    
61
	DECLARE @p_BRANCH_LOGIN VARCHAR(15) = (SELECT TLSUBBRID FROM TL_USER WHERE TLNANME = @p_USER_LOGIN)
62

    
63
	IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
64
-- PAGING BEGIN
65
	SELECT A.RP_ID, A.RET_ID, A.OFFER_DT, A.REPAIR_DT, A.FINISH_DT, A.REPAIR_AMT, A.REPAIR_CONTENT,C.ASSET_CODE,C.ASSET_NAME ,G.DIV_CODE,G.DIV_NAME,G.ADDR,D.AUTH_STATUS_NAME,F.EMP_NAME,dbo.FN_GET_CHINHANH(E.BRANCH_ID,'KV') KHU_VUC,
66
		dbo.FN_GET_CHINHANH(E.BRANCH_ID,'CN') CHI_NHANH,E.BRANCH_NAME PGD,
67
		(SELECT ISNULL(SUM(ASP.PAID_AMT),0) FROM ASS_PAYMENT_DT ASP WHERE ASP.REF_MASTER_ID = A.RET_ID AND ASP.REF_DETAIL_ID = A.RP_ID) AS PAID_AMT,
68
		A.CREATE_DT, TUM.TLFullName AS MAKER_NAME
69
-- SELECT END
70
	FROM RET_REPAIR A 
71
	LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
72
	LEFT JOIN CM_AUTH_STATUS D ON A.AUTH_STATUS = D.AUTH_STATUS
73
	LEFT JOIN CM_BRANCH E ON A.OFFER_BRANCH=E.BRANCH_ID
74
	LEFT JOIN CM_EMPLOYEE F ON A.OFFER_PERSON=F.EMP_ID
75
	LEFT JOIN CM_DIVISION G ON G.DIV_ID=C.DIVISION_ID
76
	LEFT JOIN TL_USER TUM ON A.MAKER_ID = TUM.TLNANME
77
	 WHERE 1 = 1
78
		AND (A.RP_ID LIKE '%' + @p_RP_ID + '%' OR  @p_RP_ID IS NULL OR @p_RP_ID = '')
79
		AND (A.RET_ID LIKE '%' + @P_RET_ID + '%' OR  @P_RET_ID IS NULL OR @P_RET_ID = '')
80
		AND (A.ASSET_ID LIKE '%' + @p_ASSET_ID + '%' OR  @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
81
		AND (A.ASSET_NAME LIKE '%' + @p_ASSET_NAME + '%' OR  @p_ASSET_NAME IS NULL OR @p_ASSET_NAME = '')
82
		AND (A.OFFER_NO LIKE '%' + @p_OFFER_NO + '%' OR  @p_OFFER_NO IS NULL OR @p_OFFER_NO = '')
83
		AND (DATEDIFF(DAY,A.OFFER_DT ,CONVERT(DATETIME, @p_OFFER_DT, 103)) = 0 OR  @p_OFFER_DT IS NULL OR @p_OFFER_DT = '')
84
		AND (DATEDIFF(DAY,A.FINISH_DT ,CONVERT(DATETIME, @p_FINISH_DT, 103))  =0 OR  @p_FINISH_DT IS NULL OR @p_FINISH_DT = '')
85
		AND (A.OFFER_REP_DIVISION LIKE '%' + @p_OFFER_REP_DIVISION + '%' OR  @p_OFFER_REP_DIVISION IS NULL OR @p_OFFER_REP_DIVISION = '')
86
		--AND (A.OFFER_BRANCH IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_OFFER_BRANCH)))
87

    
88
		AND ((@P_LEVEL = 'ALL' AND A.OFFER_BRANCH IN (SELECT BRANCH_ID from @tmp)
89
		OR (@P_LEVEL = 'UNIT' AND A.OFFER_BRANCH = @p_OFFER_BRANCH)) OR @p_OFFER_BRANCH = '' OR @p_OFFER_BRANCH IS NULL
90

    
91
		)
92

    
93
		--AND (A.OFFER_BRANCH LIKE '%' + @p_OFFER_BRANCH + '%' OR  @p_OFFER_BRANCH IS NULL OR @p_OFFER_BRANCH = '')
94
		AND (A.OFFER_PERSON LIKE '%' + @p_OFFER_PERSON + '%' OR  @p_OFFER_PERSON IS NULL OR @p_OFFER_PERSON = '')
95
		AND (A.OFFER_AMT = @p_OFFER_AMT OR  @p_OFFER_AMT IS NULL OR @p_OFFER_AMT=0)
96
		AND (A.OFFER_REASON LIKE '%' + @p_OFFER_REASON + '%' OR  @p_OFFER_REASON IS NULL OR @p_OFFER_REASON = '')
97
		AND (A.OFFER_CONTENT LIKE '%' + @p_OFFER_CONTENT + '%' OR  @p_OFFER_CONTENT IS NULL OR @p_OFFER_CONTENT = '')
98
		AND (A.OFFER_NOTE LIKE '%' + @p_OFFER_NOTE + '%' OR  @p_OFFER_NOTE IS NULL OR @p_OFFER_NOTE = '')
99
		AND (A.OFFER_STATUS LIKE '%' + @p_OFFER_STATUS + '%' OR  @p_OFFER_STATUS IS NULL OR @p_OFFER_STATUS = '')
100
		AND (DATEDIFF(DAY,A.REPAIR_DT ,CONVERT(DATETIME, @p_REPAIR_DT, 103))  = 0 OR  @p_REPAIR_DT IS NULL OR @p_REPAIR_DT = '')
101
		AND (A.REPAIR_DIVISION LIKE '%' + @p_REPAIR_DIVISION + '%' OR  @p_REPAIR_DIVISION IS NULL OR @p_REPAIR_DIVISION = '')
102
		AND (A.REPAIR_AMT = @p_REPAIR_AMT OR  @p_REPAIR_AMT IS NULL OR @p_REPAIR_AMT=0)
103
		AND (A.REPAIR_CONTENT LIKE '%' + @p_REPAIR_CONTENT + '%' OR  @p_REPAIR_CONTENT IS NULL OR @p_REPAIR_CONTENT = '')
104
		AND (A.REPAIR_NOTE LIKE '%' + @p_REPAIR_NOTE + '%' OR  @p_REPAIR_NOTE IS NULL OR @p_REPAIR_NOTE = '')
105
		AND (A.ISLEAF LIKE '%' + @p_ISLEAF + '%' OR  @p_ISLEAF IS NULL OR @p_ISLEAF = '')
106
		AND (A.PARENT_ID LIKE '%' + @p_PARENT_ID + '%' OR  @p_PARENT_ID IS NULL OR @p_PARENT_ID = '')
107
		AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
108
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
109
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
110
		AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
111
		AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
112
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
113
		AND (DATEDIFF(DAY,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
114
		 AND ((@P_SEARCH_TYPE = 'N' AND A.ISLEAF = 'Y' AND A.AUTH_STATUS='A' AND A.RET_ID = @p_RET_ID OR @p_RET_ID IS NULL OR @p_RET_ID='')
115
														
116
					OR ( @P_SEARCH_TYPE = 'A'))
117
		AND A.RECORD_STATUS = '1'
118
		--AND ((@P_SEARCH_TYPE = 'N' 
119
		--AND A.REPAIR_DT = (	SELECT MAX(T1.REPAIR_DT) 
120
		--					FROM RET_REPAIR T1
121
		--					WHERE A.RECORD_STATUS = '1' AND A.OFFER_STATUS = '1'
122
		--				   )
123
		--	)OR ( @P_SEARCH_TYPE = 'A' AND 1 = 1 ))
124
	 --   ORDER BY A.REPAIR_DT
125
		-------BAODNQ 16/2/2022: Thêm điều kiện search-------
126
		--AND	(A.MAKER_ID = @p_USER_LOGIN		---- user login là ng tạo
127
		--	OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') --- user login là cấp duyệt trung gian và đã gửi YC phê duyệt
128
		--	OR	((@p_USER_LOGIN_ROLE IN('GDDV','PGD', 'TP', 'PP','TPGD','PPGD', 'TBP')) --- user login là trưởng ĐV và đã gửi YC phê duyệt
129
		--		AND A.IS_SEND_APPR = 'Y'
130
		--		AND	(
131
		--				ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
132
		--			)
133
			
134
		--		)
135
		--	)
136
		--AND	(A.MAKER_ID = @p_USER_LOGIN		---- user login là ng tạo
137
		--	OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') --- user login là cấp duyệt trung gian và đã gửi YC phê duyệt
138
		--	OR	(	
139
		--			--user login là trưởng ĐV và đã gửi YC phê duyệt
140
		--			(
141
		--				------user login là trưởng ĐV ở hội sở--------
142
		--				(
143
		--					EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.OFFER_BRANCH AND BRANCH_TYPE = 'HS')
144
		--					AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) 
145
		--						= (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
146
		--				)
147
		--				------user login là trưởng ĐV ở CN/PGD
148
		--				OR
149
		--				(
150
		--					NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.OFFER_BRANCH AND BRANCH_TYPE = 'HS')
151
		--					AND A.OFFER_BRANCH = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD'))
152
		--				)
153
		--			)
154
		--			AND A.IS_SEND_APPR = 'Y'
155
		--			AND	(
156
		--					ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
157
		--				)
158
		--		)
159
		--)
160

    
161
		AND(
162
			A.OFFER_BRANCH = @p_BRANCH_LOGIN
163
			AND(
164
				(SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) = (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE)
165
				OR(SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_LOGIN) <> 'HS'
166
			)
167
		)
168

    
169
-- PAGING END
170
	ELSE
171
-- PAGING BEGIN
172
	SELECT TOP(CONVERT(INT,@P_TOP))A.*,C.ASSET_CODE,G.DIV_CODE,G.DIV_NAME,G.ADDR,D.AUTH_STATUS_NAME,F.EMP_NAME,dbo.FN_GET_CHINHANH(E.BRANCH_ID,'KV') KHU_VUC,
173
		dbo.FN_GET_CHINHANH(E.BRANCH_ID,'CN') CHI_NHANH,E.BRANCH_NAME PGD,
174
		(SELECT ISNULL(SUM(ASP.PAID_AMT),0) FROM ASS_PAYMENT_DT ASP WHERE ASP.REF_MASTER_ID = A.RET_ID AND ASP.REF_DETAIL_ID = A.RP_ID) AS PAID_AMT,
175
		TUM.TLFullName AS MAKER_NAME
176
	-- SELECT END
177
	FROM RET_REPAIR A 
178
	LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
179
	LEFT JOIN CM_AUTH_STATUS D ON A.AUTH_STATUS = D.AUTH_STATUS
180
	LEFT JOIN CM_BRANCH E ON A.OFFER_BRANCH=E.BRANCH_ID
181
	LEFT JOIN CM_EMPLOYEE F ON A.OFFER_PERSON=F.EMP_ID
182
	LEFT JOIN CM_DIVISION G ON G.DIV_ID=C.DIVISION_ID
183
	LEFT JOIN TL_USER TUM ON A.MAKER_ID = TUM.TLNANME
184
	 WHERE 1 = 1
185
		AND (A.RP_ID LIKE '%' + @p_RP_ID + '%' OR  @p_RP_ID IS NULL OR @p_RP_ID = '')
186
		AND (A.RET_ID LIKE '%' + @P_RET_ID + '%' OR  @P_RET_ID IS NULL OR @P_RET_ID = '')
187
		AND (A.ASSET_ID LIKE '%' + @p_ASSET_ID + '%' OR  @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
188
		AND (A.ASSET_NAME LIKE '%' + @p_ASSET_NAME + '%' OR  @p_ASSET_NAME IS NULL OR @p_ASSET_NAME = '')
189
		AND (A.OFFER_NO LIKE '%' + @p_OFFER_NO + '%' OR  @p_OFFER_NO IS NULL OR @p_OFFER_NO = '')
190
		AND (DATEDIFF(DAY,A.OFFER_DT ,CONVERT(DATETIME, @p_OFFER_DT, 103)) = 0 OR  @p_OFFER_DT IS NULL OR @p_OFFER_DT = '')
191
		AND (DATEDIFF(DAY,A.FINISH_DT ,CONVERT(DATETIME, @p_FINISH_DT, 103))  =0 OR  @p_FINISH_DT IS NULL OR @p_FINISH_DT = '')
192
		AND (A.OFFER_REP_DIVISION LIKE '%' + @p_OFFER_REP_DIVISION + '%' OR  @p_OFFER_REP_DIVISION IS NULL OR @p_OFFER_REP_DIVISION = '')
193
		--AND (A.OFFER_BRANCH IN (SELECT BRANCH_ID FROM  CM_BRANCH_GETCHILDID(@p_OFFER_BRANCH)))
194
		AND ((@P_LEVEL = 'ALL' AND A.OFFER_BRANCH IN (SELECT BRANCH_ID from @tmp)
195
		OR (@P_LEVEL = 'UNIT' AND A.OFFER_BRANCH = @p_OFFER_BRANCH)) OR @p_OFFER_BRANCH = '' OR @p_OFFER_BRANCH IS NULL
196

    
197
		)
198
		--AND (A.OFFER_BRANCH LIKE '%' + @p_OFFER_BRANCH + '%' OR  @p_OFFER_BRANCH IS NULL OR @p_OFFER_BRANCH = '')
199
		AND (A.OFFER_PERSON LIKE '%' + @p_OFFER_PERSON + '%' OR  @p_OFFER_PERSON IS NULL OR @p_OFFER_PERSON = '')
200
		AND (A.OFFER_AMT = @p_OFFER_AMT OR  @p_OFFER_AMT IS NULL OR @p_OFFER_AMT=0)
201
		AND (A.OFFER_REASON LIKE '%' + @p_OFFER_REASON + '%' OR  @p_OFFER_REASON IS NULL OR @p_OFFER_REASON = '')
202
		AND (A.OFFER_CONTENT LIKE '%' + @p_OFFER_CONTENT + '%' OR  @p_OFFER_CONTENT IS NULL OR @p_OFFER_CONTENT = '')
203
		AND (A.OFFER_NOTE LIKE '%' + @p_OFFER_NOTE + '%' OR  @p_OFFER_NOTE IS NULL OR @p_OFFER_NOTE = '')
204
		AND (A.OFFER_STATUS LIKE '%' + @p_OFFER_STATUS + '%' OR  @p_OFFER_STATUS IS NULL OR @p_OFFER_STATUS = '')
205
		AND (DATEDIFF(DAY,A.REPAIR_DT ,CONVERT(DATETIME, @p_REPAIR_DT, 103))  = 0 OR  @p_REPAIR_DT IS NULL OR @p_REPAIR_DT = '')
206
		AND (A.REPAIR_DIVISION LIKE '%' + @p_REPAIR_DIVISION + '%' OR  @p_REPAIR_DIVISION IS NULL OR @p_REPAIR_DIVISION = '')
207
		AND (A.REPAIR_AMT = @p_REPAIR_AMT OR  @p_REPAIR_AMT IS NULL OR @p_REPAIR_AMT=0)
208
		AND (A.REPAIR_CONTENT LIKE '%' + @p_REPAIR_CONTENT + '%' OR  @p_REPAIR_CONTENT IS NULL OR @p_REPAIR_CONTENT = '')
209
		AND (A.REPAIR_NOTE LIKE '%' + @p_REPAIR_NOTE + '%' OR  @p_REPAIR_NOTE IS NULL OR @p_REPAIR_NOTE = '')
210
		AND (A.ISLEAF LIKE '%' + @p_ISLEAF + '%' OR  @p_ISLEAF IS NULL OR @p_ISLEAF = '')
211
		AND (A.PARENT_ID LIKE '%' + @p_PARENT_ID + '%' OR  @p_PARENT_ID IS NULL OR @p_PARENT_ID = '')
212
		AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
213
		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
214
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
215
		AND (DATEDIFF(DAY,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
216
		AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
217
		AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
218
		AND (DATEDIFF(DAY,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
219
		 AND ((@P_SEARCH_TYPE = 'N' AND A.ISLEAF = 'Y' AND A.AUTH_STATUS='A' AND A.RET_ID = @p_RET_ID OR @p_RET_ID IS NULL OR @p_RET_ID='')
220
														
221
					OR ( @P_SEARCH_TYPE = 'A'))
222
		AND A.RECORD_STATUS = '1'
223
		--AND ((@P_SEARCH_TYPE = 'N' 
224
		--AND A.REPAIR_DT = (	SELECT MAX(T1.REPAIR_DT) 
225
		--					FROM RET_REPAIR T1
226
		--					WHERE A.RECORD_STATUS = '1' AND A.OFFER_STATUS = '1'
227
		--				   )
228
		--	)OR ( @P_SEARCH_TYPE = 'A' AND 1 = 1 ))
229
	 --   ORDER BY A.REPAIR_DT
230
		-------BAODNQ 16/2/2022: Thêm điều kiện search-------
231
		--AND	(A.MAKER_ID = @p_USER_LOGIN		---- user login là ng tạo
232
		--	OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') --- user login là cấp duyệt trung gian và đã gửi YC phê duyệt
233
		--	OR	((@p_USER_LOGIN_ROLE IN('GDDV','PGD', 'TP', 'PP','TPGD','PPGD', 'TBP')) --- user login là trưởng ĐV và đã gửi YC phê duyệt
234
		--		AND A.IS_SEND_APPR = 'Y'
235
		--		AND	(
236
		--				ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
237
		--			)
238
			
239
		--		)
240
		--	)
241
		--AND	(A.MAKER_ID = @p_USER_LOGIN		---- user login là ng tạo
242
		--	OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y') --- user login là cấp duyệt trung gian và đã gửi YC phê duyệt
243
		--	OR	(	
244
		--			--user login là trưởng ĐV và đã gửi YC phê duyệt
245
		--			(
246
		--				------user login là trưởng ĐV ở hội sở--------
247
		--				(
248
		--					EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.OFFER_BRANCH AND BRANCH_TYPE = 'HS')
249
		--					AND (SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) 
250
		--						= (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
251
		--				)
252
		--				------user login là trưởng ĐV ở CN/PGD
253
		--				OR
254
		--				(
255
		--					NOT EXISTS(SELECT * FROM CM_BRANCH WHERE BRANCH_ID = A.OFFER_BRANCH AND BRANCH_TYPE = 'HS')
256
		--					AND A.OFFER_BRANCH = (SELECT TOP 1 BRANCH_ID FROM @t_USER_LOGIN_ROLE_TABLE WHERE ROLE_ID IN ('GDDV', 'PGD', 'TPGD', 'PPGD'))
257
		--				)
258
		--			)
259
		--			AND A.IS_SEND_APPR = 'Y'
260
		--			AND	(
261
		--					ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
262
		--				)
263
			
264
		--		)
265
		--)
266

    
267
		AND(
268
			A.OFFER_BRANCH = @p_BRANCH_LOGIN
269
			AND(
270
				(SELECT DEP_ID FROM TL_USER WHERE TLNANME = A.MAKER_ID) = (SELECT TOP 1 DEPT_ID FROM @t_USER_LOGIN_ROLE_TABLE)
271
				OR(SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_LOGIN) <> 'HS'
272
			)
273
		)
274

    
275
-- PAGING END
276
END -- PAGING
277

    
278
GO
279

    
280

    
281
ALTER PROCEDURE [dbo].[RET_REPAIR_SendAppr]
282
@p_RP_ID VARCHAR(15) = NULL,
283
@p_USER_LOGIN VARCHAR(15) = NULL,
284
@p_SEND_APPR_DT VARCHAR(20) = NULL
285

    
286
AS
287

    
288
BEGIN TRANSACTION
289
	
290
	IF(EXISTS (SELECT * FROM RET_REPAIR WHERE RP_ID = @p_RP_ID AND IS_SEND_APPR ='Y'))
291
	BEGIN
292
		ROLLBACK TRANSACTION
293
		SELECT '-1' as Result, '' RP_ID, '' IS_SEND_APPR, 
294
			N'Gửi yêu cầu phê duyệt thất bại. Thông tin sửa chữa BĐS đã được gửi yêu cầu phê duyệt trước đó' ErrorDesc
295
		RETURN '-1'
296
	END
297

    
298
	UPDATE RET_REPAIR SET
299
		IS_SEND_APPR = 'Y',
300
		SEND_APPR_DT = CONVERT(DATETIME, @p_SEND_APPR_DT, 103),
301
		SIGN_DT = NULL,
302
		AUTH_STATUS = 'U'
303
	WHERE RP_ID = @p_RP_ID
304
	IF @@ERROR <> 0 GOTO ABORT
305

    
306
	DECLARE @p_IS_SEND_APPR VARCHAR(15) = (SELECT IS_SEND_APPR FROM RET_REPAIR WHERE RP_ID = @p_RP_ID)
307
	DECLARE @p_MESSAGE NVARCHAR(500)
308
	DECLARE @p_RET_ID VARCHAR(15) = (SELECT RET_ID FROM RET_REPAIR WHERE RP_ID = @p_RP_ID)
309

    
310
	------------------TH gửi phê duyệt có cấp phê duyệt trung gian--------------
311
	IF(EXISTS(SELECT * FROM RET_REPAIR WHERE RP_ID = @p_RP_ID AND SIGN_USER IS NOT NULL))
312
	BEGIN
313
		SET @p_MESSAGE = N'Thông tin sửa chữa BĐS: ' +@p_RET_ID+
314
			N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp phê duyệt trung gian xác nhận.'
315
	END
316
	------------------TH gửi phê duyệt ko có cấp phê duyệt trung gian(gửi thẳng trưởng DV)--------------
317
	ELSE
318
	BEGIN
319
		SET @p_MESSAGE = N'Thông tin sửa chữa BĐS: ' +@p_RET_ID+
320
			N' đã được gửi phê duyệt thành công. Vui lòng đợi trưởng đơn vị phê duyệt.'
321
	END
322

    
323
	--------BAODNQ 15/02/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
324
		INSERT INTO dbo.PL_PROCESS
325
				(
326
					REQ_ID,
327
					PROCESS_ID,
328
					CHECKER_ID,
329
					APPROVE_DT,
330
					PROCESS_DESC,
331
					NOTES
332
				)
333
				VALUES
334
				(	@P_RP_ID,       
335
					'SEND',
336
					@p_USER_LOGIN,        
337
					GETDATE(), 
338
					N'Người tạo gửi phê duyệt thành công' ,      
339
					N'Người tạo gửi phê duyệt'       
340
				)
341
		IF @@ERROR <> 0 GOTO ABORT
342

    
343

    
344
COMMIT TRANSACTION
345
SELECT '0' as Result, @p_RP_ID RP_ID, @p_IS_SEND_APPR IS_SEND_APPR, @p_MESSAGE ErrorDesc
346
RETURN '0'
347
ABORT:
348
BEGIN
349
		ROLLBACK TRANSACTION
350
		SELECT '-1' as Result, '' RP_ID, '' IS_SEND_APPR, '' ErrorDesc
351
		RETURN '-1'
352
End
353

    
354

    
355
GO
356

    
357

    
358

    
359
ALTER PROCEDURE [dbo].[RET_REPAIR_Confirm]
360
@p_RP_ID VARCHAR(15) = NULL,
361
@p_SIGN_USER VARCHAR(15) = NULL,
362
@p_SIGN_DT VARCHAR(20) = NULL
363

    
364
AS
365

    
366
BEGIN TRANSACTION
367

    
368
	IF(EXISTS (
369
		SELECT * FROM RET_REPAIR WHERE RP_ID = @p_RP_ID AND  IS_SEND_APPR = 'Y' AND (SIGN_DT IS NOT NULL OR SIGN_DT <> '')))
370
	BEGIN
371
		ROLLBACK TRANSACTION
372
		SELECT '-1' as Result, '' RP_ID,
373
			N'Xác nhận thất bại. Thông tin sửa chữa BĐS đã được cấp trung gian xác nhận trước đó' ErrorDesc
374
		RETURN '-1'
375
	END
376

    
377
	IF(EXISTS (SELECT * FROM RET_REPAIR WHERE RP_ID = @p_RP_ID AND AUTH_STATUS = 'R'))
378
	BEGIN
379
		ROLLBACK TRANSACTION
380
		SELECT '-1' as Result, '' RP_ID,
381
			N'Xác nhận thất bại. Thông tin sửa chữa BĐS đang bị trả về' ErrorDesc
382
		RETURN '-1'
383
	END
384

    
385
	IF(EXISTS(SELECT RP_ID FROM RET_REPAIR WHERE RP_ID = @p_RP_ID AND AUTH_STATUS = 'E' AND IS_SEND_APPR = 'N'))
386
	BEGIN
387
		SELECT '-1' as Result, '' RET_ID,
388
			N'Xác nhận thất bại. Thông tin sửa chữa BĐS đang ở trạng thái lưu nháp. Vui lòng đợi người tạo gửi yêu cầu phê duyệt' ErrorDesc
389
		RETURN '-1'
390
	END
391

    
392
	UPDATE RET_REPAIR SET
393
		AUTH_STATUS = 'U',
394
		SIGN_DT = CONVERT(DATETIME, @p_SIGN_DT, 103)
395
	WHERE RP_ID = @p_RP_ID
396
	IF @@ERROR <> 0 GOTO ABORT
397

    
398
	DECLARE @p_RET_ID VARCHAR(15) = (SELECT RET_ID FROM RET_REPAIR WHERE RP_ID = @p_RP_ID)
399
	--------BAODNQ 15/02/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
400
		INSERT INTO dbo.PL_PROCESS
401
				(
402
					REQ_ID,
403
					PROCESS_ID,
404
					CHECKER_ID,
405
					APPROVE_DT,
406
					PROCESS_DESC,
407
					NOTES
408
				)
409
				VALUES
410
				(	@P_RP_ID,       
411
					'APPROVE',
412
					@p_SIGN_USER,        
413
					GETDATE(), 
414
					N'Cấp trung gian xác nhận thành công' ,      
415
					N'Cấp trung gian xác nhận'       
416
				)
417
		IF @@ERROR <> 0 GOTO ABORT
418

    
419

    
420
COMMIT TRANSACTION
421
SELECT '0' as Result, @p_RP_ID RP_ID,
422
			N' Thông tin sửa chữa BĐS: ' +@p_RET_ID+
423
			N' đã được xác nhận thành công. Vui lòng đợi trưởng đơn vị phê duyệt.' ErrorDesc
424
RETURN '0'
425
ABORT:
426
BEGIN
427
		ROLLBACK TRANSACTION
428
		SELECT '-1' as Result, '' RP_ID,'' ErrorDesc
429
		RETURN '-1'
430
End
431

    
432

    
433

    
434
GO
435

    
436
 
437
ALTER PROCEDURE [dbo].[RET_REPAIR_App]
438
@P_RP_ID VARCHAR(15),
439
@P_AUTH_STATUS VARCHAR(1),
440
@P_CHECKER_ID VARCHAR(12),
441
@P_APPROVE_DT VARCHAR(20) = NULL
442

    
443
AS
444
--Validation is here
445
DECLARE @ERRORSYS NVARCHAR(15) = '' 
446
IF ( NOT EXISTS ( SELECT * FROM RET_REPAIR WHERE RP_ID = @P_RP_ID))
447
	SET @ERRORSYS = 'RETR-00001'
448
IF @ERRORSYS <> '' 
449
BEGIN
450
	SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
451
	RETURN '-1'
452
END 
453

    
454
IF(EXISTS (SELECT * FROM RET_REPAIR WHERE RP_ID = @P_RP_ID AND AUTH_STATUS = 'R'))
455
BEGIN
456
	SELECT '-1' AS Result,  
457
		N'Phê duyệt thất bại. Thông tin sửa chữa BĐS đang được trả về' ErrorDesc 
458
	RETURN '-1'
459
END
460

    
461
IF(EXISTS (SELECT * FROM RET_REPAIR WHERE RP_ID = @P_RP_ID AND AUTH_STATUS = 'A'))
462
BEGIN
463
	SELECT '-1' AS Result,  
464
		N'Phê duyệt thất bại. Thông tin sửa chữa BĐS đã được phê duyệt trước đó' ErrorDesc 
465
	RETURN '-1'
466
END
467

    
468
IF(EXISTS(SELECT RP_ID FROM RET_REPAIR WHERE RP_ID = @P_RP_ID AND AUTH_STATUS = 'E' AND IS_SEND_APPR = 'N'))
469
BEGIN
470
	SELECT '-1' as Result, '' RET_ID,
471
		N'Phê duyệt thất bại. Thông tin sửa chữa BĐS đang ở trạng thái lưu nháp. Vui lòng đợi người tạo gửi yêu cầu phê duyệt' ErrorDesc
472
	RETURN '-1'
473
END
474

    
475
IF(EXISTS(
476
	SELECT RP_ID FROM RET_REPAIR WHERE RP_ID = @P_RP_ID AND IS_SEND_APPR = 'Y' AND AUTH_STATUS = 'U'
477
	AND (SIGN_USER IS NOT NULL AND SIGN_USER <> '') AND (SIGN_DT IS NULL OR SIGN_DT = '')
478
))
479
BEGIN
480
	SELECT '-1' as Result, '' RET_ID,
481
		N'Phê duyệt thất bại. Thông tin sửa chữa BĐS đang chờ cấp phê duyệt trung gian xác nhận. Vui lòng đợi cấp phê duyệt trung gian xác nhận' ErrorDesc
482
	RETURN '-1'
483
END
484

    
485
BEGIN TRANSACTION
486
	UPDATE RET_REPAIR SET AUTH_STATUS = @P_AUTH_STATUS, CHECKER_ID = @P_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@P_APPROVE_DT,103)
487
	WHERE RP_ID = @P_RP_ID	IF @@Error <> 0 GOTO ABORT
488

    
489
	--------BAODNQ 15/02/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
490
		INSERT INTO dbo.PL_PROCESS
491
				(
492
					REQ_ID,
493
					PROCESS_ID,
494
					CHECKER_ID,
495
					APPROVE_DT,
496
					PROCESS_DESC,
497
					NOTES
498
				)
499
				VALUES
500
				(	@P_RP_ID,       
501
					'APPROVE',
502
					@P_CHECKER_ID,        
503
					GETDATE(), 
504
					N'Trưởng đơn vị phê duyệt thành công' ,      
505
					N'Trưởng đơn vị phê duyệt'       
506
				)
507
		IF @@ERROR <> 0 GOTO ABORT
508

    
509

    
510
COMMIT TRANSACTION
511
SELECT '0' as Result, '' ErrorDesc
512
RETURN '0'
513
ABORT:
514
BEGIN
515
		ROLLBACK TRANSACTION
516
		SELECT '-1' as Result, '' ErrorDesc
517
		RETURN '-1'
518
End
519

    
520

    
521

    
522
GO
523

    
524

    
525

    
526
ALTER PROCEDURE [dbo].[RET_REPAIR_Ins]
527
@P_RET_ID	varchar(15)  = NULL,
528
@p_ASSET_ID	varchar(15)  = NULL,
529
@p_ASSET_NAME	nvarchar(200)  = NULL,
530
@p_OFFER_NO	nvarchar(50)  = NULL,
531
@p_OFFER_DT	VARCHAR(20) = NULL,
532
@p_FINISH_DT	VARCHAR(20) = NULL,
533
@p_OFFER_REP_DIVISION	nvarchar(200)  = NULL,
534
@p_OFFER_BRANCH	varchar(15)  = NULL,
535
@p_OFFER_PERSON	varchar(15)  = NULL,
536
@p_OFFER_AMT	decimal(18)  = NULL,
537
@p_OFFER_REASON	nvarchar(1000)  = NULL,
538
@p_OFFER_CONTENT	nvarchar(1000)  = NULL,
539
@p_OFFER_NOTE	nvarchar(1000)  = NULL,
540
@p_OFFER_STATUS	varchar(1)  = NULL,
541
@p_REPAIR_DT	VARCHAR(20) = NULL,
542
@p_REPAIR_DIVISION	Nvarchar(200)  = NULL,
543
@p_REPAIR_AMT	decimal(18)  = NULL,
544
@p_REPAIR_CONTENT	nvarchar(1000)  = NULL,
545
@p_REPAIR_NOTE	nvarchar(1000)  = NULL,
546
@p_ISLEAF	varchar(1)  = NULL,
547
@p_PARENT_ID	varchar(15)  = NULL,
548
@p_NOTES	nvarchar(1000)  = NULL,
549
@p_RECORD_STATUS	varchar(1)  = NULL,
550
@p_MAKER_ID	varchar(12)  = NULL,
551
@p_CREATE_DT	VARCHAR(20) = NULL,
552
@p_AUTH_STATUS	varchar(50)  = NULL,
553
@p_CHECKER_ID	varchar(12)  = NULL,
554
@p_APPROVE_DT	VARCHAR(20) = NULL,
555
@p_PERFORMANCE	VARCHAR(1) = NULL,
556
----BAODNQ 15/2/2022: Thêm cột vào bảng RET_REPAIR------
557
@p_IS_SEND_APPR VARCHAR(15) = NULL,
558
@p_SEND_APPR_DT VARCHAR(20) = NULL,
559
@p_SIGN_USER VARCHAR(15) = NULL,
560
@p_SIGN_DT VARCHAR(20) = NULL
561

    
562

    
563
AS
564
DECLARE @ERRORSYS NVARCHAR(15) = '' 
565
	IF (  EXISTS ( SELECT * FROM RET_REPAIR WHERE  RET_ID = @P_RET_ID ) )
566
	    BEGIN
567
		IF((SELECT COUNT(A.RET_ID) FROM RET_REPAIR A WHERE A.RET_ID = @P_RET_ID AND OFFER_STATUS = '0') > 0)
568
			SET @ERRORSYS = 'RETR-00002'
569
	    ELSE IF(NOT EXISTS(SELECT * FROM RET_REPAIR A WHERE  A.AUTH_STATUS='A' AND A.ISLEAF = 'Y'AND (A.RET_ID = @p_RET_ID OR @p_RET_ID IS NULL OR @p_RET_ID='')))					
570
			SET @ERRORSYS='RETR-00003'
571
	    END
572
	IF @ERRORSYS <> '' 
573
	BEGIN
574
		SELECT ErrorCode Result, ''  RET_REPAIR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
575
	RETURN '-1'
576
	END 
577

    
578
	IF (CONVERT(DATETIME, @p_FINISH_DT, 103) < CONVERT(DATETIME, @p_OFFER_DT, 103))
579
	BEGIN
580
		SELECT '-1' AS Result, ''  RET_REPAIR_ID, 
581
			N'Thông tin đề xuất sửa chữa : Ngày dự kiến sửa xong không được nhỏ hơn ngày đề xuất' ErrorDesc
582
		RETURN '-1'
583
	END
584

    
585
BEGIN TRANSACTION
586
DECLARE @l_RET_REPAIR_ID VARCHAR(15)
587
		
588
		EXEC SYS_CodeMasters_Gen 'RET_REPAIR', @l_RET_REPAIR_ID out
589
		IF @p_OFFER_DT = ''  SET @p_OFFER_DT = NULL
590
		IF @p_FINISH_DT = '' SET @p_FINISH_DT = NULL
591
		IF @p_REPAIR_DT = '' SET @p_REPAIR_DT = NULL
592
		IF @p_CREATE_DT = '' SET @p_CREATE_DT = NULL
593
		IF @p_APPROVE_DT = '' SET @p_APPROVE_DT = NULL
594
		
595
		DECLARE @PARENT VARCHAR(15) = NULL
596
		SELECT @PARENT = RP_ID FROM RET_REPAIR WHERE RET_ID = @P_RET_ID AND ISLEAF = 'Y' AND RECORD_STATUS = '1'
597
		UPDATE RET_REPAIR SET ISLEAF = 'N' WHERE RP_ID = @PARENT 
598
		
599
	
600
		IF @l_RET_REPAIR_ID ='' OR @l_RET_REPAIR_ID IS NULL GOTO ABORT
601
		INSERT INTO RET_REPAIR(RP_ID,[RET_ID],[ASSET_ID],[ASSET_NAME],[OFFER_NO],[OFFER_DT],[FINISH_DT],
602
			[OFFER_REP_DIVISION],[OFFER_BRANCH],[OFFER_PERSON],[OFFER_AMT],[OFFER_REASON],[OFFER_CONTENT],
603
			[OFFER_NOTE],[OFFER_STATUS],[REPAIR_DT],[REPAIR_DIVISION],[REPAIR_AMT],[REPAIR_CONTENT],
604
			[REPAIR_NOTE],[ISLEAF],[PARENT_ID],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],
605
			[CHECKER_ID],[APPROVE_DT],[PERFORMANCE], [IS_SEND_APPR], [SEND_APPR_DT], [SIGN_USER], [SIGN_DT])
606
		VALUES(@l_RET_REPAIR_ID ,@P_RET_ID ,@p_ASSET_ID ,@p_ASSET_NAME ,@p_OFFER_NO ,
607
			CONVERT(DATETIME, @p_OFFER_DT, 103) ,CONVERT(DATETIME, @p_FINISH_DT, 103) ,@p_OFFER_REP_DIVISION ,
608
			@p_OFFER_BRANCH ,@p_OFFER_PERSON ,@p_OFFER_AMT ,@p_OFFER_REASON ,@p_OFFER_CONTENT ,@p_OFFER_NOTE ,
609
			'0',CONVERT(DATETIME, @p_REPAIR_DT, 103) ,@p_REPAIR_DIVISION ,@p_REPAIR_AMT ,@p_REPAIR_CONTENT ,
610
			@p_REPAIR_NOTE ,'Y',@PARENT ,@p_NOTES ,'1',@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS,
611
			@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),@p_PERFORMANCE, @p_IS_SEND_APPR, CONVERT(DATETIME, @p_SEND_APPR_DT, 103),
612
			@p_SIGN_USER, CONVERT(DATETIME, @p_SIGN_DT, 103))
613
		IF @@Error <> 0 GOTO ABORT
614

    
615
		--------BAODNQ 15/02/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
616
		INSERT INTO dbo.PL_PROCESS
617
				(
618
					REQ_ID,
619
					PROCESS_ID,
620
					CHECKER_ID,
621
					APPROVE_DT,
622
					PROCESS_DESC,
623
					NOTES
624
				)
625
				VALUES
626
				(	@l_RET_REPAIR_ID,       
627
					'INSERT',
628
					@p_MAKER_ID,        
629
					GETDATE(), 
630
					N'Thêm mới thông tin sửa chữa BĐS thành công' ,      
631
					N'Thêm mới thông tin sửa chữa BĐS'       
632
				)
633
		IF @@ERROR <> 0 GOTO ABORT
634

    
635
		--------BAODNQ 15/3/2022: Lấy tên BDS------
636
		DECLARE @p_RET_NAME NVARCHAR(MAX) = (
637
			SELECT ASSET_NAME
638
			FROM RET_REPAIR
639
			WHERE RP_ID = @l_RET_REPAIR_ID
640
		)
641

    
642
COMMIT TRANSACTION
643
SELECT '0' as Result, @l_RET_REPAIR_ID  RET_REPAIR_ID, @p_RET_NAME RET_NAME,'' ErrorDesc
644
RETURN '0'
645
ABORT:
646
BEGIN
647
		ROLLBACK TRANSACTION
648
		SELECT '-1' as Result, '' RET_REPAIR_ID, '' RET_NAME,'' ErrorDesc
649
		RETURN '-1'
650
End
651

    
652
GO
653

    
654

    
655

    
656
ALTER PROCEDURE [dbo].[RET_REPAIR_Upd]
657
@p_RET_REPAIR_ID	varchar(15) = null ,
658
@p_RET_ID	varchar(15) = NULL ,
659
@p_ASSET_ID	varchar(15) = NULL ,
660
@p_ASSET_NAME	nvarchar(200) = NULL ,
661
@p_OFFER_NO	nvarchar(50) = NULL ,
662
@p_OFFER_DT	VARCHAR(20) = NULL,
663
@p_FINISH_DT	VARCHAR(20) = NULL,
664
@p_OFFER_REP_DIVISION	nvarchar(200) = NULL ,
665
@p_OFFER_BRANCH	varchar(15) = NULL ,
666
@p_OFFER_PERSON	varchar(15) = NULL ,
667
@p_OFFER_AMT	decimal(17) = NULL ,
668
@p_OFFER_REASON	nvarchar(1000) = NULL ,
669
@p_OFFER_CONTENT	nvarchar(1000) = NULL ,
670
@p_OFFER_NOTE	nvarchar(1000) = NULL ,
671
@p_OFFER_STATUS	varchar(1) = NULL ,
672
@p_REPAIR_DT	VARCHAR(20) = NULL,
673
@p_REPAIR_DIVISION	Nvarchar(200) = NULL ,
674
@p_REPAIR_AMT	decimal(17) = NULL ,
675
@p_REPAIR_CONTENT	nvarchar(1000) = NULL ,
676
@p_REPAIR_NOTE	nvarchar(1000) = NULL ,
677
@p_ISLEAF	varchar(1) = NULL ,
678
@p_PARENT_ID	varchar(15) = NULL ,
679
@p_NOTES	nvarchar(1000) = NULL ,
680
@p_RECORD_STATUS	varchar(1) = NULL ,
681
@p_MAKER_ID	varchar(12) = NULL ,
682
@p_CREATE_DT	VARCHAR(20) = NULL,
683
@p_AUTH_STATUS	varchar(50) = NULL ,
684
@p_CHECKER_ID	varchar(12) = NULL ,
685
@p_APPROVE_DT	VARCHAR(20) = NULL,
686
@p_PERFORMANCE	VARCHAR(1) = NULL,
687
----BAODNQ 15/2/2022: Thêm cột vào bảng RET_REPAIR------
688
@p_IS_SEND_APPR VARCHAR(15) = NULL,
689
@p_SEND_APPR_DT VARCHAR(20) = NULL,
690
@p_SIGN_USER VARCHAR(15) = NULL,
691
@p_SIGN_DT VARCHAR(20) = NULL
692

    
693
AS
694
--Validation is here
695
	DECLARE @ERRORSYS NVARCHAR(15) = '' 
696
	IF ( NOT EXISTS ( SELECT * FROM RET_REPAIR WHERE RP_ID = @P_RET_REPAIR_ID))
697
		SET @ERRORSYS = 'RETR-00001'
698
	IF @ERRORSYS <> '' 
699
	BEGIN
700
		SELECT ErrorCode Result, ''  RP_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
701
		RETURN '0'
702
	END
703

    
704
	IF(EXISTS(SELECT * FROM RET_REPAIR WHERE RP_ID = @p_RET_REPAIR_ID AND IS_SEND_APPR = 'Y' AND AUTH_STATUS = 'U'))
705
	BEGIN
706
		SELECT '-1' AS Result, ''  RET_ID, 
707
			N'Không thể chỉnh sửa. Thông tin sửa chữa BĐS đã được gửi yêu cầu phê duyệt' ErrorDesc 
708
		RETURN '-1'
709
	END
710

    
711
	IF (CONVERT(DATETIME, @p_FINISH_DT, 103) < CONVERT(DATETIME, @p_OFFER_DT, 103))
712
	BEGIN
713
		SELECT '-1' AS Result, ''  RET_REPAIR_ID, 
714
			N'Thông tin đề xuất sửa chữa : Ngày dự kiến sửa xong không được nhỏ hơn ngày đề xuất' ErrorDesc
715
		RETURN '-1'
716
	END
717

    
718
	IF (CONVERT(DATETIME, @p_REPAIR_DT, 103) < CONVERT(DATETIME, @p_OFFER_DT, 103))
719
	BEGIN
720
		SELECT '-1' AS Result, ''  RET_REPAIR_ID, 
721
			N'Thông tin sửa chữa thực tế : Ngày sửa chữa không được nhỏ hơn ngày đề xuất' ErrorDesc
722
		RETURN '-1'
723
	END
724

    
725
BEGIN TRANSACTION
726

    
727
	IF(EXISTS (SELECT * FROM RET_REPAIR WHERE RP_ID = @p_RET_REPAIR_ID AND AUTH_STATUS = 'A'))
728
	BEGIN
729
		--------------------CẬP NHẬT LẠI SAU KHI ĐÃ DUYỆT----------------
730
		SET @p_CHECKER_ID = NULL
731
		SET @p_APPROVE_DT = NULL
732
		SET @p_SEND_APPR_DT = NULL
733
		SET @p_SIGN_DT = NULL
734
	END
735

    
736
		UPDATE RET_REPAIR 
737
		SET [RET_ID] = @p_RET_ID,
738
		[ASSET_ID] = @p_ASSET_ID,
739
		[ASSET_NAME] = @p_ASSET_NAME,
740
		[OFFER_NO] = @p_OFFER_NO,
741
		[OFFER_DT] = CONVERT(DATETIME, @p_OFFER_DT, 103),
742
		[FINISH_DT] = CONVERT(DATETIME, @p_FINISH_DT, 103),
743
		[OFFER_REP_DIVISION] = @p_OFFER_REP_DIVISION,
744
		[OFFER_BRANCH] = @p_OFFER_BRANCH,
745
		[OFFER_PERSON] = @p_OFFER_PERSON,
746
		[OFFER_AMT] = @p_OFFER_AMT,
747
		[OFFER_REASON] = @p_OFFER_REASON,
748
		[OFFER_CONTENT] = @p_OFFER_CONTENT,
749
		[OFFER_NOTE] = @p_OFFER_NOTE,
750
		[OFFER_STATUS] = '1',
751
		[REPAIR_DT] = CONVERT(DATETIME, @p_REPAIR_DT, 103),
752
		[REPAIR_DIVISION] = @p_REPAIR_DIVISION,
753
		[REPAIR_AMT] = @p_REPAIR_AMT,
754
		[REPAIR_CONTENT] = @p_REPAIR_CONTENT,
755
		[REPAIR_NOTE] = @p_REPAIR_NOTE,
756
		[ISLEAF] = @p_ISLEAF,
757
		[PARENT_ID] = @p_PARENT_ID,
758
		[NOTES] = @p_NOTES,
759
		[RECORD_STATUS] = @p_RECORD_STATUS,
760
		[MAKER_ID] = @p_MAKER_ID,
761
		[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),
762
		[AUTH_STATUS] = @p_AUTH_STATUS,
763
		[CHECKER_ID] = @p_CHECKER_ID,
764
		[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103), 
765
		[PERFORMANCE] = @p_PERFORMANCE,
766
		[IS_SEND_APPR] = @p_IS_SEND_APPR,
767
		[SEND_APPR_DT] = CONVERT(DATETIME, @p_SEND_APPR_DT, 103),
768
		[SIGN_USER] = @p_SIGN_USER,
769
		[SIGN_DT] = CONVERT(DATETIME, @p_SIGN_DT, 103)
770

    
771
WHERE   RP_ID = @p_RET_REPAIR_ID
772
		IF @@Error <> 0 GOTO ABORT
773

    
774
		---------------BAODNQ : TH NGƯỜI TẠO CẬP NHẬT NHIỀU LẦN THÌ CHỈ LƯU LỊCH SỬ XỬ LÝ CẬP NHẬT GẦN NHẤT----------------
775
		IF((SELECT TOP 1 PROCESS_ID FROM PL_PROCESS WHERE REQ_ID = @p_RET_REPAIR_ID ORDER BY APPROVE_DT DESC) = 'UPDATE')
776
		BEGIN
777
			WITH RESULT AS(
778
				SELECT TOP 1 * FROM PL_PROCESS WHERE REQ_ID = @p_RET_REPAIR_ID
779
				ORDER BY APPROVE_DT DESC
780
			)
781
			DELETE FROM RESULT
782
		END
783

    
784
		--------BAODNQ 15/02/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
785
		INSERT INTO dbo.PL_PROCESS
786
				(
787
					REQ_ID,
788
					PROCESS_ID,
789
					CHECKER_ID,
790
					APPROVE_DT,
791
					PROCESS_DESC,
792
					NOTES
793
				)
794
				VALUES
795
				(	@p_RET_REPAIR_ID,       
796
					'UPDATE',
797
					@p_MAKER_ID,        
798
					GETDATE(), 
799
					N'Cập nhật thông tin sửa chữa BĐS thành công' ,      
800
					N'Cập nhật thông tin sửa chữa BĐS'       
801
				)
802
		IF @@ERROR <> 0 GOTO ABORT
803

    
804

    
805
COMMIT TRANSACTION
806
		SELECT '0' as Result, @p_RET_REPAIR_ID  RP_ID, '' ErrorDesc
807
		RETURN '0'
808
ABORT:
809
BEGIN
810
		ROLLBACK TRANSACTION
811
		SELECT '-1' as Result, '' RP_ID, '' ErrorDesc
812
		RETURN '-1'
813
End
814

    
815
GO