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;
|