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--------------------------
|