1
|
|
2
|
/*
|
3
|
SELECT * FROM TR_PO_DETAIL where PO_ID = 'TRPM00000000052'
|
4
|
SELECT * FROM TR_PO_MASTER WHERE PO_ID = 'TRPM00000000052'
|
5
|
SELECT * FROM TR_PO_PAYMENT WHERE PO_ID = 'TRPM00000000052'
|
6
|
SELECT * FROM TR_PO_PAYMENT
|
7
|
[TR_PO_MASTER_Upd] 'TRPM00000000052',1,'','MUA HANG DOT 1','','','','','11/11/2013','11/11/2013',0,'','12/12/2013','12/12/2013','','','','','','','',
|
8
|
'<Root xmlns="">
|
9
|
<AssetDetail>
|
10
|
<PD_ID>TRPD00000000156</PD_ID>
|
11
|
<TRADE_ID>PLT0000001</TRADE_ID>
|
12
|
<GOODS_ID>CMG00001</GOODS_ID>
|
13
|
<DESCRIPTION>Dien giai</DESCRIPTION>
|
14
|
<UNIT_ID>CMU00001</UNIT_ID>
|
15
|
<QUANTITY>2</QUANTITY>
|
16
|
<PRICE>49500000</PRICE>
|
17
|
<TOTAL_AMT>49500000</TOTAL_AMT>
|
18
|
<IS_DELIVERY>N</IS_DELIVERY>
|
19
|
<DELIVERY_DT>30/10/2011</DELIVERY_DT>
|
20
|
<PAYMENT_STATUS>N</PAYMENT_STATUS>
|
21
|
<AMOUNT_PAID>30000000</AMOUNT_PAID>
|
22
|
<PAID_DT>29/11/2013</PAID_DT>
|
23
|
<INVOICENO>00001</INVOICENO>
|
24
|
<NOTES>GHI CHU MANG TINH CHAT MINH HOA</NOTES>
|
25
|
</AssetDetail>
|
26
|
</Root>'
|
27
|
,NULL
|
28
|
|
29
|
*/
|
30
|
/*
|
31
|
declare @p24 xml
|
32
|
set @p24=convert(xml,N'<Root xmlns=""><AssetDetail><PD_ID>TRPD00000000325</PD_ID><PLAN_ID>PLM000000000144</PLAN_ID><TRADE_ID>PLT000000000030</TRADE_ID><GOODS_ID>GOO000000000185</GOODS_ID><UNIT_ID>CMU000000000150</UNIT_ID><QUANTITY>1</QUANTITY><PRICE>2700000</PRICE><TOTAL_AMT>2700000</TOTAL_AMT><IS_DELIVERY>0</IS_DELIVERY><DELIVERY_DT>01/01/2014</DELIVERY_DT><PAYMENT_STATUS>CTT</PAYMENT_STATUS><AMOUNT_PAID>0</AMOUNT_PAID><PAID_DT>01/01/2014</PAID_DT><INVOICENO/><NOTES/></AssetDetail><AssetDetail><PD_ID>TRPD00000000326</PD_ID><PLAN_ID>PLM000000000144</PLAN_ID><TRADE_ID>PLT000000000031</TRADE_ID><GOODS_ID>GOO000000000186</GOODS_ID><UNIT_ID>CMU000000000150</UNIT_ID><QUANTITY>1</QUANTITY><PRICE>1600000</PRICE><TOTAL_AMT>1600000</TOTAL_AMT><IS_DELIVERY>0</IS_DELIVERY><DELIVERY_DT>02/01/2014</DELIVERY_DT><PAYMENT_STATUS>CTT</PAYMENT_STATUS><AMOUNT_PAID>0</AMOUNT_PAID><PAID_DT>02/01/1900</PAID_DT><INVOICENO/><NOTES/></AssetDetail><AssetDetail><PD_ID>TRPD00000000327</PD_ID><PLAN_ID>PLM000000000144</PLAN_ID><TRADE_ID>PLT000000000033</TRADE_ID><GOODS_ID>GOO000000000188</GOODS_ID><UNIT_ID>CMU000000000150</UNIT_ID><QUANTITY>1</QUANTITY><PRICE>1500000</PRICE><TOTAL_AMT>1500000</TOTAL_AMT><IS_DELIVERY>0</IS_DELIVERY><DELIVERY_DT>04/01/2014</DELIVERY_DT><PAYMENT_STATUS>CTT</PAYMENT_STATUS><AMOUNT_PAID>0</AMOUNT_PAID><PAID_DT>03/01/1900</PAID_DT><INVOICENO/><NOTES/></AssetDetail><AssetDetail><PD_ID>TRPD00000000328</PD_ID><PLAN_ID>PLM000000000144</PLAN_ID><TRADE_ID>PLT000000000035</TRADE_ID><GOODS_ID>GOO000000000190</GOODS_ID><UNIT_ID>CMU000000000150</UNIT_ID><QUANTITY>1</QUANTITY><PRICE>2500000</PRICE><TOTAL_AMT>2500000</TOTAL_AMT><IS_DELIVERY>0</IS_DELIVERY><DELIVERY_DT>05/01/2014</DELIVERY_DT><PAYMENT_STATUS>CTT</PAYMENT_STATUS><AMOUNT_PAID>0</AMOUNT_PAID><PAID_DT>05/01/1900</PAID_DT><INVOICENO/><NOTES/></AssetDetail></Root>')
|
33
|
declare @p25 xml
|
34
|
set @p25=convert(xml,N'<Root xmlns=""><PaymentDetail><PAY_ID></PAY_ID><PAY_PHASE>1</PAY_PHASE><EXPECTED_DT>18/10/2013</EXPECTED_DT><PERCENT>100</PERCENT><AMOUNT>8300000</AMOUNT><NOTES/></PaymentDetail></Root>')
|
35
|
declare @p26 int
|
36
|
set @p26=0
|
37
|
exec sp_executesql N'EXEC @RETURN_VALUE = [dbo].[TR_PO_MASTER_Upd] @p_PO_ID = @p0, @P_PO_TYPE = @p1, @p_PO_CODE = @p2, @p_PO_NAME = @p3, @p_CONTRACT_ID = @p4, @p_SUP_ID = @p5, @p_SUP_NAME = @p6, @p_SUP_ADDR = @p7, @p_INPUT_DT = @p8, @p_PAYMENT_DT = @p9, @p_TOTAL_AMT = @p10, @p_REQ_DOC_ID = @p11, @p_DELIVERY_DT = @p12, @p_PAYAPP_DT = @p13, @p_NOTES = @p14, @p_RECORD_STATUS = @p15, @p_MAKER_ID = @p16, @p_CREATE_DT = @p17, @p_AUTH_STATUS = @p18, @p_CHECKER_ID = @p19, @p_APPROVE_DT = @p20, @P_LISTASSET = @p21, @P_LISTPAYMENT = @p22',N'@p0 varchar(8000),@p1 int,@p2 varchar(8000),@p3 nvarchar(4000),@p4 varchar(8000),@p5 varchar(8000),@p6 nvarchar(4000),@p7 nvarchar(4000),@p8 varchar(8000),@p9 varchar(8000),@p10 decimal(18,0),@p11 varchar(8000),@p12 varchar(8000),@p13 varchar(8000),@p14 nvarchar(4000),@p15 varchar(8000),@p16 varchar(8000),@p17 varchar(8000),@p18 varchar(8000),@p19 varchar(8000),@p20 varchar(8000),@p21 xml,@p22 xml,@RETURN_VALUE int output',@p0='TRPM00000000103',@p1=1,@p2='PO5555',@p3=N'Mua sam TB VP',@p4='TRC000000000035',@p5=NULL,@p6=N'',@p7=N'',@p8='15/10/2013',@p9='01/01/1900',@p10=8300000,@p11='FFFFF',@p12='01/10/2013',@p13='10/10/2013',@p14=NULL,@p15='1',@p16='taidt',@p17='15/10/2013',@p18='U',@p19=NULL,@p20='01/01/1900',@p21=@p24,@p22=@p25,@RETURN_VALUE=@p26 output
|
38
|
*/
|
39
|
ALTER PROCEDURE [dbo].[TR_PO_MASTER_Upd]
|
40
|
@p_PO_ID varchar(15) = NULL,
|
41
|
@P_PO_TYPE INT = NULL,
|
42
|
@p_PO_CODE varchar(15) = NULL,
|
43
|
@p_PO_NAME nvarchar(200) = NULL,
|
44
|
@p_CONTRACT_ID varchar(15) = NULL,
|
45
|
@p_SUP_ID varchar(15) = NULL,
|
46
|
@p_SUP_NAME nvarchar(200) = NULL,
|
47
|
@p_SUP_ADDR nvarchar(200) = NULL,
|
48
|
@p_INPUT_DT VARCHAR(20) = NULL,
|
49
|
@p_PAYMENT_DT VARCHAR(20) = NULL,
|
50
|
@p_TOTAL_AMT decimal(18) = NULL,
|
51
|
@p_REQ_DOC_ID varchar(15) = NULL,
|
52
|
@p_DELIVERY_DT VARCHAR(20) = NULL,
|
53
|
@p_PAYAPP_DT VARCHAR(20) = NULL,
|
54
|
@p_NOTES nvarchar(1000) = NULL,
|
55
|
@p_RECORD_STATUS varchar(1) = NULL,
|
56
|
@p_MAKER_ID varchar(15) = NULL,
|
57
|
@p_CREATE_DT VARCHAR(20) = NULL,
|
58
|
@p_AUTH_STATUS varchar(50) = NULL,
|
59
|
@p_CHECKER_ID varchar(15) = NULL,
|
60
|
@p_APPROVE_DT VARCHAR(20) = NULL,
|
61
|
@p_TR_REQ_ID VARCHAR(20) = NULL,
|
62
|
@p_TR_REQ_CODE VARCHAR(20)= NULL,
|
63
|
@P_LISTASSET XML = NULL,
|
64
|
@P_LISTPAYMENT XML = NULL,
|
65
|
@P_LISTROLE XML = NULL,
|
66
|
@p_BRANCH_ID varchar(15) = null,
|
67
|
@p_IS_CLOSED VARCHAR(1) = NULL
|
68
|
AS
|
69
|
DECLARE @REF_CODE VARCHAR(15) = NULL, @PDN_TT VARCHAR(15) = NULL
|
70
|
SET @REF_CODE =
|
71
|
( SELECT TOP 1 B.REQ_PAY_CODE
|
72
|
FROM TR_REQ_ADVANCE_DT A
|
73
|
INNER JOIN TR_REQ_ADVANCE_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
|
74
|
WHERE A.REF_ID =@p_PO_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
|
75
|
)
|
76
|
--- TIM KIEM XEM PO NAY CO DUOC PHEP THANH TOAN HAY KHONG
|
77
|
SET @PDN_TT =
|
78
|
( SELECT TOP 1 B.REQ_PAY_CODE
|
79
|
FROM TR_REQ_ADVANCE_DT A
|
80
|
INNER JOIN TR_REQ_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
|
81
|
WHERE A.REF_ID =@p_CONTRACT_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL)
|
82
|
)
|
83
|
IF(@p_IS_CLOSED ='Y' AND @REF_CODE IS NOT NULL)
|
84
|
BEGIN
|
85
|
--ROLLBACK TRANSACTION
|
86
|
SELECT '-1' Result, @p_PO_ID AS PO_ID, N'PO đang được thực hiện tạm ứng với số phiếu: '+@REF_CODE AS ErrorDesc
|
87
|
RETURN '-1'
|
88
|
END
|
89
|
IF(@p_IS_CLOSED ='Y' AND @PDN_TT IS NOT NULL)
|
90
|
BEGIN
|
91
|
--ROLLBACK TRANSACTION
|
92
|
SELECT '-1' Result, @p_PO_ID AS PO_ID, N'PO đang được thực hiện thanh toán với số phiếu: '+@PDN_TT AS ErrorDesc
|
93
|
RETURN '-1'
|
94
|
END
|
95
|
IF EXISTS(SELECT * FROM TR_PO_MASTER WHERE [PO_CODE] = @p_PO_CODE AND [PO_ID] <> @p_PO_ID)
|
96
|
BEGIN
|
97
|
SELECT ErrorCode Result, '' PO_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'PO-00002'
|
98
|
RETURN '0'
|
99
|
END
|
100
|
--- 21052020 KIEM TRA XEM NEU PYCMS DA TON TAI HAY CHUA
|
101
|
IF((SELECT COUNT(*) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_DOC_ID)=1)
|
102
|
BEGIN
|
103
|
IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE REQ_DOC_ID =@p_REQ_DOC_ID AND AUTH_STATUS IN ('E','U','A') AND PO_ID <>@p_PO_ID))
|
104
|
BEGIN
|
105
|
ROLLBACK TRANSACTION
|
106
|
SELECT '-1' Result, @p_PO_ID AS PO_ID, N'Phiếu yêu cầu mua sắm số :'+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_DOC_ID)+N' đã được link tới PO có số: '+(SELECT TOP 1 PO_CODE FROM TR_PO_MASTER WHERE REQ_DOC_ID =@p_REQ_DOC_ID) AS ErrorDesc
|
107
|
RETURN '-1'
|
108
|
END
|
109
|
END
|
110
|
------
|
111
|
Declare @hdoc INT
|
112
|
Exec sp_xml_preparedocument @hdoc Output,@P_LISTASSET
|
113
|
DECLARE AssetDetail CURSOR FOR
|
114
|
SELECT *
|
115
|
FROM OPENXML(@hDoc,'/Root/AssetDetail',2)
|
116
|
WITH
|
117
|
(
|
118
|
PD_ID VARCHAR(15),
|
119
|
PLAN_ID varchar(15) ,
|
120
|
TRADE_ID varchar(15) ,
|
121
|
REQ_DT_ID VARCHAR(15),
|
122
|
GOODS_ID varchar(15) ,
|
123
|
[DESCRIPTION] nvarchar(500),
|
124
|
UNIT_ID varchar(15) ,
|
125
|
QUANTITY decimal(18) ,
|
126
|
PRICE decimal(18,2) ,
|
127
|
TOTAL_AMT decimal(18,2),
|
128
|
IS_DELIVERY varchar(1) ,
|
129
|
DELIVERY_DT VARCHAR(20),
|
130
|
PAYMENT_STATUS varchar(4),
|
131
|
AMOUNT_PAID decimal(18) ,
|
132
|
PAID_DT VARCHAR(20) ,
|
133
|
INVOICENO varchar(1000),
|
134
|
NOTES nvarchar(1000),
|
135
|
RECEIVE_BRANCH varchar(15),
|
136
|
RECEIVE_ADDR nvarchar(1000),
|
137
|
RECEIVE_PERSON nvarchar(500),
|
138
|
RECEIVE_TEL varchar(100),
|
139
|
EXP_DELIVERY_DT varchar(20),
|
140
|
GOODS_NAME NVARCHAR(500),
|
141
|
INVOICE_DT VARCHAR(20),
|
142
|
--THIEUVQ 100415 THEM LOAI HANG HOA THUC TE
|
143
|
GOODSTYPE_REAL VARCHAR(15),
|
144
|
GOODSTYPE_REAL_NAME VARCHAR(15),
|
145
|
--THIEUVQ 13092016 THEM VAT, CONTRACT_DT
|
146
|
VAT DECIMAL(18,2),
|
147
|
PRICE_VAT DECIMAL(18,0),
|
148
|
CONTRACT_DT VARCHAR(15),
|
149
|
CURRENCY VARCHAR(15),
|
150
|
RATE INT,
|
151
|
TOTAL_AMT_FN DECIMAL(18,2)
|
152
|
)
|
153
|
OPEN AssetDetail
|
154
|
|
155
|
Exec sp_xml_preparedocument @hdoc Output,@P_LISTPAYMENT
|
156
|
DECLARE PaymentDetail CURSOR FOR
|
157
|
SELECT *
|
158
|
FROM OPENXML(@hDoc,'/Root/PaymentDetail',2)
|
159
|
WITH
|
160
|
(
|
161
|
PAY_ID VARCHAR(15),
|
162
|
PAY_PHASE varchar(15),
|
163
|
EXPECTED_DT VARCHAR(20),
|
164
|
[PERCENT] decimal(18),
|
165
|
[AMOUNT] decimal(18),
|
166
|
NOTES nvarchar(1000),
|
167
|
CURRENCY VARCHAR(15),
|
168
|
RATE INT,
|
169
|
TOTAL_AMT DECIMAL(18,2)
|
170
|
)
|
171
|
OPEN PaymentDetail
|
172
|
PRINT 'PASS KHOI TAO'
|
173
|
|
174
|
--Nhom user gui mail (DAO EDIT)
|
175
|
Exec sp_xml_preparedocument @hdoc Output,@P_LISTROLE
|
176
|
DECLARE LISTROLE CURSOR FOR
|
177
|
SELECT *
|
178
|
FROM OPENXML(@hDoc,'/Root/LISTROLE',2)
|
179
|
WITH
|
180
|
(
|
181
|
NOTIFI_ID VARCHAR(15),
|
182
|
TL_NAME varchar(15),
|
183
|
EDITOR_DT VARCHAR(20),
|
184
|
EDITOR_ID VARCHAR(15),
|
185
|
NOTES nvarchar(1000)
|
186
|
)
|
187
|
OPEN LISTROLE
|
188
|
|
189
|
BEGIN TRANSACTION
|
190
|
IF @p_DELIVERY_DT = ''
|
191
|
SET @p_DELIVERY_DT = NULL
|
192
|
IF @p_PAYAPP_DT = ''
|
193
|
SET @p_PAYAPP_DT = NULL
|
194
|
--insert master
|
195
|
UPDATE TR_PO_MASTER SET [PO_TYPE] = @P_PO_TYPE, [PO_CODE] = @p_PO_CODE,[PO_NAME] = @p_PO_NAME,
|
196
|
[CONTRACT_ID] = @p_CONTRACT_ID,[SUP_ID] = @p_SUP_ID,[SUP_NAME] = @p_SUP_NAME,[SUP_ADDR] = @p_SUP_ADDR,
|
197
|
[INPUT_DT] = CONVERT(DATETIME, @p_INPUT_DT, 103),[PAYMENT_DT] = CONVERT(DATETIME, @p_PAYMENT_DT, 103),
|
198
|
[TOTAL_AMT] = @p_TOTAL_AMT,[REQ_DOC_ID] = @p_TR_REQ_ID,[DELIVERY_DT] = CONVERT(DATETIME, @p_DELIVERY_DT, 103),
|
199
|
[PAYAPP_DT] = CONVERT(DATETIME, @p_PAYAPP_DT, 103),[NOTES] = @p_NOTES,[RECORD_STATUS] = '1',
|
200
|
[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = 'E',
|
201
|
[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103), BRANCH_ID = @p_BRANCH_ID
|
202
|
WHERE PO_ID= @p_PO_ID
|
203
|
IF @@Error <> 0 GOTO ABORT
|
204
|
PRINT 'INSERT MASTER SUCCESS'
|
205
|
UPDATE dbo.TR_PO_MASTER_TEMP SET TR_REQ_ID=@p_TR_REQ_ID,TR_REQ_CODE=@p_TR_REQ_CODE WHERE PO_ID=@p_PO_ID
|
206
|
|
207
|
--insert asset detail tương đương như NỘI DUNG trong bảng contract detail
|
208
|
Declare
|
209
|
@PAY_ID VARCHAR(15),
|
210
|
@PD_ID VARCHAR(15),
|
211
|
@PLAN_ID varchar(15),
|
212
|
@TRADE_ID varchar(15),
|
213
|
@REQ_DT_ID VARCHAR(15),
|
214
|
@GOODS_ID varchar(15),
|
215
|
@DESCRIPTION nvarchar(500),
|
216
|
@UNIT_ID varchar(15),
|
217
|
@QUANTITY decimal(18),
|
218
|
@PRICE decimal(18,2),
|
219
|
@TOTAL_AMT decimal(18,2),
|
220
|
@IS_DELIVERY varchar(1),
|
221
|
@DELIVERY_DT VARCHAR(20),
|
222
|
@PAYMENT_STATUS varchar(4),
|
223
|
@AMOUNT_PAID decimal(18),
|
224
|
@PAID_DT VARCHAR(20),
|
225
|
@INVOICENO varchar(20),
|
226
|
@NOTES nvarchar(1000),
|
227
|
@PO_ID varchar(15) = NULL,
|
228
|
@PAY_PHASE VARCHAR(20) = NULL,
|
229
|
@EXPECTED_DT VARCHAR(20) = NULL,
|
230
|
@PERCENT decimal(18) = NULL,
|
231
|
@AMOUNT decimal(18) = NULL,
|
232
|
@RECEIVE_BRANCH varchar(15)=NULL,
|
233
|
@RECEIVE_ADDR nvarchar(1000)=NULL,
|
234
|
@RECEIVE_PERSON nvarchar(500)=NULL,
|
235
|
@RECEIVE_TEL varchar(100)=NULL,
|
236
|
@EXP_DELIVERY_DT varchar(20) = NULL,
|
237
|
@GOODS_NAME NVARCHAR(500) = NULL,
|
238
|
@INVOICE_DT VARCHAR(20),
|
239
|
@GOODSTYPE_REAL VARCHAR(15) = NULL,
|
240
|
@GOODSTYPE_REAL_NAME VARCHAR(15) = NULL,
|
241
|
@VAT DECIMAL(18,2),
|
242
|
@PRICE_VAT DECIMAL(18,0),
|
243
|
@CONTRACT_DT VARCHAR(15),
|
244
|
--DAO MOI THEM
|
245
|
@NOTIFI_ID VARCHAR(15),
|
246
|
@TL_NAME VARCHAR(15),
|
247
|
@EDITOR_DT VARCHAR(20),
|
248
|
@EDITOR_ID VARCHAR(15),
|
249
|
@NOTES_ROLE nvarchar(1000),
|
250
|
|
251
|
@CURRENCY VARCHAR(15),
|
252
|
@RATE INT,
|
253
|
@TOTAL_AMT_FN DECIMAL(18,2)
|
254
|
|
255
|
DECLARE @l_GOODSTYPE_ID VARCHAR(15)
|
256
|
|
257
|
DELETE FROM TR_PO_DETAIL WHERE PO_ID = @P_PO_ID
|
258
|
|
259
|
FETCH NEXT FROM AssetDetail INTO @PD_ID,@PLAN_ID,@TRADE_ID,@REQ_DT_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
|
260
|
@PRICE,@TOTAL_AMT,@IS_DELIVERY,@DELIVERY_DT,@PAYMENT_STATUS,@AMOUNT_PAID,@PAID_DT,
|
261
|
@INVOICENO,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@EXP_DELIVERY_DT,@GOODS_NAME, @INVOICE_DT,
|
262
|
@GOODSTYPE_REAL,@GOODSTYPE_REAL_NAME,@VAT,@PRICE_VAT,@CONTRACT_DT,@CURRENCY,@RATE,@TOTAL_AMT_FN
|
263
|
WHILE @@FETCH_STATUS = 0
|
264
|
BEGIN
|
265
|
--if( NOT EXISTS (SELECT * FROM PL_MASTER A WHERE A.PLAN_ID = @PLAN_ID))
|
266
|
--BEGIN
|
267
|
-- SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'TR-00002'
|
268
|
-- GOTO ABORT
|
269
|
--END
|
270
|
|
271
|
IF(LEN(@PD_ID) = 0)
|
272
|
|
273
|
BEGIN
|
274
|
EXEC SYS_CodeMasters_Gen 'TR_PO_DETAIL', @PD_ID out
|
275
|
IF @PD_ID ='' OR @PD_ID IS NULL GOTO ABORT
|
276
|
END
|
277
|
|
278
|
IF(@DELIVERY_DT = '')
|
279
|
SET @DELIVERY_DT = NULL
|
280
|
IF(@PAID_DT = '')
|
281
|
SET @PAID_DT = NULL
|
282
|
IF(@INVOICE_DT = '')
|
283
|
SET @INVOICE_DT = NULL
|
284
|
IF @EXP_DELIVERY_DT = '' SET @EXP_DELIVERY_DT = NULL
|
285
|
|
286
|
/***THIEUVQ THEM KIEM TRA VA LUU THONG TIN LOAI HANG HOA THUC TE***/
|
287
|
--BEGIN
|
288
|
--CHUA CO LOAI HANG HOA THI THEM MOI
|
289
|
IF @GOODSTYPE_REAL IS NULL OR @GOODSTYPE_REAL = ''
|
290
|
BEGIN
|
291
|
--NEU TON TAI THI LAY RA ID
|
292
|
SET @GOODSTYPE_REAL = (SELECT TOP 1 GD_RETYPE_ID FROM CM_GOODSTYPE_REAL WHERE [TYPE_NAME] = @GOODSTYPE_REAL_NAME)
|
293
|
--NEU CHUA CO THI THEM MOI
|
294
|
IF @GOODSTYPE_REAL IS NULL OR @GOODSTYPE_REAL = ''
|
295
|
BEGIN
|
296
|
EXEC SYS_CodeMasters_Gen 'CM_GOODSTYPE_REAL', @l_GOODSTYPE_ID OUT
|
297
|
IF @l_GOODSTYPE_ID='' OR @l_GOODSTYPE_ID IS NULL GOTO ABORT
|
298
|
|
299
|
INSERT INTO CM_GOODSTYPE_REAL VALUES (@l_GOODSTYPE_ID, @l_GOODSTYPE_ID, @GOODSTYPE_REAL_NAME, '', '1',
|
300
|
@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),'A',@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103))
|
301
|
IF @@ERROR <> 0 GOTO ABORT
|
302
|
|
303
|
SET @GOODSTYPE_REAL = @l_GOODSTYPE_ID
|
304
|
END
|
305
|
END
|
306
|
--END
|
307
|
|
308
|
INSERT INTO TR_PO_DETAIL([PD_ID],[PO_ID],[PLAN_ID],[TRADE_ID],[REQ_DT_ID],[GOODS_ID],[DESCRIPTION],[UNIT_ID],[QUANTITY],[PRICE],[TOTAL_AMT],[IS_DELIVERY],[DELIVERY_DT],
|
309
|
[PAYMENT_STATUS],[AMOUNT_PAID],[PAID_DT],[INVOICENO],[NOTES], RECEIVE_BRANCH, RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL,[RECORD_STATUS],[MAKER_ID],[CREATE_DT],
|
310
|
[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],EXP_DELIVERY_DT,GOODS_NAME,INVOICE_DT,GOODSTYPE_REAL,VAT,PRICE_VAT,CONTRACT_DT,CURRENCY,RATE,TOTAL_AMT_FN)
|
311
|
VALUES(@PD_ID ,@p_PO_ID ,@PLAN_ID ,@TRADE_ID,@REQ_DT_ID ,@GOODS_ID,@DESCRIPTION ,@UNIT_ID ,@QUANTITY ,@PRICE ,@TOTAL_AMT ,
|
312
|
@IS_DELIVERY ,CONVERT(DATETIME, @DELIVERY_DT, 103) ,@PAYMENT_STATUS ,@AMOUNT_PAID ,
|
313
|
CONVERT(DATETIME, @PAID_DT, 103) ,@INVOICENO ,@NOTES , @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,
|
314
|
@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),CONVERT(DATETIME, @EXP_DELIVERY_DT, 103),
|
315
|
@GOODS_NAME, CONVERT(DATETIME, @INVOICE_DT, 103),@GOODSTYPE_REAL,@VAT,@PRICE_VAT,@CONTRACT_DT,ISNULL(@CURRENCY,'VND'),ISNULL(@RATE,1) ,@TOTAL_AMT*ISNULL(@RATE,1) )
|
316
|
IF @@ERROR <> 0 GOTO ABORT
|
317
|
|
318
|
-- next Group_Id
|
319
|
FETCH NEXT FROM AssetDetail INTO @PD_ID,@PLAN_ID,@TRADE_ID,@REQ_DT_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
|
320
|
@PRICE,@TOTAL_AMT,@IS_DELIVERY,@DELIVERY_DT,@PAYMENT_STATUS,@AMOUNT_PAID,@PAID_DT,
|
321
|
@INVOICENO,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL, @EXP_DELIVERY_DT,@GOODS_NAME,@INVOICE_DT,
|
322
|
@GOODSTYPE_REAL,@GOODSTYPE_REAL_NAME,@VAT,@PRICE_VAT,@CONTRACT_DT,@CURRENCY,@RATE,@TOTAL_AMT_FN
|
323
|
END
|
324
|
|
325
|
--insert payment detail
|
326
|
|
327
|
DELETE FROM TR_PO_PAYMENT WHERE PO_ID = @p_PO_ID
|
328
|
|
329
|
FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@NOTES,@CURRENCY,@RATE,@TOTAL_AMT_FN
|
330
|
WHILE @@FETCH_STATUS = 0
|
331
|
BEGIN
|
332
|
EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @PAY_ID out
|
333
|
IF @PAY_ID ='' OR @PAY_ID IS NULL GOTO ABORT
|
334
|
--PRINT @PAY_ID
|
335
|
--IF(LEN(@PAY_ID) = 0)
|
336
|
--BEGIN
|
337
|
-- EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @PAY_ID out
|
338
|
-- IF @PAY_ID ='' OR @PAY_ID IS NULL GOTO ABORT
|
339
|
--END
|
340
|
IF @EXPECTED_DT = ''
|
341
|
SET @EXPECTED_DT = NULL
|
342
|
INSERT INTO TR_PO_PAYMENT([PAY_ID],[PO_ID],[PAY_PHASE],[EXP_DT],[PERCENT],[AMOUNT],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],CURRENCY,RATE,TOTAL_AMT)
|
343
|
VALUES(@PAY_ID ,@p_PO_ID ,@PAY_PHASE ,CONVERT(DATETIME, @EXPECTED_DT, 103) ,@PERCENT ,@AMOUNT ,@NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),ISNULL(@CURRENCY,'VND'),ISNULL(@RATE,1) ,@AMOUNT*ISNULL(@RATE,1))
|
344
|
FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@NOTES,@CURRENCY,@RATE,@TOTAL_AMT_FN
|
345
|
END
|
346
|
|
347
|
CLOSE AssetDetail
|
348
|
DEALLOCATE AssetDetail
|
349
|
CLOSE PaymentDetail
|
350
|
DEALLOCATE PaymentDetail
|
351
|
|
352
|
---INSERT NHOM QUYEN USER THONG BAO (DAO-EDIT)
|
353
|
DELETE FROM TL_ROLE_NOTIFICATION WHERE PO_ID=@p_PO_ID
|
354
|
|
355
|
FETCH NEXT FROM LISTROLE INTO
|
356
|
@NOTIFI_ID,
|
357
|
@TL_NAME,
|
358
|
@EDITOR_DT,
|
359
|
@EDITOR_ID,
|
360
|
@NOTES_ROLE
|
361
|
WHILE @@FETCH_STATUS = 0
|
362
|
BEGIN
|
363
|
IF(LEN(@NOTIFI_ID)=0)
|
364
|
EXEC SYS_CodeMasters_Gen 'TL_ROLE_NOTIFICATION', @NOTIFI_ID out
|
365
|
IF @NOTIFI_ID='' OR @NOTIFI_ID IS NULL GOTO ABORT
|
366
|
|
367
|
INSERT INTO [dbo].[TL_ROLE_NOTIFICATION]
|
368
|
([NOTIFI_ID]
|
369
|
,[NOTIFI_CODE]
|
370
|
,[NOTIFI_NAME]
|
371
|
,[TYPE]
|
372
|
,[PO_ID]
|
373
|
,[TL_NAME]
|
374
|
,[BRANCH_ID]
|
375
|
,[RECORD_STATUS]
|
376
|
,[AUTH_STATUS]
|
377
|
,[EDITOR_ID]
|
378
|
,[EDIT_DT]
|
379
|
,[NOTES])
|
380
|
VALUES
|
381
|
(@NOTIFI_ID
|
382
|
,''
|
383
|
,''
|
384
|
,'PO'
|
385
|
,@p_PO_ID
|
386
|
,@TL_NAME
|
387
|
,@p_BRANCH_ID
|
388
|
,'1'
|
389
|
,'U'
|
390
|
,@EDITOR_ID
|
391
|
,CONVERT(DATETIME, @EDITOR_DT, 103)
|
392
|
,@NOTES_ROLE)
|
393
|
|
394
|
IF @@ERROR <> 0 GOTO ABORT
|
395
|
|
396
|
FETCH NEXT FROM LISTROLE INTO
|
397
|
@NOTIFI_ID,
|
398
|
@TL_NAME,
|
399
|
@EDITOR_DT,
|
400
|
@EDITOR_ID,
|
401
|
@NOTES_ROLE
|
402
|
END
|
403
|
|
404
|
CLOSE LISTROLE
|
405
|
DEALLOCATE LISTROLE
|
406
|
--- BAT DAU CAP NHAT AUTH_STATUS ='U' NEU BAM GUI PHE DUYET
|
407
|
IF(@p_RECORD_STATUS ='U')
|
408
|
BEGIN
|
409
|
UPDATE TR_PO_MASTER SET AUTH_STATUS ='U' WHERE PO_ID =@p_PO_ID
|
410
|
END
|
411
|
COMMIT TRANSACTION
|
412
|
IF(@p_RECORD_STATUS ='U')
|
413
|
BEGIN
|
414
|
-- INSERT VAO LOG
|
415
|
INSERT INTO dbo.PL_PROCESS
|
416
|
(
|
417
|
REQ_ID,
|
418
|
PROCESS_ID,
|
419
|
CHECKER_ID,
|
420
|
APPROVE_DT,
|
421
|
PROCESS_DESC,NOTES
|
422
|
)
|
423
|
VALUES
|
424
|
( @p_PO_ID, -- REQ_ID - varchar(15)
|
425
|
'SEND', -- PROCESS_ID - varchar(10)
|
426
|
@p_MAKER_ID, -- CHECKER_ID - varchar(15)
|
427
|
GETDATE(), -- APPROVE_DT - datetime
|
428
|
N'Nhân viên gửi phê duyệt phiếu thành công' ,N'Gửi phê duyệt')
|
429
|
SELECT '2' as Result, @p_PO_ID PO_ID, N'PO số: '+ @p_PO_CODE +N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp có thẩm quyền phê duyệt' ErrorDesc
|
430
|
RETURN '2'
|
431
|
|
432
|
END
|
433
|
ELSE
|
434
|
BEGIN
|
435
|
SELECT '0' as Result, @p_PO_ID PO_ID, N'PO số: '+ @p_PO_CODE +N' đã được cập nhật dữ liệu thành công. Bạn có thể bấm gửi phê duyệt' ErrorDesc
|
436
|
RETURN '0'
|
437
|
END
|
438
|
ABORT:
|
439
|
BEGIN
|
440
|
CLOSE AssetDetail
|
441
|
DEALLOCATE AssetDetail
|
442
|
CLOSE PaymentDetail
|
443
|
DEALLOCATE PaymentDetail
|
444
|
CLOSE LISTROLE
|
445
|
DEALLOCATE LISTROLE
|
446
|
ROLLBACK TRANSACTION
|
447
|
SELECT '-1' AS RESULT
|
448
|
RETURN '-1'
|
449
|
End
|
450
|
|
451
|
|
452
|
--SELECT * FROM TR_CONTRACT_DT
|
453
|
|
454
|
--SELECT * FROM TR_CONTRACT_PAYMENT
|
455
|
|
456
|
--SELECT * FROM TR_CONTRACT
|
457
|
|
458
|
|