Project

General

Profile

MW_TRANSFER_KT_App_HOTFIX.txt

Luc Tran Van, 03/30/2023 11:38 PM

 
1
CREATE PROCEDURE [dbo].[MW_TRANSFER_KT_App_HOTFIX]
2
    @p_TRANSFER_ID varchar(15) = NULL
3
AS
4
	DECLARE @TRANSFER_DT_ID VARCHAR(15) = NULL,@ERROR NVARCHAR(500),
5
			@TOTAL_AMT NUMERIC(18, 0) = NULL,
6
			@BRANCH_CREATE VARCHAR(15) = NULL,
7
			@CORE_NOTE NVARCHAR(1000) = NULL,
8
			@KT_MAKER_ID VARCHAR(20) = NULL,
9
			@BRANCH_ID VARCHAR(15) = NULL,
10
			@DEPT_ID VARCHAR(15) = NULL,
11
			@PRICE_ID VARCHAR(15) = NULL,
12
			@GROUP_ID VARCHAR(15) = NULL,
13
			@MATERIAL_ID VARCHAR(15) = NULL,@TO_BRN_ID VARCHAR(15) = NULL,@TO_DEPT_ID VARCHAR(15) = NULL,
14
			@IS_PROMO VARCHAR(1) = NULL, @VAT NUMERIC(18, 0), @VAT_AMT NUMERIC(18, 0),@PRICE_VAT NUMERIC(18, 0),
15
			-- LUCTV 01 03 2019 BO SUNG NHUNG BIEN PHUC VU CHO CURSOR DUYET
16
			@MAST_BAL_ID varchar(15) = NULL,
17
			@FR_BRN_ID varchar(15) = NULL,
18
			@FR_DEPT_ID varchar(15) = NULL,
19
			@FR_PRICE_ID varchar(15) = NULL,
20
			@QTY DECIMAL(18,2) = NULL,
21
			@QTY_OLD DECIMAL(18,2) = NULL,
22
			@PRICE numeric(18, 2) = NULL,
23
			@NOTES nvarchar(500) = NULL
24
	DECLARE @l_SUM_QTY_BALANCE DECIMAL(18,2)=0
25
	DECLARE @l_REMAIN_AMT NUMERIC(18, 2)=0;
26
	DECLARE XmlData CURSOR FOR
27
	SELECT A.TRANSFER_DT_ID, A.TOTAL_AMT, A.TO_BRN_ID, A.TO_DEPT_ID, B.BRANCH_CREATE, B.CORE_NOTE,
28
			B.KT_MAKER_ID, C.BRANCH_ID, C.DEPT_ID, D.PRICE_ID, E.GROUP_ID, E.MATERIAL_ID, 
29
			--LUCTV: BIEN CUA LUC THEM VO
30
			A.MAST_BAL_ID, A.FR_BRN_ID, A.FR_DEPT_ID, A.FR_PRICE_ID, A.QTY, A.QTY_OLD, A.PRICE, A.NOTES
31
	FROM MW_TRANSFER_DT A
32
	INNER JOIN MW_TRANSFER B ON A.TRANSFER_ID = B.TRANSFER_ID
33
	INNER JOIN MW_MAST_BAL C ON A.MAST_BAL_ID = C.MAST_BAL_ID
34
	INNER JOIN MW_MAST_PRICE D ON D.PRICE_ID = C.PRICE_ID
35
	INNER JOIN MW_IN E ON D.MATERIAL_ID = E.IN_ID
36
	WHERE A.TRANSFER_ID = @p_TRANSFER_ID
37

    
38
	OPEN XmlData
39
BEGIN TRANSACTION
40
	DECLARE @EXP_ACCTNO VARCHAR(50), @MATERIAL_ACCTNO VARCHAR(50), @VAT_ACCTNO VARCHAR(50), @TCCT VARCHAR(50)
41
	DECLARE @p_ID VARCHAR(15)
42
	DECLARE @INDEX INT =0
43
	DECLARE @IS_COLLECT VARCHAR(5),@TRN_TYPE VARCHAR(5)
44
	FETCH NEXT FROM XmlData INTO @TRANSFER_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, @MAST_BAL_ID, @FR_BRN_ID, @FR_DEPT_ID, @FR_PRICE_ID, @QTY, @QTY_OLD, @PRICE, @NOTES
45
	WHILE @@FETCH_STATUS = 0
46
	BEGIN
47
		-- 22-05-2019 : KIEM TRA DON VI TAO DIEU CHUYEN VAT LIEU VOI DON VI NHAN, NEU "PLAG" = Y THI LA THU HOI VAT LIEU, SET "TRN_TYPE=C",
48
		--------------  NGUOC LAI "TRN_TYPE =T".
49
		SET @IS_COLLECT = (SELECT [dbo].[FN_MW_CHECK_COLLECT](@BRANCH_CREATE,@TO_BRN_ID))
50
		IF(@IS_COLLECT='Y')
51
		BEGIN
52
			SET @TRN_TYPE='C'
53
		END
54
		ELSE
55
		BEGIN
56
			SET @TRN_TYPE='T'
57
		END
58

    
59
		SET @INDEX = @INDEX +1
60

    
61
		SELECT @l_SUM_QTY_BALANCE = SUM(QTY_BALANCE), @l_REMAIN_AMT = SUM(TOTAL_AMT)
62
		FROM MW_MAST_BAL
63
		WHERE MAST_BAL_ID = @MAST_BAL_ID;
64

    
65
		IF @TOTAL_AMT > @l_REMAIN_AMT SET @TOTAL_AMT = @l_REMAIN_AMT --THIEUVQ 070120
66
			
67
		--UPDATE DATA GIAM SO LUONG DON VI DIEU CHUYEN
68
		/*
69
		UPDATE MW_MAST_BAL 
70
		SET QTY_BALANCE = QTY_BALANCE - @QTY, TOTAL_AMT = TOTAL_AMT - @TOTAL_AMT								
71
		WHERE MAST_BAL_ID = @MAST_BAL_ID AND BRANCH_ID = @FR_BRN_ID
72
		*/
73

    
74
		-- DOANPTT 30032023: FIX BUG FR_PRICE_ID NULL
75
		IF(ISNULL(@FR_PRICE_ID, '') = '')
76
		BEGIN
77
			SET @FR_PRICE_ID = (SELECT TOP 1 PRICE_ID FROM MW_MAST_BAL WHERE MAST_BAL_ID = @MAST_BAL_ID)
78
		END
79

    
80
		-- NEU CHUA CO MA VAT LIEU NAY O DON VI NHAN
81
		IF(NOT EXISTS(SELECT * FROM MW_MAST_BAL WHERE BRANCH_ID= @TO_BRN_ID AND DEPT_ID = @TO_DEPT_ID AND PRICE_ID = @FR_PRICE_ID))
82
		BEGIN
83
			DECLARE @p_ID_MAS VARCHAR(15)
84
			EXEC SYS_CodeMasters_Gen 'MW_MAST_BAL', @p_ID_MAS out
85

    
86
			INSERT INTO MW_MAST_BAL(MAST_BAL_ID, PRICE_ID, BRANCH_ID, DEPT_ID, QTY_BALANCE, MATERIAL_ID, TOTAL_AMT,PRICE)
87
			VALUES(@p_ID_MAS,@FR_PRICE_ID,@TO_BRN_ID,@TO_DEPT_ID,@QTY,(SELECT MATERIAL_ID FROM MW_IN WHERE IN_ID =(SELECT MATERIAL_ID FROM MW_MAST_PRICE WHERE PRICE_ID=@FR_PRICE_ID)), @TOTAL_AMT, @PRICE)
88
			--INSERT TANG DON VI DIEU CHUYEN	
89
			EXEC SYS_CodeMasters_Gen 'MW_MAST_BAL_STMT', @p_ID OUT			
90
			INSERT INTO MW_MAST_BAL_STMT(STMT_ID, REF_ID, MAST_BAL_ID, TRN_DATE, TRN_TIME, TRN_TYPE, CRDR, QTY, TRN_DESC, TOTAL_AMT,PRICE)
91
			VALUES (@p_ID,@p_TRANSFER_ID,@p_ID_MAS,(SELECT TRN_DATE FROM MW_TRANSFER WHERE TRANSFER_ID=@p_TRANSFER_ID), (SELECT TRN_TIME FROM MW_TRANSFER WHERE TRANSFER_ID=@p_TRANSFER_ID),@TRN_TYPE,'C',@QTY,@NOTES, @TOTAL_AMT,@PRICE)
92
		END
93
		-- NEU DA CO MA VAT LIEU NAY O DON VI NHAN
94
		ELSE
95
		BEGIN
96
			EXEC SYS_CodeMasters_Gen 'MW_MAST_BAL_STMT', @p_ID out
97
			DECLARE @p_ID_MAS_BAL VARCHAR(15)
98
			SET @p_ID_MAS_BAL =(SELECT MAST_BAL_ID FROM MW_MAST_BAL WHERE BRANCH_ID= @TO_BRN_ID AND DEPT_ID = @TO_DEPT_ID AND PRICE_ID = @FR_PRICE_ID)
99
			--UPDATE DATA TANG SO LUONG DON VI NHAN
100
			UPDATE MW_MAST_BAL 
101
			SET QTY_BALANCE = QTY_BALANCE +@QTY, TOTAL_AMT = TOTAL_AMT+@TOTAL_AMT
102
			WHERE MAST_BAL_ID= @p_ID_MAS_BAL
103

    
104
			--INSERT TANG DON VI DIEU CHUYEN
105
			INSERT INTO MW_MAST_BAL_STMT(STMT_ID, REF_ID, MAST_BAL_ID, TRN_DATE, TRN_TIME, TRN_TYPE, CRDR, QTY, TRN_DESC, TOTAL_AMT,PRICE)
106
			VALUES (@p_ID,@p_TRANSFER_ID,@p_ID_MAS_BAL,GETDATE(), (SELECT TRN_TIME FROM MW_TRANSFER WHERE TRANSFER_ID=@p_TRANSFER_ID),@TRN_TYPE,'C',@QTY,@NOTES, @TOTAL_AMT,@PRICE)
107
		END
108

    
109
		--INSERT GIAM DON VI DIEU CHUYEN
110
		EXEC SYS_CodeMasters_Gen 'MW_MAST_BAL_STMT', @p_ID out
111
		INSERT INTO MW_MAST_BAL_STMT(STMT_ID, REF_ID, MAST_BAL_ID, TRN_DATE, TRN_TIME, TRN_TYPE, CRDR, QTY, TRN_DESC, TOTAL_AMT,PRICE)
112
		VALUES (@p_ID,@p_TRANSFER_ID,@MAST_BAL_ID,GETDATE(), (SELECT TRN_TIME FROM MW_TRANSFER WHERE TRANSFER_ID=@p_TRANSFER_ID),@TRN_TYPE,'D',@QTY,@NOTES, @TOTAL_AMT,@PRICE)
113
		
114
		FETCH NEXT FROM XmlData INTO @TRANSFER_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, @MAST_BAL_ID, @FR_BRN_ID, @FR_DEPT_ID, @FR_PRICE_ID, @QTY, @QTY_OLD, @PRICE, @NOTES
115
	END
116
	CLOSE XmlData
117
	DEALLOCATE XmlData
118
	IF @@Error <> 0 GOTO ABORT
119
COMMIT TRANSACTION
120
SELECT '0' as Result, @p_TRANSFER_ID  TRANSFER_ID ,'' ErrorDesc
121
RETURN '0'
122
ABORT:
123
BEGIN
124
		CLOSE XmlData
125
		DEALLOCATE XmlData
126
		ROLLBACK TRANSACTION
127
		SELECT '-1' as Result, '' TRANSFER_ID, '' ErrorDesc
128
		RETURN '-1'
129
END