1
|
|
2
|
ALTER PROCEDURE [dbo].[MW_IN_Upd]
|
3
|
@p_IN_ID varchar(15),
|
4
|
@p_TRN_Date datetime = NULL,
|
5
|
@p_GROUP_ID varchar(15) = NULL,
|
6
|
@p_MATERIAL_NAME nvarchar(1000) = NULL,
|
7
|
@p_MATERIAL_DESC nvarchar(MAX) = NULL,
|
8
|
@p_MAKER_ID_KT varchar(15) = NULL,
|
9
|
@p_MATERIAL_ID varchar(15) = NULL,
|
10
|
@p_CHECKER_ID_KT varchar(15) = NULL,
|
11
|
@p_BRANCH_ID varchar(15) = NULL,
|
12
|
@p_DEPT_ID varchar(15) = NULL,
|
13
|
@p_CREATE_DT_KT datetime = NULL,
|
14
|
@p_AUTH_STATUS_KT varchar(1) = NULL,
|
15
|
@p_QTY int = NULL,
|
16
|
@p_PO_CODE nvarchar(200) = NULL,
|
17
|
@p_NOTES nvarchar(1000) = NULL,
|
18
|
@p_RECORD_STATUS varchar(1) = NULL,
|
19
|
@p_AUTH_STATUS varchar(1) = NULL,
|
20
|
@p_MAKER_ID varchar(15) = NULL,
|
21
|
@p_CREATE_DT datetime = NULL,
|
22
|
@p_CHECKER_ID varchar(15) = NULL,
|
23
|
@p_APPROVE_DT datetime = NULL,
|
24
|
@p_APPROVE_DT_KT datetime = NULL,
|
25
|
@p_TRN_TIME varchar(50) = NULL,
|
26
|
@p_BUY_PRICE NUMERIC(18, 0) = NULL,
|
27
|
@p_TOTAL_AMT numeric(18, 2) = NULL,
|
28
|
@p_VAT decimal(18, 2) = NULL,
|
29
|
@p_PRICE_VAT decimal(18, 0) = NULL,
|
30
|
@p_IS_PROMO varchar(1) = NULL,
|
31
|
@p_BRANCH_CREATE varchar(15) = NULL,
|
32
|
@p_INVOICE_NO NVARCHAR(200) = NULL,
|
33
|
@p_INVOICE_DT DATETIME = NULL,
|
34
|
@p_DIVISION_ID VARCHAR(15) = NULL,
|
35
|
@p_ENTRY_BOOKED varchar(1) = NULL,
|
36
|
@p_CORE_NOTE nvarchar(500) = NULL,
|
37
|
@p_IN_CODE NVARCHAR(100) = NULL,
|
38
|
@p_WARE_HOUSE VARCHAR(15) = NULL,
|
39
|
@p_XmlData XML = NULL
|
40
|
|
41
|
AS
|
42
|
DECLARE @sErrorCode VARCHAR(20) = ''
|
43
|
DECLARE @l_IN_ID VARCHAR(15)
|
44
|
DECLARE @l_IN_DT_ID VARCHAR(15)
|
45
|
-- LUCTV BO SUNG VAO NGAY 15 10 2020
|
46
|
DECLARE @GROUP_LEVEL VARCHAR(15)
|
47
|
--- KHAI BAO BIEN CURSOR
|
48
|
DECLARE @IN_ID VARCHAR(15) = NULL,
|
49
|
@GROUP_ID VARCHAR(15) = NULL,
|
50
|
@MATERIAL_ID VARCHAR(15) = NULL,
|
51
|
@MATERIAL_NAME NVARCHAR(200) = NULL,
|
52
|
@QTY INT = NULL,
|
53
|
@VAT NUMERIC(18, 0) = NULL,
|
54
|
@TOTAL_AMT NUMERIC(18, 2) = NULL,
|
55
|
@NOTES NVARCHAR(1000) = NULL,
|
56
|
@IS_PROMO VARCHAR(1) = NULL
|
57
|
DECLARE @hdoc INT;
|
58
|
---
|
59
|
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XmlData;
|
60
|
DECLARE XmlData CURSOR FOR
|
61
|
SELECT *
|
62
|
FROM
|
63
|
OPENXML (@hdoc, '/Root/ADDNEWDT', 2)
|
64
|
WITH ( IN_ID VARCHAR(15),
|
65
|
GROUP_ID VARCHAR(15),
|
66
|
MATERIAL_ID VARCHAR(15),
|
67
|
MATERIAL_NAME NVARCHAR(200),
|
68
|
QTY INT,
|
69
|
VAT NUMERIC(18, 0),
|
70
|
TOTAL_AMT NUMERIC(18, 2),
|
71
|
NOTES NVARCHAR(1000),
|
72
|
IS_PROMO VARCHAR(1));
|
73
|
OPEN XmlData;
|
74
|
DELETE FROM MW_IN WHERE IN_MASTER_ID =@p_IN_ID
|
75
|
BEGIN TRANSACTION
|
76
|
-- UPDATE MASTER
|
77
|
UPDATE [dbo].[MW_IN_MASTER]
|
78
|
SET
|
79
|
--[TOTAL_AMT] = @p_BUY_PRICE,
|
80
|
--[BUY_PRICE] = @p_BUY_PRICE/@p_QTY,
|
81
|
--[TRN_Date] = @p_TRN_Date,
|
82
|
--[GROUP_ID] = @p_GROUP_ID,
|
83
|
--[MATERIAL_NAME] = @p_MATERIAL_NAME,
|
84
|
[MATERIAL_DESC] = @p_MATERIAL_DESC,
|
85
|
--[MAKER_ID_KT] = @p_MAKER_ID_KT,
|
86
|
--[MATERIAL_ID] = @p_MATERIAL_ID,
|
87
|
--[CHECKER_ID_KT] = @p_CHECKER_ID_KT,
|
88
|
[BRANCH_ID] = @p_BRANCH_ID,
|
89
|
[DEPT_ID] = @p_DEPT_ID,
|
90
|
--[CREATE_DT_KT] = @p_CREATE_DT_KT,
|
91
|
--[AUTH_STATUS_KT] = @p_AUTH_STATUS_KT,
|
92
|
--[QTY] = @p_QTY,
|
93
|
[PO_CODE] = @p_PO_CODE,
|
94
|
[NOTES] = @p_NOTES,
|
95
|
[RECORD_STATUS] = @p_RECORD_STATUS,
|
96
|
[AUTH_STATUS] = 'U',
|
97
|
[MAKER_ID] = @p_MAKER_ID,
|
98
|
--[CREATE_DT] = @p_CREATE_DT,
|
99
|
--[CHECKER_ID] = @p_CHECKER_ID,
|
100
|
--[APPROVE_DT] = @p_APPROVE_DT,
|
101
|
--[APPROVE_DT_KT] = @p_APPROVE_DT_KT,
|
102
|
--[TRN_TIME] = @p_TRN_TIME,
|
103
|
|
104
|
--[VAT] = @p_VAT,
|
105
|
--[PRICE_VAT] = @p_PRICE_VAT,
|
106
|
[IS_PROMO] = @p_IS_PROMO,
|
107
|
[BRANCH_CREATE] = @p_BRANCH_CREATE ,
|
108
|
[INVOICE_NO] = @p_INVOICE_NO ,
|
109
|
[INVOICE_DT] = @p_INVOICE_DT ,
|
110
|
[DIVISION_ID] = @p_DIVISION_ID ,
|
111
|
[ENTRY_BOOKED] = @p_ENTRY_BOOKED,
|
112
|
[CORE_NOTE] =@p_CORE_NOTE,WARE_HOUSE =@p_WARE_HOUSE
|
113
|
|
114
|
WHERE IN_ID = @p_IN_ID
|
115
|
-----------
|
116
|
UPDATE MW_IN_MASTER
|
117
|
SET @p_PO_CODE =@p_PO_CODE, [MAKER_ID] = @p_MAKER_ID,INVOICE_NO= @p_INVOICE_NO,[NOTES] = @p_NOTES,[INVOICE_DT]= @p_INVOICE_DT
|
118
|
WHERE IN_ID =@p_IN_ID
|
119
|
-- INSERT DETAIL
|
120
|
FETCH NEXT FROM XmlData
|
121
|
INTO @IN_ID,@GROUP_ID ,@MATERIAL_ID ,@MATERIAL_NAME,@QTY,@VAT,@TOTAL_AMT,@NOTES,@IS_PROMO
|
122
|
WHILE @@FETCH_STATUS = 0
|
123
|
BEGIN
|
124
|
----------------------------------------
|
125
|
EXEC SYS_CodeMasters_Gen 'MW_IN', @l_IN_DT_ID out
|
126
|
IF @l_IN_DT_ID='' OR @l_IN_DT_ID IS NULL GOTO ABORT
|
127
|
--SET @p_TOTAL_AMT = @p_BUY_PRICE
|
128
|
--SET @p_BUY_PRICE = ROUND(@p_TOTAL_AMT/@p_QTY,0)
|
129
|
-- LUCTV BO SUNG VAO NGAY 15 10 2020
|
130
|
SET @GROUP_LEVEL =(SELECT TOP 1 GROUP_LEVEL FROM MW_GROUP WHERE GROUP_ID =@GROUP_ID)
|
131
|
IF(@GROUP_LEVEL='1')
|
132
|
BEGIN
|
133
|
ROLLBACK TRANSACTION
|
134
|
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
|
135
|
RETURN '-1'
|
136
|
END
|
137
|
INSERT INTO dbo.MW_IN
|
138
|
(
|
139
|
IN_MASTER_ID,IN_ID,TRN_Date, GROUP_ID,MATERIAL_NAME,
|
140
|
MATERIAL_DESC,MAKER_ID_KT,MATERIAL_ID,CHECKER_ID_KT, BRANCH_ID,
|
141
|
DEPT_ID,CREATE_DT_KT,AUTH_STATUS_KT,QTY,PO_CODE,NOTES,RECORD_STATUS,
|
142
|
AUTH_STATUS,MAKER_ID,CREATE_DT,CHECKER_ID,APPROVE_DT,APPROVE_DT_KT,TRN_TIME,
|
143
|
BUY_PRICE,TOTAL_AMT,VAT,PRICE_VAT,IS_PROMO,BRANCH_CREATE,INVOICE_NO,
|
144
|
INVOICE_DT,DIVISION_ID,ENTRY_BOOKED,CORE_NOTE
|
145
|
)
|
146
|
VALUES
|
147
|
( @p_IN_ID,
|
148
|
@l_IN_DT_ID,
|
149
|
@p_TRN_Date,
|
150
|
@GROUP_ID,@MATERIAL_NAME, @NOTES, @p_MAKER_ID_KT, @MATERIAL_ID,@p_CHECKER_ID_KT, @p_BRANCH_ID,@p_DEPT_ID,
|
151
|
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,
|
152
|
CONVERT(DATETIME,@p_CREATE_DT, 103),@p_CHECKER_ID,
|
153
|
CONVERT(DATETIME,@p_APPROVE_DT, 103),
|
154
|
CONVERT(DATETIME,@p_APPROVE_DT_KT, 103),@p_TRN_TIME, ROUND(@TOTAL_AMT/@QTY,0),
|
155
|
@TOTAL_AMT, @VAT,@TOTAL_AMT*@VAT/100,
|
156
|
@IS_PROMO,@p_BRANCH_CREATE,@p_INVOICE_NO,
|
157
|
@p_INVOICE_DT,@p_DIVISION_ID,@p_ENTRY_BOOKED,@p_CORE_NOTE
|
158
|
)
|
159
|
----------------------------------------
|
160
|
IF @@Error <> 0
|
161
|
GOTO ABORT;
|
162
|
FETCH NEXT FROM XmlData
|
163
|
INTO @IN_ID,@GROUP_ID ,@MATERIAL_ID ,@MATERIAL_NAME,@QTY,@VAT,@TOTAL_AMT,@NOTES,@IS_PROMO
|
164
|
END
|
165
|
CLOSE XmlData;
|
166
|
DEALLOCATE XmlData;
|
167
|
|
168
|
COMMIT TRANSACTION
|
169
|
SELECT '0' as Result, @l_IN_ID IN_ID, '' ErrorDesc
|
170
|
RETURN '0'
|
171
|
ABORT:
|
172
|
BEGIN
|
173
|
CLOSE XmlData;
|
174
|
DEALLOCATE XmlData;
|
175
|
ROLLBACK TRANSACTION
|
176
|
SELECT '-1' as Result, '' IN_ID, '' ErrorDesc
|
177
|
RETURN '-1'
|
178
|
End
|
179
|
|
180
|
|
181
|
|