Project

General

Profile

1.0 ASS CORE BY REF TOOL.txt

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

 
1

    
2

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

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

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

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

    
35
	INSERT INTO @ENTRIES_POST_TEM SELECT *,'','' FROM ASS_ENTRIES_POST WHERE TRN_ID = @p_REF_ID AND (REF_NO IS NULL OR REF_NO = '')
36
	UPDATE @ENTRIES_POST_TEM SET CR_DEP = A.DEP_ID, DR_DEP = A.DEP_ID
37
	FROM ASS_AMORT_DT A
38
	INNER JOIN @ENTRIES_POST_TEM B ON A.AMORTDT_ID = B.REF_ID
39

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

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

    
48
-------
49
	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)
50
	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
51
	FROM ASS_ENTRIES_POST 
52
	WHERE TRN_ID = @p_REF_ID AND (REF_NO IS NULL OR REF_NO = '')
53
	
54
	---THIEUVQ THEM DO_BRANCH 121120
55
	SET @p_DO_BRN_CODE = (SELECT BRANCH_CODE FROM CM_BRANCH WHERE BRANCH_ID = @p_DO_BRN)
56

    
57
	IF @p_TRN_TYPE = 'AMORT'
58
	BEGIN
59
		SET @l_TRN_DESC = N'KH/PB KY '+CONVERT(VARCHAR(5),MONTH(@lTRN_DATE))+' '+CONVERT(VARCHAR(5),YEAR(@lTRN_DATE))
60
	END
61

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

    
89

    
90

    
91

    
92

    
93

    
94

    
95