Project

General

Profile

ASS_INVENTORY_DETAIL_Ins.txt

Luc Tran Van, 03/14/2023 02:05 PM

 
1
USE gAMSPro_BVB_v3_FINAL
2
GO
3

    
4
-- =============================================
5
-- Author:		TuNT
6
-- Create date: 20/11/2020
7
-- Description:	Store insert tai san kiem ke
8
-- =============================================
9
ALTER PROCEDURE dbo.ASS_INVENTORY_DETAIL_Ins 
10
		@p_INVENTDT_ID VARCHAR(15),
11
		@p_INVENT_ID	varchar(15)  ,
12
		@p_ASSET_ID	varchar(15)  ,
13
		@p_ASSET_STATUS	nvarchar(20) ,
14
		@p_INVENT_DESC	nvarchar(1000) ,
15
		@p_NOTES	nvarchar(500) ,
16
		@p_BRANCH_USE	varchar(15) ,
17
		@p_DEPT_USE	varchar(15),
18
		@p_REMAIN_VALUE decimal(18,0),
19
		@p_INVENTORY_DATE varchar(25)
20
AS
21
BEGIN
22

    
23

    
24
	--DECLARE @l_INVENTDT_ID VARCHAR(15)
25
	IF NOT EXISTS (SELECT * FROM ASS_INVENTORY_DT_RPT WHERE INVENT_ID = @p_INVENT_ID)
26
	AND NOT EXISTS(SELECT * FROM ASS_INVENTORY_DT WHERE ASSET_ID = @p_ASSET_ID AND @p_INVENT_ID = INVENT_ID)
27
	AND NOT EXISTS(SELECT * FROM ASS_MASTER WHERE ASSET_ID = @p_ASSET_ID)
28
	BEGIN
29
		SELECT '-1' as Result, '' id, N'Mã tài sản không có trong hệ thống' ErrorDesc
30

    
31
		RETURN '-1'
32
	END
33
	--IF EXISTS (SELECT * FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_INVENT_ID
34
	--				AND BRANCH_ID = @p_BRANCH_USE
35
	--				AND (DEPT_ID = @p_DEPT_USE OR (ISNULL(DEPT_ID,'') = '' AND ISNULL(@p_DEPT_USE,'') = '')))
36
	--	AND EXISTS (SELECT * FROM ASS_STATUS WHERE STATUS_ID = @p_ASSET_STATUS AND STATUS_CODE = '05')
37
	--BEGIN
38
	--	SELECT '-1' as Result, '' id, N'Không được phép cập nhật trạng thái Thừa so với sao kê đối với tài sản thuộc danh mục kiểm kê' ErrorDesc
39
	--	RETURN '-1'
40
	--END
41
	DECLARE @l_TERM VARCHAR(20), @l_INVENTORY_DT DATE, @l_ASSET_TYPE VARCHAR(10), @l_BRANCH_ID VARCHAR(20), @l_DEPT_ID VARCHAR(20)
42
	DECLARE @AMORTIZED_AMT VARCHAR(50)
43
	SELECT @l_ASSET_TYPE = [TYPE_ID] FROM ASS_MASTER WHERE ASSET_ID = @p_ASSET_ID
44
	SELECT @l_TERM = TERM, @l_INVENTORY_DT = INVENTORY_DT, @l_BRANCH_ID = BRANCH_ID, @l_DEPT_ID = DEPT_ID
45
	FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_INVENT_ID
46

    
47
	--SET @p_INVENT_ID = (SELECT TOP(1) INVENT_ID FROM ASS_INVENTORY_MASTER
48
	--					WHERE BRANCH_ID = @l_BRANCH_ID
49
	--					AND (DEPT_ID = @l_DEPT_ID OR (ISNULL(DEPT_ID, '') = '' AND ISNULL(@l_DEPT_ID,'') = ''))
50
	--					AND TERM = @l_TERM
51
	--					AND ASSET_TYPE = @l_ASSET_TYPE
52
	--					AND INVENTORY_DT = @l_INVENTORY_DT
53
	--					AND RECORD_STATUS = '1'
54
	--					AND AUTH_STATUS = 'U')
55
	--IF(@p_INVENT_ID IS NULL OR @p_INVENT_ID = '')
56
	--BEGIN
57
	--	SELECT '-1' as Result, '' id, N'Tài sản không thuộc kỳ kiểm nào' ErrorDesc
58
	--	RETURN '-1'
59
	--END
60
	DECLARE @p_INVENT_ID_Tmp VARCHAR(15)
61
	SELECT @p_INVENT_ID_Tmp = aidr.INVENT_ID FROM ASS_INVENTORY_DT_RPT aidr WHERE aidr.INVENTDT_ID = @p_INVENTDT_ID
62
	--ThuanTm cmt: tài sản nằm ngoài đợt kk được phép lưu
63
	--IF (@p_INVENT_ID_Tmp IS NOT NULL AND @p_INVENT_ID_Tmp <> '' AND @p_INVENT_ID_Tmp <> @p_INVENT_ID AND
64
	--	EXISTS(SELECT * FROM ASS_INVENTORY_MASTER aim WHERE aim.INVENT_ID = @p_INVENT_ID_Tmp AND aim.AUTH_STATUS <> 'A' OR aim.AUTH_STATUS IS NULL ))
65
	-- BEGIN
66
	--	DECLARE @BRANCH_NAME NVARCHAR(50)
67
	--	SELECT @BRANCH_NAME = cb.BRANCH_CODE + ' - ' + cb.BRANCH_NAME FROM ASS_INVENTORY_MASTER aim
68
	--	LEFT JOIN CM_BRANCH cb ON aim.BRANCH_ID = cb.BRANCH_ID WHERE aim.INVENT_ID = @p_INVENT_ID_Tmp AND aim.AUTH_STATUS <> 'A' OR aim.AUTH_STATUS IS NULL
69
	--		SELECT '-1' as Result, '' id, N'Tài sản đang thuộc về kỳ kiểm kê của' + @BRANCH_NAME + N'. Bạn không được phép cập nhật thông tin tài sản này' ErrorDesc
70
	--		RETURN '-1'
71
	--END
72
	BEGIN TRANSACTION
73
		IF EXISTS (SELECT * FROM ASS_INVENTORY_DT_RPT WHERE INVENT_ID = @p_INVENT_ID)
74
		BEGIN
75
			IF EXISTS(SELECT * FROM ASS_INVENTORY_DT_RPT A
76
						LEFT JOIN ASS_INVENTORY_MASTER B ON A.INVENT_ID = B.INVENT_ID
77
						WHERE (@p_INVENTDT_ID = A.INVENTDT_ID OR (A.ASSET_ID = @p_ASSET_ID AND B.INVENT_ID = @p_INVENT_ID AND A.BRANCH_USE = B.BRANCH_ID)))
78
			BEGIN
79
				--SELECT TOP(1) @l_INVENTDT_ID = INVENTDT_ID FROM ASS_INVENTORY_DT_RPT WHERE ASSET_ID = @p_ASSET_ID AND @p_INVENT_ID = INVENT_ID
80
				IF (@p_INVENTDT_ID IS NOT NULL OR @p_INVENTDT_ID <> '')
81
				BEGIN
82
					UPDATE ASS_INVENTORY_DT_RPT 
83
					SET ASSET_STATUS = @p_ASSET_STATUS,
84
					INVENT_DESC = @p_INVENT_DESC,
85
					NOTES = @p_NOTES,
86
					BRANCH_USE = @p_BRANCH_USE,
87
					DEPT_USE = @p_DEPT_USE,
88
					REMAIN_VALUE = @p_REMAIN_VALUE,
89
					INVENTORY_DATE = CONVERT(datetime,@p_INVENTORY_DATE,103)
90
					WHERE @p_INVENTDT_ID = INVENTDT_ID
91
				END
92
				ELSE
93
				BEGIN
94
					SET @p_INVENTDT_ID = (SELECT INVENTDT_ID FROM ASS_INVENTORY_DT_RPT WHERE ASSET_ID = @p_ASSET_ID AND INVENT_ID = @p_INVENT_ID)
95
					UPDATE ASS_INVENTORY_DT_RPT 
96
					SET ASSET_STATUS = @p_ASSET_STATUS,
97
					INVENT_DESC = @p_INVENT_DESC,
98
					NOTES = @p_NOTES,
99
					BRANCH_USE = @p_BRANCH_USE,
100
					DEPT_USE = @p_DEPT_USE,
101
					REMAIN_VALUE = @p_REMAIN_VALUE,
102
					INVENTORY_DATE = CONVERT(datetime,@p_INVENTORY_DATE,103)
103
					WHERE ASSET_ID = @p_ASSET_ID AND INVENT_ID = @p_INVENT_ID
104
				END
105
			END
106
			ELSE
107
			BEGIN
108
			
109
				SELECT @p_BRANCH_USE = am.BRANCH_ID, @p_DEPT_USE = am.DEPT_ID, @p_REMAIN_VALUE = am.BUY_PRICE - am.AMORTIZED_AMT, @AMORTIZED_AMT = CONVERT(VARCHAR,am.AMORTIZED_AMT) FROM ASS_MASTER am WHERE am.ASSET_ID = @p_ASSET_ID
110
				EXEC SYS_CodeMasters_Gen 'ASS_INVENTORY_DT', @p_INVENTDT_ID OUT
111
				INSERT INTO ASS_INVENTORY_DT_RPT(INVENTDT_ID, INVENT_ID, ASSET_ID, ASSET_STATUS, INVENT_DESC, NOTES, BRANCH_USE, DEPT_USE, REMAIN_VALUE,INVENTORY_DATE)
112
				VALUES(@p_INVENTDT_ID, @p_INVENT_ID,@p_ASSET_ID, @p_ASSET_STATUS, @p_INVENT_DESC, @p_NOTES, @p_BRANCH_USE, @p_DEPT_USE, @p_REMAIN_VALUE,CONVERT(datetime,@p_INVENTORY_DATE,103))
113
				--SELECT * FROM ASS_INVENTORY_DT
114
			END
115
		END
116
		ELSE 
117
		BEGIN
118
			IF EXISTS(SELECT * FROM ASS_INVENTORY_DT A
119
						LEFT JOIN ASS_INVENTORY_MASTER B ON A.INVENT_ID = B.INVENT_ID
120
						WHERE (@p_INVENTDT_ID = A.INVENTDT_ID OR (A.ASSET_ID = @p_ASSET_ID AND B.INVENT_ID = @p_INVENT_ID AND A.BRANCH_USE = B.BRANCH_ID)))
121
			BEGIN
122
				IF (@p_INVENTDT_ID IS NOT NULL OR @p_INVENTDT_ID <> '')
123
				BEGIN
124
					UPDATE ASS_INVENTORY_DT 
125
					SET ASSET_STATUS = @p_ASSET_STATUS,
126
					INVENT_DESC = @p_INVENT_DESC,
127
					NOTES = @p_NOTES,
128
					BRANCH_USE = @p_BRANCH_USE,
129
					DEPT_USE = @p_DEPT_USE,
130
					REMAIN_VALUE = @p_REMAIN_VALUE
131
					WHERE @p_INVENTDT_ID = INVENTDT_ID
132
				END
133
				ELSE
134
				BEGIN
135
					SET @p_INVENTDT_ID = (SELECT INVENTDT_ID FROM ASS_INVENTORY_DT WHERE ASSET_ID = @p_ASSET_ID AND INVENT_ID = @p_INVENT_ID)
136
					UPDATE ASS_INVENTORY_DT
137
					SET ASSET_STATUS = @p_ASSET_STATUS,
138
					INVENT_DESC = @p_INVENT_DESC,
139
					NOTES = @p_NOTES,
140
					BRANCH_USE = @p_BRANCH_USE,
141
					DEPT_USE = @p_DEPT_USE,
142
					REMAIN_VALUE = @p_REMAIN_VALUE
143
					WHERE ASSET_ID = @p_ASSET_ID AND INVENT_ID = @p_INVENT_ID
144
				END
145
			END
146
			ELSE
147

    
148
			BEGIN
149
				--DECLARE @AMORTIZED_AMT VARCHAR(50)
150
				SELECT @p_BRANCH_USE = am.BRANCH_ID, @p_DEPT_USE = am.DEPT_ID, @p_REMAIN_VALUE = am.BUY_PRICE - am.AMORTIZED_AMT, @AMORTIZED_AMT = CONVERT(VARCHAR,am.AMORTIZED_AMT) FROM ASS_MASTER am WHERE am.ASSET_ID = @p_ASSET_ID
151
				EXEC SYS_CodeMasters_Gen 'ASS_INVENTORY_DT', @p_INVENTDT_ID OUT
152
				INSERT INTO ASS_INVENTORY_DT(INVENTDT_ID, INVENT_ID, ASSET_ID, ASSET_STATUS, INVENT_DESC, NOTES, BRANCH_USE, DEPT_USE, REMAIN_VALUE)
153
				VALUES(@p_INVENTDT_ID, @p_INVENT_ID,@p_ASSET_ID, @p_ASSET_STATUS, @p_INVENT_DESC, @p_NOTES, @p_BRANCH_USE, @p_DEPT_USE, @p_REMAIN_VALUE)
154
				--SELECT * FROM ASS_INVENTORY_DT
155
			END
156
		END
157
		
158
		IF @@Error <> 0 GOTO ABORT
159
	COMMIT TRANSACTION
160
	SELECT '0' as Result, @p_INVENTDT_ID  id, @p_INVENT_ID  INVENT_ID, '' ErrorDesc
161
	RETURN '0'
162
	ABORT:
163
	BEGIN
164
			ROLLBACK TRANSACTION
165
			SELECT '-1' as Result, '' id, '' ErrorDesc
166
			RETURN '-1'
167
	End
168

    
169
END
170
GO