Project

General

Profile

TR_CHECK_ReportPrice_PlAppContractor.txt

Luc Tran Van, 04/04/2023 11:50 AM

 
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'