Project

General

Profile

2.0 ASS CORE BY REF.txt

Luc Tran Van, 10/26/2022 08:18 PM

 
1

    
2
ALTER   PROCEDURE [dbo].[ASS_ENTRIES_POST_CoreByRef]
3
	@p_REF_ID varchar(200) = NULL,
4
	@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
5
AS
6
--DECLARE @l_SUM_AMT DECIMAL, @l_REF_NO VARCHAR(20), @l_ASSET_ID VARCHAR(20)
7

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

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

    
32
	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))
33

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

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

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

    
47
-------
48
	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)
49
	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
50
	FROM ASS_ENTRIES_POST 
51
	WHERE TRN_ID = @p_REF_ID
52

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

    
61
	SELECT ACC.ET_ID,
62
			ACC.CR_ACCT,CRB.BRANCH_CODE AS CR_BRN,
63
			ACC.DR_ACCT,DRB.BRANCH_CODE AS DR_BRN,
64
			ACC.AMT,
65
			'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
66
	FROM
67
	(
68
		SELECT  CR_BRN, CR_DEP, CR_ACCT, 
69
		DR_BRN, DR_DEP, DR_ACCT, 
70
		SUM(AMT) AS AMT, 
71
		STUFF(( SELECT ',' + C1.ET_ID
72
		FROM @ENTRIES_POST_TEM C1
73
		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_REF_ID
74
		AND  C2.CR_DEP = C1.CR_DEP AND C2.DR_DEP = C1.DR_DEP
75
		FOR
76
		XML PATH('')
77
		), 1, 1, '') AS ET_ID
78
		--'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
79
		FROM @ENTRIES_POST_TEM  C2	
80
		--WHERE C2.TRN_ID = @p_REF_ID
81
		GROUP BY C2.CR_BRN, C2.CR_ACCT, C2.DR_BRN, C2.DR_ACCT, C2.CR_DEP, C2.DR_DEP
82
	) AS ACC
83
	LEFT JOIN CM_BRANCH CRB ON CRB.BRANCH_ID = ACC.CR_BRN
84
	LEFT JOIN CM_BRANCH DRB ON DRB.BRANCH_ID = ACC.DR_BRN