1
|
|
2
|
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_DT_ById]
|
3
|
@p_IMP_MASTER_ID VARCHAR(15)
|
4
|
AS
|
5
|
SELECT A.*,B.BRANCH_NAME,C.DEP_NAME,D.EMP_NAME,E.ASSET_CODE,
|
6
|
F.BRANCH_NAME AS BRANCH_NAME_OLD, G.DEP_NAME AS DEP_NAME_OLD, H.EMP_NAME AS EMP_NAME_OLD
|
7
|
FROM ASS_IMPORT_UPDATE_DT A
|
8
|
LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
|
9
|
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
|
10
|
LEFT JOIN CM_EMPLOYEE D ON A.EMP_ID = D.EMP_ID
|
11
|
LEFT JOIN ASS_MASTER E ON A.ASSET_ID = E.ASSET_ID
|
12
|
|
13
|
LEFT JOIN CM_BRANCH F ON A.BRANCH_ID_OLD = F.BRANCH_ID
|
14
|
LEFT JOIN CM_DEPARTMENT G ON A.DEP_ID_OLD = G.DEP_ID
|
15
|
LEFT JOIN CM_EMPLOYEE H ON A.EMP_ID_OLD = H.EMP_ID
|
16
|
|
17
|
WHERE A.IMP_MASTER_ID = @p_IMP_MASTER_ID
|
18
|
GO
|
19
|
IF @@ERROR <> 0 SET NOEXEC ON
|
20
|
GO
|
21
|
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_App]'
|
22
|
GO
|
23
|
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_App]
|
24
|
@p_IMP_MASTER_ID VARCHAR(15),
|
25
|
@p_CHECKER_ID VARCHAR(100),
|
26
|
@p_APPROVE_DT VARCHAR(50)
|
27
|
AS
|
28
|
DECLARE @MESSAGE_VALIDATION NVARCHAR(MAX)
|
29
|
|
30
|
IF(EXISTS(SELECT 1 FROM ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID AND AUTH_STATUS = 'A'))
|
31
|
BEGIN
|
32
|
SELECT '-1' Result, N'Phiếu đã được phê duyệt' ErrorDesc
|
33
|
RETURN '-1'
|
34
|
END
|
35
|
|
36
|
IF(EXISTS(SELECT 1 FROM ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID AND AUTH_STATUS = 'R'))
|
37
|
BEGIN
|
38
|
SELECT '-1' Result, N'Phiếu đang được trả về' ErrorDesc
|
39
|
RETURN '-1'
|
40
|
END
|
41
|
|
42
|
|
43
|
BEGIN TRANSACTION
|
44
|
UPDATE ASS_IMPORT_UPDATE_MASTER SET AUTH_STATUS = 'A' , CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
|
45
|
WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID
|
46
|
|
47
|
--kiểm tra branch,dep của tài sản hiện tại có giống branch,dep import không
|
48
|
SET @MESSAGE_VALIDATION = (SELECT REPLACE((SELECT
|
49
|
CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN ''
|
50
|
ELSE '|' END
|
51
|
+ N'Tài sản ' + C.ASSET_CODE + N' đã bị thay đổi Đơn vị/Phòng ban so với File Import'
|
52
|
FROM ( SELECT B.ASSET_CODE
|
53
|
FROM ASS_IMPORT_UPDATE_DT A
|
54
|
LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
|
55
|
WHERE (ISNULL(A.BRANCH_ID,'') <> ISNULL(B.BRANCH_ID,'')
|
56
|
OR ISNULL(A.DEP_ID,'') <> ISNULL(B.DEPT_ID,''))
|
57
|
AND A.IMP_MASTER_ID = @p_IMP_MASTER_ID) C
|
58
|
FOR XML PATH (''))
|
59
|
, '|', '<br />'))
|
60
|
|
61
|
IF(@MESSAGE_VALIDATION IS NOT NULL AND @MESSAGE_VALIDATION <> '')
|
62
|
BEGIN
|
63
|
ROLLBACK TRANSACTION
|
64
|
SELECT '-1' Result, @MESSAGE_VALIDATION ErrorDesc
|
65
|
RETURN '-1'
|
66
|
END
|
67
|
|
68
|
--check branch,dep của tài sản hiện tại có giống với branch,dep của người dùng không
|
69
|
SET @MESSAGE_VALIDATION = (SELECT REPLACE((SELECT
|
70
|
CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN ''
|
71
|
ELSE '|' END
|
72
|
+ N'Người dùng ' + C.EMP_NAME + '(' + C.EMP_CODE + ')' + N' không cùng đơn vị/phòng ban với tài sản ' + C.ASSET_CODE
|
73
|
FROM ( SELECT B.ASSET_CODE,D.EMP_CODE,D.EMP_NAME
|
74
|
FROM ASS_IMPORT_UPDATE_DT A
|
75
|
LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
|
76
|
LEFT JOIN CM_EMPLOYEE D ON A.EMP_ID = D.EMP_ID
|
77
|
WHERE (ISNULL(D.BRANCH_ID,'') <> ISNULL(B.BRANCH_ID,'')
|
78
|
OR ISNULL(D.DEP_ID,'') <> ISNULL(B.DEPT_ID,''))
|
79
|
AND A.IMP_MASTER_ID = @p_IMP_MASTER_ID) C
|
80
|
FOR XML PATH (''))
|
81
|
, '|', '<br />'))
|
82
|
|
83
|
IF(@MESSAGE_VALIDATION IS NOT NULL AND @MESSAGE_VALIDATION <> '')
|
84
|
BEGIN
|
85
|
ROLLBACK TRANSACTION
|
86
|
SELECT '-1' Result, @MESSAGE_VALIDATION ErrorDesc
|
87
|
RETURN '-1'
|
88
|
END
|
89
|
|
90
|
UPDATE B SET B.EMP_ID = A.EMP_ID, B.ASSET_SERIAL_NO = A.ASSET_SERIAL_NO, B.ASSET_DESC = A.ASSET_DESC, B.NOTES = A.NOTES
|
91
|
FROM ASS_IMPORT_UPDATE_DT A
|
92
|
LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
|
93
|
WHERE A.IMP_MASTER_ID = @p_IMP_MASTER_ID
|
94
|
|
95
|
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
|
96
|
VALUES (@p_IMP_MASTER_ID, 'APPROVE', @p_CHECKER_ID, GETDATE(), N'Duyệt phiếu cập nhật tài sản', N'Duyệt phiếu cập nhật tài sản thành công');
|
97
|
|
98
|
IF @@Error <> 0 GOTO ABORT
|
99
|
|
100
|
COMMIT TRANSACTION
|
101
|
SELECT '0' as Result, '' ErrorDesc
|
102
|
RETURN '0'
|
103
|
|
104
|
ABORT:
|
105
|
BEGIN
|
106
|
ROLLBACK TRANSACTION
|
107
|
SELECT '-1' as Result, '' ErrorDesc
|
108
|
RETURN '-1'
|
109
|
End
|
110
|
GO
|
111
|
IF @@ERROR <> 0 SET NOEXEC ON
|
112
|
GO
|
113
|
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_ById]'
|
114
|
GO
|
115
|
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_ById]
|
116
|
@p_IMP_MASTER_ID VARCHAR(15)
|
117
|
AS
|
118
|
SELECT A.* , B.TLFullName AS MAKER_NAME, C.AUTH_STATUS_NAME
|
119
|
FROM ASS_IMPORT_UPDATE_MASTER A
|
120
|
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
|
121
|
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS = C.AUTH_STATUS
|
122
|
WHERE A.IMP_MASTER_ID = @p_IMP_MASTER_ID
|
123
|
GO
|
124
|
IF @@ERROR <> 0 SET NOEXEC ON
|
125
|
GO
|
126
|
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_Del]'
|
127
|
GO
|
128
|
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_Del]
|
129
|
@p_IMP_MASTER_ID VARCHAR(15)
|
130
|
AS
|
131
|
|
132
|
IF(EXISTS(SELECT 1 FROM ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID AND AUTH_STATUS = 'U'))
|
133
|
BEGIN
|
134
|
SELECT '-1' Result, N'Phiếu đang chờ phê duyệt. Xoá thất bại' ErrorDesc
|
135
|
RETURN '-1'
|
136
|
END
|
137
|
|
138
|
IF(EXISTS(SELECT 1 FROM ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID AND AUTH_STATUS = 'A'))
|
139
|
BEGIN
|
140
|
SELECT '-1' Result, N'Phiếu đã được phê duyệt. Xoá thất bại' ErrorDesc
|
141
|
RETURN '-1'
|
142
|
END
|
143
|
|
144
|
|
145
|
BEGIN TRANSACTION
|
146
|
DELETE ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID
|
147
|
DELETE ASS_IMPORT_UPDATE_DT WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID
|
148
|
|
149
|
IF @@Error <> 0 GOTO ABORT
|
150
|
|
151
|
COMMIT TRANSACTION
|
152
|
SELECT '0' as Result, '' ErrorDesc
|
153
|
RETURN '0'
|
154
|
|
155
|
ABORT:
|
156
|
BEGIN
|
157
|
ROLLBACK TRANSACTION
|
158
|
SELECT '-1' as Result, '' ErrorDesc
|
159
|
RETURN '-1'
|
160
|
End
|
161
|
GO
|
162
|
IF @@ERROR <> 0 SET NOEXEC ON
|
163
|
GO
|
164
|
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_Ins]'
|
165
|
GO
|
166
|
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_Ins]
|
167
|
@p_NOTES NVARCHAR(4000) = NULL,
|
168
|
@p_RECORD_STATUS varchar(1) = NULL,
|
169
|
@p_MAKER_ID VARCHAR(100) = NULL,
|
170
|
@p_CREATE_DT VARCHAR(50) = NULL,
|
171
|
@p_AUTH_STATUS VARCHAR(50) = NULL,
|
172
|
@p_CHECKER_ID VARCHAR(100) = NULL,
|
173
|
@p_APPROVE_DT VARCHAR(50) = NULL,
|
174
|
@p_JSON_DATA NVARCHAR(MAX) = NULL
|
175
|
AS
|
176
|
|
177
|
DECLARE
|
178
|
@ASSET_ID VARCHAR(15),
|
179
|
@BRANCH_ID VARCHAR(15),
|
180
|
@DEP_ID VARCHAR(15),
|
181
|
@EMP_ID VARCHAR(15),
|
182
|
@NOTES NVARCHAR(4000),
|
183
|
@ASSET_DESC NVARCHAR(4000),
|
184
|
@ASSET_SERIAL_NO NVARCHAR(4000),
|
185
|
@ASSET_ID_OLD VARCHAR(15),
|
186
|
@BRANCH_ID_OLD VARCHAR(15),
|
187
|
@DEP_ID_OLD VARCHAR(15),
|
188
|
@EMP_ID_OLD VARCHAR(15),
|
189
|
@NOTES_OLD NVARCHAR(4000),
|
190
|
@ASSET_DESC_OLD NVARCHAR(4000),
|
191
|
@ASSET_SERIAL_NO_OLD NVARCHAR(4000)
|
192
|
|
193
|
DECLARE cur CURSOR FAST_FORWARD READ_ONLY LOCAL FOR
|
194
|
SELECT *
|
195
|
FROM OPENJSON(@P_JSON_DATA)
|
196
|
WITH
|
197
|
(
|
198
|
ASSET_ID VARCHAR(15) '$.ASSET_ID',
|
199
|
BRANCH_ID VARCHAR(15) '$.BRANCH_ID',
|
200
|
DEP_ID VARCHAR(15) '$.DEP_ID',
|
201
|
EMP_ID VARCHAR(15) '$.EMP_ID',
|
202
|
NOTES NVARCHAR(4000) '$.NOTES',
|
203
|
ASSET_DESC NVARCHAR(4000) '$.ASSET_DESC',
|
204
|
ASSET_SERIAL_NO NVARCHAR(4000) '$.ASSET_SERIAL_NO',
|
205
|
BRANCH_ID_OLD VARCHAR(15) '$.BRANCH_ID_OLD',
|
206
|
DEP_ID_OLD VARCHAR(15) '$.DEP_ID_OLD',
|
207
|
EMP_ID_OLD VARCHAR(15) '$.EMP_ID_OLD',
|
208
|
NOTES_OLD NVARCHAR(4000) '$.NOTES_OLD',
|
209
|
ASSET_DESC_OLD NVARCHAR(4000) '$.ASSET_DESC_OLD',
|
210
|
ASSET_SERIAL_NO_OLD NVARCHAR(4000) '$.ASSET_SERIAL_NO_OLD'
|
211
|
)
|
212
|
|
213
|
OPEN cur
|
214
|
|
215
|
|
216
|
BEGIN TRANSACTION
|
217
|
|
218
|
DECLARE @p_IMP_MASTER_ID VARCHAR(15)
|
219
|
EXEC SYS_CodeMasters_Gen 'ASS_IMPORT_UPDATE_MASTER', @p_IMP_MASTER_ID out
|
220
|
IF @p_IMP_MASTER_ID ='' OR @p_IMP_MASTER_ID IS NULL GOTO ABORT
|
221
|
|
222
|
INSERT INTO ASS_IMPORT_UPDATE_MASTER (IMP_MASTER_ID, NOTES, RECORD_STATUS, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT)
|
223
|
VALUES (@p_IMP_MASTER_ID, @p_NOTES, '1', 'E', @p_MAKER_ID, GETDATE(), NULL, NULL);
|
224
|
|
225
|
|
226
|
FETCH NEXT FROM cur INTO @ASSET_ID,@BRANCH_ID,@DEP_ID,@EMP_ID,@NOTES,@ASSET_DESC,@ASSET_SERIAL_NO,@BRANCH_ID_OLD,@DEP_ID_OLD,@EMP_ID_OLD,@NOTES_OLD,@ASSET_DESC_OLD,@ASSET_SERIAL_NO_OLD
|
227
|
|
228
|
WHILE @@FETCH_STATUS = 0 BEGIN
|
229
|
|
230
|
DECLARE @l_IMP_DT_ID VARCHAR(15)
|
231
|
EXEC SYS_CodeMasters_Gen 'ASS_IMPORT_UPDATE_DT', @l_IMP_DT_ID out
|
232
|
IF @l_IMP_DT_ID='' OR @l_IMP_DT_ID IS NULL GOTO ABORT
|
233
|
|
234
|
INSERT INTO ASS_IMPORT_UPDATE_DT (IMP_DT_ID, IMP_MASTER_ID, ASSET_ID, BRANCH_ID, DEP_ID, EMP_ID, NOTES, ASSET_DESC, ASSET_SERIAL_NO, BRANCH_ID_OLD, DEP_ID_OLD, EMP_ID_OLD, NOTES_OLD, ASSET_DESC_OLD, ASSET_SERIAL_NO_OLD)
|
235
|
VALUES (@l_IMP_DT_ID, @p_IMP_MASTER_ID, @ASSET_ID, @BRANCH_ID, @DEP_ID, @EMP_ID, @NOTES, @ASSET_DESC, @ASSET_SERIAL_NO, @BRANCH_ID_OLD, @DEP_ID_OLD, @EMP_ID_OLD, @NOTES_OLD, @ASSET_DESC_OLD, @ASSET_SERIAL_NO_OLD);
|
236
|
|
237
|
FETCH NEXT FROM cur INTO @ASSET_ID,@BRANCH_ID,@DEP_ID,@EMP_ID,@NOTES,@ASSET_DESC,@ASSET_SERIAL_NO,@BRANCH_ID_OLD,@DEP_ID_OLD,@EMP_ID_OLD,@NOTES_OLD,@ASSET_DESC_OLD,@ASSET_SERIAL_NO_OLD
|
238
|
|
239
|
END
|
240
|
|
241
|
CLOSE cur
|
242
|
DEALLOCATE cur
|
243
|
|
244
|
|
245
|
|
246
|
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
|
247
|
VALUES (@p_IMP_MASTER_ID, 'CREATE', @p_MAKER_ID, GETDATE(), N'Nhân viên thêm mới', N'Thêm mới import tài sản thành công');
|
248
|
|
249
|
|
250
|
IF @@ERROR <> 0 GOTO ABORT
|
251
|
|
252
|
COMMIT TRANSACTION
|
253
|
SELECT '0' as Result,@p_IMP_MASTER_ID ID, N'Thêm mới thành công' ErrorDesc
|
254
|
RETURN '0'
|
255
|
ABORT:
|
256
|
BEGIN
|
257
|
ROLLBACK TRANSACTION
|
258
|
SELECT '-1' AS RESULT
|
259
|
RETURN '-1'
|
260
|
End
|
261
|
GO
|
262
|
IF @@ERROR <> 0 SET NOEXEC ON
|
263
|
GO
|
264
|
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_Search]'
|
265
|
GO
|
266
|
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_Search]
|
267
|
@p_IMP_MASTER_ID VARCHAR(15) = NULL,
|
268
|
@p_NOTES NVARCHAR(4000) = NULL,
|
269
|
@p_MAKER_NAME NVARCHAR(1000) = NULL,
|
270
|
@p_TOP INT = NULL
|
271
|
AS
|
272
|
BEGIN -- PAGING
|
273
|
|
274
|
IF @p_TOP IS NULL OR @p_TOP = ''
|
275
|
BEGIN
|
276
|
-- PAGING BEGIN
|
277
|
SELECT A.*,B.TLFullName AS MAKER_NAME, C.AUTH_STATUS_NAME
|
278
|
-- SELECT END
|
279
|
FROM ASS_IMPORT_UPDATE_MASTER A
|
280
|
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
|
281
|
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS = C.AUTH_STATUS
|
282
|
WHERE 1=1
|
283
|
AND (@p_IMP_MASTER_ID = A.IMP_MASTER_ID OR @p_IMP_MASTER_ID IS NULL OR @p_IMP_MASTER_ID = '')
|
284
|
AND (B.TLFullName COLLATE Latin1_general_CI_AI LIKE N'%' + @p_MAKER_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_MAKER_NAME IS NULL OR @p_MAKER_NAME = '')
|
285
|
AND (A.NOTES COLLATE Latin1_general_CI_AI LIKE N'%' + @p_NOTES + N'%' COLLATE Latin1_general_CI_AI OR @p_NOTES IS NULL OR @p_NOTES = '')
|
286
|
ORDER BY A.CREATE_DT DESC
|
287
|
-- PAGING END
|
288
|
END
|
289
|
ELSE
|
290
|
BEGIN
|
291
|
-- PAGING BEGIN
|
292
|
SELECT TOP (@p_TOP) A.*, B.TLFullName AS MAKER_NAME, C.AUTH_STATUS_NAME
|
293
|
-- SELECT END
|
294
|
FROM ASS_IMPORT_UPDATE_MASTER A
|
295
|
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
|
296
|
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS = C.AUTH_STATUS
|
297
|
WHERE 1=1
|
298
|
AND (@p_IMP_MASTER_ID = A.IMP_MASTER_ID OR @p_IMP_MASTER_ID IS NULL OR @p_IMP_MASTER_ID = '')
|
299
|
AND (B.TLFullName COLLATE Latin1_general_CI_AI LIKE N'%' + @p_MAKER_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_MAKER_NAME IS NULL OR @p_MAKER_NAME = '')
|
300
|
AND (A.NOTES COLLATE Latin1_general_CI_AI LIKE N'%' + @p_NOTES + N'%' COLLATE Latin1_general_CI_AI OR @p_NOTES IS NULL OR @p_NOTES = '')
|
301
|
ORDER BY A.CREATE_DT DESC
|
302
|
-- PAGING END
|
303
|
END
|
304
|
END -- PAGING
|
305
|
GO
|
306
|
IF @@ERROR <> 0 SET NOEXEC ON
|
307
|
GO
|
308
|
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_SendAppr]'
|
309
|
GO
|
310
|
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_SendAppr]
|
311
|
@p_IMP_MASTER_ID VARCHAR(15)
|
312
|
AS
|
313
|
|
314
|
IF(EXISTS(SELECT 1 FROM ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID AND AUTH_STATUS = 'U'))
|
315
|
BEGIN
|
316
|
SELECT '-1' Result, N'Phiếu đã được gửi phê duyệt' ErrorDesc
|
317
|
RETURN '-1'
|
318
|
END
|
319
|
|
320
|
IF(EXISTS(SELECT 1 FROM ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID AND AUTH_STATUS = 'A'))
|
321
|
BEGIN
|
322
|
SELECT '-1' Result, N'Phiếu đã được phê duyệt' ErrorDesc
|
323
|
RETURN '-1'
|
324
|
END
|
325
|
|
326
|
|
327
|
BEGIN TRANSACTION
|
328
|
UPDATE ASS_IMPORT_UPDATE_MASTER SET AUTH_STATUS = 'U' WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID
|
329
|
|
330
|
IF @@Error <> 0 GOTO ABORT
|
331
|
|
332
|
COMMIT TRANSACTION
|
333
|
SELECT '0' as Result, N'Gửi phê duyệt thành công' ErrorDesc
|
334
|
RETURN '0'
|
335
|
|
336
|
ABORT:
|
337
|
BEGIN
|
338
|
ROLLBACK TRANSACTION
|
339
|
SELECT '-1' as Result, '' ErrorDesc
|
340
|
RETURN '-1'
|
341
|
End
|
342
|
GO
|
343
|
IF @@ERROR <> 0 SET NOEXEC ON
|
344
|
GO
|
345
|
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_Upd]'
|
346
|
GO
|
347
|
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_Upd]
|
348
|
@p_IMP_MASTER_ID VARCHAR(15) = NULL,
|
349
|
@p_NOTES NVARCHAR(4000) = NULL,
|
350
|
@p_RECORD_STATUS varchar(1) = NULL,
|
351
|
@p_MAKER_ID VARCHAR(100) = NULL,
|
352
|
@p_CREATE_DT VARCHAR(50) = NULL,
|
353
|
@p_AUTH_STATUS VARCHAR(50) = NULL,
|
354
|
@p_CHECKER_ID VARCHAR(100) = NULL,
|
355
|
@p_APPROVE_DT VARCHAR(50) = NULL,
|
356
|
@p_JSON_DATA NVARCHAR(MAX) = NULL
|
357
|
AS
|
358
|
|
359
|
DECLARE
|
360
|
@ASSET_ID VARCHAR(15),
|
361
|
@BRANCH_ID VARCHAR(15),
|
362
|
@DEP_ID VARCHAR(15),
|
363
|
@EMP_ID VARCHAR(15),
|
364
|
@NOTES NVARCHAR(4000),
|
365
|
@ASSET_DESC NVARCHAR(4000),
|
366
|
@ASSET_SERIAL_NO NVARCHAR(4000),
|
367
|
@ASSET_ID_OLD VARCHAR(15),
|
368
|
@BRANCH_ID_OLD VARCHAR(15),
|
369
|
@DEP_ID_OLD VARCHAR(15),
|
370
|
@EMP_ID_OLD VARCHAR(15),
|
371
|
@NOTES_OLD NVARCHAR(4000),
|
372
|
@ASSET_DESC_OLD NVARCHAR(4000),
|
373
|
@ASSET_SERIAL_NO_OLD NVARCHAR(4000)
|
374
|
|
375
|
DECLARE cur CURSOR FAST_FORWARD READ_ONLY LOCAL FOR
|
376
|
SELECT *
|
377
|
FROM OPENJSON(@P_JSON_DATA)
|
378
|
WITH
|
379
|
(
|
380
|
ASSET_ID VARCHAR(15) '$.ASSET_ID',
|
381
|
BRANCH_ID VARCHAR(15) '$.BRANCH_ID',
|
382
|
DEP_ID VARCHAR(15) '$.DEP_ID',
|
383
|
EMP_ID VARCHAR(15) '$.EMP_ID',
|
384
|
NOTES NVARCHAR(4000) '$.NOTES',
|
385
|
ASSET_DESC NVARCHAR(4000) '$.ASSET_DESC',
|
386
|
ASSET_SERIAL_NO NVARCHAR(4000) '$.ASSET_SERIAL_NO',
|
387
|
BRANCH_ID_OLD VARCHAR(15) '$.BRANCH_ID_OLD',
|
388
|
DEP_ID_OLD VARCHAR(15) '$.DEP_ID_OLD',
|
389
|
EMP_ID_OLD VARCHAR(15) '$.EMP_ID_OLD',
|
390
|
NOTES_OLD NVARCHAR(4000) '$.NOTES_OLD',
|
391
|
ASSET_DESC_OLD NVARCHAR(4000) '$.ASSET_DESC_OLD',
|
392
|
ASSET_SERIAL_NO_OLD NVARCHAR(4000) '$.ASSET_SERIAL_NO_OLD'
|
393
|
)
|
394
|
|
395
|
OPEN cur
|
396
|
|
397
|
|
398
|
BEGIN TRANSACTION
|
399
|
|
400
|
UPDATE ASS_IMPORT_UPDATE_MASTER
|
401
|
SET NOTES = @p_NOTES
|
402
|
WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID
|
403
|
|
404
|
|
405
|
FETCH NEXT FROM cur INTO @ASSET_ID,@BRANCH_ID,@DEP_ID,@EMP_ID,@NOTES,@ASSET_DESC,@ASSET_SERIAL_NO,@BRANCH_ID_OLD,@DEP_ID_OLD,@EMP_ID_OLD,@NOTES_OLD,@ASSET_DESC_OLD,@ASSET_SERIAL_NO_OLD
|
406
|
|
407
|
WHILE @@FETCH_STATUS = 0 BEGIN
|
408
|
|
409
|
DECLARE @l_IMP_DT_ID VARCHAR(15)
|
410
|
EXEC SYS_CodeMasters_Gen 'ASS_IMPORT_UPDATE_DT', @l_IMP_DT_ID out
|
411
|
IF @l_IMP_DT_ID='' OR @l_IMP_DT_ID IS NULL GOTO ABORT
|
412
|
|
413
|
INSERT INTO ASS_IMPORT_UPDATE_DT (IMP_DT_ID, IMP_MASTER_ID, ASSET_ID, BRANCH_ID, DEP_ID, EMP_ID, NOTES, ASSET_DESC, ASSET_SERIAL_NO, BRANCH_ID_OLD, DEP_ID_OLD, EMP_ID_OLD, NOTES_OLD, ASSET_DESC_OLD, ASSET_SERIAL_NO_OLD)
|
414
|
VALUES (@l_IMP_DT_ID, @p_IMP_MASTER_ID, @ASSET_ID, @BRANCH_ID, @DEP_ID, @EMP_ID, @NOTES, @ASSET_DESC, @ASSET_SERIAL_NO, @BRANCH_ID_OLD, @DEP_ID_OLD, @EMP_ID_OLD, @NOTES_OLD, @ASSET_DESC_OLD, @ASSET_SERIAL_NO_OLD);
|
415
|
|
416
|
FETCH NEXT FROM cur INTO @ASSET_ID,@BRANCH_ID,@DEP_ID,@EMP_ID,@NOTES,@ASSET_DESC,@ASSET_SERIAL_NO,@BRANCH_ID_OLD,@DEP_ID_OLD,@EMP_ID_OLD,@NOTES_OLD,@ASSET_DESC_OLD,@ASSET_SERIAL_NO_OLD
|
417
|
|
418
|
END
|
419
|
|
420
|
CLOSE cur
|
421
|
DEALLOCATE cur
|
422
|
|
423
|
|
424
|
|
425
|
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
|
426
|
VALUES (@p_IMP_MASTER_ID, 'UPDATE', @p_MAKER_ID, GETDATE(), N'Nhân viên cập nhật', N'Cập nhật import tài sản thành công');
|
427
|
|
428
|
|
429
|
IF @@ERROR <> 0 GOTO ABORT
|
430
|
|
431
|
COMMIT TRANSACTION
|
432
|
SELECT '0' as Result,@p_IMP_MASTER_ID ID, N'Cập nhật thành công' ErrorDesc
|
433
|
RETURN '0'
|
434
|
ABORT:
|
435
|
BEGIN
|
436
|
ROLLBACK TRANSACTION
|
437
|
SELECT '-1' AS RESULT
|
438
|
RETURN '-1'
|
439
|
End
|
440
|
GO
|
441
|
IF @@ERROR <> 0 SET NOEXEC ON
|
442
|
GO
|
443
|
PRINT N'Creating [dbo].[CM_DEPARTMENT_GET_BLOCK_CENTER]'
|
444
|
GO
|
445
|
CREATE PROCEDURE [dbo].[CM_DEPARTMENT_GET_BLOCK_CENTER]
|
446
|
@p_DEP_ID_INPUT VARCHAR(15),
|
447
|
@p_BLOCK_ID VARCHAR(15) OUT,
|
448
|
@p_CENTER_ID VARCHAR(15) OUT,
|
449
|
@p_DEP_ID VARCHAR(15) OUT
|
450
|
AS
|
451
|
|
452
|
SELECT
|
453
|
@p_BLOCK_ID = (CASE WHEN DP.TYPE = 'K' THEN DP.DEP_ID ELSE K.DEP_ID END),
|
454
|
@p_CENTER_ID = (CASE WHEN DP.TYPE = 'TT' THEN DP.DEP_ID ELSE TT.DEP_ID END),
|
455
|
@p_DEP_ID = (CASE WHEN DP.TYPE = 'PB' THEN DP.DEP_ID ELSE NULL END)
|
456
|
|
457
|
FROM CM_DEPARTMENT DP
|
458
|
LEFT JOIN CM_DEPARTMENT TT ON DP.FATHER_ID = TT.DEP_ID --TRUNG TÂM
|
459
|
LEFT JOIN CM_DEPARTMENT K ON DP.KHOI_ID = K.DEP_ID --KHỐI
|
460
|
WHERE DP.DEP_ID = @p_DEP_ID_INPUT
|
461
|
GO
|
462
|
IF @@ERROR <> 0 SET NOEXEC ON
|
463
|
GO
|
464
|
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_Import]'
|
465
|
GO
|
466
|
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_Import]
|
467
|
@P_JSON_DATA NVARCHAR(MAX)
|
468
|
AS
|
469
|
BEGIN
|
470
|
|
471
|
DECLARE @TMPASSETCODE TABLE(
|
472
|
ASSET_CODE VARCHAR(100),
|
473
|
BRANCH_CODE VARCHAR(100),
|
474
|
DEP_CODE VARCHAR(100),
|
475
|
EMP_CODE VARCHAR(100),
|
476
|
NOTES NVARCHAR(4000),
|
477
|
ASSET_DESC NVARCHAR(4000),
|
478
|
ASSET_SERIAL_NO NVARCHAR(4000)
|
479
|
|
480
|
)
|
481
|
|
482
|
INSERT INTO @TMPASSETCODE
|
483
|
SELECT *
|
484
|
FROM OPENJSON(@P_JSON_DATA)
|
485
|
WITH
|
486
|
(
|
487
|
ASSET_CODE VARCHAR(100) '$.ASSET_CODE',
|
488
|
BRANCH_CODE VARCHAR(1000) '$.BRANCH_CODE',
|
489
|
DEP_CODE VARCHAR(100) '$.DEP_CODE',
|
490
|
EMP_CODE VARCHAR(100) '$.EMP_CODE',
|
491
|
NOTES NVARCHAR(4000) '$.NOTES',
|
492
|
ASSET_DESC NVARCHAR(4000) '$.ASSET_DESC',
|
493
|
ASSET_SERIAL_NO NVARCHAR(4000) '$.ASSET_SERIAL_NO'
|
494
|
)
|
495
|
|
496
|
DECLARE @ERROR_MESSAGE NVARCHAR(MAX)
|
497
|
|
498
|
SELECT @ERROR_MESSAGE = STUFF( (
|
499
|
SELECT ',' + A.ROW FROM (
|
500
|
SELECT CONVERT(VARCHAR(10),ROW_NUMBER() OVER (ORDER BY (SELECT 1))) AS ROW, T.ASSET_CODE
|
501
|
FROM @TMPASSETCODE T ) A
|
502
|
WHERE A.ASSET_CODE IS NULL
|
503
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
|
504
|
|
505
|
IF(LEN(@ERROR_MESSAGE) > 0)
|
506
|
BEGIN
|
507
|
SET @ERROR_MESSAGE = N'Dòng: ' + @ERROR_MESSAGE + N' mã tài sản không được để trống'
|
508
|
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
|
509
|
RETURN '-1'
|
510
|
END
|
511
|
|
512
|
SELECT @ERROR_MESSAGE = STUFF( (
|
513
|
SELECT ',' + A.ROW FROM (
|
514
|
SELECT CONVERT(VARCHAR(10),ROW_NUMBER() OVER (ORDER BY (SELECT 1))) AS ROW, T.BRANCH_CODE
|
515
|
FROM @TMPASSETCODE T
|
516
|
LEFT JOIN ASS_MASTER B ON T.ASSET_CODE = B.ASSET_CODE
|
517
|
WHERE B.BRANCH_ID IS NOT NULL AND B.BRANCH_ID <> '' ) A
|
518
|
WHERE A.BRANCH_CODE IS NULL
|
519
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
|
520
|
|
521
|
IF(LEN(@ERROR_MESSAGE) > 0)
|
522
|
BEGIN
|
523
|
SET @ERROR_MESSAGE = N'Dòng: ' + @ERROR_MESSAGE + N' mã đơn vị không được để trống'
|
524
|
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
|
525
|
RETURN '-1'
|
526
|
END
|
527
|
|
528
|
SELECT @ERROR_MESSAGE = STUFF( (
|
529
|
SELECT T.EMP_CODE
|
530
|
FROM @TMPASSETCODE T
|
531
|
LEFT JOIN CM_EMPLOYEE E ON T.EMP_CODE = E.EMP_CODE
|
532
|
WHERE E.EMP_ID IS NULL AND T.EMP_CODE IS NOT NULL AND T.EMP_CODE <> ''
|
533
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
|
534
|
|
535
|
IF(LEN(@ERROR_MESSAGE) > 0)
|
536
|
BEGIN
|
537
|
SET @ERROR_MESSAGE = N'Người dùng không tồn tại trên hệ thống: ' + @ERROR_MESSAGE
|
538
|
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
|
539
|
RETURN '-1'
|
540
|
END
|
541
|
|
542
|
SELECT @ERROR_MESSAGE = STUFF( (
|
543
|
SELECT N'Người dùng ' + A.EMP_CODE + N' và tài sản ' + A.ASSET_CODE + N' không cùng Đơn vị/Phòng ban với nhau </br>'
|
544
|
FROM @TMPASSETCODE A
|
545
|
LEFT JOIN ASS_MASTER B ON A.ASSET_CODE = B.ASSET_CODE
|
546
|
LEFT JOIN CM_EMPLOYEE E ON A.EMP_CODE = E.EMP_CODE
|
547
|
WHERE A.EMP_CODE IS NOT NULL AND A.EMP_CODE <> '' AND (ISNULL(E.BRANCH_ID,'') <> ISNULL(B.BRANCH_ID,'') OR ISNULL(E.DEP_ID,'') <> ISNULL(B.DEPT_ID,''))
|
548
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
|
549
|
|
550
|
IF(LEN(@ERROR_MESSAGE) > 0)
|
551
|
BEGIN
|
552
|
SET @ERROR_MESSAGE = @ERROR_MESSAGE
|
553
|
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
|
554
|
RETURN '-1'
|
555
|
END
|
556
|
|
557
|
|
558
|
|
559
|
SELECT @ERROR_MESSAGE = STUFF( (
|
560
|
SELECT ',' + T.ASSET_CODE
|
561
|
FROM @TMPASSETCODE T
|
562
|
LEFT JOIN ASS_MASTER B ON T.ASSET_CODE = B.ASSET_CODE
|
563
|
WHERE B.ASSET_ID IS NULL
|
564
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
|
565
|
|
566
|
IF(LEN(@ERROR_MESSAGE) > 0)
|
567
|
BEGIN
|
568
|
SET @ERROR_MESSAGE = N'Mã tài sản không tồn tại trong hệ thống: ' + @ERROR_MESSAGE
|
569
|
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
|
570
|
RETURN '-1'
|
571
|
END
|
572
|
|
573
|
|
574
|
SELECT @ERROR_MESSAGE = STUFF( (
|
575
|
SELECT ',' + T.ASSET_CODE FROM @TMPASSETCODE T
|
576
|
GROUP BY T.ASSET_CODE
|
577
|
HAVING COUNT(*) > 1
|
578
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
|
579
|
|
580
|
IF(LEN(@ERROR_MESSAGE) > 0)
|
581
|
BEGIN
|
582
|
SET @ERROR_MESSAGE = N'Mã tài sản bị trùng: ' + @ERROR_MESSAGE
|
583
|
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
|
584
|
RETURN '-1'
|
585
|
END
|
586
|
|
587
|
|
588
|
SELECT @ERROR_MESSAGE = STUFF( (
|
589
|
SELECT ',' + T.BRANCH_CODE FROM @TMPASSETCODE T
|
590
|
WHERE T.BRANCH_CODE IS NOT NULL AND T.BRANCH_CODE <> ''
|
591
|
AND NOT EXISTS(SELECT 1 FROM CM_BRANCH B WHERE B.BRANCH_CODE = T.BRANCH_CODE AND B.RECORD_STATUS = '1')
|
592
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
|
593
|
|
594
|
IF(LEN(@ERROR_MESSAGE) > 0)
|
595
|
BEGIN
|
596
|
SET @ERROR_MESSAGE = N'Mã đơn vị không tồn tại trong hệ thống: ' + @ERROR_MESSAGE
|
597
|
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
|
598
|
RETURN '-1'
|
599
|
END
|
600
|
|
601
|
|
602
|
SELECT @ERROR_MESSAGE = STUFF( (
|
603
|
SELECT ',' + A.ASSET_CODE
|
604
|
FROM @TMPASSETCODE A
|
605
|
LEFT JOIN ASS_MASTER B ON A.ASSET_CODE = B.ASSET_CODE
|
606
|
LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID
|
607
|
LEFT JOIN CM_DEPARTMENT D ON B.DEPT_ID = D.DEP_ID
|
608
|
WHERE (ISNULL(C.BRANCH_CODE,'') <> ISNULL(A.BRANCH_CODE,'')
|
609
|
OR ISNULL(D.DEP_CODE,'') <> ISNULL(A.DEP_CODE,'')) AND A.BRANCH_CODE IS NOT NULL AND A.BRANCH_CODE <> ''
|
610
|
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
|
611
|
|
612
|
IF(LEN(@ERROR_MESSAGE) > 0)
|
613
|
BEGIN
|
614
|
SET @ERROR_MESSAGE = N'Những tài sản có Đơn vị/Phòng ban không khớp với tài sản trên hệ thống: ' + @ERROR_MESSAGE
|
615
|
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
|
616
|
RETURN '-1'
|
617
|
END
|
618
|
|
619
|
|
620
|
SELECT B.ASSET_ID,B.ASSET_CODE,B.ASSET_NAME,
|
621
|
G.BRANCH_ID,G.BRANCH_CODE,G.BRANCH_NAME,
|
622
|
H.DEP_ID,H.DEP_CODE,H.DEP_NAME,
|
623
|
E.EMP_ID,E.EMP_CODE,E.EMP_NAME,
|
624
|
A.NOTES,A.ASSET_DESC,A.ASSET_SERIAL_NO,
|
625
|
|
626
|
B.ASSET_ID AS ASSET_ID_OLD,B.ASSET_CODE AS ASSET_CODE_OLD,B.ASSET_NAME AS ASSET_NAME_OLD,
|
627
|
C.BRANCH_ID AS BRANCH_ID_OLD,C.BRANCH_CODE AS BRANCH_CODE_OLD,C.BRANCH_NAME AS BRANCH_NAME_OLD,
|
628
|
D.DEP_ID AS DEP_ID_OLD,D.DEP_CODE AS DEP_CODE_OLD,D.DEP_NAME AS DEP_NAME_OLD,
|
629
|
F.EMP_ID AS EMP_ID_OLD,F.EMP_CODE AS EMP_CODE_OLD,F.EMP_NAME AS EMP_NAME_OLD,
|
630
|
B.NOTES AS NOTES_OLD,B.ASSET_DESC AS ASSET_DESC_OLD,B.ASSET_SERIAL_NO AS ASSET_SERIAL_NO_OLD
|
631
|
|
632
|
|
633
|
FROM @TMPASSETCODE A
|
634
|
LEFT JOIN ASS_MASTER B ON A.ASSET_CODE = B.ASSET_CODE
|
635
|
|
636
|
LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID
|
637
|
LEFT JOIN CM_DEPARTMENT D ON B.DEPT_ID = D.DEP_ID
|
638
|
LEFT JOIN CM_EMPLOYEE F ON B.EMP_ID = F.EMP_ID
|
639
|
|
640
|
|
641
|
LEFT JOIN CM_BRANCH G ON A.BRANCH_CODE = G.BRANCH_CODE
|
642
|
LEFT JOIN CM_DEPARTMENT H ON A.DEP_CODE = H.DEP_CODE
|
643
|
LEFT JOIN CM_EMPLOYEE E ON A.EMP_CODE = E.EMP_CODE
|
644
|
|
645
|
|
646
|
END
|
647
|
GO
|
648
|
IF @@ERROR <> 0 SET NOEXEC ON
|
649
|
GO
|
650
|
PRINT N'Creating [dbo].[ASS_COST_ALLOCATION_Import]'
|
651
|
GO
|
652
|
CREATE PROCEDURE [dbo].[ASS_COST_ALLOCATION_Import]
|
653
|
@p_XmlData XML = NULL
|
654
|
|
655
|
AS
|
656
|
DECLARE
|
657
|
@BRANCH_CODE VARCHAR(25),
|
658
|
@DEP_CODE VARCHAR(25),
|
659
|
@COST_AMOUNT DECIMAL(18,2),
|
660
|
@COST_MONTH INT,
|
661
|
@COST_RATE DECIMAL(18,2)
|
662
|
|
663
|
|
664
|
DECLARE @TableCost TABLE (
|
665
|
BRANCH_ID VARCHAR(25),
|
666
|
DEPT_ID VARCHAR(25),
|
667
|
COST_AMOUNT VARCHAR(25),
|
668
|
COST_RATE VARCHAR(25),
|
669
|
COST_MONTH VARCHAR(25)
|
670
|
)
|
671
|
|
672
|
Declare @hdoc INT
|
673
|
Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
|
674
|
|
675
|
SELECT T.BRANCH_CODE
|
676
|
,T.DEP_CODE
|
677
|
,T.COST_AMOUNT
|
678
|
,T.COST_MONTH
|
679
|
,T.COST_RATE,
|
680
|
cb.BRANCH_ID,
|
681
|
cb.BRANCH_NAME,
|
682
|
cd.DEP_ID,
|
683
|
cd.DEP_NAME FROM
|
684
|
(
|
685
|
SELECT BRANCH_CODE,DEP_CODE,COST_AMOUNT,COST_MONTH,COST_RATE
|
686
|
FROM OPENXML(@hdoc,'/Root/XmlData',2)
|
687
|
WITH
|
688
|
(
|
689
|
BRANCH_CODE varchar(15),
|
690
|
DEP_CODE VARCHAR(15),
|
691
|
COST_AMOUNT DECIMAL(18,2),
|
692
|
COST_MONTH INT,
|
693
|
COST_RATE DECIMAL(18,2)
|
694
|
)
|
695
|
|
696
|
) T
|
697
|
LEFT JOIN CM_BRANCH cb ON cb.BRANCH_CODE=T.BRANCH_CODE
|
698
|
LEFT JOIN CM_DEPARTMENT cd ON cd.DEP_CODE=T.DEP_CODE
|