Project

General

Profile

TR_REQUEST_CAR_Search.txt

Luc Tran Van, 04/12/2023 09:52 AM

 
1

    
2
ALTER   PROC dbo.TR_REQUEST_CAR_Search
3
@p_REQ_CODE varchar(150) = NULL,
4
@p_USER_ID varchar(15) = NULL,
5
@p_PHONE_USER varchar(15) = NULL,
6
@p_BRANCH_ID varchar(15) = NULL,
7
@p_BRANCH_CREATE varchar(15) = NULL,
8
@p_DEP_ID varchar(15) = NULL,
9
@p_DEP_CREATE varchar(15) = NULL,
10
@p_ORIGN nvarchar(100) = NULL,
11
@p_DESTINATION nvarchar(100) = NULL,
12
@p_IS_SEND_APPR varchar(15) = NULL,
13
@p_SEND_APPR_DT varchar(20) = NULL,
14
@p_SIGN_USER varchar(15) = NULL,
15
@p_SIGN_DT varchar(20) = NULL,
16
@p_FROM_DATE varchar(20) = NULL,
17
@p_TO_DATE varchar(20) = NULL,
18
@p_NOTES nvarchar(MAX) = NULL,
19
@p_CAR_ID varchar(15) = NULL,
20
@p_DRIVER_ID varchar(15) = NULL,
21
@p_QUANTITY_TRIP int = NULL,
22
@p_NOTES_TRIP nvarchar(MAX) = NULL,
23
@p_UNIT_TRIP varchar(5) = NULL,
24
@p_TO_TRIP nvarchar(100) = NULL,
25
@p_FROM_TRIP nvarchar(100) = NULL,
26
@p_MILRAGE_TRIP int = NULL,
27
@p_START_TIME_TRIP varchar(20) = NULL,
28
@p_QUANTITY_RETURN_TRIP int = NULL,
29
@p_NOTES_RETURN_TRIP varchar(MAX) = NULL,
30
@p_UNIT_RETURN_TRIP varchar(5) = NULL,
31
@p_TO_RETURN_TRIP nvarchar(100) = NULL,
32
@p_FROM_RETURN_TRIP nvarchar(100) = NULL,
33
@p_MILRAGE_RETURN_TRIP int = NULL,
34
@p_START_TIME_RETURN_TRIP varchar(20) = NULL,
35
@p_AUTH_STATUS varchar(1) = NULL,
36
@p_APPROVE_DT varchar(20) = NULL,
37
@p_MODEL varchar(20) = NULL,
38
@p_N_PLATE varchar(20) = NULL,
39
@p_USER_LOGIN varchar(20) = NULL,
40
@p_FDATE varchar(20)=NUll,
41
@p_TDATE varchar(20)=NUll,
42
@p_TOP	INT = NULL
43
AS
44

    
45
BEGIN -- PAGING
46
	--DECLARE @LST_ROLE TABLE(ROLENAME VARCHAR(20))
47
	--INSERT INTO @LST_ROLE (ROLENAME) (SELECT C.DisplayName 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)
48
	--INSERT INTO @LST_ROLE (ROLENAME) (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING WHERE  CAST(EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) AND TLNAME=@p_USER_LOGIN)
49
	DECLARE @LST_ROLE TABLE(ROLENAME VARCHAR(20),BRANCH_ID VARCHAR(20),DEP_ID VARCHAR(20))
50
	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)
51
	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)
52
	
53
	IF(@p_TOP IS NULL OR @P_TOP = '' OR @P_TOP = 0)
54
	-- PAGING BEGIN
55
	SELECT A.*,B.CONTENT AS AUTH_STATUS_PROCESS_NAME, D.BRANCH_NAME,E.TLFullName AS CHECKER_NAME,F.TLFullName AS MAKER_NAME,RPN.NOTES AS PROCESS_STATUS_NEXT,
56
	(CASE 
57
		WHEN (A.PROCESS_ID IN ('CVSENDCONF','MAKER_APP') AND A.MAKER_ID=@p_USER_LOGIN ) THEN 'Y'
58
		WHEN (A.PROCESS_ID IN ('APPNEW', 'TDV_C_APP') AND EXISTS(SELECT * FROM @LST_ROLE WHERE ROLENAME IN('GDDV','PGD', 'TP', 'PP','TPGD','PPGD'))) THEN 'Y'
59
		WHEN (A.PROCESS_ID IN ('CV_APP') AND EXISTS (SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr WHERE tugr.ROLE_ID='CVDDX' AND tugr.BRANCH_ID=A.BRANCH_CREATE)) THEN 'Y'
60
		WHEN (A.PROCESS_ID IN ('DONE') AND (EXISTS  (SELECT A.* FROM TL_USER A JOIN AbpUserRoles B ON B.UserId = A.ID JOIN AbpRoles C ON C.Id=B.RoleId WHERE C.DisplayName IN('GDDV','PP')))) THEN 'Y'
61
		ELSE 'N' 
62
	END) AS IS_APPROVE
63
	-- SELECT END
64
	FROM TR_REQUEST_CAR A 
65
	LEFT JOIN CM_ALLCODE B ON ( B.CDVAL  = A.AUTH_STATUS AND B.CDNAME='AUTH_STATUS' AND B.CDTYPE='TR_REQ_CAR')
66
	--LEFT JOIN CAR_MASTER C ON C.CAR_ID = A.CAR_ID
67
	LEFT JOIN CM_BRANCH D  ON D.BRANCH_ID=A.BRANCH_ID
68
	LEFT JOIN TL_USER E  ON E.TLNANME=A.CHECKER_ID
69
	LEFT JOIN TL_USER F  ON F.TLNANME=A.MAKER_ID
70
	LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
71
	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 (Temp.IS_HAS_CHILD IS NULL OR Temp.IS_HAS_CHILD =0))
72
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPNC
73
	ON RPNC.PROCESS_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 Temp.IS_HAS_CHILD=1) AND (RPNC.STATUS_JOB = 'C' OR RPNC.STATUS_JOB = 'R')
74
	WHERE 1 = 1
75
		AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
76
		AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
77
		AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
78
		AND (A.AUTH_STATUS = @p_AUTH_STATUS 
79
		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='')))))
80
		--OR (@p_AUTH_STATUS='M' AND (EXISTS(SELECT 1 from wsiSplit(RPN.ROLE_USER,',')WHERE value =@p_USER_LOGIN) OR EXISTS (SELECT value from wsiSplit(RPN.ROLE_USER,',')WHERE value IN(SELECT ROLENAME FROM @LST_ROLE))))
81
--    OR (@p_AUTH_STATUS='M' AND RPN.ROLE_USER = 'CVDDX' AND EXISTS(SELECT 1 FROM CM_ALLCODE ca LEFT JOIN TL_USER tu ON ca.CDVAL= tu.TLNANME WHERE ca.CDNAME='REQCAR' AND ca.CDTYPE='TR' AND ca.CDVAL=@p_USER_LOGIN AND tu.TLSUBBRID=RPN.BRANCH_ID))
82
		OR (@p_AUTH_STATUS='M' AND (RPNC.TLNAME = @p_USER_LOGIN))
83
    OR (@p_AUTH_STATUS='M' AND ( A.AUTH_STATUS='E' OR a.IS_SEND_APPR<>'Y') AND (A.MAKER_ID= @p_USER_LOGIN))
84
		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
85
		AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
86
		AND (A.MO_NAME LIKE '%' + @p_MODEL + '%' OR  @p_MODEL IS NULL OR @p_MODEL = '')
87
		AND (A.N_PLATE LIKE '%' + @p_N_PLATE + '%' OR  @p_N_PLATE IS NULL OR @p_N_PLATE = '')
88
		AND(CONVERT(DATE, A.REQ_DT)>=CONVERT(DATE, @p_FDATE, 103)OR @p_FDATE IS NULL OR @p_FDATE='')
89
		AND(CONVERT(DATE, A.REQ_DT)<=CONVERT(DATE, @p_TDATE, 103)OR @p_TDATE IS NULL OR @p_TDATE='')
90
		AND ((A.MAKER_ID=@p_USER_LOGIN) OR A.EMP_ID=@p_USER_LOGIN OR A.DRIVER_ID=@p_USER_LOGIN OR A.USER_UPDATE = @p_USER_LOGIN 
91
--    OR (EXISTS(SELECT 1 FROM CM_ALLCODE WHERE CDNAME='REQCAR' AND CDVAL=@p_USER_LOGIN) AND A.PROCESS_ID NOT IN('INSERT','CANCEL','SEND','REJECT'))
92
		OR (EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr WHERE tugr.ROLE_ID='CVDDX' AND tugr.BRANCH_ID=A.BRANCH_CREATE ) AND A.PROCESS_ID NOT IN('INSERT','CANCEL','SEND','REJECT'))
93
		OR (EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE('GDDV',A.BRANCH_CREATE,A.DEP_CREATE)WHERE TLNANME=@p_USER_LOGIN) AND A.PROCESS_ID IN ('APPNEW','TDV_C_APP'))
94
		OR (EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE('GDDV','DV0001','DEP000000000014')WHERE TLNANME=@p_USER_LOGIN) AND A.PROCESS_ID IN ('DONE'))
95
		OR (A.USER_UPDATE=@p_USER_LOGIN AND  A.PROCESS_ID IN('CV_SEND','USER_SEND'))
96
		OR(EXISTS(SELECT 1 FROM dbo.PL_REQUEST_PROCESS prp WHERE prp.REQ_ID=A.REQ_ID AND prp.CHECKER_ID=@p_USER_LOGIN AND prp.STATUS='P' AND A.AUTH_STATUS<>'D'))
97
		OR(EXISTS(SELECT 1 FROM dbo.PL_REQUEST_PROCESS_CHILD prpc WHERE prpc.REQ_ID=A.REQ_ID AND prpc.TLNAME=@p_USER_LOGIN AND prpc.STATUS_JOB='P' AND A.AUTH_STATUS<>'D'))
98
        OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('NVMS','NVTT', 'GDV_DVKD', 'KSV_DVKD') AND ((BRANCH_ID=F.TLSUBBRID AND F.TLSUBBRID<>'DV0001') OR (F.TLSUBBRID='DV0001'AND F.TLSUBBRID=DEP_ID))) AND A.AUTH_STATUS='A')
99
		OR(A.AUTH_STATUS='A' AND EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr WHERE tugr.ROLE_ID='KSV' OR tugr.ROLE_ID='GDV'))
100
		OR(EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr WHERE tugr.ROLE_ID='TBP' AND tugr.DEPT_ID='DEP000000000014'))
101
		)
102
		ORDER BY A.REQ_ID DESC
103
	-- PAGING END
104
	ELSE
105
	-- PAGING BEGIN
106

    
107
	SELECT  TOP(CONVERT(INT,@P_TOP))A.*,B.CONTENT AS AUTH_STATUS_PROCESS_NAME, D.BRANCH_NAME,E.TLFullName AS CHECKER_NAME,F.TLFullName AS MAKER_NAME,RPN.NOTES AS PROCESS_STATUS_NEXT,
108
	(CASE 
109
		WHEN (A.PROCESS_ID IN ('CVSENDCONF','MAKER_APP') AND A.MAKER_ID=@p_USER_LOGIN ) THEN 'Y'
110
		WHEN (A.PROCESS_ID IN ('APPNEW', 'TDV_C_APP') AND EXISTS(SELECT * FROM @LST_ROLE WHERE ROLENAME IN('GDDV','PGD', 'TP', 'PP','TPGD','PPGD'))) THEN 'Y'
111
		WHEN (A.PROCESS_ID IN ('CV_APP') AND EXISTS (SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr WHERE tugr.ROLE_ID='CVDDX' AND tugr.BRANCH_ID=A.BRANCH_CREATE)) THEN 'Y'
112
		WHEN (A.PROCESS_ID IN ('DONE') AND (EXISTS  (SELECT A.* FROM TL_USER A JOIN AbpUserRoles B ON B.UserId = A.ID JOIN AbpRoles C ON C.Id=B.RoleId WHERE C.DisplayName IN('GDDV','PP')))) THEN 'Y'
113
		ELSE 'N' 
114
	END) AS IS_APPROVE
115
	-- SELECT END
116

    
117
	FROM TR_REQUEST_CAR A 
118
	LEFT JOIN CM_ALLCODE B ON ( B.CDVAL  = A.AUTH_STATUS AND B.CDNAME='AUTH_STATUS' AND B.CDTYPE='TR_REQ_CAR')
119
	--LEFT JOIN CAR_MASTER C ON C.CAR_ID = A.CAR_ID
120
	LEFT JOIN CM_BRANCH D  ON D.BRANCH_ID=A.BRANCH_ID
121
	LEFT JOIN TL_USER E  ON E.TLNANME=A.CHECKER_ID
122
	LEFT JOIN TL_USER F  ON F.TLNANME=A.MAKER_ID
123
	LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
124
	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 (Temp.IS_HAS_CHILD IS NULL OR Temp.IS_HAS_CHILD =0))
125
	LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPNC
126
	ON RPNC.PROCESS_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 Temp.IS_HAS_CHILD=1) AND (RPNC.STATUS_JOB = 'C' OR RPNC.STATUS_JOB = 'R')
127
	WHERE 1 = 1
128
		AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%' OR  @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
129
		AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
130
		AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
131
		AND (A.AUTH_STATUS = @p_AUTH_STATUS 
132
		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='')))))
133
		--OR (@p_AUTH_STATUS='M' AND (EXISTS(SELECT value from wsiSplit(RPN.ROLE_USER,',')WHERE value =@p_USER_LOGIN) OR EXISTS (SELECT value from wsiSplit(RPN.ROLE_USER,',')WHERE value IN(SELECT ROLENAME FROM @LST_ROLE))))
134
    OR (@p_AUTH_STATUS='M' AND  ( A.AUTH_STATUS='E' OR a.IS_SEND_APPR<>'Y') AND (A.MAKER_ID= @p_USER_LOGIN))
135
--    OR (@p_AUTH_STATUS='M' AND RPN.ROLE_USER = 'CVDDX' AND EXISTS(SELECT 1 FROM CM_ALLCODE ca LEFT JOIN TL_USER tu ON ca.CDVAL= tu.TLNANME WHERE ca.CDNAME='REQCAR' AND ca.CDTYPE='TR' AND ca.CDVAL=@p_USER_LOGIN AND tu.TLSUBBRID=RPN.BRANCH_ID))
136
		OR (@p_AUTH_STATUS='M' AND (RPNC.TLNAME = @p_USER_LOGIN))
137
		OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
138
		AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
139
		AND (A.MO_NAME LIKE '%' + @p_MODEL + '%' OR  @p_MODEL IS NULL OR @p_MODEL = '')
140
		AND (A.N_PLATE LIKE '%' + @p_N_PLATE + '%' OR  @p_N_PLATE IS NULL OR @p_N_PLATE = '')
141
		AND(CONVERT(DATE, A.REQ_DT)>=CONVERT(DATE, @p_FDATE, 103)OR @p_FDATE IS NULL OR @p_FDATE='')
142
		AND(CONVERT(DATE, A.REQ_DT)<=CONVERT(DATE, @p_TDATE, 103)OR @p_TDATE IS NULL OR @p_TDATE='')
143
		AND ((A.MAKER_ID=@p_USER_LOGIN) OR A.EMP_ID=@p_USER_LOGIN OR A.DRIVER_ID=@p_USER_LOGIN OR A.USER_UPDATE = @p_USER_LOGIN 
144
--		OR (EXISTS(SELECT 1 FROM CM_ALLCODE WHERE CDNAME='REQCAR' AND CDVAL=@p_USER_LOGIN) AND A.PROCESS_ID NOT IN('INSERT','CANCEL','SEND','REJECT'))
145
	  OR (EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr WHERE tugr.ROLE_ID='CVDDX' AND tugr.BRANCH_ID=A.BRANCH_CREATE ) AND A.PROCESS_ID NOT IN('INSERT','CANCEL','SEND','REJECT'))
146
		OR (EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE('GDDV',A.BRANCH_CREATE,A.DEP_CREATE)WHERE TLNANME=@p_USER_LOGIN) AND A.PROCESS_ID IN ('APPNEW','TDV_C_APP'))
147
		OR (EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE('GDDV','DV0001','DEP000000000014')WHERE TLNANME=@p_USER_LOGIN) AND A.PROCESS_ID IN ('DONE'))
148
		OR (A.USER_UPDATE=@p_USER_LOGIN AND  A.PROCESS_ID IN('CV_SEND','USER_SEND'))
149
		OR(EXISTS(SELECT 1 FROM dbo.PL_REQUEST_PROCESS prp WHERE prp.REQ_ID=A.REQ_ID AND prp.CHECKER_ID=@p_USER_LOGIN AND prp.STATUS='P' AND A.AUTH_STATUS<>'D'))
150
		OR(EXISTS(SELECT 1 FROM dbo.PL_REQUEST_PROCESS_CHILD prpc WHERE prpc.REQ_ID=A.REQ_ID AND prpc.TLNAME=@p_USER_LOGIN AND prpc.STATUS_JOB='P' AND A.AUTH_STATUS<>'D'))
151
        OR (EXISTS(SELECT 1 FROM @LST_ROLE WHERE ROLENAME IN('NVMS','NVTT', 'GDV_DVKD', 'KSV_DVKD') AND ((BRANCH_ID=F.TLSUBBRID AND F.TLSUBBRID<>'DV0001') OR (F.TLSUBBRID='DV0001'AND F.TLSUBBRID=DEP_ID))) AND A.AUTH_STATUS='A')
152
		OR(A.AUTH_STATUS='A' AND EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr WHERE tugr.ROLE_ID='KSV' OR tugr.ROLE_ID='GDV'))
153
		OR(EXISTS(SELECT 1 FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr WHERE tugr.ROLE_ID='TBP' AND tugr.DEPT_ID='DEP000000000014'))
154
		)
155
		ORDER BY A.REQ_ID DESC
156
	-- PAGING END
157

    
158
END -- PAGING