Project

General

Profile

TR_REQUEST_DOC_DMMS_UPD.txt

Luc Tran Van, 10/15/2020 03:52 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
AS
25
	--IF EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE [REQ_CODE] = @p_REQ_CODE AND REQ_ID <> @p_REQ_ID)
26
	--BEGIN
27
	--	SELECT ErrorCode Result, '' REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'REQ-00001'
28
	--	RETURN '0'
29
	--END
30
	DECLARE @sErrorCode VARCHAR(20)
31
	
32
  BEGIN TRANSACTION
33

    
34
		UPDATE dbo.TR_REQUEST_DOC
35
		SET BRANCH_DO=@p_BRANCH_DO,USER_DVMS=@p_MAKER_ID
36
		WHERE REQ_ID=@p_REQ_ID
37
		IF @@Error <> 0 GOTO ABORT
38

    
39

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

    
72
		Declare 
73
		@REQDT_ID 	varchar(15)  ,
74
		@PL_REQDT_ID	varchar(15),
75
		@SUP_ID	varchar(15),
76
		@GOODS_ID	varchar(15),
77
		@DESCRIPTION nvarchar(500),
78
		@QUANTITY	decimal(18, 0),
79
		@PRICE	decimal(18, 2),
80
		@TOTAL_AMT	decimal(18, 2),		
81
		@NOTES	nvarchar(1000),
82
		@TRADE_TYPE_ID varchar(15),
83
		@AMORT_MONTH DECIMAL(18,2),
84
		@RED_DT DATETIME,
85
		@BID_ID VARCHAR(20),
86
		@SUP_NAME NVARCHAR(2000),
87
		@l_SUP_ID VARCHAR(15),
88
		@OFFERING_VALUE DECIMAL(18,2),
89
		@NOTE_DVMS NVARCHAR(500),
90
		@PO_ID VARCHAR(15),
91
		@PO_AMT DECIMAL(18,2),
92
		@TOTAL_AMT_ETM DECIMAL(18,2)
93
		
94

    
95
		FETCH NEXT FROM ListGoods INTO @REQDT_ID, @PL_REQDT_ID,@GOODS_ID,@DESCRIPTION,@QUANTITY,@PRICE,@TOTAL_AMT,
96
		@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
97
		WHILE @@FETCH_STATUS = 0	
98
		BEGIN
99
			--LUCTV 21052020 KIEM TRA NEU CHUA TON TAI NHA CUNG CAP THI THEM MOI NHA CUNG CAP
100
			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 <>''))
101
			BEGIN
102
			EXEC SYS_CodeMasters_Gen 'CM_SUPPLIER', @l_SUP_ID out
103
				IF @l_SUP_ID='' OR @l_SUP_ID IS NULL GOTO ABORT
104
				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)
105
				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)
106
			END
107
			----
108
			--IF(@SUP_ID IS NULL OR @SUP_ID='')
109
			IF(EXISTS(SELECT * FROM CM_SUPPLIER WHERE SUP_NAME =@SUP_NAME AND SUP_NAME IS NOT NULL AND SUP_NAME <>''))
110
				SET @SUP_ID =(SELECT TOP 1 SUP_ID FROM dbo.CM_SUPPLIER WHERE SUP_NAME=@SUP_NAME)
111

    
112
			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))
113
				SET @SUP_ID =(SELECT TOP 1 SUP_ID FROM dbo.CM_SUPPLIER WHERE SUP_ID=@SUP_ID AND SUP_NAME = @SUP_NAME)
114

    
115

    
116
			IF(@SUP_NAME IS NULL AND @SUP_NAME = '')
117
				SET @SUP_ID = NULL
118

    
119
			UPDATE dbo.TR_REQUEST_DOC_DT SET PRICE=@PRICE,TOTAL_AMT=((QUANTITY * @PRICE + TAXES) * EXCHANGE_RATE),TRAN_TYPE_ID=@TRADE_TYPE_ID,SUP_ID=@SUP_ID,BID_ID=@BID_ID,OFFERING_VALUE =@OFFERING_VALUE,
120
			NOTE_DVMS =@NOTE_DVMS,PO_ID = @PO_ID,PO_AMT = @PO_AMT, TOTAL_AMT_ETM = @TOTAL_AMT_ETM, DESCRIPTION = @DESCRIPTION
121
			WHERE REQDT_ID=@REQDT_ID
122
			UPDATE dbo.BID_MASTER SET REQUEST_ID=@p_REQ_ID WHERE BID_ID=@BID_ID
123
			
124
			IF @@ERROR <> 0 GOTO ABORT1
125
		-- next Group_Id
126
			FETCH NEXT FROM ListGoods INTO @REQDT_ID, @PL_REQDT_ID,@GOODS_ID,@DESCRIPTION,@QUANTITY,@PRICE,@TOTAL_AMT,
127
		@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
128
		END
129
		CLOSE ListGoods
130
		DEALLOCATE ListGoods
131
		IF @@Error <> 0 GOTO ABORT
132

    
133
		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 
134

    
135
		--Insert into TABLE PL_REQUEST_DOC_DT
136
		Exec sp_xml_preparedocument @hdoc Output,@p_ListCostCenter
137
		DECLARE ListCostCenters  CURSOR FOR
138
		SELECT *
139
		FROM OPENXML(@hDoc,'/Root/ListCostCenter',2)
140
		WITH 
141
		(
142
			COST_ID	varchar(15),	
143
			NOTES	nvarchar(1000),
144
			AUTH_STATUS varchar(15),
145
			MAKER_ID varchar(15),
146
			CREATE_DT DATETIME,
147
			CHECKER_ID varchar(15),
148
			APPROVE_DT DATETIME
149
		)
150

    
151
		OPEN ListCostCenters
152
		Declare 
153
		@COST_ID	varchar(15),
154
		@AUTH_STATUS varchar(15),
155
		@MAKER_ID varchar(15),
156
		@CREATE_DT DATETIME,
157
		@CHECKER_ID varchar(15),
158
		@APPROVE_DT DATETIME
159

    
160
		FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES,@AUTH_STATUS,@MAKER_ID,@CREATE_DT,@CHECKER_ID,@APPROVE_DT
161
		WHILE @@FETCH_STATUS = 0	
162
		BEGIN
163
			
164
			DECLARE @l_REQ_COST_ID VARCHAR(15)
165
			EXEC SYS_CodeMasters_Gen 'TR_REQUEST_COSTCENTER', @l_REQ_COST_ID out
166
			IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT
167
	
168
			INSERT INTO dbo.TR_REQUEST_COSTCENTER
169
			(
170
			    REQ_COST_ID,
171
			    COST_ID,
172
			    REQ_ID,
173
			    NOTES,
174
			    AUTH_STATUS,
175
			    MAKER_ID,
176
			    CREATE_DT,
177
			    CHECKER_ID,
178
			    APPROVE_DT
179
			)
180
			VALUES
181
			(   @l_REQ_COST_ID,        -- REQ_COST_ID - varchar(15)
182
			    @COST_ID,        -- COST_ID - varchar(15)
183
			    @p_REQ_ID,        -- REQ_ID - varchar(15)
184
			    @NOTES,       -- NOTES - nvarchar(500)
185
			    @AUTH_STATUS,        -- AUTH_STATUS - varchar(1)
186
			    @MAKER_ID,        -- MAKER_ID - varchar(15)
187
			    @CREATE_DT, -- CREATE_DT - datetime
188
			    @CHECKER_ID,        -- CHECKER_ID - varchar(15)
189
			   @APPROVE_DT -- APPROVE_DT - datetime
190
			 )
191
			
192
			IF @@ERROR <> 0 GOTO ABORT1
193
		-- next Group_Id
194
			FETCH NEXT FROM ListCostCenters INTO @COST_ID, @NOTES,@AUTH_STATUS,@MAKER_ID,@CREATE_DT,@CHECKER_ID,@APPROVE_DT
195
		END
196
		CLOSE ListCostCenters
197
		DEALLOCATE ListCostCenters
198

    
199
		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
200

    
201
		
202

    
203
		
204
COMMIT TRANSACTION
205
SELECT '0' as Result, @p_REQ_ID  REQ_ID, '' ErrorDesc
206
RETURN '0'
207
ABORT:
208
BEGIN
209
		ROLLBACK TRANSACTION
210
		SELECT '-1' AS RESULT
211
		RETURN '-1'
212
End
213
ABORT1:
214
BEGIN
215
		CLOSE ListGoods
216
		DEALLOCATE ListGoods
217
		CLOSE ListCostCenters
218
		DEALLOCATE ListCostCenters
219
		ROLLBACK TRANSACTION
220
		SELECT '-1' AS RESULT
221
		RETURN '-1'
222
End
223

    
224

    
225

    
226

    
227

    
228