Project

General

Profile

ASS_ENTRIES_POST_CoreByRef_2.txt

Luc Tran Van, 04/27/2022 04:31 PM

 
1
ALTER PROCEDURE [dbo].[ASS_ENTRIES_POST_CoreByRef]
2
	@p_TRN_ID varchar(200) = NULL,
3
	@p_TRN_TYPE VARCHAR(15) = ''---AMORT - KHẤU HAO, ADDNEW - THEM MOI, USE - XUAT, TRANSF - DIEU CHUYEN, UPDATE - UPDATE, COLLECT - THU HOI, LIQ - THANH LY
4
AS
5
--DECLARE @l_SUM_AMT DECIMAL, @l_REF_NO VARCHAR(20), @l_ASSET_ID VARCHAR(20)
6

    
7
--SELECT TOP 1 @l_TRN_TYPE = TRN_TYPE FROM ASS_ENTRIES_POST A
8
--WHERE A.REF_ID = @p_TRN_ID
9

    
10
--SELECT TOP 1 @l_REF_NO = REF_NO, @l_ASSET_ID = ASSET_ID FROM ASS_ENTRIES_POST WHERE REF_ID = @p_TRN_ID
11
--dbo.ReadMoney(A.AMT) as stringMoney,
12
	--DECLARE @TEMP_AMT TABLE (CR_ACCT VARCHAR(50), AMOUNT DECIMAL)
13
	--INSERT INTO @TEMP_AMT select CR_ACCT,sum(AMT)
14
	--from ASS_ENTRIES_POST 
15
	--where REF_ID =@p_TRN_ID
16
	--GROUP BY CR_ACCT
17
	--[dbo].[FN_GET_ACC_NAME](A.CR_ACCT) AS CR_ACCT_NAME,
18
	--SELECT A.ET_ID,
19
	--	A.CR_ACCT, CRB.BRANCH_CODE AS CR_BRN, 
20
	--	A.DR_ACCT, DRB.BRANCH_CODE AS DR_BRN, 
21
	--	A.AMT AS AMT, A.TRN_DESC AS TRN_DESC, 
22
	--	'VND' AS CURRENCY, 1.0 AS EXCRATE, A.MAKER_ID, A.CHECKER_ID
23
	--FROM ASS_ENTRIES_POST A
24
	----LEFT JOIN @TEMP_AMT B ON A.CR_ACCT= B.CR_ACCT
25
	----LEFT JOIN CM_BRANCH DOB ON DOB.BRANCH_ID = A.DO_BRN
26
	--LEFT JOIN CM_BRANCH CRB ON CRB.BRANCH_ID = A.CR_BRN
27
	--LEFT JOIN CM_BRANCH DRB ON DRB.BRANCH_ID = A.DR_BRN
28
	--WHERE A.REF_ID = @p_TRN_ID
29
	----GROUP BY A.TRN_TYPE,A.REF_ID,A.CR_ACCT,A.CR_BRN,A.DR_ACCT,A.DR_BRN,A.TRN_DESC,B.AMOUNT
30

    
31
	DECLARE @ENTRIES_POST_TEM TABLE (ET_ID varchar(15), REF_NO varchar(20), ASSET_ID varchar(15), TRN_TYPE nvarchar(40), REF_ID varchar(15), DO_BRN varchar(15), CR_ACCT varchar(20), CR_BRN varchar(15), DR_ACCT varchar(20), DR_BRN varchar(15), AMT decimal(18, 0), EXP_TO_CORE varchar(1), TRN_DATE datetime, TRN_DESC nvarchar(1000), MAKER_ID varchar(15), CHECKER_ID varchar(15), TRN_ID varchar(15), CR_DEP VARCHAR(15), DR_DEP VARCHAR(15))
32

    
33
	INSERT INTO @ENTRIES_POST_TEM SELECT *,'','' FROM ASS_ENTRIES_POST WHERE TRN_ID = @p_TRN_ID  AND (REF_NO IS NULL OR REF_NO ='') -- 23/09/2019 luctv bo sung ref_no is null
34
	UPDATE @ENTRIES_POST_TEM SET CR_DEP = A.DEP_ID, DR_DEP = A.DEP_ID
35
	FROM ASS_AMORT_DT A
36
	INNER JOIN @ENTRIES_POST_TEM B ON A.AMORTDT_ID = B.REF_ID
37

    
38
	UPDATE @ENTRIES_POST_TEM SET DR_DEP = A.DEPT_ID
39
	FROM (SELECT A.*, B.ASSET_ID FROM ASS_COST_ALLOC_DT A
40
		LEFT JOIN ASS_COST_ALLOCATION B ON A.COS_ID = B.COS_ID
41
		WHERE A.RECORD_STATUS = '1') A
42
	INNER JOIN @ENTRIES_POST_TEM B ON A.ASSET_ID = B.ASSET_ID
43

    
44
	--SELECT * FROM @ENTRIES_POST_TEM --WHERE CR_DEP <> DR_DEP
45

    
46
-------
47
	DECLARE @l_MAKER_ID VARCHAR(15), @l_CHECKER_ID VARCHAR(15), @l_TRN_DESC NVARCHAR(MAX), @lTRN_DATE DATETIME, @p_DO_BRN VARCHAR(50), @p_DO_BRN_CODE VARCHAR(50)
48
	SELECT TOP 1 @l_MAKER_ID = MAKER_ID,@l_CHECKER_ID = CHECKER_ID, @l_TRN_DESC = TRN_DESC, @lTRN_DATE = TRN_DATE, @p_DO_BRN = DO_BRN
49
	FROM ASS_ENTRIES_POST 
50
	WHERE TRN_ID = @p_TRN_ID
51

    
52
	---THIEUVQ THEM DO_BRANCH 121120
53
	SET @p_DO_BRN_CODE = (SELECT BRANCH_CODE FROM CM_BRANCH WHERE BRANCH_ID = @p_DO_BRN)
54
	
55
	IF @p_TRN_TYPE = 'AMORT'
56
	BEGIN
57
		SET @l_TRN_DESC = N'KH/PB KY '+CONVERT(VARCHAR(5),MONTH(@lTRN_DATE))+' '+CONVERT(VARCHAR(5),YEAR(@lTRN_DATE))
58
	END
59

    
60
	SELECT ACC.ET_ID,
61
			ACC.CR_ACCT,CRB.BRANCH_CODE AS CR_BRN,
62
			ACC.DR_ACCT,DRB.BRANCH_CODE AS DR_BRN,
63
			ACC.AMT,
64
			'VND' AS CURRENCY, 1 AS EXCRATE, @l_MAKER_ID AS MAKER_ID, @l_CHECKER_ID AS CHECKER_ID, @l_TRN_DESC AS TRN_DESC, @p_DO_BRN_CODE AS DO_BRN
65
	FROM
66
	(
67
		SELECT  CR_BRN, CR_DEP, CR_ACCT, 
68
		DR_BRN, DR_DEP, DR_ACCT, 
69
		SUM(AMT) AS AMT, 
70
		STUFF(( SELECT ',' + C1.ET_ID
71
		FROM @ENTRIES_POST_TEM C1
72
		WHERE C2.CR_BRN=C1.CR_BRN AND C2.CR_ACCT=C1.CR_ACCT AND C2.DR_BRN=C1.DR_BRN AND C2.DR_ACCT=C1.DR_ACCT --AND C1.TRN_ID = @p_TRN_ID
73
		AND  C2.CR_DEP = C1.CR_DEP AND C2.DR_DEP = C1.DR_DEP
74
		FOR
75
		XML PATH('')
76
		), 1, 1, '') AS ET_ID
77
		--'VND' AS CURRENCY, 1.0 AS EXCRATE, @l_MAKER_ID AS MAKER_ID, @l_CHECKER_ID AS CHECKER_ID, @l_TRN_DESC AS TRN_DESC
78
		FROM @ENTRIES_POST_TEM  C2	
79
		--WHERE C2.TRN_ID = @p_TRN_ID
80
		GROUP BY C2.CR_BRN, C2.CR_ACCT, C2.DR_BRN, C2.DR_ACCT, C2.CR_DEP, C2.DR_DEP
81
	) AS ACC
82
	LEFT JOIN CM_BRANCH CRB ON CRB.BRANCH_ID = ACC.CR_BRN
83
	LEFT JOIN CM_BRANCH DRB ON DRB.BRANCH_ID = ACC.DR_BRN