Project

General

Profile

MW_IN_UPD.txt

Luc Tran Van, 10/15/2020 10:52 AM

 
1

    
2
ALTER PROCEDURE [dbo].[MW_IN_Ins]
3
    @p_TRN_Date datetime = NULL,
4
    @p_GROUP_ID varchar(15) = NULL,
5
    @p_MATERIAL_NAME nvarchar(1000) = NULL,
6
    @p_MATERIAL_DESC nvarchar(MAX) = NULL,
7
    @p_MAKER_ID_KT varchar(15) = NULL,
8
    @p_MATERIAL_ID varchar(15) = NULL,
9
    @p_CHECKER_ID_KT varchar(15) = NULL,
10
    @p_BRANCH_ID varchar(15) = NULL,
11
    @p_DEPT_ID varchar(15) = NULL,
12
    @p_CREATE_DT_KT datetime = NULL,
13
    @p_AUTH_STATUS_KT varchar(1) = NULL,
14
    @p_QTY int = NULL,
15
    @p_PO_CODE nvarchar(200) = NULL,
16
    @p_NOTES nvarchar(1000) = NULL,
17
    @p_RECORD_STATUS varchar(1) = NULL,
18
    @p_AUTH_STATUS varchar(1) = NULL,
19
    @p_MAKER_ID varchar(15) = NULL,
20
    @p_CREATE_DT datetime = NULL,
21
    @p_CHECKER_ID varchar(15) = NULL,
22
    @p_APPROVE_DT datetime = NULL,
23
    @p_APPROVE_DT_KT datetime = NULL,
24
    @p_TRN_TIME varchar(50) = NULL,
25
    @p_BUY_PRICE NUMERIC(18, 0) = NULL,
26
    @p_TOTAL_AMT numeric(18, 2) = NULL,
27
    @p_VAT decimal(18, 2) = NULL,
28
    @p_PRICE_VAT decimal(18, 0) = NULL,
29
    @p_IS_PROMO varchar(1) = NULL,
30
	@p_BRANCH_CREATE  varchar(15)  = NULL,
31
	@p_INVOICE_NO  nvarchar(200)	   = NULL,
32
	@p_INVOICE_DT  datetime		   = NULL,
33
	@p_DIVISION_ID  varchar(15)	   = NULL,
34
	@p_ENTRY_BOOKED  varchar(1)	   = NULL,
35
	@p_CORE_NOTE nvarchar(500)	   = NULL,
36
	@p_IN_CODE nvarchar(200)	   = NULL,
37
	@p_WARE_HOUSE VARCHAR(15) = NULL,
38
	@p_XmlData XML = NULL
39

    
40
AS
41
		DECLARE @sErrorCode VARCHAR(20) = ''
42
		DECLARE @l_IN_ID VARCHAR(15)
43
		DECLARE @l_IN_MASTER_ID VARCHAR(15)
44
		-- LAY GROUP LEVEL - NẾU LÀ 1 THÌ CHẶN
45
		DECLARE @GROUP_LEVEL VARCHAR(15)
46
		--- KHAI BAO BIEN CURSOR
47
		DECLARE @IN_ID VARCHAR(15) = NULL,
48
				@GROUP_ID VARCHAR(15) = NULL,
49
				@MATERIAL_ID VARCHAR(15) = NULL,
50
				@MATERIAL_NAME NVARCHAR(200) = NULL,
51
				@QTY INT = NULL,
52
				@VAT NUMERIC(18, 0) = NULL,
53
				@TOTAL_AMT NUMERIC(18, 2) = NULL,
54
				@NOTES NVARCHAR(1000) = NULL
55
				DECLARE @hdoc INT;
56
		---
57
		EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XmlData;
58
		DECLARE XmlData CURSOR FOR
59
		SELECT *
60
		FROM
61
			OPENXML (@hdoc, '/Root/ADDNEWDT', 2)
62
			WITH (	IN_ID VARCHAR(15),
63
					GROUP_ID VARCHAR(15),
64
					MATERIAL_ID VARCHAR(15),
65
					MATERIAL_NAME NVARCHAR(200),
66
					QTY INT,
67
					VAT NUMERIC(18, 0),
68
					TOTAL_AMT NUMERIC(18, 2),
69
					NOTES NVARCHAR(1000));
70
		OPEN XmlData;
71
		BEGIN TRANSACTION
72
		-- INSERT MASTER
73
		EXEC [MW_IN_CODE_Gen] @p_BRANCH_CREATE,@p_WARE_HOUSE, @p_IN_CODE OUT
74
		EXEC SYS_CodeMasters_Gen 'MW_IN_MASTER', @l_IN_MASTER_ID out
75
		IF @l_IN_MASTER_ID='' OR @l_IN_MASTER_ID IS NULL GOTO ABORT
76
		INSERT INTO dbo.MW_IN_MASTER
77
		(
78
		    IN_ID,
79
		    TRN_Date,
80
		    GROUP_ID,
81
		    MATERIAL_NAME,
82
		    MATERIAL_DESC,
83
		    MAKER_ID_KT,
84
		    MATERIAL_ID,
85
		    CHECKER_ID_KT,
86
		    BRANCH_ID,
87
		    DEPT_ID,
88
		    CREATE_DT_KT,
89
		    AUTH_STATUS_KT,
90
		    QTY,
91
		    PO_CODE,
92
		    NOTES,
93
		    RECORD_STATUS,
94
		    AUTH_STATUS,
95
		    MAKER_ID,
96
		    CREATE_DT,
97
		    CHECKER_ID,
98
		    APPROVE_DT,
99
		    APPROVE_DT_KT,
100
		    TRN_TIME,
101
		    BUY_PRICE,
102
		    TOTAL_AMT,
103
		    VAT,
104
		    PRICE_VAT,
105
		    IS_PROMO,
106
			BRANCH_CREATE,
107
			INVOICE_NO,
108
			INVOICE_DT,
109
			DIVISION_ID,
110
			ENTRY_BOOKED,
111
			CORE_NOTE,IN_CODE,WARE_HOUSE
112

    
113
		)
114
		VALUES
115
		(   
116
			@l_IN_MASTER_ID,
117
		    @p_TRN_Date,
118
		    @p_GROUP_ID,
119
		    @p_MATERIAL_NAME,
120
		    @p_MATERIAL_DESC,
121
		    @p_MAKER_ID_KT,
122
		    @p_MATERIAL_ID,
123
		    @p_CHECKER_ID_KT,
124
		    @p_BRANCH_ID,
125
		    @p_DEPT_ID,
126
			CONVERT(DATETIME,@p_CREATE_DT_KT, 103)
127
		    ,
128
		    @p_AUTH_STATUS_KT,
129
		    @p_QTY,
130
		    @p_PO_CODE,
131
		    @p_NOTES,
132
		    @p_RECORD_STATUS,
133
		    @p_AUTH_STATUS,
134
		    @p_MAKER_ID,
135
		    CONVERT(DATETIME,@p_CREATE_DT, 103),
136
		    @p_CHECKER_ID,
137
		    CONVERT(DATETIME,@p_APPROVE_DT, 103),
138
		    CONVERT(DATETIME,@p_APPROVE_DT_KT, 103),
139
		    @p_TRN_TIME,
140
		    @p_BUY_PRICE,
141
		    @p_TOTAL_AMT,
142
		    @p_VAT,
143
		    @p_PRICE_VAT,
144
		    @p_IS_PROMO,
145
			@p_BRANCH_CREATE,
146
			@p_INVOICE_NO,
147
			@p_INVOICE_DT,
148
			@p_DIVISION_ID,
149
			@p_ENTRY_BOOKED,
150
			@p_CORE_NOTE,@p_IN_CODE,@p_WARE_HOUSE
151
		    )
152
		-- INSERT DETAIL
153
		FETCH NEXT FROM XmlData
154
		INTO @IN_ID,@GROUP_ID ,@MATERIAL_ID ,@MATERIAL_NAME,@QTY,@VAT,@TOTAL_AMT,@NOTES
155
		WHILE @@FETCH_STATUS = 0
156
		BEGIN
157
		----------------------------------------
158
		EXEC SYS_CodeMasters_Gen 'MW_IN', @IN_ID out
159
		IF @IN_ID='' OR @IN_ID IS NULL GOTO ABORT
160
		--SET @p_TOTAL_AMT = @p_BUY_PRICE
161
		--SET @p_BUY_PRICE = ROUND(@p_TOTAL_AMT/@p_QTY,0)
162
		SET @GROUP_LEVEL =(SELECT TOP 1 GROUP_LEVEL FROM MW_GROUP WHERE GROUP_ID =@GROUP_ID)
163
		IF(@GROUP_LEVEL='1')
164
		BEGIN 
165
			ROLLBACK TRANSACTION
166
			SELECT '-1' as Result, '' IN_ID, N'Bạn không thể nhập kho vật liệu với mã nhóm cấp 1 (THẺ hoặc HC). Vui lòng chọn các nhóm vật liệu khác hai nhóm này' ErrorDesc
167
			RETURN '-1'	
168
		END
169
		INSERT INTO dbo.MW_IN
170
		(
171
		    IN_MASTER_ID,IN_ID,TRN_Date, GROUP_ID,MATERIAL_NAME,
172
		    MATERIAL_DESC,MAKER_ID_KT,MATERIAL_ID,CHECKER_ID_KT, BRANCH_ID,
173
		    DEPT_ID,CREATE_DT_KT,AUTH_STATUS_KT,QTY,PO_CODE,NOTES,RECORD_STATUS,
174
		    AUTH_STATUS,MAKER_ID,CREATE_DT,CHECKER_ID,APPROVE_DT,APPROVE_DT_KT,TRN_TIME,
175
		    BUY_PRICE,TOTAL_AMT,VAT,PRICE_VAT,IS_PROMO,BRANCH_CREATE,INVOICE_NO,
176
			INVOICE_DT,DIVISION_ID,ENTRY_BOOKED,CORE_NOTE
177
		)
178
		VALUES
179
		(   @l_IN_MASTER_ID,
180
			@IN_ID,
181
		    @p_TRN_Date,
182
		    @GROUP_ID,@MATERIAL_NAME, @NOTES, @p_MAKER_ID_KT, @MATERIAL_ID,@p_CHECKER_ID_KT, @p_BRANCH_ID,@p_DEPT_ID,
183
			CONVERT(DATETIME,@p_CREATE_DT_KT, 103) , @p_AUTH_STATUS_KT, @QTY,@p_PO_CODE, @NOTES,@p_RECORD_STATUS,@p_AUTH_STATUS, @p_MAKER_ID,
184
		    CONVERT(DATETIME,@p_CREATE_DT, 103),@p_CHECKER_ID,
185
		    CONVERT(DATETIME,@p_APPROVE_DT, 103),
186
		    CONVERT(DATETIME,@p_APPROVE_DT_KT, 103),@p_TRN_TIME, @p_BUY_PRICE,
187
		    @TOTAL_AMT, @VAT,@TOTAL_AMT*@VAT/100,
188
		    @p_IS_PROMO,@p_BRANCH_CREATE,@p_INVOICE_NO,
189
			@p_INVOICE_DT,@p_DIVISION_ID,@p_ENTRY_BOOKED,@p_CORE_NOTE
190
		    )
191
		----------------------------------------
192
		IF @@Error <> 0
193
        GOTO ABORT;
194
		FETCH NEXT FROM XmlData
195
		INTO @IN_ID,@GROUP_ID ,@MATERIAL_ID ,@MATERIAL_NAME,@QTY,@VAT,@TOTAL_AMT,@NOTES
196
		END
197
		CLOSE XmlData;
198
		DEALLOCATE XmlData;
199
	
200
COMMIT TRANSACTION
201
SELECT '0' as Result, @l_IN_MASTER_ID  IN_ID, '' ErrorDesc
202
RETURN '0'
203
ABORT:
204
BEGIN
205
		 CLOSE XmlData;
206
		 DEALLOCATE XmlData;
207
		ROLLBACK TRANSACTION
208
		SELECT '-1' as Result, '' IN_ID, '' ErrorDesc
209
		RETURN '-1'
210
End
211

    
212

    
213