Проверка квитовки платежей
Для проверки квитовки платежей, существует скрипт:
SELECT
/*+ INDEX (MCI_REISES IX_MCI_REISES_DW_TYPE)*/
t.id,
t.amount,
t.lacc_our,
t.shttype,
t.rel_kvit,
c.bicdom,
c.inn,
c.bicint,
--
m.typedoc,
m.laccpol,
m.laccplat,
m.bikpol,
m.bikplat,
m.innpol,
m.innplat,
m.swiftpol,
m.swiftplat
FROM
t_transactions t,
customer c,
mci_reises m,
deal_types_accmask dta
WHERE
1 = 1
AND t.valuedate = to_date('&DateOfTransactions-DD.MM.YYYY','DD.MM.YYYY')
AND ( t.accpointer ='&AccountId')
AND t.parent_id IS NULL
--and t.amount > 0
--and t.rel_kvit is null
AND c.id = t.cid
AND bitand(t.balancemask,3) > 0
-- Общие условия
and trunc(m.datevvoda) = trunc(t.valuedate)
AND (
(m.typedoc = 1 and m.amount = t.amount)
OR
(m.typedoc IN (2,22) AND m.amount =-t.amount)
)
AND m.accpointer = t.accpointer
AND m.status = 0
-- 1
AND
(
(
(m.typedoc = 1 and m.laccpol = t.lacc_our)
OR
(m.typedoc IN (2,22) and laccplat = t.lacc_our)
)
-- 2
OR (
dta.dealtype = t.shttype
AND
(
(m.bikplat = c.bicdom and m.typedoc = 1)
OR
(m.bikpol = c.bicdom and m.typedoc IN (2,22))
)
AND (
instr(m.laccpol,dta.accmask) = 1
OR instr(m.laccplat,dta.accmask) = 1
)
)
-- 3
OR (
dta.dealtype = t.shttype
AND
(
(m.innplat = c.inn and m.typedoc = 1)
OR
(m.innpol = c.inn and m.typedoc IN (2,22))
)
AND (
instr(m.laccpol,dta.accmask) = 1
OR instr(m.laccplat,dta.accmask) = 1
)
AND t.shttype IN (
'FX',
'DP'
)
)
-- 4
OR (
m.innplat = c.inn
AND nvl(m.laccpol,'00000000000000000000') <> '00000000000000000000'
)
);
/
где
- ChangeDate – дата платежа, когда должна произойти квитовка;
- ChangeAccpointer – идентификатор счета платежа, с которым должна произойти квитовка.
Протоколирование
В релизе 6412 патч 10 добавлено протоколирование вызовов процедуры Автоматической квитовки, для просмотра протокола необходимо выполнить скрипт:
select *
from vw_protocol
where category_alias = 'MCI'
and event_time > td;
/