Project

General

Profile

rpt_MW_OUT.txt

Luc Tran Van, 11/23/2022 03:18 PM

 
1
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
2
AS
3

    
4
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))
5
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))
6
DECLARE @TRN_DESC NVARCHAR(500) = '', @TRN_TYPE VARCHAR(50)
7

    
8
--------------------------LAY DANH SACH BUT TOAN -- LU VAO BANG DU LIEU GOC--------------------------
9
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
10
FROM MW_ENTRIES_POST A
11
LEFT JOIN CM_BRANCH B ON A.CR_BRN = B.BRANCH_ID
12
LEFT JOIN CM_BRANCH C ON A.DR_BRN = C.BRANCH_ID
13
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 = '')
14
GROUP BY A.CR_ACCT, B.BRANCH_CODE, A.DR_ACCT, C.BRANCH_CODE,A.MAST_PRICE_ID
15
--ORDER BY LEN(CR_ACCT)
16

    
17
--select * from @ENT_TEMP_ROOT
18
--DECLARE @COUNT INT = (SELECT COUNT(*) - COUNT(DISTINCT ASSET_ID) FROM ASS_ENTRIES_POST WHERE TRN_ID = @p_REF_ID)
19

    
20
--IF (SELECT COUNT(DISTINCT TRN_TYPE) FROM MW_ENTRIES_POST WHERE TRN_ID = @p_REF_ID) > 1 
21
--SET @TRN_TYPE = 'ADD_NEW'
22
--ELSE
23
--SET @TRN_TYPE = (SELECT TOP 1 TRN_TYPE FROM ASS_ENTRIES_POST WHERE TRN_ID = @p_REF_ID )
24
----------------------------TACH 1 DONG DU LIEU THANH 2 DONG NAM LIEN KE NHAU DE BINDING WORD--------------------------
25
-------LAY TAI KHOAN GL TUONG UNG CASA TRONG CM_BRANCH
26
UPDATE @ENT_TEMP_ROOT SET CR_ACCT = B.TEL, CR_NAME = B.PROVICE
27
FROM CM_BRANCH B
28
INNER JOIN @ENT_TEMP_ROOT C ON C.CR_ACCT = B.DAO_CODE AND LEN(C.CR_ACCT)>9
29

    
30
UPDATE @ENT_TEMP_ROOT SET DR_ACCT = B.TEL, DR_NAME = B.PROVICE
31
FROM CM_BRANCH B
32
INNER JOIN @ENT_TEMP_ROOT C ON C.DR_ACCT = B.DAO_CODE AND LEN(C.DR_ACCT)>9
33

    
34
--IF @TRN_TYPE = 'ADD_NEW'  OR @TRN_TYPE = 'ASS_USE' OR @TRN_TYPE='ASS_TRANSFER' 
35
--BEGIN
36
	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
37
	FROM
38
	(
39
		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
40
		FROM @ENT_TEMP_ROOT A
41
		--WHERE LEN(A.DR_ACCT) <= 9
42
		UNION 
43
		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
44
		FROM @ENT_TEMP_ROOT A
45
		--WHERE LEN(A.CR_ACCT) <= 9
46
		--ORDER BY ID, ACCT DESC
47
	) AG
48
	-- LUCTV 03062020 CHINH SUA THEO HĐ BAO HANH BAO TRI:  BO SUNG CHI LAY NHUNG  DONG HACH TOAN CO SO TIEN LON HON KHONG
49
	WHERE AG.AMT >0
50
	---
51
	GROUP BY AG.DR_ACCT, AG.DR_ACCT_NAME,AG.DR_BRN,AG.DR_ACCT,AG.ACCT, AG.DR_D, AG.CR_C
52
	ORDER BY AG.ACCT, SUM(REF_ID), AG.CR_C, AG.DR_ACCT DESC
53
--END
54
--ELSE
55
--BEGIN
56
--	--IF LEFT(@p_REF_ID,4) = 'ASSL'--THANH LY TAI SAN
57
--	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
58
--	FROM
59
--	(
60
--		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
61
--		FROM @ENT_TEMP_ROOT A
62
--		UNION 
63
--		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
64
--		FROM @ENT_TEMP_ROOT A
65
--	--ORDER BY ID, ACCT DESC
66
--	) AG
67
--	GROUP BY AG.DR_ACCT, AG.DR_ACCT_NAME,AG.DR_BRN,AG.DR_ACCT,AG.ACCT, AG.DR_D
68
--	ORDER BY AG.DR_BRN, AG.ACCT DESC
69
--END
70

    
71
DELETE @ENT_TEMP
72
DELETE @ENT_TEMP_ROOT
73
--------------------------DONE--------------------------