1
|
|
2
|
/*INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('MW_TRANSFER','MWTF','')
|
3
|
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('MWTF','1','1')*/
|
4
|
/*INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('MW_TRANSFER_DT','MWTDT','')
|
5
|
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('MWTDT','1','1')*/
|
6
|
ALTER PROCEDURE [dbo].[MW_TRANSFER_KT_Upd]
|
7
|
@p_TRANSFER_ID varchar(15) = NULL,
|
8
|
@p_TRN_DATE VARCHAR(20) = NULL,
|
9
|
@p_TRN_TIME varchar(50) = NULL,
|
10
|
@p_QTY DECIMAL(18,2) = NULL,
|
11
|
@p_PRICE NUMERIC(18, 0) = NULL,
|
12
|
@p_TOTAL_AMT numeric(18, 2) = NULL,
|
13
|
@p_NOTES nvarchar(1000) = NULL,
|
14
|
@p_AUTH_STATUS varchar(1) = NULL,
|
15
|
@p_MAKER_ID varchar(15) = NULL,
|
16
|
@p_CREATE_DT VARCHAR(20) = NULL,
|
17
|
@p_CHECKER_ID varchar(15) = NULL,
|
18
|
@p_APPROVE_DT VARCHAR(20) = NULL,
|
19
|
@p_KT_AUTH_STATUS varchar(1) = NULL,
|
20
|
@p_KT_MAKER_ID varchar(15) = NULL,
|
21
|
@p_KT_CREATE_DT VARCHAR(20) = NULL,
|
22
|
@p_KT_CHECKER_ID varchar(15) = NULL,
|
23
|
@p_KT_APPROVE_DT VARCHAR(20) = NULL,
|
24
|
@p_RECORD_STATUS varchar(1) = NULL,
|
25
|
@p_FRM_BRANCH_ID VARCHAR(15) = NULL,
|
26
|
@p_FRM_DEPT_ID VARCHAR(15) = NULL,
|
27
|
@p_XmlData XML = NULL,
|
28
|
@p_CORE_NOTE VARCHAR(1000) = NULL,
|
29
|
@p_WARE_HOUSE VARCHAR(15) = NULL
|
30
|
AS
|
31
|
DECLARE
|
32
|
--DVSD
|
33
|
@TRANSFER_DT_ID varchar(20) = NULL,
|
34
|
@TRANSFER_ID varchar(15) = NULL,
|
35
|
@MAST_BAL_ID varchar(15) = NULL,
|
36
|
@FR_BRN_ID varchar(15) = NULL,
|
37
|
@FR_DEPT_ID varchar(15) = NULL,
|
38
|
@FR_PRICE_ID varchar(15) = NULL,
|
39
|
@TO_BRN_ID varchar(15) = NULL,
|
40
|
@TO_DEPT_ID varchar(15) = NULL,
|
41
|
@QTY DECIMAL(18,2) = NULL,
|
42
|
@QTY_OLD DECIMAL(18,2) = NULL,
|
43
|
@PRICE NUMERIC(18, 0) = NULL,
|
44
|
@TOTAL_AMT numeric(18, 2) = NULL,
|
45
|
@NOTES nvarchar(1000) = NULL,
|
46
|
@COST_ACC varchar(50) = NULL
|
47
|
Declare @hdoc INT
|
48
|
Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
|
49
|
DECLARE XmlData CURSOR FOR
|
50
|
SELECT *
|
51
|
FROM OPENXML(@hDoc,'/Root/XmlData',2)
|
52
|
WITH
|
53
|
(
|
54
|
TRANSFER_DT_ID varchar(20),
|
55
|
TRANSFER_ID varchar(15) ,
|
56
|
MAST_BAL_ID varchar(15) ,
|
57
|
FR_BRN_ID varchar(15) ,
|
58
|
FR_DEPT_ID varchar(15) ,
|
59
|
FR_PRICE_ID varchar(15) ,
|
60
|
TO_BRN_ID varchar(15) ,
|
61
|
TO_DEPT_ID varchar(15) ,
|
62
|
QTY DECIMAL(18,2) ,
|
63
|
QTY_OLD DECIMAL(18,2) ,
|
64
|
PRICE NUMERIC(18, 0) ,
|
65
|
TOTAL_AMT numeric(18, 2) ,
|
66
|
NOTES nvarchar(1000),
|
67
|
COST_ACC varchar(50)
|
68
|
)
|
69
|
OPEN XmlData
|
70
|
BEGIN TRANSACTION
|
71
|
--LUCTV: NGAY 07 -06 2019. BO SUNG RANG BUOC NEU DANG TRA VE CHO HANH CHINH THI KHONG DUOC PHEP CAP NHAT THONG TIN
|
72
|
IF( (SELECT AUTH_STATUS FROM MW_TRANSFER WHERE TRANSFER_ID = @p_TRANSFER_ID)<>'A')
|
73
|
BEGIN
|
74
|
ROLLBACK TRANSACTION
|
75
|
SELECT '-1' as Result,'' TRANSFER_ID, N'Thông tin điều chuyển đ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
|
76
|
RETURN '-1'
|
77
|
END
|
78
|
-- END LUCTV: NGAY 07 -06 2019.
|
79
|
UPDATE [dbo].[MW_TRANSFER]
|
80
|
SET [TRN_TIME] = CONVERT(DATE,@p_TRN_TIME,103), [QTY] = @p_QTY, [PRICE] = ROUND(@p_PRICE,0),
|
81
|
[TOTAL_AMT] = @p_TOTAL_AMT, [NOTES] = @p_NOTES,KT_CREATE_DT =CONVERT(DATETIME,@p_KT_CREATE_DT,103),
|
82
|
KT_MAKER_ID =@p_KT_MAKER_ID,FR_BRN_ID = @p_FRM_BRANCH_ID,
|
83
|
FR_DEPT_ID = @p_FRM_DEPT_ID, CORE_NOTE = @p_CORE_NOTE,WARE_HOUSE=@p_WARE_HOUSE,
|
84
|
KT_AUTH_STATUS ='U'
|
85
|
|
86
|
WHERE [TRANSFER_ID] = @p_TRANSFER_ID
|
87
|
IF @@Error <> 0 GOTO ABORT
|
88
|
--Insert XmlData
|
89
|
--DELETE FROM MW_TRANSFER_DT WHERE TRANSFER_ID =@p_TRANSFER_ID
|
90
|
DECLARE @INDEX INT =0
|
91
|
DECLARE @l_COST_ACC VARCHAR(50);
|
92
|
DECLARE @PRICE_CODE VARCHAR(30)
|
93
|
FETCH NEXT FROM XmlData INTO @TRANSFER_DT_ID,
|
94
|
@TRANSFER_ID,
|
95
|
@MAST_BAL_ID,
|
96
|
@FR_BRN_ID,
|
97
|
@FR_DEPT_ID,
|
98
|
@FR_PRICE_ID,
|
99
|
@TO_BRN_ID,
|
100
|
@TO_DEPT_ID,
|
101
|
@QTY ,
|
102
|
@QTY_OLD,
|
103
|
@PRICE,
|
104
|
@TOTAL_AMT ,
|
105
|
@NOTES,
|
106
|
@COST_ACC
|
107
|
WHILE @@FETCH_STATUS = 0
|
108
|
BEGIN
|
109
|
SET @INDEX = @INDEX+1
|
110
|
SET @PRICE_CODE= (SELECT PRICE_CODE FROM MW_MAST_PRICE WHERE PRICE_ID =@FR_PRICE_ID)
|
111
|
|
112
|
IF(@QTY > @QTY_OLD)
|
113
|
BEGIN
|
114
|
ROLLBACK TRANSACTION
|
115
|
CLOSE XmlData;
|
116
|
DEALLOCATE XmlData;
|
117
|
SELECT '-1' as Result, '' OUT_ID, N'Danh sách đơn vị/ khách hàng nhận, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': Số lượng điều chuyển vượt quá số lượng tồn' ErrorDesc
|
118
|
RETURN '-1'
|
119
|
END
|
120
|
|
121
|
SET @l_COST_ACC = (SELECT TOP 1 COST_ACC = CASE WHEN MT.GROUP_ID = 'MWG000000016073' and LEN(@COST_ACC) > 0 then @COST_ACC
|
122
|
WHEN @COST_ACC = null then MT.EXP_ACCTNO
|
123
|
WHEN @COST_ACC = '' then MT.EXP_ACCTNO
|
124
|
ELSE MT.EXP_ACCTNO
|
125
|
END
|
126
|
FROM dbo.MW_MAST_BAL A
|
127
|
LEFT JOIN MW_MATERIAL MT ON A.MATERIAL_ID = MT.MATERIAL_ID
|
128
|
WHERE A.MAST_BAL_ID = @MAST_BAL_ID)
|
129
|
|
130
|
IF(@l_COST_ACC <> @COST_ACC)
|
131
|
BEGIN
|
132
|
ROLLBACK TRANSACTION
|
133
|
CLOSE XmlData;
|
134
|
DEALLOCATE XmlData;
|
135
|
SELECT '-1' as Result, '' OUT_ID, N'Danh sách đơn vị/ khách hàng nhận, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': Tài khoản chi phí sai quy định. Bạn chỉ được điều chỉnh tài khoản chi phí của vật liệu thuộc nhóm Vật Liệu Thẻ Dùng Chung.' ErrorDesc
|
136
|
RETURN '-1'
|
137
|
END
|
138
|
|
139
|
IF(@COST_ACC IS NULL OR @COST_ACC = '')
|
140
|
BEGIN
|
141
|
ROLLBACK TRANSACTION
|
142
|
CLOSE XmlData;
|
143
|
DEALLOCATE XmlData;
|
144
|
SELECT '-1' as Result, '' OUT_ID, N'Danh sách đơn vị/ khách hàng nhận, Dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': Tài khoản chi phí không được để trống' ErrorDesc
|
145
|
RETURN '-1'
|
146
|
END
|
147
|
|
148
|
----LUCTV: KIEM TRA XEM MAST_BAL_ID CO DANG DIEU CHUYEN CHO DON VI NAO KHAC HAY KHONG 29-11-2018
|
149
|
--IF(EXISTS (SELECT * FROM MW_TRANSFER_DT WHERE MAST_BAL_ID =@MAST_BAL_ID AND TRANSFER_ID <>@p_TRANSFER_ID
|
150
|
--AND TRANSFER_ID IN (SELECT TRANSFER_ID FROM MW_TRANSFER WHERE AUTH_STATUS IS NOT NULL AND KT_AUTH_STATUS <>'' AND KT_AUTH_STATUS <>'A' AND RECORD_STATUS='1')))
|
151
|
--BEGIN
|
152
|
-- CLOSE XmlData;
|
153
|
-- DEALLOCATE XmlData;
|
154
|
-- ROLLBACK TRANSACTION;
|
155
|
-- SELECT '-1' AS Result,
|
156
|
-- '' TRANSFER_ID,
|
157
|
-- 'Dòng '+ CONVERT(VARCHAR(15),@INDEX) +N': Lô vật liệu có mã '+ @PRICE_CODE +N' đang được điều chuyển. Vui lòng duyệt thông tin trước khi tạo đợt điều chuyển mới!'ErrorDesc;
|
158
|
-- RETURN '-1';
|
159
|
--END
|
160
|
----LUCTV: 08-03-2019 BO SUNG HAM KIEM TRA LO VAT LIEU NEU DANG DUOC XUAT SD THI PHAI CHO DUYET XONG MOI TAO MOI XUAT SD
|
161
|
--IF(EXISTS(SELECT * FROM MW_OUT_DT WHERE MAST_BAL_ID =@MAST_BAL_ID AND OUT_ID IN (SELECT OUT_ID FROM MW_OUT WHERE KT_AUTH_STATUS<>'A' AND RECORD_STATUS='1')))
|
162
|
--BEGIN
|
163
|
-- CLOSE XmlData;
|
164
|
-- DEALLOCATE XmlData;
|
165
|
-- ROLLBACK TRANSACTION;
|
166
|
-- SELECT '-1' AS Result, '' TRANSFER_ID, N'Dòng '+ CONVERT(VARCHAR(15),@INDEX) +N': Lô vật liệu có mã '+@PRICE_CODE +N' đang được xuất sử dụng. Vui lòng duyệt thông tin trước khi tạo đợt mới' ErrorDesc;
|
167
|
-- RETURN '-1';
|
168
|
--END
|
169
|
----LUCTV: 08-03-2019 BO SUNG HAM KIEM TRA LO VAT LIEU NEU DANG DUOC THANH LY THI PHAI CHO DUYET XONG MOI TAO MOI XUAT SD
|
170
|
--IF(EXISTS(SELECT * FROM MW_LIQ_DT WHERE MAST_BAL_ID =@MAST_BAL_ID AND LIQ_ID IN (SELECT LIQ_ID FROM MW_LIQ_MASTER WHERE KT_AUTH_STATUS<>'A' AND RECORD_STATUS='1')))
|
171
|
--BEGIN
|
172
|
-- CLOSE XmlData;
|
173
|
-- DEALLOCATE XmlData;
|
174
|
-- ROLLBACK TRANSACTION;
|
175
|
-- SELECT '-1' AS Result, '' TRANSFER_ID, N'Dòng '+ CONVERT(VARCHAR(15),@INDEX) +N': Lô vật liệu có mã '+@PRICE_CODE +N' đang được thanh lý. Vui lòng duyệt thông tin trước khi tạo đợt mới' ErrorDesc;
|
176
|
-- RETURN '-1';
|
177
|
--END
|
178
|
-- DECLARE @p_TRANSFER_DT_ID VARCHAR(15)
|
179
|
-- EXEC SYS_CodeMasters_Gen 'MW_TRANSFER_DT', @p_TRANSFER_DT_ID out
|
180
|
-- IF @p_TRANSFER_DT_ID='' OR @p_TRANSFER_DT_ID IS NULL GOTO ABORT
|
181
|
-- INSERT INTO [dbo].[MW_TRANSFER_DT] ([TRANSFER_DT_ID], [TRANSFER_ID], [MAST_BAL_ID], [FR_BRN_ID], [FR_DEPT_ID], [FR_PRICE_ID], [TO_BRN_ID], [TO_DEPT_ID], [QTY], [QTY_OLD], [PRICE], [TOTAL_AMT], [NOTES])
|
182
|
-- VALUES( @p_TRANSFER_DT_ID, @p_TRANSFER_ID, @MAST_BAL_ID, @FR_BRN_ID, @FR_DEPT_ID, @FR_PRICE_ID, @TO_BRN_ID, @TO_DEPT_ID, @QTY, @QTY_OLD, @PRICE, @TOTAL_AMT, @NOTES)
|
183
|
|
184
|
IF(ISNULL(@TRANSFER_DT_ID, '') = '')
|
185
|
BEGIN
|
186
|
print 'have not id'
|
187
|
/*
|
188
|
DECLARE @p_TRANSFER_DT_ID VARCHAR(15)
|
189
|
EXEC SYS_CodeMasters_Gen 'MW_TRANSFER_DT', @p_TRANSFER_DT_ID out
|
190
|
IF @p_TRANSFER_DT_ID='' OR @p_TRANSFER_DT_ID IS NULL GOTO ABORT
|
191
|
INSERT INTO [dbo].[MW_TRANSFER_DT] ([TRANSFER_DT_ID], [TRANSFER_ID], [MAST_BAL_ID], [FR_BRN_ID], [FR_DEPT_ID], [FR_PRICE_ID], [TO_BRN_ID], [TO_DEPT_ID], [QTY], [QTY_OLD], [PRICE], [TOTAL_AMT], [NOTES], [COST_ACC])
|
192
|
VALUES( @p_TRANSFER_DT_ID, @p_TRANSFER_ID, @MAST_BAL_ID, @FR_BRN_ID, @FR_DEPT_ID, @FR_PRICE_ID, @TO_BRN_ID, @TO_DEPT_ID, @QTY, @QTY_OLD, @PRICE, @TOTAL_AMT, @NOTES, @COST_ACC)
|
193
|
*/
|
194
|
END
|
195
|
ELSE
|
196
|
BEGIN
|
197
|
UPDATE MW_TRANSFER_DT
|
198
|
SET TO_BRN_ID = @TO_BRN_ID, TO_DEPT_ID = @TO_DEPT_ID, NOTES = @NOTES, COST_ACC = @COST_ACC
|
199
|
WHERE TRANSFER_DT_ID = @TRANSFER_DT_ID
|
200
|
END
|
201
|
IF @@Error <> 0 GOTO ABORT
|
202
|
FETCH NEXT FROM XmlData INTO
|
203
|
@TRANSFER_DT_ID,
|
204
|
@TRANSFER_ID,
|
205
|
@MAST_BAL_ID,
|
206
|
@FR_BRN_ID,
|
207
|
@FR_DEPT_ID,
|
208
|
@FR_PRICE_ID,
|
209
|
@TO_BRN_ID,
|
210
|
@TO_DEPT_ID,
|
211
|
@QTY ,
|
212
|
@QTY_OLD,
|
213
|
@PRICE,
|
214
|
@TOTAL_AMT ,
|
215
|
@NOTES,
|
216
|
@COST_ACC
|
217
|
END
|
218
|
CLOSE XmlData
|
219
|
DEALLOCATE XmlData
|
220
|
|
221
|
-- doanptt 07/06/2022: XÓA CÁC PROCESS UPDATE CŨ
|
222
|
DELETE dbo.PL_PROCESS WHERE REQ_ID = @TRANSFER_ID AND PROCESS_ID = 'UPDATE_KT'
|
223
|
INSERT INTO dbo.PL_PROCESS
|
224
|
(
|
225
|
REQ_ID,
|
226
|
PROCESS_ID,
|
227
|
CHECKER_ID,
|
228
|
APPROVE_DT,
|
229
|
PROCESS_DESC,NOTES
|
230
|
)
|
231
|
VALUES
|
232
|
( @TRANSFER_ID, -- REQ_ID - varchar(15)
|
233
|
'UPDATE_KT', -- PROCESS_ID - varchar(10)
|
234
|
@p_MAKER_ID, -- CHECKER_ID - varchar(15)
|
235
|
GETDATE(), -- APPROVE_DT - datetime
|
236
|
N'Cập nhật phiếu điều chuyển vật liệu kế toán thành công' ,
|
237
|
N'Cập nhật phiếu điều chuyển vật liệu kế toán' -- PROCESS_DESC - nvarchar(1000)
|
238
|
)
|
239
|
|
240
|
COMMIT TRANSACTION
|
241
|
SELECT '0' as Result, @p_TRANSFER_ID TRANSFER_ID ,'' ErrorDesc
|
242
|
RETURN '0'
|
243
|
ABORT:
|
244
|
BEGIN
|
245
|
CLOSE XmlData
|
246
|
DEALLOCATE XmlData
|
247
|
ROLLBACK TRANSACTION
|
248
|
SELECT '-1' as Result, '' TRANSFER_ID, '' ErrorDesc
|
249
|
RETURN '-1'
|
250
|
END
|