Project

General

Profile

[TR_RATE_SUPPLIER_MASTER_Ins].txt

Luc Tran Van, 03/22/2023 04:41 PM

 
1

    
2
ALTER   PROCEDURE [dbo].[TR_RATE_SUPPLIER_MASTER_Ins]
3
	@p_SUP_ID VARCHAR(15) = NULL,
4
	@p_RATE_FROM_DT VARCHAR(20) = NULL,
5
	@p_RATE_TO_DT VARCHAR(20) = NULL,
6
	@p_HH_ID VARCHAR(15) = NULL,
7
	@p_RECORD_STATUS VARCHAR(1) = NULL,
8
	@p_CREATE_DT VARCHAR(20) = NULL,
9
	@p_AUTH_STATUS VARCHAR(1) = NULL,
10
	@p_MAKER_ID VARCHAR(15) = NULL,
11
	@p_CHECKER_ID VARCHAR(15) = NULL,
12
	@p_APPROVE_DT VARCHAR(20) = NULL,
13
	@p_PROCESS_STATUS VARCHAR(15) = NULL,
14
	@p_BRANCH_ID VARCHAR(15) = NULL,
15
	@p_DEP_ID VARCHAR(15) = NULL,
16
	@p_TOTAL_POINT INT = 0,
17
	@p_COMMENT nvarchar(MAX) = NULL,
18
	@p_PROPOSE nvarchar(MAX) = NULL,
19
	@p_DECISION varchar(15) = NULL,
20
	@p_NOTES nvarchar(MAX) = NULL,
21
	@p_IS_SEND_APPR VARCHAR(1) = NULL,
22
	@p_SEND_APPR_DT VARCHAR(20) = NULL,
23
	@p_SIGN_USER VARCHAR(15) = NULL,
24
	@p_SIGN_DT VARCHAR(20) = NULL,
25
	@p_CONTRACT_ID VARCHAR(15) = NULL,
26
	@p_ATTENTION_NOTES NVARCHAR(1000) = NULL,
27
	@p_BASE_POINT INT = NULL,
28
	@p_TR_RATE_SUP_DT_XML XML = NULL
29

    
30
AS
31

    
32
IF(CONVERT(DATETIME, @p_RATE_TO_DT, 103) < CONVERT(DATETIME, @p_RATE_FROM_DT, 103))
33
BEGIN
34
	SELECT '-1' as Result, ''  RATE_ID,
35
		N'Thời gian đánh giá đến không được nhỏ hơn thời gian đánh giá từ' ErrorDesc
36
	RETURN '-1'
37
END
38
IF(ISNULL(@p_CONTRACT_ID,'')='')
39
BEGIN
40
	SELECT '-1' as Result, ''  RATE_ID,
41
		N'Dữ liệu nhập không hợp lệ. Hợp đồng tham chiếu không được để trống' ErrorDesc
42
	RETURN '-1'
43
END
44

    
45
BEGIN TRANSACTION
46

    
47
	DECLARE @p_BRANCH_TYPE VARCHAR(50) = (
48
		SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID
49
	)
50
	DECLARE @p_RATE_REQ_NO VARCHAR(100)
51
	-----------------TẠO SỐ PHIẾU----------------
52
	EXEC TR_RATE_SUPPLIER_CODE_GenKey 
53
		'TR_RATE_SUPPLIER_MASTER', '', '', @p_BRANCH_ID, @p_DEP_ID, @p_RATE_REQ_NO OUT
54
	PRINT @p_RATE_REQ_NO
55
	IF(EXISTS(SELECT * FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_REQ_NO = @p_RATE_REQ_NO))
56
	BEGIN
57
		ROLLBACK TRANSACTION
58
		SELECT '-1' as Result, ''  RATE_ID, '' RATE_REQ_NO,
59
			N'Phiếu đánh giá NCC số: ' +@p_RATE_REQ_NO+ N' đã tồn tại'  ErrorDesc
60
		RETURN '-1'
61
	END
62

    
63
	-------INSERT MASTER--------
64
	DECLARE @p_RATE_ID VARCHAR(15)
65
	EXEC SYS_CodeMasters_Gen 'TR_RATE_SUPPLIER_MASTER' ,@p_RATE_ID OUT
66
	IF @p_RATE_ID IS NULL OR @p_RATE_ID = '' GOTO ABORT
67
	PRINT 'PASS TAO ID'
68

    
69
	IF(@p_BRANCH_TYPE <> 'HS')
70
	BEGIN
71
		SET @p_DEP_ID = NULL
72
	END
73

    
74
	INSERT INTO TR_RATE_SUPPLIER_MASTER
75
		(RATE_ID, RATE_REQ_NO, SUP_ID, RATE_FROM_DT, RATE_TO_DT, HH_ID, RECORD_STATUS, CREATE_DT, AUTH_STATUS,
76
		MAKER_ID, CHECKER_ID, APPROVE_DT, PROCESS_STATUS, BRANCH_ID, TOTAL_POINT, COMMENT, PROPOSE, 
77
		DECISION, NOTES, IS_SEND_APPR, SEND_APPR_DT, SIGN_USER, SIGN_DT, DEP_ID, CONTRACT_ID, ATTENTION_NOTES,
78
		BASE_POINT)
79
	VALUES(@p_RATE_ID, @p_RATE_REQ_NO, @p_SUP_ID, CONVERT(DATETIME, @p_RATE_FROM_DT, 103), CONVERT(DATETIME, @p_RATE_TO_DT, 103), @p_HH_ID, @p_RECORD_STATUS,
80
			CONVERT(DATETIME , @p_CREATE_DT, 103), @p_AUTH_STATUS, @p_MAKER_ID, @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103),
81
			@p_PROCESS_STATUS, @p_BRANCH_ID, @p_TOTAL_POINT, @p_COMMENT, @p_PROPOSE, @p_DECISION, @p_NOTES,
82
			@p_IS_SEND_APPR, CONVERT(DATETIME, @p_SEND_APPR_DT, 103), @p_SIGN_USER, CONVERT(DATETIME, @p_SIGN_DT, 103),
83
			@p_DEP_ID, @p_CONTRACT_ID, @p_ATTENTION_NOTES, @p_BASE_POINT)
84
	IF @@ERROR <> 0 GOTO ABORT
85
	PRINT 'PASS INSERT MASTER'
86

    
87
	----------GET XML----------
88
	DECLARE @hdoc INT
89
	Exec sp_xml_preparedocument @hdoc Output,@p_TR_RATE_SUP_DT_XML
90
	DECLARE RateSupDetail CURSOR FOR
91
	SELECT *
92
	FROM OPENXML(@hdoc, 'Root/RateSupDetail', 2)
93
	WITH
94
	(
95
		RATE_CRITERIA NVARCHAR(500),
96
		RATE_POINT INT,
97
		SUP_ID_1 VARCHAR(15),
98
		TR_CONTRACT_ID_1 VARCHAR(15),
99
		SUP_POINT_1 INT,
100
		SUP_ID_2 VARCHAR(15),
101
		TR_CONTRACT_ID_2 VARCHAR(15),
102
		SUP_POINT_2 INT,
103
		SUP_ID_3 VARCHAR(15),
104
		TR_CONTRACT_ID_3 VARCHAR(15),
105
		SUP_POINT_3 INT,
106
		SUP_ID_4 VARCHAR(15),
107
		TR_CONTRACT_ID_4 VARCHAR(15),
108
		SUP_POINT_4 INT,
109
		NOTES NVARCHAR(MAX)
110
	)
111
	OPEN RateSupDetail
112
	PRINT 'PASS OPEN CURSOR'
113

    
114
	DECLARE @p_RATE_CRITERIA NVARCHAR(500),
115
			@p_RATE_POINT INT,
116
			@p_SUP_ID_1 VARCHAR(15),
117
			@p_TR_CONTRACT_ID_1 VARCHAR(15),
118
			@p_SUP_POINT_1 INT,
119
			@p_SUP_ID_2 VARCHAR(15),
120
			@p_TR_CONTRACT_ID_2 VARCHAR(15),
121
			@p_SUP_POINT_2 INT,
122
			@p_SUP_ID_3 VARCHAR(15),
123
			@p_TR_CONTRACT_ID_3 VARCHAR(15),
124
			@p_SUP_POINT_3 INT,
125
			@p_SUP_ID_4 VARCHAR(15),
126
			@p_TR_CONTRACT_ID_4 VARCHAR(15),
127
			@p_SUP_POINT_4 INT,
128
			@p_NOTES_DT NVARCHAR(MAX)
129

    
130
	------INSERT DT---------
131
	DECLARE @p_RATE_DT_ID VARCHAR(15)
132
	FETCH NEXT FROM RateSupDetail INTO
133
		@p_RATE_CRITERIA,
134
		@p_RATE_POINT,
135
		@p_SUP_ID_1,
136
		@p_TR_CONTRACT_ID_1,
137
		@p_SUP_POINT_1,
138
		@p_SUP_ID_2,
139
		@p_TR_CONTRACT_ID_2,
140
		@p_SUP_POINT_2,
141
		@p_SUP_ID_3,
142
		@p_TR_CONTRACT_ID_3,
143
		@p_SUP_POINT_3,
144
		@p_SUP_ID_4,
145
		@p_TR_CONTRACT_ID_4,
146
		@p_SUP_POINT_4,
147
		@p_NOTES_DT
148
	WHILE @@FETCH_STATUS = 0
149
	BEGIN
150
		EXEC SYS_CodeMasters_Gen 'TR_RATE_SUPPLIER_DT' ,@p_RATE_DT_ID OUT
151
		IF @p_RATE_DT_ID IS NULL OR @p_RATE_DT_ID = '' GOTO ABORT
152

    
153
		INSERT INTO TR_RATE_SUPPLIER_DT
154
			(RATE_DT_ID, RATE_ID, RATE_CRITERIA, RATE_POINT, SUP_ID_1, TR_CONTRACT_ID_1, SUP_POINT_1,
155
			SUP_ID_2, TR_CONTRACT_ID_2, SUP_POINT_2, SUP_ID_3, TR_CONTRACT_ID_3, SUP_POINT_3, 
156
			SUP_ID_4, TR_CONTRACT_ID_4, SUP_POINT_4, NOTES)
157
		VALUES(@p_RATE_DT_ID, @p_RATE_ID, @p_RATE_CRITERIA, @p_RATE_POINT, @p_SUP_ID_1, @p_TR_CONTRACT_ID_1, 
158
				@p_SUP_POINT_1, @p_SUP_ID_2, @p_TR_CONTRACT_ID_2, @p_SUP_POINT_2, @p_SUP_ID_3, @p_TR_CONTRACT_ID_3, 
159
				@p_SUP_POINT_3, @p_SUP_ID_4, @p_TR_CONTRACT_ID_4, @p_SUP_POINT_4, @p_NOTES_DT)
160
		IF @@ERROR <> 0 GOTO ABORT
161
		PRINT 'PASS INSERT DT'
162

    
163
		----FETCH NEXT----
164
		FETCH NEXT FROM RateSupDetail INTO
165
			@p_RATE_CRITERIA,
166
			@p_RATE_POINT,
167
			@p_SUP_ID_1,
168
			@p_TR_CONTRACT_ID_1,
169
			@p_SUP_POINT_1,
170
			@p_SUP_ID_2,
171
			@p_TR_CONTRACT_ID_2,
172
			@p_SUP_POINT_2,
173
			@p_SUP_ID_3,
174
			@p_TR_CONTRACT_ID_3,
175
			@p_SUP_POINT_3,
176
			@p_SUP_ID_4,
177
			@p_TR_CONTRACT_ID_4,
178
			@p_SUP_POINT_4,
179
			@p_NOTES_DT
180
	END
181
	
182
	CLOSE RateSupDetail
183
	DEALLOCATE RateSupDetail
184
	PRINT 'INSERT COMPLETE'
185

    
186
	--------------INSERT lưu bước xử lý----------
187
	INSERT INTO dbo.PL_REQUEST_PROCESS
188
		(
189
		    REQ_ID,
190
		    PROCESS_ID,
191
		    STATUS,
192
		    ROLE_USER,
193
		    BRANCH_ID,
194
		    CHECKER_ID,
195
		    APPROVE_DT,
196
		    PARENT_PROCESS_ID,
197
		    IS_LEAF,
198
		    COST_ID,
199
		    DVDM_ID,
200
		    NOTES,
201
		    IS_HAS_CHILD
202
		)
203
		VALUES
204
		(   @p_RATE_ID,        -- REQ_ID - varchar(15)
205
		    'NEW',        -- PROCESS_ID - varchar(10)
206
		    'C',        -- STATUS - varchar(5)
207
		    '',        -- ROLE_USER - varchar(50)
208
		    '',        -- BRANCH_ID - varchar(15)
209
		    '',        -- CHECKER_ID - varchar(15)
210
		    NULL,      -- APPROVE_DT - datetime
211
		    '',        -- PARENT_PROCESS_ID - varchar(10)
212
		    'N',        -- IS_LEAF - varchar(1)
213
		    '',        -- COST_ID - varchar(15)
214
		    '',        -- DVDM_ID - varchar(15)
215
		    N'Chờ gửi phê duyệt',       -- NOTES - nvarchar(500)
216
		    NULL       -- IS_HAS_CHILD - bit
217
		)
218

    
219
COMMIT TRANSACTION
220
SELECT '0' as Result, @p_RATE_ID  RATE_ID, @p_RATE_REQ_NO RATE_REQ_NO,'' ErrorDesc
221
RETURN '0'
222
ABORT:
223
BEGIN
224
	CLOSE RateSupDetail
225
	DEALLOCATE RateSupDetail
226
	SELECT '-1' as Result, ''  RATE_ID, '' RATE_REQ_NO,'' ErrorDesc
227
	RETURN '-1'
228
END