Project

General

Profile

2107 FILE 8.txt

Luc Tran Van, 07/21/2020 11:11 AM

 
1
ALTER PROCEDURE [dbo].[TR_REQUEST_DOC_SendApp]
2
@p_REQ_ID VARCHAR(20),
3
@p_PROCESS_ID VARCHAR(20),
4
@p_TLNAME VARCHAR(20),
5
@p_MAKER_ID VARCHAR(20)
6
AS
7
BEGIN TRANSACTION
8
	IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (REQ_DT IS NULL OR REQ_DT='')) )
9
	BEGIN
10
			ROLLBACK TRANSACTION
11
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Ngày yêu cầu bắt buộc nhập' ErrorDesc
12
			RETURN '-1'
13
	END
14
	IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (REQ_REASON IS NULL OR REQ_REASON='')) )
15
	BEGIN
16
			ROLLBACK TRANSACTION
17
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Mục đích yêu cầu bắt buộc nhập' ErrorDesc
18
			RETURN '-1'
19
	END
20
	IF(EXISTS(SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE  REQ_ID=@p_REQ_ID AND  (PL_REQ_ID IS NULL OR PL_REQ_ID='')) )
21
	BEGIN
22
			ROLLBACK TRANSACTION
23
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Tờ trình chủ trương bắt buộc nhập' ErrorDesc
24
			RETURN '-1'
25
	END
26
	IF(NOT EXISTS(SELECT REQ_DOC_ID FROM dbo.TR_REQUEST_DOC_DT WHERE  REQ_DOC_ID=@p_REQ_ID ) )
27
	BEGIN
28
			ROLLBACK TRANSACTION
29
			SELECT '-1' AS Result ,'' REQ_CODE, ''  REQ_ID, N'Chi tiết hàng hóa bắt buộc nhập' ErrorDesc
30
			RETURN '-1'
31
	END
32

    
33
	--- XOA DATA CU
34
	DELETE PL_REQUEST_PROCESS WHERE REQ_ID =@p_REQ_ID
35
	-----
36
	DECLARE @NS_TO_TRINH DECIMAL(18,0), @NS_PYCMS_USE DECIMAL(18,0), @NS_LUY_KE DECIMAL(18,0),@PL_REQ_CODE VARCHAR(50)
37
	SET @PL_REQ_CODE =(SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))
38
	SET @NS_TO_TRINH =(SELECT TOTAL_AMT FROM PL_REQUEST_DOC WHERE REQ_ID =(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))
39
	SET @NS_PYCMS_USE =(SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_ID)
40
	SET @NS_LUY_KE =ISNULL((SELECT SUM(TOTAL_AMT) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID IN (SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE PL_REQ_ID=(SELECT PL_REQ_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID))),0)
41
	DECLARE @p_PL_REQ_ID VARCHAR(15),@p_REQ_DATE DATETIME
42
	SELECT @p_PL_REQ_ID=PL_REQ_ID,@p_REQ_DATE=REQ_DT  FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
43
	IF( EXISTS(
44
			SELECT Temp.GD_ID FROM (SELECT GD_ID,SUM(TOTAL_AMT) AS TOTAL_AMT_ETM FROM dbo.TR_REQUEST_DOC_DT   WHERE REQ_DOC_ID=@p_REQ_ID
45
			GROUP BY GD_ID) Temp WHERE    TOTAL_AMT_ETM > 
46
			((SELECT SUM(TEMP2.TOTAL_AMT) AS TOTAL_AMT_APP FROM
47
			(SELECT GOODS_ID,TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT
48
			WHERE REQ_ID=@p_PL_REQ_ID
49
			UNION 
50
			SELECT GOODS_ID,TOTAL_AMT FROM dbo.PL_REQUEST_DOC_DT
51
			WHERE REQ_ID=(SELECT REQ_PARENT_ID FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_PL_REQ_ID) ) TEMP2 WHERE TEMP2.GOODS_ID=Temp.GD_ID
52
			GROUP BY TEMP2.GOODS_ID) - (SELECT ISNULL(SUM(TOTAL_AMT),0) AS TOTAL_AMT_EXE FROM dbo.TR_REQUEST_DOC_DT WHERE GD_ID=Temp.GD_ID AND REQ_DOC_ID IN (SELECT REQ_ID FROM dbo.TR_REQUEST_DOC WHERE PL_REQ_ID=@p_PL_REQ_ID)
53
			GROUP BY GD_ID))))
54
		BEGIN
55
			ROLLBACK TRANSACTION
56
			SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID,
57
			N'Thông tin liên quan tới phiếu yêu cầu mua sắm có sử dụng tờ trình số: '+ @PL_REQ_CODE
58
			+CHAR(10)+ N'Tổng số tiền lũy kế sử dụng ngân sách tờ trình: '+FORMAT(@NS_LUY_KE ,'#,#', 'vi-VN')
59
			+CHAR(10)+N'Tổng số tiền ngân sách còn lại của tờ trình: '+ FORMAT(@NS_TO_TRINH -@NS_LUY_KE ,'#,#', 'vi-VN')
60
			+CHAR(10)+ N'Số tiền sử dụng ngân sách cho phiếu yêu cầu mua sắm hiện tại vượt '+FORMAT(@NS_LUY_KE+@NS_PYCMS_USE -@NS_TO_TRINH ,'#,#', 'vi-VN')+N' so với tổng số tiền ngân sách còn lại của tờ trình.'
61
			+CHAR(10) +N'Vui lòng tra cứu tổng số tiền các phiếu yêu cầu mua sắm để biết thêm thông tin chi tiêt!' ErrorDesc 
62
			RETURN '0'
63
		END
64
	IF(EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND REQ_DT <= @p_REQ_DATE))
65
		BEGIN
66
			ROLLBACK TRANSACTION
67
			SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID, N'Lưới thông tin hàng hóa theo tờ trình: Ngày cần không được phép để trống và phải lớn hơn ngày yêu cầu mua sắm' ErrorDesc 
68
			RETURN '0'
69
		END
70
	DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20) ,@DEP_CREATE VARCHAR(20),@BRANCH_TYPE VARCHAR(10),
71
	@BRANCH_CREATE_TYPE VARCHAR(10)
72

    
73
	SELECT @BRANCH_CREATE=BRANCH_CREATE,@DEP_CREATE=DEP_CREATE FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_REQ_ID
74

    
75
	SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)
76
	SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)
77
	-- KIEM TRA XEM CO CAP PHE DUYET HAY KHONG
78
	IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>''))
79
	BEGIN
80
		UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='SIGN' WHERE REQ_ID=@p_REQ_ID
81
		INSERT INTO dbo.PL_REQUEST_PROCESS
82
		(
83
		    REQ_ID,
84
		    PROCESS_ID,
85
		    STATUS,
86
		    ROLE_USER,
87
		    BRANCH_ID,
88
			DEP_ID,
89
		    CHECKER_ID,
90
		    APPROVE_DT,
91
		    PARENT_PROCESS_ID,
92
		    IS_LEAF,
93
		    COST_ID,
94
		    DVDM_ID,
95
		    NOTES,
96
		    IS_HAS_CHILD
97
		)
98
		VALUES
99
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
100
		    'SIGN',        -- PROCESS_ID - varchar(10)
101
		    'C',        -- STATUS - varchar(5)
102
		    (SELECT RoleName FROM TL_USER WHERE TLNANME =(SELECT SIGN_USER FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)),  -- ROLE_USER - varchar(50)
103
		    @BRANCH_CREATE,  
104
			@DEP_CREATE,      -- BRANCH_ID - varchar(15)
105
		    '',        -- CHECKER_ID - varchar(15)
106
		    NULL,      -- APPROVE_DT - datetime
107
		    '',        -- PARENT_PROCESS_ID - varchar(10)
108
		    'N',        -- IS_LEAF - varchar(1)
109
		    '',        -- COST_ID - varchar(15)
110
		    '',        -- DVDM_ID - varchar(15)
111
		    N'Chờ cấp phê duyệt trung gian xác nhận phiếu',       -- NOTES - nvarchar(500)
112
		    NULL       -- IS_HAS_CHILD - bit
113
		 )
114
	END
115
	ELSE
116
	BEGIN
117
	UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='APPNEW' WHERE REQ_ID=@p_REQ_ID
118
	INSERT INTO dbo.PL_REQUEST_PROCESS
119
		(
120
		    REQ_ID,
121
		    PROCESS_ID,
122
		    STATUS,
123
		    ROLE_USER,
124
		    BRANCH_ID,
125
			DEP_ID,
126
		    CHECKER_ID,
127
		    APPROVE_DT,
128
		    PARENT_PROCESS_ID,
129
		    IS_LEAF,
130
		    COST_ID,
131
		    DVDM_ID,
132
		    NOTES,
133
		    IS_HAS_CHILD
134
		)
135
		VALUES
136
		(   @p_REQ_ID,        -- REQ_ID - varchar(15)
137
		    'APPNEW',        -- PROCESS_ID - varchar(10)
138
		    'C',        -- STATUS - varchar(5)
139
		    'GDDV',        -- ROLE_USER - varchar(50)
140
		    @BRANCH_CREATE,  
141
			@DEP_CREATE,      -- BRANCH_ID - varchar(15)
142
		    '',        -- CHECKER_ID - varchar(15)
143
		    NULL,      -- APPROVE_DT - datetime
144
		    '',        -- PARENT_PROCESS_ID - varchar(10)
145
		    'N',        -- IS_LEAF - varchar(1)
146
		    '',        -- COST_ID - varchar(15)
147
		    '',        -- DVDM_ID - varchar(15)
148
		    N'Chờ trưởng đơn vị phê duyệt',       -- NOTES - nvarchar(500)
149
		    NULL       -- IS_HAS_CHILD - bit
150
		 )
151
	END	
152
	INSERT INTO dbo.PL_PROCESS
153
					(
154
					    REQ_ID,
155
					    PROCESS_ID,
156
					    CHECKER_ID,
157
					    APPROVE_DT,
158
					    PROCESS_DESC,
159
					    NOTES
160
					)
161
					VALUES
162
					(   @p_REQ_ID,        -- REQ_ID - varchar(15)
163
					    --@p_PROCESS_ID,        -- PROCESS_ID - varchar(10)
164
						'SEND',
165
					    @p_TLNAME,        -- CHECKER_ID - varchar(15)
166
					    GETDATE(), -- APPROVE_DT - datetime
167
					    N'Nhân viên tạo phiếu và gửi phê duyệt thành công' ,       -- PROCESS_DESC - nvarchar(1000)
168
					    N'Nhân viên gửi phê duyệt '        -- NOTES - nvarchar(1000)
169
					 )
170
	
171
		IF @@Error <> 0 GOTO ABORT
172
COMMIT TRANSACTION
173
SELECT '0' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc
174
RETURN '0'
175
ABORT:
176
BEGIN
177
		ROLLBACK TRANSACTION
178
		SELECT '-1' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc
179
		RETURN '-1'
180
End
181

    
182