Project

General

Profile

MW_IN_Ins.txt

Luc Tran Van, 10/15/2020 10:52 AM

 
1

    
2
ALTER PROCEDURE [dbo].[MW_IN_Upd]
3
	@p_IN_ID varchar(15),
4
    @p_TRN_Date datetime = 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 datetime = NULL,
14
    @p_AUTH_STATUS_KT varchar(1) = NULL,
15
    @p_QTY int = 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 datetime = NULL,
22
    @p_CHECKER_ID varchar(15) = NULL,
23
    @p_APPROVE_DT datetime = NULL,
24
    @p_APPROVE_DT_KT datetime = NULL,
25
    @p_TRN_TIME varchar(50) = NULL,
26
    @p_BUY_PRICE NUMERIC(18, 0) = NULL,
27
    @p_TOTAL_AMT numeric(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		DATETIME		   = 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_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
		-- LUCTV BO SUNG VAO NGAY 15 10 2020
46
		DECLARE @GROUP_LEVEL VARCHAR(15)
47
		--- KHAI BAO BIEN CURSOR
48
		DECLARE @IN_ID VARCHAR(15) = NULL,
49
				@GROUP_ID VARCHAR(15) = NULL,
50
				@MATERIAL_ID VARCHAR(15) = NULL,
51
				@MATERIAL_NAME NVARCHAR(200) = NULL,
52
				@QTY INT = NULL,
53
				@VAT NUMERIC(18, 0) = NULL,
54
				@TOTAL_AMT NUMERIC(18, 2) = NULL,
55
				@NOTES NVARCHAR(1000) = NULL,
56
				@IS_PROMO VARCHAR(1) = NULL
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 INT,
69
					VAT NUMERIC(18, 0),
70
					TOTAL_AMT NUMERIC(18, 2),
71
					NOTES NVARCHAR(1000),
72
					IS_PROMO VARCHAR(1));
73
		OPEN XmlData;
74
		DELETE FROM MW_IN WHERE IN_MASTER_ID =@p_IN_ID
75
		BEGIN TRANSACTION
76
		-- UPDATE MASTER
77
		UPDATE [dbo].[MW_IN_MASTER]
78
		SET 
79
		--[TOTAL_AMT] = @p_BUY_PRICE,
80
		--[BUY_PRICE] = @p_BUY_PRICE/@p_QTY,
81
		--[TRN_Date] = @p_TRN_Date,
82
		--[GROUP_ID] = @p_GROUP_ID,
83
		--[MATERIAL_NAME] = @p_MATERIAL_NAME,
84
		[MATERIAL_DESC] = @p_MATERIAL_DESC,
85
		--[MAKER_ID_KT] = @p_MAKER_ID_KT,
86
		--[MATERIAL_ID] = @p_MATERIAL_ID,
87
		--[CHECKER_ID_KT] = @p_CHECKER_ID_KT,
88
		[BRANCH_ID] = @p_BRANCH_ID,
89
		[DEPT_ID] = @p_DEPT_ID,
90
		--[CREATE_DT_KT] = @p_CREATE_DT_KT,
91
		--[AUTH_STATUS_KT] = @p_AUTH_STATUS_KT,
92
		--[QTY] = @p_QTY,
93
		[PO_CODE] = @p_PO_CODE,
94
		[NOTES] = @p_NOTES,
95
		[RECORD_STATUS] = @p_RECORD_STATUS,
96
		[AUTH_STATUS] = 'U',
97
		[MAKER_ID] = @p_MAKER_ID,
98
		--[CREATE_DT] = @p_CREATE_DT,
99
		--[CHECKER_ID] = @p_CHECKER_ID,
100
		--[APPROVE_DT] = @p_APPROVE_DT,
101
		--[APPROVE_DT_KT] = @p_APPROVE_DT_KT,
102
		--[TRN_TIME] = @p_TRN_TIME,
103
 
104
		--[VAT] = @p_VAT,
105
		--[PRICE_VAT] = @p_PRICE_VAT,
106
		[IS_PROMO] = @p_IS_PROMO,
107
		[BRANCH_CREATE]  = @p_BRANCH_CREATE ,
108
		[INVOICE_NO]		= @p_INVOICE_NO	   ,
109
		[INVOICE_DT]		= @p_INVOICE_DT	   ,
110
		[DIVISION_ID]		= @p_DIVISION_ID	,
111
		[ENTRY_BOOKED]	= @p_ENTRY_BOOKED,
112
		[CORE_NOTE] =@p_CORE_NOTE,WARE_HOUSE =@p_WARE_HOUSE
113

    
114
		WHERE IN_ID = @p_IN_ID
115
		-----------
116
		UPDATE MW_IN_MASTER
117
		SET @p_PO_CODE =@p_PO_CODE, [MAKER_ID] = @p_MAKER_ID,INVOICE_NO= @p_INVOICE_NO,[NOTES] = @p_NOTES,[INVOICE_DT]= @p_INVOICE_DT	
118
		WHERE IN_ID =@p_IN_ID
119
		-- INSERT DETAIL
120
		FETCH NEXT FROM XmlData
121
		INTO @IN_ID,@GROUP_ID ,@MATERIAL_ID ,@MATERIAL_NAME,@QTY,@VAT,@TOTAL_AMT,@NOTES,@IS_PROMO
122
		WHILE @@FETCH_STATUS = 0
123
		BEGIN
124
		----------------------------------------
125
		EXEC SYS_CodeMasters_Gen 'MW_IN', @l_IN_DT_ID out
126
		IF @l_IN_DT_ID='' OR @l_IN_DT_ID IS NULL GOTO ABORT
127
		--SET @p_TOTAL_AMT = @p_BUY_PRICE
128
		--SET @p_BUY_PRICE = ROUND(@p_TOTAL_AMT/@p_QTY,0)
129
		-- LUCTV BO SUNG VAO NGAY 15 10 2020
130
		SET @GROUP_LEVEL =(SELECT TOP 1 GROUP_LEVEL FROM MW_GROUP WHERE GROUP_ID =@GROUP_ID)
131
		IF(@GROUP_LEVEL='1')
132
		BEGIN 
133
			ROLLBACK TRANSACTION
134
			SELECT '-1' as Result, '' IN_ID, N'Bạn không thể nhập kho vật liệu với mã nhóm cấp 1 (THẺ hoặc HC). Vui lòng chọn các nhóm vật liệu khác hai nhóm này' ErrorDesc
135
			RETURN '-1'	
136
		END
137
		INSERT INTO dbo.MW_IN
138
		(
139
		    IN_MASTER_ID,IN_ID,TRN_Date, GROUP_ID,MATERIAL_NAME,
140
		    MATERIAL_DESC,MAKER_ID_KT,MATERIAL_ID,CHECKER_ID_KT, BRANCH_ID,
141
		    DEPT_ID,CREATE_DT_KT,AUTH_STATUS_KT,QTY,PO_CODE,NOTES,RECORD_STATUS,
142
		    AUTH_STATUS,MAKER_ID,CREATE_DT,CHECKER_ID,APPROVE_DT,APPROVE_DT_KT,TRN_TIME,
143
		    BUY_PRICE,TOTAL_AMT,VAT,PRICE_VAT,IS_PROMO,BRANCH_CREATE,INVOICE_NO,
144
			INVOICE_DT,DIVISION_ID,ENTRY_BOOKED,CORE_NOTE
145
		)
146
		VALUES
147
		(   @p_IN_ID,
148
			@l_IN_DT_ID,
149
		    @p_TRN_Date,
150
		    @GROUP_ID,@MATERIAL_NAME, @NOTES, @p_MAKER_ID_KT, @MATERIAL_ID,@p_CHECKER_ID_KT, @p_BRANCH_ID,@p_DEPT_ID,
151
			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,
152
		    CONVERT(DATETIME,@p_CREATE_DT, 103),@p_CHECKER_ID,
153
		    CONVERT(DATETIME,@p_APPROVE_DT, 103),
154
		    CONVERT(DATETIME,@p_APPROVE_DT_KT, 103),@p_TRN_TIME, ROUND(@TOTAL_AMT/@QTY,0),
155
		    @TOTAL_AMT, @VAT,@TOTAL_AMT*@VAT/100,
156
		    @IS_PROMO,@p_BRANCH_CREATE,@p_INVOICE_NO,
157
			@p_INVOICE_DT,@p_DIVISION_ID,@p_ENTRY_BOOKED,@p_CORE_NOTE
158
		    )
159
		----------------------------------------
160
		IF @@Error <> 0
161
        GOTO ABORT;
162
		FETCH NEXT FROM XmlData
163
		INTO @IN_ID,@GROUP_ID ,@MATERIAL_ID ,@MATERIAL_NAME,@QTY,@VAT,@TOTAL_AMT,@NOTES,@IS_PROMO
164
		END
165
		CLOSE XmlData;
166
		DEALLOCATE XmlData;
167
	
168
COMMIT TRANSACTION
169
SELECT '0' as Result, @l_IN_ID  IN_ID, '' ErrorDesc
170
RETURN '0'
171
ABORT:
172
BEGIN
173
		 CLOSE XmlData;
174
		 DEALLOCATE XmlData;
175
		ROLLBACK TRANSACTION
176
		SELECT '-1' as Result, '' IN_ID, '' ErrorDesc
177
		RETURN '-1'
178
End
179

    
180

    
181