Project

General

Profile

1.txt

Luc Tran Van, 03/21/2023 11:06 AM

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

    
24
	DECLARE @LST_ROLE TABLE(ROLENAME VARCHAR(20),BRANCH_ID VARCHAR(20),DEP_ID VARCHAR(20),DVCM VARCHAR(20))
25
	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)
26
	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)
27
    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))
28
    WHERE ROLENAME='GDK'
29
	IF(@p_TOP IS NULL OR @p_TOP = 0)
30
	BEGIN
31
		-- PAGING BEGIN
32
BEGIN
33
SELECT COUNT(*) -- SELECT END
34
		FROM TR_REQUEST_JOB_FORM A 
35
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
36
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
37
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
38
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
39
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
40
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
41
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
42
		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'))
43
		WHERE 1 = 1
44
			AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' OR  @p_REF_ID IS NULL OR @p_REF_ID = '')
45
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
46
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
47
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
48
--          
49
--      		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='')))))
50
--      		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))
51
--          OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
52
--      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
53
AND (A.AUTH_STATUS = @p_AUTH_STATUS 
54
          
55
      		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='')))))
56
      	    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))
57
          OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
58
      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
59
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
60
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
61
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
62
			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)
63
            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) 
64
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
65
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
66
			AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
67
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
68
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
69
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
70
            OR A.REF_ID='AFT000000000000'
71
			OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
72
			OR  (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'NVDV') AND A.PROCESS_ID NOT IN('NEW','SIGN','SEND')) -- ng login là chuyên viên đặt vé
73
			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
74
			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
75
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('NVMS','NVTT', 'GDV_DVKD', 'KSV_DVKD','GDV','KSV')) AND A.AUTH_STATUS='A')
76
      
77
      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 ='')))
78
			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
79
				AND A.IS_SEND_APPR = 'Y'
80
				AND	(
81
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
82
					)
83
				)
84
			)
85

    
86
			
87
		;WITH QUERY_DATA AS ( 
88
		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, 
89
		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, 
90
		A.SIGN_USER, A.SIGN_DT, A.PROCESS_ID, A.BRANCH_CREATE, A.DEP_CREATE, A.BRANCH_ID AS BRANCH_NAME,  A.DEP_ID, 
91
		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,
92
		(CASE 
93
		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'
94
		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'
95
		ELSE 'N' 
96
		END) AS IS_APPROVE,
97
		(CASE 
98
		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, ''))
99
    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, ''))
100
    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, ''))
101
		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
102
		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, ''))
103
		WHEN A.PROCESS_ID='APPROVE' THEN ''
104
		WHEN A.PROCESS_ID='CANCEL' THEN ''
105
		ELSE CASE WHEN A.EMP_ID <> A.MAKER_ID THEN CONCAT(A.MAKER_ID,', ',A.EMP_ID) ELSE A.MAKER_ID END
106
		END) AS NGUOIXULY, A.FROM_DATE, A.TO_DATE, F.TLFullName + ' - ' + F.TLNANME AS MAKER_NAME
107
		, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
108
) AS __ROWNUM-- SELECT END
109
		FROM TR_REQUEST_JOB_FORM A 
110
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
111
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
112
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
113
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
114
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
115
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
116
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
117
		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'))
118
		WHERE 1 = 1
119
			AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' OR  @p_REF_ID IS NULL OR @p_REF_ID = '')
120
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
121
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
122
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
123
--          
124
--      		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='')))))
125
--      		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))
126
--          OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
127
--      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
128
AND (A.AUTH_STATUS = @p_AUTH_STATUS 
129
          
130
      		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='')))))
131
      	    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))
132
          OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
133
      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
134
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
135
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
136
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
137
			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)
138
            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) 
139
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
140
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
141
			AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
142
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
143
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
144
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
145
            OR A.REF_ID='AFT000000000000'
146
			OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
147
			OR  (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'NVDV') AND A.PROCESS_ID NOT IN('NEW','SIGN','SEND')) -- ng login là chuyên viên đặt vé
148
			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
149
			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
150
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('NVMS','NVTT', 'GDV_DVKD', 'KSV_DVKD','GDV','KSV')) AND A.AUTH_STATUS='A')
151
      
152
      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 ='')))
153
			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
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
			
162
		) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
163
END-- PAGING END
164
	END
165
ELSE
166
	BEGIN
167
	-- PAGING BEGIN
168
BEGIN
169
SELECT COUNT(*) FROM(
170
		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, 
171
		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, 
172
		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, 
173
		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,
174
		(CASE 
175
		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'
176
		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'
177
		ELSE 'N' 
178
		END) AS IS_APPROVE,
179
		(CASE 
180
		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, ''))
181
    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, ''))
182
    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, ''))
183
		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
184
		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, ''))
185
		WHEN A.PROCESS_ID='CANCEL' THEN ''
186
		WHEN A.PROCESS_ID='APPROVE' THEN ''
187
		ELSE CASE WHEN A.EMP_ID <> A.MAKER_ID THEN CONCAT(A.MAKER_ID,', ',A.EMP_ID) ELSE A.MAKER_ID END
188
		END) AS NGUOIXULY,RPN.ROLE_USER,RPN.DVDM_ID, A.FROM_DATE, A.TO_DATE, F.TLFullName + ' - ' + F.TLNANME AS MAKER_NAME
189
	-- SELECT END
190
		FROM TR_REQUEST_JOB_FORM A 
191
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
192
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
193
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
194
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
195
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
196
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
197
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
198
		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
199
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
200
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
201
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
202
--      		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='')))))
203
--          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))
204
--      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
205
--          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
206
AND (A.AUTH_STATUS = @p_AUTH_STATUS 
207
      		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='')))))
208
             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))
209
      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
210
          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
211
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
212
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
213
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
214
			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)
215
            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) 
216
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
217
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
218
			AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
219
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
220
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
221
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
222
			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)
223
            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) 
224
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
225
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
226
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
227
            
228
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
229
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
230
            OR A.REF_ID='AFT000000000000'
231
			OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
232
			OR  (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'NVDV') AND A.PROCESS_ID NOT IN('NEW','SIGN','SEND')) -- ng login là chuyên viên đặt vé
233
			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
234
			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
235
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('NVMS','NVTT', 'GDV_DVKD', 'KSV_DVKD','GDV','KSV')) AND A.AUTH_STATUS='A')
236
      
237
      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 ='')))
238
			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
239
				AND A.IS_SEND_APPR = 'Y'
240
				AND	(
241
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
242
					)
243
				)
244
			)
245
			ORDER BY  A.CREATE_DT DESC
246
	) COUNTER_TOP;WITH QUERY_DATA AS ( 
247
		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, 
248
		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, 
249
		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, 
250
		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,
251
		(CASE 
252
		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'
253
		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'
254
		ELSE 'N' 
255
		END) AS IS_APPROVE,
256
		(CASE 
257
		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, ''))
258
    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, ''))
259
    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, ''))
260
		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
261
		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, ''))
262
		WHEN A.PROCESS_ID='CANCEL' THEN ''
263
		WHEN A.PROCESS_ID='APPROVE' THEN ''
264
		ELSE CASE WHEN A.EMP_ID <> A.MAKER_ID THEN CONCAT(A.MAKER_ID,', ',A.EMP_ID) ELSE A.MAKER_ID END
265
		END) AS NGUOIXULY,RPN.ROLE_USER,RPN.DVDM_ID, A.FROM_DATE, A.TO_DATE, F.TLFullName + ' - ' + F.TLNANME AS MAKER_NAME
266
	, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
267
) AS __ROWNUM-- SELECT END
268
		FROM TR_REQUEST_JOB_FORM A 
269
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
270
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
271
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
272
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
273
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
274
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
275
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
276
		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
277
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
278
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
279
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
280
--      		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='')))))
281
--          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))
282
--      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
283
--          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
284
AND (A.AUTH_STATUS = @p_AUTH_STATUS 
285
      		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='')))))
286
             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))
287
      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
288
          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
289
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
290
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
291
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
292
			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)
293
            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) 
294
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
295
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
296
			AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
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.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
305
            
306
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
307
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
308
            OR A.REF_ID='AFT000000000000'
309
			OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
310
			OR  (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'NVDV') AND A.PROCESS_ID NOT IN('NEW','SIGN','SEND')) -- ng login là chuyên viên đặt vé
311
			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
312
			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
313
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('NVMS','NVTT', 'GDV_DVKD', 'KSV_DVKD','GDV','KSV')) AND A.AUTH_STATUS='A')
314
      
315
      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 ='')))
316
			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
317
				AND A.IS_SEND_APPR = 'Y'
318
				AND	(
319
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
320
					)
321
				)
322
			)
323
			ORDER BY  A.CREATE_DT DESC
324
	) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
325
END-- PAGING END
326
	END