1
|
|
2
|
ALTER PROCEDURE [dbo].[MW_MATERIAL_Ins]
|
3
|
--@p_MATERIAL_ID varchar(15),
|
4
|
@p_MATERIAL_CODE nvarchar(100) = NULL,
|
5
|
@p_MATERIAL_NAME nvarchar(1000) = NULL,
|
6
|
@p_GROUP_ID varchar(15) = NULL,
|
7
|
@p_UNIT_ID varchar(15) = NULL,
|
8
|
@p_IS_CALC_EXP varchar(1) = NULL,
|
9
|
@p_NOTES nvarchar(1000) = NULL,
|
10
|
@p_RECORD_STATUS varchar(1) = NULL,
|
11
|
@p_AUTH_STATUS varchar(1) = NULL,
|
12
|
@p_MAKER_ID varchar(15) = NULL,
|
13
|
@p_CREATE_DT VARCHAR(25) = NULL,
|
14
|
@p_CHECKER_ID varchar(15) = NULL,
|
15
|
@p_APPROVE_DT VARCHAR(25) = NULL,
|
16
|
@p_MATERIAL_ACCTNO varchar(50) = NULL,
|
17
|
@p_EXP_ACCTNO varchar(50) = NULL,
|
18
|
@p_INC_ACCTNO varchar(50) = NULL,
|
19
|
@p_LIQ_ACCTNO varchar(50) = NULL,
|
20
|
@p_MATERIAL_ACCTNO_NHNN varchar(50) = NULL,
|
21
|
@p_VAT_ACCTNO VARCHAR(50) = NULL
|
22
|
AS
|
23
|
DECLARE @sErrorCode VARCHAR(20) = ''
|
24
|
DECLARE @l_MATERIAL_ID VARCHAR(15)
|
25
|
IF(@p_MATERIAL_CODE IS NOT NULL AND @p_MATERIAL_CODE <> '')
|
26
|
IF EXISTS(SELECT 1 FROM dbo.MW_MATERIAL A WHERE A.MATERIAL_CODE = @p_MATERIAL_CODE)
|
27
|
BEGIN
|
28
|
SET @sErrorCode = 'MW-00022'
|
29
|
END
|
30
|
IF @sErrorCode <> ''
|
31
|
BEGIN
|
32
|
SELECT '-1' Result, '' AMORT_MONTH, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @sErrorCode
|
33
|
RETURN 0
|
34
|
END
|
35
|
IF(@p_MATERIAL_ACCTNO IS NULL OR @p_MATERIAL_ACCTNO ='' OR LEN(@p_MATERIAL_ACCTNO) <> 9)
|
36
|
BEGIN
|
37
|
SELECT '-1' Result, '' DEP_ID, N'Số tài khoản vật liệu bắt buộc phải nhập đủ 9 ký tự' ErrorDesc
|
38
|
RETURN 0
|
39
|
END
|
40
|
IF(@p_EXP_ACCTNO IS NULL OR @p_EXP_ACCTNO ='' OR LEN(@p_EXP_ACCTNO) <> 9)
|
41
|
BEGIN
|
42
|
SELECT '-1' Result, '' DEP_ID, N'Số tài khoản chi phí bắt buộc phải nhập đủ 9 ký tự' ErrorDesc
|
43
|
RETURN 0
|
44
|
END
|
45
|
IF(@p_VAT_ACCTNO IS NULL OR @p_VAT_ACCTNO ='' OR LEN(@p_VAT_ACCTNO) <> 9)
|
46
|
BEGIN
|
47
|
SELECT '-1' Result, '' DEP_ID, N'Số tài khoản VAT bắt buộc phải nhập đủ 9 ký tự' ErrorDesc
|
48
|
RETURN 0
|
49
|
END
|
50
|
BEGIN TRANSACTION
|
51
|
---- GEN MA CODE TU DONG
|
52
|
DECLARE @MAX_MATERIAL_CODE VARCHAR(15), @INDEX_CODE INT, @GROUP_CODE VARCHAR(15)
|
53
|
SET @GROUP_CODE =(SELECT GROUP_CODE FROM MW_GROUP WHERE GROUP_ID =@p_GROUP_ID)
|
54
|
SET @MAX_MATERIAL_CODE =ISNULL((SELECT RIGHT(MAX(MATERIAL_CODE),4) FROM MW_MATERIAL WHERE GROUP_ID =@p_GROUP_ID), '0')
|
55
|
SET @INDEX_CODE = CONVERT(INT,RIGHT(@MAX_MATERIAL_CODE,3)) +1
|
56
|
--IF(LEN(CONVERT(VARCHAR,@INDEX_CODE,20)) =1)
|
57
|
SET @p_MATERIAL_CODE =@GROUP_CODE + RIGHT('000' + CONVERT(VARCHAR,@INDEX_CODE,20),4)
|
58
|
--ELSE
|
59
|
--SET @p_MATERIAL_CODE =@GROUP_CODE + RIGHT('00' + CONVERT(VARCHAR,@INDEX_CODE,20),4)
|
60
|
--- END GEN MA CODE
|
61
|
EXEC SYS_CodeMasters_Gen 'MW_MATERIAL', @l_MATERIAL_ID out
|
62
|
IF @l_MATERIAL_ID='' OR @l_MATERIAL_ID IS NULL GOTO ABORT
|
63
|
|
64
|
INSERT INTO dbo.MW_MATERIAL
|
65
|
(
|
66
|
MATERIAL_ID,
|
67
|
MATERIAL_CODE,
|
68
|
MATERIAL_NAME,
|
69
|
GROUP_ID,
|
70
|
UNIT_ID,
|
71
|
IS_CALC_EXP,
|
72
|
NOTES,
|
73
|
RECORD_STATUS,
|
74
|
AUTH_STATUS,
|
75
|
MAKER_ID,
|
76
|
CREATE_DT,
|
77
|
CHECKER_ID,
|
78
|
APPROVE_DT,
|
79
|
[MATERIAL_ACCTNO],
|
80
|
[EXP_ACCTNO],
|
81
|
[INC_ACCTNO],
|
82
|
[LIQ_ACCTNO],
|
83
|
[MATERIAL_ACCTNO_NHNN],
|
84
|
[VAT_ACCTNO]
|
85
|
)
|
86
|
VALUES
|
87
|
(
|
88
|
@l_MATERIAL_ID,
|
89
|
@p_MATERIAL_CODE,
|
90
|
@p_MATERIAL_NAME,
|
91
|
@p_GROUP_ID,
|
92
|
@p_UNIT_ID,
|
93
|
@p_IS_CALC_EXP,
|
94
|
@p_NOTES,
|
95
|
@p_RECORD_STATUS,
|
96
|
@p_AUTH_STATUS,
|
97
|
@p_MAKER_ID,
|
98
|
CONVERT(DATETIME, @p_CREATE_DT, 103),
|
99
|
@p_CHECKER_ID,
|
100
|
CONVERT(DATETIME, @p_APPROVE_DT, 103),
|
101
|
@p_MATERIAL_ACCTNO,
|
102
|
@p_EXP_ACCTNO,
|
103
|
@p_INC_ACCTNO,
|
104
|
@p_LIQ_ACCTNO,
|
105
|
@p_MATERIAL_ACCTNO_NHNN,
|
106
|
@p_VAT_ACCTNO
|
107
|
)
|
108
|
|
109
|
IF @@Error <> 0 GOTO ABORT
|
110
|
|
111
|
|
112
|
COMMIT TRANSACTION
|
113
|
SELECT '0' as Result, @l_MATERIAL_ID id, @p_MATERIAL_CODE material_code, -- DuyTN thêm id
|
114
|
--CAST(@l_AMORT_MONTH as varchar(100)) AMORT_MONTH,
|
115
|
|
116
|
'' ErrorDesc
|
117
|
RETURN '0'
|
118
|
ABORT:
|
119
|
BEGIN
|
120
|
|
121
|
ROLLBACK TRANSACTION
|
122
|
SELECT '-1' as Result,
|
123
|
--'' AMORT_MONTH,
|
124
|
'' ErrorDesc
|
125
|
RETURN '-1'
|
126
|
|
127
|
End
|
128
|
|
129
|
|