Project

General

Profile

Thanh lý KT_APP.txt

Luc Tran Van, 11/17/2023 09:39 AM

 
1

    
2
ALTER PROCEDURE dbo.MW_LIQ_MASTER_KT_App
3
    @p_LIQ_ID VARCHAR(15) = NULL,
4
    @p_KT_CHECKER_ID VARCHAR(100) = NULL,
5
    @p_KT_APPROVE_DT VARCHAR(20) = NULL,
6
    @p_XmlData XML = NULL
7
AS
8
DECLARE 
9
        @LIQ_DT_ID VARCHAR(15) = NULL,@ERROR NVARCHAR(500),
10
        @TOTAL_AMT NUMERIC(18, 0) = NULL,
11
        @BRANCH_CREATE VARCHAR(15) = NULL, 
12
        @CORE_NOTE NVARCHAR(1000) = NULL,
13
        @KT_MAKER_ID VARCHAR(100) = NULL,
14
        @BRANCH_ID VARCHAR(15) = NULL,
15
        @DEPT_ID VARCHAR(15) = NULL,
16
        @PRICE_ID VARCHAR(15) = NULL,
17
        @GROUP_ID VARCHAR(15) = NULL,
18
		@MATERIAL_ID VARCHAR(15) = NULL,@TO_BRN_ID VARCHAR(15) = NULL,@TO_DEPT_ID VARCHAR(15) = NULL,
19
		@IS_PROMO VARCHAR(1) = NULL, @VAT NUMERIC(18, 0), @VAT_AMT NUMERIC(18, 0),@PRICE_VAT NUMERIC(18, 0),
20
		--01-03-2019 : LUCTV BO SUNG NHUNG BIEN LIEN QUAN TOI PHAN UPDATE-INSERT KHI DUYET
21
		@BRN_ID VARCHAR(15) =NULL,
22
		@MAST_BAL_ID VARCHAR(15) =NULL,
23
		@CUST_NAME NVARCHAR(200) =NULL,
24
		@QTY DECIMAL(18,2)=NULL,
25
		@PRICE NUMERIC(18, 0) =NULL,
26
		@SALE_PRICE NUMERIC(18, 0) =NULL,
27
		@REMAIN_PRICE NUMERIC(18, 0) =NULL,
28
		@NOTES NVARCHAR(1000) =NULL
29

    
30
DECLARE @l_MAKER_ID VARCHAR(150) = NULL;
31
DECLARE @l_DEP_CODE VARCHAR(15) = NULL;
32
DECLARE @l_D_BRANCH_CODE VARCHAR(15) = NULL;
33
DECLARE @l_C_BRANCH_CODE VARCHAR(15) = NULL
34
DECLARE @l_CORE_NOTE VARCHAR(1500) = NULL
35
DECLARE @l_MAT_CODE VARCHAR(15) = NULL, @l_WARE_ID VARCHAR(15) = NULL, @COST_ACC VARCHAR(50) = NULL
36

    
37
DECLARE XmlData CURSOR FOR
38
SELECT A.LIQ_DT_ID, A.TOTAL_AMT, A.TO_BRN_ID, A.TO_DEPT_ID, B.BRANCH_CREATE, B.CORE_NOTE,
39
B.KT_MAKER_ID, C.BRANCH_ID, C.DEPT_ID, D.PRICE_ID, E.GROUP_ID, E.MATERIAL_ID, E.IS_PROMO, A.VAT, A.PRICE_VAT,A.QTY,
40
												   A.TO_BRN_ID, A.MAST_BAL_ID,A.CUST_NAME,A.QTY,A.PRICE,A.NOTES, A.COST_ACC
41
                                                  ,A.SALE_PRICE,A.REMAIN_PRICE
42
FROM MW_LIQ_DT A
43
INNER JOIN MW_LIQ_MASTER B ON A.LIQ_ID = B.LIQ_ID
44
INNER JOIN MW_MAST_BAL C ON A.MAST_BAL_ID = C.MAST_BAL_ID
45
INNER JOIN MW_MAST_PRICE D ON D.PRICE_ID = C.PRICE_ID
46
INNER JOIN MW_IN E ON D.MATERIAL_ID = E.IN_ID
47
WHERE A.LIQ_ID = @p_LIQ_ID
48
OPEN XmlData;
49
BEGIN TRANSACTION;
50
-- 02-04-19: KIEM TRA NEU DANG TRA VE THI KHONG DUOC PHEP DUYET
51
IF((SELECT KT_AUTH_STATUS FROM MW_LIQ_MASTER WHERE LIQ_ID = @p_LIQ_ID) ='R')
52
		BEGIN
53
			CLOSE XmlData
54
			DEALLOCATE XmlData
55
			ROLLBACK TRANSACTION
56
			SELECT '-1' as Result, @p_LIQ_ID LIQ_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
57
			RETURN '-1'
58
END
59
--end
60
UPDATE [dbo].[MW_LIQ_MASTER]
61
SET KT_AUTH_STATUS = 'A',
62
    KT_APPROVE_DT = CONVERT(DATETIME, @p_KT_APPROVE_DT, 103),
63
    KT_CHECKER_ID = @p_KT_CHECKER_ID
64
WHERE [LIQ_ID] = @p_LIQ_ID;
65
IF @@Error <> 0 GOTO ABORT;
66

    
67
        ----- SO GIAO DICH
68
        DECLARE @l_TRN_NO VARCHAR(15), @l_MAKER_KT VARCHAR(100), @l_ETP_ID VARCHAR(20), @l_ET_ID VARCHAR(20)
69
        SELECT @l_MAKER_KT = KT_MAKER_ID FROM [MW_LIQ_MASTER] WHERE [LIQ_ID] = @p_LIQ_ID
70
        EXEC ENTRIES_POST_GEN_NO_MW @p_BRANCH_ID = @l_MAKER_KT
71
                        ,@p_TRN_DATE = @p_KT_APPROVE_DT
72
                        ,@p_KeyGen = @l_TRN_NO OUT
73
        -----------------
74
--Insert XmlData
75
--DELETE FROM MW_OUT_DT WHERE OUT_ID =@p_OUT_ID
76
DECLARE @EXP_ACCTNO VARCHAR(50), @MATERIAL_ACCTNO VARCHAR(50), @VAT_ACCTNO VARCHAR(50)
77

    
78
FETCH NEXT FROM XmlData INTO @LIQ_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,
79
						     @TO_BRN_ID, @MAST_BAL_ID,@CUST_NAME,@QTY,@PRICE,@NOTES,@COST_ACC,@SALE_PRICE,@REMAIN_PRICE
80
DECLARE @l_SUM_QTY_BALANCE DECIMAL(18,2)=0;
81
DECLARE @l_SUM_TOTAL_AMT NUMERIC(18, 2)=0;
82
DECLARE @l_TOTAL_AMT NUMERIC(18, 2)=0;
83
DECLARE @INDEX INT =0
84
WHILE @@FETCH_STATUS = 0
85
BEGIN
86

    
87
	-------- 01/03/2018 LUCTV: EDIT CODE KE TOAN DUYET THI MOI PHAT SINH UPDATE DU LIEU
88
		SET @INDEX = @INDEX+1
89

    
90
		-- 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)
91
--		IF(@QTY > (SELECT QTY_BALANCE FROM MW_MAST_BAL WHERE MAST_BAL_ID=@MAST_BAL_ID))
92
--		BEGIN
93
--			CLOSE XmlData
94
--			DEALLOCATE XmlData
95
--			ROLLBACK TRANSACTION
96
--			SELECT '-1' as Result, @p_LIQ_ID LIQ_ID, N'Dòng '+ CONVERT(VARCHAR(15),@INDEX) +N': Số lượng thanh lý vượt quá số lượng tồn' ErrorDesc
97
--			RETURN '-1'
98
--		END
99

    
100
      --- GET DATA MASTER
101
     SELECT @BRN_ID=O.BRN_ID, @l_WARE_ID = O.WARE_HOUSE, @l_CORE_NOTE = O.CORE_NOTE  FROM dbo.MW_LIQ_MASTER O WHERE O.LIQ_ID=@p_LIQ_ID;
102

    
103
	 UPDATE MW_MAST_BAL
104

    
105

    
106
      -- kietvt: 7/9/2023: them tru so luong thuc te 
107
            
108
			SET TOTAL_AMT= TOTAL_AMT-@TOTAL_AMT,
109
          QTY_REAL = QTY_REAL - @QTY,
110
          QTY_BALANCE=QTY_BALANCE-@QTY
111
			WHERE MAST_BAL_ID=@MAST_BAL_ID;
112

    
113

    
114
    DECLARE @p_ID_MAS_BAL VARCHAR(15);
115
    EXEC SYS_CodeMasters_Gen 'MW_MAST_BAL_STMT', @p_ID_MAS_BAL OUT;
116
    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)
117
    VALUES(@p_ID_MAS_BAL, @p_LIQ_ID, @MAST_BAL_ID, (SELECT KT_APPROVE_DT FROM MW_LIQ_MASTER WHERE LIQ_ID=@p_LIQ_ID), (SELECT TRN_TIME FROM MW_LIQ_MASTER WHERE LIQ_ID=@p_LIQ_ID),
118
    'L' , 'D', @QTY, @NOTES, @PRICE, @TOTAL_AMT);
119
	----- END LUCTV 01-03-2019
120

    
121

    
122

    
123
	----------------HACH TOAN 07/09/2023 KHIEMCHG------------------
124
    -------------------CHECK THEO LOAI KHO-------------------------
125
    DECLARE @l_HS_BRANCH_CODE VARCHAR(20) = (SELECT CB.BRANCH_CODE FROM CM_BRANCH CB WHERE CB.BRANCH_TYPE = 'HS')
126
    DECLARE @WARE_CODE VARCHAR(20) = (SELECT CW.WARE_CODE FROM CM_WARE CW WHERE CW.WARE_ID = @l_WARE_ID)
127
    DECLARE @WARE_ACCNO VARCHAR(20) = (SELECT CW.ACC_ACCOUNTING FROM CM_WARE CW WHERE CW.WARE_ID = @l_WARE_ID)
128
    DECLARE @PAYHS VARCHAR(20) = (SELECT EPAM.ACC_NO FROM ENTRIES_POST_ACCNO_MW EPAM WHERE EPAM.ACC_TYPE = 'PAY_HS')
129
    DECLARE @ACC_VAT_NEC VARCHAR(20) = (SELECT TOP 1 EPAM.ACC_NO FROM ENTRIES_POST_ACCNO_MW EPAM WHERE EPAM.ACC_TYPE = 'ACC_VAT_NEC')
130
    
131
      ---LAY TAI KHOAN HACH TOAN
132
	SELECT @EXP_ACCTNO = EXP_ACCTNO, @MATERIAL_ACCTNO = MATERIAL_ACCTNO, @VAT_ACCTNO = VAT_ACCTNO, @l_MAT_CODE = MATERIAL_CODE 
133
	FROM MW_MATERIAL WHERE MATERIAL_ID = @MATERIAL_ID--LAY MA BRANCH CODE
134
        DECLARE @DB_ID VARCHAR(15) = (SELECT CW.DEP_ID FROM CM_WARE CW WHERE CW.WARE_ID = @l_WARE_ID)
135
        SELECT @l_DEP_CODE = CD.DEP_CODE
136
        FROM CM_DEPARTMENT CD LEFT JOIN CM_BRANCH CB ON CD.BRANCH_ID = CB.BRANCH_ID 
137
        WHERE CD.DEP_ID = @DB_ID
138

    
139
    BEGIN
140
        IF ISNULL(@SALE_PRICE,0) = 0
141
        BEGIN
142
            EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST', @l_ET_ID out
143
            	--- TODO: NỢ TK 8990
144
            EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
145
            INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
146
            VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID, @l_HS_BRANCH_CODE, @COST_ACC /*'861901001'*/, 'VND', 'D', @QTY*@PRICE, 1, @QTY*@PRICE, @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
147
    	    IF @ERROR <> '0' GOTO ABORT
148
        
149
            --- TODO: CÓ TK313001001 (theo số lượng*đơn giá)
150
        	EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
151
            INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
152
            VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID,@l_HS_BRANCH_CODE, @WARE_ACCNO, 'VND', 'C', @QTY*@PRICE, 1, @QTY*@PRICE, @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
153
        	IF @ERROR <> '0' GOTO ABORT
154
        END
155
        
156
        ELSE IF ISNULL(@SALE_PRICE,0) > 0
157
        BEGIN
158
            IF ISNULL(@SALE_PRICE,0) < @TOTAL_AMT
159
            BEGIN
160
            	EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST', @l_ET_ID OUT
161

    
162
                --- TODO: NỢ TK4662 TIỀN CÓ VAT
163
                EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
164
                INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
165
                VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID, @l_HS_BRANCH_CODE, @PAYHS, 'VND', 'D', @REMAIN_PRICE, 1, @REMAIN_PRICE, @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
166
            	IF @ERROR <> '0' GOTO ABORT
167
                --- TODO: NỢ TK
168
                EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
169
                INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
170
                VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID, @l_HS_BRANCH_CODE, @COST_ACC , 'VND', 'D', @TOTAL_AMT-ISNULL(@SALE_PRICE,0), 1,@TOTAL_AMT-ISNULL(@SALE_PRICE,0), @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
171
            	IF @ERROR <> '0' GOTO ABORT
172
                
173
                --- TODO: CÓ TK313001001 (theo số lượng*đơn giá)
174
            	EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
175
                INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
176
                VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID,@l_HS_BRANCH_CODE, @WARE_ACCNO, 'VND', 'C', @QTY*@PRICE, 1, @QTY*@PRICE, @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
177
            	IF @ERROR <> '0' GOTO ABORT
178

    
179
                --- TODO: CÓ TK313001001 (theo số lượng*đơn giá)
180
            	EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
181
                INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
182
                VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID,@l_HS_BRANCH_CODE, @ACC_VAT_NEC, 'VND', 'C', @PRICE_VAT, 1, @PRICE_VAT, @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
183
            	IF @ERROR <> '0' GOTO ABORT
184
               
185

    
186
            END
187
            ELSE IF ISNULL(@SALE_PRICE,0) = @TOTAL_AMT
188
            BEGIN
189
            	EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST', @l_ET_ID out
190
                --- TODO: NỢ TK4662 TIỀN CÓ VAT
191
                EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
192
                INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
193
                VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID, @l_HS_BRANCH_CODE, @PAYHS, 'VND', 'D', @REMAIN_PRICE, 1, @REMAIN_PRICE, @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
194
            	IF @ERROR <> '0' GOTO ABORT
195

    
196
                --- TODO: NỢ TK
197
--                EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
198
--                INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
199
--                VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID, @l_HS_BRANCH_CODE, @COST_ACC , 'VND', 'D', 0, 1,0, @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
200
--            	IF @ERROR <> '0' GOTO ABORT
201

    
202
                --- TODO: CÓ TK313001001 (theo số lượng*đơn giá)
203
            	EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
204
                INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
205
                VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID,@l_HS_BRANCH_CODE, @ACC_VAT_NEC, 'VND', 'C', @PRICE_VAT, 1, @PRICE_VAT, @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
206
            	IF @ERROR <> '0' GOTO ABORT
207

    
208
                --- TODO: CÓ TK313001001 (theo số lượng*đơn giá)
209
            	EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
210
                INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
211
                VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID,@l_HS_BRANCH_CODE, @WARE_ACCNO, 'VND', 'C', @QTY*@PRICE, 1, @QTY*@PRICE, @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
212
            	IF @ERROR <> '0' GOTO ABORT
213
            END
214
            ELSE IF ISNULL(@SALE_PRICE,0) > @TOTAL_AMT
215
            BEGIN
216
            	EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST', @l_ET_ID out
217
                --- TODO: NỢ TK4662 TIỀN CÓ VAT
218
                EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
219
                INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
220
                VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID, @l_HS_BRANCH_CODE, @PAYHS, 'VND', 'D', @REMAIN_PRICE, 1, @REMAIN_PRICE, @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
221
            	IF @ERROR <> '0' GOTO ABORT
222
                --- TODO: NỢ TK
223
                EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
224
                INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
225
                VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID, @l_HS_BRANCH_CODE, @COST_ACC , 'VND', 'C', ISNULL(@SALE_PRICE,0)-@TOTAL_AMT, 1,ISNULL(@SALE_PRICE,0)-@TOTAL_AMT, @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
226
            	IF @ERROR <> '0' GOTO ABORT
227

    
228
                --- TODO: CÓ TK313001001 (theo số lượng*đơn giá)
229
            	EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
230
                INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
231
                VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID,@l_HS_BRANCH_CODE, @ACC_VAT_NEC, 'VND', 'C', @PRICE_VAT, 1, @PRICE_VAT, @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
232
            	IF @ERROR <> '0' GOTO ABORT
233

    
234
                --- TODO: CÓ TK313001001 (theo số lượng*đơn giá)
235
            	EXEC SYS_CodeMasters_Gen 'MW_ENTRIES_POST_SYNC', @l_ETP_ID out
236
                INSERT INTO MW_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_TYPE, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO, WARE_CODE)
237
                VALUES (@l_ETP_ID, @l_ET_ID, 'MW_LIQ_MASTER', @p_LIQ_ID,@l_HS_BRANCH_CODE, @WARE_ACCNO, 'VND', 'C', @QTY*@PRICE, 1, @QTY*@PRICE, @l_MAT_CODE,CONVERT(DATETIME, @p_KT_APPROVE_DT, 103), @l_MAKER_KT, @p_KT_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,@WARE_CODE);
238
            	IF @ERROR <> '0' GOTO ABORT
239
            END
240

    
241
        END
242

    
243
    END
244

    
245
	----------------END HACH TOAN 07/09/2023 KHIEMCHG------------------
246

    
247
    FETCH NEXT FROM XmlData INTO @LIQ_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,
248
								 @TO_BRN_ID, @MAST_BAL_ID,@CUST_NAME,@QTY,@PRICE,@NOTES,@COST_ACC,@SALE_PRICE,@REMAIN_PRICE
249
END;
250
CLOSE XmlData;
251
DEALLOCATE XmlData;
252

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

    
257
COMMIT TRANSACTION;
258
SELECT '0' AS Result, @p_LIQ_ID LIQ_ID,'' ErrorDesc;
259
RETURN '0';
260
ABORT:
261
BEGIN
262
    CLOSE XmlData;
263
    DEALLOCATE XmlData;
264
    ROLLBACK TRANSACTION;
265
    SELECT '-1' AS Result,'' LIQ_ID, '' ErrorDesc;
266
    RETURN '-1';
267
END;