1
|
|
2
|
ALTER PROCEDURE [dbo].[MW_IN_KT_Upd]
|
3
|
@p_IN_ID varchar(15),
|
4
|
@p_TRN_Date VARCHAR(25) = 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 VARCHAR(25) = NULL,
|
14
|
@p_AUTH_STATUS_KT varchar(1) = NULL,
|
15
|
@p_QTY DECIMAL(18, 2) = 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 VARCHAR(25) = NULL,
|
22
|
@p_CHECKER_ID varchar(15) = NULL,
|
23
|
@p_APPROVE_DT VARCHAR(25) = NULL,
|
24
|
@p_APPROVE_DT_KT VARCHAR(25) = NULL,
|
25
|
@p_TRN_TIME varchar(50) = NULL,
|
26
|
@p_BUY_PRICE DECIMAL(18, 2) = NULL,
|
27
|
@p_TOTAL_AMT DECIMAL(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 VARCHAR(25) = 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_PO_ID varchar(20) = NULL,
|
40
|
@p_XmlData XML = NULL
|
41
|
|
42
|
AS
|
43
|
DECLARE @sErrorCode VARCHAR(20) = ''
|
44
|
DECLARE @l_IN_ID VARCHAR(15)
|
45
|
DECLARE @l_IN_DT_ID 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 DECIMAL(18, 2) = NULL,
|
52
|
@VAT DECIMAL(18, 2) = NULL,
|
53
|
@TOTAL_AMT DECIMAL(18, 2) = NULL,
|
54
|
@NOTES NVARCHAR(1000) = NULL,
|
55
|
@IS_PROMO VARCHAR(1) = NULL,
|
56
|
@PRICE_VAT DECIMAL(18, 2) = NULL,
|
57
|
@MATERIAL_ACCTNO VARCHAR(25)
|
58
|
DECLARE @hdoc INT;
|
59
|
---
|
60
|
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XmlData;
|
61
|
DECLARE XmlData CURSOR FOR
|
62
|
SELECT *
|
63
|
FROM
|
64
|
OPENXML (@hdoc, '/Root/ADDNEWDT', 2)
|
65
|
WITH ( IN_ID VARCHAR(15),
|
66
|
GROUP_ID VARCHAR(15),
|
67
|
MATERIAL_ID VARCHAR(15),
|
68
|
MATERIAL_NAME NVARCHAR(200),
|
69
|
QTY DECIMAL(18, 2),
|
70
|
VAT DECIMAL(18, 2),
|
71
|
TOTAL_AMT DECIMAL(18, 2),
|
72
|
NOTES NVARCHAR(1000),
|
73
|
IS_PROMO VARCHAR(1),
|
74
|
PRICE_VAT DECIMAL(18, 2),
|
75
|
MATERIAL_ACCTNO VARCHAR(25));
|
76
|
OPEN XmlData;
|
77
|
BEGIN TRANSACTION
|
78
|
--LUCTV: NGAY 07 -06 2019. BO SUNG RANG BUOC NEU DANG TRA VE CHO HANH CHINH THI KHONG DUOC PHEP CAP NHAT THONG TIN
|
79
|
DELETE FROM MW_IN WHERE IN_MASTER_ID =@p_IN_ID
|
80
|
IF( (SELECT AUTH_STATUS FROM MW_IN_MASTER WHERE IN_ID = @p_IN_ID)<>'A')
|
81
|
BEGIN
|
82
|
ROLLBACK TRANSACTION
|
83
|
SELECT '-1' as Result, N'Thông tin nhập mới vật liệu đang bị trả về bộ phận hành chính. Vui lòng chờ bộ phận hành chính kiểm duyệt' ErrorDesc
|
84
|
RETURN '-1'
|
85
|
END
|
86
|
-- UPDATE MASTER
|
87
|
UPDATE [dbo].[MW_IN_MASTER]
|
88
|
SET
|
89
|
--[TOTAL_AMT] = @p_BUY_PRICE,
|
90
|
--[BUY_PRICE] = @p_BUY_PRICE/@p_QTY,
|
91
|
--[TRN_Date] = @p_TRN_Date,
|
92
|
--[GROUP_ID] = @p_GROUP_ID,
|
93
|
--[MATERIAL_NAME] = @p_MATERIAL_NAME,
|
94
|
[MATERIAL_DESC] = @p_MATERIAL_DESC,
|
95
|
[MAKER_ID_KT] = @p_MAKER_ID_KT,
|
96
|
--[MATERIAL_ID] = @p_MATERIAL_ID,
|
97
|
[CHECKER_ID_KT] = @p_CHECKER_ID_KT,
|
98
|
[BRANCH_ID] = @p_BRANCH_ID,
|
99
|
[DEPT_ID] = @p_DEPT_ID,
|
100
|
[CREATE_DT_KT] = CONVERT(DATETIME,@p_CREATE_DT_KT, 103) ,
|
101
|
[AUTH_STATUS_KT] = 'U',
|
102
|
--[QTY] = @p_QTY,
|
103
|
[PO_CODE] = @p_PO_CODE,
|
104
|
[PO_ID] = @p_PO_ID,
|
105
|
[NOTES] = @p_NOTES,
|
106
|
[RECORD_STATUS] = @p_RECORD_STATUS,
|
107
|
|
108
|
--[AUTH_STATUS] = @p_AUTH_STATUS,
|
109
|
--[MAKER_ID] = @p_MAKER_ID,
|
110
|
--[CREATE_DT] = @p_CREATE_DT,
|
111
|
--[CHECKER_ID] = @p_CHECKER_ID,
|
112
|
--[APPROVE_DT] = @p_APPROVE_DT,
|
113
|
--[APPROVE_DT_KT] = @p_APPROVE_DT_KT,
|
114
|
--[TRN_TIME] = @p_TRN_TIME,
|
115
|
|
116
|
--[VAT] = @p_VAT,
|
117
|
--[PRICE_VAT] = @p_PRICE_VAT,
|
118
|
[IS_PROMO] = @p_IS_PROMO,
|
119
|
[BRANCH_CREATE] = @p_BRANCH_CREATE ,
|
120
|
[INVOICE_NO] = @p_INVOICE_NO ,
|
121
|
[INVOICE_DT] = CONVERT(DATETIME,@p_INVOICE_DT, 103) ,
|
122
|
[DIVISION_ID] = @p_DIVISION_ID ,
|
123
|
[ENTRY_BOOKED] = @p_ENTRY_BOOKED,
|
124
|
[CORE_NOTE] =@p_CORE_NOTE,WARE_HOUSE =@p_WARE_HOUSE
|
125
|
|
126
|
WHERE IN_ID = @p_IN_ID
|
127
|
-----------
|
128
|
UPDATE MW_IN_MASTER
|
129
|
SET @p_PO_CODE =@p_PO_CODE, [MAKER_ID] = @p_MAKER_ID,INVOICE_NO= @p_INVOICE_NO,[NOTES] = @p_NOTES,
|
130
|
[INVOICE_DT]= CONVERT(DATETIME,@p_INVOICE_DT, 103) , @p_PO_ID = @p_PO_ID
|
131
|
WHERE IN_ID =@p_IN_ID
|
132
|
-- INSERT DETAIL
|
133
|
FETCH NEXT FROM XmlData
|
134
|
INTO @IN_ID,@GROUP_ID ,@MATERIAL_ID ,@MATERIAL_NAME,@QTY,@VAT,@TOTAL_AMT,@NOTES,@IS_PROMO,@PRICE_VAT, @MATERIAL_ACCTNO
|
135
|
WHILE @@FETCH_STATUS = 0
|
136
|
BEGIN
|
137
|
----------------------------------------
|
138
|
IF(@PRICE_VAT IS NULL)
|
139
|
BEGIN
|
140
|
SET @PRICE_VAT = 0;
|
141
|
END
|
142
|
|
143
|
EXEC SYS_CodeMasters_Gen 'MW_IN', @l_IN_DT_ID out
|
144
|
IF @l_IN_DT_ID='' OR @l_IN_DT_ID IS NULL GOTO ABORT
|
145
|
--SET @p_TOTAL_AMT = @p_BUY_PRICE
|
146
|
--SET @p_BUY_PRICE = ROUND(@p_TOTAL_AMT/@p_QTY,0)
|
147
|
INSERT INTO dbo.MW_IN
|
148
|
(
|
149
|
IN_MASTER_ID,IN_ID,TRN_Date, GROUP_ID,MATERIAL_NAME,
|
150
|
MATERIAL_DESC,MAKER_ID_KT,MATERIAL_ID,CHECKER_ID_KT, BRANCH_ID,
|
151
|
DEPT_ID,CREATE_DT_KT,AUTH_STATUS_KT,QTY,PO_CODE,NOTES,RECORD_STATUS,
|
152
|
AUTH_STATUS,MAKER_ID,CREATE_DT,CHECKER_ID,APPROVE_DT,APPROVE_DT_KT,TRN_TIME,
|
153
|
BUY_PRICE,TOTAL_AMT,VAT,PRICE_VAT,IS_PROMO,BRANCH_CREATE,INVOICE_NO,
|
154
|
INVOICE_DT,DIVISION_ID,ENTRY_BOOKED,CORE_NOTE, PO_ID, MATERIAL_ACCTNO
|
155
|
)
|
156
|
VALUES
|
157
|
( @p_IN_ID,
|
158
|
@l_IN_DT_ID,
|
159
|
CONVERT(DATETIME,@p_TRN_Date, 103),
|
160
|
@GROUP_ID,@MATERIAL_NAME, @NOTES, @p_MAKER_ID_KT, @MATERIAL_ID,@p_CHECKER_ID_KT, @p_BRANCH_ID,@p_DEPT_ID,
|
161
|
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,
|
162
|
CONVERT(DATETIME,@p_CREATE_DT, 103),@p_CHECKER_ID,
|
163
|
CONVERT(DATETIME,@p_APPROVE_DT, 103),
|
164
|
CONVERT(DATETIME,@p_APPROVE_DT_KT, 103),@p_TRN_TIME, ROUND(@TOTAL_AMT/@QTY,0),
|
165
|
@TOTAL_AMT, @VAT,@PRICE_VAT,
|
166
|
@IS_PROMO,@p_BRANCH_CREATE,@p_INVOICE_NO,
|
167
|
CONVERT(DATETIME,@p_INVOICE_DT, 103),@p_DIVISION_ID,@p_ENTRY_BOOKED,@p_CORE_NOTE, @p_PO_ID, @MATERIAL_ACCTNO
|
168
|
)
|
169
|
----------------------------------------
|
170
|
IF @@Error <> 0
|
171
|
GOTO ABORT;
|
172
|
FETCH NEXT FROM XmlData
|
173
|
INTO @IN_ID,@GROUP_ID ,@MATERIAL_ID ,@MATERIAL_NAME,@QTY,@VAT,@TOTAL_AMT,@NOTES,@IS_PROMO,@PRICE_VAT, @MATERIAL_ACCTNO
|
174
|
END
|
175
|
CLOSE XmlData;
|
176
|
DEALLOCATE XmlData;
|
177
|
|
178
|
-- doanptt 07/06/2022: Thêm process
|
179
|
DELETE dbo.PL_PROCESS WHERE REQ_ID = @p_IN_ID AND PROCESS_ID = 'UPDATE_KT'
|
180
|
INSERT INTO dbo.PL_PROCESS
|
181
|
(
|
182
|
REQ_ID,
|
183
|
PROCESS_ID,
|
184
|
CHECKER_ID,
|
185
|
APPROVE_DT,
|
186
|
PROCESS_DESC,NOTES
|
187
|
)
|
188
|
VALUES
|
189
|
( @p_IN_ID, -- REQ_ID - varchar(15)
|
190
|
'UPDATE_KT', -- PROCESS_ID - varchar(10)
|
191
|
@p_MAKER_ID, -- CHECKER_ID - varchar(15)
|
192
|
GETDATE(), -- APPROVE_DT - datetime
|
193
|
N'Cập nhật phiếu nhập mới vật liệu kế toán thành công' ,
|
194
|
N'Cập nhật phiếu nhập mới vật liệu kế toán' -- PROCESS_DESC - nvarchar(1000)
|
195
|
)
|
196
|
|
197
|
COMMIT TRANSACTION
|
198
|
SELECT '0' as Result, @l_IN_ID IN_ID, '' ErrorDesc
|
199
|
RETURN '0'
|
200
|
ABORT:
|
201
|
BEGIN
|
202
|
CLOSE XmlData;
|
203
|
DEALLOCATE XmlData;
|
204
|
ROLLBACK TRANSACTION
|
205
|
SELECT '-1' as Result, '' IN_ID, '' ErrorDesc
|
206
|
RETURN '-1'
|
207
|
End
|