Проверка квитовки платежей
Для проверки квитовки платежей, существует скрипт:
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
FROM
t_transactions t,
customer c,
mci_reises m,
deal_types_accmask dta
WHERE
1 = 1
AND t.valuedate = :chanegeData
AND ( t.accpointer =:changeaccpointer )
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.laccpol = t.lacc_our
)
-- 2
OR (
dta.dealtype = t.shttype
AND m.bikplat = c.bicdom
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 (
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 – идентификатор счета платежа, с которым должна произойти квитовка.