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
|
|