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

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

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

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


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

select * 
from (
    SELECT
      /*+ INDEX (MCI_REISES IX_MCI_REISES_DW_TYPE)*/
        c.id cid,
        t.id,
        t.amount 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,
        m.amount m_amount
    FROM
        t_transactions t,
        customer c,
        mci_reises m
    WHERE
        1 = 1
        AND t.valuedate = to_date('&DateOfTransactionDDMMYYYY','DD.MM.YYYY')
        AND ( t.SEC_PLACEACCOUNT_ID = '&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.accpointer = t.SEC_PLACEACCOUNT_ID
         AND m.status = 0) jmt
         ,deal_types_accmask dta
WHERE
    1=1
     AND (
                (typedoc = 1 and m_amount = t_amount)
                OR
                (typedoc IN (2,22) AND m_amount =-t_amount)
            )
     -- 1
    AND
      (
        (
            (typedoc = 1 and laccpol = lacc_our)
            OR
            (typedoc IN (2,22) and laccplat  = lacc_our)
        )
     -- 2
        OR (
            dta.dealtype = shttype
            AND
                (
                    (bikplat = NVL(pkg_codes.f_code_by_rn_id_scheme(cid, pkg_codes.v_scheme_bic),bic) and typedoc = 1)
                    OR
                    (bikpol = NVL(pkg_codes.f_code_by_rn_id_scheme(cid, pkg_codes.v_scheme_bic),bic) and typedoc IN (2,22))
                )
            AND (
                instr(laccpol,dta.accmask) = 1
                OR instr(laccplat,dta.accmask) = 1
            )
             
        )
      -- 3
        OR (
            dta.dealtype = shttype
            AND
                (
                    (innplat =  pkg_codes.f_code_by_rn_id_scheme(cid, pkg_codes.v_scheme_inn) and typedoc = 1)
                    OR
                    (innpol =  pkg_codes.f_code_by_rn_id_scheme(cid, pkg_codes.v_scheme_inn) and typedoc IN (2,22))
                )
            AND (
                instr(laccpol,dta.accmask) = 1
                OR instr(laccplat,dta.accmask) = 1
            )
            AND shttype IN (
                'FX',
                'DP'
            )
        )
       -- 4
        OR (
            innplat = pkg_codes.f_code_by_rn_id_scheme(cid, pkg_codes.v_scheme_inn)
            AND nvl(laccpol,'00000000000000000000') <> '00000000000000000000'
        )
    );       

где

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

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

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

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

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