Project

General

Profile

DXTL4.txt

Luc Tran Van, 04/21/2023 10:33 AM

 
1
ALTER PROCEDURE dbo.ASS_LIQ_REQUEST_Search
2
@p_LIQ_REQ_ID	varchar(15)  = NULL,
3
@p_ASS_TYPE_ID	varchar(15)  = NULL,
4
@p_REQ_DT	VARCHAR(20) = NULL,
5
@p_BRANCH_ID	varchar(15)  = NULL,
6
@p_NOTES	nvarchar(1000)  = NULL,
7
@p_RECORD_STATUS	varchar(1)  = NULL,
8
@p_MAKER_ID	varchar(12)  = NULL,
9
@p_CREATE_DT	VARCHAR(20) = NULL,
10
@p_AUTH_STATUS	varchar(50)  = NULL,
11
@p_STATUS	varchar(50)  = NULL,
12
@p_CHECKER_ID	varchar(12)  = NULL,
13
@p_APPROVE_DT	VARCHAR(20) = NULL,
14
@p_TOP	INT = 10,
15
@p_BRANCH_CREATE	VARCHAR(15) = NULL,
16
@p_LEVEL	VARCHAR(50) = 'UNIT',
17
@p_TERM_ID VARCHAR(15) = NULL,
18
@p_USER_LOGIN VARCHAR(20)=NULL
19
AS
20

    
21

    
22
BEGIN -- PAGING
23

    
24
DECLARE @DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20)
25
DECLARE  @ROLE_LOGIN TABLE(USER_ROLE VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20))
26

    
27
  INSERT INTO @ROLE_LOGIN
28
  SELECT tugr.ROLE_ID, tugr.BRANCH_ID, tugr.DEPT_ID FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr
29

    
30
	SET @DEP_ID= (SELECT DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USER_LOGIN)
31
	SET @BRANCH_ID= (SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_USER_LOGIN)
32

    
33
	DECLARE @lstCOST TABLE (COST_ID VARCHAR(20))
34
	INSERT INTO @lstCOST
35
	SELECT COST_ID FROM dbo.CM_COSTCENTER_DT WHERE BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID
36

    
37

    
38

    
39
DECLARE @MAX_ID INT = (SELECT MAX(CRP.ID) FROM CM_REQUEST_PROCESS CRP WHERE CRP.REQ_ID = @p_LIQ_REQ_ID)
40

    
41
DECLARE @LIQ_REQ_ID_Temp TABLE(LIQ_REQ_ID VARCHAR(20))
42
INSERT INTO @LIQ_REQ_ID_Temp
43
SELECT A.LIQ_REQ_ID FROM ASS_LIQ_REQUEST A
44
LEFT JOIN CM_REQUEST_PROCESS B ON A.LIQ_REQ_ID = B.REQ_ID
45
WHERE  (
46
  EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US WHERE US.TLNANME = @p_USER_LOGIN)
47

    
48
  OR EXISTS(SELECT RL.USER_ROLE FROM @ROLE_LOGIN RL WHERE RL.BRANCH_ID = B.BRANCH_ID
49
    AND ((B.BRANCH_ID = 'DV0001' AND B.DEP_ID = RL.DEP_ID) OR B.BRANCH_ID <> 'DV0001') AND RL.USER_ROLE = B.ROLE)
50

    
51
  OR EXISTS(SELECT * FROM @ROLE_LOGIN RL
52
    JOIN CM_REQUEST_PROCESS C ON C.REQ_ID = A.LIQ_REQ_ID AND RL.BRANCH_ID = C.BRANCH_ID
53
    AND ((C.BRANCH_ID = 'DV0001' AND C.DEP_ID = RL.DEP_ID) OR C.BRANCH_ID <> 'DV0001') AND RL.USER_ROLE = C.ROLE)
54

    
55
  
56

    
57
  OR A.MAKER_ID = @p_USER_LOGIN
58
  )
59
GROUP BY A.LIQ_REQ_ID
60

    
61

    
62
--SELECT DISTINCT BRANCH_ID,DEP_ID FROM CM_REQUEST_PROCESS WHERE PROCESS_KEY = 'AssLiqRequest' AND REQ_ID = @p_LIQ_REQ_ID
63

    
64

    
65

    
66
IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
67
-- PAGING BEGIN
68
SELECT A.*,C.BRANCH_NAME, C.BRANCH_CODE,E.TYPE_NAME, CB.BRANCH_CODE AS BRANCH_CODE_CREATE, CB.BRANCH_NAME AS BRANCH_NAME_CREATE,
69
	T.TERM_CODE, T.TERM_TYPE
70
	,CASE   WHEN A.IS_REJECTED = 0 AND A.AUTH_STATUS = 'A' THEN N'Mới tạo' 
71
            WHEN A.IS_REJECTED = 0 THEN (SELECT CRP.DESCRIBE FROM CM_REQUEST_PROCESS CRP WHERE CRP.REQ_ID = A.LIQ_REQ_ID AND CRP.DONE = 0)
72
            WHEN A.IS_REJECTED = 1 THEN N'Từ chối'  
73
        ELSE CRP.DESCRIBE
74
    END AS DESCRIBE, CRP.STATUS
75
	,CASE  
76
      WHEN A.IS_REJECTED = 1 THEN N'Từ chối'
77
      WHEN A.IS_REJECTED = 0 AND  A.AUTH_STATUS = 'L' THEN N'Đã duyệt'
78
      ELSE N'Chờ duyệt'
79
   END AS AUTH_STATUS_NAME
80
-- SELECT END
81
	FROM ASS_LIQ_REQUEST A
82
	LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
83
	LEFT JOIN CM_BRANCH CB ON A.BRANCH_CREATE = CB.BRANCH_ID
84
	LEFT JOIN ASS_TYPE E ON A.ASS_TYPE_ID=E.TYPE_ID
85
	LEFT JOIN CM_TERM T ON T.TERM_ID = A.TERM_ID
86
	LEFT JOIN CM_REQUEST_PROCESS CRP ON CRP.REQ_ID = A.LIQ_REQ_ID AND CRP.DONE = 0
87
 WHERE 1 = 1
88
	AND (A.LIQ_REQ_ID LIKE '%' + @p_LIQ_REQ_ID + '%' OR  @p_LIQ_REQ_ID IS NULL OR @p_LIQ_REQ_ID = '')
89
	AND (A.ASS_TYPE_ID LIKE '%' + @p_ASS_TYPE_ID + '%' OR  @p_ASS_TYPE_ID IS NULL OR @p_ASS_TYPE_ID = '')
90
	AND (DATEDIFF(DAYOFYEAR, A.REQ_DT,CONVERT(DATETIME, @p_REQ_DT, 103)) = 0 OR  @p_REQ_DT IS NULL OR @p_REQ_DT = '')
91
	AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
92
	AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
93
	AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
94
	--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
95
	AND A.RECORD_STATUS = '1'
96
  AND ((@p_AUTH_STATUS = 'A' AND A.AUTH_STATUS = 'L')
97
        OR (@p_AUTH_STATUS = 'E' AND A.AUTH_STATUS = 'B')
98
        OR (@p_AUTH_STATUS = 'U' AND A.AUTH_STATUS IN (SELECT * FROM STRING_SPLIT('C,E,Z,F,G,H,K', ',')))
99
        OR (@p_AUTH_STATUS = 'R' AND (A.AUTH_STATUS = 'R' OR A.IS_REJECTED = 1))
100
        OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
101
        )
102
	--AND (CRP.PROCESS_ID LIKE '%' + @p_AUTH_STATUS + '%' OR (CRP.PROCESS_ID IS NULL AND  @p_AUTH_STATUS<> N'U') OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
103
	AND (A.TERM_ID = @p_TERM_ID OR @p_TERM_ID IS NULL OR @p_TERM_ID = '')
104
	AND ((@p_STATUS = 'Z' AND A.IS_REJECTED = 1) OR (CRP.[STATUS] LIKE '%' + @p_STATUS + '%' OR  @p_STATUS IS NULL OR @p_STATUS = ''))
105
  AND EXISTS(SELECT * FROM @LIQ_REQ_ID_Temp RL WHERE RL.LIQ_REQ_ID = A.LIQ_REQ_ID)
106
  --AND CRP.ROLE IN (SELECT USER_ROLE FROM @ROLE_LOGIN) 
107
  OR A.MAKER_ID = @p_USER_LOGIN
108
	ORDER BY A.CREATE_DT DESC
109
-- PAGING END
110
ELSE
111
---- PAGING BEGIN
112
SELECT TOP(CONVERT(INT,@p_TOP)) A.*,C.BRANCH_NAME, C.BRANCH_CODE,E.TYPE_NAME, CB.BRANCH_CODE AS BRANCH_CODE_CREATE, CB.BRANCH_NAME AS BRANCH_NAME_CREATE,
113
	T.TERM_CODE, T.TERM_TYPE
114
	,CASE   WHEN A.IS_REJECTED = 0 AND A.AUTH_STATUS = 'A' THEN N'Mới tạo' 
115
            WHEN A.IS_REJECTED = 0 THEN (SELECT CRP.DESCRIBE FROM CM_REQUEST_PROCESS CRP WHERE CRP.REQ_ID = A.LIQ_REQ_ID AND CRP.DONE = 0)
116
            WHEN A.IS_REJECTED = 1 THEN N'Từ chối'  
117
        ELSE CRP.DESCRIBE
118
    END AS DESCRIBE, CRP.STATUS
119
	,CASE  
120
      WHEN A.IS_REJECTED = 1 THEN N'Từ chối'
121
      WHEN A.IS_REJECTED = 0 AND  A.AUTH_STATUS = 'L' THEN N'Đã duyệt'
122
      ELSE N'Chờ duyệt'
123
   END AS AUTH_STATUS_NAME
124
-- SELECT END
125
	FROM ASS_LIQ_REQUEST A
126
	LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
127
	LEFT JOIN CM_BRANCH CB ON A.BRANCH_CREATE = CB.BRANCH_ID
128
	LEFT JOIN ASS_TYPE E ON A.ASS_TYPE_ID=E.TYPE_ID
129
	LEFT JOIN CM_TERM T ON T.TERM_ID = A.TERM_ID
130
	LEFT JOIN CM_REQUEST_PROCESS CRP ON CRP.REQ_ID = A.LIQ_REQ_ID AND CRP.DONE = 0
131
 WHERE 1 = 1
132
	AND (A.LIQ_REQ_ID LIKE '%' + @p_LIQ_REQ_ID + '%' OR  @p_LIQ_REQ_ID IS NULL OR @p_LIQ_REQ_ID = '')
133
	AND (A.ASS_TYPE_ID LIKE '%' + @p_ASS_TYPE_ID + '%' OR  @p_ASS_TYPE_ID IS NULL OR @p_ASS_TYPE_ID = '')
134
	AND (DATEDIFF(DAYOFYEAR, A.REQ_DT,CONVERT(DATETIME, @p_REQ_DT, 103)) = 0 OR  @p_REQ_DT IS NULL OR @p_REQ_DT = '')
135
	AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR  @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
136
	AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR  @p_NOTES IS NULL OR @p_NOTES = '')
137
	AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR  @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
138
	--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
139
  AND ((@p_AUTH_STATUS = 'A' AND A.AUTH_STATUS = 'L')
140
        OR (@p_AUTH_STATUS = 'E' AND A.AUTH_STATUS = 'B')
141
        OR (@p_AUTH_STATUS = 'U' AND A.AUTH_STATUS IN (SELECT * FROM STRING_SPLIT('C,E,Z,F,G,H,K', ',')))
142
        OR (@p_AUTH_STATUS = 'R' AND (A.AUTH_STATUS = 'R' OR A.IS_REJECTED = 1))
143
        OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
144
        )
145
	AND A.RECORD_STATUS = '1'
146
	--AND (CRP.PROCESS_ID LIKE '%' + @p_AUTH_STATUS + '%' OR (CRP.PROCESS_ID IS NULL AND  @p_AUTH_STATUS<> N'U') OR  @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
147
	AND (A.TERM_ID = @p_TERM_ID OR @p_TERM_ID IS NULL OR @p_TERM_ID = '')
148
	AND ((@p_STATUS = 'Z' AND A.IS_REJECTED = 1) OR (CRP.[STATUS] LIKE '%' + @p_STATUS + '%' OR  @p_STATUS IS NULL OR @p_STATUS = ''))
149
  AND EXISTS(SELECT * FROM @LIQ_REQ_ID_Temp RL WHERE RL.LIQ_REQ_ID = A.LIQ_REQ_ID)
150
  --AND CRP.ROLE IN (SELECT USER_ROLE FROM @ROLE_LOGIN)
151
  OR A.MAKER_ID = @p_USER_LOGIN
152
	ORDER BY A.CREATE_DT DESC
153
-- PAGING END
154
END -- PAGING