Project

General

Profile

ASS_USE_MULTI_BVB_KT_Upd.txt

Luc Tran Van, 01/03/2023 04:35 PM

 
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