1
|
|
2
|
ALTER PROCEDURE dbo.TR_REQUEST_SHOP_DOC_ById
|
3
|
@REQ_ID varchar(15),
|
4
|
@p_USERNAME VARCHAR(100),
|
5
|
@p_STATUS VARCHAR(20)
|
6
|
AS
|
7
|
DECLARE @ROLE_KT VARCHAR(50) = (SELECT TU.RoleName FROM TL_USER TU WHERE TU.TLNANME = @p_USERNAME)
|
8
|
DECLARE @BRANCHID VARCHAR(20),@DEP_ID VARCHAR(20),@ROLE VARCHAR(20)
|
9
|
SELECT @BRANCHID=TLSUBBRID ,@DEP_ID=DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME
|
10
|
|
11
|
DECLARE @ROLE_LOGIN TABLE(ROLE_USER VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20))
|
12
|
INSERT INTO @ROLE_LOGIN
|
13
|
SELECT tugr.ROLE_ID, tugr.BRANCH_ID, tugr.DEPT_ID FROM dbo.TL_USER_GET_ROLES(@p_USERNAME) tugr
|
14
|
|
15
|
DECLARE @lstCOST TABLE (
|
16
|
COST_ID VARCHAR(20)
|
17
|
)
|
18
|
|
19
|
INSERT INTO @lstCOST
|
20
|
SELECT COST_ID FROM dbo.TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @REQ_ID
|
21
|
|
22
|
--SET @p_STATUS = (SELECT STATUS FROM dbo.TR_REQUEST_SHOP_DOC WHERE REQ_ID=@REQ_ID)
|
23
|
SET @ROLE=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@REQ_ID AND STATUS='C')
|
24
|
|
25
|
DECLARE @REQ_ID_Temp TABLE(REQ_ID VARCHAR(20))
|
26
|
INSERT INTO @REQ_ID_Temp
|
27
|
SELECT A.REQ_ID FROM TR_REQUEST_SHOP_DOC A
|
28
|
LEFT JOIN PL_REQUEST_PROCESS B ON A.REQ_ID = B.REQ_ID AND B.STATUS = 'C'
|
29
|
WHERE (EXISTS(SELECT RL.ROLE_USER FROM @ROLE_LOGIN RL WHERE RL.BRANCH_ID = B.BRANCH_ID
|
30
|
AND (B.BRANCH_ID = 'DV0001' AND B.DEP_ID = RL.DEP_ID OR B.BRANCH_ID <> 'DV0001')
|
31
|
AND RL.ROLE_USER = B.ROLE_USER)
|
32
|
OR EXISTS(SELECT * FROM @ROLE_LOGIN RL
|
33
|
JOIN PL_REQUEST_PROCESS C ON C.REQ_ID = A.REQ_ID AND C.STATUS = 'P' AND RL.BRANCH_ID = C.BRANCH_ID
|
34
|
AND (C.BRANCH_ID = 'DV0001' AND C.DEP_ID = RL.DEP_ID OR C.BRANCH_ID <> 'DV0001')
|
35
|
AND RL.ROLE_USER = C.ROLE_USER)
|
36
|
OR A.MAKER_ID = @p_USERNAME)
|
37
|
GROUP BY A.REQ_ID
|
38
|
HAVING A.REQ_ID = @REQ_ID
|
39
|
|
40
|
SELECT T.*, B.BRANCH_NAME, B.BRANCH_TYPE AS BRANCH_CRTYPE, PR.DVKD_USER_APP, PL.DVKD_USER_APP AS QLTS_USER_APP, CD.DEP_CODE, CD.DEP_NAME, 'Admin' AS DVKD_USER_APP
|
41
|
,TU2.TLFullName AS MAKER_NAME, TU.TLFullName AS CHECKER_NAME
|
42
|
,CASE WHEN T.REQ_TYPE = 'CPTS' AND T.IS_DONE = '1' AND T.STATUS = 'DONE' THEN 'APPROVE' ELSE T.STATUS END AS STATUS
|
43
|
FROM TR_REQUEST_SHOP_DOC T
|
44
|
LEFT JOIN CM_BRANCH B ON T.BRANCH_ID = B.BRANCH_ID
|
45
|
LEFT JOIN CM_DEPARTMENT CD ON T.DEP_ID = CD.DEP_ID
|
46
|
LEFT JOIN PL_REQUEST_PROCESS PR ON PR.REQ_ID=T.REQ_ID AND PR.PROCESS_ID = 'APPNEW'
|
47
|
LEFT JOIN PL_REQUEST_PROCESS PL ON PL.REQ_ID=T.REQ_ID AND PL.PROCESS_ID = 'TTQLTS_D'
|
48
|
LEFT JOIN TL_USER TU ON T.CHECKER_ID = TU.TLNANME
|
49
|
LEFT JOIN TL_USER TU2 ON T.MAKER_ID = TU2.TLNANME
|
50
|
WHERE (EXISTS(SELECT * FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = T.REQ_ID)
|
51
|
OR (@ROLE_KT IN ('GDV','KSV') AND T.AUTH_STATUS = 'A')
|
52
|
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
|
53
|
WHERE US.TLNANME = @p_USERNAME))
|