1
|
USE [gAMSPro_VietcapitalBank_v2]
|
2
|
GO
|
3
|
/****** Object: StoredProcedure [dbo].[TR_REQ_DOC_Ins_To_PO] Script Date: 15-May-20 08:42:30 ******/
|
4
|
SET ANSI_NULLS ON
|
5
|
GO
|
6
|
SET QUOTED_IDENTIFIER ON
|
7
|
GO
|
8
|
|
9
|
ALTER PROCEDURE [dbo].[TR_REQ_DOC_Ins_To_PO] @p_TR_REQ_ID VARCHAR(15)
|
10
|
AS
|
11
|
BEGIN TRANSACTION;
|
12
|
--insert master
|
13
|
DECLARE @p_PO_CODE VARCHAR(15),
|
14
|
@p_BRANCH_ID VARCHAR(20),
|
15
|
@p_SUP_ID VARCHAR(20),
|
16
|
@p_TOTAL_AMT DECIMAL(18,2),
|
17
|
@p_MAKER_ID VARCHAR(20),
|
18
|
@p_TR_REQ_CODE VARCHAR(20),
|
19
|
@p_SUP_NAME NVARCHAR(200),
|
20
|
@p_SUP_ADDR NVARCHAR(200),
|
21
|
@p_BRANCH_RE VARCHAR(20),
|
22
|
@p_PO_NAME NVARCHAR(100);
|
23
|
DECLARE @l_PO_ID VARCHAR(15);
|
24
|
EXEC SYS_CodeMasters_Gen 'TR_PO_MASTER', @l_PO_ID OUT;
|
25
|
IF @l_PO_ID = ''
|
26
|
OR @l_PO_ID IS NULL
|
27
|
GOTO ABORT;
|
28
|
|
29
|
SELECT @p_BRANCH_ID=BRANCH_DVMS,@p_BRANCH_RE=BRANCH_CREATE,@p_TR_REQ_CODE=REQ_CODE,@p_PO_NAME=REQ_REASON,@p_MAKER_ID=USER_DVMS FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_TR_REQ_ID
|
30
|
|
31
|
|
32
|
SELECT TOP 1 @p_SUP_ID = SUP_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_TR_REQ_ID
|
33
|
SET @p_TOTAL_AMT= (SELECT SUM(TOTAL_AMT) FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_TR_REQ_ID)
|
34
|
--TU PHAT SINH SO PO
|
35
|
DECLARE @ldate INT = (
|
36
|
SELECT YEAR(GETDATE())
|
37
|
);
|
38
|
EXEC [dbo].[TR_PO_MASTER_NO_Gen] @p_BRANCH_ID, @ldate, @p_PO_CODE OUT;
|
39
|
IF @p_PO_CODE = ''
|
40
|
OR @p_PO_CODE IS NULL
|
41
|
GOTO ABORT;
|
42
|
|
43
|
INSERT INTO TR_PO_MASTER
|
44
|
(
|
45
|
[PO_TYPE],
|
46
|
[PO_ID],
|
47
|
[PO_CODE],
|
48
|
[PO_NAME],
|
49
|
[CONTRACT_ID],
|
50
|
[SUP_ID],
|
51
|
[SUP_NAME],
|
52
|
[SUP_ADDR],
|
53
|
[INPUT_DT],
|
54
|
[PAYMENT_DT],
|
55
|
[TOTAL_AMT],
|
56
|
[REQ_DOC_ID],
|
57
|
[DELIVERY_DT],
|
58
|
[PAYAPP_DT],
|
59
|
[NOTES],
|
60
|
[RECORD_STATUS],
|
61
|
[MAKER_ID],
|
62
|
[CREATE_DT],
|
63
|
[AUTH_STATUS],
|
64
|
[CHECKER_ID],
|
65
|
[APPROVE_DT],
|
66
|
BRANCH_ID
|
67
|
)
|
68
|
VALUES
|
69
|
(1, @l_PO_ID, @p_PO_CODE, @p_PO_NAME, '', @p_SUP_ID, @p_SUP_NAME, @p_SUP_ADDR, GETDATE(),
|
70
|
NULL, @p_TOTAL_AMT, @p_TR_REQ_ID, NULL,
|
71
|
NULL, '', '1', @p_MAKER_ID, GETDATE(),
|
72
|
'U', NULL, NULL, @p_BRANCH_ID);
|
73
|
IF @@Error <> 0
|
74
|
GOTO ABORT;
|
75
|
PRINT 'INSERT MASTER SUCCESS';
|
76
|
INSERT INTO dbo.TR_PO_MASTER_TEMP
|
77
|
(
|
78
|
PO_ID,
|
79
|
TR_REQ_ID,
|
80
|
TR_REQ_CODE
|
81
|
)
|
82
|
VALUES
|
83
|
( @l_PO_ID, -- PO_ID - varchar(15)
|
84
|
@p_TR_REQ_ID, -- TR_REQ_ID - varchar(20)
|
85
|
@p_TR_REQ_CODE -- TR_REQ_CODE - varchar(20)
|
86
|
);
|
87
|
DECLARE @HANGHOA_ID VARCHAR(20),@QUANTITY DECIMAL(18,0),@PRICE DECIMAL(18,2),@TOTAL_AMT DECIMAL(18,2),@HH_TYPE VARCHAR(20),@HH_NAME NVARCHAR(100)
|
88
|
|
89
|
|
90
|
DECLARE lstData CURSOR FOR
|
91
|
SELECT HANGHOA_ID,QUANTITY,PRICE,TOTAL_AMT FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_TR_REQ_ID
|
92
|
|
93
|
OPEN lstData
|
94
|
FETCH NEXT FROM lstData INTO @HANGHOA_ID,@QUANTITY,@PRICE,@TOTAL_AMT
|
95
|
WHILE @@FETCH_STATUS = 0
|
96
|
BEGIN
|
97
|
SELECT @HH_NAME= HH_NAME,@HH_TYPE=HH_TYPE_ID FROM dbo.CM_HANGHOA WHERE HH_ID=@HANGHOA_ID
|
98
|
DECLARE @l_PD_ID VARCHAR(15)
|
99
|
EXEC SYS_CodeMasters_Gen 'TR_PO_DETAIL', @l_PD_ID out
|
100
|
IF @l_PD_ID='' OR @l_PD_ID IS NULL GOTO ABORT
|
101
|
|
102
|
INSERT INTO dbo.TR_PO_DETAIL
|
103
|
(
|
104
|
PD_ID,
|
105
|
PO_ID,
|
106
|
PLAN_ID,
|
107
|
TRADE_ID,
|
108
|
GOODS_ID,
|
109
|
DESCRIPTION,
|
110
|
UNIT_ID,
|
111
|
QUANTITY,
|
112
|
PRICE,
|
113
|
TOTAL_AMT,
|
114
|
IS_DELIVERY,
|
115
|
DELIVERY_DT,
|
116
|
PAYMENT_STATUS,
|
117
|
AMOUNT_PAID,
|
118
|
PAID_DT,
|
119
|
INVOICENO,
|
120
|
NOTES,
|
121
|
RECEIVE_BRANCH,
|
122
|
RECEIVE_ADDR,
|
123
|
RECEIVE_PERSON,
|
124
|
RECEIVE_TEL,
|
125
|
RECORD_STATUS,
|
126
|
MAKER_ID,
|
127
|
CREATE_DT,
|
128
|
AUTH_STATUS,
|
129
|
CHECKER_ID,
|
130
|
APPROVE_DT,
|
131
|
EXP_DELIVERY_DT,
|
132
|
GOODS_NAME,
|
133
|
INVOICE_DT,
|
134
|
GOODSTYPE_REAL,
|
135
|
VAT,
|
136
|
PRICE_VAT,
|
137
|
CONTRACT_DT
|
138
|
)
|
139
|
VALUES
|
140
|
( @l_PD_ID, -- PD_ID - varchar(15)
|
141
|
@l_PO_ID, -- PO_ID - varchar(15)
|
142
|
'', -- PLAN_ID - varchar(15)
|
143
|
'', -- TRADE_ID - varchar(15)
|
144
|
@HANGHOA_ID, -- GOODS_ID - varchar(15)
|
145
|
N'', -- DESCRIPTION - nvarchar(500)
|
146
|
'', -- UNIT_ID - varchar(15)
|
147
|
@QUANTITY, -- QUANTITY - decimal(18, 0)
|
148
|
ROUND(@PRICE/1.1,0), -- PRICE - decimal(18, 0)
|
149
|
@TOTAL_AMT, -- TOTAL_AMT - decimal(18, 0)
|
150
|
'', -- IS_DELIVERY - varchar(1)
|
151
|
NULL, -- DELIVERY_DT - datetime
|
152
|
'CTT', -- PAYMENT_STATUS - varchar(4)
|
153
|
NULL, -- AMOUNT_PAID - decimal(18, 0)
|
154
|
NULL, -- PAID_DT - datetime
|
155
|
'', -- INVOICENO - varchar(1000)
|
156
|
N'', -- NOTES - nvarchar(1000)
|
157
|
@p_BRANCH_RE, -- RECEIVE_BRANCH - varchar(15)
|
158
|
N'', -- RECEIVE_ADDR - nvarchar(1000)
|
159
|
N'', -- RECEIVE_PERSON - nvarchar(500)
|
160
|
'', -- RECEIVE_TEL - varchar(100)
|
161
|
'', -- RECORD_STATUS - varchar(1)
|
162
|
@p_MAKER_ID, -- MAKER_ID - varchar(15)
|
163
|
GETDATE(), -- CREATE_DT - datetime
|
164
|
'', -- AUTH_STATUS - varchar(50)
|
165
|
'', -- CHECKER_ID - varchar(15)
|
166
|
NULL, -- APPROVE_DT - datetime
|
167
|
NULL, -- EXP_DELIVERY_DT - datetime
|
168
|
@HH_NAME, -- GOODS_NAME - nvarchar(500)
|
169
|
NULL, -- INVOICE_DT - datetime
|
170
|
@HH_TYPE, -- GOODSTYPE_REAL - varchar(15)
|
171
|
10, -- VAT - decimal(18, 2)
|
172
|
@TOTAL_AMT - (ROUND(@PRICE/1.1,0) *@QUANTITY), -- PRICE_VAT - decimal(18, 0)
|
173
|
'' -- CONTRACT_DT - varchar(15)
|
174
|
)
|
175
|
|
176
|
FETCH NEXT FROM lstData INTO @HANGHOA_ID,@QUANTITY,@PRICE,@TOTAL_AMT
|
177
|
END
|
178
|
CLOSE lstData;
|
179
|
DEALLOCATE lstData;
|
180
|
|
181
|
SET @TOTAL_AMT=(SELECT SUM(TOTAL_AMT) AS TOTAL_AMT FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_TR_REQ_ID)
|
182
|
|
183
|
DECLARE @l_PAY_ID VARCHAR(15)
|
184
|
EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @l_PAY_ID out
|
185
|
IF @l_PAY_ID='' OR @l_PAY_ID IS NULL GOTO ABORT
|
186
|
INSERT INTO dbo.TR_PO_PAYMENT
|
187
|
(
|
188
|
PAY_ID,
|
189
|
PO_ID,
|
190
|
PAY_PHASE,
|
191
|
EXP_DT,
|
192
|
[PERCENT],
|
193
|
AMOUNT,
|
194
|
NOTES,
|
195
|
RECORD_STATUS,
|
196
|
MAKER_ID,
|
197
|
CREATE_DT,
|
198
|
AUTH_STATUS,
|
199
|
CHECKER_ID,
|
200
|
APPROVE_DT
|
201
|
)
|
202
|
VALUES
|
203
|
( @l_PAY_ID, -- PAY_ID - varchar(15)
|
204
|
@l_PO_ID, -- PO_ID - varchar(15)
|
205
|
'1', -- PAY_PHASE - varchar(20)
|
206
|
GETDATE(), -- EXP_DT - datetime
|
207
|
50, -- PERCENT - decimal(18, 0)
|
208
|
@TOTAL_AMT / 2 , -- AMOUNT - decimal(18, 0)
|
209
|
N'', -- NOTES - nvarchar(1000)
|
210
|
'1', -- RECORD_STATUS - varchar(1)
|
211
|
@p_MAKER_ID, -- MAKER_ID - varchar(15)
|
212
|
GETDATE(), -- CREATE_DT - datetime
|
213
|
'U', -- AUTH_STATUS - varchar(50)
|
214
|
'', -- CHECKER_ID - varchar(15)
|
215
|
NULL -- APPROVE_DT - datetime
|
216
|
)
|
217
|
EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @l_PAY_ID out
|
218
|
IF @l_PAY_ID='' OR @l_PAY_ID IS NULL GOTO ABORT
|
219
|
INSERT INTO dbo.TR_PO_PAYMENT
|
220
|
(
|
221
|
PAY_ID,
|
222
|
PO_ID,
|
223
|
PAY_PHASE,
|
224
|
EXP_DT,
|
225
|
[PERCENT],
|
226
|
AMOUNT,
|
227
|
NOTES,
|
228
|
RECORD_STATUS,
|
229
|
MAKER_ID,
|
230
|
CREATE_DT,
|
231
|
AUTH_STATUS,
|
232
|
CHECKER_ID,
|
233
|
APPROVE_DT
|
234
|
)
|
235
|
VALUES
|
236
|
( @l_PAY_ID, -- PAY_ID - varchar(15)
|
237
|
@l_PO_ID, -- PO_ID - varchar(15)
|
238
|
'2', -- PAY_PHASE - varchar(20)
|
239
|
GETDATE(), -- EXP_DT - datetime
|
240
|
50, -- PERCENT - decimal(18, 0)
|
241
|
@TOTAL_AMT / 2 , -- AMOUNT - decimal(18, 0)
|
242
|
N'', -- NOTES - nvarchar(1000)
|
243
|
'1', -- RECORD_STATUS - varchar(1)
|
244
|
@p_MAKER_ID, -- MAKER_ID - varchar(15)
|
245
|
GETDATE(), -- CREATE_DT - datetime
|
246
|
'U', -- AUTH_STATUS - varchar(50)
|
247
|
'', -- CHECKER_ID - varchar(15)
|
248
|
NULL -- APPROVE_DT - datetime
|
249
|
)
|
250
|
|
251
|
IF(@TOTAL_AMT <=5000000)
|
252
|
BEGIN
|
253
|
UPDATE dbo.TR_PO_MASTER SET AUTH_STATUS='A' WHERE PO_ID=@l_PO_ID
|
254
|
END
|
255
|
|
256
|
COMMIT TRANSACTION;
|
257
|
RETURN 1;
|
258
|
ABORT:
|
259
|
BEGIN
|
260
|
ROLLBACK TRANSACTION;
|
261
|
RETURN 1;
|
262
|
END;
|
263
|
ABORT1:
|
264
|
BEGIN
|
265
|
CLOSE lstData;
|
266
|
DEALLOCATE lstData;
|
267
|
ROLLBACK TRANSACTION;
|
268
|
RETURN 1;
|
269
|
END;
|
270
|
|
271
|
|
272
|
|
273
|
|
274
|
|
275
|
|
276
|
|