Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- THIRD
- -- Реструтуризации либо не должно быть вообще,
- -- либо сроки реструктуризации должны соблюдаться
- IF isconditionspass = TRUE THEN
- isrestruct := TRUE;
- FOR balance IN (
- SELECT
- *
- FROM n_balances b
- WHERE b.account_id = given_id
- AND b.DATA = given_month
- AND service_id BETWEEN 900 AND 999
- ) LOOP
- factsaldo := balance.summ;
- BEGIN
- SELECT
- NVL(RSlist.SUMMA, 0) INTO calcSaldo
- FROM
- n_restructuring_service_list RSlist
- JOIN n_restructuring_service rs ON rs.ID = rslist.n_restructuring_service_id
- WHERE rs.account_id = given_id
- AND rslist.DATA = given_month
- AND rs.service_id_in = balance.service_id;
- EXCEPTION WHEN NO_DATA_FOUND THEN
- calcsaldo := 0;
- END;
- isResructPlanPass := factsaldo <= calcsaldo;
- DBMS_OUTPUT.put_line('####REST '||factsaldo||' '||calcsaldo);
- END LOOP;
- IF isrestruct = FALSE THEN
- DBMS_OUTPUT.put_line('[ok]никакой реструкторизации');
- ELSE
- IF isResructPlanPass THEN
- DBMS_OUTPUT.put_line('[ok]реструктуризация, factsaldo <= calcsaldo '||factsaldo||' <= '|| calcsaldo);
- ELSE
- DBMS_OUTPUT.put_line('[BREAK]реструктуризация, factsaldo > calcsaldo '||factsaldo||' > '||calcsaldo);
- isConditionsPass :=FALSE;
- END IF;
- END IF;
- END IF;
- -- FOUR
- -- Проверяем оплату до 20 числа прошлого месяца
- IF isConditionsPass = TRUE THEN
- SELECT NVL(SUM(p.summ),0) INTO saldo FROM n_payments p
- WHERE p.account_id = given_id
- AND p.service_id = 100
- AND (p.vid = 1 OR p.vid = 9)
- AND TRUNC(p.DATA, 'mm') = given_month -- (текущий - 1) месяц
- AND EXTRACT(DAY FROM p.DATA) <= 20; -- берём отплаты до 20го числа включительно
- SELECT NVL(SUM(nb.summ), 0) INTO payment FROM n_balances nb
- WHERE nb.account_id = given_id
- AND nb.service_id BETWEEN 101 AND 126
- AND TRUNC(nb.DATA,'mm') = previous_month;
- SELECT NVL(SUM(na.summ), 0) INTO tmp FROM n_accruals na
- WHERE na.account_id = given_id
- AND TRUNC(na.DATA,'mm') = given_month
- AND na.service_id = 100
- AND na.summ <= 0;
- IF ((payment+tmp) - saldo) <= 0 THEN
- DBMS_OUTPUT.put_line('[ok]разница платежа и сальдо <= 0! ('||payment||'+('||tmp||') - '||saldo||'='||((payment+tmp) - saldo)||')');
- ELSE
- DBMS_OUTPUT.put_line('[BREAK]разница платежа и сальдо > 0! ('||payment||'+('||tmp||') - '||saldo||'='||((payment+tmp) - saldo)||')');
- isConditionsPass := FALSE;
- END IF;
- END IF;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement