Project

General

Profile

4.0 DMMS UP.txt

Luc Tran Van, 04/16/2021 03:11 PM

 
1

    
2
ALTER PROCEDURE [dbo].[TR_REQUEST_DOC_DVMS_Upd]
3
@p_REQ_ID varchar(15),
4
@p_REQ_CODE	nvarchar(100)  = NULL,
5
@p_REQ_NAME	nvarchar(200)  = NULL,
6
@p_REQ_DT	DATETIME = NULL,
7
@p_REQ_TYPE	int = NULL,
8
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
9
@p_REQ_REASON NVARCHAR(500)=NULL,
10
@p_PL_REQ_ID VARCHAR(15),
11
@p_TOTAL_AMT	decimal(18, 2) = NULL,
12
@p_NOTES	nvarchar(1000)  = NULL,
13
@p_RECORD_STATUS	varchar(1)  = NULL,
14
@p_MAKER_ID	varchar(12)  = NULL,
15
@p_CREATE_DT	DATETIME = NULL,
16
@p_AUTH_STATUS	varchar(50)  = NULL,
17
@p_CHECKER_ID	varchar(12)  = NULL,
18
@p_APPROVE_DT	DATETIME = NULL,
19
@p_BRANCH_DO VARCHAR(15)=NULL,
20
@p_BRANCH_CREATE VARCHAR(15)=NULL,
21
@p_USER_REQUEST VARCHAR(15)=NULL,
22
@p_ListGood XML,
23
@p_ListCostCenter XML,
24
@p_IS_KT bit = null
25
AS
26
	--IF EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE [REQ_CODE] = @p_REQ_CODE AND REQ_ID <> @p_REQ_ID)
27
	--BEGIN
28
	--	SELECT ErrorCode Result, '' REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'REQ-00001'
29
	--	RETURN '0'
30
	--END
31
	DECLARE @sErrorCode VARCHAR(20)
32
	
33
  BEGIN TRANSACTION
34

    
35
		UPDATE dbo.TR_REQUEST_DOC
36
		SET BRANCH_DO=@p_BRANCH_DO,USER_DVMS=@p_MAKER_ID, IS_KT = @p_IS_KT
37
		WHERE REQ_ID=@p_REQ_ID
38
		-- UPDATE TOTAL_AMT MASTER
39
		UPDATE dbo.TR_REQUEST_DOC
40
		SET TOTAL_AMT=(SELECT SUM(ISNULL(TOTAL_AMT,0)) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_ID) WHERE REQ_ID =@p_REQ_ID
41
		IF @@Error <> 0 GOTO ABORT
42
		IF @@Error <> 0 GOTO ABORT
43

    
44

    
45
		--DELETE FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID
46
		DELETE FROM dbo.TR_REQUEST_COSTCENTER WHERE REQ_ID=@p_REQ_ID
47
		--Insert into TABLE PL_REQUEST_DOC_DT
48
		Declare @hdoc INT
49
		Exec sp_xml_preparedocument @hdoc Output,@p_ListGood
50
		DECLARE ListGoods  CURSOR FOR
51
		SELECT *
52
		FROM OPENXML(@hDoc,'/Root/ListGood',2)
53
		WITH 
54
		(
55
			REQDT_ID 	varchar(15)  ,
56
			PL_REQDT_ID	varchar(15)  ,
57
			GOODS_ID	varchar(15)  ,
58
			[DESCRIPTION] nvarchar(500),
59
			QUANTITY	decimal(18, 0)  ,
60
			PRICE	decimal(18, 2)  ,
61
			TOTAL_AMT	decimal(18, 2),	
62
			NOTES	nvarchar(1000),
63
			REQ_DT DATETIME,
64
			AMORT_MONTH DECIMAL(18,2),
65
			TRADE_TYPE_ID varchar(15),
66
			SUP_ID varchar(15),
67
			BID_ID VARCHAR(20),
68
			SUP_NAME NVARCHAR(2000),
69
			OFFERING_VALUE decimal(18, 2),
70
			NOTE_DVMS NVARCHAR(500),
71
			PO_ID VARCHAR(15),
72
			PO_AMT DECIMAL(18,2),
73
			TOTAL_AMT_ETM DECIMAL(18,2),
74
			CURRENCY VARCHAR(15),
75
			EXCHANGE_RATE DECIMAL(18,2),
76
			TAXES DECIMAL(18,2)
77
		)
78
		OPEN ListGoods
79

    
80
		Declare 
81
		@REQDT_ID 	varchar(15)  ,
82
		@PL_REQDT_ID	varchar(15),
83
		@SUP_ID	varchar(15),
84
		@GOODS_ID	varchar(15),
85
		@DESCRIPTION nvarchar(500),
86
		@QUANTITY	decimal(18, 0),
87
		@PRICE	decimal(18, 2),
88
		@TOTAL_AMT	decimal(18, 2),		
89
		@NOTES	nvarchar(1000),
90
		@TRADE_TYPE_ID varchar(15),
91
		@AMORT_MONTH DECIMAL(18,2),
92
		@RED_DT DATETIME,
93
		@BID_ID VARCHAR(20),
94
		@SUP_NAME NVARCHAR(2000),
95
		@l_SUP_ID VARCHAR(15),
96
		@OFFERING_VALUE DECIMAL(18,2),
97
		@NOTE_DVMS NVARCHAR(500),
98
		@PO_ID VARCHAR(15),
99
		@PO_AMT DECIMAL(18,2),
100
		@TOTAL_AMT_ETM DECIMAL(18,2),
101
		@CURRENCY VARCHAR(15),
102
		@EXCHANGE_RATE DECIMAL(18,2),
103
		@TAXES DECIMAL(18,2)
104
		
105

    
106
		FETCH NEXT FROM ListGoods INTO @REQDT_ID, @PL_REQDT_ID,@GOODS_ID,@DESCRIPTION,@QUANTITY,@PRICE,@TOTAL_AMT,
107
		@NOTES,@RED_DT,@AMORT_MONTH, @TRADE_TYPE_ID, @SUP_ID,@BID_ID,@SUP_NAME,@OFFERING_VALUE,@NOTE_DVMS,@PO_ID,@PO_AMT,@TOTAL_AMT_ETM,@CURRENCY,@EXCHANGE_RATE ,@TAXES 
108
		WHILE @@FETCH_STATUS = 0	
109
		BEGIN
110
			--LUCTV 21052020 KIEM TRA NEU CHUA TON TAI NHA CUNG CAP THI THEM MOI NHA CUNG CAP
111
			IF((@SUP_NAME IS NOT NULL AND @SUP_NAME <> '') AND NOT EXISTS(SELECT * FROM CM_SUPPLIER WHERE SUP_NAME =@SUP_NAME AND SUP_NAME IS NOT NULL AND SUP_NAME <>''))
112
			BEGIN
113
			EXEC SYS_CodeMasters_Gen 'CM_SUPPLIER', @l_SUP_ID out
114
				IF @l_SUP_ID='' OR @l_SUP_ID IS NULL GOTO ABORT
115
				INSERT INTO CM_SUPPLIER([DISCIPLINES],[SUP_ID],[SUP_CODE],[SUP_NAME],[SUP_TYPE_ID],[REGION_ID],[ADDR],[EMAIL],[TAX_NO],[TEL],[CONTACT_PERSON],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],ACC_NUM)
116
				VALUES('', @l_SUP_ID ,@l_SUP_ID ,@SUP_NAME ,NULL ,NULL ,'' ,'' ,'' ,'' ,'' ,'' ,'1' ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,'U' ,NULL,NULL,NULL)
117
			END
118
			----
119
			--IF(@SUP_ID IS NULL OR @SUP_ID='')
120
			IF(EXISTS(SELECT * FROM CM_SUPPLIER WHERE SUP_NAME =@SUP_NAME AND SUP_NAME IS NOT NULL AND SUP_NAME <>''))
121
				SET @SUP_ID =(SELECT TOP 1 SUP_ID FROM dbo.CM_SUPPLIER WHERE SUP_NAME=@SUP_NAME)
122

    
123
			IF(EXISTS(SELECT * FROM CM_SUPPLIER WHERE SUP_NAME =@SUP_NAME AND SUP_NAME IS NOT NULL AND SUP_NAME <>'' AND SUP_ID =@SUP_ID))
124
				SET @SUP_ID =(SELECT TOP 1 SUP_ID FROM dbo.CM_SUPPLIER WHERE SUP_ID=@SUP_ID AND SUP_NAME = @SUP_NAME)
125

    
126

    
127
			IF(@SUP_NAME IS NULL AND @SUP_NAME = '')
128
				SET @SUP_ID = NULL
129

    
130
			UPDATE dbo.TR_REQUEST_DOC_DT SET CURRENCY =@CURRENCY, EXCHANGE_RATE =@EXCHANGE_RATE,TAXES =@TAXES, PRICE=@PRICE,TOTAL_AMT=ROUND(((QUANTITY * @PRICE + @TAXES) * @EXCHANGE_RATE),0),
131
			TRAN_TYPE_ID=@TRADE_TYPE_ID,SUP_ID=@SUP_ID,BID_ID=@BID_ID,OFFERING_VALUE =@OFFERING_VALUE,
132
			NOTE_DVMS =@NOTE_DVMS,PO_ID = @PO_ID,PO_AMT = @PO_AMT, TOTAL_AMT_ETM = @TOTAL_AMT_ETM, DESCRIPTION = @DESCRIPTION
133
			WHERE REQDT_ID=@REQDT_ID
134
			UPDATE dbo.BID_MASTER SET REQUEST_ID=@p_REQ_ID WHERE BID_ID=@BID_ID
135
			
136
			IF @@ERROR <> 0 GOTO ABORT1
137
		-- next Group_Id
138
			FETCH NEXT FROM ListGoods INTO @REQDT_ID, @PL_REQDT_ID,@GOODS_ID,@DESCRIPTION,@QUANTITY,@PRICE,@TOTAL_AMT,
139
		@NOTES,@RED_DT,@AMORT_MONTH, @TRADE_TYPE_ID, @SUP_ID,@BID_ID,@SUP_NAME,@OFFERING_VALUE,@NOTE_DVMS,@PO_ID,@PO_AMT,@TOTAL_AMT_ETM,@CURRENCY,@EXCHANGE_RATE ,@TAXES 
140
		END
141
		CLOSE ListGoods
142
		DEALLOCATE ListGoods
143
		IF @@Error <> 0 GOTO ABORT
144

    
145
		UPDATE dbo.TR_REQUEST_DOC SET TOTAL_AMT=(SELECT SUM(TOTAL_AMT) FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID) WHERE REQ_ID=@p_REQ_ID 
146

    
147
		--Insert into TABLE PL_REQUEST_DOC_DT
148
		Exec sp_xml_preparedocument @hdoc Output,@p_ListCostCenter
149
		DECLARE ListCostCenters  CURSOR FOR
150
		SELECT *
151
		FROM OPENXML(@hDoc,'/Root/ListCostCenter',2)
152
		WITH 
153
		(
154
			COST_ID	varchar(15),	
155
			NOTES	nvarchar(1000),
156
			AUTH_STATUS varchar(15),
157
			MAKER_ID varchar(15),
158
			CREATE_DT DATETIME,
159
			CHECKER_ID varchar(15),
160
			APPROVE_DT DATETIME
161
		)
162

    
163
		OPEN ListCostCenters
164
		Declare 
165
		@COST_ID	varchar(15),
166
		@AUTH_STATUS varchar(15),
167
		@MAKER_ID varchar(15),
168
		@CREATE_DT DATETIME,
169
		@CHECKER_ID varchar(15),
170
		@APPROVE_DT DATETIME
171

    
172
		FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES,@AUTH_STATUS,@MAKER_ID,@CREATE_DT,@CHECKER_ID,@APPROVE_DT
173
		WHILE @@FETCH_STATUS = 0	
174
		BEGIN
175
			
176
			DECLARE @l_REQ_COST_ID VARCHAR(15)
177
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_COSTCENTER', @l_REQ_COST_ID out
178
			IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
179
	
180
			INSERT INTO dbo.TR_REQUEST_COSTCENTER
181
			(
182
			    REQ_COST_ID,
183
			    COST_ID,
184
			    REQ_ID,
185
			    NOTES,
186
			    AUTH_STATUS,
187
			    MAKER_ID,
188
			    CREATE_DT,
189
			    CHECKER_ID,
190
			    APPROVE_DT
191
			)
192
			VALUES
193
			(   @l_REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
194
			    @COST_ID,        -- COST_ID - varchar(15)
195
			    @p_REQ_ID,        -- REQ_ID - varchar(15)
196
			    @NOTES,       -- NOTES - nvarchar(500)
197
			    @AUTH_STATUS,        -- AUTH_STATUS - varchar(1)
198
			    @MAKER_ID,        -- MAKER_ID - varchar(15)
199
			    @CREATE_DT, -- CREATE_DT - datetime
200
			    @CHECKER_ID,        -- CHECKER_ID - varchar(15)
201
			   @APPROVE_DT -- APPROVE_DT - datetime
202
			 )
203
			
204
			IF @@ERROR <> 0 GOTO ABORT1
205
		-- next Group_Id
206
			FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES,@AUTH_STATUS,@MAKER_ID,@CREATE_DT,@CHECKER_ID,@APPROVE_DT
207
		END
208
		CLOSE ListCostCenters
209
		DEALLOCATE ListCostCenters
210

    
211
		UPDATE dbo.TR_REQUEST_DOC SET TOTAL_AMT= (SELECT SUM(TOTAL_AMT) FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID) WHERE REQ_ID=@p_REQ_ID
212

    
213
		
214

    
215
		
216
COMMIT TRANSACTION
217
SELECT '0' as Result, @p_REQ_ID  REQ_ID, '' ErrorDesc
218
RETURN '0'
219
ABORT:
220
BEGIN
221
		ROLLBACK TRANSACTION
222
		SELECT '-1' AS RESULT
223
		RETURN '-1'
224
End
225
ABORT1:
226
BEGIN
227
		CLOSE ListGoods
228
		DEALLOCATE ListGoods
229
		CLOSE ListCostCenters
230
		DEALLOCATE ListCostCenters
231
		ROLLBACK TRANSACTION
232
		SELECT '-1' AS RESULT
233
		RETURN '-1'
234
End
235

    
236

    
237

    
238

    
239

    
240