1
|
ALTER PROCEDURE [dbo].[TR_REQ_PAY_METHOD_Upd]
|
2
|
@p_REQ_PAY_ID varchar(15)= NULL,
|
3
|
@p_REQ_PAY_CODE varchar(50) = NULL,
|
4
|
@p_REQ_DT VARCHAR(20)= NULL,
|
5
|
@p_BRANCH_ID varchar(15) = NULL,
|
6
|
@p_DEP_ID varchar(15) = NULL,
|
7
|
@p_REQ_REASON nvarchar(MAX) = NULL,
|
8
|
@p_REQ_TYPE varchar(15) = NULL,
|
9
|
@P_REQ_ENTRIES nvarchar(MAX) = NULL,
|
10
|
@p_REQ_DESCRIPTION nvarchar(MAX) = NULL,
|
11
|
@p_REF_ID varchar(15) = NULL,
|
12
|
@p_RECEIVER_PO nvarchar(250) = NULL,
|
13
|
@p_REQ_PAY_TYPE varchar(15) = NULL,
|
14
|
@p_REQ_TYPE_CURRENCY nvarchar(50) = NULL,
|
15
|
@p_REQ_AMT decimal(18, 0) = NULL,
|
16
|
@p_REQ_TEMP_AMT decimal(18, 0) = NULL,
|
17
|
@p_MAKER_ID varchar(15) = NULL,
|
18
|
@p_CREATE_DT varchar(25) = NULL,
|
19
|
@p_EDITOR_ID varchar(15) = NULL,
|
20
|
@p_AUTH_STATUS varchar(1) = NULL,
|
21
|
@p_CHECKER_ID varchar(15) = NULL,
|
22
|
@p_APPROVE_DT varchar(25) = NULL,
|
23
|
@p_CREATE_DT_KT varchar(25) = NULL,
|
24
|
@p_MAKER_ID_KT varchar(15) = NULL,
|
25
|
@p_AUTH_STATUS_KT varchar(1) = NULL,
|
26
|
@p_CHECKER_ID_KT varchar(1) = NULL,
|
27
|
@p_APPROVE_DT_KT varchar(25)= null,
|
28
|
@p_CONFIRM_NOTE nvarchar(500) = NULL,
|
29
|
@p_BRANCH_CREATE varchar(15) = NULL,
|
30
|
@p_NOTES varchar(15) = NULL,
|
31
|
@p_RECORD_STATUS varchar(1) = NULL,
|
32
|
@p_TRANSFER_MAKER nvarchar(50) = NULL,
|
33
|
@p_TRANSFER_DT varchar(25) = NULL,
|
34
|
@p_TRASFER_USER_RECIVE varchar(15) = NULL,
|
35
|
@p_PROCESS varchar(15) = NULL,
|
36
|
@p_PAY_PHASE VARCHAR(15) = NULL,
|
37
|
@p_IS_SEND_APPR VARCHAR(15) = NULL,
|
38
|
@p_XMP_TEMP_METHOD XML = NULL
|
39
|
AS
|
40
|
|
41
|
--Validation is here
|
42
|
IF ((SELECT AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @p_REQ_PAY_ID) ='R')
|
43
|
BEGIN
|
44
|
SELECT '-1' Result,'' REQ_PAY_ID,N'Phiếu đề nghị thanh toán đang được trả về đơn vị. Vui lòng chờ đơn vị cập nhật thông tin và duyệt lại!' ErrorDesc
|
45
|
RETURN '-1'
|
46
|
END
|
47
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS_KT = 'P'))
|
48
|
BEGIN
|
49
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được gửi phê duyệt thành công trước đó! Vui lòng đợi KSV xử lý phiếu' ErrorDesc
|
50
|
RETURN '-1'
|
51
|
END
|
52
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS_KT = 'A'))
|
53
|
BEGIN
|
54
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đã được phê duyệt thành công trước đó!' ErrorDesc
|
55
|
RETURN '-1'
|
56
|
END
|
57
|
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND AUTH_STATUS_KT = 'S'))
|
58
|
BEGIN
|
59
|
SELECT '-1' as Result, '' REQ_PAY_ID, N'Phiếu đề nghị thanh toán đang được được đề xuất từ chối! Vui lòng đợi KSV xử lý phiếu' ErrorDesc
|
60
|
RETURN '-1'
|
61
|
END
|
62
|
--End Validation
|
63
|
|
64
|
BEGIN TRANSACTION
|
65
|
DECLARE @TYPE_TRANSFER VARCHAR(15), @ACC_NO VARCHAR(25), @ISSUED_DT VARCHAR(20), @ISSUED_BY NVARCHAR(250), @ACC_NAME NVARCHAR(250),@CURRENCY VARCHAR(15)= NULL,@RATE DECIMAL(18,0)
|
66
|
DECLARE @INDEX INT =0
|
67
|
|
68
|
DECLARE @hDocMeThod INT;
|
69
|
EXEC sp_xml_preparedocument @hDocMeThod OUTPUT, @p_XMP_TEMP_METHOD;
|
70
|
|
71
|
------------------------------------------------------------------------- BEGIN LUOI PHUONG THUC THANH TOAN -----------------------------------------------------------------------
|
72
|
IF(@p_XMP_TEMP_METHOD IS NOT NULL)
|
73
|
BEGIN
|
74
|
--INSERT FROM MethodCursor
|
75
|
DELETE FROM TR_REQ_PAY_METHOD WHERE REQ_PAY_ID = @p_REQ_PAY_ID
|
76
|
--MethodCursor
|
77
|
DECLARE @RECEIVE_ID varchar(15),@RECEIVE_NAME NVARCHAR(100),@REQ_PAY_REASON nvarchar(MAX),@TOTAL_AMT_METHOD DECIMAL(18,2),
|
78
|
@REQ_PAY_TYPE varchar(1),@REQ_PAY_DESC NVARCHAR(MAX),@REQ_PAY_ENTRIES nvarchar(MAX),@CHECK_IN VARCHAR(15),
|
79
|
@BANKCODE_NAPAS VARCHAR(20), @BANKCODE VARCHAR(20), @BANKNAME VARCHAR(250), @SUB_ISSUED_BY NVARCHAR(250), @RECEIVER_DEBIT VARCHAR(20)
|
80
|
|
81
|
DECLARE XmlDataMethod CURSOR FOR SELECT * FROM OPENXML(@hdocMethod, 'Root/XmlDataMethod',2)
|
82
|
|
83
|
WITH(RECEIVE_ID VARCHAR(15),RECEIVE_NAME NVARCHAR(100),REQ_PAY_REASON NVARCHAR(MAX),TOTAL_AMT DECIMAL(18,0),
|
84
|
REQ_PAY_TYPE VARCHAR(1),REQ_PAY_DESC NVARCHAR(MAX),REQ_PAY_ENTRIES NVARCHAR(MAX),ACC_NO VARCHAR(250),
|
85
|
ACC_NAME NVARCHAR(250),ISSUED_BY NVARCHAR(250), ISSUED_DT VARCHAR(20),CURRENCY VARCHAR(15), RATE DECIMAL(18,2),CHECK_IN VARCHAR(15),TYPE_TRANSFER VARCHAR(15),
|
86
|
BANKCODE_NAPAS VARCHAR(20), BANKCODE VARCHAR(20), BANKNAME NVARCHAR(250), SUB_ISSUED_BY NVARCHAR(250), RECEIVER_DEBIT NVARCHAR(20))
|
87
|
|
88
|
OPEN XmlDataMethod
|
89
|
SET @INDEX = 0
|
90
|
|
91
|
FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,
|
92
|
@REQ_PAY_DESC,@REQ_PAY_ENTRIES,@ACC_NO, @ACC_NAME,@ISSUED_BY, @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT
|
93
|
WHILE @@fetch_status=0
|
94
|
BEGIN
|
95
|
|
96
|
SET @INDEX = @INDEX +1
|
97
|
----------------------- begin validate ------------------------
|
98
|
IF(@ACC_NO IS NULL OR @ACC_NO = '')
|
99
|
BEGIN
|
100
|
ROLLBACK TRANSACTION
|
101
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': số tài khoản '+ N' không được để trống' ErrorDesc
|
102
|
RETURN '-1'
|
103
|
END
|
104
|
|
105
|
IF(@REQ_PAY_TYPE = '1' AND (@ISSUED_DT = '' OR @ISSUED_DT IS NULL))
|
106
|
BEGIN
|
107
|
ROLLBACK TRANSACTION
|
108
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': Ngày cấp CMND '+ N' không được để trống' ErrorDesc
|
109
|
RETURN '-1'
|
110
|
END
|
111
|
|
112
|
IF(@ISSUED_BY = '' OR @ISSUED_BY IS NULL)
|
113
|
BEGIN
|
114
|
ROLLBACK TRANSACTION
|
115
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': Tên ngân hàng/nơi cấp CMND '+ N' không được để trống' ErrorDesc
|
116
|
RETURN '-1'
|
117
|
END
|
118
|
|
119
|
IF(@ACC_NAME = '' OR @ACC_NAME IS NULL)
|
120
|
BEGIN
|
121
|
ROLLBACK TRANSACTION
|
122
|
SELECT '-1' as Result, '' REQ_PAY_ID,'' AS REQ_PAY_CODE, N'Thông tin phương thức thanh toán, dòng ' + CONVERT(VARCHAR(5),@INDEX)+N': Tên tài khoản/người nhận '+ N' không được để trống' ErrorDesc
|
123
|
RETURN '-1'
|
124
|
END
|
125
|
----------------------- end validate --------------------------
|
126
|
|
127
|
IF(@REQ_PAY_TYPE<>'1')
|
128
|
BEGIN
|
129
|
SET @ISSUED_DT = NULL
|
130
|
END
|
131
|
IF(@TYPE_TRANSFER IS NULL OR @TYPE_TRANSFER ='')
|
132
|
BEGIN
|
133
|
SET @TYPE_TRANSFER = 'A'
|
134
|
END
|
135
|
|
136
|
DECLARE @p_REQ_PAY_METHOD_ID VARCHAR(15);
|
137
|
EXEC SYS_CodeMasters_Gen 'TR_REQ_PAY_METHOD', @p_REQ_PAY_METHOD_ID OUT;
|
138
|
IF @p_REQ_PAY_METHOD_ID='' OR @p_REQ_PAY_METHOD_ID IS NULL GOTO ABORT;
|
139
|
|
140
|
INSERT INTO TR_REQ_PAY_METHOD(METHOD_ID, REQ_PAY_ID, EMP_ID, REQ_PAY_REASON, TOTAL_AMT, REQ_PAY_TYPE, REQ_PAY_DESC, REQ_PAY_ENTRIES, TEMP, MAKER_ID, CREATE_DT, ACC_NO, ACC_NAME, ISSUED_BY, ISSUED_DT, CURRENCY, RATE, CHECK_IN, TYPE_TRANSFER, BANKCODE_NAPAS, BANKCODE, BANKNAME, SUB_ISSUED_BY, RECEIVER_DEBIT)
|
141
|
VALUES (@p_REQ_PAY_METHOD_ID,@p_REQ_PAY_ID,@RECEIVE_ID,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,'',@p_MAKER_ID,GETDATE(),@ACC_NO, @ACC_NAME,@ISSUED_BY,CONVERT(DATE,@ISSUED_DT,103),@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT)
|
142
|
|
143
|
IF @@error<>0 GOTO ABORT;
|
144
|
FETCH NEXT FROM XmlDataMethod INTO @RECEIVE_ID,@RECEIVE_NAME,@REQ_PAY_REASON,@TOTAL_AMT_METHOD,@REQ_PAY_TYPE,@REQ_PAY_DESC,@REQ_PAY_ENTRIES,
|
145
|
@ACC_NO, @ACC_NAME,@ISSUED_BY, @ISSUED_DT,@CURRENCY,@RATE,@CHECK_IN,@TYPE_TRANSFER, @BANKCODE_NAPAS, @BANKCODE, @BANKNAME, @SUB_ISSUED_BY, @RECEIVER_DEBIT
|
146
|
END
|
147
|
CLOSE XmlDataMethod;
|
148
|
DEALLOCATE XmlDataMethod;
|
149
|
END--END LUOI PHUONG THUC THANH TOAN
|
150
|
|
151
|
COMMIT TRANSACTION
|
152
|
SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID, N'Chỉnh sửa phương thức thanh toán thành công' ErrorDesc
|
153
|
RETURN '0'
|
154
|
ABORT:
|
155
|
BEGIN
|
156
|
ROLLBACK TRANSACTION
|
157
|
SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc
|
158
|
RETURN '-1'
|
159
|
End
|