Project

General

Profile

MW_BYREF.txt

Luc Tran Van, 02/02/2023 11:20 AM

 
1

    
2
ALTER   PROCEDURE [dbo].[rpt_MW_ENTRIES_POST_ByRefId_BanViet_w] @p_REF_ID VARCHAR(200) = NULL, @p_BRANCH_ID VARCHAR(50) = NULL, @p_RefNo VARCHAR(500) = NULL
3
AS
4

    
5
DECLARE @ENT_TEMP TABLE (ID INT,REF_ID VARCHAR(15), CR_ACCT VARCHAR(50), CR_BRN VARCHAR(15), DR_ACCT VARCHAR(50), DR_BRN VARCHAR(15), AMT DECIMAL(18,0), TRN_DESC NVARCHAR(500), ASSET_ID VARCHAR(15))
6
DECLARE @ENT_TEMP_ROOT TABLE (ID INT,REF_ID VARCHAR(15), CR_ACCT VARCHAR(50), CR_BRN VARCHAR(15), DR_ACCT VARCHAR(50), DR_BRN VARCHAR(15), AMT DECIMAL(18,0), TRN_DESC NVARCHAR(500), ASSET_ID VARCHAR(15),DR_NAME NVARCHAR(500), CR_NAME NVARCHAR(500))
7
DECLARE @ENT_TEMP_ROOT_NOT_VAT TABLE (ID INT,REF_ID VARCHAR(15), CR_ACCT VARCHAR(50), CR_BRN VARCHAR(15), DR_ACCT VARCHAR(50), DR_BRN VARCHAR(15), AMT DECIMAL(18,0), TRN_DESC NVARCHAR(500), ASSET_ID VARCHAR(15),DR_NAME NVARCHAR(500), CR_NAME NVARCHAR(500))
8
DECLARE @ENT_TEMP_ROOT_VAT TABLE (ID INT,REF_ID VARCHAR(15), CR_ACCT VARCHAR(50), CR_BRN VARCHAR(15), DR_ACCT VARCHAR(50), DR_BRN VARCHAR(15), AMT DECIMAL(18,0), TRN_DESC NVARCHAR(500), ASSET_ID VARCHAR(15),DR_NAME NVARCHAR(500), CR_NAME NVARCHAR(500))
9
DECLARE @TRN_DESC NVARCHAR(500) = '', @TRN_TYPE VARCHAR(50)
10

    
11
--------------------------LAY DANH SACH BUT TOAN -- LU VAO BANG DU LIEU GOC--------------------------
12
INSERT INTO @ENT_TEMP_ROOT SELECT Row_number() over(order by A.CR_ACCT),'',A.CR_ACCT, B.BRANCH_CODE CR_BRN, A.DR_ACCT, C.BRANCH_CODE DR_BRN, SUM(A.AMT) AS AMT,@TRN_DESC, A.MAST_PRICE_ID AS ASSET_ID,NULL, NULL
13
FROM MW_ENTRIES_POST A
14
LEFT JOIN CM_BRANCH B ON A.CR_BRN = B.BRANCH_ID
15
LEFT JOIN CM_BRANCH C ON A.DR_BRN = C.BRANCH_ID
16
WHERE TRN_ID = @p_REF_ID AND (A.DO_BRN = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')  AND (REF_NO = @p_RefNo OR @p_RefNo IS NULL OR @p_RefNo = '')
17
GROUP BY A.CR_ACCT, B.BRANCH_CODE, A.DR_ACCT, C.BRANCH_CODE,A.MAST_PRICE_ID
18

    
19
INSERT INTO @ENT_TEMP_ROOT_NOT_VAT SELECT Row_number() over(order by A.CR_ACCT),'',A.CR_ACCT, B.BRANCH_CODE CR_BRN, A.DR_ACCT, C.BRANCH_CODE DR_BRN, SUM(A.AMT) AS AMT,@TRN_DESC, A.MAST_PRICE_ID AS ASSET_ID,NULL, NULL
20
FROM MW_ENTRIES_POST A
21
LEFT JOIN CM_BRANCH B ON A.CR_BRN = B.BRANCH_ID
22
LEFT JOIN CM_BRANCH C ON A.DR_BRN = C.BRANCH_ID
23
WHERE TRN_ID = @p_REF_ID AND (A.DO_BRN = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')  AND (REF_NO = @p_RefNo OR @p_RefNo IS NULL OR @p_RefNo = '') AND TRN_TYPE <> 'MW_OUT_VAT'
24
GROUP BY A.CR_ACCT, B.BRANCH_CODE, A.DR_ACCT, C.BRANCH_CODE,A.MAST_PRICE_ID
25
INSERT INTO @ENT_TEMP_ROOT_VAT SELECT Row_number() over(order by A.CR_ACCT),'',A.CR_ACCT, B.BRANCH_CODE CR_BRN, A.DR_ACCT, C.BRANCH_CODE DR_BRN, SUM(A.AMT) AS AMT,@TRN_DESC, A.MAST_PRICE_ID AS ASSET_ID,NULL, NULL
26
FROM MW_ENTRIES_POST A
27
LEFT JOIN CM_BRANCH B ON A.CR_BRN = B.BRANCH_ID
28
LEFT JOIN CM_BRANCH C ON A.DR_BRN = C.BRANCH_ID
29
WHERE TRN_ID = @p_REF_ID AND (A.DO_BRN = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')  AND (REF_NO = @p_RefNo OR @p_RefNo IS NULL OR @p_RefNo = '') AND TRN_TYPE = 'MW_OUT_VAT'
30
GROUP BY A.CR_ACCT, B.BRANCH_CODE, A.DR_ACCT, C.BRANCH_CODE,A.MAST_PRICE_ID
31
--ORDER BY LEN(CR_ACCT)
32

    
33
--select * from @ENT_TEMP_ROOT
34
--DECLARE @COUNT INT = (SELECT COUNT(*) - COUNT(DISTINCT ASSET_ID) FROM ASS_ENTRIES_POST WHERE TRN_ID = @p_REF_ID)
35

    
36
--IF (SELECT COUNT(DISTINCT TRN_TYPE) FROM MW_ENTRIES_POST WHERE TRN_ID = @p_REF_ID) > 1 
37
--SET @TRN_TYPE = 'ADD_NEW'
38
--ELSE
39
--SET @TRN_TYPE = (SELECT TOP 1 TRN_TYPE FROM ASS_ENTRIES_POST WHERE TRN_ID = @p_REF_ID )
40
----------------------------TACH 1 DONG DU LIEU THANH 2 DONG NAM LIEN KE NHAU DE BINDING WORD--------------------------
41
-------LAY TAI KHOAN GL TUONG UNG CASA TRONG CM_BRANCH
42
UPDATE @ENT_TEMP_ROOT SET CR_ACCT = B.TEL, CR_NAME = B.PROVICE
43
FROM CM_BRANCH B
44
INNER JOIN @ENT_TEMP_ROOT C ON C.CR_ACCT = B.DAO_CODE AND LEN(C.CR_ACCT)>9
45

    
46
UPDATE @ENT_TEMP_ROOT SET DR_ACCT = B.TEL, DR_NAME = B.PROVICE
47
FROM CM_BRANCH B
48
INNER JOIN @ENT_TEMP_ROOT C ON C.DR_ACCT = B.DAO_CODE AND LEN(C.DR_ACCT)>9
49

    
50
--IF @TRN_TYPE = 'ADD_NEW'  OR @TRN_TYPE = 'ASS_USE' OR @TRN_TYPE='ASS_TRANSFER' 
51
--BEGIN
52
	/*
53
	SELECT SUM(AG.AMT) AMT, AG.DR_ACCT, AG.DR_ACCT_NAME, AG.DR_BRN, AG.ACCT,SUM(REF_ID) REF_ID, AG.DR_D DR_D, AG.CR_C
54
	FROM
55
	(
56
		SELECT A.AMT, A.DR_ACCT AS DR_ACCT, ISNULL(A.DR_NAME,[dbo].[FN_GET_ACC_NAME](A.DR_ACCT)) AS DR_ACCT_NAME, '' AS DR_BRN, N'Nợ/Debit' AS ACCT,ID AS REF_ID, A.DR_BRN AS DR_D, A.CR_ACCT AS CR_C
57
		FROM @ENT_TEMP_ROOT A
58
		--WHERE LEN(A.DR_ACCT) <= 9
59
		UNION 
60
		SELECT A.AMT, A.CR_ACCT AS DR_ACCT, ISNULL(A.CR_NAME,[dbo].[FN_GET_ACC_NAME](A.CR_ACCT)) AS DR_ACCT_NAME, '' AS DR_BRN, N'Có/Credit' AS ACCT,ID AS REF_ID, A.CR_BRN AS DR_D, A.CR_ACCT AS CR_C
61
		FROM @ENT_TEMP_ROOT A
62
		--WHERE LEN(A.CR_ACCT) <= 9
63
		--ORDER BY ID, ACCT DESC
64
	) AG
65
	-- LUCTV 03062020 CHINH SUA THEO HĐ BAO HANH BAO TRI:  BO SUNG CHI LAY NHUNG  DONG HACH TOAN CO SO TIEN LON HON KHONG
66
	WHERE AG.AMT >0
67
	---
68
	GROUP BY AG.ACCT, AG.DR_ACCT, AG.DR_ACCT_NAME,AG.DR_BRN,AG.DR_ACCT, AG.DR_D, AG.CR_C
69
	ORDER BY AG.ACCT DESC, SUM(REF_ID), AG.CR_C, AG.DR_ACCT DESC
70
	*/
71

    
72
	SELECT SUM(AG.AMT) AMT, AG.DR_ACCT, AG.DR_ACCT_NAME, AG.DR_BRN, AG.ACCT,SUM(REF_ID) REF_ID, AG.DR_D DR_D, AG.CR_C
73
	FROM
74
	(
75
		SELECT A.AMT, A.DR_ACCT AS DR_ACCT, ISNULL(A.DR_NAME,[dbo].[FN_GET_ACC_NAME](A.DR_ACCT)) AS DR_ACCT_NAME, '' AS DR_BRN, N'Nợ/Debit' AS ACCT,ID AS REF_ID, A.DR_BRN AS DR_D, A.CR_ACCT AS CR_C
76
		FROM @ENT_TEMP_ROOT_NOT_VAT A
77
		UNION 
78
		SELECT A.AMT, A.CR_ACCT AS DR_ACCT, ISNULL(A.CR_NAME,[dbo].[FN_GET_ACC_NAME](A.CR_ACCT)) AS DR_ACCT_NAME, '' AS DR_BRN, N'Có/Credit' AS ACCT,ID AS REF_ID, A.CR_BRN AS DR_D, A.CR_ACCT AS CR_C
79
		FROM @ENT_TEMP_ROOT_NOT_VAT A
80
	) AG
81
	WHERE AG.AMT >0
82
	GROUP BY AG.ACCT, AG.DR_ACCT, AG.DR_ACCT_NAME,AG.DR_BRN,AG.DR_ACCT, AG.DR_D, AG.CR_C
83
	UNION
84
	SELECT SUM(AG.AMT) AMT, AG.DR_ACCT, AG.DR_ACCT_NAME, AG.DR_BRN, AG.ACCT,SUM(REF_ID) REF_ID, AG.DR_D DR_D, AG.CR_C
85
	FROM
86
	(
87
		SELECT A.AMT, A.DR_ACCT AS DR_ACCT, ISNULL(A.DR_NAME,[dbo].[FN_GET_ACC_NAME](A.DR_ACCT)) AS DR_ACCT_NAME, '' AS DR_BRN, N'Nợ/Debit' AS ACCT,ID AS REF_ID, A.DR_BRN AS DR_D, A.CR_ACCT AS CR_C
88
		FROM @ENT_TEMP_ROOT_VAT A
89
		UNION 
90
		SELECT A.AMT, A.CR_ACCT AS DR_ACCT, ISNULL(A.CR_NAME,[dbo].[FN_GET_ACC_NAME](A.CR_ACCT)) AS DR_ACCT_NAME, '' AS DR_BRN, N'Có/Credit' AS ACCT,ID AS REF_ID, A.CR_BRN AS DR_D, A.CR_ACCT AS CR_C
91
		FROM @ENT_TEMP_ROOT_VAT A
92
	) AG
93
	WHERE AG.AMT >0
94
	GROUP BY AG.ACCT, AG.DR_ACCT, AG.DR_ACCT_NAME,AG.DR_BRN,AG.DR_ACCT, AG.DR_D, AG.CR_C
95
	
96
--END
97
--ELSE
98
--BEGIN
99
--	--IF LEFT(@p_REF_ID,4) = 'ASSL'--THANH LY TAI SAN
100
--	SELECT SUM(AG.AMT) AMT, AG.DR_ACCT, AG.DR_ACCT_NAME, AG.DR_BRN, AG.ACCT,SUM(REF_ID) REF_ID, AG.DR_D DR_D
101
--	FROM
102
--	(
103
--		SELECT A.AMT, A.DR_ACCT AS DR_ACCT, [dbo].[FN_GET_ACC_NAME](A.DR_ACCT) AS DR_ACCT_NAME, A.ASSET_ID AS DR_BRN, N'Nợ/Debit' AS ACCT,ID AS REF_ID, A.DR_BRN AS DR_D
104
--		FROM @ENT_TEMP_ROOT A
105
--		UNION 
106
--		SELECT A.AMT, A.CR_ACCT AS DR_ACCT, [dbo].[FN_GET_ACC_NAME](A.CR_ACCT) AS DR_ACCT_NAME, A.ASSET_ID AS DR_BRN, N'Có/Credit' AS ACCT,ID AS REF_ID, A.CR_BRN AS DR_D
107
--		FROM @ENT_TEMP_ROOT A
108
--	--ORDER BY ID, ACCT DESC
109
--	) AG
110
--	GROUP BY AG.DR_ACCT, AG.DR_ACCT_NAME,AG.DR_BRN,AG.DR_ACCT,AG.ACCT, AG.DR_D
111
--	ORDER BY AG.DR_BRN, AG.ACCT DESC
112
--END
113

    
114
DELETE @ENT_TEMP
115
DELETE @ENT_TEMP_ROOT
116
--------------------------DONE--------------------------