Project

General

Profile

mw_7.txt

Luc Tran Van, 07/12/2022 01:33 PM

 
1

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

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

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

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

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