Project

General

Profile

[rpt_CON_REQUEST_DOC_BC01].txt

Luc Tran Van, 03/23/2023 02:40 PM

 
1

    
2

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

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

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

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

    
30
	--SELECT ROW_NUMBER() OVER(ORDER BY(SELECT 1)) AS STT,
31
	--dbo.FN_GET_CHINHANH(BR.BRANCH_ID,'KV') AS KV,
32
	--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
33
	--CON_HQ_T.CONTENT HQ_TYPE,
34
	--P.REQ_CODE,
35
	--P.APPROVE_DT,
36
	--P.TOTAL_AMT,
37
	--PAID_PRE_YEAR,
38
	--PAID_THIS_YEAR,
39
	--'' AS NOTES
40
	--FROM CON_MASTER C
41
	--LEFT JOIN CM_BRANCH BR ON C.BRANCH_ID = BR.BRANCH_ID
42
	--INNER JOIN CON_REQUEST_DOC_PARENT_VIEW P ON C.REQUEST_ID = P.REQ_ID
43
	--LEFT JOIN (
44
	--	SELECT REQUEST_ID,
45
	--	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,
46
	--	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
47
	--	FROM TR_CONTRACT_PAYMENT PAY
48
	--	WHERE REQUEST_ID IS NOT NULL
49
	--	GROUP BY REQUEST_ID
50
	--) PAY ON C.REQUEST_ID = PAY.REQUEST_ID
51
	--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
52
	--WHERE ((@P_LEVEL = 'ALL' AND C.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)
53
	--		OR (@P_LEVEL = 'UNIT' AND C.BRANCH_ID = @p_BRANCH_ID)) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL
54
	--)
55
	--AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR P.REQ_CODE LIKE '%' + @p_REQ_CODE + '%')
56
	--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 + '%'))
57
	--AND (@p_YEAR_BUDGET IS NULL OR @p_YEAR_BUDGET = '' OR P.YEAR_BUDGET = @p_YEAR_BUDGET)
58
	--AND (@p_REQ_BUDGET IS NULL OR @p_REQ_BUDGET = '' OR P.BUDGET = @p_REQ_BUDGET)
59
	--AND (REQ_DT >= @F_DAY_THIS_YEAR AND REQ_DT <= @L_DAY_THIS_YEAR)
60
	--AND C.RECORD_STATUS = '1' AND C.AUTH_STATUS = 'A'--THIEUVQ 18/1/2021
61

    
62
	--SELECT	N'THEO DÕI NGÂN SÁCH XDCB NĂM ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET) AS TITLE, 
63
	--		N'Năm ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET - 1) + N' dở dang' AS PAID_PRE_YEAR,
64
	--		N'Năm ' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET) AS PAID_THIS_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 - 1) + N' có ngày thanh toán từ 1/12/' + CONVERT(VARCHAR(100),@p_YEAR_BUDGET - 1) AS NOTE_PRE_YEAR,
66
	--		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
67

    
68

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