1
|
ALTER PROCEDURE [dbo].[ASS_ENTRIES_POST_CoreByRef]
|
2
|
@p_REF_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_REF_ID
|
9
|
|
10
|
--SELECT TOP 1 @l_REF_NO = REF_NO, @l_ASSET_ID = ASSET_ID FROM ASS_ENTRIES_POST WHERE REF_ID = @p_REF_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_REF_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_REF_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_REF_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_REF_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_REF_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_REF_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
|