Project

General

Profile

a.txt

Luc Tran Van, 04/24/2023 11:55 AM

 
1

    
2
ALTER   PROC dbo.TR_REQUEST_JOB_FORM_Search 
3
@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) = NULL,
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_COST_AMOUNT decimal(18) = NULL,
15
@p_REQ_TYPE_BOOKING_AIR varchar(15) = NULL,
16
@p_REQ_TYPE_BOOKING_TRAIN varchar(15) = NULL,
17
@p_CREATE_DT VARCHAR(20) = NULL,
18
@p_CHECKER_ID varchar(15) = NULL,
19
@p_APPROVE_DT VARCHAR(20) = NULL,
20
@p_FRMDATE VARCHAR(20)= NULL,
21
@p_TODATE VARCHAR(20) = NULL,
22
@p_USER_LOGIN VARCHAR(50) =NULL,
23
@p_DEP_CREATE VARCHAR(15) = NULL,
24
@p_BRANCH_CREATE VARCHAR(15) = NULL,
25
@p_BRANCH_ID VARCHAR(15) = NULL,
26
@p_TOP	INT = NULL 
27
AS
28
BEGIN -- PAGING
29
	DECLARE @LST_ROLE TABLE(ROLENAME VARCHAR(20),BRANCH_ID VARCHAR(20),DEP_ID VARCHAR(20),DVCM VARCHAR(20))
30
	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)
31
	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)
32
    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))
33
    WHERE ROLENAME='GDK'
34
	IF(@p_TOP IS NULL OR @p_TOP = 0)
35
	BEGIN
36
		-- PAGING BEGIN
37
		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, 
38
		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, 
39
		A.SIGN_USER, A.SIGN_DT, A.PROCESS_ID, A.BRANCH_CREATE, A.DEP_CREATE, A.BRANCH_ID AS BRANCH_NAME,  A.DEP_ID, 
40
		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,
41
		(CASE 
42
		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'
43
		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'
44
		ELSE 'N' 
45
		END) AS IS_APPROVE,
46
		(CASE 
47
		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, ''))
48
    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, ''))
49
    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, ''))
50
		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
51
		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, ''))
52
		WHEN A.PROCESS_ID='APPROVE' THEN ''
53
		WHEN A.PROCESS_ID='CANCEL' THEN ''
54
		ELSE CASE WHEN A.EMP_ID <> A.MAKER_ID THEN CONCAT(A.MAKER_ID,', ',A.EMP_ID) ELSE A.MAKER_ID END
55
		END) AS NGUOIXULY, A.FROM_DATE, A.TO_DATE, F.TLFullName + ' - ' + F.TLNANME AS MAKER_NAME
56
		-- SELECT END
57
		FROM TR_REQUEST_JOB_FORM A 
58
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
59
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
60
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
61
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
62
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
63
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
64
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
65
		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'))
66
		WHERE 1 = 1
67
			AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' OR  @p_REF_ID IS NULL OR @p_REF_ID = '')
68
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
69
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
70
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
71
--          
72
--      		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='')))))
73
--      		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))
74
--          OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
75
--      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
76
AND (A.AUTH_STATUS = @p_AUTH_STATUS 
77
          
78
      		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='')))))
79
      	     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))
80
            OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
81
          AND EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS prp WHERE prp.REQ_ID=@p_REQ_ID))
82
      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
83
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
84
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
85
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
86
			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)
87
            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) 
88
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
89
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
90
			AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
91
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
92
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
93
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
94
            OR(A.REQ_CODE=@p_REQ_CODE AND A.AUTH_STATUS='A')
95
            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))))
96
           	OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
97
			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é
98
			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
99
			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
100
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('GDV','KSV')) AND A.AUTH_STATUS='A')
101
            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')
102
      
103
      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 ='')))
104
			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
105
				AND A.IS_SEND_APPR = 'Y'
106
				AND	(
107
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
108
					)
109
				)
110
			)
111

    
112
			ORDER BY A.CREATE_DT DESC
113
		-- PAGING END
114
	END
115
ELSE
116
	BEGIN
117
	-- PAGING BEGIN
118
		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, 
119
		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, 
120
		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, 
121
		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,
122
		(CASE 
123
		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'
124
		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'
125
		ELSE 'N' 
126
		END) AS IS_APPROVE,
127
		(CASE 
128
		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, ''))
129
    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, ''))
130
    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, ''))
131
		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
132
		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, ''))
133
		WHEN A.PROCESS_ID='CANCEL' THEN ''
134
		WHEN A.PROCESS_ID='APPROVE' THEN ''
135
		ELSE CASE WHEN A.EMP_ID <> A.MAKER_ID THEN CONCAT(A.MAKER_ID,', ',A.EMP_ID) ELSE A.MAKER_ID END
136
		END) AS NGUOIXULY,RPN.ROLE_USER,RPN.DVDM_ID, A.FROM_DATE, A.TO_DATE, F.TLFullName + ' - ' + F.TLNANME AS MAKER_NAME
137
	-- SELECT END
138
		FROM TR_REQUEST_JOB_FORM A 
139
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
140
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
141
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
142
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
143
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
144
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
145
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
146
		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
147
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
148
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
149
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
150
--      		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='')))))
151
--          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))
152
--      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
153
--          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
154
          AND (A.AUTH_STATUS = @p_AUTH_STATUS 
155
      		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='')))))
156
          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))
157
      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
158
          AND EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS prp WHERE prp.REQ_ID=@p_REQ_ID))
159
          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
160
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
161
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
162
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
163
			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)
164
            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) 
165
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
166
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
167
			AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
168
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
169
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
170
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
171
			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)
172
            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) 
173
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
174
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
175
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
176
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
177
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
178
            OR(A.REQ_CODE=@p_REQ_CODE AND A.AUTH_STATUS='A')
179
            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))))
180
			OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
181
			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é
182
			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
183
			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
184
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('GDV','KSV')) AND A.AUTH_STATUS='A')
185
            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')
186
      
187
      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 ='')))
188
			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
189
				AND A.IS_SEND_APPR = 'Y'
190
				AND	(
191
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
192
					)
193
				)
194
			)
195
			ORDER BY A.CREATE_DT DESC
196
	-- PAGING END
197
	END
198
END -- PAGING
199