Project

General

Profile

Bug #1586

Support App Mobile

Added by Luc Tran Van 4 months ago. Updated 3 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Start date:
02/24/2025
Due date:
% Done:

0%

Estimated time:

CM_REQUEST_TEMPLATE_Search.txt (14.3 KB) CM_REQUEST_TEMPLATE_Search.txt Luc Tran Van, 02/24/2025 02:13 PM
PL_REQUEST_DOC_MOBILE_Search.txt (10.1 KB) PL_REQUEST_DOC_MOBILE_Search.txt Luc Tran Van, 02/24/2025 02:13 PM
PL_REQUEST_PROCESS_App.txt (15.6 KB) PL_REQUEST_PROCESS_App.txt Luc Tran Van, 02/24/2025 02:13 PM
[PL_REQUEST_TRANSFER_MOBILE_Search].txt (6.62 KB) [PL_REQUEST_TRANSFER_MOBILE_Search].txt Luc Tran Van, 02/24/2025 02:13 PM
1.0.03.03.2025 BVBANK CAP NHAT HOP DONG.txt (29 KB) 1.0.03.03.2025 BVBANK CAP NHAT HOP DONG.txt Luc Tran Van, 03/04/2025 08:47 AM
LOG BUG MISA.txt (16.6 KB) LOG BUG MISA.txt Luc Tran Van, 03/04/2025 09:13 AM
ocelot_0703.json (56.8 KB) ocelot_0703.json Luc Tran Van, 03/07/2025 04:02 PM
1.0.12.03.2025 BVBANK CAP NHAT QUET HOA DON.txt (43.7 KB) 1.0.12.03.2025 BVBANK CAP NHAT QUET HOA DON.txt Luc Tran Van, 03/12/2025 11:48 AM
script data ngôn ngữ.sql (1.19 MB) script data ngôn ngữ.sql Luc Tran Van, 03/12/2025 02:02 PM
3.0.11.03.2025 BVBANK TIM KIEM PYC MS.txt (136 KB) 3.0.11.03.2025 BVBANK TIM KIEM PYC MS.txt Luc Tran Van, 03/12/2025 03:00 PM
AMS LIVE 12.03.2025.xlsx (35.2 KB) AMS LIVE 12.03.2025.xlsx Luc Tran Van, 03/12/2025 03:41 PM
EXPORT DOANH SỐ NCC - LẦN 2.txt (423 Bytes) EXPORT DOANH SỐ NCC - LẦN 2.txt Luc Tran Van, 03/12/2025 03:50 PM
AMS LIVE 12.03.2025 LAN 2.xlsx (33.6 KB) AMS LIVE 12.03.2025 LAN 2.xlsx Luc Tran Van, 03/12/2025 03:51 PM
EXPORT DOANH SỐ NCC - LẦN 3.txt (453 Bytes) EXPORT DOANH SỐ NCC - LẦN 3.txt Luc Tran Van, 03/12/2025 04:08 PM
1.0.18.03.2025 BVBANK KIEM TRA NGAN SACH.txt (10.9 KB) 1.0.18.03.2025 BVBANK KIEM TRA NGAN SACH.txt Luc Tran Van, 03/18/2025 04:50 PM

History

#1 Updated by Luc Tran Van 4 months ago

SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
GO
ALTER PROCEDURE dbo.TR_REQUEST_COST_CAR_ById
@P_REQ_COST_ID VARCHAR = NULL,
@P_USER_LOGIN VARCHAR= NULL
AS
DECLARE @MENU_PERMISSION NVARCHAR = 'Pages.Administration.RequestCostCar' -- permission chức năng call store

SELECT CAR_ID, MAX(REQ_COST_DT)  REQ_COST_DT INTO #LAST  
FROM TR_REQUEST_CAR_COST
GROUP BY CAR_ID
SELECT A.REQ_COST_ID,A.REQ_COST_CODE,A.NOTES,A.RECORD_STATUS,A.MAKER_ID,MAKER.TLFullName MAKER_NAME,A.CREATE_DT,A.CHECKER_ID,A.APPROVE_DT,A.SIGN_USER,SIGN.TLFullName SIGN_USER_NAME,A.SIGN_DT
,A.AUTH_STATUS,A.BRANCH_ID,BR.BRANCH_NAME,A.DEP_ID,DEP.DEP_NAME,A.CAR_ID,CAR.N_PLATE,C_TYPE.CAR_TYPE_NAME
,A.REQ_COST_TYPE,CA.CONTENT REQ_COST_TYPE_NAME,A.REQ_COST_TYPE_DIF,A.REQ_COST_CONTENT,A.REQ_COST_REASON,A.REQ_COST_DT ,A.TOTAL_AMT_ETM,A.TOTAL_AMT,A.PROCESS_ID,A.DVCM_ID,A.DVCM_OPINION,PRC.TLNAME, PRC.TYPE_JOB,NXL.NGUOIXULY USER_REQUEST
,A.REQ_DT, A.SCHEME_OUT,LATEST.REQ_COST_DT REQ_COST_DT_LATEST, MO.MO_NAME MODEL
FROM TR_REQUEST_CAR_COST A
LEFT JOIN CAR_MASTER CAR ON CAR.CAR_ID = A.CAR_ID
LEFT JOIN dbo.CM_MODEL MO ON MO.MO_ID = CAR.MODEL
LEFT JOIN CAR_TYPE C_TYPE ON CAR.CAR_TYPE_ID = C_TYPE.CAR_TYPE_ID
LEFT JOIN CM_BRANCH BR ON BR.BRANCH_ID = A.BRANCH_ID
LEFT JOIN CM_DEPARTMENT DEP ON DEP.DEP_ID = A.DEP_ID
LEFT JOIN TL_USER MAKER ON MAKER.TLNANME = A.MAKER_ID
LEFT JOIN CM_ALLCODE CA ON CA.CDVAL = A.REQ_COST_TYPE AND CA.CDNAME = 'REQ_COST_TYPE' AND CA.CDTYPE = 'TYPE'
LEFT JOIN TL_USER SIGN ON SIGN.TLNANME = A.SIGN_USER
LEFT JOIN PL_REQUEST_PROCESS_CHILD PRC ON PRC.REQ_ID = A.REQ_COST_ID AND PRC.STATUS_JOB = 'C'
LEFT JOIN #LAST LATEST ON LATEST.CAR_ID = A.CAR_ID
OUTER APPLY
(
SELECT [dbo].FN_TR_REQ_COST_CAR_GET_NEXT_USER(A.REQ_COST_ID, @MENU_PERMISSION) NGUOIXULY, '' NGUOIXULYTLNAME
) NXL
WHERE A.REQ_COST_ID = @P_REQ_COST_ID
GO

#11 Updated by Luc Tran Van 3 months ago

SELECT A.SUP_NAME, A.TAX_NO,A.CONTACT_PERSON, A.TEL, A.EMAIL, SUM AS DOANH_SO_2024
FROM CM_SUPPLIER A
INNER JOIN TR_REQUEST_DOC_DT B ON A.SUP_ID = B.SUP_ID
INNER JOIN TR_REQUEST_DOC C ON B.REQ_DOC_ID = C.REQ_ID
WHERE C.PROCESS_ID ='APPROVE' AND YEAR =2024
GROUP BY A.SUP_NAME,A.TAX_NO,A.CONTACT_PERSON, A.TEL, A.EMAIL

#16 Updated by Luc Tran Van 3 months ago

SELECT * FROM TR_REQ_PAY_AUTO_RECURRING_HISTORY WHERE billRef = 'P25063895850'
DECLARE @REQ_PAY_AUTO_ID VARCHAR = (select REQ_PAY_AUTO_ID from TR_REQ_PAY_AUTO_RECURRING where BILLCODE = '1271CLIN')
 
SELECT * FROM TR_REQ_PAYMENT_AUTO WHERE REQ_PAY_AUTO_ID = @REQ_PAY_AUTO_ID
select * from TR_REQ_PAY_AUTO_RECURRING where BILLCODE = '1271CLIN'
 

#17 Updated by Luc Tran Van 3 months ago

DECLARE
@p_REQ_PAY_ID varchar(15)= NULL,
@p_REQ_PAY_CODE varchar(50) = NULL,
@p_REQ_DT VARCHAR= NULL,
@p_BRANCH_ID varchar(15) = 'DV0001',
@p_DEP_ID varchar(15) = NULL,
@p_REQ_REASON nvarchar(MAX) = NULL,
@p_REQ_TYPE varchar(15) = NULL,
@P_REQ_ENTRIES nvarchar(MAX) = NULL,
@p_REQ_DESCRIPTION nvarchar(MAX) = NULL,
@p_REF_ID varchar(15) = NULL,
@p_RECEIVER_PO nvarchar(250) = NULL,
@p_REQ_PAY_TYPE varchar(15) = NULL,
@p_REQ_TYPE_CURRENCY nvarchar(50) = NULL,
@p_REQ_AMT decimal(18, 0) = NULL,
@p_REQ_TEMP_AMT decimal(18, 0) = NULL,
@p_MAKER_ID varchar(15) = NULL,
@p_CREATE_DT varchar(25) = NULL,
@p_EDITOR_ID varchar(15) = NULL,
@p_AUTH_STATUS varchar(1) = NULL,
@p_CHECKER_ID varchar(15) = NULL,
@p_APPROVE_DT varchar(25) = NULL,
@p_CREATE_DT_KT varchar(25) = NULL,
@p_MAKER_ID_KT varchar(15) = NULL,
@p_AUTH_STATUS_KT varchar(1) = NULL,
@p_CHECKER_ID_KT nvarchar(20) = NULL,
@p_EXEC_USER_KT nvarchar(20) = NULL,
@p_APPROVE_DT_KT varchar(25)= null,
@p_CONFIRM_NOTE nvarchar(500) = NULL,
@p_BRANCH_CREATE varchar(15) = NULL,
@p_NOTES varchar(15) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_TRANSFER_MAKER nvarchar(50) = NULL,
@p_TRANSFER_DT varchar(25) = NULL,
@p_TRASFER_USER_RECIVE varchar(15) = NULL,
@p_PROCESS varchar(15) = NULL,
@p_PAY_PHASE VARCHAR = NULL,
@p_TOP INT = 300,
@p_LEVEL varchar(10) = 'ALL',
@p_FRMDATE VARCHAR= NULL,
@p_TODATE VARCHAR = NULL,
@p_BRANCH_LOGIN VARCHAR = 'DV0001',
@p_IS_UPDATE_KT VARCHAR = NULL,
@P_IS_TRANSFER VARCHAR = NULL,
@p_TERM_ID VARCHAR = NULL,
@P_USER_LOGIN VARCHAR= 'vanpt2',
@p_FUNCTION VARCHAR = NULL,
@p_IS_CREATE_AUTO VARCHAR = NULL,
@p_TYPE_SEARCH VARCHAR = 'HC'

BEGIN -- PAGING
--SET @p_TOP = NULL
IF <> '')
BEGIN
SET @p_DEP_ID = NULL
END

-- BRANCH TRUYEN TU UI
DECLARE @tmp TABLE)
INSERT INTO @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)

-- BRANCH LOGIN
DECLARE @tmp_login TABLE)
INSERT INTO @tmp_login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)

-- USER LOGIN
DECLARE @ROLE_ID VARCHAR , @DEP_ID_LG VARCHAR = NULL, @COST_LG VARCHAR, @DVDM_ID VARCHAR, @BRANCH_TYPE VARCHAR, @BRANCH_TYPE_LG VARCHAR
SET @ROLE_ID = (SELECT ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
SET @BRANCH_TYPE_LG = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN)
SET @DEP_ID_LG =(SELECT SECUR_CODE FROM TL_USER WHERE TLNANME=@p_USER_LOGIN)
SET @COST_LG =(SELECT TOP 1 COST_ID FROM PL_COSTCENTER_DT WHERE DEP_ID =@DEP_ID_LG)
SET @DVDM_ID =(SELECT TOP 1 DVDM_ID FROM PL_COSTCENTER WHERE COST_ID =@COST_LG)

-- TABLE ROLE USER
DECLARE @TABLE_ROLE TABLE (ROLE_AUTH VARCHAR)
INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)
INSERT INTO @TABLE_ROLE SELECT ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE TLNAME = @P_USER_LOGIN
AND (CONVERT,103) >= CONVERT OR EFF_DATE IS NULL OR EFF_DATE ='')
AND (CONVERT,103) <=CONVERT OR EXP_DATE IS NULL OR EXP_DATE ='')
AND RECORD_STATUS = '1'

-- PHÒNG BAN ỦY QUYỀN KIÊM NHIỆM
DECLARE @DEP_AUTH TABLE (DEP_AUTH VARCHAR)
INSERT INTO @DEP_AUTH VALUES (@DEP_ID_LG)
-- LUCTV 19.10.2022 BO SUNG THEM PHONG BAN CHA SE THAY DANH SACH PHONG BAN CON
INSERT INTO @DEP_AUTH SELECT DEP_ID FROM CM_DEPARTMENT WHERE FATHER_ID = @DEP_ID_LG
INSERT INTO @DEP_AUTH SELECT DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME =@P_USER_LOGIN
AND (CONVERT,103) >= CONVERT OR EFF_DATE IS NULL OR EFF_DATE ='')
AND (CONVERT,103) <=CONVERT OR EXP_DATE IS NULL OR EXP_DATE ='')
AND RECORD_STATUS = '1'
-- PHÒNG BAN ỦY QUYỀN KIÊM NHIỆM CÓ QUYỀN DUYỆT PHIẾU
DECLARE @DEP_IS_TDV TABLE (DEP_AUTH VARCHAR)
INSERT INTO @DEP_IS_TDV SELECT DEP_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME = @P_USER_LOGIN
AND ROLE_NEW IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')
AND (CONVERT,103) >= CONVERT OR EFF_DATE IS NULL OR EFF_DATE ='')
AND (CONVERT,103) <=CONVERT OR EXP_DATE IS NULL OR EXP_DATE ='')
AND RECORD_STATUS = '1'

-- ĐƠN VỊ ỦY QUYỀN KIÊM NHIỆM
DECLARE @BRANCH_AUTH TABLE (BRN_AUTH VARCHAR)
INSERT INTO @BRANCH_AUTH VALUES (@p_BRANCH_LOGIN)
INSERT INTO @BRANCH_AUTH SELECT BRANCH_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME = @P_USER_LOGIN
AND (CONVERT,103) >= CONVERT OR EFF_DATE IS NULL OR EFF_DATE ='')
AND (CONVERT,103) <=CONVERT OR EXP_DATE IS NULL OR EXP_DATE ='')
AND RECORD_STATUS = '1'
-- ĐƠN VỊ ỦY QUYỀN KIÊM NHIỆM CÓ QUYỀN DUYỆT
DECLARE @BRANCH_IS_TDV TABLE (BRN_AUTH VARCHAR)
INSERT INTO @BRANCH_IS_TDV SELECT BRANCH_ID FROM TL_SYS_ROLE_MAPPING WHERE TLNAME = @P_USER_LOGIN
AND ROLE_NEW IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')
AND (CONVERT,103) >= CONVERT OR EFF_DATE IS NULL OR EFF_DATE ='')
AND (CONVERT,103) <=CONVERT OR EXP_DATE IS NULL OR EXP_DATE ='')
AND RECORD_STATUS = '1'

--- NEU USER KHONG CHON TU NGAY THI TU NGAY BANG NGAY 1 1 HANG THANG 20211116
DECLARE @DATE DATE
IF ((@p_FRMDATE IS NULL OR @p_FRMDATE ='') AND ISNULL='' AND @p_AUTH_STATUS ='') -- MỤC ĐÍCH NẾU NHƯ XEM CHI TIẾT 1 PĐN THANH TOÁN DẠNG POPUP THÌ BỎ QUA ĐIỀU KIỆN NÀY, TỪ NGÀY VẪN LÀ NULL
BEGIN
SET @DATE = CONVERT,103)
SET @DATE = DATEADD
END
ELSE
BEGIN
SET @DATE = CONVERT
END

--DOANPTT: XÁC ĐỊNH USER XEM TOÀN BỘ PHIẾU
DECLARE @IS_VIEW_ALL VARCHAR
IF FROM @TABLE_ROLE WHERE ROLE_AUTH IN ('KSV', 'GDV', 'NVTC')) > 0) -- ROLE CHỈ ĐỊNH
BEGIN
SET @IS_VIEW_ALL = 'Y'
END
ELSE IF -- PHÒNG CHỈ ĐỊNH
BEGIN
SET @IS_VIEW_ALL = 'Y'
END
ELSE IF -- USER CHỈ ĐỊNH
BEGIN
SET @IS_VIEW_ALL = 'Y'
END
ELSE
BEGIN
SET @IS_VIEW_ALL = 'N'
END

--DOANPTT: XÁC ĐỊNH USER CÓ ĐƯỢC XEM HẾT PHIẾU CỦA PHÒNG MÌNH HAY KHÔNG
DECLARE @IS_SEE_ALL_HC VARCHAR
IF FROM PL_ROLE_DATA_CONFIG WHERE BRANCH_ID = @P_USER_LOGIN AND ROLE_TYPE = 'TR_REQ_PAYMENT') > 0)
BEGIN
SET @IS_SEE_ALL_HC = 'Y'
END
ELSE
BEGIN
SET @IS_SEE_ALL_HC = 'N'
END

-- RoleName Rỗng sẽ cập nhật lại
SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_USER_LOGIN)
IF)
BEGIN
PRINT @ROLE_ID
END
ELSE
BEGIN
SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_USER_LOGIN)
IF
BEGIN
SET @ROLE_ID =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@p_USER_LOGIN))
END
END
INSERT INTO @TABLE_ROLE VALUES (@ROLE_ID)--2021823

-- CHECK NGUOI DUYET
DECLARE @IS_TDV VARCHAR = 'N'
IF (
( SELECT COUNT
FROM @TABLE_ROLE A
WHERE A.ROLE_AUTH IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')
) = 0
)
BEGIN
SET @IS_TDV = 'N'
END
ELSE
BEGIN
SET @IS_TDV = 'Y'
END

IF AND @p_TYPE_SEARCH = 'KT')
BEGIN
IF
BEGIN
-- PAGING BEGIN
SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, C.AUTH_STATUS_KT_DESC,
TL1.TLFullName APPROVE_FULLNAME,
CASE WHEN ISNULL <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT,
TL3.TLFullName APPROVE_FULLNAME_KT,
CASE WHEN ISNULL <> '' AND A.IS_PERIOD ='Y' AND EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X
INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <> @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN
BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT
WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP,
ISNULL TOTAL_AMT_PAY_HIS,
TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,
@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR,
BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT,
ISNULL)),'')
AS BRANCH_NAME_CONTRACT,
--doanptt 300622
CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME
WHEN PC3.TLNAME <>'' THEN PC3.TLNAME
ELSE TL2.TLNANME END AS EXEC_USER,
dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE) AS NUMBER_OF_TRANSFER,
PC3.TLNAME AS EXEC_USER_KT,
CASE WHEN ISNULL <> '' AND A.AUTH_STATUS_KT IN THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE)
ELSE 0 END AS NUMBER_OF_SEND_APPR,
L.REQ_PAY_AUTO_ID, L.REQ_PAY_AUTO_CODE,
dbo.FN_GET_NEXT_USER_PAYMENT(A.REQ_PAY_ID, A.MAKER_ID, A.BRANCH_ID, A.DEP_ID, A.AUTH_STATUS, A.AUTH_STATUS_KT, A.TRASFER_USER_RECIVE, A.PROCESS) AS NEXT_USER
-
SELECT END
FROM TR_REQ_PAYMENT A
LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
--Luanlt--2019/10/15-Sửa AL,AL1
LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE' AND AL.CDTYPE = 'REQ'
LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE ='REQ'
LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
LEFT JOIN
(
SELECT PAY_ADV_ID, SUM SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL'
LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME
LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
LEFT JOIN TR_REQ_PAY_AUTO_PAYMENTS K ON A.REQ_PAY_ID = K.REQ_PAY_ID
LEFT JOIN TR_REQ_PAYMENT_AUTO L ON K.REQ_PAY_AUTO_ID = L.REQ_PAY_AUTO_ID
WHERE 1=1
AND A.AUTH_STATUS = 'A'
AND A.AUTH_STATUS_KT = 'A'
AND (A.IS_CREATE_AUTO = @p_IS_CREATE_AUTO OR ISNULL = '')
AND = '')
AND = '')
AND = '')
AND = '')
AND>=CONVERTOR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
AND<=CONVERTOR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL)
AND = '')
AND = '')
AND = '')
AND
AND ( ( @p_LEVEL='ALL' AND ( A.BRANCH_ID IN
OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH)
)
)
OR ( ( @p_LEVEL='UNIT'
AND A.BRANCH_ID=@p_BRANCH_ID
)
OR
OR ( @BRANCH_TYPE_LG <> 'HS' AND
EXISTS ( SELECT *
FROM TR_REQ_ADVANCE_DT
WHERE REQ_PAY_ID = A.REQ_PAY_ID
AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN)
AND A.AUTH_STATUS_KT ='A'
)
)
)
)

ORDER BY A.CREATE_DT DESC
-- PAGING END
END;
ELSE
BEGIN
-- PAGING BEGIN
SELECT TOP(CONVERT(INT,@p_TOP)) A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, C.AUTH_STATUS_KT_DESC,
TL1.TLFullName APPROVE_FULLNAME,
CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT,
TL3.TLFullName APPROVE_FULLNAME_KT,
CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X
INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <> @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN
BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT
WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP,
ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,
@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR,
BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT,
ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
AS BRANCH_NAME_CONTRACT,
--doanptt 300622
CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME
WHEN PC3.TLNAME <>'' THEN PC3.TLNAME
ELSE TL2.TLNANME END AS EXEC_USER,
dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
PC3.TLNAME AS EXEC_USER_KT,
CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S') THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
ELSE 0 END AS NUMBER_OF_SEND_APPR,
L.REQ_PAY_AUTO_ID, L.REQ_PAY_AUTO_CODE,
dbo.FN_GET_NEXT_USER_PAYMENT(A.REQ_PAY_ID, A.MAKER_ID, A.BRANCH_ID, A.DEP_ID, A.AUTH_STATUS, A.AUTH_STATUS_KT, A.TRASFER_USER_RECIVE, A.PROCESS) AS NEXT_USER
-
SELECT END
FROM TR_REQ_PAYMENT A
LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
--Luanlt--2019/10/15-Sửa AL,AL1
LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE' AND AL.CDTYPE = 'REQ'
LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ'
LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
LEFT JOIN
(
SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL'
LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME
LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
LEFT JOIN TR_REQ_PAY_AUTO_PAYMENTS K ON A.REQ_PAY_ID = K.REQ_PAY_ID
LEFT JOIN TR_REQ_PAYMENT_AUTO L ON K.REQ_PAY_AUTO_ID = L.REQ_PAY_AUTO_ID
WHERE 1=1
AND A.AUTH_STATUS = 'A'
AND A.AUTH_STATUS_KT = 'A'
AND (A.IS_CREATE_AUTO = @p_IS_CREATE_AUTO OR ISNULL(@p_IS_CREATE_AUTO, '') = '')
AND(A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR ISNULL(@p_AUTH_STATUS_KT, '') = '')
AND(A.REQ_PAY_ID = @p_REQ_PAY_ID OR ISNULL(@p_REQ_PAY_ID, '') = '')
AND(A.REQ_PAY_CODE = @p_REQ_PAY_CODE OR ISNULL(@p_REQ_PAY_CODE, '') = '')
AND(A.REQ_TYPE = @p_REQ_TYPE OR ISNULL(@p_REQ_TYPE, '') = '')
AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @DATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL)
AND(A.REQ_REASON LIKE '%' + @p_REQ_TYPE + '%' OR ISNULL(@p_REQ_TYPE, '') = '')
AND(A.MAKER_ID =@p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
AND(A.MAKER_ID_KT =@p_MAKER_ID_KT OR ISNULL(@p_MAKER_ID_KT, '') = '')
AND(A.DEP_ID=@p_DEP_ID OR @p_DEP_ID='' OR @p_DEP_ID IS NULL)
AND ( ( @p_LEVEL='ALL' AND ( A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp)
OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH)
)
)
OR ( ( @p_LEVEL='UNIT'
AND A.BRANCH_ID=@p_BRANCH_ID
)
OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL)
OR ( @BRANCH_TYPE_LG <> 'HS' AND
EXISTS ( SELECT *
FROM TR_REQ_ADVANCE_DT
WHERE REQ_PAY_ID = A.REQ_PAY_ID
AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN)
AND A.AUTH_STATUS_KT ='A'
)
)
)
)
ORDER BY A.CREATE_DT DESC
-- PAGING END
END;
END
ELSE
BEGIN
IF(@p_TOP IS NULL OR @p_TOP=0)
BEGIN
-- PAGING BEGIN
SELECT A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, C.AUTH_STATUS_KT_DESC,
TL1.TLFullName APPROVE_FULLNAME,
CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT,
TL3.TLFullName APPROVE_FULLNAME_KT,
CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X
INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <> @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN
BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT
WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
--BR.BRANCH_NAME AS BRANCH_NAME_REQ,
BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
--Luanlt--2019/10/15-Sửa AL,AL1
BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP,
ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,
--CASE WHEN PC3.TLNAME IS NOT NULL AND PC3.TLNAME <>'' THEN @P_USER_LOGIN ELSE PC3.TLNAME END AS EXEC_USER,
@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR,
BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT,
ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
AS BRANCH_NAME_CONTRACT,
--doanptt 300622
CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME
WHEN PC3.TLNAME <>'' THEN PC3.TLNAME
ELSE TL2.TLNANME END AS EXEC_USER,
dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
PC3.TLNAME AS EXEC_USER_KT,
CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S') THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
ELSE 0 END AS NUMBER_OF_SEND_APPR,
L.REQ_PAY_AUTO_ID, L.REQ_PAY_AUTO_CODE,
dbo.FN_GET_NEXT_USER_PAYMENT(A.REQ_PAY_ID, A.MAKER_ID, A.BRANCH_ID, A.DEP_ID, A.AUTH_STATUS, A.AUTH_STATUS_KT, A.TRASFER_USER_RECIVE, A.PROCESS) AS NEXT_USER
-
SELECT END
FROM TR_REQ_PAYMENT A
LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
--Luanlt--2019/10/15-Sửa AL,AL1
LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE' AND AL.CDTYPE = 'REQ'
LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE ='REQ'
LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
LEFT JOIN
(
SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL'
LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME
LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
LEFT JOIN TR_REQ_PAY_AUTO_PAYMENTS K ON A.REQ_PAY_ID = K.REQ_PAY_ID
LEFT JOIN TR_REQ_PAYMENT_AUTO L ON K.REQ_PAY_AUTO_ID = L.REQ_PAY_AUTO_ID
WHERE 1=1
-- BEGIN FILTER
AND (A.REQ_PAY_ID = @p_REQ_PAY_ID OR ISNULL(@p_REQ_PAY_ID, '') = '')
AND (A.MAKER_ID =@p_MAKER_ID OR ISNULL(@p_MAKER_ID, '') = '')
AND (A.IS_CREATE_AUTO = @p_IS_CREATE_AUTO OR ISNULL(@p_IS_CREATE_AUTO, '') = '')
AND (A.REF_ID =@p_REF_ID OR ISNULL(@p_REF_ID, '') = '')
AND (A.BRANCH_ID = @p_BRANCH_ID OR ISNULL(@p_BRANCH_ID, '') = '' OR @p_BRANCH_ID = 'DV0001')
AND (A.DEP_ID = @p_DEP_ID OR ISNULL(@p_DEP_ID, '') = '')
AND (ISNULL(@p_MAKER_ID_KT, '') = '' OR A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
AND (ISNULL(@p_EXEC_USER_KT, '') = '' OR ISNULL(PC3.TLNAME, '') = '' OR PC3.TLNAME = @p_EXEC_USER_KT)
AND(PC4.TLNAME = @p_TRASFER_USER_RECIVE OR ISNULL(@p_TRASFER_USER_RECIVE, '') = '' OR A.MAKER_ID_KT =@p_TRASFER_USER_RECIVE)
AND ( A.AUTH_STATUS = @p_AUTH_STATUS
OR @p_AUTH_STATUS = ''
OR @p_AUTH_STATUS IS NULL
OR ( @p_AUTH_STATUS = 'W'
AND ISNULL(A.PROCESS, '') = ''
AND A.AUTH_STATUS = 'U'
AND @P_USER_LOGIN = A.TRASFER_USER_RECIVE
)-- CHỜ DUYỆT TRUNG GIAN
OR ( @p_AUTH_STATUS = 'G'
AND ISNULL(A.PROCESS, '') = '0'
AND A.AUTH_STATUS = 'U'
AND @P_USER_LOGIN = A.TRASFER_USER_RECIVE
) -- ĐÃ DUYỆT TRUNG GIAN
)
AND (A.NOTES LIKE N'%'+@p_NOTES+'%' OR ISNULL(@p_NOTES, '') = '')
AND (A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR ISNULL(@p_REQ_TYPE, '') = '')
AND (A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' OR ISNULL(@p_REQ_PAY_CODE, '') = '')
AND (A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' OR ISNULL(@p_REQ_REASON, '') = '')
AND (CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @DATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
AND (CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL)
-- KT
AND (
( A.MAKER_ID_KT IS NOT NULL
AND @p_IS_UPDATE_KT='Y'
)
OR ( A.MAKER_ID_KT IS NULL
AND @p_IS_UPDATE_KT='N'
)
OR ISNULL(@p_IS_UPDATE_KT, '') = ''
) -- TINH TRANG CAP NHAT - GDV
AND ( A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT
OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S'))
OR ISNULL(@p_AUTH_STATUS_KT, '') = ''
) -- TRANG THAI DUYET KT
AND ( ( @p_IS_TRANSFER='Y'
AND ( EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID)
OR A.AUTH_STATUS_KT ='A'
)
)
OR ( ( @p_IS_TRANSFER='N'
AND ( NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID ))
AND A.AUTH_STATUS_KT <>'A'
)
)
OR ISNULL(@p_IS_TRANSFER, '') = ''
) -- TINH TRANG DIEU CHUYEN KT
AND (
(
@p_FUNCTION ='KT'
AND (
EXISTS(SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE REQ_ID = A.REQ_PAY_ID
AND (
X.TLNAME= @p_USER_LOGIN
OR X.TLNAME =@p_EXEC_USER_KT)
)
)
OR (A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
OR A.CHECKER_ID_KT ='admin'
OR A.AUTH_STATUS_KT='A'
)
OR ISNULL(@p_FUNCTION, '') = ''
OR @p_FUNCTION ='TF'
)
-- END FILTER
AND ( (@p_BRANCH_ID <> @p_BRANCH_LOGIN AND A.BRANCH_ID = @p_BRANCH_ID)
OR @p_BRANCH_ID = @p_BRANCH_LOGIN
OR @p_BRANCH_ID=''
OR @p_BRANCH_ID IS NULL
)
-- VALIDATE BRANCH
AND ( A.BRANCH_ID = @p_BRANCH_LOGIN -- PHIEU CUA DON VI MINH
OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH) -- PHIEU CUA DON VI KIEM NHIEM
OR ( @BRANCH_TYPE_LG <> 'HS'
AND EXISTS ( SELECT *
FROM TR_REQ_ADVANCE_DT
WHERE REQ_PAY_ID = A.REQ_PAY_ID
AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN)
AND A.AUTH_STATUS_KT ='A'
)
) -- PHIEU CUA HOI SO TAO
-- TRUONG HOP VIEW ALL
OR @IS_VIEW_ALL = 'Y'
OR A.MAKER_ID = @p_USER_LOGIN
)
-- VALIDATE DEP
AND (
A.DEP_ID IN (SELECT * FROM @DEP_AUTH)
OR A.BRANCH_ID <> 'DV0001'
OR ( @BRANCH_TYPE_LG <> 'HS'
AND EXISTS ( SELECT *
FROM TR_REQ_ADVANCE_DT
WHERE REQ_PAY_ID = A.REQ_PAY_ID
AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN)
AND A.AUTH_STATUS_KT ='A'
)
) -- PHIEU CUA HOI SO TAO
-- TRUONG HOP VIEW ALL
OR @IS_VIEW_ALL = 'Y'
OR A.MAKER_ID = @p_USER_LOGIN
)
-- VALIDATE FLOW
AND (
-- TRUONG HOP VIEW ALL
@IS_VIEW_ALL = 'Y'
-- BEGIN TRUONG HOP DAC BIET
OR ( @IS_SEE_ALL_HC = 'Y' -- DOANPTT 20/12/22: CHO USER XEM TOAN BO PHIEU THUOC PHONG HANH CHINH
AND A.DEP_ID = @DEP_ID_LG
AND A.BRANCH_ID = 'DV0001'
AND A.AUTH_STATUS IN ('U','R', 'A')
AND @p_TYPE_SEARCH ='HC'
)
-- END TRUONG HOP DAC BIET
OR A.MAKER_ID = @p_USER_LOGIN -- NGUOI TAO
OR ( A.AUTH_STATUS ='A') -- PHIEU DA DUYET
OR ( A.TRASFER_USER_RECIVE = @P_USER_LOGIN
AND A.AUTH_STATUS NOT IN ('E','R')
) -- TRUNG GIAN
OR ( @p_TYPE_SEARCH ='HC'
AND A.BRANCH_ID <> 'DV0001'
AND A.BRANCH_ID IN (SELECT * FROM @BRANCH_IS_TDV)
AND (A.AUTH_STATUS = 'U' OR A.AUTH_STATUS = 'A')
AND @IS_TDV = 'Y'
) -- TDV - DVKD
OR ( @p_TYPE_SEARCH ='HC'
AND A.BRANCH_ID = 'DV0001'
AND A.DEP_ID IN (SELECT * FROM @DEP_IS_TDV)
AND (A.AUTH_STATUS = 'U' OR A.AUTH_STATUS = 'A')
AND @IS_TDV = 'Y'
) -- TDV - HOI SO
OR (
@p_TYPE_SEARCH ='HC'
AND @BRANCH_TYPE_LG <> 'HS'
AND EXISTS (
SELECT *
FROM TR_REQ_ADVANCE_DT
WHERE REQ_PAY_ID = A.REQ_PAY_ID
AND REF_ID IN (
SELECT CONTRACT_ID
FROM TR_CONTRACT
WHERE BRANCH_ID =@p_BRANCH_LOGIN
)
AND A.AUTH_STATUS_KT ='A'
)
) -- LUCTV 25 05 BO SUNG CAU HINH CHO PHEP DVKD DUOC THAY NHUNG PDN THANH TOAN DO HO TẠO
-- HOI SO
OR ( @p_TYPE_SEARCH ='HC'
AND @BRANCH_TYPE_LG ='HS'
AND ( A.TRASFER_USER_RECIVE = @p_USER_LOGIN
OR ( @IS_TDV = 'Y'
AND ( A.BRANCH_ID = @p_BRANCH_LOGIN
OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
)
AND ( A.DEP_ID = @DEP_ID_LG
OR A.DEP_ID IN (SELECT * FROM @DEP_AUTH)
)
AND ( ISNULL(A.TRASFER_USER_RECIVE, '') = ''
OR ( ISNULL(A.TRASFER_USER_RECIVE, '') <> ''
AND ISNULL(A.PROCESS, '') <> ''
)
)
)
)
)
-- CN
OR ( @p_TYPE_SEARCH ='HC'
AND @BRANCH_TYPE_LG = 'CN'
AND @IS_TDV = 'Y'
AND A.BRANCH_ID IN (SELECT * FROM @BRANCH_IS_TDV)
)
-- PGD
OR ( @p_TYPE_SEARCH ='HC'
AND @BRANCH_TYPE_LG = 'PGD'
AND (
@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD')
AND A.BRANCH_ID =@p_BRANCH_LOGIN
)
)
-- KT
OR ( @p_TYPE_SEARCH='KT'
AND @p_BRANCH_LOGIN ='DV0001'
AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
)
OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH =''
)
ORDER BY A.CREATE_DT DESC
-- PAGING END
END;
ELSE
BEGIN
-- PAGING BEGIN
SELECT TOP(CONVERT(INT,@p_TOP)) A.*,B.AUTH_STATUS_NAME, C.AUTH_STATUS_NAME AUTH_STATUS_NAME_KT, TL.TLFullName CREATE_FULLNAME, C.AUTH_STATUS_KT_DESC,
TL1.TLFullName APPROVE_FULLNAME,
CASE WHEN ISNULL(TL2.TLFullName,'') <>'' THEN TL2.TLFullName ELSE TL8.TLFullName END AS CREATE_FULLNAME_KT,
TL3.TLFullName APPROVE_FULLNAME_KT,
CASE WHEN ISNULL(A.IS_PERIOD,'') <> '' AND A.IS_PERIOD ='Y' AND EXISTS (SELECT TOP 1 X.* FROM TR_REQ_ADVANCE_DT X
INNER JOIN TR_CONTRACT CT ON X.REF_ID = CT.CONTRACT_ID
WHERE X.REQ_PAY_ID = A.REQ_PAY_ID AND CT.BRANCH_ID <> @p_BRANCH_LOGIN AND CT.BRANCH_ID IS NOT NULL AND CT.BRANCH_ID <> '') THEN
BR.BRANCH_NAME + ISNULL(' - '+ (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT
WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
ELSE BR.BRANCH_NAME END BRANCH_NAME_REQ,
--BR.BRANCH_NAME AS BRANCH_NAME_REQ,
BR1.BRANCH_NAME BRANCH_NAME_CRE, DP.DEP_NAME, DP.DEP_CODE, BR.BRANCH_CODE BRANCH_CODE_REQ,
--Luanlt--2019/10/15-Sửa AL,AL1
BR1.BRANCH_CODE BRANCH_CODE_CRE, AL.CONTENT REQ_TYPE_NAME,AL1.CONTENT REQ_PAY_TYPE_NAME, ISNULL((A.REQ_AMT H.SOTIEN_TT),0) AS TOTAL_AMT_TEMP,
ISNULL(H.SOTIEN_TT,0) TOTAL_AMT_PAY_HIS,
TL4.TLFullName AS TRANSFER_FULLNAME,TL5.TLFullName AS TRANSFER_RECIEVER_FULLNAME,'' EMP_FULLNAME,PO.PO_CODE, PO.PO_NAME, S.SUP_NAME,S.TAX_NO SUP_TAX_NO,
PC3.LEVEL_JOB, PC3.STATUS_JOB,PC3.TYPE_JOB,
--CASE WHEN PC3.TLNAME IS NOT NULL AND PC3.TLNAME <>'' THEN @P_USER_LOGIN ELSE PC3.TLNAME END AS EXEC_USER,
@p_TYPE_SEARCH AS TYPE_SEARCH,SR.ROLE_ID AS ROLE_ID_CRE,CASE WHEN BR1.BRANCH_TYPE <> 'PGD'THEN BR1.BRANCH_TYPE ELSE 'CN' END AS BRANCH_TYPE_CR,
BR_CORE.BRANCH_CODE AS BRANCH_CODE_CORE, BR_CORE.BRANCH_NAME AS BRANCH_NAME_CORE,'' AS BRANCH_CODE_CONTRACT,
ISNULL((SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =(SELECT TOP 1 BRANCH_ID FROM TR_CONTRACT WHERE CONTRACT_ID IN (SELECT TOP 1 REF_ID FROM TR_REQ_ADVANCE_DT WHERE REQ_PAY_ID = A.REQ_PAY_ID))),'')
AS BRANCH_NAME_CONTRACT,
--doanptt 300622
CASE WHEN PC3.TLNAME IS NOT NULL THEN PC3.TLNAME
WHEN PC3.TLNAME <>'' THEN PC3.TLNAME
ELSE TL2.TLNANME END AS EXEC_USER,
dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.TRANSFER_DT, GETDATE()) AS NUMBER_OF_TRANSFER,
PC3.TLNAME AS EXEC_USER_KT,
CASE WHEN ISNULL(A.CREATE_DT_KT, '') <> '' AND A.AUTH_STATUS_KT IN('P', 'S') THEN dbo.FN_DATEDIFF_WITHOUT_WEEKEND(A.CREATE_DT_KT, GETDATE())
ELSE 0 END AS NUMBER_OF_SEND_APPR,
L.REQ_PAY_AUTO_ID, L.REQ_PAY_AUTO_CODE,
dbo.FN_GET_NEXT_USER_PAYMENT(A.REQ_PAY_ID, A.MAKER_ID, A.BRANCH_ID, A.DEP_ID, A.AUTH_STATUS, A.AUTH_STATUS_KT, A.TRASFER_USER_RECIVE, A.PROCESS) AS NEXT_USER
-
SELECT END
FROM TR_REQ_PAYMENT A
LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS=B.AUTH_STATUS
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS_KT=C.AUTH_STATUS
LEFT JOIN TL_USER TL ON A.MAKER_ID=TL.TLNANME
LEFT JOIN TL_USER TL1 ON A.CHECKER_ID=TL1.TLNANME
LEFT JOIN TL_USER TL2 ON A.MAKER_ID_KT=TL2.TLNANME
LEFT JOIN TL_USER TL3 ON A.CHECKER_ID_KT=TL3.TLNANME
LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID=BR.BRANCH_ID
LEFT JOIN dbo.CM_BRANCH BR1 ON A.BRANCH_CREATE=BR1.BRANCH_ID
LEFT JOIN dbo.CM_DEPARTMENT DP ON DP.DEP_ID=A.DEP_ID
--Luanlt--2019/10/15-Sửa AL,AL1
LEFT JOIN CM_ALLCODE AL ON A.REQ_TYPE = AL.CDVAL AND AL.CDNAME='PAY_TYPE' AND AL.CDTYPE = 'REQ'
LEFT JOIN CM_ALLCODE AL1 ON A.REQ_PAY_TYPE = AL1.CDVAL AND AL1.CDNAME='REQ_PAY_TYPE' AND AL1.CDTYPE = 'REQ'
LEFT JOIN TL_USER TL4 ON A.TRANSFER_MAKER = TL4.TLNANME
LEFT JOIN TL_USER TL5 ON A.TRASFER_USER_RECIVE = TL5.TLNANME
LEFT JOIN
(
SELECT PAY_ADV_ID, SUM(AMT_PAY) SOTIEN_TT FROM TR_REQ_PAYMENT_DT WHERE AUTH_STATUS_KT ='A' GROUP BY PAY_ADV_ID
) H ON A.REQ_PAY_ID =H.PAY_ADV_ID
LEFT JOIN TR_PO_MASTER PO ON A.REF_ID = PO.PO_ID AND A.REQ_TYPE='P'
LEFT JOIN CM_SUPPLIER S ON S.SUP_ID = PO.SUP_ID AND A.REQ_TYPE='P'
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC3 ON PC3.REQ_ID = A.REQ_PAY_ID AND PC3.STATUS_JOB ='C'
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC4 ON PC4.REQ_ID = A.REQ_PAY_ID AND PC4.STATUS_JOB ='C'
LEFT JOIN PL_REQUEST_PROCESS_CHILD PC5 ON PC5.REQ_ID = A.REQ_PAY_ID AND PC5.TYPE_JOB ='XL'
LEFT JOIN TL_USER TL8 ON PC5.TLNAME = TL8.TLNANME
LEFT JOIN TL_SYSROLE SR ON TL.RoleName = SR.ROLE_ID
LEFT JOIN CM_BRANCH BR_CORE ON TL2.TLSUBBRID = BR_CORE.BRANCH_ID
LEFT JOIN TR_REQ_PAY_AUTO_PAYMENTS K ON A.REQ_PAY_ID = K.REQ_PAY_ID
LEFT JOIN TR_REQ_PAYMENT_AUTO L ON K.REQ_PAY_AUTO_ID = L.REQ_PAY_AUTO_ID
WHERE 1=1
AND(A.REQ_PAY_ID =@p_REQ_PAY_ID OR @p_REQ_PAY_ID='' OR @p_REQ_PAY_ID IS NULL)
AND (A.IS_CREATE_AUTO = @p_IS_CREATE_AUTO OR ISNULL(@p_IS_CREATE_AUTO, '') = '')
AND( A.AUTH_STATUS=@p_AUTH_STATUS
OR @p_AUTH_STATUS=''
OR @p_AUTH_STATUS IS NULL
OR ( @p_AUTH_STATUS = 'G'
AND ISNULL(A.PROCESS, '') = '0'
AND A.AUTH_STATUS = 'U'
AND @P_USER_LOGIN = A.TRASFER_USER_RECIVE
)
OR ( @p_AUTH_STATUS = 'W'
AND ISNULL(A.PROCESS, '') = ''
AND A.AUTH_STATUS = 'U'
AND @P_USER_LOGIN = A.TRASFER_USER_RECIVE
)
)
AND(A.MAKER_ID =@p_MAKER_ID OR @p_MAKER_ID='' OR @p_MAKER_ID IS NULL)
AND(A.MAKER_ID_KT = @p_MAKER_ID_KT OR @p_MAKER_ID_KT = '' OR @p_MAKER_ID_KT IS NULL OR PC3.TLNAME = @p_MAKER_ID_KT)
AND(PC3.TLNAME = @p_EXEC_USER_KT OR @p_EXEC_USER_KT = '' OR @p_EXEC_USER_KT IS NULL OR PC3.TLNAME = '' OR PC3.TLNAME IS NULL)
AND(A.DEP_ID=@p_DEP_ID OR @p_DEP_ID='' OR @p_DEP_ID IS NULL)
AND ( ( @p_LEVEL='ALL' AND ( A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp)
OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH)
)
) -- LUCTV 20211012: BO SUNG CAU HINH DE XU LY UY QUYEN KIEM NHIEM
OR ( ( @p_LEVEL='UNIT'
AND A.BRANCH_ID=@p_BRANCH_ID
)
OR(@p_BRANCH_ID='' OR @p_BRANCH_ID IS NULL)
OR ( @BRANCH_TYPE_LG <> 'HS' AND
EXISTS ( SELECT *
FROM TR_REQ_ADVANCE_DT
WHERE REQ_PAY_ID = A.REQ_PAY_ID
AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN)
AND A.AUTH_STATUS_KT ='A'
)
)
)
)
AND ( ( @p_LEVEL='ALL'
AND ( A.BRANCH_ID IN(SELECT BRANCH_ID FROM @tmp)
OR A.BRANCH_CREATE IN (SELECT * FROM @BRANCH_AUTH)
)
) -- - LUCTV 20211012: BO SUNG CAU HINH DE XU LY UY QUYEN KIEM NHIEM
OR ( ( @p_LEVEL='UNIT'
AND A.BRANCH_ID=@p_BRANCH_ID
)
OR ( @p_BRANCH_ID=''
OR @p_BRANCH_ID IS NULL
)
OR ( @BRANCH_TYPE_LG <> 'HS'
AND EXISTS ( SELECT *
FROM TR_REQ_ADVANCE_DT
WHERE REQ_PAY_ID = A.REQ_PAY_ID
AND REF_ID IN (SELECT CONTRACT_ID FROM TR_CONTRACT WHERE BRANCH_ID =@p_BRANCH_LOGIN)
AND A.AUTH_STATUS_KT ='A'
)
)
)
)
AND ( ( A.MAKER_ID_KT IS NOT NULL
AND @p_IS_UPDATE_KT='Y'
) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
OR ( ( A.MAKER_ID_KT IS NULL
AND @p_IS_UPDATE_KT='N'
)
)
OR @p_IS_UPDATE_KT IS NULL
OR @p_IS_UPDATE_KT='')
AND(A.NOTES LIKE N'%'+@p_NOTES+'%' OR @p_NOTES='' OR @p_NOTES IS NULL)
--Luanlt-2019/10/14-Thêm Filter REQ_TYPE,FROMDATE TODATE REF_ID
AND(A.REQ_TYPE LIKE N'%'+@p_REQ_TYPE+'%' OR @p_REQ_TYPE = '' OR @p_REQ_TYPE IS NULL)
AND(CONVERT(DATE, A.CREATE_DT)>=CONVERT(DATE, @DATE, 103)OR @p_FRMDATE IS NULL OR @p_FRMDATE='' OR A.CREATE_DT IS NULL)
AND(CONVERT(DATE, A.CREATE_DT)<=CONVERT(DATE, @p_TODATE, 103)OR @p_TODATE IS NULL OR @p_TODATE='' OR A.CREATE_DT IS NULL)
--Luanlt-2019/10/17-Thêm Filter REQ_PAY_CODE REQ_PAY_NAME BRANCH_ID DEP_ID KT_AUTH
AND(A.REQ_PAY_CODE LIKE N'%'+@p_REQ_PAY_CODE+'%' or @p_REQ_PAY_CODE='' OR @p_REQ_PAY_CODE IS NULL)
AND(A.REQ_REASON LIKE N'%'+@p_REQ_REASON+'%' or @p_REQ_REASON='' OR @p_REQ_REASON IS NULL)
--AND(A.TRASFER_USER_RECIVE =@p_TRASFER_USER_RECIVE or @p_TRASFER_USER_RECIVE='' OR @p_TRASFER_USER_RECIVE IS NULL OR A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <>'')
AND ( (@p_BRANCH_ID <> @p_BRANCH_LOGIN AND A.BRANCH_ID = @p_BRANCH_ID)
OR @p_BRANCH_ID = @p_BRANCH_LOGIN
OR @p_BRANCH_ID=''
OR @p_BRANCH_ID IS NULL
)
AND(A.DEP_ID = @p_DEP_ID or @p_DEP_ID='' OR @p_DEP_ID IS NULL)
AND ( ( A.AUTH_STATUS_KT=@p_AUTH_STATUS_KT
OR @p_AUTH_STATUS_KT=''
OR @p_AUTH_STATUS_KT IS NULL
)
OR (@p_AUTH_STATUS_KT ='P' AND A.AUTH_STATUS_KT IN ('P','S'))
)
AND(A.REF_ID =@p_REF_ID OR @p_REF_ID='' OR @p_REF_ID IS NULL)
--AND((A.TRANSFER_MAKER IS NOT NULL AND @p_IS_TRANSFER='Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
--OR((A.TRANSFER_MAKER IS NULL AND @p_IS_TRANSFER='N'))OR @p_IS_TRANSFER IS NULL OR @p_IS_TRANSFER='')
-- Neu ben phan he ke toan thi chi lay nhung user co maker_id khac null
AND (
(
@p_FUNCTION ='KT'
AND (
EXISTS(SELECT TOP 1 * FROM PL_REQUEST_PROCESS_CHILD X WHERE REQ_ID = A.REQ_PAY_ID
AND (
X.TLNAME= @p_USER_LOGIN
OR X.TLNAME =@p_EXEC_USER_KT)
)
)
OR (A.MAKER_ID_KT = @p_MAKER_ID_KT OR PC3.TLNAME = @p_MAKER_ID_KT)
OR A.CHECKER_ID_KT ='admin'
OR A.AUTH_STATUS_KT='A'
)
OR @p_FUNCTION =''
OR @p_FUNCTION IS NULL
OR @p_FUNCTION ='TF'
)
AND(PC4.TLNAME = @p_TRASFER_USER_RECIVE OR @p_TRASFER_USER_RECIVE IS NULL OR @p_TRASFER_USER_RECIVE ='' OR A.MAKER_ID_KT =@p_TRASFER_USER_RECIVE)
-- AND ((@p_FUNCTION ='KT' AND A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT ='') OR @p_FUNCTION IS NULL OR @p_FUNCTION ='')
AND ( ( @p_IS_TRANSFER='Y'
AND ( EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID)
OR A.AUTH_STATUS_KT ='A'
)
) --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
OR ( ( @p_IS_TRANSFER='N'
AND ( NOT EXISTS (SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = A.REQ_PAY_ID ))
AND A.AUTH_STATUS_KT <>'A'
)
)
OR @p_IS_TRANSFER IS NULL
OR @p_IS_TRANSFER=''
)
AND
( /*0*/
A.MAKER_ID =@p_USER_LOGIN
OR ( A.TRASFER_USER_RECIVE = @P_USER_LOGIN
AND A.AUTH_STATUS NOT IN ('E','R')
)
OR ( ( @IS_SEE_ALL_HC = 'Y' --DOANPTT 20/12/22: CHO A XUAN XEM TOAN BO PHIEU THUOC PHONG HANH CHINH
AND A.DEP_ID = @DEP_ID_LG
AND A.BRANCH_ID = 'DV0001'
AND A.AUTH_STATUS IN ('U','R', 'A')
AND @p_TYPE_SEARCH ='HC'
)
)
OR (@P_USER_LOGIN = 'baotq') -- DOANPTT 08/05/2023: CHO A BẢO XEM TẤT CẢ PHIẾU CỦA HỆ THỐNG
OR ( A.AUTH_STATUS <>'E' /*1*/
AND
(/*2*/
( @p_TYPE_SEARCH ='HC' /*3*/
AND @BRANCH_TYPE_LG ='HS'
AND (/*4*/A.TRASFER_USER_RECIVE = @p_USER_LOGIN
OR (/*5*/
EXISTS ( SELECT *
FROM @TABLE_ROLE
WHERE ROLE_AUTH IN ('GDDV','GDK','KTT','TPTC','TP','PP','TC')
)
AND (
( A.BRANCH_ID =@p_BRANCH_LOGIN
OR A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
)
AND ( A.DEP_ID = @DEP_ID_LG
OR (
A.DEP_ID IN ('DEP000000000051','DEP000000000733')
AND @p_USER_LOGIN ='cuongpv2'
)
OR A.DEP_ID IN (
SELECT *
FROM @DEP_AUTH
)
)
)
AND (
A.TRASFER_USER_RECIVE IS NULL
OR A.TRASFER_USER_RECIVE =''
OR (
A.TRASFER_USER_RECIVE IS NOT NULL
AND A.TRASFER_USER_RECIVE <>''
AND A.PROCESS IS NOT NULL
AND A.PROCESS <>''
)
)
)/*5*/
)/*4*/
)/*3*/
OR(/*trong 2*/
@p_TYPE_SEARCH ='HC'
AND @BRANCH_TYPE_LG = 'CN'
AND (
@ROLE_ID IN ('GDDV','PGD','TPGD','PPGD')
AND A.BRANCH_ID =@p_BRANCH_LOGIN
AND
(
(
A.TRASFER_USER_RECIVE IS NOT NULL
AND A.TRASFER_USER_RECIVE <>''
AND A.PROCESS IS NOT NULL
AND A.PROCESS <>''
)
OR A.TRASFER_USER_RECIVE =''
OR A.TRASFER_USER_RECIVE IS NULL
)
OR (
(
A.BRANCH_CREATE <> @p_BRANCH_LOGIN
AND A.TRASFER_USER_RECIVE IS NOT NULL
AND A.TRASFER_USER_RECIVE <>''
)
OR A.BRANCH_CREATE = @p_BRANCH_LOGIN
)
AND A.BRANCH_ID =@p_BRANCH_ID
)
)
OR
(
@p_TYPE_SEARCH ='HC'
AND @BRANCH_TYPE_LG = 'PGD'
AND (
@ROLE_ID IN ('GDDV','TPGD','PPGD','PGD')
AND A.BRANCH_ID =@p_BRANCH_LOGIN
)
)
OR
(
@p_TYPE_SEARCH ='HC'
AND(
@ROLE_ID IN ('KSV','GDV','NVTC')
OR @DEP_ID_LG ='DEP000000000022'
)
AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
)
OR (
@p_TYPE_SEARCH='KT'
AND @p_BRANCH_LOGIN ='DV0001'
AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
)
OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH =''
)/*2*/
)/*1*/
OR
(
(
@ROLE_ID IN ('KSV','GDV','NVTC')
OR @DEP_ID_LG ='DEP000000000022'
)
AND @p_BRANCH_LOGIN ='DV0001'
AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_Login)
)
-- NEU DUOC UY QUYEN DUYỆT CHO 1 ĐƠN VỊ KHÁC HỘI SỞ THÌ CHỈ SETUP ĐƠN VỊ, KHÔNG CẦN SETUP PHÒNG BAN
OR( @p_TYPE_SEARCH ='HC'
AND A.BRANCH_CREATE <> 'DV0001'
AND A.BRANCH_ID IN (SELECT * FROM @BRANCH_AUTH)
)
-- LUCTV 25 05 BO SUNG CAU HINH CHO PHEP DVKD DUOC THAY NHUNG PDN THANH TOAN DO HO TẠO
OR (
@p_TYPE_SEARCH ='HC'
AND @BRANCH_TYPE_LG <> 'HS'
AND
EXISTS (
SELECT *
FROM TR_REQ_ADVANCE_DT
WHERE REQ_PAY_ID = A.REQ_PAY_ID AND REF_ID IN (
SELECT CONTRACT_ID
FROM TR_CONTRACT
WHERE BRANCH_ID =@p_BRANCH_LOGIN
)
AND A.AUTH_STATUS_KT ='A'
)
)
)/*0*/
ORDER BY A.CREATE_DT DESC
-- PAGING END
END;
END

END -- PAGING
GO

#20 Updated by Luc Tran Van 3 months ago

WITH StepCheck AS (
SELECT
REQ_ID,
COUNT() AS StepCount,
MIN AS MinStep,
MAX AS MaxStep,
STRING_AGG(STEP_LEVEL, ',') WITHIN GROUP (ORDER BY STEP_LEVEL) AS StepSequence
FROM [dbo].[CM_APPROVE_GROUP]
GROUP BY REQ_ID
),
InvalidReq AS (
SELECT
REQ_ID,
StepCount,
MinStep,
MaxStep,
StepSequence
FROM StepCheck
WHERE (MaxStep - MinStep + 1) <> StepCount -- Kiểm tra xem có thiếu step nào không
OR EXISTS (
SELECT 1
FROM [dbo].[CM_APPROVE_GROUP] a
WHERE a.REQ_ID = StepCheck.REQ_ID
GROUP BY a.REQ_ID, a.STEP_LEVEL
HAVING COUNT(
) > 1 -- Kiểm tra step bị lặp lại
)
)
SELECT
REQ_ID,
StepCount AS 'Số lượng Step',
MinStep AS 'Step nhỏ nhất',
MaxStep AS 'Step lớn nhất',
StepSequence AS 'Dãy Step'
FROM InvalidReq
ORDER BY REQ_ID;

#21 Updated by Luc Tran Van 3 months ago

-- Bước 1: Lấy các bản ghi có CREATE_DT mới nhất cho mỗi REQ_ID
WITH LatestRecords AS (
SELECT
FROM [dbo].[CM_APPROVE_GROUP] a
WHERE CREATE_DT = (
SELECT MAX
FROM [dbo].[CM_APPROVE_GROUP] b
WHERE b.REQ_ID = a.REQ_ID
)
),
-- Bước 2: Đếm số lần lặp của mỗi STEP_LEVEL
StepCounts AS (
SELECT
REQ_ID,
STEP_LEVEL,
COUNT(
) AS StepRepeatCount
FROM LatestRecords
GROUP BY REQ_ID, STEP_LEVEL
),
-- Bước 3: Tạo chi tiết bước và thông tin tổng quan cho mỗi REQ_ID
ReqDetails AS (
SELECT
REQ_ID,
STEP_LEVEL,
COUNT() AS RepeatCount
FROM LatestRecords
GROUP BY REQ_ID, STEP_LEVEL
),
ReqSummary AS (
SELECT
r.REQ_ID,
COUNT(
) AS DistinctSteps, -- Đếm số bước khác nhau
(SELECT COUNT FROM LatestRecords a WHERE a.REQ_ID = r.REQ_ID) AS TotalRows,
STRING_AGG(CAST + '(' + CAST + ')', ', ')
WITHIN GROUP (ORDER BY r.STEP_LEVEL) AS StepDetails,
(SELECT STRING_AGG(APPROVE_GROUP_ID, ', ') WITHIN GROUP (ORDER BY APPROVE_GROUP_ID)
FROM LatestRecords b
WHERE b.REQ_ID = r.REQ_ID) AS ApproveGroupList
FROM ReqDetails r
GROUP BY r.REQ_ID
),
-- Bước 4: Lọc các REQ_ID có STEP_LEVEL lặp lại bất thường
InvalidReq AS (
SELECT
rs.REQ_ID,
rs.DistinctSteps,
rs.TotalRows,
rs.StepDetails,
rs.ApproveGroupList,
MAX AS MaxRepeatCount
FROM ReqSummary rs
LEFT JOIN StepCounts sc ON rs.REQ_ID = sc.REQ_ID
GROUP BY rs.REQ_ID, rs.DistinctSteps, rs.TotalRows, rs.StepDetails, rs.ApproveGroupList
HAVING MAX > (rs.TotalRows / 2) -- Lọc nếu bước lặp lại quá nửa tổng số bản ghi
)
SELECT
REQ_ID,
DistinctSteps AS 'Số bước khác nhau',
TotalRows AS 'Tổng số bản ghi',
StepDetails AS 'Chi tiết các bước',
ApproveGroupList AS 'Danh sách APPROVE_GROUP_ID'
FROM InvalidReq
ORDER BY REQ_ID;

Also available in: Atom PDF