-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTesting 4.sql
136 lines (126 loc) · 3.42 KB
/
Testing 4.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
select * from fss_merchant;
select * from fss_terminal
order by merchantId, terminalType;
select * from fss_terminal_type;
select * from fss_daily_transactions
--where settlementStatus = 'Null'
--where merchantId = 700001300
order by settlementStatus desc, transactionNr;
select * from fss_reference;
select * from fss_transactions
order by transactionNr;
select * from fss_smartcard;
select * from fss_organisation;
select * from fss_daily_settlement;
select sum(transaction)
from fss_daily_settlement
where bankingFLag = 'F';
begin
execute immediate('truncate table fss_daily_transactions');
execute immediate('truncate table fss_daily_settlement');
COMMIT;
end;
/
select distinct terminalId from fss_daily_transactions
where settlementStatus <> 'Null'
order by terminalId;
SELECT terminalId
FROM fss_daily_transactions
--WHERE settlementStatus = 'Null'
HAVING minTransaction < SUM(transactionAmount)
GROUP BY terminalID, minTransaction
ORDER BY terminalId;
-- allow all terminal ID to be settled
UPDATE fss_daily_transactions
SET settlementStatus = 'Settled'
WHERE transactionNr < 87400
AND terminalId IN
(
SELECT terminalId
FROM fss_daily_transactions
WHERE settlementStatus IS NULL
HAVING minTransaction < SUM(transactionAmount)
GROUP BY terminalId, minTransaction
);
INSERT INTO fss_daily_transactions
SELECT t.transactionNr
, t.downloadDate
, t.terminalId
, t.cardId
, t.transactionDate
, t.cardOldValue
, t.transactionAmount
, t.cardNewValue
, t.transactionStatus
, t.errorCode
, te.merchantId
, 'Null'
FROM fss_transactions t
INNER JOIN fss_terminal te
ON t.terminalId = te.terminalId
--WHERE transactionNr < 90000;
WHERE downloadDate < to_date('20/05/2015', 'dd/mm/yyyy');
CREATE OR REPLACE PROCEDURE upd_daily_transaction_settled(p_change_value VARCHAR2)
IS
BEGIN
UPDATE fss_daily_transactions
SET settlementStatus = p_change_value
WHERE transactionNr <= pkg_fss_settlement.get_last_transaction_nr
AND terminalId IN
(
SELECT terminalId
FROM fss_daily_transactions
WHERE settlementStatus IS NULL
HAVING minTransaction < SUM(transactionAmount)
GROUP BY terminalId, minTransaction
);
COMMIT;
END;
/
INSERT INTO fss_daily_settlement
(
merchantBsb
, merchantAccNum
, tranCode
, transaction
, merchantTitle
, bankingFlag
)
SELECT m.merchantBankBsb
, m.merchantBankAccNr
, '13'
, SUM(dt.transactionAmount) AS value
, m.merchantAccountTitle
, 'F'
FROM fss_daily_transactions dt
INNER JOIN fss_smartcard s
ON dt.cardId = s.cardId
INNER JOIN fss_terminal te
ON dt.terminalId = te.terminalId
INNER JOIN fss_terminal_type tet
ON te.terminalType = tet.typeName
INNER JOIN fss_merchant m
ON te.merchantId = m.merchantId
WHERE dt.settlementStatus = 'Checked'
GROUP BY m.merchantBankBsb
, m.merchantBankAccNr
, m.merchantAccountTitle;
CREATE OR REPLACE FUNCTION get_last_lodgement_ref
RETURN NUMBER
IS
l_last_lodgement_ref NUMBER;
BEGIN
SELECT MAX(lodgementRef)
INTO l_last_lodgement_ref
FROM fss_daily_settlement;
RETURN l_last_lodgement_ref;
EXCEPTION
WHEN OTHERS
THEN
common.upd_error_table(SQLERRM, 'get_last_lodgement_ref');
END;
/
SELECT max(runEnd)
--INTO l_last_run_date
FROM fss_run_table
WHERE runOutcome = 'Success';