Project

General

Profile

upd_pay_emthod.txt

Luc Tran Van, 12/01/2022 03:47 PM

 
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