Project

General

Profile

mw_in_kt_upd.txt

Luc Tran Van, 11/23/2022 05:31 PM

 
1
ALTER   PROCEDURE [dbo].[MW_IN_KT_Upd]
2
	@p_IN_ID varchar(15),
3
    @p_TRN_Date VARCHAR(25) = NULL,
4
    @p_GROUP_ID varchar(15) = NULL,
5
    @p_MATERIAL_NAME nvarchar(1000) = NULL,
6
    @p_MATERIAL_DESC nvarchar(MAX) = NULL,
7
    @p_MAKER_ID_KT varchar(15) = NULL,
8
    @p_MATERIAL_ID varchar(15) = NULL,
9
    @p_CHECKER_ID_KT varchar(15) = NULL,
10
    @p_BRANCH_ID varchar(15) = NULL,
11
    @p_DEPT_ID varchar(15) = NULL,
12
    @p_CREATE_DT_KT VARCHAR(25) = NULL,
13
    @p_AUTH_STATUS_KT varchar(1) = NULL,
14
    @p_QTY DECIMAL(18, 2) = NULL,
15
    @p_PO_CODE nvarchar(200) = NULL,
16
    @p_NOTES nvarchar(1000) = NULL,
17
    @p_RECORD_STATUS varchar(1) = NULL,
18
    @p_AUTH_STATUS varchar(1) = NULL,
19
    @p_MAKER_ID varchar(15) = NULL,
20
    @p_CREATE_DT VARCHAR(25) = NULL,
21
    @p_CHECKER_ID varchar(15) = NULL,
22
    @p_APPROVE_DT VARCHAR(25) = NULL,
23
    @p_APPROVE_DT_KT VARCHAR(25) = NULL,
24
    @p_TRN_TIME varchar(50) = NULL,
25
    @p_BUY_PRICE DECIMAL(18, 2) = NULL,
26
    @p_TOTAL_AMT DECIMAL(18, 2) = NULL,
27
    @p_VAT decimal(18, 2) = NULL,
28
    @p_PRICE_VAT decimal(18, 0) = NULL,
29
    @p_IS_PROMO varchar(1) = NULL,
30
	@p_BRANCH_CREATE  varchar(15)  = NULL,
31
	@p_INVOICE_NO		NVARCHAR(200)	   = NULL,
32
	@p_INVOICE_DT		VARCHAR(25)		   = NULL,
33
	@p_DIVISION_ID			VARCHAR(15)	   = NULL,
34
	@p_ENTRY_BOOKED		 varchar(1)	   = NULL,
35
	@p_CORE_NOTE nvarchar(500)	   = NULL,
36
	@p_IN_CODE NVARCHAR(100) = NULL,
37
	@p_WARE_HOUSE VARCHAR(15) = NULL,
38
	@p_PO_ID varchar(20) = NULL,
39
	@p_XmlData XML = NULL
40

    
41
AS
42
		DECLARE @sErrorCode VARCHAR(20) = ''
43
		DECLARE @l_IN_ID VARCHAR(15)
44
		DECLARE @l_IN_DT_ID VARCHAR(15)
45
		--- KHAI BAO BIEN CURSOR
46
		DECLARE @IN_ID VARCHAR(15) = NULL,
47
				@GROUP_ID VARCHAR(15) = NULL,
48
				@MATERIAL_ID VARCHAR(15) = NULL,
49
				@MATERIAL_NAME NVARCHAR(200) = NULL,
50
				@QTY DECIMAL(18, 2) = NULL,
51
				@VAT DECIMAL(18, 2) = NULL,
52
				@TOTAL_AMT DECIMAL(18, 2) = NULL,
53
				@NOTES NVARCHAR(1000) = NULL,
54
				@IS_PROMO VARCHAR(1) = NULL,
55
				@PRICE_VAT DECIMAL(18, 2) = NULL,
56
				@MATERIAL_ACCTNO VARCHAR(25)
57
		DECLARE @hdoc INT;
58
		---
59
		EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XmlData;
60
		DECLARE XmlData CURSOR FOR
61
		SELECT *
62
		FROM
63
			OPENXML (@hdoc, '/Root/ADDNEWDT', 2)
64
			WITH (	IN_ID VARCHAR(15),
65
					GROUP_ID VARCHAR(15),
66
					MATERIAL_ID VARCHAR(15),
67
					MATERIAL_NAME NVARCHAR(200),
68
					QTY DECIMAL(18, 2),
69
					VAT DECIMAL(18, 2),
70
					TOTAL_AMT DECIMAL(18, 2),
71
					NOTES NVARCHAR(1000),
72
					IS_PROMO VARCHAR(1),
73
					PRICE_VAT DECIMAL(18, 2),
74
					MATERIAL_ACCTNO VARCHAR(25));
75
		OPEN XmlData;
76
		BEGIN TRANSACTION
77
		--LUCTV: NGAY 07 -06 2019. BO SUNG RANG BUOC NEU DANG TRA VE CHO HANH CHINH THI KHONG DUOC PHEP CAP NHAT THONG TIN
78
		DELETE FROM MW_IN WHERE IN_MASTER_ID =@p_IN_ID
79
		IF( (SELECT AUTH_STATUS FROM MW_IN_MASTER WHERE IN_ID = @p_IN_ID)<>'A')
80
		BEGIN
81
				ROLLBACK TRANSACTION
82
				SELECT '-1' as Result, N'Thông tin nhập mới vật liệu đang bị trả về bộ phận hành chính. Vui lòng chờ bộ phận hành chính kiểm duyệt' ErrorDesc
83
				RETURN '-1'
84
		END
85
		-- UPDATE MASTER
86
		UPDATE [dbo].[MW_IN_MASTER]
87
		SET 
88
		--[TOTAL_AMT] = @p_BUY_PRICE,
89
		--[BUY_PRICE] = @p_BUY_PRICE/@p_QTY,
90
		--[TRN_Date] = @p_TRN_Date,
91
		--[GROUP_ID] = @p_GROUP_ID,
92
		--[MATERIAL_NAME] = @p_MATERIAL_NAME,
93
		[MATERIAL_DESC] = @p_MATERIAL_DESC,
94
		[MAKER_ID_KT] = @p_MAKER_ID_KT,
95
		--[MATERIAL_ID] = @p_MATERIAL_ID,
96
		[CHECKER_ID_KT] = @p_CHECKER_ID_KT,
97
		[BRANCH_ID] = @p_BRANCH_ID,
98
		[DEPT_ID] = @p_DEPT_ID,
99
		[CREATE_DT_KT] = CONVERT(DATETIME,@p_CREATE_DT_KT, 103) ,
100
		[AUTH_STATUS_KT] = 'U',
101
		--[QTY] = @p_QTY,
102
		[PO_CODE] = @p_PO_CODE,
103
		[PO_ID] = @p_PO_ID,
104
		[NOTES] = @p_NOTES,
105
		[RECORD_STATUS] = @p_RECORD_STATUS,
106
		
107
		--[AUTH_STATUS] = @p_AUTH_STATUS,
108
		--[MAKER_ID] = @p_MAKER_ID,
109
		--[CREATE_DT] = @p_CREATE_DT,
110
		--[CHECKER_ID] = @p_CHECKER_ID,
111
		--[APPROVE_DT] = @p_APPROVE_DT,
112
		--[APPROVE_DT_KT] = @p_APPROVE_DT_KT,
113
		--[TRN_TIME] = @p_TRN_TIME,
114
 
115
		--[VAT] = @p_VAT,
116
		--[PRICE_VAT] = @p_PRICE_VAT,
117
		[IS_PROMO] = @p_IS_PROMO,
118
		[BRANCH_CREATE]  = @p_BRANCH_CREATE ,
119
		[INVOICE_NO]		= @p_INVOICE_NO	   ,
120
		[INVOICE_DT]		= CONVERT(DATETIME,@p_INVOICE_DT, 103) 	   ,
121
		[DIVISION_ID]		= @p_DIVISION_ID	,
122
		[ENTRY_BOOKED]	= @p_ENTRY_BOOKED,
123
		[CORE_NOTE] = dbo.fChuyenCoDauThanhKhongDau(@p_CORE_NOTE),WARE_HOUSE =@p_WARE_HOUSE
124

    
125
		WHERE IN_ID = @p_IN_ID
126
		-----------
127
		UPDATE MW_IN_MASTER
128
		SET @p_PO_CODE =@p_PO_CODE, [MAKER_ID] = @p_MAKER_ID,INVOICE_NO= @p_INVOICE_NO,[NOTES] = @p_NOTES,
129
		[INVOICE_DT]=  CONVERT(DATETIME,@p_INVOICE_DT, 103)	, @p_PO_ID = @p_PO_ID
130
		WHERE IN_ID =@p_IN_ID
131
		-- INSERT DETAIL
132
		FETCH NEXT FROM XmlData
133
		INTO @IN_ID,@GROUP_ID ,@MATERIAL_ID ,@MATERIAL_NAME,@QTY,@VAT,@TOTAL_AMT,@NOTES,@IS_PROMO,@PRICE_VAT, @MATERIAL_ACCTNO
134
		WHILE @@FETCH_STATUS = 0
135
		BEGIN
136
		----------------------------------------
137
		IF(@PRICE_VAT IS NULL)
138
		BEGIN
139
		SET @PRICE_VAT = 0;
140
		END
141

    
142
		EXEC SYS_CodeMasters_Gen 'MW_IN', @l_IN_DT_ID out
143
		IF @l_IN_DT_ID='' OR @l_IN_DT_ID IS NULL GOTO ABORT
144
		--SET @p_TOTAL_AMT = @p_BUY_PRICE
145
		--SET @p_BUY_PRICE = ROUND(@p_TOTAL_AMT/@p_QTY,0)
146
		INSERT INTO dbo.MW_IN
147
		(
148
		    IN_MASTER_ID,IN_ID,TRN_Date, GROUP_ID,MATERIAL_NAME,
149
		    MATERIAL_DESC,MAKER_ID_KT,MATERIAL_ID,CHECKER_ID_KT, BRANCH_ID,
150
		    DEPT_ID,CREATE_DT_KT,AUTH_STATUS_KT,QTY,PO_CODE,NOTES,RECORD_STATUS,
151
		    AUTH_STATUS,MAKER_ID,CREATE_DT,CHECKER_ID,APPROVE_DT,APPROVE_DT_KT,TRN_TIME,
152
		    BUY_PRICE,TOTAL_AMT,VAT,PRICE_VAT,IS_PROMO,BRANCH_CREATE,INVOICE_NO,
153
			INVOICE_DT,DIVISION_ID,ENTRY_BOOKED,CORE_NOTE, PO_ID, MATERIAL_ACCTNO
154
		)
155
		VALUES
156
		(   @p_IN_ID,
157
			@l_IN_DT_ID,
158
		    CONVERT(DATETIME,@p_TRN_Date, 103),
159
		    @GROUP_ID,@MATERIAL_NAME, @NOTES, @p_MAKER_ID_KT, @MATERIAL_ID,@p_CHECKER_ID_KT, @p_BRANCH_ID,@p_DEPT_ID,
160
			CONVERT(DATETIME,@p_CREATE_DT_KT, 103) , @p_AUTH_STATUS_KT, @QTY,@p_PO_CODE, @NOTES,@p_RECORD_STATUS,@p_AUTH_STATUS, @p_MAKER_ID,
161
		    CONVERT(DATETIME,@p_CREATE_DT, 103),@p_CHECKER_ID,
162
		    CONVERT(DATETIME,@p_APPROVE_DT, 103),
163
		    CONVERT(DATETIME,@p_APPROVE_DT_KT, 103),@p_TRN_TIME, ROUND(@TOTAL_AMT/@QTY,0),
164
		    @TOTAL_AMT, @VAT,@PRICE_VAT,
165
		    @IS_PROMO,@p_BRANCH_CREATE,@p_INVOICE_NO,
166
			CONVERT(DATETIME,@p_INVOICE_DT, 103),@p_DIVISION_ID,@p_ENTRY_BOOKED,@p_CORE_NOTE, @p_PO_ID, @MATERIAL_ACCTNO
167
		    )
168
		----------------------------------------
169
		IF @@Error <> 0
170
        GOTO ABORT;
171
		FETCH NEXT FROM XmlData
172
		INTO @IN_ID,@GROUP_ID ,@MATERIAL_ID ,@MATERIAL_NAME,@QTY,@VAT,@TOTAL_AMT,@NOTES,@IS_PROMO,@PRICE_VAT, @MATERIAL_ACCTNO
173
		END
174
		CLOSE XmlData;
175
		DEALLOCATE XmlData;
176

    
177
		-- doanptt 07/06/2022: Thêm process
178
		DELETE dbo.PL_PROCESS WHERE REQ_ID = @p_IN_ID AND PROCESS_ID = 'UPDATE_KT'
179
		INSERT INTO dbo.PL_PROCESS
180
		(
181
			REQ_ID,
182
			PROCESS_ID,
183
			CHECKER_ID,
184
			APPROVE_DT,
185
			PROCESS_DESC,NOTES
186
		)
187
		VALUES
188
		(   @p_IN_ID,        -- REQ_ID - varchar(15)
189
			'UPDATE_KT',        -- PROCESS_ID - varchar(10)
190
			@p_MAKER_ID_KT,        -- CHECKER_ID - varchar(15)
191
			GETDATE(), -- APPROVE_DT - datetime
192
			N'Cập nhật phiếu nhập mới vật liệu kế toán thành công' ,
193
			N'Cập nhật phiếu nhập mới vật liệu kế toán'      -- PROCESS_DESC - nvarchar(1000)
194
		)
195
	
196
COMMIT TRANSACTION
197
SELECT '0' as Result, @l_IN_ID  IN_ID, '' ErrorDesc
198
RETURN '0'
199
ABORT:
200
BEGIN
201
		 CLOSE XmlData;
202
		 DEALLOCATE XmlData;
203
		ROLLBACK TRANSACTION
204
		SELECT '-1' as Result, '' IN_ID, '' ErrorDesc
205
		RETURN '-1'
206
End