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.

11393 lines
277 KiB
SQL

DROP FUNCTION NAMSAN3.SF_PASSWORD_ENCODER;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_WORKER_NAME;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TUNNEL_C;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TUNNEL;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TUNNEL
(
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 NAMSAN3.FUN_TTK000Q_ROWCOUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TTJ501Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TTG002Q_COUNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TTG002Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TTG001Q_COUNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TTG001Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TTE000Q_COUNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TTE000Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TTD000Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TTC003Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TTC002Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TTC001Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TTB000Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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
ORDER 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
ORDER BY times);
end if;
end;
elsif time_gubun = '2' then
begin
if office = '%%' then
select count(*)
into tot_row
from (SELECT day,count(*)
FROM day_adjust_info
WHERE year || month || day between from_dt and to_dt
GROUP BY day
ORDER BY day);
else
select count(*)
into tot_row
from (SELECT day,count(*)
FROM day_adjust_info
WHERE fare_office_id = office
AND year || month || day between from_dt and to_dt
GROUP BY day
ORDER BY day);
end if;
end;
elsif time_gubun = '3' then
begin
if office = '%%' then
select count(*)
into tot_row
from (SELECT month,count(*)
FROM month_adjust_info
WHERE year || month between from_dt and to_dt
GROUP BY month
ORDER BY month);
else
select count(*)
into tot_row
from (SELECT month,count(*)
FROM month_adjust_info
WHERE fare_office_id = office
AND year || month between from_dt and to_dt
GROUP BY month
ORDER BY month);
end if;
end;
end if;
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TSE001E_POST_MAX;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TSE001E_DUPLICATE;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TSD000E_OWNER;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TSD000E_OWNER
--
-- ????, ????? ???
-- ???? ????.
--
(
manage_year IN char, -- ????
manage_seqno IN number -- ????
) RETURN varchar2
IS
p_owner varchar2(10);
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_date = hh.resident_date;
RETURN p_owner;
EXCEPTION
WHEN OTHERS THEN
RETURN '??';
END;
/
DROP FUNCTION NAMSAN3.FUN_TSD000E_MONEY;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TSD000E_CAR_TYPE;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TSD000E_ADDRESS;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TSD000E_ADDRESS
/******************************************************
** 관리년도, 일련번호를 받아서
** 주소를 반환한다.
*******************************************************/
(
manage_year IN char, -- 관리년도
manage_seqno IN number -- 일련번호
) RETURN varchar2
IS
add_name varchar2(60) := '';
add_number varchar2(40) := '';
p_address varchar2(100) := '';
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 NAMSAN3.FUN_TRL000Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRL000Q_2_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRG502Q_03_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRG502Q_02_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRG502Q_01_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRG501Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRF000Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 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 NAMSAN3.FUN_TRE502Q_SALE_K;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRE502Q_SALE_K
(
IN_GUBUN IN CHAR,
IN_FARE IN CHAR,
IN_YEAR IN CHAR,
IN_MONTH IN CHAR,
IN_DAY IN CHAR
)
RETURN NUMBER
-- 정액권 판매 일계, 누계를 구한다.
IS
V_RETURN NUMBER := 0;
V_DATE CHAR(8);
V_LEVY NUMBER := 0;
V_K_LEVY NUMBER := 0;
BEGIN
V_DATE := RTRIM(IN_YEAR,' ')||RTRIM(IN_MONTH,' ')||RTRIM(IN_DAY,' ');
IF IN_GUBUN = 'DAY' THEN
SELECT NVL(SUM(NVL(COUPON_SALE_QUANTITY,0) + NVL(K_COUPON_SALE_Q,0)),0)
INTO V_RETURN
FROM FARE_ADJUST_INFO A
WHERE A.FARE_OFFICE_ID = IN_FARE
AND A.YEAR||A.MONTH||A.DAY = V_DATE
GROUP BY A.YEAR||A.MONTH||A.DAY;
ELSIF IN_GUBUN = 'TOTAL' THEN
SELECT NVL(SUM(NVL(COUPON_SALE_QUANTITY,0) + NVL(K_COUPON_SALE_Q,0)),0)
INTO V_RETURN
FROM FARE_ADJUST_INFO A
WHERE A.FARE_OFFICE_ID = IN_FARE
AND A.YEAR||A.MONTH||A.DAY <= V_DATE;
END IF;
RETURN V_RETURN;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TRE502Q_SALE_K;
/
DROP FUNCTION NAMSAN3.FUN_TRE502Q_SALE;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRE502Q_SALE
(
IN_GUBUN IN CHAR,
IN_FARE IN CHAR,
IN_YEAR IN CHAR,
IN_MONTH IN CHAR,
IN_DAY IN CHAR
)
RETURN NUMBER
-- 정액권 판매 일계, 누계를 구한다.
IS
V_RETURN NUMBER := 0;
V_RET NUMBER := 0;
V_K_RET NUMBER := 0;
V_DATE CHAR(8);
V_LEVY NUMBER := 0;
V_K_LEVY NUMBER := 0;
BEGIN
V_DATE := IN_YEAR||IN_MONTH||IN_DAY;
-- 정액권 요금정보
SELECT LEVY_AMOUNT
INTO V_LEVY
FROM FARE_INFO
WHERE TO_CHAR(STT_DATE, 'YYYYMMDD') <= V_DATE
AND TO_CHAR(END_DATE, 'YYYYMMDD') >= V_DATE
AND COLLECT_ID = '52';
SELECT LEVY_AMOUNT
INTO V_K_LEVY
FROM FARE_INFO
WHERE TO_CHAR(STT_DATE, 'YYYYMMDD') <= V_DATE
AND TO_CHAR(END_DATE, 'YYYYMMDD') >= V_DATE
AND COLLECT_ID = '54';
IF IN_GUBUN = 'DAY' THEN
SELECT NVL(SUM(LEVY_AMOUNT / V_LEVY),0)
INTO V_RET
FROM FARE_TERMINAL_INFO A
WHERE A.FARE_OFFICE_ID = IN_FARE
AND A.YEAR||A.MONTH||A.DAY = V_DATE
AND A.COLLECT_ID = '52'
AND A.DELETE_YN = '0';
SELECT NVL(SUM(LEVY_AMOUNT / V_K_LEVY),0)
INTO V_K_RET
FROM FARE_TERMINAL_INFO A
WHERE A.FARE_OFFICE_ID = IN_FARE
AND A.YEAR||A.MONTH||A.DAY = V_DATE
AND A.COLLECT_ID = '54'
AND A.DELETE_YN = '0';
V_RETURN := V_RET + V_K_RET;
ELSIF IN_GUBUN = 'TOTAL' THEN
SELECT NVL(SUM(LEVY_AMOUNT / V_LEVY),0)
INTO V_RET
FROM FARE_TERMINAL_INFO A
WHERE A.FARE_OFFICE_ID = IN_FARE
AND A.YEAR||A.MONTH||A.DAY <= V_DATE
AND A.COLLECT_ID = '52'
AND A.DELETE_YN = '0';
SELECT NVL(SUM(LEVY_AMOUNT / V_K_LEVY),0)
INTO V_K_RET
FROM FARE_TERMINAL_INFO A
WHERE A.FARE_OFFICE_ID = IN_FARE
AND A.YEAR||A.MONTH||A.DAY <= V_DATE
AND A.COLLECT_ID = '54'
AND A.DELETE_YN = '0';
V_RETURN := V_RET + V_K_RET;
END IF;
RETURN V_RETURN;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TRE502Q_SALE;
/
DROP FUNCTION NAMSAN3.FUN_TRE502Q_LAST_STOCK1;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRE502Q_LAST_STOCK1
(
in_fare IN CHAR, -- 요금소
in_st IN CHAR -- 조회일자
) RETURN NUMBER
IS
/*
차로에 불출된 정액권과, 판매된 정액권 권수를 뺀 권수를 전일잔고로 본다.
순수한 차로 주머니 잔고권구를 말한다.
수정일 : 20030430 수정자 : arcadia
*/
v_booth_sale number; -- 전일잔고 권수
v_bul number; -- 차로불출 권수
v_sale number; -- 정액권 판매권수
v_levy number;
BEGIN
-- 조회일자 이전까지의 차로로 불출된 권수
select nvl(sum(a.in_out_count),0)
into v_bul
from fix_amount_head_info a
where a.fare_office_id = in_fare
and a.year||a.month||a.day < in_st
and a.in_out_kbn in ('21', '23');
-- 정액권 요금정보
/*
select levy_amount
into v_levy
from fare_info
where to_char(stt_date, 'yyyymmdd') <= in_st
and to_char(end_date, 'yyyymmdd') >= in_st
and collect_id = '52';
*/
-- 조회일자 이전까지 판매된 정액권 권수
SELECT NVL(SUM(NVL(COUPON_SALE_QUANTITY,0) + NVL(K_COUPON_SALE_Q,0)),0)
INTO v_sale
FROM FARE_ADJUST_INFO A
WHERE A.FARE_OFFICE_ID = IN_FARE
AND A.YEAR||A.MONTH||A.DAY < in_st;
/*
select nvl(sum(b.levy_amount / v_levy),0)
into v_sale
from fare_terminal_info b
where b.fare_office_id = in_fare
and b.year||b.month||b.day < in_st
and b.collect_id = '52'
and b.delete_yn = '0';
*/
-- 차로전일잔고 =
v_booth_sale := v_bul - v_sale;
RETURN v_booth_sale;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TRE502Q_LAST_STOCK1;
/
DROP FUNCTION NAMSAN3.FUN_TRE502Q_LAST_STOCK;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRE502Q_DATE_CNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRE502Q_DATE_CNT1
(
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 a.year, a.month, a.day
from fare_adjust_info a
where a.fare_office_id = in_fare
and a.year||a.month||a.day between in_st and in_ed
group by a.year, a.month, a.day
union
select b.year, b.month, b.day
from fix_amount_head_info b
where b.fare_office_id = in_fare
and b.year||b.month||b.day between in_st and in_ed
group by b.year, b.month, b.day);
/*
select count(*)
into v_cnt
from (
select a.year,a.month,a.day
from fare_adjust_info a
where a.fare_office_id = in_fare
and a.year||a.month||a.day between in_st and in_ed
group by a.year,a.month,a.day);
*/
RETURN V_CNT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
END FUN_TRE502Q_DATE_CNT1;
/
DROP FUNCTION NAMSAN3.FUN_TRE502Q_DATE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRE502Q_BUL;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRE502Q_BUL
(
IN_GUBUN IN CHAR,
IN_FARE IN CHAR,
IN_YEAR IN CHAR,
IN_MONTH IN CHAR,
IN_DAY IN CHAR
)
RETURN NUMBER
-- DAY : 당일 차로로 불출한 정액권 권수
-- TOTAL : 당일까지 불출한 정액권 권수(누계)
IS
V_RETURN NUMBER := 0;
V_DATE CHAR(8) := '';
BEGIN
V_DATE := RTRIM(IN_YEAR,' ')||RTRIM(IN_MONTH,' ')||RTRIM(IN_DAY,' ');
IF IN_GUBUN = 'DAY' THEN
SELECT NVL(SUM(NVL(IN_OUT_COUNT,0)),0)
INTO V_RETURN
FROM FIX_AMOUNT_DETAIL_INFO
WHERE IN_OUT_KBN IN ('21', '23')
AND FARE_OFFICE_ID = IN_FARE
AND YEAR||MONTH||DAY = V_DATE;
ELSIF IN_GUBUN = 'TOTAL' THEN
SELECT NVL(SUM(NVL(IN_OUT_COUNT,0)),0)
INTO V_RETURN
FROM FIX_AMOUNT_DETAIL_INFO
WHERE IN_OUT_KBN IN ('21', '23')
AND FARE_OFFICE_ID = IN_FARE
AND YEAR||MONTH||DAY <= V_DATE;
END IF;
RETURN V_RETURN;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TRE502Q_BUL;
/
DROP FUNCTION NAMSAN3.FUN_TRE501Q_STOCK_QUANTITY2;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRE501Q_STOCK_QUANTITY2
(
in_fare IN CHAR, -- 요금소
in_st IN CHAR -- 조회일자
)
RETURN NUMBER
IS
v_stock_q NUMBER := 0; -- 전일잔고
v_su number := 0; -- 본사수령
v_bul number := 0; -- 차로불출
v_ban number := 0; -- 본사반납
v_ret number := 0; -- 차로회수(요금소반납)
v_k_su number := 0; -- 경차본사수령
v_k_bul number := 0; -- 경차차로불출
v_k_ban number := 0; -- 경차본사반납
v_k_ret number := 0; -- 경차차로회수(요금소반납)
BEGIN
-- 20031201 경차관련 수정
select nvl(sum(decode(a.in_out_kbn, '10', nvl(a.in_out_count,0),0)),0),
nvl(sum(decode(a.in_out_kbn, '21', nvl(a.in_out_count,0),0)),0),
nvl(sum(decode(a.in_out_kbn, '22', nvl(a.in_out_count,0),0)),0),
nvl(sum(decode(a.in_out_kbn, '30', nvl(a.in_out_count,0),0)),0),
nvl(sum(decode(a.in_out_kbn, '11', nvl(a.in_out_count,0),0)),0),
nvl(sum(decode(a.in_out_kbn, '23', nvl(a.in_out_count,0),0)),0),
nvl(sum(decode(a.in_out_kbn, '24', nvl(a.in_out_count,0),0)),0),
nvl(sum(decode(a.in_out_kbn, '31', nvl(a.in_out_count,0),0)),0)
into v_su, v_bul, v_ban, v_ret, v_k_su, v_k_bul, v_k_ban, v_k_ret
from fix_amount_detail_info a
where a.fare_office_id = in_fare
and a.year||a.month||a.day < in_st;
-- 전일잔고 = 본사수령 - 차로불출 - 본사반납 + 차로회수
v_stock_q := (v_su + v_k_su) - (v_bul + v_k_bul) - (v_ban + v_k_ban) + (v_ret + v_k_ret);
RETURN v_stock_q;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TRE501Q_STOCK_QUANTITY1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRE501Q_STOCK_QUANTITY;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRE501Q_COUNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRE501Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRE000Q_CNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRE000Q_CNT1
(
IN_ST IN CHAR,
IN_ED IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM DAY_ADJUST_INFO
WHERE YEAR||MONTH||DAY BETWEEN IN_ST AND IN_ED;
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TRE000Q_CNT1;
/
DROP FUNCTION NAMSAN3.FUN_TRE000Q_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRE000Q_CNT
(
IN_DATE IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM (
SELECT YEAR||MONTH||DAY
FROM DAY_ADJUST_INFO
WHERE YEAR||MONTH||DAY = IN_DATE
GROUP BY YEAR||MONTH||DAY);
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TRE000Q_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TRD500Q_SAM_OVERFARE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRD500Q_SAM_OVERFARE_CNT
(
IN_DATE IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM OVERFARE_INFO
WHERE YEAR||MONTH = IN_DATE
AND OVERFARE_KBN = '2'
AND REFUND_KBN = '2'
AND PROCESS_KBN = '2'
AND DELETE_YN = '0'
AND TRANS_FILE_CREATE_YN = 'U';
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TRD500Q_SAM_OVERFARE_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TRD500Q_SAM_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRD500Q_SAM_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 OVERFARE_TAXES_INFO
WHERE ENTRY_YEAR = IN_YEAR
AND ENTRY_MONTH = IN_MONTH
AND ENTRY_DAY = IN_DAY
AND TRANS_FILE_CREATE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TRD500Q_SAM_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TRD500Q_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRD500Q_CNT
(
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_TRD500Q_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TRD500Q_CAR_CHK;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRD500Q_CAR_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 FUN_TRD500Q_CAR_CHK;
/
DROP FUNCTION NAMSAN3.FUN_TRD500Q_CARNO_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRD500Q_CARNO_CNT
(
in_car IN CHAR
)
RETURN number
-- 차량번호 중복 체크
IS
tot_row number;
BEGIN
select count(*)
into tot_row
from overfare_order_info
where car_no = in_car;
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TRD500Q_CARNO_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TRD000Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRC500Q_OVERCOUPON_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRC500Q_OVERCOUPON_CNT
(
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
FROM OVERCOUPON_HEAD_INFO
WHERE YEAR||MONTH BETWEEN IN_ST AND IN_ED
GROUP BY YEAR,MONTH);
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TRC500Q_OVERCOUPON_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TRC500Q_DISUSE_CHECK;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRC500Q_DISUSE_CHECK
(
IN_GUBUN IN CHAR,
IN_DATE IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
IF IN_GUBUN = 'COUPON' THEN
SELECT COUNT(*)
INTO V_RET
FROM COUPON_DISUSE_INFO
WHERE COUPON_KBN = '1'
AND FARE_YEAR||FARE_MONTH||FARE_DAY = IN_DATE;
ELSIF IN_GUBUN = 'DISUSE' THEN
SELECT COUNT(*)
INTO V_RET
FROM COUPON_DISUSE_INFO
WHERE COUPON_KBN = '2'
AND FARE_YEAR||FARE_MONTH = IN_DATE;
END IF;
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TRC500Q_DISUSE_CHECK;
/
DROP FUNCTION NAMSAN3.FUN_TRC500Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRC500Q_COUNT
(
office IN CHAR, -- 요금소
from_dt IN CHAR, -- 시작일자
to_dt IN CHAR, -- 종료일자
in_booth IN CHAR,
in_worker IN CHAR,
in_car IN CHAR
)
RETURN BINARY_INTEGER
IS
tot_row BINARY_INTEGER;
BEGIN
SELECT count(*)
INTO tot_row
FROM overcoupon_detail_info
WHERE fare_office_id like office
AND year || month || day between from_dt and to_dt
AND booth_id like in_booth
AND worker_id like in_worker
AND car_no like in_car
AND DELETE_YN = '0';
/*
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 booth_id like in_booth
AND worker_id like in_worker
AND car_no like in_car
AND DELETE_YN = '0'
-- AND over_kbn = '1'
GROUP BY year, month, day, worker_id, seqno);
*/
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TRC000Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRC000Q_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, day
FROM day_adjust_info
WHERE year || month || day between from_dt and to_dt
GROUP BY year, month, day);
-- 월별
elsif gubun = '2' then
select count(*)
into tot_row
from (SELECT year, month
FROM month_adjust_info
WHERE year || month between from_dt and to_dt
GROUP BY year, month);
-- 년별
elsif gubun = '3' then
select count(*)
into tot_row
from (SELECT year
FROM year_adjust_info
WHERE year between from_dt and to_dt
GROUP BY year);
end if;
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TRB500Q_SAM_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRB500Q_SAM_CNT
(
IN_GUBUN IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM COUPON_DISUSE_INFO
WHERE TRANS_FILE_CREATE_YN = IN_GUBUN;
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TRB500Q_SAM_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TRB500Q_RETURN_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRB500Q_RETURN_CNT
(
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
FROM DAY_ADJUST_INFO
WHERE YEAR||MONTH||DAY BETWEEN IN_ST AND IN_ED
GROUP BY YEAR,MONTH,DAY);
/*
SELECT COUNT(*)
INTO V_RET
FROM (
SELECT YEAR, MONTH, DAY
FROM FARE_TERMINAL_INFO
WHERE YEAR||MONTH||DAY BETWEEN IN_ST AND IN_ED
GROUP BY YEAR, MONTH, DAY);
*/
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TRB500Q_RETURN_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TRB500Q_INS_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRB500Q_COUPON_CNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRB500Q_COUPON_CNT1
(
IN_GUBUN IN CHAR,
IN_FARE IN CHAR,
IN_DATE IN CHAR,
IN_YEAR IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
IF IN_GUBUN = 'AM' THEN
-- 오전에 회수한 쿠폰갯수
SELECT nvl(sum(IN_COUPON_QUANTITY + OUT_COUPON_QUANTITY + IN_K_COUPON_Q + OUT_K_COUPON_Q), 0)
INTO V_RET
FROM time_adjust_info
WHERE fare_office_id = IN_FARE
AND year||month||day = IN_DATE
AND times <= '14';
ELSIF IN_GUBUN = 'PM' THEN
-- 오후에 회수한 쿠폰갯수
SELECT nvl(sum(IN_COUPON_QUANTITY + OUT_COUPON_QUANTITY + IN_K_COUPON_Q + OUT_K_COUPON_Q), 0)
INTO V_RET
FROM time_adjust_info
WHERE fare_office_id = IN_FARE
AND year||month||day = IN_DATE
AND times > '14';
ELSIF IN_GUBUN = 'YEAR' THEN
-- 연누계 - 전년도는 포함하지 않음.
SELECT nvl(sum(IN_COUPON_QUANTITY + OUT_COUPON_QUANTITY + IN_K_COUPON_Q + OUT_K_COUPON_Q), 0)
INTO V_RET
FROM time_adjust_info
WHERE fare_office_id = IN_FARE
AND year||month||day between IN_YEAR||'0101' and IN_DATE;
ELSIF IN_GUBUN = 'RETURN' THEN
-- 회수쿠폰 폐기건수
SELECT NVL(SUM(DISUSE_COUNT + K_DISUSE_CNT),0)
INTO V_RET
FROM COUPON_DISUSE_INFO
WHERE FARE_OFFICE_ID = IN_FARE
AND TO_CHAR(DISUSE_DATE, 'YYYYMMDD') = IN_DATE
AND COUPON_KBN = '1';
/*
-- 반납갯수
SELECT nvl(sum(nvl(RETURN_COUPON_COUNT,0)),0)
INTO V_RET
FROM day_fix_stock_info
WHERE fare_office_id = IN_FARE
AND year||month||day = IN_DATE;
*/
END IF;
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TRB500Q_COUPON_CNT1;
/
DROP FUNCTION NAMSAN3.FUN_TRB500Q_COUPON_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRB500Q_COUPON_CNT
(
IN_GUBUN IN CHAR,
IN_FARE IN CHAR,
IN_DATE IN CHAR,
IN_YEAR IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
IF IN_GUBUN = 'AM' THEN
-- 오전에 회수한 쿠폰갯수
SELECT count(*)
INTO V_RET
FROM fare_terminal_info
WHERE fare_office_id = IN_FARE
AND year||month||day = IN_DATE
AND collect_id = '51'
AND delete_yn = '0'
AND work_times <= '140000';
ELSIF IN_GUBUN = 'PM' THEN
-- 오후에 회수한 쿠폰갯수
SELECT count(*)
INTO V_RET
FROM fare_terminal_info
WHERE fare_office_id = IN_FARE
AND year||month||day = IN_DATE
AND work_times > '140000'
AND collect_id = '51'
AND delete_yn = '0';
ELSIF IN_GUBUN = 'YEAR' THEN
-- 연누계 - 전년도는 포함하지 않음.
SELECT count(*)
INTO V_RET
FROM fare_terminal_info
WHERE fare_office_id = IN_FARE
AND year||month||day between IN_YEAR||'0101' and IN_DATE
AND collect_id = '51'
AND delete_yn = '0';
ELSIF IN_GUBUN = 'RETURN' THEN
-- 회수쿠폰 폐기건수
SELECT NVL(SUM(DISUSE_COUNT),0)
INTO V_RET
FROM COUPON_DISUSE_INFO
WHERE FARE_OFFICE_ID = IN_FARE
AND TO_CHAR(DISUSE_DATE, 'YYYYMMDD') = IN_DATE
AND COUPON_KBN = '1';
/*
-- 반납갯수
SELECT nvl(sum(nvl(RETURN_COUPON_COUNT,0)),0)
INTO V_RET
FROM day_fix_stock_info
WHERE fare_office_id = IN_FARE
AND year||month||day = IN_DATE;
*/
END IF;
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TRB500Q_COUPON_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TRB500Q_COUNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TRB500Q_COUNT1
(
IN_FARE IN CHAR, -- 요금소
IN_ST IN CHAR, -- 시작일자
IN_ED IN CHAR -- 종료일자
) RETURN NUMBER
-- 수정일 : 20030429 수정자:ARCADIA
IS
V_ROW NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_ROW
FROM (
SELECT YEAR||MONTH||DAY
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID = IN_FARE
AND YEAR||MONTH||DAY BETWEEN IN_ST AND IN_ED
GROUP BY YEAR||MONTH||DAY);
/*
select count(*)
into tot_row
from (SELECT a.year, a.month, a.day
FROM fare_terminal_info a
WHERE a.collect_id = '51'
and a.delete_yn = '0'
AND a.fare_office_id = office
AND a.year||a.month||a.day between from_dt and to_dt
GROUP BY a.year, a.month, a.day);
*/
RETURN V_ROW;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TRB500Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRA500Q_CNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRA500Q_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TRA000Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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_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 NAMSAN3.FUN_TIF000Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TIC002Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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.owner = b.owner
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 NAMSAN3.FUN_TIC001Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 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.owner = b.owner
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 NAMSAN3.FUN_TFK002Q_CAR_TYPE;
CREATE OR REPLACE FUNCTION NAMSAN3.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 := p_cars_type_abb_name || '';
RETURN p_cars_type_abb_name;
EXCEPTION
WHEN OTHERS THEN
RETURN '기타';
END;
/
DROP FUNCTION NAMSAN3.FUN_TFJ006Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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.owner = b.owner
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.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.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);
/*
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 NAMSAN3.FUN_TFJ005Q_COUNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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
group by car_no, owner, resident_no
having count(car_no) = in_cnt);
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TFJ005Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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,
-- (sum(decode(a.notconfirm_id, '01', 1, 0)) + -- 판독불가(번호판불량)
-- sum(decode(a.notconfirm_id, '01', 0, 1)) + -- 판독불가(기타)
-- sum(decode(a.read_result_id, '01', 1, 0)) -- 판독결과(면제)
-- ) as sum_count, -- 합계
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, -- 면제
sum(decode(a.read_result_id, '02', decode(a.cars_data_kbn, '3', 1, 0), 0)) +
sum(decode(a.read_result_id, '04', decode(a.cars_data_kbn, '4', 1, 0), 0)) as sp_cnt, -- 적발건수
-- sum(decode(a.read_result_id, '02', decode(a.cars_data_kbn, '3', 1, 0), 0)) +
-- sum(decode(a.read_result_id, '02', decode(a.cars_data_kbn, '4', 1, 0), 0)) as count_notice, -- 고지건수
-- (sum(decode(a.read_kbn, '1', 1, 0)) -
-- sum(decode(a.read_result_id, '02', 1, '03', 1, 0))) as sum_count1 , -- 미고지건수
0 as count_notice, -- 고지건수
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,
-- count(*) as sp_cnt, -- 적발건수
0,
sum(decode(substr(b.motion_id, 1, 1), '5', 0, 1)) as count_notice, -- 고지건수,
sum(decode(substr(b.motion_id, 1, 1), '5', 1, 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,0,
sum(decode(T.NOTICE_KBN, '0', 1, 0)) as sum_count1 , -- 미고지건수(부과) ,
0,
count(*) as count_result1 -- 이의신청 건수
from LEVY_TARGET_INFO T,
DEFAULT_FARE_READ_INFO C
where T.motion_id IN ('21', '24')
and T.fare_office_id LIKE office
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'
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 NAMSAN3.FUN_TFJ003Q_PUPUP_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFJ003Q_PUPUP_COUNT
(
gubun IN CHAR, -- 구분
car IN CHAR, -- 차량번호
ownerin IN CHAR, -- 소유자
from_dt IN CHAR, -- 시작일자
to_dt IN CHAR -- 종료일자
-- resident_dt IN CHAR -- ?????
) 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.owner = b.owner
AND a.resident_no = b.resident_no
AND a.resident_date = b.resident_date
AND a.owner LIKE ownerin
AND b.year || b.month || b.day BETWEEN from_dt AND to_dt
AND b.motion_id <> '91'
-- AND b.resident_date = resident_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.owner = b.owner
AND a.resident_no = b.resident_no
AND a.resident_date = b.resident_date
AND a.car_no LIKE car
AND b.year || b.month || b.day BETWEEN from_dt AND to_dt
AND b.motion_id <> '91'
-- AND b.resident_date = resident_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 NAMSAN3.FUN_TFJ003Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFJ003Q_COUNT(
in_car in char, -- 차량번호
in_owner 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.owner = b.owner
AND a.resident_no = b.resident_no
AND a.car_no = in_car
AND a.owner = in_owner
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 NAMSAN3.FUN_TFJ002Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFJ002Q_COUNT (
count1 IN CHAR, -- ?? ????
count2 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 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 a.receipt_yn = '0'
AND a.notice_id = '01'
AND a.motion_id in ('31','32','33','34','35','36','37','38','40','41','42','43','44','45','46','47','48','71','72')
AND a.year || a.month || a.day between RTRIM(from_dt) and RTRIM(to_dt)
GROUP BY a.car_no
HAVING count(a.car_no) between count1 and count2);
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TFJ002Q_CAR_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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
) 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.receipt_yn = '0'
and a.motion_id IN ('31','32','33','34','35','36','37','38','40','41','42','43','44','45','46','47','48','71','72')
and a.year || a.month || a.day between v_from_dt and v_to_dt
and a.notice_id = '01'
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 NAMSAN3.FUN_TFJ001Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 ('31','32','33','34','35','36','37','38','40','41','42','43','44','45','46','47','48','51','52','71','72','81','82','83','84','91')
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 NAMSAN3.FUN_TFI012Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFI011E_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFI011E_COUNT(
from_dt IN CHAR, -- ???
to_dt IN CHAR --12.4 추가
) RETURN BINARY_INTEGER
IS
tot_row BINARY_INTEGER;
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 NAMSAN3.FUN_TFI010U_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFI010U_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, car_no, count(*)
FROM overfare_info
WHERE fare_office_id like office
AND year || month || day between from_dt and to_dt
GROUP BY year, month, day, car_no);
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TFI010U_CHK;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFI010U_CARNO_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFI009Q_COUNT2;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFI009Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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;
/
DROP FUNCTION NAMSAN3.FUN_TFI008Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFI008Q_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 a.penalty_manage_year, a.penalty_seqno
FROM receipt_info a, penalty_detail_info b
--11.29 수정
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 NAMSAN3.FUN_TFI007Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFI007Q_COUNT(
from_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, 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);
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TFI006Q_SUM;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFI006Q_COUNT2;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFI006Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFI005Q_SUM;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFI005Q_SUM
(
from_dt IN CHAR -- ?? ???
-- to_dt IN CHAR -- ?? ??? 12.3 추가
) 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;
/
DROP FUNCTION NAMSAN3.FUN_TFI005Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFI005Q_COUNT(
from_dt IN CHAR -- ?? ???
-- to_dt IN CHAR -- ?? ??; 12.3 추가
) 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 NAMSAN3.FUN_TFI004Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFI004Q_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 NAMSAN3.FUN_TFI003Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFI003Q_COUNT(
gubun IN CHAR, -- ????
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 default_fare_read_info
WHERE fare_office_id like office
AND year || month || day between from_dt and to_dt
AND exempt_reason_id = gubun;
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TFI002Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFI002Q_COUNT(
office IN CHAR, -- ???
from_dt IN CHAR, -- ?? ???
to_dt IN CHAR -- ?? ???
) RETURN BINARY_INTEGER
IS
tot_row BINARY_INTEGER := 0;
v_cnt1 BINARY_INTEGER := 0;
v_cnt2 BINARY_INTEGER := 0;
BEGIN
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 NAMSAN3.FUN_TFI001Q_MONTH_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFI001Q_COUNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFI001Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFI001Q_COUNT(
office IN CHAR, -- ???
ym_gubun IN CHAR, -- ?? ??
go_gubun IN CHAR, -- ????
from_dt IN CHAR, -- ?? ???
to_dt IN CHAR -- ?? ???
) RETURN BINARY_INTEGER
IS
tot_row BINARY_INTEGER;
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 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, 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','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, 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','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, 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_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 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','33','35')
--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','43','45')
--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 NAMSAN3.FUN_TFG004Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFG004Q_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 count(S.SEIZURE_MANAGE_NO)
FROM penalty_detail_info D,
seizure_info S
WHERE D.YEAR || D.MONTH || D.DAY BETWEEN from_dt AND to_dt
AND D.SEIZURE_MANAGE_NO = S.SEIZURE_MANAGE_NO
AND D.SEIZURE_MANAGE_YEAR = S.SEIZURE_MANAGE_YEAR
GROUP BY S.SEIZURE_MANAGE_NO);
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TFE002E_TERM;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFD002E_IDENTIFY_SAYOU;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFD001U_MAX_SEQNO;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFD001U_CREATE_SEQNO;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFD001U_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFD001U_AMOUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFC005Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFC005Q_COUNT
(
motion IN CHAR, -- 진행상태
from_dt IN CHAR, -- 시작일자
to_dt IN CHAR -- 종료일자
) RETURN BINARY_INTEGER
IS
tot_row BINARY_INTEGER;
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.owner = b.owner
AND a.resident_no = b.resident_no
AND a.resident_date = b.resident_date
--11.20 삭제 AND b.resident_date = c.send_date
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.owner = b.owner
AND a.resident_no = b.resident_no
AND a.resident_date = b.resident_date
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.owner = b.owner
AND a.resident_no = b.resident_no
AND a.resident_date = b.resident_date
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.owner = b.owner
AND a.resident_no = b.resident_no
AND a.resident_date = b.resident_date
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 NAMSAN3.FUN_TFC004Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFC004Q_COUNT (
post_no IN CHAR, -- ????
notice IN CHAR, -- ????
from_dt IN CHAR, -- ?? ???
to_dt IN CHAR -- ?? ???
) RETURN BINARY_INTEGER
IS
tot_row BINARY_INTEGER := 0;
BEGIN
--11. 20 수정
if post_no = '1' then -- 총괄
SELECT count(*)
INTO tot_row
FROM (SELECT distinct(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, count(*)
FROM penalty_history_info a,
penalty_head_info b,
send_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 a.penalty_manage_year = c.penalty_manage_year
AND a.penalty_seqno = c.penalty_seqno
AND a.motion_id = c.motion_id
--AND substr(a.notice_id, 1, 1) like notice
AND a.motion_id in ('41','43','45','47')
AND a.year || a.month || a.day between from_dt and to_dt
GROUP BY a.motion_id, a.fare_office_id, b.owner, b.post_no1 || b.post_no2, b.address_name,
substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno);
elsif post_no = '2' then -- 서울
SELECT count(*)
INTO tot_row
FROM (SELECT distinct(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, count(*)
FROM penalty_history_info a,
penalty_head_info b,
send_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 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 substr(a.notice_id, 1, 1) like notice
AND a.motion_id in ('41','43','45','47')
AND a.year || a.month || a.day between from_dt and to_dt
GROUP BY a.motion_id, a.fare_office_id, b.owner, b.post_no1 || b.post_no2, b.address_name,
substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno);
elsif post_no = '3' then -- 지방?
SELECT count(*)
INTO tot_row
FROM (SELECT distinct(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, count(*)
FROM penalty_history_info a,
penalty_head_info b,
send_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 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 substr(a.notice_id, 1, 1) like notice
AND a.motion_id in ('41','43','45','47')
AND a.year || a.month || a.day between from_dt and to_dt
GROUP BY a.motion_id, a.fare_office_id, b.owner, b.post_no1 || b.post_no2, b.address_name,
substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno);
end if;
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TFC003Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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_DATE = A.RESIDENT_DATE)
AND (C.OWNER = A.OWNER)
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 = '03')
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_DATE = A.RESIDENT_DATE)
AND (C.OWNER = A.OWNER)
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 = '03')
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_DATE = A.RESIDENT_DATE)
AND (C.OWNER = A.OWNER)
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 = '03')
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_DATE = A.RESIDENT_DATE)
AND (C.OWNER = A.OWNER)
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 = '03')
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 NAMSAN3.FUN_TFC002Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFC002Q_COUNT (
office IN CHAR, -- ??? ??
motion IN CHAR, -- ????
dt_gubun IN CHAR, -- ??(????, ????)
from_dt IN CHAR, -- ?? ???
to_dt IN CHAR -- ?? ???
) RETURN BINARY_INTEGER
IS
tot_row BINARY_INTEGER;
BEGIN
-- ????
IF dt_gubun = '1' THEN
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, 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,
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1) as office_booth_id, a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount, count(*)
FROM penalty_detail_info a,
penalty_head_info b,
receipt_info c,
motion_code_info d
WHERE a.penalty_manage_year = c.penalty_manage_year
AND a.penalty_seqno = c.penalty_seqno
AND a.car_no = b.car_no
AND a.owner = b.owner
AND a.resident_no = b.resident_no -- 11.16 추가
AND a.resident_date = b.resident_date
AND a.motion_id = d.motion_id
--AND to_char(c.receipt_date, 'yyyymmdd') between from_dt and to_dt 11.15 수정
--AND a.year || a.month || a.day = c.receipt_date
AND a.fare_office_id like office
--AND substr(a.motion_id, 1, 1) like motion 11.16 수정
AND a.year || a.month || a.day between from_dt and to_dt
AND a.receipt_yn = '1'
AND c.receipt_id in ('31','32','33','34','35','36','37','38','40','41','42','43','44','45','46','47','48','71','72')
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno,
a.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),
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1), a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount);
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, 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,
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1) as office_booth_id, a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount, count(*)
FROM penalty_detail_info a,
penalty_head_info b,
receipt_info c,
motion_code_info d
WHERE a.penalty_manage_year = c.penalty_manage_year
AND a.penalty_seqno = c.penalty_seqno
AND a.car_no = b.car_no
AND a.owner = b.owner
AND a.resident_no = b.resident_no -- 11.16 추가
AND a.resident_date = b.resident_date
AND a.motion_id = d.motion_id
--AND to_char(c.receipt_date, 'yyyymmdd') between from_dt and to_dt 11.15 수정
--AND a.year || a.month || a.day = c.receipt_date
AND a.fare_office_id like office
--AND substr(a.motion_id, 1, 1) like motion 11.16 수정
AND a.year || a.month || a.day between from_dt and to_dt
AND a.receipt_yn = '1'
AND c.receipt_id in ('31','32','33','34','35','36','37','38','40')
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno,
a.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),
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1), a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount);
elsif motion = '3' then
SELECT count(*)
INTO tot_row
FROM (SELECT substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no,
a.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 work_time,
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1) as office_booth_id, a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount, count(*)
FROM penalty_detail_info a,
penalty_head_info b,
receipt_info c,
motion_code_info d
WHERE a.penalty_manage_year = c.penalty_manage_year
AND a.penalty_seqno = c.penalty_seqno
AND a.car_no = b.car_no
AND a.owner = b.owner
AND a.resident_no = b.resident_no -- 11.16 추가
AND a.resident_date = b.resident_date
AND a.motion_id = d.motion_id
--AND to_char(c.receipt_date, 'yyyymmdd') between from_dt and to_dt 11.15 수정
--AND a.year || a.month || a.day = c.receipt_date
AND a.fare_office_id like office
--AND substr(a.motion_id, 1, 1) like motion 11.16 수정
AND a.year || a.month || a.day between from_dt and to_dt
AND a.receipt_yn = '1'
AND c.receipt_id in ('41','42','43','44','45','46','47','48')
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno,
a.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),
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1), a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount);
elsif motion = '4' then
SELECT count(*)
INTO tot_row
FROM (SELECT substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no,
a.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 work_time,
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1) as office_booth_id, a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount, count(*)
FROM penalty_detail_info a,
penalty_head_info b,
receipt_info c,
motion_code_info d
WHERE a.penalty_manage_year = c.penalty_manage_year
AND a.penalty_seqno = c.penalty_seqno
AND a.car_no = b.car_no
AND a.owner = b.owner
AND a.resident_no = b.resident_no -- 11.16 추가
AND a.resident_date = b.resident_date
AND a.motion_id = d.motion_id
--AND to_char(c.receipt_date, 'yyyymmdd') between from_dt and to_dt 11.15 수정
--AND a.year || a.month || a.day = c.receipt_date
AND a.fare_office_id like office
--AND substr(a.motion_id, 1, 1) like motion 11.16 수정
AND a.year || a.month || a.day between from_dt and to_dt
AND a.receipt_yn = '1'
AND c.receipt_id in ('71','72')
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno,
a.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),
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1), a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount);
end if;
-- ????
ELSIF dt_gubun = '2' THEN
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, 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,
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1) as office_booth_id, a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount, count(*)
FROM penalty_detail_info a,
penalty_head_info b,
receipt_info c,
motion_code_info d
WHERE a.penalty_manage_year = c.penalty_manage_year
AND a.penalty_seqno = c.penalty_seqno
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 -- 11.16 추가
AND a.motion_id = d.motion_id
AND a.fare_office_id like office
--AND substr(a.motion_id, 1, 1) like motion 11.16 수정
AND to_char(c.receipt_date, 'yyyymmdd') between from_dt and to_dt -- 11.16 수정
AND a.receipt_yn = '1'
AND c.receipt_id in ('31','32','33','34','35','36','37','38','40','41','42','43','44','45','46','47','48','71','72')
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno,
a.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),
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1), a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount);
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, 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,
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1) as office_booth_id, a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount, count(*)
FROM penalty_detail_info a,
penalty_head_info b,
receipt_info c,
motion_code_info d
WHERE a.penalty_manage_year = c.penalty_manage_year
AND a.penalty_seqno = c.penalty_seqno
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 -- 11.16 추가
AND a.motion_id = d.motion_id
AND a.fare_office_id like office
--AND substr(a.motion_id, 1, 1) like motion 11.16 수정
AND to_char(c.receipt_date, 'yyyymmdd') between from_dt and to_dt -- 11.16 수정
AND a.receipt_yn = '1'
AND c.receipt_id in ('31','32','33','34','35','36','37','38','40')
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno,
a.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),
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1), a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount);
elsif motion = '3' then
SELECT count(*)
INTO tot_row
FROM (SELECT substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no,
a.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 work_time,
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1) as office_booth_id, a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount, count(*)
FROM penalty_detail_info a,
penalty_head_info b,
receipt_info c,
motion_code_info d
WHERE a.penalty_manage_year = c.penalty_manage_year
AND a.penalty_seqno = c.penalty_seqno
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 -- 11.16 추가
AND a.motion_id = d.motion_id
AND a.fare_office_id like office
--AND substr(a.motion_id, 1, 1) like motion 11.16 수정
AND to_char(c.receipt_date, 'yyyymmdd') between from_dt and to_dt -- 11.16 수정
AND a.receipt_yn = '1'
AND c.receipt_id in ('41','42','43','44','45','46','47','48')
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno,
a.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),
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1), a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount);
elsif motion = '4' then
SELECT count(*)
INTO tot_row
FROM (SELECT substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno as seq_no,
a.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 work_time,
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1) as office_booth_id, a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount, count(*)
FROM penalty_detail_info a,
penalty_head_info b,
receipt_info c,
motion_code_info d
WHERE a.penalty_manage_year = c.penalty_manage_year
AND a.penalty_seqno = c.penalty_seqno
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 -- 11.16 추가
AND a.motion_id = d.motion_id
AND a.fare_office_id like office
--AND substr(a.motion_id, 1, 1) like motion 11.16 수정
AND to_char(c.receipt_date, 'yyyymmdd') between from_dt and to_dt -- 11.16 수정
AND a.receipt_yn = '1'
AND c.receipt_id in ('71','72')
GROUP BY substr(a.penalty_manage_year, 3, 2)|| ' - ' ||a.penalty_seqno,
a.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),
substr(a.fare_office_id, 2, 1)|| ' - ' ||substr(a.booth_id, 2, 1), a.notice_date, d.motion_full_name, b.owner, b.address_name,
c.receipt_agency, c.receipt_amount);
end if;
END IF;
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TFC000E_GET_ADDRESS;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFB004Q_COUNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFB004Q_COUNT1
(
wrong_id IN CHAR, -- 경정사유
from_dt IN CHAR, -- 시작일자
to_dt IN CHAR -- 종료일자
) RETURN BINARY_INTEGER
IS
tot_row BINARY_INTEGER;
BEGIN
IF WRONG_ID = '%' 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_DATE = A.RESIDENT_DATE) AND
(C.OWNER = A.OWNER) 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 = '03') AND
(A.YEAR||A.MONTH||A.DAY BETWEEN FROM_DT AND TO_DT));
ELSE
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_DATE = A.RESIDENT_DATE) AND
(C.OWNER = A.OWNER) 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 = '03') AND
(B.CIVIL_SUMMARY_ID = WRONG_ID) 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 NAMSAN3.FUN_TFB004Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFB003Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFB003Q_COUNT (
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 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')
GROUP BY civil_summary_id, civil_process_id);
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
tot_row := 0;
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TFB002E_EXISTENCE;
CREATE OR REPLACE FUNCTION NAMSAN3.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
DBMS_OUTPUT.ENABLE;
SELECT count(*) -- 우선 오늘날자로 찾아본다.
INTO v_ck1
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');
DBMS_OUTPUT.PUT_LINE( 'aaa = :' || to_char(v_ck1));
v_cnt := -1; -- 오늘 날자로 존재하지 않으면 '인터넷 정보'에는 반드시 입력한다.
if v_ck1 > 0 then -- 오늘 날자가 존재하는데 접속번호가 맞는가?
SELECT count(*)
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, ' ');
DBMS_OUTPUT.PUT_LINE( 'aaa = :' || to_char(v_ck2));
v_cnt := v_ck2;
end if;
DBMS_OUTPUT.PUT_LINE( 'aaa = :' || to_char(v_cnt));
RETURN v_cnt;
EXCEPTION
WHEN OTHERS THEN -- 예외는 99로 처리한다.
RETURN '99';
END;
/
DROP FUNCTION NAMSAN3.FUN_TFB002E_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TFB002E_COUNT
(
gubun IN CHAR, -- 검색 기준 구분자(1/2/3/4)
from_dt IN varchar2, -- 검색 시작일(년/월)
to_dt IN varchar2, --
carno IN varchar2 -- 차량번호
) 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
WHERE D.year BETWEEN rtrim(from_dt) AND rtrim(to_dt)
AND substr(D.MOTION_ID, 1,1) not like '9' -- 압류 해지를 제외한 모든 대상
AND H.CAR_NO = D.CAR_NO
AND H.OWNER = D.OWNER
AND H.RESIDENT_NO = D.RESIDENT_NO
AND H.RESIDENT_DATE = D.RESIDENT_DATE
AND D.CAR_NO like rtrim(carno, ' '));
-- 통행일자
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
WHERE D.year || D.month || D.day BETWEEN rtrim(from_dt) AND rtrim(to_dt)
AND substr(D.MOTION_ID, 1,1) not like '9' -- 압류 해지를 제외한 모든 대상
AND H.CAR_NO = D.CAR_NO
AND H.OWNER = D.OWNER
AND H.RESIDENT_NO = D.RESIDENT_NO
AND H.RESIDENT_DATE = D.RESIDENT_DATE
AND D.CAR_NO like rtrim(carno, ' '));
-- 통행년월
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
WHERE D.year || D.month = rtrim(from_dt)
AND substr(D.MOTION_ID, 1,1) not like '9' -- 압류 해지를 제외한 모든 대상
AND H.CAR_NO = D.CAR_NO
AND H.OWNER = D.OWNER
AND H.RESIDENT_NO = D.RESIDENT_NO
AND H.RESIDENT_DATE = D.RESIDENT_DATE
AND D.CAR_NO like rtrim(carno, ' '));
-- 전체
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
WHERE H.CAR_NO = D.CAR_NO
AND substr(D.MOTION_ID, 1,1) not like '9' -- 압류 해지를 제외한 모든 대상
AND H.OWNER = D.OWNER
AND H.RESIDENT_NO = D.RESIDENT_NO
AND H.RESIDENT_DATE = D.RESIDENT_DATE
AND D.CAR_NO like rtrim(carno, ' '));
END IF;
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TFB002E_CIVIL;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFB001E_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFB001E_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFA008Q_LEVY;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFA008Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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.YEAR || A.MONTH || A.DAY BETWEEN from_dt AND to_dt
AND A.FARE_OFFICE_ID Like office
AND A.MOTION_ID = '13'
AND A.PENALTY_PROCESS_YN = '0'
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
);
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.YEAR || A.MONTH || A.DAY BETWEEN from_dt AND to_dt
AND A.FARE_OFFICE_ID Like office
AND A.MOTION_ID = '21'
AND A.PENALTY_PROCESS_YN = '0'
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
);
end if;
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TFA006Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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.car_type_id, a.owner, a.address_name, 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.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.ARMY_CARS_KBN = '1'
AND c.DELETE_YN = '0'
AND c.car_no like car
GROUP BY c.car_no, a.car_type_id, a.owner, a.address_name, 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 NAMSAN3.FUN_TFA006Q_01_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFA005Q_COUNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFA005Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TFA004E_READER;
CREATE OR REPLACE FUNCTION NAMSAN3.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
) 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;
BEGIN
SELECT USER_NAME
INTO v_reader
FROM MANAGE_INFO
WHERE USER_NAME = v_reader_id;
EXCEPTION
WHEN OTHERS THEN
v_reader := '확인요';
END;
RETURN v_reader;
EXCEPTION
WHEN OTHERS THEN
RETURN '확인요';
END;
/
DROP FUNCTION NAMSAN3.FUN_TFA004E_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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.year || L.month || L.day Like from_dt
AND L.CAR_NO = H.CAR_NO
AND L.OWNER = H.OWNER
AND L.RESIDENT_NO = H.RESIDENT_NO
AND L.RESIDENT_DATE = H.RESIDENT_DATE
AND L.PENALTY_PROCESS_YN = '0'
AND L.NOTICE_KBN = '1'
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.year || D.month || D.day Like from_dt
AND D.CAR_NO = H.CAR_NO
AND D.OWNER = H.OWNER
AND D.RESIDENT_NO = H.RESIDENT_NO
AND D.RESIDENT_DATE = H.RESIDENT_DATE
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 NAMSAN3.FUN_TFA003U_MAX_SEQNO;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TEH500E_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEH500E_CNT
(
IN_FARE IN CHAR,
IN_BOOTH IN CHAR,
IN_WORKER IN CHAR,
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_TERMINAL_INFO
WHERE FARE_OFFICE_ID = IN_FARE
AND BOOTH_ID = IN_BOOTH
AND WORKER_ID = IN_WORKER
AND YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND DELETE_YN = '0'
AND WORK_TIMES NOT IN (
SELECT WORK_TIMES
FROM FARE_TERMINAL_INFO
WHERE FARE_OFFICE_ID = IN_FARE
AND BOOTH_ID = IN_BOOTH
AND WORKER_ID = IN_WORKER
AND YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND DELETE_YN = '0'
AND WORK_TIMES >=
(SELECT WORK_STT_TIME||'00'
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID = IN_FARE
AND BOOTH_ID = IN_BOOTH
AND WORKER_ID = IN_WORKER
AND YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY)
AND WORK_TIMES <=
(SELECT WORK_END_TIME||'59'
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID = IN_FARE
AND BOOTH_ID = IN_BOOTH
AND WORKER_ID = IN_WORKER
AND YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY));
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEH500E_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TEH500E_ADJUST_CHECK;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEH500E_ADJUST_CHECK
(
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_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
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_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEH500E_ADJUST_CHECK;
/
DROP FUNCTION NAMSAN3.FUN_TEG500Q_SAM_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEG500Q_SAM_CNT
(
IN_DATE IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM INCOME_ADJUST_INFO
WHERE INCOME_DATE = IN_DATE
AND TRANS_FILE_CREATE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEG500Q_SAM_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TEG500Q_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEG500Q_CNT
(
in_part IN CHAR,
in_date IN CHAR
)
RETURN NUMBER
IS
v_row NUMBER := 0;
BEGIN
SELECT count(*)
INTO v_row
FROM fare_adjust_info a
WHERE a.fare_adjust_yn = '1'
AND a.income_adjust_yn = '0'
AND a.year || a.month || a.day = in_date
AND a.c_ampm = in_part;
RETURN v_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEG500Q_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TEG500Q_CASH;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEG500Q_CASH
(
IN_DATE IN CHAR,
IN_PART IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
SELECT NVL(CASH_INCOME + K_CASH_INCOME +
COUPON_SALE_INCOME + K_COUPON_SALE_INCOME -
REPAY_M, 0) AS CASH
INTO V_RET
FROM INCOME_ADJUST_INFO
WHERE INCOME_DATE = IN_DATE
AND INCOME_PART = IN_PART;
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEG500Q_CASH;
/
DROP FUNCTION NAMSAN3.FUN_TEG500Q_ADJUST_CHECK;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEG500Q_ADJUST_CHECK
(
IN_DATE IN CHAR,
IN_PART IN CHAR
)
RETURN NUMBER
IS
V_CHECK NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_CHECK
FROM INCOME_ADJUST_INFO
WHERE INCOME_DATE = IN_DATE
AND INCOME_PART LIKE IN_PART;
RETURN V_CHECK;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEG500Q_ADJUST_CHECK;
/
DROP FUNCTION NAMSAN3.FUN_TEF500Q_OVERFARE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEF500Q_OVERFARE_CNT
(
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 OVERFARE_INFO
WHERE BOOTH_ID LIKE IN_BOOTH
AND CAR_NO LIKE IN_CAR
AND YEAR||MONTH||DAY = IN_DATE
AND DELETE_YN = '1';
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEF500Q_OVERFARE_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TEF500Q_OVERCOUPON_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEF500Q_OVERCOUPON_CNT
(
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 OVERCOUPON_DETAIL_INFO
WHERE BOOTH_ID LIKE IN_BOOTH
AND CAR_NO LIKE IN_CAR
AND YEAR||MONTH||DAY = IN_DATE
AND DELETE_YN = '1';
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEF500Q_OVERCOUPON_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TEF500Q_MODIFY_REASON;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEF500Q_MODIFY_REASON
(
IN_ID IN CHAR,
IN_FARE IN CHAR,
IN_BOOTH IN CHAR,
IN_DATE IN CHAR,
IN_TIME IN CHAR,
IN_SEQNO IN NUMBER,
IN_U_SEQNO IN NUMBER
)
RETURN VARCHAR2
IS
-- 수정사유는 FARE_TERMINAL_UPDATE_INFO에서 가져온다.
V_RET VARCHAR2(120) := '';
BEGIN
SELECT A.UPDATE_REASON
INTO V_RET
FROM FARE_TERMINAL_UPDATE_INFO A
WHERE A.WORKER_ID = IN_ID
AND A.FARE_OFFICE_ID = IN_FARE
AND A.BOOTH_ID = IN_BOOTH
AND A.YEAR||A.MONTH||A.DAY = IN_DATE
AND A.WORK_TIMES = IN_TIME
AND A.SEQNO = IN_SEQNO
AND A.UPDATE_SEQNO = IN_U_SEQNO;
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN NULL;
END FUN_TEF500Q_MODIFY_REASON;
/
DROP FUNCTION NAMSAN3.FUN_TEF500Q_INOUT_REASON;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEF500Q_INOUT_REASON
(
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_SEQNO IN NUMBER
)
RETURN VARCHAR2
-- 부족금액 수정시 사유를 리턴한다.
AS
V_RET VARCHAR2(120) := '';
BEGIN
SELECT NVL(IN_OUT_CONTENTS, ' ')
INTO V_RET
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 IO_SEQNO = IN_SEQNO + 1;
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN NULL;
WHEN OTHERS THEN
RETURN NULL;
END FUN_TEF500Q_INOUT_REASON;
/
DROP FUNCTION NAMSAN3.FUN_TEF500Q_INOUT_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEF500Q_INOUT_CNT
(
IN_BOOTH IN CHAR,
IN_DATE IN CHAR
)
RETURN INTEGER
AS
V_RET NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM IN_OUT_INFO
WHERE BOOTH_ID LIKE IN_BOOTH
AND YEAR||MONTH||DAY = IN_DATE
AND DELETE_YN = '1';
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEF500Q_INOUT_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TEF500Q_FARE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEF500Q_FARE_CNT
(
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;
/
DROP FUNCTION NAMSAN3.FUN_TEF500Q_BEFORE_COLLECT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEF500Q_BEFORE_COLLECT
(
IN_ID IN CHAR,
IN_FARE IN CHAR,
IN_BOOTH IN CHAR,
IN_DATE IN CHAR,
IN_TIME IN CHAR,
IN_SEQNO IN NUMBER
)
RETURN VARCHAR2
-- 수정 전의 징수유형을 리턴한다.
IS
V_RET CHAR(2) := '';
BEGIN
SELECT A.COLLECT_ID
INTO V_RET
FROM FARE_TERMINAL_INFO A
WHERE A.WORKER_ID = IN_ID
AND A.FARE_OFFICE_ID = IN_FARE
AND A.BOOTH_ID = IN_BOOTH
AND A.YEAR||A.MONTH||A.DAY = IN_DATE
AND A.WORK_TIMES = IN_TIME
AND A.SEQNO = IN_SEQNO;
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN '00';
END FUN_TEF500Q_BEFORE_COLLECT;
/
DROP FUNCTION NAMSAN3.FUN_TEF500E_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEF500E_CNT
(
IN_FARE IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM JOIN_CARD_INFO
WHERE FARE_OFFICE_ID = IN_FARE;
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEF500E_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TEE500Q_COUNT2;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEE500Q_COUNT2
(
in_st IN CHAR, -- 시작일자
in_ed IN CHAR, -- 종료일자
in_ampm IN CHAR
)
RETURN NUMBER
IS
v_row NUMBER := 0;
BEGIN
SELECT count(*)
INTO v_row
FROM fare_adjust_info
WHERE year || month || day BETWEEN in_st AND in_ed
and c_ampm like in_ampm;
RETURN v_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEE500Q_COUNT2;
/
DROP FUNCTION NAMSAN3.FUN_TEE500Q_COUNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEE500Q_COUNT1
(
in_st IN CHAR, -- 시작일자
in_ed IN CHAR, -- 종료일자
in_booth IN CHAR, -- 차로
in_worker IN CHAR -- 징수원
) RETURN BINARY_INTEGER
IS
v_row BINARY_INTEGER;
BEGIN
SELECT count(*)
INTO v_row
FROM fare_adjust_info
WHERE year || month || day BETWEEN in_st AND in_ed
and booth_id like in_booth
and worker_id like in_worker;
RETURN v_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TEE500Q_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TEE500Q_CNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEE500Q_CNT1
(
IN_WORKER IN CHAR,
IN_BOOTH IN CHAR,
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_TERMINAL_INFO
WHERE WORKER_ID LIKE IN_WORKER
AND BOOTH_ID LIKE IN_BOOTH
AND YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND DELETE_YN = '0'
AND NEW_DATA_YN = '1';
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEE500Q_CNT1;
/
DROP FUNCTION NAMSAN3.FUN_TEE500Q_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEE500Q_CNT
(
IN_WORKER IN CHAR,
IN_BOOTH IN CHAR,
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
FROM FARE_ADJUST_INFO
WHERE WORKER_ID LIKE IN_WORKER
AND BOOTH_ID LIKE IN_BOOTH
AND YEAR||MONTH||DAY BETWEEN IN_ST AND IN_ED
GROUP BY YEAR||MONTH||DAY);
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEE500Q_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TED503E_WORKER_TIME;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED503E_TIME_SUGI;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED503E_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TED503E_CNT
(
IN_GUBUN IN CHAR,
IN_YEAR IN CHAR,
IN_MONTH IN CHAR,
IN_DAY IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
IF IN_GUBUN = 'ADJUST' THEN
SELECT COUNT(*)
INTO V_RET
FROM FARE_ADJUST_INFO
WHERE YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND TRANS_FILE_CREATE_YN = '0';
ELSIF IN_GUBUN = 'FARE' THEN
SELECT COUNT(*)
INTO V_RET
FROM FARE_TERMINAL_INFO
WHERE YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND TRANS_FILE_CREATE_YN = '0';
ELSIF IN_GUBUN = 'FAREUP' THEN
SELECT COUNT(*)
INTO V_RET
FROM FARE_TERMINAL_UPDATE_INFO
WHERE YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND TRANS_FILE_CREATE_YN = '0';
ELSIF IN_GUBUN = 'OVERFARE' THEN
SELECT COUNT(*)
INTO V_RET
FROM OVERFARE_INFO
WHERE YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND TRANS_FILE_CREATE_YN <> '1';
ELSIF IN_GUBUN = 'ORDER' THEN
SELECT COUNT(*)
INTO V_RET
FROM OVERFARE_ORDER_INFO
WHERE TO_CHAR(CREATE_DATE, 'YYYY') = IN_YEAR
AND TO_CHAR(CREATE_DATE, 'MM') = IN_MONTH
AND TO_CHAR(CREATE_DATE, 'DD') = IN_DAY
AND TRANS_FILE_CREATE_YN IN ('I', 'U');
ELSIF IN_GUBUN = 'TAXES' THEN
SELECT COUNT(*)
INTO V_RET
FROM OVERFARE_TAXES_INFO
WHERE ENTRY_YEAR = IN_YEAR
AND ENTRY_MONTH = IN_MONTH
AND ENTRY_DAY = IN_DAY
AND TRANS_FILE_CREATE_YN = '0';
ELSIF IN_GUBUN = 'COUPONHEAD' THEN
SELECT COUNT(*)
INTO V_RET
FROM OVERCOUPON_HEAD_INFO
WHERE YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY;
ELSIF IN_GUBUN = 'COUPONDETAIL' THEN
SELECT COUNT(*)
INTO V_RET
FROM OVERCOUPON_DETAIL_INFO
WHERE YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY;
ELSIF IN_GUBUN = 'COUPONNO' THEN
SELECT COUNT(*)
INTO V_RET
FROM OVERCOUPON_NO_INFO
WHERE YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY;
ELSIF IN_GUBUN = 'INOUT' THEN
SELECT COUNT(*)
INTO V_RET
FROM IN_OUT_INFO
WHERE YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND TRANS_FILE_CREATE_YN <> '1';
ELSIF IN_GUBUN = 'REPAY' THEN
SELECT COUNT(*)
INTO V_RET
FROM RF_REPAY_INFO
WHERE YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND TRANS_FILE_CREATE_YN = '0';
ELSIF IN_GUBUN = 'INCOME' THEN
SELECT COUNT(*)
INTO V_RET
FROM INCOME_ADJUST_INFO
WHERE SUBSTR(INCOME_DATE,1,4) = IN_YEAR
AND SUBSTR(INCOME_DATE,5,2) = IN_MONTH
AND SUBSTR(INCOME_DATE,7,2) = IN_DAY
AND TRANS_FILE_CREATE_YN = '0';
ELSIF IN_GUBUN = 'RF' THEN
SELECT COUNT(*)
INTO V_RET
FROM RF_TERMINAL_INFO
WHERE YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND TRANS_FILE_CREATE_YN = '0';
ELSIF IN_GUBUN = 'RFUP' THEN
SELECT COUNT(*)
INTO V_RET
FROM RF_TERMINAL_UPDATE_INFO
WHERE YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND TRANS_FILE_CREATE_YN = '0';
END IF;
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TED503E_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TED503E_CAR_TIME_SUGI;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED503E_ADJUST_YN;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED503E_ADJUST_SEL;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED503E_ADJUST_OK_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED503E_ADJUST_ALL_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED502E_YEAR_FARE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED502E_FARE_CNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED502E_FARE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED502E_CAR_TYPE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED502E_BOOTH_CNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED502E_BOOTH_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED501E_WEEK_SAT_CNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED501E_WEEK_SAT_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED501E_MONTH_OVERFARE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED501E_MONTH_FIX_FARE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED501E_FARE_CNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED501E_FARE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED501E_CAR_TYPE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED501E_BOOTH_CNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED501E_BOOTH_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED500E_WORKER_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED500E_STOCK_FARE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED500E_OFFICE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED500E_FARE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TED500E_DAY_OVERFARE_FARE;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TEC500E_SAM_CNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEC500E_SAM_CNT1
(
IN_ID IN CHAR,
IN_FARE IN CHAR,
IN_BOOTH IN CHAR,
IN_DATE IN CHAR,
IN_TIME IN CHAR,
IN_SEQNO IN NUMBER
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM FARE_TERMINAL_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_TIMES = IN_TIME
AND SEQNO = IN_SEQNO
AND COLLECT_ID = '40'
AND TRANS_FILE_CREATE_YN = 'A';
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEC500E_SAM_CNT1;
/
DROP FUNCTION NAMSAN3.FUN_TEC500E_SAM_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEC500E_SAM_CNT
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM FARE_TERMINAL_INFO
WHERE COLLECT_ID = '40'
AND TRANS_FILE_CREATE_YN = 'A';
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEC500E_SAM_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TEC500E_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEC500E_COUNT
(
office IN CHAR, -- 요금소
booth IN CHAR, -- 차로
from_dt IN CHAR, -- 통행일
in_car IN CHAR -- 차량번호
)
RETURN number
IS
tot_row number := 0;
BEGIN
SELECT COUNT(*)
INTO TOT_ROW
FROM FARE_TERMINAL_INFO
WHERE COLLECT_ID = '40'
AND DELETE_YN = '0'
AND FARE_OFFICE_ID LIKE OFFICE
AND BOOTH_ID LIKE BOOTH
AND YEAR||MONTH||DAY = FROM_DT
AND CAR_NO LIKE IN_CAR;
RETURN tot_row;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
/
DROP FUNCTION NAMSAN3.FUN_TEB500E_RET_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TEB500E_INS_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TEB500E_COUNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TEB500E_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TEA502E_REPAY_INFO;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA502E_REPAY_INFO
(
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_RET NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM RF_REPAY_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_TIMES BETWEEN IN_ST AND IN_ED
AND TRANS_FILE_CREATE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA502E_REPAY_INFO;
/
DROP FUNCTION NAMSAN3.FUN_TEA502E_OVERFARE_CHECK;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA502E_OVERFARE_CHECK
(
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_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM OVERFARE_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 TRANS_FILE_CREATE_YN <> '1'
AND DELETE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA502E_OVERFARE_CHECK;
/
DROP FUNCTION NAMSAN3.FUN_TEA502E_OVERCOUPON_CHECK;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA502E_OVERCOUPON_CHECK
(
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_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM OVERCOUPON_HEAD_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 TRANS_FILE_CREATE_YN <> '1';
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA502E_OVERCOUPON_CHECK;
/
DROP FUNCTION NAMSAN3.FUN_TEA502E_LESS_MONEY;
CREATE OR REPLACE FUNCTION NAMSAN3.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'
AND DELETE_YN = '0';
RETURN V_AMOUNT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA502E_LESS_MONEY;
/
DROP FUNCTION NAMSAN3.FUN_TEA502E_INOUT_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA502E_INOUT_CNT
(
IN_ID IN CHAR,
IN_FARE IN CHAR,
IN_BOOTH IN CHAR,
IN_YEAR IN CHAR,
IN_MONTH IN CHAR,
IN_DAY IN CHAR,
IN_ST IN CHAR,
IN_ED IN CHAR
)
RETURN NUMBER
-- 부족금액 존재 여부체크
IS
V_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM IN_OUT_INFO A
WHERE A.WORKER_ID = IN_ID
AND A.FARE_OFFICE_ID = IN_FARE
AND A.BOOTH_ID = IN_BOOTH
AND A.YEAR = IN_YEAR
AND A.MONTH = IN_MONTH
AND A.DAY = IN_DAY
AND A.WORK_STT_TIME = IN_ST
AND A.WORK_END_TIME = IN_ED
AND A.IN_OUT_KBN = '1'
AND A.DELETE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA502E_INOUT_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TEA502E_INOUT_CHECK;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA502E_INOUT_CHECK
(
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_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
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 TRANS_FILE_CREATE_YN <> '1'
AND DELETE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA502E_INOUT_CHECK;
/
DROP FUNCTION NAMSAN3.FUN_TEA502E_FARE_TER_CHECK;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA502E_FARE_TER_CHECK
(
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_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM FARE_TERMINAL_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_TIMES BETWEEN IN_ST AND IN_ED
AND TRANS_FILE_CREATE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA502E_FARE_TER_CHECK;
/
DROP FUNCTION NAMSAN3.FUN_TEA502E_ADJUST_CHECK;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA502E_ADJUST_CHECK
(
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_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
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
AND FARE_ADJUST_YN = '1'
AND TRANS_FILE_CREATE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA502E_ADJUST_CHECK;
/
DROP FUNCTION NAMSAN3.FUN_TEA500E_SEQNO_MAX;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA500E_SEQNO_MAX
(
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_SEQNO IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
SELECT NVL(MAX(SEQNO),0)
INTO V_RET
FROM FARE_TERMINAL_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_TIMES BETWEEN IN_ST AND IN_ED
AND OTHER_SEQNO = IN_SEQNO;
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA500E_SEQNO_MAX;
/
DROP FUNCTION NAMSAN3.FUN_TEA500E_OVERFARE_DUP;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA500E_OVERFARE_DUP
(
IN_ID IN CHAR,
IN_FARE IN CHAR,
IN_BOOTH IN CHAR,
IN_YEAR IN CHAR,
IN_MONTH IN CHAR,
IN_DAY IN CHAR,
IN_ST IN CHAR,
IN_ED IN CHAR,
IN_TIME IN CHAR
)
RETURN NUMBER
-- 과오납 중복체크
IS
V_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM OVERFARE_INFO
WHERE WORKER_ID = IN_ID
AND FARE_OFFICE_ID = IN_FARE
AND BOOTH_ID = IN_BOOTH
AND YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND WORK_STT_TIME = IN_ST
AND WORK_END_TIME = IN_ED
AND OVERFARE_TIMES = IN_TIME
AND DELETE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA500E_OVERFARE_DUP;
/
DROP FUNCTION NAMSAN3.FUN_TEA500E_OVERFARE_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA500E_OVERFARE_CNT
(
IN_ID IN CHAR,
IN_FARE IN CHAR,
IN_BOOTH IN CHAR,
IN_YEAR IN CHAR,
IN_MONTH IN CHAR,
IN_DAY IN CHAR,
IN_ST IN CHAR,
IN_ED IN CHAR
)
RETURN NUMBER
-- 과오납정보 건수를 리턴한다.
IS
V_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM OVERFARE_INFO
WHERE WORKER_ID = IN_ID
AND FARE_OFFICE_ID = IN_FARE
AND BOOTH_ID = IN_BOOTH
AND YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND WORK_STT_TIME = IN_ST
AND WORK_END_TIME = IN_ED
AND DELETE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA500E_OVERFARE_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TEA500E_OVERFARE_CASH;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA500E_OVERFARE_CASH
(
IN_ID IN CHAR,
IN_FARE IN CHAR,
IN_BOOTH IN CHAR,
IN_YEAR IN CHAR,
IN_MONTH IN CHAR,
IN_DAY IN CHAR,
IN_ST IN CHAR,
IN_ED IN CHAR
)
RETURN NUMBER
-- 과오납정보 금액을 리턴한다.
IS
V_RET NUMBER;
BEGIN
SELECT NVL(SUM(OVERFARE_AMOUNT),0)
INTO V_RET
FROM OVERFARE_INFO
WHERE WORKER_ID = IN_ID
AND FARE_OFFICE_ID = IN_FARE
AND BOOTH_ID = IN_BOOTH
AND YEAR = IN_YEAR
AND MONTH = IN_MONTH
AND DAY = IN_DAY
AND WORK_STT_TIME = IN_ST
AND WORK_END_TIME = IN_ED
AND DELETE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA500E_OVERFARE_CASH;
/
DROP FUNCTION NAMSAN3.FUN_TEA500E_OVERCOUPON_NO;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA500E_OVERCOUPON_NO
(
in_id in char, -- id
in_fare in char, -- 요금소 코드
in_booth in char, -- 차로 코드
in_date in char, -- 근무일자
in_st in char, -- 시작시간
in_ed in char -- 종료시간
)
RETURN NUMBER
-- 설명 : 과잉쿠폰 매수를 리턴한다.
IS
V_RET NUMBER;
BEGIN
SELECT NVL(SUM(COUPON_COUNT), 0)
INTO V_RET
FROM OVERCOUPON_DETAIL_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 DELETE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA500E_OVERCOUPON_NO;
/
DROP FUNCTION NAMSAN3.FUN_TEA500E_OVERCOUPON_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA500E_OVERCOUPON_CNT
-----------------------------
-- 설명 : 과잉쿠폰 조회에 대한 전체 카운트
-- kim dong eun
------------------------------
(
in_id in char, -- id
in_fare in char, -- 요금소 코드
in_booth in char, -- 차로 코드
in_date in char, -- 근무일자
in_st in char, -- 시작시간
in_ed in char -- 종료시간
)
RETURN NUMBER
IS
V_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM OVERCOUPON_DETAIL_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 DELETE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA500E_OVERCOUPON_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TEA500E_OC_HEAD_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA500E_OC_HEAD_CNT
-----------------------------
-- 설명 : 과잉쿠폰 조회에 대한 전체 카운트
-- kim dong eun
------------------------------
(
in_id in char, -- id
in_fare in char, -- 요금소 코드
in_booth in char, -- 차로 코드
in_date in char, -- 근무일자
in_st in char, -- 시작시간
in_ed in char -- 종료시간
)
RETURN NUMBER
is
V_RET NUMBER;
begin
select count(*)
into V_RET
from overcoupon_head_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_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
end FUN_TEA500E_OC_HEAD_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TEA500E_FARE_TER_MAX;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA500E_FARE_TER_MAX
(
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_RET NUMBER := 0;
BEGIN
SELECT NVL(MAX(SEQNO),0)
INTO V_RET
FROM FARE_TERMINAL_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_TIMES BETWEEN IN_ST AND IN_ED;
RETURN V_RET;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA500E_FARE_TER_MAX;
/
DROP FUNCTION NAMSAN3.FUN_TEA500E_FARE_DUPLICATE;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA500E_FARE_DUPLICATE
(
IN_ID IN CHAR,
IN_FARE IN CHAR,
IN_BOOTH IN CHAR,
IN_DATE IN CHAR,
IN_TIME IN CHAR,
IN_SEQNO IN NUMBER
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM FARE_TERMINAL_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_TIMES = IN_TIME
AND SEQNO = IN_SEQNO;
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TEA500E_FARE_DUPLICATE;
/
DROP FUNCTION NAMSAN3.FUN_TEA500E_COMPARE;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TEA500E_COMPARE
(
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_SEQNO IN CHAR,
IN_COLLECT IN CHAR
)
RETURN NUMBER
IS
V_FARE NUMBER := 0;
V_CASH NUMBER := 0;
V_K_CASH NUMBER := 0;
V_COUPON NUMBER := 0;
V_K_COUPON NUMBER := 0;
V_FREE NUMBER := 0;
V_MINAP NUMBER := 0;
V_RET NUMBER := 0;
BEGIN
-- 요금단말내역과 정산내역 통행량 비교
SELECT COUNT(*)
INTO V_FARE
FROM FARE_TERMINAL_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_TIMES BETWEEN IN_ST AND IN_ED
AND OTHER_SEQNO = IN_SEQNO
AND DELETE_YN = '0'
AND COLLECT_ID = IN_COLLECT;
SELECT NVL(CASH_QUANTITY,0),
NVL(COUPON_QUANTITY,0),
NVL(K_CASH_Q,0),
NVL(K_COUPON_Q,0),
NVL(EXEMPTION_QUANTITY,0),
NVL(NONPAYMENT_QUANTITY,0)
INTO V_CASH,V_COUPON, V_K_CASH, V_K_COUPON,
V_FREE, V_MINAP
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;
IF IN_COLLECT = '10' THEN
IF V_FARE = V_CASH THEN
V_RET := 0;
ELSIF V_FARE <> V_CASH THEN
V_RET := 1;
END IF;
ELSIF IN_COLLECT = '11' THEN
IF V_FARE = V_K_CASH THEN
V_RET := 0;
ELSIF V_FARE <> V_K_CASH THEN
V_RET := 1;
END IF;
ELSIF IN_COLLECT = '51' THEN
IF V_FARE = V_COUPON THEN
V_RET := 0;
ELSIF V_FARE <> V_COUPON THEN
V_RET := 1;
END IF;
ELSIF IN_COLLECT = '53' THEN
IF V_FARE = V_K_COUPON THEN
V_RET := 0;
ELSIF V_FARE <> V_K_COUPON THEN
V_RET := 1;
END IF;
ELSIF IN_COLLECT = '30' THEN
IF V_FARE = V_FREE THEN
V_RET := 0;
ELSIF V_FARE <> V_FREE THEN
V_RET := 1;
END IF;
ELSIF IN_COLLECT = '40' THEN
IF V_FARE = V_MINAP THEN
V_RET := 0;
ELSIF V_FARE <> V_MINAP THEN
V_RET := 1;
END IF;
END IF;
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 1;
END FUN_TEA500E_COMPARE;
/
DROP FUNCTION NAMSAN3.FUN_TEA500E_CAR_TYPE;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TEA500E_CARD_CASH;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TBF500E_SAM_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TBF500E_SAM_CNT
RETURN NUMBER
IS
V_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM JOIN_CARD_INFO
WHERE TRANS_FILE_CREATE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TBF500E_SAM_CNT;
/
DROP FUNCTION NAMSAN3.FUN_TBF500E_DUP1;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TBF500E_DUP1
(
IN_FARE IN CHAR,
IN_ISSUE IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM JOIN_CARD_INFO
WHERE FARE_OFFICE_ID = IN_FARE
AND CARD_ISSUE_ID = IN_ISSUE;
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TBF500E_DUP1;
/
DROP FUNCTION NAMSAN3.FUN_TBF500E_DUP;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_TBF500E_DUP
(
IN_FARE IN CHAR,
IN_NUM IN VARCHAR2,
IN_ISSUE IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM JOIN_CARD_INFO
WHERE FARE_OFFICE_ID = IN_FARE
AND JOIN_CARD_NUMBER = IN_NUM
AND CARD_ISSUE_ID = IN_ISSUE;
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TBF500E_DUP;
/
DROP FUNCTION NAMSAN3.FUN_TBD000E_ROW;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_TAR000Q_RTN;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_STOP_PICTURE;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_STOP_PICTURE
-------------------------------------------------------------------
-- 정지영상 파일명 읽어오기
-- 대상항목 : 다음
-- 작성자 : 박치영, 작성일 : 2002/11/20 수정일 : 2002/11/20
-------------------------------------------------------------------
(
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 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;
RETURN v_pic;
EXCEPTION
WHEN OTHERS THEN
RETURN '';
END;
/
DROP FUNCTION NAMSAN3.FUN_SOURCE_STATUS;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_SAM_REPAY_CNT;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_SAM_REPAY_CNT
(
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_RET NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM RF_REPAY_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_TIMES BETWEEN IN_ST AND IN_ED
AND TRANS_FILE_CREATE_YN = '0';
RETURN V_RET;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_SAM_REPAY_CNT;
/
DROP FUNCTION NAMSAN3.FUN_RFID_CAR;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_RFID_CAR
(
IN_TAG IN CHAR
)
RETURN VARCHAR2
IS
V_CAR VARCHAR2(20) := '';
BEGIN
SELECT CAR_NO
INTO V_CAR
FROM RFID_INFO
WHERE RFID_TAG = RTRIM(IN_TAG,' ');
RETURN V_CAR;
EXCEPTION WHEN OTHERS THEN
V_CAR := '';
RETURN V_CAR;
END FUN_RFID_CAR;
/
DROP FUNCTION NAMSAN3.FUN_RET_LAST_DAY;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_NEW_CAR_TYPE;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_NEW_CAR_TYPE
(
IN_CAR_NUM IN CHAR
)
RETURN NUMBER
IS
V_RET NUMBER := 0;
V_CNT NUMBER := 0;
-- 2010.8.11 KDE 신차량번호 차종판독.. 드뎌한다.
BEGIN
SELECT COUNT(*)
INTO V_CNT
FROM CARS_TYPE_CODE_INFO
WHERE NEW_ST <= IN_CAR_NUM
AND NEW_ED >= IN_CAR_NUM;
IF V_CNT = 0 THEN
V_RET := 5;
ELSIF V_CNT > 0 THEN
SELECT CARS_TYPE_ID
INTO V_RET
FROM CARS_TYPE_CODE_INFO
WHERE NEW_ST <= IN_CAR_NUM
AND NEW_ED >= IN_CAR_NUM;
END IF;
RETURN V_RET;
EXCEPTION WHEN NO_DATA_FOUND THEN
V_RET := 5;
END FUN_NEW_CAR_TYPE;
/
DROP FUNCTION NAMSAN3.FUN_MONEY_FROM_FARE_TER;
CREATE OR REPLACE FUNCTION NAMSAN3.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
and delete_yn = '0';
RETURN V_CASH;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_MONEY_FROM_FARE_TER;
/
DROP FUNCTION NAMSAN3.FUN_MONEY_FROM_FARE_INFO1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_MONEY_FROM_FARE_INFO;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_HISTORY_INS_CHK;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_HISTORY_INS_CHK
/*************************************************************
** 검색시작일자, 종료일자, 현진행코드를 입력받아
** history 파일을 만들었는지 판별한다.
** 생성 건수를 반환한다.
** 적용범위 : penalty history create
** 작성자 : 박치영 작성일 : 2002/10/03 수정일 : 2002/11/2
**************************************************************/
(
in_from IN char, -- 검색시작일자
in_to IN char, -- 검색종료일자
in_motion IN char -- 현 진행 코드
) RETURN number
IS
p_count number;
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 NAMSAN3.FUN_GET_WORKER;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_WORKCNT1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_WORKCNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_TTJ502Q;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_SYSDATE;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_MANAGER;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_JPG;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_JINGSU_DAY;
CREATE OR REPLACE FUNCTION NAMSAN3.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.
******************************************************************************/
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 NAMSAN3.FUN_GET_ISSUENAME;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_FAREOFFICE;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_EXAMREASON;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_EMPLOYEE;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_DEPTNM;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_DAY_NAME;
CREATE OR REPLACE FUNCTION NAMSAN3.FUN_GET_DAY_NAME
(
IN_YEAR IN CHAR,
IN_MONTH IN CHAR,
IN_DAY IN CHAR
)
RETURN VARCHAR2
-- 일자받아서 요일 리턴....
-- 수정일 : 2003/04/28 수정자 : arcadia
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 NAMSAN3.FUN_GET_DAY;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_COLLECT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_CAR_SALE;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_CARTYPE;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_BOOTH1;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_GET_BOOTH;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_COUPON_COUNT;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_COMMON_ERASER;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_COMMISSION_TOTAL;
CREATE OR REPLACE FUNCTION NAMSAN3.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
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 v_return_commission := 0;
END;
END FUN_COMMISSION_TOTAL;
/
DROP FUNCTION NAMSAN3.FUN_COMMISSION_ONLY_COMPANY;
CREATE OR REPLACE FUNCTION NAMSAN3.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) 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 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 v_return_commission := 0;
END;
END FUN_COMMISSION_ONLY_COMPANY;
/
DROP FUNCTION NAMSAN3.FUN_COMMISSION_DATE;
CREATE OR REPLACE FUNCTION NAMSAN3.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 v_return_commission := 0;
END;
END FUN_COMMISSION_DATE;
/
DROP FUNCTION NAMSAN3.FUN_COMMISSION_COMPANY;
CREATE OR REPLACE FUNCTION NAMSAN3.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 v_return_commission := 0;
END;
END FUN_COMMISSION_COMPANY;
/
DROP FUNCTION NAMSAN3.FUN_CARS_CODE_INFO_C;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_BOOTH_C;
CREATE OR REPLACE FUNCTION NAMSAN3.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 NAMSAN3.FUN_BOOTH;
CREATE OR REPLACE FUNCTION NAMSAN3.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;
/