1
|
ALTER PROC [dbo].[TR_REQ_ENTRY_DT_Import] (
|
2
|
@p_XMP_TEMP_DATA_ENTRIES XML = NULL
|
3
|
)
|
4
|
AS
|
5
|
BEGIN
|
6
|
|
7
|
DECLARE @tmpEntryDT TABLE(
|
8
|
STT INT IDENTITY(6, 1) PRIMARY KEY,
|
9
|
ENTRY_PAIR VARCHAR(15),
|
10
|
DR_CR_NAME nVARCHAR(250),
|
11
|
ACCT VARCHAR(15),
|
12
|
ACCT_NAME NVARCHAR(250),
|
13
|
AMT DECIMAL(18, 0),
|
14
|
BRANCH_ID VARCHAR(20),
|
15
|
BRANCH_CODE VARCHAR(20),
|
16
|
BRANCH_NAME nVARCHAR(250),
|
17
|
DEP_ID VARCHAR(15),
|
18
|
DEP_CODE VARCHAR(15),
|
19
|
DEP_NAME NVARCHAR(250),
|
20
|
TRN_DESC NVARCHAR(255)
|
21
|
)
|
22
|
|
23
|
DECLARE @hdoc INT
|
24
|
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XMP_TEMP_DATA_ENTRIES
|
25
|
|
26
|
INSERT INTO @tmpEntryDT
|
27
|
SELECT * FROM OPENXML(@hdoc, '/Root/XmlDataEntries', 2)
|
28
|
WITH (
|
29
|
ENTRY_PAIR VARCHAR(15),
|
30
|
DR_CR_NAME nVARCHAR(250),
|
31
|
ACCT VARCHAR(15),
|
32
|
ACCT_NAME NVARCHAR(250),
|
33
|
AMT DECIMAL(18, 0),
|
34
|
BRANCH_ID VARCHAR(20),
|
35
|
BRANCH_CODE VARCHAR(20),
|
36
|
BRANCH_NAME nVARCHAR(250),
|
37
|
DEP_ID VARCHAR(15),
|
38
|
DEP_CODE VARCHAR(15),
|
39
|
DEP_NAME NVARCHAR(250),
|
40
|
TRN_DESC NVARCHAR(255)
|
41
|
)
|
42
|
|
43
|
------------------------------------------------ validate begin ------------------------------------------------
|
44
|
-- Phần kiểm tra không để trống có thể kiểm tra ở phía front-end,
|
45
|
-- thông qua biến bakValidation
|
46
|
|
47
|
DECLARE @ERROR_MESSAGE nvarchar(MAX)
|
48
|
|
49
|
-- Mã đơn vị
|
50
|
SELECT @ERROR_MESSAGE = STUFF((
|
51
|
SELECT ', dòng ' + CAST(T.STT AS VARCHAR(15)) FROM @tmpEntryDT T
|
52
|
WHERE
|
53
|
NOT EXISTS ( SELECT BRANCH_CODE
|
54
|
FROM dbo.CM_BRANCH
|
55
|
WHERE BRANCH_CODE = T.BRANCH_CODE OR T.ACCT_NAME = N'Tổng cộng'
|
56
|
)
|
57
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
|
58
|
IF(LEN(@ERROR_MESSAGE) > 0)
|
59
|
BEGIN
|
60
|
SET @ERROR_MESSAGE = N'Mã đơn vị không có trong hệ thống tại: ' + @ERROR_MESSAGE
|
61
|
EXEC sp_seterrormessage @ERROR_MESSAGE
|
62
|
RETURN '-1'
|
63
|
END
|
64
|
/*
|
65
|
--Mã phòng ban không thuộc đơn vị
|
66
|
SELECT @ERROR_MESSAGE = STUFF((
|
67
|
SELECT ', dòng ' + CAST(T.STT AS VARCHAR(15)) FROM @tmpEntryDT T
|
68
|
WHERE NOT EXISTS (SELECT A.DEP_CODE
|
69
|
FROM CM_DEPARTMENT A
|
70
|
LEFT JOIN dbo.CM_BRANCH B ON B.BRANCH_CODE = T.BRANCH_CODE
|
71
|
WHERE A.BRANCH_ID = B.BRANCH_ID AND A.DEP_CODE = T.DEP_CODE
|
72
|
)
|
73
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
|
74
|
IF(LEN(@ERROR_MESSAGE) > 0)
|
75
|
BEGIN
|
76
|
SET @ERROR_MESSAGE = N'Mã phòng ban không nằm trong đơn vị được chọn tại: ' + @ERROR_MESSAGE
|
77
|
EXEC sp_seterrormessage @ERROR_MESSAGE
|
78
|
RETURN '-1'
|
79
|
END
|
80
|
*/
|
81
|
|
82
|
|
83
|
------------------------------------------------ validate end ------------------------------------------------
|
84
|
|
85
|
SELECT T.STT, T.ENTRY_PAIR,
|
86
|
CM.CONTENT AS DR_CR_NAME, CM.CDVAL AS DR_CR, CM.CONTENT AS DR_CR_NAME,
|
87
|
T.ACCT, T.ACCT_NAME,
|
88
|
T.AMT,
|
89
|
B.BRANCH_ID, B.BRANCH_CODE, B.BRANCH_CODE + ' - ' + B.BRANCH_NAME AS BR_FULLNAME,
|
90
|
D.DEP_ID, D.DEP_CODE, d.DEP_NAME as DP_FULLNAME,
|
91
|
T.TRN_DESC
|
92
|
FROM CM_BRANCH B
|
93
|
INNER JOIN @tmpEntryDT T ON T.BRANCH_CODE = B.BRANCH_CODE
|
94
|
LEFT JOIN CM_DEPARTMENT D ON T.DEP_CODE = D.DEP_CODE --AND T.DEP_NAME = D.DEP_NAME
|
95
|
LEFT JOIN CM_ALLCODE CM ON T.DR_CR_NAME = CM.CONTENT AND CM.CDNAME = 'TR_REQ' AND CM.CDTYPE = 'ACC_ENTRY'
|
96
|
WHERE T.ACCT_NAME <> N'Tổng cộng'
|
97
|
ORDER BY T.STT ASC
|
98
|
|
99
|
END
|