Project

General

Profile

ASS_TRANSFER_MULTI_MASTER_BBBG.txt

Luc Tran Van, 03/20/2023 03:15 PM

 
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(A.AMORTIZED_MONTH AS INT),0) -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