Project

General

Profile

ASS_LIQ_REQUEST_Upd.txt

Luc Tran Van, 04/06/2023 10:54 AM

 
1

    
2

    
3
ALTER PROCEDURE dbo.ASS_LIQ_REQUEST_Upd
4
@P_LIQ_REQ_ID VARCHAR(15) = NULL,
5
@p_ASS_TYPE_ID	varchar(15)  = NULL,
6
@p_REQ_DT	VARCHAR(20) = NULL,
7
@p_BRANCH_ID	varchar(15)  = NULL,
8
@p_NOTES	nvarchar(1000)  = NULL,
9
@p_RECORD_STATUS	varchar(1)  = NULL,
10
@p_MAKER_ID	varchar(12)  = NULL,
11
@p_CREATE_DT	VARCHAR(20) = NULL,
12
@p_AUTH_STATUS	varchar(50)  = NULL,
13
@p_CHECKER_ID	varchar(12)  = NULL,
14
@p_APPROVE_DT	VARCHAR(20) = NULL,
15
@p_LiqDetails XML = NULL,
16
@p_ListCostCenter XML = NULL,
17
@p_BRANCH_CREATE	VARCHAR(15) = NULL,
18
@p_DEP_ID	VARCHAR(15) = NULL,
19
@p_TERM_ID VARCHAR(15) = NULL,
20
@p_HO_NOTES NVARCHAR(MAX) = NULL,
21
@p_USER_LOGIN VARCHAR(15)
22

    
23
AS
24
--Validation is here
25
	DECLARE @ERRORSYS NVARCHAR(15) = '' 
26
	IF ( NOT EXISTS ( SELECT * FROM ASS_LIQ_REQUEST WHERE  LIQ_REQ_ID= @P_LIQ_REQ_ID))
27
		SET @ERRORSYS = ''
28
	IF @ERRORSYS <> '' 
29
	BEGIN
30
		SELECT ErrorCode Result, ''  LIQ_REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
31
		RETURN '0'
32
	END 
33
	Declare @hdoc INT
34
	Exec sp_xml_preparedocument @hdoc Output,@p_LiqDetails
35

    
36
	--Them dieu kien kiem tra lý do de xuat khong duoc de trong
37
	DECLARE @reason NVARCHAR(max) = ''
38
	SELECT @reason = COALESCE(@reason + ', ', '') + ASSET_CODE 
39
	FROM OPENXML(@hDoc,'/Root/LiquiDetail',2)
40
	WITH 
41
	(
42
		ASSET_ID	varchar(15),
43
		LIQ_REASON	nvarchar(1000),
44
		NOTES	nvarchar(1000)	,
45
		REQ_AMT DECIMAL(18,0),
46
		LIQ_RECEIVE NVARCHAR(500),
47
		BRANCH_USE VARCHAR(15),
48
		DEPT_USE VARCHAR(15),
49
		REMAIN_VALUE DECIMAL(18,0),
50
		ASSET_CODE varchar(100),
51
		IS_IMP varchar(15)
52
	)
53
	WHERE LIQ_REASON = '' OR LIQ_REASON IS NULL
54

    
55
	IF @reason <> ''
56
	BEGIN
57
		SELECT '-1' as Result, '' LIQ_REQ_ID, N'Lý do đề xuất thanh lý không được để trống! DS tài sản: '+ @reason ErrorDesc
58
		RETURN '-1'
59
	END
60

    
61
	-------BO SUNG PHAN IMPORT TS TU FILE
62
	----KIEM TRA TS IMPORT PHAI THUOC DON VI DA CHON
63
	declare @tmp table(BRANCH_ID varchar(15))
64
	insert into @tmp  SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
65

    
66
	DECLARE liqDetail CURSOR FOR
67
	SELECT B.DETAIL_ID,
68
	--A.ASSET_ID,
69
	B.ASSET_ID,
70
		B.LIQ_REASON,
71
		B.NOTES,
72
		B.REQ_AMT,
73
		B.LIQ_RECEIVE,
74
		--khanhnhd
75
		--(CASE WHEN IS_IMP = 'N' THEN B.BRANCH_USE ELSE B.ASSET_ID END) BRANCH_USE,
76
		--(CASE WHEN IS_IMP = 'N' THEN B.DEPT_USE ELSE B.ASSET_ID END) DEPT_USE,		
77
		B.BRANCH_USE,
78
		B.DEPT_USE,
79
		--end khanhnhd
80
		B.REMAIN_VALUE
81
	FROM OPENXML(@hDoc,'/Root/LiquiDetail',2)
82
	WITH 
83
	(
84
		DETAIL_ID VARCHAR(15),
85
		ASSET_ID	varchar(15),
86
		LIQ_REASON	nvarchar(1000),
87
		NOTES	nvarchar(1000)	,
88
		REQ_AMT DECIMAL(18,0),
89
		LIQ_RECEIVE NVARCHAR(500),
90
		BRANCH_USE VARCHAR(15),
91
		DEPT_USE VARCHAR(15),
92
		REMAIN_VALUE DECIMAL(18,0),
93
		ASSET_CODE varchar(100),
94
			IS_IMP varchar(15)
95
	) B
96
	--LAY MA TAI SAN
97
	--LEFT JOIN ASS_MASTER A ON A.ASSET_CODE = B.ASSET_CODE AND A.BRANCH_ID IN (SELECT C.* FROM @tmp C)
98
	OPEN liqDetail
99
	
100
BEGIN TRANSACTION
101

    
102
		IF @p_APPROVE_DT = '' SET @p_APPROVE_DT = NULL
103
    SET @p_MAKER_ID = (SELECT alr.MAKER_ID FROM ASS_LIQ_REQUEST alr WHERE LIQ_REQ_ID = @P_LIQ_REQ_ID)
104
		UPDATE ASS_LIQ_REQUEST SET [ASS_TYPE_ID] = @p_ASS_TYPE_ID,[REQ_DT] = CONVERT(DATETIME, @p_REQ_DT, 103),[BRANCH_ID] = @p_BRANCH_ID,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = @p_AUTH_STATUS,[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),
105
		BRANCH_CREATE= @p_BRANCH_CREATE, TERM_ID = @p_TERM_ID,DEP_ID=@p_DEP_ID, HO_NOTES = @p_HO_NOTES
106
		WHERE  LIQ_REQ_ID= @P_LIQ_REQ_ID
107
		IF @@Error <> 0 GOTO ABORT 
108
		PRINT 'A'
109
		DELETE FROM ASS_LIQ_REQUEST_DT WHERE LIQ_REQ_ID = @P_LIQ_REQ_ID
110
		PRINT 'B'
111
		Declare @DETAIL_ID  VARCHAR(15), @ASSET_ID VARCHAR(15), @LIQ_REASON NVARCHAR(1000),@NOTES NVARCHAR(1000), 
112
		@REQ_AMT DECIMAL(18,0), @LIQ_RECEIVE NVARCHAR(500), @BRANCH_USE VARCHAR(15), @DEPT_USE VARCHAR(15), @REMAIN_VALUE DECIMAL(18,0)
113
		FETCH NEXT FROM liqDetail INTO @DETAIL_ID,@ASSET_ID, @LIQ_REASON, @NOTES, @REQ_AMT, @LIQ_RECEIVE,@BRANCH_USE, @DEPT_USE, @REMAIN_VALUE
114
		WHILE @@FETCH_STATUS = 0	
115
		BEGIN
116
			IF LEN (@DETAIL_ID) =  0
117
			BEGIN
118
				PRINT 'C'
119
				EXEC SYS_CodeMasters_Gen 'ASS_LIQ_REQUEST_DT', @DETAIL_ID out
120
				IF @DETAIL_ID='' OR @DETAIL_ID IS NULL GOTO ABORT
121
			END
122
			PRINT @DETAIL_ID
123
			--print 'asset_id: ' + @ASSET_ID
124
			INSERT INTO ASS_LIQ_REQUEST_DT([LIQREQDT_ID],[LIQ_REQ_ID],[ASSET_ID],[LIQ_REASON],[NOTES],[RECORD_STATUS],
125
			[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT], [REQ_AMT], [LIQ_RECEIVE], [BRANCH_USE], [DEPT_USE], [REMAIN_VALUE])
126
			VALUES(@DETAIL_ID ,@P_LIQ_REQ_ID ,@ASSET_ID ,@LIQ_REASON ,@NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,
127
			CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103), @REQ_AMT, @LIQ_RECEIVE,
128
			@BRANCH_USE, @DEPT_USE, @REMAIN_VALUE )
129
			IF @@Error <> 0 GOTO ABORT
130
			FETCH NEXT FROM liqDetail INTO @DETAIL_ID,@ASSET_ID, @LIQ_REASON, @NOTES, @REQ_AMT, @LIQ_RECEIVE,@BRANCH_USE, @DEPT_USE, @REMAIN_VALUE
131
		END
132
		CLOSE liqDetail
133
		DEALLOCATE liqDetail
134

    
135
		--khanhnhd cập nhật đơn vị chuyên môn
136
	Declare @hdocc INT
137
	Exec sp_xml_preparedocument @hdocc Output,@p_ListCostCenter
138

    
139
	DECLARE ConcenterDetaisls CURSOR FOR
140
	SELECT D.REQ_COST_ID,
141
		D.COST_ID,
142
		D.REQ_ID,
143
    D.ASS_STATUS,
144
    D.RE_CONTENT,
145
		D.NOTES,
146
		D.AUTH_STATUS
147
	FROM OPENXML(@hdocc,'/Root/ListCostCenter',2)
148
	WITH 
149
	(
150
		REQ_COST_ID	varchar(15),
151
		COST_ID	nvarchar(1000),
152
		REQ_ID	nvarchar(1000),
153
    ASS_STATUS NVARCHAR(100),
154
    RE_CONTENT NVARCHAR(100),
155
		NOTES nvarchar(500),
156
		AUTH_STATUS NVARCHAR(500)
157
	)D
158
	OPEN ConcenterDetaisls
159
	Declare @REQ_COST_ID VARCHAR(15), @COST_ID NVARCHAR(1000), @REQ_ID NVARCHAR(1000), @ASS_STATUS NVARCHAR(100), @RE_CONTENT NVARCHAR(100), @AUTH_STATUS NVARCHAR(500)
160
		
161
		DELETE FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID =@P_LIQ_REQ_ID 
162

    
163
		FETCH NEXT FROM ConcenterDetaisls INTO @REQ_COST_ID, @COST_ID, @REQ_ID, @ASS_STATUS, @RE_CONTENT, @NOTES, @AUTH_STATUS
164
		WHILE @@FETCH_STATUS = 0	
165
		BEGIN
166
		  DECLARE @l_REQ_COST_ID VARCHAR(15)
167
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_SHOP_COSTCENTER', @l_REQ_COST_ID out
168
			IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
169
      IF(@RE_CONTENT IS NULL)-- OR A.MAKER_ID = @p_USER_LOGIN)
170
      BEGIN
171
        ROLLBACK TRANSACTION
172
      	SELECT '-1' as Result, '' LIQ_REQ_ID, N'Nội dung đề xuất không được để trống!' 
173
      	RETURN '-1'
174
      END
175
      
176
			INSERT INTO TR_REQUEST_SHOP_COSTCENTER([REQ_COST_ID],[COST_ID],[ASS_STATUS],[RE_CONTENT],[REQ_ID],[NOTES],[AUTH_STATUS])		
177
			VALUES(@l_REQ_COST_ID ,@COST_ID, @ASS_STATUS, @RE_CONTENT, @P_LIQ_REQ_ID, @NOTES, @AUTH_STATUS)
178
				IF @@Error <> 0 GOTO ABORT
179
					FETCH NEXT FROM ConcenterDetaisls INTO @REQ_COST_ID, @COST_ID, @REQ_ID, @ASS_STATUS, @RE_CONTENT, @NOTES, @AUTH_STATUS
180

    
181
	  END
182
	CLOSE ConcenterDetaisls
183
	DEALLOCATE ConcenterDetaisls
184
	--end khanhnhd
185
		--INSERT DETAIL 
186
COMMIT TRANSACTION
187
SELECT '0' as Result, @P_LIQ_REQ_ID  LIQ_REQ_ID,  @l_REQ_COST_ID  REQ_COST_ID,'' ErrorDesc
188
RETURN '0'
189
ABORT:
190
BEGIN
191
		ROLLBACK TRANSACTION
192
		SELECT '-1' as Result, '' LIQ_REQ_ID, '' ErrorDesc
193
		RETURN '-1'
194
End
195

    
196

    
197

    
198

    
199

    
200