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
|