Project

General

Profile

inhachtoan.txt

Luc Tran Van, 01/18/2023 11:15 AM

 
1

    
2
ALTER   PROCEDURE [dbo].[PAY_ENTRIES_POST_CASA_ByRefId] 
3
@p_REF_ID VARCHAR(200) = NULL, 
4
@p_BRANCH_ID VARCHAR(50) = NULL, 
5
@p_RefNo VARCHAR(500) = NULL
6
AS
7
DECLARE @l_SUM_AMT DECIMAL,
8
        @l_REF_NO VARCHAR(20),
9
        @l_ASSET_ID VARCHAR(20);
10
DECLARE @l_TRN_TYPE VARCHAR(50) = '';
11
DECLARE @l_CASA_CR_ACCT VARCHAR(20) = '';
12
DECLARE @l_CASA_DR_ACCT VARCHAR(20) = '';
13
DECLARE @l_CASA_CR_ACCT_NAME NVARCHAR(500) = '';
14
DECLARE @l_CASA_DR_ACCT_NAME NVARCHAR(500) = '';
15

    
16
DECLARE @MW_ENTRI TABLE (ET_ID varchar(15), REF_NO varchar(20), TRN_ID varchar(15), REF_ID varchar(15), TRN_TYPE nvarchar(40), ENTRY_PAIR varchar(15), DO_BRN varchar(15), DRCR varchar(2), ACCT varchar(100), BRN_ID varchar(20), DEPT_ID varchar(15), AMT decimal(18, 2), CURRENCY varchar(20), EXC_RATE numeric(18, 2), EXP_TO_CORE varchar(1), TRN_DATE datetime, TRN_DESC nvarchar(1000), MAKER_ID varchar(15), CHECKER_ID varchar(15))
17

    
18
INSERT INTO @MW_ENTRI 
19
SELECT * FROM PAY_ENTRIES_POST 
20
WHERE TRN_ID = @p_REF_ID AND (DO_BRN = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' ) AND (REF_NO = @p_RefNo OR @p_RefNo IS NULL OR @p_RefNo = '')
21

    
22
--SELECT * FROM @MW_ENTRI
23
DECLARE @ENTRY_PAIR VARCHAR(100)
24
SET @ENTRY_PAIR = (SELECT TOP 1 ENTRY_PAIR FROM @MW_ENTRI WHERE LEN(ACCT)>9)--------------*********
25
DECLARE @GDV VARCHAR(50), @KSV VARCHAR(50)
26
SET @GDV = (SELECT TOP 1  MAKER_ID FROM PAY_ENTRIES_POST WHERE TRN_ID =@p_REF_ID)
27
SET @KSV =(SELECT TOP 1  CHECKER_ID FROM PAY_ENTRIES_POST WHERE TRN_ID =@p_REF_ID)
28
--SELECT @ENTRY_PAIR
29
DECLARE @TABLE_REF TABLE (REF_NO VARCHAR(50))
30
INSERT INTO @TABLE_REF SELECT DISTINCT REF_NO FROM PAY_ENTRIES_POST WHERE TRN_ID =@p_REF_ID AND (REF_NO =@p_RefNo OR @p_RefNo IS NULL OR @p_RefNo ='')
31
DECLARE @TABLE_RETURN TABLE (TRN_ID VARCHAR(15), PrintDate VARCHAR(25),SUM_AMT DECIMAL(18,0),SUM_stringMoney VARCHAR(100),CASA_CR_ACCT VARCHAR(20),
32
CASA_CR_ACCT_NAME VARCHAR(250), CASA_DR_ACCT VARCHAR(20),CASA_DR_ACCT_NAME NVARCHAR(250),REF_NO VARCHAR(50),TRN_DESC VARCHAR(1000), G_D_V NVARCHAR(50), 
33
K_S_V NVARCHAR(50), RATE VARCHAR(15), G_DV VARCHAR(35), DV_KD VARCHAR(50),TELL VARCHAR(50),SUP VARCHAR(50), DIR VARCHAR(50))
34
DECLARE @COUNT_SL INT, @REF_REFENCE VARCHAR(50)
35
SET @COUNT_SL =1
36
WHILE ((SELECT COUNT (*) FROM @TABLE_REF)>0)
37
BEGIN
38
	SET @REF_REFENCE=(SELECT TOP 1 REF_NO FROM @TABLE_REF)
39
	SET @COUNT_SL = @COUNT_SL+1
40
	INSERT INTO @TABLE_RETURN SELECT TOP 1 TRN_ID,ISNULL(FORMAT(TRN_DATE,'dd/MM/yyyy'),'') ,
41
	(SELECT SUM (AMT)/2 FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_REFENCE AND TRN_ID =@p_REF_ID),
42
	REPLACE(dbo.ReadMoney((SELECT SUM (AMT) /2 FROM PAY_ENTRIES_POST WHERE  REF_NO =@REF_REFENCE AND TRN_ID =@p_REF_ID)),'  ',' '), 
43
	(SELECT TOP 1 ACCT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_REFENCE AND LEN(ACCT) >9 AND DRCR ='C' AND TRN_ID =@p_REF_ID),
44
	[dbo].[FN_GET_ACC_NAME_PAY]((SELECT TOP 1 ACCT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_REFENCE AND LEN(ACCT) >9 AND DRCR ='C' AND TRN_ID =@p_REF_ID)),
45
	(SELECT TOP 1 ACCT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_REFENCE AND LEN(ACCT) >9 AND DRCR ='D' AND TRN_ID =@p_REF_ID),
46
	[dbo].[FN_GET_ACC_NAME_PAY]((SELECT TOP 1 ACCT FROM PAY_ENTRIES_POST WHERE REF_NO =@REF_REFENCE AND LEN(ACCT) >9 AND DRCR ='D' AND TRN_ID =@p_REF_ID)),@REF_REFENCE, UPPER(TRN_DESC) , 
47
	CHAR(10) + dbo.fChuyenCoDauThanhKhongDau((SELECT TOP 1 TLFullName FROM TL_USER WHERE TLNANME =@GDV)),CHAR(10) + dbo.fChuyenCoDauThanhKhongDau((SELECT TOP 1 TLFullName FROM TL_USER WHERE TLNANME =@KSV)),
48
	'1', UPPER(@GDV),'HOI SO','Teller', 'Supervisor', 'Director'
49
	FROM PAY_ENTRIES_POST WHERE TRN_ID =@p_REF_ID AND REF_NO =@REF_REFENCE
50
	DELETE FROM @TABLE_REF WHERE REF_NO =@REF_REFENCE
51
END
52
SELECT * FROM @TABLE_RETURN
53
--SELECT MAX(KQ.TRN_ID) AS TRN_ID , MAX(KQ.PrintDate) AS PrintDate, SUM(KQ.SUM_AMT) AS SUM_AMT, MAX(KQ.SUM_stringMoney) AS SUM_stringMoney, MAX(KQ.CASA_CR_ACCT) AS CASA_CR_ACCT,
54
--MAX(KQ.CASA_CR_ACCT_NAME) AS CASA_CR_ACCT_NAME,MAX(KQ.CASA_DR_ACCT) AS CASA_DR_ACCT,MAX(KQ.CASA_DR_ACCT_NAME) AS CASA_DR_ACCT_NAME, KQ.REF_NO, MAX(KQ.TRN_DESC) AS TRN_DESC, MAX(KQ.MAKER_ID) AS  [USER_NAME]
55
--FROM 
56
--(
57
--SELECT  A.TRN_ID, 
58
--	convert(varchar(10),DAY(A.TRN_DATE))+N'/'+convert(varchar(10),MONTH(A.TRN_DATE)) +N'/'+convert(varchar(10),YEAR(A.TRN_DATE)) AS PrintDate,
59
--	A.SUM_AMT,
60
--    A.SUM_stringMoney,
61
--	C.CR_ACCT AS CASA_CR_ACCT, C.CASA_CR_ACCT_NAME,	
62
--	B.DR_ACCT AS CASA_DR_ACCT, B.CASA_DR_ACCT_NAME,
63
--	D.TRN_DESC,
64
--    D.REF_NO,
65
--   '' AS REF_NO_SUM, 
66
--	A.MAKER_ID
67
--FROM 
68
--(
69
--	SELECT A.TRN_ID,
70
--		   CONVERT(DATE,A.TRN_DATE,103) TRN_DATE,
71
--           SUM(A.AMT) AS SUM_AMT,
72
--           dbo.ReadMoney(SUM(A.AMT)) AS SUM_stringMoney,
73
--		   A.MAKER_ID
74
--	FROM @MW_ENTRI A
75
--	WHERE DRCR = 'D'
76
--	GROUP BY A.TRN_ID, CONVERT(DATE,A.TRN_DATE,103), A.REF_NO,A.MAKER_ID
77
--) AS A
78
--LEFT JOIN 
79
--(
80
--	SELECT TOP 1 A.REF_NO, A.TRN_ID, A.ACCT DR_ACCT, [dbo].[FN_GET_ACC_NAME_PAY](A.ACCT) AS CASA_DR_ACCT_NAME
81
--	FROM @MW_ENTRI A
82
--	WHERE LEN(A.ACCT) > 9 AND A.DRCR = 'D' AND ENTRY_PAIR = @ENTRY_PAIR
83
--	GROUP BY A.REF_NO
84
--	) AS B ON B.TRN_ID = A.TRN_ID
85
--LEFT JOIN 
86
--(
87
--	SELECT TOP 1 A.REF_NO, A.TRN_ID, A.ACCT CR_ACCT, [dbo].[FN_GET_ACC_NAME_PAY](A.ACCT) CASA_CR_ACCT_NAME
88
--	FROM @MW_ENTRI A	
89
--	WHERE LEN(A.ACCT) > 9 AND A.DRCR = 'C' AND ENTRY_PAIR = @ENTRY_PAIR
90
--	GROUP BY A.REF_NO
91
--	) AS C ON C.TRN_ID = A.TRN_ID
92
--LEFT JOIN 
93
--(
94
--	SELECT TOP 100 A.TRN_DESC, A.TRN_ID, A.REF_NO
95
--	FROM @MW_ENTRI A		
96
--	) AS D ON D.TRN_ID = A.TRN_ID
97
----LEFT JOIN
98
----(
99
----    SELECT STUFF((SELECT ', ' + C1.REF_NO
100
----                FROM @MW_ENTRI C1
101
----                WHERE C2.TRN_ID = C1.TRN_ID
102
----                GROUP BY C1.TRN_ID,C1.REF_NO                
103
----                FOR XML PATH('')
104
----            ),1,1,'') AS REF_NO_SUM, C2.TRN_ID
105
----    FROM @MW_ENTRI C2
106
----    GROUP BY C2.TRN_ID, C2.REF_NO
107
----) AS E ON E.TRN_ID = A.TRN_ID
108
--) AS KQ
109
--GROUP BY KQ.REF_NO