Project

General

Profile

TR_REQUEST_DOC_MOBILE_Search.txt

Luc Tran Van, 03/31/2023 04:52 PM

 
1
ALTER PROCEDURE dbo.TR_REQUEST_DOC_MOBILE_Search
2
@p_REQ_ID	varchar(15)  = NULL,
3
@p_REQ_CODE	varchar(50)  = NULL,
4
@p_PL_REQ_CODE	varchar(50)  = NULL,
5
@p_REQ_NAME	nvarchar(200)  = NULL,
6
@p_REQ_DT	varchar(30) = NULL,--
7
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
8
@p_TOTAL_AMT	decimal = NULL,
9
@p_NOTES	nvarchar(1000)  = NULL,
10
@p_RECORD_STATUS	varchar(1)  = NULL,
11
@p_MAKER_ID	varchar(12)  = NULL,
12
@p_CREATE_DT	varchar(30) = NULL,--
13
@p_AUTH_STATUS	varchar(50)  = NULL,
14
@p_CHECKER_ID	varchar(12)  = NULL,
15
@p_APPROVE_DT	varchar(30) = NULL,--
16
@p_BRANCH_DO VARCHAR(15) = NULL,
17
@p_BRANCH_CREATE VARCHAR(15) = NULL,
18
@p_USER_REQUEST VARCHAR(15) = NULL,
19
@p_BRANCH_LOGIN VARCHAR(15)=NULL,
20
@p_TLNAME_USER VARCHAR(20)=NULL,
21
@p_ROLE_USER VARCHAR(20),
22
@p_TOP	INT = 10,
23
@p_PROCESS_STATUS varchar(50) = NULL,
24
@p_FR_DATE varchar(30) = NULL,--
25
@p_TO_DATE varchar(30) = NULL,--
26
@p_TYPE VARCHAR(15),
27
@p_TYPE_TRANFER VARCHAR(15)=NULL,
28
@p_YEAR INT = NULL,
29
@p_IS_TRANSFER VARCHAR(10) = NULL,
30
@p_NGUOIXULY NVARCHAR(15) = NULL,
31
@p_IS_KT bit = NULL,
32
@p_PL_REQ_ID VARCHAR(20)=NULL,
33
------------------BAODNQ 21/10/2022 : TRUYỀN THÊM DEP_CREATE
34
@p_DEP_CREATE VARCHAR(15) = NULL
35

    
36
AS
37
BEGIN -- PAGING
38
	IF(@p_ROLE_USER ='KTT')
39
		SET @p_ROLE_USER ='GDDV'
40
	DECLARE @DEP_ID VARCHAR(15),@BRANCH_TYPE VARCHAR(20)
41
	DECLARE
42
	@COST_ID TABLE (
43
		COST_ID VARCHAR(15),
44
		DVDM_ID VARCHAR(15)
45
	)
46
	SET @DEP_ID =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME_USER)
47
	INSERT INTO @COST_ID
48
	SELECT DT.COST_ID,PC.DVDM_ID FROM dbo.PL_COSTCENTER_DT DT
49
	LEFT JOIN dbo.PL_COSTCENTER PC ON PC.COST_ID=DT.COST_ID
50
	WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN
51

    
52
	SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE  BRANCH_ID=@p_BRANCH_LOGIN)
53
	IF(EXISTS(SELECT DEP_ID FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_ID AND DEP_CODE LIKE '069%'))
54
		SET @BRANCH_TYPE='HS'
55

    
56
	----NGUOI XU LY 18022021
57
		DECLARE @lstREQUEST TABLE (
58
			REQ_ID VARCHAR(20),
59
			PROCESS_ID VARCHAR(50),
60
			DVDM_NAME NVARCHAR(200),
61
			TLNAME VARCHAR(200),
62
			TLFullName NVARCHAR(200),
63
			NOTES NVARCHAR(200)
64
		)
65
	INSERT INTO @lstREQUEST
66
	( REQ_ID,PROCESS_ID, DVDM_NAME,TLNAME,TLFullName, NOTES)	
67
	SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES 	
68
	FROM
69
	(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC
70
	WHERE EXISTS(SELECT TRD.REQ_ID FROM dbo.TR_REQUEST_DOC TRD WHERE TRD.REQ_ID=PRC.REQ_ID) 
71
	AND PRC.PROCESS_ID ='DMMS' AND PRC.STATUS='C'
72
	) PL
73
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
74
	LEFT JOIN dbo.TR_REQUEST_DOC TR ON TR.REQ_ID=PL.REQ_ID
75
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
76
	LEFT JOIN 
77
	(
78
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
79
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
80
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
81
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
82
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
83
	LEFT JOIN 
84
	(
85
		SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DMMS_ID 
86
		FROM
87
		(
88
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
89
		dbo.TL_USER TS 
90
		UNION ALL
91
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
92
		dbo.TL_SYS_ROLE_MAPPING TM
93
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
94
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
95
		) TU
96
		LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
97
		LEFT JOIN(
98
		SELECT PC.DMMS_ID,PC.DEP_ID,PC.BRANCH_ID FROM dbo.CM_DMMS PC
99
		UNION ALL
100
		SELECT DVDM.DVDM_ID AS DMMS_ID,DVDM.DEP_ID,DVDM.BRANCH_ID  FROM 
101
		(
102
			SELECT CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID FROM dbo.CM_DVDM CD
103
			LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
104
			LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID = PC.COST_ID
105
			WHERE CD.IS_KHOI <>1
106
			GROUP BY CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID
107
		) DVDM
108
		) Temp ON (Temp.DEP_ID=TU.SECUR_CODE OR CB.BRANCH_TYPE<>'HS') AND Temp.BRANCH_ID=TU.TLSUBBRID
109
	) TempU ON (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.DMMS_ID=TR.DMMS_ID) AND TempC.ID IS NULL	
110
	WHERE PL.STATUS='C'	
111
	UNION ALL
112
	SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES 
113
	FROM
114
	(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC
115
	WHERE EXISTS(SELECT TRD.REQ_ID FROM dbo.TR_REQUEST_DOC TRD WHERE TRD.REQ_ID=PRC.REQ_ID) 
116
	AND PRC.PROCESS_ID <>'DMMS' AND PRC.PROCESS_ID <> 'NEW' AND PRC.PROCESS_ID <>'APPROVE' 
117
	AND PRC.STATUS='C' AND (PRC.IS_HAS_CHILD=0 OR PRC.IS_HAS_CHILD IS NULL)
118
	) PL
119
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
120
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
121
	LEFT JOIN 
122
	(
123
	SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
124
	FROM (
125
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
126
		dbo.TL_USER TS 
127
		UNION ALL
128
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
129
		dbo.TL_SYS_ROLE_MAPPING TM
130
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
131
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
132
		) TU
133
	LEFT JOIN
134
		(
135
		SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
136
		LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID
137
		) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
138
	) TempU ON (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
139
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
140
	AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
141
	WHERE  STATUS='C'
142
	UNION ALL
143
		SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES 
144
		FROM 
145
	(SELECT * FROM dbo.PL_REQUEST_PROCESS PRC
146
	WHERE EXISTS(SELECT TRD.REQ_ID FROM dbo.TR_REQUEST_DOC TRD WHERE TRD.REQ_ID=PRC.REQ_ID) 
147
	AND PRC.PROCESS_ID <>'DMMS' AND PRC.PROCESS_ID <> 'NEW' AND PRC.PROCESS_ID <>'APPROVE' 
148
	AND PRC.STATUS='C' AND PRC.IS_HAS_CHILD=1 
149
	) PL
150
	LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
151
	LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
152
	LEFT JOIN 
153
	(
154
	SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC 
155
	LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
156
	WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
157
	)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
158
	LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
159
	LEFT JOIN 
160
	(
161
	SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID 
162
	FROM       (
163
		SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
164
		dbo.TL_USER TS 
165
		UNION ALL
166
		SELECT  TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
167
		dbo.TL_SYS_ROLE_MAPPING TM
168
		LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
169
		WHERE  CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
170
		)  TU 
171
	LEFT JOIN(
172
	SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC 
173
	LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
174
	) TempU ON  (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='') 
175
	AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='') 
176
	AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
177
	WHERE  PL.STATUS='C'
178

    
179
	----
180

    
181
	IF(@P_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0 OR @P_TOP>0)
182
	BEGIN
183
		-- PAGING BEGIN
184
		SELECT A.REQ_ID,A.REQ_CODE,A.REQ_REASON,A.TOTAL_AMT,N'Chờ duyệt' AS AUTH_STATUS_NAME, 'U' AS AUTH_STATUS
185

    
186
		-- SELECT END
187
		FROM TR_REQUEST_DOC A 	
188
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C'
189
		LEFT JOIN PL_REQUEST_DOC PLRD ON PLRD.REQ_ID = A.PL_REQ_ID
190
		
191
		WHERE 1 = 1
192
		AND(@p_YEAR IS NULL OR YEAR(A.REQ_DT)=@p_YEAR OR @p_YEAR = '' OR @p_YEAR IS NULL OR @p_YEAR = 0)
193
	    AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
194
		AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
195
		AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
196
		AND(@p_FR_DATE IS NULL OR CAST(A.REQ_DT AS DATE) >= CONVERT(DATETIME, @p_FR_DATE, 103))
197
		AND(@p_TO_DATE IS NULL OR CAST(A.REQ_DT AS DATE) <= CONVERT(DATETIME, @p_TO_DATE, 103))
198
		AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
199
		AND A.RECORD_STATUS = '1'
200
		AND (PLRD.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '') 
201
	  AND (EXISTS(SELECT * FROM @lstREQUEST LSTRQ WHERE A.REQ_ID = LSTRQ.REQ_ID AND LSTRQ.TLNAME = @p_TLNAME_USER))
202
    AND ((PLRP.STATUS = 'C' AND PLRP.PROCESS_ID = 'SIGN' AND A.SIGN_USER = @p_TLNAME_USER) OR PLRP.STATUS = 'C' AND PLRP.PROCESS_ID <> 'SIGN')
203
	--	AND (PLRP.IS_HAS_CHILD = '0' OR PLRP.IS_HAS_CHILD IS NULL OR (EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD PLRPC WHERE PLRPC.PROCESS_ID = PLRP.ID AND PLRPC.TLNAME = @p_TLNAME_USER AND PLRPC.LEVEL_JOB = '1' AND PLRPC.STATUS_JOB = 'C')))
204
    AND (PLRP.IS_HAS_CHILD = '0' OR PLRP.IS_HAS_CHILD IS NULL OR (EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD PLRPC WHERE PLRPC.PROCESS_ID = PLRP.ID AND PLRPC.TLNAME = @p_TLNAME_USER AND PLRPC.STATUS_JOB = 'C' AND EXISTS(SELECT ID FROM PL_REQUEST_PROCESS_CHILD PLRPCC WHERE  PLRPCC.PROCESS_ID = PLRP.ID AND PLRPCC.TYPE_JOB = 'XL' AND PLRPCC.STATUS_JOB = 'P'))))
205
		ORDER BY A.CREATE_DT DESC
206
		-- PAGING END
207
	END
208
END -- PAGING