1
|
|
2
|
ALTER PROCEDURE dbo.ASS_USE_MULTI_BVB_KT_Upd
|
3
|
@p_USER_MASTER_ID varchar(15) = null ,
|
4
|
@p_RECORD_STATUS varchar(1) = NULL,
|
5
|
@p_AUTH_STATUS varchar(1) = NULL,
|
6
|
@p_MAKER_ID varchar(15) = NULL,
|
7
|
@p_CREATE_DT VARCHAR(20) = NULL,
|
8
|
@p_CHECKER_ID varchar(15) = NULL,
|
9
|
@p_APPROVE_DT VARCHAR(20) = NULL,
|
10
|
@p_BRANCH_CREATE varchar(15) = NULL,
|
11
|
@p_CORE_NOTE VARCHAR(1000)= NULL,
|
12
|
@p_NOTES NVARCHAR(1000) = NULL,
|
13
|
@p_XmlData XML = NULL,
|
14
|
@p_MAKER_ID_KT VARCHAR(15) = NULL,
|
15
|
@p_CREATE_DT_KT VARCHAR(20) = NULL,
|
16
|
@p_USE_EXPORT_DT VARCHAR(20) = NULL
|
17
|
AS
|
18
|
BEGIN TRANSACTION
|
19
|
--LUCTV - KHAI BAO SO THANG KHAU HAO MIN, MAX CUA TAI SAN
|
20
|
DECLARE @NHOMTS VARCHAR(15)
|
21
|
DECLARE @MIN_AMR INT, @MAX_AMR INT, @INDEX INT
|
22
|
DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(20)
|
23
|
SET @INDEX=0
|
24
|
--END
|
25
|
DECLARE
|
26
|
@USE_MULTI_ID varchar(15),
|
27
|
@ASSET_ID varchar(15),
|
28
|
@BRANCH_ID varchar(15),
|
29
|
@DEPT_ID varchar(15),
|
30
|
@DIVISION_ID varchar(15),
|
31
|
@EMP_ID varchar(15),
|
32
|
@AMORT_START_DATE VARCHAR(20),
|
33
|
@AMORT_MONTH decimal(18),
|
34
|
@AMORT_END_DATE VARCHAR(20),
|
35
|
@CORE_NOTE varchar(1000),
|
36
|
@NOTES nvarchar(1000)
|
37
|
Declare @hdoc INT
|
38
|
Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
|
39
|
|
40
|
DECLARE XmlData CURSOR FOR
|
41
|
SELECT *
|
42
|
FROM OPENXML(@hDoc,'/Root/XmlData',2)
|
43
|
WITH
|
44
|
(
|
45
|
USE_MULTI_ID varchar(15),
|
46
|
ASSET_ID varchar(15),
|
47
|
BRANCH_ID varchar(15),
|
48
|
DEPT_ID varchar(15),
|
49
|
DIVISION_ID varchar(15),
|
50
|
EMP_ID varchar(15),
|
51
|
AMORT_START_DATE VARCHAR(20),
|
52
|
AMORT_MONTH decimal(18),
|
53
|
AMORT_END_DATE VARCHAR(20),
|
54
|
CORE_NOTE varchar(1000),
|
55
|
NOTES nvarchar(1000)
|
56
|
)
|
57
|
OPEN XmlData
|
58
|
|
59
|
----BO 2 KY TU DAC BIET & VA < TRONG DIEN GIAI HACH TOAN - THIEUVQ 020719 - BEGIN
|
60
|
SET @p_CORE_NOTE = REPLACE(@p_CORE_NOTE,'&', 'VA')
|
61
|
SET @p_CORE_NOTE = REPLACE(@p_CORE_NOTE,'<', ' ')
|
62
|
--------------END---------------
|
63
|
UPDATE ASS_USE_MULTI_MASTER SET [AUTH_STATUS_KT] = 'U',CORE_NOTE =@p_CORE_NOTE,NOTES=@p_NOTES,[USE_EXPORT_DT] = CONVERT(DATETIME, @p_USE_EXPORT_DT, 103),
|
64
|
[CREATE_DT_KT] = GETDATE(),[MAKER_ID_KT] = @p_MAKER_ID_KT,[REPORT_STATUS] = 'N'
|
65
|
WHERE USER_MASTER_ID= @p_USER_MASTER_ID
|
66
|
DELETE FROM ASS_USE_MULTI_DT WHERE USER_MASTER_ID = @p_USER_MASTER_ID
|
67
|
IF @@Error <> 0 GOTO ABORT
|
68
|
--Insert XmlData
|
69
|
FETCH NEXT FROM XmlData INTO @USE_MULTI_ID,@ASSET_ID,@BRANCH_ID,@DEPT_ID,@DIVISION_ID,@EMP_ID,@AMORT_START_DATE,@AMORT_MONTH,@AMORT_END_DATE,@CORE_NOTE,@NOTES
|
70
|
WHILE @@FETCH_STATUS = 0
|
71
|
BEGIN
|
72
|
SET @INDEX= @INDEX+1
|
73
|
--LUCTV - KIEM TRA SO THANG KHAU HAO PHAI NAM TRONG MIN -MAX
|
74
|
SET @NHOMTS =(SELECT GROUP_ID FROM ASS_MASTER WHERE ASSET_ID= @ASSET_ID)
|
75
|
SET @MIN_AMR =(SELECT AMORT_MONTH_MIN FROM ASS_GROUP WHERE GROUP_ID =@NHOMTS)
|
76
|
SET @MAX_AMR =(SELECT AMORT_MONTH_MAX FROM ASS_GROUP WHERE GROUP_ID=@NHOMTS)
|
77
|
IF(@AMORT_MONTH >@MAX_AMR OR @AMORT_MONTH <@MIN_AMR)
|
78
|
BEGIN
|
79
|
CLOSE XmlData
|
80
|
DEALLOCATE XmlData
|
81
|
ROLLBACK TRANSACTION
|
82
|
SELECT '-1' as Result,N'Dòng' +CONVERT(VARCHAR(15),@INDEX) +N': Số tháng khấu hao phải nằm trong khoảng ('+CONVERT(VARCHAR(15),@MIN_AMR)+' - '+CONVERT(VARCHAR(15),@MAX_AMR)+N') tháng' ErrorDesc
|
83
|
RETURN '-1'
|
84
|
END
|
85
|
-- 23-07-2019 KIEM TRA
|
86
|
IF ( EXISTS ( SELECT * FROM ASS_USE_MULTI_DT WHERE [ASSET_ID] = @ASSET_ID AND USER_MASTER_ID<> @p_USER_MASTER_ID AND
|
87
|
(CHECKER_ID IS NULL OR CHECKER_ID_KT IS NULL OR (CHECKER_ID_KT IS NOT NULL AND CHECKER_ID_KT<>'system'))))
|
88
|
BEGIN
|
89
|
SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID)
|
90
|
SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang xuất sử dụng'
|
91
|
CLOSE XmlData
|
92
|
DEALLOCATE XmlData
|
93
|
ROLLBACK TRANSACTION
|
94
|
SELECT '-1' as Result, '' USER_MASTER_ID, @ERRORSYS ErrorDesc
|
95
|
RETURN '-1'
|
96
|
|
97
|
END
|
98
|
--END
|
99
|
if(@AMORT_START_DATE='') set @AMORT_START_DATE=NULL
|
100
|
if(@AMORT_END_DATE='') set @AMORT_END_DATE=NULL
|
101
|
IF(LEN(@USE_MULTI_ID) = 0)
|
102
|
BEGIN
|
103
|
EXEC SYS_CodeMasters_Gen 'ASS_USE_MULTI_DT', @USE_MULTI_ID out
|
104
|
IF @USE_MULTI_ID='' OR @USE_MULTI_ID IS NULL GOTO ABORT
|
105
|
|
106
|
END
|
107
|
INSERT INTO ASS_USE_MULTI_DT([USE_MULTI_ID],[USER_MASTER_ID],[ASSET_ID],[AMORT_START_DATE],[BRANCH_ID],
|
108
|
[DEPT_ID],[EMP_ID],[DIVISION_ID],[NOTES],[CORE_NOTE],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],
|
109
|
[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[BRANCH_CREATE],
|
110
|
[AMORT_MONTH],
|
111
|
[AUTH_STATUS_KT],[CREATE_DT_KT],
|
112
|
[MAKER_ID_KT],[REPORT_STATUS],[AMORT_END_DATE])
|
113
|
|
114
|
VALUES(@USE_MULTI_ID ,@p_USER_MASTER_ID,@ASSET_ID ,CONVERT(DATETIME, @AMORT_START_DATE, 103) ,@BRANCH_ID ,
|
115
|
@DEPT_ID ,@EMP_ID ,@DIVISION_ID ,@NOTES ,@p_CORE_NOTE--@CORE_NOTE LAY CORE NOTE MASTER
|
116
|
,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATE, @p_CREATE_DT,103)
|
117
|
,@p_CHECKER_ID ,CONVERT(DATE, @p_APPROVE_DT,103) ,@p_BRANCH_CREATE ,
|
118
|
@AMORT_MONTH ,
|
119
|
'U' ,CONVERT(DATETIME, @p_CREATE_DT_KT, 103),
|
120
|
@p_MAKER_ID_KT ,'N' ,CONVERT(DATETIME, @AMORT_END_DATE, 103) )
|
121
|
IF @@Error <> 0 GOTO ABORT
|
122
|
|
123
|
FETCH NEXT FROM XmlData INTO @USE_MULTI_ID,@ASSET_ID,@BRANCH_ID,@DEPT_ID,@DIVISION_ID,@EMP_ID,@AMORT_START_DATE,@AMORT_MONTH,@AMORT_END_DATE,@CORE_NOTE,@NOTES
|
124
|
END
|
125
|
CLOSE XmlData
|
126
|
DEALLOCATE XmlData
|
127
|
|
128
|
IF @@Error <> 0 GOTO ABORT
|
129
|
|
130
|
-- HUYHT 06/05/2022: XÓA CÁC PROCESS UPDATE CŨ
|
131
|
DELETE dbo.PL_PROCESS WHERE REQ_ID = @p_USER_MASTER_ID AND PROCESS_ID = 'UPDATE'
|
132
|
|
133
|
-- GIANT 21/09/2021
|
134
|
INSERT INTO dbo.PL_PROCESS
|
135
|
(
|
136
|
REQ_ID,
|
137
|
PROCESS_ID,
|
138
|
CHECKER_ID,
|
139
|
APPROVE_DT,
|
140
|
PROCESS_DESC,NOTES
|
141
|
)
|
142
|
VALUES
|
143
|
( @p_USER_MASTER_ID, -- REQ_ID - varchar(15)
|
144
|
'UPDATE', -- PROCESS_ID - varchar(10)
|
145
|
@p_MAKER_ID, -- CHECKER_ID - varchar(15)
|
146
|
GETDATE(), -- APPROVE_DT - datetime
|
147
|
N'Giao dịch viên cập nhật hạch toán thành công' ,
|
148
|
N'Giao dịch viên cập nhật hạch toán' -- PROCESS_DESC - nvarchar(1000)
|
149
|
)
|
150
|
|
151
|
COMMIT TRANSACTION
|
152
|
SELECT '0' as Result,'' ErrorDesc
|
153
|
RETURN '0'
|
154
|
ABORT:
|
155
|
BEGIN
|
156
|
ROLLBACK TRANSACTION
|
157
|
CLOSE XmlData
|
158
|
DEALLOCATE XmlData
|
159
|
SELECT '-1' as Result,'' ErrorDesc
|
160
|
RETURN '-1'
|
161
|
End
|