Project

General

Profile

Thanh lý vl_APP.txt

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

 
1
/*INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('MW_MAST_BAL','MASB','') 
2
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('MASB','1','1')*/
3
/*INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('MW_OUT_DT','MWTDT','')
4
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('MWTDT','1','1')*/
5

    
6
ALTER PROCEDURE dbo.MW_LIQ_MASTER_App @p_LIQ_ID VARCHAR(15) =NULL,
7
    @p_CHECKER_ID VARCHAR(100) =NULL,
8
    @p_APPROVE_DT VARCHAR(20) =NULL,
9
    @p_XmlData XML=NULL
10
AS
11
DECLARE @LIQ_ID VARCHAR(15) =NULL,
12
    @BRN_ID VARCHAR(15) =NULL,
13
    @MAST_BAL_ID VARCHAR(15) =NULL,
14
    @CUST_NAME NVARCHAR(200) =NULL,
15
    @QTY DECIMAL(18,2)=NULL,
16
    @PRICE NUMERIC(18, 0) =NULL,
17
    @TOTAL_AMT NUMERIC(18, 2) =NULL,
18
    @NOTES NVARCHAR(1000) =NULL,
19
    @TO_BRN_ID VARCHAR(15) =NULL,
20
    @TO_DEPT_ID VARCHAR(15) =NULL;
21
DECLARE @hdoc INT;
22
EXEC sp_xml_preparedocument @hdoc OUTPUT, @p_XmlData;
23
DECLARE XmlData CURSOR FOR
24
SELECT *
25
  FROM
26
    OPENXML(@hdoc, '/Root/XmlData', 2)
27
    WITH(
28
        LIQ_ID VARCHAR(15),
29
        MAST_BAL_ID VARCHAR(15),
30
        --FR_BRN_ID varchar(15) ,
31
        --FR_DEPT_ID varchar(15) ,
32
        --FR_PRICE_ID varchar(15) ,
33
        CUST_NAME NVARCHAR(200),
34
        QTY DECIMAL(18,2),
35
        --QTY_OLD int ,
36
        PRICE NUMERIC(18, 0),
37
        TOTAL_AMT NUMERIC(18, 2),
38
        NOTES NVARCHAR(1000),
39
        TO_BRN_ID VARCHAR(15),
40
        TO_DEPT_ID VARCHAR(15)
41
        );
42
OPEN XmlData;
43
BEGIN TRANSACTION;
44
--Insert XmlData
45
--DELETE FROM MW_OUT_DT WHERE OUT_ID =@p_OUT_ID
46
DECLARE @p_ID VARCHAR(15);
47
FETCH NEXT FROM XmlData
48
 INTO @LIQ_ID,
49
     @MAST_BAL_ID,
50
     @CUST_NAME,
51
     @QTY,
52
     @PRICE,
53
     @TOTAL_AMT,
54
     @NOTES,
55
     @TO_BRN_ID,
56
     @TO_DEPT_ID;
57
DECLARE @l_SUM_QTY_BALANCE DECIMAL(18,2)=0;
58
DECLARE @l_SUM_TOTAL_AMT NUMERIC(18, 2)=0;
59
DECLARE @l_TOTAL_AMT NUMERIC(18, 2)=0;
60
IF(@@FETCH_STATUS=-1)BEGIN
61
    ROLLBACK TRANSACTION;
62
    SELECT '-1' AS Result,
63
        @p_LIQ_ID LIQ_ID,
64
        N'Vui lòng duyệt lại sau khi dữ liệu được load hoàn tất' ErrorDesc;
65
    RETURN '-1';
66
END;
67
-- 02-04-19: KIEM TRA NEU DANG TRA VE THI KHONG DUOC PHEP DUYET
68
IF((SELECT AUTH_STATUS FROM MW_LIQ_MASTER WHERE LIQ_ID = @p_LIQ_ID) ='R')
69
		BEGIN
70
			CLOSE XmlData
71
			DEALLOCATE XmlData
72
			ROLLBACK TRANSACTION
73
			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
74
			RETURN '-1'
75
END
76
--end
77
UPDATE [dbo].[MW_LIQ_MASTER]
78
   SET AUTH_STATUS='A', KT_AUTH_STATUS = 'E',
79
    CHECKER_ID=@p_CHECKER_ID,
80
	TOTAL_AMT = (SELECT SUM(TOTAL_AMT) FROM MW_LIQ_DT WHERE LIQ_ID =@p_LIQ_ID),
81
    APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103)
82
 WHERE [LIQ_ID]=@p_LIQ_ID;
83
 DECLARE @INDEX INT =0
84
IF @@Error<>0 GOTO ABORT;
85
WHILE @@FETCH_STATUS=0 BEGIN
86
		SET @INDEX = @INDEX+1
87
		-- 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)
88
--		IF(@QTY > (SELECT QTY_BALANCE FROM MW_MAST_BAL WHERE MAST_BAL_ID=@MAST_BAL_ID))
89
--		BEGIN
90
--			CLOSE XmlData
91
--			DEALLOCATE XmlData
92
--			ROLLBACK TRANSACTION
93
--			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
94
--			RETURN '-1'
95
--		END
96
		DECLARE @p_ID_MAS_BAL VARCHAR(15);
97
		IF @@Error<>0 GOTO ABORT;
98
    FETCH NEXT FROM XmlData
99
     INTO @LIQ_ID,
100
         @MAST_BAL_ID,
101
         @CUST_NAME,
102
         @QTY,
103
         @PRICE,
104
         @TOTAL_AMT,
105
         @NOTES,
106
         @TO_BRN_ID,
107
         @TO_DEPT_ID;
108
END;
109
CLOSE XmlData;
110
DEALLOCATE XmlData;
111

    
112
--doanptt 05/05/2022 thêm lịch sử xử lý
113
	INSERT INTO dbo.PL_PROCESS(REQ_ID,PROCESS_ID,CHECKER_ID,APPROVE_DT,PROCESS_DESC,NOTES)
114
	VALUES(@p_LIQ_ID,'APPR',@p_CHECKER_ID,GETDATE(), N'Hành chính duyệt phiếu',N'Hành chính duyệt phiếu')
115

    
116
COMMIT TRANSACTION;
117
SELECT '0' AS Result, @p_LIQ_ID LIQ_ID, '' ErrorDesc;
118
RETURN '0';
119
ABORT:
120
BEGIN
121
    CLOSE XmlData;
122
    DEALLOCATE XmlData;
123
    ROLLBACK TRANSACTION;
124
    SELECT '-1' AS Result, '' LIQ_ID, '' ErrorDesc;
125
    RETURN '-1';
126
END;