Project

General

Profile

1CHECK_PPHIEU_CONG_TAC.txt

Luc Tran Van, 06/09/2025 04:23 PM

 
1
SET QUOTED_IDENTIFIER ON
2
SET ANSI_NULLS ON
3
GO
4
ALTER PROC dbo.TR_REQUEST_JOB_FORM_Search 
5
@p_REF_ID varchar(15) = NULL,
6
@p_REQ_ID varchar(15) = NULL,
7
@p_REQ_CODE varchar(15) = NULL,
8
@p_MAKER_ID varchar(15) = NULL,
9
@p_AUTH_STATUS varchar(1) = NULL,
10
@p_REQ_REASON nvarchar(MAX) = NULL,
11
@p_REQ_DESC nvarchar(MAX) = NULL,
12
@p_NOTES nvarchar(MAX) = NULL,
13
@p_REQ_TYPE_TRANS varchar(15) = NULL, 
14
@p_REQ_TYPE_GROUP varchar(15) = NULL,
15
@p_REQ_TYPE_BOOKING_HOTEL varchar(15) = NULL,
16
--@p_COST_AMOUNT decimal(18) = NULL,
17
@p_REQ_TYPE_BOOKING_AIR varchar(15) = NULL,
18
@p_REQ_TYPE_BOOKING_TRAIN varchar(15) = NULL,
19
@p_CREATE_DT VARCHAR(20) = NULL,
20
@p_CHECKER_ID varchar(15) = NULL,
21
@p_APPROVE_DT VARCHAR(20) = NULL,
22
@p_FRMDATE VARCHAR(20)= NULL,
23
@p_TODATE VARCHAR(20) = NULL,
24
@p_USER_LOGIN VARCHAR(50) =NULL,
25
@p_DEP_CREATE VARCHAR(15) = NULL,
26
@p_BRANCH_CREATE VARCHAR(15) = NULL,
27
@p_BRANCH_ID VARCHAR(15) = NULL,
28
@p_TOP	INT = NULL 
29
AS
30
BEGIN -- PAGING
31
	DECLARE @MENU_PERMISSION NVARCHAR(500) = 'Pages.Administration.RequestJob' --permission của chức năng call store
32
	DECLARE @LST_ROLE TABLE(ROLENAME VARCHAR(50),BRANCH_ID VARCHAR(20),DEP_ID VARCHAR(20),DVCM VARCHAR(20))
33
	--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)
34
	--INSERT INTO @LST_ROLE (ROLENAME,BRANCH_ID,DEP_ID) (SELECT RoleDisplayName,BRANCH_ID,DEP_ID FROM dbo.SYS_PERMISSIONS_PAGE_FOR_USER A
35
	--													WHERE (DATEDIFF(DAY, CONVERT(DATE, A.EffectiveDate, 103) , CONVERT(DATE, GETDATE(), 103)) >= 0 OR A.EffectiveDate IS NULL OR A.EffectiveDate = '')
36
	--	                        AND (DATEDIFF(DAY, CONVERT(DATE, A.ExpirationDate, 103) , CONVERT(DATE, GETDATE(), 103)) <= 0 OR A.ExpirationDate IS NULL OR A.ExpirationDate = '')
37
 --                       		AND EXISTS(SELECT DT.PER_PAGE_FOR_USER_DT_ID FROM SYS_PERMISSIONS_PAGE_FOR_USER_DT DT WHERE DT.PER_PAGE_FOR_USER_ID = A.PER_PAGE_FOR_USER_ID AND DT.MENU_PERMISSION IN (SELECT VALUE FROM wsiSplit(@MENU_PERMISSION,',')))
38
	--													AND A.AUTH_STATUS = 'A' AND A.RECORD_STATUS = '1'
39
	--													AND TLNAME=@p_USER_LOGIN)
40
	INSERT @LST_ROLE(ROLENAME, BRANCH_ID, DEP_ID, DVCM)
41
	SELECT * FROM  [dbo].[FN_GET_ROLE_DVDM_USER_BY_TLNAME] (@p_USER_LOGIN, @MENU_PERMISSION)
42
    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))
43
    WHERE ROLENAME='GDK'
44
    DECLARE @KHOI_ID VARCHAR(15) = (SELECT TOP(1) cd.KHOI_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=(SELECT TOP(1) tu.DEP_ID FROM TL_USER tu WHERE tu.TLNANME=@p_USER_LOGIN))
45
    SELECT * INTO #USER FROM dbo.FN_GET_USER_BY_ROLE('','','', @MENU_PERMISSION)
46
    CREATE NONCLUSTERED INDEX #USER1 ON #USER(BRANCH_ID,DEP_ID,ROLE_NEW)
47
    
48
  	SELECT DISTINCT C.TLNANME, C.ROLE_NEW,B.DVDM_ID INTO #DVDM  
49
  	FROM dbo.PL_COSTCENTER_DT A 
50
  		LEFT JOIN dbo.PL_COSTCENTER B ON B.COST_ID = A.COST_ID
51
  		JOIN FN_GET_USER_BY_ROLE('','','', @MENU_PERMISSION) C ON (C.BRANCH_ID=A.BRANCH_ID AND C.DEP_ID=A.DEP_ID)
52
  		LEFT JOIN dbo.CM_EMPLOYEE_LOG D ON D.USER_DOMAIN= C.TLNANME 
53
    
54
    CREATE NONCLUSTERED INDEX #DVCM1 ON #DVDM(DVDM_ID,ROLE_NEW)
55
	IF(@p_TOP IS NULL OR @p_TOP = 0)
56
	BEGIN
57
		-- PAGING BEGIN
58
		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, 
59
		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, 
60
		A.SIGN_USER, A.SIGN_DT, A.PROCESS_ID, A.BRANCH_CREATE, A.DEP_CREATE, A.BRANCH_ID AS BRANCH_NAME,  A.DEP_ID, 
61
		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,IIF(A.PROCESS_ID = 'APPROVE' AND A.IS_REJECT = 1,N'Phiếu bị huỷ công tác',RPN.NOTES) AS PROCESS_STATUS_NEXT,
62
		(CASE 
63
		WHEN (A.PROCESS_ID ='SIGN' OR RPN.PROCESS_ID ='TDV_APP') AND EXISTS(SELECT 1 FROM @LST_ROLE WHERE( ROLENAME =RPN.ROLE_USER OR (RPN.ROLE_USER='GDDV' AND ROLENAME='TPGD'))AND (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 ='')) THEN 'Y'
64
		WHEN ((A.PROCESS_ID  = 'SEND' OR RPN.PROCESS_ID ='SIGN_APP') AND A.SIGN_USER=@p_USER_LOGIN) THEN 'Y'
65
		ELSE 'N' 
66
		END) AS IS_APPROVE,
67
		(CASE 
68
			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 ', ' + TLNANME FROM #USER WHERE ROLE_NEW = RPN.ROLE_USER AND BRANCH_ID = RPN.BRANCH_ID AND DEP_ID = RPN.DEP_ID   FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '' ))--NGUYENTD 08092023_SECRETKEY: LỖI HIỂN THỊ NGƯỜI XỬ LÝ HIỆN TÊN NGƯỜI TẠO PHIẾU
69
			WHEN (A.PROCESS_ID ='SIGN' OR RPN.PROCESS_ID ='TDV_APP') AND (RPN.ROLE_USER='PTGD' OR RPN.ROLE_USER='GDK') THEN (SELECT DISTINCT STRING_AGG(RE.TLNANME,', ') FROM #DVDM RE WHERE RE.DVDM_ID = RPN.DVDM_ID AND RE.ROLE_NEW = RPN.ROLE_USER )
70
			WHEN ((A.PROCESS_ID  = 'SEND' OR RPN.PROCESS_ID ='SIGN_APP') AND A.SIGN_USER = 'TKTGD' ) THEN (SELECT DISTINCT STRING_AGG(RE.TLNANME,', ') FROM #USER RE WHERE RE.ROLE_NEW = 'TKTGD')
71
			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
72
			WHEN (A.PROCESS_ID IN ('APPNEW','MAKER_CONF','TDV_APP')) THEN (SELECT DISTINCT STRING_AGG(TLNANME,',') FROM #USER WHERE ROLE_NEW = 'NVDV' AND BRANCH_ID = RPN.BRANCH_ID )
73
			WHEN A.PROCESS_ID='APPROVE' THEN ''
74
			WHEN A.PROCESS_ID='CANCEL' THEN ''
75
			ELSE CASE WHEN A.EMP_ID <> A.MAKER_ID THEN CONCAT(A.MAKER_ID,', ',A.EMP_ID) ELSE A.MAKER_ID END
76
		END) AS NGUOIXULY, A.FROM_DATE, A.TO_DATE, F.TLFullName + ' - ' + F.TLNANME AS MAKER_NAME
77
		-- SELECT END
78
		FROM TR_REQUEST_JOB_FORM A 
79
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
80
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
81
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
82
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
83
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
84
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
85
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
86
		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'))
87
		WHERE 1 = 1
88
			AND (A.REF_ID LIKE '%' + @p_REF_ID + '%' OR  @p_REF_ID IS NULL OR @p_REF_ID = '')
89
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
90
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
91
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
92
--          
93
--      		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='')))))
94
--      		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))
95
--          OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
96
--      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
97
			AND (A.AUTH_STATUS = @p_AUTH_STATUS 
98
          OR(@p_AUTH_STATUS = 'D' AND A.PROCESS_ID = 'APPROVE' AND A.IS_REJECT = 1)
99
      		OR ((@p_AUTH_STATUS='M' AND RPN.ROLE_USER NOT IN ('GDK','PTGD') 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='')))))
100
--      	     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))
101
          ----LUCTV 12072023_SECRETKEY HOTFIX NẾU GDK - PTGD THÌ SEARCH THEO KHỐI MÌNH QUẢN LÝ
102
		  OR (@p_AUTH_STATUS='M' AND RPN.ROLE_USER IN ('GDK','PTGD') AND EXISTS(SELECT 1 FROM @LST_ROLE Lst WHERE RPN.DVDM_ID = Lst.DVCM and RPN.ROLE_USER = Lst.ROLENAME)) --RPN.DVDM_ID = @KHOI_ID) -- NguyenTD fix lỗi tìm thấy Phiếu của đơn vị khác 
103
            OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
104
          AND EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS prp WHERE prp.REQ_ID=@p_REQ_ID))
105
      		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
106
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
107
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
108
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
109
			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)
110
            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) 
111
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
112
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
113

    
114
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
115
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
116
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
117
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
118
            OR(A.REQ_CODE=@p_REQ_CODE AND A.AUTH_STATUS='A')
119
            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))))
120
           	OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
121
			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é
122
			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
123
--			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
124
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('GDV','KSV')) AND A.AUTH_STATUS='A')
125
            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')
126

    
127
      OR	(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME =RPN.ROLE_USER AND (BRANCH_ID =RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID='') AND ((DEP_ID=RPN.DEP_ID AND RPN.BRANCH_ID='DV0001') OR RPN.DEP_ID IS NULL OR RPN.DEP_ID ='')))
128
			OR	((EXISTS(SELECT 1 FROM @LST_ROLE WHERE BRANCH_ID =D.TLSUBBRID AND DEP_ID=D.DEP_ID))
129
      OR	(D.TLSUBBRID <>'DV0001'AND(EXISTS(SELECT 1 FROM @LST_ROLE WHERE BRANCH_ID =D.TLSUBBRID AND (ROLENAME='GDDV' OR ROLENAME='TPGD' OR ROLENAME='TDV')))) --- ng login là trưởng ĐV và đã gửi YC phê duyệt
130
				AND A.IS_SEND_APPR = 'Y'
131
				AND	(
132
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
133
					)
134
				)
135
			)
136

    
137
			ORDER BY A.CREATE_DT DESC
138
		-- PAGING END
139
	END
140
ELSE
141
	BEGIN
142
	-- PAGING BEGIN
143
		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, 
144
		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, 
145
		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, 
146
		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,IIF(A.PROCESS_ID = 'APPROVE' AND A.IS_REJECT = 1,N'Phiếu bị huỷ công tác',RPN.NOTES) AS PROCESS_STATUS_NEXT,
147
		(CASE 
148
		WHEN (A.PROCESS_ID ='SIGN' OR RPN.PROCESS_ID ='TDV_APP') AND EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES (@p_USER_LOGIN, @MENU_PERMISSION)WHERE  (ROLE_ID =RPN.ROLE_USER OR (RPN.ROLE_USER='GDDV' AND ROLE_ID = 'TPGD') )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'
149
		WHEN ((A.PROCESS_ID  = 'SEND' OR RPN.PROCESS_ID ='SIGN_APP') AND A.SIGN_USER=@p_USER_LOGIN) THEN 'Y'
150
		ELSE 'N' 
151
		END) AS IS_APPROVE,
152
		(CASE 
153
		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 ', ' + TLNANME FROM #USER WHERE ROLE_NEW = RPN.ROLE_USER AND BRANCH_ID = RPN.BRANCH_ID AND DEP_ID = RPN.DEP_ID   FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '' ))--NGUYENTD 08092023_SECRETKEY: LỖI HIỂN THỊ NGƯỜI XỬ LÝ HIỆN TÊN NGƯỜI TẠO PHIẾU
154
    WHEN (A.PROCESS_ID ='SIGN' OR RPN.PROCESS_ID ='TDV_APP') AND (RPN.ROLE_USER='PTGD' OR RPN.ROLE_USER='GDK') THEN (SELECT DISTINCT STRING_AGG(RE.TLNANME,', ') FROM #DVDM RE WHERE RE.DVDM_ID = RPN.DVDM_ID AND RE.ROLE_NEW = RPN.ROLE_USER )
155
    WHEN ((A.PROCESS_ID  = 'SEND' OR RPN.PROCESS_ID ='SIGN_APP') AND A.SIGN_USER = 'TKTGD' ) THEN (SELECT DISTINCT STRING_AGG(RE.TLNANME,', ') FROM #USER RE WHERE RE.ROLE_NEW = 'TKTGD')
156
		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
157
		WHEN (A.PROCESS_ID IN ('APPNEW','MAKER_CONF','TDV_APP')) THEN (SELECT DISTINCT STRING_AGG(TLNANME,',') FROM #USER WHERE ROLE_NEW = 'NVDV' AND BRANCH_ID = RPN.BRANCH_ID )
158
		WHEN A.PROCESS_ID='APPROVE' THEN ''
159
		WHEN A.PROCESS_ID='CANCEL' THEN ''
160
		ELSE CASE WHEN A.EMP_ID <> A.MAKER_ID THEN CONCAT(A.MAKER_ID,', ',A.EMP_ID) ELSE A.MAKER_ID END
161
		END) AS NGUOIXULY,RPN.ROLE_USER,RPN.DVDM_ID, A.FROM_DATE, A.TO_DATE, F.TLFullName + ' - ' + F.TLNANME AS MAKER_NAME
162
	-- SELECT END
163
		FROM TR_REQUEST_JOB_FORM A 
164
		LEFT JOIN dbo.CM_BRANCH BR_CR ON A.BRANCH_CREATE=BR_CR.BRANCH_ID
165
		LEFT JOIN CM_AUTH_STATUS C ON C.AUTH_STATUS = A.AUTH_STATUS
166
        LEFT JOIN dbo.CM_DEPARTMENT DP_CR ON DP_CR.DEP_ID=A.DEP_CREATE
167
		LEFT JOIN dbo.TL_USER D ON D.TLNANME=A.EMP_ID
168
		--LEFT JOIN dbo.TL_USER E ON  A.SIGN_USER =E.TLNANME 
169
		LEFT JOIN dbo.TL_USER F ON  A.MAKER_ID = F.TLNANME 
170
		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
171
		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
172
			AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
173
			AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR  @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
174
--      AND (A.AUTH_STATUS = @p_AUTH_STATUS 
175
--      		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='')))))
176
--          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))
177
--      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
178
--          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
179
          AND (A.AUTH_STATUS = @p_AUTH_STATUS 
180
          OR(@p_AUTH_STATUS = 'D' AND A.PROCESS_ID = 'APPROVE' AND A.IS_REJECT = 1)
181

    
182
      		OR ((@p_AUTH_STATUS='M' AND RPN.ROLE_USER NOT IN ('GDK','PTGD') 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='')))))
183
--          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))
184
         ----LUCTV 12072023_SECRETKEY HOTFIX NẾU GDK - PTGD THÌ SEARCH THEO KHỐI MÌNH QUẢN LÝ
185
		  OR (@p_AUTH_STATUS='M' AND RPN.ROLE_USER IN ('GDK','PTGD') AND EXISTS(SELECT 1 FROM @LST_ROLE Lst WHERE RPN.DVDM_ID = Lst.DVCM and RPN.ROLE_USER = Lst.ROLENAME)) --RPN.DVDM_ID = @KHOI_ID) -- NguyenTD fix lỗi tìm thấy Phiếu của đơn vị khác 
186

    
187
      		OR (@p_AUTH_STATUS='M' AND A.MAKER_ID =@p_USER_LOGIN AND A.AUTH_STATUS='E')
188
          AND EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS prp WHERE prp.REQ_ID=@p_REQ_ID))
189
          OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
190
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
191
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
192
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
193
			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)
194
            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) 
195
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
196
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
197
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') --- LUCTV 13072023_SECRETKEY FIX LỖI KHÔNG TÌM PYC CÔNG TÁC THEO CHI NHÁNH
198
			AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR  @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
199
			AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR  @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
200
			AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR  @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
201
			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)
202
            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) 
203
			AND (A.DEP_CREATE LIKE '%' + @p_DEP_CREATE + '%' OR  @p_DEP_CREATE IS NULL OR @p_DEP_CREATE = '')
204
			AND (A.BRANCH_CREATE LIKE '%' + @p_BRANCH_CREATE + '%' OR  @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
205
			AND	(A.MAKER_ID = @p_USER_LOGIN		---- ng login là ng tạo
206
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'TBP' AND BRANCH_ID='DV0001' AND DEP_ID='DEP000000000014'))
207
            OR(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME = 'Administrators'))
208
            OR(A.REQ_CODE=@p_REQ_CODE AND A.AUTH_STATUS='A')
209
            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))))
210
			OR	A.EMP_ID = @p_USER_LOGIN 		---- ng login là người sử dụng phiếu
211
			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é
212
			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
213
--			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
214
			OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('GDV','KSV')) AND A.AUTH_STATUS='A')
215
            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')
216

    
217
      OR	(EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME =RPN.ROLE_USER AND (BRANCH_ID =RPN.BRANCH_ID OR RPN.BRANCH_ID IS NULL OR RPN.BRANCH_ID='') AND ((DEP_ID=RPN.DEP_ID AND RPN.BRANCH_ID='DV0001') OR RPN.DEP_ID IS NULL OR RPN.DEP_ID ='')))
218
			OR	((EXISTS(SELECT 1 FROM @LST_ROLE WHERE BRANCH_ID =D.TLSUBBRID AND DEP_ID=D.DEP_ID))
219
      OR	(D.TLSUBBRID <>'DV0001'AND(EXISTS(SELECT 1 FROM @LST_ROLE WHERE BRANCH_ID =D.TLSUBBRID AND (ROLENAME='GDDV' OR ROLENAME='TPGD' OR ROLENAME='TDV')))) --- ng login là trưởng ĐV và đã gửi YC phê duyệt
220
				AND A.IS_SEND_APPR = 'Y'
221
				AND	(
222
						ISNULL(A.SIGN_USER,'') = '' OR (ISNULL(A.SIGN_USER,'') <> '' AND A.SIGN_DT IS NOT NULL)
223
					)
224
				)
225
			)
226
			ORDER BY A.CREATE_DT DESC
227
	-- PAGING END
228
	END
229
END -- PAGING
230
GO
231