Project

General

Profile

1.txt

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

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

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

    
87
			
88
		;WITH QUERY_DATA AS ( 
89
		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, 
90
		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, 
91
		A.SIGN_USER, A.SIGN_DT, A.PROCESS_ID, A.BRANCH_CREATE, A.DEP_CREATE, A.BRANCH_ID AS BRANCH_NAME,  A.DEP_ID, 
92
		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,
93
		(CASE 
94
		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'
95
		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'
96
		ELSE 'N' 
97
		END) AS IS_APPROVE,
98
		(CASE 
99
		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, ''))
100
    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, ''))
101
    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, ''))
102
		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
103
		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, ''))
104
		WHEN A.PROCESS_ID='APPROVE' THEN ''
105
		WHEN A.PROCESS_ID='CANCEL' THEN ''
106
		ELSE CASE WHEN A.EMP_ID <> A.MAKER_ID THEN CONCAT(A.MAKER_ID,', ',A.EMP_ID) ELSE A.MAKER_ID END
107
		END) AS NGUOIXULY, A.FROM_DATE, A.TO_DATE, F.TLFullName + ' - ' + F.TLNANME AS MAKER_NAME
108
		, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
109
) AS __ROWNUM-- SELECT END
110
		FROM TR_REQUEST_JOB_FORM A 
111
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
112
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
113
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
114
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
115
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
116
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
117
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
118
		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'))
119
		WHERE 1 = 1
120
			AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' OR  @p_REF_ID IS NULL OR @p_REF_ID = '')
121
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
122
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
123
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
124
--          
125
--      		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='')))))
126
--      		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))
127
--          OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
128
--      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
129
AND (A.AUTH_STATUS = @p_AUTH_STATUS 
130
          
131
      		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='')))))
132
      	    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))
133
          OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
134
      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
135
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
136
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
137
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
138
			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)
139
            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) 
140
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
141
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
142
			AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
143
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
144
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
145
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
146
            OR A.REF_ID='AFT000000000000'
147
			OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
148
			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é
149
			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
150
			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
151
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('NVMS','NVTT', 'GDV_DVKD', 'KSV_DVKD','GDV','KSV')) AND A.AUTH_STATUS='A')
152
      
153
      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 ='')))
154
			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
155
				AND A.IS_SEND_APPR = 'Y'
156
				AND	(
157
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
158
					)
159
				)
160
			)
161

    
162
			
163
		) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
164
END-- PAGING END
165
	END
166
ELSE
167
	BEGIN
168
	-- PAGING BEGIN
169
BEGIN
170
SELECT COUNT(*) FROM(
171
		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, 
172
		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, 
173
		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, 
174
		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,
175
		(CASE 
176
		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'
177
		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'
178
		ELSE 'N' 
179
		END) AS IS_APPROVE,
180
		(CASE 
181
		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, ''))
182
    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, ''))
183
    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, ''))
184
		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
185
		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, ''))
186
		WHEN A.PROCESS_ID='CANCEL' THEN ''
187
		WHEN A.PROCESS_ID='APPROVE' THEN ''
188
		ELSE CASE WHEN A.EMP_ID <> A.MAKER_ID THEN CONCAT(A.MAKER_ID,', ',A.EMP_ID) ELSE A.MAKER_ID END
189
		END) AS NGUOIXULY,RPN.ROLE_USER,RPN.DVDM_ID, A.FROM_DATE, A.TO_DATE, F.TLFullName + ' - ' + F.TLNANME AS MAKER_NAME
190
	-- SELECT END
191
		FROM TR_REQUEST_JOB_FORM A 
192
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
193
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
194
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
195
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
196
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
197
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
198
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
199
		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
200
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
201
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
202
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
203
--      		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='')))))
204
--          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))
205
--      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
206
--          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
207
AND (A.AUTH_STATUS = @p_AUTH_STATUS 
208
      		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='')))))
209
             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))
210
      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
211
          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
212
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
213
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
214
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
215
			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)
216
            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) 
217
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
218
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
219
			AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
220
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
221
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
222
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
223
			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)
224
            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) 
225
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
226
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
227
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
228
            
229
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
230
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
231
            OR A.REF_ID='AFT000000000000'
232
			OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
233
			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é
234
			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
235
			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
236
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('NVMS','NVTT', 'GDV_DVKD', 'KSV_DVKD','GDV','KSV')) AND A.AUTH_STATUS='A')
237
      
238
      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 ='')))
239
			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
240
				AND A.IS_SEND_APPR = 'Y'
241
				AND	(
242
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
243
					)
244
				)
245
			)
246
			ORDER BY  A.CREATE_DT DESC
247
	) COUNTER_TOP;WITH QUERY_DATA AS ( 
248
		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, 
249
		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, 
250
		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, 
251
		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,
252
		(CASE 
253
		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'
254
		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'
255
		ELSE 'N' 
256
		END) AS IS_APPROVE,
257
		(CASE 
258
		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, ''))
259
    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, ''))
260
    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, ''))
261
		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
262
		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, ''))
263
		WHEN A.PROCESS_ID='CANCEL' THEN ''
264
		WHEN A.PROCESS_ID='APPROVE' THEN ''
265
		ELSE CASE WHEN A.EMP_ID <> A.MAKER_ID THEN CONCAT(A.MAKER_ID,', ',A.EMP_ID) ELSE A.MAKER_ID END
266
		END) AS NGUOIXULY,RPN.ROLE_USER,RPN.DVDM_ID, A.FROM_DATE, A.TO_DATE, F.TLFullName + ' - ' + F.TLNANME AS MAKER_NAME
267
	, ROW_NUMBER() OVER (ORDER BY  A.CREATE_DT DESC
268
) AS __ROWNUM-- SELECT END
269
		FROM TR_REQUEST_JOB_FORM A 
270
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
271
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
272
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
273
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
274
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
275
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
276
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
277
		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
278
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
279
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
280
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
281
--      		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='')))))
282
--          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))
283
--      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
284
--          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
285
AND (A.AUTH_STATUS = @p_AUTH_STATUS 
286
      		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='')))))
287
             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))
288
      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
289
          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
290
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
291
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
292
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
293
			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)
294
            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) 
295
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
296
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
297
			AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
298
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
299
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
300
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
301
			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)
302
            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) 
303
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
304
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
305
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
306
            
307
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
308
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
309
            OR A.REF_ID='AFT000000000000'
310
			OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
311
			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é
312
			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
313
			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
314
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('NVMS','NVTT', 'GDV_DVKD', 'KSV_DVKD','GDV','KSV')) AND A.AUTH_STATUS='A')
315
      
316
      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 ='')))
317
			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
318
				AND A.IS_SEND_APPR = 'Y'
319
				AND	(
320
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
321
					)
322
				)
323
			)
324
			ORDER BY  A.CREATE_DT DESC
325
	) SELECT * FROM QUERY_DATA WHERE __ROWNUM > 0 AND __ROWNUM <= 10
326
END-- PAGING END
327
	END