Project

General

Profile

1244555555.txt

Luc Tran Van, 06/09/2025 05:09 PM

 
1
				DECLARE @p_REQ_ID	varchar(15)  = NULL,
2
@p_REQ_CODE	nvarchar(100)  = NULL,
3
@p_REQ_NAME	nvarchar(200)  = NULL,
4
@p_REQ_DT	varchar(20) = NULL,
5
@p_REQ_TYPE	int = NULL,
6
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
7
@p_REQ_REASON NVARCHAR(500)=NULL,
8
@p_TOTAL_AMT	decimal = NULL,
9
@p_NOTES	nvarchar(1000)  = NULL,
10
@p_RECORD_STATUS	varchar(1)  = NULL,
11
@p_MAKER_ID	varchar(12)  = NULL,
12
@p_CREATE_DT	varchar(20) = NULL,
13
@p_AUTH_STATUS	varchar(50)  = NULL,
14
@p_CHECKER_ID	varchar(12)  = NULL,
15
@p_APPROVE_DT	varchar(20) = NULL,
16
@p_PROCESS_ID varchar(15) = NULL,
17
@p_BRANCH_ID VARCHAR(15)='DV0001',
18
@p_DEP_ID VARCHAR(15) = NULL,
19
@p_BRANCH_LOGIN VARCHAR(15) = 'DV0001',
20
@p_ROLE_USER VARCHAR(20) ='GDDV',
21
@p_TLNAME_USER VARCHAR(15) = 'tuanva',
22
@p_FR_DATE varchar(20) = NULL,
23
@p_TO_DATE varchar(20) = NULL,
24
@p_TYPE_TRANFER VARCHAR(15)= NULL,
25
@p_TYPE VARCHAR(15) = NULL,
26
@p_YEAR INT = 2025,
27
@p_TOP	INT = 10 ,
28
@p_IS_TRANSFER VARCHAR(10) = 'N',
29
@p_NGUOIXULY NVARCHAR(15) = NULL,
30
@p_MENU_NAME_CALL_API NVARCHAR(150) = 'PlanTransfer'
31
				
32
				DECLARE @MENU_PERMISSION NVARCHAR(500) = ''--permission chức năng call store
33
	SELECT @MENU_PERMISSION = MENU_PERMISSION FROM TL_MENU WHERE MENU_NAME_EL = @p_MENU_NAME_CALL_API
34
	DECLARE @DEP_ID VARCHAR(15),@BRANCH_TYPE VARCHAR(15)
35
	
36
	DECLARE
37
	@COST_ID TABLE (
38
		COST_ID VARCHAR(15)
39
	)
40

    
41
	DECLARE @DVDM_ID TABLE (
42
		DVDM_ID VARCHAR(15)
43
	)
44
	SET @DEP_ID =(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_TLNAME_USER)
45
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
46

    
47

    
48
	IF(EXISTS(SELECT DEP_CODE FROM dbo.CM_DEPARTMENT WHERE DEP_ID=@DEP_ID AND DEP_CODE LIKE '069%'))
49
	BEGIN
50
		SET @BRANCH_TYPE='HS'
51
	END
52

    
53
  
54
	SELECT * INTO #AUTHOR FROM  [dbo].[FN_GET_ROLE_USER_BY_TLNAME] (@p_TLNAME_USER, @MENU_PERMISSION)
55

    
56
	SELECT * INTO #AUTHOR_DVDM FROM  [dbo].[FN_GET_ROLE_DVDM_USER_BY_TLNAME] (@p_TLNAME_USER, @MENU_PERMISSION)
57

    
58
	INSERT INTO @COST_ID
59
	SELECT COST_ID FROM dbo.PL_COSTCENTER_DT WHERE DEP_ID=@DEP_ID AND BRANCH_ID=@p_BRANCH_LOGIN
60
	INSERT INTO @DVDM_ID
61
	SELECT DVDM_ID FROM dbo.PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM @COST_ID) GROUP BY DVDM_ID
62
		----- GIANT 23/12/2021
63
	IF(@p_FR_DATE IS NULL)
64
	BEGIN
65
			SET @p_FR_DATE = GETDATE()
66
			SET @p_FR_DATE = DATEADD(YEAR,-1,@p_FR_DATE)
67
	END
68
			
69
			SELECT A.REQ_ID,A.REQ_CODE,A.REQ_NAME,A.REQ_DT,A.REQ_TYPE,A.REQ_CONTENT, A.REQ_REASON,A.BRANCH_ID,
70
              A.TOTAL_AMT AS TOTAL_AMT,A.NOTES, A.RECORD_STATUS,A.MAKER_ID,A.CREATE_DT,A.AUTH_STATUS,A.CHECKER_ID,
71

    
72
			   UDV.TLFullName AS CHECKER_NAME_DV,
73
			  
74
			   A.APPROVE_DT,
75
               A.PROCESS_ID,
76
			   D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_DV,
77
			   CASE WHEN A.PROCESS_ID='APPROVE' THEN N'Đã duyệt'
78
			   ELSE N'Chờ duyệt' END AS AUTH_STATUS_NAME,
79
			   G.BRANCH_CODE,
80
			   G.BRANCH_NAME,
81
			   UP.TLFullName AS CHECKER_NAME_PROCESS,
82
			   RP.APPROVE_DT AS APPROVE_DT_PROCESS,
83
			   UC.TLFullName AS MAKER_NAME,
84
			   PLRP.PROCESS_ID AS PROCESS_ID_NEXT,
85
			   RP.ROLE_USER, 
86
			   RP.NOTES AS PROCESS_STATUS , 
87
			   PLRP.NOTES AS PROCESS_STATUS_NEXT,
88
			   A.DVDM_APP_ID,
89
			   CD.DVDM_NAME AS DVDM_APP_NAME,
90
			   A.REQ_PARENT_ID,
91
			   PARENT.REQ_NAME AS REQ_PARENT_NAME,
92
			   PARENT.REQ_CODE AS REQ_PARENT_CODE,
93
			   PARENT.TOTAL_AMT AS REQ_PARENT_AMT,
94
			   A.BRANCH_FEE,
95
			   A.DEP_ID,
96
			   A.DEP_FEE,
97
			   DEP.DEP_NAME,
98
			   DEP.DEP_CODE,
99
			   BF.BRANCH_NAME AS BRANCH_FEE_NAME,
100
			   BF.BRANCH_CODE AS BRANCH_FEE_CODE,
101
			   DF.DEP_NAME AS DEP_FEE_NAME,
102
			   DF.DEP_CODE AS DEP_FEE_CODE,
103
			   '' AS BRANCH_DEP,
104
			   '' AS BRANCH_DEP_FEE,
105
			  CASE WHEN RPC.TYPE_JOB IS NULL OR RPC.TYPE_JOB ='' THEN 'TP' ELSE RPC.TYPE_JOB END AS TYPE_JOB,
106
			   RPC.TLNAME AS USER_JOB,
107
			   TU.TLFullName AS USER_JOB_NAME,
108
			   TFM.TLNANME AS TRANSFER_MAKER,
109
			    RPC.TRANFER_DT AS TRANFER_DT ,
110
				RPC.MAKER_ID AS TRANSFER_MAKER_ID,
111
			   A.EFFEC_DT,A.IS_BACKDAY,
112
			   '' AS TYPE_JOB_XL,
113
			   '' AS USER_JOB_XL,
114
			   PLRP.ID AS REF_ID,
115
			   PLRP.STATUS AS STATUS_NEXT,
116
			   PLRP.STATUS AS STATUS_CURR,
117
			    RPC.STATUS_JOB AS STATUS_JOB,
118
			   A.BRANCH_CREATE,
119
			   A.DEP_CREATE,
120
			   A.REQ_LINE,
121
			   A.TC_NOTES,
122
			   A.SIGN_USER,
123
			   TL.TLFULLNAME AS SIGN_USER_NAME,
124
			   A.KT_NOTES,
125
			     A.IS_CHECKALL,
126
			   A.BASED_CONTENT, 
127
			   CASE 
128
         	WHEN (RPC.REQ_ID IS NOT NULL AND RPC.REQ_ID <> '' AND (RPC.MAKER_ID =@p_TLNAME_USER OR @p_ROLE_USER ='KSV')) OR (EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND CHECKER_ID=@p_TLNAME_USER)) THEN 'Y'
129
         	WHEN (@p_ROLE_USER ='KSV' AND ISNULL(RPC.REQ_ID,'') = '') OR (@p_ROLE_USER<> 'KSV' AND (ISNULL(RPC.REQ_ID,'') = '' OR (ISNULL(RPC.REQ_ID,'') <> '' AND RPC.MAKER_ID <> @p_TLNAME_USER))) THEN 'N'
130
         	ELSE 'N'
131
         END AS IS_TRANSFER,
132
			  --NGUOI XU LY
133
			 -- dbo.PL_PROCESS_CURRENT_NGUOIXULY(A.REQ_ID,NULL,'TTCT-DVKD',0) AS NGUOIXULY
134
			  NXL.NGUOIXULY AS NGUOIXULY,A.TK_TGD_NOTES,A.TK_HDQT_NOTES, A.OTHER_NOTES
135
			  --PLQ.TLFullName CHECKER_NAME_DV 
136
			-- SELECT END
137
		FROM PL_REQUEST_DOC A 	
138
		INNER JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
139
		--LEFT JOIN dbo.PL_REQUEST_PROCESS PLRP ON PLRP.REQ_ID=A.REQ_ID AND PLRP.STATUS = 'C' AND PLRP.IS_HAS_CHILD=1
140
--		LEFT JOIN dbo.PL_REQUEST_PROCESS RPN 
141
--		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') )
142
		LEFT JOIN dbo.PL_REQUEST_PROCESS RP ON RP.ID=(SELECT MAX(B.ID) FROM PL_REQUEST_PROCESS B WHERE B.REQ_ID=A.REQ_ID AND B.PROCESS_ID=PLRP.PARENT_PROCESS_ID)	
143
		LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
144
		LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
145
		LEFT JOIN dbo.CM_DEPARTMENT DEP ON DEP.DEP_ID=A.DEP_ID
146

    
147
		LEFT JOIN CM_BRANCH BF ON BF.BRANCH_ID=A.BRANCH_FEE
148
		LEFT JOIN dbo.CM_DEPARTMENT DF ON DF.DEP_ID=A.DEP_FEE
149
		LEFT JOIN dbo.TL_USER UC ON UC.TLNANME=A.MAKER_ID
150
		LEFT JOIN dbo.CM_PROCESS_STATUS PS ON PS.PROCESS_ID = A.PROCESS_ID
151
		LEFT JOIN dbo.CM_PROCESS_STATUS PSN ON PSN.PROCESS_ID = A.PROCESS_ID
152
		LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=A.DVDM_APP_ID
153
		LEFT JOIN dbo.PL_REQUEST_PROCESS_CHILD RPC ON RPC.REQ_ID=A.REQ_ID AND RPC.PROCESS_ID=PLRP.ID AND (RPC.STATUS_JOB='C' OR RPC.STATUS_JOB='R')
154
		
155
		LEFT JOIN dbo.TL_USER UDV ON UDV.TLNANME=A.CHECKER_ID
156
	
157
		LEFT JOIN dbo.TL_USER UP ON UP.TLNANME=RP.CHECKER_ID
158
		LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=RPC.TLNAME
159
		LEFT JOIN dbo.TL_USER TFM ON TFM.TLNANME=RPC.MAKER_ID
160
		LEFT JOIN dbo.PL_REQUEST_DOC PARENT ON PARENT.REQ_ID=A.REQ_PARENT_ID
161
		LEFT JOIN TL_USER TL ON A.SIGN_USER = TL.TLNANME
162
		OUTER APPLY
163
		(
164
			SELECT [dbo].[FN_PL_REQUEST_DOC_GET_NEXT_USER](A.REQ_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
165
		) NXL
166
		-- GIANT
167
		--LEFT JOIN (
168
		--	SELECT AB.ID,AB.REQ_ID,AB.PROCESS_ID,BC.TLFullName,AB.TLNAME FROM PL_REQUEST_PROCESS_CHILD AB LEFT JOIN TL_USER  BC ON AB.TLNAME = BC.TLNANME
169
			
170
		--) PLQ ON A.REQ_ID = PLQ.REQ_ID
171
		WHERE 1 = 1
172
		AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
173
		AND (@p_REQ_ID IS NULL OR @p_REQ_ID = '' OR A.REQ_ID LIKE '%' + @p_REQ_ID + '%')
174
		AND (@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '' OR A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%')
175
		AND (@p_REQ_REASON IS NULL OR @p_REQ_REASON = '' OR A.REQ_REASON LIKE '%' + @p_REQ_REASON + '%')
176
		AND (@p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0 OR A.TOTAL_AMT=@p_TOTAL_AMT)
177
		AND (@p_REQ_NAME IS NULL OR @p_REQ_NAME = '' OR A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%')	
178
--		AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
179
		AND (@p_MAKER_ID IS NULL OR @p_MAKER_ID = '' OR A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%')
180
		
181
		AND (@p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '' OR A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%')
182
		AND	(@p_CREATE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_CREATE_DT,103)) = 0) 
183
		AND	(@p_APPROVE_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_APPROVE_DT,103)) = 0) 
184
		AND	(@p_REQ_DT IS NULL OR DATEDIFF(DAYOFYEAR, A.CREATE_DT,CONVERT(datetime, @p_REQ_DT,103)) = 0) 
185
		AND (@p_REQ_TYPE IS NULL OR @p_REQ_TYPE =-1 OR A.REQ_TYPE = @p_REQ_TYPE)
186
		--AND (@p_RECEIVE_BRANCH IS NULL OR A.PO_ID IN (SELECT PO_ID FROM TR_PO_DETAIL WHERE RECEIVE_BRANCH=@p_RECEIVE_BRANCH))
187
		AND A.RECORD_STATUS = '1'	
188
		AND((EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD WHERE TLNAME=@p_TLNAME_USER AND TYPE_JOB='KS' AND PL_REQUEST_PROCESS_CHILD.PROCESS_ID=PLRP.ID))
189
		OR EXISTS(SELECT AUTH.ROLE_DISPLAYNAME FROM #AUTHOR_DVDM AUTH WHERE AUTH.ROLE_DISPLAYNAME=PLRP.ROLE_USER
190
		AND ((PLRP.PROCESS_ID='DVDC' AND PLRP.BRANCH_ID=AUTH.BRANCH_ID AND (PLRP.DEP_ID=AUTH.DEP_ID OR PLRP.DEP_ID IS NULL OR PLRP.DEP_ID=''))
191
  			OR PLRP.DVDM_ID=AUTH.DVDM_ID
192
  			OR ((PLRP.DVDM_ID ='' OR PLRP.DVDM_ID  IS NULL) AND (PLRP.BRANCH_ID IS NULL OR PLRP.BRANCH_ID=''))))
193
		)
194
		AND(@p_FR_DATE IS NULL  OR @p_REQ_ID IS NOT NULL OR CONVERT(DATE,A.REQ_DT,103) >= CONVERT(DATE,@p_FR_DATE,103)) --- 29112023_SECRETKEY FIX LỖI NẾU ĐÃ TRUYỀN ID XUỐNG THÌ KHÔNG CARE NGÀY THÁNG
195
		AND(@p_TO_DATE IS NULL  OR CONVERT(DATE,A.REQ_DT,103) <= CONVERT(DATE,@p_TO_DATE,103))
196
		AND(@p_YEAR IS NULL OR @p_YEAR=0  OR YEAR(A.REQ_DT)=@p_YEAR)	
197
			AND (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''
198
		  OR (@p_AUTH_STATUS='A' AND  PLRP.STATUS='P') OR( @p_AUTH_STATUS='U' AND (PLRP.STATUS='C'))
199
		)
200
			AND (NOT EXISTS(SELECT ID FROM dbo.PL_REQUEST_PROCESS_CHILD PRRC WHERE PRRC.PROCESS_ID=PLRP.ID AND PRRC.STATUS_JOB='C' AND PRRC.TYPE_JOB='TP' AND PRRC.REQ_ID=@p_REQ_ID))
201
				AND (@p_IS_TRANSFER = '' OR @p_IS_TRANSFER IS NULL
202
				OR (((RPC.REQ_ID IS NOT NULL AND RPC.REQ_ID <> '' AND (RPC.MAKER_ID =@p_TLNAME_USER OR @p_ROLE_USER ='KSV')) OR (EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID = A.REQ_ID AND CHECKER_ID=@p_TLNAME_USER))) AND @p_IS_TRANSFER = 'Y') --- LUCTV 22-10-2022 LUCTV DIEU CHINH CACH XAC ĐỊNH ĐÃ ĐIỀU PHỐI / CHƯA ĐIỀU PHỐI
203
				OR (
204
						(@p_ROLE_USER ='KSV' AND ISNULL(RPC.REQ_ID,'') = '') OR (@p_ROLE_USER<> 'KSV' AND (ISNULL(RPC.REQ_ID,'') = '' OR (ISNULL(RPC.REQ_ID,'') <> '' AND RPC.MAKER_ID <> @p_TLNAME_USER)))
205
								AND @p_IS_TRANSFER = 'N')
206
		)
207
		AND(@p_NGUOIXULY  IS NULL OR @p_NGUOIXULY  = ''
208
      OR NXL.NGUOIXULYTLNAME LIKE '%' + @p_NGUOIXULY  + '%' 
209
			OR NXL.NGUOIXULY LIKE '%' + @p_NGUOIXULY  + '%'
210
    )
211
    AND A.REQ_CODE NOT LIKE N'%TTDC%'
212
--		AND (A.REQ_ID NOT IN( SELECT REQ_DOC_ID FROM PL_REQUEST_TRANSFER) )
213
		---- GIANT 26/10/2021
214
		--AND (A.REQ_ID IN (SELECT PL_REQUEST_DOC_DT.REQ_ID FROM PL_REQUEST_DOC_DT WHERE PL_REQUEST_DOC_DT.REQ_ID = A.REQ_ID))
215
		---- GIANT 
216
		AND (A.BRANCH_CREATE = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
217
		AND (A.DEP_CREATE = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
218
	ORDER BY A.CREATE_DT DESC