Project

General

Profile

FILE 1.txt

Truong Nguyen Vu, 09/22/2020 08:17 AM

 
1

    
2
ALTER PROCEDURE [dbo].[TR_REQ_DOC_Ins_To_PO] @p_TR_REQ_ID VARCHAR(15)
3
AS
4
BEGIN TRANSACTION;
5
	DECLARE @l_SUP_ID VARCHAR(15)
6
	DECLARE @p_PO_CODE VARCHAR(15),
7
        @p_BRANCH_ID VARCHAR(20),
8
		@p_SUP_ID VARCHAR(20),
9
		@p_TOTAL_AMT DECIMAL(18,2),
10
		@p_MAKER_ID VARCHAR(20),
11
		@p_TR_REQ_CODE VARCHAR(20),
12
		@p_SUP_NAME NVARCHAR(200),
13
		@p_SUP_ADDR NVARCHAR(200),
14
		@p_BRANCH_RE VARCHAR(20),
15
        @p_PO_NAME NVARCHAR(100);
16
--- LAY DANH SACH NHA CUNG CAP CUA HANG HOA TRONG PYCMS - LUCTV 25052020
17
	DECLARE @TABLE_NCC TABLE (SUP_ID VARCHAR(15))
18
	INSERT INTO @TABLE_NCC SELECT SUP_ID FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_TR_REQ_ID GROUP BY SUP_ID
19

    
20
	DECLARE lstDATANCC CURSOR FOR SELECT SUP_ID FROM @TABLE_NCC
21
	OPEN lstDATANCC
22
	FETCH NEXT FROM lstDATANCC INTO @l_SUP_ID
23
	WHILE @@FETCH_STATUS=0
24
	BEGIN
25
	--SET @l_SUP_ID =(SELECT TOP 1 SUP_ID FROM @TABLE_NCC)
26
	--insert master		
27
	DECLARE @l_PO_ID VARCHAR(15);
28
	EXEC SYS_CodeMasters_Gen 'TR_PO_MASTER', @l_PO_ID OUT;
29
	IF @l_PO_ID = '' OR @l_PO_ID IS NULL
30
	GOTO ABORT;
31
	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
32

    
33
	--SELECT TOP 1 @p_SUP_ID = SUP_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_TR_REQ_ID
34
	SET @p_SUP_ID =@l_SUP_ID
35
	SET @p_TOTAL_AMT= (SELECT SUM(TOTAL_AMT) FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_TR_REQ_ID AND  ISNULL(SUP_ID,'') =ISNULL(@p_SUP_ID,''))
36
	--TU PHAT SINH SO PO
37
	DECLARE @ldate INT = (SELECT YEAR(GETDATE()) );
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
	 'E', 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
	 @CURRENCY VARCHAR(15),@RATE INT ,@TOTAL_AMT_FN DECIMAL(18,2), @HH_DESC NVARCHAR(500)
89
	 DECLARE lstData CURSOR FOR
90
	 SELECT HANGHOA_ID,QUANTITY,PRICE,TOTAL_AMT,CURRENCY,EXCHANGE_RATE,TOTAL_AMT_ETM,[DESCRIPTION] FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_TR_REQ_ID AND ISNULL(SUP_ID,'') =ISNULL(@p_SUP_ID,'')
91
		
92
	OPEN lstData
93
	FETCH NEXT FROM lstData INTO @HANGHOA_ID,@QUANTITY,@PRICE,@TOTAL_AMT,@CURRENCY,@RATE ,@TOTAL_AMT_FN ,@HH_DESC
94
	WHILE @@FETCH_STATUS = 0
95
	BEGIN
96
	SELECT @HH_NAME= HH_NAME,@HH_TYPE=HH_TYPE_ID FROM dbo.CM_HANGHOA WHERE HH_ID=@HANGHOA_ID
97
	DECLARE @l_PD_ID VARCHAR(15)
98
			EXEC SYS_CodeMasters_Gen 'TR_PO_DETAIL', @l_PD_ID out
99
			IF @l_PD_ID='' OR @l_PD_ID IS NULL GOTO ABORT		
100

    
101
	 INSERT INTO dbo.TR_PO_DETAIL
102
	 (
103
		 PD_ID,
104
		 PO_ID,
105
		 PLAN_ID,
106
		 TRADE_ID,
107
		 GOODS_ID,
108
		 DESCRIPTION,
109
		 UNIT_ID,
110
		 QUANTITY,
111
		 PRICE,
112
		 TOTAL_AMT,
113
		 IS_DELIVERY,
114
		 DELIVERY_DT,
115
		 PAYMENT_STATUS,
116
		 AMOUNT_PAID,
117
		 PAID_DT,
118
		 INVOICENO,
119
		 NOTES,
120
		 RECEIVE_BRANCH,
121
		 RECEIVE_ADDR,
122
		 RECEIVE_PERSON,
123
		 RECEIVE_TEL,
124
		 RECORD_STATUS,
125
		 MAKER_ID,
126
		 CREATE_DT,
127
		 AUTH_STATUS,
128
		 CHECKER_ID,
129
		 APPROVE_DT,
130
		 EXP_DELIVERY_DT,
131
		 GOODS_NAME,
132
		 INVOICE_DT,
133
		 GOODSTYPE_REAL,
134
		 VAT,
135
		 PRICE_VAT,
136
		 CONTRACT_DT,CURRENCY,RATE,TOTAL_AMT_FN
137
	 )
138
	 VALUES
139
	 (   @l_PD_ID,        -- PD_ID - varchar(15)
140
		 @l_PO_ID,        -- PO_ID - varchar(15)
141
		 '',        -- PLAN_ID - varchar(15)
142
		 '',        -- TRADE_ID - varchar(15)
143
		 @HANGHOA_ID,        -- GOODS_ID - varchar(15)
144
		 @HH_DESC,       -- DESCRIPTION - nvarchar(500)
145
		 '',        -- UNIT_ID - varchar(15)
146
		 @QUANTITY,      -- QUANTITY - decimal(18, 0)
147
		 @PRICE,      -- PRICE - decimal(18, 0)
148
		 @QUANTITY*@PRICE,      -- TOTAL_AMT - decimal(18, 0)6
149
		 '',        -- IS_DELIVERY - varchar(1)
150
		 NULL, -- DELIVERY_DT - datetime
151
		 'CTT',        -- PAYMENT_STATUS - varchar(4)
152
		 NULL,      -- AMOUNT_PAID - decimal(18, 0)
153
		 NULL, -- PAID_DT - datetime
154
		 '',        -- INVOICENO - varchar(1000)
155
		 @HH_DESC,       -- NOTES - nvarchar(1000)
156
		 @p_BRANCH_RE,        -- RECEIVE_BRANCH - varchar(15)
157
		 N'',       -- RECEIVE_ADDR - nvarchar(1000)
158
		 N'',       -- RECEIVE_PERSON - nvarchar(500)
159
		 '',        -- RECEIVE_TEL - varchar(100)
160
		 '',        -- RECORD_STATUS - varchar(1)
161
		 @p_MAKER_ID,        -- MAKER_ID - varchar(15)
162
		 GETDATE(), -- CREATE_DT - datetime
163
		 '',        -- AUTH_STATUS - varchar(50)
164
		 '',        -- CHECKER_ID - varchar(15)
165
		 NULL, -- APPROVE_DT - datetime
166
		 NULL, -- EXP_DELIVERY_DT - datetime
167
		 @HH_NAME,       -- GOODS_NAME - nvarchar(500)
168
		 NULL, -- INVOICE_DT - datetime
169
		 @HH_TYPE,        -- GOODSTYPE_REAL - varchar(15)
170
		 0,      -- VAT - decimal(18, 2)
171
		--@TOTAL_AMT -   (ROUND(@PRICE/1.1,0) *@QUANTITY),      -- PRICE_VAT - decimal(18, 0)
172
		 --@PRICE -ROUND(@PRICE/1.1,0),
173
		 0.0,
174
		 '' ,@CURRENCY,@RATE,@TOTAL_AMT_FN       -- CONTRACT_DT - varchar(15)
175
		 )
176
 
177
	   FETCH NEXT FROM lstData INTO @HANGHOA_ID,@QUANTITY,@PRICE,@TOTAL_AMT,@CURRENCY,@RATE ,@TOTAL_AMT_FN,@HH_DESC
178
	END
179
	 CLOSE lstData;
180
    DEALLOCATE lstData;
181

    
182
	SET @TOTAL_AMT=(SELECT SUM(TOTAL_AMT) AS TOTAL_AMT FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_TR_REQ_ID AND ISNULL(SUP_ID,'') =ISNULL(@p_SUP_ID,''))
183

    
184
	DECLARE @l_PAY_ID VARCHAR(15)
185
	EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @l_PAY_ID out
186
	IF @l_PAY_ID='' OR @l_PAY_ID IS NULL GOTO ABORT
187
	INSERT INTO dbo.TR_PO_PAYMENT
188
	(
189
	    PAY_ID,
190
	    PO_ID,
191
	    PAY_PHASE,
192
	    EXP_DT,
193
	    [PERCENT],
194
	    AMOUNT,
195
	    NOTES,
196
	    RECORD_STATUS,
197
	    MAKER_ID,
198
	    CREATE_DT,
199
	    AUTH_STATUS,
200
	    CHECKER_ID,
201
	    APPROVE_DT,CURRENCY,RATE,TOTAL_AMT
202
	)
203
	VALUES
204
	(   @l_PAY_ID,        -- PAY_ID - varchar(15)
205
	    @l_PO_ID,        -- PO_ID - varchar(15)
206
	    '1',        -- PAY_PHASE - varchar(20)
207
	    GETDATE(), -- EXP_DT - datetime
208
	    100,      -- PERCENT - decimal(18, 0)
209
	    @TOTAL_AMT ,      -- AMOUNT - decimal(18, 0)
210
	    N'',       -- NOTES - nvarchar(1000)
211
	    '1',        -- RECORD_STATUS - varchar(1)
212
	    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
213
	    GETDATE(), -- CREATE_DT - datetime
214
	    'U',        -- AUTH_STATUS - varchar(50)
215
	    '',        -- CHECKER_ID - varchar(15)
216
	    NULL,@CURRENCY,@RATE, @TOTAL_AMT*@RATE  -- APPROVE_DT - datetime
217
	    )
218
		EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @l_PAY_ID out
219
	IF @l_PAY_ID='' OR @l_PAY_ID IS NULL GOTO ABORT
220
	--INSERT INTO dbo.TR_PO_PAYMENT
221
	--(
222
	--    PAY_ID,
223
	--    PO_ID,
224
	--    PAY_PHASE,
225
	--    EXP_DT,
226
	--    [PERCENT],
227
	--    AMOUNT,
228
	--    NOTES,
229
	--    RECORD_STATUS,
230
	--    MAKER_ID,
231
	--    CREATE_DT,
232
	--    AUTH_STATUS,
233
	--    CHECKER_ID,
234
	--    APPROVE_DT
235
	--)
236
	--VALUES
237
	--(   @l_PAY_ID,        -- PAY_ID - varchar(15)
238
	--    @l_PO_ID,        -- PO_ID - varchar(15)
239
	--    '2',        -- PAY_PHASE - varchar(20)
240
	--    GETDATE(), -- EXP_DT - datetime
241
	--    50,      -- PERCENT - decimal(18, 0)
242
	--    @TOTAL_AMT / 2 ,      -- AMOUNT - decimal(18, 0)
243
	--    N'',       -- NOTES - nvarchar(1000)
244
	--    '1',        -- RECORD_STATUS - varchar(1)
245
	--    @p_MAKER_ID,        -- MAKER_ID - varchar(15)
246
	--    GETDATE(), -- CREATE_DT - datetime
247
	--    'E',        -- AUTH_STATUS - varchar(50)
248
	--    '',        -- CHECKER_ID - varchar(15)
249
	--    NULL  -- APPROVE_DT - datetime
250
	--    )
251

    
252
	IF(@TOTAL_AMT <=5000000)
253
	BEGIN
254
		UPDATE dbo.TR_PO_MASTER SET AUTH_STATUS='A' WHERE PO_ID=@l_PO_ID
255
	END
256
	--XOA DI NHA CUNG CAP
257
	--DELETE FROM @TABLE_NCC WHERE SUP_ID =@l_SUP_ID
258
	--- KET THUC VONG LAP KIEM TRA DANH SACH NHA CUNG CAP PYCMS
259
FETCH NEXT FROM lstDATANCC INTO @l_SUP_ID
260
	END
261
	CLOSE lstDATANCC
262
	DEALLOCATE lstDATANCC
263
	COMMIT TRANSACTION;
264
	RETURN 1;
265
	ABORT:
266
	BEGIN
267
		ROLLBACK TRANSACTION;
268
		RETURN 1;
269
	END;
270
	ABORT1:
271
	BEGIN
272
		CLOSE lstData;
273
		DEALLOCATE lstData;
274
		ROLLBACK TRANSACTION;
275
		RETURN 1;
276
	END;
277

    
278