Project

General

Profile

MW_MATERIAL_INS.txt

Luc Tran Van, 03/28/2022 04:39 PM

 
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