Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 11 Следующий »

Проверка квитовки платежей

Для проверки квитовки платежей, существует скрипт:

SELECT
  /*+ INDEX (MCI_REISES IX_MCI_REISES_DW_TYPE)*/
    t.id,
    t.amount,
    t.lacc_our,
    t.shttype,
    t.rel_kvit,
    NVL(pkg_codes.f_code_by_rn_id_scheme(c.id, pkg_codes.v_scheme_bic),t.bic) as bic,--c.bicdom,
    pkg_codes.f_code_by_rn_id_scheme(c.id, pkg_codes.v_scheme_inn) inn,--c.inn,
    null, --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('&DateOfTransactionDDMMYYYY','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 t.bal_id         = pkg_balance.pBalType_Main       --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 = NVL(pkg_codes.f_code_by_rn_id_scheme(c.id, pkg_codes.v_scheme_bic),t.bic) and m.typedoc = 1)
                    OR
                    (m.bikpol = NVL(pkg_codes.f_code_by_rn_id_scheme(c.id, pkg_codes.v_scheme_bic),t.bic) 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 =  pkg_codes.f_code_by_rn_id_scheme(c.id, pkg_codes.v_scheme_inn) and m.typedoc = 1)
                    OR
                    (m.innpol =  pkg_codes.f_code_by_rn_id_scheme(c.id, pkg_codes.v_scheme_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 = pkg_codes.f_code_by_rn_id_scheme(c.id, pkg_codes.v_scheme_inn)
            AND nvl(m.laccpol,'00000000000000000000') <> '00000000000000000000'
        )
    );
/

где

  • ChangeDate – дата платежа, когда должна произойти квитовка;  
  • ChangeAccpointer – идентификатор счета платежа, с которым должна произойти квитовка.

Для уточнения какое свойство документа или платежа не квитуются необходимо закомментировать условие в запросе. При этом необходимо соблюдать условия для компиляции запроса

Протоколирование 

В релизе 6412 патч 10 добавлено протоколирование вызовов процедуры Автоматической квитовки, для просмотра протокола необходимо выполнить скрипт:

select * 
  from vw_protocol 
 where category = 'MCI' 
   and event_time >= td;
/
  • Нет меток