Project

General

Profile

RPT_CON_REQUEST_DOC_BC01.txt

Luc Tran Van, 03/22/2023 02:03 PM

 
1

    
2
ALTER   PROCEDURE [dbo].[rpt_CON_REQUEST_DOC_BC01]
3
(
4
	@p_LEVEL varchar(15) = NULL,
5
	@p_BRANCH_ID varchar(15) = NULL,
6
	@p_BRANCH_LOGIN varchar(15) = NULL,
7
	@p_REQ_CODE nvarchar(100) = NULL, -- SO HIEU TO TRINH
8
	@p_TERM_BID nvarchar(100) = NULL, -- HANG MUC
9
	@p_YEAR_BUDGET int = NULL, -- NAM NGAN SACH
10
	@p_REQ_BUDGET  varchar(20) = NULL -- LOAI NGAN SACH
11
)
12
AS
13
BEGIN
14
	IF(@p_BRANCH_ID IS NULL)
15
		SET @p_BRANCH_ID = @p_BRANCH_LOGIN
16

    
17
	--IF(@p_YEAR_BUDGET IS NULL)
18
	--	SET @p_YEAR_BUDGET = YEAR(GETDATE())
19

    
20
	--DECLARE @F_DAY_THIS_YEAR DATETIME = CONVERT(DATE,CONVERT(varchar(20), @p_YEAR_BUDGET - 1) + '-12-01')
21
	--DECLARE @L_DAY_THIS_YEAR DATETIME = CONVERT(DATE,CONVERT(varchar(20), @p_YEAR_BUDGET) + '-11-30')
22

    
23
	--DECLARE @F_DAY_PRE_YEAR DATETIME = CONVERT(DATE,CONVERT(varchar(20), @p_YEAR_BUDGET - 2) + '-12-01')
24
	--DECLARE @L_DAY_PRE_YEAR DATETIME = CONVERT(DATE,CONVERT(varchar(20), @p_YEAR_BUDGET - 1) + '-11-30')
25
	
26
	declare @tmp table(BRANCH_ID varchar(15))
27
	insert into @tmp  SELECT BRANCH_ID  FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
28

    
29
	--SELECT ROW_NUMBER() OVER(ORDER BY(SELECT 1)) AS STT,
30
	--dbo.FN_GET_CHINHANH(BR.BRANCH_ID,'KV') AS KV,
31
	--CASE WHEN C.BRANCH_NAME_ETX IS NULL OR C.BRANCH_NAME_ETX = '' THEN BR.BRANCH_NAME ELSE C.BRANCH_NAME_ETX END CONSTRUCT_NAME, -- CÔNG TRÌNH
32
	--CON_HQ_T.CONTENT HQ_TYPE,
33
	--P.REQ_CODE,
34
	--P.APPROVE_DT,
35
	--P.TOTAL_AMT,
36
	--PAID_PRE_YEAR,
37
	--PAID_THIS_YEAR,
38
	--'' AS NOTES
39
	--FROM CON_MASTER C
40
	--LEFT JOIN CM_BRANCH BR ON C.BRANCH_ID = BR.BRANCH_ID
41
	--INNER JOIN CON_REQUEST_DOC_PARENT_VIEW P ON C.REQUEST_ID = P.REQ_ID
42
	--LEFT JOIN (
43
	--	SELECT REQUEST_ID,
44
	--	SUM(CASE WHEN PAY_DT >= @F_DAY_THIS_YEAR AND PAY_DT <= @L_DAY_THIS_YEAR THEN AMOUNT ELSE 0 END) AS PAID_THIS_YEAR,
45
	--	SUM(CASE WHEN PAY_DT >= @F_DAY_PRE_YEAR AND PAY_DT <= @L_DAY_PRE_YEAR THEN AMOUNT ELSE 0 END) AS PAID_PRE_YEAR
46
	--	FROM TR_CONTRACT_PAYMENT PAY
47
	--	WHERE REQUEST_ID IS NOT NULL
48
	--	GROUP BY REQUEST_ID
49
	--) PAY ON C.REQUEST_ID = PAY.REQUEST_ID
50
	--LEFT JOIN CM_ALLCODE CON_HQ_T ON CON_HQ_T.CDNAME='REQ_HQ_TYPE' AND CON_HQ_T.CDType='CON' AND C.HQ_TYPE = CON_HQ_T.CDVAL
51
	--WHERE ((@P_LEVEL = 'ALL' AND C.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)
52
	--		OR (@P_LEVEL = 'UNIT' AND C.BRANCH_ID = @p_BRANCH_ID)) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL
53
	--)
54
	--AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR P.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
55
	--AND (@p_TERM_BID IS NULL OR @p_TERM_BID = '' OR EXISTS (SELECT * FROM BID_MASTER B WHERE B.REQUEST_ID = P.REQ_ID AND B.TERM_BID LIKE '%' + @p_TERM_BID + '%'))
56
	--AND (@p_YEAR_BUDGET IS NULL OR @p_YEAR_BUDGET = '' OR P.YEAR_BUDGET = @p_YEAR_BUDGET)
57
	--AND (@p_REQ_BUDGET IS NULL OR @p_REQ_BUDGET = '' OR P.BUDGET = @p_REQ_BUDGET)
58
	--AND (REQ_DT >= @F_DAY_THIS_YEAR AND REQ_DT <= @L_DAY_THIS_YEAR)
59
	--AND C.RECORD_STATUS = '1' AND C.AUTH_STATUS = 'A'--THIEUVQ 18/1/2021
60

    
61
	--SELECT	N'THEO DÕI NGÂN SÁCH XDCB NĂM ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET) AS TITLE, 
62
	--		N'Năm ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET - 1) + N' dở dang' AS PAID_PRE_YEAR,
63
	--		N'Năm ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET) AS PAID_THIS_YEAR,
64
	--		N'Khoản thanh toán của công trình thuộc ngân sách năm ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET - 1) + N' có ngày thanh toán từ 1/12/' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET - 1) AS NOTE_PRE_YEAR,
65
	--		N'Khoản thanh toán của công trình thuộc ngân sách năm ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET) + N' có ngày thanh toán từ 1/12/' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET - 1) AS NOTE_THIS_YEAR
66

    
67

    
68
	SELECT ROW_NUMBER() OVER(ORDER BY(SELECT 1)) AS STT,
69
	dbo.FN_GET_CHINHANH(BR.BRANCH_ID,'KV') AS KV,
70
	--CASE WHEN C.BRANCH_NAME_ETX IS NULL OR C.BRANCH_NAME_ETX = '' THEN BR.BRANCH_NAME ELSE C.BRANCH_NAME_ETX END CONSTRUCT_NAME, -- CÔNG TRÌNH
71
	C.CONSTRUCT_NAME AS CONSTRUCT_NAME,
72
	'' AS NOTES,
73
	RQ.REQ_CODE, RM.REQ_NAME, RQ.TOTAL_AMT, RM.EFFEC_DT AS APPROVE_DT,CON_HQ_T.CONTENT HQ_TYPE, ISNULL(TU.TONG_TAM_UNG,0) AS TOTAL_AD, 
74
	ISNULL(TT.TONG_THANH_TOAN,0) + ISNULL(SV.TONG_THANH_TOAN_TRUC_TIEP,0) AS TOTAL_PAY, ISNULL(RQ.TOTAL_AMT,0)- ISNULL(TU.TONG_TAM_UNG,0) - ISNULL(TT.TONG_THANH_TOAN,0) -ISNULL(SV.TONG_THANH_TOAN_TRUC_TIEP,0) AS REMAIN
75
	FROM CON_MASTER C
76
	LEFT JOIN CM_BRANCH BR ON C.BRANCH_ID = BR.BRANCH_ID
77
	LEFT JOIN CON_REQUEST_DOC RQ ON C.CONSTRUCT_ID = RQ.CONSTRUCT_ID
78
	LEFT JOIN PL_REQUEST_DOC RM ON RQ.REQ_ID = RM.REQ_ID
79
	LEFT JOIN CM_ALLCODE CON_HQ_T ON CON_HQ_T.CDNAME='REQ_HQ_TYPE' AND CON_HQ_T.CDType='CON' AND C.HQ_TYPE = CON_HQ_T.CDVAL
80
	--LEFT JOIN PL_REQUEST_DOC_DT RDT ON RM.REQ_ID = RDT.REQ_ID
81
	--LEFT JOIN CM_GOODS GD ON RDT.GOODS_ID = GD.GD_ID
82
	LEFT JOIN
83
	(
84
		SELECT DOC.PL_REQ_ID, SUM (AD.REQ_AMT) AS TONG_TAM_UNG FROM TR_REQ_ADVANCE_PAYMENT AD
85
		INNER JOIN TR_REQ_ADVANCE_DT DT ON AD.REQ_PAY_ID = DT.REQ_PAY_ID
86
		INNER JOIN TR_CONTRACT CT ON DT.REF_ID = CT.CONTRACT_ID
87
		INNER JOIN TR_REQUEST_DOC DOC ON CT.REQ_DOC_ID = DOC.REQ_ID
88
		WHERE AD.AUTH_STATUS_KT ='A'
89
		GROUP BY DOC.PL_REQ_ID
90
	) AS TU ON RQ.REQ_ID = TU.PL_REQ_ID
91
	LEFT JOIN
92
	(
93
		SELECT DOC.PL_REQ_ID, SUM (PAY.REQ_AMT) AS TONG_THANH_TOAN FROM TR_REQ_PAYMENT PAY
94
		INNER JOIN TR_REQ_ADVANCE_DT DT ON PAY.REQ_PAY_ID = DT.REQ_PAY_ID
95
		INNER JOIN TR_CONTRACT CT ON DT.REF_ID = CT.CONTRACT_ID
96
		INNER JOIN TR_REQUEST_DOC DOC ON CT.REQ_DOC_ID = DOC.REQ_ID
97
		WHERE PAY.AUTH_STATUS_KT ='A'
98
		GROUP BY DOC.PL_REQ_ID
99
	) AS TT ON RQ.REQ_ID = TT.PL_REQ_ID
100
	LEFT JOIN
101
	(
102
		SELECT DT.EMP_ID AS PL_REQ_ID, SUM (PAY.REQ_AMT) AS TONG_THANH_TOAN_TRUC_TIEP FROM TR_REQ_PAYMENT PAY
103
		INNER JOIN TR_REQ_PAY_SERVICE DT ON PAY.REQ_PAY_ID = DT.REQ_PAY_ID
104
		WHERE PAY.AUTH_STATUS_KT ='A'
105
		GROUP BY DT.EMP_ID
106
	) AS SV ON RQ.REQ_ID = SV.PL_REQ_ID
107
	WHERE 1=1
108
	AND (RQ.REQ_CODE LIKE '%' +@p_REQ_CODE +'%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE='')
109
	AND((@p_LEVEL = 'ALL' AND C.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)
110
		OR (@p_LEVEL = 'UNIT' AND C.BRANCH_ID = @p_BRANCH_ID)) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL)
111
	--AND C.AUTH_STATUS ='A'
112
	AND (YEAR(RM.EFFEC_DT) =@p_YEAR_BUDGET OR @p_YEAR_BUDGET IS NULL)
113
	--AND (GD.GD_NAME LIKE N'%' +@p_TERM_BID +'%' OR @p_TERM_BID= '' OR @p_TERM_BID IS NULL)
114
	AND (RM.REQ_ID IN (SELECT D.REQ_ID FROM CON_REQUEST_DOC D WHERE D.REQ_ID IN (SELECT DT.REQ_ID
115
																					FROM PL_REQUEST_DOC_DT DT 
116
																					INNER JOIN CM_GOODS GD ON DT.GOODS_ID = GD.GD_ID
117
																					WHERE GD.GD_NAME LIKE N'%' +@p_TERM_BID +'%' )) OR @p_TERM_BID= '' OR @p_TERM_BID IS NULL )
118
	IF(@p_YEAR_BUDGET IS NULL)
119
	BEGIN
120
		SET @p_YEAR_BUDGET = YEAR(GETDATE())
121
		SELECT	N'THEO DÕI NGÂN SÁCH XDCB ĐẾN NĂM ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET) AS TITLE
122
	END
123
	ELSE
124
	BEGIN
125
		SELECT	N'THEO DÕI NGÂN SÁCH XDCB NĂM ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET) AS TITLE
126
	END
127
END