Project

General

Profile

TR_SENDAPP.txt

Luc Tran Van, 12/09/2020 11:07 AM

 
1
??CREATE 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) AND PROCESS_ID='APPROVE')),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 AND PROCESS_ID='APPROVE')  

53
GROUP BY GD_ID))))  

54
IF(1=1)  

55
BEGIN  

56
ROLLBACK TRANSACTION  

57
SELECT 'REQ-00001' Result,'' REQ_CODE, '' REQ_ID,  

58
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  

59
+CHAR(10)+ N'T?ng s? ti?n liy k? s? d?ng ng?n s?ch t? tr?nh: '+FORMAT(@NS_LUY_KE ,'#,#', 'vi-VN')  

60
+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')  

61
+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.'  

62
+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  

63
RETURN '0'  

64
END  

65
IF(EXISTS(SELECT REQDT_ID FROM dbo.TR_REQUEST_DOC_DT WHERE REQ_DOC_ID=@p_REQ_ID AND REQ_DT <= @p_REQ_DATE))  

66
BEGIN  

67
ROLLBACK TRANSACTION  

68
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  

69
RETURN '0'  

70
END  

71
DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20),@BRANCH_CREATE VARCHAR(20) ,@DEP_CREATE VARCHAR(20),@BRANCH_TYPE VARCHAR(10),  

72
@BRANCH_CREATE_TYPE VARCHAR(10)  

73
 

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

75
 

76
SET @BRANCH_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_ID)  

77
SET @BRANCH_CREATE_TYPE=(SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)  

78
-- KIEM TRA XEM CO CAP PHE DUYET HAY KHONG  

79
IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>''))  

80
BEGIN  

81
UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='SIGN' WHERE REQ_ID=@p_REQ_ID  

82
INSERT INTO dbo.PL_REQUEST_PROCESS  

83
(  

84
REQ_ID,  

85
PROCESS_ID,  

86
STATUS,  

87
ROLE_USER,  

88
BRANCH_ID,  

89
DEP_ID,  

90
CHECKER_ID,  

91
APPROVE_DT,  

92
PARENT_PROCESS_ID,  

93
IS_LEAF,  

94
COST_ID,  

95
DVDM_ID,  

96
NOTES,  

97
IS_HAS_CHILD  

98
)  

99
VALUES  

100
( @p_REQ_ID, -- REQ_ID - varchar(15)  

101
'SIGN', -- PROCESS_ID - varchar(10)  

102
'C', -- STATUS - varchar(5)  

103
(SELECT RoleName FROM TL_USER WHERE TLNANME =(SELECT SIGN_USER FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_ID)), -- ROLE_USER - varchar(50)  

104
@BRANCH_CREATE,  

105
@DEP_CREATE, -- BRANCH_ID - varchar(15)  

106
'', -- CHECKER_ID - varchar(15)  

107
NULL, -- APPROVE_DT - datetime  

108
'', -- PARENT_PROCESS_ID - varchar(10)  

109
'N', -- IS_LEAF - varchar(1)  

110
'', -- COST_ID - varchar(15)  

111
'', -- DVDM_ID - varchar(15)  

112
N'Ch? c?p ph? duy?t trung gian x?c nh?n phi?u', -- NOTES - nvarchar(500)  

113
NULL -- IS_HAS_CHILD - bit  

114
)  

115
END  

116
ELSE  

117
BEGIN  

118
IF(@BRANCH_CREATE_TYPE='PGD')  

119
SET @BRANCH_CREATE=(SELECT FATHER_ID FROM dbo.CM_BRANCH WHERE BRANCH_ID=@BRANCH_CREATE)  

120
 

121
UPDATE dbo.TR_REQUEST_DOC SET AUTH_STATUS='U',PROCESS_ID='APPNEW' WHERE REQ_ID=@p_REQ_ID  

122
INSERT INTO dbo.PL_REQUEST_PROCESS  

123
(  

124
REQ_ID,  

125
PROCESS_ID,  

126
STATUS,  

127
ROLE_USER,  

128
BRANCH_ID,  

129
DEP_ID,  

130
CHECKER_ID,  

131
APPROVE_DT,  

132
PARENT_PROCESS_ID,  

133
IS_LEAF,  

134
COST_ID,  

135
DVDM_ID,  

136
NOTES,  

137
IS_HAS_CHILD  

138
)  

139
VALUES  

140
( @p_REQ_ID, -- REQ_ID - varchar(15)  

141
'APPNEW', -- PROCESS_ID - varchar(10)  

142
'C', -- STATUS - varchar(5)  

143
'GDDV', -- ROLE_USER - varchar(50)  

144
@BRANCH_CREATE,  

145
@DEP_CREATE, -- BRANCH_ID - varchar(15)  

146
'', -- CHECKER_ID - varchar(15)  

147
NULL, -- APPROVE_DT - datetime  

148
'', -- PARENT_PROCESS_ID - varchar(10)  

149
'N', -- IS_LEAF - varchar(1)  

150
'', -- COST_ID - varchar(15)  

151
'', -- DVDM_ID - varchar(15)  

152
N'Ch? tr??ng ?n v? ph? duy?t', -- NOTES - nvarchar(500)  

153
NULL -- IS_HAS_CHILD - bit  

154
)  

155
END  

156
INSERT INTO dbo.PL_PROCESS  

157
(  

158
REQ_ID,  

159
PROCESS_ID,  

160
CHECKER_ID,  

161
APPROVE_DT,  

162
PROCESS_DESC,  

163
NOTES  

164
)  

165
VALUES  

166
( @p_REQ_ID, -- REQ_ID - varchar(15)  

167
--@p_PROCESS_ID, -- PROCESS_ID - varchar(10)  

168
'SEND',  

169
@p_TLNAME, -- CHECKER_ID - varchar(15)  

170
GETDATE(), -- APPROVE_DT - datetime  

171
N'Nh?n vi?n t?o phi?u v? g?i ph? duy?t th?nh c?ng' , -- PROCESS_DESC - nvarchar(1000)  

172
N'Nh?n vi?n g?i ph? duy?t ' -- NOTES - nvarchar(1000)  

173
)  

174
 

175
IF @@Error <> 0 GOTO ABORT  

176
COMMIT TRANSACTION  

177
SELECT '0' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc  

178
RETURN '0'  

179
ABORT:  

180
BEGIN  

181
ROLLBACK TRANSACTION  

182
SELECT '-1' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc  

183
RETURN '-1'  

184
End  

185