Project

General

Profile

import_Entry.txt

Luc Tran Van, 11/30/2022 10:58 AM

 
1

    
2
ALTER   PROC [dbo].[TR_REQ_ENTRY_DT_Import] (
3
	@p_XMP_TEMP_DATA_ENTRIES XML = NULL
4
)
5
AS
6
BEGIN
7

    
8
	DECLARE @tmpEntryDT TABLE(
9
		STT INT IDENTITY(6, 1) PRIMARY KEY,
10
		ENTRY_PAIR VARCHAR(15),
11
		DR_CR_NAME  nVARCHAR(250),
12
		ACCT  VARCHAR(15),
13
		ACCT_NAME NVARCHAR(250),
14
		AMT DECIMAL(18, 0),
15
		BRANCH_ID VARCHAR(20),
16
		BRANCH_CODE VARCHAR(20),
17
		BRANCH_NAME nVARCHAR(250),
18
		DEP_ID VARCHAR(15),
19
		DEP_CODE VARCHAR(15),
20
		DEP_NAME NVARCHAR(250),
21
		TRN_DESC NVARCHAR(255)
22
	)
23

    
24
	DECLARE @hdoc INT
25
	EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XMP_TEMP_DATA_ENTRIES
26
	
27
	INSERT INTO @tmpEntryDT
28
	SELECT * FROM OPENXML(@hdoc, '/Root/XmlDataEntries', 2)
29
	WITH (
30
		ENTRY_PAIR VARCHAR(15),
31
		DR_CR_NAME  nVARCHAR(250),
32
		ACCT  VARCHAR(15),
33
		ACCT_NAME NVARCHAR(250),
34
		AMT DECIMAL(18, 0),
35
		BRANCH_ID VARCHAR(20),
36
		BRANCH_CODE VARCHAR(20),
37
		BRANCH_NAME nVARCHAR(250),
38
		DEP_ID VARCHAR(15),
39
		DEP_CODE VARCHAR(15),
40
		DEP_NAME NVARCHAR(250),
41
		TRN_DESC NVARCHAR(255)
42
	)
43
	
44
	------------------------------------------------ validate begin ------------------------------------------------
45
	-- Phần kiểm tra không để trống có thể kiểm tra ở phía front-end,
46
	-- thông qua biến bakValidation
47

    
48
	DECLARE @ERROR_MESSAGE nvarchar(MAX)
49

    
50
	-- Mã đơn vị
51
	SELECT @ERROR_MESSAGE = STUFF((
52
	SELECT ', dòng ' + CAST(T.STT AS VARCHAR(15)) FROM @tmpEntryDT T
53
	WHERE 
54
			NOT EXISTS (	SELECT BRANCH_CODE
55
							FROM dbo.CM_BRANCH
56
							WHERE BRANCH_CODE = T.BRANCH_CODE OR T.ACCT_NAME = N'Tổng cộng'
57
						)
58
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
59
	IF(LEN(@ERROR_MESSAGE) > 0)
60
	BEGIN
61
		SET @ERROR_MESSAGE = N'Mã đơn vị không có trong hệ thống tại: ' + @ERROR_MESSAGE
62
		EXEC sp_seterrormessage @ERROR_MESSAGE
63
		RETURN '-1'
64
	END
65
	/*
66
	--Mã phòng ban không thuộc đơn vị
67
	SELECT @ERROR_MESSAGE = STUFF((
68
	SELECT ', dòng ' + CAST(T.STT AS VARCHAR(15)) FROM @tmpEntryDT T
69
	WHERE NOT EXISTS (SELECT A.DEP_CODE
70
			FROM CM_DEPARTMENT A
71
				LEFT JOIN dbo.CM_BRANCH B ON B.BRANCH_CODE = T.BRANCH_CODE
72
			WHERE A.BRANCH_ID = B.BRANCH_ID AND A.DEP_CODE = T.DEP_CODE
73
			)
74
		FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
75
	IF(LEN(@ERROR_MESSAGE) > 0)
76
	BEGIN
77
		SET @ERROR_MESSAGE = N'Mã phòng ban không nằm trong đơn vị được chọn tại: ' + @ERROR_MESSAGE
78
		EXEC sp_seterrormessage @ERROR_MESSAGE
79
		RETURN '-1'
80
	END
81
	*/
82

    
83
	
84
	------------------------------------------------ validate end ------------------------------------------------
85

    
86
	SELECT T.STT, 
87
	T.ENTRY_PAIR,
88
	CM.CONTENT AS DR_CR_NAME, 
89
	CM.CDVAL AS DR_CR, CM.CONTENT AS DR_CR_NAME,
90
	T.ACCT, ACC.ACC_NAME AS ACCT_NAME, 
91
	T.AMT,
92
	B.BRANCH_ID, B.BRANCH_CODE, B.BRANCH_CODE + ' - ' + B.BRANCH_NAME AS BR_FULLNAME,
93
	D.DEP_ID, D.DEP_CODE, D.DEP_CODE + ' - ' + D.DEP_NAME as DP_FULLNAME,
94
	T.TRN_DESC
95
	FROM  CM_BRANCH B
96
		INNER JOIN @tmpEntryDT T ON T.BRANCH_CODE = B.BRANCH_CODE
97
		LEFT JOIN CM_DEPARTMENT D ON T.DEP_CODE = D.DEP_CODE AND B.BRANCH_ID = D.BRANCH_ID AND T.DEP_NAME = D.DEP_NAME
98
		LEFT JOIN CM_ALLCODE CM ON T.DR_CR_NAME = CM.CONTENT AND CM.CDNAME = 'DR_CR' AND CM.CDTYPE = 'REQ_PAY_ENTRIES'
99
		LEFT JOIN CM_ACCOUNT ACC ON T.ACCT = ACC.ACC_NO
100
	WHERE T.ACCT_NAME <> N'Tổng cộng'
101
	ORDER BY T.STT ASC
102

    
103
END