1
|
ALTER PROCEDURE [dbo].[TR_CHECK_ReportPrice_PlAppContractor]
|
2
|
@p_LIST_TRAN_TYPE_ID NVARCHAR(MAX) = NULL,
|
3
|
@p_TYPE VARCHAR(50) = NULL,
|
4
|
@p_REQ_ID VARCHAR(15) = NULL
|
5
|
AS
|
6
|
|
7
|
BEGIN TRANSACTION
|
8
|
|
9
|
DECLARE @p_CAN_OPEN VARCHAR(1) = 'N',
|
10
|
@p_ERROR_MSG NVARCHAR(MAX),
|
11
|
@p_ROW_NUM INT = 0,
|
12
|
@p_TRAN_TYPE_NAME NVARCHAR(500)
|
13
|
|
14
|
DECLARE @lst_TRAN_TYPE_ID TABLE(
|
15
|
ID INT IDENTITY(1,1) NOT NULL,
|
16
|
TRAN_TYPE_ID VARCHAR(15) NULL
|
17
|
)
|
18
|
INSERT INTO @lst_TRAN_TYPE_ID
|
19
|
SELECT VALUE FROM wsiSplit(@p_LIST_TRAN_TYPE_ID, ',')
|
20
|
|
21
|
-------------------Khai báo CURSOR-------------
|
22
|
|
23
|
DECLARE TranTypeCursor CURSOR FOR
|
24
|
SELECT TRAN_TYPE_ID
|
25
|
FROM @lst_TRAN_TYPE_ID
|
26
|
|
27
|
DECLARE @p_TRAN_TYPE_ID VARCHAR(15)
|
28
|
----------Nếu là BBXG--------------
|
29
|
IF(@p_TYPE = 'REPORT_PRICE')
|
30
|
BEGIN
|
31
|
OPEN TranTypeCursor
|
32
|
FETCH NEXT FROM TranTypeCursor INTO
|
33
|
@p_TRAN_TYPE_ID
|
34
|
|
35
|
WHILE @@FETCH_STATUS = 0
|
36
|
BEGIN
|
37
|
SET @p_ROW_NUM = @p_ROW_NUM + 1
|
38
|
SET @p_TRAN_TYPE_NAME = (SELECT TRN_TYPE_NAME FROM CM_TRAN_TYPE WHERE TRN_TYPE = @p_TRAN_TYPE_ID)
|
39
|
----------Nếu có HTMS = CDT, CDTDQ ; ko cho sử dụng BBXG-----------
|
40
|
IF(@p_TRAN_TYPE_ID = 'TRN0000000003' OR @p_TRAN_TYPE_ID = 'TRN0000000010')
|
41
|
BEGIN
|
42
|
SET @p_CAN_OPEN = 'N'
|
43
|
SET @p_ERROR_MSG = N'Chi tiết mua sắm thực tế, dòng ' + CONVERT(VARCHAR, @p_ROW_NUM) +
|
44
|
N': Hình thức mua sắm: ' + @p_TRAN_TYPE_NAME + N' không được áp dụng cho biên bản xét giá'
|
45
|
BREAK
|
46
|
END
|
47
|
----------Nếu có ít nhất 1 dòng có HTMS là (Mua sắm trực tiếp, Chào hàng cạnh tranh, Đấu thầu hạn chế, Đấu thầu rộng rãi, Mua sắm theo quy định)
|
48
|
----------cho sử dụng BBXG-----------------
|
49
|
ELSE IF (@p_TRAN_TYPE_ID IN ('TRN0000000001', 'TRN0000000002', 'TRN0000000004', 'TRN0000000005', 'TRN0000000009'))
|
50
|
BEGIN
|
51
|
SET @p_CAN_OPEN = 'Y'
|
52
|
END
|
53
|
ELSE
|
54
|
BEGIN
|
55
|
SET @p_ERROR_MSG = N'Chi tiết mua sắm thực tế không tồn tại các hình thức được áp dụng cho biên bản xét giá'
|
56
|
END
|
57
|
FETCH NEXT FROM TranTypeCursor INTO
|
58
|
@p_TRAN_TYPE_ID
|
59
|
END
|
60
|
CLOSE TranTypeCursor
|
61
|
DEALLOCATE TranTypeCursor
|
62
|
END
|
63
|
-----------Tờ trình CĐT/ tờ trình chi phí---------------
|
64
|
ELSE IF(@p_TYPE = 'APP_CONTRACTOR')
|
65
|
BEGIN
|
66
|
OPEN TranTypeCursor
|
67
|
FETCH NEXT FROM TranTypeCursor INTO
|
68
|
@p_TRAN_TYPE_ID
|
69
|
|
70
|
WHILE @@FETCH_STATUS = 0
|
71
|
BEGIN
|
72
|
SET @p_ROW_NUM = @p_ROW_NUM + 1
|
73
|
SET @p_TRAN_TYPE_NAME = (SELECT TRN_TYPE_NAME FROM CM_TRAN_TYPE WHERE TRN_TYPE = @p_TRAN_TYPE_ID)
|
74
|
----------Nếu có 1 dòng có HTMS là (Mua sắm trực tiếp, Chào hàng cạnh tranh, Đấu thầu hạn chế, Đấu thầu rộng rãi, Mua sắm theo quy định)
|
75
|
----------ko cho sử dụng tờ trình CDT-----------------
|
76
|
IF(@p_TRAN_TYPE_ID IN ('TRN0000000001', 'TRN0000000002', 'TRN0000000004', 'TRN0000000005', 'TRN0000000009'))
|
77
|
BEGIN
|
78
|
SET @p_CAN_OPEN = 'N'
|
79
|
SET @p_ERROR_MSG = N'Chi tiết mua sắm thực tế, dòng ' + CONVERT(VARCHAR, @p_ROW_NUM) +
|
80
|
N': Hình thức mua sắm: ' + @p_TRAN_TYPE_NAME + N' không được áp dụng cho tờ trình chỉ định thầu / tờ trình xin chi phí'
|
81
|
BREAK
|
82
|
END
|
83
|
----------Nếu có ít nhất 1 dòng có HTMS là CDT / mua sắm trực tiếp(HĐNT)/ CDTDQ, cho sử dụng tờ trình CDT-----------------
|
84
|
ELSE IF(@p_TRAN_TYPE_ID IN ('TRN0000000003', 'TRN0000000008', 'TRN0000000010'))
|
85
|
BEGIN
|
86
|
IF(NOT EXISTS(SELECT * FROM PL_APPOINT_CONTRACTOR WHERE TR_REQUEST_DOC_ID = @p_REQ_ID))
|
87
|
BEGIN
|
88
|
SET @p_CAN_OPEN = 'Y'
|
89
|
END
|
90
|
ELSE
|
91
|
BEGIN
|
92
|
-----------Nếu tờ trình là CĐT--------------
|
93
|
IF((SELECT TYPE_PL FROM PL_APPOINT_CONTRACTOR WHERE TR_REQUEST_DOC_ID = @p_REQ_ID) = 'CDT')
|
94
|
BEGIN
|
95
|
IF(@p_TRAN_TYPE_ID = 'TRN0000000003' OR @p_TRAN_TYPE_ID = 'TRN0000000010')
|
96
|
BEGIN
|
97
|
SET @p_CAN_OPEN = 'Y'
|
98
|
END
|
99
|
ELSE
|
100
|
BEGIN
|
101
|
SET @p_CAN_OPEN = 'N'
|
102
|
SET @p_ERROR_MSG = N'Chi tiết mua sắm thực tế, dòng ' + CONVERT(VARCHAR, @p_ROW_NUM) +
|
103
|
N': Hình thức mua sắm: ' + @p_TRAN_TYPE_NAME + N' không được áp dụng cho tờ trình chỉ định thầu'
|
104
|
END
|
105
|
END
|
106
|
ELSE IF((SELECT TYPE_PL FROM PL_APPOINT_CONTRACTOR WHERE TR_REQUEST_DOC_ID = @p_REQ_ID) = 'TTCP')
|
107
|
BEGIN
|
108
|
IF(@p_TRAN_TYPE_ID = 'TRN0000000008')
|
109
|
BEGIN
|
110
|
SET @p_CAN_OPEN = 'Y'
|
111
|
END
|
112
|
ELSE
|
113
|
BEGIN
|
114
|
SET @p_CAN_OPEN = 'N'
|
115
|
SET @p_ERROR_MSG = N'Chi tiết mua sắm thực tế, dòng ' + CONVERT(VARCHAR, @p_ROW_NUM) +
|
116
|
N': Hình thức mua sắm: ' + @p_TRAN_TYPE_NAME + N' không được áp dụng cho tờ trình xin chi phí'
|
117
|
END
|
118
|
END
|
119
|
END
|
120
|
END
|
121
|
ELSE
|
122
|
BEGIN
|
123
|
SET @p_ERROR_MSG = N'Chi tiết mua sắm thực tế không tồn tại các hình thức được áp dụng cho tờ trình chỉ định thầu / tờ trình xin chi phí'
|
124
|
END
|
125
|
FETCH NEXT FROM TranTypeCursor INTO
|
126
|
@p_TRAN_TYPE_ID
|
127
|
END
|
128
|
CLOSE TranTypeCursor
|
129
|
DEALLOCATE TranTypeCursor
|
130
|
END
|
131
|
COMMIT TRANSACTION
|
132
|
SELECT @p_CAN_OPEN as Result, @p_ERROR_MSG ErrorDesc
|
133
|
RETURN '0'
|