Project

General

Profile

script_upd_21082023.txt

Luc Tran Van, 08/21/2023 11:17 AM

 
1
ALTER PROCEDURE [dbo].[TR_REQ_PAY_GET_PAY_JOB_PAID]
2
@p_REQ_PAY_ID	VARCHAR(20) = NULL
3
AS
4
BEGIN TRANSACTION
5
	DECLARE @IS_PAID VARCHAR(1) = 'N';
6
	DECLARE @MESSAGE NVARCHAR(MAX) = '';
7
	DECLARE @INDEX INT = 0;
8
	DECLARE @REQ_PAY_JOB_ID VARCHAR(20) = NULL,
9
			@REQ_PAY_ID VARCHAR(20) = NULL,
10
			@REQ_ID VARCHAR(20) = NULL,
11
			@REQ_CODE NVARCHAR(500),
12
			@PAY_TYPE VARCHAR(50),
13
			@PAY_TYPE_NAME NVARCHAR(150)
14

    
15
			
16
	DECLARE XmlData CURSOR FOR
17
	SELECT A.REQ_PAY_JOB_ID, A.REQ_PAY_ID, A.REQ_ID, A.REQ_CODE, A.PAY_TYPE, P.CONTENT AS PAY_TYPE_NAME
18
	FROM TR_REQ_PAY_JOB A
19
	LEFT JOIN CM_ALLCODE P ON A.PAY_TYPE = P.CDVAL AND P.CDNAME = 'TR_REQ' AND P.CDTYPE = 'REQ_JOB'
20
	WHERE REQ_PAY_ID = @p_REQ_PAY_ID
21
	ORDER BY CONVERT(DECIMAL(18,0),RIGHT(A.REQ_PAY_JOB_ID, 11))
22

    
23
	OPEN XmlData;
24

    
25
	FETCH NEXT FROM XmlData INTO @REQ_PAY_JOB_ID, @REQ_PAY_ID, @REQ_ID, @REQ_CODE, @PAY_TYPE, @PAY_TYPE_NAME
26
	WHILE @@FETCH_STATUS = 0
27
	BEGIN
28
		SET @INDEX = @INDEX + 1;
29
		print '1'
30
		IF(	(	SELECT COUNT(*) 
31
				FROM TR_REQ_PAY_JOB	A
32
				INNER JOIN TR_REQ_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID
33
				WHERE A.REQ_ID = @REQ_ID AND A.PAY_TYPE = @PAY_TYPE AND ISNULL(B.AUTH_STATUS, '') NOT IN ('', 'E', 'R')) > 1
34
			)
35
		BEGIN
36
		print '@REQ_ID: ' + @REQ_ID
37
		print '@REQ_CODE: ' + @REQ_CODE
38
			SET @IS_PAID = 'Y';
39
			IF(ISNULL(@MESSAGE, '') = '')
40
			BEGIN
41
				SET @MESSAGE = N'Lưới thông tin thanh toán chi phí đi công tác có các chi phí đã được thanh toán: ' 
42
				+ N'</br>* Dòng ' + CONVERT(VARCHAR(5),@INDEX) + N': PYCCT số ' + @REQ_CODE + N', loại chi phí ' + @PAY_TYPE_NAME;
43
			END
44
			ELSE
45
			BEGIN
46
				SET @IS_PAID = 'Y';
47
				SET @MESSAGE = @MESSAGE 
48
				+ N'</br>* Dòng ' + CONVERT(VARCHAR(5),@INDEX) + N': PYCCT số ' + @REQ_CODE + N', loại chi phí ' + @PAY_TYPE_NAME;
49
			END
50
		END
51

    
52
	FETCH NEXT FROM XmlData INTO @REQ_PAY_JOB_ID, @REQ_PAY_ID, @REQ_ID, @REQ_CODE, @PAY_TYPE, @PAY_TYPE_NAME
53
	END;
54
	CLOSE XmlData;
55
	DEALLOCATE XmlData;
56

    
57
COMMIT TRANSACTION
58

    
59
	IF(@IS_PAID = 'Y')
60
	BEGIN
61
		SELECT '0' as Result, @REQ_PAY_ID ID, @MESSAGE ErrorDesc
62
		RETURN '0'
63
	END
64
	ELSE
65
	BEGIN
66
		SELECT '-1' as Result, '' ID, '' ErrorDesc
67
		RETURN '-1'
68
	END
69

    
70

    
71

    
72
ABORT:
73
BEGIN
74
		ROLLBACK TRANSACTION
75
		CLOSE XmlData;
76
		DEALLOCATE XmlData;
77
		SELECT '-1' as Result, '' ID, '' ErrorDesc
78
		RETURN '-1'
79
END
80

    
81
GO
82
--21082023_secretkey