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