1
|
|
2
|
ALTER PROC dbo.ASS_TRANSFER_MULTI_MASTER_BBBG
|
3
|
@TRANS_MULTI_MASTER_ID varchar(15) = null
|
4
|
AS
|
5
|
-- Thông tin chứ kí
|
6
|
DECLARE @SIGN_CHECKER_ID_KT VARCHAR(20),@SIGN_MAKER_ID VARCHAR(20),@SIGN_APPROVE_DT_KT DATETIME,@SIGN_CREATE_DT DATETIME,@SIGN_APPROVE_ID VARCHAR(20),@SIGN_APPROVE_DT DATETIME,
|
7
|
@SIGN_RECEVI_MAKER_ID VARCHAR(50),@SIGN_RECEVI_DT DATETIME,@SIGN_MAKER_ID_KT VARCHAR(50),@SIGN_MAKER_ID_CREATE VARCHAR(50),@AUTH_STATUS VARCHAR(50)
|
8
|
|
9
|
-- Thông tin bên giao
|
10
|
DECLARE @DEP_TRANSFER VARCHAR(15), @BRANCH_TRANSFER NVARCHAR(500),@NAME_TRANSFER NVARCHAR(500), @POSITION NVARCHAR(500),@KHOI_TRANSFER NVARCHAR(500),
|
11
|
@TRANSFER_MAKER_ID VARCHAR(20), @CREATE_DT NVARCHAR(500)
|
12
|
|
13
|
-- Thông tin bên nhận
|
14
|
|
15
|
DECLARE @DEP_RECIVE VARCHAR(15), @BRANCH_RECIVE NVARCHAR(500),@NAME_RECIVE NVARCHAR(500), @POSITION_RECIVE NVARCHAR(500),@KHOI_RECIVE NVARCHAR(500),
|
16
|
@RECIVE_MAKER_ID VARCHAR(20)
|
17
|
|
18
|
-- Thông tin Ngày điều chuyển
|
19
|
DECLARE @TRANSFER_DT DATETIME, @CREATE_DT_TRANSFER DATETIME
|
20
|
SELECT @TRANSFER_DT=TRANSFER_DT,@CREATE_DT_TRANSFER =CREATE_DT FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID
|
21
|
|
22
|
-- BÊN GIAO
|
23
|
|
24
|
|
25
|
-- Thông tin chữ kí
|
26
|
SET @SIGN_MAKER_ID = ( SELECT MAKER_ID_BG FROM ASS_TRANSFER_CONFIRM_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
27
|
SET @SIGN_CREATE_DT = ( SELECT CONFIRM_DT_BG FROM ASS_TRANSFER_CONFIRM_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
28
|
SET @SIGN_APPROVE_ID = (SELECT CHECKER_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
29
|
SET @SIGN_APPROVE_DT = (SELECT APPROVE_DT FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
30
|
|
31
|
-- Thông tin bên giao
|
32
|
SET @TRANSFER_MAKER_ID = (SELECT MAKER_ID_BG FROM ASS_TRANSFER_CONFIRM_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
33
|
SET @BRANCH_TRANSFER = ISNULL((SELECT TOP 1 A.BRANCH_NAME FROM dbo.CM_BRANCH A JOIN dbo.ASS_TRANSFER_MULTI_DT B ON A.BRANCH_ID = B.BRANCH_ID_OLD WHERE B.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID ORDER BY B.TRANSFER_MULTI_ID ASC), '')
|
34
|
+ ISNULL((SELECT TOP 1 ' - ' + A.DEP_NAME FROM dbo.CM_DEPARTMENT A JOIN dbo.ASS_TRANSFER_MULTI_DT B ON A.DEP_ID = B.DEPT_ID_OLD WHERE B.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID ORDER BY B.TRANSFER_MULTI_ID ASC), '')
|
35
|
SET @NAME_TRANSFER =(SELECT TLFullName FROM TL_USER WHERE TLNANME =@TRANSFER_MAKER_ID)
|
36
|
SET @POSITION = (SELECT TOP 1 POS_NAME FROM CM_EMPLOYEE_LOG WHERE USER_DOMAIN =@TRANSFER_MAKER_ID)
|
37
|
SET @DEP_TRANSFER =(SELECT TOP 1 SECUR_CODE FROM TL_USER WHERE TLNANME = @TRANSFER_MAKER_ID)
|
38
|
SET @KHOI_TRANSFER= (SELECT TOP 1 DVDM_NAME FROM CM_DVDM WHERE DVDM_ID IN (SELECT DVDM_ID FROM PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM PL_COSTCENTER_DT
|
39
|
WHERE DEP_ID = @DEP_TRANSFER )) AND IS_KHOI ='1')
|
40
|
SET @CREATE_DT = N'Ngày ' + CAST((SELECT DAY(APPROVE_DT_KT) FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID) AS VARCHAR(500))
|
41
|
+ N' tháng ' + CAST((SELECT MONTH(APPROVE_DT_KT) FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID) AS VARCHAR(500))
|
42
|
+ N' năm ' + CAST((SELECT YEAR(APPROVE_DT_KT) FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID) AS VARCHAR(500))
|
43
|
+ N' tại ' + (SELECT B.BRANCH_NAME FROM dbo.ASS_TRANSFER_MULTI_MASTER A JOIN dbo.CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
44
|
|
45
|
-- BÊN NHẬN
|
46
|
-- Thông tin chữ kí
|
47
|
SET @SIGN_RECEVI_MAKER_ID = ( SELECT MAKER_ID_BN FROM ASS_TRANSFER_CONFIRM_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
48
|
SET @SIGN_RECEVI_DT = ( SELECT CONFIRM_DT_BN FROM ASS_TRANSFER_CONFIRM_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
49
|
-- Thông tin bên nhận
|
50
|
SET @RECIVE_MAKER_ID = (SELECT TOP 1 MAKER_ID_BN FROM ASS_TRANSFER_CONFIRM_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
51
|
SET @BRANCH_RECIVE = ISNULL((SELECT TOP 1 A.BRANCH_NAME FROM dbo.CM_BRANCH A JOIN dbo.ASS_TRANSFER_MULTI_DT B ON A.BRANCH_ID = B.BRANCH_ID WHERE B.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID ORDER BY B.TRANSFER_MULTI_ID ASC), '')
|
52
|
+ ISNULL((SELECT TOP 1 ' - ' + A.DEP_NAME FROM dbo.CM_DEPARTMENT A JOIN dbo.ASS_TRANSFER_MULTI_DT B ON A.DEP_ID = B.DEPT_ID WHERE B.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID ORDER BY B.TRANSFER_MULTI_ID ASC), '')
|
53
|
SET @DEP_RECIVE = (SELECT TOP 1 DEPT_ID FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
54
|
SET @NAME_RECIVE= (SELECT TLFullName FROM TL_USER WHERE TLNANME = @RECIVE_MAKER_ID)
|
55
|
SET @POSITION_RECIVE = (SELECT POS_NAME FROM CM_EMPLOYEE_LOG WHERE USER_DOMAIN = @RECIVE_MAKER_ID)
|
56
|
SET @KHOI_RECIVE= (SELECT TOP 1 DVDM_NAME FROM CM_DVDM WHERE DVDM_ID IN (SELECT DVDM_ID FROM PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM PL_COSTCENTER_DT
|
57
|
WHERE DEP_ID =@DEP_RECIVE)) AND IS_KHOI ='1')
|
58
|
|
59
|
|
60
|
-- KẾ TOÁN
|
61
|
|
62
|
SET @SIGN_MAKER_ID_CREATE = ( SELECT A.MAKER_ID FROM ASS_TRANSFER_MULTI_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
63
|
SET @SIGN_CHECKER_ID_KT = ( SELECT CHECKER_ID_KT FROM ASS_TRANSFER_MULTI_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
64
|
SET @SIGN_APPROVE_DT_KT = ( SELECT APPROVE_DT_KT FROM ASS_TRANSFER_MULTI_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
65
|
SET @SIGN_MAKER_ID_KT = ( SELECT A.MAKER_ID_KT FROM ASS_TRANSFER_MULTI_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
66
|
|
67
|
-- DANH SÁCH TÀI SẢN
|
68
|
SELECT ROW_NUMBER()OVER(ORDER BY A.ASSET_ID) AS STT,
|
69
|
A.ASSET_ID, A.[TYPE_ID],C.[TYPE_CODE], C.[TYPE_NAME], A.GROUP_ID,B.GROUP_CODE, B.GROUP_NAME, A.ASSET_NAME, A.ASSET_DESC,
|
70
|
A.SUP_ID, FORMAT(tmp.BUY_PRICE, '#,#') AS BUY_PRICE, A.AMORT_AMT, A.ASS_TYPE, TR.BRANCH_ID,BR_R.BRANCH_CODE,BR_R.BRANCH_NAME,H.DEP_ID, H.DEP_CODE,
|
71
|
H.DEP_NAME, A.EMP_ID,EM_R.EMP_CODE,EM_R.EMP_NAME,
|
72
|
A.BUY_DATE, A.USE_DATE, A.SPECIAL_ASS, CAST(A.AMORT_MONTH AS INT) AS AMORT_MONTH, A.AMORT_RATE, A.AMORT_START_DATE, A.AMORT_END_DATE,
|
73
|
A.FIRST_AMORT_AMT,
|
74
|
--CAST(A.AMORTIZED_MONTH AS INT) AS AMORTIZED_MONTH,
|
75
|
CAST((A.AMORT_MONTH - A.AMORTIZED_MONTH) AS INT) AS REMAIN_MONTH,
|
76
|
-- CASE WHEN DATEDIFF(month,A.AMORT_START_DATE,@TRANSFER_DT) > A.AMORT_MONTH THEN CAST(A.AMORT_MONTH AS INT) ELSE CAST(DATEDIFF(month,A.AMORT_START_DATE,@TRANSFER_DT)AS INT) END AS AMORTIZED_MONTH,
|
77
|
--CAST(DATEDIFF(month,A.AMORT_START_DATE,tmp2.AMORT_DT)AS INT) AS AMORTIZED_MONTH,
|
78
|
ISNULL(CAST(tmp2.AMORTIZED_MONTH AS INT),0) AS AMORTIZED_MONTH,
|
79
|
A.AMORTIZED_AMT,
|
80
|
FORMAT(tmp.BUY_PRICE - ISNULL(tmp1.AMORTIZED_AMT,0) , '#,#') AS GT_CL, --So tien khau hao con lai
|
81
|
A.PO_ID, A.WAREHOUSE_ID, A.LOCATION, A.REF_ASSET_ID,
|
82
|
A.REF_AMORTIZED_AMT,
|
83
|
A.WARRANTY_MONTHS,
|
84
|
A.AMORT_STATUS,
|
85
|
D.STATUS_NAME AMORT_STATUS_NAME,
|
86
|
A.ASS_STATUS,
|
87
|
E.STATUS_NAME ASS_STATUS_NAME, --Tinh trang tai san
|
88
|
A.ASS_STATUS_DESC,
|
89
|
A.RECORD_STATUS,
|
90
|
A.AUTH_STATUS,
|
91
|
ZZ.AUTH_STATUS_NAME,
|
92
|
A.MAKER_ID,
|
93
|
convert(varchar, A.CREATE_DT, 103) as CREATE_DT_ASS,
|
94
|
convert(varchar, TR.CREATE_DT, 103) as CREATE_DT,
|
95
|
A.CHECKER_ID,
|
96
|
A.APPROVE_DT,
|
97
|
TR.[DESCRIPTION], TR.BRANCH_CREATE,TR.LOCATION,TR.[DESCRIPTION],TR.TRANSFER_MULTI_ID,
|
98
|
A.AMORT_AMT-A.AMORTIZED_AMT ASREMAIN_AMT, convert(varchar, B.CREATE_DT, 103) as CREATE_DT_ASS,
|
99
|
1 AS SOLUONG,
|
100
|
TR.DESCRIPTION AS NOTES,
|
101
|
CASE WHEN A.ASSET_SERIAL_NO IS NOT NULL AND A.ASSET_SERIAL_NO <> ''
|
102
|
THEN (A.ASSET_SERIAL_NO+ CHAR(10) +'(' + A.ASSET_CODE + ')')
|
103
|
ELSE (A.ASSET_CODE) END AS ASSET_CODE
|
104
|
FROM [dbo].[ASS_TRANSFER_MULTI_DT] TR
|
105
|
LEFT JOIN ASS_MASTER A ON A.ASSET_ID = TR.ASSET_ID
|
106
|
LEFT JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
|
107
|
LEFT JOIN ASS_TYPE C ON A.[TYPE_ID] = C.[TYPE_ID]
|
108
|
LEFT JOIN ASS_AMORT_STATUS D ON A.AMORT_STATUS = D.STATUS_CODE
|
109
|
LEFT JOIN ASS_STATUS E ON A.ASS_STATUS = E.STATUS_ID
|
110
|
LEFT JOIN CM_AUTH_STATUS ZZ ON ZZ.AUTH_STATUS = TR.AUTH_STATUS
|
111
|
LEFT JOIN CM_BRANCH BR_R ON BR_R.BRANCH_ID=TR.BRANCH_ID
|
112
|
LEFT JOIN CM_EMPLOYEE EM_R ON EM_R.EMP_ID=TR.EMP_ID
|
113
|
LEFT JOIN CM_DEPARTMENT H ON H.DEP_ID = TR.DEPT_ID
|
114
|
-- PHONGNT 4/9/22 LẤY GIÁ TRỊ NGUYÊN GIÁ, KHẤU HAO TẠI THỜI ĐIỂM NGÀY ĐIỀU CHUYỂN
|
115
|
LEFT JOIN (SELECT ASSET_ID,(SUM(CASE WHEN CRDR='C' AND TRN_DT < @TRANSFER_DT AND ASSET_AMT IS NOT NULL THEN ASSET_AMT END) - ISNULL(SUM(CASE WHEN CRDR='D' AND TRN_DT < @TRANSFER_DT AND ASSET_AMT IS NOT NULL THEN ASSET_AMT END),0)) AS BUY_PRICE FROM dbo.ASS_VALUES GROUP BY ASSET_ID) tmp ON A.ASSET_ID=tmp.ASSET_ID
|
116
|
LEFT JOIN (SELECT ASSET_ID,(SUM(CASE WHEN CRDR='C' AND AMORT_DT < @TRANSFER_DT AND AMORT_AMT IS NOT NULL THEN AMORT_AMT END) - ISNULL(SUM(CASE WHEN CRDR='D' AND AMORT_DT < @TRANSFER_DT AND AMORT_AMT IS NOT NULL THEN AMORT_AMT END),0)) AS AMORTIZED_AMT FROM dbo.ASS_AMORT_DT GROUP BY ASSET_ID) tmp1 ON A.ASSET_ID=tmp1.ASSET_ID
|
117
|
-- LEFT JOIN (SELECT ASSET_ID,max(AMORT_DT) AS AMORT_DT FROM ASS_AMORT_DT WHERE CRDR ='C' AND AMORT_DT<@TRANSFER_DT GROUP BY ASSET_ID) tmp2 ON tmp2.ASSET_ID = A.ASSET_ID
|
118
|
LEFT JOIN (SELECT ASSET_ID,COUNT(*) AS AMORTIZED_MONTH FROM ASS_AMORT_DT WHERE CRDR ='C' AND AMORT_DT<@TRANSFER_DT GROUP BY ASSET_ID) tmp2 ON tmp2.ASSET_ID = A.ASSET_ID
|
119
|
-- END
|
120
|
WHERE 1=1
|
121
|
AND TR.TRANS_MULTI_MASTER_ID= @TRANS_MULTI_MASTER_ID
|
122
|
|
123
|
IF(CONVERT(DATE,@CREATE_DT_TRANSFER,103)>CONVERT(DATE,@TRANSFER_DT,103))
|
124
|
BEGIN
|
125
|
SET @CREATE_DT = N'Ngày ' + CAST(DAY(@TRANSFER_DT) AS VARCHAR(500))
|
126
|
+ N' tháng ' + CAST(MONTH(@TRANSFER_DT) AS VARCHAR(500))
|
127
|
+ N' năm ' + CAST(YEAR(@TRANSFER_DT) AS VARCHAR(500))
|
128
|
+ N' tại ' + (SELECT B.BRANCH_NAME FROM dbo.ASS_TRANSFER_MULTI_MASTER A JOIN dbo.CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
|
129
|
IF(@SIGN_APPROVE_DT_KT IS NOT NULL)
|
130
|
BEGIN
|
131
|
SET @SIGN_APPROVE_DT = @TRANSFER_DT
|
132
|
SET @SIGN_APPROVE_DT_KT = @TRANSFER_DT
|
133
|
SET @SIGN_RECEVI_DT = @TRANSFER_DT
|
134
|
SET @SIGN_CREATE_DT = @TRANSFER_DT
|
135
|
END
|
136
|
END
|
137
|
|
138
|
|
139
|
|
140
|
-- THÔNG TIN BÊN GIAO
|
141
|
SELECT ISNULL(@KHOI_TRANSFER,@BRANCH_TRANSFER) AS KHOI_TRANSFER, @BRANCH_TRANSFER AS BRANCH_TRANSFER, @NAME_TRANSFER AS NAME_TRANSFER, @POSITION AS POSITION_SEND, @CREATE_DT AS A1
|
142
|
|
143
|
-- THÔNG TIN BÊN NHẬN
|
144
|
SELECT IIF(@NAME_RECIVE IS NOT NULL,ISNULL(@KHOI_RECIVE,@BRANCH_RECIVE),NULL) AS KHOI_RECIVE, IIF(@NAME_RECIVE IS NOT NULL,@BRANCH_RECIVE,NULL) AS BRANCH_RECIVE, @NAME_RECIVE AS NAME_RECIVE, @POSITION_RECIVE AS POSTION_RECIVE
|
145
|
|
146
|
-- CHỮ KÍ
|
147
|
DECLARE @S1 NVARCHAR(500),@S2 NVARCHAR(500),@S3 NVARCHAR(500),@S4 NVARCHAR(500),@S5 NVARCHAR(500),@S6 NVARCHAR(500)
|
148
|
|
149
|
SET @S1 = (SELECT TLFullName FROM TL_USER WHERE TLNANME = @SIGN_MAKER_ID) + CHAR(10) + N' Đã xác nhận vào lúc ' + ISNULL(FORMAT(@SIGN_CREATE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'')
|
150
|
SET @S2 = N'Người duyệt'+ CHAR(10) + (SELECT TLFullName FROM TL_USER WHERE TLNANME = @SIGN_APPROVE_ID) + CHAR(10) + N' Đã xác nhận vào lúc ' + ISNULL(FORMAT(@SIGN_APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'')
|
151
|
--PHONGNT bổ sung người nhập KT
|
152
|
SET @S3 =N'Người nhập'+ CHAR(10) + (SELECT TLFullName FROM TL_USER WHERE TLNANME = @SIGN_MAKER_ID_KT) + CHAR(10)
|
153
|
SET @S6 =N'Người duyệt'+ CHAR(10) + (SELECT TLFullName FROM TL_USER WHERE TLNANME = @SIGN_CHECKER_ID_KT) + CHAR(10) + N' Đã xác nhận vào lúc ' + ISNULL(FORMAT(@SIGN_APPROVE_DT_KT,'dd/MM/yyyy,hh:mm:ss tt'),'')
|
154
|
|
155
|
SET @S4 =(SELECT TLFullName FROM TL_USER WHERE TLNANME = @SIGN_RECEVI_MAKER_ID) + CHAR(10) + N' Đã xác nhận vào lúc ' + ISNULL(FORMAT(@SIGN_RECEVI_DT,'dd/MM/yyyy,hh:mm:ss tt'),'')
|
156
|
--PHONGNT bổ sung người nhập
|
157
|
SET @S5 =N'Người nhập'+ CHAR(10) + (SELECT TLFullName FROM TL_USER WHERE TLNANME = @SIGN_MAKER_ID_CREATE) + CHAR(10) ;
|
158
|
|
159
|
SELECT @S1 AS S1,
|
160
|
@S2 AS S2,
|
161
|
@S3 AS S3,@S4 AS S4,IIF(NOT EXISTS(SELECT 1 FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID=@TRANS_MULTI_MASTER_ID AND AUTH_STATUS ='E'),@S5,NULL) AS S5,@S6 AS S6
|