Project

General

Profile

TR_REQUEST_JOB_FORM_Search.txt

Luc Tran Van, 04/18/2023 02:09 PM

 
1
-- PROCEDURE NAME: TR_REQUEST_JOB_FORM_Search
2

    
3
DECLARE @p_REF_ID varchar(15) = NULL,
4
@p_REQ_ID varchar(15) = NULL,
5
@p_REQ_CODE varchar(15) = NULL,
6
@p_MAKER_ID varchar(15) = NULL,
7
@p_AUTH_STATUS varchar(1) = N'M',
8
@p_REQ_REASON nvarchar(MAX) = NULL,
9
@p_REQ_DESC nvarchar(MAX) = NULL,
10
@p_NOTES nvarchar(MAX) = NULL,
11
@p_REQ_TYPE_TRANS varchar(15) = NULL,
12
@p_REQ_TYPE_GROUP varchar(15) = NULL,
13
@p_REQ_TYPE_BOOKING_HOTEL varchar(15) = NULL,
14
@p_REQ_TYPE_BOOKING_AIR varchar(15) = NULL,
15
@p_REQ_TYPE_BOOKING_TRAIN varchar(15) = NULL,
16
@p_CREATE_DT varchar(20) = NULL,
17
@p_CHECKER_ID varchar(15) = NULL,
18
@p_APPROVE_DT varchar(20) = NULL,
19
@p_FRMDATE varchar(20) = NULL,
20
@p_TODATE varchar(20) = NULL,
21
@p_USER_LOGIN varchar(50) = N'vanpt2',
22
@p_DEP_CREATE varchar(15) = NULL,
23
@p_BRANCH_CREATE varchar(15) = NULL,
24
@p_BRANCH_ID varchar(15) = NULL,
25
@p_TOP int = 300
26

    
27
	DECLARE @LST_ROLE TABLE(ROLENAME VARCHAR(20),BRANCH_ID VARCHAR(20),DEP_ID VARCHAR(20),DVCM VARCHAR(20))
28
	INSERT INTO @LST_ROLE (ROLENAME,BRANCH_ID,DEP_ID) (SELECT C.DisplayName,A.TLSUBBRID,A.DEP_ID FROM TL_USER A JOIN AbpUserRoles B ON B.UserId = A.ID JOIN AbpRoles C ON C.Id=B.RoleId WHERE A.TLNANME =@p_USER_LOGIN)
29
	INSERT INTO @LST_ROLE (ROLENAME,BRANCH_ID,DEP_ID) (SELECT ROLE_NEW,BRANCH_ID,DEP_ID FROM dbo.TL_SYS_ROLE_MAPPING WHERE  CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) AND TLNAME=@p_USER_LOGIN)
30
    UPDATE @LST_ROLE SET BRANCH_ID='', DEP_ID='',DVCM=(SELECT cd.KHOI_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=(SELECT tu.DEP_ID FROM TL_USER tu WHERE tu.TLNANME=@p_USER_LOGIN))
31
    WHERE ROLENAME='GDK'
32
	IF(@p_TOP IS NULL OR @p_TOP = 0)
33
	BEGIN
34
		-- PAGING BEGIN
35
BEGIN
36
SELECT COUNT(*) -- SELECT END
37
		FROM TR_REQUEST_JOB_FORM A 
38
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
39
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
40
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
41
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
42
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
43
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
44
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
45
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') AND NOT (Temp.STATUS='R' AND Temp.PROCESS_ID='APPNEW'))
46
		WHERE 1 = 1
47
			AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' OR  @p_REF_ID IS NULL OR @p_REF_ID = '')
48
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
49
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
50
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
51
--          
52
--      		OR (@p_AUTH_STATUS='M' AND (EXISTS(SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value =@p_USER_LOGIN) OR EXISTS (SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value IN(SELECT ROLENAME FROM @LST_ROLE WHERE (BRANCH_ID=RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID ='') AND (DEP_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID='')))))
53
--      		OR (@p_AUTH_STATUS='M' AND EXISTS(SELECT 1 FROM FN_GET_USER_MANAGER_BY_DVCM(RPN.DVDM_ID,RPN.ROLE_USER) WHERE TLNANME =@p_USER_LOGIN))
54
--          OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
55
--      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
56
AND (A.AUTH_STATUS = @p_AUTH_STATUS 
57
          
58
      		OR (@p_AUTH_STATUS='M' AND (EXISTS(SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value =@p_USER_LOGIN) OR EXISTS (SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value IN(SELECT ROLENAME FROM @LST_ROLE WHERE (BRANCH_ID=RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID ='') AND (DEP_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID='')))))
59
      	    OR (@p_AUTH_STATUS='M' AND EXISTS(SELECT 1 FROM @LST_ROLE tmp WHERE RPN.DVDM_ID=tmp.DVCM AND RPN.ROLE_USER=tmp.ROLENAME))
60
          OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
61
      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
62
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
63
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
64
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
65
			AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
66
            AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL) 
67
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
68
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
69
			AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
70
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
71
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
72
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
73
            OR(A.REQ_CODE=@p_REQ_CODE AND A.AUTH_STATUS='A')
74
            OR(EXISTS(SELECT 1 FROM @LST_ROLE tmp3 LEFT JOIN CM_BRANCH tmp4 ON tmp3.BRANCH_ID = tmp4.BRANCH_ID LEFT JOIN CM_DEPARTMENT cd ON tmp3.DEP_ID = cd.DEP_ID WHERE A.REQ_CODE LIKE+'AFT-'+tmp4.BRANCH_CODE+'%' AND (a.BRANCH_CREATE<>'DV0001' OR (A.BRANCH_CREATE='DV0001' AND A.DEP_CREATE=tmp3.DEP_ID))))
75
           	OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
76
			OR  (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'NVDV') AND A.PROCESS_ID NOT IN('NEW')) -- ng login là chuyên viên đặt vé
77
			OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y' AND A.PROCESS_ID ='SEND' OR RPN.PROCESS_ID='SIGN_APP')  --- ng login là cấp duyệt trung gian và đã gửi YC phê duyệt
78
			OR (A.IS_SEND_APPR = 'Y' AND (A.PROCESS_ID ='SEND' OR RPN.PROCESS_ID='SIGN_APP') AND (EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE ROLE_ID=A.SIGN_USER)))  --- ng login là cấp duyệt trung gian TKTGD và đã gửi YC phê duyệt
79
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('GDV','KSV')) AND A.AUTH_STATUS='A')
80
            OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('NVMS','NVTT', 'GDV_DVKD', 'KSV_DVKD') AND ((BRANCH_ID=D.TLSUBBRID AND D.TLSUBBRID<>'DV0001') OR (D.TLSUBBRID='DV0001'AND D.TLSUBBRID=DEP_ID))) AND A.AUTH_STATUS='A')
81
      
82
      OR	(EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE ROLE_ID =RPN.ROLE_USER AND (BRANCH_ID =RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID='') AND (DEPT_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID ='')))
83
			OR	((EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE BRANCH_ID =D.TLSUBBRID AND DEPT_ID=D.DEP_ID)) --- ng login là trưởng ĐV và đã gửi YC phê duyệt
84
				AND A.IS_SEND_APPR = 'Y'
85
				AND	(
86
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
87
					)
88
				)
89
			)
90

    
91
			
92
		;WITH QUERY_DATA AS ( 
93
		SELECT A.REQ_ID, A.REQ_CODE, A.REQ_DT, A.REF_ID, A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS, A.CHECKER_ID, A.APPROVE_DT, A.REQ_REASON, A.REQ_DESC, A.NOTES, 
94
		A.REQ_TYPE_TRANS, A.REQ_TYPE_GROUP,  A.REQ_TYPE_BOOKING_HOTEL, A.REQ_TYPE_BOOKING_AIR, A.REQ_TYPE_BOOKING_TRAIN, A.SENDER_ID, A.SEND_DT, 
95
		A.SIGN_USER, A.SIGN_DT, A.PROCESS_ID, A.BRANCH_CREATE, A.DEP_CREATE, A.BRANCH_ID AS BRANCH_NAME,  A.DEP_ID, 
96
		BR_CR.BRANCH_NAME AS BRANCH_CREATE_NAME, DP_CR.DEP_NAME AS DEP_CREATE_NAME, A.FRMDATE, A.TODATE,C.AUTH_STATUS_NAME AS AUTH_STATUS_PROCESS_NAME,D.TLFullName AS EMP_NAME,RPN.NOTES AS PROCESS_STATUS_NEXT,
97
		(CASE 
98
		WHEN (A.PROCESS_ID ='SIGN' OR RPN.PROCESS_ID ='TDV_APP') AND EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES (@p_USER_LOGIN)WHERE ROLE_ID =RPN.ROLE_USER AND (BRANCH_ID =RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID='') AND (DEPT_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID ='')) THEN 'Y'
99
		WHEN ((A.PROCESS_ID  = 'SEND' OR RPN.PROCESS_ID ='SIGN_APP') AND A.SIGN_USER=@p_USER_LOGIN OR EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE ROLE_ID = A.SIGN_USER)) THEN 'Y'
100
		ELSE 'N' 
101
		END) AS IS_APPROVE,
102
		(CASE 
103
		WHEN (A.PROCESS_ID ='SIGN' OR RPN.PROCESS_ID ='TDV_APP') AND RPN.ROLE_USER<>'PTGD' AND RPN.ROLE_USER<>'GDK' THEN (STUFF((SELECT DISTINCT ', ' + RE.TLNANME FROM FN_GET_USER_BY_ROLE(RPN.ROLE_USER,RPN.BRANCH_ID,RPN.DEP_ID) RE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
104
    WHEN (A.PROCESS_ID ='SIGN' OR RPN.PROCESS_ID ='TDV_APP') AND (RPN.ROLE_USER='PTGD' OR RPN.ROLE_USER='GDK') THEN (STUFF((SELECT DISTINCT ', ' + RE.TLNANME FROM FN_GET_USER_MANAGER_BY_DVCM(RPN.DVDM_ID,RPN.ROLE_USER) RE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
105
    WHEN ((A.PROCESS_ID  = 'SEND' OR RPN.PROCESS_ID ='SIGN_APP') AND A.SIGN_USER = 'TKTGD' ) THEN (STUFF((SELECT DISTINCT ', ' + RE.TLNANME FROM FN_GET_USER_BY_ROLE('TKTGD','','') RE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
106
		WHEN ((A.PROCESS_ID  = 'SEND' OR RPN.PROCESS_ID ='SIGN_APP') AND A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'TKTGD' ) THEN A.SIGN_USER
107
		WHEN (A.PROCESS_ID IN ('APPNEW','MAKER_CONF','TDV_APP')) THEN (STUFF((SELECT DISTINCT ', ' + RE.TLNANME FROM FN_GET_USER_BY_ROLE('NVDV',RPN.BRANCH_ID,'') RE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
108
		WHEN A.PROCESS_ID='APPROVE' THEN ''
109
		WHEN A.PROCESS_ID='CANCEL' THEN ''
110
		ELSE CASE WHEN A.EMP_ID <> A.MAKER_ID THEN CONCAT(A.MAKER_ID,', ',A.EMP_ID) ELSE A.MAKER_ID END
111
		END) AS NGUOIXULY, A.FROM_DATE, A.TO_DATE, F.TLFullName + ' - ' + F.TLNANME AS MAKER_NAME
112
		, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
113
) AS __ROWNUM-- SELECT END
114
		FROM TR_REQUEST_JOB_FORM A 
115
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
116
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
117
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
118
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
119
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
120
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
121
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
122
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') AND NOT (Temp.STATUS='R' AND Temp.PROCESS_ID='APPNEW'))
123
		WHERE 1 = 1
124
			AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' OR  @p_REF_ID IS NULL OR @p_REF_ID = '')
125
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
126
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
127
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
128
--          
129
--      		OR (@p_AUTH_STATUS='M' AND (EXISTS(SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value =@p_USER_LOGIN) OR EXISTS (SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value IN(SELECT ROLENAME FROM @LST_ROLE WHERE (BRANCH_ID=RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID ='') AND (DEP_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID='')))))
130
--      		OR (@p_AUTH_STATUS='M' AND EXISTS(SELECT 1 FROM FN_GET_USER_MANAGER_BY_DVCM(RPN.DVDM_ID,RPN.ROLE_USER) WHERE TLNANME =@p_USER_LOGIN))
131
--          OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
132
--      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
133
AND (A.AUTH_STATUS = @p_AUTH_STATUS 
134
          
135
      		OR (@p_AUTH_STATUS='M' AND (EXISTS(SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value =@p_USER_LOGIN) OR EXISTS (SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value IN(SELECT ROLENAME FROM @LST_ROLE WHERE (BRANCH_ID=RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID ='') AND (DEP_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID='')))))
136
      	    OR (@p_AUTH_STATUS='M' AND EXISTS(SELECT 1 FROM @LST_ROLE tmp WHERE RPN.DVDM_ID=tmp.DVCM AND RPN.ROLE_USER=tmp.ROLENAME))
137
          OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
138
      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
139
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
140
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
141
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
142
			AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
143
            AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL) 
144
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
145
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
146
			AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
147
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
148
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
149
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
150
            OR(A.REQ_CODE=@p_REQ_CODE AND A.AUTH_STATUS='A')
151
            OR(EXISTS(SELECT 1 FROM @LST_ROLE tmp3 LEFT JOIN CM_BRANCH tmp4 ON tmp3.BRANCH_ID = tmp4.BRANCH_ID LEFT JOIN CM_DEPARTMENT cd ON tmp3.DEP_ID = cd.DEP_ID WHERE A.REQ_CODE LIKE+'AFT-'+tmp4.BRANCH_CODE+'%' AND (a.BRANCH_CREATE<>'DV0001' OR (A.BRANCH_CREATE='DV0001' AND A.DEP_CREATE=tmp3.DEP_ID))))
152
           	OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
153
			OR  (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'NVDV') AND A.PROCESS_ID NOT IN('NEW')) -- ng login là chuyên viên đặt vé
154
			OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y' AND A.PROCESS_ID ='SEND' OR RPN.PROCESS_ID='SIGN_APP')  --- ng login là cấp duyệt trung gian và đã gửi YC phê duyệt
155
			OR (A.IS_SEND_APPR = 'Y' AND (A.PROCESS_ID ='SEND' OR RPN.PROCESS_ID='SIGN_APP') AND (EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE ROLE_ID=A.SIGN_USER)))  --- ng login là cấp duyệt trung gian TKTGD và đã gửi YC phê duyệt
156
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('GDV','KSV')) AND A.AUTH_STATUS='A')
157
            OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('NVMS','NVTT', 'GDV_DVKD', 'KSV_DVKD') AND ((BRANCH_ID=D.TLSUBBRID AND D.TLSUBBRID<>'DV0001') OR (D.TLSUBBRID='DV0001'AND D.TLSUBBRID=DEP_ID))) AND A.AUTH_STATUS='A')
158
      
159
      OR	(EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE ROLE_ID =RPN.ROLE_USER AND (BRANCH_ID =RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID='') AND (DEPT_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID ='')))
160
			OR	((EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE BRANCH_ID =D.TLSUBBRID AND DEPT_ID=D.DEP_ID)) --- ng login là trưởng ĐV và đã gửi YC phê duyệt
161
				AND A.IS_SEND_APPR = 'Y'
162
				AND	(
163
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
164
					)
165
				)
166
			)
167

    
168
			
169
		) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
170
END-- PAGING END
171
	END
172
ELSE
173
	BEGIN
174
	-- PAGING BEGIN
175
BEGIN
176
SELECT COUNT(*) FROM(
177
		SELECT TOP(@p_TOP) A.REQ_ID, A.REQ_CODE, A.REQ_DT, A.REF_ID, A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS, A.CHECKER_ID, A.APPROVE_DT, 
178
		A.REQ_REASON, A.REQ_DESC, A.NOTES, A.REQ_TYPE_TRANS, A.REQ_TYPE_GROUP, A.REQ_TYPE_BOOKING_HOTEL, A.REQ_TYPE_BOOKING_AIR, A.REQ_TYPE_BOOKING_TRAIN, 
179
		A.SENDER_ID, A.SEND_DT, A.SIGN_USER, A.SIGN_DT, A.PROCESS_ID, A.BRANCH_CREATE, A.DEP_CREATE, A.BRANCH_ID AS BRANCH_NAME, A.DEP_ID, 
180
		BR_CR.BRANCH_NAME AS BRANCH_CREATE_NAME, DP_CR.DEP_NAME AS DEP_CREATE_NAME, A.FRMDATE, A.TODATE,C.AUTH_STATUS_NAME AS AUTH_STATUS_PROCESS_NAME,D.TLFullName AS EMP_NAME,RPN.NOTES AS PROCESS_STATUS_NEXT,
181
		(CASE 
182
		WHEN (A.PROCESS_ID ='SIGN' OR RPN.PROCESS_ID ='TDV_APP') AND EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES (@p_USER_LOGIN)WHERE ROLE_ID =RPN.ROLE_USER AND (BRANCH_ID =RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID='') AND (DEPT_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID ='')) THEN 'Y'
183
		WHEN ((A.PROCESS_ID  = 'SEND' OR RPN.PROCESS_ID ='SIGN_APP') AND A.SIGN_USER=@p_USER_LOGIN OR EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE ROLE_ID = A.SIGN_USER)) THEN 'Y'
184
		ELSE 'N' 
185
		END) AS IS_APPROVE,
186
		(CASE 
187
		WHEN (A.PROCESS_ID ='SIGN' OR RPN.PROCESS_ID ='TDV_APP') AND RPN.ROLE_USER<>'PTGD' AND RPN.ROLE_USER<>'GDK' THEN (STUFF((SELECT DISTINCT ', ' + RE.TLNANME FROM FN_GET_USER_BY_ROLE(RPN.ROLE_USER,RPN.BRANCH_ID,RPN.DEP_ID) RE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
188
    WHEN (A.PROCESS_ID ='SIGN' OR RPN.PROCESS_ID ='TDV_APP') AND (RPN.ROLE_USER='PTGD' OR RPN.ROLE_USER='GDK') THEN (STUFF((SELECT DISTINCT ', ' + RE.TLNANME FROM FN_GET_USER_MANAGER_BY_DVCM(RPN.DVDM_ID,RPN.ROLE_USER) RE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
189
    WHEN ((A.PROCESS_ID  = 'SEND' OR RPN.PROCESS_ID='SIGN_APP') AND A.SIGN_USER = 'TKTGD' ) THEN (STUFF((SELECT DISTINCT ', ' + RE.TLNANME FROM FN_GET_USER_BY_ROLE('TKTGD','','') RE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
190
		WHEN ((A.PROCESS_ID  = 'SEND' OR RPN.PROCESS_ID='SIGN_APP') AND A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'TKTGD' ) THEN A.SIGN_USER
191
		WHEN (A.PROCESS_ID IN ('APPNEW','MAKER_CONF','TDV_APP')) THEN (STUFF((SELECT DISTINCT ', ' + RE.TLNANME FROM FN_GET_USER_BY_ROLE('NVDV',RPN.BRANCH_ID,'') RE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
192
		WHEN A.PROCESS_ID='CANCEL' THEN ''
193
		WHEN A.PROCESS_ID='APPROVE' THEN ''
194
		ELSE CASE WHEN A.EMP_ID <> A.MAKER_ID THEN CONCAT(A.MAKER_ID,', ',A.EMP_ID) ELSE A.MAKER_ID END
195
		END) AS NGUOIXULY,RPN.ROLE_USER,RPN.DVDM_ID, A.FROM_DATE, A.TO_DATE, F.TLFullName + ' - ' + F.TLNANME AS MAKER_NAME
196
	-- SELECT END
197
		FROM TR_REQUEST_JOB_FORM A 
198
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
199
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
200
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
201
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
202
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
203
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
204
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
205
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') AND NOT (Temp.STATUS='R' AND Temp.PROCESS_ID='APPNEW'))WHERE 1 = 1
206
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
207
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
208
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
209
--      		OR (@p_AUTH_STATUS='M' AND (EXISTS(SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value =@p_USER_LOGIN) OR EXISTS (SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value IN(SELECT ROLENAME FROM @LST_ROLE WHERE (BRANCH_ID=RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID ='') AND (DEP_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID='')))))
210
--          OR (@p_AUTH_STATUS='M' AND EXISTS(SELECT 1 FROM FN_GET_USER_MANAGER_BY_DVCM(RPN.DVDM_ID,RPN.ROLE_USER) WHERE TLNANME =@p_USER_LOGIN))
211
--      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
212
--          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
213
AND (A.AUTH_STATUS = @p_AUTH_STATUS 
214
      		OR (@p_AUTH_STATUS='M' AND (EXISTS(SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value =@p_USER_LOGIN) OR EXISTS (SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value IN(SELECT ROLENAME FROM @LST_ROLE WHERE (BRANCH_ID=RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID ='') AND (DEP_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID='')))))
215
             OR (@p_AUTH_STATUS='M' AND EXISTS(SELECT 1 FROM @LST_ROLE tmp WHERE RPN.DVDM_ID=tmp.DVCM AND RPN.ROLE_USER=tmp.ROLENAME))
216
      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
217
          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
218
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
219
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
220
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
221
			AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
222
            AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL) 
223
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
224
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
225
			AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
226
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
227
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
228
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
229
			AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
230
            AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL) 
231
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
232
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
233
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
234
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
235
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
236
            OR(A.REQ_CODE=@p_REQ_CODE AND A.AUTH_STATUS='A')
237
            OR(EXISTS(SELECT 1 FROM @LST_ROLE tmp3 LEFT JOIN CM_BRANCH tmp4 ON tmp3.BRANCH_ID = tmp4.BRANCH_ID LEFT JOIN CM_DEPARTMENT cd ON tmp3.DEP_ID = cd.DEP_ID WHERE A.REQ_CODE LIKE+'AFT-'+tmp4.BRANCH_CODE+'%' AND (a.BRANCH_CREATE<>'DV0001' OR (A.BRANCH_CREATE='DV0001' AND A.DEP_CREATE=tmp3.DEP_ID))))
238
			OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
239
			OR  (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'NVDV') AND A.PROCESS_ID NOT IN('NEW')) -- ng login là chuyên viên đặt vé
240
			OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y' AND A.PROCESS_ID ='SEND' OR RPN.PROCESS_ID='SIGN_APP')  --- ng login là cấp duyệt trung gian và đã gửi YC phê duyệt
241
			OR (A.IS_SEND_APPR = 'Y' AND (A.PROCESS_ID ='SEND' OR RPN.PROCESS_ID='SIGN_APP') AND (EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE ROLE_ID=A.SIGN_USER)))  --- ng login là cấp duyệt trung gian TKTGD và đã gửi YC phê duyệt
242
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('GDV','KSV')) AND A.AUTH_STATUS='A')
243
            OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('NVMS','NVTT', 'GDV_DVKD', 'KSV_DVKD') AND ((BRANCH_ID=D.TLSUBBRID AND D.TLSUBBRID<>'DV0001') OR (D.TLSUBBRID='DV0001'AND D.TLSUBBRID=DEP_ID))) AND A.AUTH_STATUS='A')
244
      
245
      OR	(EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE ROLE_ID =RPN.ROLE_USER AND (BRANCH_ID =RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID='') AND (DEPT_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID ='')))
246
			OR	((EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE BRANCH_ID =D.TLSUBBRID AND DEPT_ID=D.DEP_ID)) --- ng login là trưởng ĐV và đã gửi YC phê duyệt
247
				AND A.IS_SEND_APPR = 'Y'
248
				AND	(
249
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
250
					)
251
				)
252
			)
253
			ORDER BY  A.CREATE_DT DESC
254
	) COUNTER_TOP;WITH QUERY_DATA AS ( 
255
		SELECT TOP(@p_TOP) A.REQ_ID, A.REQ_CODE, A.REQ_DT, A.REF_ID, A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS, A.CHECKER_ID, A.APPROVE_DT, 
256
		A.REQ_REASON, A.REQ_DESC, A.NOTES, A.REQ_TYPE_TRANS, A.REQ_TYPE_GROUP, A.REQ_TYPE_BOOKING_HOTEL, A.REQ_TYPE_BOOKING_AIR, A.REQ_TYPE_BOOKING_TRAIN, 
257
		A.SENDER_ID, A.SEND_DT, A.SIGN_USER, A.SIGN_DT, A.PROCESS_ID, A.BRANCH_CREATE, A.DEP_CREATE, A.BRANCH_ID AS BRANCH_NAME, A.DEP_ID, 
258
		BR_CR.BRANCH_NAME AS BRANCH_CREATE_NAME, DP_CR.DEP_NAME AS DEP_CREATE_NAME, A.FRMDATE, A.TODATE,C.AUTH_STATUS_NAME AS AUTH_STATUS_PROCESS_NAME,D.TLFullName AS EMP_NAME,RPN.NOTES AS PROCESS_STATUS_NEXT,
259
		(CASE 
260
		WHEN (A.PROCESS_ID ='SIGN' OR RPN.PROCESS_ID ='TDV_APP') AND EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES (@p_USER_LOGIN)WHERE ROLE_ID =RPN.ROLE_USER AND (BRANCH_ID =RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID='') AND (DEPT_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID ='')) THEN 'Y'
261
		WHEN ((A.PROCESS_ID  = 'SEND' OR RPN.PROCESS_ID ='SIGN_APP') AND A.SIGN_USER=@p_USER_LOGIN OR EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE ROLE_ID = A.SIGN_USER)) THEN 'Y'
262
		ELSE 'N' 
263
		END) AS IS_APPROVE,
264
		(CASE 
265
		WHEN (A.PROCESS_ID ='SIGN' OR RPN.PROCESS_ID ='TDV_APP') AND RPN.ROLE_USER<>'PTGD' AND RPN.ROLE_USER<>'GDK' THEN (STUFF((SELECT DISTINCT ', ' + RE.TLNANME FROM FN_GET_USER_BY_ROLE(RPN.ROLE_USER,RPN.BRANCH_ID,RPN.DEP_ID) RE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
266
    WHEN (A.PROCESS_ID ='SIGN' OR RPN.PROCESS_ID ='TDV_APP') AND (RPN.ROLE_USER='PTGD' OR RPN.ROLE_USER='GDK') THEN (STUFF((SELECT DISTINCT ', ' + RE.TLNANME FROM FN_GET_USER_MANAGER_BY_DVCM(RPN.DVDM_ID,RPN.ROLE_USER) RE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
267
    WHEN ((A.PROCESS_ID  = 'SEND' OR RPN.PROCESS_ID='SIGN_APP') AND A.SIGN_USER = 'TKTGD' ) THEN (STUFF((SELECT DISTINCT ', ' + RE.TLNANME FROM FN_GET_USER_BY_ROLE('TKTGD','','') RE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
268
		WHEN ((A.PROCESS_ID  = 'SEND' OR RPN.PROCESS_ID='SIGN_APP') AND A.SIGN_USER IS NOT NULL AND A.SIGN_USER <>'TKTGD' ) THEN A.SIGN_USER
269
		WHEN (A.PROCESS_ID IN ('APPNEW','MAKER_CONF','TDV_APP')) THEN (STUFF((SELECT DISTINCT ', ' + RE.TLNANME FROM FN_GET_USER_BY_ROLE('NVDV',RPN.BRANCH_ID,'') RE FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
270
		WHEN A.PROCESS_ID='CANCEL' THEN ''
271
		WHEN A.PROCESS_ID='APPROVE' THEN ''
272
		ELSE CASE WHEN A.EMP_ID <> A.MAKER_ID THEN CONCAT(A.MAKER_ID,', ',A.EMP_ID) ELSE A.MAKER_ID END
273
		END) AS NGUOIXULY,RPN.ROLE_USER,RPN.DVDM_ID, A.FROM_DATE, A.TO_DATE, F.TLFullName + ' - ' + F.TLNANME AS MAKER_NAME
274
	, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
275
) AS __ROWNUM-- SELECT END
276
		FROM TR_REQUEST_JOB_FORM A 
277
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
278
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
279
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
280
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
281
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
282
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
283
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
284
		ON RPN.ID IN (SELECT TOP 1 Temp.ID FROM dbo.PL_REQUEST_PROCESS Temp WHERE Temp.REQ_ID=A.REQ_ID AND (Temp.STATUS='C' OR Temp.STATUS='R') AND NOT (Temp.STATUS='R' AND Temp.PROCESS_ID='APPNEW'))WHERE 1 = 1
285
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
286
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
287
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
288
--      		OR (@p_AUTH_STATUS='M' AND (EXISTS(SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value =@p_USER_LOGIN) OR EXISTS (SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value IN(SELECT ROLENAME FROM @LST_ROLE WHERE (BRANCH_ID=RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID ='') AND (DEP_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID='')))))
289
--          OR (@p_AUTH_STATUS='M' AND EXISTS(SELECT 1 FROM FN_GET_USER_MANAGER_BY_DVCM(RPN.DVDM_ID,RPN.ROLE_USER) WHERE TLNANME =@p_USER_LOGIN))
290
--      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
291
--          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
292
AND (A.AUTH_STATUS = @p_AUTH_STATUS 
293
      		OR (@p_AUTH_STATUS='M' AND (EXISTS(SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value =@p_USER_LOGIN) OR EXISTS (SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value IN(SELECT ROLENAME FROM @LST_ROLE WHERE (BRANCH_ID=RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID ='') AND (DEP_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID='')))))
294
             OR (@p_AUTH_STATUS='M' AND EXISTS(SELECT 1 FROM @LST_ROLE tmp WHERE RPN.DVDM_ID=tmp.DVCM AND RPN.ROLE_USER=tmp.ROLENAME))
295
      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
296
          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
297
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
298
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
299
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
300
			AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
301
            AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL) 
302
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
303
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
304
			AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
305
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
306
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
307
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
308
			AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @p_FRMDATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
309
            AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL) 
310
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
311
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
312
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
313
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
314
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
315
            OR(A.REQ_CODE=@p_REQ_CODE AND A.AUTH_STATUS='A')
316
            OR(EXISTS(SELECT 1 FROM @LST_ROLE tmp3 LEFT JOIN CM_BRANCH tmp4 ON tmp3.BRANCH_ID = tmp4.BRANCH_ID LEFT JOIN CM_DEPARTMENT cd ON tmp3.DEP_ID = cd.DEP_ID WHERE A.REQ_CODE LIKE+'AFT-'+tmp4.BRANCH_CODE+'%' AND (a.BRANCH_CREATE<>'DV0001' OR (A.BRANCH_CREATE='DV0001' AND A.DEP_CREATE=tmp3.DEP_ID))))
317
			OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
318
			OR  (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'NVDV') AND A.PROCESS_ID NOT IN('NEW')) -- ng login là chuyên viên đặt vé
319
			OR (A.SIGN_USER = @p_USER_LOGIN AND A.IS_SEND_APPR = 'Y' AND A.PROCESS_ID ='SEND' OR RPN.PROCESS_ID='SIGN_APP')  --- ng login là cấp duyệt trung gian và đã gửi YC phê duyệt
320
			OR (A.IS_SEND_APPR = 'Y' AND (A.PROCESS_ID ='SEND' OR RPN.PROCESS_ID='SIGN_APP') AND (EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE ROLE_ID=A.SIGN_USER)))  --- ng login là cấp duyệt trung gian TKTGD và đã gửi YC phê duyệt
321
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('GDV','KSV')) AND A.AUTH_STATUS='A')
322
            OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('NVMS','NVTT', 'GDV_DVKD', 'KSV_DVKD') AND ((BRANCH_ID=D.TLSUBBRID AND D.TLSUBBRID<>'DV0001') OR (D.TLSUBBRID='DV0001'AND D.TLSUBBRID=DEP_ID))) AND A.AUTH_STATUS='A')
323
      
324
      OR	(EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE ROLE_ID =RPN.ROLE_USER AND (BRANCH_ID =RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID='') AND (DEPT_ID=RPN.DEP_ID OR RPN.DEP_ID IS NULL OR RPN.DEP_ID ='')))
325
			OR	((EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN)WHERE BRANCH_ID =D.TLSUBBRID AND DEPT_ID=D.DEP_ID)) --- ng login là trưởng ĐV và đã gửi YC phê duyệt
326
				AND A.IS_SEND_APPR = 'Y'
327
				AND	(
328
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
329
					)
330
				)
331
			)
332
			ORDER BY  A.CREATE_DT DESC
333
	) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
334
END-- PAGING END
335
	END