Project

General

Profile

UPDATE INSERT PO.txt

Truong Nguyen Vu, 05/15/2020 09:59 AM

 
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