Project

General

Profile

Feature #1374

UAT NGÀY 31 05 2022 ĐẾN NGÀY 15 06 2022

Added by Luc Tran Van about 3 years ago. Updated almost 3 years ago.

Status:
New
Priority:
Normal
Assignee:
Start date:
05/31/2022
Due date:
% Done:

0%

Estimated time:

Ngôn ngữ.txt (1.33 KB) Ngôn ngữ.txt Ngôn ngữ BB xét giá Luc Tran Van, 05/31/2022 11:53 AM
Ngôn ngữ BDS.txt (1.09 KB) Ngôn ngữ BDS.txt Luc Tran Van, 06/01/2022 01:59 PM
BUD_CONTRACT_GetInternalArea.txt (1.8 KB) BUD_CONTRACT_GetInternalArea.txt Luc Tran Van, 06/01/2022 01:59 PM
TR_CONTRACT_DT_BY_REF.txt (751 Bytes) TR_CONTRACT_DT_BY_REF.txt Luc Tran Van, 06/01/2022 01:59 PM
CM_ALLCODE BUD_CONTRACT.txt (347 Bytes) CM_ALLCODE BUD_CONTRACT.txt Luc Tran Van, 06/01/2022 04:08 PM
Hotfix.zip (4.74 MB) Hotfix.zip Luc Tran Van, 06/03/2022 02:35 PM
TR_REQUEST_JOB_FORM.txt (189 KB) TR_REQUEST_JOB_FORM.txt Luc Tran Van, 06/03/2022 03:19 PM
tr_req_job_form_030622.txt (188 KB) tr_req_job_form_030622.txt Luc Tran Van, 06/03/2022 03:28 PM
TR_REQUEST_JOB_FORM.txt (26.1 KB) TR_REQUEST_JOB_FORM.txt Luc Tran Van, 06/06/2022 02:01 PM
TR_REQUEST_JOB_FORM_Search.txt (7.92 KB) TR_REQUEST_JOB_FORM_Search.txt Luc Tran Van, 06/06/2022 02:30 PM
060622_log_2.txt (4.89 KB) 060622_log_2.txt Luc Tran Van, 06/06/2022 03:06 PM
pushcore_060622.txt (1.39 KB) pushcore_060622.txt Luc Tran Van, 06/06/2022 04:32 PM
PYC-CT.txt (127 KB) PYC-CT.txt Luc Tran Van, 06/09/2022 12:49 PM
exec_qr.txt (129 Bytes) exec_qr.txt Luc Tran Van, 06/09/2022 02:27 PM
TTTU_QuanLyTaiKhoan.txt (491 Bytes) TTTU_QuanLyTaiKhoan.txt Luc Tran Van, 06/09/2022 03:50 PM
TTTU_QuanLyTaiKhoan_TrangThaiDuyet.txt (320 Bytes) TTTU_QuanLyTaiKhoan_TrangThaiDuyet.txt Luc Tran Van, 06/13/2022 03:17 PM
TTTU_DinhMucChiPhi.txt (706 Bytes) TTTU_DinhMucChiPhi.txt Luc Tran Van, 06/14/2022 05:26 PM
200622_hotfix_tr_req_payment_ins.txt (83.7 KB) 200622_hotfix_tr_req_payment_ins.txt Luc Tran Van, 06/20/2022 02:29 PM
200622_hotfix_tr_req_payment_ins.txt (78.2 KB) 200622_hotfix_tr_req_payment_ins.txt Luc Tran Van, 06/20/2022 02:37 PM
CTP2.xls (59.5 KB) CTP2.xls Luc Tran Van, 06/22/2022 05:11 PM
CTP.xlsx (23.9 KB) CTP.xlsx Luc Tran Van, 06/22/2022 05:11 PM
pay_trans_outside.txt (1 KB) pay_trans_outside.txt Luc Tran Van, 06/23/2022 01:49 PM
MW_CM_ALLCODE_PhanBoChiPhi.txt (241 Bytes) MW_CM_ALLCODE_PhanBoChiPhi.txt Luc Tran Van, 06/24/2022 09:32 AM
Budget_Limit.zip (51.1 KB) Budget_Limit.zip Luc Tran Van, 06/27/2022 04:24 PM
TR_REQ_CAR.txt (11.1 KB) TR_REQ_CAR.txt Luc Tran Van, 06/29/2022 12:13 PM
TR_REQ_CAR.txt (11.1 KB) TR_REQ_CAR.txt Luc Tran Van, 06/29/2022 12:20 PM
Hotfix.zip (4.79 MB) Hotfix.zip Luc Tran Van, 06/29/2022 01:08 PM
data_invoice_290622.xlsx (9.11 KB) data_invoice_290622.xlsx Luc Tran Van, 06/29/2022 04:41 PM
data_invoice_290622.xlsx (9.39 KB) data_invoice_290622.xlsx Luc Tran Van, 06/29/2022 04:48 PM
New folder.zip (411 KB) New folder.zip Luc Tran Van, 06/30/2022 01:07 PM
New folder (2).zip (4.72 MB) New folder (2).zip Luc Tran Van, 06/30/2022 01:07 PM
budget_year_limit.txt (5.47 KB) budget_year_limit.txt Luc Tran Van, 06/30/2022 02:38 PM
BUD_CONTRACT_Ins.txt (9.28 KB) BUD_CONTRACT_Ins.txt Luc Tran Van, 06/30/2022 03:34 PM
BUD_MASTER_Upd.txt (7.92 KB) BUD_MASTER_Upd.txt Luc Tran Van, 06/30/2022 03:34 PM
CM_ALLCODE_ASS_STATUS.txt (265 Bytes) CM_ALLCODE_ASS_STATUS.txt Luc Tran Van, 06/30/2022 03:34 PM
Hotfix1.zip (378 KB) Hotfix1.zip Luc Tran Van, 07/01/2022 01:42 PM
Hotfix2.zip (4.75 MB) Hotfix2.zip Luc Tran Van, 07/01/2022 01:42 PM
Thông tin trang tờ trình cdt.txt (413 Bytes) Thông tin trang tờ trình cdt.txt Luc Tran Van, 07/04/2022 11:12 AM
Ngôn ngữ tờ trình CDT_BBXG.txt (103 Bytes) Ngôn ngữ tờ trình CDT_BBXG.txt Luc Tran Van, 07/04/2022 11:57 AM
web_logo_login.png (9.42 KB) web_logo_login.png Luc Tran Van, 07/07/2022 04:25 PM
web_logo.png (91.1 KB) web_logo.png Luc Tran Van, 07/07/2022 04:25 PM
Hotfix1.zip (1.91 MB) Hotfix1.zip Luc Tran Van, 07/11/2022 04:00 PM
Hotfix2.zip (3.23 MB) Hotfix2.zip Luc Tran Van, 07/11/2022 04:00 PM
mw.zip (11.2 KB) mw.zip Luc Tran Van, 07/12/2022 01:03 PM
Hotfix1.zip (2.32 MB) Hotfix1.zip Luc Tran Van, 07/12/2022 01:17 PM
Hotfix2.zip (2.82 MB) Hotfix2.zip Luc Tran Van, 07/12/2022 01:17 PM
mw_7.txt (7.3 KB) mw_7.txt Luc Tran Van, 07/12/2022 01:33 PM
mw_8.txt (92.3 KB) mw_8.txt Luc Tran Van, 07/12/2022 01:46 PM
Budget_Limit_year_HO.xlsx (19.9 KB) Budget_Limit_year_HO.xlsx Luc Tran Van, 07/13/2022 12:41 AM
Budget_limit_year_dvkd.xlsx (19.3 KB) Budget_limit_year_dvkd.xlsx Luc Tran Van, 07/13/2022 12:41 AM
Budget_Limit_year_HO.xlsx (14.8 KB) Budget_Limit_year_HO.xlsx Luc Tran Van, 07/13/2022 01:22 PM
Hinh_2.jpg (460 KB) Hinh_2.jpg Luc Tran Van, 07/13/2022 02:20 PM
Hinh_1.jpg (535 KB) Hinh_1.jpg Luc Tran Van, 07/13/2022 02:20 PM
Hinh_3.jpg (519 KB) Hinh_3.jpg Luc Tran Van, 07/13/2022 02:23 PM
log_130722.txt (881 KB) log_130722.txt Luc Tran Van, 07/13/2022 05:37 PM
stored_upd.txt (92.3 KB) stored_upd.txt Luc Tran Van, 07/14/2022 05:07 PM
stored_chungtu_200722.txt (4.45 KB) stored_chungtu_200722.txt Luc Tran Van, 07/20/2022 04:05 PM
fix_attach_file_210722.txt (403 Bytes) fix_attach_file_210722.txt Luc Tran Van, 07/21/2022 10:33 AM
attach_file_210722_v2.txt (233 Bytes) attach_file_210722_v2.txt Luc Tran Van, 07/21/2022 01:55 PM
tr_req_payment_upd_210722.txt (92.2 KB) tr_req_payment_upd_210722.txt Luc Tran Van, 07/21/2022 04:05 PM
mw_entries_byid_220722.txt (609 Bytes) mw_entries_byid_220722.txt Luc Tran Van, 07/22/2022 10:49 AM
link_uat_ams_220722.txt (44 Bytes) link_uat_ams_220722.txt Luc Tran Van, 07/22/2022 11:23 AM
link_uat_ams_220722.txt (105 Bytes) link_uat_ams_220722.txt Luc Tran Van, 07/22/2022 11:24 AM
check_entries_tocore.txt (424 Bytes) check_entries_tocore.txt Luc Tran Van, 07/22/2022 11:39 AM
pl_request_cur_search.txt (29.1 KB) pl_request_cur_search.txt Luc Tran Van, 07/22/2022 12:26 PM
UAT - PTC 2207.docx (337 KB) UAT - PTC 2207.docx Luc Tran Van, 07/22/2022 12:31 PM
đánh giá NCC_hotfix.zip (4.13 KB) đánh giá NCC_hotfix.zip Luc Tran Van, 07/25/2022 11:34 AM
update_ref_no_250722.txt (891 Bytes) update_ref_no_250722.txt Luc Tran Van, 07/25/2022 02:23 PM
Lưu ý hạn mức duyệt CDT.txt (684 Bytes) Lưu ý hạn mức duyệt CDT.txt Luc Tran Van, 07/25/2022 03:49 PM
stored_mw_entries_post_290722.txt (2.17 KB) stored_mw_entries_post_290722.txt Luc Tran Van, 07/29/2022 08:09 AM

History

#4 Updated by Luc Tran Van about 3 years ago

#11 Updated by Luc Tran Van about 3 years ago

#18 Updated by Luc Tran Van almost 3 years ago

#35 Updated by Luc Tran Van almost 3 years ago

#37 Updated by Luc Tran Van almost 3 years ago

#38 Updated by Luc Tran Van almost 3 years ago

#53 Updated by Luc Tran Van almost 3 years ago

ALTER PROCEDURE [dbo].[PL_PROCESS_CURRENT_SEARCH]
@p_REQ_ID VARCHAR=NULL,
@p_USER_LOGIN VARCHAR=NULL,
@p_TYPE VARCHAR=NULL
AS
BEGIN

DECLARE @PROCESS_CURR VARCHAR,@IS_HAS_CHILD BIT

SELECT TOP 1 @PROCESS_CURR = PROCESS_ID,@IS_HAS_CHILD=IS_HAS_CHILD FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C'

IF
BEGIN
IF
BEGIN

DECLARE @SIGN_USER VARCHAR(15), @CURENT_PROCESS VARCHAR(50)
SET @SIGN_USER = (SELECT SIGN_USER FROM dbo.PL_REQUEST_DOC WHERE REQ_ID = @p_REQ_ID)
SET @CURENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS='C')
-- Nếu có cấp phê duyệt trung gian
IF(@SIGN_USER IS NOT NULL AND @SIGN_USER <> '' AND @CURENT_PROCESS = 'SIGN')
BEGIN
SELECT distinct PL.REQ_ID,PL.PROCESS_ID, CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
LEFT JOIN
(
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU
LEFT JOIN(
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME='')))
AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
LEFT JOIN dbo.PL_REQUEST_DOC RD ON RD.REQ_ID = PL.REQ_ID
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C' AND (PL.PROCESS_ID = 'SIGN' AND TempU.TLNANME = RD.SIGN_USER)
END
ELSE
BEGIN
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,
CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,
TempU.TLNANME AS TLNAME,
TempU.TLFullName,
PL.NOTES
FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
LEFT JOIN
(
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU
LEFT JOIN(
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
UNION ALL
SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID
FROM dbo.TL_SYS_ROLE_MAPPING TU
LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
LEFT JOIN(
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID
WHERE CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
) TempU ON (TempU.RoleName=PL.ROLE_USER)
AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
AND (((SELECT TOP 1 BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = PL.BRANCH_ID) = 'HS' AND TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
OR (SELECT TOP 1 BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = PL.BRANCH_ID) <> 'HS')
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C'
END

END

ELSE IF
BEGIN
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
LEFT JOIN
(
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
)TempC ON TempC.PROCESS_ID =PL.ID AND TempC.REQ_ID = PL.REQ_ID AND PL.IS_HAS_CHILD=1
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
LEFT JOIN
(
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU
LEFT JOIN(
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
UNION ALL
SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID FROM dbo.TL_SYS_ROLE_MAPPING TU
LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
LEFT JOIN(
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID
WHERE CAST >= CAST AS DATE)
) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'
END
END
ELSE IF
BEGIN
IF

BEGIN

SELECT distinct PL.REQ_ID,PL.PROCESS_ID, BR.BRANCH_NAME  AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES 
FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
LEFT JOIN
(
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,TU.SECUR_CODE,TU.TLSUBBRID
FROM (
SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
dbo.TL_USER TS
UNION ALL
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
dbo.TL_SYS_ROLE_MAPPING TM
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
) TU
) TempU ON (TempU.RoleName =PL.ROLE_USER OR PL.ROLE_USER=(SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
WHERE REQ_ID =@p_REQ_ID AND STATUS='C'

END
ELSE IF
BEGIN
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
LEFT JOIN
(
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
LEFT JOIN
(
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID
FROM (
SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
dbo.TL_USER TS
UNION ALL
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
dbo.TL_SYS_ROLE_MAPPING TM
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
WHERE CAST >= CAST AS DATE)
) TU
LEFT JOIN(
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
) TempU ON (TempU.RoleName IN (SELECT VALUE FROM WSISPLIT) OR EXISTS (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_NEW IN (SELECT VALUE FROM WSISPLIT) AND ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')

WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'
END
END

ELSE IF
BEGIN
IF
BEGIN
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
LEFT JOIN dbo.TR_REQUEST_DOC TR ON TR.REQ_ID=PL.REQ_ID
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
LEFT JOIN
(
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
LEFT JOIN
(
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DMMS_ID
FROM
(
SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
dbo.TL_USER TS
UNION ALL
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
dbo.TL_SYS_ROLE_MAPPING TM
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
WHERE CAST >= CAST AS DATE)
) TU
LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
LEFT JOIN(
SELECT PC.DMMS_ID,PC.DEP_ID,PC.BRANCH_ID FROM dbo.CM_DMMS PC
UNION ALL
SELECT DVDM.DVDM_ID AS DMMS_ID,DVDM.DEP_ID,DVDM.BRANCH_ID FROM
(
SELECT CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID FROM dbo.CM_DVDM CD
LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID = PC.COST_ID
WHERE CD.IS_KHOI <>1
GROUP BY CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID
) DVDM
) Temp ON (Temp.DEP_ID=TU.SECUR_CODE OR CB.BRANCH_TYPE<>'HS') AND Temp.BRANCH_ID=TU.TLSUBBRID

) TempU ON (TempU.RoleName=PL.ROLE_USER  OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.DMMS_ID=TR.DMMS_ID) AND TempC.ID IS NULL
WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'    
END
ELSE IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)

BEGIN
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
LEFT JOIN
(
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID
FROM (
SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
dbo.TL_USER TS
UNION ALL
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
dbo.TL_SYS_ROLE_MAPPING TM
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
WHERE CAST >= CAST AS DATE)
) TU
LEFT JOIN
(
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID
) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
WHERE REQ_ID =@p_REQ_ID AND STATUS='C'

END
ELSE IF
BEGIN
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
LEFT JOIN
(
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
LEFT JOIN
(
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID
FROM (
SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
dbo.TL_USER TS
UNION ALL
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
dbo.TL_SYS_ROLE_MAPPING TM
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
WHERE CAST >= CAST AS DATE)
) TU
LEFT JOIN(
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'
END
END

ELSE IF
BEGIN
SET @SIGN_USER = (SELECT SIGN_USER FROM dbo.ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_REQ_ID)
SET @CURENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS='C')

-- Nếu có cấp phê duyệt trung gian
IF(@SIGN_USER IS NOT NULL AND @SIGN_USER <> '' AND @CURENT_PROCESS = 'SIGN')
BEGIN
SELECT distinct PL.REQ_ID,PL.PROCESS_ID, BR.BRANCH_NAME AS DVDM_NAME,TU.TLNANME AS TLNAME,TU.TLFullName,PL.NOTES
FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN dbo.ASS_INVENTORY_MASTER AI ON AI.INVENT_ID = PL.REQ_ID
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME = AI.SIGN_USER
WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C' AND PL.PROCESS_ID = 'SIGN'
END
ELSE IF(@CURENT_PROCESS = 'APPNEW')
BEGIN
SELECT PL.REQ_ID, Pl.PROCESS_ID,BR.BRANCH_NAME AS DVDM_NAME, TmpU.TLNANME, TmpU.TLFullName, PL.NOTES
FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN (
SELECT * FROM [dbo].[FN_GET_USER_BY_ROLE] ('', '', '')
) TmpU ON 1=1
LEFT JOIN dbo.CM_BRANCH BR ON BR.BRANCH_ID = PL.BRANCH_ID
WHERE PL.REQ_ID = @p_REQ_ID AND PL.STATUS = 'C'
AND ((TmpU.ROLE_OLD = PL.ROLE_USER OR TmpU.ROLE_NEW = PL.ROLE_USER) OR PL.ROLE_USER IS NULL OR PL.ROLE_USER = '')
AND ((BR.BRANCH_TYPE = 'HS' AND TmpU.BRANCH_ID = PL.BRANCH_ID AND TmpU.DEP_ID = PL.DEP_ID)
OR (BR.BRANCH_TYPE <> 'HS' AND TmpU.BRANCH_ID = PL.BRANCH_ID)
OR (PL.BRANCH_ID IS NULL OR PL.BRANCH_ID = '')
)
END
ELSE IF(@CURENT_PROCESS <> 'APPNEW')
BEGIN
SELECT PL.REQ_ID, Pl.PROCESS_ID,BR.BRANCH_NAME AS DVDM_NAME, TU.TLNANME, TU.TLFullName, PL.NOTES
FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME = PL.ROLE_USER
LEFT JOIN dbo.CM_BRANCH BR ON BR.BRANCH_ID = TU.TLSUBBRID
WHERE PL.REQ_ID = @p_REQ_ID AND PL.STATUS = 'C'
END
END

----------------BAODNQ 6/6/2022 TỜ TRÌNH CHỈ ĐỊNH THẦU--------------
ELSE IF (@p_TYPE = 'TT_CDT')
BEGIN
SET @SIGN_USER = (SELECT SIGN_USER FROM PL_APPOINT_CONTRACTOR WHERE REQ_ID = @p_REQ_ID)
SET @CURENT_PROCESS = (
SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS = 'C'
)
-------------CÓ CẤP DUYỆT TRUNG GIAN-----------
IF
BEGIN
SELECT DISTINCT
PRP.REQ_ID,
PRP.PROCESS_ID,
CASE
WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME
ELSE CB.BRANCH_NAME
END AS DVDM_NAME,
TLUSER.TLNANME AS TLNAME, TLUSER.TLFullName, PRP.NOTES
FROM PL_REQUEST_PROCESS PRP
LEFT JOIN CM_DVDM CD ON PRP.DVDM_ID = CD.DVDM_ID
LEFT JOIN(
SELECT
TU.TLNANME, TU.TLFullName, TU.RoleName, PCOST.DVDM_ID, TU.SECUR_CODE,
TU.DEP_ID, TU.TLSUBBRID
FROM TL_USER TU
LEFT JOIN (
SELECT PC.DVDM_ID, PD.BRANCH_ID, PD.DEP_ID
FROM PL_COSTCENTER PC
LEFT JOIN PL_COSTCENTER_DT PD ON PD.COST_ID = PC.COST_ID
) PCOST ON TU.TLSUBBRID = PCOST.BRANCH_ID AND TU.DEP_ID = PCOST.DEP_ID

) TLUSER ON (
TLUSER.RoleName = PRP.ROLE_USER
OR PRP.ROLE_USER IN (
SELECT ROLE_NEW
FROM TL_SYS_ROLE_MAPPING TM
WHERE TM.ROLE_OLD = TLUSER.RoleName
AND TM.TLNAME IS NULL OR TM.TLNAME = ''
)
)
AND (TLUSER.TLSUBBRID = PRP.BRANCH_ID OR PRP.BRANCH_ID IS NULL OR PRP.BRANCH_ID = '')
AND (TLUSER.DEP_ID = PRP.DEP_ID OR PRP.DEP_ID IS NULL OR PRP.DEP_ID = '')
AND (TLUSER.DVDM_ID = PRP.DVDM_ID OR PRP.DVDM_ID IS NULL OR PRP.DVDM_ID = '')
LEFT JOIN PL_APPOINT_CONTRACTOR PAC ON PRP.REQ_ID = PAC.REQ_ID
LEFT JOIN CM_BRANCH CB ON PRP.BRANCH_ID = CB.BRANCH_ID
WHERE PRP.REQ_ID = @p_REQ_ID
AND STATUS = 'C'
AND (PRP.PROCESS_ID = 'SIGN' AND TLUSER.TLNANME = PAC.SIGN_USER)
END
ELSE
----------KO CÓ CẤP DUYỆT TRUNG GIAN-------------
BEGIN
SELECT DISTINCT
PRP.REQ_ID,
PRP.PROCESS_ID,
CASE
WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME
ELSE CB.BRANCH_NAME
END AS DVDM_NAME,
TLUSER.TLNANME AS TLNAME, TLUSER.TLFullName, PRP.NOTES
FROM PL_REQUEST_PROCESS PRP
LEFT JOIN CM_DVDM CD ON CD.DVDM_ID = PRP.DVDM_ID
LEFT JOIN
(
SELECT TU.TLNANME, TU.TLFullName, TU.RoleName, PCOST.DVDM_ID, TU.SECUR_CODE,
TU.DEP_ID, TU.TLSUBBRID
FROM TL_USER TU
LEFT JOIN (
SELECT PC.DVDM_ID, PD.BRANCH_ID, PD.DEP_ID
FROM PL_COSTCENTER PC
LEFT JOIN PL_COSTCENTER_DT PD ON PD.COST_ID = PC.COST_ID
) PCOST ON TU.TLSUBBRID = PCOST.BRANCH_ID AND TU.DEP_ID = PCOST.DEP_ID
UNION ALL
SELECT TM.TLNAME, TLU.TLFullName, TM.ROLE_NEW AS RoleName, PCOST.DVDM_ID,
TM.DEP_ID AS SECUR_CODE, TM.DEP_ID AS DEP_ID, TM.BRANCH_ID AS TLSUBBRID
FROM TL_SYS_ROLE_MAPPING TM
LEFT JOIN TL_USER TLU ON TM.TLNAME = TLU.TLNANME
LEFT JOIN (
SELECT PC.DVDM_ID, PD.BRANCH_ID, PD.DEP_ID
FROM PL_COSTCENTER PC
LEFT JOIN PL_COSTCENTER_DT PD ON PD.COST_ID = PC.COST_ID
) PCOST ON TM.BRANCH_ID = PCOST.BRANCH_ID AND TM.DEP_ID = PCOST.DEP_ID
WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
) TLUSER ON (TLUSER.RoleName = PRP.ROLE_USER)
AND (TLUSER.TLSUBBRID = PRP.BRANCH_ID OR PRP.BRANCH_ID IS NULL OR PRP.BRANCH_ID = '')
AND (
((SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE PRP.BRANCH_ID = BRANCH_ID) = 'HS'
AND TLUSER.SECUR_CODE = PRP.DEP_ID OR PRP.DEP_ID IS NULL OR PRP.DEP_ID = '')
OR (SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE PRP.BRANCH_ID = BRANCH_ID) <> 'HS'
)
AND (TLUSER.DVDM_ID = PRP.DVDM_ID OR PRP.DVDM_ID IS NULL OR PRP.DVDM_ID = '')
LEFT JOIN CM_BRANCH CB ON PRP.BRANCH_ID = CB.BRANCH_ID
WHERE PRP.REQ_ID = @p_REQ_ID
AND STATUS = 'C'
END
END

-----------------------BAODNQ 13/7/2022 ĐÁNH GIÁ NCC---------------------------
ELSE IF (@p_TYPE = 'RATE_SUP')
BEGIN
IF
BEGIN
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
LEFT JOIN TR_RATE_SUPPLIER_MASTER TR ON TR.RATE_ID=PL.REQ_ID
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
LEFT JOIN
(
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
LEFT JOIN
(
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DMMS_ID
FROM
(
SELECT TS.TLNANME,TS.TLFullName,
--TS.RoleName,
AR.DisplayName AS RoleName,
TS.TLSUBBRID,TS.SECUR_CODE FROM
dbo.TL_USER TS
JOIN AbpUserRoles AU ON TS.ID = AU.UserId
JOIN AbpRoles AR ON AU.RoleId = AR.Id
UNION ALL
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
dbo.TL_SYS_ROLE_MAPPING TM
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
WHERE CAST >= CAST AS DATE)
) TU
LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=TU.TLSUBBRID
LEFT JOIN(
SELECT PC.DMMS_ID,PC.DEP_ID,PC.BRANCH_ID FROM dbo.CM_DMMS PC
UNION ALL
SELECT DVDM.DVDM_ID AS DMMS_ID,DVDM.DEP_ID,DVDM.BRANCH_ID FROM
(
SELECT CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID FROM dbo.CM_DVDM CD
LEFT JOIN dbo.PL_COSTCENTER PC ON PC.DVDM_ID=CD.DVDM_ID
LEFT JOIN dbo.PL_COSTCENTER_DT PCDT ON PCDT.COST_ID = PC.COST_ID
WHERE CD.IS_KHOI <>1
GROUP BY CD.DVDM_ID,PCDT.BRANCH_ID,PCDT.DEP_ID
) DVDM
) Temp ON (Temp.DEP_ID=TU.SECUR_CODE OR CB.BRANCH_TYPE<>'HS') AND Temp.BRANCH_ID=TU.TLSUBBRID

) TempU ON (
(TempU.RoleName=PL.ROLE_USER
OR (TempU.RoleName='KSV'
AND NOT EXISTS(SELECT TOP 1 PP.CHECKER_ID FROM PL_PROCESS PP WHERE PP.REQ_ID = @p_REQ_ID AND PP.PROCESS_ID = 'DMMS' AND PP.CHECKER_ID = TempU.TLNANME ORDER BY PP.APPROVE_DT DESC)
)
)
OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.DMMS_ID=TR.DMMS_ID) AND TempC.ID IS NULL
WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'    
END
IF(@IS_HAS_CHILD=0 OR @IS_HAS_CHILD IS NULL)
BEGIN
SET @SIGN_USER = (SELECT SIGN_USER FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_REQ_ID)
SET @CURENT_PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND STATUS='C')
-- Nếu có cấp phê duyệt trung gian
IF(@SIGN_USER IS NOT NULL AND @SIGN_USER <> '' AND @CURENT_PROCESS = 'SIGN')
BEGIN
SELECT distinct PL.REQ_ID,PL.PROCESS_ID, CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,TempU.TLNANME AS TLNAME,TempU.TLFullName,PL.NOTES FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
LEFT JOIN
(
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU
LEFT JOIN(
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE TM.ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME='')))
AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
LEFT JOIN dbo.TR_RATE_SUPPLIER_MASTER TRS ON TRS.RATE_ID = PL.REQ_ID
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C' AND (PL.PROCESS_ID = 'SIGN' AND TempU.TLNANME = TRS.SIGN_USER)
END
ELSE
BEGIN
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,
CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,
TempU.TLNANME AS TLNAME,
TempU.TLFullName,
PL.NOTES
FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
LEFT JOIN
(
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID FROM dbo.TL_USER TU
LEFT JOIN(
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
UNION ALL
SELECT TU.TLNAME,US.TLFullName,TU.ROLE_NEW RoleName,Temp.DVDM_ID,TU.DEP_ID SECUR_CODE,TU.BRANCH_ID TLSUBBRID
FROM dbo.TL_SYS_ROLE_MAPPING TU
LEFT JOIN dbo.TL_USER US ON US.TLNANME=TU.TLNAME
LEFT JOIN(
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.DEP_ID AND Temp.BRANCH_ID=TU.BRANCH_ID
WHERE CAST(TU.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
) TempU ON (TempU.RoleName=PL.ROLE_USER)
AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
AND (((SELECT TOP 1 BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = PL.BRANCH_ID) = 'HS' AND TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
OR (SELECT TOP 1 BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = PL.BRANCH_ID) <> 'HS')
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
WHERE PL.REQ_ID = @p_REQ_ID AND STATUS='C'
END
END
ELSE IF(@IS_HAS_CHILD=1)
BEGIN
SELECT distinct PL.REQ_ID,PL.PROCESS_ID,CASE WHEN CD.DVDM_NAME IS NOT NULL AND CD.DVDM_NAME <> '' THEN CD.DVDM_NAME ELSE BR.BRANCH_NAME END AS DVDM_NAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLNANME ELSE TU.TLNANME END AS TLNAME,CASE WHEN TempC.ID IS NULL THEN TempU.TLFullName ELSE TU.TLFullName END AS TLFullName,CASE WHEN TempC.ID IS NULL THEN PL.NOTES ELSE TempC.CONTENT END AS NOTES FROM dbo.PL_REQUEST_PROCESS PL
LEFT JOIN dbo.CM_DVDM CD ON CD.DVDM_ID=PL.DVDM_ID
LEFT JOIN CM_BRANCH BR ON PL.BRANCH_ID = BR.BRANCH_ID
LEFT JOIN
(
SELECT PRC.ID, PRC.PROCESS_ID,PRC.REQ_ID,PRC.TLNAME,AC.CONTENT FROM dbo.PL_REQUEST_PROCESS_CHILD PRC
LEFT JOIN dbo.CM_ALLCODE AC ON AC.CDVAL=PRC.TYPE_JOB AND AC.CDNAME='JOB_TYPE' AND CDTYPE='REQ'
WHERE (PRC.STATUS_JOB='C' OR PRC.STATUS_JOB='R' )
)TempC ON TempC.PROCESS_ID =PL.ID AND PL.IS_HAS_CHILD=1
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=TempC.TLNAME
LEFT JOIN
(
SELECT TU.TLNANME,TU.TLFullName,TU.RoleName,Temp.DVDM_ID,TU.SECUR_CODE,TU.TLSUBBRID
FROM (
SELECT TS.TLNANME,TS.TLFullName,TS.RoleName,TS.TLSUBBRID,TS.SECUR_CODE FROM
dbo.TL_USER TS
UNION ALL
SELECT TM.TLNAME TLNANME,TS.TLFullName,TM.ROLE_NEW RoleName,TM.BRANCH_ID TLSUBBRID,TM.DEP_ID SECUR_CODE FROM
dbo.TL_SYS_ROLE_MAPPING TM
LEFT JOIN dbo.TL_USER TS ON TS.TLNANME=TM.TLNAME
WHERE CAST(TM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE)
) TU
LEFT JOIN(
SELECT PC.DVDM_ID,PD.DEP_ID,PD.BRANCH_ID FROM dbo.PL_COSTCENTER PC
LEFT JOIN dbo.PL_COSTCENTER_DT PD ON PC.COST_ID=PD.COST_ID) Temp ON Temp.DEP_ID=TU.SECUR_CODE AND Temp.BRANCH_ID=TU.TLSUBBRID
) TempU ON (TempU.RoleName=PL.ROLE_USER OR PL.ROLE_USER IN (SELECT ROLE_NEW FROM dbo.TL_SYS_ROLE_MAPPING TM WHERE ROLE_OLD=TempU.RoleName AND (TM.TLNAME IS NULL OR TM.TLNAME=''))) AND (TempU.TLSUBBRID=PL.BRANCH_ID OR PL.BRANCH_ID IS NULL OR PL.BRANCH_ID='')
AND (TempU.SECUR_CODE=PL.DEP_ID OR PL.DEP_ID IS NULL OR PL.DEP_ID='')
AND (TempU.DVDM_ID=PL.DVDM_ID OR PL.DVDM_ID IS NULL OR PL.DVDM_ID ='')
WHERE PL.REQ_ID =@p_REQ_ID AND PL.STATUS='C'
END
END

END
--EXEC CM_GOODS_Search '','','','','',0,'','','','','','','','',100

Also available in: Atom PDF