Project

General

Profile

valudate_DCNB.txt

Luc Tran Van, 05/04/2023 02:26 PM

 
1

    
2
ALTER PROCEDURE dbo.aSS_PRIVATE_TRANSFER_MASTER_SendAppr
3
@p_TRANSFER_MULTI_ID	VARCHAR(15)  = NULL,
4
@p_TYPE_APP NVARCHAR(15) = NUll,
5
@p_USER_LOGIN   VARCHAR(15) = NULL
6
AS
7

    
8
DECLARE @ASSET_ID_LST VARCHAR(MAX), @CURRENT_TRANS_ERROR NVARCHAR(MAX)
9

    
10
-- KIỂM TRA TÀI SẢN ĐANG TREO TRONG GIAO DỊCH KHÁC
11
SET @ASSET_ID_LST = (SELECT B.ASSET_ID + '|' FROM (SELECT A.ASSET_ID
12
    FROM ASS_PRIVATE_TRANSFER_DT A 
13
    where A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) B
14
FOR XML PATH (''))
15
SELECT @CURRENT_TRANS_ERROR = dbo.ASSET_CHECK_CURRENT_TRANS(@ASSET_ID_LST)
16
IF(@CURRENT_TRANS_ERROR IS NOT NULL AND @CURRENT_TRANS_ERROR <> '')
17
BEGIN
18
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, @CURRENT_TRANS_ERROR ErrorDesc
19
RETURN '-1'
20
END
21

    
22
BEGIN TRANSACTION 
23
DECLARE @BRANCH_ID VARCHAR(15) = (SELECT TU.TLSUBBRID FROM TL_USER TU WHERE TU.TLNANME = @p_USER_LOGIN)
24
DECLARE @MESSAGE_VALIDATION NVARCHAR(MAX) 
25
BEGIN
26
	IF(EXISTS(SELECT 1 FROM dbo.ASS_PRIVATE_TRANSFER_MASTER aptm WHERE aptm.TRANS_MULTI_MASTER_ID=@p_TRANSFER_MULTI_ID AND AUTH_STATUS='R'))
27
  	BEGIN
28
  		ROLLBACK TRANSACTION
29
  		SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID +
30
  		N' đang bị từ chối. Vui lòng xử lý phiếu' ErrorDesc
31
  		RETURN '-1'
32
  	END
33
  
34
  IF(EXISTS(SELECT SUM(A.COUNT)
35
        FROM(
36
        SELECT COUNT(*) AS COUNT
37
        FROM ASS_PRIVATE_TRANSFER_DT A
38
        WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID AND A.EMP_ID_OLD IS NOT NULL AND A.EMP_ID_OLD <> ''
39
        GROUP BY A.EMP_ID_OLD) A
40
        HAVING COUNT(*) > 1))
41
  	BEGIN
42
  		ROLLBACK TRANSACTION
43
  		SELECT '-1' Result, N'Chỉ được điều chuyển tài sản từ 1 người sử dụng.'ErrorDesc
44
  		RETURN '-1'
45
  	END
46

    
47
IF(EXISTS(SELECT SUM(A.COUNT)
48
        FROM(
49
        SELECT COUNT(*) AS COUNT
50
        FROM ASS_PRIVATE_TRANSFER_DT A
51
        WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID AND A.EMP_ID IS NOT NULL AND A.EMP_ID <> ''
52
        GROUP BY A.EMP_ID) A
53
        HAVING COUNT(*) > 1))
54
  	BEGIN
55
  		ROLLBACK TRANSACTION
56
  		SELECT '-1' Result, N'Chỉ được điều chuyển tài sản cho 1 người sử dụng.'ErrorDesc
57
  		RETURN '-1'
58
  	END
59

    
60
IF(EXISTS(SELECT 1 
61
        FROM ASS_PRIVATE_TRANSFER_DT A
62
        LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
63
        LEFT JOIN CM_EMPLOYEE C ON A.EMP_ID = C.EMP_ID
64
        WHERE A.EMP_ID IS NOT NULL AND A.EMP_ID <> '' 
65
              AND (ISNULL(B.BRANCH_ID,'') <> ISNULL(C.BRANCH_ID,'')
66
                  OR ISNULL(B.DEPT_ID,'') <> ISNULL(C.DEP_ID,''))
67
              AND A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID))
68
BEGIN
69
    
70
    SET @MESSAGE_VALIDATION = (SELECT REPLACE((SELECT 
71
                                        CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN ''
72
                                        ELSE '|' END 
73
                                        + N'Tài sản ' + D.ASSET_CODE + N' và người dùng ' + D.EMP_NAME + N' không cùng Đơn vị/Phòng ban với nhau'
74
                                  FROM (     SELECT B.ASSET_CODE,C.EMP_NAME
75
                                              FROM ASS_PRIVATE_TRANSFER_DT A
76
                                              LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
77
                                              LEFT JOIN CM_EMPLOYEE C ON A.EMP_ID = C.EMP_ID
78
                                              WHERE A.EMP_ID IS NOT NULL AND A.EMP_ID <> '' 
79
                                                    AND (ISNULL(B.BRANCH_ID,'') <> ISNULL(C.BRANCH_ID,'')
80
                                                        OR ISNULL(B.DEPT_ID,'') <> ISNULL(C.DEP_ID,''))
81
                                                    AND A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) D
82
                                  FOR XML PATH (''))
83
                                , '|', '<br />'))
84

    
85
      ROLLBACK TRANSACTION
86
  		SELECT '-1' Result, @MESSAGE_VALIDATION ErrorDesc
87
  		RETURN '-1'
88

    
89
END
90

    
91

    
92
	UPDATE ASS_PRIVATE_TRANSFER_MASTER SET AUTH_STATUS = 'U'
93
	WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
94
	IF @@ERROR <> 0 GOTO ABORT
95

    
96
--	-- HUYHT 06/05/2022: THAY ĐỔI TRẠNG THÁI UPDATE CŨ THÀNH UPDATE_HC
97
--	UPDATE dbo.PL_PROCESS SET PROCESS_ID = 'UPDATE_HC' WHERE REQ_ID = @p_TRANSFER_MULTI_ID AND PROCESS_ID = 'UPDATE'
98
--    UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C', RECEPTION_DT=GETDATE() WHERE REQ_ID=@p_TRANSFER_MULTI_ID AND PROCESS_ID='QLTS_D'
99
	INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
100
						VALUES(@p_TRANSFER_MULTI_ID, 'SEND', @p_USER_LOGIN, GETDATE(), 
101
					    N'Nhân viên gửi phê duyệt', N'Nhân viên gửi phê duyệt thành công')
102
	IF @@ERROR <> 0 GOTO ABORT
103
END
104

    
105
   --PHUCVH 14/11/22 UPDATE TÀI SẢN ĐANG TREO GIAO DỊCH
106
    UPDATE ASS_MASTER SET CURRENT_TRANS = @p_TRANSFER_MULTI_ID, CURRENT_TRANS_TYPE = 'ASS_PRIVATE_TF'
107
    WHERE ASSET_ID IN (SELECT B.ASSET_ID FROM ASS_PRIVATE_TRANSFER_DT B WHERE B.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID)
108

    
109
COMMIT TRANSACTION   
110
SELECT '0' as Result,  
111
			N'Hồ sơ số: '+@p_TRANSFER_MULTI_ID+
112
--			N' đã được gửi phê duyệt thành công. Vui lòng đợi trưởng đơn vị xác nhận.' ErrorDesc
113
			N' đã được gửi phê duyệt thành công. Vui lòng đợi bộ phận phê duyệt xác nhận.' ErrorDesc
114
RETURN '0'
115

    
116
ABORT:
117
BEGIN
118
	ROLLBACK TRANSACTION
119
	SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, '' ErrorDesc
120
	RETURN '-1'
121
END
122

    
123

    
124

    
125

    
126

    
127

    
128

    
129

    
130