You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
12078 lines
333 KiB
SQL
12078 lines
333 KiB
SQL
DROP FUNCTION NAMSAN.SP_TRE502Q_DATE_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.SP_TRE502Q_DATE_CNT
|
|
(
|
|
IN_FARE IN CHAR,
|
|
IN_ST IN CHAR,
|
|
IN_ED IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_CNT NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT FARE_OFFICE_ID, YEAR, MONTH, DAY
|
|
FROM FIX_AMOUNT_DETAIL_INFO
|
|
WHERE FARE_OFFICE_ID = IN_FARE
|
|
AND YEAR||MONTH||DAY BETWEEN IN_ST AND IN_ED
|
|
AND IN_OUT_KBN = '21'
|
|
GROUP BY FARE_OFFICE_ID,YEAR,MONTH,DAY);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
|
|
END SP_TRE502Q_DATE_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.SF_PASSWORD_ENCODER;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.Sf_Password_Encoder( P_data VARCHAR2 )
|
|
RETURN VARCHAR IS
|
|
/*******************************************************
|
|
현재 저장된 자료를 encoding 하는 함수
|
|
예) Select sf_password_encoder('password') From Dual;
|
|
결과) 'Hzmnslpc'
|
|
********************************************************/
|
|
I_cnt NUMBER := 0;
|
|
Tmp_data VARCHAR(10);
|
|
New_data VARCHAR(10);
|
|
BEGIN
|
|
IF P_data IS NULL THEN
|
|
RETURN NULL;
|
|
END IF;
|
|
I_cnt := LENGTH(RTRIM(P_data));
|
|
New_data := NULL;
|
|
Tmp_data := NULL;
|
|
FOR I IN 1..I_cnt LOOP
|
|
Tmp_data := CHR(ASCII(SUBSTR(P_data,I,1)) - I_cnt + I - 1 );
|
|
New_data := New_data||Tmp_data;
|
|
END LOOP;
|
|
RETURN RTRIM(New_data);
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN P_data;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_WORKER_NAME;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_WORKER_NAME
|
|
(
|
|
IN_ID IN CHAR,
|
|
IN_YEAR IN CHAR,
|
|
IN_MONTH IN CHAR,
|
|
IN_DAY IN CHAR
|
|
)
|
|
RETURN VARCHAR2
|
|
-- 2010.7.1 KIM DONG EUN
|
|
IS
|
|
|
|
V_RET VARCHAR2(20) := '';
|
|
v_cnt number := 0;
|
|
v_date char(8) := '';
|
|
|
|
BEGIN
|
|
|
|
v_date := in_year||in_month||in_day;
|
|
|
|
select count(*)
|
|
into v_cnt
|
|
from worker_his_info
|
|
where worker_id = in_id
|
|
and stt_date <= v_date
|
|
and end_date >= v_date
|
|
and use_yn = '0';
|
|
|
|
if v_cnt = 0 then
|
|
select worker_name
|
|
into v_ret
|
|
from worker_info
|
|
where worker_id = in_id;
|
|
elsif v_cnt >= 0 then
|
|
select worker_name
|
|
into v_ret
|
|
from worker_his_info
|
|
where worker_id = in_id
|
|
and stt_date <= v_date
|
|
and end_date >= v_date
|
|
and use_yn = '0';
|
|
end if;
|
|
|
|
RETURN V_RET;
|
|
|
|
END FUN_WORKER_NAME;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TUNNEL_C;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TUNNEL_C
|
|
(
|
|
v_fare_office_id IN CHAR -- 요금소 코드
|
|
) RETURN varchar2
|
|
IS
|
|
|
|
p_fare_office_id varchar2(60);
|
|
|
|
BEGIN
|
|
|
|
SELECT fare_office_full_name
|
|
INTO p_fare_office_id
|
|
FROM fare_office_code_info
|
|
WHERE fare_office_id = v_fare_office_id;
|
|
|
|
RETURN p_fare_office_id;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '기타';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TUNNEL;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TUNNEL
|
|
(
|
|
code_id IN CHAR -- CAR_TYPE_ID.
|
|
) RETURN varchar2
|
|
IS
|
|
p_fare_office_id varchar2(60);
|
|
BEGIN
|
|
SELECT fare_office_full_name
|
|
INTO p_fare_office_id
|
|
FROM FARE_OFFICE_CODE_INFO
|
|
WHERE fare_office_id = code_id;
|
|
|
|
RETURN p_fare_office_id;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '기타';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTK000Q_ROWCOUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTK000Q_ROWCOUNT
|
|
(
|
|
IN_GUBUN IN CHAR,
|
|
IN_FARE IN CHAR,
|
|
IN_BOOTH IN CHAR,
|
|
IN_ST IN CHAR,
|
|
IN_ED IN CHAR
|
|
) RETURN NUMBER
|
|
IS
|
|
V_RET NUMBER := 0;
|
|
BEGIN
|
|
|
|
IF IN_GUBUN = 'DAY' THEN
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM (
|
|
SELECT A.YEAR||'년' AS Y,
|
|
A.MONTH||'월' AS M,
|
|
A.DAY||'일' AS D,
|
|
SUM(DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '00', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '01', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '02', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '03', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '04', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '05', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '06', NVL(A.PASS_QUANTITY,0), 0)
|
|
) AS PASS_AM,
|
|
SUM(DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '21', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '22', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '23', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '24', NVL(A.PASS_QUANTITY,0), 0)
|
|
) AS PASS_PM
|
|
FROM OVERTIME_PASS_INFO A
|
|
WHERE A.FARE_OFFICE_ID LIKE IN_FARE
|
|
AND A.BOOTH_ID LIKE IN_BOOTH
|
|
AND A.YEAR||A.MONTH||A.DAY BETWEEN IN_ST AND IN_ED
|
|
GROUP BY A.YEAR, A.MONTH, A.DAY
|
|
ORDER BY A.YEAR, A.MONTH, A.DAY);
|
|
|
|
ELSIF IN_GUBUN = 'MONTH' THEN
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM (
|
|
SELECT A.YEAR||'년' AS Y,
|
|
A.MONTH||'월' AS M,
|
|
SUM(DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '00', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '01', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '02', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '03', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '04', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '05', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '06', NVL(A.PASS_QUANTITY,0), 0)
|
|
) AS PASS_AM,
|
|
SUM(DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '21', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '22', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '23', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '24', NVL(A.PASS_QUANTITY,0), 0)
|
|
) AS PASS_PM
|
|
FROM OVERTIME_PASS_INFO A
|
|
WHERE A.FARE_OFFICE_ID LIKE IN_FARE
|
|
AND A.BOOTH_ID LIKE IN_BOOTH
|
|
AND A.YEAR||A.MONTH BETWEEN IN_ST AND IN_ED
|
|
GROUP BY A.YEAR, A.MONTH
|
|
ORDER BY A.YEAR, A.MONTH);
|
|
|
|
ELSIF IN_GUBUN = 'YEAR' THEN
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM (
|
|
SELECT A.YEAR||'년' AS Y,
|
|
SUM(DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '00', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '01', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '02', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '03', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '04', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '05', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '06', NVL(A.PASS_QUANTITY,0), 0)
|
|
) AS PASS_AM,
|
|
SUM(DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '21', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '22', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '23', NVL(A.PASS_QUANTITY,0), 0) +
|
|
DECODE(SUBSTR(A.WORK_OVER_STT_TIME,1,2), '24', NVL(A.PASS_QUANTITY,0), 0)
|
|
) AS PASS_PM
|
|
FROM OVERTIME_PASS_INFO A
|
|
WHERE A.FARE_OFFICE_ID LIKE IN_FARE
|
|
AND A.BOOTH_ID LIKE IN_BOOTH
|
|
AND A.YEAR BETWEEN IN_ST AND IN_ED
|
|
GROUP BY A.YEAR
|
|
ORDER BY A.YEAR);
|
|
END IF;
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TTK000Q_ROWCOUNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTJ501Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTJ501Q_COUNT
|
|
(
|
|
office IN CHAR, -- 요금소
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
|
|
) RETURN NUMBER
|
|
IS
|
|
|
|
tot_row NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT times
|
|
FROM car_time_adjust_info
|
|
WHERE fare_office_id LIKE office
|
|
AND year || month || day BETWEEN from_dt AND to_dt
|
|
GROUP BY times);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTG002Q_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTG002Q_COUNT1(
|
|
office IN CHAR, -- 요금소
|
|
booth IN CHAR, -- 차로
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT cars_type_id
|
|
FROM car_day_adjust_info
|
|
WHERE fare_office_id LIKE office
|
|
AND booth_id LIKE booth
|
|
AND year || month || day BETWEEN from_dt AND to_dt
|
|
GROUP BY cars_type_id);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTG002Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTG002Q_COUNT(
|
|
office IN CHAR, -- ??? ??
|
|
booth IN CHAR, -- ?? ??
|
|
from_dt IN CHAR, -- ?? ???
|
|
to_dt IN CHAR -- ?? ???
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT fare_office_id, booth_id, cars_type_id, count(*)
|
|
FROM car_day_adjust_info
|
|
WHERE fare_office_id LIKE office
|
|
AND booth_id LIKE booth
|
|
AND year || month || day BETWEEN from_dt AND to_dt
|
|
GROUP BY fare_office_id, booth_id, cars_type_id);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTG001Q_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTG001Q_COUNT1(
|
|
office IN CHAR, -- 요금소
|
|
time_gubun IN CHAR, -- 구분
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
-- 구분(시간별:1, 일별: 2, 월별:3)
|
|
if time_gubun = '1' then
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (select times
|
|
from car_time_adjust_info
|
|
where fare_office_id like office
|
|
and year||month||day between from_dt and to_dt
|
|
group by times);
|
|
|
|
elsif time_gubun = '2' then
|
|
select count(*)
|
|
into tot_row
|
|
from (select day
|
|
from car_day_adjust_info
|
|
where fare_office_id like office
|
|
and year||month||day between from_dt and to_dt
|
|
group by day);
|
|
|
|
elsif time_gubun = '3' then
|
|
select count(*)
|
|
into tot_row
|
|
from (select month
|
|
from car_month_adjust_info
|
|
where fare_office_id like office
|
|
and year||month between from_dt and to_dt
|
|
group by month);
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTG001Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTG001Q_COUNT(
|
|
office IN CHAR, -- 요금소
|
|
time_gubun IN CHAR, -- 구분
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
-- 구분(시간별:1, 일별: 2, 월별:3)
|
|
if time_gubun = '1' then
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (select fare_office_id, booth_id, times, count(*)
|
|
from car_time_adjust_info
|
|
where fare_office_id like office
|
|
and year||month||day between from_dt and to_dt
|
|
group by fare_office_id, booth_id, times);
|
|
|
|
elsif time_gubun = '2' then
|
|
select count(*)
|
|
into tot_row
|
|
from (select fare_office_id, booth_id, day, count(*)
|
|
from car_day_adjust_info
|
|
where fare_office_id like office
|
|
and year||month||day between from_dt and to_dt
|
|
group by fare_office_id, booth_id, day);
|
|
|
|
elsif time_gubun = '3' then
|
|
select count(*)
|
|
into tot_row
|
|
from (select fare_office_id, booth_id, month, count(*)
|
|
from car_month_adjust_info
|
|
where fare_office_id like office
|
|
and year||month between from_dt and to_dt
|
|
group by fare_office_id, booth_id, month);
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTE000Q_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTE000Q_COUNT1
|
|
(
|
|
in_car_no IN VARCHAR2, -- 차량번호
|
|
from_dt IN VARCHAR2, -- 시작일자
|
|
to_dt IN VARCHAR2 -- 종료일자
|
|
)
|
|
RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM fare_terminal_info A
|
|
where A.delete_yn = '0'
|
|
AND A.car_no like in_car_no
|
|
AND A.year || A.month || A.day between from_dt and to_dt
|
|
AND A.COLLECT_ID <> '52';
|
|
|
|
/*
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM fare_terminal_info A
|
|
where a.SEQNO =
|
|
(select max(seqno)
|
|
from FARE_TERMINAL_INFO
|
|
where worker_id = A.WORKER_ID
|
|
and fare_office_id = A.FARE_OFFICE_ID
|
|
and booth_id = A.BOOTH_ID
|
|
and year = A.YEAR
|
|
and month = A.MONTH
|
|
and day = A.DAY
|
|
and WORK_TIMES = A.WORK_TIMES)
|
|
AND A.car_no like in_car_no
|
|
AND A.year || A.month || A.day between from_dt and to_dt
|
|
AND A.COLLECT_ID <> '52';
|
|
*/
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTE000Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTE000Q_COUNT(
|
|
in_car_no IN VARCHAR2, -- 차량번호
|
|
from_dt IN VARCHAR2, -- 시작일자
|
|
to_dt IN VARCHAR2 -- 종료일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM fare_terminal_info
|
|
WHERE car_no like in_car_no
|
|
AND year || month || day between from_dt and to_dt ;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTD000Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_ttd000q_count(
|
|
office IN CHAR, -- 요금소
|
|
yoil IN CHAR, -- 요일
|
|
before_from_dt IN CHAR, -- 전년 시작일자
|
|
before_to_dt IN CHAR, -- 전년 종료일자
|
|
after_from_dt IN CHAR, -- 기준 시작일자
|
|
after_to_dt IN CHAR -- 기준 종료일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
before_row number := 0;
|
|
after_row number := 0;
|
|
|
|
BEGIN
|
|
|
|
if yoil = 'A' then -- 총괄
|
|
select count(*)
|
|
into before_row
|
|
from (SELECT year, month, count(*)
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between before_from_dt and before_to_dt
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
|
|
select count(*)
|
|
into after_row
|
|
from (SELECT year, month, count(*)
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between after_from_dt and after_to_dt
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
|
|
elsif yoil = 'P' then -- 평일(토요일 제외)
|
|
select count(*)
|
|
into before_row
|
|
from (SELECT year, month, count(*)
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between before_from_dt and before_to_dt
|
|
AND weekday_kbn = '1'
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
|
|
select count(*)
|
|
into after_row
|
|
from (SELECT year, month, count(*)
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between after_from_dt and after_to_dt
|
|
AND weekday_kbn = '1'
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
|
|
elsif yoil = 'T' then -- 토요일 (평일 제외)
|
|
select count(*)
|
|
into before_row
|
|
from (SELECT year, month, count(*)
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between before_from_dt and before_to_dt
|
|
AND weekday_kbn = '2'
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
|
|
select count(*)
|
|
into after_row
|
|
from (SELECT year, month, count(*)
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between after_from_dt and after_to_dt
|
|
AND weekday_kbn = '2'
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
end if;
|
|
|
|
if before_row >= after_row then
|
|
tot_row := before_row;
|
|
elsif before_row < after_row then
|
|
tot_row := after_row;
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTC003Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTC003Q_COUNT
|
|
(
|
|
office IN CHAR, -- 요금소
|
|
from_dt IN CHAR, -- 년/월
|
|
to_dt IN CHAR -- 년/월
|
|
)
|
|
RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, count(*)
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month between from_dt and to_dt
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTC002Q_COUNT_NEW;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTC002Q_COUNT_NEW
|
|
(
|
|
in_gubun in char, -- 일,월,년 구분
|
|
in_st IN CHAR, -- 시작일자
|
|
in_ed IN CHAR -- 종료일자
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
|
|
V_RET NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
if in_gubun = '1' then
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM ( SELECT YEAR AS T_YEAR, MONTH AS T_MONTH, DAY AS T_DAY
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE YEAR||MONTH||DAY BETWEEN IN_ST AND IN_ED
|
|
GROUP BY YEAR, MONTH, DAY
|
|
UNION
|
|
SELECT TO_CHAR(P_DATE, 'YYYY') AS T_YEAR,
|
|
TO_CHAR(P_DATE, 'MM') AS T_MONTH,
|
|
TO_CHAR(P_DATE, 'DD') AS T_DAY
|
|
FROM PASS_DAY
|
|
WHERE TO_CHAR(P_DATE, 'YYYYMMDD') BETWEEN IN_ST AND IN_ED
|
|
GROUP BY TO_CHAR(P_DATE, 'YYYY'), TO_CHAR(P_DATE, 'MM'),TO_CHAR(P_DATE, 'DD'));
|
|
|
|
elsif in_gubun = '2' then
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM ( SELECT YEAR AS T_YEAR, MONTH AS T_MONTH
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE YEAR||MONTH BETWEEN IN_ST AND IN_ED
|
|
GROUP BY YEAR, MONTH
|
|
UNION
|
|
SELECT TO_CHAR(P_MONTH, 'YYYY') AS T_YEAR,
|
|
TO_CHAR(P_MONTH, 'MM') AS T_MONTH
|
|
FROM DAY_WEEK
|
|
WHERE TO_CHAR(P_MONTH, 'YYYYMM') BETWEEN IN_ST AND IN_ED
|
|
GROUP BY TO_CHAR(P_MONTH, 'YYYY'), TO_CHAR(P_MONTH, 'MM'));
|
|
|
|
elsif in_gubun = '3' then
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM ( SELECT YEAR AS T_YEAR
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE YEAR BETWEEN IN_ST AND IN_ED
|
|
GROUP BY YEAR
|
|
UNION
|
|
SELECT TO_CHAR(P_MONTH, 'YYYY') AS T_YEAR
|
|
FROM DAY_WEEK
|
|
WHERE TO_CHAR(P_MONTH, 'YYYY') BETWEEN IN_ST AND IN_ED
|
|
GROUP BY TO_CHAR(P_MONTH, 'YYYY'));
|
|
|
|
|
|
end if;
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TTC002Q_COUNT_NEW;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTC002Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTC002Q_COUNT(
|
|
office IN CHAR, -- 요금소코드
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
if office = '%%' then
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, count(*)
|
|
FROM day_adjust_info
|
|
WHERE year || month between from_dt and to_dt
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
else
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, count(*)
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id = office
|
|
AND year || month between from_dt and to_dt
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTC001Q_COUNT_NEW;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTC001Q_COUNT_NEW
|
|
(
|
|
IN_GUBUN IN CHAR,
|
|
IN_ST IN CHAR,
|
|
IN_ED IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
|
|
V_RET NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
IF IN_GUBUN = '1' THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM (SELECT YEAR AS T_YEAR, MONTH AS T_MONTH
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE YEAR||MONTH BETWEEN IN_ST AND IN_ED
|
|
GROUP BY YEAR,MONTH
|
|
UNION
|
|
SELECT TO_CHAR(P_MONTH, 'YYYY') AS T_YEAR,
|
|
TO_CHAR(P_MONTH, 'MM') AS T_MONTH
|
|
FROM DAY_WEEK
|
|
WHERE TO_CHAR(P_MONTH, 'yyyymm') BETWEEN IN_ST AND IN_ED
|
|
GROUP BY TO_CHAR(P_MONTH, 'YYYY'),TO_CHAR(P_MONTH, 'MM'));
|
|
|
|
ELSIF IN_GUBUN = '2' THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM (SELECT YEAR AS T_YEAR
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE YEAR BETWEEN IN_ST AND IN_ED
|
|
GROUP BY YEAR,MONTH
|
|
UNION
|
|
SELECT TO_CHAR(P_MONTH, 'YYYY') AS T_YEAR
|
|
FROM DAY_WEEK
|
|
WHERE TO_CHAR(P_MONTH, 'yyyy') BETWEEN IN_ST AND IN_ED
|
|
GROUP BY TO_CHAR(P_MONTH, 'YYYY'));
|
|
|
|
ELSIF IN_GUBUN = '3' THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM (SELECT YEAR AS T_YEAR, MONTH AS T_MONTH, DAY AS T_DAY
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE YEAR||MONTH||DAY BETWEEN IN_ST AND IN_ED
|
|
GROUP BY YEAR,MONTH,DAY
|
|
UNION
|
|
SELECT TO_CHAR(P_DATE, 'YYYY') AS T_YEAR,
|
|
TO_CHAR(P_DATE, 'MM') AS T_MONTH,
|
|
TO_CHAR(P_DATE, 'DD') AS T_DAY
|
|
FROM PASS_DAY
|
|
WHERE TO_CHAR(P_DATE, 'YYYYMMDD') BETWEEN IN_ST AND IN_ED
|
|
GROUP BY TO_CHAR(P_DATE, 'YYYY'), TO_CHAR(P_DATE, 'MM'), TO_CHAR(P_DATE, 'DD'));
|
|
|
|
END IF;
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TTC001Q_COUNT_NEW;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTC001Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTC001Q_COUNT(
|
|
office IN CHAR, -- ??? ??
|
|
pass_ym IN CHAR -- ?? ???
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
if office = '%%' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT month,count(*)
|
|
FROM day_adjust_info
|
|
WHERE year = pass_ym
|
|
GROUP BY month
|
|
ORDER BY month);
|
|
else
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT month,count(*)
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id = office
|
|
AND year = pass_ym
|
|
GROUP BY month
|
|
ORDER BY month);
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TTB000Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TTB000Q_COUNT
|
|
(
|
|
office IN CHAR,
|
|
time_gubun IN CHAR,
|
|
from_dt IN VARCHAR2,
|
|
to_dt IN VARCHAR2
|
|
) RETURN NUMBER
|
|
IS
|
|
|
|
tot_row NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
if time_gubun = '1' then
|
|
begin
|
|
if office = '%%' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT times,count(*)
|
|
FROM time_adjust_info
|
|
WHERE year || month || day between from_dt and to_dt
|
|
GROUP BY times);
|
|
else
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT times,count(*)
|
|
FROM time_adjust_info
|
|
WHERE fare_office_id = office
|
|
AND year || month || day between from_dt and to_dt
|
|
GROUP BY times);
|
|
end if;
|
|
end;
|
|
elsif time_gubun = '2' then
|
|
begin
|
|
if office = '%%' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year,month,day,count(*)
|
|
FROM day_adjust_info
|
|
WHERE year || month || day between from_dt and to_dt
|
|
GROUP BY year,month,day);
|
|
else
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year,month,day,count(*)
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id = office
|
|
AND year || month || day between from_dt and to_dt
|
|
GROUP BY year,month,day);
|
|
end if;
|
|
end;
|
|
elsif time_gubun = '3' then
|
|
begin
|
|
if office = '%%' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month,count(*)
|
|
FROM month_adjust_info
|
|
WHERE year || month between from_dt and to_dt
|
|
GROUP BY year, month);
|
|
else
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month,count(*)
|
|
FROM month_adjust_info
|
|
WHERE fare_office_id = office
|
|
AND year || month between from_dt and to_dt
|
|
GROUP BY year, month);
|
|
end if;
|
|
end;
|
|
elsif time_gubun = '4' then
|
|
begin
|
|
if office = '%%' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year,count(*)
|
|
FROM year_adjust_info
|
|
WHERE year between from_dt and to_dt
|
|
GROUP BY year);
|
|
else
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year,count(*)
|
|
FROM year_adjust_info
|
|
WHERE fare_office_id = office
|
|
AND year between from_dt and to_dt
|
|
GROUP BY year);
|
|
end if;
|
|
end;
|
|
end if;
|
|
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TSE001E_POST_MAX;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TSE001E_POST_MAX
|
|
(
|
|
IN_POST1 IN CHAR,
|
|
IN_POST2 IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_RET NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT NVL(MAX(ADDRESS_SEQNO), 0)
|
|
INTO V_RET
|
|
FROM ADDRESS_INFO
|
|
WHERE POST_NO1 = IN_POST1
|
|
AND POST_NO2 = IN_POST2;
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TSE001E_POST_MAX;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TSE001E_DUPLICATE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TSE001E_DUPLICATE
|
|
(
|
|
IN_CODE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_RET NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM ADMIN_ADDRESS_INFO
|
|
WHERE ADDRESS_ADMIN_CODE = IN_CODE;
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TSE001E_DUPLICATE;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TSD000E_OWNER;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TSD000E_OWNER
|
|
--
|
|
-- ????, ????? ???
|
|
-- ???? ????.
|
|
--
|
|
(
|
|
manage_year IN char, -- ????
|
|
manage_seqno IN number -- ????
|
|
) RETURN varchar2
|
|
IS
|
|
p_owner varchar2(30);
|
|
|
|
BEGIN
|
|
|
|
SELECT hh.owner
|
|
INTO p_owner
|
|
FROM penalty_head_info hh,
|
|
penalty_detail_info dd
|
|
WHERE dd.penalty_manage_year = manage_year
|
|
AND dd.penalty_seqno = manage_seqno
|
|
AND dd.car_no = hh.car_no
|
|
AND dd.resident_no = hh.resident_no;
|
|
|
|
RETURN p_owner;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '??';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TSD000E_MONEY;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TSD000E_MONEY
|
|
/****************************************************
|
|
** 관리년도, 일련번호를 받아서
|
|
** 과태료를 반환한다.
|
|
****************************************************/
|
|
(
|
|
manage_year IN char, -- 관리년도
|
|
manage_seqno IN number -- 일련번호
|
|
) RETURN number
|
|
IS
|
|
p_monty number := 0;
|
|
BEGIN
|
|
SELECT LAVY_AMOUNT
|
|
INTO p_monty
|
|
FROM penalty_detail_info
|
|
WHERE penalty_manage_year = manage_year
|
|
AND penalty_seqno = manage_seqno;
|
|
|
|
RETURN p_monty;
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TSD000E_CAR_TYPE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TSD000E_CAR_TYPE
|
|
/****************************************************
|
|
** 관리년도, 일련번호를 받아서
|
|
** 차종을 반환한다.
|
|
****************************************************/
|
|
(
|
|
manage_year IN char, -- 관리년도
|
|
manage_seqno IN number -- 일련번호
|
|
) RETURN varchar2
|
|
IS
|
|
p_car_name varchar2(60) := '';
|
|
p_cars_type_abb_name varchar2(60) := '';
|
|
BEGIN
|
|
SELECT CC.CARS_TYPE_FULL_NAME
|
|
INTO p_car_name
|
|
FROM penalty_head_info hh,
|
|
penalty_detail_info dd,
|
|
cars_type_code_info cc
|
|
WHERE dd.car_no = hh.car_no
|
|
AND dd.resident_date = hh.resident_date
|
|
AND dd.resident_no = hh.resident_no
|
|
AND dd.owner = hh.owner
|
|
AND HH.CAR_TYPE_ID = CC.CARS_TYPE_ID
|
|
AND dd.penalty_manage_year = RTRIM(manage_year)
|
|
AND dd.penalty_seqno = manage_seqno;
|
|
|
|
p_cars_type_abb_name := RTRIM(p_car_name, ' ');
|
|
|
|
RETURN p_cars_type_abb_name;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '기타';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TSD000E_ADDRESS;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TSD000E_ADDRESS
|
|
/******************************************************
|
|
** 관리년도, 일련번호를 받아서
|
|
** 주소를 반환한다.
|
|
*******************************************************/
|
|
(
|
|
manage_year IN char, -- 관리년도
|
|
manage_seqno IN number -- 일련번호
|
|
) RETURN varchar2
|
|
IS
|
|
add_name varchar2(60) := '';
|
|
add_number varchar2(60) := '';
|
|
p_address varchar2(120) := '';
|
|
BEGIN
|
|
SELECT hh.address_name, hh.address_number
|
|
INTO add_name, add_number
|
|
FROM penalty_head_info hh,
|
|
penalty_detail_info dd
|
|
WHERE dd.penalty_manage_year = manage_year
|
|
AND dd.penalty_seqno = manage_seqno
|
|
AND dd.car_no = hh.car_no
|
|
AND dd.resident_date = hh.resident_date;
|
|
|
|
p_address := RTRIM(add_name, ' ') || ' ' || RTRIM(add_number, ' ');
|
|
|
|
RETURN p_address;
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RETURN ' ';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRL000Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRL000Q_COUNT
|
|
(
|
|
in_fare IN CHAR, -- 요금소
|
|
jinso_gubun IN CHAR, -- 징수구분
|
|
-- in_ymd IN CHAR, -- 년
|
|
in_st IN CHAR, -- 시작일자
|
|
in_ed IN CHAR -- 종료일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
-- 구분 (일일징수부:1, 기간징수부:2)
|
|
if jinso_gubun = '1' then
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (select fare_office_id, day
|
|
from car_day_adjust_info
|
|
where fare_office_id like in_fare
|
|
and year || month || day = in_st
|
|
group by fare_office_id, day);
|
|
|
|
elsif jinso_gubun = '2' then
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (select fare_office_id, day
|
|
from car_day_adjust_info
|
|
where fare_office_id like in_fare
|
|
and year || month || day between in_st and in_ed
|
|
group by fare_office_id, day);
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRL000Q_2_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRL000Q_2_COUNT (
|
|
office IN CHAR, -- ??? ??
|
|
jinso_gubun IN CHAR, -- ?? ??
|
|
yymmdd_dt IN CHAR, -- ??
|
|
from_dt IN CHAR, -- ?? ???
|
|
to_dt IN CHAR -- ?? ???
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
-- ?? (?????:1, ?????:2)
|
|
if jinso_gubun = '1' then
|
|
select count(*)
|
|
into tot_row
|
|
from (select fare_office_id, day, count(*)
|
|
from car_day_adjust_info
|
|
where fare_office_id like office
|
|
and year || month || day = yymmdd_dt
|
|
group by fare_office_id, day);
|
|
|
|
elsif jinso_gubun = '2' then
|
|
select count(*)
|
|
into tot_row
|
|
from (select fare_office_id, day, count(*)
|
|
from car_day_adjust_info
|
|
where fare_office_id like office
|
|
and year || month || day between from_dt and to_dt
|
|
group by fare_office_id, day);
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRK000Q_COUNT_NEW;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRK000Q_COUNT_NEW
|
|
(
|
|
in_st IN CHAR, -- 시작일자
|
|
in_ed IN CHAR -- 종료일자
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
|
|
V_RET NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM ( SELECT YEAR AS T_YEAR, MONTH AS T_MONTH
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE YEAR||MONTH BETWEEN IN_ST AND IN_ED
|
|
GROUP BY YEAR, MONTH
|
|
UNION
|
|
SELECT TO_CHAR(P_MONTH, 'YYYY') AS T_YEAR,
|
|
TO_CHAR(P_MONTH, 'MM') AS T_MONTH
|
|
FROM DAY_WEEK
|
|
WHERE TO_CHAR(P_MONTH, 'YYYYMM') BETWEEN IN_ST AND IN_ED
|
|
GROUP BY TO_CHAR(P_MONTH, 'YYYY'), TO_CHAR(P_MONTH, 'MM'));
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TRK000Q_COUNT_NEW;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRI000Q_JINGSU;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRI000Q_JINGSU
|
|
(
|
|
in_gubun in char,
|
|
in_year in char,
|
|
in_month in char,
|
|
in_day in char
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
v_ret number := 0;
|
|
v_st char(8) := '';
|
|
v_ed char(8) := '';
|
|
|
|
BEGIN
|
|
|
|
if in_gubun = 'month' then
|
|
|
|
v_st := rtrim(in_year,' ')||rtrim(in_month,' ')||'01';
|
|
v_ed := rtrim(in_year,' ')||rtrim(in_month,' ')||rtrim(in_day,' ');
|
|
|
|
select count(*)
|
|
into v_ret
|
|
from (select year as t_year, month as t_month, day as t_day
|
|
from day_adjust_info
|
|
where year||month||day between v_st and v_ed
|
|
group by year, month, day
|
|
union
|
|
select to_char(p_date, 'yyyy') as t_year,
|
|
to_char(p_date, 'mm') as t_month,
|
|
to_char(p_date, 'dd') as t_day
|
|
from pass_day
|
|
where to_char(p_date, 'yyyymmdd') between v_st and v_ed
|
|
group by to_char(p_date, 'yyyy'),to_char(p_date,'mm'),to_char(p_date,'dd'));
|
|
|
|
elsif in_gubun = 'year' then
|
|
|
|
v_st := rtrim(in_year,' ')||'0101';
|
|
v_ed := rtrim(in_year,' ')||rtrim(in_month,' ')||rtrim(in_day,' ');
|
|
|
|
select count(*)
|
|
into v_ret
|
|
from (select year as t_year, month as t_month, day as t_day
|
|
from day_adjust_info
|
|
where year||month||day between v_st and v_ed
|
|
group by year, month, day
|
|
union
|
|
select to_char(p_date, 'yyyy') as t_year,
|
|
to_char(p_date, 'mm') as t_month,
|
|
to_char(p_date, 'dd') as t_day
|
|
from pass_day
|
|
where to_char(p_date, 'yyyymmdd') between v_st and v_ed
|
|
group by to_char(p_date, 'yyyy'),to_char(p_date,'mm'),to_char(p_date,'dd'));
|
|
|
|
end if;
|
|
|
|
return v_ret;
|
|
|
|
exception
|
|
when others then
|
|
return 0;
|
|
|
|
END FUN_TRI000Q_JINGSU;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRI000Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRI000Q_COUNT
|
|
(
|
|
IN_ST IN CHAR,
|
|
IN_ED IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_RET NUMBER := 0;
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into v_ret
|
|
from (select year||month||day as t_date
|
|
from day_adjust_info
|
|
where year||month||day between in_st and in_ed
|
|
group by year||month||day
|
|
union
|
|
select to_char(p_date, 'yyyymmdd') as t_date
|
|
from pass_day
|
|
where to_char(p_date, 'yyyymmdd') between in_st and in_ed
|
|
group by to_char(p_date, 'yyyymmdd'));
|
|
|
|
return v_ret;
|
|
|
|
exception
|
|
when others then
|
|
return 0;
|
|
|
|
END FUN_TRI000Q_COUNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRG502Q_03_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRG502Q_03_COUNT (
|
|
office IN CHAR, -- ??? ??
|
|
years IN CHAR, -- ?? ?
|
|
months IN CHAR, -- ?? ?
|
|
days IN CHAR -- ?? ?
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT year, month, day, booth_id, count(*)
|
|
FROM car_time_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between years || '01' || '01' and years || months || days
|
|
GROUP BY year, month, day, booth_id);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRG502Q_02_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRG502Q_02_COUNT (
|
|
office IN CHAR, -- ??? ??
|
|
years IN CHAR, -- ?? ?
|
|
months IN CHAR, -- ?? ?
|
|
days IN CHAR -- ?? ?
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT month, day, booth_id, count(*)
|
|
FROM car_time_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between years || months || '01' and years || months || days
|
|
GROUP BY month, day, booth_id);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRG502Q_01_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRG502Q_01_COUNT (
|
|
office IN CHAR, -- ??? ??
|
|
years IN CHAR, -- ?? ?
|
|
months IN CHAR, -- ?? ?
|
|
days IN CHAR -- ?? ?
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT day, booth_id, count(*)
|
|
FROM car_time_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day = years || months || days
|
|
GROUP BY day, booth_id);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRG501Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRG501Q_COUNT (
|
|
office IN CHAR, -- 요금소
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 죵료일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (select times
|
|
from car_time_adjust_info
|
|
where fare_office_id like office
|
|
and year || month || day between from_dt and to_dt
|
|
group by times);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRG000Q_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRG000Q_CNT
|
|
( v_office IN CHAR,
|
|
v_booth_id IN CHAR,
|
|
v_gubun IN CHAR,
|
|
v_from_dt IN VARCHAR2,
|
|
v_to_dt IN VARCHAR2
|
|
) RETURN NUMBER
|
|
IS
|
|
v_rc NUMBER := 0;
|
|
BEGIN
|
|
|
|
-- 시간대별
|
|
IF v_gubun = '1' THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO v_rc
|
|
FROM (SELECT TIMES,COUNT(*) FROM TIME_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND BOOTH_ID LIKE v_booth_id
|
|
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY TIMES);
|
|
-- 일별
|
|
ELSIF v_gubun = '2' THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO v_rc
|
|
FROM (SELECT YEAR,MONTH,DAY,COUNT(*) FROM DAY_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND BOOTH_ID LIKE v_booth_id
|
|
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY YEAR,MONTH,DAY);
|
|
-- 월별
|
|
ELSIF v_gubun = '3' THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO v_rc
|
|
FROM (SELECT YEAR,MONTH,COUNT(*) FROM MONTH_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND BOOTH_ID LIKE v_booth_id
|
|
AND YEAR||MONTH BETWEEN SUBSTR(v_from_dt,1,6) AND SUBSTR(v_to_dt,1,6)
|
|
GROUP BY YEAR,MONTH);
|
|
-- 년별
|
|
ELSE
|
|
|
|
SELECT COUNT(*)
|
|
INTO v_rc
|
|
FROM (SELECT YEAR,COUNT(*) FROM YEAR_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND BOOTH_ID LIKE v_booth_id
|
|
AND YEAR BETWEEN SUBSTR(v_from_dt,1,4) AND SUBSTR(v_to_dt,1,4)
|
|
GROUP BY YEAR);
|
|
END IF;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0 ;
|
|
|
|
END FUN_TRG000Q_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRF000Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_trf000q_count
|
|
(
|
|
office IN CHAR, -- 요금소
|
|
yoil IN CHAR, -- 요일
|
|
before_from_dt IN CHAR, -- 전년 시작일자
|
|
before_to_dt IN CHAR, -- 전년 종료일자
|
|
after_from_dt IN CHAR, -- 기준 시작일자
|
|
after_to_dt IN CHAR -- 기준 종료일자
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
|
|
tot_row NUMBER := 0;
|
|
|
|
before_row number := 0;
|
|
after_row number := 0;
|
|
|
|
BEGIN
|
|
|
|
if yoil = 'A' then -- 전체
|
|
select count(*)
|
|
into before_row
|
|
from (SELECT year, month
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between before_from_dt and before_to_dt
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
|
|
select count(*)
|
|
into after_row
|
|
from (SELECT year, month
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between after_from_dt and after_to_dt
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
|
|
elsif yoil = 'P' then -- 평일(토요일 제외)
|
|
select count(*)
|
|
into before_row
|
|
from (SELECT year, month
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between before_from_dt and before_to_dt
|
|
AND weekday_kbn = '1'
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
|
|
select count(*)
|
|
into after_row
|
|
from (SELECT year, month
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between after_from_dt and after_to_dt
|
|
AND weekday_kbn = '1'
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
|
|
elsif yoil = 'T' then -- 토요일 (평일 제외)
|
|
select count(*)
|
|
into before_row
|
|
from (SELECT year, month
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between before_from_dt and before_to_dt
|
|
AND weekday_kbn = '2'
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
|
|
select count(*)
|
|
into after_row
|
|
from (SELECT year, month
|
|
FROM day_adjust_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between after_from_dt and after_to_dt
|
|
AND weekday_kbn = '2'
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
end if;
|
|
|
|
if before_row >= after_row then
|
|
tot_row := before_row;
|
|
elsif before_row < after_row then
|
|
tot_row := after_row;
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRE502Q_LAST_STOCK;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRE502Q_LAST_STOCK
|
|
(
|
|
IN_FARE IN CHAR,
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_STOCK NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT NVL(SUM(NVL(LAST_DAY_STOCK_QUANTITY,0)),0)
|
|
INTO V_STOCK
|
|
FROM DAY_FIX_STOCK_INFO
|
|
WHERE FARE_OFFICE_ID = IN_FARE
|
|
AND YEAR||MONTH||DAY = IN_DATE;
|
|
|
|
RETURN V_STOCK;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TRE502Q_LAST_STOCK;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRE502Q_DATE_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRE502Q_DATE_CNT
|
|
(
|
|
IN_FARE IN CHAR,
|
|
IN_ST IN CHAR,
|
|
IN_ED IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_CNT NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT FARE_OFFICE_ID, YEAR, MONTH, DAY
|
|
FROM FIX_AMOUNT_DETAIL_INFO
|
|
WHERE FARE_OFFICE_ID = IN_FARE
|
|
AND YEAR||MONTH||DAY BETWEEN IN_ST AND IN_ED
|
|
AND IN_OUT_KBN = '21'
|
|
GROUP BY FARE_OFFICE_ID,YEAR,MONTH,DAY);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TRE502Q_DATE_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRE501Q_STOCK_QUANTITY1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRE501Q_STOCK_QUANTITY1
|
|
(
|
|
office IN CHAR, -- 요금소
|
|
pc_ymd IN CHAR -- 조회일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
pn_stock_quantity BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT nvl(sum(nvl(last_day_stock_quantity,0)),0)
|
|
INTO pn_stock_quantity
|
|
FROM day_fix_stock_info
|
|
WHERE fare_office_id = office
|
|
AND year||month||day = pc_ymd;
|
|
|
|
RETURN pn_stock_quantity;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRE501Q_STOCK_QUANTITY;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRE501Q_STOCK_QUANTITY
|
|
(
|
|
office IN CHAR, -- 요금소
|
|
pc_ymd IN CHAR -- 조회일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
pn_stock_quantity BINARY_INTEGER;
|
|
|
|
pc_year char;
|
|
pc_month char;
|
|
pc_day char;
|
|
|
|
BEGIN
|
|
|
|
pc_year := substr( pc_ymd, 1, 4 );
|
|
pc_month := substr( pc_ymd, 5, 2 );
|
|
pc_day := substr( pc_ymd, 7, 2 );
|
|
|
|
SELECT nvl(sum(nvl(stock_quantity,0)),0)
|
|
INTO pn_stock_quantity
|
|
FROM day_fix_stock_info
|
|
WHERE fare_office_id = office
|
|
AND year = pc_year
|
|
AND month = pc_month
|
|
AND day < pc_day;
|
|
|
|
RETURN pn_stock_quantity;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRE501Q_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRE501Q_COUNT1
|
|
(
|
|
office IN CHAR, -- 요금소
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM fix_amount_detail_info
|
|
WHERE fare_office_id = office
|
|
AND year || month || day between from_dt and to_dt;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRE501Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRE501Q_COUNT
|
|
(
|
|
office IN CHAR, -- 요금소
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, day, count(*)
|
|
FROM fix_amount_head_info
|
|
WHERE fare_office_id = office
|
|
AND year || month || day between from_dt and to_dt
|
|
GROUP BY year, month, day
|
|
ORDER BY year, month, day);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRE000Q_JINGSU_YEAR;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRE000Q_JINGSU_YEAR
|
|
(
|
|
in_year in char
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
v_ret number := 0;
|
|
BEGIN
|
|
|
|
if in_year = '1996' or in_year = '1997' then
|
|
|
|
select nvl(sum(nvl(m_day,0) + nvl(m_sat,0)),0)
|
|
into v_ret
|
|
from pass_month
|
|
where to_char(m_month, 'yyyy') = in_year;
|
|
|
|
else
|
|
|
|
select count(*)
|
|
into v_ret
|
|
from (select year, month, day
|
|
from day_adjust_info
|
|
where year = in_year
|
|
group by year, month, day
|
|
union
|
|
select to_char(p_date, 'yyyy'), to_char(p_date, 'mm') , to_char(p_date, 'dd')
|
|
from pass_day
|
|
where to_char(p_date, 'yyyy') = in_year
|
|
group by to_char(p_date, 'yyyy'), to_char(p_date, 'mm') , to_char(p_date, 'dd'));
|
|
|
|
end if;
|
|
|
|
return v_ret;
|
|
|
|
exception
|
|
when others then
|
|
return 0;
|
|
|
|
END FUN_TRE000Q_JINGSU_YEAR;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRE000Q_JINGSU_MONTH;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRE000Q_JINGSU_MONTH
|
|
(
|
|
in_year in char,
|
|
in_month in char
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
v_ret number := 0;
|
|
BEGIN
|
|
|
|
if in_year = '1996' or in_year = '1997' then
|
|
|
|
select nvl(sum(nvl(m_day,0) + nvl(m_sat,0)),0)
|
|
into v_ret
|
|
from pass_month
|
|
where to_char(m_month, 'yyyy') = in_year
|
|
and to_char(m_month, 'mm') = in_month;
|
|
|
|
else
|
|
|
|
select count(*)
|
|
into v_ret
|
|
from (select year, month, day
|
|
from day_adjust_info
|
|
where year = in_year
|
|
and month = in_month
|
|
group by year, month, day
|
|
union
|
|
select to_char(p_date, 'yyyy'), to_char(p_date, 'mm') , to_char(p_date, 'dd')
|
|
from pass_day
|
|
where to_char(p_date, 'yyyy') = in_year
|
|
and to_char(p_date, 'mm') = in_month
|
|
group by to_char(p_date, 'yyyy'), to_char(p_date, 'mm') , to_char(p_date, 'dd'));
|
|
|
|
end if;
|
|
|
|
return v_ret;
|
|
|
|
exception
|
|
when others then
|
|
return 0;
|
|
|
|
END FUN_TRE000Q_JINGSU_MONTH;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRE000Q_JINGSU;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRE000Q_JINGSU
|
|
(
|
|
in_year in char,
|
|
in_month in char
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
v_ret number := 0;
|
|
BEGIN
|
|
|
|
if in_year = '1996' or in_year = '1997' then
|
|
|
|
select nvl(m_day,0) + nvl(m_sat,0)
|
|
into v_ret
|
|
from pass_month
|
|
where to_char(m_month, 'yyyy') = in_year
|
|
and to_char(m_month, 'mm') = in_month;
|
|
|
|
else
|
|
|
|
select count(*)
|
|
into v_ret
|
|
from (select year, month, day
|
|
from day_adjust_info
|
|
where year = in_year
|
|
and month = in_month
|
|
group by year, month, day
|
|
union
|
|
select to_char(p_date, 'yyyy'), to_char(p_date, 'mm') , to_char(p_date, 'dd')
|
|
from pass_day
|
|
where to_char(p_date, 'yyyy') = in_year
|
|
and to_char(p_date, 'mm') = in_month
|
|
group by to_char(p_date, 'yyyy'), to_char(p_date, 'mm') , to_char(p_date, 'dd'));
|
|
|
|
end if;
|
|
|
|
return v_ret;
|
|
|
|
exception
|
|
when others then
|
|
return 0;
|
|
|
|
END FUN_TRE000Q_JINGSU;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRD000Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRD000Q_COUNT (
|
|
office IN CHAR, -- ??? ??
|
|
from_dt IN CHAR, -- ?? ???
|
|
to_dt IN CHAR -- ?? ???
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (select fare_office_id, day, count(*)
|
|
from car_day_adjust_info
|
|
where fare_office_id like office
|
|
and year || month || day between from_dt and to_dt
|
|
group by fare_office_id, day);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRC500Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRC500Q_COUNT(
|
|
office IN CHAR, -- 요금소
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, day, worker_id, seqno
|
|
FROM overcoupon_detail_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between from_dt and to_dt
|
|
AND over_kbn = '1'
|
|
GROUP BY year, month, day, worker_id, seqno);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRC000Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRC000Q_COUNT
|
|
(
|
|
gubun IN CHAR, -- 구분
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
) RETURN NUMBER
|
|
IS
|
|
|
|
tot_row NUMBER := 0;
|
|
|
|
BEGIN
|
|
-- 일별
|
|
if gubun = '1' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT fare_office_id,year, month, day
|
|
FROM day_adjust_info
|
|
WHERE year || month || day between from_dt and to_dt
|
|
GROUP BY fare_office_id,year, month, day);
|
|
-- 월별
|
|
elsif gubun = '2' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT fare_office_id,year, month
|
|
FROM month_adjust_info
|
|
WHERE year || month between from_dt and to_dt
|
|
GROUP BY fare_office_id,year, month);
|
|
-- 년별
|
|
elsif gubun = '3' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT fare_office_id,year
|
|
FROM year_adjust_info
|
|
WHERE year between from_dt and to_dt
|
|
GROUP BY fare_office_id,year);
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRB500Q_INS_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRB500Q_INS_CNT
|
|
(
|
|
office IN CHAR,
|
|
pc_year IN CHAR,
|
|
pc_month IN CHAR,
|
|
pc_day IN CHAR
|
|
) RETURN NUMBER
|
|
IS
|
|
|
|
tot_row NUMBER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM day_fix_stock_info
|
|
WHERE fare_office_id = office
|
|
AND year = pc_year
|
|
AND month = pc_month
|
|
AND day = pc_day;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRB500Q_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRB500Q_COUNT1
|
|
(
|
|
office IN CHAR, -- 요금소
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, day
|
|
FROM fare_terminal_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between from_dt and to_dt
|
|
and collect_id = '51'
|
|
and delete_yn = '0'
|
|
GROUP BY year, month, day
|
|
ORDER BY year, month, day);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRB500Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRB500Q_COUNT
|
|
(
|
|
office IN CHAR, -- 요금소
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, day
|
|
FROM fare_terminal_info
|
|
WHERE fare_office_id like office
|
|
AND year || month || day between from_dt and to_dt
|
|
and delete_yn = '0'
|
|
GROUP BY year, month, day
|
|
ORDER BY year, month, day);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRA500Q_CNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRA500Q_CNT1
|
|
/******************************************************************************
|
|
NAME: FUN_TRA500Q_CNT
|
|
PURPOSE: 요금단말에서 조회조건의 카운트를 리턴한다.
|
|
|
|
REVISIONS:
|
|
Ver DATE Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-08 KIM DONG EUN 1. Created this FUNCTION.
|
|
|
|
Object Name: FUN_TRA500Q_CNT OR FUN_TRA500Q_CNT
|
|
SYSDATE: 2002-11-08
|
|
DATE/TIME: 2002-11-08 오후 10:46:22
|
|
DATE: 2002-11-08
|
|
TIME: 오후 10:46:22
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
(
|
|
IN_FARE IN CHAR,
|
|
IN_BOOTH IN CHAR,
|
|
IN_GUBUN IN CHAR,
|
|
IN_ST IN CHAR,
|
|
IN_ED IN CHAR,
|
|
IN_CAR IN VARCHAR2
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
IF IN_GUBUN = '%' THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM FARE_TERMINAL_INFO A
|
|
WHERE A.FARE_OFFICE_ID LIKE IN_FARE
|
|
AND A.BOOTH_ID LIKE IN_BOOTH
|
|
AND A.YEAR||A.MONTH||A.DAY BETWEEN IN_ST AND IN_ED
|
|
AND A.CAR_NO LIKE IN_CAR
|
|
AND A.COLLECT_ID <> '52'
|
|
AND A.DELETE_YN = '0';
|
|
|
|
ELSIF IN_GUBUN = '20' THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM FARE_TERMINAL_INFO A
|
|
WHERE A.FARE_OFFICE_ID LIKE IN_FARE
|
|
AND A.BOOTH_ID LIKE IN_BOOTH
|
|
AND A.YEAR||A.MONTH||A.DAY BETWEEN IN_ST AND IN_ED
|
|
AND A.COLLECT_ID IN ('21','22')
|
|
AND A.DELETE_YN = '0'
|
|
AND A.CAR_NO LIKE IN_CAR;
|
|
|
|
ELSE
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM FARE_TERMINAL_INFO A
|
|
WHERE A.FARE_OFFICE_ID LIKE IN_FARE
|
|
AND A.BOOTH_ID LIKE IN_BOOTH
|
|
AND A.COLLECT_ID = IN_GUBUN
|
|
AND A.YEAR||A.MONTH||A.DAY BETWEEN IN_ST AND IN_ED
|
|
AND A.DELETE_YN = '0'
|
|
AND A.CAR_NO LIKE IN_CAR;
|
|
|
|
END IF;
|
|
|
|
RETURN V_CNT;
|
|
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TRA500Q_CNT1;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRA500Q_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.Fun_Tra500q_Cnt
|
|
/******************************************************************************
|
|
NAME: FUN_TRA500Q_CNT
|
|
PURPOSE: 요금단말에서 조회조건의 카운트를 리턴한다.
|
|
|
|
REVISIONS:
|
|
Ver DATE Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-08 KIM DONG EUN 1. Created this FUNCTION.
|
|
|
|
Object Name: FUN_TRA500Q_CNT OR FUN_TRA500Q_CNT
|
|
SYSDATE: 2002-11-08
|
|
DATE/TIME: 2002-11-08 오후 10:46:22
|
|
DATE: 2002-11-08
|
|
TIME: 오후 10:46:22
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
(
|
|
IN_FARE IN CHAR,
|
|
IN_BOOTH IN CHAR,
|
|
IN_GUBUN IN CHAR,
|
|
IN_ST IN CHAR,
|
|
IN_ED IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_CNT NUMBER := 0;
|
|
BEGIN
|
|
|
|
IF IN_GUBUN = '%' THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT A.WORKER_ID, A.YEAR, A.MONTH, A.DAY, A.WORK_TIMES,
|
|
A.COLLECT_ID, A.LEVY_AMOUNT
|
|
FROM FARE_TERMINAL_INFO A
|
|
WHERE A.FARE_OFFICE_ID LIKE IN_FARE
|
|
AND A.BOOTH_ID LIKE IN_BOOTH
|
|
-- AND A.COLLECT_ID LIKE IN_GUBUN
|
|
AND A.YEAR||A.MONTH||A.DAY BETWEEN IN_ST AND IN_ED
|
|
AND A.COLLECT_ID IN ('10', '21','22','30','40','51')
|
|
AND A.DELETE_YN = '0');
|
|
|
|
ELSIF IN_GUBUN = '20' THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT A.WORKER_ID, A.YEAR, A.MONTH, A.DAY, A.WORK_TIMES,
|
|
A.COLLECT_ID, A.LEVY_AMOUNT
|
|
FROM FARE_TERMINAL_INFO A
|
|
WHERE A.FARE_OFFICE_ID LIKE IN_FARE
|
|
AND A.BOOTH_ID LIKE IN_BOOTH
|
|
-- AND A.COLLECT_ID LIKE IN_GUBUN
|
|
AND A.YEAR||A.MONTH||A.DAY BETWEEN IN_ST AND IN_ED
|
|
AND A.COLLECT_ID IN ('21','22')
|
|
AND A.DELETE_YN = '0');
|
|
|
|
ELSE
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT A.WORKER_ID, A.YEAR, A.MONTH, A.DAY, A.WORK_TIMES,
|
|
A.COLLECT_ID, A.LEVY_AMOUNT
|
|
FROM FARE_TERMINAL_INFO A
|
|
WHERE A.FARE_OFFICE_ID LIKE IN_FARE
|
|
AND A.BOOTH_ID LIKE IN_BOOTH
|
|
AND A.COLLECT_ID LIKE IN_GUBUN
|
|
AND A.YEAR||A.MONTH||A.DAY BETWEEN IN_ST AND IN_ED
|
|
AND A.DELETE_YN = '0');
|
|
|
|
END IF;
|
|
|
|
RETURN V_CNT;
|
|
|
|
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
|
|
END Fun_Tra500q_Cnt;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRA000Q_COUNT_K;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRA000Q_COUNT_K
|
|
(
|
|
v_office IN CHAR,
|
|
v_gubun IN NUMBER,
|
|
v_from_dt IN CHAR,
|
|
v_to_dt IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
-- 징수원,차로,시간,일,월,년별 건수
|
|
v_rc NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 징수원별
|
|
IF v_gubun = 1 THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO v_rc
|
|
FROM (SELECT WORKER_ID
|
|
FROM FARE_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE V_OFFICE
|
|
AND YEAR||MONTH||DAY BETWEEN v_from_dt and v_to_dt
|
|
GROUP BY WORKER_ID);
|
|
|
|
-- 시간별
|
|
ELSIF v_gubun = 2 THEN
|
|
|
|
SELECT count(*)
|
|
INTO v_rc
|
|
FROM ( SELECT TIMES
|
|
FROM TIME_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY TIMES);
|
|
-- 차로별
|
|
ELSIF v_gubun = 3 THEN
|
|
|
|
SELECT count(*)
|
|
INTO v_rc
|
|
FROM ( SELECT BOOTH_ID
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY BOOTH_ID);
|
|
-- 일별
|
|
ELSIF v_gubun = 4 THEN
|
|
|
|
SELECT count(*)
|
|
INTO v_rc
|
|
FROM (SELECT YEAR,MONTH,DAY
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY YEAR,MONTH,DAY);
|
|
-- 월별
|
|
ELSIF v_gubun = 5 THEN
|
|
|
|
SELECT count(*)
|
|
INTO v_rc
|
|
FROM ( SELECT YEAR,MONTH
|
|
FROM MONTH_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY YEAR,MONTH);
|
|
-- 년별
|
|
ELSIF v_gubun = '6' THEN
|
|
|
|
SELECT count(*)
|
|
INTO v_rc
|
|
FROM (SELECT YEAR
|
|
FROM YEAR_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY YEAR);
|
|
END IF;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
Return 0;
|
|
|
|
END FUN_TRA000Q_COUNT_K;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TRA000Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TRA000Q_COUNT
|
|
( v_office IN VARCHAR2,
|
|
v_gubun IN BINARY_INTEGER,
|
|
v_from_dt IN VARCHAR2,
|
|
v_to_dt IN VARCHAR2
|
|
)
|
|
RETURN BINARY_INTEGER
|
|
IS
|
|
-- 징수원,차로,시간,일,월,년별 건수
|
|
v_rc BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
-- 징수원별
|
|
IF v_gubun = 1 THEN
|
|
SELECT count(*)
|
|
INTO v_rc
|
|
FROM (SELECT WORKER_ID,COUNT(*)
|
|
FROM FARE_TERMINAL_INFO
|
|
WHERE DELETE_YN = '0'
|
|
AND FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY WORKER_ID);
|
|
/*
|
|
SELECT count(*)
|
|
INTO v_rc
|
|
FROM (SELECT WORKER_ID,COUNT(*)
|
|
FROM FARE_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY WORKER_ID);
|
|
*/
|
|
-- 시간별
|
|
ELSIF v_gubun = 2 THEN
|
|
SELECT count(*)
|
|
INTO v_rc
|
|
FROM ( SELECT TIMES,COUNT(*)
|
|
FROM TIME_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY TIMES);
|
|
-- 차로별
|
|
ELSIF v_gubun = 3 THEN
|
|
SELECT count(*)
|
|
INTO v_rc
|
|
FROM ( SELECT BOOTH_ID,count(*)
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY BOOTH_ID);
|
|
-- 일별
|
|
ELSIF v_gubun = 4 THEN
|
|
SELECT count(*)
|
|
INTO v_rc
|
|
FROM (SELECT YEAR,MONTH,DAY,count(*)
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY YEAR,MONTH,DAY);
|
|
-- 월별
|
|
ELSIF v_gubun = 5 THEN
|
|
SELECT count(*)
|
|
INTO v_rc
|
|
FROM ( SELECT YEAR,MONTH
|
|
FROM MONTH_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY YEAR,MONTH);
|
|
-- 년별
|
|
ELSE
|
|
SELECT count(*)
|
|
INTO v_rc
|
|
FROM (SELECT YEAR,COUNT(*)
|
|
FROM YEAR_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR BETWEEN v_from_dt AND v_to_dt
|
|
GROUP BY YEAR);
|
|
END IF;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
v_rc := 0;
|
|
Return v_rc;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TIF000Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TIF000Q_COUNT(
|
|
office IN CHAR, -- 요금소
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
|
|
) RETURN number
|
|
IS
|
|
|
|
tot_row number := 0;
|
|
|
|
BEGIN
|
|
|
|
/*
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT fare_office_id, count(*)
|
|
FROM car_day_adjust_info
|
|
WHERE fare_office_id LIKE office
|
|
AND year || month || day BETWEEN from_dt AND to_dt
|
|
GROUP BY fare_office_id);
|
|
*/
|
|
SELECT COUNT(*)
|
|
INTO TOT_ROW
|
|
FROM (
|
|
SELECT YEAR,MONTH,DAY
|
|
FROM CAR_DAY_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE OFFICE
|
|
AND YEAR||MONTH||DAY BETWEEN FROM_DT AND TO_DT
|
|
GROUP BY YEAR,MONTH,DAY);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TIC002Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TIC002Q_COUNT(
|
|
office IN CHAR, -- 요금소
|
|
notice IN CHAR, -- 고지구분
|
|
car IN CHAR, -- 차량번호
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT substr(b.penalty_manage_year, 3, 2)|| ' - ' ||b.penalty_seqno as seq_no, b.notice_id, b.car_no,
|
|
a.car_type_id, b.year || b.month || b.day ||' - '|| b.work_times as work_time,
|
|
a.owner, a.post_no1 ||' - '|| a.post_no2 as post_no,
|
|
a.address_name, b.notice_date, b.lavy_amount,
|
|
b.year || b.month || b.day as nobbu_date, count(*)
|
|
FROM penalty_head_info a,
|
|
penalty_detail_info b
|
|
WHERE a.car_no = b.car_no
|
|
AND a.resident_no = b.resident_no
|
|
AND B.RECEIPT_YN = '1'
|
|
AND b.fare_office_id LIKE office
|
|
AND b.BEFORE_MOTION_ID LIKE notice
|
|
AND a.car_no LIKE car
|
|
AND b.year || b.month || b.day BETWEEN from_dt AND to_dt
|
|
GROUP BY substr(b.penalty_manage_year, 3, 2)|| ' - ' ||b.penalty_seqno, b.notice_id, b.car_no,
|
|
a.car_type_id, b.year || b.month || b.day ||' - '|| b.work_times,
|
|
a.owner, a.post_no1 ||' - '|| a.post_no2,
|
|
a.address_name, b.notice_date, b.lavy_amount,
|
|
b.year || b.month || b.day);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TIC001Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TIC001Q_COUNT (
|
|
office IN CHAR,
|
|
notice IN CHAR,
|
|
car IN CHAR,
|
|
from_dt IN CHAR,
|
|
to_dt IN CHAR
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
tot_row BINARY_INTEGER;
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (select penalty_manage_year, penalty_seqno
|
|
from penalty_detail_info
|
|
where fare_office_id like office
|
|
and year||month||day between from_dt and to_dt
|
|
and motion_id like notice
|
|
and car_no like car
|
|
and receipt_yn = '0');
|
|
|
|
|
|
/*
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no, a.notice_id, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||a.work_times as work_time,
|
|
b.owner, b.post_no1 || ' - ' || b.post_no2 as post_no, b.address_name, a.notice_date,
|
|
a.fine_amount, a.seizure_trmi_yn, count(*)
|
|
FROM penalty_detail_info a,
|
|
penalty_head_info b
|
|
WHERE a.car_no = b.car_no
|
|
AND a.resident_no = b.resident_no
|
|
AND a.RECEIPT_YN = '0'
|
|
AND a.fare_office_id like office
|
|
AND a.MOTION_ID like notice
|
|
AND b.car_no like car
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno, a.notice_id, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||a.work_times,
|
|
b.owner, b.post_no1 || ' - ' || b.post_no2, b.address_name, a.notice_date,
|
|
a.fine_amount, a.seizure_trmi_yn);
|
|
*/
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFL000Q_RECEIPT_DUP_CHECK;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFL000Q_RECEIPT_DUP_CHECK
|
|
(
|
|
IN_YEAR IN CHAR,
|
|
IN_SEQNO IN NUMBER,
|
|
IN_DATE IN CHAR,
|
|
IN_MOTION IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_RET NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM RECEIPT_INFO
|
|
WHERE PENALTY_MANAGE_YEAR = IN_YEAR
|
|
AND PENALTY_SEQNO = IN_SEQNO
|
|
AND RECEIPT_ID = IN_MOTION;
|
|
--AND TO_CHAR(RECEIPT_DATE, 'YYYYMMDD') = IN_DATE;
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TFL000Q_RECEIPT_DUP_CHECK;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFL000Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFL000Q_COUNT (
|
|
from_dt IN CHAR,
|
|
to_dt IN CHAR,
|
|
gubun IN number -- 압류 구분 (1:전체, 2:현압류, 3:기존압류)
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
v_return BINARY_INTEGER;
|
|
BEGIN
|
|
|
|
-- 전체
|
|
IF gubun = 1 THEN
|
|
BEGIN
|
|
SELECT NVL(COUNT(*), 0)
|
|
INTO v_return
|
|
FROM (
|
|
SELECT D.FARE_OFFICE_ID, D.BOOTH_ID, D.YEAR, D.MONTH, D.DAY, D.WORK_TIMES
|
|
FROM PENALTY_DETAIL_INFO D,
|
|
SEIZURE_INFO S
|
|
WHERE D.SEIZURE_MANAGE_YEAR = S.SEIZURE_MANAGE_YEAR
|
|
AND D.SEIZURE_MANAGE_NO = S.SEIZURE_MANAGE_NO
|
|
AND D.YEAR || D.MONTH || D.DAY BETWEEN from_dt AND to_dt
|
|
);
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN
|
|
v_return := 0;
|
|
END;
|
|
|
|
|
|
-- 현 압류..
|
|
ELSIF gubun = 2 THEN
|
|
BEGIN
|
|
SELECT NVL(COUNT(*), 0)
|
|
INTO v_return
|
|
FROM (
|
|
SELECT D.FARE_OFFICE_ID, D.BOOTH_ID, D.YEAR, D.MONTH, D.DAY, D.WORK_TIMES
|
|
FROM PENALTY_DETAIL_INFO D,
|
|
SEIZURE_INFO S
|
|
WHERE D.SEIZURE_MANAGE_YEAR = S.SEIZURE_MANAGE_YEAR
|
|
AND D.SEIZURE_MANAGE_NO = S.SEIZURE_MANAGE_NO
|
|
AND D.SEISURE_YN = '1' -- 압류여부...(압류)
|
|
AND D.SEIZURE_TRMI_YN = '1' -- 압류해지여부.. (압류)
|
|
AND (D.SEIZURE_ID = NULL OR -- 압류생성단계이거나, 압류촉탁인 대상...
|
|
D.SEIZURE_ID = '01')
|
|
AND D.YEAR || D.MONTH || D.DAY BETWEEN from_dt AND to_dt
|
|
);
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN
|
|
v_return := 0;
|
|
END;
|
|
|
|
|
|
-- 기존 압류대상..
|
|
ELSIF gubun = 3 THEN
|
|
BEGIN
|
|
SELECT NVL(COUNT(*), 0)
|
|
INTO v_return
|
|
FROM (
|
|
SELECT D.FARE_OFFICE_ID, D.BOOTH_ID, D.YEAR, D.MONTH, D.DAY, D.WORK_TIMES
|
|
FROM PENALTY_DETAIL_INFO D,
|
|
SEIZURE_INFO S
|
|
WHERE D.SEIZURE_MANAGE_YEAR = S.SEIZURE_MANAGE_YEAR
|
|
AND D.SEIZURE_MANAGE_NO = S.SEIZURE_MANAGE_NO
|
|
AND D.SEIZURE_TRMI_YN = '2' -- 압류해지여부..
|
|
AND D.SEIZURE_ID = '03' -- 압류해지..
|
|
AND D.YEAR || D.MONTH || D.DAY BETWEEN from_dt AND to_dt
|
|
);
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN
|
|
v_return := 0;
|
|
END;
|
|
|
|
END IF;
|
|
|
|
RETURN v_return;
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RETURN -1;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFL000Q_BANK_NAME;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFL000Q_BANK_NAME
|
|
(
|
|
IN_BANK IN CHAR
|
|
)
|
|
RETURN VARCHAR2
|
|
IS
|
|
V_BANK VARCHAR2(60) := ' ';
|
|
V_JIJUM VARCHAR2(60) := ' ';
|
|
V_BANK_NAME VARCHAR2(60) := ' ';
|
|
BEGIN
|
|
|
|
-- 수납처리기관 가져오기
|
|
-- 수납은행 코드 필요함.
|
|
-- 은행코드 - 2BYTE -- 2010.4.17 kde 4/19부터 3byte
|
|
-- 지점코드 - 4BYTE
|
|
BEGIN
|
|
SELECT BANK_FULL_NAME
|
|
INTO V_BANK
|
|
FROM BANK_INFO
|
|
WHERE BANK_ID = SUBSTR(IN_BANK, 1, 3);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
V_BANK := ' ';
|
|
WHEN OTHERS THEN
|
|
V_BANK := ' ';
|
|
END;
|
|
/*
|
|
BEGIN
|
|
SELECT SPOT_FULL_NAME
|
|
INTO V_JIJUM
|
|
FROM BANK_SPOT_INFO
|
|
WHERE BANK_ID = SUBSTR(IN_BANK, 1, 3)
|
|
AND SPOT_ID = SUBSTR(IN_BANK, 3, 4);
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
V_JIJUM := ' ';
|
|
WHEN OTHERS THEN
|
|
V_JIJUM := ' ';
|
|
END;
|
|
*/
|
|
-- V_BANK_NAME := RTRIM(RTRIM(V_BANK, ' ')||RTRIM(V_JIJUM, ' '),' ');
|
|
V_BANK_NAME := RTRIM(V_BANK, ' ');
|
|
|
|
RETURN V_BANK_NAME;
|
|
|
|
END FUN_TFL000Q_BANK_NAME;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFK002Q_CAR_TYPE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFK002Q_CAR_TYPE
|
|
(
|
|
code_id IN CHAR -- 차종코드
|
|
) RETURN varchar2
|
|
IS
|
|
p_cars_type_abb_name varchar2(60);
|
|
BEGIN
|
|
|
|
SELECT cars_type_abb_name
|
|
INTO p_cars_type_abb_name
|
|
FROM cars_type_code_info
|
|
WHERE code_id = cars_type_id;
|
|
|
|
p_cars_type_abb_name := RTRIM(p_cars_type_abb_name,' ');
|
|
|
|
RETURN p_cars_type_abb_name;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '기타';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFK001Q_BIGO;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFK001Q_BIGO
|
|
(
|
|
code_id IN CHAR -- 압류해지 코드
|
|
) RETURN varchar2
|
|
IS
|
|
|
|
p_seizure_termi_id varchar2(60);
|
|
|
|
BEGIN
|
|
|
|
SELECT seizure_termi_full_name
|
|
INTO p_seizure_termi_id
|
|
FROM seizure_termi_code_info
|
|
WHERE code_id = seizure_termi_id;
|
|
|
|
RETURN p_seizure_termi_id;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '기타';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFJ006Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFJ006Q_COUNT
|
|
(
|
|
gubun IN CHAR, -- 차량구분
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
IF gubun = '1' THEN -- 승합차
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||a.work_times as work_time,
|
|
a.fare_office_id, a.booth_id, b.owner, a.receipt_yn, count(*)
|
|
FROM penalty_detail_info a,
|
|
penalty_head_info b
|
|
WHERE a.car_no = b.car_no
|
|
AND a.resident_no = b.resident_no
|
|
AND (substr(rtrim(a.car_no), 5, 1) IN('5', '6') OR substr(rtrim(a.car_no), 5, 2) BETWEEN '70' AND '79')
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||a.work_times,
|
|
a.fare_office_id, a.booth_id, b.owner, a.receipt_yn);
|
|
|
|
ELSIF gubun = '2' THEN -- SOFA
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT c.car_no, c.car_type_id, a.max_carry_capacity,
|
|
c.year ||'/'|| c.month||'/'|| c.day ||' - '|| substr(c.work_times,1,2)||':'||
|
|
substr(c.work_times,3,2)||':'||substr(c.work_times,5.2) as work_time,
|
|
c.fare_office_id, c.booth_id, a.owner, a.post_no1 || a.post_no2 as post_no,
|
|
a.address_name, count(*), c.army_cars_kbn
|
|
FROM penalty_head_info a,
|
|
penalty_detail_info b,
|
|
fare_terminal_info c
|
|
WHERE a.car_no = b.car_no(+)
|
|
AND a.resident_no = b.resident_no(+)
|
|
AND C.FARE_OFFICE_ID = B.FARE_OFFICE_ID(+)
|
|
AND C.BOOTH_ID = B.BOOTH_ID(+)
|
|
AND C.YEAR = B.YEAR(+)
|
|
AND C.MONTH = B.MONTH(+)
|
|
AND C.DAY = B.DAY(+)
|
|
AND C.WORKER_ID = B.WORKER_ID(+)
|
|
AND C.WORK_TIMES = B.WORK_TIMES(+)
|
|
AND C.SEQNO = B.SEQNO(+)
|
|
AND c.ARMY_CARS_KBN = '1'
|
|
AND c.DELETE_YN = '0'
|
|
AND c.year || c.month || c.day BETWEEN from_dt AND to_dt
|
|
GROUP BY c.car_no, c.car_type_id, a.max_carry_capacity,
|
|
c.year ||'/'|| c.month||'/'|| c.day ||' - '|| substr(c.work_times,1,2)||':'||
|
|
substr(c.work_times,3,2)||':'||substr(c.work_times,5.2),
|
|
c.fare_office_id, c.booth_id, a.owner, a.post_no1 || a.post_no2,
|
|
a.address_name,c.army_cars_kbn);
|
|
|
|
|
|
/*
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||a.work_times as work_time,
|
|
a.fare_office_id, a.booth_id, b.owner, a.receipt_yn, count(*)
|
|
FROM penalty_detail_info a,
|
|
penalty_head_info b
|
|
WHERE a.car_no = b.car_no
|
|
AND a.owner = b.owner
|
|
AND a.resident_no = b.resident_no
|
|
AND rtrim(a.car_no) LIKE '%-%-%'
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||a.work_times,
|
|
a.fare_office_id, a.booth_id, b.owner, a.receipt_yn);
|
|
*/
|
|
END IF;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFJ005Q_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFJ005Q_COUNT1
|
|
(
|
|
in_cnt in number
|
|
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (
|
|
select count(car_no)
|
|
from penalty_detail_info
|
|
WHERE RECEIPT_YN = '0' -- 추가부분, 수납대상은 제외...
|
|
group by car_no, resident_no
|
|
having count(car_no) = in_cnt);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFJ005Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFJ005Q_COUNT
|
|
(
|
|
office IN CHAR, -- 요금소
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
tot_row BINARY_INTEGER := 0;
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.year,
|
|
a.month,
|
|
a.day,
|
|
a.reader,
|
|
sum(a.sum_count) as sum_count,
|
|
sum(a.sum_notconfirm) as sum_notconfirm,
|
|
sum(a.count_notconfirm) as count_notconfirm,
|
|
sum(a.count_notconfirm1) as count_notconfirm1,
|
|
sum(a.count_result) as count_result, -- 면제
|
|
sum(a.sp_cnt) as sp_cnt, -- 적발건수
|
|
sum(a.count_notice) as count_notice, -- 고지건수
|
|
sum(a.sum_count1) as sum_count1, -- 미고지건수 = 면제 + 무적(차적) + 무적(원부) + 확인불가
|
|
sum(a.count_result2) as count_result1, -- 무적
|
|
sum(a.count_result1) as count_result2 -- 이의신청서 건수
|
|
FROM
|
|
(SELECT a.year, -- 나머지 전부
|
|
a.month,
|
|
a.day as day,
|
|
a.reader as reader,
|
|
0 as sum_count, -- 합계
|
|
(sum(decode(a.read_result_id, '05', decode(a.notconfirm_id, '01', 1, 0), 0)) +
|
|
sum(decode(a.read_result_id, '05', decode(a.notconfirm_id, '01', 0, 1), 0))) as sum_notconfirm, -- 소계
|
|
sum(decode(a.read_result_id, '05', decode(a.notconfirm_id, '01', 1, 0), 0)) as count_notconfirm, -- 번호판불량
|
|
sum(decode(a.read_result_id, '05', decode(a.notconfirm_id, '01', 0, 1), 0)) as count_notconfirm1, -- 기타?
|
|
sum(decode(a.read_result_id, '01', 1, 0)) as count_result, -- 면제
|
|
count(*) as sp_cnt, -- 적발건수
|
|
sum(decode(a.read_result_id, '02',decode(a.cars_data_kbn,'3',0,decode(a.cars_data_kbn,'4',0,1)), 0)) as count_notice, -- 고지건수 (고지대상인데 판독후 아직 차적조회조차 보내지 않은 대상)
|
|
(sum(decode(a.read_result_id, '01', 1, 0)) + -- 면제
|
|
sum(decode(a.read_result_id, '02', decode(a.cars_data_kbn, '1', 1, 0), 0)) + -- 차적조회
|
|
sum(decode(a.read_result_id, '02', decode(a.cars_data_kbn, '2', 1, 0), 0)) + -- 차적조회 오류.
|
|
sum(decode(a.read_result_id, '03', 1, 0)) + -- 장애인 고지??? 코드가 존재하므로... sum(decode(a.read_result_id, '04', decode(a.cars_data_kbn, '1', 1, 0), 0) + -- 차적조회
|
|
sum(decode(a.read_result_id, '04', decode(a.cars_data_kbn, '2', 1, 0), 0)) + -- 차적조회 오류.
|
|
sum(decode(a.read_result_id, '05', 1, 0)) ) as sum_count1 , -- 미고지건수( 위 고지대상 외 전부)
|
|
sum(decode(a.read_result_id, '01', decode(a.exempt_reason_id, '07', 1, 0), 0)) as count_result2, -- 무적
|
|
0 as count_result1 -- 이의신청서 건수
|
|
FROM DEFAULT_FARE_READ_INFO a
|
|
WHERE a.fare_office_id LIKE office
|
|
AND a.year || a.month || a.day BETWEEN from_dt AND to_dt
|
|
AND A.READ_KBN = '1'
|
|
GROUP BY a.year, a.month, a.day, a.reader
|
|
UNION ALL
|
|
SELECT a.year, -- 고지건수, 미고지건수
|
|
a.month,
|
|
a.day,
|
|
A.reader,
|
|
0,0,0,0,0,
|
|
0,
|
|
count(*) as count_notice, -- 고지건수,
|
|
0 as sum_count1 , -- 미고지건수
|
|
0,0
|
|
FROM DEFAULT_FARE_READ_INFO A,
|
|
PENALTY_DETAIL_INFO B
|
|
WHERE A.FARE_OFFICE_ID = B.FARE_OFFICE_ID
|
|
AND A.BOOTH_ID = B.BOOTH_ID
|
|
AND A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES = B.YEAR||B.MONTH||B.DAY||B.WORK_TIMES
|
|
AND a.fare_office_id LIKE office
|
|
AND a.year || a.month || a.day BETWEEN from_dt AND to_dt
|
|
AND A.READ_KBN = '1'
|
|
GROUP BY a.year, a.month, a.day, A.reader
|
|
UNION ALL
|
|
select T.year, -- 이의신청 건수
|
|
T.month,
|
|
T.day,
|
|
C.reader,
|
|
0,0,0,0,0,0,
|
|
sum(decode(T.PENALTY_PROCESS_YN, '0', decode(T.NOTICE_KBN, '1', 1,0), 0)) as count_notice ,-- 고지건수(부과) ,
|
|
sum(decode(T.NOTICE_KBN, '0', 1, 0)) as sum_count1 , -- 미고지건수(부과) ,
|
|
0,
|
|
sum(decode(T.MOTION_ID, '23', 1, decode(T.MOTION_ID,'24', 1, 0))) as count_result1 -- 이의신청 접수건수
|
|
from LEVY_TARGET_INFO T,
|
|
DEFAULT_FARE_READ_INFO C
|
|
where T.fare_office_id LIKE office --T.motion_id IN ('23', '24') -- 이의신청, 이의신청 처리
|
|
and T.year || T.month || T.day BETWEEN from_dt AND to_dt
|
|
and T.worker_id = C.worker_id
|
|
and T.fare_office_id = C.fare_office_id
|
|
and T.booth_id = C.booth_id
|
|
and T.year||T.month||T.day||T.work_times = C.year||C.month||C.day||C.work_times
|
|
AND C.READ_KBN = '1'
|
|
AND C.CARS_DATA_KBN = '4' -- 부과예고생성..
|
|
GROUP BY T.year, T.month, T.day, C.reader) a
|
|
GROUP BY a.year, a.month, a.day, a.reader);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFJ003Q_PUPUP_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFJ003Q_PUPUP_COUNT
|
|
(
|
|
gubun IN CHAR, -- 구분
|
|
car IN CHAR, -- 차량번호
|
|
ownerin IN CHAR, -- 소유자
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR, -- 종료일자
|
|
receipt_kbn IN char -- 수납여부 ( %:전체, 0:체납, 1:수납 )
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
tot_row BINARY_INTEGER;
|
|
BEGIN
|
|
|
|
-- 개인
|
|
IF gubun = '1' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.car_no, a.car_type_id, a.owner,
|
|
b.year || b.month || b.day ||' - '|| b.work_times as work_time, count(*)
|
|
FROM penalty_head_info a,
|
|
penalty_detail_info b
|
|
WHERE a.car_no = b.car_no
|
|
AND a.resident_no = b.resident_no
|
|
AND a.owner LIKE ownerin
|
|
and b.receipt_yn like receipt_kbn
|
|
and b.motion_id not like '5%'
|
|
AND b.year || b.month || b.day BETWEEN from_dt AND to_dt
|
|
GROUP BY a.car_no, a.car_type_id, a.owner,
|
|
b.year || b.month || b.day ||' - '|| b.work_times);
|
|
|
|
-- 차량
|
|
ELSIF gubun = '2' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.car_no, a.car_type_id, a.owner,
|
|
b.year || b.month || b.day ||' - '|| b.work_times as work_time, count(*)
|
|
FROM penalty_head_info a,
|
|
penalty_detail_info b
|
|
WHERE a.car_no = b.car_no
|
|
AND a.resident_no = b.resident_no
|
|
AND a.car_no LIKE car
|
|
and b.receipt_yn like receipt_kbn
|
|
and b.motion_id not like '5%'
|
|
AND b.year || b.month || b.day BETWEEN from_dt AND to_dt
|
|
GROUP BY a.car_no, a.car_type_id, a.owner,
|
|
b.year || b.month || b.day ||' - '|| b.work_times);
|
|
|
|
END IF;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFJ003Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFJ003Q_COUNT(
|
|
in_car in char, -- 차량번호
|
|
in_resident_no in char -- 주민번호.
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT substr(b.penalty_manage_year, 3, 2)|| ' - ' ||b.penalty_seqno as seq_no,
|
|
b.year|| '.' ||b.month|| '.' ||b.day|| ' - ' ||b.work_times as work_time,
|
|
b.fare_office_id, b.booth_id, b.fine_amount, b.notice_id, b.notice_date
|
|
FROM penalty_head_info a,
|
|
penalty_detail_info b
|
|
WHERE a.car_no = b.car_no
|
|
AND a.resident_no = b.resident_no
|
|
AND a.car_no = in_car
|
|
AND a.resident_no = in_resident_no
|
|
AND B.RECEIPT_YN = '0'
|
|
AND B.MOTION_ID NOT IN ('51','52')
|
|
GROUP BY substr(b.penalty_manage_year, 3, 2)|| ' - ' ||b.penalty_seqno,
|
|
b.year|| '.' ||b.month|| '.' ||b.day|| ' - ' ||b.work_times,
|
|
b.fare_office_id, b.booth_id, b.fine_amount, b.notice_id, b.notice_date);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFJ002Q_CAR_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFJ002Q_CAR_COUNT (
|
|
count1 IN CHAR,
|
|
count2 IN CHAR,
|
|
v_from_dt IN CHAR,
|
|
v_to_dt IN CHAR,
|
|
v_car_name IN VARCHAR2,
|
|
v_owner IN VARCHAR2 -- 2003/10/21 chi young update
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
tot_row BINARY_INTEGER := 0;
|
|
BEGIN
|
|
SELECT NVL(count(*), 0)
|
|
INTO tot_row
|
|
from penalty_detail_info a,
|
|
penalty_head_info b
|
|
where a.car_no = RTRIM(v_car_name)
|
|
AND a.owner = RTRIM(v_owner)
|
|
and a.receipt_yn = '0'
|
|
and a.motion_id not IN ('51','52','91')
|
|
and a.year || a.month || a.day between v_from_dt and v_to_dt
|
|
-- and a.notice_id = '01' 2003/10/21 chi young update
|
|
and a.car_no = b.car_no
|
|
and a.owner = b.owner
|
|
and a.resident_no = b.resident_no
|
|
and a.resident_date = b.resident_date
|
|
group by a.car_no;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFJ001Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFJ001Q_COUNT (
|
|
from_dt IN CHAR, -- ?? ???
|
|
to_dt IN CHAR -- ?? ???
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.car_no, substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no,
|
|
f.cars_type_full_name, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||a.work_times as work_time,
|
|
c.fare_office_full_name, d.booth_full_name, a.lavy_amount, b.owner, b.address_name, e.motion_full_name,
|
|
a.seizure_date, count(*)
|
|
FROM penalty_detail_info a,
|
|
penalty_head_info b,
|
|
fare_office_code_info c,
|
|
booth_code_info d,
|
|
motion_code_info e,
|
|
cars_type_code_info f
|
|
WHERE a.car_no = b.car_no
|
|
AND a.owner = b.owner
|
|
AND a.resident_no = b.resident_no
|
|
AND a.fare_office_id = c.fare_office_id
|
|
AND a.booth_id = d.booth_id
|
|
AND a.motion_id = e.motion_id
|
|
AND a.motion_id in ('30','31','32','33','34','35','36','37','38','40','41','42','43','44','45','46','47','48', '71','72','81','82','83','84')
|
|
AND b.car_type_id = f.cars_type_id
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
GROUP BY a.car_no, substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno,
|
|
f.cars_type_full_name, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||a.work_times,
|
|
c.fare_office_full_name, d.booth_full_name, a.lavy_amount, b.owner, b.address_name, e.motion_full_name,
|
|
a.seizure_date);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI012Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI012Q_COUNT(
|
|
from_dt IN CHAR -- ???
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, count(*)
|
|
FROM overfare_info
|
|
WHERE year <= from_dt
|
|
GROUP BY year);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI011E_TAXES_MAX;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI011E_TAXES_MAX
|
|
(
|
|
IN_FARE IN CHAR,
|
|
IN_YEAR IN CHAR,
|
|
IN_MONTH IN CHAR,
|
|
IN_DAY IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_ROW NUMBER;
|
|
V_CNT NUMBER;
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_ROW
|
|
FROM OVERFARE_TAXES_INFO
|
|
WHERE FARE_OFFICE_ID = IN_FARE
|
|
AND ENTRY_YEAR = IN_YEAR
|
|
AND ENTRY_MONTH = IN_MONTH
|
|
AND ENTRY_DAY = IN_DAY;
|
|
|
|
IF V_ROW = 0 THEN
|
|
V_CNT := 0;
|
|
ELSE
|
|
SELECT MAX(ENTRY_SEQNO)
|
|
INTO V_CNT
|
|
FROM OVERFARE_TAXES_INFO
|
|
WHERE FARE_OFFICE_ID = IN_FARE
|
|
AND ENTRY_YEAR = IN_YEAR
|
|
AND ENTRY_MONTH = IN_MONTH
|
|
AND ENTRY_DAY = IN_DAY;
|
|
END IF;
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TFI011E_TAXES_MAX;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI011E_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI011E_COUNT
|
|
(
|
|
from_dt IN CHAR,
|
|
to_dt IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
|
|
tot_row NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, count(*)
|
|
FROM overfare_info
|
|
WHERE year || month between from_dt and to_dt
|
|
GROUP BY year, month);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI010U_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI010U_COUNT
|
|
(
|
|
office IN CHAR,
|
|
from_dt IN CHAR,
|
|
to_dt IN CHAR,
|
|
in_overfare in char,
|
|
in_refund in char
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/*
|
|
overfare_kbn = 1, refund_kbn = 0 -> 미환불
|
|
overfare_kbn = 2, refund_kbn = 1 => 환불
|
|
overfare_kbn = 2, refund_kbn = 2 => 시세입
|
|
|
|
고로 overfare_kbn = 1 인것만 차적생성을 할 수 있습니다.
|
|
*/
|
|
|
|
v_row NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO v_row
|
|
FROM OVERFARE_INFO
|
|
WHERE FARE_OFFICE_ID LIKE OFFICE
|
|
AND YEAR||MONTH||DAY BETWEEN FROM_DT AND TO_DT
|
|
AND OVERFARE_KBN = in_overfare
|
|
and refund_kbn = in_refund
|
|
AND DELETE_YN = '0';
|
|
|
|
RETURN v_row;
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI010U_CHK;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI010U_CHK(
|
|
in_owner IN CHAR,
|
|
in_car IN CHAR,
|
|
in_jumin IN CHAR,
|
|
in_reg_date IN CHAR
|
|
) RETURN number
|
|
IS
|
|
|
|
tot_row number;
|
|
ld_reg_date date;
|
|
|
|
BEGIN
|
|
ld_reg_date := to_date(in_reg_date,'yyyy-mm-dd');
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from overfare_order_info
|
|
where owner = in_owner
|
|
and car_no = in_car
|
|
and resident_no = in_jumin
|
|
and resident_date = ld_reg_date;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI010U_CARNO_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI010U_CARNO_CNT
|
|
(
|
|
in_car IN CHAR
|
|
) RETURN number
|
|
IS
|
|
|
|
tot_row number;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from overfare_info
|
|
where car_no = in_car;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI009Q_COUNT2;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI009Q_COUNT2(
|
|
from_dt IN CHAR, -- ???
|
|
to_dt IN CHAR
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT yymm, return_count
|
|
FROM double_receipt_return_info
|
|
WHERE yymm between from_dt and to_dt);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI009Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI009Q_COUNT
|
|
(
|
|
gubun IN CHAR,
|
|
from_dt IN CHAR,
|
|
to_dt IN CHAR
|
|
)
|
|
RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
-- 월별
|
|
if gubun = '1' then
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, count(*)
|
|
FROM penalty_detail_info
|
|
WHERE year || month between from_dt and to_dt
|
|
AND double_receipt_yn = '1'
|
|
GROUP BY year, month);
|
|
|
|
-- 년별
|
|
else
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, count(*)
|
|
FROM penalty_detail_info
|
|
WHERE year between from_dt and to_dt
|
|
AND double_receipt_yn = '1'
|
|
GROUP BY year);
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TFI009Q_COUNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI008Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI008Q_COUNT
|
|
(
|
|
gubun IN CHAR,
|
|
from_dt IN CHAR,
|
|
to_dt IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
|
|
tot_row NUMBER := 0;
|
|
|
|
BEGIN
|
|
-- 통행일자별..
|
|
if gubun = '1' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT a.penalty_manage_year, a.penalty_seqno
|
|
FROM receipt_info a, penalty_detail_info b
|
|
WHERE a.penalty_manage_year = b.penalty_manage_year
|
|
AND a.penalty_seqno = b.penalty_seqno
|
|
AND b.year || b.month || b.day between from_dt and to_dt
|
|
AND double_receipt_yn = '1'
|
|
GROUP BY a.penalty_manage_year, a.penalty_seqno);
|
|
|
|
-- 수납일자별..
|
|
else
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT a.penalty_manage_year, a.penalty_seqno
|
|
FROM receipt_info a, penalty_detail_info b
|
|
WHERE a.penalty_manage_year = b.penalty_manage_year
|
|
AND a.penalty_seqno = b.penalty_seqno
|
|
AND to_char( a.receipt_date, 'yyyymmdd' ) between from_dt and to_dt
|
|
AND b.double_receipt_yn = '1'
|
|
GROUP BY a.penalty_manage_year, a.penalty_seqno);
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI007Q_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI007Q_COUNT1
|
|
(
|
|
gubun IN number, -- 월별:1, 년별:2
|
|
in_year IN CHAR,
|
|
in_month in char
|
|
)
|
|
RETURN number
|
|
IS
|
|
tot_row number := 0;
|
|
BEGIN
|
|
-- 월별이면...
|
|
IF gubun = 1 THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO tot_row
|
|
FROM (select year,month,day
|
|
from day_adjust_info
|
|
where year = in_year
|
|
and month = in_month
|
|
group by year,month,day
|
|
union
|
|
select to_char(receipt_date,'yyyy'),
|
|
to_char(receipt_date,'mm'),
|
|
to_char(receipt_date,'dd')
|
|
from receipt_info
|
|
where to_char(receipt_date,'yyyy') = in_year
|
|
and to_char(receipt_date,'mm') = in_month
|
|
group by to_char(receipt_date,'yyyy'),
|
|
to_char(receipt_date,'mm'),
|
|
to_char(receipt_date,'dd'));
|
|
|
|
-- 년별이면...
|
|
ELSIF gubun = 2 THEN
|
|
-- 2011.1.19 kde 년별이면 1월~12월 표시하면됨...
|
|
-- day_adjust_info로 그룹해서 보여주면됨...
|
|
SELECT COUNT(*)
|
|
INTO tot_row
|
|
FROM (select year,month
|
|
from day_adjust_info
|
|
where year = in_year
|
|
group by year,month);
|
|
/* union
|
|
select to_char(receipt_date,'yyyy'),
|
|
to_char(receipt_date,'mm')
|
|
from receipt_info
|
|
where to_char(receipt_date,'yyyy') = in_year
|
|
group by to_char(receipt_date,'yyyy'),
|
|
to_char(receipt_date,'mm'));
|
|
*/
|
|
END IF;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TFI007Q_COUNT1;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI007Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI007Q_COUNT
|
|
(
|
|
gubun IN number, -- 월별:1, 년별:2
|
|
from_dt IN CHAR -- 년월
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
tot_row BINARY_INTEGER := 0;
|
|
BEGIN
|
|
-- 월별이면...
|
|
IF gubun = 1 THEN
|
|
SELECT COUNT(*)
|
|
INTO tot_row
|
|
FROM (
|
|
SELECT A.YEAR, A.MONTH, A.DAY, SUM(A.v_levy_amount), SUM(A.v_receipt_amount), SUM(A.v_overfare)
|
|
FROM (
|
|
SELECT D.YEAR, D.MONTH, D.DAY,
|
|
0 as v_levy_amount, -- 통행료
|
|
SUM(R.RECEIPT_AMOUNT) as v_receipt_amount, -- 과태료
|
|
0 as v_overfare -- 과오납
|
|
FROM PENALTY_DETAIL_INFO D,
|
|
RECEIPT_INFO R
|
|
WHERE D.PENALTY_MANAGE_YEAR = R.PENALTY_MANAGE_YEAR
|
|
AND D.PENALTY_SEQNO = R.PENALTY_SEQNO
|
|
AND D.YEAR || D.MONTH = from_dt
|
|
GROUP BY D.YEAR, D.MONTH, D.DAY
|
|
UNION ALL
|
|
SELECT T.YEAR, T.MONTH, T.DAY,
|
|
SUM(T.LEVY_AMOUNT) as v_levy_amount, -- 통행료
|
|
0 as v_receipt_amount,-- 과태료
|
|
0 as v_overfare -- 과오납
|
|
FROM FARE_TERMINAL_INFO T
|
|
WHERE T.YEAR || T.MONTH = from_dt
|
|
AND T.COLLECT_ID IN ('10', '21', '22', '52')
|
|
GROUP BY T.YEAR, T.MONTH, T.DAY
|
|
UNION ALL
|
|
SELECT O.YEAR, O.MONTH, O.DAY,
|
|
0 as v_levy_amount, -- 통행료
|
|
0 as v_receipt_amount,-- 과태료
|
|
SUM(O.OVERFARE_AMOUNT) as v_overfare -- 과오납
|
|
FROM OVERFARE_INFO O
|
|
WHERE YEAR || MONTH = from_dt
|
|
AND OVERFARE_KBN = '1' -- 과오납 구분 (1:입금, 2: 출금)
|
|
AND REFUND_KBN = '0' -- 관급 구분 (0:환급무, 1:환급, 2:시세임)
|
|
AND PROCESS_KBN = '0' -- 집계처리 구분 (0:미처리, 1:과오납처리, 2:시세입처리)
|
|
GROUP BY O.YEAR, O.MONTH, O.DAY
|
|
) A
|
|
GROUP BY A.YEAR, A.MONTH, A.DAY);
|
|
|
|
|
|
|
|
-- 년별이면...
|
|
ELSIF gubun = 2 THEN
|
|
SELECT COUNT(*)
|
|
INTO tot_row
|
|
FROM (
|
|
SELECT A.YEAR, A.MONTH, SUM(A.v_levy_amount), SUM(A.v_receipt_amount), SUM(A.v_overfare)
|
|
FROM (
|
|
SELECT D.YEAR, D.MONTH,
|
|
0 as v_levy_amount, -- 통행료
|
|
SUM(R.RECEIPT_AMOUNT) as v_receipt_amount, -- 과태료
|
|
0 as v_overfare -- 과오납
|
|
FROM PENALTY_DETAIL_INFO D,
|
|
RECEIPT_INFO R
|
|
WHERE D.PENALTY_MANAGE_YEAR = R.PENALTY_MANAGE_YEAR
|
|
AND D.PENALTY_SEQNO = R.PENALTY_SEQNO
|
|
AND D.YEAR = from_dt
|
|
GROUP BY D.YEAR, D.MONTH
|
|
UNION ALL
|
|
SELECT T.YEAR, T.MONTH,
|
|
SUM(T.LEVY_AMOUNT) as v_levy_amount, -- 통행료
|
|
0 as v_receipt_amount,-- 과태료
|
|
0 as v_overfare -- 과오납
|
|
FROM FARE_TERMINAL_INFO T
|
|
WHERE T.YEAR = from_dt
|
|
AND T.COLLECT_ID IN ('10', '21', '22', '52')
|
|
GROUP BY T.YEAR, T.MONTH
|
|
UNION ALL
|
|
SELECT O.YEAR, O.MONTH,
|
|
0 as v_levy_amount, -- 통행료
|
|
0 as v_receipt_amount,-- 과태료
|
|
SUM(O.OVERFARE_AMOUNT) as v_overfare -- 과오납
|
|
FROM OVERFARE_INFO O
|
|
WHERE YEAR = from_dt
|
|
AND OVERFARE_KBN = '1' -- 과오납 구분 (1:입금, 2: 출금)
|
|
AND REFUND_KBN = '0' -- 관급 구분 (0:환급무, 1:환급, 2:시세임)
|
|
AND PROCESS_KBN = '0' -- 집계처리 구분 (0:미처리, 1:과오납처리, 2:시세입처리)
|
|
GROUP BY O.YEAR, O.MONTH
|
|
) A
|
|
GROUP BY A.YEAR, A.MONTH);
|
|
|
|
END IF;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI006Q_SUM;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI006Q_SUM(
|
|
from_dt IN CHAR -- ?? ???
|
|
) RETURN NUMBER
|
|
IS
|
|
|
|
tot_sum NUMBER;
|
|
|
|
BEGIN
|
|
select nvl(sum(nvl(receipt_amount,0)),0)
|
|
into tot_sum
|
|
from receipt_info
|
|
where to_char(receipt_date,'yyyymm') = from_dt;
|
|
|
|
RETURN tot_sum;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI006Q_COUNT2;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI006Q_COUNT2(
|
|
from_dt IN CHAR, -- ?? ???
|
|
chk_ym IN CHAR
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT a.penalty_seqno aa
|
|
FROM penalty_detail_info a, receipt_info b
|
|
WHERE a.penalty_manage_year = b.penalty_manage_year
|
|
AND a.penalty_seqno = b.penalty_seqno
|
|
AND a.year = chk_ym
|
|
AND to_char(b.receipt_date,'yyyymmdd') = from_dt);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI006Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI006Q_COUNT(
|
|
from_dt IN CHAR -- ?? ???
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT receipt_date
|
|
FROM receipt_info
|
|
WHERE to_char(receipt_date,'yyyymm') = from_dt
|
|
GROUP BY receipt_date);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI005Q_SUM;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI005Q_SUM
|
|
(
|
|
from_dt IN CHAR -- 년월
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
tot_sum NUMBER :=0;
|
|
BEGIN
|
|
|
|
select nvl(sum(nvl(receipt_amount,0)),0)
|
|
into tot_sum
|
|
from receipt_info
|
|
where to_char(receipt_date,'yyyymm') = from_dt;
|
|
|
|
RETURN tot_sum;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END FUN_TFI005Q_SUM;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI005Q_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI005Q_COUNT1
|
|
(
|
|
from_dt IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
-- 2004/07/30 KIM DONG EUN 수정.
|
|
IS
|
|
|
|
tot_row NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT b.year as t_year, count(*) as cnt, sum(b.lavy_amount) as cash
|
|
FROM receipt_info a, penalty_detail_info b
|
|
WHERE a.PENALTY_MANAGE_YEAR = b.PENALTY_MANAGE_YEAR
|
|
and a.PENALTY_SEQNO = b.PENALTY_SEQNO
|
|
and to_char(a.receipt_date,'yyyymmdd') = from_dt
|
|
group by b.year);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TFI005Q_COUNT1;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI005Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI005Q_COUNT
|
|
(
|
|
from_dt IN CHAR -- 년월
|
|
)
|
|
RETURN NUMBER
|
|
-- 2004/07/30 KIM DONG EUN 수정.
|
|
IS
|
|
|
|
tot_row NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT to_char(receipt_date, 'yyyymmdd')
|
|
FROM receipt_info
|
|
WHERE to_char(receipt_date,'yyyymm') = from_dt
|
|
and dou_yn = '0'
|
|
GROUP BY to_char(receipt_date, 'yyyymmdd'));
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TFI005Q_COUNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI004Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI004Q_COUNT
|
|
(
|
|
gubun IN number, -- 월별:1 년별:2..
|
|
from_dt IN CHAR -- 시작일자
|
|
) RETURN number
|
|
IS
|
|
tot_row number := 0;
|
|
BEGIN
|
|
--월별 ..
|
|
IF gubun = 1 THEN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT to_char(receipt_date, 'yyyymmdd')
|
|
FROM receipt_info
|
|
WHERE to_char(receipt_date,'yyyymm') = from_dt
|
|
group by to_char(receipt_date, 'yyyymmdd'));
|
|
|
|
--년별 ..
|
|
ELSIF gubun = 2 THEN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT TO_CHAR(receipt_date, 'yyyymm')
|
|
FROM receipt_info
|
|
WHERE to_char(receipt_date,'yyyy') = from_dt
|
|
group by TO_CHAR(receipt_date, 'yyyymm'));
|
|
|
|
END IF;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END FUN_TFI004Q_COUNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI002Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI002Q_COUNT
|
|
(
|
|
office IN CHAR, -- 요금소.
|
|
from_dt IN CHAR, -- FROM.
|
|
to_dt IN CHAR -- TO.
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
tot_row BINARY_INTEGER := 0;
|
|
v_cnt1 BINARY_INTEGER := 0;
|
|
v_cnt2 BINARY_INTEGER := 0;
|
|
BEGIN
|
|
SELECT COUNT(*)
|
|
INTO tot_row
|
|
FROM (
|
|
SELECT NULL as seq_no,
|
|
c.fare_office_full_name, d.booth_full_name, a.year, a.month, a.day,
|
|
e.exempt_reason_full_name, a.car_no, a.car_type_name, a.remarks,
|
|
N.NOTCONFIRM_FULL_NAME
|
|
FROM DEFAULT_FARE_READ_INFO A,
|
|
FARE_OFFICE_CODE_INFO C,
|
|
BOOTH_CODE_INFO D,
|
|
EXEMPT_REASON_CODE_INFO E,
|
|
NOTCONFIRM_CODE_INFO N
|
|
WHERE a.fare_office_id = c.fare_office_id
|
|
AND a.fare_office_id = d.fare_office_id
|
|
AND a.booth_id = d.booth_id
|
|
AND a.exempt_reason_id = e.exempt_reason_id
|
|
AND A.NOTCONFIRM_ID = N.NOTCONFIRM_ID(+)
|
|
AND a.fare_office_id like office
|
|
AND a.year || a.month || a.day between from_dt AND to_dt
|
|
AND A.READ_RESULT_ID = '01' -- 면제 , AND a.cars_data_kbn = '0' -- 차적조회 무
|
|
UNION ALL
|
|
SELECT NULL as seq_no,
|
|
c.fare_office_full_name, d.booth_full_name, a.year, a.month, a.day,
|
|
e.exempt_reason_full_name, a.car_no, a.car_type_name, a.remarks,
|
|
N.NOTCONFIRM_FULL_NAME
|
|
FROM default_fare_read_info a,
|
|
fare_office_code_info c,
|
|
booth_code_info d,
|
|
exempt_reason_code_info e,
|
|
NOTCONFIRM_CODE_INFO N
|
|
WHERE a.fare_office_id = c.fare_office_id
|
|
AND a.fare_office_id = d.fare_office_id
|
|
AND a.booth_id = d.booth_id
|
|
AND a.exempt_reason_id = e.exempt_reason_id
|
|
AND A.NOTCONFIRM_ID = N.NOTCONFIRM_ID(+)
|
|
AND a.fare_office_id like office
|
|
AND a.year || a.month || a.day between from_dt AND to_dt
|
|
AND A.READ_RESULT_ID = '05' -- 확인불가.
|
|
);
|
|
|
|
/*
|
|
SELECT NVL(count(*), 0)
|
|
INTO v_cnt1
|
|
FROM default_fare_read_info a,
|
|
fare_office_code_info c,
|
|
booth_code_info d,
|
|
exempt_reason_code_info e
|
|
WHERE a.fare_office_id = c.fare_office_id
|
|
AND a.fare_office_id = d.fare_office_id
|
|
AND a.booth_id = d.booth_id
|
|
AND a.exempt_reason_id = e.exempt_reason_id
|
|
AND a.fare_office_id like office
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
AND A.READ_RESULT_ID = '01'
|
|
AND a.cars_data_kbn = '0';
|
|
|
|
SELECT NVL(count(*), 0)
|
|
INTO v_cnt2
|
|
FROM default_fare_read_info a,
|
|
levy_target_info b,
|
|
fare_office_code_info c,
|
|
booth_code_info d,
|
|
exempt_reason_code_info e
|
|
WHERE a.worker_id = b.worker_id
|
|
AND a.fare_office_id = b.fare_office_id
|
|
AND a.fare_office_id = c.fare_office_id
|
|
AND a.fare_office_id = d.fare_office_id
|
|
AND a.booth_id = b.booth_id
|
|
AND a.booth_id = d.booth_id
|
|
AND a.year = b.year
|
|
AND a.month = b.month
|
|
AND a.day = b.day
|
|
AND a.car_no = b.car_no
|
|
AND a.work_times = b.work_times
|
|
AND a.exempt_reason_id = e.exempt_reason_id
|
|
AND a.fare_office_id like office
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
AND a.cars_data_kbn = '4'
|
|
AND b.penalty_process_yn = '0';
|
|
|
|
tot_row := v_cnt1 + v_cnt2;
|
|
*/
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI001Q_MONTH_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI001Q_MONTH_CNT
|
|
(
|
|
in_year in char,
|
|
office IN CHAR, -- 요금소
|
|
go_gubun IN CHAR -- 고지구분
|
|
)
|
|
RETURN BINARY_INTEGER
|
|
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
if go_gubun = '%' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT month
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id in ('31','32','33','34','35','36','37','38','41','42','43','44','45','46','47','48','71','72')
|
|
AND year = in_year
|
|
GROUP BY month
|
|
ORDER BY month);
|
|
|
|
elsif go_gubun = '1' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT month
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id in ('31','32','33','34','35','36','37','38')
|
|
AND year = in_year
|
|
GROUP BY month
|
|
ORDER BY month);
|
|
|
|
elsif go_gubun = '2' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT month
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id in ('41','42','43','44','45','46','47','48')
|
|
AND year = in_year
|
|
GROUP BY month
|
|
ORDER BY month);
|
|
|
|
elsif go_gubun = '3' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT month
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id like '7%'
|
|
AND year = in_year
|
|
GROUP BY month
|
|
ORDER BY month);
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI001Q_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI001Q_COUNT1
|
|
(
|
|
office IN CHAR, -- 요금소
|
|
go_gubun IN CHAR, -- 고지구분
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
)
|
|
RETURN BINARY_INTEGER
|
|
|
|
IS
|
|
tot_row BINARY_INTEGER;
|
|
BEGIN
|
|
|
|
if go_gubun = '%' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id in ('31','33','35','41','43','45')
|
|
-- AND motion_id in ('31','32','33','34','35','36','37','38','41','42','43','44','45','46','47','48','71','72')
|
|
AND year || month between from_dt and to_dt
|
|
GROUP BY year
|
|
ORDER BY year);
|
|
|
|
elsif go_gubun = '1' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id in ('31','33','35')
|
|
-- AND motion_id in ('31','32','33','34','35','36','37','38')
|
|
AND year || month between from_dt and to_dt
|
|
GROUP BY year
|
|
ORDER BY year);
|
|
|
|
elsif go_gubun = '2' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id in ('41','43','45')
|
|
--AND motion_id in ('41','42','43','44','45','46','47','48')
|
|
AND year || month between from_dt and to_dt
|
|
GROUP BY year
|
|
ORDER BY year);
|
|
|
|
elsif go_gubun = '3' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id like '7%'
|
|
AND year || month between from_dt and to_dt
|
|
GROUP BY year
|
|
ORDER BY year);
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFI001Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFI001Q_COUNT
|
|
(
|
|
office IN CHAR, -- 요금소.
|
|
ym_gubun IN CHAR, -- 년/월 구분.
|
|
go_gubun IN CHAR, -- 고지구분.
|
|
from_dt IN CHAR, -- FROM.
|
|
to_dt IN CHAR -- TO.
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
tot_row NUMBER := 0;
|
|
BEGIN
|
|
|
|
-- 년별..
|
|
if ym_gubun = '1' then
|
|
-- 고지구분:전체..
|
|
if go_gubun = '%' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, count(*)
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND year || month between from_dt and to_dt
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
-- 1차고지.
|
|
elsif go_gubun = '1' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, count(*)
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id in ('31', '32', '33','34', '35','36','37','38')
|
|
AND year || month between from_dt and to_dt
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
-- 2차고지.
|
|
elsif go_gubun = '2' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, count(*)
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id in ('41','42','43','44','45','46','47','48')
|
|
AND year || month between from_dt and to_dt
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
-- 압류촉탁.
|
|
elsif go_gubun = '3' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, count(*)
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id like '7%'
|
|
AND year || month between from_dt and to_dt
|
|
GROUP BY year, month
|
|
ORDER BY year, month);
|
|
end if;
|
|
|
|
-- 년별.
|
|
elsif ym_gubun = '2' then
|
|
-- 고지구분 : 전체.
|
|
if go_gubun = '%' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, count(*)
|
|
FROM penalty_detail_info
|
|
WHERE fare_office_id like office
|
|
AND year between from_dt and to_dt
|
|
GROUP BY year
|
|
ORDER BY year);
|
|
-- 1차고지.
|
|
elsif go_gubun = '1' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, count(*)
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id in ('31', '32', '33','34', '35','36','37','38')
|
|
AND year between from_dt and to_dt
|
|
GROUP BY year
|
|
ORDER BY year);
|
|
-- 2차고지.
|
|
elsif go_gubun = '2' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, count(*)
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id in ('41','42','43','44','45','46','47','48')
|
|
AND year between from_dt and to_dt
|
|
GROUP BY year
|
|
ORDER BY year);
|
|
-- 압류촉탁.
|
|
elsif go_gubun = '3' then
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, count(*)
|
|
FROM penalty_history_info
|
|
WHERE fare_office_id like office
|
|
AND motion_id like '7%'
|
|
AND year between from_dt and to_dt
|
|
GROUP BY year
|
|
ORDER BY year);
|
|
end if;
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFG001E_HIS_DETAIL_CHK;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFG001E_HIS_DETAIL_CHK
|
|
(
|
|
in_st in char,
|
|
in_ed in char,
|
|
in_year in char,
|
|
in_seqno in number,
|
|
in_motion in char
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
v_ret number := 0;
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into v_ret
|
|
from penalty_history_detail_info
|
|
where to_char(stt_work_date, 'yyyymmdd') = in_st
|
|
and to_char(end_work_date, 'yyyymmdd') = in_ed
|
|
and penalty_manage_year = in_year
|
|
and penalty_seqno = in_seqno
|
|
and motion_id = in_motion;
|
|
|
|
exception
|
|
when others then
|
|
v_ret := -1;
|
|
|
|
END FUN_TFG001E_HIS_DETAIL_CHK;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFE002E_TERM_RENT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFE002E_TERM_RENT
|
|
----------------------------------------------------------------
|
|
-- 납부기한을 검색한다.(렌트카 차적변경)
|
|
-- 참고 : 여러곳에서 쓰임,
|
|
-- 작성자 : 반지현 작성일 : 2014/09/15
|
|
-----------------------------------------------------------------
|
|
(
|
|
manage_year IN CHAR, -- 과태료 관리년도
|
|
manage_no IN number, -- 과태료 일련번호
|
|
motion IN char -- 현 진행코드
|
|
) RETURN varchar2
|
|
IS
|
|
|
|
p_pay_term varchar2(10) := '';
|
|
p_date date;
|
|
|
|
BEGIN
|
|
|
|
SELECT delivery_date
|
|
INTO p_date
|
|
FROM send_rent_info
|
|
WHERE penalty_manage_year = manage_year
|
|
AND penalty_seqno = manage_no
|
|
AND motion_id = motion;
|
|
|
|
p_pay_term := to_char(p_date, 'yyyy/mm/dd');
|
|
|
|
RETURN p_pay_term;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN ''; -- 데이타가 존재하지 않거나 없으면
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFE002E_TERM;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFE002E_TERM
|
|
----------------------------------------------------------------
|
|
-- 납부기한을 검색한다.
|
|
-- 참고 : 여러곳에서 쓰임,
|
|
-- 작성자 : 박치영 작성일 : 2002/09/20 수정일 : 2002/10/19
|
|
-----------------------------------------------------------------
|
|
(
|
|
manage_year IN CHAR, -- 과태료 관리년도
|
|
manage_no IN number, -- 과태료 일련번호
|
|
motion IN char -- 현 진행코드
|
|
) RETURN varchar2
|
|
IS
|
|
|
|
p_pay_term varchar2(10) := '';
|
|
p_date date;
|
|
|
|
BEGIN
|
|
|
|
SELECT delivery_date
|
|
INTO p_date
|
|
FROM send_info
|
|
WHERE penalty_manage_year = manage_year
|
|
AND penalty_seqno = manage_no
|
|
AND motion_id = motion;
|
|
|
|
p_pay_term := to_char(p_date, 'yyyy/mm/dd');
|
|
|
|
RETURN p_pay_term;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN ''; -- 데이타가 존재하지 않거나 없으면
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFD002E_IDENTIFY_SAYOU;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFD002E_IDENTIFY_SAYOU
|
|
----------------------------------------------------------------
|
|
-- 식별곤란사유를 검색한다.
|
|
-- 참고 : 여러곳에서 쓰임,
|
|
-- 작성자 : 박치영 작성일 : 2002/09/24 수정일 : 2002/10/24
|
|
-----------------------------------------------------------------
|
|
(
|
|
in_worker_id IN CHAR, -- 근무자
|
|
in_tunnel IN char, -- 요금소
|
|
in_booth IN char, -- 차로
|
|
in_year IN char, -- 년
|
|
in_month IN char, -- 월
|
|
in_day IN char, -- 일
|
|
in_work_times IN char -- 근무시간
|
|
) RETURN varchar2
|
|
IS
|
|
|
|
p_sayou varchar2(60);
|
|
|
|
BEGIN
|
|
|
|
SELECT nn.lavy_notice_full_name
|
|
INTO p_sayou
|
|
FROM default_fare_read_info dd, lavy_notice_code_info nn
|
|
WHERE dd.worker_id = in_worker_id
|
|
AND dd.fare_office_id = in_tunnel
|
|
AND dd.booth_id = in_booth
|
|
AND dd.year = in_year
|
|
AND dd.month = in_month
|
|
AND dd.day = in_day
|
|
AND dd.work_times = in_work_times
|
|
AND dd.LAVY_NOTICE_ID = nn.LAVY_NOTICE_ID;
|
|
|
|
|
|
RETURN trim(p_sayou);
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '기타'; -- 데이타가 존재하지 않거나 없으면
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFD001U_MAX_SEQNO;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFD001U_MAX_SEQNO
|
|
/*************************************************************
|
|
** 과태료 납부 대상자 File 생성
|
|
** 리턴값 : <과태료 관리 번호 리턴>
|
|
** 적용범위 : penalty detail info create
|
|
** 작성자 : 박치영 작성일 : 2002/11/03 수정일 : 2002/11/03
|
|
**************************************************************/
|
|
(
|
|
in_year IN char -- 관리년도
|
|
) RETURN number
|
|
IS
|
|
|
|
p_penalty_seqno number;
|
|
|
|
BEGIN
|
|
|
|
SELECT nvl(max(penalty_seqno), 0)
|
|
INTO p_penalty_seqno
|
|
FROM PENALTY_DETAIL_INFO
|
|
WHERE penalty_manage_year = in_year;
|
|
|
|
p_penalty_seqno := p_penalty_seqno + 1;
|
|
|
|
RETURN p_penalty_seqno;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFD001U_CREATE_SEQNO;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFD001U_CREATE_SEQNO
|
|
----------------------------------------------------------------
|
|
-- ??? ????? ????.
|
|
-- ?? : ????? ??,
|
|
-- ??? : ??? ??? : 2002/09/23 ??? : 2002/10/23
|
|
-----------------------------------------------------------------
|
|
(
|
|
manage_year char
|
|
) RETURN number
|
|
IS
|
|
|
|
p_seqno number;
|
|
|
|
BEGIN
|
|
|
|
SELECT nvl(max(penalty_seqno), 0)
|
|
INTO p_seqno
|
|
FROM penalty_detail_info
|
|
WHERE penalty_manage_year = manage_year;
|
|
|
|
p_seqno := p_seqno + 1;
|
|
|
|
RETURN p_seqno;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0; -- ???? ???? ??? ???
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFD001U_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFD001U_CNT
|
|
/*************************************************************
|
|
** 과태료 납부 대상자 File 생성
|
|
** 리턴값 : < 부과예고 대상자 건수 리턴 >
|
|
** 적용범위 : penalty detail info create
|
|
** 작성자 : 박치영 작성일 : 2002/11/03 수정일 : 2002/11/03
|
|
**************************************************************/
|
|
(
|
|
in_kbn IN char,
|
|
in_from IN char, -- 시작일자
|
|
in_to IN char -- 종료일자
|
|
) RETURN number
|
|
IS
|
|
p_cnt number :=0;
|
|
p_c1 number :=0;
|
|
p_c2 number :=0;
|
|
BEGIN
|
|
-- 납부 마감일 넘기거나, 고지로 판명된 대상.
|
|
if in_kbn = '1' then
|
|
SELECT count(*)
|
|
INTO p_c1
|
|
FROM LEVY_TARGET_INFO
|
|
WHERE year || month || day between in_from and in_to
|
|
AND motion_id = '21' -- 진행코드(부과예고발송)
|
|
AND notice_kbn = '1' -- 고지여부(고지)
|
|
AND penalty_process_yn = '0' -- 과태료 처리여부(미처리) -- 이의신청마감일자 초과여부
|
|
AND except_date < sysdate;
|
|
|
|
SELECT count(*)
|
|
INTO p_c2
|
|
FROM LEVY_TARGET_INFO A,
|
|
EXCEPT_ACCEPT_INFO B
|
|
WHERE A.year || A.month || A.day between in_from and in_to
|
|
AND A.motion_id = '24' -- 진행코드(부과예고 이의신청 처리)
|
|
AND B.Measure_Result_ID IN ('02','03') -- 조치결과(02:임차인고지, 03:부과고지)
|
|
AND A.notice_kbn = '1' -- 고지여부(고지)
|
|
AND A.penalty_process_yn = '0' -- 과태료 처리여부(미처리) -- 이의신청마감일자 초과여부
|
|
AND A.LEVY_MANAGE_YEAR = B.LEVY_MANAGE_YEAR
|
|
AND A.LEVY_SEQNO = B.LEVY_SEQNO;
|
|
|
|
p_cnt := p_c1 + p_c2;
|
|
-- 부과예고문을 발송 했고 아직 마감일이 남아있는 대상
|
|
elsif in_kbn = '2' then
|
|
SELECT count(*)
|
|
INTO p_cnt
|
|
FROM LEVY_TARGET_INFO
|
|
WHERE year || month || day between in_from and in_to
|
|
AND motion_id = '21' -- 진행코드(부과예고발송)
|
|
AND notice_kbn = '1' -- 고지여부(고지)
|
|
AND penalty_process_yn = '0' -- 과태료 처리여부(미처리) -- 이의신청마감일자가 아직 유 있는경우
|
|
AND except_date > sysdate;
|
|
|
|
end if;
|
|
|
|
RETURN p_cnt;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFD001U_AMOUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFD001U_AMOUNT
|
|
/*************************************************************
|
|
** 과태료 납부 대상자 File 생성
|
|
** 리턴값 : < 요금정보 리턴 >
|
|
** 적용범위 : penalty detail info create
|
|
** 작성자 : 박치영 작성일 : 2002/11/03 수정일 : 2002/11/03
|
|
**************************************************************/
|
|
(
|
|
in_year IN char, -- 년
|
|
in_month IN char, -- 월
|
|
in_day IN char, -- 일
|
|
in_kbn IN number -- 징수 금액 구분(1/2/3)
|
|
) RETURN number
|
|
IS
|
|
|
|
p_money number;
|
|
p_trans number;
|
|
p_fine number;
|
|
|
|
BEGIN
|
|
|
|
if in_kbn = 1 then -- 통행료
|
|
SELECT trans_amount
|
|
INTO p_money
|
|
FROM fare_info
|
|
WHERE stt_date < to_date((in_year || in_month || in_day), 'yyyy-mm-dd')
|
|
AND end_date > to_date((in_year || in_month || in_day), 'yyyy-mm-dd')
|
|
AND collect_id = '10';
|
|
|
|
elsif in_kbn = 2 then -- 과태료
|
|
SELECT fine_amount
|
|
INTO p_money
|
|
FROM fare_info
|
|
WHERE stt_date < to_date((in_year || in_month || in_day), 'yyyy-mm-dd')
|
|
AND end_date > to_date((in_year || in_month || in_day), 'yyyy-mm-dd')
|
|
AND collect_id = '10';
|
|
|
|
elsif in_kbn = 3 then -- 징수금액
|
|
SELECT trans_amount, fine_amount
|
|
INTO p_trans, p_fine
|
|
FROM fare_info
|
|
WHERE stt_date < to_date((in_year || in_month || in_day), 'yyyy-mm-dd')
|
|
AND end_date > to_date((in_year || in_month || in_day), 'yyyy-mm-dd')
|
|
AND collect_id = '10';
|
|
|
|
p_money := p_trans + p_fine;
|
|
|
|
end if;
|
|
|
|
RETURN p_money;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFC005Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFC005Q_COUNT
|
|
(
|
|
motion IN CHAR, -- 진행상태
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
|
|
) RETURN NUMBER
|
|
IS
|
|
tot_row NUMBER := 0;
|
|
BEGIN
|
|
|
|
--11.20 수정
|
|
if motion = '1' then -- 전체
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||substr(a.work_times,1,2)|| '.' ||substr(a.work_times,3,2)|| '.' ||substr(a.work_times,5,2) as work_time,
|
|
e.fare_office_full_name, f.booth_full_name, b.owner, b.address_name,
|
|
c.return_reason_id, c.retuen_date, d.motion_full_name, count(*)
|
|
FROM penalty_HISTORY_info a,
|
|
penalty_head_info b,
|
|
return_info c,
|
|
motion_code_info d,
|
|
fare_office_code_info e,
|
|
booth_code_info f
|
|
WHERE a.car_no = b.car_no
|
|
AND a.resident_no = b.resident_no
|
|
AND a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.motion_id = c.motion_id
|
|
AND a.motion_id = d.motion_id
|
|
AND a.fare_office_id = e.fare_office_id
|
|
AND a.fare_office_id = f.fare_office_id
|
|
AND a.booth_id = f.booth_id
|
|
AND c.motion_id in ('22','32','34','36','38','42','44','46','48')
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||substr(a.work_times,1,2)|| '.' ||substr(a.work_times,3,2)|| '.' ||substr(a.work_times,5,2),
|
|
e.fare_office_full_name, f.booth_full_name, b.owner, b.address_name,
|
|
c.return_reason_id, c.retuen_date, d.motion_full_name);
|
|
|
|
elsif motion = '2' then --부과예고반송?
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||substr(a.work_times,1,2)|| '.' ||substr(a.work_times,3,2)|| '.' ||substr(a.work_times,5,2) as work_time,
|
|
e.fare_office_full_name, f.booth_full_name, b.owner, b.address_name,
|
|
c.return_reason_id, c.retuen_date, d.motion_full_name, count(*)
|
|
FROM penalty_HISTORY_info a,
|
|
penalty_head_info b,
|
|
return_info c,
|
|
motion_code_info d,
|
|
fare_office_code_info e,
|
|
booth_code_info f
|
|
WHERE a.car_no = b.car_no
|
|
AND a.resident_no = b.resident_no
|
|
AND a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.motion_id = c.motion_id
|
|
AND a.motion_id = d.motion_id
|
|
AND a.fare_office_id = e.fare_office_id
|
|
AND a.fare_office_id = f.fare_office_id
|
|
AND a.booth_id = f.booth_id
|
|
AND c.motion_id in ('22')
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||substr(a.work_times,1,2)|| '.' ||substr(a.work_times,3,2)|| '.' ||substr(a.work_times,5,2),
|
|
e.fare_office_full_name, f.booth_full_name, b.owner, b.address_name,
|
|
c.return_reason_id, c.retuen_date, d.motion_full_name);
|
|
|
|
elsif motion = '3' then --1차고지반송
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||substr(a.work_times,1,2)|| '.' ||substr(a.work_times,3,2)|| '.' ||substr(a.work_times,5,2) as work_time,
|
|
e.fare_office_full_name, f.booth_full_name, b.owner, b.address_name,
|
|
c.return_reason_id, c.retuen_date, d.motion_full_name, count(*)
|
|
FROM penalty_HISTORY_info a,
|
|
penalty_head_info b,
|
|
return_info c,
|
|
motion_code_info d,
|
|
fare_office_code_info e,
|
|
booth_code_info f
|
|
WHERE a.car_no = b.car_no
|
|
AND a.resident_no = b.resident_no
|
|
AND a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.motion_id = c.motion_id
|
|
AND a.motion_id = d.motion_id
|
|
AND a.fare_office_id = e.fare_office_id
|
|
AND a.fare_office_id = f.fare_office_id
|
|
AND a.booth_id = f.booth_id
|
|
AND c.motion_id in ('32','34','36','38')
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||substr(a.work_times,1,2)|| '.' ||substr(a.work_times,3,2)|| '.' ||substr(a.work_times,5,2),
|
|
e.fare_office_full_name, f.booth_full_name, b.owner, b.address_name,
|
|
c.return_reason_id, c.retuen_date, d.motion_full_name);
|
|
|
|
elsif motion = '4' then --2차고지발송
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||substr(a.work_times,1,2)|| '.' ||substr(a.work_times,3,2)|| '.' ||substr(a.work_times,5,2) as work_time,
|
|
e.fare_office_full_name, f.booth_full_name, b.owner, b.address_name,
|
|
c.return_reason_id, c.retuen_date, d.motion_full_name, count(*)
|
|
FROM penalty_HISTORY_info a,
|
|
penalty_head_info b,
|
|
return_info c,
|
|
motion_code_info d,
|
|
fare_office_code_info e,
|
|
booth_code_info f
|
|
WHERE a.car_no = b.car_no
|
|
AND a.resident_no = b.resident_no
|
|
AND a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.motion_id = c.motion_id
|
|
AND a.motion_id = d.motion_id
|
|
AND a.fare_office_id = e.fare_office_id
|
|
AND a.fare_office_id = f.fare_office_id
|
|
AND a.booth_id = f.booth_id
|
|
AND c.motion_id in ('42','44','46','48')
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno, a.car_no,
|
|
b.car_type_id, a.year|| '.' ||a.month|| '.' ||a.day|| ' - ' ||substr(a.work_times,1,2)|| '.' ||substr(a.work_times,3,2)|| '.' ||substr(a.work_times,5,2),
|
|
e.fare_office_full_name, f.booth_full_name, b.owner, b.address_name,
|
|
c.return_reason_id, c.retuen_date, d.motion_full_name);
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFC004Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFC004Q_COUNT (
|
|
post_no IN CHAR,
|
|
notice IN CHAR,
|
|
from_dt IN CHAR,
|
|
to_dt IN CHAR
|
|
|
|
) RETURN NUMBER
|
|
IS
|
|
tot_row NUMBER := 0;
|
|
BEGIN
|
|
|
|
--11. 20 수정
|
|
if post_no = '1' then -- 총괄
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.motion_id, a.fare_office_id, b.owner, b.post_no1 || b.post_no2 as post_no, b.address_name,
|
|
substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no
|
|
FROM penalty_history_info a,
|
|
penalty_head_info b,
|
|
send_info c
|
|
WHERE a.car_no = b.car_no
|
|
AND a.resident_no = b.resident_no
|
|
AND a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.motion_id = c.motion_id
|
|
AND a.motion_id in ('41','43','45','47')
|
|
AND a.year || a.month || a.day between from_dt and to_dt);
|
|
|
|
elsif post_no = '2' then -- 서울
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.motion_id, a.fare_office_id, b.owner, b.post_no1 || b.post_no2 as post_no, b.address_name,
|
|
substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no
|
|
FROM penalty_history_info a,
|
|
penalty_head_info b,
|
|
send_info c
|
|
WHERE a.car_no = b.car_no
|
|
AND a.resident_no = b.resident_no
|
|
AND a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.motion_id = c.motion_id
|
|
AND substr(b.post_no1, 1, 1) like '1%'
|
|
AND a.motion_id in ('41','43','45','47')
|
|
AND a.year || a.month || a.day between from_dt and to_dt);
|
|
|
|
elsif post_no = '3' then -- 지방?
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.motion_id, a.fare_office_id, b.owner, b.post_no1 || b.post_no2 as post_no, b.address_name,
|
|
substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no
|
|
FROM penalty_history_info a,
|
|
penalty_head_info b,
|
|
send_info c
|
|
WHERE a.car_no = b.car_no
|
|
AND a.resident_no = b.resident_no
|
|
AND a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.motion_id = c.motion_id
|
|
AND substr(b.post_no1, 1, 1) not like '1%'
|
|
AND a.motion_id in ('41','43','45','47')
|
|
AND a.year || a.month || a.day between from_dt and to_dt);
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFC003Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.Fun_Tfc003q_Count (
|
|
office IN CHAR, -- ??? ??
|
|
motion IN CHAR, -- ????
|
|
from_dt IN CHAR, -- ?? ???
|
|
to_dt IN CHAR -- ?? ???
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
tot_row BINARY_INTEGER := 0;
|
|
BEGIN
|
|
|
|
if motion = '1' then
|
|
SELECT COUNT(*)
|
|
INTO tot_row
|
|
FROM (
|
|
SELECT SUBSTR(A.PENALTY_MANAGE_YEAR,3,2)||'-'||A.PENALTY_SEQNO AS AA,
|
|
C.CAR_NO,A.YEAR||'/'||A.MONTH||'/'||A.DAY||'-'||SUBSTR(A.WORK_TIMES,1,2)||
|
|
':'||SUBSTR(A.WORK_TIMES,3,2)||':'||SUBSTR(A.WORK_TIMES,5,2) AS BB,
|
|
A.FARE_OFFICE_ID, A.BOOTH_ID, C.OWNER, C.ADDRESS_NAME, B.CIVIL_SUMMARY_ID
|
|
FROM PENALTY_DETAIL_INFO A ,
|
|
CIVIL_ACCEPT_INFO B,
|
|
PENALTY_HEAD_INFO C
|
|
WHERE (C.CAR_NO = A.CAR_NO)
|
|
AND (C.RESIDENT_NO = A.RESIDENT_NO)
|
|
AND (A.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR(+))
|
|
AND (A.PENALTY_SEQNO = B.PENALTY_SEQNO(+))
|
|
AND (A.NOTICE_WRONG_ID = '01')
|
|
AND (A.NOTICE_ID = '99')
|
|
AND (A.FARE_OFFICE_ID LIKE office)
|
|
AND (A.YEAR||A.MONTH||A.DAY BETWEEN from_dt AND to_dt));
|
|
|
|
elsif motion = '2' then
|
|
SELECT COUNT(*)
|
|
INTO tot_row
|
|
FROM (
|
|
SELECT SUBSTR(A.PENALTY_MANAGE_YEAR,3,2)||'-'||A.PENALTY_SEQNO AS AA,
|
|
C.CAR_NO,A.YEAR||'/'||A.MONTH||'/'||A.DAY||'-'||SUBSTR(A.WORK_TIMES,1,2)||
|
|
':'||SUBSTR(A.WORK_TIMES,3,2)||':'||SUBSTR(A.WORK_TIMES,5,2) AS BB,
|
|
A.FARE_OFFICE_ID, A.BOOTH_ID, C.OWNER, C.ADDRESS_NAME, B.CIVIL_SUMMARY_ID
|
|
FROM PENALTY_DETAIL_INFO A ,
|
|
CIVIL_ACCEPT_INFO B,
|
|
PENALTY_HEAD_INFO C
|
|
WHERE (C.CAR_NO = A.CAR_NO)
|
|
AND (C.RESIDENT_NO = A.RESIDENT_NO)
|
|
AND (A.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR(+))
|
|
AND (A.PENALTY_SEQNO = B.PENALTY_SEQNO(+))
|
|
AND (A.NOTICE_WRONG_ID = '01')
|
|
AND (A.NOTICE_ID = '99')
|
|
AND (A.FARE_OFFICE_ID LIKE office)
|
|
AND (A.BEFORE_MOTION_ID IN ('31','32','33','34','35','36','37','38','40'))
|
|
AND (A.YEAR||A.MONTH||A.DAY BETWEEN from_dt AND to_dt));
|
|
|
|
elsif motion = '3' then
|
|
SELECT COUNT(*)
|
|
INTO tot_row
|
|
FROM (
|
|
SELECT SUBSTR(A.PENALTY_MANAGE_YEAR,3,2)||'-'||A.PENALTY_SEQNO AS AA,
|
|
C.CAR_NO,A.YEAR||'/'||A.MONTH||'/'||A.DAY||'-'||SUBSTR(A.WORK_TIMES,1,2)||
|
|
':'||SUBSTR(A.WORK_TIMES,3,2)||':'||SUBSTR(A.WORK_TIMES,5,2) AS BB,
|
|
A.FARE_OFFICE_ID, A.BOOTH_ID, C.OWNER, C.ADDRESS_NAME, B.CIVIL_SUMMARY_ID
|
|
FROM PENALTY_DETAIL_INFO A ,
|
|
CIVIL_ACCEPT_INFO B,
|
|
PENALTY_HEAD_INFO C
|
|
WHERE (C.CAR_NO = A.CAR_NO)
|
|
AND (C.RESIDENT_NO = A.RESIDENT_NO)
|
|
AND (A.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR(+))
|
|
AND (A.PENALTY_SEQNO = B.PENALTY_SEQNO(+))
|
|
AND (A.NOTICE_WRONG_ID = '01')
|
|
AND (A.NOTICE_ID = '99')
|
|
AND (A.FARE_OFFICE_ID LIKE office)
|
|
AND (A.BEFORE_MOTION_ID IN ('41','42','43','44'))
|
|
AND (A.YEAR||A.MONTH||A.DAY BETWEEN from_dt AND to_dt));
|
|
|
|
elsif motion = '4' then
|
|
SELECT COUNT(*)
|
|
INTO tot_row
|
|
FROM (
|
|
SELECT SUBSTR(A.PENALTY_MANAGE_YEAR,3,2)||'-'||A.PENALTY_SEQNO AS AA,
|
|
C.CAR_NO,A.YEAR||'/'||A.MONTH||'/'||A.DAY||'-'||SUBSTR(A.WORK_TIMES,1,2)||
|
|
':'||SUBSTR(A.WORK_TIMES,3,2)||':'||SUBSTR(A.WORK_TIMES,5,2) AS BB,
|
|
A.FARE_OFFICE_ID, A.BOOTH_ID, C.OWNER, C.ADDRESS_NAME, B.CIVIL_SUMMARY_ID
|
|
FROM PENALTY_DETAIL_INFO A ,
|
|
CIVIL_ACCEPT_INFO B,
|
|
PENALTY_HEAD_INFO C
|
|
WHERE (C.CAR_NO = A.CAR_NO)
|
|
AND (C.RESIDENT_NO = A.RESIDENT_NO)
|
|
AND (A.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR(+))
|
|
AND (A.PENALTY_SEQNO = B.PENALTY_SEQNO(+))
|
|
AND (A.NOTICE_WRONG_ID = '01')
|
|
AND (A.NOTICE_ID = '99')
|
|
AND (A.FARE_OFFICE_ID LIKE office)
|
|
AND (A.BEFORE_MOTION_ID IN ('45','46','47','48'))
|
|
AND (A.YEAR||A.MONTH||A.DAY BETWEEN from_dt AND to_dt));
|
|
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFC002Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFC002Q_COUNT
|
|
(
|
|
office IN CHAR,
|
|
motion IN CHAR,
|
|
dt_gubun IN CHAR,
|
|
from_dt IN CHAR,
|
|
to_dt IN CHAR
|
|
|
|
) RETURN NUMBER
|
|
-- 2006.1.16 kim dong eun 이중수납 관련 수정...
|
|
IS
|
|
|
|
tot_row NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 통행일자별..
|
|
IF dt_gubun = '1' THEN
|
|
|
|
if motion = '1' then
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.penalty_manage_year,a.penalty_seqno
|
|
FROM penalty_detail_info a,
|
|
receipt_info c
|
|
WHERE a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.fare_office_id like office
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
AND a.receipt_yn = '1'
|
|
and c.dou_ret_yn = '0');
|
|
|
|
elsif motion = '2' then
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.penalty_manage_year,a.penalty_seqno
|
|
FROM penalty_detail_info a,
|
|
receipt_info c
|
|
WHERE a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.fare_office_id like office
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
AND a.receipt_yn = '1'
|
|
and c.dou_ret_yn = '0'
|
|
and c.receipt_id like '3%');
|
|
|
|
|
|
elsif motion = '3' then
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.penalty_manage_year,a.penalty_seqno
|
|
FROM penalty_detail_info a,
|
|
receipt_info c
|
|
WHERE a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.fare_office_id like office
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
AND a.receipt_yn = '1'
|
|
and c.dou_ret_yn = '0'
|
|
and c.receipt_id like '4%');
|
|
|
|
|
|
elsif motion = '4' then
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.penalty_manage_year,a.penalty_seqno
|
|
FROM penalty_detail_info a,
|
|
receipt_info c
|
|
WHERE a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.fare_office_id like office
|
|
AND a.year || a.month || a.day between from_dt and to_dt
|
|
AND a.receipt_yn = '1'
|
|
and c.dou_ret_yn = '0'
|
|
and c.receipt_id like '7%');
|
|
|
|
|
|
end if;
|
|
|
|
-- 납부일자별..
|
|
ELSIF dt_gubun = '2' THEN
|
|
|
|
if motion = '1' then -- 전체
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.penalty_manage_year,a.penalty_seqno
|
|
FROM penalty_detail_info a,
|
|
receipt_info c
|
|
WHERE a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.fare_office_id like office
|
|
AND to_char(c.receipt_date, 'yyyymmdd') between from_dt and to_dt
|
|
AND a.receipt_yn = '1'
|
|
and c.dou_ret_yn = '0');
|
|
|
|
|
|
elsif motion = '2' then
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.penalty_manage_year,a.penalty_seqno
|
|
FROM penalty_detail_info a,
|
|
receipt_info c
|
|
WHERE a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.fare_office_id like office
|
|
AND to_char(c.receipt_date, 'yyyymmdd') between from_dt and to_dt
|
|
AND a.receipt_yn = '1'
|
|
and c.dou_ret_yn = '0'
|
|
and c.receipt_id like '3%');
|
|
|
|
|
|
elsif motion = '3' then
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.penalty_manage_year,a.penalty_seqno
|
|
FROM penalty_detail_info a,
|
|
receipt_info c
|
|
WHERE a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.fare_office_id like office
|
|
AND to_char(c.receipt_date, 'yyyymmdd') between from_dt and to_dt
|
|
AND a.receipt_yn = '1'
|
|
and c.dou_ret_yn = '0'
|
|
and c.receipt_id like '4%');
|
|
|
|
|
|
elsif motion = '4' then
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT a.penalty_manage_year,a.penalty_seqno
|
|
FROM penalty_detail_info a,
|
|
receipt_info c
|
|
WHERE a.penalty_manage_year = c.penalty_manage_year
|
|
AND a.penalty_seqno = c.penalty_seqno
|
|
AND a.fare_office_id like office
|
|
AND to_char(c.receipt_date, 'yyyymmdd') between from_dt and to_dt
|
|
AND a.receipt_yn = '1'
|
|
and c.dou_ret_yn = '0'
|
|
and c.receipt_id like '7%');
|
|
|
|
|
|
end if;
|
|
END IF;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN -1;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFC000E_GET_ADDRESS;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFC000E_GET_ADDRESS
|
|
(
|
|
IN_CARNO IN VARCHAR2,
|
|
IN_OWNER IN VARCHAR2,
|
|
IN_RESIDENT IN VARCHAR2
|
|
) RETURN NUMBER
|
|
IS
|
|
|
|
v_rc NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO v_rc
|
|
FROM PENALTY_ADDRESS_UPDATE_INFO
|
|
WHERE CAR_NO = IN_CARNO
|
|
AND OWNER = IN_OWNER
|
|
AND RESIDENT_NO = IN_RESIDENT;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_rc := '';
|
|
RETURN v_rc;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFB004Q_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFB004Q_COUNT1
|
|
(
|
|
in_wrong_id IN CHAR, -- 경정사유
|
|
in_st IN CHAR, -- 시작일자
|
|
in_ed IN CHAR, -- 종료일자
|
|
in_mngno IN CHAR,
|
|
in_car IN CHAR
|
|
|
|
) RETURN number
|
|
IS
|
|
|
|
tot_row number := 0;
|
|
|
|
BEGIN
|
|
|
|
IF in_wrong_id = '%' THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO TOT_ROW
|
|
FROM (
|
|
SELECT SUBSTR(B.PENALTY_MANAGE_YEAR,3,2)||'-'||B.PENALTY_SEQNO AS AA,
|
|
A.CAR_NO,B.YEAR||'/'||B.MONTH||'/'||B.DAY||'-'||SUBSTR(B.WORK_TIMES,1,2)||
|
|
':'||SUBSTR(B.WORK_TIMES,3,2)||':'||SUBSTR(B.WORK_TIMES,5,2) AS BB,
|
|
B.FARE_OFFICE_ID, B.BOOTH_ID, A.OWNER, A.ADDRESS_NAME
|
|
FROM PENALTY_HEAD_INFO A,
|
|
PENALTY_DETAIL_INFO B
|
|
WHERE A.CAR_NO = B.CAR_NO
|
|
AND A.RESIDENT_NO = B.RESIDENT_NO
|
|
AND B.NOTICE_WRONG_ID = '03'
|
|
AND TO_CHAR(B.PENALTY_SEQNO) LIKE in_mngno
|
|
AND A.CAR_NO LIKE in_car
|
|
AND B.YEAR||B.MONTH||B.DAY BETWEEN in_st and in_ed
|
|
AND B.MOTION_ID <> '91');
|
|
|
|
ELSE
|
|
|
|
SELECT COUNT(*)
|
|
INTO TOT_ROW
|
|
FROM (
|
|
SELECT SUBSTR(B.PENALTY_MANAGE_YEAR,3,2)||'-'||B.PENALTY_SEQNO AS AA,
|
|
A.CAR_NO,B.YEAR||'/'||B.MONTH||'/'||B.DAY||'-'||SUBSTR(B.WORK_TIMES,1,2)||
|
|
':'||SUBSTR(B.WORK_TIMES,3,2)||':'||SUBSTR(B.WORK_TIMES,5,2) AS BB,
|
|
B.FARE_OFFICE_ID, B.BOOTH_ID, A.OWNER, A.ADDRESS_NAME, C.CIVIL_SUMMARY_ID
|
|
FROM PENALTY_HEAD_INFO A,
|
|
PENALTY_DETAIL_INFO B,
|
|
CIVIL_ACCEPT_INFO C
|
|
WHERE A.CAR_NO = B.CAR_NO
|
|
AND A.RESIDENT_NO = B.RESIDENT_NO
|
|
AND B.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR
|
|
AND B.PENALTY_SEQNO = C.PENALTY_SEQNO
|
|
AND B.NOTICE_WRONG_ID = '03'
|
|
AND C.CIVIL_VIA = '0'
|
|
AND A.CAR_NO LIKE in_car
|
|
AND C.CIVIL_SUMMARY_ID = in_wrong_id
|
|
AND TO_CHAR(B.PENALTY_SEQNO) LIKE in_mngno
|
|
AND B.YEAR||B.MONTH||B.DAY BETWEEN in_st and in_ed
|
|
AND B.MOTION_ID <> '91');
|
|
|
|
|
|
END IF;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFB004Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFB004Q_COUNT (
|
|
wrong_id IN CHAR, -- ????
|
|
from_dt IN CHAR, -- ?? ???
|
|
to_dt IN CHAR -- ?? ???
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM ( SELECT substr(b.penalty_manage_year, 3, 2)|| ' - ' ||b.penalty_seqno as seq_no,
|
|
b.car_no, b.year|| '.' ||b.month|| '.' ||b.day|| ' - ' ||b.work_times as work_time,
|
|
b.fare_office_id, b.booth_id, a.owner, a.address_name, b.notice_wrong_id, count(*)
|
|
FROM penalty_head_info a, penalty_detail_info b
|
|
WHERE a.car_no = b.car_no
|
|
AND a.owner = b.owner
|
|
AND a.resident_no = b.resident_no
|
|
AND b.notice_wrong_id LIKE wrong_id
|
|
AND b.year || b.month || b.day BETWEEN from_dt AND to_dt
|
|
GROUP BY substr(b.penalty_manage_year, 3, 2)|| ' - ' ||b.penalty_seqno,
|
|
b.car_no, b.year|| '.' ||b.month|| '.' ||b.day|| ' - ' ||b.work_times,
|
|
b.fare_office_id, b.booth_id, a.owner, a.address_name, b.notice_wrong_id);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFB003Q_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFB003Q_COUNT1
|
|
(
|
|
from_dt IN CHAR,
|
|
to_dt IN CHAR
|
|
|
|
) RETURN number
|
|
IS
|
|
|
|
tot_row number := 0;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM civil_accept_info
|
|
WHERE accept_date BETWEEN to_date(from_dt, 'yyyymmdd') AND to_date(to_dt, 'yyyymmdd')
|
|
and civil_via = '0';
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TFB003Q_COUNT1;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFB003Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFB003Q_COUNT (
|
|
from_dt IN CHAR,
|
|
to_dt IN CHAR
|
|
|
|
) RETURN number
|
|
IS
|
|
|
|
tot_row number := 0;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (
|
|
SELECT min(penalty_manage_year) ||' ~ '|| max(penalty_manage_year) as manage_year,
|
|
decode(civil_summary_id, '01', count(civil_summary_id), 0) as count1,
|
|
decode(civil_summary_id, '02', count(civil_summary_id), 0) as count2,
|
|
decode(civil_summary_id, '03', count(civil_summary_id), 0) as count3,
|
|
decode(civil_summary_id, '04', count(civil_summary_id), 0) as count4,
|
|
decode(civil_summary_id, '05', count(civil_summary_id), 0) as count5,
|
|
decode(civil_summary_id, '99', count(civil_summary_id), 0) as count6,
|
|
decode(civil_process_id, '01', count(civil_process_id), 0) as count7,
|
|
decode(civil_process_id, '02', count(civil_process_id), 0) as count8,
|
|
decode(civil_process_id, '03', count(civil_process_id), 0) as count9,
|
|
decode(civil_process_id, '04', count(civil_process_id), 0) as count10,
|
|
decode(civil_process_id, '05', count(civil_process_id), 0) as count11,
|
|
decode(civil_process_id, '99', count(civil_process_id), 0) as count12
|
|
FROM civil_accept_info
|
|
WHERE accept_date BETWEEN to_date(from_dt, 'yyyymmdd') AND to_date(to_dt, 'yyyymmdd')
|
|
and civil_via = '0'
|
|
GROUP BY civil_summary_id, civil_process_id);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
tot_row := 0;
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFB002E_EXISTENCE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFB002E_EXISTENCE
|
|
/*
|
|
** 인터넷 접속번호가 존재하는가?를 판별한다.
|
|
** 작성자 : park chi young
|
|
*/
|
|
(
|
|
in_mng_year IN char,
|
|
in_seqno IN number,
|
|
in_accept_dt IN char,
|
|
in_acc_seq IN number,
|
|
in_connect_num IN varchar2
|
|
) RETURN number
|
|
IS
|
|
|
|
v_cnt number := 0;
|
|
v_ck1 number := 0;
|
|
v_ck2 number := 0;
|
|
|
|
BEGIN
|
|
v_cnt := 1; -- 초기값 : 오늘 날자로 존재하지 않으면 '인터넷 정보'에는 반드시 입력한다.
|
|
|
|
BEGIN
|
|
SELECT nvl(count(*),0) -- 오늘날자로 찾아본다.
|
|
INTO v_cnt
|
|
FROM INTERNET_INFO
|
|
WHERE PENALTY_MANAGE_YEAR = RTRIM(in_mng_year, ' ')
|
|
AND PENALTY_SEQNO = in_seqno
|
|
AND to_char(ACCEPT_DATE, 'yyyymmdd') = RTRIM(in_accept_dt, ' ')
|
|
AND ACCEPT_SEQNO = in_acc_seq
|
|
AND SERVICE_DATE = to_char(sysdate, 'yyyymmdd');
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN
|
|
v_cnt := 0;
|
|
END;
|
|
|
|
if v_ck1 > 0 then -- 오늘 날자가 존재하는데 접속번호가 맞는가?
|
|
SELECT nvl(count(*),0)
|
|
INTO v_ck2
|
|
FROM INTERNET_INFO
|
|
WHERE PENALTY_MANAGE_YEAR = RTRIM(in_mng_year, ' ')
|
|
AND PENALTY_SEQNO = in_seqno
|
|
AND to_char(ACCEPT_DATE, 'yyyymmdd') = RTRIM(in_accept_dt, ' ')
|
|
AND ACCEPT_SEQNO = in_acc_seq
|
|
AND SERVICE_DATE = to_char(sysdate, 'yyyymmdd')
|
|
AND CONNECT_NUMBER = RTRIM(in_connect_num, ' ');
|
|
|
|
v_cnt := v_ck2;
|
|
end if;
|
|
|
|
RETURN v_cnt;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN -- 예외는 99로 처리한다.
|
|
RETURN '99';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFB002E_DETAIL_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFB002E_DETAIL_CNT
|
|
(
|
|
up_penalty_manage_year IN CHAR, -- 과태료 관리년도
|
|
up_penalty_seqno IN NUMBER -- 과태료 일련번호
|
|
)
|
|
return number
|
|
IS
|
|
v_cnt number := 0;
|
|
BEGIN
|
|
|
|
-- NOTICE_WRONG_ID : 고지취소이면 더이상 처리는 할 수없다...
|
|
|
|
SELECT count(*)
|
|
INTO v_cnt
|
|
FROM PENALTY_DETAIL_INFO
|
|
WHERE PENALTY_MANAGE_YEAR = up_penalty_manage_year
|
|
AND PENALTY_SEQNO = up_penalty_seqno
|
|
AND NOTICE_WRONG_ID = '01';
|
|
|
|
return v_cnt;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
return 0;
|
|
|
|
END FUN_TFB002E_DETAIL_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFB002E_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFB002E_COUNT1
|
|
(
|
|
gubun IN CHAR, -- 검색 기준 구분자(1/2/3/4)
|
|
from_dt IN varchar2, -- 검색 시작일(년/월)
|
|
to_dt IN varchar2, --
|
|
carno IN varchar2, -- 차량번호
|
|
v_owner IN varchar2, -- 소유자
|
|
|
|
v_accept_dt IN char, -- 접수일자
|
|
v_summary IN char, -- 민원요지.
|
|
v_car_type IN char, -- 차종..
|
|
v_process IN CHAR -- 처리결과.
|
|
|
|
) RETURN number
|
|
IS
|
|
|
|
tot_row number := 0;
|
|
|
|
BEGIN
|
|
-- 통행년도
|
|
IF gubun = '1' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
from(
|
|
SELECT D.PENALTY_MANAGE_YEAR as p_mng_year,
|
|
D.PENALTY_SEQNO as p_seqno,
|
|
D.YEAR as p_year,
|
|
D.MONTH as p_month,
|
|
D.DAY as p_day,
|
|
D.WORK_TIMES as p_work_times,
|
|
D.CAR_NO as p_car_no,
|
|
H.CAR_TYPE_ID as p_car_kind,
|
|
H.ADDRESS_NAME as p_address1,
|
|
H.ADDRESS_NUMBER as p_address
|
|
FROM PENALTY_HEAD_INFO H,
|
|
PENALTY_DETAIL_INFO D,
|
|
CIVIL_ACCEPT_INFO C
|
|
WHERE H.CAR_NO = D.CAR_NO
|
|
AND H.RESIDENT_NO = D.RESIDENT_NO
|
|
AND D.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR
|
|
AND D.PENALTY_SEQNO = C.PENALTY_SEQNO
|
|
and D.year BETWEEN rtrim(from_dt) AND rtrim(to_dt)
|
|
AND to_char(C.ACCEPT_DATE,'yyyymmdd') LIKE RTRIM(v_accept_dt,' ')
|
|
AND H.CAR_TYPE_NAME LIKE RTRIM(v_car_type,' ')
|
|
AND C.CIVIL_SUMMARY_ID LIKE RTRIM(v_summary,' ')
|
|
AND D.CAR_NO like rtrim(carno, ' ')
|
|
AND D.OWNER like RTRIM(v_owner, ' ')
|
|
AND C.CIVIL_PROCESS_ID LIKE RTRIM(v_process,' ')
|
|
and c.civil_via = '0');
|
|
|
|
-- 통행일자
|
|
ELSIF gubun = '2' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
from(
|
|
SELECT D.PENALTY_MANAGE_YEAR as p_mng_year,
|
|
D.PENALTY_SEQNO as p_seqno,
|
|
D.YEAR as p_year,
|
|
D.MONTH as p_month,
|
|
D.DAY as p_day,
|
|
D.WORK_TIMES as p_work_times,
|
|
D.CAR_NO as p_car_no,
|
|
H.CAR_TYPE_ID as p_car_kind,
|
|
H.ADDRESS_NAME as p_address1,
|
|
H.ADDRESS_NUMBER as p_address
|
|
FROM PENALTY_HEAD_INFO H,
|
|
PENALTY_DETAIL_INFO D,
|
|
CIVIL_ACCEPT_INFO C
|
|
WHERE H.CAR_NO = D.CAR_NO
|
|
AND H.RESIDENT_NO = D.RESIDENT_NO
|
|
AND D.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR
|
|
AND D.PENALTY_SEQNO = C.PENALTY_SEQNO
|
|
and D.year || D.month || D.day BETWEEN rtrim(from_dt) AND rtrim(to_dt)
|
|
AND to_char(C.ACCEPT_DATE,'yyyymmdd') LIKE RTRIM(v_accept_dt,' ')
|
|
AND H.CAR_TYPE_NAME LIKE RTRIM(v_car_type,' ')
|
|
AND C.CIVIL_SUMMARY_ID LIKE RTRIM(v_summary,' ')
|
|
AND D.CAR_NO like rtrim(carno, ' ')
|
|
AND D.OWNER like RTRIM(v_owner, ' ')
|
|
AND C.CIVIL_PROCESS_ID LIKE RTRIM(v_process,' ')
|
|
and c.civil_via = '0');
|
|
|
|
|
|
-- 통행년월
|
|
ELSIF gubun = '3' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
from(
|
|
SELECT D.PENALTY_MANAGE_YEAR as p_mng_year,
|
|
D.PENALTY_SEQNO as p_seqno,
|
|
D.YEAR as p_year,
|
|
D.MONTH as p_month,
|
|
D.DAY as p_day,
|
|
D.WORK_TIMES as p_work_times,
|
|
D.CAR_NO as p_car_no,
|
|
H.CAR_TYPE_ID as p_car_kind,
|
|
H.ADDRESS_NAME as p_address1,
|
|
H.ADDRESS_NUMBER as p_address
|
|
FROM PENALTY_HEAD_INFO H,
|
|
PENALTY_DETAIL_INFO D,
|
|
CIVIL_ACCEPT_INFO C
|
|
WHERE H.CAR_NO = D.CAR_NO
|
|
AND H.RESIDENT_NO = D.RESIDENT_NO
|
|
AND D.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR
|
|
AND D.PENALTY_SEQNO = C.PENALTY_SEQNO
|
|
and D.year || D.month = rtrim(from_dt)
|
|
AND to_char(C.ACCEPT_DATE,'yyyymmdd') LIKE RTRIM(v_accept_dt,' ')
|
|
AND H.CAR_TYPE_NAME LIKE RTRIM(v_car_type,' ')
|
|
AND C.CIVIL_SUMMARY_ID LIKE RTRIM(v_summary,' ')
|
|
AND D.CAR_NO like rtrim(carno, ' ')
|
|
AND D.OWNER like RTRIM(v_owner, ' ')
|
|
AND C.CIVIL_PROCESS_ID LIKE RTRIM(v_process,' ')
|
|
and c.civil_via = '0');
|
|
|
|
-- 전체
|
|
ELSIF gubun = '4' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
from(
|
|
SELECT D.PENALTY_MANAGE_YEAR as p_mng_year,
|
|
D.PENALTY_SEQNO as p_seqno,
|
|
D.YEAR as p_year,
|
|
D.MONTH as p_month,
|
|
D.DAY as p_day,
|
|
D.WORK_TIMES as p_work_times,
|
|
D.CAR_NO as p_car_no,
|
|
H.CAR_TYPE_ID as p_car_kind,
|
|
H.ADDRESS_NAME as p_address1,
|
|
H.ADDRESS_NUMBER as p_address
|
|
FROM PENALTY_HEAD_INFO H,
|
|
PENALTY_DETAIL_INFO D,
|
|
CIVIL_ACCEPT_INFO C
|
|
WHERE H.CAR_NO = D.CAR_NO
|
|
AND H.RESIDENT_NO = D.RESIDENT_NO
|
|
AND D.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR
|
|
AND D.PENALTY_SEQNO = C.PENALTY_SEQNO
|
|
AND to_char(C.ACCEPT_DATE,'yyyymmdd') LIKE RTRIM(v_accept_dt,' ')
|
|
AND H.CAR_TYPE_NAME LIKE RTRIM(v_car_type,' ')
|
|
AND C.CIVIL_SUMMARY_ID LIKE RTRIM(v_summary,' ')
|
|
AND D.CAR_NO like rtrim(carno, ' ')
|
|
AND D.OWNER like RTRIM(v_owner, ' ')
|
|
AND C.CIVIL_PROCESS_ID LIKE RTRIM(v_process,' ')
|
|
and c.civil_via = '0');
|
|
|
|
END IF;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFB002E_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFB002E_COUNT
|
|
(
|
|
gubun IN CHAR, -- 검색 기준 구분자(1/2/3/4)
|
|
from_dt IN varchar2, -- 검색 시작일(년/월)
|
|
to_dt IN varchar2, --
|
|
carno IN varchar2, -- 차량번호
|
|
v_owner IN varchar2, -- 소유자
|
|
|
|
v_accept_dt IN char, -- 접수일자
|
|
v_summary IN char, -- 민원요지.
|
|
v_car_type IN char, -- 차종..
|
|
v_process IN CHAR -- 처리결과.
|
|
) RETURN number
|
|
IS
|
|
|
|
tot_row number := 0;
|
|
|
|
BEGIN
|
|
-- 통행년도
|
|
IF gubun = '1' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
from(
|
|
SELECT D.PENALTY_MANAGE_YEAR as p_mng_year,
|
|
D.PENALTY_SEQNO as p_seqno,
|
|
D.YEAR as p_year,
|
|
D.MONTH as p_month,
|
|
D.DAY as p_day,
|
|
D.WORK_TIMES as p_work_times,
|
|
D.CAR_NO as p_car_no,
|
|
H.CAR_TYPE_ID as p_car_kind,
|
|
H.ADDRESS_NAME as p_address1,
|
|
H.ADDRESS_NUMBER as p_address
|
|
FROM PENALTY_HEAD_INFO H,
|
|
PENALTY_DETAIL_INFO D,
|
|
CIVIL_ACCEPT_INFO C
|
|
WHERE H.CAR_NO = D.CAR_NO
|
|
AND H.RESIDENT_NO = D.RESIDENT_NO
|
|
AND D.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR
|
|
AND D.PENALTY_SEQNO = C.PENALTY_SEQNO
|
|
and D.year BETWEEN rtrim(from_dt) AND rtrim(to_dt)
|
|
AND substr(D.MOTION_ID, 1,1) like '5' -- 민원 접수대상만...
|
|
AND to_char(C.ACCEPT_DATE,'yyyymmdd') LIKE RTRIM(v_accept_dt,' ')
|
|
AND H.CAR_TYPE_NAME LIKE RTRIM(v_car_type,' ')
|
|
AND C.CIVIL_SUMMARY_ID LIKE RTRIM(v_summary,' ')
|
|
AND D.CAR_NO like rtrim(carno, ' ')
|
|
AND D.OWNER like RTRIM(v_owner, ' ')
|
|
AND C.CIVIL_PROCESS_ID LIKE RTRIM(v_process,' ')
|
|
);
|
|
|
|
-- 통행일자
|
|
ELSIF gubun = '2' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
from(
|
|
SELECT D.PENALTY_MANAGE_YEAR as p_mng_year,
|
|
D.PENALTY_SEQNO as p_seqno,
|
|
D.YEAR as p_year,
|
|
D.MONTH as p_month,
|
|
D.DAY as p_day,
|
|
D.WORK_TIMES as p_work_times,
|
|
D.CAR_NO as p_car_no,
|
|
H.CAR_TYPE_ID as p_car_kind,
|
|
H.ADDRESS_NAME as p_address1,
|
|
H.ADDRESS_NUMBER as p_address
|
|
FROM PENALTY_HEAD_INFO H,
|
|
PENALTY_DETAIL_INFO D,
|
|
CIVIL_ACCEPT_INFO C
|
|
WHERE D.year || D.month || D.day BETWEEN rtrim(from_dt) AND rtrim(to_dt)
|
|
AND substr(D.MOTION_ID, 1,1) like '5' -- 민원 접수대상만...
|
|
AND H.CAR_NO = D.CAR_NO
|
|
AND H.RESIDENT_NO = D.RESIDENT_NO
|
|
AND D.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR
|
|
AND D.PENALTY_SEQNO = C.PENALTY_SEQNO
|
|
AND to_char(C.ACCEPT_DATE,'yyyymmdd') LIKE RTRIM(v_accept_dt,' ')
|
|
AND H.CAR_TYPE_NAME LIKE RTRIM(v_car_type,' ')
|
|
AND C.CIVIL_SUMMARY_ID LIKE RTRIM(v_summary,' ')
|
|
AND D.CAR_NO like rtrim(carno, ' ')
|
|
AND D.OWNER like RTRIM(v_owner, ' ')
|
|
AND C.CIVIL_PROCESS_ID LIKE RTRIM(v_process,' ')
|
|
);
|
|
|
|
|
|
-- 통행년월
|
|
ELSIF gubun = '3' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
from(
|
|
SELECT D.PENALTY_MANAGE_YEAR as p_mng_year,
|
|
D.PENALTY_SEQNO as p_seqno,
|
|
D.YEAR as p_year,
|
|
D.MONTH as p_month,
|
|
D.DAY as p_day,
|
|
D.WORK_TIMES as p_work_times,
|
|
D.CAR_NO as p_car_no,
|
|
H.CAR_TYPE_ID as p_car_kind,
|
|
H.ADDRESS_NAME as p_address1,
|
|
H.ADDRESS_NUMBER as p_address
|
|
FROM PENALTY_HEAD_INFO H,
|
|
PENALTY_DETAIL_INFO D,
|
|
CIVIL_ACCEPT_INFO C
|
|
WHERE D.year || D.month = rtrim(from_dt)
|
|
AND substr(D.MOTION_ID, 1,1) like '5' -- 민원 접수대상만...
|
|
AND H.CAR_NO = D.CAR_NO
|
|
AND H.RESIDENT_NO = D.RESIDENT_NO
|
|
AND D.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR
|
|
AND D.PENALTY_SEQNO = C.PENALTY_SEQNO
|
|
AND to_char(C.ACCEPT_DATE,'yyyymmdd') LIKE RTRIM(v_accept_dt,' ')
|
|
AND H.CAR_TYPE_NAME LIKE RTRIM(v_car_type,' ')
|
|
AND C.CIVIL_SUMMARY_ID LIKE RTRIM(v_summary,' ')
|
|
AND D.CAR_NO like rtrim(carno, ' ')
|
|
AND D.OWNER like RTRIM(v_owner, ' ')
|
|
AND C.CIVIL_PROCESS_ID LIKE RTRIM(v_process,' ')
|
|
);
|
|
|
|
-- 전체
|
|
ELSIF gubun = '4' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
from(
|
|
SELECT D.PENALTY_MANAGE_YEAR as p_mng_year,
|
|
D.PENALTY_SEQNO as p_seqno,
|
|
D.YEAR as p_year,
|
|
D.MONTH as p_month,
|
|
D.DAY as p_day,
|
|
D.WORK_TIMES as p_work_times,
|
|
D.CAR_NO as p_car_no,
|
|
H.CAR_TYPE_ID as p_car_kind,
|
|
H.ADDRESS_NAME as p_address1,
|
|
H.ADDRESS_NUMBER as p_address
|
|
FROM PENALTY_HEAD_INFO H,
|
|
PENALTY_DETAIL_INFO D,
|
|
CIVIL_ACCEPT_INFO C
|
|
WHERE H.CAR_NO = D.CAR_NO
|
|
AND H.RESIDENT_NO = D.RESIDENT_NO
|
|
AND D.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR
|
|
AND D.PENALTY_SEQNO = C.PENALTY_SEQNO
|
|
AND substr(D.MOTION_ID, 1,1) like '5' -- 민원 접수대상만...
|
|
AND to_char(C.ACCEPT_DATE,'yyyymmdd') LIKE RTRIM(v_accept_dt,' ')
|
|
AND H.CAR_TYPE_NAME LIKE RTRIM(v_car_type,' ')
|
|
AND C.CIVIL_SUMMARY_ID LIKE RTRIM(v_summary,' ')
|
|
AND D.CAR_NO like rtrim(carno, ' ')
|
|
AND D.OWNER like RTRIM(v_owner, ' ')
|
|
AND C.CIVIL_PROCESS_ID LIKE RTRIM(v_process,' ')
|
|
);
|
|
|
|
END IF;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFB002E_CIVIL;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFB002E_CIVIL
|
|
(
|
|
in_kbn IN number -- 테이블 선택 구분자
|
|
) RETURN number
|
|
IS
|
|
|
|
v_cnt number := 0;
|
|
|
|
BEGIN
|
|
|
|
if in_kbn = 1 then -- 민원 요약 코드
|
|
SELECT count(*)
|
|
INTO v_cnt
|
|
FROM CIVIL_SUMMARY_CODE_INFO;
|
|
|
|
elsif in_kbn = 2 then -- 민원 처리 결과 코드
|
|
SELECT count(*)
|
|
INTO v_cnt
|
|
FROM CIVIL_PROCESS_CODE_INFO;
|
|
|
|
end if;
|
|
|
|
RETURN v_cnt;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '0';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFB001E_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFB001E_COUNT (
|
|
car IN varchar2, -- ????
|
|
from_dt IN CHAR, -- ?? ???
|
|
to_dt IN CHAR -- ?? ???
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT b.levy_seqno, b.car_no,
|
|
b.year || b.month || b.day ||' - '|| b.work_times as work_time,
|
|
b.fare_office_id, a.except_reason, a.confirm_id, a.measure_result_id,
|
|
b.levy_manage_year, b.owner, b.resident_no, b.resident_date
|
|
FROM except_accept_info a,
|
|
levy_target_info b
|
|
WHERE a.levy_manage_year (+)= b.levy_manage_year
|
|
AND a.levy_seqno (+)= b.levy_seqno
|
|
AND b.car_no LIKE rtrim(car, ' ')
|
|
AND b.year || b.month || b.day BETWEEN from_dt AND to_dt
|
|
AND b.PENALTY_PROCESS_YN = '0');
|
|
/*
|
|
SELECT a.except_seqno, a.except_person, b.car_no,
|
|
b.year || b.month || b.day ||' - '|| b.work_times as work_time,
|
|
b.fare_office_id, a.except_reason, a.confirm_id, a.measure_result_id, count(*)
|
|
FROM except_accept_info a,
|
|
levy_target_info b
|
|
WHERE a.levy_manage_year = b.levy_manage_year
|
|
AND a.levy_seqno = b.levy_seqno
|
|
AND b.car_no LIKE car
|
|
AND b.year || b.month || b.day BETWEEN from_dt AND to_dt
|
|
GROUP BY a.except_seqno, a.except_person, b.car_no,
|
|
b.year || b.month || b.day ||' - '|| b.work_times,
|
|
b.fare_office_id, a.except_reason, a.confirm_id, a.measure_result_id);
|
|
*/
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFB001E_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFB001E_CNT(
|
|
pc_year IN CHAR,
|
|
pn_seqno IN NUMBER
|
|
) RETURN NUMBER
|
|
IS
|
|
|
|
tot_row NUMBER;
|
|
|
|
BEGIN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM except_accept_info
|
|
WHERE levy_manage_year = pc_year
|
|
AND levy_seqno = pn_seqno;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFA008Q_LEVY;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFA008Q_LEVY
|
|
----------------------------------------------------------------
|
|
-- 부과 예고 구분 NAME/ID를 반환
|
|
-- 참고 : 여러곳에서 쓰임,
|
|
-- 작성자 : 박치영 작성일 : 2002/11/16 수정일 : 2002/11/16
|
|
-----------------------------------------------------------------
|
|
(
|
|
in_worker IN char,
|
|
in_tunnel IN char,
|
|
in_booth IN char,
|
|
in_year IN char,
|
|
in_month IN char,
|
|
in_day IN char,
|
|
in_work_times IN char,
|
|
in_kbn IN char
|
|
) RETURN varchar2
|
|
IS
|
|
|
|
v_abb varchar2(40) := '';
|
|
v_levy_notice varchar2(40) := '';
|
|
|
|
BEGIN
|
|
|
|
if in_kbn = '1' then -- 부과 예고 구분 Name
|
|
SELECT D.LAVY_NOTICE_ABB_NAME
|
|
INTO v_abb
|
|
FROM DEFAULT_FARE_READ_INFO C,
|
|
LAVY_NOTICE_CODE_INFO D
|
|
WHERE C.LAVY_NOTICE_ID = D.LAVY_NOTICE_ID
|
|
AND C.WORKER_ID = in_worker
|
|
AND C.FARE_OFFICE_ID = in_tunnel
|
|
AND C.BOOTH_ID = in_booth
|
|
AND C.YEAR = in_year
|
|
AND C.MONTH = in_month
|
|
AND C.DAY = in_day
|
|
AND C.WORK_TIMES = in_work_times;
|
|
|
|
elsif in_kbn = '2' then -- 부과 예고 구분 ID
|
|
SELECT LAVY_NOTICE_ID
|
|
INTO v_abb
|
|
FROM DEFAULT_FARE_READ_INFO
|
|
WHERE WORKER_ID = in_worker
|
|
AND FARE_OFFICE_ID = in_tunnel
|
|
AND BOOTH_ID = in_booth
|
|
AND YEAR = in_year
|
|
AND MONTH = in_month
|
|
AND DAY = in_day
|
|
AND WORK_TIMES = in_work_times;
|
|
end if;
|
|
|
|
v_levy_notice := rtrim(v_abb, ' ');
|
|
|
|
RETURN v_levy_notice;
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RETURN ''; -- 데이타가 존재하지 않거나 없으면
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFA008Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFA008Q_COUNT
|
|
(
|
|
kbn IN char,
|
|
office IN CHAR,
|
|
from_dt IN CHAR,
|
|
to_dt IN CHAR
|
|
) RETURN number
|
|
IS
|
|
tot_row number := 0;
|
|
BEGIN
|
|
|
|
if kbn = '1' OR kbn = '2' then
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (
|
|
SELECT A.LEVY_SEQNO, A.FARE_OFFICE_ID, A.BOOTH_ID, A.YEAR, A.MONTH, A.DAY, A.WORK_TIMES, A.CAR_NO, A.OWNER, A.RESIDENT_NO,
|
|
A.RESIDENT_DATE, B.ADDRESS_NAME, B.ADDRESS_NUMBER, B.POST_NO1, B.POST_NO2, B.CAR_TYPE_ID
|
|
FROM LEVY_TARGET_INFO A,
|
|
PENALTY_HEAD_INFO B
|
|
WHERE A.CAR_NO = B.CAR_NO
|
|
AND A.RESIDENT_NO = B.RESIDENT_NO
|
|
AND A.MOTION_ID = '13'
|
|
AND A.PENALTY_PROCESS_YN = '0'
|
|
AND A.YEAR || A.MONTH || A.DAY BETWEEN from_dt AND to_dt
|
|
AND A.FARE_OFFICE_ID Like office
|
|
);
|
|
|
|
elsif kbn = '3' then
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (
|
|
SELECT A.LEVY_SEQNO, A.FARE_OFFICE_ID, A.BOOTH_ID, A.YEAR, A.MONTH, A.DAY, A.WORK_TIMES, A.CAR_NO, A.OWNER, A.RESIDENT_NO,
|
|
A.RESIDENT_DATE, B.ADDRESS_NAME, B.ADDRESS_NUMBER, B.POST_NO1, B.POST_NO2, B.CAR_TYPE_ID
|
|
FROM LEVY_TARGET_INFO A,
|
|
PENALTY_HEAD_INFO B
|
|
WHERE A.CAR_NO = B.CAR_NO
|
|
AND A.RESIDENT_NO = B.RESIDENT_NO
|
|
AND A.MOTION_ID = '21'
|
|
AND A.PENALTY_PROCESS_YN = '0'
|
|
AND A.YEAR || A.MONTH || A.DAY BETWEEN from_dt AND to_dt
|
|
AND A.FARE_OFFICE_ID Like office
|
|
);
|
|
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFA006Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFA006Q_COUNT(
|
|
gubun IN CHAR, -- 차량구분
|
|
car IN CHAR -- 차량번호
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
-- 서울
|
|
IF gubun = '1' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM penalty_head_info
|
|
WHERE rtrim(car_no) LIKE '서울%'
|
|
AND rtrim(car_no) LIKE car;
|
|
|
|
-- SOFA
|
|
ELSIF gubun = '2' THEN
|
|
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (
|
|
SELECT c.car_no, a.resident_no
|
|
FROM penalty_head_info a,
|
|
penalty_detail_info b,
|
|
fare_terminal_info c
|
|
WHERE a.car_no = b.car_no(+)
|
|
AND a.resident_no = b.resident_no(+)
|
|
AND c.car_no = a.car_no(+)
|
|
AND c.FOREIGN_CARS_KBN = '1'
|
|
AND c.DELETE_YN = '0'
|
|
AND c.car_no like car
|
|
GROUP BY c.car_no, a.resident_no);
|
|
|
|
/*
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM penalty_head_info
|
|
WHERE rtrim(car_no) LIKE '%-%-%'
|
|
AND rtrim(car_no) LIKE car;
|
|
*/
|
|
|
|
-- 지방
|
|
ELSIF gubun = '3' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM penalty_head_info
|
|
WHERE substr(rtrim(car_no), 1, 4) <> '서울'
|
|
AND rtrim(car_no) LIKE car;
|
|
|
|
-- 승합
|
|
ELSIF gubun = '4' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM penalty_head_info
|
|
WHERE (substr(rtrim(car_no), 5, 1) IN('5', '6')
|
|
OR substr(rtrim(car_no), 5, 2) BETWEEN '70' AND '79')
|
|
AND rtrim(car_no) LIKE car;
|
|
|
|
-- 전체
|
|
ELSIF gubun = '5' THEN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM penalty_head_info
|
|
WHERE rtrim(car_no) LIKE '%'
|
|
AND rtrim(car_no) LIKE car;
|
|
|
|
END IF;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFA006Q_01_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFA006Q_01_COUNT
|
|
(
|
|
car IN CHAR, -- 요금소
|
|
ownerno IN CHAR, -- 소유자
|
|
resident IN CHAR -- 주민법인번호
|
|
|
|
)
|
|
RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM penalty_head_info a, penalty_detail_info b
|
|
WHERE a.car_no = b.car_no
|
|
AND a.owner = b.owner
|
|
AND a.resident_no = b.resident_no
|
|
AND a.car_no = car
|
|
AND a.owner = ownerno
|
|
AND a.resident_no = resident;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFA005Q_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFA005Q_COUNT1
|
|
(
|
|
office IN CHAR, -- 요금소
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT c.car_no, c.car_type_id, a.max_carry_capacity,
|
|
c.year ||'/'|| c.month||'/'|| c.day ||' - '|| substr(c.work_times,1,2)||':'||
|
|
substr(c.work_times,3,2)||':'||substr(c.work_times,5.2) as work_time,
|
|
c.fare_office_id, c.booth_id, a.owner, a.post_no1 || a.post_no2 as post_no,
|
|
a.address_name, count(*), c.army_cars_kbn
|
|
FROM penalty_head_info a,
|
|
penalty_detail_info b,
|
|
fare_terminal_info c
|
|
WHERE a.car_no = b.car_no(+)
|
|
AND a.owner = b.owner(+)
|
|
AND a.resident_no = b.resident_no(+)
|
|
AND a.resident_date = b.resident_date(+)
|
|
AND c.car_no = a.car_no(+)
|
|
AND c.fare_office_id LIKE office
|
|
AND c.year || c.month || c.day BETWEEN from_dt AND to_dt
|
|
AND c.ARMY_CARS_KBN = '1'
|
|
AND c.DELETE_YN = '0'
|
|
GROUP BY c.car_no, c.car_type_id, a.max_carry_capacity,
|
|
c.year ||'/'|| c.month||'/'|| c.day ||' - '|| substr(c.work_times,1,2)||':'||
|
|
substr(c.work_times,3,2)||':'||substr(c.work_times,5.2),
|
|
c.fare_office_id, c.booth_id, a.owner, a.post_no1 || a.post_no2,
|
|
a.address_name,c.army_cars_kbn);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFA005Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFA005Q_COUNT(
|
|
office IN CHAR, -- ??? ??
|
|
from_dt IN CHAR, -- ?? ???
|
|
to_dt IN CHAR -- ?? ???
|
|
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT b.car_no, a.car_type_id, a.max_carry_capacity,
|
|
b.year || b.month || b.day ||' - '|| b.work_times as work_time,
|
|
b.fare_office_id, b.booth_id, a.owner, a.post_no1 || a.post_no2 as post_no,
|
|
a.address_name, count(*)
|
|
FROM penalty_head_info a,
|
|
penalty_detail_info b
|
|
WHERE a.car_no = b.car_no
|
|
AND a.owner = b.owner
|
|
AND a.resident_no = b.resident_no
|
|
AND b.fare_office_id LIKE office
|
|
AND b.year || b.month || b.day BETWEEN from_dt AND to_dt
|
|
AND b.car_no LIKE '%-%-%'
|
|
GROUP BY b.car_no, a.car_type_id, a.max_carry_capacity,
|
|
b.year || b.month || b.day ||' - '|| b.work_times,
|
|
b.fare_office_id, b.booth_id, a.owner, a.post_no1 || a.post_no2,
|
|
a.address_name);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFA004E_READER;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFA004E_READER
|
|
/*************************************************************
|
|
** 미납차량 자료 수정
|
|
** 리턴값 : < 판독자 리턴 >
|
|
** 적용범위 : Default_fare_read_info
|
|
** 작성자 : 박치영 작성일 : 2002/11/15 수정일 : 2002/11/15
|
|
**************************************************************/
|
|
(
|
|
in_tunnel IN char,
|
|
in_booth IN char,
|
|
in_year IN char,
|
|
in_month IN char,
|
|
in_day IN char,
|
|
in_work_times IN char,
|
|
in_seqno IN number
|
|
) RETURN varchar2
|
|
IS
|
|
|
|
v_reader_id char(6) := '';
|
|
v_reader varchar2(10) := '';
|
|
|
|
BEGIN
|
|
|
|
SELECT READER
|
|
INTO v_reader_id
|
|
FROM DEFAULT_FARE_READ_INFO
|
|
WHERE fare_office_id = in_tunnel
|
|
AND booth_id = in_booth
|
|
AND year = in_year
|
|
AND month = in_month
|
|
AND day = in_day
|
|
AND work_times = in_work_times
|
|
AND seqno = in_seqno;
|
|
|
|
BEGIN
|
|
SELECT USER_NAME
|
|
INTO v_reader
|
|
FROM MANAGE_INFO
|
|
WHERE USER_NAME = RTRIM(v_reader_id, ' ');
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_reader := '모름';
|
|
END;
|
|
|
|
RETURN v_reader;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '모름';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFA004E_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFA004E_COUNT
|
|
(
|
|
in_kbn IN char,
|
|
from_dt IN CHAR,
|
|
car IN varchar2
|
|
) RETURN NUMBER
|
|
IS
|
|
|
|
tot_row NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
if in_kbn = '1' then
|
|
-- 부과예고 대상
|
|
SELECT NVL(sum(count(*)), 0)
|
|
INTO tot_row
|
|
FROM LEVY_TARGET_INFO L, PENALTY_HEAD_INFO H
|
|
WHERE L.CAR_NO = H.CAR_NO
|
|
AND L.RESIDENT_NO = H.RESIDENT_NO
|
|
AND L.PENALTY_PROCESS_YN = '0'
|
|
AND L.NOTICE_KBN = '1'
|
|
AND L.year || L.month || L.day Like from_dt
|
|
AND L.CAR_NO like rtrim(car, ' ')
|
|
GROUP BY L.year||L.month||L.day, L.work_times;
|
|
|
|
elsif in_kbn = '2' then
|
|
-- 과태료 대상
|
|
SELECT sum(count(*))
|
|
INTO tot_row
|
|
FROM PENALTY_DETAIL_INFO D, PENALTY_HEAD_INFO H
|
|
WHERE D.CAR_NO = H.CAR_NO
|
|
AND D.RESIDENT_NO = H.RESIDENT_NO
|
|
AND D.year || D.month || D.day Like from_dt
|
|
AND D.CAR_NO like rtrim(car, ' ')
|
|
GROUP BY D.year||D.month||D.day, D.work_times;
|
|
end if;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TFA003U_MAX_SEQNO;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TFA003U_MAX_SEQNO
|
|
/*************************************************************
|
|
** 부과 대상 정보 FILE 생성
|
|
** 리턴값 : <부과대상 관리 번호 리턴>
|
|
** 적용범위 : levy target info create
|
|
** 작성자 : 박치영 작성일 : 2002/11/06 수정일 : 2002/11/07
|
|
**************************************************************/
|
|
(
|
|
in_year IN char -- 관리년도
|
|
) RETURN number
|
|
IS
|
|
|
|
p_levy_seqno number;
|
|
|
|
BEGIN
|
|
|
|
SELECT nvl(max(levy_seqno), 0)
|
|
INTO p_levy_seqno
|
|
FROM LEVY_TARGET_INFO
|
|
WHERE levy_manage_year = in_year;
|
|
|
|
p_levy_seqno := p_levy_seqno + 1;
|
|
|
|
RETURN p_levy_seqno;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TEF500Q_FARE_CNT_ETISHON;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TEF500Q_FARE_CNT_etishon
|
|
(
|
|
IN_GUBUN IN CHAR,
|
|
IN_BOOTH IN CHAR,
|
|
IN_CAR IN CHAR,
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN INTEGER
|
|
AS
|
|
|
|
V_RET NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM FARE_TERMINAL_HISTORY_INFO
|
|
WHERE BOOTH_ID LIKE IN_BOOTH
|
|
AND CAR_NO LIKE IN_CAR
|
|
AND YEAR||MONTH||DAY = IN_DATE
|
|
AND DELETE_YN LIKE IN_GUBUN;
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TEF500Q_FARE_CNT_etishon;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TEE500Q_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TEE500Q_COUNT(
|
|
from_tm IN CHAR, -- 시작시간
|
|
to_tm IN CHAR, -- 종료시간
|
|
from_dt IN CHAR, -- 시작일자
|
|
to_dt IN CHAR -- 종료일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM (SELECT c.worker_id, c.year, c.month, c.day, c.work_stt_time, c.work_end_time,
|
|
c.booth_id, a.worker_seqno,
|
|
nvl(c.cash_quantity, 0) as cash_quantity,
|
|
nvl(c.cash_income, 0) as cash_income,
|
|
nvl(c.coupon_quantity, 0) as coupon_quantity,
|
|
nvl(c.coupon_sale_quantity, 0) as coupon_sale_quantity,
|
|
nvl(c.coupon_sale, 0) as coupon_sale,
|
|
nvl(c.card_before_quantity, 0) as card_quantity,
|
|
nvl(c.card_before_income, 0) as card_income,
|
|
nvl(c.exemption_quantity, 0) as exemption_quantity,
|
|
nvl(c.nonpayment_quantity, 0) as nonpayment_quantity
|
|
FROM worker_info a, fare_adjust_info c
|
|
WHERE a.worker_id = c.worker_id
|
|
AND substr(c.work_stt_time,1,2) || substr(c.work_end_time,1,2) BETWEEN from_tm AND to_tm
|
|
AND c.year || c.month || c.day BETWEEN from_dt AND to_dt);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED503E_WORKER_TIME;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED503E_WORKER_TIME
|
|
(
|
|
IN_FARE IN CHAR,
|
|
IN_ID IN CHAR,
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN VARCHAR2
|
|
IS
|
|
|
|
V_MIN NUMBER := 0;
|
|
V_H NUMBER := 0;
|
|
V_M NUMBER := 0;
|
|
V_CNT NUMBER := 0;
|
|
OUT_HOUR CHAR(2) := ' ';
|
|
OUT_MIN CHAR(2) := ' ';
|
|
|
|
V_RET CHAR(4) := ' ';
|
|
|
|
BEGIN
|
|
|
|
SELECT round(sum((to_date(a.year||a.month||a.day||a.work_end_time, 'yyyymmddhh24miss')
|
|
- to_date(a.year||a.month||a.day||a.work_stt_time, 'yyyymmddhh24miss'))
|
|
*60*24)) as min
|
|
INTO V_MIN
|
|
FROM fare_adjust_info a
|
|
WHERE a.fare_office_id = IN_FARE
|
|
AND a.worker_id = IN_ID
|
|
AND a.year||a.month||a.day = IN_DATE
|
|
AND a.fare_adjust_yn = '1'
|
|
GROUP BY a.worker_id;
|
|
|
|
IF V_MIN >= 60 THEN
|
|
|
|
V_H := TRUNC(V_MIN / 60);
|
|
V_M := V_MIN - (V_H * 60);
|
|
|
|
IF V_H > 9 THEN
|
|
OUT_HOUR := TO_CHAR(V_H);
|
|
ELSE
|
|
OUT_HOUR := '0'||TO_CHAR(V_H);
|
|
END IF;
|
|
|
|
IF V_M > 9 THEN
|
|
OUT_MIN := TO_CHAR(V_M);
|
|
ELSE
|
|
OUT_MIN := '0'||TO_CHAR(V_M);
|
|
END IF;
|
|
|
|
|
|
ELSIF V_MIN < 60 THEN
|
|
|
|
OUT_HOUR := '00';
|
|
|
|
IF V_MIN > 9 THEN
|
|
OUT_MIN := TO_CHAR(V_MIN);
|
|
ELSE
|
|
OUT_MIN := '0'||TO_CHAR(V_MIN);
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
V_RET := OUT_HOUR||OUT_MIN;
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '0000';
|
|
|
|
|
|
END FUN_TED503E_WORKER_TIME;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED503E_TIME_SUGI;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED503E_TIME_SUGI
|
|
(
|
|
IN_GUBUN IN CHAR,
|
|
IN_FARE IN CHAR,
|
|
IN_BOOTH IN CHAR,
|
|
IN_DATE IN CHAR,
|
|
IN_TIME IN CHAR,
|
|
IN_INOUT IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_RET NUMBER := 0;
|
|
BEGIN
|
|
|
|
IF IN_GUBUN = 'CNT' THEN
|
|
|
|
SELECT NVL(SUM(DECODE(IN_OUT_KBN, IN_INOUT, 1, 0)),0) AS SUGI_CNT
|
|
INTO V_RET
|
|
FROM FARE_TERMINAL_INFO
|
|
WHERE NOTE_TRANS_YN = '1'
|
|
AND NEW_DATA_YN = '1'
|
|
AND COLLECT_ID = '10'
|
|
AND DELETE_YN = '0'
|
|
AND FARE_OFFICE_ID = IN_FARE
|
|
AND BOOTH_ID = IN_BOOTH
|
|
AND YEAR||MONTH||DAY = IN_DATE
|
|
AND SUBSTR(WORK_TIMES,1,2) = IN_TIME;
|
|
|
|
ELSIF IN_GUBUN = 'CASH' THEN
|
|
|
|
SELECT NVL(SUM(DECODE(IN_OUT_KBN, IN_INOUT, LEVY_AMOUNT,0)),0) AS SUGI_M
|
|
INTO V_RET
|
|
FROM FARE_TERMINAL_INFO
|
|
WHERE NOTE_TRANS_YN = '1'
|
|
AND NEW_DATA_YN = '1'
|
|
AND COLLECT_ID = '10'
|
|
AND DELETE_YN = '0'
|
|
AND FARE_OFFICE_ID = IN_FARE
|
|
AND BOOTH_ID = IN_BOOTH
|
|
AND YEAR||MONTH||DAY = IN_DATE
|
|
AND SUBSTR(WORK_TIMES,1,2) = IN_TIME;
|
|
|
|
END IF;
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED503E_TIME_SUGI;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED503E_CAR_TIME_SUGI;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED503E_CAR_TIME_SUGI
|
|
(
|
|
IN_GUBUN IN CHAR,
|
|
IN_FARE IN CHAR,
|
|
IN_BOOTH IN CHAR,
|
|
IN_DATE IN CHAR,
|
|
IN_TIME IN CHAR,
|
|
IN_TYPE IN CHAR,
|
|
IN_KBN IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
-- 수기입력 건수, 금액 리턴
|
|
-- 정산된 데이타들만 계산한다.
|
|
-- FARE_ADJUST_INFO.FARE_ADJUST_YN = '1'
|
|
-- FARE_TERMINAL_INFO.DELETE_YN = '0'
|
|
V_RET NUMBER := 0;
|
|
BEGIN
|
|
|
|
IF IN_GUBUN = 'CNT' THEN
|
|
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM FARE_TERMINAL_INFO A, FARE_ADJUST_INFO B
|
|
WHERE A.WORKER_ID = B.WORKER_ID
|
|
AND A.FARE_OFFICE_ID = B.FARE_OFFICE_ID
|
|
AND A.BOOTH_ID = B.BOOTH_ID
|
|
AND A.YEAR = B.YEAR
|
|
AND A.MONTH = B.MONTH
|
|
AND A.DAY = B.DAY
|
|
AND SUBSTR(A.WORK_TIMES,1,4) BETWEEN B.WORK_STT_TIME AND B.WORK_END_TIME
|
|
AND A.FARE_OFFICE_ID = IN_FARE
|
|
AND A.BOOTH_ID = IN_BOOTH
|
|
AND A.YEAR||A.MONTH||A.DAY = IN_DATE
|
|
AND SUBSTR(A.WORK_TIMES,1,2) = IN_TIME
|
|
AND A.CAR_TYPE_ID = IN_TYPE
|
|
AND A.IN_OUT_KBN = IN_KBN
|
|
AND B.FARE_ADJUST_YN = '1'
|
|
AND A.NOTE_TRANS_YN = '1'
|
|
AND A.NEW_DATA_YN = '1'
|
|
AND A.DELETE_YN = '0';
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END;
|
|
|
|
ELSIF IN_GUBUN = 'CASH' THEN
|
|
|
|
BEGIN
|
|
|
|
SELECT NVL(SUM(LEVY_AMOUNT),0)
|
|
INTO V_RET
|
|
FROM FARE_TERMINAL_INFO A, FARE_ADJUST_INFO B
|
|
WHERE A.WORKER_ID = B.WORKER_ID
|
|
AND A.FARE_OFFICE_ID = B.FARE_OFFICE_ID
|
|
AND A.BOOTH_ID = B.BOOTH_ID
|
|
AND A.YEAR = B.YEAR
|
|
AND A.MONTH = B.MONTH
|
|
AND A.DAY = B.DAY
|
|
AND SUBSTR(A.WORK_TIMES,1,4) BETWEEN B.WORK_STT_TIME AND B.WORK_END_TIME
|
|
AND A.FARE_OFFICE_ID = IN_FARE
|
|
AND A.BOOTH_ID = IN_BOOTH
|
|
AND A.YEAR||A.MONTH||A.DAY = IN_DATE
|
|
AND SUBSTR(A.WORK_TIMES,1,2) = IN_TIME
|
|
AND A.CAR_TYPE_ID = IN_TYPE
|
|
AND A.IN_OUT_KBN = IN_KBN
|
|
AND B.FARE_ADJUST_YN = '1'
|
|
AND A.NOTE_TRANS_YN = '1'
|
|
AND A.NEW_DATA_YN = '1'
|
|
AND A.DELETE_YN = '0';
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END;
|
|
|
|
END IF;
|
|
|
|
|
|
END FUN_TED503E_CAR_TIME_SUGI;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED503E_ADJUST_YN;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED503E_ADJUST_YN
|
|
(
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
|
|
V_TOT NUMBER := 0;
|
|
V_OK NUMBER := 0;
|
|
V_RET NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_TOT
|
|
FROM FARE_ADJUST_INFO A
|
|
WHERE A.YEAR||A.MONTH||A.DAY = IN_DATE;
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_OK
|
|
FROM FARE_ADJUST_INFO B
|
|
WHERE B.YEAR||B.MONTH||B.DAY = IN_DATE
|
|
AND B.FARE_ADJUST_YN = '1';
|
|
|
|
IF V_TOT = 0 THEN
|
|
V_RET := 3;
|
|
ELSIF V_TOT > V_OK THEN
|
|
V_RET := 0;
|
|
ELSIF V_TOT = V_OK THEN
|
|
V_RET := 1;
|
|
END IF;
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 2;
|
|
|
|
END FUN_TED503E_ADJUST_YN;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED503E_ADJUST_SEL;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED503E_ADJUST_SEL
|
|
(
|
|
IN_GUBUN IN CHAR,
|
|
IN_ID IN CHAR,
|
|
IN_BOOTH IN CHAR,
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
|
|
V_RET NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
IF IN_GUBUN = '1' THEN
|
|
|
|
SELECT NVL(SUM(NVL(AA.DEPOSIT_PAY,0)),0)
|
|
INTO V_RET
|
|
FROM FARE_ADJUST_INFO AA
|
|
WHERE AA.FARE_OFFICE_ID = IN_ID
|
|
AND AA.BOOTH_ID = IN_BOOTH
|
|
AND AA.YEAR||AA.MONTH||AA.DAY = IN_DATE
|
|
AND AA.FARE_ADJUST_YN = '1';
|
|
|
|
ELSIF IN_GUBUN = '2' THEN
|
|
|
|
SELECT NVL(SUM(NVL(AA.CREDIT_PAY,0)),0)
|
|
INTO V_RET
|
|
FROM FARE_ADJUST_INFO AA
|
|
WHERE AA.FARE_OFFICE_ID = IN_ID
|
|
AND AA.BOOTH_ID = IN_BOOTH
|
|
AND AA.YEAR||AA.MONTH||AA.DAY = IN_DATE
|
|
AND AA.FARE_ADJUST_YN = '1';
|
|
|
|
ELSIF IN_GUBUN = '3' THEN
|
|
|
|
SELECT NVL(SUM(NVL(AA.OVERFARE_IN_AMOUNT,0)),0)
|
|
INTO V_RET
|
|
FROM FARE_ADJUST_INFO AA
|
|
WHERE AA.FARE_OFFICE_ID = IN_ID
|
|
AND AA.BOOTH_ID = IN_BOOTH
|
|
AND AA.YEAR||AA.MONTH||AA.DAY = IN_DATE
|
|
AND AA.FARE_ADJUST_YN = '1';
|
|
|
|
ELSIF IN_GUBUN = '4' THEN
|
|
|
|
SELECT NVL(SUM(NVL(AA.OVERFARE_OUT_AMOUNT,0)),0)
|
|
INTO V_RET
|
|
FROM FARE_ADJUST_INFO AA
|
|
WHERE AA.FARE_OFFICE_ID = IN_ID
|
|
AND AA.BOOTH_ID = IN_BOOTH
|
|
AND AA.YEAR||AA.MONTH||AA.DAY = IN_DATE
|
|
AND AA.FARE_ADJUST_YN = '1';
|
|
|
|
ELSIF IN_GUBUN = '5' THEN
|
|
|
|
SELECT NVL(SUM(NVL(AA.OVERCOUPON_COUNT,0)),0)
|
|
INTO V_RET
|
|
FROM FARE_ADJUST_INFO AA
|
|
WHERE AA.FARE_OFFICE_ID = IN_ID
|
|
AND AA.BOOTH_ID = IN_BOOTH
|
|
AND AA.YEAR||AA.MONTH||AA.DAY = IN_DATE
|
|
AND AA.FARE_ADJUST_YN = '1';
|
|
|
|
ELSIF IN_GUBUN = '6' THEN
|
|
|
|
SELECT NVL(SUM(NVL(AA.COUPON_RETURN_COUNT,0)),0)
|
|
INTO V_RET
|
|
FROM FARE_ADJUST_INFO AA
|
|
WHERE AA.FARE_OFFICE_ID = IN_ID
|
|
AND AA.BOOTH_ID = IN_BOOTH
|
|
AND AA.YEAR||AA.MONTH||AA.DAY = IN_DATE
|
|
AND AA.FARE_ADJUST_YN = '1';
|
|
|
|
END IF;
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED503E_ADJUST_SEL;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED503E_ADJUST_OK_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED503E_ADJUST_OK_CNT
|
|
(
|
|
IN_YEAR IN CHAR,
|
|
IN_MONTH IN CHAR,
|
|
IN_DAY IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
-- 정산완료된 징수원정산 건수 리턴
|
|
IS
|
|
V_RET NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM FARE_ADJUST_INFO A
|
|
WHERE A.YEAR = IN_YEAR
|
|
AND A.MONTH = IN_MONTH
|
|
AND A.DAY = IN_DAY
|
|
AND A.FARE_ADJUST_YN = '1';
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED503E_ADJUST_OK_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED503E_ADJUST_ALL_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED503E_ADJUST_ALL_CNT
|
|
(
|
|
IN_YEAR IN CHAR,
|
|
IN_MONTH IN CHAR,
|
|
IN_DAY IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
-- 징수원정산 전체 건수 리턴
|
|
IS
|
|
V_RET NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM FARE_ADJUST_INFO A
|
|
WHERE A.YEAR = IN_YEAR
|
|
AND A.MONTH = IN_MONTH
|
|
AND A.DAY = IN_DAY;
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED503E_ADJUST_ALL_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED502E_YEAR_FARE_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED502E_YEAR_FARE_CNT
|
|
(
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED502E_YEAR_FARE_CNT
|
|
PURPOSE: 과오납 월 집계정보에서 요금소 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED502E_YEAR_FARE_CNT or FUN_TED502E_YEAR_FARE_CNT
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 요금소 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT FARE_OFFICE_ID
|
|
FROM MONTH_OVERFARE_INFO
|
|
WHERE YEAR = IN_DATE
|
|
GROUP BY FARE_OFFICE_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED502E_YEAR_FARE_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED502E_FARE_CNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED502E_FARE_CNT1
|
|
(
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED502E_FARE_CNT1
|
|
PURPOSE: 월 정산정보에서 요금소 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED502E_FARE_CNT1 or FUN_TED502E_FARE_CNT1
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 요금소 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT FARE_OFFICE_ID
|
|
FROM MONTH_ADJUST_INFO
|
|
WHERE YEAR = IN_DATE
|
|
GROUP BY FARE_OFFICE_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED502E_FARE_CNT1;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED502E_FARE_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED502E_FARE_CNT
|
|
(
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED502E_FARE_CNT
|
|
PURPOSE: 차종별 월 정산정보에서 요금소 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED502E_FARE_CNT or FUN_TED502E_FARE_CNT
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 요금소 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT FARE_OFFICE_ID
|
|
FROM CAR_MONTH_ADJUST_INFO
|
|
WHERE YEAR = IN_DATE
|
|
GROUP BY FARE_OFFICE_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED502E_FARE_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED502E_CAR_TYPE_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED502E_CAR_TYPE_CNT
|
|
(
|
|
IN_DATE IN CHAR,
|
|
IN_FARE IN CHAR,
|
|
IN_BOOTH IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED502E_CAR_TYPE_CNT
|
|
PURPOSE: 차종별 월 정산정보에서 차종 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED502E_CAR_TYPE_CNT or FUN_TED502E_CAR_TYPE_CNT
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 차종 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT CARS_TYPE_ID
|
|
FROM CAR_MONTH_ADJUST_INFO
|
|
WHERE YEAR = IN_DATE
|
|
AND FARE_OFFICE_ID = IN_FARE
|
|
AND BOOTH_ID = IN_BOOTH
|
|
GROUP BY CARS_TYPE_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED502E_CAR_TYPE_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED502E_BOOTH_CNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED502E_BOOTH_CNT1
|
|
(
|
|
IN_DATE IN CHAR,
|
|
IN_FARE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED502E_BOOTH_CNT1
|
|
PURPOSE: 월 정산정보에서 차로 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED502E_BOOTH_CNT1 or FUN_TED502E_BOOTH_CNT1
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 차로 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT BOOTH_ID
|
|
FROM MONTH_ADJUST_INFO
|
|
WHERE YEAR = IN_DATE
|
|
AND FARE_OFFICE_ID = IN_FARE
|
|
GROUP BY BOOTH_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED502E_BOOTH_CNT1;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED502E_BOOTH_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED502E_BOOTH_CNT
|
|
(
|
|
IN_DATE IN CHAR,
|
|
IN_FARE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED502E_BOOTH_CNT
|
|
PURPOSE: 차종별 월 정산정보에서 차로 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED502E_BOOTH_CNT or FUN_TED502E_BOOTH_CNT
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 차로 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT BOOTH_ID
|
|
FROM CAR_MONTH_ADJUST_INFO
|
|
WHERE YEAR = IN_DATE
|
|
AND FARE_OFFICE_ID = IN_FARE
|
|
GROUP BY BOOTH_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED502E_BOOTH_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED501E_WEEK_SAT_CNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED501E_WEEK_SAT_CNT1
|
|
(
|
|
IN_YEAR IN CHAR,
|
|
IN_MONTH IN CHAR,
|
|
IN_FARE IN CHAR,
|
|
IN_BOOTH IN CHAR,
|
|
IN_GUBUN IN CHAR -- 1:평일, 2:토요일
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED501E_WEEK_SAT_CNT1
|
|
PURPOSE: 일 정산정보에서 평일, 토요일 일수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED501E_WEEK_SAT_CNT1or FUN_TED501E_WEEK_SAT_CNT1
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE YEAR = IN_YEAR
|
|
AND MONTH = IN_MONTH
|
|
AND FARE_OFFICE_ID = IN_FARE
|
|
AND BOOTH_ID = IN_BOOTH
|
|
AND WEEKDAY_KBN = IN_GUBUN;
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED501E_WEEK_SAT_CNT1;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED501E_WEEK_SAT_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED501E_WEEK_SAT_CNT
|
|
(
|
|
IN_YEAR IN CHAR,
|
|
IN_MONTH IN CHAR,
|
|
IN_FARE IN CHAR,
|
|
IN_BOOTH IN CHAR,
|
|
IN_CAR_TYPE IN CHAR,
|
|
IN_GUBUN IN CHAR -- 1:평일, 2:토요일
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED501E_WEEK_SAT_CNT
|
|
PURPOSE: 차종별 일 정산정보에서 평일, 토요일 일수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED501E_WEEK_SAT_CNT or FUN_TED501E_WEEK_SAT_CNT
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM CAR_DAY_ADJUST_INFO
|
|
WHERE YEAR = IN_YEAR
|
|
AND MONTH = IN_MONTH
|
|
AND FARE_OFFICE_ID = IN_FARE
|
|
AND BOOTH_ID = IN_BOOTH
|
|
AND CARS_TYPE_ID = IN_CAR_TYPE
|
|
AND WEEKDAY_KBN = IN_GUBUN;
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED501E_WEEK_SAT_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED501E_MONTH_OVERFARE_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED501E_MONTH_OVERFARE_CNT
|
|
(
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED501E_MONTH_OVERFARE_CNT
|
|
PURPOSE: 과오납 일 집계정보에서 요금소 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED501E_MONTH_OVERFARE_CNT or FUN_TED501E_MONTH_OVERFARE_CNT
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 요금소 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT FARE_OFFICE_ID
|
|
FROM DAY_OVERFARE_INFO
|
|
WHERE YEAR||MONTH = IN_DATE
|
|
GROUP BY FARE_OFFICE_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED501E_MONTH_OVERFARE_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED501E_MONTH_FIX_FARE_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED501E_MONTH_FIX_FARE_CNT
|
|
(
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED501E_MONTH_FIX_FARE_CNT
|
|
PURPOSE: 정액권 일 재고정보에서 요금소 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED501E_MONTH_FIX_FARE_CNT or FUN_TED501E_MONTH_FIX_FARE_CNT
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 요금소 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT FARE_OFFICE_ID
|
|
FROM DAY_FIX_STOCK_INFO
|
|
WHERE YEAR||MONTH = IN_DATE
|
|
GROUP BY FARE_OFFICE_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED501E_MONTH_FIX_FARE_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED501E_FARE_CNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED501E_FARE_CNT1
|
|
(
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED501E_FARE_CNT1
|
|
PURPOSE: 일 정산정보에서 요금소 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED501E_FARE_CNT1 or FUN_TED501E_FARE_CNT1
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 요금소 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT FARE_OFFICE_ID
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE YEAR||MONTH = IN_DATE
|
|
GROUP BY FARE_OFFICE_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED501E_FARE_CNT1;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED501E_FARE_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED501E_FARE_CNT
|
|
(
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED501E_FARE_CNT
|
|
PURPOSE: 차종별 일 정산정보에서 요금소 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED501E_FARE_CNT or FUN_TED501E_FARE_CNT
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 요금소 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT FARE_OFFICE_ID
|
|
FROM CAR_DAY_ADJUST_INFO
|
|
WHERE YEAR||MONTH = IN_DATE
|
|
GROUP BY FARE_OFFICE_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED501E_FARE_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED501E_CAR_TYPE_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED501E_CAR_TYPE_CNT
|
|
(
|
|
IN_DATE IN CHAR,
|
|
IN_FARE IN CHAR,
|
|
IN_BOOTH IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED501E_CAR_TYPE_CNT
|
|
PURPOSE: 차종별 일 정산정보에서 차종 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED501E_CAR_TYPE_CNT or FUN_TED501E_CAR_TYPE_CNT
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 차종 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT CARS_TYPE_ID
|
|
FROM CAR_DAY_ADJUST_INFO
|
|
WHERE YEAR||MONTH = IN_DATE
|
|
AND FARE_OFFICE_ID = IN_FARE
|
|
AND BOOTH_ID = IN_BOOTH
|
|
GROUP BY CARS_TYPE_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED501E_CAR_TYPE_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED501E_BOOTH_CNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED501E_BOOTH_CNT1
|
|
(
|
|
IN_DATE IN CHAR,
|
|
IN_FARE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED501E_BOOTH_CNT1
|
|
PURPOSE: 일 정산정보에서 차로 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED501E_BOOTH_CNT1 or FUN_TED501E_BOOTH_CNT1
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 차로 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT BOOTH_ID
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE YEAR||MONTH = IN_DATE
|
|
AND FARE_OFFICE_ID = IN_FARE
|
|
GROUP BY BOOTH_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED501E_BOOTH_CNT1;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED501E_BOOTH_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED501E_BOOTH_CNT
|
|
(
|
|
IN_DATE IN CHAR,
|
|
IN_FARE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED501E_BOOTH_CNT
|
|
PURPOSE: 차종별 일 정산정보에서 차로 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED501E_BOOTH_CNT or FUN_TED501E_BOOTH_CNT
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 차로 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT BOOTH_ID
|
|
FROM CAR_DAY_ADJUST_INFO
|
|
WHERE YEAR||MONTH = IN_DATE
|
|
AND FARE_OFFICE_ID = IN_FARE
|
|
GROUP BY BOOTH_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED501E_BOOTH_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED500E_WORKER_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED500E_WORKER_CNT
|
|
(
|
|
IN_FARE IN CHAR,
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT A.WORKER_ID
|
|
FROM FARE_ADJUST_INFO A
|
|
WHERE A.FARE_OFFICE_ID = IN_FARE
|
|
AND A.YEAR||A.MONTH||A.DAY = IN_DATE
|
|
GROUP BY A.WORKER_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED500E_WORKER_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED500E_STOCK_FARE_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED500E_STOCK_FARE_CNT
|
|
(
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED500E_STOCK_FARE_CNT
|
|
PURPOSE: 정액권 HEAD 정보에서 요금소 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED500E_STOCK_FARE_CNT or FUN_TED500E_STOCK_FARE_CNT
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 요금소 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT FARE_OFFICE_ID
|
|
FROM FIX_AMOUNT_HEAD_INFO
|
|
WHERE YEAR||MONTH||DAY = IN_DATE
|
|
GROUP BY FARE_OFFICE_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED500E_STOCK_FARE_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED500E_OFFICE_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED500E_OFFICE_CNT
|
|
(
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_CNT NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT A.FARE_OFFICE_ID
|
|
FROM FARE_ADJUST_INFO A
|
|
WHERE A.YEAR||A.MONTH||A.DAY = IN_DATE
|
|
GROUP BY FARE_OFFICE_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED500E_OFFICE_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED500E_FARE_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED500E_FARE_CNT
|
|
(
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED500E_FARE_CNT
|
|
PURPOSE: 요금단말에서 요금소 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED500E_FARE_CNT or FUN_TED500E_FARE_CNT
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 요금소 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT FARE_OFFICE_ID
|
|
FROM FARE_TERMINAL_INFO A
|
|
WHERE A.DELETE_YN = '0'
|
|
AND A.YEAR||A.MONTH||A.DAY = IN_DATE
|
|
GROUP BY FARE_OFFICE_ID);
|
|
/*
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT FARE_OFFICE_ID
|
|
FROM FARE_TERMINAL_INFO A
|
|
WHERE A.SEQNO =
|
|
(SELECT MAX(SEQNO)
|
|
FROM FARE_TERMINAL_INFO
|
|
WHERE WORKER_ID = A.WORKER_ID
|
|
AND FARE_OFFICE_ID = A.FARE_OFFICE_ID
|
|
AND BOOTH_ID = A.BOOTH_ID
|
|
AND YEAR = A.YEAR
|
|
AND MONTH = A.MONTH
|
|
AND DAY = A.DAY
|
|
AND WORK_TIMES = A.WORK_TIMES
|
|
GROUP BY A.WORK_TIMES)
|
|
AND A.YEAR||A.MONTH||A.DAY = IN_DATE
|
|
GROUP BY FARE_OFFICE_ID);
|
|
*/
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END FUN_TED500E_FARE_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TED500E_DAY_OVERFARE_FARE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TED500E_DAY_OVERFARE_FARE
|
|
(
|
|
IN_DATE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_TED500E_DAY_OVERFARE_FARE
|
|
PURPOSE: 과오납 정보에서 요금소 갯수를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TED500E_DAY_OVERFARE_FARE or FUN_TED500E_DAY_OVERFARE_FARE
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- 요금소 데이타 건수
|
|
SELECT COUNT(*)
|
|
INTO V_CNT
|
|
FROM (
|
|
SELECT FARE_OFFICE_ID
|
|
FROM OVERFARE_INFO
|
|
WHERE YEAR||MONTH||DAY = IN_DATE
|
|
GROUP BY FARE_OFFICE_ID);
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TED500E_DAY_OVERFARE_FARE;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TEC500E_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TEC500E_COUNT(
|
|
office IN CHAR, -- 요금소
|
|
booth IN CHAR, -- 차로
|
|
from_dt IN CHAR -- 통행일
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT worker_id
|
|
from FARE_TERMINAL_INFO a
|
|
where a.SEQNO =
|
|
(select max(seqno)
|
|
from FARE_TERMINAL_INFO
|
|
where worker_id = a.WORKER_ID
|
|
and fare_office_id = a.FARE_OFFICE_ID
|
|
and booth_id = a.BOOTH_ID
|
|
and year = a.YEAR
|
|
and month = a.MONTH
|
|
and day = a.DAY
|
|
and work_times = a.work_times)
|
|
and a.fare_office_id like office
|
|
and a.booth_id like booth
|
|
and a.year||a.month||a.day = from_dt
|
|
and a.DELETE_YN = '0'
|
|
and a.collect_id = '40');
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TEB500E_RET_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TEB500E_RET_CNT
|
|
(
|
|
IN_GUBUN IN NUMBER,
|
|
IN_FARE IN CHAR,
|
|
IN_YEAR IN CHAR,
|
|
IN_MONTH IN CHAR,
|
|
IN_DAY IN CHAR,
|
|
IN_KBN IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_RET NUMBER := 0;
|
|
BEGIN
|
|
|
|
IF IN_GUBUN = 1 THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM FIX_AMOUNT_HEAD_INFO A
|
|
WHERE A.FARE_OFFICE_ID = IN_FARE
|
|
AND A.YEAR = IN_YEAR
|
|
AND A.MONTH = IN_MONTH
|
|
AND A.DAY = IN_DAY
|
|
AND A.IN_OUT_KBN = IN_KBN;
|
|
|
|
ELSIF IN_GUBUN = 2 THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_RET
|
|
FROM FIX_AMOUNT_DETAIL_INFO B
|
|
WHERE B.FARE_OFFICE_ID = IN_FARE
|
|
AND B.YEAR = IN_YEAR
|
|
AND B.MONTH = IN_MONTH
|
|
AND B.DAY = IN_DAY
|
|
AND B.IN_OUT_KBN = IN_KBN;
|
|
|
|
END IF;
|
|
|
|
RETURN V_RET;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TEB500E_RET_CNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TEB500E_INS_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TEB500E_INS_CNT(
|
|
office IN CHAR,
|
|
pc_year IN CHAR,
|
|
pc_month IN CHAR,
|
|
pc_day IN CHAR
|
|
) RETURN NUMBER
|
|
IS
|
|
|
|
tot_row NUMBER;
|
|
|
|
BEGIN
|
|
select count(*)
|
|
into tot_row
|
|
from fix_amount_head_info
|
|
where fare_office_id = office
|
|
and year = pc_year
|
|
and month = pc_month
|
|
and day = pc_day;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TEB500E_COUNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TEB500E_COUNT1
|
|
(
|
|
in_fare IN CHAR, -- 요금소
|
|
in_date IN CHAR -- 조회일자
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO TOT_ROW
|
|
FROM FIX_AMOUNT_DETAIL_INFO
|
|
WHERE FARE_OFFICE_ID = IN_FARE
|
|
AND YEAR||MONTH||DAY = IN_DATE;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TEB500E_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TEB500E_COUNT(
|
|
office IN CHAR, -- ???
|
|
pc_ymd IN CHAR -- ???
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into tot_row
|
|
from (SELECT year, month, day, count(*)
|
|
FROM fix_amount_head_info
|
|
WHERE fare_office_id = office
|
|
AND year || month || day = pc_ymd
|
|
GROUP BY year, month, day
|
|
ORDER BY year, month, day);
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TEA502E_LESS_MONEY;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TEA502E_LESS_MONEY
|
|
/******************************************************************************
|
|
NAME: FUN_TEA502E_LESS_MONEY
|
|
PURPOSE: 부족금액을 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-02 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TEA502E_LESS_MONEY or FUN_TEA502E_LESS_MONEY
|
|
Sysdate: 2002-11-02
|
|
Date/Time: 2002-11-02 오후 2:12:32
|
|
Date: 2002-11-02
|
|
Time: 오후 2:12:32
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
(
|
|
IN_ID IN CHAR,
|
|
IN_FARE IN CHAR,
|
|
IN_BOOTH IN CHAR,
|
|
IN_DATE IN CHAR,
|
|
IN_ST IN CHAR,
|
|
IN_ED IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
|
|
V_AMOUNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
SELECT IN_OUT_AMOUNT
|
|
INTO V_AMOUNT
|
|
FROM IN_OUT_INFO
|
|
WHERE WORKER_ID = IN_ID
|
|
AND FARE_OFFICE_ID = IN_FARE
|
|
AND BOOTH_ID = IN_BOOTH
|
|
AND YEAR||MONTH||DAY = IN_DATE
|
|
AND WORK_STT_TIME = IN_ST
|
|
AND WORK_END_TIME = IN_ED
|
|
AND IN_OUT_KBN = '1';
|
|
|
|
RETURN V_AMOUNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TEA502E_LESS_MONEY;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TEA500E_CAR_TYPE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TEA500E_CAR_TYPE
|
|
/******************************************************************************
|
|
NAME: FUN_TEA500E_CAR_TYPE
|
|
PURPOSE: 차량번호에서 차종코드를 알아낸다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-02 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_TEA500E_CAR_TYPE or FUN_TEA500E_CAR_TYPE
|
|
Sysdate: 2002-11-02
|
|
Date/Time: 2002-11-02 오후 2:12:32
|
|
Date: 2002-11-02
|
|
Time: 오후 2:12:32
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
(
|
|
IN_GUBUN NUMBER, -- 번호 자리수 구분
|
|
IN_NUM CHAR -- 차랑번호
|
|
)
|
|
RETURN CHAR
|
|
IS
|
|
|
|
V_TYPE CHAR(1) := ' ';
|
|
|
|
BEGIN
|
|
|
|
IF IN_GUBUN = 12 THEN
|
|
|
|
SELECT CARS_TYPE_ID
|
|
INTO V_TYPE
|
|
FROM CARS_TYPE_CODE_INFO
|
|
WHERE STT_FNO <= IN_NUM
|
|
AND END_FNO >= IN_NUM;
|
|
|
|
ELSIF IN_GUBUN = 11 THEN
|
|
|
|
SELECT CARS_TYPE_ID
|
|
INTO V_TYPE
|
|
FROM CARS_TYPE_CODE_INFO
|
|
WHERE STT_SNO <= IN_NUM
|
|
AND END_SNO >= IN_NUM;
|
|
|
|
END IF;
|
|
|
|
RETURN V_TYPE;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN '5';
|
|
WHEN OTHERS THEN
|
|
RETURN '5';
|
|
|
|
END FUN_TEA500E_CAR_TYPE;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TEA500E_CARD_CASH;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TEA500E_CARD_CASH
|
|
/******************************************************************************
|
|
NAME: FUN_TEA500E_CARD_CASH
|
|
PURPOSE: 징수원 정산의 선,후불 금액 합계를 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-15 1. Created this function.
|
|
|
|
Object Name: FUN_TEA500E_CARD_CASH or FUN_TEA500E_CARD_CASH
|
|
Sysdate: 2002-11-15
|
|
Date/Time: 2002-11-15 오전 12:15:05
|
|
Date: 2002-11-15
|
|
Time: 오전 12:15:05
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
(
|
|
IN_ID IN CHAR, -- 징수원아이디
|
|
IN_FARE IN CHAR, -- 요금소
|
|
IN_BOOTH IN CHAR, -- 차로
|
|
IN_DATE IN CHAR, -- 통행일자
|
|
IN_ST IN CHAR, -- 근무시작시간
|
|
IN_ED IN CHAR -- 근무종료시간
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_CASH NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT NVL(CARD_BEFORE_INCOME,0)+NVL(CARD_AFTER_INCME,0) AS A
|
|
INTO V_CASH
|
|
FROM FARE_ADJUST_INFO
|
|
WHERE WORKER_ID = IN_ID
|
|
AND FARE_OFFICE_ID = IN_FARE
|
|
AND BOOTH_ID = IN_BOOTH
|
|
AND YEAR||MONTH||DAY = IN_DATE
|
|
AND WORK_STT_TIME = IN_ST
|
|
AND WORK_END_TIME = IN_ED;
|
|
|
|
RETURN V_CASH;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TEA500E_CARD_CASH;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TBD000E_ROW;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TBD000E_ROW
|
|
(
|
|
IN_COLLECT1 IN CHAR, -- 징수유형
|
|
IN_COLLECT2 IN CHAR -- 징수유형
|
|
)
|
|
RETURN NUMBER
|
|
-- 당일 요금정보 건수 리턴
|
|
IS
|
|
V_ROW NUMBER;
|
|
BEGIN
|
|
|
|
IF IN_COLLECT1 = '%' THEN
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_ROW
|
|
FROM FARE_INFO
|
|
WHERE TO_CHAR(STT_DATE, 'YYYYMMDD') <= TO_CHAR(SYSDATE, 'YYYYMMDD')
|
|
AND TO_CHAR(END_DATE, 'YYYYMMDD') >= TO_CHAR(SYSDATE, 'YYYYMMDD');
|
|
|
|
ELSE
|
|
|
|
SELECT COUNT(*)
|
|
INTO V_ROW
|
|
FROM FARE_INFO
|
|
WHERE COLLECT_ID IN (IN_COLLECT1, IN_COLLECT2)
|
|
AND TO_CHAR(STT_DATE, 'YYYYMMDD') <= TO_CHAR(SYSDATE, 'YYYYMMDD')
|
|
AND TO_CHAR(END_DATE, 'YYYYMMDD') >= TO_CHAR(SYSDATE, 'YYYYMMDD');
|
|
|
|
END IF;
|
|
|
|
RETURN V_ROW;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_TBD000E_ROW;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_TAR000Q_RTN;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_TAR000Q_RTN
|
|
( v_gubun IN BINARY_INTEGER,
|
|
v_office IN VARCHAR2,
|
|
v_from_dt IN VARCHAR2,
|
|
v_to_dt IN VARCHAR2,
|
|
v_week_kgb IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/*
|
|
** ???? ?? ??,???? ???? ??? ??? ??
|
|
*/
|
|
v_rc NUMBER := 0;
|
|
BEGIN
|
|
IF v_gubun = 1 THEN --????
|
|
SELECT SUM(NVL(IN_EXEMPTION_QUANTITY,0) + NVL(IN_CASH_QUANTITY,0) + NVL(IN_COUPON_QUANTITY,0) +
|
|
NVL(IN_NONPAYMENT_QUANTITY,0) + NVL(IN_CARD_BEFORE_QUANTITY,0) + NVL(IN_CARD_AFTER_QUANTITY,0) +
|
|
NVL(OUT_EXEMPTION_QUANTITY,0) + NVL(OUT_CASH_QUANTITY,0) + NVL(OUT_COUPON_QUANTITY,0) +
|
|
NVL(OUT_NONPAYMENT_QUANTITY,0) + NVL(OUT_CARD_BEFORE_QUANTITY,0) + NVL(OUT_CARD_AFTER_QUANTITY,0))
|
|
INTO v_rc
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
|
|
AND WEEKDAY_KBN = v_week_kgb;
|
|
|
|
ELSIF v_gubun = 2 THEN --????
|
|
SELECT SUM(NVL(TOTAL_INCOME,0))
|
|
INTO v_rc
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
|
|
AND WEEKDAY_KBN = v_week_kgb;
|
|
|
|
ELSIF v_gubun = 3 THEN --????
|
|
SELECT SUM(NVL(IN_EXEMPTION_QUANTITY,0) + NVL(IN_CASH_QUANTITY,0) + NVL(IN_COUPON_QUANTITY,0) +
|
|
NVL(IN_NONPAYMENT_QUANTITY,0) + NVL(IN_CARD_BEFORE_QUANTITY,0) + NVL(IN_CARD_AFTER_QUANTITY,0) +
|
|
NVL(OUT_EXEMPTION_QUANTITY,0) + NVL(OUT_CASH_QUANTITY,0) + NVL(OUT_COUPON_QUANTITY,0) +
|
|
NVL(OUT_NONPAYMENT_QUANTITY,0) + NVL(OUT_CARD_BEFORE_QUANTITY,0) + NVL(OUT_CARD_AFTER_QUANTITY,0))
|
|
INTO v_rc
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH BETWEEN SUBSTR(v_from_dt,1,6) AND SUBSTR(v_to_dt,1,6)
|
|
AND WEEKDAY_KBN = v_week_kgb;
|
|
|
|
ELSIF v_gubun = 4 THEN --????
|
|
SELECT SUM(NVL(TOTAL_INCOME,0))
|
|
INTO v_rc
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR||MONTH BETWEEN SUBSTR(v_from_dt,1,6) AND SUBSTR(v_to_dt,1,6)
|
|
AND WEEKDAY_KBN = v_week_kgb;
|
|
|
|
ELSIF v_gubun = 5 THEN --????
|
|
SELECT SUM(NVL(IN_EXEMPTION_QUANTITY,0) + NVL(IN_CASH_QUANTITY,0) + NVL(IN_COUPON_QUANTITY,0) +
|
|
NVL(IN_NONPAYMENT_QUANTITY,0) + NVL(IN_CARD_BEFORE_QUANTITY,0) + NVL(IN_CARD_AFTER_QUANTITY,0) +
|
|
NVL(OUT_EXEMPTION_QUANTITY,0) + NVL(OUT_CASH_QUANTITY,0) + NVL(OUT_COUPON_QUANTITY,0) +
|
|
NVL(OUT_NONPAYMENT_QUANTITY,0) + NVL(OUT_CARD_BEFORE_QUANTITY,0) + NVL(OUT_CARD_AFTER_QUANTITY,0))
|
|
INTO v_rc
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR BETWEEN SUBSTR(v_from_dt,1,4) AND SUBSTR(v_to_dt,1,4)
|
|
AND WEEKDAY_KBN = v_week_kgb;
|
|
|
|
ELSIF v_gubun = 6 THEN --????
|
|
SELECT SUM(NVL(TOTAL_INCOME,0))
|
|
INTO v_rc
|
|
FROM DAY_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND YEAR BETWEEN SUBSTR(v_from_dt,1,4) AND SUBSTR(v_to_dt,1,4)
|
|
AND WEEKDAY_KBN = v_week_kgb;
|
|
END IF;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION WHEN NO_DATA_FOUND THEN
|
|
v_rc := 0;
|
|
RETURN v_rc;
|
|
END FUN_TAR000Q_RTN;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_STOP_PICTURE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_STOP_PICTURE
|
|
-------------------------------------------------------------------
|
|
-- 정지영상 파일명 읽어오기
|
|
-- 대상항목 : 다음
|
|
-- 작성자 : 박치영, 작성일 : 2002/11/20 수정일 : 2004/01/06.
|
|
-------------------------------------------------------------------
|
|
(
|
|
in_tunnel IN char, -- 1.
|
|
in_booth IN char, -- 2.
|
|
in_year IN char, -- 3.
|
|
in_month IN char, -- 4.
|
|
in_day IN char, -- 5.
|
|
in_work_times IN char, -- 6.
|
|
in_worker_id IN CHAR, -- 7.
|
|
in_seqno IN NUMBER -- 8.
|
|
) RETURN char
|
|
IS
|
|
v_pic char(23) := '';
|
|
BEGIN
|
|
|
|
SELECT CARS_STOP_PICTURE_FILE
|
|
INTO v_pic
|
|
FROM DEFAULT_FARE_READ_INFO
|
|
WHERE FARE_OFFICE_ID = in_tunnel
|
|
AND BOOTH_ID = in_booth
|
|
AND YEAR = in_year
|
|
AND MONTH = in_month
|
|
AND DAY = in_day
|
|
AND WORK_TIMES = in_work_times
|
|
AND WORKER_ID = in_worker_id
|
|
AND SEQNO = in_seqno
|
|
AND COLLECT_ID = '40';
|
|
|
|
RETURN v_pic;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_SOURCE_STATUS;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_SOURCE_STATUS
|
|
(
|
|
IN_GUBUN IN CHAR,
|
|
IN_NAME IN VARCHAR2
|
|
)
|
|
RETURN VARCHAR2
|
|
IS
|
|
|
|
V_STATUS VARCHAR2(7) := ' ';
|
|
V_RET VARCHAR2(100) := ' ';
|
|
|
|
BEGIN
|
|
|
|
SELECT STATUS
|
|
INTO V_STATUS
|
|
FROM USER_OBJECTS
|
|
WHERE OBJECT_TYPE = UPPER(IN_GUBUN)
|
|
AND OBJECT_NAME = UPPER(IN_NAME);
|
|
|
|
|
|
IF RTRIM(V_STATUS) = 'INVALID' THEN
|
|
V_RET := UPPER(IN_GUBUN)||' "'||UPPER(IN_NAME)||'" 가 동작하지 않습니다. 전산담당자에서 문의하세요.';
|
|
ELSE
|
|
V_RET := RTRIM(V_STATUS);
|
|
END IF;
|
|
|
|
|
|
RETURN RTRIM(V_RET);
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
|
|
RETURN NULL;
|
|
|
|
|
|
END FUN_SOURCE_STATUS;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_RFID_DUO;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_RFID_DUO
|
|
(
|
|
in_tag1 in char,
|
|
in_tag2 in char
|
|
)
|
|
return char
|
|
IS
|
|
-- 20070117 RFID 체크...
|
|
v_ret char(4) := 0;
|
|
|
|
v_cnt1 number := 0;
|
|
v_cnt2 number := 0;
|
|
|
|
v_car1 varchar2(20) := '';
|
|
v_car2 varchar2(20) := '';
|
|
|
|
BEGIN
|
|
|
|
v_ret := '0000';
|
|
|
|
if in_tag1 <> in_tag2 then
|
|
|
|
v_cnt1 := fun_rfid_cnt(in_tag1);
|
|
v_cnt2 := fun_rfid_cnt(in_tag2);
|
|
|
|
if v_cnt1 = 1 and v_cnt2 = 1 then
|
|
-- 동일한 차량번호 체크...
|
|
select car_no
|
|
into v_car1
|
|
from rfid_info
|
|
where rfid_tag = in_tag1;
|
|
|
|
select car_no
|
|
into v_car2
|
|
from rfid_info
|
|
where rfid_tag = in_tag2;
|
|
|
|
if rtrim(v_car1,' ') = rtrim(v_car2,' ') then
|
|
-- 동일한 차량이면...요일제감면 + 저공해화감면차량...
|
|
v_ret := '9999';
|
|
|
|
end if;
|
|
|
|
end if;
|
|
|
|
end if;
|
|
|
|
return v_ret;
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_RFID_CNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_RFID_CNT
|
|
(
|
|
in_tag in char
|
|
)
|
|
return number
|
|
IS
|
|
-- 20070117 RFID 체크...
|
|
v_ret number := 0;
|
|
|
|
BEGIN
|
|
|
|
select count(*)
|
|
into v_ret
|
|
from rfid_info
|
|
where rfid_tag = in_tag;
|
|
|
|
return v_ret;
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_RET_LAST_DAY;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_RET_LAST_DAY
|
|
(
|
|
IN_YM IN CHAR
|
|
)
|
|
RETURN CHAR
|
|
IS
|
|
|
|
V_DAY CHAR(2) := '';
|
|
|
|
BEGIN
|
|
|
|
SELECT TO_CHAR(LAST_DAY(TO_DATE(IN_YM, 'YYYYMM')), 'DD')
|
|
INTO V_DAY
|
|
FROM DUAL;
|
|
|
|
RETURN V_DAY;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN '29';
|
|
|
|
END FUN_RET_LAST_DAY;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_PENALTY_AMOUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_PENALTY_AMOUNT
|
|
/*************************************************************
|
|
** 과태료 금액 설정
|
|
** 리턴값 : < 요금정보 리턴 >
|
|
** 적용범위 : penalty detail info create
|
|
** 작성자 : 박치영 작성일 : 2003/11/15 수정일 : 2003/11/15
|
|
**************************************************************/
|
|
(
|
|
in_year IN char, -- 년
|
|
in_month IN char, -- 월
|
|
in_day IN char, -- 일
|
|
in_kbn IN number, -- 징수 금액 구분[1:통행료, 2:과태료, 3:징수금액]..
|
|
in_car_type IN CHAR -- 0:일반차량, 1:경차...
|
|
) RETURN number
|
|
IS
|
|
|
|
p_money number;
|
|
p_trans number;
|
|
p_fine number;
|
|
|
|
p_code char(2); -- 현금 유형..
|
|
|
|
BEGIN
|
|
|
|
IF in_car_type = '0' THEN
|
|
-- 일반차량이면..
|
|
p_code := '10';
|
|
|
|
ELSIF in_car_type = '1' THEN
|
|
-- 경차이면..
|
|
p_code := '11';
|
|
END IF;
|
|
|
|
|
|
IF in_kbn = 1 THEN -- 통행료
|
|
SELECT trans_amount
|
|
INTO p_money
|
|
FROM fare_info
|
|
WHERE stt_date < to_date((in_year || in_month || in_day), 'yyyy-mm-dd')
|
|
AND end_date > to_date((in_year || in_month || in_day), 'yyyy-mm-dd')
|
|
AND collect_id = p_code;
|
|
|
|
ELSIF in_kbn = 2 THEN -- 과태료
|
|
SELECT fine_amount
|
|
INTO p_money
|
|
FROM fare_info
|
|
WHERE stt_date < to_date((in_year || in_month || in_day), 'yyyy-mm-dd')
|
|
AND end_date > to_date((in_year || in_month || in_day), 'yyyy-mm-dd')
|
|
AND collect_id = p_code;
|
|
|
|
ELSIF in_kbn = 3 THEN -- 징수금액
|
|
SELECT trans_amount, fine_amount
|
|
INTO p_trans, p_fine
|
|
FROM fare_info
|
|
WHERE stt_date < to_date((in_year || in_month || in_day), 'yyyy-mm-dd')
|
|
AND end_date > to_date((in_year || in_month || in_day), 'yyyy-mm-dd')
|
|
AND collect_id = p_code;
|
|
|
|
p_money := p_trans + p_fine;
|
|
|
|
END IF;
|
|
|
|
|
|
|
|
RETURN p_money;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_MONEY_FROM_FARE_TER;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_MONEY_FROM_FARE_TER
|
|
/******************************************************************************
|
|
NAME: FUN_MONEY_FROM_FARE_TER
|
|
PURPOSE: 요금단말에서 징수유형별로 금액을 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-15 1. Created this function.
|
|
|
|
Object Name: FUN_MONEY_FROM_FARE_TER or FUN_MONEY_FROM_FARE_TER
|
|
Sysdate: 2002-11-15
|
|
Date/Time: 2002-11-15 오전 12:15:05
|
|
Date: 2002-11-15
|
|
Time: 오전 12:15:05
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
(
|
|
IN_ID IN CHAR, -- 징수원 아이디
|
|
IN_FARE IN CHAR, -- 요금소
|
|
IN_BOOTH IN CHAR, -- 차로
|
|
IN_DATE IN CHAR, -- 통행일자
|
|
IN_ST IN CHAR, -- 근무시작시간
|
|
IN_ED IN CHAR, -- 근무종료시간
|
|
IN_COLLECT IN CHAR -- 징수유형
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_CASH NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT nvl(sum(levy_amount),0)
|
|
INTO V_CASH
|
|
FROM FARE_TERMINAL_INFO
|
|
WHERE fare_office_id = IN_FARE
|
|
and worker_id = IN_ID
|
|
and booth_id = IN_BOOTH
|
|
and year||month||day = IN_DATE
|
|
and SUBSTR(work_times,1,4) between IN_ST and IN_ED
|
|
and collect_id = IN_COLLECT;
|
|
|
|
RETURN V_CASH;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_MONEY_FROM_FARE_TER;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_MONEY_FROM_FARE_INFO1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_MONEY_FROM_FARE_INFO1
|
|
/******************************************************************************
|
|
NAME: FUN_MONEY_FROM_FARE_INFO1
|
|
PURPOSE: 요금정보에서 징수유형별로 금액을 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-15 1. Created this function.
|
|
|
|
Object Name: FUN_MONEY_FROM_FARE_INFO1 or FUN_MONEY_FROM_FARE_INFO1
|
|
Sysdate: 2002-11-15
|
|
Date/Time: 2002-11-15 오전 12:15:05
|
|
Date: 2002-11-15
|
|
Time: 오전 12:15:05
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
(
|
|
IN_DATE IN CHAR, -- 년월일
|
|
IN_COLLECT IN CHAR -- 징수유형
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_CASH NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT NVL(LEVY_AMOUNT, 0)
|
|
INTO V_CASH
|
|
FROM FARE_INFO
|
|
WHERE STT_DATE <= TO_DATE(IN_DATE, 'YYYYMMDD')
|
|
AND END_DATE >= TO_DATE(IN_DATE, 'YYYYMMDD')
|
|
AND COLLECT_ID = IN_COLLECT;
|
|
--GROUP BY LEVY_AMOUNT;
|
|
|
|
RETURN V_CASH;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_MONEY_FROM_FARE_INFO1;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_MONEY_FROM_FARE_INFO;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_MONEY_FROM_FARE_INFO
|
|
/******************************************************************************
|
|
NAME: FUN_MONEY_FROM_FARE_INFO
|
|
PURPOSE: 요금정보에서 징수유형별로 금액을 가져온다.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-15 1. Created this function.
|
|
|
|
Object Name: FUN_MONEY_FROM_FARE_INFO or FUN_MONEY_FROM_FARE_INFO
|
|
Sysdate: 2002-11-15
|
|
Date/Time: 2002-11-15 오전 12:15:05
|
|
Date: 2002-11-15
|
|
Time: 오전 12:15:05
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
(
|
|
IN_COLLECT IN CHAR -- 징수유형
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
V_CASH NUMBER := 0;
|
|
BEGIN
|
|
|
|
SELECT NVL(LEVY_AMOUNT, 0)
|
|
INTO V_CASH
|
|
FROM FARE_INFO
|
|
WHERE STT_DATE <= SYSDATE
|
|
AND END_DATE >= SYSDATE
|
|
AND COLLECT_ID = IN_COLLECT;
|
|
|
|
RETURN V_CASH;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_MONEY_FROM_FARE_INFO;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_HISTORY_INS_CHK;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_HISTORY_INS_CHK
|
|
/*************************************************************
|
|
** 검색시작일자, 종료일자, 현진행코드를 입력받아
|
|
** history 파일을 만들었는지 판별한다.
|
|
** 생성 건수를 반환한다.
|
|
** 적용범위 : penalty history create
|
|
** 작성자 : 박치영 작성일 : 2002/10/03 수정일 : 2003/12/10.
|
|
**************************************************************/
|
|
(
|
|
in_from IN char, -- 검색시작일자
|
|
in_to IN char, -- 검색종료일자
|
|
in_motion IN char -- 현 진행 코드
|
|
) RETURN number
|
|
IS
|
|
p_count number := 0;
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
INTO p_count
|
|
FROM PENALTY_HISTORY_HEAD_INFO
|
|
WHERE to_char(stt_work_date, 'yyyymmdd') = in_from
|
|
AND to_char(end_work_date, 'yyyymmdd') = in_to
|
|
AND motion_id = in_motion;
|
|
|
|
RETURN p_count;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_WORKER;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_WORKER ( v_empno IN CHAR ) RETURN VARCHAR2
|
|
IS
|
|
v_rc VARCHAR2(10);
|
|
/*
|
|
징수원 아이디를 받아 징수원명을 리턴한다.
|
|
*/
|
|
BEGIN
|
|
SELECT WORKER_NAME
|
|
INTO v_rc
|
|
FROM WORKER_INFO
|
|
WHERE WORKER_ID = v_empno;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_rc := '';
|
|
RETURN v_rc;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_WORKCNT1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_WORKCNT1
|
|
(
|
|
v_office IN CHAR,
|
|
v_worker IN CHAR,
|
|
v_booth IN CHAR,
|
|
v_stt_date IN CHAR,
|
|
v_end_date IN CHAR,
|
|
v_time_st IN CHAR,
|
|
v_time_ed IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
h_count NUMBER := 0;
|
|
v_rc NUMBER := 0;
|
|
BEGIN
|
|
/*
|
|
**징수원 시간대별 차로별 근무현황
|
|
*/
|
|
SELECT COUNT(BOOTH_ID)
|
|
INTO h_count
|
|
FROM FARE_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND WORKER_ID = v_worker
|
|
AND BOOTH_ID = v_booth
|
|
AND YEAR||MONTH||DAY BETWEEN v_stt_date AND v_end_date
|
|
AND ((substr(WORK_STT_TIME,1,2) <= v_time_st AND substr(WORK_END_TIME,1,2) >= v_time_ed)
|
|
or (substr(WORK_STT_TIME,1,2) = v_time_st AND substr(WORK_END_TIME,1,2) = v_time_st));
|
|
/*
|
|
GROUP BY YEAR,MONTH,DAY,WORKER_ID,FARE_OFFICE_ID,
|
|
BOOTH_ID,WORK_STT_TIME,WORK_END_TIME;
|
|
*/
|
|
IF h_count = 0 THEN
|
|
v_rc := 0;
|
|
RETURN v_rc;
|
|
ELSE
|
|
v_rc := h_count;
|
|
END IF;
|
|
|
|
RETURN v_rc;
|
|
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
|
|
RETURN 0;
|
|
|
|
END FUN_GET_WORKCNT1;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_WORKCNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_WORKCNT
|
|
(
|
|
v_office IN CHAR,
|
|
v_worker IN CHAR,
|
|
v_booth IN CHAR,
|
|
v_stt_date IN CHAR,
|
|
v_end_date IN CHAR,
|
|
v_time_zone IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
h_count NUMBER := 0;
|
|
v_rc NUMBER := 0;
|
|
BEGIN
|
|
/*
|
|
**징수원 시간대별 차로별 근무현황
|
|
*/
|
|
SELECT COUNT(BOOTH_ID)
|
|
INTO h_count
|
|
FROM FARE_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND WORKER_ID = v_worker
|
|
AND BOOTH_ID = v_booth
|
|
AND YEAR||MONTH||DAY BETWEEN v_stt_date AND v_end_date
|
|
AND WORK_STT_TIME||WORK_END_TIME = v_time_zone
|
|
GROUP BY YEAR,MONTH,DAY,WORKER_ID,FARE_OFFICE_ID,
|
|
BOOTH_ID,WORK_STT_TIME,WORK_END_TIME;
|
|
|
|
IF h_count = 0 THEN
|
|
v_rc := 0;
|
|
RETURN v_rc;
|
|
ELSE
|
|
v_rc := h_count;
|
|
END IF;
|
|
|
|
RETURN v_rc;
|
|
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
|
|
RETURN 0;
|
|
|
|
END FUN_GET_WORKCNT;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_TTJ502Q;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_TTJ502Q
|
|
(
|
|
v_flag IN CHAR,
|
|
v_office IN CHAR,
|
|
v_time IN CHAR,
|
|
v_stt_date IN CHAR,
|
|
v_end_date IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
h_count NUMBER := 0;
|
|
v_rc NUMBER := 0;
|
|
BEGIN
|
|
|
|
IF v_flag = '1' THEN
|
|
|
|
BEGIN
|
|
SELECT NVL(SUM(NVL(IN_EXEMPTION_QUANTITY,0) + NVL(IN_CASH_QUANTITY,0) +
|
|
NVL(IN_COUPON_QUANTITY,0) + NVL(IN_NONPAYMENT_QUANTITY,0) +
|
|
NVL(IN_CARD_BEFORE_QUANTITY,0) + NVL(IN_CARD_AFTER_QUANTITY,0) +
|
|
NVL(IN_K_CASH_Q,0) + NVL(IN_K_COUPON_Q,0) +
|
|
NVL(IN_K_CARD_SUN_Q,0) + NVL(IN_K_CARD_WHO_Q,0)),0)
|
|
INTO v_rc
|
|
FROM TIME_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND TIMES = v_time
|
|
AND YEAR||MONTH||DAY BETWEEN v_stt_date AND v_end_date
|
|
GROUP BY TIMES;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
END;
|
|
|
|
ELSE
|
|
BEGIN
|
|
SELECT NVL(SUM(NVL(OUT_EXEMPTION_QUANTITY,0) + NVL(OUT_CASH_QUANTITY,0) +
|
|
NVL(OUT_COUPON_QUANTITY,0) + NVL(OUT_NONPAYMENT_QUANTITY,0) +
|
|
NVL(OUT_CARD_BEFORE_QUANTITY,0) + NVL(OUT_CARD_AFTER_QUANTITY,0) +
|
|
NVL(OUT_K_CASH_Q,0) + NVL(OUT_K_COUPON_Q,0) +
|
|
NVL(OUT_K_CARD_SUN_Q,0) + NVL(OUT_K_CARD_WHO_Q,0)),0)
|
|
INTO v_rc
|
|
FROM TIME_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE v_office
|
|
AND TIMES = v_time
|
|
AND YEAR||MONTH||DAY BETWEEN v_stt_date AND v_end_date
|
|
GROUP BY TIMES;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
END;
|
|
END IF;
|
|
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
v_rc := 0;
|
|
RETURN v_rc;
|
|
|
|
END FUN_GET_TTJ502Q;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_SYSDATE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_SYSDATE ( v_flag IN CHAR ) RETURN VARCHAR2
|
|
IS
|
|
v_rc VARCHAR2(20);
|
|
/*
|
|
** ???? ?? ??? ??? ??? ???? ?? : ? ? ?
|
|
*/
|
|
BEGIN
|
|
IF v_flag = '1' THEN
|
|
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH:MM:SS')
|
|
INTO v_rc
|
|
FROM DUAL;
|
|
ELSIF v_flag = '2' THEN
|
|
SELECT TO_CHAR(SYSDATE,'YYYYMMDD HH:MM:SS')
|
|
INTO v_rc
|
|
FROM DUAL;
|
|
ELSIF v_flag = '3' THEN
|
|
SELECT TO_CHAR(SYSDATE,'YYYYMMDD')
|
|
INTO v_rc
|
|
FROM DUAL;
|
|
ELSIF v_flag = '4' THEN
|
|
SELECT TO_CHAR(SYSDATE,'YYYY')
|
|
INTO v_rc
|
|
FROM DUAL;
|
|
ELSIF v_flag = '5' THEN
|
|
SELECT TO_CHAR(SYSDATE,'MM')
|
|
INTO v_rc
|
|
FROM DUAL;
|
|
ELSIF v_flag = '6' THEN
|
|
SELECT TO_CHAR(SYSDATE,'DD')
|
|
INTO v_rc
|
|
FROM DUAL;
|
|
ELSIF v_flag = '7' THEN
|
|
SELECT TO_CHAR(SYSDATE,'HH:MM:SS')
|
|
INTO v_rc
|
|
FROM DUAL;
|
|
ELSIF v_flag = '8' THEN
|
|
SELECT TO_CHAR(SYSDATE,'HH24MI')
|
|
INTO v_rc
|
|
FROM DUAL;
|
|
END IF;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_PENALTY_RENT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_PENALTY_RENT
|
|
(v_year Varchar2, v_seqno In number, v_date1 In Varchar2, v_gubn varchar2)
|
|
/* v_date 자리에 *이 오면 오늘날짜 계산*/
|
|
RETURN NUMBER
|
|
IS
|
|
--t_Motion 진행코드, v_date1 납기일자, v_date2 입금일/혹은 고지취소일, t_Amount 과태료 금액
|
|
t_rate1 NUMBER(5,4);
|
|
t_rate2 NUMBER(5,4);
|
|
t_rate3 NUMBER(5,4);
|
|
t_month NUMBER(20,16);
|
|
t_round NUMBER;
|
|
r_money NUMBER(7,2);
|
|
r_overdate NUMBER;
|
|
t_Motion VARCHAR2(2);
|
|
t_Delivery_Dt VARCHAR2(8);
|
|
t_Amount NUMBER;
|
|
t_SendDt VARCHAR2(8);
|
|
t_Codedt VARCHAR2(8);
|
|
t_Notice VARCHAR2(2);
|
|
t_Notice_Wrong VARCHAR2(2);
|
|
t_Sajun VARCHAR2(8);
|
|
t_Date1 VARCHAR2(8);
|
|
BEGIN
|
|
SELECT NVL(MAX(RECEIPT_AMOUNT),0)
|
|
INTO r_money
|
|
FROM RECEIPT_INFO A
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo;
|
|
SELECT LAVY_AMOUNT,
|
|
DECODE(v_date1,'*',TO_CHAR(SYSDATE,'YYYYMMDD'),v_date1),
|
|
A.MOTION_ID,
|
|
YEAR||MONTH||DAY,
|
|
NOTICE_ID,
|
|
NOTICE_WRONG_ID,
|
|
(SELECT COL1 FROM CODE_DETAIL_INFO WHERE CODE_ID='00' AND SUB_CD='03')
|
|
INTO t_Amount, t_SendDt, t_Motion, t_Codedt, t_Notice, t_Notice_Wrong, t_sajun
|
|
FROM PENALTY_RENT_DETAIL_INFO A
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo;
|
|
IF t_Motion < '31' AND t_Motion >= '21' THEN
|
|
t_Motion := '21';
|
|
ELSIF t_Motion < '21' AND t_Motion >= '11' THEN
|
|
t_Motion := '13';
|
|
ELSIF SYSDATE < TO_DATE(t_sajun,'YYYYMMDD') AND (t_Motion = '51' OR t_Motion='52') THEN
|
|
t_Motion := '31';
|
|
ELSIF SYSDATE >= TO_DATE(t_sajun,'YYYYMMDD') AND (t_Motion = '51' OR t_Motion='52') THEN
|
|
t_Motion := '21';
|
|
ELSIF t_Motion >='31' THEN
|
|
t_Motion := '31';
|
|
ELSIF t_Motion ='72' THEN
|
|
t_Motion := '31';
|
|
END IF;
|
|
IF r_Money = 0 AND trim( t_Motion) <> '13' THEN
|
|
/* 관리번호를 받아 진행코드 상태에 맞는 납기일자를 가져온다.*/
|
|
SELECT TO_CHAR(B.DELIVERY_DATE,'YYYYMMDD')
|
|
INTO t_Delivery_Dt
|
|
FROM PENALTY_RENT_DETAIL_INFO A,
|
|
SEND_RENT_INFO B
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo
|
|
AND B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
AND B.MOTION_ID = t_Motion;
|
|
SELECT TO_NUMBER(max(CASE WHEN SUB_CD = '03' THEN COL2 END)),
|
|
TO_NUMBER(max(CASE WHEN SUB_CD = '01' THEN COL2 END)),
|
|
TO_NUMBER(max( CASE WHEN SUB_CD = '02' THEN COL2 END)),
|
|
MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'),TO_DATE(t_Delivery_Dt,'YYYYMMDD')) ,
|
|
ceil(MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'),TO_DATE(t_Delivery_Dt,'YYYYMMDD')) -1)
|
|
INTO t_rate1, t_rate2, t_rate3,t_month, t_round
|
|
FROM CODE_DETAIL_INFO A
|
|
WHERE CODE_ID = '03'
|
|
AND COL1 = ( SELECT MAX(COL1)
|
|
FROM CODE_DETAIL_INFO B
|
|
WHERE A.CODE_ID=B.CODE_ID
|
|
AND A.SUB_CD=B.SUB_CD
|
|
AND COL1<= t_Codedt
|
|
AND USEYN='0');
|
|
IF v_Gubn = '1' THEN -- 과태료 금액 가져오기
|
|
IF trim(t_Motion) < '30' THEN
|
|
IF (t_date1>= t_SendDt) OR v_Date1='*' THEN
|
|
r_money:=t_Amount *t_rate1;
|
|
ELSE
|
|
r_money:=t_Amount ;
|
|
END IF;
|
|
END IF;
|
|
IF trim(t_Motion)>= '30' THEN
|
|
IF t_month > 0 AND t_month <= 1 THEN
|
|
r_money:=t_Amount + (t_Amount*t_rate2);
|
|
ELSIF t_month <= 0 THEN
|
|
r_money:=t_Amount;
|
|
ELSIF t_month>1 THEN
|
|
IF t_round>60 THEN
|
|
t_round :=60;
|
|
END IF;
|
|
r_money:=t_Amount + (t_round*(t_Amount*t_rate3) +t_Amount*t_rate2) ;
|
|
END IF;
|
|
END IF;
|
|
ELSIF v_Gubn = '2' THEN --가산 금액만 가져오기
|
|
IF trim(t_Motion) < '30' THEN
|
|
IF (t_date1>= t_SendDt) OR v_Date1='*' THEN
|
|
r_money:=t_Amount *t_rate1;
|
|
ELSE
|
|
r_money:=t_Amount ;
|
|
END IF;
|
|
ELSE
|
|
IF t_month > 0 AND t_month <= 1 THEN
|
|
r_money:= (t_Amount*t_rate2);
|
|
ELSIF t_month <= 0 THEN
|
|
r_money:=t_Amount;
|
|
ELSIF t_month>1 THEN
|
|
IF t_round>60 THEN
|
|
t_round :=60;
|
|
END IF;
|
|
r_money:=(t_round*(t_Amount*t_rate3) +t_Amount*t_rate2) ;
|
|
END IF;
|
|
END IF;
|
|
ELSIF v_Gubn = '3' THEN --초과일수 가져오기(달수)
|
|
IF trim(t_Motion) < '30' THEN
|
|
IF (t_date1>= t_SendDt) OR v_Date1='*' THEN
|
|
r_Money:= -9; --사전통지 기간내
|
|
ELSE
|
|
r_Money:=-8; --사전통지 기간 후
|
|
END IF;
|
|
ELSE
|
|
IF t_month > 0 AND t_month <= 1 THEN
|
|
r_Money:=0; --1차 과태료 기간후
|
|
ELSIF t_month <= 0 THEN
|
|
r_Money:=-8; --1차 과태료 기간 내
|
|
ELSIF t_month>1 THEN
|
|
IF t_round>60 THEN
|
|
r_Money :=60;
|
|
END IF;
|
|
r_Money:=t_round;
|
|
END IF;
|
|
END IF;
|
|
ELSIF v_Gubn = '4' THEN --초과일수(소수점 기준 달.일수)
|
|
SELECT TO_NUMBER(CASE WHEN t_SendDt> t_Delivery_Dt THEN
|
|
TRUNC(MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'),TO_DATE(t_Delivery_Dt,'YYYYMMDD')),0) ||'.'||
|
|
TRIM( TRUNC(TO_NUMBER('0.'||SUBSTR(TO_CHAR(MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'), TO_DATE(t_Delivery_Dt,'YYYYMMDD'))),
|
|
INSTR(TO_CHAR(MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'), TO_DATE(t_Delivery_Dt,'YYYYMMDD'))),'.')+1,10))*30.5,0)) END )
|
|
INTO r_overdate
|
|
FROM DUAL;
|
|
IF t_Motion >= '31' THEN
|
|
r_Money := r_OverDate;
|
|
ELSE
|
|
r_Money := 0;
|
|
END IF;
|
|
END IF;
|
|
ELSIF r_Money > 0 AND t_Motion <> '13' THEN
|
|
IF v_Gubn = '3' OR v_Gubn = '4' THEN
|
|
r_Money := 0;
|
|
END IF;
|
|
ELSIF t_Motion = '13' THEN
|
|
r_Money := 0;
|
|
END IF;
|
|
IF t_Notice = '99' AND t_Notice_Wrong ='01' THEN
|
|
r_Money := 0;
|
|
END IF;
|
|
RETURN r_Money;
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN -1;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_PENALTY_LAVY;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_PENALTY_LAVY
|
|
( v_year varchar2, v_seqno in number, v_motion_id varchar2 ) -- 권병조 작성 함수임.
|
|
RETURN NUMBER
|
|
IS
|
|
l_pass_amount PENALTY_DETAIL_INFO.PASS_AMOUNT%type;
|
|
l_fine_amount PENALTY_DETAIL_INFO.FINE_AMOUNT%type;
|
|
l_penalty_amt number(12);
|
|
ls_Sajun varchar(8);
|
|
ls_passdt varchar(8);
|
|
BEGIN
|
|
-- 사전고지 시작일자를 가져온다. 널인경우 '20140109'를 가져온다.
|
|
select nvl(col1, '20140109') into ls_Sajun from code_detail_info where code_id ='00' and sub_cd = '03';
|
|
-- 현재자료의 통행일자를 가져온다.
|
|
select year||month||day, pass_amount, fine_amount
|
|
into ls_passdt, l_pass_amount, l_fine_amount
|
|
from penalty_detail_info
|
|
where penalty_manage_year = v_Year
|
|
AND penalty_seqno = v_SeqNo;
|
|
-- 통행일자가 사전통지일 보다 작으면 (과거) (통행료 + 과태료) 그대로 적용
|
|
IF ( ls_passdt < ls_Sajun ) THEN
|
|
l_penalty_amt := (l_pass_amount + l_fine_amount) ;
|
|
-- 통행일자가 사전통지일 이후며, 사전통지분(2%)인 경우 (통행료 + 과태료)의 80% 적용
|
|
ELSIF ( ( ls_passdt >= ls_Sajun ) and (v_motion_id >= '20' and v_motion_id < '30' ) ) THEN
|
|
l_penalty_amt := ((l_pass_amount + l_fine_amount)*8)/10 ;
|
|
-- 통행일자가 사전통지일 이후며, 1차고지분(3%)인 경우 (통행료 + 과태료)의 100% 적용
|
|
ELSIF ( ( ls_passdt >= ls_Sajun ) and (v_motion_id >= '30' and v_motion_id < '40' ) ) THEN
|
|
l_penalty_amt := (l_pass_amount + l_fine_amount) ;
|
|
-- 통행일자가 사전통지일 이후며, 2차고지분(4%)인 경우 (통행료 + 과태료)의 105% 적용
|
|
ELSIF ( ( ls_passdt >= ls_Sajun ) and (v_motion_id >= '40' and v_motion_id < '50' ) ) THEN
|
|
l_penalty_amt := ((l_pass_amount + l_fine_amount)*105)/100 ;
|
|
-- 그외는 기본적으로 (통행료 + 과태료) 적용
|
|
ELSE
|
|
l_penalty_amt := (l_pass_amount + l_fine_amount) ;
|
|
END IF;
|
|
RETURN l_penalty_amt;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_PENALTY_GUM2;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_PENALTY_GUM2
|
|
(v_ksno Varchar2)
|
|
/* v_ksno 과세번호 */
|
|
RETURN VARCHAR
|
|
IS
|
|
ll_val NUMBER(7);
|
|
ll_val1 NUMBER(7);
|
|
BEGIN
|
|
|
|
ll_val := 0;
|
|
ll_val1 := 0;
|
|
|
|
FOR ll_i in 1..length(v_ksno)
|
|
LOOP
|
|
|
|
IF ( MOD(ll_i - 1, 3) + 1 ) = 1 then
|
|
ll_val1 := to_number(substr(v_ksno, ll_i, 1))*7;
|
|
--DBMS_OUTPUT.PUT_LINE(to_char(ll_val1)||' / '||to_char(ll_fact1));
|
|
|
|
ELSIF ( MOD(ll_i - 1, 3) + 1 ) = 2 then
|
|
ll_val1 := to_number(substr(v_ksno, ll_i, 1))*1;
|
|
--DBMS_OUTPUT.PUT_LINE(to_char(ll_val1)||' / '||to_char(ll_fact2));
|
|
ELSIF ( MOD(ll_i - 1, 3) + 1 ) = 3 then
|
|
ll_val1 := to_number(substr(v_ksno, ll_i, 1))*3;
|
|
--DBMS_OUTPUT.PUT_LINE(to_char(ll_val1)||' / '||to_char(ll_fact3));
|
|
END IF;
|
|
|
|
|
|
IF ll_val1 > 9 THEN
|
|
ll_val1 := to_number( substr(to_char(ll_val1), 1, 1) ) + to_number( substr(to_char(ll_val1), 2, 1) );
|
|
END IF;
|
|
|
|
ll_val := ll_val + ll_val1;
|
|
|
|
END LOOP;
|
|
|
|
ll_val := 10 - MOD(ll_val, 10);
|
|
|
|
IF ll_val = 10 THEN
|
|
ll_val := 0;
|
|
END IF;
|
|
|
|
|
|
RETURN to_char(ll_val);
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_PENALTY_DAY2_RENT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_PENALTY_DAY2_RENT
|
|
( v_year Varchar2, v_seqno In number )
|
|
RETURN VARCHAR2
|
|
IS
|
|
ls_fr_date VARCHAR2(8) := '';
|
|
ls_to_date VARCHAR2(8) := '';
|
|
ls_sysdate VARCHAR2(8);
|
|
ll_mm number(4);
|
|
ll_dd number(2);
|
|
ls_return VARCHAR2(40) := '';
|
|
ll_k number(4);
|
|
ls_Sajun varchar(8);
|
|
ls_Motion_id varchar(2);
|
|
BEGIN
|
|
-- 2014.1.15 이정훈 작성 최종 자료
|
|
ll_mm := 0;
|
|
ll_dd := 0;
|
|
ls_sysdate := TO_CHAR(SYSDATE, 'YYYYMMDD');
|
|
-- 사전고지 시작일자를 가져온다. -- 권병조 추가. 2014.3.3
|
|
--select col1 into ls_Sajun
|
|
-- from code_detail_info where code_id ='00' and sub_cd = '03';
|
|
SELECT MAX(B.MOTION_ID) INTO ls_Motion_id
|
|
FROM SEND_RENT_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo ;
|
|
IF SUBSTR(ls_Motion_id, 1, 1) = '2' THEN
|
|
ls_return := '0';
|
|
RETURN ls_return;
|
|
END IF;
|
|
SELECT count(1) into ll_k
|
|
FROM SEND_RENT_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
AND B.MOTION_ID in ('31','33','35','37');
|
|
IF ll_k > 0 THEN
|
|
SELECT TO_CHAR(B.DELIVERY_DATE, 'YYYYMMDD') INTO ls_to_date
|
|
FROM SEND_RENT_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
AND B.MOTION_ID in ('31','33','35','37')
|
|
AND B.MOTION_ID = ( SELECT MAX(MOTION_ID) FROM SEND_RENT_INFO X
|
|
WHERE X.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
|
|
AND X.PENALTY_SEQNO = B.PENALTY_SEQNO
|
|
AND X.MOTION_ID in ('31','33','35','37') )
|
|
AND B.SEND_NO = ( SELECT MAX(SEND_NO) FROM SEND_RENT_INFO X
|
|
WHERE X.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
|
|
AND X.PENALTY_SEQNO = B.PENALTY_SEQNO
|
|
AND X.MOTION_ID = B.MOTION_ID) ;
|
|
/* AND B.SEND_NO = ( SELECT MAX(SEND_NO) FROM SEND_INFO X
|
|
WHERE X.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
|
|
AND X.PENALTY_SEQNO = B.PENALTY_SEQNO
|
|
AND X.MOTION_ID = B.MOTION_ID ); 권병조 주석처리 및 수정. 2014.3.3 */
|
|
END IF;
|
|
if ls_to_date is null then
|
|
goto next_step;
|
|
end if;
|
|
if ls_sysdate <= ls_to_date then
|
|
goto next_step;
|
|
end if;
|
|
dbms_output.put_line('ls_sysdate : ' || ls_sysdate);
|
|
dbms_output.put_line('ls_to_date : ' || ls_to_date);
|
|
for i in 1..1000 loop
|
|
ls_fr_date := to_char(to_date(ls_to_date,'yyyymmdd') + 1, 'yyyymmdd');
|
|
SELECT to_char(add_months(to_date(ls_fr_date, 'yyyymmdd'), 1) - 1, 'yyyymmdd') into ls_to_date FROM DUAL;
|
|
if ls_sysdate < ls_to_date then
|
|
SELECT to_date(ls_sysdate, 'yyyymmdd') - to_date(ls_fr_date, 'yyyymmdd') + 1 into ll_dd FROM DUAL;
|
|
goto next_step;
|
|
end if;
|
|
ll_mm := ll_mm + 1;
|
|
if ll_mm > 50 then
|
|
dbms_output.put_line('ls_to_date : ' || ls_to_date || ', ll_mm : ' || ll_mm);
|
|
end if;
|
|
if ls_sysdate = ls_to_date then
|
|
goto next_step;
|
|
end if;
|
|
end loop;
|
|
<< next_step >>
|
|
if ll_mm != 0 then
|
|
ls_return := to_char(ll_mm) || '월';
|
|
end if;
|
|
if ll_dd != 0 then
|
|
ls_return := ls_return || to_char(ll_dd) || '일';
|
|
end if;
|
|
RETURN ls_return;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_PENALTY_DAY2;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_PENALTY_DAY2
|
|
( v_year Varchar2, v_seqno In number )
|
|
RETURN VARCHAR2
|
|
IS
|
|
ls_fr_date VARCHAR2(8) := '';
|
|
ls_to_date VARCHAR2(8) := '';
|
|
ls_sysdate VARCHAR2(8);
|
|
ll_mm number(4);
|
|
ll_dd number(2);
|
|
ls_return VARCHAR2(40) := '';
|
|
ll_k number(4);
|
|
ls_Sajun varchar(8);
|
|
ls_Motion_id varchar(2);
|
|
BEGIN
|
|
-- 2014.1.15 이정훈 작성 최종 자료
|
|
ll_mm := 0;
|
|
ll_dd := 0;
|
|
ls_sysdate := TO_CHAR(SYSDATE, 'YYYYMMDD');
|
|
-- 사전고지 시작일자를 가져온다. -- 권병조 추가. 2014.3.3
|
|
--select col1 into ls_Sajun
|
|
-- from code_detail_info where code_id ='00' and sub_cd = '03';
|
|
SELECT MAX(B.MOTION_ID) INTO ls_Motion_id
|
|
FROM SEND_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo ;
|
|
IF SUBSTR(ls_Motion_id, 1, 1) = '2' THEN
|
|
ls_return := '0';
|
|
RETURN ls_return;
|
|
END IF;
|
|
SELECT count(1) into ll_k
|
|
FROM SEND_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
AND B.MOTION_ID in ('31','33','35','37');
|
|
IF ll_k > 0 THEN
|
|
SELECT TO_CHAR(B.DELIVERY_DATE, 'YYYYMMDD') INTO ls_to_date
|
|
FROM SEND_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
AND B.MOTION_ID in ('31','33','35','37')
|
|
AND B.MOTION_ID = ( SELECT MAX(MOTION_ID) FROM SEND_INFO X
|
|
WHERE X.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
|
|
AND X.PENALTY_SEQNO = B.PENALTY_SEQNO
|
|
AND X.MOTION_ID in ('31','33','35','37') )
|
|
AND B.SEND_NO = ( SELECT MAX(SEND_NO) FROM SEND_INFO X
|
|
WHERE X.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
|
|
AND X.PENALTY_SEQNO = B.PENALTY_SEQNO
|
|
AND X.MOTION_ID = B.MOTION_ID) ;
|
|
/* AND B.SEND_NO = ( SELECT MAX(SEND_NO) FROM SEND_INFO X
|
|
WHERE X.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
|
|
AND X.PENALTY_SEQNO = B.PENALTY_SEQNO
|
|
AND X.MOTION_ID = B.MOTION_ID ); 권병조 주석처리 및 수정. 2014.3.3 */
|
|
END IF;
|
|
if ls_to_date is null then
|
|
goto next_step;
|
|
end if;
|
|
if ls_sysdate <= ls_to_date then
|
|
goto next_step;
|
|
end if;
|
|
dbms_output.put_line('ls_sysdate : ' || ls_sysdate);
|
|
dbms_output.put_line('ls_to_date : ' || ls_to_date);
|
|
for i in 1..1000 loop
|
|
ls_fr_date := to_char(to_date(ls_to_date,'yyyymmdd') + 1, 'yyyymmdd');
|
|
SELECT to_char(add_months(to_date(ls_fr_date, 'yyyymmdd'), 1) - 1, 'yyyymmdd') into ls_to_date FROM DUAL;
|
|
if ls_sysdate < ls_to_date then
|
|
SELECT to_date(ls_sysdate, 'yyyymmdd') - to_date(ls_fr_date, 'yyyymmdd') + 1 into ll_dd FROM DUAL;
|
|
goto next_step;
|
|
end if;
|
|
ll_mm := ll_mm + 1;
|
|
if ll_mm > 50 then
|
|
dbms_output.put_line('ls_to_date : ' || ls_to_date || ', ll_mm : ' || ll_mm);
|
|
end if;
|
|
if ls_sysdate = ls_to_date then
|
|
goto next_step;
|
|
end if;
|
|
end loop;
|
|
<< next_step >>
|
|
if ll_mm != 0 then
|
|
ls_return := to_char(ll_mm) || '월';
|
|
end if;
|
|
if ll_dd != 0 then
|
|
ls_return := ls_return || to_char(ll_dd) || '일';
|
|
end if;
|
|
RETURN ls_return;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_PENALTY_DAY;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_PENALTY_DAY
|
|
(v_year Varchar2, v_seqno In number, v_date1 In Varchar2, v_gubn varchar2)
|
|
/* v_date 자리에 *이 오면 오늘날짜 계산*/
|
|
RETURN VARCHAR2
|
|
IS
|
|
--t_Motion 진행코드, v_date1 납기일자, v_date2 입금일/혹은 고지취소일, t_Amount 과태료 금액
|
|
t_rate1 NUMBER(5,4);
|
|
t_rate2 NUMBER(5,4);
|
|
t_rate3 NUMBER(5,4);
|
|
t_month NUMBER(20,16);
|
|
t_round NUMBER;
|
|
r_money VARCHAR2(12);
|
|
r_overdate NUMBER;
|
|
t_Motion VARCHAR2(2);
|
|
t_Delivery_Dt VARCHAR2(8);
|
|
t_Amount NUMBER;
|
|
t_SendDt VARCHAR2(8);
|
|
t_Codedt VARCHAR2(8);
|
|
t_Notice VARCHAR2(2);
|
|
t_Notice_Wrong VARCHAR2(2);
|
|
t_Sajun VARCHAR2(8);
|
|
t_Date1 VARCHAR2(8);
|
|
BEGIN
|
|
SELECT LAVY_AMOUNT,
|
|
DECODE(v_date1,'*',TO_CHAR(SYSDATE,'YYYYMMDD'),v_date1),
|
|
A.MOTION_ID,
|
|
YEAR||MONTH||DAY,
|
|
NOTICE_ID,
|
|
NOTICE_WRONG_ID,
|
|
(SELECT COL1 FROM CODE_DETAIL_INFO WHERE CODE_ID='00' AND SUB_CD='03')
|
|
INTO t_Amount, t_SendDt, t_Motion, t_Codedt, t_Notice, t_Notice_Wrong, t_sajun
|
|
FROM PENALTY_DETAIL_INFO A
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo;
|
|
IF t_Motion < '31' AND t_Motion >= '21' THEN
|
|
t_Motion := '21';
|
|
ELSIF t_Motion < '21' AND t_Motion >= '11' THEN
|
|
t_Motion := '13';
|
|
ELSIF SYSDATE < TO_DATE(t_sajun,'YYYYMMDD') AND (t_Motion = '51' OR t_Motion='52') THEN
|
|
t_Motion := '31';
|
|
ELSIF SYSDATE >= TO_DATE(t_sajun,'YYYYMMDD') AND (t_Motion = '51' OR t_Motion='52') THEN
|
|
t_Motion := '21';
|
|
ELSIF t_Motion >='31' THEN
|
|
t_Motion := '31';
|
|
ELSIF t_Motion ='72' THEN
|
|
t_Motion := '31';
|
|
END IF;
|
|
IF trim( t_Motion) <> '13' THEN
|
|
/* 관리번호를 받아 진행코드 상태에 맞는 납기일자를 가져온다.*/
|
|
SELECT TO_CHAR(B.DELIVERY_DATE,'YYYYMMDD')
|
|
INTO t_Delivery_Dt
|
|
FROM PENALTY_DETAIL_INFO A,
|
|
SEND_INFO B
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo
|
|
AND B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
AND B.MOTION_ID = t_Motion;
|
|
SELECT TO_NUMBER(max(CASE WHEN SUB_CD = '03' THEN COL2 END)),
|
|
TO_NUMBER(max(CASE WHEN SUB_CD = '01' THEN COL2 END)),
|
|
TO_NUMBER(max( CASE WHEN SUB_CD = '02' THEN COL2 END)),
|
|
MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'),TO_DATE(t_Delivery_Dt,'YYYYMMDD')) ,
|
|
ceil(MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'),TO_DATE(t_Delivery_Dt,'YYYYMMDD')) -1)
|
|
INTO t_rate1, t_rate2, t_rate3,t_month, t_round
|
|
FROM CODE_DETAIL_INFO A
|
|
WHERE CODE_ID = '03'
|
|
AND COL1 = ( SELECT MAX(COL1)
|
|
FROM CODE_DETAIL_INFO B
|
|
WHERE A.CODE_ID=B.CODE_ID
|
|
AND A.SUB_CD=B.SUB_CD
|
|
AND COL1<= t_Codedt
|
|
AND USEYN='0');
|
|
IF v_Gubn = '4' THEN --초과일수(소수점 기준 달.일수)
|
|
SELECT CASE WHEN t_SendDt> t_Delivery_Dt THEN
|
|
TRUNC(MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'),TO_DATE(t_Delivery_Dt,'YYYYMMDD')),0) ||'.'||
|
|
TRIM( TRUNC(TO_NUMBER('0.'||SUBSTR(TO_CHAR(MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'), TO_DATE(t_Delivery_Dt,'YYYYMMDD'))),
|
|
INSTR(TO_CHAR(MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'), TO_DATE(t_Delivery_Dt,'YYYYMMDD'))),'.')+1,10))*30.5,0)) END
|
|
INTO r_Money
|
|
FROM DUAL;
|
|
IF t_Motion < '31' THEN
|
|
r_Money := '0';
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
RETURN r_Money;
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN -1;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_PENALTY_AMT_RENT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_PENALTY_AMT_RENT
|
|
( v_year varchar2, v_seqno in number, v_date varchar2, v_motion_id varchar2 )
|
|
RETURN NUMBER
|
|
IS
|
|
l_RECEIPT_AMOUNT RECEIPT_INFO.RECEIPT_AMOUNT%type;
|
|
l_LAVY_AMOUNT PENALTY_RENT_DETAIL_INFO.LAVY_AMOUNT%type;
|
|
l_MOTION_ID PENALTY_RENT_DETAIL_INFO.MOTION_ID%type;
|
|
l_fr_date varchar(8);
|
|
l_to_date varchar(8);
|
|
l_sysdate varchar(8);
|
|
l_penalty_amt number(12);
|
|
l_rate number(6,3);
|
|
-- mino_20180523 20170603일 과태료 0.05에서 0.03로 변경됨으로 코드값변경을 위해 변수 추가
|
|
l_pass_rate number(6,3);
|
|
-- mino_20180523
|
|
l_add number(12);
|
|
ll_k number(5);
|
|
ls_Sajun varchar(8);
|
|
|
|
-- 통행일 저장 변수 추가(가산금 변경으로 인해 필요함)_jhban_20170525
|
|
l_pass_date varchar(8);
|
|
|
|
-- 변수를 추가한다. --#### kbj
|
|
|
|
l_monday5 varchar(16);
|
|
l_month5 varchar(8);
|
|
l_day5 varchar(8);
|
|
l_amt5 number(12);
|
|
l_moncnt number(12);
|
|
BEGIN
|
|
-- 사전고지 시작일자를 가져온다.
|
|
select col1 into ls_Sajun from code_detail_info where code_id ='00' and sub_cd = '03';
|
|
dbms_output.put_line('ls_Sajun : ' || ls_Sajun);
|
|
-- l_sysdate := TO_CHAR(SYSDATE, 'YYYYMMDD');
|
|
l_sysdate := v_date;
|
|
--dbms_output.put_line('l_sysdate : ' || l_sysdate);
|
|
-- 기납부금액이 존재하는지 확인한다.
|
|
SELECT COUNT(1) INTO ll_k
|
|
FROM RECEIPT_INFO A
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo;
|
|
IF ll_k is null or ll_k = 0 THEN
|
|
l_RECEIPT_AMOUNT := 0;
|
|
ELSE
|
|
SELECT SUM(NVL(A.RECEIPT_AMOUNT,0))
|
|
INTO l_RECEIPT_AMOUNT
|
|
FROM RECEIPT_INFO A
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo;
|
|
END IF;
|
|
IF NVL(l_RECEIPT_AMOUNT, 0) = 0 THEN
|
|
l_RECEIPT_AMOUNT := 0;
|
|
END IF;
|
|
--dbms_output.put_line('l_RECEIPT_AMOUNT : ' || l_RECEIPT_AMOUNT);
|
|
--사전고지, 1,2차 고지가 아닌 데이터는 LAVY_AMOUNT에서 금액을 가져와 계산하도록 하기(압류 건의 금액 계산 오류 때문)_jhban_20140924
|
|
-- IF (l_MOTION_ID >= '20' AND l_MOTION_ID < '30') OR ( l_MOTION_ID >='30' AND l_MOTION_ID < '40') OR (l_MOTION_ID >='40' AND l_MOTION_ID < '47' ) THEN
|
|
SELECT NVL(A.PASS_AMOUNT, 0) + NVL(A.FINE_AMOUNT, 0), A.MOTION_ID, to_char(A.ALTER_DATE,'yyyymmdd'), A.YEAR || A.MONTH || A.DAY -- 통행일 추가함_jhban_20170525
|
|
INTO l_LAVY_AMOUNT, l_MOTION_ID, l_fr_date, l_pass_date
|
|
FROM PENALTY_RENT_DETAIL_INFO A
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo;
|
|
-- ELSIF l_MOTION_ID = '71' OR l_MOTION_ID = '72' THEN
|
|
-- SELECT NVL(A.LAVY_AMOUNT, 0), A.MOTION_ID, A.YEAR || A.MONTH || A.DAY
|
|
-- INTO l_LAVY_AMOUNT, l_MOTION_ID, l_fr_date
|
|
-- FROM PENALTY_DETAIL_INFO A
|
|
-- WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
-- AND A.PENALTY_SEQNO = v_SeqNo;
|
|
-- END IF;
|
|
--dbms_output.put_line('l_LAVY_AMOUNT : ' || l_LAVY_AMOUNT);
|
|
IF l_MOTION_ID >= '11' AND l_MOTION_ID < '20' THEN
|
|
l_MOTION_ID := '13';
|
|
ELSIF l_MOTION_ID >= '20' AND l_MOTION_ID < '30' OR l_MOTION_ID = '51'THEN
|
|
l_MOTION_ID := '21';
|
|
--ELSIF l_MOTION_ID = '54' THEN -- 이의신청후 완료처리에 의한 고지취소시
|
|
ELSIF l_MOTION_ID = '51' OR l_MOTION_ID = '52' THEN --이의신청 건 과태료 금액 변경때문에 설정함 54번 코드가 없어서 다시 지정해 줌_jhban_20151023
|
|
l_receipt_amount := 0;
|
|
l_penalty_amt := 0;
|
|
goto next_step;
|
|
ELSE
|
|
--IF l_sysdate < ls_Sajun AND ( l_MOTION_ID = '51' OR l_MOTION_ID =' 52' ) THEN -- 권병조 수정.
|
|
IF l_fr_date < ls_Sajun THEN --AND ( l_MOTION_ID = '51' OR l_MOTION_ID =' 52' )
|
|
l_MOTION_ID := '31';
|
|
--ELSIF l_sysdate >= ls_Sajun AND ( l_MOTION_ID = '51' OR l_MOTION_ID = '52' ) THEN -- 금액이 이상하게 나오는 경우가 있어 조건 없앰(아래 이어서)
|
|
--ELSIF l_fr_date >= ls_Sajun AND ( l_MOTION_ID = '51' OR l_MOTION_ID = '52' ) THEN -- 1차 고지 발송한 후, 민원 접수 코드인데 금액이 8000원으로 나옴_jhban_20140926
|
|
-- l_MOTION_ID := '21';
|
|
--ELSIF l_fr_date < ls_Sajun THEN --통행일자가 사전고지일자보다 적으면 MOTION_ID를 '31'로 주어 과태료가 가산되지 않게 함_jhban_20140716
|
|
-- l_MOTION_ID := '31';
|
|
ELSIF l_MOTION_ID >='30' AND l_MOTION_ID < '40' THEN
|
|
l_MOTION_ID := '31';
|
|
|
|
ELSIF l_MOTION_ID = '45' THEN --2차반송고지서 생성할때 과태료 금액을 0.5% 가산하여 계산하는 오류가 있어서 2차반복고지발송때는 10,500원으로 표시되도록 함_jhban_20151027
|
|
l_MOTION_ID := '45';
|
|
|
|
ELSIF l_MOTION_ID >='40' AND l_MOTION_ID < '47' THEN
|
|
l_MOTION_ID := '41'; --2차 고지 Motion_id가 설정되어 있지 않아 조건 추가_jhban_20140627
|
|
|
|
ELSIF l_MOTION_ID ='47' THEN --- 47추가 --#### kbj
|
|
l_MOTION_ID := '47';
|
|
|
|
|
|
ELSIF l_MOTION_ID = '71' OR l_MOTION_ID = '72' THEN
|
|
l_MOTION_ID := '41'; --압류 및 촉탁(71번코드)상태일때 과태료 금액 표시가 제대로 되도록 수정_jhban_20140630
|
|
END IF;
|
|
END IF;
|
|
SELECT COUNT(1) INTO ll_k
|
|
FROM SEND_RENT_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
--AND B.MOTION_ID in ('21','23','25','27') -- 권병조 주석처리. 2014.2.24
|
|
AND ROWNUM = 1;
|
|
-- 사전고지 발송 건수가 존재하면 납부기한을 가져온다...
|
|
IF ll_k > 0 THEN
|
|
SELECT TO_CHAR(MAX(B.DELIVERY_DATE), 'YYYYMMDD')
|
|
INTO l_to_date
|
|
FROM SEND_RENT_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
--AND B.MOTION_ID in ('21','23','25','27') -- 권병조 주석처리. 2014.2.24
|
|
AND B.SEND_NO = ( SELECT MAX(SEND_NO) FROM SEND_RENT_INFO X
|
|
WHERE X.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
|
|
AND X.PENALTY_SEQNO = B.PENALTY_SEQNO
|
|
AND X.MOTION_ID = B.MOTION_ID );
|
|
ELSE
|
|
l_to_date := '';
|
|
END IF;
|
|
dbms_output.put_line('1.l_fr_date : ' || l_fr_date);
|
|
dbms_output.put_line('1.l_to_date : ' || l_to_date);
|
|
-- dbms_output.put_line('v_motion_id : ' || v_motion_id);
|
|
-- IF v_motion_id is not null THEN
|
|
-- select to_number(col2) into l_rate from code_detail_info where code_id ='01' and sub_cd = substr(v_motion_id, 1, 1) || '1';
|
|
-- IF nvl(l_rate, 0) = 0 THEN
|
|
-- l_rate := 1;
|
|
-- END IF;
|
|
-- l_penalty_amt := l_LAVY_AMOUNT * l_rate;
|
|
-- goto next_step;
|
|
-- END IF;
|
|
-- 사전고지일자가 없거나 현재일자가 사전고지일자 기간중일 경우 20%를 감면해 준다.
|
|
select to_number(col2) * 10 into l_rate from code_detail_info where code_id ='01' and sub_cd = '21';
|
|
l_penalty_amt := l_LAVY_AMOUNT * l_rate / 10;
|
|
dbms_output.put_line('사전 : l_fr_date : ' || l_fr_date);
|
|
dbms_output.put_line('사전 : l_to_date : ' || l_to_date);
|
|
dbms_output.put_line('사전 : l_penalty_amt : ' || l_penalty_amt);
|
|
dbms_output.put_line('사전 : l_rate : ' || l_rate);
|
|
dbms_output.put_line('v_motion_id : ' || v_motion_id);
|
|
-- IF v_motion_id < '30' THEN -- 권병조 수정. 2014.2.24
|
|
IF l_MOTION_ID < '30' THEN
|
|
goto next_step;
|
|
END IF;
|
|
-- 사전고지 발송전이면 20% 감면된 금액을 보여준다.
|
|
IF l_to_date is null THEN
|
|
goto next_step;
|
|
END IF;
|
|
-- 기준일자가 사전고지 납부기한중에 있으면 20% 감면된 금액을 보여준다.
|
|
--IF ( l_sysdate >= l_fr_date AND l_sysdate <= l_to_date ) THEN -- 권병조 수정. 2014.2.24
|
|
IF ( (l_sysdate >= l_fr_date) AND (l_sysdate <= l_to_date) AND (l_MOTION_ID < '30') ) THEN
|
|
goto next_step;
|
|
END IF;
|
|
-- 기준일자가 사전고지 납부기한을 초과하면 100% 과태료 금액을 보여준다.
|
|
l_penalty_amt := l_LAVY_AMOUNT;
|
|
l_fr_date := to_char(to_date(l_to_date,'yyyymmdd') + 1, 'yyyymmdd');
|
|
SELECT COUNT(1) INTO ll_k
|
|
FROM SEND_RENT_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
AND B.MOTION_ID in ('31','33','35','37');
|
|
-- 1차납부고지 발송 건수가 존재하면 납부기한을 가져온다...
|
|
IF ll_k > 0 THEN
|
|
-- SELECT NVL(TO_CHAR(B.DELIVERY_DATE, 'YYYYMMDD'), ' ') DELIVERY_DATE INTO l_to_date
|
|
SELECT NVL(TO_CHAR(MAX(B.DELIVERY_DATE), 'YYYYMMDD'), ' ') DELIVERY_DATE INTO l_to_date
|
|
FROM SEND_RENT_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
AND B.MOTION_ID in ('31','33','35','37')
|
|
AND B.SEND_NO = ( SELECT MAX(SEND_NO) FROM SEND_RENT_INFO X
|
|
WHERE X.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
|
|
AND X.PENALTY_SEQNO = B.PENALTY_SEQNO
|
|
AND X.MOTION_ID = B.MOTION_ID );
|
|
ELSE
|
|
-- 1차납부고지 발송건수가 존재하지 않으면 사전고지 납부기간 후이므로 100% 과태료 금액을 보여준다.
|
|
goto next_step;
|
|
END IF;
|
|
dbms_output.put_line('1차 : l_fr_date : ' || l_fr_date);
|
|
dbms_output.put_line('1차 : l_to_date : ' || l_to_date);
|
|
-- select to_char(add_months(to_date(l_fr_date, 'yyyymmdd'), ( to_number(col3) / 30 )) - 1, 'yyyymmdd')
|
|
-- into l_to_date
|
|
-- from code_detail_info
|
|
-- where code_id ='01' and sub_cd = '31';
|
|
--IF l_sysdate <= l_to_date THEN -- 권병조 수정. 2014.2.24
|
|
-- IF (l_sysdate <= l_to_date) or (ls_Sajun > l_fr_date) THEN -- 권병조 수정2. 2014.2.24
|
|
-- 통행일자가 사전고지개시일 이전 이거나 사전고지개시일 이후이고 1차고지이면 100% 적용.
|
|
IF ( (ls_Sajun <= l_fr_date) AND (substr(l_MOTION_ID, 1, 1) = '3') ) or (ls_Sajun > l_fr_date) THEN
|
|
-- 1차고지 기간이면 100% 고지한다.
|
|
goto next_step;
|
|
END IF;
|
|
-- 통행일자가 사전고지개시일 이전 이거나 사전고지개시일 이후이고 2차고지이면 100% 적용._jhban_20140701
|
|
--IF ( (ls_Sajun <= l_fr_date) AND (substr(l_MOTION_ID, 1, 1) = '4') ) or (ls_Sajun > l_fr_date) THEN
|
|
-- 2차고지 기간이면 100% 고지한다.
|
|
--goto next_step;
|
|
--END IF;
|
|
-- 현재상태가 1차발송 상태이면 100% 과태료 금액을 보여준다. l_MOTION_ID
|
|
-- IF v_motion_id < '40' THEN -- 권병조수정. 2014.2.24
|
|
IF l_MOTION_ID < '40' THEN
|
|
goto next_step;
|
|
END IF;
|
|
-- mino_20180523 20170603일 과태료 0.05에서 0.03로 변경됨으로 코드값변경을 위해 변수 추가
|
|
select to_number(col3), to_number(col2), to_number(col4) into l_add, l_rate, l_pass_rate from code_detail_info where code_id ='01' and sub_cd = '41';
|
|
l_fr_date := to_char(to_date(l_to_date,'yyyymmdd') + 1, 'yyyymmdd');
|
|
l_to_date := to_char(add_months(to_date(l_fr_date,'yyyymmdd'), 1) - 1, 'yyyymmdd');
|
|
|
|
IF (l_pass_date >= '20170603') THEN -- 3%
|
|
l_penalty_amt := l_penalty_amt + ( l_LAVY_AMOUNT * l_pass_rate );
|
|
ELSE --5%
|
|
l_penalty_amt := l_penalty_amt + ( l_LAVY_AMOUNT * l_rate );
|
|
END IF;
|
|
-- mino_20180523
|
|
|
|
dbms_output.put_line('2차 : l_fr_date : ' || l_fr_date);
|
|
dbms_output.put_line('2차 : l_to_date : ' || l_to_date);
|
|
dbms_output.put_line('2차 : l_penalty_amt : ' || l_penalty_amt);
|
|
dbms_output.put_line('2차 : l_rate : ' || l_rate);
|
|
IF l_sysdate <= l_to_date THEN
|
|
-- 1차고지 기간이면 100% 고지한다.
|
|
goto next_step;
|
|
END IF;
|
|
-- 현재상태가 2차발송 상태이면 5% 과금된 과태료 금액을 보여준다. l_MOTION_ID
|
|
-- IF v_motion_id < '50' THEN -- 권병조수정. 2014.2.24
|
|
|
|
-- 2차고지 후 납부기한이 지난 데이터는 과태료가 1.2%가산 되어야 하는데 이 조건때문에 되지 않았음...임시로 막아놓음_jhban_20140723
|
|
-------------------------------------------------------------------------------------------------------------jhban_20140723
|
|
IF l_MOTION_ID < '47' OR l_sysdate > l_to_date THEN
|
|
goto next_step;
|
|
END IF;
|
|
|
|
dbms_output.put_line('l_sysdate : ' || l_sysdate);
|
|
select to_number(col3), to_number(col2) into l_add, l_rate from code_detail_info where code_id ='01' and sub_cd = '47';
|
|
l_fr_date := to_char(to_date(l_to_date,'yyyymmdd') + 1, 'yyyymmdd');
|
|
for i in 1..60 loop
|
|
l_to_date := to_char(add_months(to_date(l_fr_date,'yyyymmdd'), (l_add / 30)) - 1, 'yyyymmdd');
|
|
dbms_output.put_line(l_fr_date || ' ~ ' || l_to_date);
|
|
-- l_penalty_amt := l_penalty_amt + ( l_LAVY_AMOUNT * l_rate );
|
|
dbms_output.put_line('l_fr_date : ' || l_fr_date);
|
|
dbms_output.put_line('l_to_date : ' || l_to_date);
|
|
dbms_output.put_line('l_penalty_amt : ' || l_penalty_amt || ' (' || i || ')');
|
|
IF l_sysdate >= l_fr_date AND l_sysdate <= l_to_date THEN
|
|
goto next_step;
|
|
END IF;
|
|
l_fr_date := to_char(to_date(l_to_date,'yyyymmdd') + 1, 'yyyymmdd');
|
|
end loop;
|
|
<< next_step >>
|
|
dbms_output.put_line('l_RECEIPT_AMOUNT : ' || l_RECEIPT_AMOUNT);
|
|
dbms_output.put_line('l_penalty_amt : ' || l_penalty_amt);
|
|
|
|
|
|
IF l_RECEIPT_AMOUNT > 0 THEN
|
|
l_penalty_amt := l_RECEIPT_AMOUNT;
|
|
|
|
-- 여기부터 추가 --#### kbj
|
|
ELSIF (l_MOTION_ID = '47') OR (l_MOTION_ID = '41' AND l_fr_date >= ls_Sajun) THEN
|
|
l_monday5 := fun_get_penalty_day2_rent(v_year, v_seqno);
|
|
SELECT CASE WHEN INSTR(l_monday5, '월') <> 0 THEN SUBSTR(l_monday5, 1,(instr(l_monday5, '월') - 1))
|
|
ELSE '0' END,
|
|
CASE WHEN INSTR(l_monday5, '일') = 0 THEN '0'
|
|
WHEN (INSTR(l_monday5, '월') = 0 and instr(l_monday5, '일') <> 0)
|
|
THEN SUBSTR(l_monday5, 1,(INSTR(l_monday5, '일') - 1))
|
|
ELSE SUBSTR(l_monday5, (INSTR(l_monday5, '월') + 2),(INSTR(l_monday5, '일') - (INSTR(l_monday5, '월')) - 2))
|
|
END
|
|
INTO l_month5, l_day5
|
|
FROM DUAL;
|
|
|
|
IF l_day5 = '0' THEN
|
|
l_moncnt := to_number(l_month5);
|
|
ELSIF l_day5 > '0' THEN
|
|
l_moncnt := to_number(l_month5) + 1;
|
|
END IF;
|
|
dbms_output.put_line('DELAY MONTH , DAY > CNT : ' || l_month5 || ' , ' || l_day5 || ' > ' || l_moncnt);
|
|
|
|
-- 일반차량(10000), 경차 및 감면차량( 5000 )
|
|
-- 20170603 통행한 차량은 가산금이 3%가 되도록 해야 해서 새로 추가함_jhban_20170525
|
|
IF (l_pass_date >= '20170603') THEN -- 3%
|
|
|
|
IF (l_moncnt = 0) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000;
|
|
ELSIF (l_moncnt = 0) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000 + 150;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000 + 300;
|
|
ELSIF (l_moncnt > 1) AND l_penalty_amt > 5000 AND l_penalty_amt < 10000 THEN
|
|
l_penalty_amt := 5000 + 150 + 60*(l_moncnt - 1);
|
|
--l_penalty_amt := 5000 + 150;
|
|
ELSIF (l_moncnt > 1) AND l_penalty_amt > 10000 THEN
|
|
l_penalty_amt := 10000 + 300 + 120*(l_moncnt - 1);
|
|
--l_penalty_amt := 10000 + 300;
|
|
END IF;
|
|
|
|
ELSIF (l_pass_date < '20170603') THEN -- 5%
|
|
|
|
IF (l_moncnt = 0) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000;
|
|
ELSIF (l_moncnt = 0) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000 + 250;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000 + 500;
|
|
ELSIF (l_moncnt > 1) AND l_penalty_amt > 5000 AND l_penalty_amt < 10000 THEN
|
|
l_penalty_amt := 5000 + 250 + 60*(l_moncnt - 1);
|
|
--l_penalty_amt := 5000 + 250;
|
|
ELSIF (l_moncnt > 1) AND l_penalty_amt > 10000 THEN
|
|
l_penalty_amt := 10000 + 500 + 120*(l_moncnt - 1);
|
|
--l_penalty_amt := 10000 + 500;
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
/* 20170603 통행한 차량은 가산금이 3%가 되도록 해야 해서 아래꺼 막고 위에 새로 추가함_jhban_20170525
|
|
IF (l_moncnt = 0) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000;
|
|
ELSIF (l_moncnt = 0) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000 + 250;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000 + 500;
|
|
ELSIF (l_moncnt > 1) AND l_penalty_amt > 5000 AND l_penalty_amt < 10000 THEN
|
|
l_penalty_amt := 5000 + 250 + 60*(l_moncnt - 1);
|
|
--l_penalty_amt := 5000 + 250;
|
|
ELSIF (l_moncnt > 1) AND l_penalty_amt > 10000 THEN
|
|
l_penalty_amt := 10000 + 500 + 120*(l_moncnt - 1);
|
|
--l_penalty_amt := 10000 + 500;
|
|
END IF;
|
|
*/
|
|
|
|
|
|
-- 요기까지 추가 . --#### kbj
|
|
|
|
ELSE
|
|
l_penalty_amt := l_penalty_amt;
|
|
END IF;
|
|
IF l_penalty_amt < 0 THEN
|
|
l_penalty_amt := 0;
|
|
END IF;
|
|
RETURN l_penalty_amt;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_PENALTY_AMT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_PENALTY_AMT
|
|
( v_year varchar2, v_seqno in number, v_date varchar2, v_motion_id varchar2 )
|
|
RETURN NUMBER
|
|
IS
|
|
l_RECEIPT_AMOUNT RECEIPT_INFO.RECEIPT_AMOUNT%type;
|
|
l_LAVY_AMOUNT PENALTY_DETAIL_INFO.LAVY_AMOUNT%type;
|
|
l_MOTION_ID PENALTY_DETAIL_INFO.MOTION_ID%type;
|
|
l_fr_date varchar(8);
|
|
l_to_date varchar(8);
|
|
l_sysdate varchar(8);
|
|
l_penalty_amt number(12);
|
|
l_rate number(6,3);
|
|
-- mino_20180523 20170603일 과태료 0.05에서 0.03로 변경됨으로 코드값변경을 위해 변수 추가
|
|
l_pass_rate number(6,3);
|
|
-- mino_20180523
|
|
l_add number(12);
|
|
ll_k number(5);
|
|
ls_Sajun varchar(8);
|
|
ll_civil number(1);
|
|
|
|
-- 변수를 추가한다. --#### kbj
|
|
|
|
l_monday5 varchar(8);
|
|
l_month5 varchar(8);
|
|
l_day5 varchar(8);
|
|
l_amt5 number(12);
|
|
l_moncnt number(12);
|
|
|
|
-- 통행일자 변수 추가_jhban_20170720
|
|
l_pass_date varchar(8);
|
|
BEGIN
|
|
-- 사전고지 시작일자를 가져온다.
|
|
select col1 into ls_Sajun from code_detail_info where code_id ='00' and sub_cd = '03';
|
|
dbms_output.put_line('ls_Sajun : ' || ls_Sajun);
|
|
-- l_sysdate := TO_CHAR(SYSDATE, 'YYYYMMDD');
|
|
l_sysdate := v_date;
|
|
--dbms_output.put_line('l_sysdate : ' || l_sysdate);
|
|
-- 기납부금액이 존재하는지 확인한다.
|
|
SELECT COUNT(1) INTO ll_k
|
|
FROM RECEIPT_INFO A
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo;
|
|
IF ll_k is null or ll_k = 0 THEN
|
|
l_RECEIPT_AMOUNT := 0;
|
|
ELSE
|
|
SELECT SUM(NVL(A.RECEIPT_AMOUNT,0))
|
|
INTO l_RECEIPT_AMOUNT
|
|
FROM RECEIPT_INFO A
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo;
|
|
END IF;
|
|
|
|
SELECT COUNT(1)
|
|
INTO ll_civil
|
|
FROM CIVIL_ACCEPT_INFO A
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo
|
|
AND A.PROCESS_YN = '0';
|
|
|
|
IF ll_civil > 0 THEN
|
|
goto next_step2;
|
|
END IF;
|
|
|
|
|
|
IF NVL(l_RECEIPT_AMOUNT, 0) = 0 THEN
|
|
l_RECEIPT_AMOUNT := 0;
|
|
END IF;
|
|
--dbms_output.put_line('l_RECEIPT_AMOUNT : ' || l_RECEIPT_AMOUNT);
|
|
--사전고지, 1,2차 고지가 아닌 데이터는 LAVY_AMOUNT에서 금액을 가져와 계산하도록 하기(압류 건의 금액 계산 오류 때문)_jhban_20140924
|
|
-- IF (l_MOTION_ID >= '20' AND l_MOTION_ID < '30') OR ( l_MOTION_ID >='30' AND l_MOTION_ID < '40') OR (l_MOTION_ID >='40' AND l_MOTION_ID < '47' ) THEN
|
|
SELECT NVL(A.PASS_AMOUNT, 0) + NVL(A.FINE_AMOUNT, 0), A.MOTION_ID, A.YEAR || A.MONTH || A.DAY
|
|
INTO l_LAVY_AMOUNT, l_MOTION_ID, l_fr_date
|
|
FROM PENALTY_DETAIL_INFO A
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo;
|
|
-- ELSIF l_MOTION_ID = '71' OR l_MOTION_ID = '72' THEN
|
|
-- SELECT NVL(A.LAVY_AMOUNT, 0), A.MOTION_ID, A.YEAR || A.MONTH || A.DAY
|
|
-- INTO l_LAVY_AMOUNT, l_MOTION_ID, l_fr_date
|
|
-- FROM PENALTY_DETAIL_INFO A
|
|
-- WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
-- AND A.PENALTY_SEQNO = v_SeqNo;
|
|
-- END IF;
|
|
--dbms_output.put_line('l_LAVY_AMOUNT : ' || l_LAVY_AMOUNT);
|
|
|
|
l_pass_date := l_fr_date;
|
|
|
|
IF l_MOTION_ID >= '11' AND l_MOTION_ID < '20' THEN
|
|
l_MOTION_ID := '13';
|
|
ELSIF l_MOTION_ID >= '20' AND l_MOTION_ID < '30' THEN --OR l_MOTION_ID = '51'
|
|
l_MOTION_ID := '21';
|
|
--ELSIF l_MOTION_ID = '54' THEN -- 이의신청후 완료처리에 의한 고지취소시
|
|
ELSIF l_MOTION_ID = '51' OR l_MOTION_ID = '52' THEN --이의신청 건 과태료 금액 변경때문에 설정함 54번 코드가 없어서 다시 지정해 줌_jhban_20151023
|
|
l_receipt_amount := 0;
|
|
l_penalty_amt := 0;
|
|
goto next_step;
|
|
ELSE
|
|
--IF l_sysdate < ls_Sajun AND ( l_MOTION_ID = '51' OR l_MOTION_ID =' 52' ) THEN -- 권병조 수정.
|
|
IF l_fr_date < ls_Sajun THEN --AND ( l_MOTION_ID = '51' OR l_MOTION_ID =' 52' ) --> 사전에서 민원으로 코드가 바뀔경우 과태료가 8000원에서 10000원으로 변경되는 경우가 있음_jhban_20141125
|
|
l_MOTION_ID := '31';
|
|
--ELSIF l_sysdate >= ls_Sajun THEN --AND ( l_MOTION_ID = '51' OR l_MOTION_ID = '52' ) -- 금액이 이상하게 나오는 경우가 있어 조건 없앰(아래에)
|
|
--ELSIF l_fr_date >= ls_Sajun AND ( l_MOTION_ID = '51' OR l_MOTION_ID = '52' ) THEN -- 1차 고지 발송한 후, 민원 접수 코드인데 금액이 8000원으로 나옴_jhban_20140926
|
|
--l_MOTION_ID := '31';
|
|
-- ELSIF l_fr_date < ls_Sajun THEN --통행일자가 사전고지일자보다 적으면 MOTION_ID를 '31'로 주어 과태료가 가산되지 않게 함_jhban_20140716
|
|
-- l_MOTION_ID := '31';
|
|
ELSIF l_MOTION_ID >='30' AND l_MOTION_ID < '40' THEN
|
|
l_MOTION_ID := '31';
|
|
|
|
--ELSIF l_MOTION_ID = '45' THEN --2차반송고지서 생성할때 과태료 금액을 0.5% 가산하여 계산하는 오류가 있어서 2차반복고지발송때는 10,500원으로 표시되도록 함_jhban_20151027
|
|
-- l_MOTION_ID := '45';
|
|
|
|
ELSIF l_MOTION_ID >='40' AND l_MOTION_ID < '47' THEN
|
|
l_MOTION_ID := '41'; --2차 고지 Motion_id가 설정되어 있지 않아 조건 추가_jhban_20140627
|
|
|
|
|
|
|
|
|
|
ELSIF l_MOTION_ID ='47' THEN --- 47추가 --#### kbj
|
|
l_MOTION_ID := '47';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ELSIF l_MOTION_ID = '71' OR l_MOTION_ID = '72' THEN
|
|
l_MOTION_ID := '41'; --압류 및 촉탁(71번코드)상태일때 과태료 금액 표시가 제대로 되도록 수정_jhban_20140630
|
|
dbms_output.put_line('압류 및 촉탁(71번코드)상태일때 과태료 금액 표시가 제대로 되도록 : ' || l_MOTION_ID || ' TO 41');
|
|
END IF;
|
|
END IF;
|
|
|
|
dbms_output.put_line('1.l_MOTION_ID : ' || l_MOTION_ID);
|
|
|
|
SELECT COUNT(1) INTO ll_k
|
|
FROM SEND_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
--AND B.MOTION_ID in ('21','23','25','27') -- 권병조 주석처리. 2014.2.24
|
|
AND ROWNUM = 1;
|
|
-- 사전고지 발송 건수가 존재하면 납부기한을 가져온다...
|
|
IF ll_k > 0 THEN
|
|
SELECT TO_CHAR(MAX(B.DELIVERY_DATE), 'YYYYMMDD')
|
|
INTO l_to_date
|
|
FROM SEND_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
--AND B.MOTION_ID in ('21','23','25','27') -- 권병조 주석처리. 2014.2.24
|
|
AND B.SEND_NO = ( SELECT MAX(SEND_NO) FROM SEND_INFO X
|
|
WHERE X.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
|
|
AND X.PENALTY_SEQNO = B.PENALTY_SEQNO
|
|
AND X.MOTION_ID = B.MOTION_ID );
|
|
ELSE
|
|
l_to_date := '';
|
|
END IF;
|
|
dbms_output.put_line('1.l_fr_date : ' || l_fr_date);
|
|
dbms_output.put_line('1.l_to_date : ' || l_to_date);
|
|
-- dbms_output.put_line('v_motion_id : ' || v_motion_id);
|
|
-- IF v_motion_id is not null THEN
|
|
-- select to_number(col2) into l_rate from code_detail_info where code_id ='01' and sub_cd = substr(v_motion_id, 1, 1) || '1';
|
|
-- IF nvl(l_rate, 0) = 0 THEN
|
|
-- l_rate := 1;
|
|
-- END IF;
|
|
-- l_penalty_amt := l_LAVY_AMOUNT * l_rate;
|
|
-- goto next_step;
|
|
-- END IF;
|
|
-- 사전고지일자가 없거나 현재일자가 사전고지일자 기간중일 경우 20%를 감면해 준다.
|
|
select to_number(col2) * 10 into l_rate from code_detail_info where code_id ='01' and sub_cd = '21';
|
|
l_penalty_amt := l_LAVY_AMOUNT * l_rate / 10;
|
|
dbms_output.put_line('사전 : l_fr_date : ' || l_fr_date);
|
|
dbms_output.put_line('사전 : l_to_date : ' || l_to_date);
|
|
dbms_output.put_line('사전 : l_penalty_amt : ' || l_penalty_amt);
|
|
dbms_output.put_line('사전 : l_rate : ' || l_rate);
|
|
dbms_output.put_line('v_motion_id : ' || v_motion_id);
|
|
-- IF v_motion_id < '30' THEN -- 권병조 수정. 2014.2.24
|
|
IF l_MOTION_ID < '30' THEN
|
|
goto next_step;
|
|
END IF;
|
|
-- 사전고지 발송전이면 20% 감면된 금액을 보여준다.
|
|
IF l_to_date is null THEN
|
|
goto next_step;
|
|
END IF;
|
|
-- 기준일자가 사전고지 납부기한중에 있으면 20% 감면된 금액을 보여준다.
|
|
--IF ( l_sysdate >= l_fr_date AND l_sysdate <= l_to_date ) THEN -- 권병조 수정. 2014.2.24
|
|
IF ( (l_sysdate >= l_fr_date) AND (l_sysdate <= l_to_date) AND (l_MOTION_ID < '30') ) THEN
|
|
goto next_step;
|
|
END IF;
|
|
-- 기준일자가 사전고지 납부기한을 초과하면 100% 과태료 금액을 보여준다.
|
|
dbms_output.put_line('l_penalty_amt : ' || l_penalty_amt);
|
|
dbms_output.put_line('l_LAVY_AMOUNT : ' || l_LAVY_AMOUNT);
|
|
l_penalty_amt := l_LAVY_AMOUNT;
|
|
l_fr_date := to_char(to_date(l_to_date,'yyyymmdd') + 1, 'yyyymmdd');
|
|
SELECT COUNT(1) INTO ll_k
|
|
FROM SEND_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
AND B.MOTION_ID in ('31','33','35','37');
|
|
-- 1차납부고지 발송 건수가 존재하면 납부기한을 가져온다...
|
|
IF ll_k > 0 THEN
|
|
-- SELECT NVL(TO_CHAR(B.DELIVERY_DATE, 'YYYYMMDD'), ' ') DELIVERY_DATE INTO l_to_date
|
|
SELECT NVL(TO_CHAR(MAX(B.DELIVERY_DATE), 'YYYYMMDD'), ' ') DELIVERY_DATE INTO l_to_date
|
|
FROM SEND_INFO B
|
|
WHERE B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
AND B.MOTION_ID in ('31','33','35','37')
|
|
AND B.SEND_NO = ( SELECT MAX(SEND_NO) FROM SEND_INFO X
|
|
WHERE X.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
|
|
AND X.PENALTY_SEQNO = B.PENALTY_SEQNO
|
|
AND X.MOTION_ID = B.MOTION_ID );
|
|
ELSE
|
|
-- 1차납부고지 발송건수가 존재하지 않으면 사전고지 납부기간 후이므로 100% 과태료 금액을 보여준다.
|
|
goto next_step;
|
|
END IF;
|
|
dbms_output.put_line('1차 : l_fr_date : ' || l_fr_date);
|
|
dbms_output.put_line('1차 : l_to_date : ' || l_to_date);
|
|
-- select to_char(add_months(to_date(l_fr_date, 'yyyymmdd'), ( to_number(col3) / 30 )) - 1, 'yyyymmdd')
|
|
-- into l_to_date
|
|
-- from code_detail_info
|
|
-- where code_id ='01' and sub_cd = '31';
|
|
--IF l_sysdate <= l_to_date THEN -- 권병조 수정. 2014.2.24
|
|
-- IF (l_sysdate <= l_to_date) or (ls_Sajun > l_fr_date) THEN -- 권병조 수정2. 2014.2.24
|
|
-- 통행일자가 사전고지개시일 이전 이거나 사전고지개시일 이후이고 1차고지이면 100% 적용.
|
|
IF ( (ls_Sajun <= l_fr_date) AND (substr(l_MOTION_ID, 1, 1) = '3') ) or (ls_Sajun > l_fr_date) THEN
|
|
-- 1차고지 기간이면 100% 고지한다.
|
|
goto next_step;
|
|
END IF;
|
|
-- 통행일자가 사전고지개시일 이전 이거나 사전고지개시일 이후이고 2차고지이면 100% 적용._jhban_20140701
|
|
--IF ( (ls_Sajun <= l_fr_date) AND (substr(l_MOTION_ID, 1, 1) = '4') ) or (ls_Sajun > l_fr_date) THEN
|
|
-- 2차고지 기간이면 100% 고지한다.
|
|
--goto next_step;
|
|
--END IF;
|
|
-- 현재상태가 1차발송 상태이면 100% 과태료 금액을 보여준다. l_MOTION_ID
|
|
-- IF v_motion_id < '40' THEN -- 권병조수정. 2014.2.24
|
|
IF l_MOTION_ID < '40' THEN
|
|
goto next_step;
|
|
END IF;
|
|
|
|
-- mino_20180523 20170603일 과태료 0.05에서 0.03로 변경됨으로 코드값변경을 위해 변수 추가
|
|
select to_number(col3), to_number(col2), to_number(col4) into l_add, l_rate, l_pass_rate from code_detail_info where code_id ='01' and sub_cd = '41';
|
|
l_fr_date := to_char(to_date(l_to_date,'yyyymmdd') + 1, 'yyyymmdd');
|
|
l_to_date := to_char(add_months(to_date(l_fr_date,'yyyymmdd'), 1) - 1, 'yyyymmdd');
|
|
|
|
IF (l_pass_date >= '20170603') THEN -- 3%
|
|
l_penalty_amt := l_penalty_amt + ( l_LAVY_AMOUNT * l_pass_rate );
|
|
ELSE --5%
|
|
l_penalty_amt := l_penalty_amt + ( l_LAVY_AMOUNT * l_rate );
|
|
END IF;
|
|
-- mino_20180523
|
|
|
|
dbms_output.put_line('2차 : l_fr_date : ' || l_fr_date);
|
|
dbms_output.put_line('2차 : l_to_date : ' || l_to_date);
|
|
dbms_output.put_line('2차 : l_penalty_amt : ' || l_penalty_amt);
|
|
dbms_output.put_line('2차 : l_rate : ' || l_rate);
|
|
IF l_sysdate <= l_to_date THEN
|
|
-- 1차고지 기간이면 100% 고지한다.
|
|
goto next_step;
|
|
END IF;
|
|
-- 현재상태가 2차발송 상태이면 5% 과금된 과태료 금액을 보여준다. l_MOTION_ID
|
|
-- IF v_motion_id < '50' THEN -- 권병조수정. 2014.2.24
|
|
|
|
-- 2차고지 후 납부기한이 지난 데이터는 과태료가 1.2%가산 되어야 하는데 이 조건때문에 되지 않았음...임시로 막아놓음_jhban_20140723
|
|
-------------------------------------------------------------------------------------------------------------jhban_20140723
|
|
IF l_MOTION_ID < '47' OR l_sysdate > l_to_date THEN
|
|
goto next_step;
|
|
END IF;
|
|
|
|
dbms_output.put_line('l_sysdate : ' || l_sysdate);
|
|
select to_number(col3), to_number(col2) into l_add, l_rate from code_detail_info where code_id ='01' and sub_cd = '47';
|
|
l_fr_date := to_char(to_date(l_to_date,'yyyymmdd') + 1, 'yyyymmdd');
|
|
for i in 1..60 loop
|
|
l_to_date := to_char(add_months(to_date(l_fr_date,'yyyymmdd'), (l_add / 30)) - 1, 'yyyymmdd');
|
|
dbms_output.put_line(l_fr_date || ' ~ ' || l_to_date);
|
|
l_penalty_amt := l_penalty_amt + ( l_LAVY_AMOUNT * l_rate );
|
|
dbms_output.put_line('l_fr_date : ' || l_fr_date);
|
|
dbms_output.put_line('l_to_date : ' || l_to_date);
|
|
dbms_output.put_line('l_penalty_amt : ' || l_penalty_amt || ' (' || i || ')');
|
|
IF l_sysdate >= l_fr_date AND l_sysdate <= l_to_date THEN
|
|
goto next_step;
|
|
END IF;
|
|
l_fr_date := to_char(to_date(l_to_date,'yyyymmdd') + 1, 'yyyymmdd');
|
|
end loop;
|
|
<< next_step >>
|
|
dbms_output.put_line('l_RECEIPT_AMOUNT : ' || l_RECEIPT_AMOUNT);
|
|
dbms_output.put_line('l_penalty_amt : ' || l_penalty_amt);
|
|
|
|
IF l_RECEIPT_AMOUNT > 0 THEN
|
|
l_penalty_amt := l_RECEIPT_AMOUNT;
|
|
|
|
|
|
-- 여기부터 추가 --#### kbj
|
|
ELSIF (l_MOTION_ID = '47') OR (l_MOTION_ID = '41' AND l_fr_date >= ls_Sajun) THEN
|
|
l_monday5 := fun_get_penalty_day2(v_year, v_seqno);
|
|
SELECT CASE WHEN INSTR(l_monday5, '월') <> 0 THEN SUBSTR(l_monday5, 1,(instr(l_monday5, '월') - 1))
|
|
ELSE '0' END,
|
|
CASE WHEN INSTR(l_monday5, '일') = 0 THEN '0'
|
|
WHEN (INSTR(l_monday5, '월') = 0 and instr(l_monday5, '일') <> 0)
|
|
THEN SUBSTR(l_monday5, 1,(INSTR(l_monday5, '일') - 1))
|
|
ELSE SUBSTR(l_monday5, (INSTR(l_monday5, '월') + 2),(INSTR(l_monday5, '일') - (INSTR(l_monday5, '월')) - 2))
|
|
END
|
|
INTO l_month5, l_day5
|
|
FROM DUAL;
|
|
|
|
IF l_day5 = '0' THEN
|
|
l_moncnt := to_number(l_month5);
|
|
ELSIF l_day5 > '0' THEN
|
|
l_moncnt := to_number(l_month5) + 1;
|
|
END IF;
|
|
dbms_output.put_line('MON CNT : ' || l_moncnt);
|
|
/*
|
|
IF (l_moncnt = 0) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000 + 500;
|
|
ELSIF l_penalty_amt = 10500 THEN
|
|
l_penalty_amt := 10000 + 500 + 120*(l_moncnt - 1);
|
|
END IF;
|
|
--감면 차량의 대해 과태료 금액 설정_jhban_20141008
|
|
IF (l_moncnt = 0) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000 + 250;
|
|
ELSIF l_penalty_amt < 10000 then
|
|
l_penalty_amt := 5000 + 250 + 60*(l_moncnt - 1);
|
|
END IF;
|
|
*/
|
|
-- 일반차량(10000), 경차 및 감면차량( 5000 )
|
|
|
|
-- 20170603 통행한 차량은 가산금이 3%가 되도록 해야 해서 새로 추가함_jhban_20170525
|
|
dbms_output.put_line('l pass date : ' || l_pass_date);
|
|
IF (l_pass_date >= '20170603') THEN -- 3%
|
|
|
|
IF (l_moncnt = 0) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000;
|
|
ELSIF (l_moncnt = 0) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000 + 150;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000 + 300;
|
|
ELSIF (l_moncnt > 1) AND l_penalty_amt > 5000 AND l_penalty_amt < 10000 THEN
|
|
l_penalty_amt := 5000 + 150 + 60*(l_moncnt - 1);
|
|
--l_penalty_amt := 5000 + 150;
|
|
ELSIF (l_moncnt > 1) AND l_penalty_amt > 10000 THEN
|
|
l_penalty_amt := 10000 + 300 + 120*(l_moncnt - 1);
|
|
--l_penalty_amt := 10000 + 300;
|
|
END IF;
|
|
|
|
ELSIF (l_pass_date < '20170603') THEN -- 5%
|
|
|
|
IF (l_moncnt = 0) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000;
|
|
ELSIF (l_moncnt = 0) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000 + 250;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000 + 500;
|
|
ELSIF (l_moncnt > 1) AND l_penalty_amt > 5000 AND l_penalty_amt < 10000 THEN
|
|
l_penalty_amt := 5000 + 250 + 60*(l_moncnt - 1);
|
|
--l_penalty_amt := 5000 + 250;
|
|
ELSIF (l_moncnt > 1) AND l_penalty_amt > 10000 THEN
|
|
l_penalty_amt := 10000 + 500 + 120*(l_moncnt - 1);
|
|
--l_penalty_amt := 10000 + 500;
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
/* 20170603 통행한 차량은 가산금이 3%가 되도록 해야 해서 아래꺼 막고 위에 새로 추가함_jhban_20170525
|
|
IF (l_moncnt = 0) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000;
|
|
ELSIF (l_moncnt = 0) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 5000) THEN
|
|
l_penalty_amt := 5000 + 250;
|
|
ELSIF (l_moncnt = 1) AND (l_penalty_amt = 10000) THEN
|
|
l_penalty_amt := 10000 + 500;
|
|
ELSIF (l_moncnt > 1) AND l_penalty_amt > 5000 AND l_penalty_amt < 10000 THEN
|
|
--l_penalty_amt := 5000 + 250 + 60*(l_moncnt - 1);
|
|
l_penalty_amt := 5000 + 250;
|
|
ELSIF (l_moncnt > 1) AND l_penalty_amt > 10000 THEN
|
|
--l_penalty_amt := 10000 + 500 + 120*(l_moncnt - 1);
|
|
l_penalty_amt := 10000 + 500;
|
|
END IF;
|
|
*/
|
|
|
|
-- 요기까지 추가 . --#### kbj
|
|
|
|
|
|
|
|
ELSE
|
|
l_penalty_amt := l_penalty_amt;
|
|
END IF;
|
|
|
|
dbms_output.put_line('RETURN : ' || l_penalty_amt);
|
|
|
|
|
|
IF l_penalty_amt < 0 THEN
|
|
l_penalty_amt := 0;
|
|
END IF;
|
|
RETURN l_penalty_amt;
|
|
|
|
<< next_step2 >>
|
|
|
|
SELECT A.LAVY_AMOUNT
|
|
INTO l_LAVY_AMOUNT
|
|
FROM PENALTY_DETAIL_INFO A
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo;
|
|
|
|
l_penalty_amt := l_LAVY_AMOUNT;
|
|
|
|
RETURN l_penalty_amt;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_PENALTY;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_PENALTY
|
|
(v_year Varchar2, v_seqno In number, v_date1 In Varchar2, v_gubn varchar2)
|
|
/* v_date 자리에 *이 오면 오늘날짜 계산*/
|
|
RETURN NUMBER
|
|
IS
|
|
--t_Motion 진행코드, v_date1 납기일자, v_date2 입금일/혹은 고지취소일, t_Amount 과태료 금액
|
|
t_rate1 NUMBER(5,4);
|
|
t_rate2 NUMBER(5,4);
|
|
t_rate3 NUMBER(5,4);
|
|
t_month NUMBER(20,16);
|
|
t_round NUMBER;
|
|
r_money NUMBER(7,2);
|
|
r_overdate NUMBER;
|
|
t_Motion VARCHAR2(2);
|
|
t_Delivery_Dt VARCHAR2(8);
|
|
t_Amount NUMBER;
|
|
t_SendDt VARCHAR2(8);
|
|
t_Codedt VARCHAR2(8);
|
|
t_Notice VARCHAR2(2);
|
|
t_Notice_Wrong VARCHAR2(2);
|
|
t_Sajun VARCHAR2(8);
|
|
t_Date1 VARCHAR2(8);
|
|
BEGIN
|
|
SELECT NVL(MAX(RECEIPT_AMOUNT),0)
|
|
INTO r_money
|
|
FROM RECEIPT_INFO A
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo;
|
|
SELECT LAVY_AMOUNT,
|
|
DECODE(v_date1,'*',TO_CHAR(SYSDATE,'YYYYMMDD'),v_date1),
|
|
A.MOTION_ID,
|
|
YEAR||MONTH||DAY,
|
|
NOTICE_ID,
|
|
NOTICE_WRONG_ID,
|
|
(SELECT COL1 FROM CODE_DETAIL_INFO WHERE CODE_ID='00' AND SUB_CD='03')
|
|
INTO t_Amount, t_SendDt, t_Motion, t_Codedt, t_Notice, t_Notice_Wrong, t_sajun
|
|
FROM PENALTY_DETAIL_INFO A
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo;
|
|
IF t_Motion < '31' AND t_Motion >= '21' THEN
|
|
t_Motion := '21';
|
|
ELSIF t_Motion < '21' AND t_Motion >= '11' THEN
|
|
t_Motion := '13';
|
|
ELSIF SYSDATE < TO_DATE(t_sajun,'YYYYMMDD') AND (t_Motion = '51' OR t_Motion='52') THEN
|
|
t_Motion := '31';
|
|
ELSIF SYSDATE >= TO_DATE(t_sajun,'YYYYMMDD') AND (t_Motion = '51' OR t_Motion='52') THEN
|
|
t_Motion := '21';
|
|
ELSIF t_Motion >='31' THEN
|
|
t_Motion := '31';
|
|
ELSIF t_Motion ='72' THEN
|
|
t_Motion := '31';
|
|
END IF;
|
|
IF r_Money = 0 AND trim( t_Motion) <> '13' THEN
|
|
/* 관리번호를 받아 진행코드 상태에 맞는 납기일자를 가져온다.*/
|
|
SELECT TO_CHAR(B.DELIVERY_DATE,'YYYYMMDD')
|
|
INTO t_Delivery_Dt
|
|
FROM PENALTY_DETAIL_INFO A,
|
|
SEND_INFO B
|
|
WHERE A.PENALTY_MANAGE_YEAR = v_Year
|
|
AND A.PENALTY_SEQNO = v_SeqNo
|
|
AND B.PENALTY_MANAGE_YEAR = v_Year
|
|
AND B.PENALTY_SEQNO = v_SeqNo
|
|
AND B.MOTION_ID = t_Motion;
|
|
SELECT TO_NUMBER(max(CASE WHEN SUB_CD = '03' THEN COL2 END)),
|
|
TO_NUMBER(max(CASE WHEN SUB_CD = '01' THEN COL2 END)),
|
|
TO_NUMBER(max( CASE WHEN SUB_CD = '02' THEN COL2 END)),
|
|
MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'),TO_DATE(t_Delivery_Dt,'YYYYMMDD')) ,
|
|
ceil(MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'),TO_DATE(t_Delivery_Dt,'YYYYMMDD')) -1)
|
|
INTO t_rate1, t_rate2, t_rate3,t_month, t_round
|
|
FROM CODE_DETAIL_INFO A
|
|
WHERE CODE_ID = '03'
|
|
AND COL1 = ( SELECT MAX(COL1)
|
|
FROM CODE_DETAIL_INFO B
|
|
WHERE A.CODE_ID=B.CODE_ID
|
|
AND A.SUB_CD=B.SUB_CD
|
|
AND COL1<= t_Codedt
|
|
AND USEYN='0');
|
|
IF v_Gubn = '1' THEN -- 과태료 금액 가져오기
|
|
IF trim(t_Motion) < '30' THEN
|
|
IF (t_date1>= t_SendDt) OR v_Date1='*' THEN
|
|
r_money:=t_Amount *t_rate1;
|
|
ELSE
|
|
r_money:=t_Amount ;
|
|
END IF;
|
|
END IF;
|
|
IF trim(t_Motion)>= '30' THEN
|
|
IF t_month > 0 AND t_month <= 1 THEN
|
|
r_money:=t_Amount + (t_Amount*t_rate2);
|
|
ELSIF t_month <= 0 THEN
|
|
r_money:=t_Amount;
|
|
ELSIF t_month>1 THEN
|
|
IF t_round>60 THEN
|
|
t_round :=60;
|
|
END IF;
|
|
r_money:=t_Amount + (t_round*(t_Amount*t_rate3) +t_Amount*t_rate2) ;
|
|
END IF;
|
|
END IF;
|
|
ELSIF v_Gubn = '2' THEN --가산 금액만 가져오기
|
|
IF trim(t_Motion) < '30' THEN
|
|
IF (t_date1>= t_SendDt) OR v_Date1='*' THEN
|
|
r_money:=t_Amount *t_rate1;
|
|
ELSE
|
|
r_money:=t_Amount ;
|
|
END IF;
|
|
ELSE
|
|
IF t_month > 0 AND t_month <= 1 THEN
|
|
r_money:= (t_Amount*t_rate2);
|
|
ELSIF t_month <= 0 THEN
|
|
r_money:=t_Amount;
|
|
ELSIF t_month>1 THEN
|
|
IF t_round>60 THEN
|
|
t_round :=60;
|
|
END IF;
|
|
r_money:=(t_round*(t_Amount*t_rate3) +t_Amount*t_rate2) ;
|
|
END IF;
|
|
END IF;
|
|
ELSIF v_Gubn = '3' THEN --초과일수 가져오기(달수)
|
|
IF trim(t_Motion) < '30' THEN
|
|
IF (t_date1>= t_SendDt) OR v_Date1='*' THEN
|
|
r_Money:= -9; --사전통지 기간내
|
|
ELSE
|
|
r_Money:=-8; --사전통지 기간 후
|
|
END IF;
|
|
ELSE
|
|
IF t_month > 0 AND t_month <= 1 THEN
|
|
r_Money:=0; --1차 과태료 기간후
|
|
ELSIF t_month <= 0 THEN
|
|
r_Money:=-8; --1차 과태료 기간 내
|
|
ELSIF t_month>1 THEN
|
|
IF t_round>60 THEN
|
|
r_Money :=60;
|
|
END IF;
|
|
r_Money:=t_round;
|
|
END IF;
|
|
END IF;
|
|
ELSIF v_Gubn = '4' THEN --초과일수(소수점 기준 달.일수)
|
|
SELECT TO_NUMBER(CASE WHEN t_SendDt> t_Delivery_Dt THEN
|
|
TRUNC(MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'),TO_DATE(t_Delivery_Dt,'YYYYMMDD')),0) ||'.'||
|
|
TRIM( TRUNC(TO_NUMBER('0.'||SUBSTR(TO_CHAR(MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'), TO_DATE(t_Delivery_Dt,'YYYYMMDD'))),
|
|
INSTR(TO_CHAR(MONTHS_BETWEEN(TO_DATE(t_SendDt,'YYYYMMDD'), TO_DATE(t_Delivery_Dt,'YYYYMMDD'))),'.')+1,10))*30.5,0)) END )
|
|
INTO r_overdate
|
|
FROM DUAL;
|
|
IF t_Motion >= '31' THEN
|
|
r_Money := r_OverDate;
|
|
ELSE
|
|
r_Money := 0;
|
|
END IF;
|
|
END IF;
|
|
ELSIF r_Money > 0 AND t_Motion <> '13' THEN
|
|
IF v_Gubn = '3' OR v_Gubn = '4' THEN
|
|
r_Money := 0;
|
|
END IF;
|
|
ELSIF t_Motion = '13' THEN
|
|
r_Money := 0;
|
|
END IF;
|
|
IF t_Notice = '99' AND t_Notice_Wrong ='01' THEN
|
|
r_Money := 0;
|
|
END IF;
|
|
RETURN r_Money;
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN -1;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_MOTION;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_MOTION ( v_motion_id IN CHAR ) RETURN VARCHAR2
|
|
IS
|
|
|
|
v_rc VARCHAR2(60);
|
|
/*
|
|
** ???????? ?? : ? ? ?
|
|
*/
|
|
BEGIN
|
|
SELECT MOTION_FULL_NAME
|
|
INTO v_rc
|
|
FROM MOTION_CODE_INFO
|
|
WHERE MOTION_ID = v_motion_id;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_rc := '';
|
|
RETURN v_rc;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_MANAGER;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_MANAGER
|
|
(
|
|
v_id IN CHAR -- 관리자 ID
|
|
) RETURN VARCHAR2
|
|
IS
|
|
v_rc VARCHAR2(10) := '';
|
|
v_tm varchar2(10) := '';
|
|
/*
|
|
** 관리자 명을 리턴한다.
|
|
*/
|
|
BEGIN
|
|
SELECT USER_NAME
|
|
INTO v_tm
|
|
FROM MANAGE_INFO
|
|
WHERE USER_ID = v_id;
|
|
|
|
v_rc := rtrim(v_tm, ' ');
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_rc := '';
|
|
RETURN v_rc;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_JPG;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_JPG(
|
|
pc_office IN CHAR,
|
|
pc_booth_id IN CHAR,
|
|
pc_year IN CHAR,
|
|
pc_month IN CHAR,
|
|
pc_day IN CHAR,
|
|
pc_times IN CHAR
|
|
) RETURN VARCHAR2
|
|
IS
|
|
|
|
pc_jpg VARCHAR2(50);
|
|
|
|
BEGIN
|
|
SELECT CARS_STOP_PICTURE_FILE
|
|
INTO pc_jpg
|
|
FROM default_fare_read_info
|
|
WHERE fare_office_id = pc_office
|
|
AND booth_id = pc_booth_id
|
|
AND year = pc_year
|
|
AND month = pc_month
|
|
AND day = pc_day
|
|
AND work_times = pc_times;
|
|
|
|
RETURN pc_jpg;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_JINGSU_DAY;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_JINGSU_DAY
|
|
(
|
|
IN_GUBUN IN CHAR,
|
|
IN_FARE IN CHAR,
|
|
IN_BOOTH IN CHAR,
|
|
IN_ST IN CHAR,
|
|
IN_ED IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_GET_JINGSU_DAY
|
|
PURPOSE: 일 정산에서 징수일수 가져오기...
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_GET_JINGSU_DAY or FUN_GET_JINGSU_DAY
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
IF IN_GUBUN = 'day' THEN
|
|
|
|
-- 일별 징수일수
|
|
select count(*)
|
|
into v_cnt
|
|
from (
|
|
select year,month,day
|
|
from day_adjust_info
|
|
where year||month||day between in_st and in_ed
|
|
and fare_office_id like in_fare
|
|
and booth_id like in_booth
|
|
group by year,month,day);
|
|
|
|
ELSIF IN_GUBUN = 'month' THEN
|
|
|
|
-- 월별 징수일수
|
|
select count(*)
|
|
into v_cnt
|
|
from (
|
|
select year,month,day
|
|
from day_adjust_info
|
|
where year||month between in_st and in_ed
|
|
and fare_office_id like in_fare
|
|
and booth_id like in_booth
|
|
group by year,month,day);
|
|
|
|
ELSIF IN_GUBUN = 'month1' THEN
|
|
|
|
-- 월별 징수일수
|
|
select count(*)
|
|
into v_cnt
|
|
from (
|
|
select year,month,day
|
|
from day_adjust_info
|
|
where year||month = in_st
|
|
and fare_office_id like in_fare
|
|
and booth_id like in_booth
|
|
group by year,month,day);
|
|
|
|
ELSIF IN_GUBUN = 'year' THEN
|
|
|
|
-- 년별 징수일수
|
|
select count(*)
|
|
into v_cnt
|
|
from (
|
|
select year,month,day
|
|
from day_adjust_info
|
|
where year between in_st and in_ed
|
|
and fare_office_id like in_fare
|
|
and booth_id like in_booth
|
|
group by year,month,day);
|
|
|
|
ELSIF IN_GUBUN = 'year1' THEN
|
|
|
|
-- 년별 징수일수
|
|
select count(*)
|
|
into v_cnt
|
|
from (
|
|
select year,month,day
|
|
from day_adjust_info
|
|
where year = in_st
|
|
and fare_office_id like in_fare
|
|
and booth_id like in_booth
|
|
group by year,month,day);
|
|
|
|
END IF;
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_GET_JINGSU_DAY;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_ISSUENAME;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_ISSUENAME ( v_cardoffice_id IN CHAR ) RETURN VARCHAR2
|
|
IS
|
|
v_rc VARCHAR2(60);
|
|
/*
|
|
** ??????? ?? : ? ? ?
|
|
*/
|
|
BEGIN
|
|
SELECT ISSUE_NAME
|
|
INTO v_rc
|
|
FROM ISSUE_OFFICE_CODE_INFO
|
|
WHERE ISSUE_OFFICE_ID = v_cardoffice_id;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_rc := '';
|
|
RETURN v_rc;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_FAREOFFICE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_FAREOFFICE ( v_office IN CHAR ) RETURN VARCHAR2
|
|
IS
|
|
v_rc VARCHAR2(60);
|
|
/*
|
|
** ????? ?? : ? ? ?
|
|
*/
|
|
BEGIN
|
|
SELECT FARE_OFFICE_FULL_NAME
|
|
INTO v_rc
|
|
FROM FARE_OFFICE_CODE_INFO
|
|
WHERE FARE_OFFICE_ID = v_office;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_rc := '';
|
|
RETURN v_rc;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_EXAMREASON;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_EXAMREASON ( v_examcode IN CHAR ) RETURN VARCHAR2
|
|
IS
|
|
|
|
v_rc VARCHAR2(60);
|
|
/*
|
|
** ????? ?? : ? ? ?
|
|
*/
|
|
BEGIN
|
|
SELECT READ_RESULT_FULL_NAME
|
|
INTO v_rc
|
|
FROM READ_RESULT_CODE_INFO
|
|
WHERE READ_RESULT_ID = v_examcode ;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_rc := '';
|
|
RETURN v_rc;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_EMPLOYEE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_EMPLOYEE ( v_empno IN CHAR ) RETURN VARCHAR2
|
|
IS
|
|
v_rc VARCHAR2(10);
|
|
/*
|
|
** ???? ???? ?? : ? ? ?
|
|
*/
|
|
BEGIN
|
|
SELECT USER_NAME
|
|
INTO v_rc
|
|
FROM MANAGE_INFO
|
|
WHERE USER_ID = v_empno;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_rc := '';
|
|
RETURN v_rc;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_DEPTNM;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_DEPTNM ( v_part_id IN CHAR ) RETURN VARCHAR2
|
|
IS
|
|
|
|
v_rc VARCHAR2(60);
|
|
/*
|
|
** ???? ?? : ? ? ?
|
|
*/
|
|
BEGIN
|
|
SELECT PART_FULL_NAME
|
|
INTO v_rc
|
|
FROM PART_CODE_INFO
|
|
WHERE PART_ID = v_part_id;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_rc := '';
|
|
RETURN v_rc;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_DAY_NAME;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_DAY_NAME
|
|
(
|
|
IN_YEAR IN CHAR,
|
|
IN_MONTH IN CHAR,
|
|
IN_DAY IN CHAR
|
|
)
|
|
RETURN VARCHAR2
|
|
IS
|
|
|
|
V_DATE DATE;
|
|
V_DAY VARCHAR2(10);
|
|
V_RET CHAR(6);
|
|
|
|
BEGIN
|
|
|
|
V_DATE := TO_DATE(IN_YEAR||'/'||IN_MONTH||'/'||IN_DAY, 'YYYY/MM/DD');
|
|
|
|
SELECT TO_CHAR(V_DATE, 'DAY')
|
|
INTO V_DAY
|
|
FROM DUAL;
|
|
|
|
IF RTRIM(V_DAY,' ') = 'SUNDAY' THEN
|
|
V_RET := '일요일';
|
|
ELSIF RTRIM(V_DAY,' ') = 'SATURDAY' THEN
|
|
V_RET := '토요일';
|
|
ELSIF RTRIM(V_DAY,' ') = 'MONDAY' THEN
|
|
V_RET := '월요일';
|
|
ELSIF RTRIM(V_DAY,' ') = 'TUESDAY' THEN
|
|
V_RET := '화요일';
|
|
ELSIF RTRIM(V_DAY,' ') = 'WEDNESDAY' THEN
|
|
V_RET := '수요일';
|
|
ELSIF RTRIM(V_DAY,' ') = 'THURSDAY' THEN
|
|
V_RET := '목요일';
|
|
ELSIF RTRIM(V_DAY,' ') = 'FRIDAY' THEN
|
|
V_RET := '금요일';
|
|
END IF;
|
|
|
|
RETURN V_RET;
|
|
|
|
END FUN_GET_DAY_NAME;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_DAY;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_DAY
|
|
(
|
|
IN_YEAR IN CHAR,
|
|
IN_MONTH IN CHAR,
|
|
IN_DAY IN CHAR
|
|
)
|
|
RETURN CHAR
|
|
IS
|
|
|
|
V_DATE DATE;
|
|
V_DAY VARCHAR2(10);
|
|
V_RET CHAR;
|
|
|
|
BEGIN
|
|
|
|
V_DATE := TO_DATE(IN_YEAR||'/'||IN_MONTH||'/'||IN_DAY, 'YYYY/MM/DD');
|
|
|
|
SELECT TO_CHAR(V_DATE, 'DAY')
|
|
INTO V_DAY
|
|
FROM DUAL;
|
|
|
|
IF RTRIM(V_DAY,' ') = 'SUNDAY' THEN
|
|
V_RET := '3';
|
|
ELSIF RTRIM(V_DAY,' ') = 'SATURDAY' THEN
|
|
V_RET := '2';
|
|
ELSE
|
|
V_RET := '1';
|
|
END IF;
|
|
|
|
RETURN V_RET;
|
|
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_COLLECT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_COLLECT ( v_collect_id IN CHAR ) RETURN VARCHAR2
|
|
IS
|
|
|
|
v_rc VARCHAR2(60);
|
|
/*
|
|
** ???????? ?? : ? ? ?
|
|
*/
|
|
BEGIN
|
|
SELECT COLLECT_FULL_NAME
|
|
INTO v_rc
|
|
FROM COLLECT_CODE_INFO
|
|
WHERE COLLECT_ID = v_collect_id;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_rc := '';
|
|
RETURN v_rc;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_CIVIL;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_CIVIL
|
|
(v_myear Varchar2, v_seqno number)
|
|
RETURN Varchar2
|
|
IS
|
|
|
|
t_message Varchar2(200);
|
|
BEGIN
|
|
|
|
SELECT S.CIVIL_SUMMARY_FULL_NAME||'/'|| P.CIVIL_PROCESS_FULL_NAME
|
|
INTO t_message
|
|
FROM CIVIL_ACCEPT_INFO A,
|
|
CIVIL_SUMMARY_CODE_INFO S,
|
|
CIVIL_PROCESS_CODE_INFO P
|
|
WHERE A.CIVIL_SUMMARY_ID = S.CIVIL_SUMMARY_ID
|
|
AND A.CIVIL_PROCESS_ID = P.CIVIL_PROCESS_ID
|
|
AND A.PENALTY_MANAGE_YEAR = v_myear
|
|
AND A.PENALTY_SEQNO =v_seqno
|
|
and a.civil_via = '0' ;
|
|
RETURN t_message;
|
|
END FUN_GET_CIVIL;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_CAR_SALE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_CAR_SALE
|
|
(
|
|
IN_GUBUN IN CHAR,
|
|
IN_DATE IN CHAR,
|
|
IN_FARE IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
/******************************************************************************
|
|
NAME: FUN_GET_CAR_SALE
|
|
PURPOSE: 근무자정산에서 정액권 권수 일,월,년별로 가져오기.
|
|
|
|
REVISIONS:
|
|
Ver Date Author Description
|
|
--------- ---------- --------------- ------------------------------------
|
|
1.0 2002-11-23 KIM DONG EUN 1. Created this function.
|
|
|
|
Object Name: FUN_GET_CAR_SALE or FUN_GET_CAR_SALE
|
|
Sysdate: 2002-11-23
|
|
Date/Time: 2002-11-23 오후 11:00:34
|
|
Date: 2002-11-23
|
|
Time: 오후 11:00:34
|
|
Username: KIM DONG EUN
|
|
******************************************************************************/
|
|
|
|
V_CNT NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
IF IN_GUBUN = '1' THEN
|
|
-- 일별 정액권 권수 -
|
|
SELECT NVL(SUM(COUPON_SALE_QUANTITY),0)
|
|
INTO V_CNT
|
|
FROM FARE_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE IN_FARE
|
|
AND YEAR||MONTH||DAY = IN_DATE;
|
|
ELSIF IN_GUBUN = '2' THEN
|
|
-- 월별 정액권 권수
|
|
SELECT NVL(SUM(COUPON_SALE_QUANTITY), 0)
|
|
INTO V_CNT
|
|
FROM FARE_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE IN_FARE
|
|
AND YEAR||MONTH||DAY = IN_DATE;
|
|
ELSIF IN_GUBUN = '3' THEN
|
|
-- 년별 정액권 권수
|
|
SELECT NVL(SUM(COUPON_SALE_QUANTITY), 0)
|
|
INTO V_CNT
|
|
FROM FARE_ADJUST_INFO
|
|
WHERE FARE_OFFICE_ID LIKE IN_FARE
|
|
AND YEAR = IN_DATE;
|
|
END IF;
|
|
|
|
RETURN V_CNT;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_GET_CAR_SALE;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_CARTYPE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_CARTYPE ( v_CARNO IN CHAR ) RETURN VARCHAR2
|
|
IS
|
|
v_rc VARCHAR2(60);
|
|
/*
|
|
** ???? ?? : ? ? ?
|
|
*/
|
|
BEGIN
|
|
SELECT CAR_TYPE_NAME
|
|
INTO v_rc
|
|
FROM PENALTY_HEAD_INFO
|
|
WHERE CAR_NO = v_CARNO;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_rc := '';
|
|
RETURN v_rc;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_BOOTH1;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_BOOTH1
|
|
(
|
|
v_booth_id IN CHAR
|
|
)
|
|
RETURN VARCHAR2
|
|
/* 차로코드를 받아 차로명을 리턴한다. */
|
|
IS
|
|
|
|
v_rc VARCHAR2(60);
|
|
|
|
BEGIN
|
|
SELECT BOOTH_FULL_NAME
|
|
INTO v_rc
|
|
FROM BOOTH_CODE_INFO
|
|
WHERE BOOTH_ID = v_booth_id;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_rc := '';
|
|
RETURN v_rc;
|
|
END FUN_GET_BOOTH1;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_BOOTH;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_BOOTH ( v_office_id IN CHAR, v_booth_id IN CHAR ) RETURN VARCHAR2
|
|
IS
|
|
|
|
v_rc VARCHAR2(60);
|
|
/*
|
|
** ???? ?? : ? ? ?
|
|
*/
|
|
BEGIN
|
|
SELECT BOOTH_FULL_NAME
|
|
INTO v_rc
|
|
FROM BOOTH_CODE_INFO
|
|
WHERE FARE_OFFICE_ID = v_office_id
|
|
AND BOOTH_ID = v_booth_id;
|
|
|
|
RETURN v_rc;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
v_rc := '';
|
|
RETURN v_rc;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_GET_BEFORE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_GET_BEFORE
|
|
(v_Amount number, v_date1 Varchar2)
|
|
|
|
RETURN NUMBER
|
|
IS
|
|
--v_date1 통행일자, V_Amount 과태료 금액
|
|
t_rate1 NUMBER(5,4);
|
|
r_money NUMBER(7);
|
|
|
|
BEGIN
|
|
|
|
|
|
|
|
SELECT TO_NUMBER(max(CASE WHEN SUB_CD = '03' THEN COL2 END))
|
|
INTO t_rate1
|
|
FROM CODE_DETAIL_INFO A
|
|
WHERE CODE_ID = '03'
|
|
AND COL1 = ( SELECT MAX(COL1)
|
|
FROM CODE_DETAIL_INFO B
|
|
WHERE A.CODE_ID=B.CODE_ID
|
|
AND A.SUB_CD=B.SUB_CD
|
|
AND COL1<= v_date1
|
|
AND USEYN='0');
|
|
|
|
|
|
|
|
r_money:=v_Amount *t_rate1;
|
|
|
|
RETURN r_Money;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN -1;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_COUPON_COUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_COUPON_COUNT(
|
|
pc_year IN CHAR,
|
|
pc_month IN CHAR,
|
|
pc_day IN CHAR,
|
|
pc_booth_id IN CHAR,
|
|
pc_worker_id IN CHAR,
|
|
pc_office IN CHAR,
|
|
pc_work_stt_time IN CHAR,
|
|
pc_work_end_time IN CHAR,
|
|
pn_seqno IN NUMBER
|
|
) RETURN BINARY_INTEGER
|
|
IS
|
|
|
|
tot_row BINARY_INTEGER;
|
|
|
|
BEGIN
|
|
SELECT count(*)
|
|
INTO tot_row
|
|
FROM overcoupon_no_info
|
|
WHERE worker_id = pc_worker_id
|
|
AND fare_office_id = pc_office
|
|
AND booth_id = pc_booth_id
|
|
AND year = pc_year
|
|
AND month = pc_month
|
|
AND day = pc_day
|
|
AND work_stt_time = pc_work_stt_time
|
|
AND work_end_time = pc_work_end_time
|
|
AND seqno = pn_seqno;
|
|
|
|
RETURN tot_row;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_COMMON_ERASER;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_COMMON_ERASER
|
|
/***********************************************************
|
|
** 과태료 작업취소 ( 공통부분 )
|
|
**----------------------------------------------------------
|
|
** 검색부터, 검색까지, 관리년도, 관리번호, 현단계 를 받아서
|
|
** PENALTY_HISTORY_INFO 지우기,
|
|
** PENALTY_HISTORY_DETAIL_INFO 지우기,
|
|
** PENTLAY_HISTORY_HEAD_INFO 변경하기
|
|
** 성공 여부를 반환한다.
|
|
***********************************************************/
|
|
(
|
|
in_from IN char, -- 기준 부터
|
|
in_to IN char, -- 기준 까지
|
|
in_manage_year IN char, -- 관리년도
|
|
in_manage_seqno IN number, -- 일련번호
|
|
in_motion_id IN char -- 진행단계
|
|
) RETURN NUMBER
|
|
IS
|
|
v_return number := 1; -- 0:실패, 1:성공
|
|
v_cnt number := 0;
|
|
BEGIN
|
|
-- DBMS_OUTPUT.ENABLE;
|
|
-- 이력 정보 지운다.
|
|
BEGIN
|
|
DELETE FROM PENALTY_HISTORY_INFO
|
|
WHERE PENALTY_MANAGE_YEAR = in_manage_year
|
|
AND PENALTY_SEQNO = in_manage_seqno
|
|
AND MOTION_ID = in_motion_id;
|
|
EXCEPTION WHEN OTHERS THEN
|
|
v_return := 0;
|
|
RETURN v_return;
|
|
END;
|
|
--DBMS_OUTPUT.PUT_LINE('이력 ');
|
|
-- 이력 Detail 지운다.
|
|
BEGIN
|
|
DELETE FROM PENALTY_HISTORY_DETAIL_INFO
|
|
WHERE to_char(STT_WORK_DATE, 'yyyymmdd') = in_from
|
|
AND to_char(END_WORK_DATE, 'yyyymmdd') = in_to
|
|
AND PENALTY_MANAGE_YEAR = in_manage_year
|
|
AND PENALTY_SEQNO = in_manage_seqno
|
|
AND MOTION_ID = in_motion_id;
|
|
EXCEPTION WHEN OTHERS THEN
|
|
v_return := 0;
|
|
RETURN v_return;
|
|
END;
|
|
--DBMS_OUTPUT.PUT_LINE('이력 D');
|
|
-- 이력 Head 수를 뺀다.
|
|
SELECT WORK_COUNT
|
|
INTO v_cnt
|
|
FROM PENALTY_HISTORY_HEAD_INFO
|
|
WHERE to_char(STT_WORK_DATE, 'yyyymmdd') = in_from
|
|
AND to_char(END_WORK_DATE, 'yyyymmdd') = in_to
|
|
AND MOTION_ID = in_motion_id;
|
|
|
|
v_cnt := v_cnt - 1;
|
|
--DBMS_OUTPUT.PUT_LINE('SELECT' || to_char(v_cnt));
|
|
BEGIN
|
|
UPDATE PENALTY_HISTORY_HEAD_INFO
|
|
SET WORK_COUNT = v_cnt
|
|
WHERE to_char(STT_WORK_DATE, 'yyyymmdd') = in_from
|
|
AND to_char(END_WORK_DATE, 'yyyymmdd') = in_to
|
|
AND MOTION_ID = in_motion_id;
|
|
EXCEPTION WHEN OTHERS THEN
|
|
v_return := 0;
|
|
RETURN v_return;
|
|
END;
|
|
--DBMS_OUTPUT.PUT_LINE('이력 H');
|
|
RETURN v_return;
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RETURN 0;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_COMMISSION_TOTAL;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_COMMISSION_TOTAL
|
|
(
|
|
v_from_yyyymmdd IN CHAR,
|
|
v_to_yyyymmdd IN CHAR,
|
|
v_office_01 IN CHAR,
|
|
v_office_03 IN CHAR,
|
|
v_prepay IN CHAR,
|
|
v_postpay IN CHAR
|
|
)
|
|
RETURN NUMBER
|
|
IS
|
|
v_return_commission NUMBER := 0;
|
|
BEGIN
|
|
|
|
select nvl(trunc(sum(a.request_count) * b.charge_rate * b.levy_amount, 0), 0) as commission
|
|
into v_return_commission
|
|
from card_trans_head_info a,
|
|
(select b.fare_office_id,
|
|
b.join_card_number,
|
|
b.charge_rate,
|
|
c.levy_amount
|
|
from join_card_info b, fare_info c
|
|
where to_char(b.stt_date, 'yyyymmdd') = to_char(c.stt_date, 'yyyymmdd')
|
|
and b.collect_id in (v_prepay, v_postpay)
|
|
and b.collect_id = c.collect_id
|
|
and b.card_issue_id = c.card_issue_id) b
|
|
where a.pass_date between v_from_yyyymmdd AND v_to_yyyymmdd
|
|
and a.fare_office_id in (v_office_01, v_office_03)
|
|
and a.fare_office_id = b.fare_office_id
|
|
and a.join_card_number = b.join_card_number
|
|
group by b.charge_rate, b.levy_amount;
|
|
|
|
RETURN v_return_commission;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END FUN_COMMISSION_TOTAL;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_COMMISSION_ONLY_COMPANY;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
|
|
v_office_01 IN CHAR, v_office_03 IN CHAR,
|
|
v_prepay IN CHAR, v_postpay IN CHAR, v_company IN VARCHAR2) RETURN NUMBER
|
|
IS
|
|
v_return_commission NUMBER := 0;
|
|
BEGIN
|
|
BEGIN
|
|
|
|
select nvl(trunc(sum(a.request_count) * b.charge_rate * b.levy_amount, 0), 0)
|
|
into v_return_commission
|
|
from card_trans_head_info a,
|
|
(select b.fare_office_id,
|
|
b.join_card_number,
|
|
b.charge_rate,
|
|
c.levy_amount
|
|
from join_card_info b, fare_info c
|
|
where to_char(b.stt_date, 'yyyymmdd') = to_char(c.stt_date, 'yyyymmdd')
|
|
and b.collect_id in (v_prepay, v_postpay)
|
|
and b.collect_id = c.collect_id
|
|
and b.card_issue_id = c.card_issue_id
|
|
and b.join_card_name = v_company) b
|
|
where a.pass_date between v_from_yyyymmdd AND v_to_yyyymmdd
|
|
and a.fare_office_id in (v_office_01, v_office_03)
|
|
and a.fare_office_id = b.fare_office_id
|
|
and a.join_card_number = b.join_card_number
|
|
group by b.charge_rate, b.levy_amount;
|
|
|
|
RETURN v_return_commission;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END;
|
|
END FUN_COMMISSION_ONLY_COMPANY;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_COMMISSION_DATE;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_COMMISSION_DATE(v_from_yyyymmdd IN CHAR,
|
|
v_office_01 IN CHAR, v_office_03 IN CHAR,
|
|
v_prepay IN CHAR, v_postpay IN CHAR) RETURN NUMBER
|
|
IS
|
|
v_return_commission NUMBER := 0;
|
|
BEGIN
|
|
BEGIN
|
|
|
|
select nvl(trunc(sum(a.request_count) * b.charge_rate * b.levy_amount, 0), 0) as commission
|
|
into v_return_commission
|
|
from card_trans_head_info a,
|
|
(select b.fare_office_id,
|
|
b.join_card_number,
|
|
b.charge_rate,
|
|
c.levy_amount
|
|
from join_card_info b, fare_info c
|
|
where to_char(b.stt_date, 'yyyymmdd') = to_char(c.stt_date, 'yyyymmdd')
|
|
and b.collect_id in (v_prepay, v_postpay)
|
|
and b.collect_id = c.collect_id
|
|
and b.card_issue_id = c.card_issue_id) b
|
|
where a.pass_date = v_from_yyyymmdd
|
|
and a.fare_office_id in (v_office_01, v_office_03)
|
|
and a.fare_office_id = b.fare_office_id
|
|
and a.join_card_number = b.join_card_number
|
|
group by b.charge_rate, b.levy_amount;
|
|
|
|
RETURN v_return_commission;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END;
|
|
END FUN_COMMISSION_DATE;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_COMMISSION_COMPANY;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_COMMISSION_COMPANY(v_from_yyyymmdd IN CHAR,
|
|
v_office_01 IN CHAR, v_office_03 IN CHAR,
|
|
v_prepay IN CHAR, v_postpay IN CHAR, v_company IN VARCHAR2) RETURN NUMBER
|
|
IS
|
|
v_return_commission NUMBER := 0;
|
|
BEGIN
|
|
BEGIN
|
|
|
|
select nvl(trunc(sum(a.request_count) * b.charge_rate * b.levy_amount, 0), 0) as commission
|
|
into v_return_commission
|
|
from card_trans_head_info a,
|
|
(select b.fare_office_id,
|
|
b.join_card_number,
|
|
b.charge_rate,
|
|
c.levy_amount
|
|
from join_card_info b, fare_info c
|
|
where to_char(b.stt_date, 'yyyymmdd') = to_char(c.stt_date, 'yyyymmdd')
|
|
and b.collect_id in (v_prepay, v_postpay)
|
|
and b.collect_id = c.collect_id
|
|
and b.card_issue_id = c.card_issue_id
|
|
and b.join_card_name = v_company) b
|
|
where a.pass_date = v_from_yyyymmdd
|
|
and a.fare_office_id in (v_office_01, v_office_03)
|
|
and a.fare_office_id = b.fare_office_id
|
|
and a.join_card_number = b.join_card_number
|
|
group by b.charge_rate,
|
|
b.levy_amount;
|
|
|
|
RETURN v_return_commission;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
RETURN 0;
|
|
WHEN OTHERS THEN
|
|
RETURN 0;
|
|
|
|
END;
|
|
END FUN_COMMISSION_COMPANY;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_CARS_CODE_INFO_C;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_CARS_CODE_INFO_C
|
|
(
|
|
in_cars_type_id IN CHAR
|
|
) RETURN varchar2
|
|
IS
|
|
|
|
p_cars_type_full_name varchar2(40) := '';
|
|
p_b varchar2(40) := '';
|
|
|
|
BEGIN
|
|
|
|
SELECT cars_type_full_name
|
|
INTO p_b
|
|
FROM cars_type_code_info
|
|
WHERE cars_type_id = in_cars_type_id;
|
|
|
|
|
|
p_cars_type_full_name := rtrim(p_b, ' ');
|
|
|
|
RETURN p_cars_type_full_name;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '기타';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_CARD_PROC_WHO;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.fun_card_proc_who
|
|
(
|
|
in_st in char,
|
|
in_ed in char
|
|
)
|
|
return number
|
|
is
|
|
|
|
CURSOR C_CUR IS
|
|
|
|
SELECT a.worker_id as a,
|
|
a.fare_office_id as b,
|
|
a.booth_id as c,
|
|
a.year as d, a.month as e, a.day as f,
|
|
a.work_times as g, a.seqno as h
|
|
FROM FARE_TERMINAL_INFO C, RF_TERMINAL_INFO A, JOIN_CARD_INFO B
|
|
WHERE C.WORKER_ID = A.WORKER_ID
|
|
AND C.FARE_OFFICE_ID = A.FARE_OFFICE_ID
|
|
AND C.BOOTH_ID = A.BOOTH_ID
|
|
AND C.YEAR = A.YEAR
|
|
AND C.MONTH = A.MONTH
|
|
AND C.DAY = A.DAY
|
|
AND C.WORK_TIMES = A.WORK_TIMES
|
|
AND C.SEQNO = A.SEQNO
|
|
AND A.FARE_OFFICE_ID = B.FARE_OFFICE_ID
|
|
AND A.ISSUE_ID = B.ISSUE_ID
|
|
AND A.YEAR||A.MONTH||A.DAY BETWEEN in_st and in_ed
|
|
and A.COLLECT_ID in ('22','24')
|
|
AND A.TRANS_FILE_CREATE_YN = '1'
|
|
and c.delete_yn = '0';
|
|
|
|
E_CUR C_CUR%ROWTYPE;
|
|
|
|
v_id char(6) := '';
|
|
v_office char(2) := '';
|
|
v_booth char(2) := '';
|
|
v_year char(4) := '';
|
|
v_month char(2) := '';
|
|
v_day char(2) := '';
|
|
v_time char(6) := '';
|
|
v_seqno number := 0;
|
|
|
|
v_cnt number := 0;
|
|
|
|
begin
|
|
|
|
for e_cur in c_cur loop
|
|
|
|
v_cnt := v_cnt + 1;
|
|
|
|
v_id := rtrim(e_cur.a,' ');
|
|
v_office := rtrim(e_cur.b,' ');
|
|
v_booth := rtrim(e_cur.c,' ');
|
|
v_year := rtrim(e_cur.d,' ');
|
|
v_month := rtrim(e_cur.e,' ');
|
|
v_day := rtrim(e_cur.f,' ');
|
|
v_time := rtrim(e_cur.g,' ');
|
|
v_seqno := e_cur.h;
|
|
|
|
begin
|
|
|
|
update rf_terminal_info
|
|
set trans_file_create_yn = '2',
|
|
update_date = sysdate,
|
|
updater = 'core'
|
|
where worker_id = v_id
|
|
and fare_office_id = v_office
|
|
and booth_id = v_booth
|
|
and year = v_year
|
|
and month = v_month
|
|
and day = v_day
|
|
and work_times = v_time
|
|
and seqno = v_seqno;
|
|
|
|
exception when others then
|
|
v_cnt := v_cnt - 1;
|
|
|
|
end;
|
|
|
|
exit when c_cur%notfound;
|
|
|
|
end loop;
|
|
|
|
commit;
|
|
|
|
return v_cnt;
|
|
|
|
end fun_card_proc_who;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_BOOTH_C;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_BOOTH_C
|
|
(
|
|
in_tunnel IN CHAR, -- 요금소 코드
|
|
in_booth IN char -- 차로 코드
|
|
) RETURN varchar2
|
|
IS
|
|
|
|
p_booth_abb_name varchar2(40) := '';
|
|
p_b varchar2(40) := '';
|
|
|
|
BEGIN
|
|
|
|
SELECT booth_full_name
|
|
INTO p_b
|
|
FROM booth_code_info
|
|
WHERE FARE_OFFICE_ID = in_tunnel
|
|
AND BOOTH_ID = in_booth;
|
|
|
|
p_booth_abb_name := rtrim(p_b, ' ');
|
|
|
|
RETURN p_booth_abb_name;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '기타';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_BOOTH;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_BOOTH
|
|
(
|
|
code_id IN CHAR -- 아이디
|
|
) RETURN varchar2
|
|
IS
|
|
|
|
p_fare_office_id varchar2(60);
|
|
|
|
BEGIN
|
|
|
|
SELECT fare_office_full_name
|
|
INTO p_fare_office_id
|
|
FROM fare_office_code_info
|
|
WHERE code_id = fare_office_id;
|
|
|
|
RETURN p_fare_office_id;
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
RETURN '없음';
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FUN_ADDRESS_HISTORY_INSERT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FUN_ADDRESS_HISTORY_INSERT
|
|
/******************************************************
|
|
** 과태료 주소 이력을 생성한다..
|
|
** USED BY : TFA003U_INSERT_PROCESS : 차적등록.
|
|
**
|
|
*******************************************************/
|
|
(
|
|
v_carno IN VARCHAR2, --
|
|
v_regno IN VARCHAR2, --
|
|
v_owner IN VARCHAR2, --
|
|
v_reg_dt IN CHAR, --
|
|
v_address IN VARCHAR2, --
|
|
v_address_number IN VARCHAR2, --
|
|
v_post1 IN VARCHAR2, --
|
|
v_post2 IN VARCHAR2, --
|
|
v_user IN VARCHAR2 --
|
|
) RETURN NUMBER
|
|
IS
|
|
|
|
m_change_max NUMBER := 0;
|
|
|
|
-- Detail에 자료가 없으면 주소 이력은 있으나 마나 하다..
|
|
CURSOR PENALTY_ADDRESS_H IS
|
|
SELECT H.ADDRESS_NAME AS H_ADDRESS_NAME,
|
|
H.ADDRESS_NUMBER AS H_ADDRESS_NUMBER,
|
|
H.POST_NO1 AS H_POST_NO1,
|
|
H.POST_NO2 AS H_POST_NO2,
|
|
D.MOTION_ID AS D_MOTION_ID,
|
|
D.PENALTY_MANAGE_YEAR AS D_PENALTY_MANAGE_YEAR,
|
|
D.PENALTY_SEQNO AS D_PENALTY_SEQNO
|
|
FROM PENALTY_HEAD_INFO H,
|
|
PENALTY_DETAIL_INFO D
|
|
WHERE H.CAR_NO = D.CAR_NO
|
|
AND H.RESIDENT_NO = D.RESIDENT_NO
|
|
AND H.CAR_NO = RTRIM(v_carno,' ')
|
|
AND H.RESIDENT_NO = RTRIM(v_regno,' ');
|
|
|
|
CUR_ADDRESS PENALTY_ADDRESS_H%ROWTYPE;
|
|
|
|
|
|
m_address_name VARCHAR2(72) := '';
|
|
m_address_number VARCHAR2(109):= '';
|
|
m_post1 CHAR(3) := '';
|
|
m_post2 CHAR(3) := '';
|
|
|
|
-- 중간 변수..
|
|
t_penalty_manage_year CHAR(4) := '';
|
|
t_penalty_seqno NUMBER := 0;
|
|
t_motion_id CHAR(2) := '';
|
|
t_post_no1 CHAR(3) := '';
|
|
t_post_no2 CHAR(3) := '';
|
|
t_address_name VARCHAR2(72) := '';
|
|
t_address_number VARCHAR2(109) := '';
|
|
|
|
-- 존재여부..
|
|
m_cnt NUMBER := 0;
|
|
|
|
BEGIN
|
|
|
|
-- RESULT : 0:Success, -1:Fail,
|
|
|
|
SELECT COUNT(*)
|
|
INTO m_cnt
|
|
FROM PENALTY_HEAD_INFO H,
|
|
PENALTY_DETAIL_INFO D
|
|
WHERE H.CAR_NO = D.CAR_NO(+)
|
|
AND H.RESIDENT_NO = D.RESIDENT_NO(+)
|
|
AND H.CAR_NO = RTRIM(v_carno,' ')
|
|
AND H.RESIDENT_NO = RTRIM(v_regno,' ');
|
|
|
|
IF m_cnt = 0 THEN
|
|
RETURN 0; -- Detail이 없어도 정상 리턴..
|
|
END IF;
|
|
|
|
|
|
-- 이미 등록되어 있다면, 주소이력이 변경되었는지 확인한다...
|
|
-- 만약 Detail 정보가 없다면.. 주소 이력은 남길 필요가 없다..
|
|
-- 주소정보가 변경되었는가??..
|
|
SELECT H.ADDRESS_NAME, H.ADDRESS_NUMBER, H.POST_NO1, H.POST_NO2
|
|
INTO m_address_name, m_address_number, m_post1, m_post2
|
|
FROM PENALTY_HEAD_INFO H,
|
|
PENALTY_DETAIL_INFO D
|
|
WHERE H.CAR_NO = D.CAR_NO(+)
|
|
AND H.RESIDENT_NO = D.RESIDENT_NO(+)
|
|
AND H.CAR_NO = RTRIM(v_carno,' ')
|
|
AND H.RESIDENT_NO = RTRIM(v_regno,' ')
|
|
GROUP BY H.ADDRESS_NAME, H.ADDRESS_NUMBER, H.POST_NO1, H.POST_NO2 ;
|
|
|
|
|
|
IF RTRIM(m_address_name,' ') <> RTRIM(v_address,' ') OR RTRIM(m_address_number,' ') <> RTRIM(v_address_number,' ') OR
|
|
RTRIM(m_post1,' ') <> RTRIM(v_post1,' ') OR RTRIM(m_post2,' ') <> RTRIM(v_post2,' ') THEN
|
|
|
|
FOR CUR_ADDRESS IN PENALTY_ADDRESS_H LOOP
|
|
|
|
t_penalty_manage_year := CUR_ADDRESS.D_PENALTY_MANAGE_YEAR;
|
|
t_penalty_seqno := CUR_ADDRESS.D_PENALTY_SEQNO;
|
|
t_motion_id := CUR_ADDRESS.D_MOTION_ID;
|
|
t_post_no1 := CUR_ADDRESS.H_POST_NO1;
|
|
t_post_no2 := CUR_ADDRESS.H_POST_NO2;
|
|
t_address_name := CUR_ADDRESS.H_ADDRESS_NAME;
|
|
t_address_number := CUR_ADDRESS.H_ADDRESS_NUMBER;
|
|
|
|
BEGIN
|
|
|
|
SELECT COUNT(*)
|
|
into m_change_max
|
|
FROM PENALTY_ADDRESS_UPDATE_INFO
|
|
WHERE PENALTY_MANAGE_YEAR = t_penalty_manage_year
|
|
AND penalty_seqno = t_penalty_seqno;
|
|
/*
|
|
SELECT NVL(MAX(CHANAGE_SEQNO), 0)
|
|
INTO m_change_max
|
|
FROM PENALTY_ADDRESS_UPDATE_INFO
|
|
WHERE CAR_NO = RTRIM(v_carno,' ')
|
|
AND RESIDENT_NO = RTRIM(v_regno,' ')
|
|
AND to_char(CHANAGE_DATE,'yyyymmdd') = to_char(SYSDATE,'yyyymmdd');
|
|
*/
|
|
EXCEPTION WHEN OTHERS THEN
|
|
m_change_max := 0;
|
|
END;
|
|
|
|
m_change_max := m_change_max + 1;
|
|
|
|
-- 주소 이력 생성..
|
|
BEGIN
|
|
INSERT INTO PENALTY_ADDRESS_UPDATE_INFO
|
|
(
|
|
PENALTY_MANAGE_YEAR,
|
|
PENALTY_SEQNO,
|
|
CAR_NO,
|
|
OWNER,
|
|
RESIDENT_NO,
|
|
RESIDENT_DATE,
|
|
CHANAGE_DATE,
|
|
CHANAGE_SEQNO,
|
|
MOTION_ID,
|
|
POST_NO2,
|
|
POST_NO1,
|
|
ADDRESS_NUMBER,
|
|
ADDRESS_NAME,
|
|
CREATER,
|
|
CREATE_DATE,
|
|
UPDATER,
|
|
UPDATE_DATE )
|
|
VALUES (
|
|
RTRIM(t_penalty_manage_year,' '),
|
|
t_penalty_seqno,
|
|
RTRIM(v_carno,' '),
|
|
RTRIM(v_owner,' '),
|
|
RTRIM(v_regno,' '),
|
|
to_date(v_reg_dt,'yyyymmdd'),
|
|
sysdate,
|
|
m_change_max,
|
|
RTRIM(t_motion_id,' '),
|
|
RTRIM(t_post_no1,' '),
|
|
RTRIM(t_post_no2,' '),
|
|
RTRIM(t_address_number,' '),
|
|
RTRIM(t_address_name,' '),
|
|
RTRIM(v_user,' '),
|
|
SYSDATE,
|
|
RTRIM(v_user,' '),
|
|
SYSDATE );
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RETURN -1;
|
|
END;
|
|
|
|
END LOOP;
|
|
|
|
END IF;
|
|
|
|
RETURN 0;
|
|
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RETURN -1;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FN_VIRTUAL_SERIALNO;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FN_VIRTUAL_SERIALNO
|
|
(
|
|
P_PENALTY_MANAGE_YEAR IN VARCHAR2,
|
|
P_PENALTY_SEQNO IN VARCHAR2
|
|
)
|
|
RETURN VARCHAR2
|
|
AS
|
|
V_SERIALNO VARCHAR2(6) := '';
|
|
BEGIN
|
|
SELECT SERIALNO INTO V_SERIALNO
|
|
FROM TB_VIRTUALACCOUNT
|
|
WHERE PENALTY_MANAGE_YEAR = P_PENALTY_MANAGE_YEAR
|
|
AND PENALTY_SEQNO = P_PENALTY_SEQNO;
|
|
|
|
RETURN V_SERIALNO;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FN_VIRTUALACCOUNT_FETCH;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FN_VIRTUALACCOUNT_FETCH
|
|
(
|
|
P_SELECT IN VARCHAR2, -- A:전체(우리,신한,하나), 1:우리, 2.신한,3, 하나
|
|
P_PENALTY_MANAGE_YEAR IN VARCHAR2,
|
|
P_PENALTY_SEQNO IN VARCHAR2
|
|
|
|
)
|
|
RETURN VARCHAR2
|
|
AS
|
|
PRAGMA AUTONOMOUS_TRANSACTION; -- 함수내 프로시저 실행을 위한 별도의 트랜잭션 처리
|
|
V_ACCOUNTNO VARCHAR2(42) := ' ';
|
|
V_CNT INTEGER := 0;
|
|
BEGIN
|
|
BEGIN
|
|
|
|
IF ((P_PENALTY_MANAGE_YEAR IS NOT NULL) AND (LENGTHB(TRIM(P_PENALTY_MANAGE_YEAR))) > 0)
|
|
AND (P_PENALTY_SEQNO IS NOT NULL) AND (LENGTHB(TRIM(P_PENALTY_SEQNO))) > 0 THEN
|
|
|
|
SELECT COUNT(SERIALNO)
|
|
INTO V_CNT
|
|
FROM TB_VIRTUALACCOUNT
|
|
WHERE USEDTAG = '1'
|
|
AND PENALTY_MANAGE_YEAR = P_PENALTY_MANAGE_YEAR
|
|
AND PENALTY_SEQNO = P_PENALTY_SEQNO;
|
|
|
|
IF V_CNT = 0 THEN
|
|
SP_VIRTUALACCOUNT_UPDATE('U', P_PENALTY_MANAGE_YEAR, P_PENALTY_SEQNO);
|
|
COMMIT;
|
|
END IF;
|
|
|
|
IF P_SELECT = 'A' THEN -- 전체
|
|
SELECT ACCOUNTNOW || ACCOUNTNOS || ACCOUNTNOH
|
|
INTO V_ACCOUNTNO
|
|
FROM TB_VIRTUALACCOUNT
|
|
WHERE USEDTAG = '1'
|
|
AND PENALTY_MANAGE_YEAR = P_PENALTY_MANAGE_YEAR
|
|
AND PENALTY_SEQNO = P_PENALTY_SEQNO;
|
|
ELSIF P_SELECT = '1' THEN -- 우리
|
|
SELECT SUBSTR(ACCOUNTNOW,1,3) || '-' || SUBSTR(ACCOUNTNOW,4,6) || '-' || SUBSTR(ACCOUNTNOW,10,2) || '-' || SUBSTR(ACCOUNTNOW,12,3)
|
|
INTO V_ACCOUNTNO
|
|
FROM TB_VIRTUALACCOUNT
|
|
WHERE USEDTAG = '1'
|
|
AND PENALTY_MANAGE_YEAR = P_PENALTY_MANAGE_YEAR
|
|
AND PENALTY_SEQNO = P_PENALTY_SEQNO;
|
|
ELSIF P_SELECT = '2' THEN -- 신한
|
|
SELECT SUBSTR(ACCOUNTNOS,1,3) || '-' || SUBSTR(ACCOUNTNOS,4,3) || '-' || SUBSTR(ACCOUNTNOS,7,8)
|
|
INTO V_ACCOUNTNO
|
|
FROM TB_VIRTUALACCOUNT
|
|
WHERE USEDTAG = '1'
|
|
AND PENALTY_MANAGE_YEAR = P_PENALTY_MANAGE_YEAR
|
|
AND PENALTY_SEQNO = P_PENALTY_SEQNO;
|
|
ELSIF P_SELECT = '3' THEN -- 하나
|
|
SELECT SUBSTR(ACCOUNTNOH,1,3) || '-' || SUBSTR(ACCOUNTNOH,4,6) || '-' || SUBSTR(ACCOUNTNOH,10,5)
|
|
INTO V_ACCOUNTNO
|
|
FROM TB_VIRTUALACCOUNT
|
|
WHERE USEDTAG = '1'
|
|
AND PENALTY_MANAGE_YEAR = P_PENALTY_MANAGE_YEAR
|
|
AND PENALTY_SEQNO = P_PENALTY_SEQNO;
|
|
END IF;
|
|
ELSE
|
|
IF P_SELECT = 'A' THEN -- 전체
|
|
V_ACCOUNTNO := LPAD(V_ACCOUNTNO,42,' ');
|
|
ELSE
|
|
V_ACCOUNTNO := NULL;
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
IF P_SELECT = 'A' THEN -- 전체(ETAX DATA 자료생성시 사용)
|
|
V_ACCOUNTNO := LPAD(V_ACCOUNTNO,42,' ');
|
|
ELSE
|
|
V_ACCOUNTNO := NULL;
|
|
END IF;
|
|
END;
|
|
|
|
RETURN V_ACCOUNTNO;
|
|
END;
|
|
/
|
|
|
|
|
|
DROP FUNCTION NAMSAN.FN_VIRTUALACCOUNT;
|
|
|
|
CREATE OR REPLACE FUNCTION NAMSAN.FN_VIRTUALACCOUNT
|
|
(
|
|
P_SELECT IN VARCHAR2, -- A:전체(우리,신한,하나), 1:우리, 2.신한,3, 하나
|
|
P_PENALTY_MANAGE_YEAR IN VARCHAR2,
|
|
P_PENALTY_SEQNO IN VARCHAR2
|
|
|
|
)
|
|
RETURN VARCHAR2
|
|
AS
|
|
V_ACCOUNTNO VARCHAR2(42) := ' ';
|
|
V_CNT INTEGER := 0;
|
|
BEGIN
|
|
BEGIN
|
|
|
|
IF ((P_PENALTY_MANAGE_YEAR IS NOT NULL) AND (LENGTHB(TRIM(P_PENALTY_MANAGE_YEAR))) > 0)
|
|
AND (P_PENALTY_SEQNO IS NOT NULL) AND (LENGTHB(TRIM(P_PENALTY_SEQNO))) > 0 THEN
|
|
|
|
IF P_SELECT = 'A' THEN -- 전체
|
|
SELECT ACCOUNTNOW || ACCOUNTNOS || ACCOUNTNOH
|
|
INTO V_ACCOUNTNO
|
|
FROM TB_VIRTUALACCOUNT
|
|
WHERE USEDTAG = '1'
|
|
AND PENALTY_MANAGE_YEAR = P_PENALTY_MANAGE_YEAR
|
|
AND PENALTY_SEQNO = P_PENALTY_SEQNO;
|
|
ELSIF P_SELECT = '1' THEN -- 우리
|
|
SELECT SUBSTR(ACCOUNTNOW,1,3) || '-' || SUBSTR(ACCOUNTNOW,4,6) || '-' || SUBSTR(ACCOUNTNOW,10,2) || '-' || SUBSTR(ACCOUNTNOW,12,3)
|
|
INTO V_ACCOUNTNO
|
|
FROM TB_VIRTUALACCOUNT
|
|
WHERE USEDTAG = '1'
|
|
AND PENALTY_MANAGE_YEAR = P_PENALTY_MANAGE_YEAR
|
|
AND PENALTY_SEQNO = P_PENALTY_SEQNO;
|
|
ELSIF P_SELECT = '2' THEN -- 신한
|
|
SELECT SUBSTR(ACCOUNTNOS,1,3) || '-' || SUBSTR(ACCOUNTNOS,4,3) || '-' || SUBSTR(ACCOUNTNOS,7,8)
|
|
INTO V_ACCOUNTNO
|
|
FROM TB_VIRTUALACCOUNT
|
|
WHERE USEDTAG = '1'
|
|
AND PENALTY_MANAGE_YEAR = P_PENALTY_MANAGE_YEAR
|
|
AND PENALTY_SEQNO = P_PENALTY_SEQNO;
|
|
ELSIF P_SELECT = '3' THEN -- 하나
|
|
SELECT SUBSTR(ACCOUNTNOH,1,3) || '-' || SUBSTR(ACCOUNTNOH,4,6) || '-' || SUBSTR(ACCOUNTNOH,10,5)
|
|
INTO V_ACCOUNTNO
|
|
FROM TB_VIRTUALACCOUNT
|
|
WHERE USEDTAG = '1'
|
|
AND PENALTY_MANAGE_YEAR = P_PENALTY_MANAGE_YEAR
|
|
AND PENALTY_SEQNO = P_PENALTY_SEQNO;
|
|
END IF;
|
|
ELSE
|
|
IF P_SELECT = 'A' THEN -- 전체
|
|
V_ACCOUNTNO := LPAD(V_ACCOUNTNO,42,' ');
|
|
ELSE
|
|
V_ACCOUNTNO := NULL;
|
|
END IF;
|
|
|
|
END IF;
|
|
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND THEN
|
|
IF P_SELECT = 'A' THEN -- 전체(ETAX DATA 자료생성시 사용)
|
|
V_ACCOUNTNO := LPAD(V_ACCOUNTNO,42,' ');
|
|
ELSE
|
|
V_ACCOUNTNO := NULL;
|
|
END IF;
|
|
END;
|
|
|
|
RETURN V_ACCOUNTNO;
|
|
END;
|
|
/
|
|
|
|
|
|
GRANT EXECUTE ON NAMSAN.FUN_GET_TTJ502Q TO ETISHON;
|
|
|
|
GRANT EXECUTE ON NAMSAN.FUN_TTE000Q_COUNT1 TO ETISHON;
|
|
|