Project

General

Profile

CUSTOMER_UPD_29052023.txt

Luc Tran Van, 05/29/2023 01:17 PM

 
1
ALTER PROCEDURE [dbo].[LS_CUSTOMER_Ins]
2
@p_CUSTOMER_CODE	varchar(15)  = NULL,
3
@p_CUSTOMER_NAME	nvarchar(500)  = NULL,
4
@p_GROUP_ID	varchar(15)  = NULL,
5
@p_BRANCH_ID	varchar(15)  = NULL,
6
@p_ADDR	nvarchar(500)  = NULL,
7
@p_EMAIL	varchar(100)  = NULL,
8
@p_PHONE	varchar(15)  = NULL,
9
@p_TAX_NO	varchar(20)  = NULL,
10
@p_CMND   varchar(20)  = NULL,
11
@p_CONTACT_PERSON	nvarchar(500)  = NULL,
12
@p_NOTES	nvarchar(1000)  = NULL,
13
@p_DESCRIPTION	nvarchar(1000)  = NULL,
14
@p_AUTH_STATUS	varchar(1)  = NULL,
15
@p_RECORD_STATUS	varchar(1)  = NULL,
16
@p_MAKER_ID	nvarchar(15)  = NULL,
17
@p_CREATE_DT	VARCHAR(20) = NULL,
18
@p_EDITOR_ID	varchar(15)  = NULL,
19
@p_EDITOR_DT	VARCHAR(20) = NULL,
20
@p_CHECKER_ID	varchar(15)  = NULL,
21
@p_APPROVE_DT	VARCHAR(20) = NULL,
22
@p_XML_TEMP	xml = NULL,
23
@p_CIF_CODE VARCHAR(50) = NULL,
24
@p_BUSINESS_TYPE NVARCHAR(500) = NULL
25
AS
26
	IF (EXISTS ( SELECT * FROM LS_CUSTOMER WHERE CUSTOMER_CODE=@p_CUSTOMER_CODE ))
27
	BEGIN
28
		SELECT '-1' Result, '' CUSTOMER_ID , N'Mã khách hàng này đã tồn tại' ErrorDesc
29
		RETURN '0'
30
	END
31
	IF(DATALENGTH(ISNULL(@p_CUSTOMER_CODE, '')) <> 8)
32
	BEGIN
33
		SELECT '-1' Result, '' CUSTOMER_ID , N'Thêm mới khách hàng thất bại! Mã khách hàng phải đủ 8 số' ErrorDesc
34
		RETURN '-1'
35
	END
36
	IF(DATALENGTH(ISNULL(@p_CIF_CODE, '')) <> 8)
37
	BEGIN
38
		SELECT '-1' Result, '' CUSTOMER_ID , N'Thêm mới khách hàng thất bại! CIF phải đủ 8 số' ErrorDesc
39
		RETURN '-1'
40
	END
41
	IF((SELECT TOP 1 ISNUMERIC(@p_CUSTOMER_CODE)) = 0)
42
	BEGIN
43
		SELECT '-1' Result, '' CUSTOMER_ID , N'Thêm mới khách hàng thất bại! Mã khách hàng chỉ nhận dữ liệu số, không nhận ký tự' ErrorDesc
44
		RETURN '-1'
45
	END
46
	IF((SELECT TOP 1 ISNUMERIC(@p_CIF_CODE)) = 0)
47
	BEGIN
48
		SELECT '-1' Result, '' CUSTOMER_ID , N'Thêm mới khách hàng thất bại! CIF chỉ nhận dữ liệu số, không nhận ký tự' ErrorDesc
49
		RETURN '-1'
50
	END
51

    
52
	IF(ISNULL(@p_CUSTOMER_NAME, '') = '')
53
	BEGIN
54
		SELECT '-1' Result, '' CUSTOMER_ID , N'Thêm mới khách hàng thất bại! Tên khách hàng không được để trống' ErrorDesc
55
		RETURN '-1'
56
	END
57
	IF(dbo.fChuyenCoDauThanhKhongDau(@p_CUSTOMER_NAME) <> @p_CUSTOMER_NAME)
58
	BEGIN
59
		SELECT '-1' Result, '' CUSTOMER_ID , N'Thêm mới khách hàng thất bại! Tên khách hàng phải là tiếng việt không dấu, in hoa' ErrorDesc
60
		RETURN '-1'
61
	END
62

    
63
	IF(ISNULL(@p_CUSTOMER_CODE, '') <> ISNULL(@p_CIF_CODE, ''))
64
	BEGIN
65
		SELECT '-1' Result, '' CUSTOMER_ID , N'Chỉnh sửa khách hàng thất bại! Mã khách hàng không khớp với CIF' ErrorDesc
66
		RETURN '-1'
67
	END
68

    
69
BEGIN TRANSACTION
70
DECLARE @l_CUSTOMER_ID VARCHAR(15)
71
		EXEC SYS_CodeMasters_Gen 'LS_CUSTOMER', @l_CUSTOMER_ID out
72
		IF @l_CUSTOMER_ID='' OR @l_CUSTOMER_ID IS NULL GOTO ABORT
73
		INSERT INTO LS_CUSTOMER([CUSTOMER_ID],[CUSTOMER_CODE],[CUSTOMER_NAME],[GROUP_ID],[BRANCH_ID],[ADDR],[EMAIL],[PHONE],[TAX_NO],[CONTACT_PERSON],[NOTES],[DESCRIPTION],[AUTH_STATUS],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[EDITOR_ID],[EDITOR_DT],[CHECKER_ID],[APPROVE_DT],[XML_TEMP],[BUSINESS_TYPE],[CMND],CIF_CODE)
74
		VALUES(@l_CUSTOMER_ID ,@p_CUSTOMER_CODE ,@p_CUSTOMER_NAME ,@p_GROUP_ID ,@p_BRANCH_ID ,@p_ADDR ,@p_EMAIL ,@p_PHONE ,@p_TAX_NO ,@p_CONTACT_PERSON ,@p_NOTES ,@p_DESCRIPTION ,'U' ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_EDITOR_ID ,CONVERT(DATETIME, @p_EDITOR_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@p_XML_TEMP,@p_BUSINESS_TYPE,@p_CMND,@p_CIF_CODE )
75
		IF @@Error <> 0 GOTO ABORT
76
COMMIT TRANSACTION
77
SELECT '0' as Result, @l_CUSTOMER_ID  CUSTOMER_ID, '' ErrorDesc
78
RETURN '0'
79
ABORT:
80
BEGIN
81
		ROLLBACK TRANSACTION
82
		SELECT '-1' as Result, '' CUSTOMER_ID, '' ErrorDesc
83
		RETURN '-1'
84
End
85

    
86

    
87
GO
88

    
89

    
90
ALTER PROCEDURE [dbo].[LS_CUSTOMER_Upd]
91
@p_CUSTOMER_ID	varchar(15) = null ,
92
@p_CUSTOMER_CODE	varchar(15) = NULL ,
93
@p_CUSTOMER_NAME	nvarchar(500) = NULL ,
94
@p_GROUP_ID	varchar(15) = NULL ,
95
@p_BRANCH_ID	varchar(15) = NULL ,
96
@p_ADDR	nvarchar(500) = NULL ,
97
@p_EMAIL	varchar(100) = NULL ,
98
@p_PHONE	varchar(15) = NULL ,
99
@p_TAX_NO	varchar(20) = NULL ,
100
@p_CONTACT_PERSON	nvarchar(500) = NULL ,
101
@p_NOTES	nvarchar(1000) = NULL ,
102
@p_DESCRIPTION	nvarchar(1000) = NULL ,
103
@p_AUTH_STATUS	varchar(1) = NULL ,
104
@p_RECORD_STATUS	varchar(1) = NULL ,
105
@p_MAKER_ID	nvarchar(15) = NULL ,
106
@p_CREATE_DT	VARCHAR(20) = NULL,
107
@p_EDITOR_ID	varchar(15) = NULL ,
108
@p_EDITOR_DT	VARCHAR(20) = NULL,
109
@p_CHECKER_ID	varchar(15) = NULL ,
110
@p_APPROVE_DT	VARCHAR(20) = NULL,
111
@p_CIF_CODE VARCHAR(50) = NULL,
112
@p_XML_TEMP	xml = NULL,
113
@p_BUSINESS_TYPE NVARCHAR(500) = NULL,
114
@p_CMND VARCHAR(50) = NULL
115
AS
116
/*
117
--Validation is here
118
*/
119
	IF (EXISTS ( SELECT * FROM LS_CUSTOMER WHERE CUSTOMER_CODE=@p_CUSTOMER_CODE AND CUSTOMER_ID<> @p_CUSTOMER_ID ))
120
	BEGIN
121
		SELECT '-1' Result, '' CUSTOMER_ID, N'Mã khách hàng này đã tồn tại' ErrorDesc
122
		RETURN '0'
123
	END
124
	IF(DATALENGTH(ISNULL(@p_CUSTOMER_CODE, '')) <> 8)
125
	BEGIN
126
		SELECT '-1' Result, '' CUSTOMER_ID , N'Chỉnh sửa khách hàng thất bại! Mã khách hàng phải đủ 8 số' ErrorDesc
127
		RETURN '-1'
128
	END
129
	IF(DATALENGTH(ISNULL(@p_CIF_CODE, '')) <> 8)
130
	BEGIN
131
		SELECT '-1' Result, '' CUSTOMER_ID , N'Chỉnh sửa khách hàng thất bại! CIF phải đủ 8 số' ErrorDesc
132
		RETURN '-1'
133
	END
134
	IF((SELECT TOP 1 ISNUMERIC(@p_CUSTOMER_CODE)) = 0)
135
	BEGIN
136
		SELECT '-1' Result, '' CUSTOMER_ID , N'Chỉnh sửa khách hàng thất bại! Mã khách hàng chỉ nhận dữ liệu số, không nhận ký tự' ErrorDesc
137
		RETURN '-1'
138
	END
139
	IF((SELECT TOP 1 ISNUMERIC(@p_CIF_CODE)) = 0)
140
	BEGIN
141
		SELECT '-1' Result, '' CUSTOMER_ID , N'Chỉnh sửa khách hàng thất bại! CIF chỉ nhận dữ liệu số, không nhận ký tự' ErrorDesc
142
		RETURN '-1'
143
	END
144

    
145
	IF(ISNULL(@p_CUSTOMER_NAME, '') = '')
146
	BEGIN
147
		SELECT '-1' Result, '' CUSTOMER_ID , N'Chỉnh sửa khách hàng thất bại! Tên khách hàng không được để trống' ErrorDesc
148
		RETURN '-1'
149
	END
150
	IF(dbo.fChuyenCoDauThanhKhongDau(@p_CUSTOMER_NAME) <> @p_CUSTOMER_NAME)
151
	BEGIN
152
		SELECT '-1' Result, '' CUSTOMER_ID , N'Chỉnh sửa khách hàng thất bại! Tên khách hàng phải là tiếng việt không dấu, in hoa' ErrorDesc
153
		RETURN '-1'
154
	END
155

    
156
	IF(ISNULL(@p_CUSTOMER_CODE, '') <> ISNULL(@p_CIF_CODE, ''))
157
	BEGIN
158
		SELECT '-1' Result, '' CUSTOMER_ID , N'Chỉnh sửa khách hàng thất bại! Mã khách hàng không khớp với CIF' ErrorDesc
159
		RETURN '-1'
160
	END
161
BEGIN TRANSACTION
162
		UPDATE LS_CUSTOMER SET [CUSTOMER_CODE] = @p_CUSTOMER_CODE,
163
		[GROUP_ID] = @p_GROUP_ID,[BRANCH_ID] = @p_BRANCH_ID,[ADDR] = @p_ADDR,
164
		[EMAIL] = @p_EMAIL,[PHONE] = @p_PHONE,[TAX_NO] = @p_TAX_NO,
165
		[CONTACT_PERSON] = @p_CONTACT_PERSON,[NOTES] = @p_NOTES,
166
		[DESCRIPTION] = @p_DESCRIPTION,
167
		[RECORD_STATUS] = @p_RECORD_STATUS,[MAKER_ID] = @p_MAKER_ID,
168
		[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[EDITOR_ID] = @p_EDITOR_ID,
169
		[EDITOR_DT] = CONVERT(DATETIME, @p_EDITOR_DT, 103),[CHECKER_ID] = @p_CHECKER_ID,
170
		[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),[XML_TEMP] = @p_XML_TEMP,
171
		[BUSINESS_TYPE]=@p_BUSINESS_TYPE,CIF_CODE=@p_CIF_CODE,CMND=@p_CMND
172
WHERE  CUSTOMER_ID= @p_CUSTOMER_ID
173

    
174
		IF @@Error <> 0 GOTO ABORT
175
COMMIT TRANSACTION
176
		SELECT '0' as Result, @p_CUSTOMER_ID  CUSTOMER_ID, '' ErrorDesc
177
		RETURN '0'
178
ABORT:
179
BEGIN
180
		ROLLBACK TRANSACTION
181
		SELECT '-1' as Result, '' CUSTOMER_ID, '' ErrorDesc
182
		RETURN '-1'
183
End
184

    
185
GO
186

    
187

    
188
ALTER   PROCEDURE [dbo].[MW_OUT_KT_App]
189
    @p_OUT_ID VARCHAR(15) = NULL,
190
    @p_KT_CHECKER_ID VARCHAR(15) = NULL,
191
    @p_KT_APPROVE_DT VARCHAR(20) = NULL,
192
    @p_XmlData XML = NULL
193
AS
194
DECLARE 
195
        @OUT_DT_ID VARCHAR(15) = NULL,@ERROR NVARCHAR(500),
196
        @TOTAL_AMT NUMERIC(18, 0) = NULL,
197
        @BRANCH_CREATE VARCHAR(15) = NULL,
198
        @CORE_NOTE NVARCHAR(1000) = NULL,
199
        @KT_MAKER_ID VARCHAR(20) = NULL,
200
        @BRANCH_ID VARCHAR(15) = NULL,
201
        @DEPT_ID VARCHAR(15) = NULL,
202
        @PRICE_ID VARCHAR(15) = NULL,
203
        @GROUP_ID VARCHAR(15) = NULL,
204
		@MATERIAL_ID VARCHAR(15) = NULL,@TO_BRN_ID VARCHAR(15) = NULL,@TO_DEPT_ID VARCHAR(15) = NULL,
205
		@IS_PROMO VARCHAR(1) = NULL, @VAT NUMERIC(18, 0), @VAT_AMT NUMERIC(18, 0),@PRICE_VAT NUMERIC(18, 0),
206
		--01-03-2019 : LUCTV BO SUNG NHUNG BIEN LIEN QUAN TOI PHAN UPDATE-INSERT KHI DUYET
207
		@BRN_ID VARCHAR(15) =NULL,
208
		@MAST_BAL_ID VARCHAR(15) =NULL,
209
		@CUST_NAME NVARCHAR(200) =NULL,
210
		@QTY DECIMAL(18,2)=NULL,
211
		@PRICE NUMERIC(18, 0) =NULL,
212
		@NOTES NVARCHAR(500) =NULL
213

    
214
DECLARE XmlData CURSOR FOR
215
SELECT A.OUT_DT_ID, A.TOTAL_AMT, A.TO_BRN_ID, A.TO_DEPT_ID, B.BRANCH_CREATE, B.CORE_NOTE,
216
B.KT_MAKER_ID, C.BRANCH_ID, C.DEPT_ID, D.PRICE_ID, E.GROUP_ID, E.MATERIAL_ID, A.IS_BCT /*E.IS_PROMO*/, E.VAT, E.PRICE_VAT,A.QTY,
217
A.TO_BRN_ID, A.MAST_BAL_ID,A.CUST_NAME,A.QTY,A.PRICE,A.NOTES, A.COST_ACC
218
FROM MW_OUT_DT A
219
INNER JOIN MW_OUT B ON A.OUT_ID = B.OUT_ID
220
INNER JOIN MW_MAST_BAL C ON A.MAST_BAL_ID = C.MAST_BAL_ID
221
INNER JOIN MW_MAST_PRICE D ON D.PRICE_ID = C.PRICE_ID
222
INNER JOIN MW_IN E ON D.MATERIAL_ID = E.IN_ID
223
WHERE A.OUT_ID = @p_OUT_ID
224
    
225
OPEN XmlData;
226

    
227
BEGIN TRANSACTION;
228
-- 02-04-19: KIEM TRA NEU DANG TRA VE THI KHONG DUOC PHEP DUYET
229
IF((SELECT KT_AUTH_STATUS FROM MW_OUT WHERE OUT_ID = @p_OUT_ID) ='R')
230
	BEGIN
231
		CLOSE XmlData
232
		DEALLOCATE XmlData
233
		ROLLBACK TRANSACTION
234
		SELECT '-1' as Result,@p_OUT_ID OUT_ID, N'Giao dịch đang bị trả về. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
235
		RETURN '-1'
236
	END
237
UPDATE [dbo].[MW_OUT]
238
SET KT_AUTH_STATUS = 'A',
239
    KT_APPROVE_DT = CONVERT(DATETIME, @p_KT_APPROVE_DT, 103),
240
    KT_CHECKER_ID = @p_KT_CHECKER_ID
241
WHERE [OUT_ID] = @p_OUT_ID;
242
IF @@Error <> 0
243
    GOTO ABORT;
244
--Insert XmlData
245
--DELETE FROM MW_OUT_DT WHERE OUT_ID =@p_OUT_ID
246
DECLARE @EXP_ACCTNO VARCHAR(50), @MATERIAL_ACCTNO VARCHAR(50), @VAT_ACCTNO VARCHAR(50)
247

    
248
FETCH NEXT FROM XmlData INTO @OUT_DT_ID, @TOTAL_AMT,@TO_BRN_ID,@TO_DEPT_ID, @BRANCH_CREATE , @CORE_NOTE ,@KT_MAKER_ID ,@BRANCH_ID ,@DEPT_ID ,@PRICE_ID ,@GROUP_ID ,@MATERIAL_ID ,@IS_PROMO, @VAT, @PRICE_VAT,@QTY,
249
						     @TO_BRN_ID, @MAST_BAL_ID,@CUST_NAME,@QTY,@PRICE,@NOTES,@EXP_ACCTNO
250
DECLARE @l_SUM_QTY_BALANCE DECIMAL(18,2)=0,@BR_CODE VARCHAR(15),@DP_CODE VARCHAR(25)
251
DECLARE @l_REMAIN_AMT NUMERIC(18, 2)=0;
252
DECLARE @l_TOTAL_AMT NUMERIC(18, 2)=0;
253
DECLARE @INDEX INT =0
254
WHILE @@FETCH_STATUS = 0
255
BEGIN
256

    
257
	-------- 01/03/2018 LUCTV: EDIT CODE KE TOAN DUYET THI MOI PHAT SINH UPDATE DU LIEU
258
	SELECT @l_SUM_QTY_BALANCE=SUM(QTY_BALANCE),
259
        @l_REMAIN_AMT=SUM(TOTAL_AMT)
260
     FROM MW_MAST_BAL
261
     WHERE MAST_BAL_ID=@MAST_BAL_ID;/*PRICE_ID=(SELECT PRICE_ID FROM MW_MAST_BAL WHERE MAST_BAL_ID=@MAST_BAL_ID)AND */ 
262
    --IF(@QTY>@l_SUM_QTY_BALANCE)BEGIN
263
    --    ROLLBACK TRANSACTION;
264
    --    SELECT '-1' AS Result,
265
    --        @p_OUT_ID OUT_ID,
266
    --        N'Số lượng xuất vượt quá số lượng tồn' ErrorDesc;
267
    --    RETURN '-1';
268
    --END;
269
 	SET @INDEX = @INDEX+1
270
	-- 07 -03 -2019 KIEM TRA LAI SO LUONG (VI SE CO TRUONG HOP VUA DIEU CHUYEN, VUA XUAT SD, VƯA THU HOI, VUA THANH LY TREN 1 MAST_BAL_ID)
271
	IF(@QTY > @l_SUM_QTY_BALANCE) /*(SELECT QTY_BALANCE FROM MW_MAST_BAL WHERE MAST_BAL_ID=@MAST_BAL_ID))*/
272
	BEGIN
273
		CLOSE XmlData
274
		DEALLOCATE XmlData
275
		ROLLBACK TRANSACTION
276
		SELECT '-1' as Result, @p_OUT_ID OUT_ID, N'Dòng '+ CONVERT(VARCHAR(15),@INDEX) +N': Số lượng xuất sử dụng vượt quá số lượng tồn' ErrorDesc
277
		RETURN '-1'
278
	END
279
    DECLARE @p_OUT_DT_ID VARCHAR(15);
280
    EXEC SYS_CodeMasters_Gen 'MW_OUT_DT', @p_OUT_DT_ID OUT;
281
    IF @p_OUT_DT_ID='' OR @p_OUT_DT_ID IS NULL GOTO ABORT;
282
    SELECT @BRN_ID=O.BRN_ID FROM dbo.MW_OUT O WHERE O.OUT_ID=@p_OUT_ID;
283
    
284
	IF((@QTY-@l_SUM_QTY_BALANCE)=0)---LA LO CUOI CUNG
285
	BEGIN
286
        --SET @l_TOTAL_AMT=@l_TOTAL_AMT-@l_SUM_TOTAL_AMT; --THIEUVQ 070120
287
		SET @TOTAL_AMT = @l_REMAIN_AMT; --THIEUVQ 070120
288
        UPDATE MW_MAST_BAL
289
        SET TOTAL_AMT= 0, --TOTAL_AMT-@TOTAL_AMT,--THIEUVQ 070120
290
           QTY_BALANCE= 0 --QTY_BALANCE-@QTY--THIEUVQ 070120
291
        WHERE MAST_BAL_ID=@MAST_BAL_ID;
292
        --LUCTV:30-11-2018 NEU DOT XUAT SU DUNG DO LA CUOI CUNG. THI CAP NHAT NGUOC SO TIEN VE CHO BANG MW_OUT_DT
293
        --UPDATE MW_OUT_DT SET TOTAL_AMT=@TOTAL_AMT WHERE OUT_DT_ID=@OUT_ID;
294
    END;
295
    ELSE 
296
	BEGIN
297
		IF @TOTAL_AMT > @l_REMAIN_AMT SET @TOTAL_AMT = @l_REMAIN_AMT --THIEUVQ 070120
298
        UPDATE MW_MAST_BAL
299
        SET TOTAL_AMT=TOTAL_AMT-@TOTAL_AMT,
300
            QTY_BALANCE=QTY_BALANCE-@QTY
301
        WHERE MAST_BAL_ID=@MAST_BAL_ID;
302
    END;
303
    DECLARE @p_ID_MAS_BAL VARCHAR(15);
304
    EXEC SYS_CodeMasters_Gen 'MW_MAST_BAL_STMT', @p_ID_MAS_BAL OUT;
305
    INSERT INTO MW_MAST_BAL_STMT(STMT_ID, REF_ID, MAST_BAL_ID, TRN_DATE, TRN_TIME, TRN_TYPE, CRDR, QTY, TRN_DESC, PRICE, TOTAL_AMT)
306
    VALUES(@p_ID_MAS_BAL, @p_OUT_ID, @MAST_BAL_ID, (SELECT KT_APPROVE_DT FROM MW_OUT WHERE OUT_ID=@p_OUT_ID), (SELECT TRN_TIME FROM MW_OUT WHERE OUT_ID=@p_OUT_ID),
307
    'O' , 'D', @QTY, @NOTES, @PRICE, @TOTAL_AMT);
308
	----- END LUCTV 01-03-2019
309
	---LAY TAI KHOAN HACH TOAN
310
	SELECT /*@EXP_ACCTNO = EXP_ACCTNO,*/ @MATERIAL_ACCTNO = MATERIAL_ACCTNO, @VAT_ACCTNO = VAT_ACCTNO 
311
	FROM MW_MATERIAL WHERE MATERIAL_ID = @MATERIAL_ID
312

    
313
	---NEU XUAT CHO KHACH HANG THI DON VI NO LA DV CHU QUAN
314
	IF @TO_BRN_ID IS NULL OR @TO_BRN_ID = ''
315
	BEGIN
316
		SET @TO_BRN_ID = @BRANCH_ID
317
		SET @TO_DEPT_ID = @DEPT_ID
318
	END
319
	---TRUONG HOP CN XUAT PHONG BAN TRUC THUOC HOI SO
320
	IF @TO_DEPT_ID IS NOT NULL AND @TO_DEPT_ID <> ''
321
	BEGIN
322
		--LAY MA BRANCH CODE
323
		SET @BR_CODE = (SELECT BRANCH_CODE FROM CM_BRANCH WHERE BRANCH_ID = @TO_BRN_ID)
324
		SET @DP_CODE = (SELECT DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID = @TO_DEPT_ID)
325
		--KIEM TRA MA PHONG BAN KHAC MA DON VI QUAN LY HIEN TAI THI GAN LAI BRANCH_ID
326
		IF @BR_CODE <> LEFT(@DP_CODE,3)
327
		BEGIN
328
			SET @TO_BRN_ID = (SELECT BRANCH_ID FROM CM_BRANCH WHERE BRANCH_CODE = LEFT(@DP_CODE,3) )
329
		END
330
	END
331

    
332
	
333

    
334
	---KIEM TRA CO THUE DAU RA HAY KHONG
335
	IF(@IS_PROMO = 'Y') --CO THUE VAT DAU RA, HACH TOAN BUT TOAN VAT
336
	BEGIN
337
		---NO TK CHI PHI - NEU NGUOI NHAN LA KHACH HANG THI HACH TOAN CHO DV CHU QUAN, NEU LA PHONG BAN NHAN THI HACH TOAN CHO PHONG BAN
338
		---CO TK VAT LIEU - DON VI CHU QUAN
339
		EXEC [dbo].[MW_ENTRIES_POST_Insert] @PRICE_ID, 'MW_OUT_VAT', @OUT_DT_ID, @BRANCH_CREATE, @MATERIAL_ACCTNO, @BRANCH_ID, @EXP_ACCTNO, @TO_BRN_ID, @TOTAL_AMT, 'Y', 
340
			@p_KT_APPROVE_DT, @CORE_NOTE, @KT_MAKER_ID, @p_KT_CHECKER_ID, @p_OUT_ID,@TO_DEPT_ID, @ERROR OUT
341
		IF @ERROR <> '0' GOTO ABORT	
342

    
343
		SET @VAT=10
344
		--TINH SO TIEN VAT
345
		SET @VAT_AMT = ROUND(@TOTAL_AMT*@VAT/100,0)
346

    
347
		--NO TK CHI PHI - CO TK VAT
348
		EXEC [dbo].[MW_ENTRIES_POST_Insert] @PRICE_ID, 'MW_OUT_VAT', @OUT_DT_ID, @BRANCH_CREATE, @VAT_ACCTNO, @BRANCH_ID, @EXP_ACCTNO, @TO_BRN_ID, @VAT_AMT, 'Y', 
349
			@p_KT_APPROVE_DT, @CORE_NOTE, @KT_MAKER_ID, @p_KT_CHECKER_ID, @p_OUT_ID,@TO_DEPT_ID, @ERROR OUT
350
		IF @ERROR <> '0' GOTO ABORT	
351
	END
352
	ELSE
353
	BEGIN
354
		---NO TK CHI PHI - NEU NGUOI NHAN LA KHACH HANG THI HACH TOAN CHO DV CHU QUAN, NEU LA PHONG BAN NHAN THI HACH TOAN CHO PHONG BAN
355
		---CO TK VAT LIEU - DON VI CHU QUAN
356
		EXEC [dbo].[MW_ENTRIES_POST_Insert] @PRICE_ID, 'MW_OUT', @OUT_DT_ID, @BRANCH_CREATE, @MATERIAL_ACCTNO, @BRANCH_ID, @EXP_ACCTNO, @TO_BRN_ID, @TOTAL_AMT, 'Y', 
357
			@p_KT_APPROVE_DT, @CORE_NOTE, @KT_MAKER_ID, @p_KT_CHECKER_ID, @p_OUT_ID,@TO_DEPT_ID, @ERROR OUT
358
		IF @ERROR <> '0' GOTO ABORT	
359
	END
360

    
361
    FETCH NEXT FROM XmlData INTO @OUT_DT_ID, @TOTAL_AMT,@TO_BRN_ID,@TO_DEPT_ID, @BRANCH_CREATE , @CORE_NOTE ,@KT_MAKER_ID ,@BRANCH_ID ,@DEPT_ID ,@PRICE_ID ,@GROUP_ID ,@MATERIAL_ID ,@IS_PROMO , @VAT, @PRICE_VAT,@QTY,
362
								 @TO_BRN_ID, @MAST_BAL_ID,@CUST_NAME,@QTY,@PRICE,@NOTES,@EXP_ACCTNO
363
END;
364
CLOSE XmlData;
365
DEALLOCATE XmlData;
366

    
367
--doanptt 05/05/2022 thêm lịch sử xử lý
368
	INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
369
	VALUES(@p_OUT_ID,'KTAPP',@p_KT_CHECKER_ID,GETDATE(), N'Kế toán duyệt phiếu',N'Kế toán duyệt phiếu')
370

    
371
	IF((SELECT COUNT(*) FROM PL_PROCESS WHERE REQ_ID = @p_OUT_ID AND PROCESS_ID = 'KTAPP' AND PROCESS_DESC = N'Kế toán duyệt phiếu') > 1)
372
	BEGIN
373
		ROLLBACK TRANSACTION
374
		SELECT '1' AS Result, @p_OUT_ID OUT_ID,'' ErrorDesc;
375
		RETURN '1';
376
	END
377

    
378
COMMIT TRANSACTION;
379
SELECT '0' AS Result, @p_OUT_ID OUT_ID,'' ErrorDesc;
380
RETURN '0';
381
ABORT:
382
BEGIN
383
    CLOSE XmlData;
384
    DEALLOCATE XmlData;
385
    ROLLBACK TRANSACTION;
386
    SELECT '-1' AS Result,'' OUT_ID, '' ErrorDesc;
387
    RETURN '-1';
388
END;
389

    
390
--29052023_secretkey