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.

26748 lines
959 KiB
SQL

CREATE OR REPLACE PACKAGE NAMSAN3.PKG_WORK_STATUS_REG IS
/******************************************************************************
NAME: PKG_WORK_STATUS_REG
PURPOSE: ?????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_WORK_STATUS_REG or PKG_WORK_STATUS_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_WORK_STATUS_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_WORKER_WORK2
-----------------------------------
-- 2010.7.1 KIM DONG EUN
-----------------------------------
is
TYPE table_rec IS RECORD
(v_id char,
v_name varchar2(10)
);
TYPE cur_code IS REF CURSOR
RETURN table_rec;
end PKG_WORKER_WORK2;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_WORKER_WORK1
-----------------------------------
-- 2010.7.1 KIM DONG EUN
-----------------------------------
is
TYPE table_rec IS RECORD
(v_name varchar2(10),
v_year char,
v_month char,
v_time char
);
TYPE cur_code IS REF CURSOR
RETURN table_rec;
end PKG_WORKER_WORK1;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_WORKER_WORK
-----------------------------------
-- 2010.7.1 KIM DONG EUN
-----------------------------------
is
TYPE table_rec IS RECORD
(v_name varchar2(10),
v_date char,
v_time char
);
TYPE cur_code IS REF CURSOR
RETURN table_rec;
end PKG_WORKER_WORK;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_worker_info1
-----------------------------------
-- ??? ?? - ??? ???, ????
-- kim dong eun
-----------------------------------
is
TYPE table_rec IS RECORD
(v_id char,
v_name varchar2(10)
);
TYPE cur_code IS REF CURSOR
RETURN table_rec;
end pkg_worker_info1;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_worker_info is
----------------------------------------
-- ?????? id? ?? ?????
-- ????.
------------------------------------------
TYPE table_rec IS RECORD
(
v_id char,
v_seqno varchar2(120),
v_pw varchar2(8),
v_name varchar2(10),
v_shift char,
v_tel_no varchar2(15),
v_pcs_no varchar2(15),
v_retire char,
v_c_date date,
v_creater varchar2(10),
v_u_date date,
v_updater varchar2(10)
);
TYPE cur_worker IS REF CURSOR
RETURN table_rec;
end pkg_worker_info;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_TRE503Q IS
FUNCTION FUN_DAY_CNT ( IN_ST IN CHAR, IN_ED IN CHAR) RETURN NUMBER;
FUNCTION FUN_BUL (IN_BOOTH IN CHAR, IN_DATE IN CHAR) RETURN NUMBER;
FUNCTION FUN_BEFORE ( IN_BOOTH IN CHAR, IN_DATE IN CHAR ) Return Number;
FUNCTION FUN_PRESENT( IN_BOOTH IN CHAR, IN_DATE IN CHAR ) RETURN NUMBER;
PROCEDURE SP_TRE503Q (IN_ROW IN NUMBER, IN_ST IN CHAR, IN_ED IN CHAR,
OUT_DATE OUT CHAR,
OUT_BUL1 OUT NUMBER, OUT_BUL2 OUT NUMBER, OUT_BUL3 OUT NUMBER,
OUT_BUL4 OUT NUMBER, OUT_BUL5 OUT NUMBER, OUT_BUL6 OUT NUMBER,
OUT_BUL7 OUT NUMBER, OUT_BUL8 OUT NUMBER, OUT_BUL9 OUT NUMBER,
OUT_BUL10 OUT NUMBER,
OUT_RE1 OUT NUMBER, OUT_RE2 OUT NUMBER, OUT_RE3 OUT NUMBER,
OUT_RE4 OUT NUMBER, OUT_RE5 OUT NUMBER, OUT_RE6 OUT NUMBER,
OUT_RE7 OUT NUMBER, OUT_RE8 OUT NUMBER, OUT_RE9 OUT NUMBER,
OUT_RE10 OUT NUMBER,
OUT_SALE1 OUT NUMBER, OUT_SALE2 OUT NUMBER, OUT_SALE3 OUT NUMBER,
OUT_SALE4 OUT NUMBER, OUT_SALE5 OUT NUMBER, OUT_SALE6 OUT NUMBER,
OUT_SALE7 OUT NUMBER, OUT_SALE8 OUT NUMBER, OUT_SALE9 OUT NUMBER,
OUT_SALE10 OUT NUMBER );
END PKG_TRE503Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_SIDO IS
TYPE SIDO_REC IS RECORD
(
T_ID CHAR,
T_NAME VARCHAR2(60)
);
TYPE CUR_SIDO IS REF CURSOR
RETURN SIDO_REC;
END;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_SEIZ_WRONG_REG IS
/******************************************************************************
NAME: PKG_SEIZ_WRONG_REG
PURPOSE: ?????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_SEIZ_WRONG_REG or PKG_SEIZ_WRONG_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_SEIZ_WRONG_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_SEIZ_CODE_REG IS
/******************************************************************************
NAME: PKG_SEIZ_CODE_REG
PURPOSE: ?????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_SEIZ_CODE_REG or PKG_SEIZ_CODE_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_SEIZ_CODE_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_RETURN_REASON_REG IS
/******************************************************************************
NAME: PKG_RETURN_REASON_REG
PURPOSE: 반송사유코드 등록,수정,삭제
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_RETURN_REASON_REG or PKG_RETURN_REASON_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_RETURN_REASON_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_return_reason_id
is
TYPE table_rec IS RECORD
(
RETURN_REASON_ID CHAR(2),
RETURN_REASON_FULL_NAME VARCHAR2(60),
RETURN_REASON_ABB_NAME VARCHAR(40),
USE_YN CHAR(1),
CREATE_DATE DATE,
CREATER VARCHAR(10),
UPDATE_DATE DATE,
UPDATER VARCHAR(10)
);
TYPE cur_reason IS REF CURSOR
RETURN table_rec;
END pkg_return_reason_id;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_RECEIPT_REG IS
/******************************************************************************
NAME: PKG_RECEIPT_REG
PURPOSE: ?????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_RECEIPT_REG or PKG_RECEIPT_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_RECEIPT_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_READ_RESULT_REG IS
/******************************************************************************
NAME: SP_READ_RESULT_REG
PURPOSE: ???????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: SP_READ_RESULT_REG or SP_READ_RESULT_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_READ_RESULT_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_READING_REG IS
/******************************************************************************
NAME: PKG_REDING_REG
PURPOSE: ?????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_REDING_REG or PKG_REDING_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_READING_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_project_info is
----------------------------------------
-- project_info ? id,name? ?? ?????
-- ????.
------------------------------------------
TYPE table_rec IS RECORD
(
v_code_id char,
v_full_name varchar2(120));
TYPE cur_project IS REF CURSOR
RETURN table_rec;
end pkg_project_info;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_part_Reg is
--------------------------------------------------------
-- ??,??,?? ???.. kim dong eun, 2002-08-26
-- part_code_info
--------------------------------------------------------
procedure Insert_Part(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Update_Part(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Delete_Part(in_id char);
procedure count_part(in_id in char, out_val out number);
end pkg_part_Reg;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_OWNER_REG IS
/******************************************************************************
NAME: PKG_OWNER_REG
PURPOSE: ?????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_OWNER_REG or PKG_OWNER_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_OWNER_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_NOTICE_WRONG_REG IS
/******************************************************************************
NAME: PKG_NOTICE_WRONG_REG
PURPOSE: ???????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_NOTICE_WRONG_REG or PKG_NOTICE_WRONG_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_NOTICE_WRONG_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_NOTICE_REG IS
/******************************************************************************
NAME: PKG_NOTICE_REG
PURPOSE: ?????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_NOTICE_REG or PKG_NOTICE_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_NOTICE_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_NOTCONFIRM_REG IS
/******************************************************************************
NAME: PKG_NOTCONFIRM_REG
PURPOSE: ?????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_NOTCONFIRM_REG or PKG_NOTCONFIRM_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_NOTCONFIRM_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_MOTION_REG IS
/******************************************************************************
NAME: PKG_MOTION_REG
PURPOSE: ???? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_MOTION_REG or PKG_MOTION_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_MOTION_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_MOTION_INFO IS
/******************************************************************************
NAME: PKG_MOTION_INFO
PURPOSE: ??????? ?????? DDDW? ???.
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-26 PARK CHI YOUNG 1. Created this package.
Object Name: PKG_MOTION_INFO or PKG_MOTION_INFO
Sysdate: 2002-10-26
Date/Time: 2002-10-26 ?? 12:44:51
Date: 2002-10-26
Time: ?? 12:44:51
Username: PARK CHI YOUNG
******************************************************************************/
TYPE table_rec IS RECORD
(
MOTION_ID CHAR,
MOTION_FULL_NAME VARCHAR2(60),
MOTION_ABB_NAME VARCHAR2(40),
USE_YN CHAR,
CREATE_DATE DATE,
CREATER VARCHAR2(10),
UPDATE_DATE DATE,
UPDATER VARCHAR2(10)
);
TYPE cur_motion IS REF CURSOR
RETURN table_rec;
END PKG_MOTION_INFO;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_MEASURE_REG IS
/******************************************************************************
NAME: PKG_MEASURE_REG
PURPOSE: ?????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_MEASURE_REG or PKG_MEASURE_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_MEASURE_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_measure_info
is
TYPE table_rec IS RECORD
(v_id char,
v_full_name varchar2(60));
TYPE cur_measure IS REF CURSOR
RETURN table_rec;
end pkg_measure_info;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_manage_info is
----------------------------------------
-- 사용자 정보 리턴
------------------------------------------
TYPE table_rec IS RECORD
(
v_id char,
v_part_id char,
v_pw varchar2(8),
v_name varchar2(10),
v_tel_no varchar2(15),
v_pcs_no varchar2(15),
v_retire char,
v_admin char,
v_c_date date,
v_creater varchar2(10),
v_u_date date,
v_updater varchar2(10)
);
TYPE cur_manage IS REF CURSOR
RETURN table_rec;
end pkg_manage_info;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_LAVY_REG IS
/******************************************************************************
NAME: PKG_LAVY_REG
PURPOSE: ???????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_LAVY_REG or PKG_LAVY_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_LAVY_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_issue_Reg is
-------------------------------------------------------
-- ??,??,?? ???.. kim dong eun, 2002-08-26
-- issue_office_code_info
-------------------------------------------------------
procedure Insert_Issue(in_id char,in_card char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Update_Issue(in_id char,in_card char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Delete_Issue(in_id char);
procedure count_issue(in_id in char, out_val out number);
end pkg_issue_Reg;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_ISSUE_INFO IS
/******************************************************************************
NAME: PKG_ISSUE_INFO
PURPOSE: To calculate the desired information.
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-15 KIM DONG EUN 1. Created this package.
Object Name: PKG_ISSUE_INFO or PKG_ISSUE_INFO
Sysdate: 2002-10-15
Date/Time: 2002-10-15 ?? 9:56:36
Date: 2002-10-15
Time: ?? 9:56:36
Username: KIM DONG EUN
******************************************************************************/
TYPE table_rec IS RECORD
(
v_issue_id char,
v_card_id char,
v_full varchar2(60),
v_abb varchar2(40),
v_use char,
v_c_date date,
v_creater varchar2(10),
v_u_date date,
v_updater varchar2(10)
);
TYPE cur_exempt IS REF CURSOR
RETURN table_rec;
END PKG_ISSUE_INFO;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_ISSUE_FROM_FARE_INFO IS
/******************************************************************************
NAME: PKG_ISSUE_FROM_FARE_INFO
PURPOSE: 요금정보 + 카드발행사에서 카드발행사, 명, 금액을 가져온다.
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-15 KIM DONG EUN 1. Created this package.
Object Name: PKG_ISSUE_FROM_FARE_INFO or PKG_ISSUE_FROM_FARE_INFO
Sysdate: 2002-10-15
Date/Time: 2002-10-15 ?? 1:47:25
Date: 2002-10-15
Time: ?? 1:47:25
Username: KIM DONG EUN
******************************************************************************/
TYPE TABLE_REC IS RECORD
(
V_ID CHAR,
V_NAME VARCHAR2(60),
V_AMOUNT NUMBER
);
TYPE CUR_AMOUNT IS REF CURSOR
RETURN TABLE_REC;
END PKG_ISSUE_FROM_FARE_INFO;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_file_Reg is
-----------------------------------------------------------
-- ??,??,?? ???.. kim dong eun, 2002-08-26
-- file_kind_code_info
-----------------------------------------------------------
procedure Insert_File(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Update_File(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Delete_File(in_id char);
procedure count_file(in_id in char, out_val out number);
end pkg_file_Reg;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_fare_Reg is
------------------------------------------------------
-- ??,??,?? ???.. kim dong eun, 2002-08-26
-- fare_office_code_info
------------------------------------------------------
procedure Insert_Fare(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Update_Fare(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Delete_Fare(in_id char);
procedure count_fare(in_id in char, out_val out number);
end pkg_fare_Reg;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_fare_info is
----------------------------------------
-- ?????? ????,???? ?? ?????
-- ????.(???? ???, ???)
------------------------------------------
TYPE table_rec IS RECORD
(
v_stt_date date,
v_collect_id char,
v_issue_id char,
v_end_date date,
v_trans_amount number,
v_dis_kbn char,
v_dis_rate number,
v_dis_amount number,
v_levy_amount number,
v_fine_amount number,
v_c_date date,
v_creater varchar2(10),
v_u_date date,
v_updater varchar2(10)
);
TYPE cur_fare IS REF CURSOR
RETURN table_rec;
end pkg_fare_info;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_exempt_cars_info is
----------------------------------------
-- ???????? ????, ????? ?? ?????
-- ????.
------------------------------------------
TYPE table_rec IS RECORD
(
v_enforce_date date,
v_car_no varchar2(20),
v_car_type char,
v_docu_no varchar2(20),
v_position varchar2(60),
v_car_type_name varchar2(20),
v_owner varchar2(10),
v_end_kbn char,
v_end_date date,
v_remark varchar2(60),
v_docu_date date,
v_re_kbn char,
v_re_car_no varchar2(20),
v_c_date date,
v_creater varchar2(10),
v_u_date date,
v_updater varchar2(10)
);
TYPE cur_exempt IS REF CURSOR
RETURN table_rec;
end pkg_exempt_cars_info;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_equip_Reg is
-----------------------------------------------------
-- ??,??,?? ???.. kim dong eun, 2002-08-26
-- equipment_code_info
-----------------------------------------------------
procedure Insert_Equip(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Update_Equip(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Delete_Equip(in_id char);
procedure count_equip(in_id in char, out_val out number);
end pkg_equip_Reg;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_CONFIRM_REG IS
/******************************************************************************
NAME: PKG_CONFIRM_REG
PURPOSE: ?????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_CONFIRM_REG or PKG_CONFIRM_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_CONFIRM_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_confirm_info
is
TYPE table_rec IS RECORD
(v_id char,
v_full_name varchar2(60));
TYPE cur_confirm IS REF CURSOR
RETURN table_rec;
end pkg_confirm_info;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_collect_Reg is
-------------------------------------------------------
-- ??,??,?? ???.. kim dong eun, 2002-08-26
-- collect_code_info
-------------------------------------------------------
procedure Insert_collect(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Update_collect(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Delete_collect(in_id char);
procedure count_collect(in_id in char, out_val out number);
end pkg_collect_Reg;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_code_info
-----------------------------------
-- ??? ?? ??
-----------------------------------
is
TYPE table_rec IS RECORD
(v_id char,
v_full_name varchar2(60)
);
TYPE cur_code IS REF CURSOR
RETURN table_rec;
end pkg_code_info;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_CIVIL_S_REG IS
/******************************************************************************
NAME: PKG_CIVIL_S_REG
PURPOSE: ?????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_CIVIL_S_REG or PKG_CIVIL_S_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_CIVIL_S_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_CIVIL_SUMMARY_CODE IS
/******************************************************************************
NAME: PKG_CIVIL_SUMMARY_CODE
PURPOSE: 민원요지 코드를 가져온다.
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-15 KIM DONG EUN 1. Created this package.
Object Name: PKG_CIVIL_SUMMARY_CODE or PKG_CIVIL_SUMMARY_CODE
Sysdate: 2002-10-15
Date/Time: 2002-10-15 ?? 9:56:36
Date: 2002-10-15
Time: ?? 9:56:36
Username: KIM DONG EUN
******************************************************************************/
TYPE table_rec IS RECORD
(
CIVIL_SUMMARY_ID CHAR,
CIVIL_SUMMARY_FULL_NAME VARCHAR2(60),
CIVIL_SUMMARY_ABB_NAME VARCHAR2(40),
USE_YN CHAR,
CREATE_DATE DATE,
CREATER VARCHAR2(10),
UPDATE_DATE DATE,
UPDATER VARCHAR2(10)
);
TYPE cur_civil IS REF CURSOR
RETURN table_rec;
END PKG_CIVIL_SUMMARY_CODE;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_CIVIL_P_REG IS
/******************************************************************************
NAME: PKG_CIVIL_P_REG
PURPOSE: ?????? ??,??,?? ???
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-27 KIM DONG EUN 1. Created this package.
Object Name: PKG_CIVIL_P_REG or PKG_CIVIL_P_REG
Sysdate: 2002-10-27
Date/Time: 2002-10-27 ?? 4:18:29
Date: 2002-10-27
Time: ?? 4:18:29
Username: KIM DONG EUN
******************************************************************************/
PROCEDURE INSERT_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE UPDATE_FILE(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
PROCEDURE DELETE_FILE(in_id char);
PROCEDURE COUNT_FILE(in_id in char, out_val out number);
END PKG_CIVIL_P_REG;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_catalog_Reg is
-------------------------------------------------------------------
-- ??,??,??,??? ???.. kim dong eun, 2002-08-26
-- catalog_code_info
-------------------------------------------------------------------
procedure Insert_Catalog(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Update_Catalog(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Delete_Catalog(in_id char);
procedure count_catalog(in_id in char, out_val out number);
end pkg_catalog_Reg;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_cars_Reg is
-------------------------------------------------------------------------
-- ??,??,?? ???.. kim dong eun, 2002-08-26
-- ??????
-- cars_type_code_info
---------------------------------------------------------------------------
procedure Insert_Cars(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_st_fno char, in_ed_fno char, in_st_sno char, in_ed_sno char,in_name varchar2);
procedure Update_Cars(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_st_fno char, in_ed_fno char, in_st_sno char, in_ed_sno char,in_name varchar2);
procedure Delete_Cars(in_id char);
procedure count_Cars(in_id in char, out_val out number);
end pkg_cars_Reg;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_cars_info is
/******************************************************************************
NAME: pkg_cars_info
PURPOSE: ????? ?????? ??????? ???.
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-15 KIM DONG EUN 1. Created this package.
Object Name: pkg_cars_info or pkg_cars_info
Sysdate: 2002-10-15
Date/Time: 2002-10-15 ?? 9:56:36
Date: 2002-10-15
Time: ?? 9:56:36
Username: KIM DONG EUN
******************************************************************************/
TYPE table_rec IS RECORD
(
v_id char,
v_full varchar(60),
v_abb varchar(40),
v_use char,
v_stt_fno char,
v_end_eno char,
v_stt_sno char,
v_end_sno char,
v_c_date date,
v_creater varchar2(10),
v_u_date date,
v_updater varchar2(10)
);
TYPE cur_cars IS REF CURSOR
RETURN table_rec;
end pkg_cars_info;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_card_Reg is
/******************************************************************************
NAME: pkg_card_Reg
PURPOSE: To calculate the desired information.
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-15 KIM DONG EUN 1. Created this package.
Object Name: pkg_card_Reg or pkg_card_Reg
Sysdate: 2002-10-15
Date/Time: 2002-10-15 ?? 1:47:25
Date: 2002-10-15
Time: ?? 1:47:25
Username: KIM DONG EUN
******************************************************************************/
procedure Insert_card(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Update_card(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Delete_card(in_id char);
procedure count_card(in_id in char, out_val out number);
end pkg_card_Reg;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_booth_Reg is
-------------------------------------------------------
-- ??,??,?? ???.. kim dong eun, 2002-08-26
-- ????????
-- booth_code_info
-------------------------------------------------------
procedure Insert_booth(in_fare char,in_booth char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_inout char,in_name varchar2);
procedure Update_booth(in_fare char,in_booth char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_inout char,in_name varchar2);
procedure Delete_booth(in_fare char, in_booth char);
procedure count_booth(in_fare in char, in_booth in char, out_val out number);
end pkg_booth_Reg;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_BOOTH_INFO IS
/******************************************************************************
NAME: PKG_BOOTH_INFO
PURPOSE: To calculate the desired information.
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2002-10-15 KIM DONG EUN 1. Created this package.
Object Name: PKG_BOOTH_INFO or PKG_BOOTH_INFO
Sysdate: 2002-10-15
Date/Time: 2002-10-15 ?? 1:47:25
Date: 2002-10-15
Time: ?? 1:47:25
Username: KIM DONG EUN (set in TOAD Options, Procedure Editor)
******************************************************************************/
TYPE TABLE_REC IS RECORD
(
v_fare char,
v_booth char,
v_full varchar(60),
v_abb varchar(40),
v_use char,
v_inout char,
v_c_date date,
v_creater varchar2(10),
v_u_date date,
v_updater varchar2(10)
);
TYPE CUR_BOOTH IS REF CURSOR
RETURN TABLE_REC;
END PKG_BOOTH_INFO;
/
CREATE OR REPLACE PACKAGE NAMSAN3.pkg_bad_Reg is
-------------------------------------------------------
-- ??,??,?? ???.. kim dong eun, 2002-08-26
-- bad_code_info
-------------------------------------------------------
procedure Insert_Bad(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Update_Bad(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2);
procedure Delete_Bad(in_id char);
procedure count_bad(in_id in char, out_val out number);
end pkg_bad_Reg;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_AUTO_ZIPGE IS
FUNCTION FUN_MONEY(IN_DATE IN CHAR, IN_COLLECT IN CHAR) RETURN NUMBER;
FUNCTION FUN_CARTIME_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;
PROCEDURE SP_AUTO_CARTIME;
PROCEDURE SP_CARTIME_1(IN_TIME IN CHAR);
PROCEDURE SP_CARTIME_2(IN_TIME IN CHAR);
PROCEDURE SP_CARTIME_3(IN_TIME IN CHAR);
FUNCTION FUN_DAY(IN_DATE IN CHAR) RETURN CHAR;
PROCEDURE SP_AUTO_CARDAY;
FUNCTION FUN_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) RETURN NUMBER;
PROCEDURE SP_AUTO_CARMONTH;
PROCEDURE SP_AUTO_CARYEAR;
PROCEDURE SP_AUTO_TIME;
FUNCTION FUN_ADJUST_SEL(IN_GUBUN IN CHAR,IN_ID IN CHAR,IN_BOOTH IN CHAR,IN_DATE IN CHAR) RETURN NUMBER;
PROCEDURE SP_AUTO_DAY;
PROCEDURE SP_AUTO_DAY_FIX;
PROCEDURE SP_AUTO_DAY_OVERFARE;
FUNCTION FUN_WORKER_TIME(IN_FARE IN CHAR,IN_ID IN CHAR,IN_DATE IN CHAR) RETURN VARCHAR2;
PROCEDURE SP_AUTO_WORKER_TIME;
FUNCTION FUN_WEEK_SAT_CNT1(IN_YEAR IN CHAR,IN_MONTH IN CHAR,IN_FARE IN CHAR,IN_BOOTH IN CHAR,
IN_GUBUN IN CHAR) RETURN NUMBER;
PROCEDURE SP_AUTO_MONTH;
PROCEDURE SP_AUTO_MONTH_FIX;
PROCEDURE SP_AUTO_MONTH_OVERFARE;
PROCEDURE SP_AUTO_YEAR;
PROCEDURE SP_AUTO_YEAR_OVERFARE;
/******************************************************************************
NAME: PKG_AUTO_ZIPGE
PURPOSE: 자동 시간,일,월,년 집계를 한다.
REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2003-06-20 1. Created this package.
******************************************************************************/
END PKG_AUTO_ZIPGE;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PKG_ADJUST_WORKER
IS
-- 2010.7.7 KDE 징수원이력정보 적용...
TYPE TYPE_REC IS RECORD
-- 2010.7.7 KDE 징수원이력정보 적용...
(
OUT_ID CHAR,
OUT_NAME VARCHAR2(10),
OUT_OFFICE CHAR,
OUT_BOOTH CHAR,
OUT_YEAR CHAR,
OUT_MONTH CHAR,
OUT_DAY CHAR,
OUT_ST CHAR,
OUT_ED CHAR,
OUT_YN CHAR,
OUT_SEQNO CHAR
);
TYPE CUR_DATA IS REF CURSOR
RETURN TYPE_REC;
END;
/
CREATE OR REPLACE PACKAGE NAMSAN3.Pbc_Conv_1 AS
/*==============================================================================*/
/* 프로시져명 : Proc_main (DATA Convert)
/*
/* 작 성 자 : 이용현
/* 작성일자 : 2002년 12월 8일
/* Copyright(C) 2002 T.S.W Corporation. All Rights Reserved.
/*==============================================================================*/
PROCEDURE proc_main(
pc_input_text IN VARCHAR2, --
pn_rc OUT NUMBER, --
out_penalty_manage_year OUT CHAR, -- 과태료관리년도( col:1-2 )
out_penalty_seqno OUT CHAR, -- 과태료일련번호( col:3-8 )
out_worker_id OUT CHAR, -- 근로자ID(우선, 과태료일련번호로 세팅, 나중에 수정)( col:3-8 )
out_fare_office_id OUT CHAR, -- 요금소코드( 현장사무소구분,col:9-10 ),
out_pass_yyyy OUT CHAR, -- 통행일자:년( col:11-14 )
out_pass_mm OUT CHAR, -- 통행일자:월( col:15-16 )
out_pass_dd OUT CHAR, -- 통행일자:일( col:17-18 )
out_pass_yyyymmdd OUT CHAR, -- 통행일자:년월일( col:11-18 )
out_pass_time OUT CHAR, -- 통행시간:시분( col:19-22 )
out_car_no OUT VARCHAR2, -- 차량번호( col:23-37 )
out_owner OUT VARCHAR2, -- 차량소유자성명( col:38-67 )
out_car_type_name OUT VARCHAR2, -- 차종명( col:68-87 )
out_resident_date OUT CHAR, -- 차량등록일자(년월일)( col:88-95 )
out_address_name OUT VARCHAR2, -- 현주소( col:97-140 )
out_address_number OUT VARCHAR2, -- 현주소 번지( col:141-200 )
out_post_no1 OUT CHAR, -- 우편번호:지역( col:201-203 )
out_post_no2 OUT CHAR, -- 우편번호:구분( col:204-206 )
out_send_date_1 OUT CHAR, -- 1차, 고지일자(년월일)발송일자( col:207-214 )
out_return_date_1 OUT CHAR, -- 1차, 반송일자( col:215-222 )
out_send_date_2 OUT CHAR, -- 2차, 고지일자(년월일)발송일자( col:223-230 )
out_return_date_2 OUT CHAR, -- 3차, 반송일자( col:231-238 )
out_send_date_3 OUT CHAR, -- 발송일자(압류촉탁,년월일)( col:239-246 )
out_return_date_3 OUT CHAR, -- 반송일자(압류촉탁,년월일)( col:247-254 )
out_seizure_date OUT CHAR, -- 압류일자( col:255-262 )
out_seizure_yyyy OUT CHAR, -- 압류일자(년)( col:255-258 )
out_seizure_termi_date OUT CHAR, -- 압류해지일자( col:263-270 )
out_notice_wrong_id OUT CHAR, -- 고지취소/불가구분( col:272 )
out_notice_wrong_reason OUT VARCHAR2, -- 고치쥐소/불가사유( col:273-292 )
out_pass_amount OUT VARCHAR2, -- 통행료( col:293-297 )
out_fine_amount OUT VARCHAR2, -- 과태료( col:298-303 )
out_receipt_process_kbn OUT CHAR, -- 납부완료부호( col:304 )
out_receipt_date OUT CHAR, -- 납부완료일자( col:305-312 )
out_work_name OUT VARCHAR2, -- 현장업무담당자( col:305-312 )
out_receipt_agency OUT VARCHAR2, -- 납부장소명칭(은행)( col:323-352 )
out_return_kbn OUT CHAR, -- 반송사유코드( col:372 )
out_return_id OUT CHAR -- 반송고지코드( col:372 )
);
END Pbc_Conv_1 ;
/
CREATE OR REPLACE PACKAGE NAMSAN3.Pbc_Conv AS
/*==============================================================================*/
/* 프로시져명 : Proc_main (DATA Convert)
/*
/* 작 성 자 : 이용현
/* 작성일자 : 2002년 12월 8일
/* Copyright(C) 2002 T.S.W Corporation. All Rights Reserved.
/*==============================================================================*/
PROCEDURE proc_main(
in_penalty_manage_year IN CHAR, -- 과태료관리년도( col:1-2 )
in_penalty_seqno IN CHAR, -- 과태료일련번호( col:3-8 )
in_fare_office_id IN CHAR, -- 요금소코드( 현장사무소구분,col:9-10 ),
in_pass_yyyy IN CHAR, -- 통행일자:년( col:11-14 )
in_pass_mm IN CHAR, -- 통행일자:월( col:15-16 )
in_pass_dd IN CHAR, -- 통행일자:일( col:17-18 )
in_pass_time IN CHAR, -- 통행시간:시분( col:19-22 )
in_car_no IN VARCHAR2, -- 차량번호( col:23-37 )
in_owner IN VARCHAR2, -- 차량소유자성명( col:38-67 )
in_car_type_name IN VARCHAR2, -- 차종명( col:68-87 )
in_resident_date IN CHAR, -- 차량등록일자(년월일)( col:88-95 )
in_address_name IN VARCHAR2, -- 현주소( col:97-140 )
in_address_number IN VARCHAR2, -- 현주소 번지( col:141-200 )
in_post_no1 IN CHAR, -- 우편번호:지역( col:201-203 )
in_post_no2 IN CHAR, -- 우편번호:구분( col:204-206 )
in_send_date_1 IN CHAR, -- 1차, 고지일자(년월일)발송일자( col:207-214 )
in_return_date_1 IN CHAR, -- 1차, 반송일자( col:215-222 )
in_send_date_2 IN CHAR, -- 2차, 고지일자(년월일)발송일자( col:223-230 )
in_return_date_2 IN CHAR, -- 3차, 반송일자( col:231-238 )
in_send_date_3 IN CHAR, -- 발송일자(압류촉탁,년월일)( col:239-246 )
in_return_date_3 IN CHAR, -- 반송일자(압류촉탁,년월일)( col:247-254 )
in_seizure_date IN CHAR, -- 압류일자( col:255-262 )
in_seizure_yyyy IN CHAR, -- 압류일자(년)( col:255-258 )
in_seizure_termi_date IN CHAR, -- 압류해지일자( col:263-270 )
in_seizure_wrong_id IN CHAR, -- 압류불가구분( col:272 )
in_notice_wrong_id IN CHAR, -- 고지취소/불가구분( col:272 )
in_notice_wrong_reason IN VARCHAR2, -- 고치쥐소/불가사유( col:273-292 )
in_pass_amount IN VARCHAR2, -- 통행료( col:293-297 )
in_fine_amount IN VARCHAR2, -- 과태료( col:298-303 )
in_receipt_process_kbn IN CHAR, -- 납부완료부호( col:304 )
in_receipt_date IN CHAR, -- 납부완료일자( col:305-312 )
in_work_name IN VARCHAR2, -- 현장업무담당자( col:305-312 )
in_receipt_agency IN VARCHAR2, -- 납부장소명칭(은행)( col:323-352 )
in_return_kbn IN CHAR, -- 반송사유코드( col:372 )
in_return_id IN CHAR, -- 반송고지코드( col:372 )
pn_rc OUT NUMBER --
);
END Pbc_Conv ;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_PROGRESS_STATUS
IS
/************************************************
** 진행상태를 반환
** 박치영 2002/10/27
************************************************/
TYPE TYP_MOTION_INFO_REC IS RECORD
(
g_motion_id CHAR,
g_motion_fname VARCHAR2(60)
);
TYPE CUR_STATUS IS REF CURSOR
RETURN TYP_MOTION_INFO_REC;
END;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TTJ503Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 시간대별 유입유출 통행량
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TTJ503Q( v_row IN NUMBER,
v_office IN CHAR,
v_from_date IN CHAR,
v_to_date IN CHAR,
out_time OUT VARCHAR2,
out_in_cash OUT NUMBER,
out_in_k_cash OUT NUMBER,
out_in_sun OUT NUMBER,
out_in_k_sun OUT NUMBER,
out_in_who OUT NUMBER,
out_in_k_who OUT NUMBER,
out_in_coupon OUT NUMBER,
out_in_k_coupon OUT NUMBER,
out_in_minap OUT NUMBER,
out_in_free OUT NUMBER,
out_out_cash OUT NUMBER,
out_out_k_cash OUT NUMBER,
out_out_sun OUT NUMBER,
out_out_k_sun OUT NUMBER,
out_out_who OUT NUMBER,
out_out_k_who OUT NUMBER,
out_out_coupon OUT NUMBER,
out_out_k_coupon OUT NUMBER,
out_out_minap OUT NUMBER,
out_out_free OUT NUMBER );
FUNCTION FUN_TTJ503Q_CNT( v_office IN CHAR,v_stt_date IN CHAR,v_end_date IN CHAR ) RETURN NUMBER;
END PAC_GET_TTJ503Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TTJ502Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1. 상하행선(유입-유출) 시간대별 통행대수 현황
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TTJ502Q(v_office IN CHAR,v_stt_date IN CHAR,v_end_date IN CHAR,
v_up01 OUT NUMBER,v_up02 OUT NUMBER,v_up03 OUT NUMBER,
v_up04 OUT NUMBER,v_up05 OUT NUMBER,v_up06 OUT NUMBER,
v_up07 OUT NUMBER,v_up08 OUT NUMBER,v_up09 OUT NUMBER,
v_up10 OUT NUMBER,v_up11 OUT NUMBER,v_up12 OUT NUMBER,
v_up13 OUT NUMBER,v_up14 OUT NUMBER,v_upadd1 OUT NUMBER,v_upadd2 OUT NUMBER,
v_down01 OUT NUMBER,v_down02 OUT NUMBER,v_down03 OUT NUMBER,
v_down04 OUT NUMBER,v_down05 OUT NUMBER,v_down06 OUT NUMBER,
v_down07 OUT NUMBER,v_down08 OUT NUMBER,v_down09 OUT NUMBER,
v_down10 OUT NUMBER,v_down11 OUT NUMBER,v_down12 OUT NUMBER,
v_down13 OUT NUMBER,v_down14 OUT NUMBER,v_downadd1 OUT NUMBER,v_downadd2 OUT NUMBER,
v_up_rate01 OUT NUMBER,v_up_rate02 OUT NUMBER,v_up_rate03 OUT NUMBER,
v_up_rate04 OUT NUMBER,v_up_rate05 OUT NUMBER,v_up_rate06 OUT NUMBER,
v_up_rate07 OUT NUMBER,v_up_rate08 OUT NUMBER,v_up_rate09 OUT NUMBER,
v_up_rate10 OUT NUMBER,v_up_rate11 OUT NUMBER,v_up_rate12 OUT NUMBER,
v_up_rate13 OUT NUMBER,v_up_rate14 OUT NUMBER,v_up_rateadd1 OUT NUMBER,v_up_rateadd2 OUT NUMBER,
v_down_rate01 OUT NUMBER,v_down_rate02 OUT NUMBER,v_down_rate03 OUT NUMBER,
v_down_rate04 OUT NUMBER,v_down_rate05 OUT NUMBER,v_down_rate06 OUT NUMBER,
v_down_rate07 OUT NUMBER,v_down_rate08 OUT NUMBER,v_down_rate09 OUT NUMBER,
v_down_rate10 OUT NUMBER,v_down_rate11 OUT NUMBER,v_down_rate12 OUT NUMBER,
v_down_rate13 OUT NUMBER,v_down_rate14 OUT NUMBER,v_down_rateadd1 OUT NUMBER,v_down_rateadd2 OUT NUMBER,
v_up_tot_car OUT NUMBER,v_up_rate_car OUT NUMBER,v_down_tot_car OUT NUMBER,v_down_rate_car OUT NUMBER);
FUNCTION FUN_TTJ502Q_CNT( v_office IN CHAR,v_stt_date IN CHAR,v_end_date IN CHAR ) RETURN NUMBER;
END PAC_GET_TTJ502Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRP007Q AS
PROCEDURE SP_TRP007Q_1(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER, out_data7 OUT NUMBER,
out_data8 OUT NUMBER, out_data9 OUT NUMBER, out_data10 OUT NUMBER);
PROCEDURE SP_TRP007Q_3(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER, out_data7 OUT NUMBER,
out_data8 OUT NUMBER, out_data9 OUT NUMBER, out_data10 OUT NUMBER);
PROCEDURE SP_TRP007Q_1_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER, out_data7 OUT NUMBER,
out_data8 OUT NUMBER, out_data9 OUT NUMBER, out_data10 OUT NUMBER);
PROCEDURE SP_TRP007Q_3_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER, out_data7 OUT NUMBER,
out_data8 OUT NUMBER, out_data9 OUT NUMBER, out_data10 OUT NUMBER);
PROCEDURE SP_TRP007Q_13_TOTAL(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER, out_data7 OUT NUMBER,
out_data8 OUT NUMBER, out_data9 OUT NUMBER, out_data10 OUT NUMBER);
FUNCTION FUN_TRP007Q_CNT_1(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP007Q_CNT_3(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
END PAC_GET_TRP007Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRP006Q_PREPAY AS
PROCEDURE SP_TRP006Q_13_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER);
PROCEDURE SP_TRP006Q_1_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER);
PROCEDURE SP_TRP006Q_3_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER);
PROCEDURE SP_TRP006Q_1_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2, out_data1 OUT VARCHAR2,
out_data2 OUT VARCHAR2, out_data3 OUT VARCHAR2, out_data4 OUT VARCHAR2);
PROCEDURE SP_TRP006Q_3_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2, out_data1 OUT VARCHAR2,
out_data2 OUT VARCHAR2, out_data3 OUT VARCHAR2, out_data4 OUT VARCHAR2);
FUNCTION FUN_TRP006Q_CNT_1_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP006Q_CNT_3_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
END PAC_GET_TRP006Q_PREPAY;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRP006Q_POSTPAY AS
PROCEDURE SP_TRP006Q_13_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER);
PROCEDURE SP_TRP006Q_1_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER);
PROCEDURE SP_TRP006Q_3_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER);
PROCEDURE SP_TRP006Q_1_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2, out_data1 OUT VARCHAR2,
out_data2 OUT VARCHAR2, out_data3 OUT VARCHAR2, out_data4 OUT VARCHAR2);
PROCEDURE SP_TRP006Q_3_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2, out_data1 OUT VARCHAR2,
out_data2 OUT VARCHAR2, out_data3 OUT VARCHAR2, out_data4 OUT VARCHAR2);
FUNCTION FUN_TRP006Q_CNT_1_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP006Q_CNT_3_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
END PAC_GET_TRP006Q_POSTPAY;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRP006Q AS
PROCEDURE SP_TRP006Q_13_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER);
PROCEDURE SP_TRP006Q_1_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER);
PROCEDURE SP_TRP006Q_3_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER);
PROCEDURE SP_TRP006Q_1_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2, out_data1 OUT VARCHAR2,
out_data2 OUT VARCHAR2, out_data3 OUT VARCHAR2, out_data4 OUT VARCHAR2);
PROCEDURE SP_TRP006Q_3_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2, out_data1 OUT VARCHAR2,
out_data2 OUT VARCHAR2, out_data3 OUT VARCHAR2, out_data4 OUT VARCHAR2);
FUNCTION FUN_TRP006Q_CNT_1_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP006Q_CNT_3_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
END PAC_GET_TRP006Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRP005Q_PREPAY AS
PROCEDURE SP_TRP005Q_13_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_1_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_3_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_1_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_3_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_1_PREPAY_POSTPAY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_3_PREPAY_POSTPAY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
FUNCTION FUN_TRP005Q_CNT_1(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CNT_1_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CNT_3(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CNT_3_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
END PAC_GET_TRP005Q_PREPAY;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRP005Q_POSTPAY AS
PROCEDURE SP_TRP005Q_13_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_1_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_3_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_1_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_3_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_1_PREPAY_POSTPAY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_3_PREPAY_POSTPAY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
FUNCTION FUN_TRP005Q_CNT_1(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CNT_1_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CNT_3(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CNT_3_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
END PAC_GET_TRP005Q_POSTPAY;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRP005Q_COMPANY AS
PROCEDURE SP_TRP005Q_13_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_1_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_3_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_CARD_SUB_TOTAL(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_CARD_SUB_1_TOTAL(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_CARD_SUB_3_TOTAL(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_1_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_3_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_1_PREPAY_POSTPAY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_3_PREPAY_POSTPAY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
FUNCTION FUN_TRP005Q_CARD_CNT(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CARD_1_CNT(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CARD_3_CNT(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CNT_1(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CNT_1_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CNT_3(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CNT_3_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
END PAC_GET_TRP005Q_COMPANY;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRP005Q AS
PROCEDURE SP_TRP005Q_13_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_1_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_3_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_1_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_3_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_1_PREPAY_POSTPAY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
PROCEDURE SP_TRP005Q_3_PREPAY_POSTPAY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
FUNCTION FUN_TRP005Q_CNT_1(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CNT_1_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CNT_3(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP005Q_CNT_3_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
END PAC_GET_TRP005Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRP004Q_PREPAY AS
PROCEDURE SP_TRP004Q_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP004Q_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP004Q_COMPANY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
FUNCTION FUN_TRP004Q_CNT(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP004Q_DAILY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
END PAC_GET_TRP004Q_PREPAY;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRP004Q_POSTPAY AS
PROCEDURE SP_TRP004Q_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP004Q_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP004Q_COMPANY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
FUNCTION FUN_TRP004Q_CNT(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP004Q_DAILY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
END PAC_GET_TRP004Q_POSTPAY;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRP004Q AS
PROCEDURE SP_TRP004Q_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER , out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP004Q_DAILY_SUM(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP004Q_COMPANY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
FUNCTION FUN_TRP004Q_CNT(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP004Q_DAILY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
END PAC_GET_TRP004Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRP003Q AS
PROCEDURE SP_TRP003Q_1_PREPAY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
PROCEDURE SP_TRP003Q_1_POSTPAY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
PROCEDURE SP_TRP003Q_3_PREPAY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
PROCEDURE SP_TRP003Q_3_POSTPAY(v_row IN NUMBER, v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_name OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER,
out_data3 OUT NUMBER , out_data4 OUT NUMBER, out_data5 OUT NUMBER,
out_data6 OUT NUMBER);
PROCEDURE SP_TRP003Q_1_PREPAY_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP003Q_1_POSTPAY_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP003Q_3_PREPAY_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP003Q_3_POSTPAY_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_1_PREPAY_POSTPAY_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_3_PREPAY_POSTPAY_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP003Q_13_PREPAY_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_TRP003Q_13_POSTPAY_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
PROCEDURE SP_13_PREPAY_POSTPAY_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2, out_data1 OUT NUMBER, out_data2 OUT NUMBER, out_data3 OUT NUMBER,
out_data4 OUT NUMBER, out_data5 OUT NUMBER, out_data6 OUT NUMBER);
FUNCTION FUN_TRP003Q_CNT_1_PREPAY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP003Q_CNT_1_POSTPAY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP003Q_CNT_3_PREPAY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
FUNCTION FUN_TRP003Q_CNT_3_POSTPAY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER;
END PAC_GET_TRP003Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRP002Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 징수원 일별, 월별 근무 현황(일별,월별)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP002Q_1(v_row IN NUMBER,v_office IN CHAR, v_from_dt IN CHAR,v_to_dt IN CHAR,
pn_worker_name OUT VARCHAR2 ,pn_count OUT NUMBER, pn_mmdd OUT VARCHAR2, pn_si_bun OUT VARCHAR2);
PROCEDURE SP_TRP002Q_2(v_row IN NUMBER,v_office IN CHAR, v_year IN CHAR,
pn_worker_name OUT VARCHAR2 ,pn_count OUT NUMBER, pn_mm OUT VARCHAR2, pn_si_bun OUT VARCHAR2);
PROCEDURE SP_TRP002Q_SUM1(v_row IN NUMBER,v_office IN CHAR, v_from_dt IN CHAR,v_to_dt IN CHAR,
pn_worker_name OUT VARCHAR2,pn_count OUT NUMBER,pn_si_bun OUT VARCHAR2, g_title OUT VARCHAR2);
PROCEDURE SP_TRP002Q_SUM2(v_row IN NUMBER,v_office IN CHAR, v_year IN CHAR,
pn_worker_name OUT VARCHAR2,pn_count OUT NUMBER,pn_si_bun OUT VARCHAR2, g_title OUT VARCHAR2);
FUNCTION FUN_TRP002Q_CNT( v_office IN CHAR,v_booth_id IN CHAR,v_gubun IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2 ) RETURN NUMBER;
END PAC_GET_TRP002Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.Pac_Get_Trp001q_Prepay AS
/* 일자별 합계*/
PROCEDURE SP_TRP001Q_SUM(v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER);
/* 일자별 소계*/
PROCEDURE SP_TRP001Q_DAILY(v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER);
/* 일자별 전체 건수*/
FUNCTION FUN_TRP001Q_TOTAL(v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR)
RETURN NUMBER;
END Pac_Get_Trp001q_Prepay;
/
CREATE OR REPLACE PACKAGE NAMSAN3.Pac_Get_Trp001q_Postpay AS
/* 일자별 합계*/
PROCEDURE SP_TRP001Q_SUM(v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER);
/* 일자별 소계*/
PROCEDURE SP_TRP001Q_DAILY(v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER);
/* 일자별 전체 건수*/
FUNCTION FUN_TRP001Q_TOTAL(v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR)
RETURN NUMBER;
END Pac_Get_Trp001q_Postpay;
/
CREATE OR REPLACE PACKAGE NAMSAN3.Pac_Get_Trp001q AS
/* 일자별 합계*/
PROCEDURE SP_TRP001Q_SUM(v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER);
/* 일자별 소계*/
PROCEDURE SP_TRP001Q_DAILY(v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER);
/* 일자별 전체 건수*/
FUNCTION FUN_TRP001Q_TOTAL(v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR)
RETURN NUMBER;
END Pac_Get_Trp001q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRN000Q_1 AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 징수원 일별, 월별 근무 현황(일별,월별)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRN000Q_1(v_row IN NUMBER,v_office IN CHAR, v_from_dt IN CHAR,v_to_dt IN CHAR,
pn_worker_name OUT VARCHAR2 ,pn_count OUT NUMBER, pn_mmdd OUT VARCHAR2, pn_si_bun OUT VARCHAR2);
PROCEDURE SP_TRN000Q_2(v_row IN NUMBER,v_office IN CHAR, v_year IN CHAR,
pn_worker_name OUT VARCHAR2 ,pn_count OUT NUMBER, pn_mm OUT VARCHAR2, pn_si_bun OUT VARCHAR2);
PROCEDURE SP_TRN000Q_SUM1(v_row IN NUMBER,v_office IN CHAR, v_from_dt IN CHAR,v_to_dt IN CHAR,
pn_worker_name OUT VARCHAR2,pn_count OUT NUMBER,pn_si_bun OUT VARCHAR2, g_title OUT VARCHAR2);
PROCEDURE SP_TRN000Q_SUM2(v_row IN NUMBER,v_office IN CHAR, v_year IN CHAR,
pn_worker_name OUT VARCHAR2,pn_count OUT NUMBER,pn_si_bun OUT VARCHAR2, g_title OUT VARCHAR2);
FUNCTION FUN_TRN000Q_CNT( v_office IN CHAR,v_booth_id IN CHAR,v_gubun IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2 ) RETURN NUMBER;
END PAC_GET_TRN000Q_1;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRM000Q AS
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** ??? ??? ??? ????: ? ? ?
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRM000Q(
v_office IN CHAR, v_worker IN CHAR, v_stt_date IN CHAR, v_end_date IN CHAR,
v_1st_01 OUT NUMBER, v_1st_02 OUT NUMBER, v_1st_03 OUT NUMBER, v_1st_04 OUT NUMBER,
v_1st_05 OUT NUMBER, v_1st_06 OUT NUMBER, v_1st_07 OUT NUMBER, v_1st_08 OUT NUMBER,
v_1st_09 OUT NUMBER, v_1st_10 OUT NUMBER, v_1st_11 OUT NUMBER, v_1st_12 OUT NUMBER,
v_1st_13 OUT NUMBER, v_1st_14 OUT NUMBER,
v_2st_01 OUT NUMBER, v_2st_02 OUT NUMBER, v_2st_03 OUT NUMBER, v_2st_04 OUT NUMBER,
v_2st_05 OUT NUMBER, v_2st_06 OUT NUMBER, v_2st_07 OUT NUMBER, v_2st_08 OUT NUMBER,
v_2st_09 OUT NUMBER, v_2st_10 OUT NUMBER, v_2st_11 OUT NUMBER, v_2st_12 OUT NUMBER,
v_2st_13 OUT NUMBER, v_2st_14 OUT NUMBER,
v_3st_01 OUT NUMBER, v_3st_02 OUT NUMBER, v_3st_03 OUT NUMBER, v_3st_04 OUT NUMBER,
v_3st_05 OUT NUMBER, v_3st_06 OUT NUMBER, v_3st_07 OUT NUMBER, v_3st_08 OUT NUMBER,
v_3st_09 OUT NUMBER, v_3st_10 OUT NUMBER, v_3st_11 OUT NUMBER, v_3st_12 OUT NUMBER,
v_3st_13 OUT NUMBER, v_3st_14 OUT NUMBER,
v_4st_01 OUT NUMBER, v_4st_02 OUT NUMBER, v_4st_03 OUT NUMBER, v_4st_04 OUT NUMBER,
v_4st_05 OUT NUMBER, v_4st_06 OUT NUMBER, v_4st_07 OUT NUMBER, v_4st_08 OUT NUMBER,
v_4st_09 OUT NUMBER, v_4st_10 OUT NUMBER, v_4st_11 OUT NUMBER, v_4st_12 OUT NUMBER,
v_4st_13 OUT NUMBER, v_4st_14 OUT NUMBER,
v_5st_01 OUT NUMBER, v_5st_02 OUT NUMBER, v_5st_03 OUT NUMBER, v_5st_04 OUT NUMBER,
v_5st_05 OUT NUMBER, v_5st_06 OUT NUMBER, v_5st_07 OUT NUMBER, v_5st_08 OUT NUMBER,
v_5st_09 OUT NUMBER, v_5st_10 OUT NUMBER, v_5st_11 OUT NUMBER, v_5st_12 OUT NUMBER,
v_5st_13 OUT NUMBER, v_5st_14 OUT NUMBER,
v_6st_01 OUT NUMBER, v_6st_02 OUT NUMBER, v_6st_03 OUT NUMBER, v_6st_04 OUT NUMBER,
v_6st_05 OUT NUMBER, v_6st_06 OUT NUMBER, v_6st_07 OUT NUMBER, v_6st_08 OUT NUMBER,
v_6st_09 OUT NUMBER, v_6st_10 OUT NUMBER, v_6st_11 OUT NUMBER, v_6st_12 OUT NUMBER,
v_6st_13 OUT NUMBER, v_6st_14 OUT NUMBER,
v_7st_01 OUT NUMBER, v_7st_02 OUT NUMBER, v_7st_03 OUT NUMBER, v_7st_04 OUT NUMBER,
v_7st_05 OUT NUMBER, v_7st_06 OUT NUMBER, v_7st_07 OUT NUMBER, v_7st_08 OUT NUMBER,
v_7st_09 OUT NUMBER, v_7st_10 OUT NUMBER, v_7st_11 OUT NUMBER, v_7st_12 OUT NUMBER,
v_7st_13 OUT NUMBER, v_7st_14 OUT NUMBER,
v_8st_01 OUT NUMBER, v_8st_02 OUT NUMBER, v_8st_03 OUT NUMBER, v_8st_04 OUT NUMBER,
v_8st_05 OUT NUMBER, v_8st_06 OUT NUMBER, v_8st_07 OUT NUMBER, v_8st_08 OUT NUMBER,
v_8st_09 OUT NUMBER, v_8st_10 OUT NUMBER, v_8st_11 OUT NUMBER, v_8st_12 OUT NUMBER,
v_8st_13 OUT NUMBER, v_8st_14 OUT NUMBER,
v_9st_01 OUT NUMBER, v_9st_02 OUT NUMBER, v_9st_03 OUT NUMBER, v_9st_04 OUT NUMBER,
v_9st_05 OUT NUMBER, v_9st_06 OUT NUMBER, v_9st_07 OUT NUMBER, v_9st_08 OUT NUMBER,
v_9st_09 OUT NUMBER, v_9st_10 OUT NUMBER, v_9st_11 OUT NUMBER, v_9st_12 OUT NUMBER,
v_9st_13 OUT NUMBER, v_9st_14 OUT NUMBER,
v_10st_01 OUT NUMBER, v_10st_02 OUT NUMBER, v_10st_03 OUT NUMBER, v_10st_04 OUT NUMBER,
v_10st_05 OUT NUMBER, v_10st_06 OUT NUMBER, v_10st_07 OUT NUMBER, v_10st_08 OUT NUMBER,
v_10st_09 OUT NUMBER, v_10st_10 OUT NUMBER, v_10st_11 OUT NUMBER, v_10st_12 OUT NUMBER,
v_10st_13 OUT NUMBER, v_10st_14 OUT NUMBER );
END PAC_GET_TRM000Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRI500Q1 AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 요금소 관리정보 일계
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRI500Q1(v_office IN CHAR,v_date IN CHAR,
out_cash_q out number,
out_cash_m out number,
out_sun_q out number,
out_sun_m out number,
out_who_q out number,
out_who_m out number,
out_sale_q out number,
out_sale_m out number,
out_sale_cnt out number,
out_k_cash_q out number,
out_k_sun_q out number,
out_k_who_q out number,
out_k_sale_q out number,
out_k_cash_m out number,
out_k_sun_m out number,
out_k_who_m out number,
out_k_sale_m out number,
out_k_sale_cnt out number,
out_repay_sun out number,
out_repay_who out number,
out_repay_sun_m out number,
out_repay_who_m out number,
out_k_ret_sun out number,
out_k_ret_who out number,
out_k_ret_sun_m out number,
out_k_ret_who_m out number
);
FUNCTION FUN_TRI500Q_CNT1( v_office IN CHAR,v_date IN VARCHAR2 ) RETURN NUMBER;
END PAC_GET_TRI500Q1;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRI500Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 요금소 관리정보 일계
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRI500Q(v_office IN CHAR,v_date IN CHAR,p_a OUT NUMBER,p_b OUT NUMBER,
p_c OUT NUMBER,p_d OUT NUMBER,p_e OUT NUMBER,p_f OUT NUMBER,
p_g OUT NUMBER,p_h OUT NUMBER,p_i OUT NUMBER,p_j OUT NUMBER,
p_k OUT NUMBER,p_l OUT NUMBER );
FUNCTION FUN_TRI500Q_CNT( v_office IN CHAR,v_date IN VARCHAR2 ) RETURN NUMBER;
END PAC_GET_TRI500Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRG000Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 혼잡통행료 수입금현황 (시간별,일별,월별,년별) - 수정 : arcadia
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRG000Q_1(v_row IN NUMBER,v_office IN CHAR,v_booth_id IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_a1 OUT VARCHAR2,g_a2 OUT NUMBER,g_a3 OUT NUMBER,g_a4 OUT NUMBER,g_a5 OUT NUMBER ,
g_a6 OUT NUMBER,g_a7 OUT NUMBER);
PROCEDURE SP_TRG000Q_2(v_row IN NUMBER,v_office IN CHAR,v_booth_id IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_a1 OUT VARCHAR2,g_a2 OUT NUMBER,g_a3 OUT NUMBER,g_a4 OUT NUMBER,g_a5 OUT NUMBER ,
g_a6 OUT NUMBER,g_a7 OUT NUMBER);
PROCEDURE SP_TRG000Q_3(v_row IN NUMBER,v_office IN CHAR,v_booth_id IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_a1 OUT VARCHAR2,g_a2 OUT NUMBER,g_a3 OUT NUMBER,g_a4 OUT NUMBER,g_a5 OUT NUMBER ,
g_a6 OUT NUMBER,g_a7 OUT NUMBER);
PROCEDURE SP_TRG000Q_4(v_row IN NUMBER,v_office IN CHAR,v_booth_id IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_a1 OUT VARCHAR2,g_a2 OUT NUMBER,g_a3 OUT NUMBER,g_a4 OUT NUMBER,g_a5 OUT NUMBER ,
g_a6 OUT NUMBER,g_a7 OUT NUMBER);
PROCEDURE SP_TRG000Q_SUM1(v_office IN CHAR,v_booth_id IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,g_a11 OUT VARCHAR2,
g_a12 OUT VARCHAR2,g_a2_t OUT NUMBER,g_a3_t OUT NUMBER,g_a4_t OUT NUMBER,
g_a5_t OUT NUMBER,g_a6_t OUT NUMBER,g_a7_t OUT NUMBER,g_b1 OUT NUMBER,
g_b2 OUT NUMBER,g_b3 OUT NUMBER,g_b4 OUT NUMBER,g_b5 OUT NUMBER,g_b6 OUT NUMBER);
PROCEDURE SP_TRG000Q_SUM2(v_office IN CHAR,v_booth_id IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,g_a11 OUT VARCHAR2,
g_a12 OUT VARCHAR2,g_a2_t OUT NUMBER,g_a3_t OUT NUMBER,g_a4_t OUT NUMBER,
g_a5_t OUT NUMBER,g_a6_t OUT NUMBER,g_a7_t OUT NUMBER,g_b1 OUT NUMBER,
g_b2 OUT NUMBER,g_b3 OUT NUMBER,g_b4 OUT NUMBER,g_b5 OUT NUMBER,g_b6 OUT NUMBER);
PROCEDURE SP_TRG000Q_SUM3(v_office IN CHAR,v_booth_id IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,g_a11 OUT VARCHAR2,
g_a12 OUT VARCHAR2,g_a2_t OUT NUMBER,g_a3_t OUT NUMBER,g_a4_t OUT NUMBER,
g_a5_t OUT NUMBER,g_a6_t OUT NUMBER,g_a7_t OUT NUMBER,g_b1 OUT NUMBER,
g_b2 OUT NUMBER,g_b3 OUT NUMBER,g_b4 OUT NUMBER,g_b5 OUT NUMBER,g_b6 OUT NUMBER);
PROCEDURE SP_TRG000Q_SUM4(v_office IN CHAR,v_booth_id IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,g_a11 OUT VARCHAR2,
g_a12 OUT VARCHAR2,g_a2_t OUT NUMBER,g_a3_t OUT NUMBER,g_a4_t OUT NUMBER,
g_a5_t OUT NUMBER,g_a6_t OUT NUMBER,g_a7_t OUT NUMBER,g_b1 OUT NUMBER,
g_b2 OUT NUMBER,g_b3 OUT NUMBER,g_b4 OUT NUMBER,g_b5 OUT NUMBER,g_b6 OUT NUMBER);
FUNCTION FUN_TRG000Q_CNT( v_office IN CHAR,v_booth_id IN CHAR,v_gubun IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2 ) RETURN NUMBER;
END PAC_GET_TRG000Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRF502Q_K AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1. 일일 징수원 시간대별대장(TRF501Q)
** 2. 일일 차로별,징수원 수입금징수현황(TRF502Q)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRF502Q( v_row IN NUMBER, v_office IN CHAR, v_date IN CHAR, p_booth OUT CHAR,p_work_time OUT CHAR,
p_a OUT NUMBER,p_b OUT NUMBER,p_c OUT NUMBER,
p_d OUT NUMBER,p_e OUT NUMBER,p_f OUT NUMBER,
p_g OUT NUMBER,p_h OUT NUMBER,p_i OUT NUMBER,
p_j OUT NUMBER,p_k OUT NUMBER,p_l OUT NUMBER,
p_m OUT NUMBER,p_n OUT NUMBER,p_o OUT NUMBER,
p_p OUT NUMBER,
CASH_Q OUT NUMBER,
K_CASH_Q OUT NUMBER,
CARD_TOT OUT NUMBER,
SUN_Q OUT NUMBER,
K_SUN_Q OUT NUMBER,
WHO_Q OUT NUMBER,
K_WHO_Q OUT NUMBER,
COUPON_Q OUT NUMBER,
K_COUPON_Q OUT NUMBER,
SALE_Q OUT NUMBER,
K_SALE_Q OUT NUMBER,
v_name OUT CHAR) ;
PROCEDURE SP_TRF502Q_SUM( v_ymd_kbn IN BINARY_INTEGER, v_office IN CHAR, v_date IN CHAR,
p_a_t OUT NUMBER, p_b_t OUT NUMBER,
p_c_t OUT NUMBER, p_d_t OUT NUMBER,
p_e_t OUT NUMBER, p_f_t OUT NUMBER,
p_g_t OUT NUMBER, p_h_t OUT NUMBER,
p_i_t OUT NUMBER, p_j_t OUT NUMBER,
p_k_t OUT NUMBER, p_l_t OUT NUMBER,
p_m_t OUT NUMBER, p_n_t OUT NUMBER,
p_o_t OUT NUMBER, p_p_t OUT NUMBER,
CASH_Q OUT NUMBER,
K_CASH_Q OUT NUMBER,
CARD_TOT OUT NUMBER,
SUN_Q OUT NUMBER,
K_SUN_Q OUT NUMBER,
WHO_Q OUT NUMBER,
K_WHO_Q OUT NUMBER,
COUPON_Q OUT NUMBER,
K_COUPON_Q OUT NUMBER,
SALE_Q OUT NUMBER,
K_SALE_Q OUT NUMBER );
FUNCTION FUN_TRF502Q_CNT( v_office IN CHAR,v_date IN CHAR) RETURN NUMBER;
END PAC_GET_TRF502Q_K;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRF502Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1. 일일 징수원 시간대별대장(TRF501Q)
** 2. 일일 차로별,징수원 수입금징수현황(TRF502Q)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRF502Q( v_row IN NUMBER, v_office IN CHAR, v_date IN CHAR, p_booth OUT CHAR,p_work_time OUT CHAR,
p_a OUT NUMBER,p_b OUT NUMBER,p_c OUT NUMBER,
p_d OUT NUMBER,p_e OUT NUMBER,p_f OUT NUMBER,
p_g OUT NUMBER,p_h OUT NUMBER,p_i OUT NUMBER,
p_j OUT NUMBER,p_k OUT NUMBER,p_l OUT NUMBER,
p_m OUT NUMBER,p_n OUT NUMBER,p_o OUT NUMBER,
p_p OUT NUMBER, v_name OUT CHAR) ;
PROCEDURE SP_TRF502Q_SUM( v_ymd_kbn IN BINARY_INTEGER, v_office IN CHAR, v_date IN CHAR,
p_a_t OUT NUMBER, p_b_t OUT NUMBER,
p_c_t OUT NUMBER, p_d_t OUT NUMBER,
p_e_t OUT NUMBER, p_f_t OUT NUMBER,
p_g_t OUT NUMBER, p_h_t OUT NUMBER,
p_i_t OUT NUMBER, p_j_t OUT NUMBER,
p_k_t OUT NUMBER, p_l_t OUT NUMBER,
p_m_t OUT NUMBER, p_n_t OUT NUMBER,
p_o_t OUT NUMBER, p_p_t OUT NUMBER );
FUNCTION FUN_TRF502Q_CNT( v_office IN CHAR,v_date IN CHAR) RETURN NUMBER;
END PAC_GET_TRF502Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRF501Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1. 일일 징수원 시간대별대장(TRF501Q)
** 2. 일일 차로별,징수원 수입금징수현황(TRF502Q)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRF501Q( v_row IN NUMBER, in_office IN CHAR, in_date in char, in_year IN CHAR, in_month in char, in_day in char,
p_worker OUT CHAR, p_work_time OUT CHAR,
p_booth OUT CHAR, p_pass_car_amt OUT NUMBER,p_pass_car_amt1 OUT NUMBER,p_cash OUT NUMBER,
p_bcard OUT NUMBER,p_acard OUT NUMBER,p_coupon OUT NUMBER,
p_amt3 OUT NUMBER,p_amt4 OUT NUMBER,p_amt5 OUT NUMBER,
p_amt6 OUT NUMBER,p_amt7 OUT NUMBER,p_amt8 OUT NUMBER,
p_amt9 OUT NUMBER,p_amt10 OUT NUMBER,p_amt11 OUT NUMBER,
p_amt12 OUT NUMBER) ;
PROCEDURE SP_TRF501Q_SUM( v_ymd_kbn IN BINARY_INTEGER, v_office IN CHAR, v_date IN CHAR,
p_pass_car_amt_t OUT NUMBER, p_pass_car_amt1_t OUT NUMBER,
p_cash_t OUT NUMBER, p_bcard_t OUT NUMBER,
p_acard_t OUT NUMBER, p_coupon_t OUT NUMBER,
p_amt3_t OUT NUMBER, p_amt4_t OUT NUMBER,
p_amt5_t OUT NUMBER, p_amt6_t OUT NUMBER,
p_amt7_t OUT NUMBER, p_amt8_t OUT NUMBER,
p_amt9_t OUT NUMBER, p_amt10_t OUT NUMBER,
p_amt11_t OUT NUMBER, p_amt12_t OUT NUMBER );
FUNCTION FUN_TRF501Q_CNT( in_office IN CHAR, in_year IN CHAR, in_month in char, in_day in char) RETURN NUMBER;
END PAC_GET_TRF501Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRD500Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 과오납금 관리대장 MODIFILED BY KIM DONG EUN 20021115
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_F1( v_worker_id IN CHAR,v_fare_office IN CHAR,v_booth_id IN CHAR,
v_year IN CHAR,v_month IN CHAR,v_day IN CHAR ) RETURN NUMBER;
FUNCTION FUN_F2( v_worker_id IN CHAR,v_fare_office IN CHAR,v_booth_id IN CHAR,
v_year IN CHAR,v_month IN CHAR,v_day IN CHAR,
v_work_stt_time IN CHAR, v_work_end_time IN CHAR, v_overfare_seqno IN NUMBER,
v_inout_kbn IN CHAR ) RETURN NUMBER;
FUNCTION FUN_F3( v_fare_office IN CHAR, v_std_date IN CHAR, v_times IN CHAR ) RETURN NUMBER;
FUNCTION FUN_F4( v_carno IN CHAR ) RETURN VARCHAR2;
FUNCTION FUN_F5( v_worker_id IN CHAR, v_fare_office IN CHAR, v_booth_id IN CHAR, v_year IN CHAR,
v_month IN CHAR, v_day IN CHAR, v_work_stt_time IN CHAR, v_work_end_time IN CHAR,
v_owner IN CHAR,v_carno IN CHAR, v_r_no IN CHAR, v_r_date IN CHAR) RETURN NUMBER;
FUNCTION FUN_F6(
v_worker_id IN CHAR,
v_fare_office IN CHAR,
v_booth_id IN CHAR,
v_year IN CHAR,
v_month IN CHAR,
v_day IN CHAR,
v_work_stt_time IN CHAR,
v_work_end_time IN CHAR,
V_OVER_TIME IN CHAR,
v_owner IN CHAR,
v_carno IN CHAR,
v_r_no IN CHAR,
v_r_date IN CHAR) RETURN NUMBER;
PROCEDURE SP_TRD500Q( ii_index IN BINARY_INTEGER,v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
in_over_kbn in char, in_refund_kbn in char, in_worker in char,
v_date OUT VARCHAR2, v_time OUT CHAR, v_worker_name OUT VARCHAR2, v_booth OUT CHAR,
v_carno OUT VARCHAR2, v_car_type OUT CHAR, v_overfare_amt OUT NUMBER, v_totsum_amt OUT NUMBER,
v_overfare_out OUT NUMBER, v_return_person OUT VARCHAR2,--v_???? OUT NUMBER,
v_reason OUT VARCHAR2, v_fare OUT CHAR, v_seqno OUT NUMBER, v_r_no out char, v_r_date out char,
v_back out number, v_st out char, v_ed out char);
FUNCTION FUN_TRD500Q_CNT(v_office IN CHAR,v_from_dt IN CHAR,v_to_dt IN CHAR, in_over_kbn in char, in_refund_kbn in char, in_worker in char) RETURN NUMBER;
END PAC_GET_TRD500Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRB000Q_1 AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** ??? ??? ??: ? ? ?
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRB000Q_111(v_row IN NUMBER,v_office IN CHAR,v_from_date IN CHAR,v_to_date IN CHAR,p_date OUT NUMBER,
p_booth OUT NUMBER,p_sum OUT NUMBER);
FUNCTION FUN_TRB000Q_CNT_1(v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2) RETURN NUMBER;
END PAC_GET_TRB000Q_1;
/
CREATE OR REPLACE PACKAGE NAMSAN3.Pac_Get_Tra500q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1. 일일통행차량명세 (미납제외)
** 2. 일일통행차량명세 (미납포함)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA500Q_1( ii_index IN BINARY_INTEGER, v_office IN CHAR, v_booth IN CHAR,
v_from_dt IN CHAR, v_to_dt IN CHAR, v_gubun IN BINARY_INTEGER,
f_worker_id OUT CHAR, f_worker_name OUT VARCHAR2,
f_datetime OUT VARCHAR2, f_collect_name OUT VARCHAR2,
f_levy_amount OUT NUMBER, f_seqno OUT NUMBER );
PROCEDURE SP_TRA500Q_2( ii_index IN BINARY_INTEGER, v_office IN CHAR, v_booth IN CHAR,v_date IN CHAR,
f_worker_id OUT CHAR, f_worker_name OUT VARCHAR2,
f_datetime OUT VARCHAR2, f_collect_name OUT VARCHAR2,
f_levy_amount OUT NUMBER, f_seqno OUT NUMBER );
FUNCTION FUN_TRA500Q_CNT(v_flag IN BINARY_INTEGER,v_office IN CHAR,v_booth IN CHAR,v_gubun IN CHAR,v_from_dt IN CHAR,
v_to_dt IN CHAR ) RETURN NUMBER;
END Pac_Get_Tra500q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TRA000Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 통행량 및 수입금총괄 및 합계 (징수원졀,시간대별,차로별,일별,월별,년별)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA000Q_1(v_row IN NUMBER,v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_gubun OUT VARCHAR2,g_a1 OUT NUMBER,g_a2 OUT NUMBER,g_a3 OUT NUMBER,
g_a4 OUT NUMBER,g_a5 OUT NUMBER,g_a6 OUT NUMBER,g_a7 OUT NUMBER,
g_a8 OUT NUMBER,g_a9 OUT NUMBER,g_a10 OUT NUMBER,g_a11 OUT NUMBER,
g_a12 OUT NUMBER);
PROCEDURE SP_TRA000Q_2(v_row IN NUMBER,v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_gubun OUT VARCHAR2,g_a1 OUT NUMBER,g_a2 OUT NUMBER,g_a3 OUT NUMBER,
g_a4 OUT NUMBER,g_a5 OUT NUMBER,g_a6 OUT NUMBER,g_a7 OUT NUMBER,
g_a8 OUT NUMBER,g_a9 OUT NUMBER,g_a10 OUT NUMBER,g_a11 OUT NUMBER,
g_a12 OUT NUMBER);
PROCEDURE SP_TRA000Q_3(v_row IN NUMBER,v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_gubun OUT VARCHAR2,g_a1 OUT NUMBER,g_a2 OUT NUMBER,g_a3 OUT NUMBER,
g_a4 OUT NUMBER,g_a5 OUT NUMBER,g_a6 OUT NUMBER,g_a7 OUT NUMBER,
g_a8 OUT NUMBER,g_a9 OUT NUMBER,g_a10 OUT NUMBER,g_a11 OUT NUMBER,
g_a12 OUT NUMBER);
PROCEDURE SP_TRA000Q_4(v_row IN NUMBER,v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_gubun OUT VARCHAR2,g_a1 OUT NUMBER,g_a2 OUT NUMBER,g_a3 OUT NUMBER,
g_a4 OUT NUMBER,g_a5 OUT NUMBER,g_a6 OUT NUMBER,g_a7 OUT NUMBER,
g_a8 OUT NUMBER,g_a9 OUT NUMBER,g_a10 OUT NUMBER,g_a11 OUT NUMBER,
g_a12 OUT NUMBER,g_b1 OUT NUMBER,g_b2 OUT NUMBER,g_b3 OUT NUMBER,g_b4 OUT NUMBER);
PROCEDURE SP_TRA000Q_5(v_row IN NUMBER,v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_gubun OUT VARCHAR2,g_a1 OUT NUMBER,g_a2 OUT NUMBER,g_a3 OUT NUMBER,
g_a4 OUT NUMBER,g_a5 OUT NUMBER,g_a6 OUT NUMBER,g_a7 OUT NUMBER,
g_a8 OUT NUMBER,g_a9 OUT NUMBER,g_a10 OUT NUMBER,g_a11 OUT NUMBER,
g_a12 OUT NUMBER,g_b1 OUT NUMBER,g_b2 OUT NUMBER,g_b3 OUT NUMBER,g_b4 OUT NUMBER);
PROCEDURE SP_TRA000Q_6(v_row IN NUMBER,v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_gubun OUT VARCHAR2,g_a1 OUT NUMBER,g_a2 OUT NUMBER,g_a3 OUT NUMBER,
g_a4 OUT NUMBER,g_a5 OUT NUMBER,g_a6 OUT NUMBER,g_a7 OUT NUMBER,
g_a8 OUT NUMBER,g_a9 OUT NUMBER,g_a10 OUT NUMBER,g_a11 OUT NUMBER,
g_a12 OUT NUMBER,g_b1 OUT NUMBER,g_b2 OUT NUMBER,g_b3 OUT NUMBER,g_b4 OUT NUMBER);
PROCEDURE SP_TRA000Q_SUM1(v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_gubun OUT VARCHAR2,g_a1_t OUT NUMBER,g_a2_t OUT NUMBER,g_a3_t OUT NUMBER,
g_a4_t OUT NUMBER,g_a5_t OUT NUMBER,g_a6_t OUT NUMBER,g_a7_t OUT NUMBER,
g_a8_t OUT NUMBER,g_a9_t OUT NUMBER,g_a10_t OUT NUMBER,g_a11_t OUT NUMBER,g_a12_t OUT NUMBER);
PROCEDURE SP_TRA000Q_SUM2(v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_gubun OUT VARCHAR2,g_a1_t OUT NUMBER,g_a2_t OUT NUMBER,g_a3_t OUT NUMBER,
g_a4_t OUT NUMBER,g_a5_t OUT NUMBER,g_a6_t OUT NUMBER,g_a7_t OUT NUMBER,
g_a8_t OUT NUMBER,g_a9_t OUT NUMBER,g_a10_t OUT NUMBER,g_a11_t OUT NUMBER,g_a12_t OUT NUMBER);
PROCEDURE SP_TRA000Q_SUM3(v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_gubun OUT VARCHAR2,g_a1_t OUT NUMBER,g_a2_t OUT NUMBER,g_a3_t OUT NUMBER,
g_a4_t OUT NUMBER,g_a5_t OUT NUMBER,g_a6_t OUT NUMBER,g_a7_t OUT NUMBER,
g_a8_t OUT NUMBER,g_a9_t OUT NUMBER,g_a10_t OUT NUMBER,g_a11_t OUT NUMBER,g_a12_t OUT NUMBER,
g_b1_t OUT NUMBER,g_b2_t OUT NUMBER,g_b3_t OUT NUMBER,g_b4_t OUT NUMBER);
PROCEDURE SP_TRA000Q_SUM4(v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_gubun OUT VARCHAR2,g_a1_t OUT NUMBER,g_a2_t OUT NUMBER,g_a3_t OUT NUMBER,
g_a4_t OUT NUMBER,g_a5_t OUT NUMBER,g_a6_t OUT NUMBER,g_a7_t OUT NUMBER,
g_a8_t OUT NUMBER,g_a9_t OUT NUMBER,g_a10_t OUT NUMBER,g_a11_t OUT NUMBER,g_a12_t OUT NUMBER,
g_b1_t OUT NUMBER,g_b2_t OUT NUMBER,g_b3_t OUT NUMBER,g_b4_t OUT NUMBER);
PROCEDURE SP_TRA000Q_SUM5(v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2,
g_gubun OUT VARCHAR2,g_a1_t OUT NUMBER,g_a2_t OUT NUMBER,g_a3_t OUT NUMBER,
g_a4_t OUT NUMBER,g_a5_t OUT NUMBER,g_a6_t OUT NUMBER,g_a7_t OUT NUMBER,
g_a8_t OUT NUMBER,g_a9_t OUT NUMBER,g_a10_t OUT NUMBER,g_a11_t OUT NUMBER,g_a12_t OUT NUMBER,
g_b1_t OUT NUMBER,g_b2_t OUT NUMBER,g_b3_t OUT NUMBER,g_b4_t OUT NUMBER);
FUNCTION FUN_TAR000Q_SUM(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;
FUNCTION FUN_TAR000Q_RTN(v_gubun IN BINARY_INTEGER,v_office IN VARCHAR2,v_from_dt IN VARCHAR2, v_week_kgb IN CHAR) RETURN NUMBER;
END PAC_GET_TRA000Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TFG003Q AS
/*
** ??????? ??: ? ? ?
*/
PROCEDURE SP_TFG003Q( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_seiz_mngno OUT NUMBER,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_datetime OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_fine_amount OUT NUMBER,
v_owner OUT VARCHAR2,
v_post_no OUT VARCHAR2,
v_address OUT VARCHAR2 );
--????
FUNCTION FUN_TFG003Q_CNT(v_from_date IN CHAR, v_to_date IN CHAR) RETURN NUMBER;
END PAC_GET_TFG003Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.Pac_Get_Tfc000e AS
/*
** 과태료 납부(소인) / 반송 / 독촉 불가처리 : 김 성 운
*/
-- 전체건수 ( v_gubun = '1' 이면 관리번호,,,v_gubun = '2' 이면 차량번호,,,v_gubun = '3' 이면 소유자...
FUNCTION FUN_GET_CNT01(v_gubun IN CHAR, v_data IN VARCHAR2) RETURN NUMBER;
-- 상세조회건수 ..
FUNCTION FUN_GET_CNT02(v_mngno IN VARCHAR2, v_car_no IN VARCHAR2, v_regno IN VARCHAR2) RETURN NUMBER;
--수납일자만 리턴
FUNCTION FUN_GET_CNT03(v_mngyear IN CHAR, v_mngno IN NUMBER) RETURN VARCHAR2;
-- RESPONSE WINDOW 하단에 뿌려질 DATA 건 수...
FUNCTION FUN_GET_CNT04(v_carno IN VARCHAR2, v_owner IN VARCHAR2) RETURN NUMBER;
-- 압류일자만 가져오는 펑션...(과태료 detail정보)
FUNCTION FUN_GET_CNT05(v_mngyear IN CHAR, v_mngno IN NUMBER) RETURN VARCHAR2;
-- 이미 압류도처리된 건만 압류해지를 할 수 있겠다.
FUNCTION FUN_GET_CNT06(v_mngyear IN CHAR, v_mngno IN NUMBER) RETURN NUMBER;
-- 압류처리관련 건수
FUNCTION FUN_GET_CNT07(v_carno IN VARCHAR2, v_owner IN VARCHAR2) RETURN NUMBER;
-- 압류해지관련 건수
FUNCTION FUN_GET_CNT08(v_carno IN VARCHAR2, v_owner IN VARCHAR2) RETURN NUMBER;
-- 고지불가관련 건수
FUNCTION FUN_GET_CNT09(v_carno IN VARCHAR2, v_owner IN VARCHAR2) RETURN NUMBER;
-- penalty_detail_info 의 내용을 penalty_history_info 에 저장
FUNCTION FUN_HISTORY_INS(v_year IN CHAR, v_seqno IN NUMBER, v_gsuser VARCHAR2) RETURN NUMBER;
-- penalty_detail_info 의 내용을 penalty_history_info 에 저장
-- 필요에 의한 추가 사항...(반송시 이력을 저장함...)
FUNCTION FUN_HISTORY_INS_re(v_year IN CHAR, v_seqno IN NUMBER, v_gsuser VARCHAR2) RETURN NUMBER;
-- 기존의 압류건수를 Check
FUNCTION FUN_SEIZURE_CHK(v_carno IN VARCHAR2, v_owner IN VARCHAR2, v_resident_no VARCHAR2,
v_resident_date CHAR) RETURN NUMBER;
-- 수납일자 존재 Check
FUNCTION FUN_RECEIPT_CHK(v_year IN CHAR, v_seqno IN NUMBER, v_receipt_date CHAR) RETURN NUMBER;
-- 동영상 재생관련
FUNCTION FUN_GET_MOVEFILE(v_years IN CHAR, v_seqno IN NUMBER) RETURN VARCHAR2;
-- 기존의 압류 미처리 건수를 Check
FUNCTION FUN_UNSEIZURE_CHK(v_carno IN VARCHAR2, v_owner IN VARCHAR2, v_resident_no VARCHAR2,
v_resident_date CHAR) RETURN NUMBER;
-- 1-1,메인화면 맨하단의 조회시 뿌려지는 리스트 ( 파리미터가 '관리번호'일때) ...
PROCEDURE SP_TFC000E_M01
( v_mngno IN VARCHAR2,
v_mng_year OUT CHAR,
v_penalty_seqno OUT VARCHAR2,
v_fare_office_id OUT CHAR,
v_booth_id OUT CHAR,
v_pass_date OUT CHAR,
v_car_no OUT VARCHAR2,
v_pass_amount OUT VARCHAR2,
v_fine_amount OUT VARCHAR2,
v_total_amount OUT VARCHAR2,
v_owner OUT VARCHAR2,
v_car_type_id OUT CHAR,
v_car_type_name OUT VARCHAR2,
v_resident_date OUT CHAR,
v_max_carry_capacity OUT VARCHAR2,
v_post_no1 OUT VARCHAR2,
v_post_no2 OUT VARCHAR2,
v_address OUT VARCHAR2,
v_receipt_yn OUT CHAR,
v_worker_id OUT CHAR,
v_motion_id OUT CHAR,
v_office_name OUT VARCHAR2,
v_resident_no OUT VARCHAR2
);
-- 1-1-1,메인화면 맨하단의 조회시 뿌려지는 리스트 ( 파리미터가 '관리번호'일때) ..
PROCEDURE SP_TFC000E_M02_1
( v_row IN NUMBER,
v_mngno IN VARCHAR2,
v_penalty_year OUT VARCHAR2,
v_penalty_no OUT VARCHAR2,
v_car_no OUT VARCHAR2,
v_car_type_id OUT VARCHAR2,
v_car_type_name OUT VARCHAR2,
v_pass_datetime OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_owner OUT VARCHAR2,
v_owner_regno OUT VARCHAR2,
v_office_name OUT VARCHAR2
);
-- 1-2,메인화면 맨하단의 조회시 뿌려지는 리스트 ( 파리미터가 '차량번호'일때) ..
PROCEDURE SP_TFC000E_M02
( v_row IN NUMBER,
v_carno IN VARCHAR2,
v_penalty_year OUT VARCHAR2,
v_penalty_no OUT VARCHAR2,
v_car_no OUT VARCHAR2,
v_car_type_id OUT VARCHAR2,
v_car_type_name OUT VARCHAR2,
v_pass_datetime OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_owner OUT VARCHAR2,
v_owner_regno OUT VARCHAR2,
v_office_name OUT VARCHAR2
);
-- 1-3,메인화면 맨하단의 조회시 뿌려지는 리스트 ( 파리미터가 '소유자'일때) ..
PROCEDURE SP_TFC000E_M03
( v_row IN NUMBER,
v_owner_name IN VARCHAR2,
v_penalty_year OUT VARCHAR2,
v_penalty_no OUT VARCHAR2,
v_car_no OUT VARCHAR2,
v_car_type_id OUT VARCHAR2,
v_car_type_name OUT VARCHAR2,
v_pass_datetime OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_owner OUT VARCHAR2,
v_owner_regno OUT VARCHAR2,
v_office_name OUT VARCHAR2
);
-- 2.상세조회...
PROCEDURE SP_TFC000E_M04
( v_inmngyear IN VARCHAR2,
v_inmngno IN VARCHAR2,
v_incarno IN VARCHAR2,
v_jumin_no IN VARCHAR2,
v_mng_year OUT CHAR,
v_mngno OUT VARCHAR2,
v_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_passdate OUT VARCHAR2,
v_carno OUT VARCHAR2,
v_cartype_id OUT VARCHAR2,
v_cartype_name OUT VARCHAR2,
v_pass_amt OUT VARCHAR2,
v_fine_amt OUT VARCHAR2,
v_total_amt OUT VARCHAR2,
v_owner OUT VARCHAR2,
v_regist_no OUT VARCHAR2,
v_car_capa OUT VARCHAR2,
v_post_no1 OUT VARCHAR2,
v_post_no2 OUT VARCHAR2,
v_address OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_receipt_yn OUT CHAR,
v_reg_date OUT CHAR,
v_motion_id OUT CHAR,
v_office_name OUT VARCHAR2
);
--팝업시 조회되는 수납기본정보...
PROCEDURE SP_TFC000E_M05
( v_row IN NUMBER,
v_mng_year IN CHAR,
v_mng_seqno IN NUMBER,
v_receipt_amt OUT NUMBER,
v_receipt_date OUT CHAR,
v_receipt_kbn OUT CHAR,
v_receipt_agency OUT VARCHAR2,
v_process_kbn OUT CHAR
);
-- RESPONSE WINDOW하단에 뿌려질 차량번호에 해당되는 기록들...
PROCEDURE SP_TFC000E_M06
(
v_row IN NUMBER,
v_carno IN VARCHAR2,
v_owner IN VARCHAR2,
v_mngno OUT NUMBER,
v_office OUT CHAR,
v_booth OUT CHAR,
v_pass_dt OUT VARCHAR2,
v_kogi_kbn OUT VARCHAR2,
v_kogi_date OUT CHAR,
v_receipt_kbn OUT CHAR
);
--반송기초정보?
PROCEDURE SP_TFC000E_M07
( v_mng_year IN CHAR,
v_mng_seqno IN NUMBER,
v_motion_id IN CHAR,
v_return_date OUT CHAR,
v_return_rsn_id OUT CHAR
);
/*
** 압류기초정보
*/
PROCEDURE SP_TFC000E_M08
( v_year IN CHAR,
v_seqno IN NUMBER,
v_seizure_date OUT CHAR,
v_seisure_yn OUT CHAR,
v_seizure_organ_name OUT VARCHAR2,
v_resident_no OUT VARCHAR2,
v_resident_date OUT CHAR,
v_seizure_manage_year OUT CHAR,
v_seizure_manage_no OUT NUMBER
);
-- 압류해지를 위해 압류정보 가져오기
PROCEDURE SP_TFC000E_M09
( v_mng_year IN CHAR,
v_mng_seqno IN NUMBER,
v_seizure_dt OUT CHAR,
v_seizure_termi_dt OUT CHAR,
v_seizure_termi_rsn OUT VARCHAR2,
v_receipt_date OUT CHAR,
v_receipt_agency OUT VARCHAR2
);
/*
** 압류불가를 위해 압류정보 가져오기
*/
PROCEDURE SP_TFC000E_M10
( v_mng_year IN CHAR,
v_mng_seqno IN NUMBER,
v_wrong_id OUT CHAR,
v_wrong_date OUT CHAR,
v_wrong_reason OUT VARCHAR2,
v_resident_no OUT VARCHAR2,
v_resident_date OUT CHAR
);
/*
** 고지불가를 위해 압류정보 가져오기
*/
PROCEDURE SP_TFC000E_M11
( v_mng_year IN CHAR,
v_mng_seqno IN NUMBER,
v_wrong_id OUT CHAR,
v_wrong_date OUT CHAR,
v_wrong_reason OUT VARCHAR2
);
/*
** 고지가능처리(고지 가능일자가 어디있니? )
*/
PROCEDURE SP_TFC000E_M12
( v_mng_year IN CHAR,
v_mng_seqno IN NUMBER,
v_choose_id OUT CHAR,
v_choose_date OUT CHAR,
v_resident_no OUT VARCHAR2
);
-- 압류처리
PROCEDURE SP_TFC000E_M13
(
v_row IN NUMBER,
v_carno IN VARCHAR2,
v_owner IN VARCHAR2,
v_mngno OUT NUMBER,
v_office OUT CHAR,
v_booth OUT CHAR,
v_pass_dt OUT VARCHAR2,
v_kogi_kbn OUT VARCHAR2,
v_kogi_date OUT CHAR,
v_receipt_kbn OUT CHAR,
v_lavy_amount OUT NUMBER,
v_penalty_year OUT CHAR,
v_receipt_date OUT CHAR,
v_receipt_agency OUT VARCHAR2
);
-- 압류해지처리
PROCEDURE SP_TFC000E_M14
(
v_row IN NUMBER,
v_carno IN VARCHAR2,
v_owner IN VARCHAR2,
v_mngno OUT NUMBER,
v_office OUT CHAR,
v_booth OUT CHAR,
v_pass_dt OUT VARCHAR2,
v_kogi_kbn OUT VARCHAR2,
v_kogi_date OUT CHAR,
v_receipt_nm OUT VARCHAR2,
v_lavy_amount OUT NUMBER,
v_penalty_year OUT CHAR,
v_receipt_date OUT CHAR,
v_receipt_agency OUT VARCHAR2
);
-- 압류불가처리
PROCEDURE SP_TFC000E_M15
(
v_row IN NUMBER,
v_carno IN VARCHAR2,
v_owner IN VARCHAR2,
v_mngno OUT NUMBER,
v_office OUT CHAR,
v_booth OUT CHAR,
v_pass_dt OUT VARCHAR2,
v_kogi_kbn OUT VARCHAR2,
v_kogi_date OUT CHAR,
v_seizure_date OUT CHAR,
v_lavy_amount OUT NUMBER,
v_penalty_year OUT CHAR
);
-- 고지불가처리
PROCEDURE SP_TFC000E_M16
(
v_row IN NUMBER,
v_carno IN VARCHAR2,
v_owner IN VARCHAR2,
v_mngno OUT NUMBER,
v_office OUT CHAR,
v_booth OUT CHAR,
v_pass_dt OUT VARCHAR2,
v_kogi_kbn OUT VARCHAR2,
v_kogi_date OUT CHAR,
v_notice_id OUT CHAR,
v_lavy_amount OUT NUMBER,
v_penalty_year OUT CHAR,
v_notice_date OUT CHAR,
v_notice_reason OUT VARCHAR2
);
-- A.수납처리...
PROCEDURE SP_RECEIPT_INFO_INSERT
(
v_gubun IN CHAR,
v_year IN CHAR,
v_seqno IN NUMBER,
v_carno IN VARCHAR2,
v_receipt_date_gu IN CHAR,
v_receipt_date IN CHAR,
v_receipt_id IN CHAR,
v_receipt_amt IN NUMBER,
v_receipt_agency IN VARCHAR2,
v_process_kbn IN CHAR,
v_gsuser IN VARCHAR2
);
/*
** B.반송처리
*/
PROCEDURE SP_RETURN_INFO_INSERT
(
v_gubun IN CHAR,
v_year IN CHAR,
v_seqno IN NUMBER,
v_motion_id IN CHAR,
v_send_date IN CHAR,
v_send_no IN NUMBER,
v_return_date_gu IN CHAR,
v_return_date IN CHAR,
v_return_reason_id IN CHAR,
v_gsuser IN VARCHAR2
);
/*
** C.압류처리
*/
PROCEDURE SP_SEIZURE_INFO_INSERT
(
v_year IN CHAR,
v_manage_no IN NUMBER,
v_seizure_organ_name IN VARCHAR2,
v_count IN NUMBER,
v_seizure_amt IN NUMBER,
v_gsuser IN VARCHAR2
);
/*
** C.압류처리
*/
PROCEDURE SP_SEIZURE_INFO_INSERT2
(
v_year IN CHAR,
v_seqno IN NUMBER,
v_seizure_date IN CHAR,
v_gsuser IN VARCHAR2
);
/*
** D.압류해지?
*/
PROCEDURE SP_UNSEIZURE_INFO_INSERT
(
v_gubun IN CHAR,
v_year IN CHAR,
v_manage_no IN NUMBER,
v_unseizure_date IN CHAR,
v_unseizure_reason IN VARCHAR2,
v_receipt_date IN CHAR,
v_receipt_agency IN VARCHAR2,
v_receipt_id IN CHAR,
v_receipt_amt IN NUMBER,
v_gsuser IN VARCHAR2
);
/*
** E.압류불가
*/
PROCEDURE SP_SEIZURE_WRONG_INSERT
(
v_year IN CHAR,
v_manage_no IN NUMBER,
v_wrong_id IN CHAR,
v_wrong_date IN CHAR,
v_wrong_reason IN VARCHAR2,
v_gsuser IN VARCHAR2
);
/*
** F.고지불가
*/
PROCEDURE SP_NOTICE_WRONG_INSERT
(
v_year IN CHAR,
v_manage_no IN NUMBER,
v_wrong_id IN CHAR,
v_wrong_date IN CHAR,
v_wrong_reason IN VARCHAR2,
v_gsuser IN VARCHAR2
);
/*
** 고지가능
*/
PROCEDURE SP_NOTICE_INSERT
(
v_year IN CHAR,
v_manage_no IN NUMBER,
v_choose_id IN CHAR,
v_choose_date IN CHAR,
v_gsuser IN VARCHAR2
);
/*
** 발송일자, 발송번호
*/
PROCEDURE SP_GET_SEND_INFO
(
v_year IN CHAR,
v_manage_no IN NUMBER,
v_motion_id IN CHAR,
v_send_date OUT SEND_INFO.SEND_DATE%TYPE,
v_send_no OUT NUMBER
);
-- 기본사항 Select
PROCEDURE SP_GET_BASIC
( v_year IN CHAR,
v_mngno IN NUMBER,
v_send_date OUT CHAR, --부과예고발송일자
v_send_date2 OUT CHAR, --1차고지서 발송일자
v_send_date3 OUT CHAR, --2차고지서 발송일자
v_send_date4 OUT CHAR, --2차반복고지 발송일자
v_send_date5 OUT CHAR, --압류촉탁서 발송일자
v_send_date6 OUT CHAR, --압류처리일자
v_send_date7 OUT CHAR, --2차고지서 재고지일자
v_notice_id OUT VARCHAR2,--고지취소건의구분
v_notice_reason OUT VARCHAR2,--고지취소건의사유
v_send_date8 OUT CHAR, --과태료납부처리일자
v_send_date9 OUT CHAR, --부과예고반송일자
v_send_date10 OUT CHAR, --1차고지서반송일자
v_send_date11 OUT CHAR, --2차고지서반송일자
v_send_date12 OUT CHAR, --압류촉탁서반송일자
v_send_date13 OUT CHAR, --압류해지처리일자
v_seizure_id OUT VARCHAR2,--압류처리불가구분
v_return_id OUT VARCHAR2,--1차고지서반송사유
v_return_id2 OUT VARCHAR2 --2차고지서반송사유
);
END Pac_Get_Tfc000e;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TFA007Q AS
PROCEDURE SP_TFA007Q(v_row IN NUMBER, v_car_no IN VARCHAR2, out_data1 OUT VARCHAR2, out_data2 OUT VARCHAR2,
out_data3 OUT VARCHAR2, out_data4 OUT VARCHAR2, out_data5 OUT VARCHAR2, out_data6 OUT VARCHAR2,
out_data7 OUT VARCHAR2, out_data8 OUT VARCHAR2, out_data9 OUT VARCHAR2, out_data10 OUT VARCHAR2,
out_data11 OUT VARCHAR2, out_data12 OUT VARCHAR2, out_data13 OUT VARCHAR2, out_data14 OUT VARCHAR2,
out_data15 OUT VARCHAR2, out_data16 OUT VARCHAR2, out_data17 OUT VARCHAR2, out_data18 OUT VARCHAR2,
OUT_DATA19 OUT VARCHAR2, OUT_DATA20 OUT NUMBER);
FUNCTION FUN_TFA007Q_CNT(v_car_no IN VARCHAR2) RETURN NUMBER;
END PAC_GET_TFA007Q;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TFA002U AS
/*
** ???? ?? ?? ??? FILE??: ? ? ?
*/
/* 1??? */
PROCEDURE SP_TFA002U_01( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_date OUT VARCHAR2,
v_pass_time OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_tu OUT char,
v_bo OUT char,
v_worker_id OUT char );
/* 2??? */
PROCEDURE SP_TFA002U_02( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_date OUT VARCHAR2,
v_pass_time OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_tunnel2 OUT char,
v_booth2 OUT char );
/* 3??? */
PROCEDURE SP_TFA002U_03( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_date OUT VARCHAR2,
v_pass_time OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_tunnel2 OUT char,
v_booth2 OUT char );
/* ??? (2??? + ??)*/
PROCEDURE SP_TFA002U_04( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_date OUT VARCHAR2,
v_pass_time OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_tunnel2 OUT char,
v_booth2 OUT char );
/* ??????*/
PROCEDURE SP_TFA002U_05( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_date OUT VARCHAR2,
v_pass_time OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_tunnel2 OUT char,
v_booth2 OUT char,
v_worker_id OUT char );
/* ?????*/
PROCEDURE SP_TFA002U_06( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_date OUT VARCHAR2,
v_pass_time OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_tunnel2 OUT char,
v_booth2 OUT char );
--????
FUNCTION FUN_TFA002U_CNT(v_mction_kbn IN CHAR,v_from_date IN CHAR, v_to_date IN CHAR) RETURN NUMBER;
END PAC_GET_TFA002U;
/
CREATE OR REPLACE PACKAGE NAMSAN3.Pac_Get_Tfa001e AS
/*
** 미납차량 판독업무
*/
PROCEDURE SP_TFA001E
(
v_row IN NUMBER,
v_office IN CHAR,
v_booth IN CHAR,
v_exam_flag IN CHAR,
v_stt_date IN CHAR,
v_end_date IN CHAR,
h_pass_date OUT VARCHAR2,
h_pass_time OUT VARCHAR2,
h_office OUT VARCHAR2,
h_booth OUT VARCHAR2,
h_read_kbn OUT VARCHAR2,
h_read_id OUT VARCHAR2,
h_carno OUT VARCHAR2,
h_stop_pic OUT VARCHAR2,
h_move_pic OUT VARCHAR2,
h_foreign OUT VARCHAR2,
h_army OUT VARCHAR2
);
-- 미판독차량만 (전체 ~ to일자)
PROCEDURE SP_TFA001E_01
(
v_row IN NUMBER,
v_office IN CHAR,
v_booth IN CHAR,
v_std_date IN CHAR,
h_pass_date OUT VARCHAR2,
h_pass_time OUT VARCHAR2,
h_office OUT VARCHAR2,
h_booth OUT VARCHAR2,
h_read_kbn OUT VARCHAR2,
h_read_id OUT VARCHAR2,
h_carno OUT VARCHAR2,
h_stop_pic OUT VARCHAR2,
h_move_pic OUT VARCHAR2
);
-- 전체건수
FUNCTION FUN_TFA001E_CNT(v_office IN CHAR,v_booth IN CHAR,v_exam_flag IN CHAR,v_stt_date IN CHAR,v_end_date IN CHAR)
RETURN NUMBER;
-- 차량정보2
PROCEDURE SP_GET_CARSINFO
(
v_office IN CHAR,
v_booth IN CHAR,
v_pass_date IN CHAR,
v_pass_time IN CHAR,
h_worker_id OUT VARCHAR2,
h_worker_name OUT VARCHAR2,
h_car_type OUT VARCHAR2,
h_looker OUT VARCHAR2,
h_looker_name OUT VARCHAR2,
h_move_pic OUT VARCHAR2,
h_stop_pic OUT VARCHAR2,
h_carno OUT VARCHAR2,
h_result_code OUT VARCHAR2,
h_levy_target OUT VARCHAR2,
h_free_reason OUT VARCHAR2,
h_not_comfirm OUT VARCHAR2,
h_etc OUT VARCHAR2
);
-- 미판독차량 건수
FUNCTION FUN_NOT_COMFIRM(v_office IN CHAR,v_booth IN CHAR,v_std_date IN CHAR) RETURN NUMBER;
-- 동일차량건수
FUNCTION FUN_SAME_CAR(v_carno IN CHAR) RETURN NUMBER;
-- 미납차량 판독후 저장
PROCEDURE SP_TFA001E_02
(
v_worker IN CHAR,
v_office IN CHAR,
v_booth IN CHAR,
v_pass_date IN CHAR,
v_pass_time IN CHAR,
v_looker_id IN CHAR,
v_car_type IN VARCHAR2,
h_result_code IN CHAR,
v_levy_target IN CHAR,
v_free_reason IN CHAR,
v_not_comfirm IN CHAR,
v_etc_info IN CHAR,
v_exam_flag IN CHAR,
v_move_pic IN VARCHAR2,
v_stop_pic IN VARCHAR2,
v_carno IN VARCHAR2,
v_seqno IN NUMBER
);
-- 동일차량정보 검색
PROCEDURE SP_TFA001E_03
(
v_row IN NUMBER,
v_car_no IN VARCHAR2,
v_pass_dt OUT VARCHAR2,
v_owner OUT VARCHAR2,
v_regno OUT VARCHAR2,
v_car_type OUT VARCHAR2
);
-- 차량번호가 없을시
PROCEDURE SP_TFA001E_04
(
v_office IN CHAR,
v_booth IN CHAR,
v_pass_date IN CHAR,
v_pass_time IN CHAR,
v_workerid OUT VARCHAR2,
v_worker_name OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_carno OUT VARCHAR2,
v_move_pic OUT VARCHAR2,
v_stop_pic OUT VARCHAR2,
h_result_code OUT VARCHAR2,
v_levy_target OUT VARCHAR2,
v_free_reason OUT VARCHAR2,
v_not_comfirm OUT VARCHAR2,
v_etc00 OUT VARCHAR2
);
END Pac_Get_Tfa001e;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TBE000E AS
/*********************************************/
/* ?????? : TEXT FILE ?? : ? ? ? */
/*********************************************/
-- make text file?...
PROCEDURE SP_TBE000E
( v_row IN NUMBER,
v_gubun IN CHAR,
v_enforce_date OUT CHAR,
v_car_no OUT VARCHAR2,
v_cars_type_id OUT CHAR,
v_document_no OUT CHAR,
v_car_type_name OUT VARCHAR2,
v_owner OUT CHAR,
v_end_date OUT CHAR,
v_document_date OUT CHAR,
v_accept_date OUT CHAR,
v_replace_kbn OUT CHAR,
v_replace_car_no OUT CHAR
);
-- ???? ? ??? ??? ?? ? ?? ??? update???...
PROCEDURE SP_FILE_TRANS_INS
(
v_newyn IN CHAR,
v_enforce_date IN CHAR,
v_car_no IN VARCHAR2,
v_fpath IN VARCHAR2,
v_fname IN VARCHAR2,
v_userid IN VARCHAR2,
v_addmaxno IN VARCHAR2
);
FUNCTION FUN_EXCEMPT_CAR_COUNT( v_gubun IN CHAR ) RETURN NUMBER;
FUNCTION FUN_FILE_MAXNUM RETURN VARCHAR2;
END PAC_GET_TBE000E;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TBD000E AS
/**************************************************/
/* ???? : ???? TEXT FILE ?? : ? ? ? */
/**************************************************/
FUNCTION FUN_TRAN_COUNT(v_gubun IN CHAR) RETURN NUMBER ;
FUNCTION FUN_FILE_MAXNUM RETURN VARCHAR2 ;
PROCEDURE SP_MAKE_SAMFILE
( v_row IN NUMBER,
v_gubun IN CHAR,
v_stt_date OUT CHAR,
v_collect_id OUT CHAR,
v_card_issue_id OUT CHAR,
v_end_date OUT CHAR,
v_trans_amount OUT NUMBER,
v_discount_kbn OUT CHAR,
v_discount_rate OUT NUMBER,
v_discount_amount OUT NUMBER,
v_levy_amount OUT NUMBER,
v_fine_amount OUT NUMBER
);
/*
** ????? ?? ???? insert or update ...
*/
PROCEDURE SP_FILE_TRANS_INS
(
v_newyn IN CHAR, -- ???? ???? ??
v_gubun IN CHAR, -- ???? ???? ??
v_stt_date IN CHAR,
v_fpath IN VARCHAR2,
v_fname IN VARCHAR2,
v_userid IN VARCHAR2,
v_addmaxno IN VARCHAR2,
v_issue_id IN VARCHAR2
);
END PAC_GET_TBD000E;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_GET_TBA502E AS
/*************************************************************/
/* 코드정보 : 근무자 등록 TEXT FILE 생성 : 처리자: 김 성 운 */
/*************************************************************/
PROCEDURE SP_SAM_WORKER_INFO
( v_row IN NUMBER,
v_kbn IN CHAR,
v_worker_id OUT VARCHAR2,
v_worker_no OUT NUMBER,
v_password OUT VARCHAR2,
v_worker_name OUT VARCHAR2,
v_regno OUT VARCHAR2,
v_telno OUT VARCHAR2,
v_pcsno OUT VARCHAR2,
v_post1 OUT VARCHAR2,
v_post2 OUT VARCHAR2,
v_addr1 OUT VARCHAR2,
v_addr2 OUT VARCHAR2,
v_company_name OUT VARCHAR2,
v_workend_yn OUT VARCHAR2,
v_shift OUT CHAR
);
-- 파일전송관련 해당 테이블에 insert or update...
PROCEDURE SP_FILE_TRANS_INS
(
v_newyn IN CHAR,
v_fpath IN VARCHAR2,
v_fname IN VARCHAR2,
v_userid IN VARCHAR2,
v_addmaxno IN VARCHAR2,
v_worker IN VARCHAR2
);
-- 전송구분에 따른 전송 건수
FUNCTION FUN_WORKER_COUNT(v_trans_kbn IN CHAR) RETURN NUMBER;
/*
** 전송한 자료번호 ( 파일종류테이블에 max + 1 인 것 )
*/
FUNCTION FUN_FILE_MAXNUM RETURN VARCHAR2 ;
END PAC_GET_TBA502E;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_FAREOFFICE
IS
/*
** ??? ??, ??? FULL?? ???. : ? ? ?
*/
TYPE TYP_FAREOFFICE_REC IS RECORD(
g_office_id CHAR ,
g_office_fname VARCHAR2(60) );
TYPE CUR_FAREOFFICE IS REF CURSOR
RETURN TYP_FAREOFFICE_REC;
END;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_BOOTH_RTN
IS
/*
** ?????? ??, ?? FULL?? ???. : ? ? ?
*/
TYPE TYP_BOOTH_REC1 IS RECORD(
g_booth_id CHAR ,
g_booth_fname VARCHAR2(60) );
TYPE CUR_BOOTH1 IS REF CURSOR
RETURN TYP_BOOTH_REC1;
END;
/
CREATE OR REPLACE PACKAGE NAMSAN3.PAC_BOOTH
IS
/*
** ????, ?? FULL?? ???. : ? ? ?
*/
TYPE TYP_BOOTH_REC IS RECORD(
g_booth_id CHAR ,
g_booth_fname VARCHAR2(60) );
TYPE CUR_BOOTH IS REF CURSOR
RETURN TYP_BOOTH_REC;
END;
/
CREATE OR REPLACE PACKAGE NAMSAN3.code_info
-----------------------------------
-- 코드등록
-----------------------------------
is
TYPE table_rec IS RECORD
(v_id char,
v_full_name varchar2(60),
v_abb_name varchar2(40),
v_yn char,
v_create_date date,
v_creater varchar2(10),
v_update_date date,
v_updater varchar2(10));
TYPE cur_example IS REF CURSOR
RETURN table_rec;
end code_info;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_WORK_STATUS_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM WORK_STATUS_CODE_INFO
WHERE WORK_STATUS_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO WORK_STATUS_CODE_INFO(WORK_STATUS_ID,WORK_STATUS_FULL_NAME,
WORK_STATUS_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE WORK_STATUS_CODE_INFO
SET WORK_STATUS_FULL_NAME = IN_FULL_NAME,
WORK_STATUS_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE WORK_STATUS_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM WORK_STATUS_CODE_INFO
WHERE WORK_STATUS_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_WORK_STATUS_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_TRE503Q AS
FUNCTION FUN_DAY_CNT ( IN_ST IN CHAR, IN_ED IN CHAR) RETURN NUMBER
IS
V_CNT NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_CNT
FROM (
SELECT YEAR||MONTH||DAY
FROM FARE_TERMINAL_INFO
WHERE YEAR||MONTH||DAY BETWEEN IN_ST AND IN_ED
AND DELETE_YN = '0'
GROUP BY YEAR||MONTH||DAY);
RETURN V_CNT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_DAY_CNT;
FUNCTION FUN_BUL (IN_BOOTH IN CHAR, IN_DATE IN CHAR) RETURN NUMBER
IS
V_BUL NUMBER := 0;
BEGIN
SELECT NVL(SUM(DECODE(IN_OUT_KBN, '21', DECODE(BOOTH_ID, IN_BOOTH, IN_OUT_COUNT,0), 0)),0) AS BUL_1
INTO V_BUL
FROM FIX_AMOUNT_DETAIL_INFO
WHERE YEAR||MONTH||DAY = IN_DATE;
RETURN V_BUL;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_BUL;
FUNCTION FUN_BEFORE
(
IN_BOOTH CHAR,
IN_DATE CHAR
) Return Number
IS
V_SALE NUMBER := 0;
V_BUL NUMBER := 0;
V_REMAIN NUMBER := 0;
V_LEVY NUMBER := 0;
BEGIN
-- 전일까지의 차로의 불출량
SELECT NVL(SUM(DECODE(IN_OUT_KBN, '21', DECODE(BOOTH_ID, IN_BOOTH, IN_OUT_COUNT,0), 0)),0) AS BUL_B
INTO V_BUL
FROM FIX_AMOUNT_DETAIL_INFO
WHERE YEAR||MONTH||DAY < IN_DATE;
-- 정액권 요금정보 가져오기
SELECT LEVY_AMOUNT
INTO V_LEVY
FROM FARE_INFO
WHERE TO_CHAR(STT_DATE, 'YYYYMMDD') <= IN_DATE
AND TO_CHAR(END_DATE, 'YYYYMMDD') >= IN_DATE
AND COLLECT_ID = '52';
-- 전일까지의 차로의 판매량
SELECT NVL(SUM(LEVY_AMOUNT / V_LEVY),0)
INTO V_SALE
FROM FARE_TERMINAL_INFO
WHERE YEAR||MONTH||DAY < IN_DATE
AND BOOTH_ID = IN_BOOTH
AND COLLECT_ID = '52'
AND DELETE_YN = '0';
/*
SELECT NVL(SUM(DECODE(COLLECT_ID, '52', DECODE(BOOTH_ID, IN_BOOTH, (LEVY_AMOUNT / V_LEVY), 0),0)),0) AS SALE_B
INTO V_SALE
FROM FARE_TERMINAL_INFO
WHERE YEAR||MONTH||DAY < IN_DATE
AND DELETE_YN = '0';
*/
V_REMAIN := V_BUL - V_SALE;
RETURN V_REMAIN;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN 0;
END FUN_BEFORE;
FUNCTION FUN_PRESENT
(
IN_BOOTH CHAR,
IN_DATE CHAR
)
RETURN NUMBER
IS
V_LEVY NUMBER;
V_SALE NUMBER;
BEGIN
-- 정액권 요금정보 가져오기
SELECT LEVY_AMOUNT
INTO V_LEVY
FROM FARE_INFO
WHERE TO_CHAR(STT_DATE, 'YYYYMMDD') <= IN_DATE
AND TO_CHAR(END_DATE, 'YYYYMMDD') >= IN_DATE
AND COLLECT_ID = '52';
-- 현재 정액권 판매
SELECT NVL(SUM(LEVY_AMOUNT / V_LEVY),0)
INTO V_SALE
FROM FARE_TERMINAL_INFO
WHERE YEAR||MONTH||DAY = IN_DATE
AND BOOTH_ID = IN_BOOTH
AND COLLECT_ID = '52'
AND DELETE_YN = '0';
RETURN V_SALE;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_PRESENT;
PROCEDURE SP_TRE503Q (IN_ROW IN NUMBER, IN_ST IN CHAR, IN_ED IN CHAR,
OUT_DATE OUT CHAR,
OUT_BUL1 OUT NUMBER, OUT_BUL2 OUT NUMBER, OUT_BUL3 OUT NUMBER,
OUT_BUL4 OUT NUMBER, OUT_BUL5 OUT NUMBER, OUT_BUL6 OUT NUMBER,
OUT_BUL7 OUT NUMBER, OUT_BUL8 OUT NUMBER, OUT_BUL9 OUT NUMBER,
OUT_BUL10 OUT NUMBER,
OUT_RE1 OUT NUMBER, OUT_RE2 OUT NUMBER, OUT_RE3 OUT NUMBER,
OUT_RE4 OUT NUMBER, OUT_RE5 OUT NUMBER, OUT_RE6 OUT NUMBER,
OUT_RE7 OUT NUMBER, OUT_RE8 OUT NUMBER, OUT_RE9 OUT NUMBER,
OUT_RE10 OUT NUMBER,
OUT_SALE1 OUT NUMBER, OUT_SALE2 OUT NUMBER, OUT_SALE3 OUT NUMBER,
OUT_SALE4 OUT NUMBER, OUT_SALE5 OUT NUMBER, OUT_SALE6 OUT NUMBER,
OUT_SALE7 OUT NUMBER, OUT_SALE8 OUT NUMBER, OUT_SALE9 OUT NUMBER,
OUT_SALE10 OUT NUMBER )
IS
CURSOR C_DATA IS
SELECT YEAR||MONTH||DAY AS T_DATE,
FUN_BUL('01', YEAR||MONTH||DAY) AS A1,
FUN_BUL('02', YEAR||MONTH||DAY) AS A2,
FUN_BUL('03', YEAR||MONTH||DAY) AS A3,
FUN_BUL('04', YEAR||MONTH||DAY) AS A4,
FUN_BUL('05', YEAR||MONTH||DAY) AS A5,
FUN_BUL('06', YEAR||MONTH||DAY) AS A6,
FUN_BUL('07', YEAR||MONTH||DAY) AS A7,
FUN_BUL('08', YEAR||MONTH||DAY) AS A8,
FUN_BUL('09', YEAR||MONTH||DAY) AS A9,
FUN_BUL('10', YEAR||MONTH||DAY) AS A10,
FUN_BEFORE('01', YEAR||MONTH||DAY) AS B1,
FUN_BEFORE('02', YEAR||MONTH||DAY) AS B2,
FUN_BEFORE('03', YEAR||MONTH||DAY) AS B3,
FUN_BEFORE('04', YEAR||MONTH||DAY) AS B4,
FUN_BEFORE('05', YEAR||MONTH||DAY) AS B5,
FUN_BEFORE('06', YEAR||MONTH||DAY) AS B6,
FUN_BEFORE('07', YEAR||MONTH||DAY) AS B7,
FUN_BEFORE('08', YEAR||MONTH||DAY) AS B8,
FUN_BEFORE('09', YEAR||MONTH||DAY) AS B9,
FUN_BEFORE('10', YEAR||MONTH||DAY) AS B10,
FUN_PRESENT('01', YEAR||MONTH||DAY) AS C1,
FUN_PRESENT('02', YEAR||MONTH||DAY) AS C2,
FUN_PRESENT('03', YEAR||MONTH||DAY) AS C3,
FUN_PRESENT('04', YEAR||MONTH||DAY) AS C4,
FUN_PRESENT('05', YEAR||MONTH||DAY) AS C5,
FUN_PRESENT('06', YEAR||MONTH||DAY) AS C6,
FUN_PRESENT('07', YEAR||MONTH||DAY) AS C7,
FUN_PRESENT('08', YEAR||MONTH||DAY) AS C8,
FUN_PRESENT('09', YEAR||MONTH||DAY) AS C9,
FUN_PRESENT('10', YEAR||MONTH||DAY) AS C10
FROM FARE_TERMINAL_INFO
WHERE YEAR||MONTH||DAY BETWEEN IN_ST AND IN_ED
GROUP BY YEAR||MONTH||DAY;
E_DATA C_DATA%ROWTYPE;
BEGIN
FOR E_DATA IN C_DATA
LOOP
OUT_DATE := E_DATA.T_DATE;
OUT_BUL1 := E_DATA.A1;
OUT_BUL2 := E_DATA.A2;
OUT_BUL3 := E_DATA.A3;
OUT_BUL4 := E_DATA.A4;
OUT_BUL5 := E_DATA.A5;
OUT_BUL6 := E_DATA.A6;
OUT_BUL7 := E_DATA.A7;
OUT_BUL8 := E_DATA.A8;
OUT_BUL9 := E_DATA.A9;
OUT_BUL10 := E_DATA.A10;
OUT_RE1 := E_DATA.B1;
OUT_RE2 := E_DATA.B2;
OUT_RE3 := E_DATA.B3;
OUT_RE4 := E_DATA.B4;
OUT_RE5 := E_DATA.B5;
OUT_RE6 := E_DATA.B6;
OUT_RE7 := E_DATA.B7;
OUT_RE8 := E_DATA.B8;
OUT_RE9 := E_DATA.B9;
OUT_RE10 := E_DATA.B10;
OUT_SALE1 := E_DATA.C1;
OUT_SALE2 := E_DATA.C2;
OUT_SALE3 := E_DATA.C3;
OUT_SALE4 := E_DATA.C4;
OUT_SALE5 := E_DATA.C5;
OUT_SALE6 := E_DATA.C6;
OUT_SALE7 := E_DATA.C7;
OUT_SALE8 := E_DATA.C8;
OUT_SALE9 := E_DATA.C9;
OUT_SALE10 := E_DATA.C10;
EXIT WHEN C_DATA%ROWCOUNT >= IN_ROW;
END LOOP;
END SP_TRE503Q;
END PKG_TRE503Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_SEIZ_WRONG_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM SEIZURE_WRONG_CODE_INFO
WHERE SEIZURE_WRONG_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO SEIZURE_WRONG_CODE_INFO(SEIZURE_WRONG_ID,SEIZURE_WRONG_FULL_NAME,
SEIZURE_WRONG_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE SEIZURE_WRONG_CODE_INFO
SET SEIZURE_WRONG_FULL_NAME = IN_FULL_NAME,
SEIZURE_WRONG_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE SEIZURE_WRONG_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM SEIZURE_WRONG_CODE_INFO
WHERE SEIZURE_WRONG_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_SEIZ_WRONG_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_SEIZ_CODE_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM SEIZURE_CODE_INFO
WHERE SEIZURE_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO SEIZURE_CODE_INFO(SEIZURE_ID,SEIZURE_FULL_NAME,
SEIZURE_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE SEIZURE_CODE_INFO
SET SEIZURE_FULL_NAME = IN_FULL_NAME,
SEIZURE_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE SEIZURE_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM SEIZURE_CODE_INFO
WHERE SEIZURE_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_SEIZ_CODE_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_RETURN_REASON_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM RETURN_REASON_CODE_INFO
WHERE RETURN_REASON_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO RETURN_REASON_CODE_INFO(RETURN_REASON_ID,RETURN_REASON_FULL_NAME,
RETURN_REASON_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE RETURN_REASON_CODE_INFO
SET RETURN_REASON_FULL_NAME = IN_FULL_NAME,
RETURN_REASON_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE RETURN_REASON_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM RETURN_REASON_CODE_INFO
WHERE RETURN_REASON_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_RETURN_REASON_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_RECEIPT_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM RECEIPT_CODE_INFO
WHERE RECEIPT_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO RECEIPT_CODE_INFO(RECEIPT_ID,RECEIPT_FULL_NAME,
RECEIPT_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE RECEIPT_CODE_INFO
SET RECEIPT_FULL_NAME = IN_FULL_NAME,
RECEIPT_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE RECEIPT_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM RECEIPT_CODE_INFO
WHERE RECEIPT_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_RECEIPT_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_READ_RESULT_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM READ_RESULT_CODE_INFO
WHERE READ_RESULT_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO READ_RESULT_CODE_INFO(READ_RESULT_ID,READ_RESULT_FULL_NAME,
READ_RESULT_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE READ_RESULT_CODE_INFO
SET READ_RESULT_FULL_NAME = IN_FULL_NAME,
READ_RESULT_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE READ_RESULT_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM READ_RESULT_CODE_INFO
WHERE READ_RESULT_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_READ_RESULT_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_READING_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM READING_CODE_INFO
WHERE READING_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO READING_CODE_INFO(READING_ID,READING_FULL_NAME,
READING_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE READING_CODE_INFO
SET READING_FULL_NAME = IN_FULL_NAME,
READING_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE READING_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM READING_CODE_INFO
WHERE READING_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_READING_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.pkg_part_Reg is
procedure count_part (in_id in char, out_val out number) is
begin
select count(*)
into out_val
from part_code_info
where part_id like in_id;
end count_part;
procedure Insert_Part
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
insert into part_code_info(part_id,part_full_name,
part_abb_name,use_yn,create_date,creater,update_date,updater)
values(in_id, in_full_name, in_abb_name, in_yn, sysdate,
in_name, sysdate, in_name);
commit;
end Insert_Part;
procedure Update_Part
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
update part_code_info
set part_full_name = in_full_name, part_abb_name = in_abb_name,
use_yn = in_yn, update_date = sysdate, updater = in_name
where part_id = in_id;
commit;
end Update_Part;
procedure Delete_Part
(in_id char)
is
begin
delete from part_code_info
where part_id = in_id;
commit;
end Delete_Part;
end pkg_part_Reg;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_OWNER_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM OWNER_TYPE_CODE_INFO
WHERE OWNER_TYPE_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO OWNER_TYPE_CODE_INFO(OWNER_TYPE_ID,OWNER_TYPE_FULL_NAME,
OWNER_TYPE_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE OWNER_TYPE_CODE_INFO
SET OWNER_TYPE_FULL_NAME = IN_FULL_NAME,
OWNER_TYPE_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE OWNER_TYPE_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM OWNER_TYPE_CODE_INFO
WHERE OWNER_TYPE_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_OWNER_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_NOTICE_WRONG_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM NOTICE_WRONG_CODE_INFO
WHERE NOTICE_WRONG_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO NOTICE_WRONG_CODE_INFO(NOTICE_WRONG_ID,NOTICE_WRONG_FULL_NAME,
NOTICE_WRONG_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE NOTICE_WRONG_CODE_INFO
SET NOTICE_WRONG_FULL_NAME = IN_FULL_NAME,
NOTICE_WRONG_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE NOTICE_WRONG_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM NOTICE_WRONG_CODE_INFO
WHERE NOTICE_WRONG_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_NOTICE_WRONG_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_NOTICE_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM NOTICE_CODE_INFO
WHERE NOTICE_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO NOTICE_CODE_INFO(NOTICE_ID,NOTICE_FULL_NAME,
NOTICE_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE NOTICE_CODE_INFO
SET NOTICE_FULL_NAME = IN_FULL_NAME,
NOTICE_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE NOTICE_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM NOTICE_CODE_INFO
WHERE NOTICE_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_NOTICE_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_NOTCONFIRM_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM NOTCONFIRM_CODE_INFO
WHERE NOTCONFIRM_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO NOTCONFIRM_CODE_INFO(NOTCONFIRM_ID,NOTCONFIRM_FULL_NAME,
NOTCONFIRM_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE NOTCONFIRM_CODE_INFO
SET NOTCONFIRM_FULL_NAME = IN_FULL_NAME,
NOTCONFIRM_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE NOTCONFIRM_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM NOTCONFIRM_CODE_INFO
WHERE NOTCONFIRM_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_NOTCONFIRM_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_MOTION_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM MOTION_CODE_INFO
WHERE MOTION_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO MOTION_CODE_INFO(MOTION_ID,MOTION_FULL_NAME,
MOTION_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE MOTION_CODE_INFO
SET MOTION_FULL_NAME = IN_FULL_NAME,
MOTION_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE MOTION_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM MOTION_CODE_INFO
WHERE MOTION_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_MOTION_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_MEASURE_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM MEASURE_RESULT_CODE_INFO
WHERE MEASURE_RESULT_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO MEASURE_RESULT_CODE_INFO(MEASURE_RESULT_ID,MEASURE_RESULT_FULL_NAME,
MEASURE_RESULT_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE MEASURE_RESULT_CODE_INFO
SET MEASURE_RESULT_FULL_NAME = IN_FULL_NAME,
MEASURE_RESULT_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE MEASURE_RESULT_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM MEASURE_RESULT_CODE_INFO
WHERE MEASURE_RESULT_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_MEASURE_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_LAVY_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM LAVY_NOTICE_CODE_INFO
WHERE LAVY_NOTICE_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO LAVY_NOTICE_CODE_INFO(LAVY_NOTICE_ID,LAVY_NOTICE_FULL_NAME,
LAVY_NOTICE_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE LAVY_NOTICE_CODE_INFO
SET LAVY_NOTICE_FULL_NAME = IN_FULL_NAME,
LAVY_NOTICE_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE LAVY_NOTICE_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM LAVY_NOTICE_CODE_INFO
WHERE LAVY_NOTICE_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_LAVY_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.pkg_issue_Reg is
procedure count_issue (in_id in char, out_val out number) is
begin
select count(*)
into out_val
from issue_office_code_info
where issue_office_id like in_id;
end count_issue;
procedure Insert_Issue
(in_id char,in_card char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
insert into issue_office_code_info(issue_office_id,card_office_id,issue_name,
issue_abb_name,use_yn,create_date,creater,update_date,updater)
values(rtrim(in_id), rtrim(in_card),rtrim(in_full_name), rtrim(in_abb_name),
in_yn, sysdate, rtrim(in_name),sysdate, rtrim(in_name));
commit;
end Insert_Issue;
procedure Update_Issue
(in_id char,in_card char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
update issue_office_code_info
set card_office_id = in_card,issue_name = in_full_name, issue_abb_name = in_abb_name,
use_yn = in_yn, TRANS_FILE_CREATE_YN = '0',update_date = sysdate, updater = in_name,
file_kind_id = null, year = null, month = null, day = null, data_seqno = null
where issue_office_id = in_id;
commit;
end Update_Issue;
procedure Delete_Issue
(in_id char)
is
begin
delete from issue_office_code_info
where issue_office_id = in_id;
commit;
end Delete_Issue;
end pkg_issue_Reg;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.pkg_file_Reg is
procedure count_file (in_id in char, out_val out number) is
begin
select count(*)
into out_val
from file_kind_code_info
where file_kind_id like in_id;
end count_file;
procedure Insert_File
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
insert into file_kind_code_info(file_kind_id,file_kind_full_name,
file_kind_abb_name,use_yn,create_date,creater,update_date,updater)
values(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
commit;
end Insert_File;
procedure Update_File
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
update file_kind_code_info
set file_kind_full_name = in_full_name, file_kind_abb_name = in_abb_name,
use_yn = in_yn, update_date = sysdate, updater = in_name
where file_kind_id = in_id;
commit;
end Update_File;
procedure Delete_File
(in_id char)
is
begin
delete from file_kind_code_info
where file_kind_id = in_id;
commit;
end Delete_File;
end pkg_file_Reg;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.pkg_fare_Reg is
procedure count_fare (in_id in char, out_val out number) is
begin
select count(*)
into out_val
from fare_office_code_info
where fare_office_id like in_id;
end count_fare;
procedure Insert_Fare
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
insert into fare_office_code_info(fare_office_id,fare_office_full_name,
fare_office_abb_name,use_yn,create_date,creater,update_date,updater)
values(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
commit;
end Insert_Fare;
procedure Update_Fare
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
update fare_office_code_info
set fare_office_full_name = in_full_name, fare_office_abb_name = in_abb_name,
use_yn = in_yn, TRANS_FILE_CREATE_YN = '0',update_date = sysdate, updater = in_name,
file_kind_id = null, year = null, month = null, day = null, data_seqno = null
where fare_office_id = in_id;
commit;
end Update_Fare;
procedure Delete_Fare
(in_id char)
is
begin
delete from fare_office_code_info
where fare_office_id = in_id;
commit;
end Delete_Fare;
end pkg_fare_Reg;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.pkg_equip_Reg is
procedure count_equip (in_id in char, out_val out number) is
begin
select count(*)
into out_val
from equipment_code_info
where exemption_id like in_id;
end count_equip;
procedure Insert_Equip
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
insert into equipment_code_info(exemption_id,exemption_full_name,
exemption_abb_name,use_yn,create_date,creater,update_date,updater)
values(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
commit;
end Insert_Equip;
procedure Update_Equip
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
update equipment_code_info
set exemption_full_name = in_full_name, exemption_abb_name = in_abb_name,
use_yn = in_yn, update_date = sysdate, updater = in_name
where exemption_id = in_id;
commit;
end Update_Equip;
procedure Delete_Equip
(in_id char)
is
begin
delete from equipment_code_info
where exemption_id = in_id;
commit;
end Delete_Equip;
end pkg_equip_Reg;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_CONFIRM_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM CONFIRM_CODE_INFO
WHERE CONFIRM_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO CONFIRM_CODE_INFO(CONFIRM_ID,CONFIRM_FULL_NAME,
CONFIRM_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE CONFIRM_CODE_INFO
SET CONFIRM_FULL_NAME = IN_FULL_NAME,
CONFIRM_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE CONFIRM_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM CONFIRM_CODE_INFO
WHERE CONFIRM_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_CONFIRM_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.pkg_collect_Reg is
procedure count_collect (in_id in char, out_val out number) is
begin
select count(*)
into out_val
from collect_code_info
where collect_id like in_id;
end count_collect;
procedure Insert_collect
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
insert into collect_code_info(collect_id,collect_full_name,
collect_abb_name,use_yn,create_date,creater,update_date,updater)
values(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
commit;
end Insert_collect;
procedure Update_collect
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
update collect_code_info
set collect_full_name = in_full_name, collect_abb_name = in_abb_name,
use_yn = in_yn, TRANS_FILE_CREATE_YN = '0',update_date = sysdate, updater = in_name,
file_kind_id = null, year = null, month = null, day = null, data_seqno = null
where collect_id = in_id;
commit;
end Update_collect;
procedure Delete_collect
(in_id char)
is
begin
delete from collect_code_info
where collect_id = in_id;
commit;
end Delete_collect;
end pkg_collect_Reg;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_CIVIL_S_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM CIVIL_SUMMARY_CODE_INFO
WHERE CIVIL_SUMMARY_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO CIVIL_SUMMARY_CODE_INFO(CIVIL_SUMMARY_ID,CIVIL_SUMMARY_FULL_NAME,
CIVIL_SUMMARY_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE CIVIL_SUMMARY_CODE_INFO
SET CIVIL_SUMMARY_FULL_NAME = IN_FULL_NAME,
CIVIL_SUMMARY_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE CIVIL_SUMMARY_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM CIVIL_SUMMARY_CODE_INFO
WHERE CIVIL_SUMMARY_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_CIVIL_S_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_CIVIL_P_REG AS
PROCEDURE COUNT_FILE (in_id in char, out_val out number) IS
BEGIN
SELECT COUNT(*)
INTO OUT_VAL
FROM CIVIL_PROCESS_CODE_INFO
WHERE CIVIL_PROCESS_ID LIKE IN_ID;
END COUNT_FILE;
PROCEDURE INSERT_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
INSERT INTO CIVIL_PROCESS_CODE_INFO(CIVIL_PROCESS_ID,CIVIL_PROCESS_FULL_NAME,
CIVIL_PROCESS_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
COMMIT;
END INSERT_FILE;
PROCEDURE UPDATE_FILE
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
IS
BEGIN
UPDATE CIVIL_PROCESS_CODE_INFO
SET CIVIL_PROCESS_FULL_NAME = IN_FULL_NAME,
CIVIL_PROCESS_ABB_NAME = IN_ABB_NAME,
USE_YN = IN_YN,
UPDATE_DATE = SYSDATE,
UPDATER = IN_NAME
WHERE CIVIL_PROCESS_ID = IN_ID;
COMMIT;
END UPDATE_FILE;
PROCEDURE DELETE_FILE
(in_id char)
IS
BEGIN
DELETE FROM CIVIL_PROCESS_CODE_INFO
WHERE CIVIL_PROCESS_ID = IN_ID;
COMMIT;
END DELETE_FILE;
END PKG_CIVIL_P_REG;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.pkg_catalog_Reg is
procedure count_catalog (in_id in char, out_val out number) is
begin
select count(*)
into out_val
from catalog_code_info
where catalog_id like in_id;
end count_catalog;
procedure Insert_Catalog
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
insert into catalog_code_info(catalog_id,catalog_full_name,
catalog_abb_name,use_yn,create_date,creater,update_date,updater)
values(in_id, in_full_name, in_abb_name, in_yn, sysdate,
in_name, sysdate, in_name);
commit;
end Insert_Catalog;
procedure Update_Catalog
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
update catalog_code_info
set catalog_full_name = in_full_name, catalog_abb_name = in_abb_name,
use_yn = in_yn, update_date = sysdate, updater = in_name
where catalog_id = in_id;
commit;
end Update_Catalog;
procedure Delete_Catalog
(in_id char)
is
begin
delete from catalog_code_info
where catalog_id = in_id;
commit;
end Delete_Catalog;
end pkg_catalog_Reg;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.pkg_cars_Reg is
procedure count_cars (in_id in char, out_val out number) is
begin
select count(*)
into out_val
from cars_type_code_info
where cars_type_id like in_id;
end count_cars;
procedure Insert_Cars
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_st_fno char, in_ed_fno char, in_st_sno char, in_ed_sno char,in_name varchar2)
is
begin
insert into cars_type_code_info(CARS_TYPE_ID,CARS_TYPE_FULL_NAME,CARS_TYPE_ABB_NAME,
USE_YN,STT_FNO,END_FNO,STT_SNO,END_SNO,CREATE_DATE,CREATER,UPDATE_DATE,
UPDATER)
values(in_id, in_full_name, in_abb_name, in_yn, in_st_fno, in_ed_fno, in_st_sno,
in_ed_sno, sysdate, in_name,sysdate, in_name);
commit;
end Insert_Cars;
procedure Update_Cars
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_st_fno char, in_ed_fno char, in_st_sno char, in_ed_sno char,in_name varchar2)
is
begin
update cars_type_code_info
set cars_type_full_name = in_full_name, cars_type_abb_name = in_abb_name,
use_yn = in_yn, STT_FNO = in_st_fno,END_FNO = in_ed_fno,
STT_SNO = in_st_sno,END_SNO = in_ed_sno,
TRANS_FILE_CREATE_YN = '0',update_date = sysdate, updater = in_name,
file_kind_id = null, year = null, month = null, day = null, data_seqno = null
where cars_type_id = in_id;
commit;
end Update_Cars;
procedure Delete_Cars
(in_id char)
is
begin
delete from cars_type_code_info
where cars_type_id = in_id;
commit;
end Delete_Cars;
end pkg_cars_Reg;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.pkg_card_Reg is
procedure count_card (in_id in char, out_val out number) is
begin
select count(*)
into out_val
from card_office_code_info
where card_office_id like rtrim(in_id);
end count_card;
procedure Insert_card
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
insert into card_office_code_info(CARD_OFFICE_ID,CARD_OFFICE_FULL_NAME,
CARD_OFFICE_ABB_NAME,USE_YN,CREATE_DATE,CREATER,UPDATE_DATE,
UPDATER)
values(rtrim(in_id), in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
commit;
end Insert_card;
procedure Update_card
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
update card_office_code_info
set CARD_OFFICE_FULL_NAME = in_full_name, CARD_OFFICE_ABB_NAME = in_abb_name,
use_yn = in_yn, TRANS_FILE_CREATE_YN = '0',update_date = sysdate, updater = in_name,
file_kind_id = null, year = null, month = null, day = null, data_seqno = null
where CARD_OFFICE_ID = rtrim(in_id);
commit;
end Update_card;
procedure Delete_card
(in_id char)
is
begin
delete from card_office_code_info
where card_office_id = rtrim(in_id);
commit;
end Delete_card;
end pkg_card_Reg;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.pkg_booth_Reg is
procedure count_booth (in_fare in char, in_booth in char, out_val out number) is
begin
select count(*)
into out_val
from booth_code_info
where fare_office_id like in_fare
and booth_id like in_booth;
end count_booth;
procedure Insert_booth
(in_fare char,in_booth char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_inout char,in_name varchar2)
is
begin
insert into booth_code_info(FARE_OFFICE_ID,BOOTH_ID,BOOTH_FULL_NAME,BOOTH_ABB_NAME,
USE_YN,IN_OUT_KBN,CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
values(in_fare, in_booth,in_full_name,in_abb_name, in_yn, in_inout,sysdate, in_name,
sysdate, in_name);
commit;
end Insert_booth;
procedure Update_booth
(in_fare char,in_booth char, in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_inout char,in_name varchar2)
is
begin
update booth_code_info
set booth_full_name = in_full_name, booth_abb_name = in_abb_name,
use_yn = in_yn, in_out_kbn = in_inout,TRANS_FILE_CREATE_YN = '0',
FILE_KIND_ID = null, YEAR = null,MONTH = null,DAY = null,DATA_SEQNO = null,
update_date = sysdate, updater = in_name
where fare_office_id = in_fare
and booth_id = in_booth;
commit;
end Update_booth;
procedure Delete_booth
(in_fare char, in_booth char)
is
begin
delete from booth_code_info
where fare_office_id = in_fare
and booth_id = in_booth;
commit;
end Delete_booth;
end pkg_booth_Reg;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.pkg_bad_Reg is
procedure count_bad (in_id in char, out_val out number) is
begin
select count(*)
into out_val
from bad_code_info
where bad_id like in_id;
end count_bad;
procedure Insert_Bad
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
insert into bad_code_info(bad_id,bad_full_name,
bad_abb_name,use_yn,create_date,creater,update_date,updater)
values(in_id, in_full_name, in_abb_name, in_yn, sysdate, in_name,
sysdate, in_name);
commit;
end Insert_Bad;
procedure Update_Bad
(in_id char,in_full_name varchar2,in_abb_name varchar2,in_yn char,
in_name varchar2)
is
begin
update bad_code_info
set bad_full_name = in_full_name, bad_abb_name = in_abb_name,
use_yn = in_yn, update_date = sysdate, updater = in_name
where bad_id = in_id;
commit;
end Update_Bad;
procedure Delete_Bad
(in_id char)
is
begin
delete from bad_code_info
where bad_id = in_id;
commit;
end Delete_Bad;
end pkg_bad_Reg;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PKG_AUTO_ZIPGE AS
-- 요금정보에서 당일 징수유형별 금액을 가져온다.
FUNCTION FUN_MONEY
(
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;
-- 차량시간별 수기입력 통행량 및 금액(현금)
FUNCTION FUN_CARTIME_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
-- 수기입력 건수, 금액 리턴
V_RET NUMBER := 0;
BEGIN
IF IN_GUBUN = 'CNT' THEN
BEGIN
SELECT COUNT(*)
INTO V_RET
FROM FARE_TERMINAL_INFO A
WHERE 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 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(A.LEVY_AMOUNT),0)
INTO V_RET
FROM FARE_TERMINAL_INFO A
WHERE 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 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_CARTIME_SUGI;
PROCEDURE SP_AUTO_CARTIME
IS
V_DAY CHAR(1) := '';
BEGIN
V_DAY := FUN_DAY(TO_CHAR(SYSDATE - 1, 'YYYYMMDD'));
-- 평일 : 20시를 기준으로 이전 시간 정보를 먼저 집계하고...
-- 20시부터 21시에 통행한 차량은 모두 20시에 통행한것으로 집계함...
-- 평일
IF V_DAY = '1' THEN
SP_CARTIME_1('20');
SP_CARTIME_2('19');
-- 토요일
ELSE
SP_CARTIME_1('14');
SP_CARTIME_3('13');
END IF;
END SP_AUTO_CARTIME;
-- 차종별 시간별 정산정보 집계작업 1
PROCEDURE SP_CARTIME_1
(
IN_TIME IN CHAR
)
IS
CURSOR C_CARTIME IS
SELECT A.FARE_OFFICE_ID AS c_fare, A.BOOTH_ID AS c_booth,
A.YEAR AS t_year, A.MONTH AS t_month, A.DAY AS t_day, A.CAR_TYPE_ID AS t_car,
SUBSTR(A.WORK_TIMES,1,2) AS t_time,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'30',1,0),0)) AS cnt_free_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'10',1,0),0)) AS cnt_cash_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'51',1,0),0)) AS cnt_coupon_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'40',1,0),0)) AS cnt_minap_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'21',1,0),0)) AS cnt_sun_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'22',1,0),0)) AS cnt_who_in,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'30',1,0),0)) AS cnt_free_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'10',1,0),0)) AS cnt_cash_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'51',1,0),0)) AS cnt_coupon_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'40',1,0),0)) AS cnt_minap_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'21',1,0),0)) AS cnt_sun_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'22',1,0),0)) AS cnt_who_out,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'10',A.LEVY_AMOUNT,0),0)) AS n_cash_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'21',A.LEVY_AMOUNT,0),0)) AS n_sun_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'22',A.LEVY_AMOUNT,0),0)) AS n_who_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'51',A.LEVY_AMOUNT,0),0)) AS n_coupon_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'52',A.LEVY_AMOUNT,0),0)) AS n_ticket_in,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'10',A.LEVY_AMOUNT,0),0)) AS n_cash_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'21',A.LEVY_AMOUNT,0),0)) AS n_sun_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'22',A.LEVY_AMOUNT,0),0)) AS n_who_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'51',A.LEVY_AMOUNT,0),0)) AS n_coupon_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'52',A.LEVY_AMOUNT,0),0)) AS n_ticket_out,
SUM(DECODE(a.in_out_kbn, '1', DECODE(A.note_trans_yn,'1', DECODE(a.new_data_yn,'1',1,0),0),0)) AS CNT_SUGI_IN,
SUM(DECODE(a.in_out_kbn, '2', DECODE(A.note_trans_yn,'1', DECODE(a.new_data_yn,'1',1,0),0),0)) AS CNT_SUGI_OUT,
SUM(DECODE(a.in_out_kbn, '1', DECODE(A.note_trans_yn,'1', DECODE(a.new_data_yn,'1',A.LEVY_AMOUNT,0),0),0)) AS N_SUGI_IN,
SUM(DECODE(a.in_out_kbn, '2', DECODE(A.note_trans_yn,'1', DECODE(a.new_data_yn,'1',A.LEVY_AMOUNT,0),0),0)) AS N_SUGI_OUT,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'11',1,0),0)) AS cnt_k_cash_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'23',1,0),0)) AS cnt_k_sun_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'24',1,0),0)) AS cnt_k_who_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'53',1,0),0)) AS cnt_k_coupon_in,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'11',1,0),0)) AS cnt_k_cash_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'23',1,0),0)) AS cnt_k_sun_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'24',1,0),0)) AS cnt_k_who_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'53',1,0),0)) AS cnt_k_coupon_out,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'11',A.LEVY_AMOUNT,0),0)) AS n_k_cash_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'23',A.LEVY_AMOUNT,0),0)) AS n_k_sun_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'24',A.LEVY_AMOUNT,0),0)) AS n_k_who_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'54',A.LEVY_AMOUNT,0),0)) AS n_k_ticket_in,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'11',A.LEVY_AMOUNT,0),0)) AS n_k_cash_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'23',A.LEVY_AMOUNT,0),0)) AS n_k_sun_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'24',A.LEVY_AMOUNT,0),0)) AS n_k_who_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'54',A.LEVY_AMOUNT,0),0)) AS n_k_ticket_out,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_cash_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_sun_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_who_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '30', decode(a.rfid_kbn, '02', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '30', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_free_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '53', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '53', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '53', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '53', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_coupon_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_cash_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_sun_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_who_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '30', decode(a.rfid_kbn, '02', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '30', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_free_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '53', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '53', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '53', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '53', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_coupon_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as in_rfid_cash_m,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as in_rfid_sun_m,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as in_rfid_who_m,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as out_rfid_cash_m,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as out_rfid_sun_m,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as out_rfid_who_m
FROM FARE_TERMINAL_INFO A
WHERE A.YEAR||A.MONTH||A.DAY = TO_CHAR(SYSDATE - 1, 'YYYYMMDD')
AND A.DELETE_YN = '0'
AND SUBSTR(A.WORK_TIMES,1,2) < IN_TIME
GROUP BY A.FARE_OFFICE_ID,A.BOOTH_ID,A.YEAR, A.MONTH,A.DAY, A.CAR_TYPE_ID, SUBSTR(A.WORK_TIMES,1,2);
E_CARTIME C_CARTIME%ROWTYPE;
V_FARE CHAR(2) := '';
V_BOOTH CHAR(2) := '';
V_YEAR CHAR(4) := '';
V_MONTH CHAR(2) := '';
V_DAY CHAR(2) := '';
V_CAR CHAR(1) := '';
V_TIME CHAR(2) := '';
V_IN_FREE_CNT NUMBER := 0;
V_IN_CASH_CNT NUMBER := 0;
V_IN_COUPON_CNT NUMBER := 0;
V_IN_MINAP_CNT NUMBER := 0;
V_IN_SUN_CNT NUMBER := 0;
V_IN_WHO_CNT NUMBER := 0;
V_OUT_FREE_CNT NUMBER := 0;
V_OUT_CASH_CNT NUMBER := 0;
V_OUT_COUPON_CNT NUMBER := 0;
V_OUT_MINAP_CNT NUMBER := 0;
V_OUT_SUN_CNT NUMBER := 0;
V_OUT_WHO_CNT NUMBER := 0;
V_IN_CASH_N NUMBER := 0;
V_IN_SUN_N NUMBER := 0;
V_IN_WHO_N NUMBER := 0;
V_IN_COUPON_N NUMBER := 0;
V_IN_TICKET_N NUMBER := 0;
V_OUT_CASH_N NUMBER := 0;
V_OUT_SUN_N NUMBER := 0;
V_OUT_WHO_N NUMBER := 0;
V_OUT_COUPON_N NUMBER := 0;
V_OUT_TICKET_N NUMBER := 0;
V_IN_TICKET_CNT NUMBER := 0;
V_OUT_TICKET_CNT NUMBER := 0;
V_IN_SUGI_CNT NUMBER := 0;
V_OUT_SUGI_CNT NUMBER := 0;
V_IN_SUGI_N NUMBER := 0;
V_OUT_SUGI_N NUMBER := 0;
-- 20031115 경차관련 추가 - ARCADIA
V_IN_K_CASH_CNT NUMBER := 0;
V_IN_K_SUN_CNT NUMBER := 0;
V_IN_K_WHO_CNT NUMBER := 0;
V_IN_K_COUPON_CNT NUMBER := 0;
V_IN_K_TICKET_CNT NUMBER := 0;
V_OUT_K_CASH_CNT NUMBER := 0;
V_OUT_K_SUN_CNT NUMBER := 0;
V_OUT_K_WHO_CNT NUMBER := 0;
V_OUT_K_COUPON_CNT NUMBER := 0;
V_OUT_K_TICKET_CNT NUMBER := 0;
V_IN_K_CASH_N NUMBER := 0;
V_IN_K_SUN_N NUMBER := 0;
V_IN_K_WHO_N NUMBER := 0;
V_IN_K_TICKET_N NUMBER := 0;
V_OUT_K_CASH_N NUMBER := 0;
V_OUT_K_SUN_N NUMBER := 0;
V_OUT_K_WHO_N NUMBER := 0;
V_OUT_K_TICKET_N NUMBER := 0;
V_IN_REPAY_CNT NUMBER := 0;
V_OUT_REPAY_CNT NUMBER := 0;
V_IN_REPAY_N NUMBER := 0;
V_OUT_REPAY_N NUMBER := 0;
V_SALE NUMBER := 0;
V_K_SALE NUMBER := 0;
V_SQLCODE NUMBER := 0;
V_FARE_CNT NUMBER := 0;
V_CARTIME_CNT NUMBER := 0;
V_DATE CHAR(8) := TO_CHAR(SYSDATE - 1, 'YYYYMMDD');
-- 2007.7.12 kde RFID 통행량, 수입금 추가...
V_IN_RFID_CASH_Q NUMBER := 0;
V_IN_RFID_SUN_Q NUMBER := 0;
V_IN_RFID_WHO_Q NUMBER := 0;
V_IN_RFID_COUPON_Q NUMBER := 0;
V_IN_RFID_FREE_Q NUMBER := 0;
V_OUT_RFID_CASH_Q NUMBER := 0;
V_OUT_RFID_SUN_Q NUMBER := 0;
V_OUT_RFID_WHO_Q NUMBER := 0;
V_OUT_RFID_COUPON_Q NUMBER := 0;
V_OUT_RFID_FREE_Q NUMBER := 0;
V_IN_RFID_CASH_M NUMBER := 0;
V_IN_RFID_SUN_M NUMBER := 0;
V_IN_RFID_WHO_M NUMBER := 0;
V_OUT_RFID_CASH_M NUMBER := 0;
V_OUT_RFID_SUN_M NUMBER := 0;
V_OUT_RFID_WHO_M NUMBER := 0;
BEGIN
-- fare_terminal_info에 집계할 날짜의 data가 없으면 작업을 끝낸다.
SELECT COUNT(*)
INTO V_FARE_CNT
FROM FARE_TERMINAL_INFO A
WHERE A.YEAR||A.MONTH||A.DAY = V_DATE
AND A.DELETE_YN = '0';
IF V_FARE_CNT = 0 THEN
RETURN;
END IF;
-- car_time_adjust_info에 data가 존재하면 삭제하고 다음작업을 실행한다.
SELECT COUNT(*)
INTO V_CARTIME_CNT
FROM CAR_TIME_ADJUST_INFO
WHERE YEAR||MONTH||DAY = V_DATE;
IF V_CARTIME_CNT > 0 THEN
BEGIN
DELETE FROM CAR_TIME_ADJUST_INFO
WHERE YEAR||MONTH||DAY = V_DATE;
V_SQLCODE := SQLCODE;
END;
END IF;
IF V_SQLCODE = 0 THEN
-- 요금정보에서 당일 정액권 금액을 가져온다.
V_SALE := FUN_MONEY(V_DATE, '52');
V_K_SALE := FUN_MONEY(V_DATE, '54');
FOR E_CARTIME IN C_CARTIME
LOOP
V_FARE := E_CARTIME.C_FARE;
V_BOOTH := E_CARTIME.C_BOOTH;
V_YEAR := E_CARTIME.T_YEAR;
V_MONTH := E_CARTIME.T_MONTH;
V_DAY := E_CARTIME.T_DAY;
V_CAR := E_CARTIME.T_CAR;
V_TIME := E_CARTIME.T_TIME;
-- 환불건수
SELECT COUNT(*), NVL(SUM(NVL(LEVY_AMOUNT,0)),0)
INTO V_IN_REPAY_CNT, V_IN_REPAY_N
FROM RF_REPAY_INFO
WHERE FARE_OFFICE_ID = V_FARE
AND BOOTH_ID = V_BOOTH
AND YEAR = V_YEAR
AND MONTH = V_MONTH
AND DAY = V_DAY
AND SUBSTR(WORK_TIMES,1,2) = V_TIME
AND CAR_TYPE_ID = V_CAR
and in_out_kbn = '1'
and c_repay_kbn in ('1','2');
SELECT COUNT(*), NVL(SUM(NVL(LEVY_AMOUNT,0)),0)
INTO V_OUT_REPAY_CNT, V_OUT_REPAY_N
FROM RF_REPAY_INFO
WHERE FARE_OFFICE_ID = V_FARE
AND BOOTH_ID = V_BOOTH
AND YEAR = V_YEAR
AND MONTH = V_MONTH
AND DAY = V_DAY
AND SUBSTR(WORK_TIMES,1,2) = V_TIME
AND CAR_TYPE_ID = V_CAR
and in_out_kbn = '2'
and c_repay_kbn in ('1','2');
V_IN_FREE_CNT := E_CARTIME.CNT_FREE_IN;
V_IN_CASH_CNT := E_CARTIME.CNT_CASH_IN;
V_IN_COUPON_CNT := E_CARTIME.CNT_COUPON_IN;
V_IN_MINAP_CNT := E_CARTIME.CNT_MINAP_IN;
V_IN_SUN_CNT := E_CARTIME.CNT_SUN_IN;
V_IN_WHO_CNT := E_CARTIME.CNT_WHO_IN;
V_OUT_FREE_CNT := E_CARTIME.CNT_FREE_OUT;
V_OUT_CASH_CNT := E_CARTIME.CNT_CASH_OUT;
V_OUT_COUPON_CNT := E_CARTIME.CNT_COUPON_OUT;
V_OUT_MINAP_CNT := E_CARTIME.CNT_MINAP_OUT;
V_OUT_SUN_CNT := E_CARTIME.CNT_SUN_OUT;
V_OUT_WHO_CNT := E_CARTIME.CNT_WHO_OUT;
V_IN_CASH_N := E_CARTIME.N_CASH_IN;
V_IN_SUN_N := E_CARTIME.N_SUN_IN;
V_IN_WHO_N := E_CARTIME.N_WHO_IN;
V_IN_COUPON_N := E_CARTIME.N_COUPON_IN;
V_IN_TICKET_N := E_CARTIME.N_TICKET_IN;
V_OUT_CASH_N := E_CARTIME.N_CASH_OUT;
V_OUT_SUN_N := E_CARTIME.N_SUN_OUT;
V_OUT_WHO_N := E_CARTIME.N_WHO_OUT;
V_OUT_COUPON_N := E_CARTIME.N_COUPON_OUT;
V_OUT_TICKET_N := E_CARTIME.N_TICKET_OUT;
V_IN_SUGI_CNT := E_CARTIME.CNT_SUGI_IN;
V_OUT_SUGI_CNT := E_CARTIME.CNT_SUGI_OUT;
V_IN_SUGI_N := E_CARTIME.N_SUGI_IN;
V_OUT_SUGI_N := E_CARTIME.N_SUGI_OUT;
-- 20031115 경차관련 추가 - ARCADIA
V_IN_K_CASH_CNT := E_CARTIME.CNT_K_CASH_IN;
V_IN_K_SUN_CNT := E_CARTIME.CNT_K_SUN_IN;
V_IN_K_WHO_CNT := E_CARTIME.CNT_K_WHO_IN;
V_IN_K_COUPON_CNT := E_CARTIME.CNT_K_COUPON_IN;
V_OUT_K_CASH_CNT := E_CARTIME.CNT_K_CASH_OUT;
V_OUT_K_SUN_CNT := E_CARTIME.CNT_K_SUN_OUT;
V_OUT_K_WHO_CNT := E_CARTIME.CNT_K_WHO_OUT;
V_OUT_K_COUPON_CNT := E_CARTIME.CNT_K_COUPON_OUT;
V_IN_K_CASH_N := E_CARTIME.N_K_CASH_IN;
V_IN_K_SUN_N := E_CARTIME.N_K_SUN_IN;
V_IN_K_WHO_N := E_CARTIME.N_K_WHO_IN;
V_IN_K_TICKET_N := E_CARTIME.N_K_TICKET_IN;
V_OUT_K_CASH_N := E_CARTIME.N_K_CASH_OUT;
V_OUT_K_SUN_N := E_CARTIME.N_K_SUN_OUT;
V_OUT_K_WHO_N := E_CARTIME.N_K_WHO_OUT;
V_OUT_K_TICKET_N := E_CARTIME.N_K_TICKET_OUT;
-- 일반정액권 권수 추출
IF V_IN_TICKET_N > 0 THEN
V_IN_TICKET_CNT := V_IN_TICKET_N / V_SALE;
ELSIF V_IN_TICKET_N = 0 THEN
V_IN_TICKET_CNT := 0;
END IF;
IF V_OUT_TICKET_N > 0 THEN
V_OUT_TICKET_CNT := V_OUT_TICKET_N / V_SALE;
ELSIF V_OUT_TICKET_N = 0 THEN
V_OUT_TICKET_CNT := 0;
END IF;
-- 경차정액권 권수 추출
IF V_IN_K_TICKET_N > 0 THEN
V_IN_K_TICKET_CNT := V_IN_K_TICKET_N / V_K_SALE;
ELSIF V_IN_K_TICKET_N = 0 THEN
V_IN_K_TICKET_CNT := 0;
END IF;
IF V_OUT_K_TICKET_N > 0 THEN
V_OUT_K_TICKET_CNT := V_OUT_K_TICKET_N / V_K_SALE;
ELSIF V_OUT_K_TICKET_N = 0 THEN
V_OUT_K_TICKET_CNT := 0;
END IF;
-- 2007.7.12 KDE RFID 통행량, 수입금 추가.
V_IN_RFID_CASH_Q := E_CARTIME.IN_RFID_CASH_Q;
V_IN_RFID_SUN_Q := E_CARTIME.IN_RFID_SUN_Q;
V_IN_RFID_WHO_Q := E_CARTIME.IN_RFID_WHO_Q;
V_IN_RFID_COUPON_Q := E_CARTIME.IN_RFID_COUPON_Q;
V_IN_RFID_FREE_Q := E_CARTIME.IN_RFID_FREE_Q;
V_OUT_RFID_CASH_Q := E_CARTIME.OUT_RFID_CASH_Q;
V_OUT_RFID_SUN_Q := E_CARTIME.OUT_RFID_SUN_Q;
V_OUT_RFID_WHO_Q := E_CARTIME.OUT_RFID_WHO_Q;
V_OUT_RFID_COUPON_Q := E_CARTIME.OUT_RFID_COUPON_Q;
V_OUT_RFID_FREE_Q := E_CARTIME.OUT_RFID_FREE_Q;
V_IN_RFID_CASH_M := E_CARTIME.IN_RFID_CASH_M;
V_IN_RFID_SUN_M := E_CARTIME.IN_RFID_SUN_M;
V_IN_RFID_WHO_M := E_CARTIME.IN_RFID_WHO_M;
V_OUT_RFID_CASH_M := E_CARTIME.OUT_RFID_CASH_M;
V_OUT_RFID_SUN_M := E_CARTIME.OUT_RFID_SUN_M;
V_OUT_RFID_WHO_M := E_CARTIME.OUT_RFID_WHO_M;
-- 차종별 시간별 정산정보에 insert한다.
INSERT INTO CAR_TIME_ADJUST_INFO(FARE_OFFICE_ID,BOOTH_ID,CAR_TYPE_ID,
YEAR,MONTH,DAY,TIMES,
IN_EXEMPTION_QUANTITY,IN_CASH_QUANTITY,IN_COUPON_QUANTITY,
IN_NONPAYMENT_QUANTITY,IN_CARD_BEFORE_QUANTITY,
IN_CARD_AFTER_QUANTITY,IN_COUPON_SALE_QUANTITY,
OUT_EXEMPTION_QUANTITY,OUT_CASH_QUANTITY,OUT_COUPON_QUANTITY,
OUT_NONPAYMENT_QUANTITY,OUT_CARD_BEFORE_QUANTITY,
OUT_CARD_AFTER_QUANTITY,OUT_COUPON_SALE_QUANTITY,
IN_CASH_INCOME,IN_CARD_BEFORE_INCOME,IN_CARD_AFTER_INCOME,
IN_COUPON_INCOME,IN_COUPON_SALE,
OUT_CASH_INCOME,OUT_CARD_BEFORE_INCOME,OUT_CARD_AFTER_INCOME,
OUT_COUPON_INCOME,OUT_COUPON_SALE,
IN_NOTE_QUANTITY,OUT_NOTE_QUANTITY,IN_NOTE_INCOME,OUT_NOTE_INCOME,
IN_K_CASH_Q,IN_K_COUPON_Q,IN_K_CARD_SUN_Q,IN_K_CARD_WHO_Q,IN_K_COUPON_SALE_Q,
IN_K_CASH_INCOME,IN_K_CARD_SUN_INCOME,IN_K_CARD_WHO_INCOME,IN_K_COUPON_SALE_INCOME,
OUT_K_CASH_Q,OUT_K_COUPON_Q,OUT_K_CARD_SUN_Q,OUT_K_CARD_WHO_Q,OUT_K_COUPON_SALE_Q,
OUT_K_CASH_INCOME,OUT_K_CARD_SUN_INCOME,OUT_K_CARD_WHO_INCOME,OUT_K_COUPON_SALE_INCOME,
IN_REPAY_CNT,IN_REPAY_AMOUNT,OUT_REPAY_CNT,OUT_REPAY_AMOUNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER,
in_rfid_cash_q, in_rfid_sun_q, in_rfid_who_q, in_rfid_coupon_q, in_rfid_free_q,
in_rfid_cash_m, in_rfid_sun_m, in_rfid_who_m,
out_rfid_cash_q, out_rfid_sun_q, out_rfid_who_q, out_rfid_coupon_q, out_rfid_free_q,
out_rfid_cash_m, out_rfid_sun_m, out_rfid_who_m)
VALUES(V_FARE,V_BOOTH,V_CAR,V_YEAR,V_MONTH,V_DAY,V_TIME,V_IN_FREE_CNT,V_IN_CASH_CNT,V_IN_COUPON_CNT,
V_IN_MINAP_CNT,V_IN_SUN_CNT,V_IN_WHO_CNT,V_IN_TICKET_CNT,
V_OUT_FREE_CNT,V_OUT_CASH_CNT,V_OUT_COUPON_CNT,
V_OUT_MINAP_CNT,V_OUT_SUN_CNT,V_OUT_WHO_CNT,V_OUT_TICKET_CNT,
V_IN_CASH_N, V_IN_SUN_N, V_IN_WHO_N, V_IN_COUPON_N, V_IN_TICKET_N,
V_OUT_CASH_N, V_OUT_SUN_N, V_OUT_WHO_N, V_OUT_COUPON_N, V_OUT_TICKET_N,
V_IN_SUGI_CNT, V_OUT_SUGI_CNT, V_IN_SUGI_N, V_OUT_SUGI_N,
V_IN_K_CASH_CNT,V_IN_K_COUPON_CNT,V_IN_K_SUN_CNT,V_IN_K_WHO_CNT,
V_IN_K_TICKET_CNT,
V_IN_K_CASH_N,V_IN_K_SUN_N,V_IN_K_WHO_N,V_IN_K_TICKET_N,
V_OUT_K_CASH_CNT,V_OUT_K_COUPON_CNT,V_OUT_K_SUN_CNT,V_OUT_K_WHO_CNT,
V_OUT_K_TICKET_CNT,
V_OUT_K_CASH_N,V_OUT_K_SUN_N,V_OUT_K_WHO_N,V_OUT_K_TICKET_N,
V_IN_REPAY_CNT, V_IN_REPAY_N, V_OUT_REPAY_CNT, V_OUT_REPAY_N,
SYSDATE,'AUTO',SYSDATE,'AUTO',
v_in_rfid_cash_q, v_in_rfid_sun_q, v_in_rfid_who_q, v_in_rfid_coupon_q, v_in_rfid_free_q,
v_in_rfid_cash_m, v_in_rfid_sun_m, v_in_rfid_who_m,
v_out_rfid_cash_q, v_out_rfid_sun_q, v_out_rfid_who_q, v_out_rfid_coupon_q, v_out_rfid_free_q,
v_out_rfid_cash_m, v_out_rfid_sun_m, v_out_rfid_who_m);
COMMIT;
EXIT WHEN C_CARTIME%NOTFOUND;
END LOOP;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END IF;
END SP_CARTIME_1;
-- 차종별 시간별 정산정보 집계작업 1
PROCEDURE SP_CARTIME_2
(
IN_TIME IN CHAR
)
IS
CURSOR C_CARTIME IS
SELECT A.FARE_OFFICE_ID AS c_fare, A.BOOTH_ID AS c_booth,
A.YEAR AS t_year, A.MONTH AS t_month, A.DAY AS t_day, A.CAR_TYPE_ID AS t_car,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'30',1,0),0)) AS cnt_free_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'10',1,0),0)) AS cnt_cash_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'51',1,0),0)) AS cnt_coupon_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'40',1,0),0)) AS cnt_minap_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'21',1,0),0)) AS cnt_sun_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'22',1,0),0)) AS cnt_who_in,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'30',1,0),0)) AS cnt_free_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'10',1,0),0)) AS cnt_cash_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'51',1,0),0)) AS cnt_coupon_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'40',1,0),0)) AS cnt_minap_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'21',1,0),0)) AS cnt_sun_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'22',1,0),0)) AS cnt_who_out,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'10',A.LEVY_AMOUNT,0),0)) AS n_cash_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'21',A.LEVY_AMOUNT,0),0)) AS n_sun_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'22',A.LEVY_AMOUNT,0),0)) AS n_who_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'51',A.LEVY_AMOUNT,0),0)) AS n_coupon_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'52',A.LEVY_AMOUNT,0),0)) AS n_ticket_in,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'10',A.LEVY_AMOUNT,0),0)) AS n_cash_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'21',A.LEVY_AMOUNT,0),0)) AS n_sun_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'22',A.LEVY_AMOUNT,0),0)) AS n_who_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'51',A.LEVY_AMOUNT,0),0)) AS n_coupon_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'52',A.LEVY_AMOUNT,0),0)) AS n_ticket_out,
SUM(DECODE(a.in_out_kbn, '1', DECODE(A.note_trans_yn,'1', DECODE(a.new_data_yn,'1',1,0),0),0)) AS CNT_SUGI_IN,
SUM(DECODE(a.in_out_kbn, '2', DECODE(A.note_trans_yn,'1', DECODE(a.new_data_yn,'1',1,0),0),0)) AS CNT_SUGI_OUT,
SUM(DECODE(a.in_out_kbn, '1', DECODE(A.note_trans_yn,'1', DECODE(a.new_data_yn,'1',A.LEVY_AMOUNT,0),0),0)) AS N_SUGI_IN,
SUM(DECODE(a.in_out_kbn, '2', DECODE(A.note_trans_yn,'1', DECODE(a.new_data_yn,'1',A.LEVY_AMOUNT,0),0),0)) AS N_SUGI_OUT,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'11',1,0),0)) AS cnt_k_cash_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'23',1,0),0)) AS cnt_k_sun_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'24',1,0),0)) AS cnt_k_who_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'53',1,0),0)) AS cnt_k_coupon_in,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'11',1,0),0)) AS cnt_k_cash_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'23',1,0),0)) AS cnt_k_sun_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'24',1,0),0)) AS cnt_k_who_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'53',1,0),0)) AS cnt_k_coupon_out,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'11',A.LEVY_AMOUNT,0),0)) AS n_k_cash_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'23',A.LEVY_AMOUNT,0),0)) AS n_k_sun_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'24',A.LEVY_AMOUNT,0),0)) AS n_k_who_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'54',A.LEVY_AMOUNT,0),0)) AS n_k_ticket_in,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'11',A.LEVY_AMOUNT,0),0)) AS n_k_cash_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'23',A.LEVY_AMOUNT,0),0)) AS n_k_sun_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'24',A.LEVY_AMOUNT,0),0)) AS n_k_who_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'54',A.LEVY_AMOUNT,0),0)) AS n_k_ticket_out,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_cash_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_sun_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_who_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '30', decode(a.rfid_kbn, '02', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '30', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_free_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '53', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '53', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '53', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '53', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_coupon_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_cash_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_sun_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_who_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '30', decode(a.rfid_kbn, '02', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '30', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_free_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '53', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '53', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '53', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '53', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_coupon_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as in_rfid_cash_m,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as in_rfid_sun_m,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as in_rfid_who_m,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as out_rfid_cash_m,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as out_rfid_sun_m,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as out_rfid_who_m
FROM FARE_TERMINAL_INFO A
WHERE A.YEAR||A.MONTH||A.DAY = TO_CHAR(SYSDATE - 1, 'YYYYMMDD')
AND SUBSTR(A.WORK_TIMES,1,2) > IN_TIME
AND A.DELETE_YN = '0'
GROUP BY A.FARE_OFFICE_ID,A.BOOTH_ID,A.YEAR, A.MONTH,A.DAY, A.CAR_TYPE_ID;
E_CARTIME C_CARTIME%ROWTYPE;
V_FARE CHAR(2) := '';
V_BOOTH CHAR(2) := '';
V_YEAR CHAR(4) := '';
V_MONTH CHAR(2) := '';
V_DAY CHAR(2) := '';
V_CAR CHAR(1) := '';
V_TIME CHAR(2) := '20';
V_IN_FREE_CNT NUMBER := 0;
V_IN_CASH_CNT NUMBER := 0;
V_IN_COUPON_CNT NUMBER := 0;
V_IN_MINAP_CNT NUMBER := 0;
V_IN_SUN_CNT NUMBER := 0;
V_IN_WHO_CNT NUMBER := 0;
V_OUT_FREE_CNT NUMBER := 0;
V_OUT_CASH_CNT NUMBER := 0;
V_OUT_COUPON_CNT NUMBER := 0;
V_OUT_MINAP_CNT NUMBER := 0;
V_OUT_SUN_CNT NUMBER := 0;
V_OUT_WHO_CNT NUMBER := 0;
V_IN_CASH_N NUMBER := 0;
V_IN_SUN_N NUMBER := 0;
V_IN_WHO_N NUMBER := 0;
V_IN_COUPON_N NUMBER := 0;
V_IN_TICKET_N NUMBER := 0;
V_OUT_CASH_N NUMBER := 0;
V_OUT_SUN_N NUMBER := 0;
V_OUT_WHO_N NUMBER := 0;
V_OUT_COUPON_N NUMBER := 0;
V_OUT_TICKET_N NUMBER := 0;
V_IN_TICKET_CNT NUMBER := 0;
V_OUT_TICKET_CNT NUMBER := 0;
V_IN_SUGI_CNT NUMBER := 0;
V_OUT_SUGI_CNT NUMBER := 0;
V_IN_SUGI_N NUMBER := 0;
V_OUT_SUGI_N NUMBER := 0;
-- 20031115 경차관련 추가 - ARCADIA
V_IN_K_CASH_CNT NUMBER := 0;
V_IN_K_SUN_CNT NUMBER := 0;
V_IN_K_WHO_CNT NUMBER := 0;
V_IN_K_COUPON_CNT NUMBER := 0;
V_IN_K_TICKET_CNT NUMBER := 0;
V_OUT_K_CASH_CNT NUMBER := 0;
V_OUT_K_SUN_CNT NUMBER := 0;
V_OUT_K_WHO_CNT NUMBER := 0;
V_OUT_K_COUPON_CNT NUMBER := 0;
V_OUT_K_TICKET_CNT NUMBER := 0;
V_IN_K_CASH_N NUMBER := 0;
V_IN_K_SUN_N NUMBER := 0;
V_IN_K_WHO_N NUMBER := 0;
V_IN_K_TICKET_N NUMBER := 0;
V_OUT_K_CASH_N NUMBER := 0;
V_OUT_K_SUN_N NUMBER := 0;
V_OUT_K_WHO_N NUMBER := 0;
V_OUT_K_TICKET_N NUMBER := 0;
V_IN_REPAY_CNT NUMBER := 0;
V_OUT_REPAY_CNT NUMBER := 0;
V_IN_REPAY_N NUMBER := 0;
V_OUT_REPAY_N NUMBER := 0;
V_SALE NUMBER := 0;
V_K_SALE NUMBER := 0;
V_SQLCODE NUMBER := 0;
V_FARE_CNT NUMBER := 0;
V_DATE CHAR(8) := TO_CHAR(SYSDATE - 1, 'YYYYMMDD');
-- 2007.7.12 kde RFID 통행량, 수입금 추가...
V_IN_RFID_CASH_Q NUMBER := 0;
V_IN_RFID_SUN_Q NUMBER := 0;
V_IN_RFID_WHO_Q NUMBER := 0;
V_IN_RFID_COUPON_Q NUMBER := 0;
V_IN_RFID_FREE_Q NUMBER := 0;
V_OUT_RFID_CASH_Q NUMBER := 0;
V_OUT_RFID_SUN_Q NUMBER := 0;
V_OUT_RFID_WHO_Q NUMBER := 0;
V_OUT_RFID_COUPON_Q NUMBER := 0;
V_OUT_RFID_FREE_Q NUMBER := 0;
V_IN_RFID_CASH_M NUMBER := 0;
V_IN_RFID_SUN_M NUMBER := 0;
V_IN_RFID_WHO_M NUMBER := 0;
V_OUT_RFID_CASH_M NUMBER := 0;
V_OUT_RFID_SUN_M NUMBER := 0;
V_OUT_RFID_WHO_M NUMBER := 0;
BEGIN
-- fare_terminal_info에 집계할 날짜의 data가 없으면 작업을 끝낸다.
SELECT COUNT(*)
INTO V_FARE_CNT
FROM FARE_TERMINAL_INFO A
WHERE A.YEAR||A.MONTH||A.DAY = V_DATE
AND A.DELETE_YN = '0';
IF V_FARE_CNT = 0 THEN
RETURN;
END IF;
-- 요금정보에서 당일 정액권 금액을 가져온다.
V_SALE := FUN_MONEY(V_DATE, '52');
V_K_SALE := FUN_MONEY(V_DATE, '54');
FOR E_CARTIME IN C_CARTIME
LOOP
V_FARE := E_CARTIME.C_FARE;
V_BOOTH := E_CARTIME.C_BOOTH;
V_YEAR := E_CARTIME.T_YEAR;
V_MONTH := E_CARTIME.T_MONTH;
V_DAY := E_CARTIME.T_DAY;
V_CAR := E_CARTIME.T_CAR;
--V_TIME := E_CARTIME.T_TIME;
-- 환불건수
SELECT COUNT(*), NVL(SUM(NVL(LEVY_AMOUNT,0)),0)
INTO V_IN_REPAY_CNT, V_IN_REPAY_N
FROM RF_REPAY_INFO
WHERE FARE_OFFICE_ID = V_FARE
AND BOOTH_ID = V_BOOTH
AND YEAR = V_YEAR
AND MONTH = V_MONTH
AND DAY = V_DAY
AND SUBSTR(WORK_TIMES,1,2) > '19'
AND CAR_TYPE_ID = V_CAR
and in_out_kbn = '1'
and c_repay_kbn in ('1','2');
SELECT COUNT(*), NVL(SUM(NVL(LEVY_AMOUNT,0)),0)
INTO V_OUT_REPAY_CNT, V_OUT_REPAY_N
FROM RF_REPAY_INFO
WHERE FARE_OFFICE_ID = V_FARE
AND BOOTH_ID = V_BOOTH
AND YEAR = V_YEAR
AND MONTH = V_MONTH
AND DAY = V_DAY
AND SUBSTR(WORK_TIMES,1,2) > '19'
AND CAR_TYPE_ID = V_CAR
and in_out_kbn = '2'
and c_repay_kbn in ('1','2');
V_IN_FREE_CNT := E_CARTIME.CNT_FREE_IN;
V_IN_CASH_CNT := E_CARTIME.CNT_CASH_IN;
V_IN_COUPON_CNT := E_CARTIME.CNT_COUPON_IN;
V_IN_MINAP_CNT := E_CARTIME.CNT_MINAP_IN;
V_IN_SUN_CNT := E_CARTIME.CNT_SUN_IN;
V_IN_WHO_CNT := E_CARTIME.CNT_WHO_IN;
V_OUT_FREE_CNT := E_CARTIME.CNT_FREE_OUT;
V_OUT_CASH_CNT := E_CARTIME.CNT_CASH_OUT;
V_OUT_COUPON_CNT := E_CARTIME.CNT_COUPON_OUT;
V_OUT_MINAP_CNT := E_CARTIME.CNT_MINAP_OUT;
V_OUT_SUN_CNT := E_CARTIME.CNT_SUN_OUT;
V_OUT_WHO_CNT := E_CARTIME.CNT_WHO_OUT;
V_IN_CASH_N := E_CARTIME.N_CASH_IN;
V_IN_SUN_N := E_CARTIME.N_SUN_IN;
V_IN_WHO_N := E_CARTIME.N_WHO_IN;
V_IN_COUPON_N := E_CARTIME.N_COUPON_IN;
V_IN_TICKET_N := E_CARTIME.N_TICKET_IN;
V_OUT_CASH_N := E_CARTIME.N_CASH_OUT;
V_OUT_SUN_N := E_CARTIME.N_SUN_OUT;
V_OUT_WHO_N := E_CARTIME.N_WHO_OUT;
V_OUT_COUPON_N := E_CARTIME.N_COUPON_OUT;
V_OUT_TICKET_N := E_CARTIME.N_TICKET_OUT;
V_IN_SUGI_CNT := E_CARTIME.CNT_SUGI_IN;
V_OUT_SUGI_CNT := E_CARTIME.CNT_SUGI_OUT;
V_IN_SUGI_N := E_CARTIME.N_SUGI_IN;
V_OUT_SUGI_N := E_CARTIME.N_SUGI_OUT;
-- 20031115 경차관련 추가 - ARCADIA
V_IN_K_CASH_CNT := E_CARTIME.CNT_K_CASH_IN;
V_IN_K_SUN_CNT := E_CARTIME.CNT_K_SUN_IN;
V_IN_K_WHO_CNT := E_CARTIME.CNT_K_WHO_IN;
V_IN_K_COUPON_CNT := E_CARTIME.CNT_K_COUPON_IN;
V_OUT_K_CASH_CNT := E_CARTIME.CNT_K_CASH_OUT;
V_OUT_K_SUN_CNT := E_CARTIME.CNT_K_SUN_OUT;
V_OUT_K_WHO_CNT := E_CARTIME.CNT_K_WHO_OUT;
V_OUT_K_COUPON_CNT := E_CARTIME.CNT_K_COUPON_OUT;
V_IN_K_CASH_N := E_CARTIME.N_K_CASH_IN;
V_IN_K_SUN_N := E_CARTIME.N_K_SUN_IN;
V_IN_K_WHO_N := E_CARTIME.N_K_WHO_IN;
V_IN_K_TICKET_N := E_CARTIME.N_K_TICKET_IN;
V_OUT_K_CASH_N := E_CARTIME.N_K_CASH_OUT;
V_OUT_K_SUN_N := E_CARTIME.N_K_SUN_OUT;
V_OUT_K_WHO_N := E_CARTIME.N_K_WHO_OUT;
V_OUT_K_TICKET_N := E_CARTIME.N_K_TICKET_OUT;
-- 일반정액권 권수 추출
IF V_IN_TICKET_N > 0 THEN
V_IN_TICKET_CNT := V_IN_TICKET_N / V_SALE;
ELSIF V_IN_TICKET_N = 0 THEN
V_IN_TICKET_CNT := 0;
END IF;
IF V_OUT_TICKET_N > 0 THEN
V_OUT_TICKET_CNT := V_OUT_TICKET_N / V_SALE;
ELSIF V_OUT_TICKET_N = 0 THEN
V_OUT_TICKET_CNT := 0;
END IF;
-- 경차정액권 권수 추출
IF V_IN_K_TICKET_N > 0 THEN
V_IN_K_TICKET_CNT := V_IN_K_TICKET_N / V_K_SALE;
ELSIF V_IN_K_TICKET_N = 0 THEN
V_IN_K_TICKET_CNT := 0;
END IF;
IF V_OUT_K_TICKET_N > 0 THEN
V_OUT_K_TICKET_CNT := V_OUT_K_TICKET_N / V_K_SALE;
ELSIF V_OUT_K_TICKET_N = 0 THEN
V_OUT_K_TICKET_CNT := 0;
END IF;
-- 2007.7.12 KDE RFID 통행량, 수입금 추가.
V_IN_RFID_CASH_Q := E_CARTIME.IN_RFID_CASH_Q;
V_IN_RFID_SUN_Q := E_CARTIME.IN_RFID_SUN_Q;
V_IN_RFID_WHO_Q := E_CARTIME.IN_RFID_WHO_Q;
V_IN_RFID_COUPON_Q := E_CARTIME.IN_RFID_COUPON_Q;
V_IN_RFID_FREE_Q := E_CARTIME.IN_RFID_FREE_Q;
V_OUT_RFID_CASH_Q := E_CARTIME.OUT_RFID_CASH_Q;
V_OUT_RFID_SUN_Q := E_CARTIME.OUT_RFID_SUN_Q;
V_OUT_RFID_WHO_Q := E_CARTIME.OUT_RFID_WHO_Q;
V_OUT_RFID_COUPON_Q := E_CARTIME.OUT_RFID_COUPON_Q;
V_OUT_RFID_FREE_Q := E_CARTIME.OUT_RFID_FREE_Q;
V_IN_RFID_CASH_M := E_CARTIME.IN_RFID_CASH_M;
V_IN_RFID_SUN_M := E_CARTIME.IN_RFID_SUN_M;
V_IN_RFID_WHO_M := E_CARTIME.IN_RFID_WHO_M;
V_OUT_RFID_CASH_M := E_CARTIME.OUT_RFID_CASH_M;
V_OUT_RFID_SUN_M := E_CARTIME.OUT_RFID_SUN_M;
V_OUT_RFID_WHO_M := E_CARTIME.OUT_RFID_WHO_M;
-- 차종별 시간별 정산정보에 insert한다.
INSERT INTO CAR_TIME_ADJUST_INFO(FARE_OFFICE_ID,BOOTH_ID,CAR_TYPE_ID,
YEAR,MONTH,DAY,TIMES,
IN_EXEMPTION_QUANTITY,IN_CASH_QUANTITY,IN_COUPON_QUANTITY,
IN_NONPAYMENT_QUANTITY,IN_CARD_BEFORE_QUANTITY,
IN_CARD_AFTER_QUANTITY,IN_COUPON_SALE_QUANTITY,
OUT_EXEMPTION_QUANTITY,OUT_CASH_QUANTITY,OUT_COUPON_QUANTITY,
OUT_NONPAYMENT_QUANTITY,OUT_CARD_BEFORE_QUANTITY,
OUT_CARD_AFTER_QUANTITY,OUT_COUPON_SALE_QUANTITY,
IN_CASH_INCOME,IN_CARD_BEFORE_INCOME,IN_CARD_AFTER_INCOME,
IN_COUPON_INCOME,IN_COUPON_SALE,
OUT_CASH_INCOME,OUT_CARD_BEFORE_INCOME,OUT_CARD_AFTER_INCOME,
OUT_COUPON_INCOME,OUT_COUPON_SALE,
IN_NOTE_QUANTITY,OUT_NOTE_QUANTITY,IN_NOTE_INCOME,OUT_NOTE_INCOME,
IN_K_CASH_Q,IN_K_COUPON_Q,IN_K_CARD_SUN_Q,IN_K_CARD_WHO_Q,IN_K_COUPON_SALE_Q,
IN_K_CASH_INCOME,IN_K_CARD_SUN_INCOME,IN_K_CARD_WHO_INCOME,IN_K_COUPON_SALE_INCOME,
OUT_K_CASH_Q,OUT_K_COUPON_Q,OUT_K_CARD_SUN_Q,OUT_K_CARD_WHO_Q,OUT_K_COUPON_SALE_Q,
OUT_K_CASH_INCOME,OUT_K_CARD_SUN_INCOME,OUT_K_CARD_WHO_INCOME,OUT_K_COUPON_SALE_INCOME,
IN_REPAY_CNT,IN_REPAY_AMOUNT,OUT_REPAY_CNT,OUT_REPAY_AMOUNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER,
in_rfid_cash_q, in_rfid_sun_q, in_rfid_who_q, in_rfid_coupon_q, in_rfid_free_q,
in_rfid_cash_m, in_rfid_sun_m, in_rfid_who_m,
out_rfid_cash_q, out_rfid_sun_q, out_rfid_who_q, out_rfid_coupon_q, out_rfid_free_q,
out_rfid_cash_m, out_rfid_sun_m, out_rfid_who_m)
VALUES(V_FARE,V_BOOTH,V_CAR,V_YEAR,V_MONTH,V_DAY,V_TIME,V_IN_FREE_CNT,V_IN_CASH_CNT,V_IN_COUPON_CNT,
V_IN_MINAP_CNT,V_IN_SUN_CNT,V_IN_WHO_CNT,V_IN_TICKET_CNT,
V_OUT_FREE_CNT,V_OUT_CASH_CNT,V_OUT_COUPON_CNT,
V_OUT_MINAP_CNT,V_OUT_SUN_CNT,V_OUT_WHO_CNT,V_OUT_TICKET_CNT,
V_IN_CASH_N, V_IN_SUN_N, V_IN_WHO_N, V_IN_COUPON_N, V_IN_TICKET_N,
V_OUT_CASH_N, V_OUT_SUN_N, V_OUT_WHO_N, V_OUT_COUPON_N, V_OUT_TICKET_N,
V_IN_SUGI_CNT, V_OUT_SUGI_CNT, V_IN_SUGI_N, V_OUT_SUGI_N,
V_IN_K_CASH_CNT,V_IN_K_COUPON_CNT,V_IN_K_SUN_CNT,V_IN_K_WHO_CNT,
V_IN_K_TICKET_CNT,
V_IN_K_CASH_N,V_IN_K_SUN_N,V_IN_K_WHO_N,V_IN_K_TICKET_N,
V_OUT_K_CASH_CNT,V_OUT_K_COUPON_CNT,V_OUT_K_SUN_CNT,V_OUT_K_WHO_CNT,
V_OUT_K_TICKET_CNT,
V_OUT_K_CASH_N,V_OUT_K_SUN_N,V_OUT_K_WHO_N,V_OUT_K_TICKET_N,
V_IN_REPAY_CNT, V_IN_REPAY_N, V_OUT_REPAY_CNT, V_OUT_REPAY_N,
SYSDATE,'AUTO',SYSDATE,'AUTO',
v_in_rfid_cash_q, v_in_rfid_sun_q, v_in_rfid_who_q, v_in_rfid_coupon_q, v_in_rfid_free_q,
v_in_rfid_cash_m, v_in_rfid_sun_m, v_in_rfid_who_m,
v_out_rfid_cash_q, v_out_rfid_sun_q, v_out_rfid_who_q, v_out_rfid_coupon_q, v_out_rfid_free_q,
v_out_rfid_cash_m, v_out_rfid_sun_m, v_out_rfid_who_m);
COMMIT;
EXIT WHEN C_CARTIME%NOTFOUND;
END LOOP;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END SP_CARTIME_2;
-- 차종별 시간별 정산정보 집계작업 1
PROCEDURE SP_CARTIME_3
(
IN_TIME IN CHAR
)
IS
CURSOR C_CARTIME IS
SELECT A.FARE_OFFICE_ID AS c_fare, A.BOOTH_ID AS c_booth,
A.YEAR AS t_year, A.MONTH AS t_month, A.DAY AS t_day, A.CAR_TYPE_ID AS t_car,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'30',1,0),0)) AS cnt_free_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'10',1,0),0)) AS cnt_cash_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'51',1,0),0)) AS cnt_coupon_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'40',1,0),0)) AS cnt_minap_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'21',1,0),0)) AS cnt_sun_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'22',1,0),0)) AS cnt_who_in,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'30',1,0),0)) AS cnt_free_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'10',1,0),0)) AS cnt_cash_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'51',1,0),0)) AS cnt_coupon_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'40',1,0),0)) AS cnt_minap_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'21',1,0),0)) AS cnt_sun_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'22',1,0),0)) AS cnt_who_out,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'10',A.LEVY_AMOUNT,0),0)) AS n_cash_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'21',A.LEVY_AMOUNT,0),0)) AS n_sun_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'22',A.LEVY_AMOUNT,0),0)) AS n_who_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'51',A.LEVY_AMOUNT,0),0)) AS n_coupon_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'52',A.LEVY_AMOUNT,0),0)) AS n_ticket_in,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'10',A.LEVY_AMOUNT,0),0)) AS n_cash_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'21',A.LEVY_AMOUNT,0),0)) AS n_sun_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'22',A.LEVY_AMOUNT,0),0)) AS n_who_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'51',A.LEVY_AMOUNT,0),0)) AS n_coupon_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'52',A.LEVY_AMOUNT,0),0)) AS n_ticket_out,
SUM(DECODE(a.in_out_kbn, '1', DECODE(A.note_trans_yn,'1', DECODE(a.new_data_yn,'1',1,0),0),0)) AS CNT_SUGI_IN,
SUM(DECODE(a.in_out_kbn, '2', DECODE(A.note_trans_yn,'1', DECODE(a.new_data_yn,'1',1,0),0),0)) AS CNT_SUGI_OUT,
SUM(DECODE(a.in_out_kbn, '1', DECODE(A.note_trans_yn,'1', DECODE(a.new_data_yn,'1',A.LEVY_AMOUNT,0),0),0)) AS N_SUGI_IN,
SUM(DECODE(a.in_out_kbn, '2', DECODE(A.note_trans_yn,'1', DECODE(a.new_data_yn,'1',A.LEVY_AMOUNT,0),0),0)) AS N_SUGI_OUT,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'11',1,0),0)) AS cnt_k_cash_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'23',1,0),0)) AS cnt_k_sun_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'24',1,0),0)) AS cnt_k_who_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'53',1,0),0)) AS cnt_k_coupon_in,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'11',1,0),0)) AS cnt_k_cash_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'23',1,0),0)) AS cnt_k_sun_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'24',1,0),0)) AS cnt_k_who_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'53',1,0),0)) AS cnt_k_coupon_out,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'11',A.LEVY_AMOUNT,0),0)) AS n_k_cash_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'23',A.LEVY_AMOUNT,0),0)) AS n_k_sun_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'24',A.LEVY_AMOUNT,0),0)) AS n_k_who_in,
SUM(DECODE(A.in_out_kbn, '1', DECODE(A.collect_id,'54',A.LEVY_AMOUNT,0),0)) AS n_k_ticket_in,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'11',A.LEVY_AMOUNT,0),0)) AS n_k_cash_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'23',A.LEVY_AMOUNT,0),0)) AS n_k_sun_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'24',A.LEVY_AMOUNT,0),0)) AS n_k_who_out,
SUM(DECODE(A.in_out_kbn, '2', DECODE(A.collect_id,'54',A.LEVY_AMOUNT,0),0)) AS n_k_ticket_out,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_cash_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_sun_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_who_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '30', decode(a.rfid_kbn, '02', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '30', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_free_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '53', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '53', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '53', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '53', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as in_rfid_coupon_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_cash_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_sun_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_who_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '30', decode(a.rfid_kbn, '02', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '30', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_free_q,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '53', decode(a.rfid_kbn, '01', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '53', decode(a.rfid_kbn, '03', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '53', decode(a.rfid_kbn, '04', 1, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '53', decode(a.rfid_kbn, '99', 1, 0), 0), 0)) as out_rfid_coupon_q,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '11', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as in_rfid_cash_m,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '23', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as in_rfid_sun_m,
sum(decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '1', decode(a.collect_id, '24', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as in_rfid_who_m,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '11', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as out_rfid_cash_m,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '23', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as out_rfid_sun_m,
sum(decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '01', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '03', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '04', levy_amount, 0), 0), 0) +
decode(a.in_out_kbn, '2', decode(a.collect_id, '24', decode(a.rfid_kbn, '99', levy_amount, 0), 0), 0)) as out_rfid_who_m
FROM FARE_TERMINAL_INFO A
WHERE A.YEAR||A.MONTH||A.DAY = TO_CHAR(SYSDATE - 1, 'YYYYMMDD')
AND A.DELETE_YN = '0'
AND SUBSTR(A.WORK_TIMES,1,2) > IN_TIME
GROUP BY A.FARE_OFFICE_ID,A.BOOTH_ID,A.YEAR, A.MONTH,A.DAY, A.CAR_TYPE_ID;
E_CARTIME C_CARTIME%ROWTYPE;
V_FARE CHAR(2) := '';
V_BOOTH CHAR(2) := '';
V_YEAR CHAR(4) := '';
V_MONTH CHAR(2) := '';
V_DAY CHAR(2) := '';
V_CAR CHAR(1) := '';
V_TIME CHAR(2) := '14';
V_IN_FREE_CNT NUMBER := 0;
V_IN_CASH_CNT NUMBER := 0;
V_IN_COUPON_CNT NUMBER := 0;
V_IN_MINAP_CNT NUMBER := 0;
V_IN_SUN_CNT NUMBER := 0;
V_IN_WHO_CNT NUMBER := 0;
V_OUT_FREE_CNT NUMBER := 0;
V_OUT_CASH_CNT NUMBER := 0;
V_OUT_COUPON_CNT NUMBER := 0;
V_OUT_MINAP_CNT NUMBER := 0;
V_OUT_SUN_CNT NUMBER := 0;
V_OUT_WHO_CNT NUMBER := 0;
V_IN_CASH_N NUMBER := 0;
V_IN_SUN_N NUMBER := 0;
V_IN_WHO_N NUMBER := 0;
V_IN_COUPON_N NUMBER := 0;
V_IN_TICKET_N NUMBER := 0;
V_OUT_CASH_N NUMBER := 0;
V_OUT_SUN_N NUMBER := 0;
V_OUT_WHO_N NUMBER := 0;
V_OUT_COUPON_N NUMBER := 0;
V_OUT_TICKET_N NUMBER := 0;
V_IN_TICKET_CNT NUMBER := 0;
V_OUT_TICKET_CNT NUMBER := 0;
V_IN_SUGI_CNT NUMBER := 0;
V_OUT_SUGI_CNT NUMBER := 0;
V_IN_SUGI_N NUMBER := 0;
V_OUT_SUGI_N NUMBER := 0;
-- 20031115 경차관련 추가 - ARCADIA
V_IN_K_CASH_CNT NUMBER := 0;
V_IN_K_SUN_CNT NUMBER := 0;
V_IN_K_WHO_CNT NUMBER := 0;
V_IN_K_COUPON_CNT NUMBER := 0;
V_IN_K_TICKET_CNT NUMBER := 0;
V_OUT_K_CASH_CNT NUMBER := 0;
V_OUT_K_SUN_CNT NUMBER := 0;
V_OUT_K_WHO_CNT NUMBER := 0;
V_OUT_K_COUPON_CNT NUMBER := 0;
V_OUT_K_TICKET_CNT NUMBER := 0;
V_IN_K_CASH_N NUMBER := 0;
V_IN_K_SUN_N NUMBER := 0;
V_IN_K_WHO_N NUMBER := 0;
V_IN_K_TICKET_N NUMBER := 0;
V_OUT_K_CASH_N NUMBER := 0;
V_OUT_K_SUN_N NUMBER := 0;
V_OUT_K_WHO_N NUMBER := 0;
V_OUT_K_TICKET_N NUMBER := 0;
V_IN_REPAY_CNT NUMBER := 0;
V_OUT_REPAY_CNT NUMBER := 0;
V_IN_REPAY_N NUMBER := 0;
V_OUT_REPAY_N NUMBER := 0;
V_SALE NUMBER := 0;
V_K_SALE NUMBER := 0;
V_SQLCODE NUMBER := 0;
V_FARE_CNT NUMBER := 0;
V_DATE CHAR(8) := TO_CHAR(SYSDATE - 1, 'YYYYMMDD');
-- 2007.7.12 kde RFID 통행량, 수입금 추가...
V_IN_RFID_CASH_Q NUMBER := 0;
V_IN_RFID_SUN_Q NUMBER := 0;
V_IN_RFID_WHO_Q NUMBER := 0;
V_IN_RFID_COUPON_Q NUMBER := 0;
V_IN_RFID_FREE_Q NUMBER := 0;
V_OUT_RFID_CASH_Q NUMBER := 0;
V_OUT_RFID_SUN_Q NUMBER := 0;
V_OUT_RFID_WHO_Q NUMBER := 0;
V_OUT_RFID_COUPON_Q NUMBER := 0;
V_OUT_RFID_FREE_Q NUMBER := 0;
V_IN_RFID_CASH_M NUMBER := 0;
V_IN_RFID_SUN_M NUMBER := 0;
V_IN_RFID_WHO_M NUMBER := 0;
V_OUT_RFID_CASH_M NUMBER := 0;
V_OUT_RFID_SUN_M NUMBER := 0;
V_OUT_RFID_WHO_M NUMBER := 0;
BEGIN
-- fare_terminal_info에 집계할 날짜의 data가 없으면 작업을 끝낸다.
SELECT COUNT(*)
INTO V_FARE_CNT
FROM FARE_TERMINAL_INFO A
WHERE A.YEAR||A.MONTH||A.DAY = V_DATE
AND A.DELETE_YN = '0';
IF V_FARE_CNT = 0 THEN
RETURN;
END IF;
-- 요금정보에서 당일 정액권 금액을 가져온다.
V_SALE := FUN_MONEY(V_DATE, '52');
V_K_SALE := FUN_MONEY(V_DATE, '54');
FOR E_CARTIME IN C_CARTIME
LOOP
V_FARE := E_CARTIME.C_FARE;
V_BOOTH := E_CARTIME.C_BOOTH;
V_YEAR := E_CARTIME.T_YEAR;
V_MONTH := E_CARTIME.T_MONTH;
V_DAY := E_CARTIME.T_DAY;
V_CAR := E_CARTIME.T_CAR;
--V_TIME := E_CARTIME.T_TIME;
-- 환불건수
SELECT COUNT(*), NVL(SUM(NVL(LEVY_AMOUNT,0)),0)
INTO V_IN_REPAY_CNT, V_IN_REPAY_N
FROM RF_REPAY_INFO
WHERE FARE_OFFICE_ID = V_FARE
AND BOOTH_ID = V_BOOTH
AND YEAR = V_YEAR
AND MONTH = V_MONTH
AND DAY = V_DAY
AND SUBSTR(WORK_TIMES,1,2) = V_TIME
AND CAR_TYPE_ID = V_CAR
and in_out_kbn = '1'
and c_repay_kbn in ('1','2');
SELECT COUNT(*), NVL(SUM(NVL(LEVY_AMOUNT,0)),0)
INTO V_OUT_REPAY_CNT, V_OUT_REPAY_N
FROM RF_REPAY_INFO
WHERE FARE_OFFICE_ID = V_FARE
AND BOOTH_ID = V_BOOTH
AND YEAR = V_YEAR
AND MONTH = V_MONTH
AND DAY = V_DAY
AND SUBSTR(WORK_TIMES,1,2) = V_TIME
AND CAR_TYPE_ID = V_CAR
and in_out_kbn = '2'
and c_repay_kbn in ('1','2');
V_IN_FREE_CNT := E_CARTIME.CNT_FREE_IN;
V_IN_CASH_CNT := E_CARTIME.CNT_CASH_IN;
V_IN_COUPON_CNT := E_CARTIME.CNT_COUPON_IN;
V_IN_MINAP_CNT := E_CARTIME.CNT_MINAP_IN;
V_IN_SUN_CNT := E_CARTIME.CNT_SUN_IN;
V_IN_WHO_CNT := E_CARTIME.CNT_WHO_IN;
V_OUT_FREE_CNT := E_CARTIME.CNT_FREE_OUT;
V_OUT_CASH_CNT := E_CARTIME.CNT_CASH_OUT;
V_OUT_COUPON_CNT := E_CARTIME.CNT_COUPON_OUT;
V_OUT_MINAP_CNT := E_CARTIME.CNT_MINAP_OUT;
V_OUT_SUN_CNT := E_CARTIME.CNT_SUN_OUT;
V_OUT_WHO_CNT := E_CARTIME.CNT_WHO_OUT;
V_IN_CASH_N := E_CARTIME.N_CASH_IN;
V_IN_SUN_N := E_CARTIME.N_SUN_IN;
V_IN_WHO_N := E_CARTIME.N_WHO_IN;
V_IN_COUPON_N := E_CARTIME.N_COUPON_IN;
V_IN_TICKET_N := E_CARTIME.N_TICKET_IN;
V_OUT_CASH_N := E_CARTIME.N_CASH_OUT;
V_OUT_SUN_N := E_CARTIME.N_SUN_OUT;
V_OUT_WHO_N := E_CARTIME.N_WHO_OUT;
V_OUT_COUPON_N := E_CARTIME.N_COUPON_OUT;
V_OUT_TICKET_N := E_CARTIME.N_TICKET_OUT;
V_IN_SUGI_CNT := E_CARTIME.CNT_SUGI_IN;
V_OUT_SUGI_CNT := E_CARTIME.CNT_SUGI_OUT;
V_IN_SUGI_N := E_CARTIME.N_SUGI_IN;
V_OUT_SUGI_N := E_CARTIME.N_SUGI_OUT;
-- 20031115 경차관련 추가 - ARCADIA
V_IN_K_CASH_CNT := E_CARTIME.CNT_K_CASH_IN;
V_IN_K_SUN_CNT := E_CARTIME.CNT_K_SUN_IN;
V_IN_K_WHO_CNT := E_CARTIME.CNT_K_WHO_IN;
V_IN_K_COUPON_CNT := E_CARTIME.CNT_K_COUPON_IN;
V_OUT_K_CASH_CNT := E_CARTIME.CNT_K_CASH_OUT;
V_OUT_K_SUN_CNT := E_CARTIME.CNT_K_SUN_OUT;
V_OUT_K_WHO_CNT := E_CARTIME.CNT_K_WHO_OUT;
V_OUT_K_COUPON_CNT := E_CARTIME.CNT_K_COUPON_OUT;
V_IN_K_CASH_N := E_CARTIME.N_K_CASH_IN;
V_IN_K_SUN_N := E_CARTIME.N_K_SUN_IN;
V_IN_K_WHO_N := E_CARTIME.N_K_WHO_IN;
V_IN_K_TICKET_N := E_CARTIME.N_K_TICKET_IN;
V_OUT_K_CASH_N := E_CARTIME.N_K_CASH_OUT;
V_OUT_K_SUN_N := E_CARTIME.N_K_SUN_OUT;
V_OUT_K_WHO_N := E_CARTIME.N_K_WHO_OUT;
V_OUT_K_TICKET_N := E_CARTIME.N_K_TICKET_OUT;
-- 일반정액권 권수 추출
IF V_IN_TICKET_N > 0 THEN
V_IN_TICKET_CNT := V_IN_TICKET_N / V_SALE;
ELSIF V_IN_TICKET_N = 0 THEN
V_IN_TICKET_CNT := 0;
END IF;
IF V_OUT_TICKET_N > 0 THEN
V_OUT_TICKET_CNT := V_OUT_TICKET_N / V_SALE;
ELSIF V_OUT_TICKET_N = 0 THEN
V_OUT_TICKET_CNT := 0;
END IF;
-- 경차정액권 권수 추출
IF V_IN_K_TICKET_N > 0 THEN
V_IN_K_TICKET_CNT := V_IN_K_TICKET_N / V_K_SALE;
ELSIF V_IN_K_TICKET_N = 0 THEN
V_IN_K_TICKET_CNT := 0;
END IF;
IF V_OUT_K_TICKET_N > 0 THEN
V_OUT_K_TICKET_CNT := V_OUT_K_TICKET_N / V_K_SALE;
ELSIF V_OUT_K_TICKET_N = 0 THEN
V_OUT_K_TICKET_CNT := 0;
END IF;
-- 2007.7.12 KDE RFID 통행량, 수입금 추가.
V_IN_RFID_CASH_Q := E_CARTIME.IN_RFID_CASH_Q;
V_IN_RFID_SUN_Q := E_CARTIME.IN_RFID_SUN_Q;
V_IN_RFID_WHO_Q := E_CARTIME.IN_RFID_WHO_Q;
V_IN_RFID_COUPON_Q := E_CARTIME.IN_RFID_COUPON_Q;
V_IN_RFID_FREE_Q := E_CARTIME.IN_RFID_FREE_Q;
V_OUT_RFID_CASH_Q := E_CARTIME.OUT_RFID_CASH_Q;
V_OUT_RFID_SUN_Q := E_CARTIME.OUT_RFID_SUN_Q;
V_OUT_RFID_WHO_Q := E_CARTIME.OUT_RFID_WHO_Q;
V_OUT_RFID_COUPON_Q := E_CARTIME.OUT_RFID_COUPON_Q;
V_OUT_RFID_FREE_Q := E_CARTIME.OUT_RFID_FREE_Q;
V_IN_RFID_CASH_M := E_CARTIME.IN_RFID_CASH_M;
V_IN_RFID_SUN_M := E_CARTIME.IN_RFID_SUN_M;
V_IN_RFID_WHO_M := E_CARTIME.IN_RFID_WHO_M;
V_OUT_RFID_CASH_M := E_CARTIME.OUT_RFID_CASH_M;
V_OUT_RFID_SUN_M := E_CARTIME.OUT_RFID_SUN_M;
V_OUT_RFID_WHO_M := E_CARTIME.OUT_RFID_WHO_M;
-- 차종별 시간별 정산정보에 insert한다.
INSERT INTO CAR_TIME_ADJUST_INFO(FARE_OFFICE_ID,BOOTH_ID,CAR_TYPE_ID,
YEAR,MONTH,DAY,TIMES,
IN_EXEMPTION_QUANTITY,IN_CASH_QUANTITY,IN_COUPON_QUANTITY,
IN_NONPAYMENT_QUANTITY,IN_CARD_BEFORE_QUANTITY,
IN_CARD_AFTER_QUANTITY,IN_COUPON_SALE_QUANTITY,
OUT_EXEMPTION_QUANTITY,OUT_CASH_QUANTITY,OUT_COUPON_QUANTITY,
OUT_NONPAYMENT_QUANTITY,OUT_CARD_BEFORE_QUANTITY,
OUT_CARD_AFTER_QUANTITY,OUT_COUPON_SALE_QUANTITY,
IN_CASH_INCOME,IN_CARD_BEFORE_INCOME,IN_CARD_AFTER_INCOME,
IN_COUPON_INCOME,IN_COUPON_SALE,
OUT_CASH_INCOME,OUT_CARD_BEFORE_INCOME,OUT_CARD_AFTER_INCOME,
OUT_COUPON_INCOME,OUT_COUPON_SALE,
IN_NOTE_QUANTITY,OUT_NOTE_QUANTITY,IN_NOTE_INCOME,OUT_NOTE_INCOME,
IN_K_CASH_Q,IN_K_COUPON_Q,IN_K_CARD_SUN_Q,IN_K_CARD_WHO_Q,IN_K_COUPON_SALE_Q,
IN_K_CASH_INCOME,IN_K_CARD_SUN_INCOME,IN_K_CARD_WHO_INCOME,IN_K_COUPON_SALE_INCOME,
OUT_K_CASH_Q,OUT_K_COUPON_Q,OUT_K_CARD_SUN_Q,OUT_K_CARD_WHO_Q,OUT_K_COUPON_SALE_Q,
OUT_K_CASH_INCOME,OUT_K_CARD_SUN_INCOME,OUT_K_CARD_WHO_INCOME,OUT_K_COUPON_SALE_INCOME,
IN_REPAY_CNT,IN_REPAY_AMOUNT,OUT_REPAY_CNT,OUT_REPAY_AMOUNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER,
in_rfid_cash_q, in_rfid_sun_q, in_rfid_who_q, in_rfid_coupon_q, in_rfid_free_q,
in_rfid_cash_m, in_rfid_sun_m, in_rfid_who_m,
out_rfid_cash_q, out_rfid_sun_q, out_rfid_who_q, out_rfid_coupon_q, out_rfid_free_q,
out_rfid_cash_m, out_rfid_sun_m, out_rfid_who_m)
VALUES(V_FARE,V_BOOTH,V_CAR,V_YEAR,V_MONTH,V_DAY,V_TIME,V_IN_FREE_CNT,V_IN_CASH_CNT,V_IN_COUPON_CNT,
V_IN_MINAP_CNT,V_IN_SUN_CNT,V_IN_WHO_CNT,V_IN_TICKET_CNT,
V_OUT_FREE_CNT,V_OUT_CASH_CNT,V_OUT_COUPON_CNT,
V_OUT_MINAP_CNT,V_OUT_SUN_CNT,V_OUT_WHO_CNT,V_OUT_TICKET_CNT,
V_IN_CASH_N, V_IN_SUN_N, V_IN_WHO_N, V_IN_COUPON_N, V_IN_TICKET_N,
V_OUT_CASH_N, V_OUT_SUN_N, V_OUT_WHO_N, V_OUT_COUPON_N, V_OUT_TICKET_N,
V_IN_SUGI_CNT, V_OUT_SUGI_CNT, V_IN_SUGI_N, V_OUT_SUGI_N,
V_IN_K_CASH_CNT,V_IN_K_COUPON_CNT,V_IN_K_SUN_CNT,V_IN_K_WHO_CNT,
V_IN_K_TICKET_CNT,
V_IN_K_CASH_N,V_IN_K_SUN_N,V_IN_K_WHO_N,V_IN_K_TICKET_N,
V_OUT_K_CASH_CNT,V_OUT_K_COUPON_CNT,V_OUT_K_SUN_CNT,V_OUT_K_WHO_CNT,
V_OUT_K_TICKET_CNT,
V_OUT_K_CASH_N,V_OUT_K_SUN_N,V_OUT_K_WHO_N,V_OUT_K_TICKET_N,
V_IN_REPAY_CNT, V_IN_REPAY_N, V_OUT_REPAY_CNT, V_OUT_REPAY_N,
SYSDATE,'AUTO',SYSDATE,'AUTO',
v_in_rfid_cash_q, v_in_rfid_sun_q, v_in_rfid_who_q, v_in_rfid_coupon_q, v_in_rfid_free_q,
v_in_rfid_cash_m, v_in_rfid_sun_m, v_in_rfid_who_m,
v_out_rfid_cash_q, v_out_rfid_sun_q, v_out_rfid_who_q, v_out_rfid_coupon_q, v_out_rfid_free_q,
v_out_rfid_cash_m, v_out_rfid_sun_m, v_out_rfid_who_m);
COMMIT;
EXIT WHEN C_CARTIME%NOTFOUND;
END LOOP;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END SP_CARTIME_3;
-- 평일, 토요일 여부를 가져온다.
FUNCTION FUN_DAY
(
IN_DATE IN CHAR
)
RETURN CHAR
IS
V_YEAR CHAR(4) := ' ';
V_MONTH CHAR(2) := ' ';
V_DAY CHAR(2) := ' ';
V_DATE DATE;
V_DAY1 VARCHAR2(10);
V_RET CHAR(1);
BEGIN
V_YEAR := SUBSTR(IN_DATE, 1,4);
V_MONTH := SUBSTR(IN_DATE, 5,2);
V_DAY := SUBSTR(IN_DATE, 7,2);
V_DATE := TO_DATE(V_YEAR||'/'||V_MONTH||'/'||V_DAY, 'YYYY/MM/DD');
SELECT TO_CHAR(V_DATE, 'DAY')
INTO V_DAY1
FROM DUAL;
IF RTRIM(V_DAY1,' ') = 'SUNDAY' THEN
V_RET := '3';
ELSIF RTRIM(V_DAY1,' ') = 'SATURDAY' THEN
V_RET := '2';
ELSE
V_RET := '1';
END IF;
RETURN V_RET;
END FUN_DAY;
-- 차량별 일별 정산정보 집계작업
PROCEDURE SP_AUTO_CARDAY
IS
V_WEEK CHAR(1) := ' ';
V_DATE CHAR(8) := TO_CHAR(SYSDATE - 1, 'YYYYMMDD');
V_FARE_CNT NUMBER := 0;
V_CARDAY_CNT NUMBER := 0;
V_SQLCODE NUMBER := 0;
BEGIN
-- fare_terminal_info에 집계할 날짜의 data가 없으면 작업을 끝낸다.
SELECT COUNT(*)
INTO V_FARE_CNT
FROM CAR_TIME_ADJUST_INFO
WHERE YEAR||MONTH||DAY = V_DATE;
IF V_FARE_CNT = 0 THEN
RETURN;
END IF;
-- car_time_adjust_info에 data가 존재하면 삭제하고 다음작업을 실행한다.
SELECT COUNT(*)
INTO V_CARDAY_CNT
FROM CAR_DAY_ADJUST_INFO
WHERE YEAR||MONTH||DAY = V_DATE;
IF V_CARDAY_CNT > 0 THEN
BEGIN
DELETE FROM CAR_DAY_ADJUST_INFO
WHERE YEAR||MONTH||DAY = V_DATE;
V_SQLCODE := SQLCODE;
END;
END IF;
IF V_SQLCODE = 0 THEN
BEGIN
-- 평일, 토요일 여부를 가져온다.
V_WEEK := FUN_DAY(V_DATE);
EXCEPTION
WHEN NO_DATA_FOUND THEN
V_WEEK := '1';
WHEN OTHERS THEN
V_WEEK := '1';
END;
INSERT INTO CAR_DAY_ADJUST_INFO(FARE_OFFICE_ID,BOOTH_ID,CARS_TYPE_ID,
YEAR,MONTH,DAY,IN_EXEMPTION_QUANTITY,IN_CASH_QUANTITY,
IN_COUPON_QUANTITY,IN_NONPAYMENT_QUANTITY,IN_CARD_BEFORE_QUANTITY,
IN_CARD_AFTER_QUANTITY,IN_COUPON_SALE_QUANTITY,OUT_EXEMPTION_QUANTITY,
OUT_CASH_QUANTITY,OUT_COUPON_QUANTITY,OUT_NONPAYMENT_QUANTITY,
OUT_CARD_BEFORE_QUANTITY,OUT_CARD_AFTER_QUANTITY,OUT_COUPON_SALE_QUANTITY,
TOTAL_INCOME,
IN_CASH_INCOME,IN_CARD_BEFORE_INCOME,IN_CARD_AFTER_INCOME,
IN_COUPON_INCOME,IN_COUPON_SALE,OUT_CASH_INCOME,
OUT_CARD_BEFORE_INCOME,OUT_CARD_AFTER_INCOME,OUT_COUPON_INCOME,
OUT_COUPON_SALE,WEEKDAY_KBN,
IN_NOTE_QUANTITY,OUT_NOTE_QUANTITY,IN_NOTE_INCOME,OUT_NOTE_INCOME,
IN_K_CASH_Q,IN_K_COUPON_Q,IN_K_CARD_SUN_Q,IN_K_CARD_WHO_Q,IN_K_COUPON_SALE_Q,
IN_K_CASH_INCOME,IN_K_CARD_SUN_INCOME,IN_K_CARD_WHO_INCOME,IN_K_COUPON_SALE_INCOME,
OUT_K_CASH_Q,OUT_K_COUPON_Q,OUT_K_CARD_SUN_Q,OUT_K_CARD_WHO_Q,OUT_K_COUPON_SALE_Q,
OUT_K_CASH_INCOME,OUT_K_CARD_SUN_INCOME,OUT_K_CARD_WHO_INCOME,OUT_K_COUPON_SALE_INCOME,
IN_REPAY_CNT,IN_REPAY_AMOUNT,OUT_REPAY_CNT,OUT_REPAY_AMOUNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER,
in_rfid_cash_q, in_rfid_sun_q, in_rfid_who_q, in_rfid_coupon_q, in_rfid_free_q,
in_rfid_cash_m, in_rfid_sun_m, in_rfid_who_m,
out_rfid_cash_q, out_rfid_sun_q, out_rfid_who_q, out_rfid_coupon_q, out_rfid_free_q,
out_rfid_cash_m, out_rfid_sun_m, out_rfid_who_m)
SELECT A.FARE_OFFICE_ID, A.BOOTH_ID, A.CAR_TYPE_ID,
A.YEAR, A.MONTH, A.DAY,
NVL(SUM(NVL(A.IN_EXEMPTION_QUANTITY,0)),0),
NVL(SUM(NVL(A.IN_CASH_QUANTITY,0)),0),
NVL(SUM(NVL(A.IN_COUPON_QUANTITY,0)),0),
NVL(SUM(NVL(A.IN_NONPAYMENT_QUANTITY,0)),0),
NVL(SUM(NVL(A.IN_CARD_BEFORE_QUANTITY,0)),0),
NVL(SUM(NVL(A.IN_CARD_AFTER_QUANTITY,0)),0),
NVL(SUM(NVL(A.IN_COUPON_SALE_QUANTITY,0)),0),
NVL(SUM(NVL(A.OUT_EXEMPTION_QUANTITY,0)),0),
NVL(SUM(NVL(A.OUT_CASH_QUANTITY,0)),0),
NVL(SUM(NVL(A.OUT_COUPON_QUANTITY,0)),0),
NVL(SUM(NVL(A.OUT_NONPAYMENT_QUANTITY,0)),0),
NVL(SUM(NVL(A.OUT_CARD_BEFORE_QUANTITY,0)),0),
NVL(SUM(NVL(A.OUT_CARD_AFTER_QUANTITY,0)),0),
NVL(SUM(NVL(A.OUT_COUPON_SALE_QUANTITY,0)),0),
NVL(SUM(NVL(A.IN_CASH_INCOME,0) +
NVL(A.IN_CARD_BEFORE_INCOME,0) +
NVL(A.IN_CARD_AFTER_INCOME,0) +
NVL(A.IN_COUPON_INCOME,0) +
NVL(A.IN_COUPON_SALE,0) +
NVL(A.OUT_CASH_INCOME,0) +
NVL(A.OUT_CARD_BEFORE_INCOME,0) +
NVL(A.OUT_CARD_AFTER_INCOME,0) +
NVL(A.OUT_COUPON_INCOME,0) +
NVL(A.OUT_COUPON_SALE,0)),0),
NVL(SUM(NVL(A.IN_CASH_INCOME,0)), 0),
NVL(SUM(NVL(A.IN_CARD_BEFORE_INCOME,0)),0),
NVL(SUM(NVL(A.IN_CARD_AFTER_INCOME,0)),0),
NVL(SUM(NVL(A.IN_COUPON_INCOME,0)),0),
NVL(SUM(NVL(A.IN_COUPON_SALE,0)),0),
NVL(SUM(NVL(A.OUT_CASH_INCOME,0)),0),
NVL(SUM(NVL(A.OUT_CARD_BEFORE_INCOME,0)),0),
NVL(SUM(NVL(A.OUT_CARD_AFTER_INCOME,0)),0),
NVL(SUM(NVL(A.OUT_COUPON_INCOME,0)),0),
NVL(SUM(NVL(A.OUT_COUPON_SALE,0)),0),
V_WEEK,
NVL(SUM(NVL(A.IN_NOTE_QUANTITY,0)),0),
NVL(SUM(NVL(A.OUT_NOTE_QUANTITY,0)),0),
NVL(SUM(NVL(A.IN_NOTE_INCOME,0)),0),
NVL(SUM(NVL(A.OUT_NOTE_INCOME,0)),0),
NVL(SUM(NVL(A.IN_K_CASH_Q,0)),0),
NVL(SUM(NVL(A.IN_K_COUPON_Q,0)),0),
NVL(SUM(NVL(A.IN_K_CARD_SUN_Q,0)),0),
NVL(SUM(NVL(A.IN_K_CARD_WHO_Q,0)),0),
NVL(SUM(NVL(A.IN_K_COUPON_SALE_Q,0)),0),
NVL(SUM(NVL(A.IN_K_CASH_INCOME,0)),0),
NVL(SUM(NVL(A.IN_K_CARD_SUN_INCOME,0)),0),
NVL(SUM(NVL(A.IN_K_CARD_WHO_INCOME,0)),0),
NVL(SUM(NVL(A.IN_K_COUPON_SALE_INCOME,0)),0),
NVL(SUM(NVL(A.OUT_K_CASH_Q,0)),0),
NVL(SUM(NVL(A.OUT_K_COUPON_Q,0)),0),
NVL(SUM(NVL(A.OUT_K_CARD_SUN_Q,0)),0),
NVL(SUM(NVL(A.OUT_K_CARD_WHO_Q,0)),0),
NVL(SUM(NVL(A.OUT_K_COUPON_SALE_Q,0)),0),
NVL(SUM(NVL(A.OUT_K_CASH_INCOME,0)),0),
NVL(SUM(NVL(A.OUT_K_CARD_SUN_INCOME,0)),0),
NVL(SUM(NVL(A.OUT_K_CARD_WHO_INCOME,0)),0),
NVL(SUM(NVL(A.OUT_K_COUPON_SALE_INCOME,0)),0),
NVL(SUM(NVL(A.IN_REPAY_CNT,0)),0),
NVL(SUM(NVL(A.IN_REPAY_AMOUNT,0)),0),
NVL(SUM(NVL(A.OUT_REPAY_CNT,0)),0),
NVL(SUM(NVL(A.OUT_REPAY_AMOUNT,0)),0),
SYSDATE, 'AUTO', SYSDATE, 'AUTO',
NVL(SUM(NVL(A.in_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.in_rfid_who_q,0)),0),
NVL(SUM(NVL(A.in_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.in_rfid_free_q,0)),0),
NVL(SUM(NVL(A.in_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.in_rfid_who_m,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.out_rfid_who_q,0)),0),
NVL(SUM(NVL(A.out_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.out_rfid_free_q,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.out_rfid_who_m,0)),0)
FROM CAR_TIME_ADJUST_INFO A
WHERE A.YEAR||A.MONTH||A.DAY = V_DATE
GROUP BY A.FARE_OFFICE_ID,A.BOOTH_ID,A.YEAR, A.MONTH, A.DAY, A.CAR_TYPE_ID;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END IF;
END SP_AUTO_CARDAY;
-- 차종별 일 정산정보에서 평일, 토요일 일수를 가져온다.
FUNCTION FUN_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
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_WEEK_SAT_CNT;
-- 차량별 월별 정산정보 집계작업.
PROCEDURE SP_AUTO_CARMONTH
IS
V_FARE_CNT NUMBER := 0;
V_CARMONTH_CNT NUMBER := 0;
V_SQLCODE NUMBER := 0;
V_DATE CHAR(6) := TO_CHAR(SYSDATE - 1, 'YYYYMM');
BEGIN
SELECT COUNT(*)
INTO V_FARE_CNT
FROM CAR_DAY_ADJUST_INFO
WHERE YEAR||MONTH = V_DATE;
IF V_FARE_CNT = 0 THEN
RETURN;
END IF;
-- data가 존재하면 삭제하고 다음작업을 실행한다.
SELECT COUNT(*)
INTO V_CARMONTH_CNT
FROM CAR_MONTH_ADJUST_INFO
WHERE YEAR||MONTH = V_DATE;
IF V_CARMONTH_CNT > 0 THEN
BEGIN
DELETE FROM CAR_MONTH_ADJUST_INFO
WHERE YEAR||MONTH = V_DATE;
V_SQLCODE := SQLCODE;
END;
END IF;
IF V_SQLCODE = 0 THEN
INSERT INTO CAR_MONTH_ADJUST_INFO(FARE_OFFICE_ID,BOOTH_ID,CARS_TYPE_ID,
YEAR,MONTH,IN_EXEMPTION_QUANTITY,IN_CASH_QUANTITY,IN_COUPON_QUANTITY,
IN_NONPAYMENT_QUANTITY,IN_CARD_BEFORE_QUANTITY,IN_CARD_AFTER_QUANTITY,
IN_COUPON_SALE_QUANTITY,OUT_EXEMPTION_QUANTITY,OUT_CASH_QUANTITY,
OUT_COUPON_QUANTITY,OUT_NONPAYMENT_QUANTITY,OUT_CARD_BEFORE_QUANTITY,
OUT_CARD_AFTER_QUANTITY,OUT_COUPON_SALE_QUANTITY,TOTAL_INCOME,
IN_CASH_INCOME,IN_CARD_BEFORE_INCOME,IN_CARD_AFTER_INCOME,
IN_COUPON_INCOME,IN_COUPON_SALE,OUT_CASH_INCOME,OUT_CARD_BEFORE_INCOME,
OUT_CARD_AFTER_INCOME,OUT_COUPON_INCOME,OUT_COUPON_SALE,DEPOSIT_PAY,
CREDIT_PAY,OVERFARE_IN_AMOUNT,OVERFARE_OUT_AMOUNT,OVERCOUPON_COUNT,
COUPON_RETURN_COUNT,WEEK_COUNT,HOLIDAY_COUNT,
IN_NOTE_QUANTITY,OUT_NOTE_QUANTITY,IN_NOTE_INCOME,OUT_NOTE_INCOME,
IN_K_CASH_Q,IN_K_COUPON_Q,IN_K_CARD_SUN_Q,IN_K_CARD_WHO_Q,IN_K_COUPON_SALE_Q,
IN_K_CASH_INCOME,IN_K_CARD_SUN_INCOME,IN_K_CARD_WHO_INCOME,IN_K_COUPON_SALE_INCOME,
OUT_K_CASH_Q,OUT_K_COUPON_Q,OUT_K_CARD_SUN_Q,OUT_K_CARD_WHO_Q,OUT_K_COUPON_SALE_Q,
OUT_K_CASH_INCOME,OUT_K_CARD_SUN_INCOME,OUT_K_CARD_WHO_INCOME,OUT_K_COUPON_SALE_INCOME,
IN_REPAY_CNT,IN_REPAY_AMOUNT,OUT_REPAY_CNT,OUT_REPAY_AMOUNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER,
in_rfid_cash_q, in_rfid_sun_q, in_rfid_who_q, in_rfid_coupon_q, in_rfid_free_q,
in_rfid_cash_m, in_rfid_sun_m, in_rfid_who_m,
out_rfid_cash_q, out_rfid_sun_q, out_rfid_who_q, out_rfid_coupon_q, out_rfid_free_q,
out_rfid_cash_m, out_rfid_sun_m, out_rfid_who_m)
SELECT A.FARE_OFFICE_ID,A.BOOTH_ID,A.CARS_TYPE_ID,A.YEAR,A.MONTH,SUM(A.IN_EXEMPTION_QUANTITY),
SUM(A.IN_CASH_QUANTITY),SUM(A.IN_COUPON_QUANTITY),SUM(A.IN_NONPAYMENT_QUANTITY),
SUM(A.IN_CARD_BEFORE_QUANTITY),SUM(A.IN_CARD_AFTER_QUANTITY),SUM(A.IN_COUPON_SALE_QUANTITY),
SUM(A.OUT_EXEMPTION_QUANTITY),SUM(A.OUT_CASH_QUANTITY),SUM(A.OUT_COUPON_QUANTITY),
SUM(A.OUT_NONPAYMENT_QUANTITY),SUM(A.OUT_CARD_BEFORE_QUANTITY),SUM(A.OUT_CARD_AFTER_QUANTITY),
SUM(A.OUT_COUPON_SALE_QUANTITY),SUM(A.TOTAL_INCOME),SUM(A.IN_CASH_INCOME),SUM(A.IN_CARD_BEFORE_INCOME),
SUM(A.IN_CARD_AFTER_INCOME),SUM(A.IN_COUPON_INCOME),SUM(A.IN_COUPON_SALE),SUM(A.OUT_CASH_INCOME),
SUM(A.OUT_CARD_BEFORE_INCOME),SUM(A.OUT_CARD_AFTER_INCOME),SUM(A.OUT_COUPON_INCOME),
SUM(A.OUT_COUPON_SALE),SUM(A.DEPOSIT_PAY),SUM(A.CREDIT_PAY),SUM(A.OVERFARE_IN_AMOUNT),
SUM(A.OVERFARE_OUT_AMOUNT),SUM(A.OVERCOUPON_COUNT),SUM(A.COUPON_RETURN_COUNT),
FUN_WEEK_SAT_CNT(A.YEAR, A.MONTH, A.FARE_OFFICE_ID, A.BOOTH_ID, A.CARS_TYPE_ID, '1'),
FUN_WEEK_SAT_CNT(A.YEAR, A.MONTH, A.FARE_OFFICE_ID, A.BOOTH_ID, A.CARS_TYPE_ID, '2'),
SUM(A.IN_NOTE_QUANTITY), SUM(A.OUT_NOTE_QUANTITY), SUM(A.IN_NOTE_INCOME), SUM(A.OUT_NOTE_INCOME),
SUM(A.IN_K_CASH_Q),SUM(A.IN_K_COUPON_Q),SUM(A.IN_K_CARD_SUN_Q),SUM(A.IN_K_CARD_WHO_Q),
SUM(A.IN_K_COUPON_SALE_Q),
SUM(A.IN_K_CASH_INCOME),SUM(A.IN_K_CARD_SUN_INCOME),SUM(A.IN_K_CARD_WHO_INCOME),
SUM(A.IN_K_COUPON_SALE_INCOME),
SUM(A.OUT_K_CASH_Q),SUM(A.OUT_K_COUPON_Q),SUM(A.OUT_K_CARD_SUN_Q),SUM(A.OUT_K_CARD_WHO_Q),
SUM(A.OUT_K_COUPON_SALE_Q),
SUM(A.OUT_K_CASH_INCOME),SUM(A.OUT_K_CARD_SUN_INCOME),SUM(A.OUT_K_CARD_WHO_INCOME),
SUM(A.OUT_K_COUPON_SALE_INCOME),
SUM(A.IN_REPAY_CNT),SUM(A.IN_REPAY_AMOUNT),SUM(A.OUT_REPAY_CNT),SUM(A.OUT_REPAY_AMOUNT),
SYSDATE, 'AUTO', SYSDATE, 'AUTO',
NVL(SUM(NVL(A.in_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.in_rfid_who_q,0)),0),
NVL(SUM(NVL(A.in_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.in_rfid_free_q,0)),0),
NVL(SUM(NVL(A.in_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.in_rfid_who_m,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.out_rfid_who_q,0)),0),
NVL(SUM(NVL(A.out_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.out_rfid_free_q,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.out_rfid_who_m,0)),0)
FROM CAR_DAY_ADJUST_INFO A
WHERE A.YEAR||A.MONTH = V_DATE
GROUP BY A.FARE_OFFICE_ID, A.BOOTH_ID, A.YEAR, A.MONTH, A.CARS_TYPE_ID;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END IF;
END SP_AUTO_CARMONTH;
-- 차량별 년도별 정산정보 집계작업.
PROCEDURE SP_AUTO_CARYEAR
IS
V_FARE_CNT NUMBER := 0;
V_CARYEAR_CNT NUMBER := 0;
V_SQLCODE NUMBER := 0;
V_YEAR CHAR(4) := TO_CHAR(SYSDATE - 1, 'YYYY');
BEGIN
-- 집계할 날짜의 data가 없으면 작업을 끝낸다.
SELECT COUNT(*)
INTO V_FARE_CNT
FROM CAR_MONTH_ADJUST_INFO
WHERE YEAR = V_YEAR;
IF V_FARE_CNT = 0 THEN
RETURN;
END IF;
-- data가 존재하면 삭제하고 다음작업을 실행한다.
SELECT COUNT(*)
INTO V_CARYEAR_CNT
FROM CAR_YEAR_ADJUST_INFO
WHERE YEAR = V_YEAR;
IF V_CARYEAR_CNT > 0 THEN
BEGIN
DELETE FROM CAR_YEAR_ADJUST_INFO
WHERE YEAR = V_YEAR;
V_SQLCODE := SQLCODE;
END;
END IF;
IF V_SQLCODE = 0 THEN
INSERT INTO CAR_YEAR_ADJUST_INFO(FARE_OFFICE_ID,BOOTH_ID,CAR_TYPE_ID,YEAR,
IN_EXEMPTION_QUANTITY,IN_CASH_QUANTITY,IN_COUPON_QUANTITY,IN_NONPAYMENT_QUANTITY,
IN_CARD_BEFORE_QUANTITY,IN_CARD_AFTER_QUANTITY,IN_COUPON_SALE_QUANTITY,
OUT_EXEMPTION_QUANTITY,OUT_CASH_QUANTITY,OUT_COUPON_QUANTITY,
OUT_NONPAYMENT_QUANTITY,OUT_CARD_BEFORE_QUANTITY,OUT_CARD_AFTER_QUANTITY,
OUT_COUPON_SALE_QUANTITY,TOTAL_INCOME,IN_CASH_INCOME,IN_CARD_BEFORE_INCOME,
IN_CARD_AFTER_INCOME,IN_COUPON_INCOME,IN_COUPON_SALE,OUT_CASH_INCOME,
OUT_CARD_BEFORE_INCOME,OUT_CARD_AFTER_INCOME,OUT_COUPON_INCOME,OUT_COUPON_SALE,
DEPOSIT_PAY,CREDIT_PAY,OVERFARE_IN_AMOUNT,OVERFARE_OUT_AMOUNT,OVERCOUPON_COUNT,
COUPON_RETURN_COUNT,WEEK_COUNT,HOLIDAY_COUNT,
IN_NOTE_QUANTITY,OUT_NOTE_QUANTITY,IN_NOTE_INCOME,OUT_NOTE_INCOME,
IN_K_CASH_Q,IN_K_COUPON_Q,IN_K_CARD_SUN_Q,IN_K_CARD_WHO_Q,IN_K_COUPON_SALE_Q,
IN_K_CASH_INCOME,IN_K_CARD_SUN_INCOME,IN_K_CARD_WHO_INCOME,IN_K_COUPON_SALE_INCOME,
OUT_K_CASH_Q,OUT_K_COUPON_Q,OUT_K_CARD_SUN_Q,OUT_K_CARD_WHO_Q,OUT_K_COUPON_SALE_Q,
OUT_K_CASH_INCOME,OUT_K_CARD_SUN_INCOME,OUT_K_CARD_WHO_INCOME,OUT_K_COUPON_SALE_INCOME,
IN_REPAY_CNT,IN_REPAY_AMOUNT,OUT_REPAY_CNT,OUT_REPAY_AMOUNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER,
in_rfid_cash_q, in_rfid_sun_q, in_rfid_who_q, in_rfid_coupon_q, in_rfid_free_q,
in_rfid_cash_m, in_rfid_sun_m, in_rfid_who_m,
out_rfid_cash_q, out_rfid_sun_q, out_rfid_who_q, out_rfid_coupon_q, out_rfid_free_q,
out_rfid_cash_m, out_rfid_sun_m, out_rfid_who_m)
SELECT A.FARE_OFFICE_ID,A.BOOTH_ID,A.CARS_TYPE_ID,A.YEAR,SUM(A.IN_EXEMPTION_QUANTITY),
SUM(A.IN_CASH_QUANTITY),SUM(A.IN_COUPON_QUANTITY),SUM(A.IN_NONPAYMENT_QUANTITY),
SUM(A.IN_CARD_BEFORE_QUANTITY),SUM(A.IN_CARD_AFTER_QUANTITY),SUM(A.IN_COUPON_SALE_QUANTITY),
SUM(A.OUT_EXEMPTION_QUANTITY),SUM(A.OUT_CASH_QUANTITY),SUM(A.OUT_COUPON_QUANTITY),
SUM(A.OUT_NONPAYMENT_QUANTITY),SUM(A.OUT_CARD_BEFORE_QUANTITY),
SUM(A.OUT_CARD_AFTER_QUANTITY),SUM(A.OUT_COUPON_SALE_QUANTITY),SUM(A.TOTAL_INCOME),SUM(A.IN_CASH_INCOME),
SUM(A.IN_CARD_BEFORE_INCOME),SUM(A.IN_CARD_AFTER_INCOME),SUM(A.IN_COUPON_INCOME),SUM(A.IN_COUPON_SALE),
SUM(A.OUT_CASH_INCOME),SUM(A.OUT_CARD_BEFORE_INCOME),SUM(A.OUT_CARD_AFTER_INCOME),SUM(A.OUT_COUPON_INCOME),
SUM(A.OUT_COUPON_SALE),SUM(A.DEPOSIT_PAY),SUM(A.CREDIT_PAY),SUM(A.OVERFARE_IN_AMOUNT),SUM(A.OVERFARE_OUT_AMOUNT),
SUM(A.OVERCOUPON_COUNT),SUM(A.COUPON_RETURN_COUNT),SUM(A.WEEK_COUNT),SUM(A.HOLIDAY_COUNT),
SUM(A.IN_NOTE_QUANTITY), SUM(A.OUT_NOTE_QUANTITY), SUM(A.IN_NOTE_INCOME), SUM(A.OUT_NOTE_INCOME),
SUM(A.IN_K_CASH_Q),SUM(A.IN_K_COUPON_Q),SUM(A.IN_K_CARD_SUN_Q),SUM(A.IN_K_CARD_WHO_Q),
SUM(A.IN_K_COUPON_SALE_Q),
SUM(A.IN_K_CASH_INCOME),SUM(A.IN_K_CARD_SUN_INCOME),SUM(A.IN_K_CARD_WHO_INCOME),
SUM(A.IN_K_COUPON_SALE_INCOME),
SUM(A.OUT_K_CASH_Q),SUM(A.OUT_K_COUPON_Q),SUM(A.OUT_K_CARD_SUN_Q),SUM(A.OUT_K_CARD_WHO_Q),
SUM(A.OUT_K_COUPON_SALE_Q),
SUM(A.OUT_K_CASH_INCOME),SUM(A.OUT_K_CARD_SUN_INCOME),SUM(A.OUT_K_CARD_WHO_INCOME),
SUM(A.OUT_K_COUPON_SALE_INCOME),
SUM(A.IN_REPAY_CNT),SUM(A.IN_REPAY_AMOUNT),SUM(A.OUT_REPAY_CNT),SUM(A.OUT_REPAY_AMOUNT),
SYSDATE,'AUTO',SYSDATE,'AUTO',
NVL(SUM(NVL(A.in_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.in_rfid_who_q,0)),0),
NVL(SUM(NVL(A.in_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.in_rfid_free_q,0)),0),
NVL(SUM(NVL(A.in_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.in_rfid_who_m,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.out_rfid_who_q,0)),0),
NVL(SUM(NVL(A.out_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.out_rfid_free_q,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.out_rfid_who_m,0)),0)
FROM CAR_MONTH_ADJUST_INFO A
WHERE A.YEAR = V_YEAR
GROUP BY A.FARE_OFFICE_ID, A.BOOTH_ID, A.CARS_TYPE_ID, A.YEAR;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END IF;
END SP_AUTO_CARYEAR;
-- 시간별 정산정보 집계작업.
PROCEDURE SP_AUTO_TIME
IS
V_FARE_CNT NUMBER := 0;
V_TIME_CNT NUMBER := 0;
V_SQLCODE NUMBER := 0;
V_DATE CHAR(8) := TO_CHAR(SYSDATE - 1, 'YYYYMMDD');
BEGIN
-- 집계할 날짜의 data가 없으면 작업을 끝낸다.
SELECT COUNT(*)
INTO V_FARE_CNT
FROM CAR_TIME_ADJUST_INFO
WHERE YEAR||MONTH||DAY = V_DATE;
IF V_FARE_CNT = 0 THEN
RETURN;
END IF;
-- data가 존재하면 삭제하고 다음작업을 실행한다.
SELECT COUNT(*)
INTO V_TIME_CNT
FROM TIME_ADJUST_INFO
WHERE YEAR||MONTH||DAY = V_DATE;
IF V_TIME_CNT > 0 THEN
BEGIN
DELETE FROM TIME_ADJUST_INFO
WHERE YEAR||MONTH||DAY = V_DATE;
V_SQLCODE := SQLCODE;
END;
END IF;
IF V_SQLCODE = 0 THEN
INSERT INTO TIME_ADJUST_INFO(FARE_OFFICE_ID,BOOTH_ID,
YEAR,MONTH,DAY,TIMES,IN_EXEMPTION_QUANTITY,
IN_CASH_QUANTITY,IN_COUPON_QUANTITY,IN_NONPAYMENT_QUANTITY,
IN_CARD_BEFORE_QUANTITY,IN_CARD_AFTER_QUANTITY,IN_COUPON_SALE_QUANTITY,
OUT_EXEMPTION_QUANTITY,OUT_CASH_QUANTITY,OUT_COUPON_QUANTITY,
OUT_NONPAYMENT_QUANTITY,OUT_CARD_BEFORE_QUANTITY,OUT_CARD_AFTER_QUANTITY,
OUT_COUPON_SALE_QUANTITY,IN_CASH_INCOME,IN_CARD_BEFORE_INCOME,
IN_CARD_AFTER_INCOME,IN_COUPON_INCOME,IN_COUPON_SALE,OUT_CASH_INCOME,
OUT_CARD_BEFORE_INCOME,OUT_CARD_AFTER_INCOME,OUT_COUPON_INCOME,OUT_COUPON_SALE,
IN_NOTE_QUANTITY, OUT_NOTE_QUANTITY, IN_NOTE_INCOME, OUT_NOTE_INCOME,
IN_K_CASH_Q,IN_K_COUPON_Q,IN_K_CARD_SUN_Q,IN_K_CARD_WHO_Q,IN_K_COUPON_SALE_Q,
IN_K_CASH_INCOME,IN_K_CARD_SUN_INCOME,IN_K_CARD_WHO_INCOME,IN_K_COUPON_SALE_INCOME,
OUT_K_CASH_Q,OUT_K_COUPON_Q,OUT_K_CARD_SUN_Q,OUT_K_CARD_WHO_Q,OUT_K_COUPON_SALE_Q,
OUT_K_CASH_INCOME,OUT_K_CARD_SUN_INCOME,OUT_K_CARD_WHO_INCOME,OUT_K_COUPON_SALE_INCOME,
IN_REPAY_CNT,IN_REPAY_AMOUNT,OUT_REPAY_CNT,OUT_REPAY_AMOUNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER,
in_rfid_cash_q, in_rfid_sun_q, in_rfid_who_q, in_rfid_coupon_q, in_rfid_free_q,
in_rfid_cash_m, in_rfid_sun_m, in_rfid_who_m,
out_rfid_cash_q, out_rfid_sun_q, out_rfid_who_q, out_rfid_coupon_q, out_rfid_free_q,
out_rfid_cash_m, out_rfid_sun_m, out_rfid_who_m)
SELECT FARE_OFFICE_ID,BOOTH_ID,YEAR,MONTH,DAY,TIMES,
SUM(NVL(A.IN_EXEMPTION_QUANTITY,0)),SUM(NVL(A.IN_CASH_QUANTITY,0)),
SUM(NVL(A.IN_COUPON_QUANTITY,0)),SUM(NVL(A.IN_NONPAYMENT_QUANTITY,0)),
SUM(NVL(A.IN_CARD_BEFORE_QUANTITY,0)),SUM(NVL(A.IN_CARD_AFTER_QUANTITY,0)),
SUM(NVL(A.IN_COUPON_SALE_QUANTITY,0)),SUM(NVL(A.OUT_EXEMPTION_QUANTITY,0)),
SUM(NVL(A.OUT_CASH_QUANTITY,0)),SUM(NVL(A.OUT_COUPON_QUANTITY,0)),
SUM(NVL(A.OUT_NONPAYMENT_QUANTITY,0)),SUM(NVL(A.OUT_CARD_BEFORE_QUANTITY,0)),
SUM(NVL(A.OUT_CARD_AFTER_QUANTITY,0)),SUM(NVL(A.OUT_COUPON_SALE_QUANTITY,0)),
SUM(NVL(A.IN_CASH_INCOME,0)),SUM(NVL(A.IN_CARD_BEFORE_INCOME,0)),
SUM(NVL(A.IN_CARD_AFTER_INCOME,0)),SUM(NVL(A.IN_COUPON_INCOME,0)),
SUM(NVL(A.IN_COUPON_SALE,0)),SUM(NVL(A.OUT_CASH_INCOME,0)),
SUM(NVL(A.OUT_CARD_BEFORE_INCOME,0)),SUM(NVL(A.OUT_CARD_AFTER_INCOME,0)),
SUM(NVL(A.OUT_COUPON_INCOME,0)),SUM(NVL(A.OUT_COUPON_SALE,0)),
SUM(NVL(A.IN_NOTE_QUANTITY,0)), SUM(NVL(A.OUT_NOTE_QUANTITY,0)),
SUM(NVL(A.IN_NOTE_INCOME,0)), SUM(NVL(A.OUT_NOTE_INCOME,0)),
SUM(NVL(A.IN_K_CASH_Q,0)),SUM(NVL(A.IN_K_COUPON_Q,0)),SUM(NVL(A.IN_K_CARD_SUN_Q,0)),
SUM(NVL(A.IN_K_CARD_WHO_Q,0)),SUM(NVL(A.IN_K_COUPON_SALE_Q,0)),
SUM(NVL(A.IN_K_CASH_INCOME,0)),SUM(NVL(A.IN_K_CARD_SUN_INCOME,0)),SUM(NVL(A.IN_K_CARD_WHO_INCOME,0)),
SUM(NVL(A.IN_K_COUPON_SALE_INCOME,0)),
SUM(NVL(A.OUT_K_CASH_Q,0)),SUM(NVL(A.OUT_K_COUPON_Q,0)),SUM(NVL(A.OUT_K_CARD_SUN_Q,0)),
SUM(NVL(A.OUT_K_CARD_WHO_Q,0)), SUM(NVL(A.OUT_K_COUPON_SALE_Q,0)),
SUM(NVL(A.OUT_K_CASH_INCOME,0)),SUM(NVL(A.OUT_K_CARD_SUN_INCOME,0)),SUM(NVL(A.OUT_K_CARD_WHO_INCOME,0)),
SUM(NVL(A.OUT_K_COUPON_SALE_INCOME,0)),
SUM(NVL(A.IN_REPAY_CNT,0)),SUM(NVL(A.IN_REPAY_AMOUNT,0)),SUM(NVL(A.OUT_REPAY_CNT,0)),SUM(NVL(A.OUT_REPAY_AMOUNT,0)),
SYSDATE, 'AUTO', SYSDATE, 'AUTO',
NVL(SUM(NVL(A.in_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.in_rfid_who_q,0)),0),
NVL(SUM(NVL(A.in_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.in_rfid_free_q,0)),0),
NVL(SUM(NVL(A.in_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.in_rfid_who_m,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.out_rfid_who_q,0)),0),
NVL(SUM(NVL(A.out_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.out_rfid_free_q,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.out_rfid_who_m,0)),0)
FROM CAR_TIME_ADJUST_INFO A
WHERE YEAR||MONTH||DAY = V_DATE
GROUP BY FARE_OFFICE_ID, BOOTH_ID, YEAR, MONTH, DAY, TIMES;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END IF;
END SP_AUTO_TIME;
-- 입,출금,과오납금, 과잉쿠폰건수 가져온다.
FUNCTION FUN_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_ADJUST_SEL;
-- 일별 정산정보 집계작업.
PROCEDURE SP_AUTO_DAY
IS
V_FARE_CNT NUMBER := 0;
V_DAY_CNT NUMBER := 0;
V_SQLCODE NUMBER := 0;
V_DATE CHAR(8) := TO_CHAR(SYSDATE - 1, 'YYYYMMDD');
BEGIN
-- 집계할 날짜의 data가 없으면 작업을 끝낸다.
SELECT COUNT(*)
INTO V_FARE_CNT
FROM CAR_DAY_ADJUST_INFO
WHERE YEAR||MONTH||DAY = V_DATE;
IF V_FARE_CNT = 0 THEN
RETURN;
END IF;
-- data가 존재하면 삭제하고 다음작업을 실행한다.
SELECT COUNT(*)
INTO V_DAY_CNT
FROM DAY_ADJUST_INFO
WHERE YEAR||MONTH||DAY = V_DATE;
IF V_DAY_CNT > 0 THEN
BEGIN
DELETE FROM DAY_ADJUST_INFO
WHERE YEAR||MONTH||DAY = V_DATE;
V_SQLCODE := SQLCODE;
END;
END IF;
IF V_SQLCODE = 0 THEN
INSERT INTO DAY_ADJUST_INFO(FARE_OFFICE_ID,BOOTH_ID,
YEAR,MONTH,DAY,
IN_EXEMPTION_QUANTITY,IN_CASH_QUANTITY,
IN_COUPON_QUANTITY,IN_NONPAYMENT_QUANTITY,
IN_CARD_BEFORE_QUANTITY,IN_CARD_AFTER_QUANTITY,
IN_COUPON_SALE_QUANTITY,
OUT_EXEMPTION_QUANTITY,OUT_CASH_QUANTITY,
OUT_COUPON_QUANTITY,OUT_NONPAYMENT_QUANTITY,
OUT_CARD_BEFORE_QUANTITY,OUT_CARD_AFTER_QUANTITY,
OUT_COUPON_SALE_QUANTITY,
TOTAL_INCOME,
IN_CASH_INCOME,IN_CARD_BEFORE_INCOME,IN_CARD_AFTER_INCOME,
IN_COUPON_INCOME,IN_COUPON_SALE,
OUT_CASH_INCOME,OUT_CARD_BEFORE_INCOME,OUT_CARD_AFTER_INCOME,
OUT_COUPON_INCOME,OUT_COUPON_SALE,
DEPOSIT_PAY,CREDIT_PAY,OVERFARE_IN_AMOUNT,OVERFARE_OUT_AMOUNT,
OVERCOUPON_COUNT,COUPON_RETUN_COUNT,
WEEKDAY_KBN,
IN_NOTE_QUANTITY,OUT_NOTE_QUANTITY,IN_NOTE_INCOME,OUT_NOTE_INCOME,
IN_K_CASH_Q,IN_K_COUPON_Q,IN_K_CARD_SUN_Q,IN_K_CARD_WHO_Q,IN_K_COUPON_SALE_Q,
IN_K_CASH_INCOME,IN_K_CARD_SUN_INCOME,IN_K_CARD_WHO_INCOME,IN_K_COUPON_SALE_INCOME,
OUT_K_CASH_Q,OUT_K_COUPON_Q,OUT_K_CARD_SUN_Q,OUT_K_CARD_WHO_Q,OUT_K_COUPON_SALE_Q,
OUT_K_CASH_INCOME,OUT_K_CARD_SUN_INCOME,OUT_K_CARD_WHO_INCOME,OUT_K_COUPON_SALE_INCOME,
IN_REPAY_CNT,IN_REPAY_AMOUNT,OUT_REPAY_CNT,OUT_REPAY_AMOUNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER,
in_rfid_cash_q, in_rfid_sun_q, in_rfid_who_q, in_rfid_coupon_q, in_rfid_free_q,
in_rfid_cash_m, in_rfid_sun_m, in_rfid_who_m,
out_rfid_cash_q, out_rfid_sun_q, out_rfid_who_q, out_rfid_coupon_q, out_rfid_free_q,
out_rfid_cash_m, out_rfid_sun_m, out_rfid_who_m)
SELECT A.FARE_OFFICE_ID,A.BOOTH_ID,
A.YEAR,A.MONTH,A.DAY,
SUM(NVL(A.IN_EXEMPTION_QUANTITY,0)),
SUM(NVL(A.IN_CASH_QUANTITY,0)),
SUM(NVL(A.IN_COUPON_QUANTITY,0)),
SUM(NVL(A.IN_NONPAYMENT_QUANTITY,0)),
SUM(NVL(A.IN_CARD_BEFORE_QUANTITY,0)),
SUM(NVL(A.IN_CARD_AFTER_QUANTITY,0)),
SUM(NVL(A.IN_COUPON_SALE_QUANTITY,0)),
SUM(NVL(A.OUT_EXEMPTION_QUANTITY,0)),
SUM(NVL(A.OUT_CASH_QUANTITY,0)),
SUM(NVL(A.OUT_COUPON_QUANTITY,0)),
SUM(NVL(A.OUT_NONPAYMENT_QUANTITY,0)),
SUM(NVL(A.OUT_CARD_BEFORE_QUANTITY,0)),
SUM(NVL(A.OUT_CARD_AFTER_QUANTITY,0)),
SUM(NVL(A.OUT_COUPON_SALE_QUANTITY,0)),
SUM(NVL(A.TOTAL_INCOME,0)),
SUM(NVL(A.IN_CASH_INCOME,0)),
SUM(NVL(A.IN_CARD_BEFORE_INCOME,0)),
SUM(NVL(A.IN_CARD_AFTER_INCOME,0)),
SUM(NVL(A.IN_COUPON_INCOME,0)),
SUM(NVL(A.IN_COUPON_SALE,0)),
SUM(NVL(A.OUT_CASH_INCOME,0)),
SUM(NVL(A.OUT_CARD_BEFORE_INCOME,0)),
SUM(NVL(A.OUT_CARD_AFTER_INCOME,0)),
SUM(NVL(A.OUT_COUPON_INCOME,0)),
SUM(NVL(A.OUT_COUPON_SALE,0)),
FUN_ADJUST_SEL('1', A.FARE_OFFICE_ID, A.BOOTH_ID, V_DATE),
FUN_ADJUST_SEL('2', A.FARE_OFFICE_ID, A.BOOTH_ID, V_DATE),
FUN_ADJUST_SEL('3', A.FARE_OFFICE_ID, A.BOOTH_ID, V_DATE),
FUN_ADJUST_SEL('4', A.FARE_OFFICE_ID, A.BOOTH_ID, V_DATE),
FUN_ADJUST_SEL('5', A.FARE_OFFICE_ID, A.BOOTH_ID, V_DATE),
FUN_ADJUST_SEL('6', A.FARE_OFFICE_ID, A.BOOTH_ID, V_DATE),
FUN_DAY(A.YEAR||A.MONTH||A.DAY),
SUM(NVL(A.IN_NOTE_QUANTITY, 0)),
SUM(NVL(A.OUT_NOTE_QUANTITY, 0)),
SUM(NVL(A.IN_NOTE_INCOME, 0)),
SUM(NVL(A.OUT_NOTE_INCOME, 0)),
SUM(NVL(A.IN_K_CASH_Q,0)),SUM(NVL(A.IN_K_COUPON_Q,0)),SUM(NVL(A.IN_K_CARD_SUN_Q,0)),
SUM(NVL(A.IN_K_CARD_WHO_Q,0)),SUM(NVL(A.IN_K_COUPON_SALE_Q,0)),
SUM(NVL(A.IN_K_CASH_INCOME,0)),SUM(NVL(A.IN_K_CARD_SUN_INCOME,0)),SUM(NVL(A.IN_K_CARD_WHO_INCOME,0)),
SUM(NVL(A.IN_K_COUPON_SALE_INCOME,0)),
SUM(NVL(A.OUT_K_CASH_Q,0)),SUM(NVL(A.OUT_K_COUPON_Q,0)),SUM(NVL(A.OUT_K_CARD_SUN_Q,0)),
SUM(NVL(A.OUT_K_CARD_WHO_Q,0)), SUM(NVL(A.OUT_K_COUPON_SALE_Q,0)),
SUM(NVL(A.OUT_K_CASH_INCOME,0)),SUM(NVL(A.OUT_K_CARD_SUN_INCOME,0)),SUM(NVL(A.OUT_K_CARD_WHO_INCOME,0)),
SUM(NVL(A.OUT_K_COUPON_SALE_INCOME,0)),
SUM(NVL(A.IN_REPAY_CNT,0)),SUM(NVL(A.IN_REPAY_AMOUNT,0)),SUM(NVL(A.OUT_REPAY_CNT,0)),SUM(NVL(A.OUT_REPAY_AMOUNT,0)),
SYSDATE, 'AUTO', SYSDATE, 'AUTO',
NVL(SUM(NVL(A.in_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.in_rfid_who_q,0)),0),
NVL(SUM(NVL(A.in_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.in_rfid_free_q,0)),0),
NVL(SUM(NVL(A.in_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.in_rfid_who_m,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.out_rfid_who_q,0)),0),
NVL(SUM(NVL(A.out_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.out_rfid_free_q,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.out_rfid_who_m,0)),0)
FROM CAR_DAY_ADJUST_INFO A
WHERE A.YEAR||A.MONTH||A.DAY = V_DATE
GROUP BY A.FARE_OFFICE_ID, A.BOOTH_ID, A.YEAR, A.MONTH, A.DAY;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END IF;
END SP_AUTO_DAY;
-- 일별 정액권정산정보 집계작업.
PROCEDURE SP_AUTO_DAY_FIX
IS
CURSOR C_FARE IS
SELECT FARE_OFFICE_ID AS A
FROM FARE_ADJUST_INFO
WHERE YEAR||MONTH||DAY = TO_CHAR(SYSDATE - 1, 'YYYYMMDD')
AND FARE_ADJUST_YN = '1'
GROUP BY FARE_OFFICE_ID;
E_FARE C_FARE%ROWTYPE;
V_CNT NUMBER := 0;
V_CNT1 NUMBER := 0;
V_DATE CHAR(8) := ' ';
V_LAST_Q NUMBER := 0;
V_RECIEVE NUMBER := 0;
V_BOOTH NUMBER := 0;
V_CENTER NUMBER := 0;
V_FARE NUMBER := 0;
V_SALE NUMBER := 0;
V_STOCK NUMBER := 0;
V_COUPON NUMBER := 0;
V_OFFICE CHAR(2) := ' ';
-- 20031117 경차관련 추가
V_K_LAST_Q NUMBER := 0;
V_K_RECIEVE NUMBER := 0;
V_K_BOOTH NUMBER := 0;
V_K_CENTER NUMBER := 0;
V_K_FARE NUMBER := 0;
V_K_SALE NUMBER := 0;
V_K_STOCK NUMBER := 0;
V_K_COUPON NUMBER := 0;
V_DATE1 CHAR(8) := TO_CHAR(SYSDATE - 1, 'YYYYMMDD');
BEGIN
FOR E_FARE IN C_FARE
LOOP
V_OFFICE := E_FARE.A;
V_OFFICE := RTRIM(V_OFFICE);
-- 일마감 일자의 데이타가 있는지 체크
-- 있으면 업데이트, 없으면 입력
SELECT COUNT(*)
INTO V_CNT
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1;
-- 전일재고량, 수령량, 차로불출량,센터반납,요금소반납
SELECT COUNT(*)
INTO V_CNT1
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY < V_DATE1;
IF V_CNT1 = 0 THEN
V_LAST_Q := 0;
ELSE
-- 전일재고량 구하기
SELECT MAX(YEAR||MONTH||DAY)
INTO V_DATE
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY < V_DATE1;
V_DATE := RTRIM(V_DATE);
-- 일반차 전일재고량 구하기
SELECT NVL(STOCK_QUANTITY,0)
INTO V_LAST_Q
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE;
-- 경차 전일 재고량 구하기...
SELECT NVL(K_STOCK_Q,0)
INTO V_K_LAST_Q
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE;
END IF;
-- 수령량
SELECT NVL(SUM(NVL(IN_OUT_COUNT,0)),0)
INTO V_RECIEVE
FROM FIX_AMOUNT_DETAIL_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1
AND IN_OUT_KBN = '10';
-- 경차 수령량---------------
SELECT NVL(SUM(IN_OUT_COUNT),0)
INTO V_K_RECIEVE
FROM FIX_AMOUNT_DETAIL_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1
AND IN_OUT_KBN = '11';
-- 차로불출량
SELECT NVL(SUM(NVL(IN_OUT_COUNT,0)),0)
INTO V_BOOTH
FROM FIX_AMOUNT_DETAIL_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1
AND IN_OUT_KBN = '21';
-- 경차 차로불출량---------------
SELECT NVL(SUM(IN_OUT_COUNT),0)
INTO V_K_BOOTH
FROM FIX_AMOUNT_DETAIL_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1
AND IN_OUT_KBN = '23';
-- 센타반납
SELECT NVL(SUM(NVL(IN_OUT_COUNT,0)),0)
INTO V_CENTER
FROM FIX_AMOUNT_DETAIL_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1
AND IN_OUT_KBN = '22';
-- 경차 센타반납-------------------
SELECT NVL(SUM(IN_OUT_COUNT),0)
INTO V_K_CENTER
FROM FIX_AMOUNT_DETAIL_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1
AND IN_OUT_KBN = '24';
-- 요금소반납
SELECT NVL(SUM(NVL(IN_OUT_COUNT,0)),0)
INTO V_FARE
FROM FIX_AMOUNT_DETAIL_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1
AND IN_OUT_KBN = '30';
-- 경차 요금소반납------------
SELECT NVL(SUM(IN_OUT_COUNT),0)
INTO V_K_FARE
FROM FIX_AMOUNT_DETAIL_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1
AND IN_OUT_KBN = '31';
-- 정액권 판매량(요금정산에서 구한다.)
SELECT NVL(SUM(NVL(COUPON_SALE_QUANTITY,0)),0)
INTO V_SALE
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1
AND FARE_ADJUST_YN = '1'
GROUP BY FARE_OFFICE_ID,YEAR,MONTH,DAY;
-- 경차 정액권 판매량(요금정산에서 구한다.)----------
SELECT NVL(SUM(K_COUPON_SALE_Q),0)
INTO V_K_SALE
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1
AND FARE_ADJUST_YN = '1'
GROUP BY FARE_OFFICE_ID,YEAR,MONTH,DAY;
-- 일반차 재고량 = 전일재고량+수령량 -(차로불출량 + 센타반납) + 요금소반납
V_STOCK := V_LAST_Q + V_RECIEVE - V_BOOTH - V_CENTER + V_FARE;
-- 경차 재고량 = 전일재고량+수령량 -(차로불출량 + 센타반납) + 요금소반납
V_K_STOCK := V_K_LAST_Q + V_K_RECIEVE - V_K_BOOTH - V_K_CENTER + V_K_FARE;
-- 일반차 쿠폰회수량(일정산정보에서 구한다.)
SELECT NVL(SUM(IN_COUPON_QUANTITY + OUT_COUPON_QUANTITY),0)
INTO V_COUPON
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1;
-- 경차 쿠폰회수량(일정산에서 구한다.)
SELECT NVL(SUM(IN_K_COUPON_Q + OUT_K_COUPON_Q),0)
INTO V_K_COUPON
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1;
IF V_CNT = 0 THEN
-- INSERT
INSERT INTO DAY_FIX_STOCK_INFO(FARE_OFFICE_ID,YEAR,MONTH,DAY,
LAST_DAY_STOCK_QUANTITY, RECEIPT_QUANTITY, BOOTH_OUT_QUANTITY,
CENTER_OUT_QUANTITY, RETURN_QUANTITY, COLLECTION_QUANTITY,
STOCK_QUANTITY, COLLECTION_COUNT,
K_LAST_STOCK_Q, K_RECEIPT_Q, K_BOOTH_Q, K_CENTER_Q,
K_FARE_RETURN_Q, K_COLLECTION_Q, K_STOCK_Q, K_COLLECTION_CNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(V_OFFICE, SUBSTR(V_DATE1,1,4),SUBSTR(V_DATE1,5,2),SUBSTR(V_DATE1,7,2),
V_LAST_Q,V_RECIEVE,V_BOOTH,V_CENTER,V_FARE,V_SALE,V_STOCK,V_COUPON,
V_K_LAST_Q,V_K_RECIEVE,V_K_BOOTH,V_K_CENTER,V_K_FARE,V_K_SALE,
V_K_STOCK,V_K_COUPON,
SYSDATE,'AUTO',SYSDATE,'AUTO');
ELSE
-- UPDATE
UPDATE DAY_FIX_STOCK_INFO
SET LAST_DAY_STOCK_QUANTITY = V_LAST_Q,
RECEIPT_QUANTITY = V_RECIEVE,
BOOTH_OUT_QUANTITY = V_BOOTH,
CENTER_OUT_QUANTITY = V_CENTER,
RETURN_QUANTITY = V_FARE,
COLLECTION_QUANTITY = V_SALE,
STOCK_QUANTITY = V_STOCK,
COLLECTION_COUNT = V_COUPON,
K_LAST_STOCK_Q = V_K_LAST_Q,
K_RECEIPT_Q = V_K_RECIEVE,
K_BOOTH_Q = V_BOOTH,
K_CENTER_Q = V_CENTER,
K_FARE_RETURN_Q = V_FARE,
K_COLLECTION_Q = V_SALE,
K_STOCK_Q = V_STOCK,
K_COLLECTION_CNT = V_COUPON,
UPDATE_DATE = SYSDATE,
UPDATER = 'AUTO'
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1;
END IF;
-- 정액권 DETAIL정보에 일마감 FLAG를 업데이트한다.
UPDATE FIX_AMOUNT_DETAIL_INFO
SET DAY_END_PROCESS_FLAG = '1',
UPDATE_DATE = SYSDATE,
UPDATER = 'AUTO'
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH||DAY = V_DATE1;
EXIT WHEN C_FARE%NOTFOUND;
END LOOP;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END SP_AUTO_DAY_FIX;
-- 월별 과오납정산정보 집계작업.
PROCEDURE SP_AUTO_DAY_OVERFARE
IS
CURSOR C_OVER IS
SELECT A.FARE_OFFICE_ID AS A
FROM FARE_ADJUST_INFO A
WHERE A.YEAR||A.MONTH||A.DAY = TO_CHAR(SYSDATE - 1, 'YYYYMMDD')
AND A.FARE_ADJUST_YN = '1'
GROUP BY A.FARE_OFFICE_ID;
E_OVER C_OVER%ROWTYPE;
V_OVERFARE_Q NUMBER := 0;
V_REFUND_Q NUMBER := 0;
V_OVERFARE_M NUMBER := 0;
V_REFUND_M NUMBER := 0;
V_TAXES_Q NUMBER := 0;
V_TAXES_M NUMBER := 0;
V_CNT NUMBER := 0;
V_FARE CHAR(2) := ' ';
V_ROW NUMBER := 0;
V_DATE CHAR(8) := TO_CHAR(SYSDATE - 1, 'YYYYMMDD');
BEGIN
FOR E_OVER IN C_OVER
LOOP
V_FARE := E_OVER.A;
V_FARE := RTRIM(V_FARE);
-- overfare_info, overfare_taxes_info에서 정보를 가져와 넣는다.
-- day_overfare_info에 정보가 있다면 update, 아니면 insert
-- 과오납건수, 환급적용건수,시세입적용건수,과오납금액,환금적용금액,시세입적용금액
-- 과오납건수
SELECT COUNT(*)
INTO V_OVERFARE_Q
FROM OVERFARE_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 A.WORK_STT_TIME = B.WORK_STT_TIME
AND A.WORK_END_TIME = B.WORK_END_TIME
AND A.FARE_OFFICE_ID = V_FARE
AND A.YEAR||A.MONTH||A.DAY = V_DATE
AND A.OVERFARE_KBN = '1'
AND A.REFUND_KBN = '0'
AND A.DELETE_YN = '0'
AND B.FARE_ADJUST_YN = '1';
-- 환급적용건수
SELECT COUNT(*)
INTO V_REFUND_Q
FROM OVERFARE_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 A.WORK_STT_TIME = B.WORK_STT_TIME
AND A.WORK_END_TIME = B.WORK_END_TIME
AND A.FARE_OFFICE_ID = V_FARE
AND A.YEAR||A.MONTH||A.DAY = V_DATE
AND A.OVERFARE_KBN = '2'
AND A.REFUND_KBN = '1'
AND A.DELETE_YN = '0'
AND B.FARE_ADJUST_YN = '1';
-- 과오납금액
SELECT NVL(SUM(NVL(OVERFARE_AMOUNT,0)),0)
INTO V_OVERFARE_M
FROM OVERFARE_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 A.WORK_STT_TIME = B.WORK_STT_TIME
AND A.WORK_END_TIME = B.WORK_END_TIME
AND A.FARE_OFFICE_ID = V_FARE
AND A.YEAR||A.MONTH||A.DAY = V_DATE
AND A.OVERFARE_KBN = '1'
AND A.REFUND_KBN = '0'
AND A.DELETE_YN = '0'
AND B.FARE_ADJUST_YN = '1';
-- 환급적용금액
SELECT NVL(SUM(NVL(OVERFARE_AMOUNT,0)),0)
INTO V_REFUND_M
FROM OVERFARE_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 A.WORK_STT_TIME = B.WORK_STT_TIME
AND A.WORK_END_TIME = B.WORK_END_TIME
AND A.FARE_OFFICE_ID = V_FARE
AND A.YEAR||A.MONTH||A.DAY = V_DATE
AND A.OVERFARE_KBN = '2'
AND A.REFUND_KBN = '1'
AND A.DELETE_YN = '0'
AND B.FARE_ADJUST_YN = '1';
-- 시세적용건수
SELECT COUNT(*)
INTO V_TAXES_Q
FROM OVERFARE_TAXES_INFO
WHERE FARE_OFFICE_ID = V_FARE
AND ENTRY_YEAR||ENTRY_MONTH||ENTRY_DAY = V_DATE;
-- 시세적용금액
SELECT NVL(SUM(NVL(CITY_TAXES_AMONT,0)),0)
INTO V_TAXES_M
FROM OVERFARE_TAXES_INFO
WHERE FARE_OFFICE_ID = V_FARE
AND ENTRY_YEAR||ENTRY_MONTH||ENTRY_DAY = V_DATE;
-- 과오납 일 집계 정보 존재 여부
SELECT COUNT(*)
INTO V_CNT
FROM DAY_OVERFARE_INFO
WHERE FARE_OFFICE_ID = V_FARE
AND YEAR||MONTH||DAY = V_DATE;
IF V_CNT = 0 THEN
BEGIN
-- INSERT
INSERT INTO DAY_OVERFARE_INFO(FARE_OFFICE_ID,YEAR,MONTH,DAY,
OVERFARE_COUNT,
REFUND_APPLI_COUNT,
CITY_TAXES_APPLI_COUNT,
OVERFARE_AMOUNT,
REFUND_APPLI_AMOUNT,
CITY_TAXES_APPLI_AMOUNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(V_FARE, SUBSTR(V_DATE,1,4), SUBSTR(V_DATE,5,2), SUBSTR(V_DATE,7,2),
V_OVERFARE_Q,
V_REFUND_Q,
V_TAXES_Q,
V_OVERFARE_M,
V_REFUND_M,
V_TAXES_M,
SYSDATE,'AUTO',SYSDATE,'AUTO');
END;
ELSE
BEGIN
-- UPDATE
UPDATE DAY_OVERFARE_INFO
SET OVERFARE_COUNT = V_OVERFARE_Q,
REFUND_APPLI_COUNT = V_REFUND_Q,
CITY_TAXES_APPLI_COUNT = V_TAXES_Q,
OVERFARE_AMOUNT = V_OVERFARE_M,
REFUND_APPLI_AMOUNT = V_REFUND_M,
CITY_TAXES_APPLI_AMOUNT = V_TAXES_M,
UPDATE_DATE = SYSDATE,
UPDATER = 'AUTO'
WHERE FARE_OFFICE_ID = V_FARE
AND YEAR||MONTH||DAY = V_DATE;
END;
END IF;
EXIT WHEN C_OVER%NOTFOUND;
END LOOP;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END SP_AUTO_DAY_OVERFARE;
-- 징수원 일 근무정보
FUNCTION FUN_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_WORKER_TIME;
-- 징수원별 근무정보
PROCEDURE SP_AUTO_WORKER_TIME
IS
V_FARE_CNT NUMBER := 0;
V_WORK_CNT NUMBER := 0;
V_DATE CHAR(8) := TO_CHAR(SYSDATE - 1, 'YYYYMMDD');
V_SQLCODE NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_FARE_CNT
FROM FARE_ADJUST_INFO
WHERE YEAR||MONTH||DAY = V_DATE
AND FARE_ADJUST_YN = '1';
IF V_FARE_CNT = 0 THEN
RETURN;
ELSE
SELECT COUNT(*)
INTO V_WORK_CNT
FROM WORKER_WORK_INFO
WHERE YEAR||MONTH||DAY = V_DATE;
IF V_WORK_CNT > 0 THEN
BEGIN
DELETE FROM WORKER_WORK_INFO
WHERE YEAR||MONTH||DAY = V_DATE;
V_SQLCODE := SQLCODE;
END;
END IF;
IF V_SQLCODE = 0 THEN
INSERT INTO WORKER_WORK_INFO(FARE_OFFICE_ID,
WORKER_ID,YEAR,MONTH,DAY,WORK_TIME,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
SELECT FARE_OFFICE_ID,WORKER_ID,YEAR,MONTH,DAY,
FUN_WORKER_TIME(FARE_OFFICE_ID, WORKER_ID, YEAR||MONTH||DAY),
SYSDATE,'AUTO',SYSDATE,'AUTO'
FROM FARE_ADJUST_INFO
WHERE YEAR||MONTH||DAY = V_DATE
AND FARE_ADJUST_YN = '1'
GROUP BY FARE_OFFICE_ID, WORKER_ID, YEAR, MONTH, DAY;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END IF;
END IF;
END SP_AUTO_WORKER_TIME;
-- 평일,토요일 여부 가져온다.
FUNCTION FUN_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
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_WEEK_SAT_CNT1;
-- 월별 정산정보 집계작업
PROCEDURE SP_AUTO_MONTH
IS
V_DAY_CNT NUMBER := 0;
V_MONTH_CNT NUMBER := 0;
V_SQLCODE NUMBER := 0;
V_DATE CHAR(6) := TO_CHAR(SYSDATE - 1, 'YYYYMM');
BEGIN
-- 집계할 날짜의 data가 없으면 작업을 끝낸다.
SELECT COUNT(*)
INTO V_DAY_CNT
FROM DAY_ADJUST_INFO
WHERE YEAR||MONTH = V_DATE;
IF V_DAY_CNT = 0 THEN
RETURN;
END IF;
-- data가 존재하면 삭제하고 다음작업을 실행한다.
SELECT COUNT(*)
INTO V_MONTH_CNT
FROM MONTH_ADJUST_INFO
WHERE YEAR||MONTH = V_DATE;
IF V_MONTH_CNT > 0 THEN
BEGIN
DELETE FROM MONTH_ADJUST_INFO
WHERE YEAR||MONTH = V_DATE;
V_SQLCODE := SQLCODE;
END;
END IF;
IF V_SQLCODE = 0 THEN
INSERT INTO MONTH_ADJUST_INFO(FARE_OFFICE_ID,BOOTH_ID,
YEAR,MONTH,IN_EXEMPTION_QUANTITY,IN_CASH_QUANTITY,
IN_COUPON_QUANTITY,IN_NONPAYMENT_QUANTITY,IN_CARD_BEFORE_QUANTITY,
IN_CARD_AFTER_QUANTITY,IN_COUPON_SALE_QUANTITY,
OUT_EXEMPTION_QUANTITY,OUT_CASH_QUANTITY,OUT_COUPON_QUANTITY,
OUT_NONPAYMENT_QUANTITY,OUT_CARD_BEFORE_QUANTITY,OUT_CARD_AFTER_QUANTITY,
OUT_COUPON_SALE_QUANTITY,
TOTAL_INCOME,
IN_CASH_INCOME,IN_CARD_BEFORE_INCOME,IN_CARD_AFTER_INCOME,
IN_COUPON_INCOME,IN_COUPON_SALE,OUT_CASH_INCOME,
OUT_CARD_BEFORE_INCOME,OUT_CARD_AFTER_INCOME,
OUT_COUPON_INCOME,OUT_COUPON_SALE,
DEPOSIT_PAY,CREDIT_PAY,OVERFARE_IN_AMOUNT,
OVERFARE_OUT_AMOUNT,OVERCOUPON_COUNT,COUPON_RETURN_COUNT,
WEEK_COUNT,HOLIDAY_COUNT,
IN_NOTE_QUANTITY,OUT_NOTE_QUANTITY,IN_NOTE_INCOME,OUT_NOTE_INCOME,
IN_K_CASH_Q,IN_K_COUPON_Q,IN_K_CARD_SUN_Q,IN_K_CARD_WHO_Q,IN_K_COUPON_SALE_Q,
IN_K_CASH_INCOME,IN_K_CARD_SUN_INCOME,IN_K_CARD_WHO_INCOME,IN_K_COUPON_SALE_INCOME,
OUT_K_CASH_Q,OUT_K_COUPON_Q,OUT_K_CARD_SUN_Q,OUT_K_CARD_WHO_Q,OUT_K_COUPON_SALE_Q,
OUT_K_CASH_INCOME,OUT_K_CARD_SUN_INCOME,OUT_K_CARD_WHO_INCOME,OUT_K_COUPON_SALE_INCOME,
IN_REPAY_CNT,IN_REPAY_AMOUNT,OUT_REPAY_CNT,OUT_REPAY_AMOUNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER,
in_rfid_cash_q, in_rfid_sun_q, in_rfid_who_q, in_rfid_coupon_q, in_rfid_free_q,
in_rfid_cash_m, in_rfid_sun_m, in_rfid_who_m,
out_rfid_cash_q, out_rfid_sun_q, out_rfid_who_q, out_rfid_coupon_q, out_rfid_free_q,
out_rfid_cash_m, out_rfid_sun_m, out_rfid_who_m)
SELECT A.FARE_OFFICE_ID, A.BOOTH_ID, A.YEAR, A.MONTH,
SUM(NVL(A.IN_EXEMPTION_QUANTITY,0)),
SUM(NVL(A.IN_CASH_QUANTITY,0)),
SUM(NVL(A.IN_COUPON_QUANTITY,0)),
SUM(NVL(A.IN_NONPAYMENT_QUANTITY,0)),
SUM(NVL(A.IN_CARD_BEFORE_QUANTITY,0)),
SUM(NVL(A.IN_CARD_AFTER_QUANTITY,0)),
SUM(NVL(A.IN_COUPON_SALE_QUANTITY,0)),
SUM(NVL(A.OUT_EXEMPTION_QUANTITY,0)),
SUM(NVL(A.OUT_CASH_QUANTITY,0)),
SUM(NVL(A.OUT_COUPON_QUANTITY,0)),
SUM(NVL(A.OUT_NONPAYMENT_QUANTITY,0)),
SUM(NVL(A.OUT_CARD_BEFORE_QUANTITY,0)),
SUM(NVL(A.OUT_CARD_AFTER_QUANTITY,0)),
SUM(NVL(A.OUT_COUPON_SALE_QUANTITY,0)),
SUM(NVL(A.TOTAL_INCOME,0)),
SUM(NVL(A.IN_CASH_INCOME,0)),
SUM(NVL(A.IN_CARD_BEFORE_INCOME,0)),
SUM(NVL(A.IN_CARD_AFTER_INCOME,0)),
SUM(NVL(A.IN_COUPON_INCOME,0)),
SUM(NVL(A.IN_COUPON_SALE,0)),
SUM(NVL(A.OUT_CASH_INCOME,0)),
SUM(NVL(A.OUT_CARD_BEFORE_INCOME,0)),
SUM(NVL(A.OUT_CARD_AFTER_INCOME,0)),
SUM(NVL(A.OUT_COUPON_INCOME,0)),
SUM(NVL(A.OUT_COUPON_SALE,0)),
SUM(NVL(A.DEPOSIT_PAY,0)),
SUM(NVL(A.CREDIT_PAY,0)),
SUM(NVL(A.OVERFARE_IN_AMOUNT,0)),
SUM(NVL(A.OVERFARE_OUT_AMOUNT,0)),
SUM(NVL(A.OVERCOUPON_COUNT,0)),
SUM(NVL(A.COUPON_RETUN_COUNT,0)),
FUN_WEEK_SAT_CNT1(A.YEAR,A.MONTH,A.FARE_OFFICE_ID,A.BOOTH_ID,'1'),
FUN_WEEK_SAT_CNT1(A.YEAR,A.MONTH,A.FARE_OFFICE_ID,A.BOOTH_ID,'2'),
SUM(NVL(A.IN_NOTE_QUANTITY, 0)),
SUM(NVL(A.OUT_NOTE_QUANTITY, 0)),
SUM(NVL(A.IN_NOTE_INCOME, 0)),
SUM(NVL(A.OUT_NOTE_INCOME, 0)),
SUM(NVL(A.IN_K_CASH_Q,0)),SUM(NVL(A.IN_K_COUPON_Q,0)),SUM(NVL(A.IN_K_CARD_SUN_Q,0)),
SUM(NVL(A.IN_K_CARD_WHO_Q,0)),SUM(NVL(A.IN_K_COUPON_SALE_Q,0)),
SUM(NVL(A.IN_K_CASH_INCOME,0)),SUM(NVL(A.IN_K_CARD_SUN_INCOME,0)),SUM(NVL(A.IN_K_CARD_WHO_INCOME,0)),
SUM(NVL(A.IN_K_COUPON_SALE_INCOME,0)),
SUM(NVL(A.OUT_K_CASH_Q,0)),SUM(NVL(A.OUT_K_COUPON_Q,0)),SUM(NVL(A.OUT_K_CARD_SUN_Q,0)),
SUM(NVL(A.OUT_K_CARD_WHO_Q,0)), SUM(NVL(A.OUT_K_COUPON_SALE_Q,0)),
SUM(NVL(A.OUT_K_CASH_INCOME,0)),SUM(NVL(A.OUT_K_CARD_SUN_INCOME,0)),SUM(NVL(A.OUT_K_CARD_WHO_INCOME,0)),
SUM(NVL(A.OUT_K_COUPON_SALE_INCOME,0)),
SUM(NVL(A.IN_REPAY_CNT,0)),SUM(NVL(A.IN_REPAY_AMOUNT,0)),SUM(NVL(A.OUT_REPAY_CNT,0)),SUM(NVL(A.OUT_REPAY_AMOUNT,0)),
SYSDATE, 'AUTO', SYSDATE, 'AUTO',
NVL(SUM(NVL(A.in_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.in_rfid_who_q,0)),0),
NVL(SUM(NVL(A.in_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.in_rfid_free_q,0)),0),
NVL(SUM(NVL(A.in_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.in_rfid_who_m,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.out_rfid_who_q,0)),0),
NVL(SUM(NVL(A.out_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.out_rfid_free_q,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.out_rfid_who_m,0)),0)
FROM DAY_ADJUST_INFO A
WHERE A.YEAR||A.MONTH = V_DATE
GROUP BY A.FARE_OFFICE_ID, A.BOOTH_ID, A.YEAR, A.MONTH;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END IF;
END SP_AUTO_MONTH;
-- 월별 정액권 정산정보 집계작업.
PROCEDURE SP_AUTO_MONTH_FIX
IS
CURSOR C_MONTH IS
SELECT FARE_OFFICE_ID AS A
FROM DAY_FIX_STOCK_INFO
WHERE YEAR||MONTH = TO_CHAR(SYSDATE - 1, 'YYYYMM')
GROUP BY FARE_OFFICE_ID;
E_MONTH C_MONTH%ROWTYPE;
V_CNT NUMBER := 0;
V_CNT1 NUMBER := 0;
V_DATE CHAR(6) := ' ';
V_LAST_Q NUMBER := 0;
V_RECIEVE NUMBER := 0;
V_BOOTH NUMBER := 0;
V_CENTER NUMBER := 0;
V_FARE NUMBER := 0;
V_SALE NUMBER := 0;
V_STOCK NUMBER := 0;
V_COUPON NUMBER := 0;
V_RETURN NUMBER := 0;
V_OFFICE CHAR(2) := ' ';
-- 경차관련 추가 20031117 ARCADIA
V_K_LAST_Q NUMBER := 0;
V_K_RECIEVE NUMBER := 0;
V_K_BOOTH NUMBER := 0;
V_K_CENTER NUMBER := 0;
V_K_FARE NUMBER := 0;
V_K_SALE NUMBER := 0;
V_K_STOCK NUMBER := 0;
V_K_COUPON NUMBER := 0;
V_K_RETURN NUMBER := 0;
V_DATE1 CHAR(6) := TO_CHAR(SYSDATE - 1, 'YYYYMM');
BEGIN
FOR E_MONTH IN C_MONTH
LOOP
V_OFFICE := E_MONTH.A;
V_OFFICE := RTRIM(V_OFFICE);
SELECT COUNT(*)
INTO V_CNT1
FROM MONTH_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 전일재고량, 수령량, 차로불출량,센터반납,요금소반납
SELECT COUNT(*)
INTO V_CNT
FROM MONTH_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH < V_DATE1;
IF V_CNT = 0 THEN
V_LAST_Q := 0;
ELSE
-- 전일재고량 구하기
SELECT MAX(YEAR||MONTH)
INTO V_DATE
FROM MONTH_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH < V_DATE1;
V_DATE := RTRIM(V_DATE);
SELECT NVL(STOCK_QUANTITY,0)
INTO V_LAST_Q
FROM MONTH_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE;
-- 경차 전월재고량 구하기---------
SELECT NVL(K_STOCK_Q,0)
INTO V_K_LAST_Q
FROM MONTH_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE;
END IF;
-- 수령량
SELECT NVL(SUM(NVL(RECEIPT_QUANTITY,0)),0)
INTO V_RECIEVE
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 경차 수령량----------
SELECT NVL(SUM(K_RECEIPT_Q),0)
INTO V_K_RECIEVE
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 차로불출량
SELECT NVL(SUM(NVL(BOOTH_OUT_QUANTITY,0)),0)
INTO V_BOOTH
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 경차 차로불출량------------
SELECT NVL(SUM(K_BOOTH_Q),0)
INTO V_K_BOOTH
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 센타반납
SELECT NVL(SUM(NVL(CENTER_OUT_QUANTITY,0)),0)
INTO V_CENTER
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 경차 센타반납-------------------
SELECT NVL(SUM(K_CENTER_Q),0)
INTO V_K_CENTER
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 요금소반납
SELECT NVL(SUM(NVL(RETURN_QUANTITY,0)),0)
INTO V_FARE
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 경차 요금소반납--------------------
SELECT NVL(SUM(K_FARE_RETURN_Q),0)
INTO V_K_FARE
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 정액권 판매량(요금정산에서 구한다.)
SELECT NVL(SUM(NVL(COLLECTION_QUANTITY,0)),0)
INTO V_SALE
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 경차 정액권 판매량(요금정산에서 구한다.)-----------
SELECT NVL(SUM(K_COLLECTION_Q),0)
INTO V_K_SALE
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 일반차 재고량 = 전일재고량+수령량 -(차로불출량 + 센타반납) + 요금소반납
V_STOCK := V_LAST_Q + V_RECIEVE - V_BOOTH - V_CENTER + V_FARE;
-- 경차 재고량 = 전일재고량+수령량 -(차로불출량 + 센타반납) + 요금소반납
V_K_STOCK := V_K_LAST_Q + V_K_RECIEVE - V_K_BOOTH - V_K_CENTER + V_K_FARE;
-- 쿠폰회수량
SELECT NVL(SUM(NVL(COLLECTION_COUNT,0)),0)
INTO V_COUPON
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 경차 쿠폰회수량-----------------
SELECT NVL(SUM(K_COLLECTION_CNT),0)
INTO V_K_COUPON
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 회수쿠폰 반납매수
SELECT NVL(SUM(NVL(RETURN_COUPON_COUNT,0)),0)
INTO V_RETURN
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
-- 경차 회수쿠폰 반납매수-------------
SELECT NVL(SUM(K_RET_COUPON_CNT),0)
INTO V_K_RETURN
FROM DAY_FIX_STOCK_INFO
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
IF V_CNT1 = 0 THEN
INSERT INTO MONTH_FIX_STOCK_INFO(FARE_OFFICE_ID,YEAR,MONTH,LAST_MONTH_STOCK_QUANTITY,
RECEIPT_QUANTITY,BOOTH_OUT_QUANTITY,CENTER_OUT_QUANTITY,RETURN_QUANTITY,
COLLECTION_QUANTITY,STOCK_QUANTITY,COLLECTION_COUNT,RETURN_COUPON_COUNT,
K_LAST_STOCK_Q,K_RECEIPT_Q,K_BOOTH_Q,K_CENTER_Q,K_FARE_RETURN_Q,
K_COLLECTION_Q,K_STOCK_Q,K_COLLECTION_CNT,K_RET_COUPON_CNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
VALUES(V_OFFICE, SUBSTR(V_DATE1,1,4),SUBSTR(V_DATE1,5,2),V_LAST_Q,V_RECIEVE,V_BOOTH,
V_CENTER,V_FARE,V_SALE,V_STOCK,V_COUPON,V_RETURN,
V_K_LAST_Q,V_K_RECIEVE,V_K_BOOTH,V_K_CENTER,V_K_FARE,V_K_SALE,V_K_STOCK,
V_K_COUPON,V_K_RETURN,
SYSDATE,'AUTO',SYSDATE,'AUTO');
ELSE
UPDATE MONTH_FIX_STOCK_INFO
SET LAST_MONTH_STOCK_QUANTITY = V_LAST_Q,
RECEIPT_QUANTITY = V_RECIEVE,
BOOTH_OUT_QUANTITY = V_BOOTH,
CENTER_OUT_QUANTITY = V_CENTER,
RETURN_QUANTITY = V_FARE,
COLLECTION_QUANTITY = V_SALE,
STOCK_QUANTITY = V_STOCK,
COLLECTION_COUNT = V_COUPON,
RETURN_COUPON_COUNT = V_RETURN,
K_LAST_STOCK_Q = V_K_LAST_Q,
K_RECEIPT_Q = V_K_RECIEVE,
K_BOOTH_Q = V_K_BOOTH,
K_CENTER_Q = V_K_CENTER,
K_FARE_RETURN_Q = V_K_FARE,
K_COLLECTION_Q = V_K_SALE,
K_STOCK_Q = V_K_STOCK,
K_COLLECTION_CNT = V_K_COUPON,
K_RET_COUPON_CNT = V_K_RETURN,
UPDATE_DATE = SYSDATE,
UPDATER = 'AUTO'
WHERE FARE_OFFICE_ID = V_OFFICE
AND YEAR||MONTH = V_DATE1;
END IF;
EXIT WHEN C_MONTH%NOTFOUND;
END LOOP;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END SP_AUTO_MONTH_FIX;
-- 월별 과오납 정산정보 집계작업.
PROCEDURE SP_AUTO_MONTH_OVERFARE
IS
CURSOR C_OVER IS
SELECT FARE_OFFICE_ID AS A
FROM DAY_OVERFARE_INFO
WHERE YEAR||MONTH = TO_CHAR(SYSDATE - 1, 'YYYYMM')
GROUP BY FARE_OFFICE_ID;
E_OVER C_OVER%ROWTYPE;
V_FARE CHAR(2) := ' ';
V_ROW NUMBER := 0;
V_MONTH_CNT NUMBER := 0;
V_DATE CHAR(6) := TO_CHAR(SYSDATE - 1, 'YYYYMM');
V_SQLCODE NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO V_MONTH_CNT
FROM MONTH_OVERFARE_INFO
WHERE YEAR||MONTH = V_DATE;
IF V_MONTH_CNT > 0 THEN
BEGIN
DELETE FROM MONTH_OVERFARE_INFO
WHERE YEAR||MONTH = V_DATE;
V_SQLCODE := SQLCODE;
END;
END IF;
IF V_SQLCODE = 0 THEN
SELECT COUNT(*)
INTO V_ROW
FROM DAY_OVERFARE_INFO
WHERE YEAR||MONTH = V_DATE;
IF V_ROW > 0 THEN
FOR E_OVER IN C_OVER
LOOP
V_FARE := E_OVER.A;
V_FARE := RTRIM(V_FARE);
INSERT INTO MONTH_OVERFARE_INFO(FARE_OFFICE_ID,YEAR,MONTH,
OVERFARE_COUNT,
REFUND_APPLI_COUNT,
REFUND_OCCUR_COUNT,
CITY_TAXES_OCCUR_COUNT,
CITY_TAXES_APPLI_COUNT,
OVERFARE_AMOUNT,
REFUND_OCCUR_AMOUNT,
REFUND_APPLI_AMOUNT,
CITY_TAXES_OCCUR_AMOUNT,
CITY_TAXES_APPLI_AMOUNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
SELECT FARE_OFFICE_ID,SUBSTR(V_DATE,1,4),SUBSTR(V_DATE,5,2),
NVL(SUM(NVL(OVERFARE_COUNT,0)),0),
NVL(SUM(NVL(REFUND_APPLI_COUNT,0)),0),
NVL(SUM(NVL(REFUND_OCCUR_COUNT,0)),0),
NVL(SUM(NVL(CITY_TAXES_OCCUR_COUNT,0)),0),
NVL(SUM(NVL(CITY_TAXES_APPLI_COUNT,0)),0),
NVL(SUM(NVL(OVERFARE_AMOUNT,0)),0),
NVL(SUM(NVL(REFUND_OCCUR_AMOUNT,0)),0),
NVL(SUM(NVL(REFUND_APPLI_AMOUNT,0)),0),
NVL(SUM(NVL(CITY_TAXES_OCCUR_AMOUNT,0)),0),
NVL(SUM(NVL(CITY_TAXES_APPLI_AMOUNT,0)),0),
SYSDATE,'AUTO',SYSDATE,'AUTO'
FROM DAY_OVERFARE_INFO
WHERE FARE_OFFICE_ID = V_FARE
AND YEAR||MONTH = V_DATE
GROUP BY FARE_OFFICE_ID;
EXIT WHEN C_OVER%NOTFOUND;
END LOOP;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END IF;
END IF;
END SP_AUTO_MONTH_OVERFARE;
-- 년도별 정산정보 집계작업.
PROCEDURE SP_AUTO_YEAR
IS
V_MONTH_CNT NUMBER := 0;
V_YEAR_CNT NUMBER := 0;
V_SQLCODE NUMBER := 0;
V_YEAR CHAR(4) := TO_CHAR(SYSDATE - 1, 'YYYY');
BEGIN
-- 집계할 날짜의 data가 없으면 작업을 끝낸다.
SELECT COUNT(*)
INTO V_MONTH_CNT
FROM MONTH_ADJUST_INFO
WHERE YEAR = V_YEAR;
IF V_MONTH_CNT = 0 THEN
RETURN;
END IF;
-- data가 존재하면 삭제하고 다음작업을 실행한다.
SELECT COUNT(*)
INTO V_YEAR_CNT
FROM YEAR_ADJUST_INFO
WHERE YEAR = V_YEAR;
IF V_YEAR_CNT > 0 THEN
BEGIN
DELETE FROM YEAR_ADJUST_INFO
WHERE YEAR = V_YEAR;
V_SQLCODE := SQLCODE;
END;
END IF;
IF V_SQLCODE = 0 THEN
INSERT INTO YEAR_ADJUST_INFO(FARE_OFFICE_ID,BOOTH_ID,YEAR,
IN_EXEMPTION_QUANTITY,IN_CASH_QUANTITY,IN_COUPON_QUANTITY,
IN_NONPAYMENT_QUANTITY,
IN_CARD_BEFORE_QUANTITY,IN_CARD_AFTER_QUANTITY,
IN_COUPON_SALE_QUANTITY,
OUT_EXEMPTION_QUANTITY,OUT_CASH_QUANTITY,OUT_COUPON_QUANTITY,
OUT_NONPAYMENT_QUANTITY,
OUT_CARD_BEFORE_QUANTITY,OUT_CARD_AFTER_QUANTITY,
OUT_COUPON_SALE_QUANTITY,
TOTAL_INCOME,
IN_CASH_INCOME,IN_CARD_BEFORE_INCOME,IN_CARD_AFTER_INCOME,
IN_COUPON_INCOME,IN_COUPON_SALE,
OUT_CASH_INCOME,OUT_CARD_BEFORE_INCOME,OUT_CARD_AFTER_INCOME,
OUT_COUPON_INCOME,OUT_COUPON_SALE,
DEPOSIT_PAY,CREDIT_PAY,OVERFARE_IN_AMOUNT,OVERFARE_OUT_AMOUNT,
OVERCOUPON_COUNT,COUPON_RETURN_COUNT,
WEEK_COUNT,HOLIDAY_COUNT,
IN_NOTE_QUANTITY,OUT_NOTE_QUANTITY,IN_NOTE_INCOME,OUT_NOTE_INCOME,
IN_K_CASH_Q,IN_K_COUPON_Q,IN_K_CARD_SUN_Q,IN_K_CARD_WHO_Q,IN_K_COUPON_SALE_Q,
IN_K_CASH_INCOME,IN_K_CARD_SUN_INCOME,IN_K_CARD_WHO_INCOME,IN_K_COUPON_SALE_INCOME,
OUT_K_CASH_Q,OUT_K_COUPON_Q,OUT_K_CARD_SUN_Q,OUT_K_CARD_WHO_Q,OUT_K_COUPON_SALE_Q,
OUT_K_CASH_INCOME,OUT_K_CARD_SUN_INCOME,OUT_K_CARD_WHO_INCOME,OUT_K_COUPON_SALE_INCOME,
IN_REPAY_CNT,IN_REPAY_AMOUNT,OUT_REPAY_CNT,OUT_REPAY_AMOUNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER,
in_rfid_cash_q, in_rfid_sun_q, in_rfid_who_q, in_rfid_coupon_q, in_rfid_free_q,
in_rfid_cash_m, in_rfid_sun_m, in_rfid_who_m,
out_rfid_cash_q, out_rfid_sun_q, out_rfid_who_q, out_rfid_coupon_q, out_rfid_free_q,
out_rfid_cash_m, out_rfid_sun_m, out_rfid_who_m)
SELECT FARE_OFFICE_ID,BOOTH_ID,YEAR,
SUM(NVL(A.IN_EXEMPTION_QUANTITY,0)),
SUM(NVL(A.IN_CASH_QUANTITY,0)),
SUM(NVL(A.IN_COUPON_QUANTITY,0)),
SUM(NVL(A.IN_NONPAYMENT_QUANTITY,0)),
SUM(NVL(A.IN_CARD_BEFORE_QUANTITY,0)),
SUM(NVL(A.IN_CARD_AFTER_QUANTITY,0)),
SUM(NVL(A.IN_COUPON_SALE_QUANTITY,0)),
SUM(NVL(A.OUT_EXEMPTION_QUANTITY,0)),
SUM(NVL(A.OUT_CASH_QUANTITY,0)),
SUM(NVL(A.OUT_COUPON_QUANTITY,0)),
SUM(NVL(A.OUT_NONPAYMENT_QUANTITY,0)),
SUM(NVL(A.OUT_CARD_BEFORE_QUANTITY,0)),
SUM(NVL(A.OUT_CARD_AFTER_QUANTITY,0)),
SUM(NVL(A.OUT_COUPON_SALE_QUANTITY,0)),
SUM(NVL(A.TOTAL_INCOME,0)),
SUM(NVL(A.IN_CASH_INCOME,0)),
SUM(NVL(A.IN_CARD_BEFORE_INCOME,0)),
SUM(NVL(A.IN_CARD_AFTER_INCOME,0)),
SUM(NVL(A.IN_COUPON_INCOME,0)),
SUM(NVL(A.IN_COUPON_SALE,0)),
SUM(NVL(A.OUT_CASH_INCOME,0)),
SUM(NVL(A.OUT_CARD_BEFORE_INCOME,0)),
SUM(NVL(A.OUT_CARD_AFTER_INCOME,0)),
SUM(NVL(A.OUT_COUPON_INCOME,0)),
SUM(NVL(A.OUT_COUPON_SALE,0)),
SUM(NVL(A.DEPOSIT_PAY,0)),
SUM(NVL(A.CREDIT_PAY,0)),
SUM(NVL(A.OVERFARE_IN_AMOUNT,0)),
SUM(NVL(A.OVERFARE_OUT_AMOUNT,0)),
SUM(NVL(A.OVERCOUPON_COUNT,0)),
SUM(NVL(A.COUPON_RETURN_COUNT,0)),
SUM(NVL(A.WEEK_COUNT,0)),
SUM(NVL(A.HOLIDAY_COUNT,0)),
SUM(NVL(A.IN_NOTE_QUANTITY, 0)),
SUM(NVL(A.OUT_NOTE_QUANTITY, 0)),
SUM(NVL(A.IN_NOTE_INCOME, 0)),
SUM(NVL(A.OUT_NOTE_INCOME, 0)),
SUM(NVL(A.IN_K_CASH_Q,0)),SUM(NVL(A.IN_K_COUPON_Q,0)),SUM(NVL(A.IN_K_CARD_SUN_Q,0)),
SUM(NVL(A.IN_K_CARD_WHO_Q,0)),SUM(NVL(A.IN_K_COUPON_SALE_Q,0)),
SUM(NVL(A.IN_K_CASH_INCOME,0)),SUM(NVL(A.IN_K_CARD_SUN_INCOME,0)),SUM(NVL(A.IN_K_CARD_WHO_INCOME,0)),
SUM(NVL(A.IN_K_COUPON_SALE_INCOME,0)),
SUM(NVL(A.OUT_K_CASH_Q,0)),SUM(NVL(A.OUT_K_COUPON_Q,0)),SUM(NVL(A.OUT_K_CARD_SUN_Q,0)),
SUM(NVL(A.OUT_K_CARD_WHO_Q,0)), SUM(NVL(A.OUT_K_COUPON_SALE_Q,0)),
SUM(NVL(A.OUT_K_CASH_INCOME,0)),SUM(NVL(A.OUT_K_CARD_SUN_INCOME,0)),SUM(NVL(A.OUT_K_CARD_WHO_INCOME,0)),
SUM(NVL(A.OUT_K_COUPON_SALE_INCOME,0)),
SUM(NVL(A.IN_REPAY_CNT,0)),SUM(NVL(A.IN_REPAY_AMOUNT,0)),SUM(NVL(A.OUT_REPAY_CNT,0)),SUM(NVL(A.OUT_REPAY_AMOUNT,0)),
SYSDATE, 'AUTO', SYSDATE, 'AUTO',
NVL(SUM(NVL(A.in_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.in_rfid_who_q,0)),0),
NVL(SUM(NVL(A.in_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.in_rfid_free_q,0)),0),
NVL(SUM(NVL(A.in_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.in_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.in_rfid_who_m,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_q,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_q,0)),0),
NVL(SUM(NVL(A.out_rfid_who_q,0)),0),
NVL(SUM(NVL(A.out_rfid_coupon_q,0)),0),
NVL(SUM(NVL(A.out_rfid_free_q,0)),0),
NVL(SUM(NVL(A.out_rfid_cash_m,0)),0),
NVL(SUM(NVL(A.out_rfid_sun_m,0)),0),
NVL(SUM(NVL(A.out_rfid_who_m,0)),0)
FROM MONTH_ADJUST_INFO A
WHERE YEAR = V_YEAR
GROUP BY FARE_OFFICE_ID, BOOTH_ID, YEAR;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END IF;
END SP_AUTO_YEAR;
-- 년도별 과오납 정산정보 집계작업.
PROCEDURE SP_AUTO_YEAR_OVERFARE
IS
CURSOR C_OVER IS
SELECT FARE_OFFICE_ID AS A
FROM MONTH_OVERFARE_INFO A
WHERE YEAR = TO_CHAR(SYSDATE - 1, 'YYYY')
GROUP BY FARE_OFFICE_ID;
E_OVER C_OVER%ROWTYPE;
V_FARE CHAR(2) := ' ';
V_ROW NUMBER := 0;
V_YEAR_CNT NUMBER := 0;
V_YEAR CHAR(4) := TO_CHAR(SYSDATE - 1, 'YYYY');
V_SQLCODE NUMBER := 0;
BEGIN
-- 정산할 데이타 존재 여부
SELECT COUNT(*)
INTO V_ROW
FROM MONTH_OVERFARE_INFO
WHERE YEAR = V_YEAR;
IF V_ROW > 0 THEN
-- YEAR_OVERFARE_INFO에 데이타가 있는지 확인
SELECT COUNT(*)
INTO V_YEAR_CNT
FROM YEAR_OVERFARE_INFO
WHERE YEAR = V_YEAR;
IF V_YEAR_CNT > 0 THEN
BEGIN
DELETE FROM YEAR_OVERFARE_INFO
WHERE YEAR = V_YEAR;
V_SQLCODE := SQLCODE;
END;
END IF;
IF V_SQLCODE = 0 THEN
FOR E_OVER IN C_OVER
LOOP
V_FARE := E_OVER.A;
V_FARE := RTRIM(V_FARE);
INSERT INTO YEAR_OVERFARE_INFO(FARE_OFFICE_ID,YEAR,
OVERFARE_COUNT,
REFUND_OCCUR_COUNT,
REFUND_APPLI_COUNT,
CITY_TAXES_OCCUR_COUNT,
CITY_TAXES_APPLI_COUNT,
OVERFARE_AMOUNT,
REFUND_OCCUR_AMOUNT,
REFUND_APPLI_AMOUNT,
CITY_TAXES_OCCUR_AMOUNT,
CITY_TAXES_APPLI_AMOUNT,
CREATE_DATE,CREATER,UPDATE_DATE,UPDATER)
SELECT FARE_OFFICE_ID, YEAR,
NVL(SUM(NVL(OVERFARE_COUNT,0)),0),
NVL(SUM(NVL(REFUND_OCCUR_COUNT,0)),0),
NVL(SUM(NVL(REFUND_APPLI_COUNT,0)),0),
NVL(SUM(NVL(CITY_TAXES_OCCUR_COUNT,0)),0),
NVL(SUM(NVL(CITY_TAXES_APPLI_COUNT,0)),0),
NVL(SUM(NVL(OVERFARE_AMOUNT,0)),0),
NVL(SUM(NVL(REFUND_OCCUR_AMOUNT,0)),0),
NVL(SUM(NVL(REFUND_APPLI_AMOUNT,0)),0),
NVL(SUM(NVL(CITY_TAXES_OCCUR_AMOUNT,0)),0),
NVL(SUM(NVL(CITY_TAXES_APPLI_AMOUNT,0)),0),
SYSDATE,'AUTO',SYSDATE,'AUTO'
FROM MONTH_OVERFARE_INFO
WHERE FARE_OFFICE_ID = V_FARE
AND YEAR = V_YEAR
GROUP BY FARE_OFFICE_ID, YEAR;
EXIT WHEN C_OVER%NOTFOUND;
END LOOP;
IF SQLCODE = 0 THEN
COMMIT;
END IF;
END IF;
END IF;
END SP_AUTO_YEAR_OVERFARE;
END PKG_AUTO_ZIPGE;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.Pbc_Conv_1 AS
/*==============================================================================*/
/* 프로시져명 : Proc_main (DATA Convert)
/*
/* 작 성 자 : 이용현
/* 작성일자 : 2002년 12월 8일
/* Copyright(C) 2002 T.S.W Corporation. All Rights Reserved.
/*==============================================================================*/
PROCEDURE proc_main (
pc_input_text IN VARCHAR2, --
pn_rc OUT NUMBER, --
out_penalty_manage_year OUT CHAR, -- 과태료관리년도( col:1-2 )
out_penalty_seqno OUT CHAR, -- 과태료일련번호( col:3-8 )
out_worker_id OUT CHAR, -- 근로자ID(우선, 과태료일련번호로 세팅, 나중에 수정)( col:3-8 )
out_fare_office_id OUT CHAR, -- 요금소코드( 현장사무소구분,col:9-10 ),
out_pass_yyyy OUT CHAR, -- 통행일자:년( col:11-14 )
out_pass_mm OUT CHAR, -- 통행일자:월( col:15-16 )
out_pass_dd OUT CHAR, -- 통행일자:일( col:17-18 )
out_pass_yyyymmdd OUT CHAR, -- 통행일자:년월일( col:11-18 )
out_pass_time OUT CHAR, -- 통행시간:시분( col:19-22 )
out_car_no OUT VARCHAR2, -- 차량번호( col:23-37 )
out_owner OUT VARCHAR2, -- 차량소유자성명( col:38-67 )
out_car_type_name OUT VARCHAR2, -- 차종명( col:68-87 )
out_resident_date OUT CHAR, -- 차량등록일자(년월일)( col:88-95 )
out_address_name OUT VARCHAR2, -- 현주소( col:97-140 )
out_address_number OUT VARCHAR2, -- 현주소 번지( col:141-200 )
out_post_no1 OUT CHAR, -- 우편번호:지역( col:201-203 )
out_post_no2 OUT CHAR, -- 우편번호:구분( col:204-206 )
out_send_date_1 OUT CHAR, -- 1차, 고지일자(년월일)발송일자( col:207-214 )
out_return_date_1 OUT CHAR, -- 1차, 반송일자( col:215-222 )
out_send_date_2 OUT CHAR, -- 2차, 고지일자(년월일)발송일자( col:223-230 )
out_return_date_2 OUT CHAR, -- 3차, 반송일자( col:231-238 )
out_send_date_3 OUT CHAR, -- 발송일자(압류촉탁,년월일)( col:239-246 )
out_return_date_3 OUT CHAR, -- 반송일자(압류촉탁,년월일)( col:247-254 )
out_seizure_date OUT CHAR, -- 압류일자( col:255-262 )
out_seizure_yyyy OUT CHAR, -- 압류일자(년)( col:255-258 )
out_seizure_termi_date OUT CHAR, -- 압류해지일자( col:263-270 )
out_notice_wrong_id OUT CHAR, -- 고지취소/불가구분( col:272 )
out_notice_wrong_reason OUT VARCHAR2, -- 고치쥐소/불가사유( col:273-292 )
out_pass_amount OUT VARCHAR2, -- 통행료( col:293-297 )
out_fine_amount OUT VARCHAR2, -- 과태료( col:298-303 )
out_receipt_process_kbn OUT CHAR, -- 납부완료부호( col:304 )
out_receipt_date OUT CHAR, -- 납부완료일자( col:305-312 )
out_work_name OUT VARCHAR2, -- 현장업무담당자( col:305-312 )
out_receipt_agency OUT VARCHAR2, -- 납부장소명칭(은행)( col:323-352 )
out_return_kbn OUT CHAR, -- 반송사유코드( col:372 )
out_return_id OUT CHAR -- 반송고지코드( col:372 )
) IS
--
t_motion_id CHAR ;
--
cnv_penalty_manage_year CHAR ; -- 과태료관리년도( col:1-2 )
cnv_penalty_seqno CHAR ; -- 과태료일련번호( col:3-8 )
cnv_worker_id CHAR ; -- 근로자ID(우선, 과태료일련번호로 세팅, 나중에 수정)( col:3-8 )
cnv_fare_office_id CHAR ; -- 요금소코드( 현장사무소구분,col:9-10 ),
cnv_pass_yyyy CHAR ; -- 통행일자:년( col:11-14 )
cnv_pass_mm CHAR ; -- 통행일자:월( col:15-16 )
cnv_pass_dd CHAR ; -- 통행일자:일( col:17-18 )
cnv_pass_yyyymmdd CHAR ; -- 통행일자:년월일( col:11-18 )
cnv_pass_time CHAR ; -- 통행시간:시분( col:19-22 )
cnv_car_no VARCHAR2(20) ; -- 차량번호( col:23-37 )
cnv_owner VARCHAR2(30) ; -- 차량소유자성명( col:38-67 )
cnv_car_type_name VARCHAR2(20) ; -- 차종명( col:68-87 )
cnv_resident_date CHAR ; -- 차량등록일자(년월일)( col:88-95 )
cnv_address_name VARCHAR2(60) ; -- 현주소( col:97-140 )
cnv_address_number VARCHAR2(40) ; -- 현주소 번지( col:141-200 )
cnv_post_no1 CHAR ; -- 우편번호:지역( col:201-203 )
cnv_post_no2 CHAR ; -- 우편번호:구분( col:204-206 )
cnv_send_date_1 CHAR ; -- 1차, 고지일자(년월일)발송일자( col:207-214 )
cnv_return_date_1 CHAR ; -- 1차, 반송일자( col:215-222 )
cnv_send_date_2 CHAR ; -- 2차, 고지일자(년월일)발송일자( col:223-230 )
cnv_return_date_2 CHAR ; -- 3차, 반송일자( col:231-238 )
cnv_send_date_3 CHAR ; -- 발송일자(압류촉탁,년월일)( col:239-246 )
cnv_return_date_3 CHAR ; -- 반송일자(압류촉탁,년월일)( col:247-254 )
cnv_seizure_date CHAR ; -- 압류일자( col:255-262 )
cnv_seizure_yyyy CHAR ; -- 압류일자(년)( col:255-258 )
cnv_seizure_termi_date CHAR ; -- 압류해지일자( col:263-270 )
cnv_notice_wrong_id CHAR ; -- 고지취소/불가구분( col:272 )
cnv_notice_wrong_reason VARCHAR2(60) ; -- 고치쥐소/불가사유( col:273-292 )
cnv_pass_amount NUMBER ; -- 통행료( col:293-297 )
cnv_fine_amount NUMBER ; -- 과태료( col:298-303 )
cnv_receipt_process_kbn CHAR ; -- 납부완료부호( col:304 )
cnv_receipt_date CHAR ; -- 납부완료일자( col:305-312 )
cnv_work_name VARCHAR2(10) ; -- 현장업무담당자( col:305-312 )
cnv_receipt_agency VARCHAR2(60) ; -- 납부장소명칭(은행)( col:323-352 )
cnv_return_kbn CHAR ; -- 반송사유코드( col:372 )
cnv_return_id CHAR ; -- 반송고지코드( col:372 )
-- ******************************************** --
-- 과태료Head정보 用
-- ******************************************** --
-- ----------------------------------------
-- 커서를 선언한다.
-- ----------------------------------------
-- 차량번호로 차종코드를 가져온다. (구분번호가 2자리인 경우)
CURSOR cur_1 (v_car_no1 CHAR) IS
SELECT cars_type_id
FROM CARS_TYPE_CODE_INFO
WHERE stt_fno <= v_car_no1
OR end_fno >= v_car_no1 ;
rec_1 cur_1%ROWTYPE ;
-- 차량번호로 차종코드를 가져온다. (구분번호가 1자리인 경우)
CURSOR cur_2 (v_car_no2 CHAR) IS
SELECT cars_type_id
FROM CARS_TYPE_CODE_INFO
WHERE stt_sno <= v_car_no2
OR end_sno >= v_car_no2 ;
rec_2 cur_2%ROWTYPE ;
-- --------------------------------------------------
phi_cars_type_id PENALTY_HEAD_INFO.CAR_TYPE_ID%TYPE ;
phi_send_1 CHAR;
phi_send_2 CHAR;
-- ******************************************** --
-- 과태료Detail정보 用
-- ******************************************** --
pdi_lavy_amount NUMBER := 0; -- 징수금액
pdi_notice_wrong_id PENALTY_DETAIL_INFO.notice_wrong_id%TYPE ; -- 고지불가구분코드
pdi_seizure_yn PENALTY_DETAIL_INFO.seisure_yn%TYPE ; -- 압류여부
pdi_seizure_termi_yn PENALTY_DETAIL_INFO.seizure_trmi_yn%TYPE ; -- 압류해지구분
BEGIN
dbms_output.ENABLE;
--
cnv_penalty_manage_year := TRIM(SUBSTR(pc_input_text,1,2)) ; -- 과태료관리년도( col:1-2 )
cnv_penalty_seqno := TRIM(SUBSTR(pc_input_text,3,6)) ; -- 과태료일련번호( col:3-8 )
cnv_worker_id := TRIM(SUBSTR(pc_input_text,3,6)) ; -- 근로자ID(우선, 과태료일련번호로 세팅, 나중에 수정)( col:3-8 )
cnv_fare_office_id := TRIM(SUBSTR(pc_input_text,9,2)) ; -- 요금소코드( 현장사무소구분,col:9-10 ),
cnv_pass_yyyy := TRIM(SUBSTR(pc_input_text,11,4)) ; -- 통행일자:년( col:11-14 )
cnv_pass_mm := TRIM(SUBSTR(pc_input_text,15,2)) ; -- 통행일자:월( col:15-16 )
cnv_pass_dd := TRIM(SUBSTR(pc_input_text,17,2)) ; -- 통행일자:일( col:17-18 )
cnv_pass_yyyymmdd := TRIM(SUBSTR(pc_input_text,11,8)) ; -- 통행일자:년월일( col:11-18 )
cnv_pass_time := TRIM(SUBSTR(pc_input_text,19,4)) ; -- 통행시간:시분( col:19-22 )
cnv_car_no := TRIM(SUBSTR(pc_input_text,23,15)) ; -- 차량번호( col:23-37 )
cnv_owner := TRIM(SUBSTR(pc_input_text,38,30)) ; -- 차량소유자성명( col:38-67 )
cnv_car_type_name := TRIM(SUBSTR(pc_input_text,68,20)) ; -- 차종명( col:68-87 )
cnv_resident_date := TRIM(SUBSTR(pc_input_text,88,8)) ; -- 차량등록일자(년월일)( col:88-95 )
cnv_address_name := TRIM(SUBSTR(pc_input_text,97,133)) ; -- 현주소( col:97-140 )
cnv_address_number := TRIM(SUBSTR(pc_input_text,230,40)) ; -- 현주소 번지( col:141-200 )
cnv_post_no1 := TRIM(SUBSTR(pc_input_text,270,3)) ; -- 우편번호:지역( col:201-203 )
cnv_post_no2 := TRIM(SUBSTR(pc_input_text,273,3)) ; -- 우편번호:구분( col:204-206 )
cnv_send_date_1 := TRIM(SUBSTR(pc_input_text,276,8)) ; -- 1차, 고지일자(년월일)발송일자(col:207-214)
cnv_return_date_1 := TRIM(SUBSTR(pc_input_text,284,8)) ; -- 1차, 반송일자( col:215-222 )
cnv_send_date_2 := TRIM(SUBSTR(pc_input_text,292,8)) ; -- 2차, 고지일자(년월일)발송일자(col:223-230)
cnv_return_date_2 := TRIM(SUBSTR(pc_input_text,300,8)) ; -- 3차, 반송일자( col:231-238 )
cnv_send_date_3 := TRIM(SUBSTR(pc_input_text,308,8)) ; -- 발송일자(압류촉탁,년월일)( col:239-246 )
cnv_return_date_3 := TRIM(SUBSTR(pc_input_text,316,8)) ; -- 반송일자(압류촉탁,년월일)( col:247-254 )
cnv_seizure_date := TRIM(SUBSTR(pc_input_text,324,8)) ; -- 압류일자( col:255-262 )
cnv_seizure_yyyy := TRIM(SUBSTR(pc_input_text,332,4)) ; -- 압류일자(년)( col:255-258 )
cnv_seizure_termi_date := TRIM(SUBSTR(pc_input_text,340,8)) ; -- 압류해지일자( col:263-270 )
cnv_notice_wrong_id := TRIM(SUBSTR(pc_input_text,341,1)) ; -- 고지취소/불가구분( col:272 )
cnv_notice_wrong_reason := TRIM(SUBSTR(pc_input_text,342,20)) ; -- 고치쥐소/불가사유( col:273-292 )
cnv_pass_amount := TRIM(SUBSTR(pc_input_text,362,5)) ; -- 통행료( col:293-297 )
cnv_fine_amount := TRIM(SUBSTR(pc_input_text,267,6)) ; -- 과태료( col:298-303 )
cnv_receipt_process_kbn := TRIM(SUBSTR(pc_input_text,373,1)) ; -- 납부완료부호( col:304 )
cnv_receipt_date := TRIM(SUBSTR(pc_input_text,374,8)) ; -- 납부완료일자( col:305-312 )
cnv_work_name := TRIM(SUBSTR(pc_input_text,382,10)) ; -- 현장업무담당자( col:305-312 )
cnv_receipt_agency := TRIM(SUBSTR(pc_input_text,392,30)) ; -- 납부장소명칭(은행)( col:323-352 )
cnv_return_kbn := TRIM(SUBSTR(pc_input_text,441,1)) ; -- 반송사유코드( col:372 )
cnv_return_id := TRIM(SUBSTR(pc_input_text,442,2)) ; -- 반송고지코드( col:372 )
dbms_output.put_line('cnv_penalty_manage_year= '||cnv_penalty_manage_year);
--
pn_rc := -1 ;
-- 납부완료부호를 체크하여 NULL이 아니면,
-- 진행코드에 '91'(수납완료)을 세팅한다.
IF cnv_receipt_process_kbn IS NOT NULL THEN
t_motion_id := '91' ;
-- 압류해지일자를 체크하여 NULL이 아니면,
-- 진행코드에 '81'(압류해지발송)을 세팅한다.
ELSIF cnv_seizure_termi_date IS NOT NULL THEN
t_motion_id := '81' ;
-- 압류촉탁서발송일자를 체크하여 NULL이 아니면,
-- 진행코드에 '71'(압류및촉탁)을 세팅한다.
ELSIF cnv_send_date_3 IS NOT NULL THEN
t_motion_id := '71' ;
-- 압류예고장반송일자를 체크하여 NULL이 아니면,
-- 진행코드에 '42'(2차고지반송)을 세팅한다.
ELSIF cnv_return_date_2 IS NOT NULL THEN
t_motion_id := '42' ;
-- 압류예고장발송일자를 체크하여 NULL이 아니면,
-- 진행코드에 '41'(2차고지발송)을 세팅한다.
ELSIF cnv_send_date_2 IS NOT NULL THEN
t_motion_id := '41' ;
-- 납부고지서반송일자를 체크하여 NULL이 아니면,
-- 진행코드에 '32'(1차고지반송)을 세팅한다.
ELSIF cnv_return_date_1 IS NOT NULL THEN
t_motion_id := '32' ;
-- 납부고지서발송일자를 체크하여 NULL이 아니면,
-- 진행코드에 '31'(1차고지발송)을 세팅한다.
ELSIF cnv_send_date_1 IS NOT NULL THEN
t_motion_id := '31' ;
END IF;
BEGIN
-- ******************************************** --
-- 미납차량판독정보
-- ******************************************** --
INSERT INTO DEFAULT_FARE_READ_INFO
(
worker_id,
fare_office_id,
booth_id,
year,
month,
day,
work_times,
collect_id,
reading_id,
car_no,
car_type_name,
cars_move_picture_file,
cars_stop_picture_file,
read_kbn,
reading_date,
reader,
read_result_id,
reading_reason,
exempt_reason_id,
lavy_notice_id,
notconfirm_id,
remarks,
cars_data_kbn,
create_date,
creater,
update_date,
updater,
owner,
resident_no,
resident_date
)
VALUES
(
cnv_worker_id,
cnv_fare_office_id,
'01',
cnv_pass_yyyy,
cnv_pass_mm,
cnv_pass_dd,
cnv_pass_time,
'40',
'30',
cnv_car_no,
cnv_resident_date,
NULL,
NULL,
'0',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
'3',
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER',
cnv_owner,
'1111111111',
cnv_resident_date
) ;
END ;
-- ******************************************** --
-- * 과태료Head정보
-- ******************************************** --
phi_send_1 := SUBSTR(cnv_car_no,5,2);
phi_send_2 := SUBSTR(cnv_car_no,5,1);
-- --------------------------------------------------
IF LENGTH(TRIM(cnv_car_no)) = 12 THEN
--
OPEN cur_1 ( phi_send_1 ) ;
FETCH cur_1 INTO rec_1 ;
IF cur_1%NOTFOUND THEN
phi_cars_type_id := NULL;
ELSE
phi_cars_type_id := rec_1.cars_type_id;
END IF;
CLOSE cur_1 ;
ELSIF LENGTH(TRIM(cnv_car_no)) = 11 THEN
--
OPEN cur_2 ( phi_send_2 ) ;
FETCH cur_2 INTO rec_2 ;
IF cur_2%NOTFOUND THEN
phi_cars_type_id := NULL;
ELSE
phi_cars_type_id := rec_2.cars_type_id;
END IF;
CLOSE cur_2 ;
END IF;
BEGIN
-- --------------------------------------------------
-- 과태료Head정보 테이블에 입력
INSERT INTO PENALTY_HEAD_INFO
(
car_no,
resident_date,
owner,
resident_no,
owner_type_id,
car_type_id,
car_type_name,
max_carry_capacity,
disuse_date,
receive_amount,
post_no1,
post_no2,
after_cars_number_1,
after_cars_number_2,
address_name,
address_number,
panalty_count,
penalty_amount,
create_date,
creater,
update_date,
updater
)
VALUES
(
cnv_car_no,
cnv_resident_date,
cnv_owner,
'1111111111',
NULL,
phi_cars_type_id,
cnv_car_type_name,
NULL,
NULL,
0,
cnv_post_no1,
cnv_post_no2,
NULL,
NULL,
cnv_address_name,
cnv_address_number,
0,
0,
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER'
) ;
END;
-- ******************************************** --
-- * 과태료Detail정보
-- ******************************************** --
-- --------------------------------------------------
-- 징수금액을 계산한다.
pdi_lavy_amount := TO_NUMBER(cnv_pass_amount) + TO_NUMBER(cnv_fine_amount);
-- --------------------------------------------------
-- 고지불가구분을 알아낸다.
IF cnv_notice_wrong_id IS NOT NULL THEN
pdi_notice_wrong_id := '01';
ELSE
pdi_notice_wrong_id := NULL;
END IF;
-- --------------------------------------------------
-- 압류여부를 알아낸다.
IF cnv_seizure_date IS NOT NULL THEN
pdi_seizure_yn := '1';
ELSE
pdi_seizure_yn := '0';
END IF;
-- --------------------------------------------------
-- 압류해지구분을 알아낸다.
IF cnv_seizure_termi_date IS NOT NULL THEN
pdi_seizure_termi_yn := '2';
ELSE
pdi_seizure_termi_yn := '0';
END IF;
BEGIN
-- --------------------------------------------------
-- 과태료Detail정보 테이블에 값을 데이터를 입력한다.
INSERT INTO PENALTY_DETAIL_INFO
(
penalty_manage_year,
penalty_seqno,
levy_manage_year,
levy_seqno,
stt_date,
collect_id,
card_issue_id,
worker_id,
fare_office_id,
booth_id,
year,
month, day,
work_times,
car_no,
owner,
resident_no,
resident_date,
seizure_manage_year,
seizure_manage_no,
pass_amount,
fine_amount,
lavy_amount,
before_motion_id,
motion_id,
notice_date,
notice_id,
notice_wrong_date,
notice_wrong_id,
notice_wrong_reason,
notice_choose_id,
seisure_yn,
seizure_date,
seizure_id,
seizure_wrong_id,
seizure_wrong_date,
seizure_wrong_reason,
seizure_termi_date,
seizure_termi,
seizure_trmi_yn,
receipt_yn,
double_receipt_yn,
double_receipt_date,
create_date,
creater,
update_date,
updater
)
VALUES
(
cnv_penalty_manage_year,
TO_NUMBER(cnv_penalty_seqno),
NULL,
NULL,
NULL,
'40',
NULL,
cnv_penalty_seqno,
cnv_fare_office_id,
'01',
cnv_pass_yyyy,
cnv_pass_mm,
cnv_pass_dd,
cnv_pass_time,
cnv_car_no,
cnv_owner,
'1111111111',
cnv_resident_date,
NULL,
NULL,
cnv_pass_amount,
cnv_fine_amount,
pdi_lavy_amount,
NULL,
t_motion_id,
cnv_send_date_1,
'1',
NULL,
pdi_notice_wrong_id,
cnv_notice_wrong_reason,
NULL,
pdi_seizure_yn,
cnv_seizure_date,
NULL,
'01',
NULL,
NULL,
cnv_seizure_termi_date,
NULL,
pdi_seizure_termi_yn,
0,
0,
NULL,
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER' ) ;
END;
-- ******************************************** --
-- 발송정보
-- ******************************************** --
IF cnv_return_date_1 IS NOT NULL THEN
DECLARE
-- ----------------------------------------
-- 커서를 선언한다.
-- ----------------------------------------
CURSOR cur_4 IS
SELECT MAX(send_no)+1 AS MAX_NUM
FROM SEND_INFO ;
rec_4 cur_4%ROWTYPE ;
--
CURSOR cur_5 IS
SELECT ADD_MONTHS(TO_DATE(cnv_send_date_1,'YYYYMMDD'),1) AS MON_V
FROM DUAL ;
rec_5 cur_5%ROWTYPE ;
-- ----------------------------------------
t_return_kbn SEND_INFO.return_kbn%TYPE ; -- 반송여부
t_max_num SEND_INFO.SEND_NO%TYPE ; -- 최대값
t_delivery_d SEND_INFO.DELIVERY_DATE%TYPE ; -- 반송여부
BEGIN
-- ----------------------------------------
-- 반송사유코드를 참조하여 반송여부를 알아낸다.
IF cnv_return_kbn IS NOT NULL THEN
t_return_kbn := '2';
ELSE
t_return_kbn := '1';
END IF ;
--
OPEN cur_4 ;
FETCH cur_4 INTO rec_4 ;
t_max_num := rec_4.MAX_NUM;
CLOSE cur_4 ;
--
OPEN cur_5 ;
FETCH cur_5 INTO rec_5 ;
t_delivery_d := rec_5.MON_V;
CLOSE cur_5 ;
-- ----------------------------------------
-- 발송정보 테이블에 입력.
-- 아래 데이터중 4,2는 변경될 수 있슴
INSERT INTO SEND_INFO
( penalty_manage_year,
penalty_seqno,
motion_id,
send_date,
send_no,
post_kbn,
delivery_date,
return_kbn,
create_date,
creater,
update_date,
updater )
VALUES ( cnv_penalty_manage_year,
TO_NUMBER(cnv_penalty_seqno),
t_motion_id,
cnv_send_date_1,
t_max_num,
'2',
t_delivery_d,
t_return_kbn,
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER' ) ;
--
IF cnv_return_kbn IS NOT NULL THEN
-- ******************************************** --
-- 반송정보
-- ******************************************** --
DECLARE
-- ----------------------------------------
-- 커서를 선언한다.
-- ----------------------------------------
-- 발송정보테이블에서 발송번호를 구한다.
CURSOR cur_3 (v_penalty_manage_year CHAR, v_penalty_seqno CHAR)IS
SELECT send_no
FROM SEND_INFO
WHERE penalty_manage_year = v_penalty_manage_year
AND penalty_seqno = v_penalty_seqno ;
rec_3 cur_3%ROWTYPE ;
--
t_send_no SEND_INFO.send_no%TYPE ; -- 발송번호
BEGIN
-- ----------------------------------------
-- 발송번호 구하기.
OPEN cur_3 (cnv_penalty_manage_year, cnv_penalty_seqno) ;
FETCH cur_3 INTO rec_3 ;
t_send_no := rec_3.send_no;
CLOSE cur_3 ;
-- ----------------------------------------
-- 반송정보테이블에 입력.
INSERT INTO RETURN_INFO
( penalty_manage_year,
penalty_seqno,
motion_id,
send_date,
send_no,
retuen_date,
return_reason_id,
create_date,
creater,
update_date,
updater )
VALUES ( cnv_penalty_manage_year,
TO_NUMBER(cnv_penalty_seqno),
t_motion_id,
cnv_send_date_1 ,
t_send_no,
cnv_return_date_1,
cnv_return_kbn,
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER' ) ;
END ;
END IF;
END ;
END IF ;
-- ******************************************** --
-- 수납정보
-- ******************************************** --
IF cnv_receipt_date IS NOT NULL THEN
DECLARE
-- --------------------------------------------------
t_receipt_id RECEIPT_INFO.receipt_id%TYPE ; -- 수납구분코드( 납부완료부호에 의한 구분 )
v_plus NUMBER ;
BEGIN
v_plus := 0;
-- --------------------------------------------------
-- 납부완료부호에 의한 구분에 의해 수납구분코드를 결정한다.
IF cnv_receipt_process_kbn = '1' THEN
t_receipt_id := '31';
ELSIF cnv_receipt_process_kbn = '2' THEN
t_receipt_id := '41';
ELSIF cnv_receipt_process_kbn = '3' THEN
t_receipt_id := '61';
ELSIF cnv_receipt_process_kbn = '9' THEN
t_receipt_id := '99';
END IF;
-- --------------------------------------------------
v_plus := TO_NUMBER(cnv_pass_amount)+TO_NUMBER(cnv_fine_amount);
-- --------------------------------------------------
INSERT INTO RECEIPT_INFO
( penalty_manage_year,
penalty_seqno,
receipt_date,
receipt_id,
receipt_amount,
receipt_agency,
receipt_process_kbn,
create_date,
creater,
update_date,
updater )
VALUES ( cnv_penalty_manage_year,
TO_NUMBER(cnv_penalty_seqno),
cnv_receipt_date,
t_receipt_id,
v_plus,
cnv_receipt_agency,
'1',
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER' ) ;
END ;
END IF ;
-- ******************************************** --
-- 압류정보
-- ******************************************** --
IF cnv_seizure_date IS NOT NULL THEN
DECLARE
-- --------------------------------------------------
-- 커서(cur_6)를 선언한다.
-- 과태료일련번호를 최대번호를 채번하여 더하기 1한다.
CURSOR cur_6 IS
SELECT MAX(seizure_manage_no)+1 AS MAX_NUM
FROM SEIZURE_INFO ;
rec_6 cur_6%ROWTYPE ;
-- --------------------------------------------------
-- 과태료일련번호에 세팅하는 변수를 선언한다.
t_max_num SEIZURE_INFO.SEIZURE_MANAGE_NO%TYPE ;
-- --------------------------------------------------
-- 통행료와 과태료를 합하는 변수를 선언한다.
seizure_plus NUMBER := 0;
BEGIN
-- --------------------------------------------------
-- 커서(cur_6)를 오픈하여 데이터를 가져온다.
OPEN cur_6 ;
FETCH cur_6 INTO rec_6 ;
t_max_num := rec_6.MAX_NUM;
CLOSE cur_6 ;
-- --------------------------------------------------
-- 통행료와 과태료를 합하는 변수를 선언한다.
seizure_plus := TO_NUMBER(cnv_pass_amount)+TO_NUMBER(cnv_fine_amount);
-- ----------------------------------------
-- 압류정보테이블에 자료를 입력한다.
INSERT INTO SEIZURE_INFO
(
seizure_manage_year,
seizure_manage_no,
work_number,
seizure_organ_name,
COUNT,
seizure_amount,
create_date,
creater,
update_date,
updater
)
VALUES
(
cnv_seizure_date,
t_max_num,
NULL, NULL,
0,
seizure_plus,
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER' ) ;
END ;
END IF ;
--
COMMIT ;
pn_rc := 0 ; -- 정상의 경우
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := -1 ; -- 비정상의 경우
out_penalty_manage_year := cnv_penalty_manage_year ;
out_penalty_seqno := cnv_penalty_seqno ;
out_worker_id := cnv_worker_id ;
out_fare_office_id := cnv_fare_office_id ;
out_pass_yyyy := cnv_pass_yyyy ;
out_pass_mm := cnv_pass_mm ;
out_pass_dd := cnv_pass_dd ;
out_pass_yyyymmdd := cnv_pass_yyyymmdd ;
out_pass_time := cnv_pass_time ;
out_car_no := cnv_car_no ;
out_owner := cnv_owner ;
out_car_type_name := cnv_car_type_name ;
out_resident_date := cnv_resident_date ;
out_address_name := cnv_address_name ;
out_address_number := cnv_address_number ;
out_post_no1 := cnv_post_no1 ;
out_post_no2 := cnv_post_no2 ;
out_send_date_1 := cnv_send_date_1 ;
out_return_date_1 := cnv_return_date_1 ;
out_send_date_2 := cnv_send_date_2 ;
out_return_date_2 := cnv_return_date_2 ;
out_send_date_3 := cnv_send_date_3 ;
out_return_date_3 := cnv_return_date_3 ;
out_seizure_date := cnv_seizure_date ;
out_seizure_yyyy := cnv_seizure_yyyy ;
out_seizure_termi_date := cnv_seizure_termi_date ;
out_notice_wrong_id := cnv_notice_wrong_id ;
out_notice_wrong_reason := cnv_notice_wrong_reason ;
out_pass_amount := cnv_pass_amount ;
out_fine_amount := cnv_fine_amount ;
out_receipt_process_kbn := cnv_receipt_process_kbn ;
out_receipt_date := cnv_receipt_date ;
out_receipt_agency := cnv_receipt_agency ;
out_return_kbn := cnv_return_kbn ;
END ;
--END proc_main;
END Pbc_Conv_1;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.Pbc_Conv AS
/*==============================================================================*/
/* 프로시져명 : Proc_main (DATA Convert)
/*
/* 작 성 자 : 이용현
/* 작성일자 : 2002년 12월 8일
/* Copyright(C) 2002 T.S.W Corporation. All Rights Reserved.
/*==============================================================================*/
PROCEDURE proc_main (
in_penalty_manage_year IN CHAR, -- 과태료관리년도( col:1-2 )
in_penalty_seqno IN CHAR, -- 과태료일련번호( col:3-8 )
in_fare_office_id IN CHAR, -- 요금소코드( 현장사무소구분,col:9-10 ),
in_pass_yyyy IN CHAR, -- 통행일자:년( col:11-14 )
in_pass_mm IN CHAR, -- 통행일자:월( col:15-16 )
in_pass_dd IN CHAR, -- 통행일자:일( col:17-18 )
in_pass_time IN CHAR, -- 통행시간:시분( col:19-22 )
in_car_no IN VARCHAR2, -- 차량번호( col:23-37 )
in_owner IN VARCHAR2, -- 차량소유자성명( col:38-67 )
in_car_type_name IN VARCHAR2, -- 차종명( col:68-87 )
in_resident_date IN CHAR, -- 차량등록일자(년월일)( col:88-95 )
in_address_name IN VARCHAR2, -- 현주소( col:97-140 )
in_address_number IN VARCHAR2, -- 현주소 번지( col:141-200 )
in_post_no1 IN CHAR, -- 우편번호:지역( col:201-203 )
in_post_no2 IN CHAR, -- 우편번호:구분( col:204-206 )
in_send_date_1 IN CHAR, -- 1차, 고지일자(년월일)발송일자( col:207-214 )
in_return_date_1 IN CHAR, -- 1차, 반송일자( col:215-222 )
in_send_date_2 IN CHAR, -- 2차, 고지일자(년월일)발송일자( col:223-230 )
in_return_date_2 IN CHAR, -- 3차, 반송일자( col:231-238 )
in_send_date_3 IN CHAR, -- 발송일자(압류촉탁,년월일)( col:239-246 )
in_return_date_3 IN CHAR, -- 반송일자(압류촉탁,년월일)( col:247-254 )
in_seizure_date IN CHAR, -- 압류일자( col:255-262 )
in_seizure_yyyy IN CHAR, -- 압류일자(년)( col:255-258 )
in_seizure_termi_date IN CHAR, -- 압류해지일자( col:263-270 )
in_seizure_wrong_id IN CHAR, -- 압류불가구분( col:272 )
in_notice_wrong_id IN CHAR, -- 고지취소/불가구분( col:272 )
in_notice_wrong_reason IN VARCHAR2, -- 고치쥐소/불가사유( col:273-292 )
in_pass_amount IN VARCHAR2, -- 통행료( col:293-297 )
in_fine_amount IN VARCHAR2, -- 과태료( col:298-303 )
in_receipt_process_kbn IN CHAR, -- 납부완료부호( col:304 )
in_receipt_date IN CHAR, -- 납부완료일자( col:305-312 )
in_work_name IN VARCHAR2, -- 현장업무담당자( col:305-312 )
in_receipt_agency IN VARCHAR2, -- 납부장소명칭(은행)( col:323-352 )
in_return_kbn IN CHAR, -- 반송사유코드( col:372 )
in_return_id IN CHAR, -- 반송고지코드( col:372 )
pn_rc OUT NUMBER --
) IS
-- ----------------------------------------
-- 변수를 선언한다.
-- ----------------------------------------
t_penalty_manage_year PENALTY_DETAIL_INFO.PENALTY_MANAGE_YEAR%TYPE ; -- 과태료관리년도
t_penalty_seqno PENALTY_DETAIL_INFO.PENALTY_SEQNO%TYPE ; -- 과태료일련번호
t_fare_office_id DEFAULT_FARE_READ_INFO.FARE_OFFICE_ID%TYPE ; -- 요금소 코드
t_pass_yyyy DEFAULT_FARE_READ_INFO.YEAR%TYPE ; -- 년도
t_pass_mm DEFAULT_FARE_READ_INFO.MONTH%TYPE ; -- 월
t_pass_dd DEFAULT_FARE_READ_INFO.DAY%TYPE ; -- 일
t_pass_time DEFAULT_FARE_READ_INFO.WORK_TIMES%TYPE ; -- 근무시간
t_car_no PENALTY_HEAD_INFO.CAR_NO%TYPE ; -- 차량번호
t_owner PENALTY_HEAD_INFO.OWNER%TYPE ; -- 차량소유자성명
t_resident_date CHAR(8) ; -- 차량등록일자(년월일)
t_car_type_name PENALTY_HEAD_INFO.CAR_TYPE_NAME%TYPE ; -- 차종명
t_address_name PENALTY_HEAD_INFO.ADDRESS_NAME%TYPE ; -- 현주소
t_address_number PENALTY_HEAD_INFO.ADDRESS_NUMBER%TYPE ; -- 현주소 번지
t_post_no1 PENALTY_HEAD_INFO.POST_NO1%TYPE ; -- 우편번호:지역
t_post_no2 PENALTY_HEAD_INFO.POST_NO2%TYPE ; -- 우편번호:구분
t_send_date_1 CHAR(8) ; -- 1차고지 발송일자
t_return_date_1 CHAR(8) ; -- 1차고지 반송일자
t_send_date_2 CHAR(8) ; -- 2차고지 발송일자
t_return_date_2 CHAR(8) ; -- 2차고지 반송일자
t_send_date_3 CHAR(8) ; -- 발송일자(압류촉탁)
t_return_date_3 CHAR(8) ; -- 반송일자(압류촉탁)
t_seizure_date CHAR(8) ; -- 압류일자
t_seizure_yyyy CHAR(4) ; -- 압류일자(년)
t_seizure_termi_date CHAR(8) ; -- 압류해지일자
t_seizure_wrong_id PENALTY_DETAIL_INFO.SEIZURE_WRONG_ID%TYPE ; -- 압류불가구분
t_notice_wrong_id PENALTY_DETAIL_INFO.NOTICE_WRONG_ID%TYPE ; -- 고지취소/불가구분
t_notice_wrong_reason PENALTY_DETAIL_INFO.NOTICE_WRONG_REASON%TYPE ; -- 고치쥐소/불가사유
t_pass_amount PENALTY_DETAIL_INFO.PASS_AMOUNT%TYPE ; -- 통행료
t_fine_amount PENALTY_DETAIL_INFO.FINE_AMOUNT%TYPE ; -- 과태료
t_receipt_process_kbn CHAR(1) ; -- 납부완료부호
t_receipt_date CHAR(8) ; -- 납부완료일자
t_worker_name WORKER_INFO.WORKER_NAME%TYPE ; -- 근무자 명
t_receipt_agency RECEIPT_INFO.RECEIPT_AGENCY%TYPE ; -- 납부장소명칭(은행)
t_return_kbn RETURN_INFO.RETURN_REASON_ID%TYPE ; -- 반송코드
t_return_id RETURN_INFO.MOTION_ID%TYPE ; -- 반송사유코드
s_worker_id DEFAULT_FARE_READ_INFO.WORKER_ID%TYPE ; -- 근무자 ID
s_motion_id PENALTY_DETAIL_INFO.MOTION_ID%TYPE ; -- 진행코드
s_motion PENALTY_DETAIL_INFO.MOTION_ID%TYPE ; -- 진행코드(과태료DETAIL정보)
s_before_motion_id PENALTY_DETAIL_INFO.BEFORE_MOTION_ID%TYPE ; -- 이전 진행코드
s_cars_type_id PENALTY_HEAD_INFO.CAR_TYPE_ID%TYPE ; -- 차종코드
s_send_1 CHAR(2) := ' ';
s_send_2 CHAR(1) := ' ';
s_send_date CHAR(8) ;
s_return_reason_id CHAR(2) ;
s_return_kbn CHAR(1) ;
s_seizure_wrong_id CHAR(2) ;
s_receipt_id CHAR(1) := '' ;
s_notice_wrong_id CHAR(2) ;
s_seizure_year CHAR(4) ;
s_seizure_flg CHAR(1) := '' ;
s_receipt_flg CHAR(1) := '' ;
l_seizure_count NUMBER ;
l_seizure_amount NUMBER ;
l_seizure_no NUMBER ;
l_RECEIVE_AMOUNT NUMBER ;
l_PANALTY_COUNT NUMBER ;
l_PENALTY_AMOUNT NUMBER ;
l_lavy_amount NUMBER ;
l_Count NUMBER ;
l_send_no NUMBER ;
-- ----------------------------------------
-- 커서를 선언한다.
-- ----------------------------------------
-- 과태료 HEAD 정보를 확인한다.
CURSOR CUR_Penalty_head ( t_car_no IN VARCHAR2, -- 차량번호
t_owner IN VARCHAR2, -- 차량소유자성명
t_resident_date IN CHAR -- 차량등록일자(년월일)
) IS
SELECT OWNER,
CAR_NO,
RESIDENT_DATE,
RECEIVE_AMOUNT,
PANALTY_COUNT,
PENALTY_AMOUNT
FROM PENALTY_HEAD_INFO
WHERE CAR_NO = t_car_no
AND RESIDENT_DATE = TO_DATE(t_resident_date, 'yyyymmdd')
AND OWNER = t_owner ;
REC_Penalty_head CUR_Penalty_head%ROWTYPE ;
-- 차종코드 정보를 확인한다(차량번호가 12자리인 경우).
CURSOR CUR_Car_Type1 ( s_send_1 IN CHAR ) IS
SELECT CARS_TYPE_ID
FROM CARS_TYPE_CODE_INFO
WHERE USE_YN = '0'
AND (STT_FNO <= s_send_1
AND END_FNO >= s_send_1 ) ;
REC_Car_Type1 CUR_Car_Type1%ROWTYPE ;
-- 차종코드 정보를 확인한다(차량번호가 11자리인 경우).
CURSOR CUR_Car_Type2 ( s_send_2 IN CHAR ) IS
SELECT CARS_TYPE_ID
FROM CARS_TYPE_CODE_INFO
WHERE USE_YN = '0'
AND (STT_SNO <= s_send_2
AND END_SNO >= s_send_2 ) ;
REC_Car_Type2 CUR_Car_Type2%ROWTYPE ;
-- 압류 정보를 확인한다.
CURSOR CUR_SEIZURE ( t_car_no IN VARCHAR2, -- 차량번호
t_owner IN VARCHAR2, -- 차량소유자성명
t_resident_date IN CHAR -- 차량등록일자(년월일)
) IS
SELECT C.SEIZURE_MANAGE_YEAR,
C.SEIZURE_MANAGE_NO,
C.COUNT,
C.SEIZURE_AMOUNT
FROM PENALTY_HEAD_INFO A,
PENALTY_DETAIL_INFO B,
SEIZURE_INFO C
WHERE A.CAR_NO = t_car_no
AND A.RESIDENT_DATE = TO_DATE(t_resident_date, 'yyyymmdd')
AND A.OWNER = t_owner
AND A.CAR_NO = B.CAR_NO
AND A.RESIDENT_DATE = B.RESIDENT_DATE
AND A.OWNER = B.OWNER
AND B.SEIZURE_MANAGE_YEAR = C.SEIZURE_MANAGE_YEAR
AND B.SEIZURE_MANAGE_NO = C.SEIZURE_MANAGE_NO ;
REC_SEIZURE CUR_SEIZURE%ROWTYPE ;
-- 압류 정보의 일련번호를 확인한다.
CURSOR CUR_SEIZURE_NO ( s_seizure_year IN VARCHAR2 ) IS -- 압류 관리년도
SELECT MAX(SEIZURE_MANAGE_NO) l_count
FROM SEIZURE_INFO
WHERE SEIZURE_MANAGE_YEAR = s_seizure_year ;
REC_SEIZURE_NO CUR_SEIZURE_NO%ROWTYPE ;
-- 미납판독 정보를 확인한다.
CURSOR CUR_DEFAULT_READ ( s_worker_id IN CHAR, -- 근로자ID
t_fare_office_id IN CHAR, -- 요금소코드
t_pass_yyyy IN CHAR, -- 통행일자:년
t_pass_mm IN CHAR, -- 통행일자:월
t_pass_dd IN CHAR, -- 통행일자:일
t_pass_time IN CHAR -- 통행시간:시분
) IS
SELECT COUNT(*) l_Count
FROM DEFAULT_FARE_READ_INFO
WHERE WORKER_ID = s_worker_id
AND FARE_OFFICE_ID = t_fare_office_id
AND YEAR = t_pass_yyyy
AND MONTH = t_pass_mm
AND DAY = t_pass_dd
AND WORK_TIMES = t_pass_time ;
REC_DEFAULT_READ CUR_DEFAULT_READ%ROWTYPE ;
-- 과태료DETAIL 정보를 확인한다.
CURSOR CUR_PENALTY_DETAIL (t_penalty_manage_year IN CHAR, -- 과태료관리년도
t_penalty_seqno IN CHAR -- 과태료일련번호
) IS
SELECT COUNT(*) l_Count
FROM PENALTY_DETAIL_INFO
WHERE PENALTY_MANAGE_YEAR = t_penalty_manage_year
AND PENALTY_SEQNO = TO_NUMBER(t_penalty_seqno) ;
REC_PENALTY_DETAIL CUR_PENALTY_DETAIL%ROWTYPE ;
-- 근무자를 확인한다.
CURSOR CUR_WORKER ( t_work_name IN VARCHAR2 -- 현장업무담당자
) IS
SELECT WORKER_ID
FROM WORKER_INFO
WHERE WORKER_NAME = t_work_name ;
REC_WORKER CUR_WORKER%ROWTYPE ;
-- 발송정보의 발송건수를 확인한다.
CURSOR CUR_SEND ( s_send_date IN CHAR ) IS
SELECT MAX(SEND_NO) l_count
FROM SEND_INFO
WHERE TO_CHAR(SEND_DATE, 'yyyy') = SUBSTR(s_send_date, 1, 4) ;
REC_SEND CUR_SEND%ROWTYPE ;
BEGIN
dbms_output.ENABLE;
-- Return값을 Setting한다.
pn_rc := 0 ; -- 정상처리
t_penalty_manage_year := RTRIM(in_penalty_manage_year) ;
t_penalty_seqno := RTRIM(in_penalty_seqno) ;
t_fare_office_id := RTRIM(in_fare_office_id) ;
t_pass_yyyy := RTRIM(in_pass_yyyy) ;
t_pass_mm := RTRIM(in_pass_mm) ;
t_pass_dd := RTRIM(in_pass_dd) ;
t_pass_time := RTRIM(in_pass_time) ;
t_car_no := RTRIM(in_car_no) ;
t_owner := RTRIM(in_owner) ;
t_resident_date := RTRIM(in_resident_date) ;
t_car_type_name := RTRIM(in_car_type_name) ;
t_address_name := RTRIM(in_address_name) ;
t_address_number := RTRIM(in_address_number) ;
t_post_no1 := RTRIM(in_post_no1) ;
t_post_no2 := RTRIM(in_post_no2) ;
t_send_date_1 := RTRIM(in_send_date_1) ;
t_return_date_1 := RTRIM(in_return_date_1) ;
t_send_date_2 := RTRIM(in_send_date_2) ;
t_return_date_2 := RTRIM(in_return_date_2) ;
t_send_date_3 := RTRIM(in_send_date_3) ;
t_return_date_3 := RTRIM(in_return_date_3) ;
t_seizure_date := RTRIM(in_seizure_date) ;
t_seizure_yyyy := RTRIM(in_seizure_yyyy) ;
t_seizure_termi_date := RTRIM(in_seizure_termi_date) ;
t_seizure_wrong_id := RTRIM(in_seizure_wrong_id) ;
t_notice_wrong_id := RTRIM(in_notice_wrong_id) ;
t_notice_wrong_reason := RTRIM(in_notice_wrong_reason) ;
t_pass_amount := TO_NUMBER(in_pass_amount) ;
t_fine_amount := TO_NUMBER(in_fine_amount) ;
t_receipt_process_kbn := RTRIM(in_receipt_process_kbn) ;
t_receipt_date := RTRIM(in_receipt_date) ;
t_worker_name := RTRIM(in_work_name) ;
t_receipt_agency := RTRIM(in_receipt_agency) ;
t_return_kbn := RTRIM(in_return_kbn) ;
t_return_id := RTRIM(in_return_id) ;
-- s_worker_id := RTRIM(in_worker_id) ;
-- 징수금액 산출
l_lavy_amount := t_pass_amount + t_fine_amount ;
-- 압류불가구분코드 변환
IF t_seizure_wrong_id = '1' THEN s_seizure_wrong_id := '01' ;
ELSIF t_seizure_wrong_id = '2' THEN s_seizure_wrong_id := '02' ;
ELSIF t_seizure_wrong_id = '3' THEN s_seizure_wrong_id := '03' ;
ELSIF t_seizure_wrong_id = '9' THEN s_seizure_wrong_id := '09' ;
ELSE s_seizure_wrong_id := '' ;
END IF ;
-- 반송사유코드 변환
IF t_return_kbn = '1' THEN s_return_reason_id := '01' ;
ELSIF t_return_id = '2' THEN s_return_reason_id := '02' ;
ELSIF t_return_id = '3' THEN s_return_reason_id := '03' ;
ELSIF t_return_id = '4' THEN s_return_reason_id := '04' ;
ELSIF t_return_id = '5' THEN s_return_reason_id := '05' ;
ELSE s_return_reason_id := '' ;
END IF ;
-- 납부완료처리코드 변환
IF t_receipt_process_kbn = '1' THEN s_receipt_id := '1' ;
ELSIF t_receipt_process_kbn = '2' THEN s_receipt_id := '2' ;
ELSIF t_receipt_process_kbn = '3' THEN s_receipt_id := '3' ;
ELSIF t_receipt_process_kbn = '9' THEN s_receipt_id := '9' ;
ELSE s_receipt_id := '0' ;
END IF ;
-- 고지취소/불가코드 변환
IF t_notice_wrong_id = '1' THEN s_notice_wrong_id := '01' ;
ELSIF t_notice_wrong_id = '2' THEN s_notice_wrong_id := '02' ;
ELSIF t_notice_wrong_id = '3' THEN s_notice_wrong_id := '03' ;
ELSIF t_notice_wrong_id = '9' THEN s_notice_wrong_id := '09' ;
ELSE s_notice_wrong_id := '' ;
END IF ;
-- 근무자 정보에서 근무자 ID를 산출한다.
BEGIN
OPEN CUR_WORKER ( t_worker_name ) ;
FETCH CUR_WORKER INTO REC_WORKER ;
CLOSE CUR_WORKER ;
s_worker_id := REC_WORKER.WORKER_ID ;
EXCEPTION
WHEN OTHERS THEN
IF CUR_WORKER%ISOPEN THEN
CLOSE CUR_WORKER ;
END IF ;
pn_rc := 101 ; -- 근무자 정보 오류
RAISE ;
END;
-- 발송 정보에서 번송번호를 축출한다.
OPEN CUR_SEND ( t_send_date_1 ) ;
FETCH CUR_SEND INTO REC_SEND ;
CLOSE CUR_SEND ;
l_send_no := REC_SEND.l_Count ;
IF TO_CHAR(l_send_no) IS NULL OR TO_CHAR(l_send_no) = '' THEN
l_send_no := 0 ;
END IF ;
-- 압류 정보를 확인하여 존재하는 경우 압류관리년도 및 일련번호를 축출한다.
IF t_seizure_date <> 'A' THEN
BEGIN
OPEN CUR_SEIZURE ( t_car_no, t_owner, t_resident_date ) ;
FETCH CUR_SEIZURE INTO REC_SEIZURE ;
IF CUR_SEIZURE%NOTFOUND THEN
OPEN CUR_SEIZURE_NO ( t_seizure_yyyy ) ;
FETCH CUR_SEIZURE_NO INTO REC_SEIZURE_NO ;
CLOSE CUR_SEIZURE_NO ;
l_seizure_no := REC_SEND.l_Count ;
IF TO_CHAR(l_seizure_no) IS NULL OR TO_CHAR(l_seizure_no) = '' THEN
l_seizure_no := 0 ;
END IF ;
s_seizure_flg := '1' ;
s_seizure_year := t_seizure_yyyy ;
l_seizure_count := 0 ;
l_seizure_amount := 0 ;
ELSE
s_seizure_flg := '2' ;
s_seizure_year := REC_SEIZURE.SEIZURE_MANAGE_YEAR ;
l_seizure_no := REC_SEIZURE.SEIZURE_MANAGE_NO ;
l_seizure_count := REC_SEIZURE.SEIZURE_MANAGE_NO ;
l_seizure_amount := REC_SEIZURE.SEIZURE_MANAGE_NO ;
END IF ;
CLOSE CUR_SEIZURE ;
EXCEPTION
WHEN OTHERS THEN
IF CUR_SEIZURE%ISOPEN THEN
CLOSE CUR_SEIZURE ;
END IF ;
pn_rc := 102 ; -- 압류 정보 오류
RAISE ;
END ;
ELSE
s_seizure_flg := '0' ;
END IF ;
-- ******************************************** --
-- * 과태료Head정보
-- ******************************************** --
-- 차종코드를 확인한다.
s_send_1 := SUBSTR(in_car_no,5,2);
s_send_2 := SUBSTR(in_car_no,5,1);
-- --------------------------------------------------
-- 차량번호가 12자리인 경우의 처리
IF LENGTH(TRIM(in_car_no)) = 12 THEN
OPEN CUR_Car_Type1 ( s_send_1 ) ;
FETCH CUR_Car_Type1 INTO REC_Car_Type1 ;
IF CUR_Car_Type1%NOTFOUND THEN
s_cars_type_id := '4';
ELSE
s_cars_type_id := REC_Car_Type1.cars_type_id;
END IF;
CLOSE CUR_Car_Type1 ;
-- 차량번호기 11자리인 경우의 처리
ELSIF LENGTH(TRIM(in_car_no)) = 11 THEN
OPEN CUR_Car_Type2 ( s_send_2 ) ;
FETCH CUR_Car_Type2 INTO REC_Car_Type2;
IF CUR_Car_Type2%NOTFOUND THEN
s_cars_type_id := '4';
ELSE
s_cars_type_id := REC_Car_Type2.cars_type_id;
END IF;
CLOSE CUR_Car_Type2 ;
END IF;
-- 과태료 HEAD정보를 확인한다.
BEGIN
OPEN CUR_Penalty_head ( t_car_no, t_owner, t_resident_date ) ;
FETCH CUR_Penalty_head INTO REC_Penalty_head ;
IF CUR_Penalty_head%NOTFOUND THEN
l_RECEIVE_AMOUNT := 0 ;
l_PANALTY_COUNT := 0 ;
l_PENALTY_AMOUNT := 0 ;
ELSE
l_RECEIVE_AMOUNT := REC_Penalty_head.RECEIVE_AMOUNT ;
l_PANALTY_COUNT := REC_Penalty_head.PANALTY_COUNT ;
l_PENALTY_AMOUNT := REC_Penalty_head.PENALTY_AMOUNT ;
END IF ;
CLOSE CUR_Penalty_head ;
EXCEPTION
WHEN OTHERS THEN
IF CUR_Penalty_head%ISOPEN THEN
CLOSE CUR_Penalty_head ;
END IF ;
pn_rc := 102 ; -- 과태료HEAD 정보 오류
RAISE ;
END;
-- 수납여부에 따라 수납금액에 합산한다.
IF s_receipt_id = '0' THEN
l_RECEIVE_AMOUNT := l_RECEIVE_AMOUNT + 0 ;
ELSE
l_RECEIVE_AMOUNT := l_RECEIVE_AMOUNT + TO_NUMBER(t_pass_amount) + TO_NUMBER(t_fine_amount) ;
END IF ;
l_PANALTY_COUNT := l_PANALTY_COUNT + 1 ;
l_PENALTY_AMOUNT := l_PENALTY_AMOUNT + TO_NUMBER(t_pass_amount) + TO_NUMBER(t_fine_amount) ;
-- --------------------------------------------------
--dbms_output.put_line('l_RECEIVE_AMOUNT1= '||l_RECEIVE_AMOUNT);
--dbms_output.put_line('l_PANALTY_COUNT = '||l_PANALTY_COUNT);
--dbms_output.put_line('l_PENALTY_AMOUNT= '||l_PENALTY_AMOUNT);
-- 과태료Head정보 테이블에 입력
IF REC_Penalty_head.OWNER IS NULL THEN
-- 존재하지 않는 경우의 처리
BEGIN
INSERT INTO PENALTY_HEAD_INFO (
car_no, -- 차량번호
resident_date, -- 등록일자
owner, -- 소유자
resident_no, -- 주민등록번호
owner_type_id, -- 소유형태코드
car_type_id, -- 차종코드
car_type_name, -- 차종명
max_carry_capacity, -- 최대적재량
--disuse_date, -- 폐차일자
receive_amount, -- 수납금액
post_no1, -- 우편번호1
post_no2, -- 우편번호2
after_cars_number_1, -- 후 번호1
after_cars_number_2, -- 후 번호2
address_name, -- 현 주소
address_number, -- 현 주소번지
panalty_count, -- 건수
penalty_amount, -- 과태료
create_date, -- 작성일자
creater, -- 작성자
update_date, -- 수정일자
updater -- 수정자
)
VALUES (
t_car_no, -- 차량번호
TO_DATE(t_resident_date, 'yyyymmdd'),
-- 등록일자
t_owner, -- 소유자
'1111111111', -- 주민등록번호
NULL, -- 소유형태코드
s_cars_type_id, -- 차종코드
t_car_type_name, -- 차종명
NULL, -- 최대적재량
--NULL, -- 폐차일자
l_RECEIVE_AMOUNT, -- 수납금액
t_post_no1, -- 우편번호 1
t_post_no2, -- 우편번호 2
NULL, -- 후 번호1
NULL, -- 후 번호 2
t_address_name, -- 주소
t_address_number, -- 주소 번지
l_PANALTY_COUNT, -- 건수
l_PENALTY_AMOUNT, -- 과태료
SYSDATE, -- 작성일자
'CONVERTER', -- 작성자
SYSDATE, -- 수정일자
'CONVERTER' -- 수정자
) ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 201 ; -- 과태료HEAD 정보 오류
RAISE ;
END;
ELSE
-- 존재하는 경우의 처리
BEGIN
UPDATE PENALTY_HEAD_INFO
SET receive_amount = l_RECEIVE_AMOUNT, -- 수납금액
panalty_count = l_PANALTY_COUNT, -- 건수
penalty_amount = l_PENALTY_AMOUNT -- 과태료
WHERE CAR_NO = t_car_no
AND OWNER = t_owner
AND RESIDENT_DATE = TO_DATE(t_resident_date, 'yyyymmdd') ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 202 ; -- 과태료HEAD 정보 오류
RAISE ;
END;
END IF ;
-- ******************************************** --
-- 미납차량판독정보
-- ******************************************** --
-- 미납차량판독정보를 확인한다.
OPEN CUR_DEFAULT_READ ( s_worker_id, t_fare_office_id, t_pass_yyyy,
t_pass_mm, t_pass_dd, t_pass_time ) ;
FETCH CUR_DEFAULT_READ INTO REC_DEFAULT_READ ;
CLOSE CUR_DEFAULT_READ ;
IF REC_DEFAULT_READ.l_count = 0 THEN
BEGIN
INSERT INTO DEFAULT_FARE_READ_INFO (
worker_id, -- 근무자ID
fare_office_id, -- 요금소코드
booth_id, -- 차로코드
year, -- 년도
month, -- 월
day, -- 일
work_times, -- 근무시간
collect_id, -- 징수유향코드
reading_id, -- 판독구분코드
car_no, -- 차량번호
car_type_name, -- 차종명
cars_move_picture_file, -- 차량동영상정보
cars_stop_picture_file, -- 차량정지영상정보
read_kbn, -- 판독구분
--reading_date, -- 판독일자
reader, -- 판독자
read_result_id, -- 판독결과코드
reading_reason, -- 판독사유
exempt_reason_id, -- 면제사유코드
lavy_notice_id, -- 부과예고구분코드
notconfirm_id, -- 확인불가코드
remarks, -- 특기사항
cars_data_kbn, -- 차적사항생성여부
create_date, -- 작성일자
creater, -- 작성자
update_date, -- 수정일자
updater, -- 수정자
owner, -- 소유자
resident_no, -- 주민등록번호
resident_date -- 등록일자
)
VALUES (
s_worker_id,
t_fare_office_id,
'01',
t_pass_yyyy,
t_pass_mm,
t_pass_dd,
t_pass_time,
'40',
'30',
t_car_no,
t_car_type_name,
NULL,
NULL,
'1',
--NULL,
NULL,
'03',
NULL,
NULL,
NULL,
NULL,
NULL,
'3',
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER',
t_owner,
'1111111111',
TO_DATE(t_resident_date, 'yyyymmdd')
) ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 203 ; -- 미납판독업무 정보 오류
RAISE ;
END ;
END IF ;
-- ******************************************** --
-- 과태료 DETAIL정보
-- ******************************************** --
-- 과태료DETAIL정보를 확인한다.
OPEN CUR_PENALTY_DETAIL ( t_penalty_manage_year, t_penalty_seqno ) ;
FETCH CUR_PENALTY_DETAIL INTO REC_PENALTY_DETAIL ;
CLOSE CUR_PENALTY_DETAIL ;
IF REC_PENALTY_DETAIL.l_Count = 0 THEN
-- 1차고지서 발송처리
--발송번호를 증가시킨다.
l_send_no := l_send_no + 1 ;
IF t_return_date_1 IS NULL OR t_return_date_1 = '' OR t_return_date_1 = 'A' THEN
s_return_kbn := '1' ;
ELSE
s_return_kbn := '2' ;
END IF ;
-- 진행코드를 정의한다.
s_before_motion_id := '' ;
s_Motion_ID := '31' ; -- 1차고지
IF s_return_kbn = '2' THEN
BEGIN
INSERT INTO RETURN_INFO (
PENALTY_MANAGE_YEAR, -- 과태료 관리년도
PENALTY_SEQNO, -- 과태료 일련번호
MOTION_ID, -- 진행코드
SEND_DATE, -- 발송일자
SEND_NO, -- 발송번호
RETUEN_DATE, -- 반송일자
RETURN_REASON_ID, -- 반송사유코드
CREATE_DATE, -- 작성일자
CREATER, -- 작성자
UPDATE_DATE, -- 수정일자
UPDATER -- 수정자
)
VALUES (
t_penalty_manage_year, -- 과태료 관리년도
TO_NUMBER(t_penalty_seqno), -- 과태료 일련번호
s_motion_id, -- 진행코드
TO_DATE(t_send_date_1, 'yyyymmdd'),
-- 발송일자
l_send_no, -- 발송번호?
TO_DATE(t_return_date_1, 'yyyymmdd'),
-- 반송일자
s_return_reason_id, -- 반납사유코드
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER'
) ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 204 ; -- 과태료DETAIL 정보 오류
RAISE ;
END ;
END IF ;
BEGIN
INSERT INTO SEND_INFO (
PENALTY_MANAGE_YEAR, -- 과태료 관리년도
PENALTY_SEQNO, -- 과태료 일련번호
MOTION_ID, -- 진행코드
SEND_DATE, -- 발송일자
SEND_NO, -- 발송번호
POST_KBN, -- 발송구분
RETURN_KBN, -- 반납여부
CREATE_DATE, -- 작성일자
CREATER, -- 작성자
UPDATE_DATE, -- 수정일자
UPDATER -- 수정자
)
VALUES (
t_penalty_manage_year, -- 과태료 관리년도
TO_NUMBER(t_penalty_seqno), -- 과태료 일련번호
s_motion_id, -- 진행코드
TO_DATE(t_send_date_1, 'yyyymmdd'),
-- 발송일자
l_send_no, -- 발송번호?
'1', -- 발송구분
s_return_kbn, -- 반납여부
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER'
) ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 204 ; -- 과태료DETAIL 정보 오류
RAISE ;
END ;
-- 2차고지서 발송처리
IF t_send_date_2 <> 'A' THEN
-- 발송년도를 CHECK하여 다른경우 발송번호를 재부여 한다.
IF SUBSTR(t_send_date_1, 1, 4) <> SUBSTR(t_send_date_2, 1, 4) THEN
-- 발송 정보에서 번송번호를 축출한다.
OPEN CUR_SEND ( t_send_date_2 ) ;
FETCH CUR_SEND INTO REC_SEND ;
CLOSE CUR_SEND ;
l_send_no := REC_SEND.l_Count ;
IF TO_CHAR(l_send_no) IS NULL OR TO_CHAR(l_send_no) = '' THEN
l_send_no := 0 ;
END IF ;
END IF ;
--발송번호를 증가시킨다.
l_send_no := l_send_no + 1 ;
IF t_return_date_2 IS NULL OR t_return_date_2 = '' OR t_return_date_2 = 'A' THEN
s_return_kbn := '1' ;
ELSE
s_return_kbn := '2' ;
END IF ;
-- 진행코드를 정의한다.
s_before_motion_id := s_motion_id ;
s_Motion_ID := '41' ; -- 2차고지
IF s_return_kbn = '2' THEN
BEGIN
INSERT INTO RETURN_INFO (
PENALTY_MANAGE_YEAR, -- 과태료 관리년도
PENALTY_SEQNO, -- 과태료 일련번호
MOTION_ID, -- 진행코드
SEND_DATE, -- 발송일자
SEND_NO, -- 발송번호
RETUEN_DATE, -- 반송일자
RETURN_REASON_ID, -- 반송사유코드
CREATE_DATE, -- 작성일자
CREATER, -- 작성자
UPDATE_DATE, -- 수정일자
UPDATER -- 수정자
)
VALUES (
t_penalty_manage_year, -- 과태료 관리년도
TO_NUMBER(t_penalty_seqno), -- 과태료 일련번호
s_motion_id, -- 진행코드
TO_DATE(t_send_date_2, 'yyyymmdd'),
-- 발송일자
l_send_no, -- 발송번호?
TO_DATE(t_return_date_2, 'yyyymmdd'),
-- 반송일자
s_return_reason_id, -- 반납사유코드
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER'
) ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 204 ; -- 과태료DETAIL 정보 오류
RAISE ;
END ;
END IF ;
BEGIN
INSERT INTO SEND_INFO (
PENALTY_MANAGE_YEAR, -- 과태료 관리년도
PENALTY_SEQNO, -- 과태료 일련번호
MOTION_ID, -- 진행코드
SEND_DATE, -- 발송일자
SEND_NO, -- 발송번호
POST_KBN, -- 발송구분
RETURN_KBN, -- 반납여부
CREATE_DATE, -- 작성일자
CREATER, -- 작성자
UPDATE_DATE, -- 수정일자
UPDATER -- 수정자
)
VALUES (
t_penalty_manage_year, -- 과태료 관리년도
TO_NUMBER(t_penalty_seqno), -- 과태료 일련번호
s_motion_id, -- 진행코드
TO_DATE(t_send_date_2, 'yyyymmdd'),
-- 발송일자
l_send_no, -- 발송번호?
'1', -- 발송구분
s_return_kbn, -- 반납여부
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER'
) ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 204 ; -- 과태료DETAIL 정보 오류
RAISE ;
END ;
END IF ;
-- 압류촉탁 발송처리
IF t_send_date_3 <> 'A' THEN
-- 발송년도를 CHECK하여 다른경우 발송번호를 재부여 한다.
IF SUBSTR(t_send_date_1, 1, 4) <> SUBSTR(t_send_date_3, 1, 4) THEN
-- 발송 정보에서 번송번호를 축출한다.
OPEN CUR_SEND ( t_send_date_3 ) ;
FETCH CUR_SEND INTO REC_SEND ;
CLOSE CUR_SEND ;
l_send_no := REC_SEND.l_Count ;
IF TO_CHAR(l_send_no) IS NULL OR TO_CHAR(l_send_no) = '' THEN
l_send_no := 0 ;
END IF ;
END IF ;
--발송번호를 증가시킨다.
l_send_no := l_send_no + 1 ;
IF t_return_date_3 IS NULL OR t_return_date_3 = '' OR t_return_date_3 = 'A' THEN
s_return_kbn := '1' ;
ELSE
s_return_kbn := '2' ;
END IF ;
-- 진행코드를 정의한다.
s_before_motion_id := s_motion_id ;
s_Motion_ID := '61' ; -- 압류촉탁
IF s_return_kbn = '2' THEN
BEGIN
INSERT INTO RETURN_INFO (
PENALTY_MANAGE_YEAR, -- 과태료 관리년도
PENALTY_SEQNO, -- 과태료 일련번호
MOTION_ID, -- 진행코드
SEND_DATE, -- 발송일자
SEND_NO, -- 발송번호
RETUEN_DATE, -- 반송일자
RETURN_REASON_ID, -- 반송사유코드
CREATE_DATE, -- 작성일자
CREATER, -- 작성자
UPDATE_DATE, -- 수정일자
UPDATER -- 수정자
)
VALUES (
t_penalty_manage_year, -- 과태료 관리년도
TO_NUMBER(t_penalty_seqno), -- 과태료 일련번호
s_motion_id, -- 진행코드
TO_DATE(t_send_date_3, 'yyyymmdd'),
-- 발송일자
l_send_no, -- 발송번호?
TO_DATE(t_return_date_3, 'yyyymmdd'),
-- 반송일자
s_return_reason_id, -- 반납사유코드
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER'
) ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 204 ; -- 과태료DETAIL 정보 오류
RAISE ;
END ;
END IF ;
BEGIN
INSERT INTO SEND_INFO (
PENALTY_MANAGE_YEAR, -- 과태료 관리년도
PENALTY_SEQNO, -- 과태료 일련번호
MOTION_ID, -- 진행코드
SEND_DATE, -- 발송일자
SEND_NO, -- 발송번호
POST_KBN, -- 발송구분
RETURN_KBN, -- 반납여부
CREATE_DATE, -- 작성일자
CREATER, -- 작성자
UPDATE_DATE, -- 수정일자
UPDATER -- 수정자
)
VALUES (
t_penalty_manage_year, -- 과태료 관리년도
TO_NUMBER(t_penalty_seqno), -- 과태료 일련번호
s_motion_id, -- 진행코드
TO_DATE(t_send_date_3, 'yyyymmdd'),
-- 발송일자
l_send_no, -- 발송번호?
'1', -- 발송구분
s_return_kbn, -- 반납여부
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER'
) ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 204 ; -- 과태료DETAIL 정보 오류
RAISE ;
END ;
END IF ;
-- 압류일자를 확인한다.
IF t_seizure_date <> 'A' THEN
IF s_seizure_flg = '1' THEN
-- 존재하지 않는 경우의 처리
BEGIN
INSERT INTO SEIZURE_INFO (
SEIZURE_MANAGE_YEAR, -- 압류 관리년도
SEIZURE_MANAGE_NO, -- 압류 일련번호
WORK_NUMBER, --
COUNT, -- 건수
SEIZURE_AMOUNT, -- 압류금액
create_date, -- 작성일자
creater, -- 작성자
update_date, -- 수정일자
updater -- 수정자
)
VALUES (
s_seizure_year, -- 압류 관리년도
l_seizure_no, -- 압류 일련번호
NULL, --
l_seizure_count, -- 건수
l_seizure_amount, -- 압류금액
SYSDATE, -- 작성일자
'CONVERTER', -- 작성자
SYSDATE, -- 수정일자
'CONVERTER' -- 수정자
) ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 201 ; -- 과태료HEAD 정보 오류
RAISE ;
END;
ELSE
-- 존재하는 경우의 처리
BEGIN
UPDATE SEIZURE_INFO
SET COUNT = l_seizure_count, -- 건수
SEIZURE_AMOUNT = l_seizure_amount -- 압류금액
WHERE SEIZURE_MANAGE_YEAR = s_seizure_year
AND SEIZURE_MANAGE_NO = l_seizure_no ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 202 ; -- 과태료HEAD 정보 오류
RAISE ;
END ;
END IF ;
END IF ;
-- 수납이 된경우 진행코드를 변경한다.
IF s_receipt_id <> '0' THEN
s_before_motion_id := s_motion_id ;
s_motion := '91' ;
s_receipt_flg := '1' ;
ELSE
s_receipt_flg := '0' ;
END IF ;
-- 압류일자, 압류해지일자가 존재하는 경우
IF t_seizure_date <> 'A' AND t_seizure_termi_date <> 'A' THEN
BEGIN
INSERT INTO PENALTY_DETAIL_INFO (
PENALTY_MANAGE_YEAR, -- 과태료 관리변도
PENALTY_SEQNO, -- 과태료 일련번호
LEVY_MANAGE_YEAR, -- 부과예고 관리년도
LEVY_SEQNO, -- 부과예고 일련번호
--STT_DATE, -- 시작일자
COLLECT_ID, -- 징수유형
CARD_ISSUE_ID, -- 카드발행사 코드
WORKER_ID, -- 근무자 ID
FARE_OFFICE_ID, -- 요금소 코드
BOOTH_ID, -- 차로 코드
YEAR, -- 통행년도
MONTH, -- 통행월
DAY, -- 통행일
WORK_TIMES, -- 근무시간
CAR_NO, -- 차량번호
OWNER, -- 소유자
RESIDENT_NO, -- 주민등록번호
RESIDENT_DATE, -- 등록일자
SEIZURE_MANAGE_YEAR, -- 압류 관리년도
SEIZURE_MANAGE_NO, -- 압류 일련번호
PASS_AMOUNT, -- 통행료
FINE_AMOUNT, -- 과태료
LAVY_AMOUNT, -- 징수금액
BEFORE_MOTION_ID, -- 이전 진행코드
MOTION_ID, -- 진행코드
NOTICE_DATE, -- 고지일자
NOTICE_ID, -- 고지구분코드
--NOTICE_WRONG_DATE, -- 고지불가일자
NOTICE_WRONG_ID, -- 고지불가코드
NOTICE_WRONG_REASON, -- 고지불가사유
NOTICE_CHOOSE_ID, -- 고지선택코드
--NOTICE_CHOOSE_DATE, -- 고지선택일자
SEISURE_YN, -- 압류여부
SEIZURE_DATE, -- 압류일자
SEIZURE_ID, -- 압류구분코드
SEIZURE_WRONG_ID, -- 압류불가코드
--SEIZURE_WRONG_DATE, -- 압류불가일자
SEIZURE_WRONG_REASON, -- 압류불가사유
SEIZURE_TRMI_YN, -- 압류해지여부
SEIZURE_TERMI_DATE, -- 압류해지일자
SEIZURE_TERMI, -- 압류해지사유
RECEIPT_YN, -- 수납여부
DOUBLE_RECEIPT_YN, -- 이중수납여부
--DOUBLE_RECEIPT_DATE, -- 이중수납일자
CREATE_DATE, -- 작성일자
CREATER, -- 작성자
UPDATE_DATE, -- 수정일자
UPDATER -- 수정자
)
VALUES (
t_penalty_manage_year, -- 과태료 관리변도
TO_NUMBER(t_penalty_seqno),-- 과태료 일련번호
NULL, -- 부과예고 관리년도
0, -- 부과예고 일련번호
--NULL, -- 시작일자
'40', -- 징수유형
NULL, -- 카드발행사 코드
s_worker_id, -- 근무자 ID
t_fare_office_id, -- 요금소 코드
'01', -- 차로 코드
t_pass_yyyy, -- 통행년도
t_pass_mm, -- 통행월
t_pass_dd, -- 통행일
t_pass_time, -- 근무시간
t_car_no, -- 차량번호
t_owner, -- 소유자
'1111111111', -- 주민등록번호
TO_DATE(t_resident_date, 'yyyymmdd'),
-- 등록일자
NULL, -- 압류 관리년도
0, -- 압류 일련번호
t_pass_amount, -- 통행료
t_fine_amount, -- 과태료
l_lavy_amount, -- 징수금액
s_before_motion_id, -- 이전 진행코드
s_motion, -- 진행코드
TO_DATE(t_send_date_1, 'yyyymmdd'),
-- 고지일자
'13', -- 고지구분코드
--NULL, -- 고지불가일자
s_notice_wrong_id, -- 고지불가코드
t_notice_wrong_reason, -- 고지불가사유
NULL, -- 고지선택코드
--NULL, -- 고지선택일자
'1', -- 압류여부
TO_DATE(t_seizure_date, 'yyyymmdd'),
-- 압류일자
NULL, -- 압류구분코드
NULL, -- 압류불가코드
--NULL, -- 압류불가일자
NULL, -- 압류불가사유
'2', -- 압류해지여부
TO_DATE(t_seizure_termi_date, 'yyyymmdd'),
-- 압류해지일자
NULL, -- 압류해지사유
s_receipt_flg, -- 수납여부
'0', -- 이중수납여부
--NULL, -- 이중수납일자
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER'
) ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 204 ; -- 과태료DETAIL 정보 오류
RAISE ;
END ;
-- 압류일자는 존재하고, 압류해지일자가 존재하지 않는 경우 존재하는 경우
ELSIF t_seizure_date <> 'A' AND t_seizure_termi_date = 'A' THEN
BEGIN
INSERT INTO PENALTY_DETAIL_INFO (
PENALTY_MANAGE_YEAR, -- 과태료 관리변도
PENALTY_SEQNO, -- 과태료 일련번호
LEVY_MANAGE_YEAR, -- 부과예고 관리년도
LEVY_SEQNO, -- 부과예고 일련번호
--STT_DATE, -- 시작일자
COLLECT_ID, -- 징수유형
CARD_ISSUE_ID, -- 카드발행사 코드
WORKER_ID, -- 근무자 ID
FARE_OFFICE_ID, -- 요금소 코드
BOOTH_ID, -- 차로 코드
YEAR, -- 통행년도
MONTH, -- 통행월
DAY, -- 통행일
WORK_TIMES, -- 근무시간
CAR_NO, -- 차량번호
OWNER, -- 소유자
RESIDENT_NO, -- 주민등록번호
RESIDENT_DATE, -- 등록일자
SEIZURE_MANAGE_YEAR, -- 압류 관리년도
SEIZURE_MANAGE_NO, -- 압류 일련번호
PASS_AMOUNT, -- 통행료
FINE_AMOUNT, -- 과태료
LAVY_AMOUNT, -- 징수금액
BEFORE_MOTION_ID, -- 이전 진행코드
MOTION_ID, -- 진행코드
NOTICE_DATE, -- 고지일자
NOTICE_ID, -- 고지구분코드
--NOTICE_WRONG_DATE, -- 고지불가일자
NOTICE_WRONG_ID, -- 고지불가코드
NOTICE_WRONG_REASON, -- 고지불가사유
NOTICE_CHOOSE_ID, -- 고지선택코드
--NOTICE_CHOOSE_DATE, -- 고지선택일자
SEISURE_YN, -- 압류여부
SEIZURE_DATE, -- 압류일자
SEIZURE_ID, -- 압류구분코드
SEIZURE_WRONG_ID, -- 압류불가코드
--SEIZURE_WRONG_DATE, -- 압류불가일자
SEIZURE_WRONG_REASON, -- 압류불가사유
SEIZURE_TRMI_YN, -- 압류해지여부
--SEIZURE_TERMI_DATE, -- 압류해지일자
SEIZURE_TERMI, -- 압류해지사유
RECEIPT_YN, -- 수납여부
DOUBLE_RECEIPT_YN, -- 이중수납여부
--DOUBLE_RECEIPT_DATE, -- 이중수납일자
CREATE_DATE, -- 작성일자
CREATER, -- 작성자
UPDATE_DATE, -- 수정일자
UPDATER -- 수정자
)
VALUES (
t_penalty_manage_year, -- 과태료 관리변도
TO_NUMBER(t_penalty_seqno),-- 과태료 일련번호
NULL, -- 부과예고 관리년도
0, -- 부과예고 일련번호
--NULL, -- 시작일자
'40', -- 징수유형
NULL, -- 카드발행사 코드
s_worker_id, -- 근무자 ID
t_fare_office_id, -- 요금소 코드
'01', -- 차로 코드
t_pass_yyyy, -- 통행년도
t_pass_mm, -- 통행월
t_pass_dd, -- 통행일
t_pass_time, -- 근무시간
t_car_no, -- 차량번호
t_owner, -- 소유자
'1111111111', -- 주민등록번호
TO_DATE(t_resident_date, 'yyyymmdd'),
-- 등록일자
NULL, -- 압류 관리년도
0, -- 압류 일련번호
t_pass_amount, -- 통행료
t_fine_amount, -- 과태료
l_lavy_amount, -- 징수금액
s_before_motion_id, -- 이전 진행코드
s_motion, -- 진행코드
TO_DATE(t_send_date_1, 'yyyymmdd'),
-- 고지일자
'11', -- 고지구분코드
--NULL, -- 고지불가일자
s_notice_wrong_id, -- 고지불가코드
t_notice_wrong_reason, -- 고지불가사유
NULL, -- 고지선택코드
--NULL, -- 고지선택일자
'1', -- 압류여부
TO_DATE(t_seizure_date, 'yyyymmdd'),
-- 압류일자
NULL, -- 압류구분코드
NULL, -- 압류불가코드
--NULL, -- 압류불가일자
NULL, -- 압류불가사유
'1', -- 압류해지여부
--TO_DATE(t_seizure_termi_date, 'yyyymmdd'),
-- 압류해지일자
NULL, -- 압류해지사유
s_receipt_flg, -- 수납여부
'0', -- 이중수납여부
--NULL, -- 이중수납일자
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER'
) ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 204 ; -- 과태료DETAIL 정보 오류
RAISE ;
END ;
-- 압류일자도 압류해지일자도 존재하지 않는 경우
ELSIF t_seizure_date = 'A' AND t_seizure_termi_date = 'A' THEN
BEGIN
INSERT INTO PENALTY_DETAIL_INFO (
PENALTY_MANAGE_YEAR, -- 과태료 관리변도
PENALTY_SEQNO, -- 과태료 일련번호
LEVY_MANAGE_YEAR, -- 부과예고 관리년도
LEVY_SEQNO, -- 부과예고 일련번호
--STT_DATE, -- 시작일자
COLLECT_ID, -- 징수유형
CARD_ISSUE_ID, -- 카드발행사 코드
WORKER_ID, -- 근무자 ID
FARE_OFFICE_ID, -- 요금소 코드
BOOTH_ID, -- 차로 코드
YEAR, -- 통행년도
MONTH, -- 통행월
DAY, -- 통행일
WORK_TIMES, -- 근무시간
CAR_NO, -- 차량번호
OWNER, -- 소유자
RESIDENT_NO, -- 주민등록번호
RESIDENT_DATE, -- 등록일자
SEIZURE_MANAGE_YEAR, -- 압류 관리년도
SEIZURE_MANAGE_NO, -- 압류 일련번호
PASS_AMOUNT, -- 통행료
FINE_AMOUNT, -- 과태료
LAVY_AMOUNT, -- 징수금액
BEFORE_MOTION_ID, -- 이전 진행코드
MOTION_ID, -- 진행코드
NOTICE_DATE, -- 고지일자
NOTICE_ID, -- 고지구분코드
--NOTICE_WRONG_DATE, -- 고지불가일자
NOTICE_WRONG_ID, -- 고지불가코드
NOTICE_WRONG_REASON, -- 고지불가사유
NOTICE_CHOOSE_ID, -- 고지선택코드
--NOTICE_CHOOSE_DATE, -- 고지선택일자
SEISURE_YN, -- 압류여부
--SEIZURE_DATE, -- 압류일자
SEIZURE_ID, -- 압류구분코드
SEIZURE_WRONG_ID, -- 압류불가코드
--SEIZURE_WRONG_DATE, -- 압류불가일자
SEIZURE_WRONG_REASON, -- 압류불가사유
SEIZURE_TRMI_YN, -- 압류해지여부
--SEIZURE_TERMI_DATE, -- 압류해지일자
SEIZURE_TERMI, -- 압류해지사유
RECEIPT_YN, -- 수납여부
DOUBLE_RECEIPT_YN, -- 이중수납여부
--DOUBLE_RECEIPT_DATE, -- 이중수납일자
CREATE_DATE, -- 작성일자
CREATER, -- 작성자
UPDATE_DATE, -- 수정일자
UPDATER -- 수정자
)
VALUES (
t_penalty_manage_year, -- 과태료 관리변도
TO_NUMBER(t_penalty_seqno),-- 과태료 일련번호
NULL, -- 부과예고 관리년도
0, -- 부과예고 일련번호
--NULL, -- 시작일자
'40', -- 징수유형
NULL, -- 카드발행사 코드
s_worker_id, -- 근무자 ID
t_fare_office_id, -- 요금소 코드
'01', -- 차로 코드
t_pass_yyyy, -- 통행년도
t_pass_mm, -- 통행월
t_pass_dd, -- 통행일
t_pass_time, -- 근무시간
t_car_no, -- 차량번호
t_owner, -- 소유자
'1111111111', -- 주민등록번호
TO_DATE(t_resident_date, 'yyyymmdd'),
-- 등록일자
NULL, -- 압류 관리년도
0, -- 압류 일련번호
t_pass_amount, -- 통행료
t_fine_amount, -- 과태료
l_lavy_amount, -- 징수금액
s_before_motion_id, -- 이전 진행코드
s_motion, -- 진행코드
TO_DATE(t_send_date_1, 'yyyymmdd'),
-- 고지일자
'01', -- 고지구분코드
--NULL, -- 고지불가일자
s_notice_wrong_id, -- 고지불가코드
t_notice_wrong_reason, -- 고지불가사유
NULL, -- 고지선택코드
--NULL, -- 고지선택일자
'0', -- 압류여부
--TO_DATE(t_seizure_date, 'yyyymmdd'),
-- 압류일자
NULL, -- 압류구분코드
NULL, -- 압류불가코드
--NULL, -- 압류불가일자
NULL, -- 압류불가사유
'0', -- 압류해지여부
--TO_DATE(t_seizure_termi_date, 'yyyymmdd'),
-- 압류해지일자
NULL, -- 압류해지사유
s_receipt_flg, -- 수납여부
'0', -- 이중수납여부
--NULL, -- 이중수납일자
SYSDATE,
'CONVERTER',
SYSDATE,
'CONVERTER'
) ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 204 ; -- 과태료DETAIL 정보 오류
RAISE ;
END ;
END IF ;
END IF ;
-- 수납인 경우의 처리.
IF s_receipt_id <> '0' THEN
BEGIN
INSERT INTO RECEIPT_INFO (
PENALTY_MANAGE_YEAR, -- 과태료 관리년도
PENALTY_SEQNO, -- 과태료 일련번호
RECEIPT_DATE, -- 수납일자
RECEIPT_ID, -- 수납코드
RECEIPT_AMOUNT, -- 수납금액
RECEIPT_AGENCY, -- 수납장소
RECEIPT_PROCESS_KBN, -- 수납구분
create_date, -- 작성일자
creater, -- 작성자
update_date, -- 수정일자
updater -- 수정자
)
VALUES (
t_penalty_manage_year, -- 과태료 관리년도
TO_NUMBER(t_penalty_seqno), -- 과태료 일련번호
TO_DATE(t_receipt_date, 'yyyymmdd'), -- 수납일자
s_motion_id, -- 수닙코드
l_lavy_amount, -- 수납금액
t_receipt_agency, -- 수납장소
s_receipt_id, -- 수납구분
SYSDATE, -- 작성일자
'CONVERTER', -- 작성자
SYSDATE, -- 수정일자
'CONVERTER' -- 수정자
) ;
EXCEPTION
WHEN OTHERS THEN
--
ROLLBACK ;
pn_rc := 201 ; -- 과태료HEAD 정보 오류
RAISE ;
END;
END IF ;
END proc_main;
END Pbc_Conv;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TTJ503Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 전 체 건 수 **
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TTJ503Q_CNT( v_office IN CHAR,v_stt_date IN CHAR,v_end_date IN CHAR )
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM (SELECT TIMES
FROM TIME_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY BETWEEN v_stt_date AND v_end_date
GROUP BY TIMES);
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
RETURN 0;
END FUN_TTJ503Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 상하행선(유입-유출) 시간대별 통행대수 현황 **
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TTJ503Q( v_row IN NUMBER,
v_office IN CHAR,
v_from_date IN CHAR,
v_to_date IN CHAR,
out_time OUT VARCHAR2,
out_in_cash OUT NUMBER,
out_in_k_cash OUT NUMBER,
out_in_sun OUT NUMBER,
out_in_k_sun OUT NUMBER,
out_in_who OUT NUMBER,
out_in_k_who OUT NUMBER,
out_in_coupon OUT NUMBER,
out_in_k_coupon OUT NUMBER,
out_in_minap OUT NUMBER,
out_in_free OUT NUMBER,
out_out_cash OUT NUMBER,
out_out_k_cash OUT NUMBER,
out_out_sun OUT NUMBER,
out_out_k_sun OUT NUMBER,
out_out_who OUT NUMBER,
out_out_k_who OUT NUMBER,
out_out_coupon OUT NUMBER,
out_out_k_coupon OUT NUMBER,
out_out_minap OUT NUMBER,
out_out_free OUT NUMBER )
IS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 시간대별 유입(출) 통행량 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
CURSOR CUR IS
SELECT TIMES AS A,
NVL(SUM(NVL(IN_CASH_QUANTITY,0)),0) AS B,
NVL(SUM(NVL(IN_K_CASH_Q,0)),0) AS C,
NVL(SUM(NVL(IN_CARD_BEFORE_QUANTITY,0)),0) AS D,
NVL(SUM(NVL(IN_K_CARD_SUN_Q,0)),0) AS E,
NVL(SUM(NVL(IN_CARD_AFTER_QUANTITY,0)),0) AS F,
NVL(SUM(NVL(IN_K_CARD_WHO_Q,0)),0) AS G,
NVL(SUM(NVL(IN_COUPON_QUANTITY,0)),0) AS H,
NVL(SUM(NVL(IN_K_COUPON_Q,0)),0) AS I,
NVL(SUM(NVL(IN_NONPAYMENT_QUANTITY,0)),0) AS J,
NVL(SUM(NVL(IN_EXEMPTION_QUANTITY,0)),0) AS K,
NVL(SUM(NVL(OUT_CASH_QUANTITY,0)),0) AS L,
NVL(SUM(NVL(OUT_K_CASH_Q,0)),0) AS M,
NVL(SUM(NVL(OUT_CARD_BEFORE_QUANTITY,0)),0) AS N,
NVL(SUM(NVL(OUT_K_CARD_SUN_Q,0)),0) AS O,
NVL(SUM(NVL(OUT_CARD_AFTER_QUANTITY,0)),0) AS P,
NVL(SUM(NVL(OUT_K_CARD_WHO_Q,0)),0) AS Q,
NVL(SUM(NVL(OUT_COUPON_QUANTITY,0)),0) AS R,
NVL(SUM(NVL(OUT_K_COUPON_Q,0)),0) AS S,
NVL(SUM(NVL(OUT_NONPAYMENT_QUANTITY,0)),0) AS T,
NVL(SUM(NVL(OUT_EXEMPTION_QUANTITY,0)),0) AS U
FROM TIME_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY BETWEEN v_from_date AND v_to_date
GROUP BY TIMES
ORDER BY TIMES;
TTJ503Q_REC CUR%ROWTYPE;
BEGIN
FOR TTJ503Q_REC IN CUR LOOP
out_time := TTJ503Q_REC.A;
out_in_cash := TTJ503Q_REC.B;
out_in_k_cash := TTJ503Q_REC.C;
out_in_sun := TTJ503Q_REC.D;
out_in_k_sun := TTJ503Q_REC.E;
out_in_who := TTJ503Q_REC.F;
out_in_k_who := TTJ503Q_REC.G;
out_in_coupon := TTJ503Q_REC.H;
out_in_k_coupon := TTJ503Q_REC.I;
out_in_minap := TTJ503Q_REC.J;
out_in_free := TTJ503Q_REC.K;
out_out_cash := TTJ503Q_REC.L;
out_out_k_cash := TTJ503Q_REC.M;
out_out_sun := TTJ503Q_REC.N;
out_out_k_sun := TTJ503Q_REC.O;
out_out_who := TTJ503Q_REC.P;
out_out_k_who := TTJ503Q_REC.Q;
out_out_coupon := TTJ503Q_REC.R;
out_out_k_coupon := TTJ503Q_REC.S;
out_out_minap := TTJ503Q_REC.T;
out_out_free := TTJ503Q_REC.U;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TTJ503Q;
END PAC_GET_TTJ503Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TTJ502Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 전 체 건 수 **
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TTJ502Q_CNT( v_office IN CHAR,v_stt_date IN CHAR,v_end_date IN CHAR )
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM TIME_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY BETWEEN v_stt_date AND v_end_date;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_TTJ502Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 상하행선(유입-유출) 시간대별 통행대수 현황 **
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TTJ502Q(v_office IN CHAR,v_stt_date IN CHAR,v_end_date IN CHAR,
v_up01 OUT NUMBER,v_up02 OUT NUMBER,v_up03 OUT NUMBER,
v_up04 OUT NUMBER,v_up05 OUT NUMBER,v_up06 OUT NUMBER,
v_up07 OUT NUMBER,v_up08 OUT NUMBER,v_up09 OUT NUMBER,
v_up10 OUT NUMBER,v_up11 OUT NUMBER,v_up12 OUT NUMBER,
v_up13 OUT NUMBER,v_up14 OUT NUMBER,v_upadd1 OUT NUMBER,v_upadd2 OUT NUMBER,
v_down01 OUT NUMBER,v_down02 OUT NUMBER,v_down03 OUT NUMBER,
v_down04 OUT NUMBER,v_down05 OUT NUMBER,v_down06 OUT NUMBER,
v_down07 OUT NUMBER,v_down08 OUT NUMBER,v_down09 OUT NUMBER,
v_down10 OUT NUMBER,v_down11 OUT NUMBER,v_down12 OUT NUMBER,
v_down13 OUT NUMBER,v_down14 OUT NUMBER,v_downadd1 OUT NUMBER,v_downadd2 OUT NUMBER,
v_up_rate01 OUT NUMBER,v_up_rate02 OUT NUMBER,v_up_rate03 OUT NUMBER,
v_up_rate04 OUT NUMBER,v_up_rate05 OUT NUMBER,v_up_rate06 OUT NUMBER,
v_up_rate07 OUT NUMBER,v_up_rate08 OUT NUMBER,v_up_rate09 OUT NUMBER,
v_up_rate10 OUT NUMBER,v_up_rate11 OUT NUMBER,v_up_rate12 OUT NUMBER,
v_up_rate13 OUT NUMBER,v_up_rate14 OUT NUMBER,v_up_rateadd1 OUT NUMBER,v_up_rateadd2 OUT NUMBER,
v_down_rate01 OUT NUMBER,v_down_rate02 OUT NUMBER,v_down_rate03 OUT NUMBER,
v_down_rate04 OUT NUMBER,v_down_rate05 OUT NUMBER,v_down_rate06 OUT NUMBER,
v_down_rate07 OUT NUMBER,v_down_rate08 OUT NUMBER,v_down_rate09 OUT NUMBER,
v_down_rate10 OUT NUMBER,v_down_rate11 OUT NUMBER,v_down_rate12 OUT NUMBER,
v_down_rate13 OUT NUMBER,v_down_rate14 OUT NUMBER,v_down_rateadd1 OUT NUMBER,v_down_rateadd2 OUT NUMBER,
v_up_tot_car OUT NUMBER,v_up_rate_car OUT NUMBER,v_down_tot_car OUT NUMBER,v_down_rate_car OUT NUMBER)
IS
BEGIN
/*++++++++++++++++++++++++++++++
** 상행대수
++++++++++++++++++++++++++++++*/
BEGIN
SELECT FUN_GET_TTJ502Q('1',v_office,'06',v_stt_date,v_end_date)
INTO v_upadd1
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'07',v_stt_date,v_end_date)
INTO v_up01
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'08',v_stt_date,v_end_date)
INTO v_up02
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'09',v_stt_date,v_end_date)
INTO v_up03
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'10',v_stt_date,v_end_date)
INTO v_up04
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'11',v_stt_date,v_end_date)
INTO v_up05
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'12',v_stt_date,v_end_date)
INTO v_up06
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'13',v_stt_date,v_end_date)
INTO v_up07
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'14',v_stt_date,v_end_date)
INTO v_up08
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'15',v_stt_date,v_end_date)
INTO v_up09
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'16',v_stt_date,v_end_date)
INTO v_up10
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'17',v_stt_date,v_end_date)
INTO v_up11
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'18',v_stt_date,v_end_date)
INTO v_up12
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'19',v_stt_date,v_end_date)
INTO v_up13
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'20',v_stt_date,v_end_date)
INTO v_up14
FROM DUAL;
SELECT FUN_GET_TTJ502Q('1',v_office,'21',v_stt_date,v_end_date)
INTO v_upadd2
FROM DUAL;
END;
/*++++++++++++++++++++++++++++++
** 하행대수
++++++++++++++++++++++++++++++*/
BEGIN
SELECT FUN_GET_TTJ502Q('2',v_office,'06',v_stt_date,v_end_date)
INTO v_downadd1
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'07',v_stt_date,v_end_date)
INTO v_down01
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'08',v_stt_date,v_end_date)
INTO v_down02
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'09',v_stt_date,v_end_date)
INTO v_down03
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'10',v_stt_date,v_end_date)
INTO v_down04
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'11',v_stt_date,v_end_date)
INTO v_down05
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'12',v_stt_date,v_end_date)
INTO v_down06
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'13',v_stt_date,v_end_date)
INTO v_down07
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'14',v_stt_date,v_end_date)
INTO v_down08
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'15',v_stt_date,v_end_date)
INTO v_down09
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'16',v_stt_date,v_end_date)
INTO v_down10
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'17',v_stt_date,v_end_date)
INTO v_down11
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'18',v_stt_date,v_end_date)
INTO v_down12
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'19',v_stt_date,v_end_date)
INTO v_down13
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'20',v_stt_date,v_end_date)
INTO v_down14
FROM DUAL;
SELECT FUN_GET_TTJ502Q('2',v_office,'21',v_stt_date,v_end_date)
INTO v_downadd2
FROM DUAL;
END;
/* 합 계 */
v_up_tot_car := v_up01+v_up02+v_up03+v_up04+v_up05+v_up06+v_up07+
v_up08+v_up09+v_up10+v_up11+v_up12+v_up13+v_up14+v_upadd1+v_upadd2;
v_down_tot_car := v_down01+v_down02+v_down03+v_down04+v_down05+v_down06+
v_down07+v_down08+v_down09+v_down10+v_down11+v_down12+
v_down13+v_down14+v_downadd1+v_downadd2;
/* 비 율*/
-- 추가 20030213
IF v_upadd1 = 0 THEN
v_up_rateadd1 := 0;
ELSE
v_up_rateadd1 := ROUND(( v_upadd1 / v_up_tot_car ) * 100, 2);
END IF;
IF v_upadd2 = 0 THEN
v_up_rateadd2 := 0;
ELSE
v_up_rateadd2 := ROUND(( v_upadd2 / v_up_tot_car ) * 100, 2);
END IF;
-- 추가 끝
IF v_up01 = 0 THEN
v_up_rate01 := 0;
ELSE
v_up_rate01 := ROUND(( v_up01 / v_up_tot_car ) * 100,2);
END IF;
IF v_up02 = 0 THEN
v_up_rate02 := 0;
ELSE
v_up_rate02 := ROUND(( v_up02 / v_up_tot_car ) * 100, 2);
END IF;
IF v_up03 = 0 THEN
v_up_rate03 := 0;
ELSE
v_up_rate03 := ROUND(( v_up03 / v_up_tot_car ) * 100, 2);
END IF;
IF v_up04 = 0 THEN
v_up_rate04 := 0;
ELSE
v_up_rate04 := ROUND(( v_up04 / v_up_tot_car ) * 100, 2);
END IF;
IF v_up05 = 0 THEN
v_up_rate05 := 0;
ELSE
v_up_rate05 := ROUND(( v_up05 / v_up_tot_car ) * 100, 2);
END IF;
IF v_up06 = 0 THEN
v_up_rate06 := 0;
ELSE
v_up_rate06 := ROUND(( v_up06 / v_up_tot_car ) * 100, 2);
END IF;
IF v_up07 = 0 THEN
v_up_rate07 := 0;
ELSE
v_up_rate07 := ROUND(( v_up07 / v_up_tot_car ) * 100, 2);
END IF;
IF v_up08 = 0 THEN
v_up_rate08 := 0;
ELSE
v_up_rate08 := ROUND(( v_up08 / v_up_tot_car ) * 100, 2);
END IF;
IF v_up09 = 0 THEN
v_up_rate09 := 0;
ELSE
v_up_rate09 := ROUND(( v_up09 / v_up_tot_car ) * 100, 2);
END IF;
IF v_up10 = 0 THEN
v_up_rate10 := 0;
ELSE
v_up_rate10 := ROUND(( v_up10 / v_up_tot_car ) * 100, 2);
END IF;
IF v_up11 = 0 THEN
v_up_rate11 := 0;
ELSE
v_up_rate11 := ROUND(( v_up11 / v_up_tot_car ) * 100, 2);
END IF;
IF v_up12 = 0 THEN
v_up_rate12 := 0;
ELSE
v_up_rate12 := ROUND(( v_up12 / v_up_tot_car ) * 100, 2);
END IF;
IF v_up13 = 0 THEN
v_up_rate13 := 0;
ELSE
v_up_rate13 := ROUND(( v_up13 / v_up_tot_car ) * 100, 2);
END IF;
IF v_up14 = 0 THEN
v_up_rate14 := 0;
ELSE
v_up_rate14 := ROUND(( v_up14 / v_up_tot_car ) * 100, 2);
END IF;
-- 추가 시작
IF v_downadd1 = 0 THEN
v_down_rateadd1 := 0;
ELSE
v_down_rateadd1 := ROUND(( v_downadd1 / v_down_tot_car ) * 100, 2);
END IF;
IF v_downadd2 = 0 THEN
v_down_rateadd2 := 0;
ELSE
v_down_rateadd2 := ROUND(( v_downadd2 / v_down_tot_car ) * 100, 2);
END IF;
-- 추가 끝
IF v_down01 = 0 THEN
v_down_rate01 := 0;
ELSE
v_down_rate01 := ROUND(( v_down01 / v_down_tot_car ) * 100,2);
END IF;
IF v_down02 = 0 THEN
v_down_rate02 := 0;
ELSE
v_down_rate02 := ROUND(( v_down02 / v_down_tot_car ) * 100,2);
END IF;
IF v_down03 = 0 THEN
v_down_rate03 := 0;
ELSE
v_down_rate03 := ROUND(( v_down03 / v_down_tot_car ) * 100, 2);
END IF;
IF v_down04 = 0 THEN
v_down_rate04 := 0;
ELSE
v_down_rate04 := ROUND(( v_down04 / v_down_tot_car ) * 100, 2);
END IF;
IF v_down05 = 0 THEN
v_down_rate05 := 0;
ELSE
v_down_rate05 := ROUND(( v_down05 / v_down_tot_car ) * 100, 2);
END IF;
IF v_down06 = 0 THEN
v_down_rate06 := 0;
ELSE
v_down_rate06 := ROUND(( v_down06 / v_down_tot_car ) * 100, 2);
END IF;
IF v_down07 = 0 THEN
v_down_rate07 := 0;
ELSE
v_down_rate07 := ROUND(( v_down07 / v_down_tot_car ) * 100, 2);
END IF;
IF v_down08 = 0 THEN
v_down_rate08 := 0;
ELSE
v_down_rate08 := ROUND(( v_down08 / v_down_tot_car ) * 100, 2);
END IF;
IF v_down09 = 0 THEN
v_down_rate09 := 0;
ELSE
v_down_rate09 := ROUND(( v_down09 / v_down_tot_car ) * 100, 2);
END IF;
IF v_down10 = 0 THEN
v_down_rate10 := 0;
ELSE
v_down_rate10 := ROUND(( v_down10 / v_down_tot_car ) * 100, 2);
END IF;
IF v_down11 = 0 THEN
v_down_rate11 := 0;
ELSE
v_down_rate11 := ROUND(( v_down11 / v_down_tot_car ) * 100, 2);
END IF;
IF v_down12 = 0 THEN
v_down_rate12 := 0;
ELSE
v_down_rate12 := ROUND(( v_down12 / v_down_tot_car ) * 100, 2);
END IF;
IF v_down13 = 0 THEN
v_down_rate13 := 0;
ELSE
v_down_rate13 := ROUND(( v_down13 / v_down_tot_car ) * 100, 2);
END IF;
IF v_down14 = 0 THEN
v_down_rate14 := 0;
ELSE
v_down_rate14 := ROUND(( v_down14 / v_down_tot_car ) * 100, 2);
END IF;
IF v_up01 + v_up02 + v_up03 + v_up04 + v_up05 + v_up06 + v_up07 +
v_up08 + v_up09 + v_up10 + v_up11 + v_up12 + v_up13 + v_up14 + v_upadd1 + v_upadd2 = 0 then
v_up_rate_car := 0;
ELSE
v_up_rate_car := 100;
END IF;
IF v_down01 + v_down02 + v_down03 + v_down04 + v_down05 + v_down06 + v_down07 +
v_down08 + v_down09 + v_down10 + v_down11 + v_down12 + v_down13 + v_down14 + v_downadd1 + v_downadd2 = 0 then
v_down_rate_car := 0;
ELSE
v_down_rate_car := 100;
END IF;
END SP_TTJ502Q;
END PAC_GET_TTJ502Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRP007Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 합계 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP007Q_CNT_1(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_prepay NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.join_card_number))
INTO v_return_1_prepay
FROM CARD_TRANS_HEAD_INFO a
WHERE EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE fare_office_id = '01'
AND collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number) ;
RETURN v_return_1_prepay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_prepay := 0;
END;
END FUN_TRP007Q_CNT_1;
FUNCTION FUN_TRP007Q_CNT_3(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_3_prepay NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.join_card_number))
INTO v_return_3_prepay
FROM CARD_TRANS_HEAD_INFO a
WHERE EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE fare_office_id = '03'
AND collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number) ;
RETURN v_return_3_prepay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_prepay := 0;
END;
END FUN_TRP007Q_CNT_3;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 발행사별 01호 합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP007Q_1(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER,
out_data7 OUT NUMBER,
out_data8 OUT NUMBER,
out_data9 OUT NUMBER,
out_data10 OUT NUMBER
)
IS
CURSOR CUR_1_PREPAY IS
SELECT b.join_card_name AS card_name,
SUM(a.REQUEST_COUNT) AS send_count,
SUM(a.reject_COUNT) AS reject_count,
SUM(a.NOMAL_COUNT) AS caculate_count,
SUM(a.REQUEST_AMOUNT) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(a.REQUEST_AMOUNT) AS center_count,
--SUM(NVL(a.lavy_amount,0) - NVL(a.charge_amount,0) - NVL(a.discount_amount,0)) AS center_count,
SUM(NVL(a.nomal_amount,0)) AS request_amount,
SUM(NVL(a.request_amount,0) - NVL(a.nomal_amount,0)) AS difference_count
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
TRP007Q_REC1 CUR_1_PREPAY%ROWTYPE;
BEGIN
FOR TRP007Q_REC1 IN CUR_1_PREPAY LOOP
out_name := TRP007Q_REC1.card_name;
out_data1 := TRP007Q_REC1.send_count;
out_data2 := TRP007Q_REC1.reject_count;
out_data3 := TRP007Q_REC1.caculate_count;
out_data4 := TRP007Q_REC1.lavy_amount;
out_data5 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '01', '99', '21', '22',out_name);
out_data6 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '01', '99', '21', '22',out_name);
out_data7 := TRP007Q_REC1.discount_amount;
out_data8 := TRP007Q_REC1.center_count;
out_data9 := TRP007Q_REC1.request_amount;
out_data10 := TRP007Q_REC1.difference_count;
EXIT WHEN CUR_1_PREPAY%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP007Q_1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 발행사별 03호 합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP007Q_3(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER,
out_data7 OUT NUMBER,
out_data8 OUT NUMBER,
out_data9 OUT NUMBER,
out_data10 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT b.join_card_name AS card_name,
SUM(a.REQUEST_COUNT) AS send_count,
SUM(a.reject_COUNT) AS reject_count,
SUM(a.NOMAL_COUNT) AS caculate_count,
SUM(a.REQUEST_AMOUNT) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(a.REQUEST_AMOUNT) AS center_count,
--SUM(NVL(a.lavy_amount,0) - NVL(a.charge_amount,0) - NVL(a.discount_amount,0)) AS center_count,
SUM(NVL(a.nomal_amount,0)) AS request_amount,
SUM(NVL(a.request_amount,0) - NVL(a.nomal_amount,0)) AS difference_count
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
TRP007Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP007Q_REC1 IN CUR LOOP
out_name := TRP007Q_REC1.card_name;
out_data1 := TRP007Q_REC1.send_count;
out_data2 := TRP007Q_REC1.reject_count;
out_data3 := TRP007Q_REC1.caculate_count;
out_data4 := TRP007Q_REC1.lavy_amount;
out_data5 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '03', '99', '21', '22',out_name);
out_data6 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '03', '99', '21', '22',out_name);
out_data7 := TRP007Q_REC1.discount_amount;
out_data8 := TRP007Q_REC1.center_count;
out_data9 := TRP007Q_REC1.request_amount;
out_data10 := TRP007Q_REC1.difference_count;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP007Q_3;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 01호 합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP007Q_1_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER,
out_data7 OUT NUMBER,
out_data8 OUT NUMBER,
out_data9 OUT NUMBER,
out_data10 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('01')||' 합계';
SELECT SUM(a.REQUEST_COUNT) AS send_count,
SUM(a.reject_COUNT) AS reject_count,
SUM(a.NOMAL_COUNT) AS caculate_count,
SUM(a.REQUEST_AMOUNT) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(a.REQUEST_AMOUNT) AS center_count,
--SUM(NVL(a.lavy_amount,0) - NVL(a.charge_amount,0) - NVL(a.discount_amount,0)) AS center_count,
SUM(NVL(a.nomal_amount,0)) AS request_amount,
SUM(NVL(a.request_amount,0) - NVL(a.nomal_amount,0)) AS difference_count
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6, out_data7,
out_data8, out_data9, out_data10
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data5 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '99', '21', '22');
out_data6 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '99', '21', '22');
END SP_TRP007Q_1_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 03호 합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP007Q_3_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER,
out_data7 OUT NUMBER,
out_data8 OUT NUMBER,
out_data9 OUT NUMBER,
out_data10 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('03')||' 합계';
SELECT SUM(a.REQUEST_COUNT) AS send_count,
SUM(a.reject_COUNT) AS reject_count,
SUM(a.NOMAL_COUNT) AS caculate_count,
SUM(a.REQUEST_AMOUNT) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(a.REQUEST_AMOUNT) AS center_count,
--SUM(NVL(a.lavy_amount,0) - NVL(a.charge_amount,0) - NVL(a.discount_amount,0)) AS center_count,
SUM(NVL(a.nomal_amount,0)) AS request_amount,
SUM(NVL(a.request_amount,0) - NVL(a.nomal_amount,0)) AS difference_count
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6, out_data7,
out_data8, out_data9, out_data10
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data5 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '22');
out_data6 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '22');
END SP_TRP007Q_3_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 01_03호 선불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP007Q_13_TOTAL(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER,
out_data7 OUT NUMBER,
out_data8 OUT NUMBER,
out_data9 OUT NUMBER,
out_data10 OUT NUMBER
)
IS
BEGIN
out_title := '총 합계';
SELECT SUM(a.REQUEST_COUNT) AS send_count,
SUM(a.reject_COUNT) AS reject_count,
SUM(a.NOMAL_COUNT) AS caculate_count,
SUM(a.REQUEST_AMOUNT) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(a.REQUEST_AMOUNT) AS center_count,
--SUM(NVL(a.lavy_amount,0) - NVL(a.charge_amount,0) - NVL(a.discount_amount,0)) AS center_count,
SUM(NVL(a.nomal_amount,0)) AS request_amount,
SUM(NVL(a.request_amount,0) - NVL(a.nomal_amount,0)) AS difference_count
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6, out_data7,
out_data8, out_data9, out_data10
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id IN('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data5 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '22');
out_data6 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '22');
END SP_TRP007Q_13_TOTAL;
END PAC_GET_TRP007Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRP006Q_PREPAY AS
FUNCTION FUN_TRP006Q_CNT_1_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_sum NUMBER := 0;
BEGIN
BEGIN
SELECT NVL(COUNT(a.year||a.month||a.day),0)
INTO v_return_1_sum
FROM CARD_TRANS_DETAIL_INFO a, REJECT_CODE_INFO c, FARE_TERMINAL_INFO D
WHERE a.fare_office_id = '01'
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id = '21'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.year||a.month||a.day, b.join_card_name)
AND c.reject_kbn = '1'
AND a.worker_id = d.worker_id
AND a.fare_office_id = d.fare_office_id
AND a.booth_id = d.booth_id
AND a.year = d.year
AND a.month = d.month
AND a.day = d.day
AND a.work_times = d.work_times
AND d.Delete_yn = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id;
RETURN v_return_1_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_sum := 0;
END;
END FUN_TRP006Q_CNT_1_SUM;
FUNCTION FUN_TRP006Q_CNT_3_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_3_sum NUMBER := 0;
BEGIN
BEGIN
SELECT NVL(COUNT(a.year||a.month||a.day),0)
INTO v_return_3_sum
FROM CARD_TRANS_DETAIL_INFO a, REJECT_CODE_INFO c, FARE_TERMINAL_INFO D
WHERE a.fare_office_id = '03'
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id = '21'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.year||a.month||a.day, b.join_card_name)
AND c.reject_kbn = '1'
AND a.worker_id = d.worker_id
AND a.fare_office_id = d.fare_office_id
AND a.booth_id = d.booth_id
AND a.year = d.year
AND a.month = d.month
AND a.day = d.day
AND a.work_times = d.work_times
AND d.Delete_yn = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id;
RETURN v_return_3_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_sum := 0;
END;
END FUN_TRP006Q_CNT_3_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 3호 요금소 합계
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_13_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER
)
IS
BEGIN
out_title := '총 합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT
INTO out_data1
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE b.collect_id = '21'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
AND c.reject_kbn = '1'
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
and a.year || a.month || a.day || a.work_times = d.year || d.month || d.day || d.work_times
AND d.DELETE_YN = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id;
END SP_TRP006Q_13_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 요금소별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_1_SUB_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('01') || ' 소계';
SELECT a.fare_office_id AS office_id,
SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT
INTO out_name, out_data1
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE a.fare_office_id = '01'
AND b.collect_id = '21'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
AND c.reject_kbn = '1'
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
and a.year || a.month || a.day || a.work_times = d.year || d.month || d.day || d.work_times
AND d.DELETE_YN = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id
GROUP BY a.fare_office_id;
END SP_TRP006Q_1_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 요금소별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_3_SUB_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('03') || ' 소계';
SELECT a.fare_office_id AS office_id,
SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT
INTO out_name, out_data1
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE a.fare_office_id = '03'
AND b.collect_id = '21'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
AND c.reject_kbn = '1'
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
and a.year || a.month || a.day || a.work_times = d.year || d.month || d.day || d.work_times
AND d.DELETE_YN = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id
GROUP BY a.fare_office_id;
END SP_TRP006Q_3_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_1_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT VARCHAR2,
out_data2 OUT VARCHAR2,
out_data3 OUT VARCHAR2,
out_data4 OUT VARCHAR2
)
IS
CURSOR CUR IS
SELECT a.year||a.month||a.day AS yyyymmdd,
d.car_no AS car_no,
a.card_no AS card_no,
c.reject_full_name AS reject_full_name,
to_char(a.nomal_date, 'yyyymmdd') AS nomal_date
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE a.fare_office_id = '01'
AND b.collect_id = '21'
AND c.reject_kbn = '1'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
and a.year || a.month || a.day || a.work_times = d.year || d.month || d.day || d.work_times
AND d.DELETE_YN = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id
ORDER BY a.year||a.month||a.day, d.car_no;
TRP006Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP006Q_REC1 IN CUR LOOP
out_yyyymmdd := TRP006Q_REC1.yyyymmdd;
out_data1 := TRP006Q_REC1.car_no;
out_data2 := TRP006Q_REC1.card_no;
out_data3 := TRP006Q_REC1.reject_full_name;
out_data4 := TRP006Q_REC1.nomal_date;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP006Q_1_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_3_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT VARCHAR2,
out_data2 OUT VARCHAR2,
out_data3 OUT VARCHAR2,
out_data4 OUT VARCHAR2
)
IS
CURSOR CUR IS
SELECT a.year||a.month||a.day AS yyyymmdd,
d.car_no AS car_no,
a.card_no AS card_no,
c.reject_full_name AS reject_full_name,
to_char(a.nomal_date, 'yyyymmdd') AS nomal_date
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE a.fare_office_id = '03'
AND b.collect_id = '21'
AND c.reject_kbn = '1'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
and a.year || a.month || a.day || a.work_times = d.year || d.month || d.day || d.work_times
AND d.DELETE_YN = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id
ORDER BY a.year||a.month||a.day, d.car_no;
TRP006Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP006Q_REC1 IN CUR LOOP
out_yyyymmdd := TRP006Q_REC1.yyyymmdd;
out_data1 := TRP006Q_REC1.car_no;
out_data2 := TRP006Q_REC1.card_no;
out_data3 := TRP006Q_REC1.reject_full_name;
out_data4 := TRP006Q_REC1.nomal_date;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP006Q_3_DAILY_SUM;
END PAC_GET_TRP006Q_PREPAY;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.Pac_Get_Trp006q_Postpay AS
FUNCTION FUN_TRP006Q_CNT_1_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_sum NUMBER := 0;
BEGIN
BEGIN
SELECT NVL(COUNT(a.year||a.month||a.day),0)
INTO v_return_1_sum
FROM CARD_TRANS_DETAIL_INFO a, REJECT_CODE_INFO c, FARE_TERMINAL_INFO D
WHERE a.fare_office_id = '01'
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id = '22'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.year||a.month||a.day, b.join_card_name)
AND c.reject_kbn = '2'
AND a.worker_id = d.worker_id
AND a.fare_office_id = d.fare_office_id
AND a.booth_id = d.booth_id
AND a.year = d.year
AND a.month = d.month
AND a.day = d.day
AND a.work_times = d.work_times
AND d.Delete_yn = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id;
RETURN v_return_1_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_sum := 0;
END;
END FUN_TRP006Q_CNT_1_SUM;
FUNCTION FUN_TRP006Q_CNT_3_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_3_sum NUMBER := 0;
BEGIN
BEGIN
SELECT NVL(COUNT(a.year||a.month||a.day),0)
INTO v_return_3_sum
FROM CARD_TRANS_DETAIL_INFO a, REJECT_CODE_INFO c, FARE_TERMINAL_INFO D
WHERE a.fare_office_id = '03'
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id = '22'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.year||a.month||a.day, b.join_card_name)
AND c.reject_kbn = '2'
AND a.worker_id = d.worker_id
AND a.fare_office_id = d.fare_office_id
AND a.booth_id = d.booth_id
AND a.year = d.year
AND a.month = d.month
AND a.day = d.day
AND a.work_times = d.work_times
AND d.Delete_yn = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id;
RETURN v_return_3_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_sum := 0;
END;
END FUN_TRP006Q_CNT_3_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 3호 요금소 합계
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_13_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER
)
IS
BEGIN
out_title := '총 합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT
INTO out_data1
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE b.collect_id = '22'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
AND c.reject_kbn = '2'
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
and a.year || a.month || a.day || a.work_times = d.year || d.month || d.day || d.work_times
AND d.DELETE_YN = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id;
END SP_TRP006Q_13_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 요금소별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_1_SUB_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('01') || ' 소계';
SELECT a.fare_office_id AS office_id,
SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT
INTO out_name, out_data1
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE a.fare_office_id = '01'
AND b.collect_id = '22'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
AND c.reject_kbn = '2'
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
and a.year || a.month || a.day || a.work_times = d.year || d.month || d.day || d.work_times
AND d.DELETE_YN = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id
GROUP BY a.fare_office_id;
END SP_TRP006Q_1_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 요금소별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_3_SUB_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('03') || ' 소계';
SELECT a.fare_office_id AS office_id,
SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT
INTO out_name, out_data1
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE a.fare_office_id = '03'
AND b.collect_id = '22'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
AND c.reject_kbn = '2'
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
and a.year || a.month || a.day || a.work_times = d.year || d.month || d.day || d.work_times
AND d.DELETE_YN = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id
GROUP BY a.fare_office_id;
END SP_TRP006Q_3_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_1_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT VARCHAR2,
out_data2 OUT VARCHAR2,
out_data3 OUT VARCHAR2,
out_data4 OUT VARCHAR2
)
IS
CURSOR CUR IS
SELECT a.year||a.month||a.day AS yyyymmdd,
d.car_no AS car_no,
a.card_no AS card_no,
c.reject_full_name AS reject_full_name,
to_char(a.nomal_date, 'yyyymmdd') AS nomal_date
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE a.fare_office_id = '01'
AND b.collect_id = '22'
AND c.reject_kbn = '2'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
and a.year || a.month || a.day || a.work_times = d.year || d.month || d.day || d.work_times
AND d.DELETE_YN = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id
ORDER BY a.year||a.month||a.day, d.car_no;
TRP006Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP006Q_REC1 IN CUR LOOP
out_yyyymmdd := TRP006Q_REC1.yyyymmdd;
out_data1 := TRP006Q_REC1.car_no;
out_data2 := TRP006Q_REC1.card_no;
out_data3 := TRP006Q_REC1.reject_full_name;
out_data4 := TRP006Q_REC1.nomal_date;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP006Q_1_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_3_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT VARCHAR2,
out_data2 OUT VARCHAR2,
out_data3 OUT VARCHAR2,
out_data4 OUT VARCHAR2
)
IS
CURSOR CUR IS
SELECT a.year||a.month||a.day AS yyyymmdd,
d.car_no AS car_no,
a.card_no AS card_no,
c.reject_full_name AS reject_full_name,
to_char(a.nomal_date, 'yyyymmdd') AS nomal_date
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE a.fare_office_id = '03'
AND b.collect_id = '22'
AND c.reject_kbn = '2'
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
and a.year || a.month || a.day || a.work_times = d.year || d.month || d.day || d.work_times
AND d.DELETE_YN = '0'
and a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id
ORDER BY a.year||a.month||a.day, d.car_no;
TRP006Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP006Q_REC1 IN CUR LOOP
out_yyyymmdd := TRP006Q_REC1.yyyymmdd;
out_data1 := TRP006Q_REC1.car_no;
out_data2 := TRP006Q_REC1.card_no;
out_data3 := TRP006Q_REC1.reject_full_name;
out_data4 := TRP006Q_REC1.nomal_date;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP006Q_3_DAILY_SUM;
END PAC_GET_TRP006Q_POSTPAY;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRP006Q AS
FUNCTION FUN_TRP006Q_CNT_1_SUM
(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR
) RETURN NUMBER
IS
v_return_1_sum NUMBER := 0;
BEGIN
BEGIN
SELECT NVL(COUNT(a.year||a.month||a.day),0)
INTO v_return_1_sum
FROM CARD_TRANS_DETAIL_INFO a, REJECT_CODE_INFO c, FARE_TERMINAL_INFO D
WHERE a.fare_office_id = '01'
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE b.collect_id IN ('21', '22')
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.year||a.month||a.day, b.join_card_name)
AND c.reject_kbn IN ('1', '2')
AND a.worker_id = d.worker_id
AND a.fare_office_id = d.fare_office_id
AND a.booth_id = d.booth_id
AND a.year = d.year
AND a.month = d.month
AND a.day = d.day
AND a.work_times = d.work_times
AND d.Delete_yn = '0'
AND a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id;
RETURN v_return_1_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_sum := 0;
END;
END FUN_TRP006Q_CNT_1_SUM;
FUNCTION FUN_TRP006Q_CNT_3_SUM
(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR
) RETURN NUMBER
IS
v_return_3_sum NUMBER := 0;
BEGIN
BEGIN
SELECT NVL(COUNT(a.year||a.month||a.day),0)
INTO v_return_3_sum
FROM CARD_TRANS_DETAIL_INFO a, REJECT_CODE_INFO c, FARE_TERMINAL_INFO D
WHERE a.fare_office_id = '03'
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE b.collect_id IN ('21', '22')
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.year||a.month||a.day, b.join_card_name)
AND c.reject_kbn IN ('1', '2')
AND a.worker_id = d.worker_id
AND a.fare_office_id = d.fare_office_id
AND a.booth_id = d.booth_id
AND a.year = d.year
AND a.month = d.month
AND a.day = d.day
AND a.work_times = d.work_times
AND d.Delete_yn = '0'
AND a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id;
RETURN v_return_3_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_sum := 0;
END;
END FUN_TRP006Q_CNT_3_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 3호 요금소 합계
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_13_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER
)
IS
BEGIN
out_title := '총 합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT
INTO out_data1
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE b.collect_id IN ('21', '22')
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
AND c.reject_kbn IN ('1', '2')
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
AND a.year = d.year
AND a.month = d.month
AND a.day = d.day
AND a.work_times = d.work_times
AND d.DELETE_YN = '0'
AND a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id;
END SP_TRP006Q_13_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 요금소별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_1_SUB_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('01') || ' 소계';
SELECT a.fare_office_id AS office_id,
SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT
INTO out_name, out_data1
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21', '22')
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
AND c.reject_kbn IN ('1', '2')
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
AND a.year = d.year
AND a.month = d.month
AND a.day = d.day
AND a.work_times = d.work_times
AND d.DELETE_YN = '0'
AND a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id
GROUP BY a.fare_office_id;
END SP_TRP006Q_1_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 요금소별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_3_SUB_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('03') || ' 소계';
SELECT a.fare_office_id AS office_id,
SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT
INTO out_name, out_data1
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21', '22')
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
AND c.reject_kbn IN ('1', '2')
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
AND a.year = d.year
AND a.month = d.month
AND a.day = d.day
AND a.work_times = d.work_times
AND d.DELETE_YN = '0'
AND a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id
GROUP BY a.fare_office_id;
END SP_TRP006Q_3_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_1_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT VARCHAR2,
out_data2 OUT VARCHAR2,
out_data3 OUT VARCHAR2,
out_data4 OUT VARCHAR2
)
IS
CURSOR CUR IS
SELECT a.year||a.month||a.day AS yyyymmdd,
d.car_no AS car_no,
a.card_no AS card_no,
c.reject_full_name AS reject_full_name,
to_char(a.nomal_date,'yyyymmdd') AS nomal_date
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21', '22')
AND c.reject_kbn IN ('1', '2')
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
AND a.year = d.year
AND a.month = d.month
AND a.day = d.day
AND a.work_times = d.work_times
AND d.DELETE_YN = '0'
AND a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id
ORDER BY a.year||a.month||a.day, d.car_no;
TRP006Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP006Q_REC1 IN CUR LOOP
out_yyyymmdd := TRP006Q_REC1.yyyymmdd;
out_data1 := TRP006Q_REC1.car_no;
out_data2 := TRP006Q_REC1.card_no;
out_data3 := TRP006Q_REC1.reject_full_name;
out_data4 := TRP006Q_REC1.nomal_date;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP006Q_1_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP006Q_3_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT VARCHAR2,
out_data2 OUT VARCHAR2,
out_data3 OUT VARCHAR2,
out_data4 OUT VARCHAR2
)
IS
CURSOR CUR IS
SELECT a.year||a.month||a.day AS yyyymmdd,
d.car_no AS car_no,
a.card_no AS card_no,
c.reject_full_name AS reject_full_name,
to_char(a.nomal_date,'yyyymmdd') AS nomal_date
FROM CARD_TRANS_DETAIL_INFO a, JOIN_CARD_INFO b, REJECT_CODE_INFO c, FARE_TERMINAL_INFO d
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21', '22')
AND c.reject_kbn IN ('1', '2')
AND a.year||a.month||a.day BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
AND a.WORKER_ID = d.worker_id
AND a.FARE_OFFICE_ID = d.FARE_OFFICE_ID
AND a.booth_id = d.BOOTH_ID
AND a.year = d.year
AND a.month = d.month
AND a.day = d.day
AND a.work_times = d.work_times
AND d.DELETE_YN = '0'
AND a.reject_kbn = c.reject_kbn
AND a.reject_id = c.reject_id
ORDER BY a.year||a.month||a.day, d.car_no;
TRP006Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP006Q_REC1 IN CUR LOOP
out_yyyymmdd := TRP006Q_REC1.yyyymmdd;
out_data1 := TRP006Q_REC1.car_no;
out_data2 := TRP006Q_REC1.card_no;
out_data3 := TRP006Q_REC1.reject_full_name;
out_data4 := TRP006Q_REC1.nomal_date;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP006Q_3_DAILY_SUM;
END PAC_GET_TRP006Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRP005Q_PREPAY AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 합계 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP005Q_CNT_1(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_prepay_postpay NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_1_prepay_postpay
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name;
RETURN v_return_1_prepay_postpay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_prepay_postpay := 0;
END;
END FUN_TRP005Q_CNT_1;
FUNCTION FUN_TRP005Q_CNT_1_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_sum NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.pass_date))
INTO v_return_1_sum
FROM CARD_TRANS_HEAD_INFO a
WHERE a.fare_office_id = '01'
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name);
RETURN v_return_1_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_sum := 0;
END;
END FUN_TRP005Q_CNT_1_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP005Q_CNT_3(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_3_prepay_postpay NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_3_prepay_postpay
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name;
RETURN v_return_3_prepay_postpay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_prepay_postpay := 0;
END;
END FUN_TRP005Q_CNT_3;
FUNCTION FUN_TRP005Q_CNT_3_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_3_sum NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.pass_date))
INTO v_return_3_sum
FROM CARD_TRANS_HEAD_INFO a
WHERE a.fare_office_id = '03'
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name);
RETURN v_return_3_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_sum := 0;
END;
END FUN_TRP005Q_CNT_3_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 3호 요금소 합계
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_13_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := '총 합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '98');
END SP_TRP005Q_13_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 요금소별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_1_SUB_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('01') || ' 소계';
SELECT a.fare_office_id AS office_id,
SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_name, out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.fare_office_id;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '98');
END SP_TRP005Q_1_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 요금소별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_3_SUB_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('03') || ' 소계';
SELECT a.fare_office_id AS office_id,
SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_name, out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.fare_office_id;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '98');
END SP_TRP005Q_3_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_1_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date
ORDER BY a.pass_date;
TRP005Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR LOOP
-- out_title := '1호 일자별 소계';
out_title := '';
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_DATE(out_yyyymmdd, '99', '01', '21', '98');
out_data4 := FUN_COMMISSION_DATE(out_yyyymmdd, '99', '01', '21', '98');
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_1_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_3_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date
ORDER BY a.pass_date;
TRP005Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR LOOP
-- out_title := '3호 일자별 소계';
out_title := '';
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_DATE(out_yyyymmdd, '99', '03', '21', '98');
out_data4 := FUN_COMMISSION_DATE(out_yyyymmdd, '99', '03', '21', '98');
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_3_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호요금소 선후불 전체 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_1_PREPAY_POSTPAY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR_1_PREPAY IS
SELECT a.pass_date AS yyyymmdd,
b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '01', 1 , 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name
ORDER BY a.pass_date;
TRP005Q_REC1 CUR_1_PREPAY%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR_1_PREPAY LOOP
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '01', '21', '98',out_name);
out_data4 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '01', '21', '98',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR_1_PREPAY%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_1_PREPAY_POSTPAY;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호요금소 선후불 전체 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_3_PREPAY_POSTPAY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR_1_PREPAY IS
SELECT a.pass_date AS yyyymmdd,
b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '03', 1 , 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name
ORDER BY a.pass_date;
TRP005Q_REC1 CUR_1_PREPAY%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR_1_PREPAY LOOP
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '03', '21', '98',out_name);
out_data4 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '03', '21', '98',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR_1_PREPAY%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_3_PREPAY_POSTPAY;
END PAC_GET_TRP005Q_PREPAY;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRP005Q_POSTPAY AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 합계 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP005Q_CNT_1(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_prepay_postpay NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_1_prepay_postpay
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name;
RETURN v_return_1_prepay_postpay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_prepay_postpay := 0;
END;
END FUN_TRP005Q_CNT_1;
FUNCTION FUN_TRP005Q_CNT_1_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_sum NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.pass_date))
INTO v_return_1_sum
FROM CARD_TRANS_HEAD_INFO a
WHERE a.fare_office_id = '01'
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name);
RETURN v_return_1_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_sum := 0;
END;
END FUN_TRP005Q_CNT_1_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP005Q_CNT_3(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_3_prepay_postpay NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_3_prepay_postpay
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name;
RETURN v_return_3_prepay_postpay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_prepay_postpay := 0;
END;
END FUN_TRP005Q_CNT_3;
FUNCTION FUN_TRP005Q_CNT_3_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_3_sum NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.pass_date))
INTO v_return_3_sum
FROM CARD_TRANS_HEAD_INFO a
WHERE a.fare_office_id = '03'
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name);
RETURN v_return_3_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_sum := 0;
END;
END FUN_TRP005Q_CNT_3_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 3호 요금소 합계
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_13_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := '총 합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '22', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '22', '98');
END SP_TRP005Q_13_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 요금소별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_1_SUB_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('01') || ' 소계';
SELECT a.fare_office_id AS office_id,
SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_name, out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.fare_office_id;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '22', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '22', '98');
END SP_TRP005Q_1_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 요금소별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_3_SUB_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('03') || ' 소계';
SELECT a.fare_office_id AS office_id,
SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_name, out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.fare_office_id;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '22', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '22', '98');
END SP_TRP005Q_3_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_1_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date
ORDER BY a.pass_date;
TRP005Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR LOOP
-- out_title := '1호 일자별 소계';
out_title := '';
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_DATE(out_yyyymmdd, '99', '01', '22', '98');
out_data4 := FUN_COMMISSION_DATE(out_yyyymmdd, '99', '01', '22', '98');
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_1_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_3_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date
ORDER BY a.pass_date;
TRP005Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR LOOP
out_title := '';
-- out_title := '3호 일자별 소계';
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_DATE(out_yyyymmdd, '99', '03', '22', '98');
out_data4 := FUN_COMMISSION_DATE(out_yyyymmdd, '99', '03', '22', '98');
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_3_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호요금소 선후불 전체 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_1_PREPAY_POSTPAY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR_1_PREPAY IS
SELECT a.pass_date AS yyyymmdd,
b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '01', 1 , 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name
ORDER BY a.pass_date;
TRP005Q_REC1 CUR_1_PREPAY%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR_1_PREPAY LOOP
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '01', '22', '98',out_name);
out_data4 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '01', '22', '98',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR_1_PREPAY%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_1_PREPAY_POSTPAY;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호요금소 선후불 전체 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_3_PREPAY_POSTPAY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR_1_PREPAY IS
SELECT a.pass_date AS yyyymmdd,
b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '03', 1 , 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name
ORDER BY a.pass_date;
TRP005Q_REC1 CUR_1_PREPAY%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR_1_PREPAY LOOP
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '03', '22', '98',out_name);
out_data4 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '03', '22', '98',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR_1_PREPAY%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_3_PREPAY_POSTPAY;
END PAC_GET_TRP005Q_POSTPAY;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRP005Q_COMPANY AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 카드사별 전체건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP005Q_CARD_CNT(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_card_cnt NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_card_cnt
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN ( '01', '03')
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
RETURN v_return_card_cnt;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_card_cnt := 0;
END;
END FUN_TRP005Q_CARD_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 카드사별 1호 전체건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP005Q_CARD_1_CNT(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_card_cnt NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_card_cnt
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
RETURN v_return_card_cnt;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_card_cnt := 0;
END;
END FUN_TRP005Q_CARD_1_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 카드사별 3호 전체건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP005Q_CARD_3_CNT(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_card_cnt NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_card_cnt
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
RETURN v_return_card_cnt;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_card_cnt := 0;
END;
END FUN_TRP005Q_CARD_3_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호요금소 선후불 전체건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP005Q_CNT_1(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_prepay_postpay NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_1_prepay_postpay
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name;
RETURN v_return_1_prepay_postpay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_prepay_postpay := 0;
END;
END FUN_TRP005Q_CNT_1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호요금소 SUB건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP005Q_CNT_1_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_sum NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_1_sum
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
RETURN v_return_1_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_sum := 0;
END;
END FUN_TRP005Q_CNT_1_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호요금소 선후불 전체건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP005Q_CNT_3(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_3_prepay_postpay NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_3_prepay_postpay
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name;
RETURN v_return_3_prepay_postpay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_prepay_postpay := 0;
END;
END FUN_TRP005Q_CNT_3;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호요금소 SUB건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP005Q_CNT_3_SUB_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_3_sum NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_3_sum
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
RETURN v_return_3_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_sum := 0;
END;
END FUN_TRP005Q_CNT_3_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 3호 총 요금소 합계
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_13_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := '발행사별 총 합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '22');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '22');
END SP_TRP005Q_13_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 총 요금소 합계
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_1_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := '발행사별 1호 총 합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1 , 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '22');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '22');
END SP_TRP005Q_1_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 총 요금소 합계
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_3_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := '발행사별 3호 총 합계';
SELECT SUM(DECODE(a.fare_office_id, '03', 1 , 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '22');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '22');
END SP_TRP005Q_3_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 카드사별(1호, 3호) sub_total **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_CARD_SUB_TOTAL(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN ( '01', '03')
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
TRP005Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR LOOP
out_title := '카드사별 Sub Total';
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '22',out_name);
out_data4 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '22',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_CARD_SUB_TOTAL;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 카드사별(1호 sub_total) **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_CARD_SUB_1_TOTAL(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
TRP005Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR LOOP
out_title := '카드사별 '|| Fun_Tunnel_C('01');
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '22',out_name);
out_data4 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '22',out_name);
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_CARD_SUB_1_TOTAL;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 카드사별(3호 sub_total) **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_CARD_SUB_3_TOTAL(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
TRP005Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR LOOP
out_title := '카드사별 ' || Fun_Tunnel_C('03');
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '22',out_name);
out_data4 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '22',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_CARD_SUB_3_TOTAL;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 요금소 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_1_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR_DAILY1 IS
SELECT b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
TRP005Q_REC1 CUR_DAILY1%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR_DAILY1 LOOP
out_title := Fun_Tunnel_C('01') || ' 소계';
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '22',out_name);
out_data4 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '22',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR_DAILY1%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_1_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 요금소 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_3_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
TRP005Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR LOOP
out_title := Fun_Tunnel_C('03') || ' 소계';
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '22',out_name);
out_data4 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '22',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_3_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호요금소 선후불 전체 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_1_PREPAY_POSTPAY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR_1_PREPAY IS
SELECT b.join_card_name AS card_name,
a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '01', 1 , 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name, a.pass_date
ORDER BY b.join_card_name, a.pass_date ;
TRP005Q_REC1 CUR_1_PREPAY%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR_1_PREPAY LOOP
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '01', '21', '22',out_name);
out_data4 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '01', '21', '22',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR_1_PREPAY%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_1_PREPAY_POSTPAY;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호요금소 선후불 전체 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_3_PREPAY_POSTPAY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR_1_PREPAY IS
SELECT b.join_card_name AS card_name,
a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '03', 1 , 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name, a.pass_date
ORDER BY b.join_card_name, a.pass_date ;
TRP005Q_REC1 CUR_1_PREPAY%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR_1_PREPAY LOOP
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '03', '21', '22',out_name);
out_data4 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '03', '21', '22',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR_1_PREPAY%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_3_PREPAY_POSTPAY;
END PAC_GET_TRP005Q_COMPANY;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRP005Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 합계 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP005Q_CNT_1(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_prepay_postpay NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_1_prepay_postpay
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name;
RETURN v_return_1_prepay_postpay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_prepay_postpay := 0;
END;
END FUN_TRP005Q_CNT_1;
FUNCTION FUN_TRP005Q_CNT_1_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_sum NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.pass_date))
INTO v_return_1_sum
FROM CARD_TRANS_HEAD_INFO a
WHERE a.fare_office_id = '01'
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name);
RETURN v_return_1_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_sum := 0;
END;
END FUN_TRP005Q_CNT_1_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP005Q_CNT_3(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_3_prepay_postpay NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_3_prepay_postpay
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name;
RETURN v_return_3_prepay_postpay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_prepay_postpay := 0;
END;
END FUN_TRP005Q_CNT_3;
FUNCTION FUN_TRP005Q_CNT_3_SUM(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_3_sum NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.pass_date))
INTO v_return_3_sum
FROM CARD_TRANS_HEAD_INFO a
WHERE a.fare_office_id = '03'
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name);
RETURN v_return_3_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_sum := 0;
END;
END FUN_TRP005Q_CNT_3_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 3호 요금소 합계
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_13_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := '총 합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '22');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '22');
END SP_TRP005Q_13_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 요금소별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_1_SUB_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('01') || ' 소계';
SELECT a.fare_office_id AS office_id,
SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_name, out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.fare_office_id;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '22');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '22');
END SP_TRP005Q_1_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 요금소별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_3_SUB_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('03') || ' 소계';
SELECT a.fare_office_id AS office_id,
SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_name, out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.fare_office_id;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '22');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '22');
END SP_TRP005Q_3_SUB_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_1_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date
ORDER BY a.pass_date;
TRP005Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR LOOP
--out_title := FUN_TUNNEL_C('01') || ' 일자별 소계';
out_title := '';
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_DATE(out_yyyymmdd, '99', '01', '21', '22');
out_data4 := FUN_COMMISSION_DATE(out_yyyymmdd, '99', '01', '21', '22');
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_1_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_3_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date
ORDER BY a.pass_date;
TRP005Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR LOOP
-- out_title := FUN_TUNNEL_C('03') || ' 일자별 소계';
out_title := '';
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_DATE(out_yyyymmdd, '99', '03', '21', '22');
out_data4 := FUN_COMMISSION_DATE(out_yyyymmdd, '99', '03', '21', '22');
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_3_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 1호요금소 선후불 전체 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_1_PREPAY_POSTPAY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR_1_PREPAY IS
SELECT a.pass_date AS yyyymmdd,
b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '01', 1 , 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name
ORDER BY a.pass_date;
TRP005Q_REC1 CUR_1_PREPAY%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR_1_PREPAY LOOP
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '01', '21', '22',out_name);
out_data4 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '01', '21', '22',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR_1_PREPAY%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_1_PREPAY_POSTPAY;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 3호요금소 선후불 전체 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP005Q_3_PREPAY_POSTPAY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR_1_PREPAY IS
SELECT a.pass_date AS yyyymmdd,
b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '03', 1 , 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name
ORDER BY a.pass_date;
TRP005Q_REC1 CUR_1_PREPAY%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR_1_PREPAY LOOP
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '03', '21', '22',out_name);
out_data4 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '99', '03', '21', '22',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR_1_PREPAY%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP005Q_3_PREPAY_POSTPAY;
END PAC_GET_TRP005Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRP004Q_PREPAY AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP004Q_DAILY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_sum NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.pass_date))
INTO v_return_1_sum
FROM CARD_TRANS_HEAD_INFO a
WHERE a.fare_office_id IN('01', '03')
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name);
RETURN v_return_1_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_sum := 0;
END;
END FUN_TRP004Q_DAILY;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 카드발행사별 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP004Q_CNT(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_prepay_postpay NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_1_prepay_postpay
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name;
RETURN v_return_1_prepay_postpay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_prepay_postpay := 0;
END;
END FUN_TRP004Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 총 합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP004Q_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := '합 계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '98');
END SP_TRP004Q_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP004Q_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date
ORDER BY a.pass_date;
TRP005Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR LOOP
out_title := '일자별 소계';
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_DATE(out_yyyymmdd, '01', '03', '21', '98');
out_data4 := FUN_COMMISSION_DATE(out_yyyymmdd, '01', '03', '21', '98');
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP004Q_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 카드발행사별 선후불 전체 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP004Q_COMPANY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR_1_PREPAY IS
SELECT a.pass_date AS yyyymmdd,
b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '01', 1 , '03', 1,0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name
ORDER BY a.pass_date;
TRP005Q_REC1 CUR_1_PREPAY%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR_1_PREPAY LOOP
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '01', '03', '21', '98',out_name);
out_data4 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '01', '03', '21', '98',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR_1_PREPAY%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP004Q_COMPANY;
END PAC_GET_TRP004Q_PREPAY;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRP004Q_POSTPAY AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP004Q_DAILY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_sum NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.pass_date))
INTO v_return_1_sum
FROM CARD_TRANS_HEAD_INFO a
WHERE a.fare_office_id IN('01', '03')
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name);
RETURN v_return_1_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_sum := 0;
END;
END FUN_TRP004Q_DAILY;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 카드발행사별 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP004Q_CNT(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_prepay_postpay NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_1_prepay_postpay
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name;
RETURN v_return_1_prepay_postpay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_prepay_postpay := 0;
END;
END FUN_TRP004Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 총 합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP004Q_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := '합 계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '22', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '22', '98');
END SP_TRP004Q_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP004Q_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date
ORDER BY a.pass_date;
TRP005Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR LOOP
out_title := '일자별 소계';
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_DATE(out_yyyymmdd, '01', '03', '22', '98');
out_data4 := FUN_COMMISSION_DATE(out_yyyymmdd, '01', '03', '22', '98');
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP004Q_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 카드발행사별 선후불 전체 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP004Q_COMPANY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR_1_PREPAY IS
SELECT a.pass_date AS yyyymmdd,
b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '01', 1 , '03', 1,0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name
ORDER BY a.pass_date;
TRP005Q_REC1 CUR_1_PREPAY%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR_1_PREPAY LOOP
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '01', '03', '22', '98',out_name);
out_data4 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '01', '03', '22', '98',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR_1_PREPAY%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP004Q_COMPANY;
END PAC_GET_TRP004Q_POSTPAY;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRP004Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP004Q_DAILY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_sum NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.pass_date))
INTO v_return_1_sum
FROM CARD_TRANS_HEAD_INFO a
WHERE a.fare_office_id IN('01', '03')
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name);
RETURN v_return_1_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_sum := 0;
END;
END FUN_TRP004Q_DAILY;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 카드발행사별 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP004Q_CNT(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_prepay_postpay NUMBER := 0;
BEGIN
BEGIN
SELECT SUM(COUNT(DISTINCT(b.join_card_name)))
INTO v_return_1_prepay_postpay
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name;
RETURN v_return_1_prepay_postpay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_prepay_postpay := 0;
END;
END FUN_TRP004Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 총 합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP004Q_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := '합 계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '22');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '22');
END SP_TRP004Q_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP004Q_DAILY_SUM(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date
ORDER BY a.pass_date;
TRP005Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR LOOP
out_title := '일자별 소계';
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_DATE(out_yyyymmdd, '01', '03', '21', '22');
out_data4 := FUN_COMMISSION_DATE(out_yyyymmdd, '01', '03', '21', '22');
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP004Q_DAILY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 카드발행사별 선후불 전체 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP004Q_COMPANY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR_1_PREPAY IS
SELECT a.pass_date AS yyyymmdd,
b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '01', 1 , '03', 1,0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name
ORDER BY a.pass_date;
TRP005Q_REC1 CUR_1_PREPAY%ROWTYPE;
BEGIN
FOR TRP005Q_REC1 IN CUR_1_PREPAY LOOP
out_yyyymmdd := TRP005Q_REC1.yyyymmdd;
out_name := TRP005Q_REC1.card_name;
out_data1 := TRP005Q_REC1.COUNT;
out_data2 := TRP005Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '01', '03', '21', '22',out_name);
out_data4 := FUN_COMMISSION_COMPANY(out_yyyymmdd, '01', '03', '21', '22',out_name);
out_data5 := TRP005Q_REC1.discount_amount;
out_data6 := TRP005Q_REC1.request_amount;
EXIT WHEN CUR_1_PREPAY%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP004Q_COMPANY;
END PAC_GET_TRP004Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRP003Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 합계 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP003Q_CNT_1_PREPAY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_prepay NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.join_card_number))
INTO v_return_1_prepay
FROM CARD_TRANS_HEAD_INFO a
WHERE EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE fare_office_id = '01'
AND collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number) ;
RETURN v_return_1_prepay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_prepay := 0;
END;
END FUN_TRP003Q_CNT_1_PREPAY;
FUNCTION FUN_TRP003Q_CNT_1_POSTPAY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_postpay NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.join_card_number))
INTO v_return_1_postpay
FROM CARD_TRANS_HEAD_INFO a
WHERE EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE fare_office_id = '01'
AND collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number) ;
RETURN v_return_1_postpay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_postpay := 0;
END;
END FUN_TRP003Q_CNT_1_POSTPAY;
FUNCTION FUN_TRP003Q_CNT_3_PREPAY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_3_prepay NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.join_card_number))
INTO v_return_3_prepay
FROM CARD_TRANS_HEAD_INFO a
WHERE EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE fare_office_id = '03'
AND collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number) ;
RETURN v_return_3_prepay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_prepay := 0;
END;
END FUN_TRP003Q_CNT_3_PREPAY;
FUNCTION FUN_TRP003Q_CNT_3_POSTPAY(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_3_postpay NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.join_card_number))
INTO v_return_3_postpay
FROM CARD_TRANS_HEAD_INFO a
WHERE EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE fare_office_id = '03'
AND collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number) ;
RETURN v_return_3_postpay;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_3_postpay := 0;
END;
END FUN_TRP003Q_CNT_3_POSTPAY;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 발행사별 01호 선불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP003Q_1_PREPAY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR_1_PREPAY IS
SELECT b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT,
SUM(NVL(a.Request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id = '21' --선불
AND a.pass_Date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
TRP003Q_REC1 CUR_1_PREPAY%ROWTYPE;
BEGIN
FOR TRP003Q_REC1 IN CUR_1_PREPAY LOOP
out_name := TRP003Q_REC1.card_name;
out_data1 := TRP003Q_REC1.COUNT;
out_data2 := TRP003Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '98',out_name);
out_data4 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '98',out_name);
out_data5 := TRP003Q_REC1.discount_amount;
out_data6 := TRP003Q_REC1.request_amount;
EXIT WHEN CUR_1_PREPAY%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP003Q_1_PREPAY;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 발행사별 01호 후불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP003Q_1_POSTPAY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id = '22' --후불
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
TRP003Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP003Q_REC1 IN CUR LOOP
out_name := TRP003Q_REC1.card_name;
out_data1 := TRP003Q_REC1.COUNT;
out_data2 := TRP003Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '22', '98',out_name);
out_data4 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '22', '98',out_name);
out_data5 := TRP003Q_REC1.discount_amount;
out_data6 := TRP003Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP003Q_1_POSTPAY;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 발행사별 03호 선불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP003Q_3_PREPAY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id = '21' --선불
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
TRP003Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP003Q_REC1 IN CUR LOOP
out_name := TRP003Q_REC1.card_name;
out_data1 := TRP003Q_REC1.COUNT;
out_data2 := TRP003Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '98',out_name);
out_data4 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '98',out_name);
out_data5 := TRP003Q_REC1.discount_amount;
out_data6 := TRP003Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP003Q_3_PREPAY;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 발행사별 03호 후불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP003Q_3_POSTPAY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_name OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT b.join_card_name AS card_name,
SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id = '22' --후불
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY b.join_card_name;
TRP003Q_REC1 CUR%ROWTYPE;
BEGIN
FOR TRP003Q_REC1 IN CUR LOOP
out_name := TRP003Q_REC1.card_name;
out_data1 := TRP003Q_REC1.COUNT;
out_data2 := TRP003Q_REC1.lavy_amount;
out_data3 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '22', '98',out_name);
out_data4 := FUN_COMMISSION_ONLY_COMPANY(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '22', '98',out_name);
out_data5 := TRP003Q_REC1.discount_amount;
out_data6 := TRP003Q_REC1.request_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP003Q_3_POSTPAY;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 01호 선불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP003Q_1_PREPAY_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('01') ||' 선불합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id = '21' --선불
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '98');
END SP_TRP003Q_1_PREPAY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 01호 후불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP003Q_1_POSTPAY_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('01') ||' 후불합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id = '22' --선불
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '22', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '22', '98');
END SP_TRP003Q_1_POSTPAY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 03호 선불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP003Q_3_PREPAY_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('03') ||' 선불합계';
SELECT SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id = '21' --선불
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '98');
END SP_TRP003Q_3_PREPAY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 03호 후불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP003Q_3_POSTPAY_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('03') ||' 후불합계';
SELECT SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id = '22' --선불
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '22', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '22', '98');
END SP_TRP003Q_3_POSTPAY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 01호 선후불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_1_PREPAY_POSTPAY_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('01') ||' 선후불합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '01'
AND b.collect_id IN ('21' , '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '22');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '01', '21', '22');
END SP_1_PREPAY_POSTPAY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 03호선후불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_3_PREPAY_POSTPAY_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := Fun_Tunnel_C('03') ||' 선후불합계';
SELECT SUM(DECODE(a.fare_office_id, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id = '03'
AND b.collect_id IN ('21' , '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '22');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '99', '03', '21', '22');
END SP_3_PREPAY_POSTPAY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 01_03호 선불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP003Q_13_PREPAY_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := '선불합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN ('01', '03')
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '98');
END SP_TRP003Q_13_PREPAY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 01_03호 후불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP003Q_13_POSTPAY_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := '후불합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN ('01', '03')
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '22', '98');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '22', '98');
END SP_TRP003Q_13_POSTPAY_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 01_03호 선후불합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_13_PREPAY_POSTPAY_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER,
out_data3 OUT NUMBER,
out_data4 OUT NUMBER,
out_data5 OUT NUMBER,
out_data6 OUT NUMBER
)
IS
BEGIN
out_title := '선후불합계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount,
0 AS sub_total,
0 AS charge_amount,
0 AS discount_amount,
--SUM(NVL(a.charge_amount,0) + NVL(a.discount_amount,0)) AS sub_total,
--SUM(NVL(a.charge_amount,0)) AS charge_amount,
--SUM(NVL(a.discount_amount,0)) AS discount_amount,
SUM(NVL(a.nomal_amount,0)) AS request_amount
INTO out_data1, out_data2, out_data3, out_data4, out_data5, out_data6
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN ('01', '03')
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
out_data3 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '22');
out_data4 := FUN_COMMISSION_TOTAL(v_from_yyyymmdd, v_to_yyyymmdd, '01', '03', '21', '22');
END SP_13_PREPAY_POSTPAY_SUM;
END PAC_GET_TRP003Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRP002Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 합계 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP002Q_CNT( v_office IN CHAR,v_booth_id IN CHAR,v_gubun IN CHAR,
v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2 ) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
-- 일별
IF v_gubun = '1' THEN
SELECT COUNT(*)
INTO v_rc
FROM (SELECT YEAR,
MONTH,
DAY,
COUNT(*)
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
GROUP BY YEAR,MONTH,DAY);
-- 월별
ELSIF v_gubun = '2' THEN
SELECT COUNT(*)
INTO v_rc
FROM (SELECT YEAR,MONTH,COUNT(*)
FROM MONTH_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR||MONTH BETWEEN SUBSTR(v_from_dt,1,6) AND SUBSTR(v_to_dt,1,6)
GROUP BY YEAR,MONTH);
END IF;
RETURN v_rc;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc ;
END FUN_TRP002Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (일별) 징수원 일별 근무현황 (Detail) **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP002Q_1(
v_row IN NUMBER,
v_office IN CHAR,
v_from_dt IN CHAR,
v_to_dt IN CHAR,
pn_worker_name OUT varchar2,
pn_count OUT NUMBER,
pn_mmdd OUT varchar2,
pn_si_bun OUT varchar2
)
IS
CURSOR CUR IS
select b.worker_name f_aa,
(a.month || a.day) f_bb,
count(distinct(b.worker_name)) f_cc,
sum(nvl(to_number(substr(a.work_time, 1,2)),0)) +
round((sum(nvl(to_number(substr(a.work_time, 3,4)),0)) / 60),0) || '시간' ||
mod(sum(nvl(to_number(substr(a.work_time, 3,4)),0)) , 60) || '분' f_dd
from worker_work_info a, worker_info b
where a.worker_id = b.worker_id
and a.fare_office_id like v_office
and (a.year || a.month || a.day) between v_from_dt and v_to_dt
group by b.worker_name,(a.month || a.day);
TRP002Q_REC1 CUR%ROWTYPE;
BEGIN
pn_count := 0;
FOR TRA000Q_REC1 IN CUR LOOP
pn_worker_name := TRA000Q_REC1.f_aa;
pn_mmdd := substr(TRA000Q_REC1.f_bb,1,2) || '/' || substr(TRA000Q_REC1.f_bb,3,4);
pn_count := TRA000Q_REC1.f_cc;
pn_si_bun := TRA000Q_REC1.f_dd;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP002Q_1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (월별) 징수원 월별 근무현황 (Detail) **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP002Q_2(v_row IN NUMBER,
v_office IN CHAR,
v_year IN CHAR,
pn_worker_name OUT varchar2,
pn_count OUT NUMBER,
pn_mm OUT varchar2,
pn_si_bun OUT varchar2)
IS
CURSOR CUR IS
select b.worker_name f_aa,
a.month f_bb,
count(distinct(b.worker_name)) f_cc,
sum(nvl(to_number(substr(a.work_time, 1,2)),0)) +
round((sum(nvl(to_number(substr(a.work_time, 3,4)),0)) / 60),0) || '시간' ||
mod(sum(nvl(to_number(substr(a.work_time, 3,4)),0)) , 60) || '분' f_dd
from worker_work_info a, worker_info b
where a.worker_id = b.worker_id
and a.fare_office_id like v_office
and a.year = v_year
group by b.worker_name, a.month;
TRP002Q_REC2 CUR%ROWTYPE;
BEGIN
pn_count := 0;
FOR TRA000Q_REC2 IN CUR LOOP
pn_worker_name := TRA000Q_REC2.f_aa;
pn_mm := TRA000Q_REC2.f_bb || '월';
pn_count := TRA000Q_REC2.f_cc;
pn_si_bun := TRA000Q_REC2.f_dd;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP002Q_2;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일별 징수원 근무 현황 (summary) **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP002Q_SUM1(v_row IN NUMBER,
v_office IN CHAR,
v_from_dt IN CHAR,
v_to_dt IN CHAR,
pn_worker_name OUT varchar2,
pn_count OUT NUMBER,
pn_si_bun OUT varchar2,
g_title OUT varchar2 )
IS
CURSOR CUR IS
select b.worker_name f_aa,
count(distinct(b.worker_name)) f_bb,
sum(nvl(to_number(substr(a.work_time, 1,2)),0)) +
round((sum(nvl(to_number(substr(a.work_time, 3,4)),0)) / 60),0) || '시간' ||
mod(sum(nvl(to_number(substr(a.work_time, 3,4)),0)) , 60) || '분' f_cc
from worker_work_info a, worker_info b
where a.worker_id = b.worker_id
and a.fare_office_id like v_office
and (a.year || a.month || a.day) between v_from_dt and v_to_dt
group by b.worker_name;
TRP002Q_SUM1 CUR%ROWTYPE;
BEGIN
pn_count := 0;
FOR TRP002Q_SUM1 IN CUR LOOP
pn_worker_name := TRP002Q_SUM1.f_aa;
pn_count := TRP002Q_SUM1.f_bb;
pn_si_bun := TRP002Q_SUM1.f_cc;
g_title := '합 계';
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP002Q_SUM1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 월별 징수원 근무 현황 (summary) **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP002Q_SUM2( v_row IN NUMBER,
v_office IN CHAR,
v_year IN CHAR,
pn_worker_name OUT varchar2,
pn_count OUT NUMBER,
pn_si_bun OUT varchar2,
g_title OUT varchar2 )
IS
CURSOR CUR IS
select b.worker_name f_aa,
count(distinct(b.worker_name)) f_bb,
sum(nvl(to_number(substr(a.work_time, 1,2)),0)) +
round((sum(nvl(to_number(substr(a.work_time, 3,4)),0)) / 60),0) || '시간' ||
mod(sum(nvl(to_number(substr(a.work_time, 3,4)),0)) , 60) || '분' f_cc
from worker_work_info a, worker_info b
where a.worker_id = b.worker_id
and a.fare_office_id like v_office
and a.year = v_year;
TRP002Q_SUM2 CUR%ROWTYPE;
BEGIN
pn_count := 0;
FOR TRP002Q_SUM2 IN CUR LOOP
pn_worker_name := TRP002Q_SUM2.f_aa;
pn_count := TRP002Q_SUM2.f_bb;
pn_si_bun := TRP002Q_SUM2.f_cc;
g_title := '합 계';
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP002Q_SUM2;
END PAC_GET_TRP002Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.Pac_Get_Trp001q_Prepay AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP001Q_TOTAL(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_sum NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.pass_date))
INTO v_return_1_sum
FROM CARD_TRANS_HEAD_INFO a
WHERE a.fare_office_id IN('01', '03')
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name);
RETURN v_return_1_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_sum := 0;
END;
END FUN_TRP001Q_TOTAL;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 총 합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP001Q_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER
)
IS
BEGIN
out_title := '합 계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount
INTO out_data1,
out_data2
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
END SP_TRP001Q_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP001Q_DAILY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount
FROM CARD_TRANS_HEAD_INFO a,
JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id = '21'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date
ORDER BY a.pass_date ;
TRP001Q_CUR CUR%ROWTYPE;
BEGIN
FOR TRP001Q_CUR IN CUR LOOP
out_yyyymmdd := TRP001Q_CUR.yyyymmdd;
out_data1 := TRP001Q_CUR.COUNT;
out_data2 := TRP001Q_CUR.lavy_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP001Q_DAILY;
END Pac_Get_Trp001q_Prepay;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.Pac_Get_Trp001q_Postpay AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP001Q_TOTAL(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_sum NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.pass_date))
INTO v_return_1_sum
FROM CARD_TRANS_HEAD_INFO a
WHERE a.fare_office_id IN('01', '03')
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name);
RETURN v_return_1_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_sum := 0;
END;
END FUN_TRP001Q_TOTAL;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 총 합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP001Q_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER
)
IS
BEGIN
out_title := '합 계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount
INTO out_data1,
out_data2
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
END SP_TRP001Q_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP001Q_DAILY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount
FROM CARD_TRANS_HEAD_INFO a,
JOIN_CARD_INFO b
WHERE a.fare_office_id IN('01', '03')
AND b.collect_id = '22'
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date
ORDER BY a.pass_date ;
TRP001Q_CUR CUR%ROWTYPE;
BEGIN
FOR TRP001Q_CUR IN CUR LOOP
out_yyyymmdd := TRP001Q_CUR.yyyymmdd;
out_data1 := TRP001Q_CUR.COUNT;
out_data2 := TRP001Q_CUR.lavy_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP001Q_DAILY;
END Pac_Get_Trp001q_Postpay;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.Pac_Get_Trp001q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRP001Q_TOTAL(v_from_yyyymmdd IN CHAR, v_to_yyyymmdd IN CHAR) RETURN NUMBER
IS
v_return_1_sum NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(DISTINCT(a.pass_date))
INTO v_return_1_sum
FROM CARD_TRANS_HEAD_INFO a
WHERE a.fare_office_id IN('01', '03')
AND EXISTS (SELECT *
FROM JOIN_CARD_INFO b
WHERE collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date, b.join_card_name);
RETURN v_return_1_sum;
EXCEPTION WHEN NO_DATA_FOUND THEN v_return_1_sum := 0;
END;
END FUN_TRP001Q_TOTAL;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 총 합계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP001Q_SUM(
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_title OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER
)
IS
BEGIN
out_title := '합 계';
SELECT SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount
INTO out_data1,
out_data2
FROM CARD_TRANS_HEAD_INFO a, JOIN_CARD_INFO b
WHERE a.fare_office_id IN ('01', '03')
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number;
END SP_TRP001Q_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRP001Q_DAILY(
v_row IN NUMBER,
v_from_yyyymmdd IN CHAR,
v_to_yyyymmdd IN CHAR,
out_yyyymmdd OUT VARCHAR2,
out_data1 OUT NUMBER,
out_data2 OUT NUMBER
)
IS
CURSOR CUR IS
SELECT a.pass_date AS yyyymmdd,
SUM(DECODE(a.fare_office_id, '01', 1, '03', 1, 0)) AS COUNT,
SUM(NVL(a.request_amount,0)) AS lavy_amount
FROM CARD_TRANS_HEAD_INFO a,
JOIN_CARD_INFO b
WHERE a.fare_office_id IN ('01', '03')
AND b.collect_id IN ('21', '22')
AND a.pass_date BETWEEN v_from_yyyymmdd AND v_to_yyyymmdd
AND a.fare_office_id = b.fare_office_id
AND a.join_card_number = b.join_card_number
GROUP BY a.pass_date
ORDER BY a.pass_DATE ;
TRP001Q_CUR CUR%ROWTYPE;
BEGIN
FOR TRP001Q_CUR IN CUR LOOP
out_yyyymmdd := TRP001Q_CUR.yyyymmdd;
out_data1 := TRP001Q_CUR.COUNT;
out_data2 := TRP001Q_CUR.lavy_amount;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRP001Q_DAILY;
END Pac_Get_Trp001q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRN000Q_1 AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 합계 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRN000Q_CNT( v_office IN CHAR,v_booth_id IN CHAR,v_gubun IN CHAR,
v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2 ) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
-- 일별
IF v_gubun = '1' THEN
SELECT COUNT(*)
INTO v_rc
FROM (SELECT YEAR,
MONTH,
DAY,
COUNT(*)
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
GROUP BY YEAR,MONTH,DAY);
-- 월별
ELSIF v_gubun = '2' THEN
SELECT COUNT(*)
INTO v_rc
FROM (SELECT YEAR,MONTH,COUNT(*)
FROM MONTH_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR||MONTH BETWEEN SUBSTR(v_from_dt,1,6) AND SUBSTR(v_to_dt,1,6)
GROUP BY YEAR,MONTH);
END IF;
RETURN v_rc;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc ;
END FUN_TRN000Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (일별) 징수원 일별 근무현황 (Detail) **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRN000Q_1(
v_row IN NUMBER,
v_office IN CHAR,
v_from_dt IN CHAR,
v_to_dt IN CHAR,
pn_worker_name OUT varchar2,
pn_count OUT NUMBER,
pn_mmdd OUT varchar2,
pn_si_bun OUT varchar2
)
IS
CURSOR CUR IS
select b.worker_name f_aa,
(a.month || a.day) f_bb,
count(distinct(b.worker_name)) f_cc,
sum(nvl(to_number(substr(a.work_time, 1,2)),0)) +
round((sum(nvl(to_number(substr(a.work_time, 3,4)),0)) / 60),0) || '시간' ||
mod(sum(nvl(to_number(substr(a.work_time, 3,4)),0)) , 60) || '분' f_dd
from worker_work_info a, worker_info b
where a.worker_id = b.worker_id
and a.fare_office_id like v_office
and (a.year || a.month || a.day) between v_from_dt and v_to_dt
group by b.worker_name,(a.month || a.day);
TRN000Q_REC1 CUR%ROWTYPE;
BEGIN
pn_count := 0;
FOR TRA000Q_REC1 IN CUR LOOP
pn_worker_name := TRA000Q_REC1.f_aa;
pn_mmdd := substr(TRA000Q_REC1.f_bb,1,2) || '/' || substr(TRA000Q_REC1.f_bb,3,4);
pn_count := TRA000Q_REC1.f_cc;
pn_si_bun := TRA000Q_REC1.f_dd;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRN000Q_1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (월별) 징수원 월별 근무현황 (Detail) **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRN000Q_2(v_row IN NUMBER,
v_office IN CHAR,
v_year IN CHAR,
pn_worker_name OUT varchar2,
pn_count OUT NUMBER,
pn_mm OUT varchar2,
pn_si_bun OUT varchar2)
IS
CURSOR CUR IS
select b.worker_name f_aa,
a.month f_bb,
count(distinct(b.worker_name)) f_cc,
sum(nvl(to_number(substr(a.work_time, 1,2)),0)) +
round((sum(nvl(to_number(substr(a.work_time, 3,4)),0)) / 60),0) || '시간' ||
mod(sum(nvl(to_number(substr(a.work_time, 3,4)),0)) , 60) || '분' f_dd
from worker_work_info a, worker_info b
where a.worker_id = b.worker_id
and a.fare_office_id like v_office
and a.year = v_year
group by b.worker_name, a.month;
TRN000Q_REC2 CUR%ROWTYPE;
BEGIN
pn_count := 0;
FOR TRA000Q_REC2 IN CUR LOOP
pn_worker_name := TRA000Q_REC2.f_aa;
pn_mm := TRA000Q_REC2.f_bb || '월';
pn_count := TRA000Q_REC2.f_cc;
pn_si_bun := TRA000Q_REC2.f_dd;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRN000Q_2;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일별 징수원 근무 현황 (summary) **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRN000Q_SUM1(v_row IN NUMBER,
v_office IN CHAR,
v_from_dt IN CHAR,
v_to_dt IN CHAR,
pn_worker_name OUT varchar2,
pn_count OUT NUMBER,
pn_si_bun OUT varchar2,
g_title OUT varchar2 )
IS
CURSOR CUR IS
select b.worker_name f_aa,
count(distinct(b.worker_name)) f_bb,
sum(nvl(to_number(substr(a.work_time, 1,2)),0)) +
round((sum(nvl(to_number(substr(a.work_time, 3,4)),0)) / 60),0) || '시간' ||
mod(sum(nvl(to_number(substr(a.work_time, 3,4)),0)) , 60) || '분' f_cc
from worker_work_info a, worker_info b
where a.worker_id = b.worker_id
and a.fare_office_id like v_office
and (a.year || a.month || a.day) between v_from_dt and v_to_dt
group by b.worker_name;
TRN000Q_SUM1 CUR%ROWTYPE;
BEGIN
pn_count := 0;
FOR TRN000Q_SUM1 IN CUR LOOP
pn_worker_name := TRN000Q_SUM1.f_aa;
pn_count := TRN000Q_SUM1.f_bb;
pn_si_bun := TRN000Q_SUM1.f_cc;
g_title := '합 계';
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRN000Q_SUM1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 월별 징수원 근무 현황 (summary) **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRN000Q_SUM2( v_row IN NUMBER,
v_office IN CHAR,
v_year IN CHAR,
pn_worker_name OUT varchar2,
pn_count OUT NUMBER,
pn_si_bun OUT varchar2,
g_title OUT varchar2 )
IS
CURSOR CUR IS
select b.worker_name f_aa,
count(distinct(b.worker_name)) f_bb,
sum(nvl(to_number(substr(a.work_time, 1,2)),0)) +
round((sum(nvl(to_number(substr(a.work_time, 3,4)),0)) / 60),0) || '시간' ||
mod(sum(nvl(to_number(substr(a.work_time, 3,4)),0)) , 60) || '분' f_cc
from worker_work_info a, worker_info b
where a.worker_id = b.worker_id
and a.fare_office_id like v_office
and a.year = v_year;
TRN000Q_SUM2 CUR%ROWTYPE;
BEGIN
pn_count := 0;
FOR TRN000Q_SUM2 IN CUR LOOP
pn_worker_name := TRN000Q_SUM2.f_aa;
pn_count := TRN000Q_SUM2.f_bb;
pn_si_bun := TRN000Q_SUM2.f_cc;
g_title := '합 계';
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRN000Q_SUM2;
END PAC_GET_TRN000Q_1;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRM000Q AS
PROCEDURE SP_TRM000Q(
v_office IN CHAR, v_worker IN CHAR, v_stt_date IN CHAR, v_end_date IN CHAR,
v_1st_01 OUT NUMBER, v_1st_02 OUT NUMBER, v_1st_03 OUT NUMBER, v_1st_04 OUT NUMBER,
v_1st_05 OUT NUMBER, v_1st_06 OUT NUMBER, v_1st_07 OUT NUMBER, v_1st_08 OUT NUMBER,
v_1st_09 OUT NUMBER, v_1st_10 OUT NUMBER, v_1st_11 OUT NUMBER, v_1st_12 OUT NUMBER,
v_1st_13 OUT NUMBER, v_1st_14 OUT NUMBER,
v_2st_01 OUT NUMBER, v_2st_02 OUT NUMBER, v_2st_03 OUT NUMBER, v_2st_04 OUT NUMBER,
v_2st_05 OUT NUMBER, v_2st_06 OUT NUMBER, v_2st_07 OUT NUMBER, v_2st_08 OUT NUMBER,
v_2st_09 OUT NUMBER, v_2st_10 OUT NUMBER, v_2st_11 OUT NUMBER, v_2st_12 OUT NUMBER,
v_2st_13 OUT NUMBER, v_2st_14 OUT NUMBER,
v_3st_01 OUT NUMBER, v_3st_02 OUT NUMBER, v_3st_03 OUT NUMBER, v_3st_04 OUT NUMBER,
v_3st_05 OUT NUMBER, v_3st_06 OUT NUMBER, v_3st_07 OUT NUMBER, v_3st_08 OUT NUMBER,
v_3st_09 OUT NUMBER, v_3st_10 OUT NUMBER, v_3st_11 OUT NUMBER, v_3st_12 OUT NUMBER,
v_3st_13 OUT NUMBER, v_3st_14 OUT NUMBER,
v_4st_01 OUT NUMBER, v_4st_02 OUT NUMBER, v_4st_03 OUT NUMBER, v_4st_04 OUT NUMBER,
v_4st_05 OUT NUMBER, v_4st_06 OUT NUMBER, v_4st_07 OUT NUMBER, v_4st_08 OUT NUMBER,
v_4st_09 OUT NUMBER, v_4st_10 OUT NUMBER, v_4st_11 OUT NUMBER, v_4st_12 OUT NUMBER,
v_4st_13 OUT NUMBER, v_4st_14 OUT NUMBER,
v_5st_01 OUT NUMBER, v_5st_02 OUT NUMBER, v_5st_03 OUT NUMBER, v_5st_04 OUT NUMBER,
v_5st_05 OUT NUMBER, v_5st_06 OUT NUMBER, v_5st_07 OUT NUMBER, v_5st_08 OUT NUMBER,
v_5st_09 OUT NUMBER, v_5st_10 OUT NUMBER, v_5st_11 OUT NUMBER, v_5st_12 OUT NUMBER,
v_5st_13 OUT NUMBER, v_5st_14 OUT NUMBER,
v_6st_01 OUT NUMBER, v_6st_02 OUT NUMBER, v_6st_03 OUT NUMBER, v_6st_04 OUT NUMBER,
v_6st_05 OUT NUMBER, v_6st_06 OUT NUMBER, v_6st_07 OUT NUMBER, v_6st_08 OUT NUMBER,
v_6st_09 OUT NUMBER, v_6st_10 OUT NUMBER, v_6st_11 OUT NUMBER, v_6st_12 OUT NUMBER,
v_6st_13 OUT NUMBER, v_6st_14 OUT NUMBER,
v_7st_01 OUT NUMBER, v_7st_02 OUT NUMBER, v_7st_03 OUT NUMBER, v_7st_04 OUT NUMBER,
v_7st_05 OUT NUMBER, v_7st_06 OUT NUMBER, v_7st_07 OUT NUMBER, v_7st_08 OUT NUMBER,
v_7st_09 OUT NUMBER, v_7st_10 OUT NUMBER, v_7st_11 OUT NUMBER, v_7st_12 OUT NUMBER,
v_7st_13 OUT NUMBER, v_7st_14 OUT NUMBER,
v_8st_01 OUT NUMBER, v_8st_02 OUT NUMBER, v_8st_03 OUT NUMBER, v_8st_04 OUT NUMBER,
v_8st_05 OUT NUMBER, v_8st_06 OUT NUMBER, v_8st_07 OUT NUMBER, v_8st_08 OUT NUMBER,
v_8st_09 OUT NUMBER, v_8st_10 OUT NUMBER, v_8st_11 OUT NUMBER, v_8st_12 OUT NUMBER,
v_8st_13 OUT NUMBER, v_8st_14 OUT NUMBER,
v_9st_01 OUT NUMBER, v_9st_02 OUT NUMBER, v_9st_03 OUT NUMBER, v_9st_04 OUT NUMBER,
v_9st_05 OUT NUMBER, v_9st_06 OUT NUMBER, v_9st_07 OUT NUMBER, v_9st_08 OUT NUMBER,
v_9st_09 OUT NUMBER, v_9st_10 OUT NUMBER, v_9st_11 OUT NUMBER, v_9st_12 OUT NUMBER,
v_9st_13 OUT NUMBER, v_9st_14 OUT NUMBER,
v_10st_01 OUT NUMBER, v_10st_02 OUT NUMBER, v_10st_03 OUT NUMBER, v_10st_04 OUT NUMBER,
v_10st_05 OUT NUMBER, v_10st_06 OUT NUMBER, v_10st_07 OUT NUMBER, v_10st_08 OUT NUMBER,
v_10st_09 OUT NUMBER, v_10st_10 OUT NUMBER, v_10st_11 OUT NUMBER, v_10st_12 OUT NUMBER,
v_10st_13 OUT NUMBER, v_10st_14 OUT NUMBER )
IS
BEGIN
/*++++++++++++++++++++++++++++++
** 1 ? ?
++++++++++++++++++++++++++++++*/
BEGIN
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'07000800')
INTO v_1st_01
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'08000900')
INTO v_1st_02
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'09001000')
INTO v_1st_03
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'10001100')
INTO v_1st_04
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'11001200')
INTO v_1st_05
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'12001300')
INTO v_1st_06
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'13001400')
INTO v_1st_07
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'14001500')
INTO v_1st_08
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'15001600')
INTO v_1st_09
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'16001700')
INTO v_1st_10
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'17001800')
INTO v_1st_11
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'18001900')
INTO v_1st_12
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'19002000')
INTO v_1st_13
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'01',v_stt_date,v_end_date,'20002100')
INTO v_1st_14
FROM DUAL;
END;
/*++++++++++++++++++++++++++++++
** 2 ? ?
++++++++++++++++++++++++++++++*/
BEGIN
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'07000800')
INTO v_2st_01
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'08000900')
INTO v_2st_02
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'09001000')
INTO v_2st_03
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'10001100')
INTO v_2st_04
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'11001200')
INTO v_2st_05
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'12001300')
INTO v_2st_06
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'13001400')
INTO v_2st_07
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'14001500')
INTO v_2st_08
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'15001600')
INTO v_2st_09
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'16001700')
INTO v_2st_10
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'17001800')
INTO v_2st_11
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'18001900')
INTO v_2st_12
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'19002000')
INTO v_2st_13
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'02',v_stt_date,v_end_date,'20002100')
INTO v_2st_14
FROM DUAL;
END;
/*++++++++++++++++++++++++++++++
** 3 ? ?
++++++++++++++++++++++++++++++*/
BEGIN
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'07000800')
INTO v_3st_01
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'08000900')
INTO v_3st_02
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'09001000')
INTO v_3st_03
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'10001100')
INTO v_3st_04
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'11001200')
INTO v_3st_05
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'12001300')
INTO v_3st_06
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'13001400')
INTO v_3st_07
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'14001500')
INTO v_3st_08
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'15001600')
INTO v_3st_09
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'16001700')
INTO v_3st_10
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'17001800')
INTO v_3st_11
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'18001900')
INTO v_3st_12
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'19002000')
INTO v_3st_13
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'03',v_stt_date,v_end_date,'20002100')
INTO v_3st_14
FROM DUAL;
END;
/*++++++++++++++++++++++++++++++
** 4 ? ?
++++++++++++++++++++++++++++++*/
BEGIN
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'07000800')
INTO v_4st_01
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'08000900')
INTO v_4st_02
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'09001000')
INTO v_4st_03
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'10001100')
INTO v_4st_04
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'11001200')
INTO v_4st_05
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'12001300')
INTO v_4st_06
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'13001400')
INTO v_4st_07
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'14001500')
INTO v_4st_08
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'15001600')
INTO v_4st_09
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'16001700')
INTO v_4st_10
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'17001800')
INTO v_4st_11
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'18001900')
INTO v_4st_12
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'19002000')
INTO v_4st_13
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'04',v_stt_date,v_end_date,'20002100')
INTO v_4st_14
FROM DUAL;
END;
/*++++++++++++++++++++++++++++++
** 5 ? ?
++++++++++++++++++++++++++++++*/
BEGIN
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'07000800')
INTO v_5st_01
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'08000900')
INTO v_5st_02
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'09001000')
INTO v_5st_03
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'10001100')
INTO v_5st_04
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'11001200')
INTO v_5st_05
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'12001300')
INTO v_5st_06
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'13001400')
INTO v_5st_07
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'14001500')
INTO v_5st_08
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'15001600')
INTO v_5st_09
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'16001700')
INTO v_5st_10
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'17001800')
INTO v_5st_11
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'18001900')
INTO v_5st_12
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'19002000')
INTO v_5st_13
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'05',v_stt_date,v_end_date,'20002100')
INTO v_5st_14
FROM DUAL;
END;
/*++++++++++++++++++++++++++++++
** 6 ? ?
++++++++++++++++++++++++++++++*/
BEGIN
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'07000800')
INTO v_6st_01
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'08000900')
INTO v_6st_02
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'09001000')
INTO v_6st_03
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'10001100')
INTO v_6st_04
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'11001200')
INTO v_6st_05
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'12001300')
INTO v_6st_06
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'13001400')
INTO v_6st_07
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'14001500')
INTO v_6st_08
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'15001600')
INTO v_6st_09
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'16001700')
INTO v_6st_10
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'17001800')
INTO v_6st_11
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'18001900')
INTO v_6st_12
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'19002000')
INTO v_6st_13
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'06',v_stt_date,v_end_date,'20002100')
INTO v_6st_14
FROM DUAL;
END;
/*++++++++++++++++++++++++++++++
** 7 ? ?
++++++++++++++++++++++++++++++*/
BEGIN
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'07000800')
INTO v_7st_01
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'08000900')
INTO v_7st_02
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'09001000')
INTO v_7st_03
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'10001100')
INTO v_7st_04
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'11001200')
INTO v_7st_05
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'12001300')
INTO v_7st_06
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'13001400')
INTO v_7st_07
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'14001500')
INTO v_7st_08
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'15001600')
INTO v_7st_09
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'16001700')
INTO v_7st_10
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'17001800')
INTO v_7st_11
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'18001900')
INTO v_7st_12
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'19002000')
INTO v_7st_13
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'07',v_stt_date,v_end_date,'20002100')
INTO v_7st_14
FROM DUAL;
END;
/*++++++++++++++++++++++++++++++
** 8 ? ?
++++++++++++++++++++++++++++++*/
BEGIN
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'07000800')
INTO v_8st_01
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'08000900')
INTO v_8st_02
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'09001000')
INTO v_8st_03
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'10001100')
INTO v_8st_04
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'11001200')
INTO v_8st_05
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'12001300')
INTO v_8st_06
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'13001400')
INTO v_8st_07
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'14001500')
INTO v_8st_08
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'15001600')
INTO v_8st_09
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'16001700')
INTO v_8st_10
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'17001800')
INTO v_8st_11
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'18001900')
INTO v_8st_12
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'19002000')
INTO v_8st_13
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'08',v_stt_date,v_end_date,'20002100')
INTO v_8st_14
FROM DUAL;
END;
/*++++++++++++++++++++++++++++++
** 9 ? ?
++++++++++++++++++++++++++++++*/
BEGIN
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'07000800')
INTO v_9st_01
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'08000900')
INTO v_9st_02
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'09001000')
INTO v_9st_03
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'10001100')
INTO v_9st_04
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'11001200')
INTO v_9st_05
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'12001300')
INTO v_9st_06
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'13001400')
INTO v_9st_07
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'14001500')
INTO v_9st_08
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'15001600')
INTO v_9st_09
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'16001700')
INTO v_9st_10
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'17001800')
INTO v_9st_11
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'18001900')
INTO v_9st_12
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'19002000')
INTO v_9st_13
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'09',v_stt_date,v_end_date,'20002100')
INTO v_9st_14
FROM DUAL;
END;
/*++++++++++++++++++++++++++++++
** 10 ? ?
++++++++++++++++++++++++++++++*/
BEGIN
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'07000800')
INTO v_10st_01
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'08000900')
INTO v_10st_02
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'09001000')
INTO v_10st_03
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'10001100')
INTO v_10st_04
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'11001200')
INTO v_10st_05
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'12001300')
INTO v_10st_06
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'13001400')
INTO v_10st_07
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'14001500')
INTO v_10st_08
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'15001600')
INTO v_10st_09
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'16001700')
INTO v_10st_10
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'17001800')
INTO v_10st_11
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'18001900')
INTO v_10st_12
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'19002000')
INTO v_10st_13
FROM DUAL;
SELECT FUN_GET_WORKCNT(v_office,v_worker,'10',v_stt_date,v_end_date,'20002100')
INTO v_10st_14
FROM DUAL;
END;
END SP_TRM000Q;
END PAC_GET_TRM000Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRI500Q1 AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 전체 건수 (FUN_TRI500Q_CNT) **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRI500Q_CNT1( v_office IN CHAR,v_date IN VARCHAR2 ) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date;
RETURN v_rc;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
END FUN_TRI500Q_CNT1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일계(SP_GET_TRI500Q_ **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRI500Q1(
v_office IN CHAR,
v_date IN CHAR,
out_cash_q out number,
out_cash_m out number,
out_sun_q out number,
out_sun_m out number,
out_who_q out number,
out_who_m out number,
out_sale_q out number,
out_sale_m out number,
out_sale_cnt out number,
out_k_cash_q out number,
out_k_sun_q out number,
out_k_who_q out number,
out_k_sale_q out number,
out_k_cash_m out number,
out_k_sun_m out number,
out_k_who_m out number,
out_k_sale_m out number,
out_k_sale_cnt out number,
out_repay_sun out number,
out_repay_who out number,
out_repay_sun_m out number,
out_repay_who_m out number,
out_k_ret_sun out number,
out_k_ret_who out number,
out_k_ret_sun_m out number,
out_k_ret_who_m out number
)
IS
BEGIN
SELECT NVL(SUM(NVL(IN_CASH_QUANTITY,0)),0) + NVL(SUM(NVL(OUT_CASH_QUANTITY,0)),0) AS A,
NVL(SUM(NVL(IN_CASH_INCOME,0)),0) + NVL(SUM(NVL(OUT_CASH_INCOME,0)),0) AS B,
NVL(SUM(NVL(IN_CARD_BEFORE_QUANTITY,0)),0) + NVL(SUM(NVL(OUT_CARD_BEFORE_QUANTITY,0)),0) AS C,
NVL(SUM(NVL(IN_CARD_BEFORE_INCOME,0)),0) + NVL(SUM(NVL(OUT_CARD_BEFORE_INCOME,0)),0) AS D,
NVL(SUM(NVL(IN_CARD_AFTER_QUANTITY,0)),0) + NVL(SUM(NVL(OUT_CARD_AFTER_QUANTITY,0)),0) AS E,
NVL(SUM(NVL(IN_CARD_AFTER_INCOME,0)),0) + NVL(SUM(NVL(OUT_CARD_AFTER_INCOME,0)),0) AS F,
NVL(SUM(NVL(IN_COUPON_SALE_QUANTITY,0)),0) + NVL(SUM(NVL(OUT_COUPON_SALE_QUANTITY,0)),0) AS H,
NVL(SUM(NVL(IN_COUPON_SALE,0)),0) + NVL(SUM(NVL(OUT_COUPON_SALE,0)),0) AS I,
NVL(SUM(NVL(IN_K_CASH_Q,0)),0) + NVL(SUM(NVL(OUT_K_CASH_Q,0)),0) AS J,
NVL(SUM(NVL(IN_K_CARD_SUN_Q,0)),0) + NVL(SUM(NVL(OUT_K_CARD_SUN_Q,0)),0) AS K,
NVL(SUM(NVL(IN_K_CARD_WHO_Q,0)),0) + NVL(SUM(NVL(OUT_K_CARD_WHO_Q,0)),0) AS L,
NVL(SUM(NVL(IN_K_COUPON_SALE_Q,0)),0) + NVL(SUM(NVL(OUT_K_COUPON_SALE_Q,0)),0) AS M,
NVL(SUM(NVL(IN_K_CASH_INCOME,0)),0) + NVL(SUM(NVL(OUT_K_CASH_INCOME,0)),0) AS N,
NVL(SUM(NVL(IN_K_CARD_SUN_INCOME,0)),0) + NVL(SUM(NVL(OUT_K_CARD_SUN_INCOME,0)),0) AS O,
NVL(SUM(NVL(IN_K_CARD_WHO_INCOME,0)),0) + NVL(SUM(NVL(OUT_K_CARD_WHO_INCOME,0)),0) AS P,
NVL(SUM(NVL(IN_K_COUPON_SALE_INCOME,0)),0) + NVL(SUM(NVL(OUT_K_COUPON_SALE_INCOME,0)),0) AS Q
INTO out_cash_q , out_cash_m , out_sun_q, out_sun_m, out_who_q, out_who_m,
out_sale_q, out_sale_m,
out_k_cash_q, out_k_sun_q, out_k_who_q, out_k_sale_q, out_k_cash_m,
out_k_sun_m, out_k_who_m, out_k_sale_m
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date;
out_sale_cnt := 0;
out_k_sale_cnt := 0;
/*
-- 정액권 건수 - 수정 : 김동은
SELECT COUNT(*)
INTO out_sale_cnt
FROM FARE_TERMINAL_INFO
WHERE COLLECT_ID = '52'
AND FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date;
SELECT COUNT(*)
INTO out_k_sale_cnt
FROM FARE_TERMINAL_INFO
WHERE COLLECT_ID = '54'
AND FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date;
*/
-- 선불
SELECT COUNT(*), nvl(sum(nvl(levy_amount,0)),0)
INTO out_repay_sun, out_repay_sun_m
FROM RF_REPAY_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date
and COLLECT_ID = '21'
and c_repay_kbn <> '0';
-- 후불
SELECT COUNT(*), nvl(sum(nvl(levy_amount,0)),0)
INTO out_repay_who, out_repay_who_m
FROM RF_REPAY_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date
and COLLECT_ID = '22'
and c_repay_kbn <> '0';
-- 경차선불
SELECT COUNT(*), nvl(sum(nvl(levy_amount,0)),0)
INTO out_k_ret_sun, out_k_ret_sun_m
FROM RF_REPAY_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date
and COLLECT_ID = '23'
and c_repay_kbn <> '0';
-- 경차후불
SELECT COUNT(*), nvl(sum(nvl(levy_amount,0)),0)
INTO out_k_ret_who, out_k_ret_who_m
FROM RF_REPAY_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date
and COLLECT_ID = '24'
and c_repay_kbn <> '0';
END SP_TRI500Q1;
END PAC_GET_TRI500Q1;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRI500Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 전체 건수 (FUN_TRI500Q_CNT) **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRI500Q_CNT( v_office IN CHAR,v_date IN VARCHAR2 ) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM (SELECT COUNT(*) FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date);
RETURN v_rc;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc ;
END FUN_TRI500Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일계(SP_GET_TRI500Q_ **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRI500Q(
v_office IN CHAR,
v_date IN CHAR,
p_a OUT NUMBER,
p_b OUT NUMBER,
p_c OUT NUMBER,
p_d OUT NUMBER,
p_e OUT NUMBER,
p_f OUT NUMBER,
p_g OUT NUMBER,
p_h OUT NUMBER,
p_i OUT NUMBER,
p_j OUT NUMBER,
p_k OUT NUMBER,
p_l OUT NUMBER )
IS
BEGIN
p_a := 0;
p_b := 0;
p_c := 0;
p_d := 0;
p_e := 0;
p_f := 0;
p_g := 0;
p_h := 0;
p_i := 0;
p_j := 0;
p_k := 0;
p_l := 0;
SELECT NVL(SUM(NVL(CASH_QUANTITY,0)),0),
NVL(SUM(NVL(CASH_INCOME,0)),0),
NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0)),0),
NVL(SUM(NVL(CARD_BEFORE_INCOME,0)),0),
NVL(SUM(NVL(CARD_AFTER_QUANTITY,0)),0),
NVL(SUM(NVL(CARD_AFTER_INCME,0)),0),
NVL(SUM(NVL(COUPON_QUANTITY,0)),0),
NVL(SUM(NVL(COUPON_SALE,0)),0)
INTO p_c , p_d , p_g, p_h,p_i,
p_j, p_k, p_l
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date;
--소계
p_e := p_g + p_i;
p_f := p_h + p_j;
--합계
p_a := p_c + p_e + p_k;
p_b := p_d + p_f + p_l;
END SP_TRI500Q;
END PAC_GET_TRI500Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRG000Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 합계 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRG000Q_CNT( v_office IN CHAR,v_booth_id IN CHAR,v_gubun IN CHAR,
v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2 ) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
-- 시간대별
IF v_gubun = '1' THEN
SELECT COUNT(*)
INTO v_rc
FROM (SELECT TIMES,COUNT(*) FROM TIME_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office --요금소,차로,통행일자
AND BOOTH_ID LIKE v_booth_id
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
GROUP BY TIMES);
-- 일별
ELSIF v_gubun = '2' THEN
SELECT COUNT(*)
INTO v_rc
FROM (SELECT YEAR,MONTH,DAY,COUNT(*) FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
GROUP BY YEAR,MONTH,DAY);
-- 월별
ELSIF v_gubun = '3' THEN
SELECT COUNT(*)
INTO v_rc
FROM (SELECT YEAR,MONTH,COUNT(*) FROM MONTH_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR||MONTH BETWEEN SUBSTR(v_from_dt,1,6) AND SUBSTR(v_to_dt,1,6)
GROUP BY YEAR,MONTH);
-- 년별
ELSE
SELECT COUNT(*)
INTO v_rc
FROM (SELECT YEAR,COUNT(*) FROM YEAR_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR BETWEEN SUBSTR(v_from_dt,1,4) AND SUBSTR(v_to_dt,1,4)
GROUP BY YEAR);
END IF;
RETURN v_rc;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc ;
END FUN_TRG000Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (시간대별)혼잡통행료 수입금 총괄 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRG000Q_1( v_row IN NUMBER ,
v_office IN CHAR ,
v_booth_id IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_a1 OUT VARCHAR2 ,
g_a2 OUT NUMBER ,
g_a3 OUT NUMBER ,
g_a4 OUT NUMBER ,
g_a5 OUT NUMBER ,
g_a6 OUT NUMBER ,
g_a7 OUT NUMBER )
IS
CURSOR CUR IS
SELECT TIMES,
TIMES||':00'||'-'||DECODE(LENGTH(TO_CHAR(TO_NUMBER(TIMES)+1)),1,'0'||TO_CHAR(TO_NUMBER(TIMES)+1),TO_CHAR(TO_NUMBER(TIMES)+1))||':00' f_aa,
SUM(NVL(IN_CASH_INCOME,0)) +
SUM(NVL(OUT_CASH_INCOME,0)) f_bb,
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) +
SUM(NVL(OUT_CARD_BEFORE_INCOME,0)) f_cc,
SUM(NVL(IN_CARD_AFTER_INCOME,0)) +
SUM(NVL(OUT_CARD_AFTER_INCOME,0)) f_dd,
SUM(NVL(IN_COUPON_SALE,0)) +
SUM(NVL(OUT_COUPON_SALE,0)) f_ee
FROM TIME_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
GROUP BY TIMES;
TRG000Q_REC1 CUR%ROWTYPE;
BEGIN
g_a2 := 0;
g_a3 := 0;
g_a4 := 0;
g_a5 := 0;
g_a6 := 0;
g_a7 := 0;
FOR TRA000Q_REC1 IN CUR LOOP
g_a1 := TRA000Q_REC1.f_aa;
g_a3 := TRA000Q_REC1.f_bb;
g_a5 := TRA000Q_REC1.f_cc;
g_a6 := TRA000Q_REC1.f_dd;
g_a7 := TRA000Q_REC1.f_ee;
--소계
g_a4 := g_a5 + g_a6;
--합계
g_a2 := g_a3 + g_a4 + g_a7;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRG000Q_1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (일별)혼잡통행료 수입금 총괄 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRG000Q_2( v_row IN NUMBER ,
v_office IN CHAR ,
v_booth_id IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_a1 OUT VARCHAR2 ,
g_a2 OUT NUMBER ,
g_a3 OUT NUMBER ,
g_a4 OUT NUMBER ,
g_a5 OUT NUMBER ,
g_a6 OUT NUMBER ,
g_a7 OUT NUMBER )
IS
CURSOR CUR IS
SELECT YEAR||MONTH||DAY f_aa,
SUM(NVL(IN_CASH_INCOME,0)) +
SUM(NVL(OUT_CASH_INCOME,0)) f_bb,
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) +
SUM(NVL(OUT_CARD_BEFORE_INCOME,0)) f_cc,
SUM(NVL(IN_CARD_AFTER_INCOME,0)) +
SUM(NVL(OUT_CARD_AFTER_INCOME,0)) f_dd,
SUM(NVL(IN_COUPON_SALE,0)) +
SUM(NVL(OUT_COUPON_SALE,0)) f_ee
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
GROUP BY YEAR,MONTH,DAY;
TRG000Q_REC2 CUR%ROWTYPE;
BEGIN
g_a2 := 0;
g_a3 := 0;
g_a4 := 0;
g_a5 := 0;
g_a6 := 0;
g_a7 := 0;
FOR TRA000Q_REC2 IN CUR LOOP
g_a1 := TRA000Q_REC2.f_aa;
g_a3 := TRA000Q_REC2.f_bb;
g_a5 := TRA000Q_REC2.f_cc;
g_a6 := TRA000Q_REC2.f_dd;
g_a7 := TRA000Q_REC2.f_ee;
g_a1 := SUBSTR(g_a1,1,4)||'/'||SUBSTR(g_a1,5,2)||'/'||SUBSTR(g_a1,7,2);
-- 소계
g_a4 := g_a5 + g_a6;
-- 합계
g_a2 := g_a3 + g_a4 + g_a7;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRG000Q_2;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (월별)혼잡통행료 수입금 총괄 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRG000Q_3( v_row IN NUMBER ,
v_office IN CHAR ,
v_booth_id IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_a1 OUT VARCHAR2 ,
g_a2 OUT NUMBER ,
g_a3 OUT NUMBER ,
g_a4 OUT NUMBER ,
g_a5 OUT NUMBER ,
g_a6 OUT NUMBER ,
g_a7 OUT NUMBER )
IS
CURSOR CUR IS
SELECT YEAR||MONTH f_aa, -->고칠것 [ 2002/09 ]
SUM(NVL(IN_CASH_INCOME,0)) +
SUM(NVL(OUT_CASH_INCOME,0)) f_bb,
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) +
SUM(NVL(OUT_CARD_BEFORE_INCOME,0)) f_cc,
SUM(NVL(IN_CARD_AFTER_INCOME,0)) +
SUM(NVL(OUT_CARD_AFTER_INCOME,0)) f_dd,
SUM(NVL(IN_COUPON_SALE,0)) +
SUM(NVL(OUT_COUPON_SALE,0)) f_ee
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR||MONTH BETWEEN v_from_dt AND v_to_dt
-- AND YEAR||MONTH BETWEEN SUBSTR(v_from_dt,1,6) AND SUBSTR(v_to_dt,1,6)
GROUP BY YEAR,MONTH;
TRG000Q_REC3 CUR%ROWTYPE;
BEGIN
g_a2 := 0;
g_a3 := 0;
g_a4 := 0;
g_a5 := 0;
g_a6 := 0;
g_a7 := 0;
FOR TRA000Q_REC3 IN CUR LOOP
g_a1 := TRA000Q_REC3.f_aa;
g_a3 := TRA000Q_REC3.f_bb;
g_a5 := TRA000Q_REC3.f_cc;
g_a6 := TRA000Q_REC3.f_dd;
g_a7 := TRA000Q_REC3.f_ee;
g_a1 := SUBSTR(g_a1,1,4)||'/'||SUBSTR(g_a1,5,2);
--??
g_a4 := g_a5 + g_a6;
--??
g_a2 := g_a3 + g_a4 + g_a7;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRG000Q_3;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (년별)혼잡통행료 수입금 총괄 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRG000Q_4( v_row IN NUMBER ,
v_office IN CHAR ,
v_booth_id IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_a1 OUT VARCHAR2 ,
g_a2 OUT NUMBER ,
g_a3 OUT NUMBER ,
g_a4 OUT NUMBER ,
g_a5 OUT NUMBER ,
g_a6 OUT NUMBER ,
g_a7 OUT NUMBER )
IS
CURSOR CUR IS
SELECT YEAR f_aa,
SUM(NVL(IN_CASH_INCOME,0)) +
SUM(NVL(OUT_CASH_INCOME,0)) f_bb,
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) +
SUM(NVL(OUT_CARD_BEFORE_INCOME,0)) f_cc,
SUM(NVL(IN_CARD_AFTER_INCOME,0)) +
SUM(NVL(OUT_CARD_AFTER_INCOME,0)) f_dd,
SUM(NVL(IN_COUPON_SALE,0)) +
SUM(NVL(OUT_COUPON_SALE,0)) f_ee
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR BETWEEN v_from_dt AND v_to_dt
-- AND YEAR BETWEEN SUBSTR(v_from_dt,1,4) AND SUBSTR(v_to_dt,1,4)
GROUP BY YEAR;
TRG000Q_REC4 CUR%ROWTYPE;
BEGIN
g_a2 := 0;
g_a3 := 0;
g_a4 := 0;
g_a5 := 0;
g_a6 := 0;
g_a7 := 0;
FOR TRA000Q_REC4 IN CUR LOOP
g_a1 := TRA000Q_REC4.f_aa;
g_a3 := TRA000Q_REC4.f_bb;
g_a5 := TRA000Q_REC4.f_cc;
g_a6 := TRA000Q_REC4.f_dd;
g_a7 := TRA000Q_REC4.f_ee;
-- 소계
g_a4 := g_a5 + g_a6;
-- 합계
g_a2 := g_a3 + g_a4 + g_a7;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRG000Q_4;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 시간대별 혼잡통행료 수입금 총괄 총계 및 비율 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRG000Q_SUM1( v_office IN CHAR ,
v_booth_id IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_a11 OUT VARCHAR2 ,
g_a12 OUT VARCHAR2 ,
g_a2_t OUT NUMBER ,
g_a3_t OUT NUMBER ,
g_a4_t OUT NUMBER ,
g_a5_t OUT NUMBER ,
g_a6_t OUT NUMBER ,
g_a7_t OUT NUMBER ,
g_b1 OUT NUMBER ,
g_b2 OUT NUMBER ,
g_b3 OUT NUMBER ,
g_b4 OUT NUMBER ,
g_b5 OUT NUMBER ,
g_b6 OUT NUMBER )
IS
BEGIN
g_a11 := '총 계';
g_a12 := '비 율(%)';
g_a3_t := 0;
g_a5_t := 0;
g_a6_t := 0;
g_a7_t := 0;
g_b1 := 100;
g_b2 := 0;
g_b3 := 0;
g_b4 := 0;
g_b5 := 0;
g_b6 := 0;
SELECT SUM(NVL(IN_CASH_INCOME,0)) +
SUM(NVL(OUT_CASH_INCOME,0)),
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) +
SUM(NVL(OUT_CARD_BEFORE_INCOME,0)),
SUM(NVL(IN_CARD_AFTER_INCOME,0)) +
SUM(NVL(OUT_CARD_AFTER_INCOME,0)),
SUM(NVL(IN_COUPON_SALE,0)) +
SUM(NVL(OUT_COUPON_SALE,0))
INTO g_a3_t,
g_a5_t,
g_a6_t,
g_a7_t
FROM TIME_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt;
-- 소계
g_a4_t := g_a5_t + g_a6_t;
-- 합계
g_a2_t := g_a3_t + g_a4_t + g_a7_t;
-- 비율
g_b2 := ROUND((g_a3_t / g_a2_t) * 100,2);
g_b3 := ROUND((g_a4_t / g_a2_t) * 100,2);
g_b4 := ROUND((g_a5_t / g_a2_t) * 100,2);
g_b5 := ROUND((g_a6_t / g_a2_t) * 100,2);
g_b6 := ROUND((g_a7_t / g_a2_t) * 100,2);
END SP_TRG000Q_SUM1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일별 혼잡통행료 수입금 총괄 총계 및 비율 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRG000Q_SUM2( v_office IN CHAR ,
v_booth_id IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_a11 OUT VARCHAR2 ,
g_a12 OUT VARCHAR2 ,
g_a2_t OUT NUMBER ,
g_a3_t OUT NUMBER ,
g_a4_t OUT NUMBER ,
g_a5_t OUT NUMBER ,
g_a6_t OUT NUMBER ,
g_a7_t OUT NUMBER ,
g_b1 OUT NUMBER ,
g_b2 OUT NUMBER ,
g_b3 OUT NUMBER ,
g_b4 OUT NUMBER ,
g_b5 OUT NUMBER ,
g_b6 OUT NUMBER )
IS
BEGIN
g_a11 := '총 계';
g_a12 := '비 율(%)';
g_a3_t := 0;
g_a5_t := 0;
g_a6_t := 0;
g_a7_t := 0;
g_b1 := 100;
g_b2 := 0;
g_b3 := 0;
g_b4 := 0;
g_b5 := 0;
g_b6 := 0;
SELECT SUM(NVL(IN_CASH_INCOME,0)) +
SUM(NVL(OUT_CASH_INCOME,0)),
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) +
SUM(NVL(OUT_CARD_BEFORE_INCOME,0)),
SUM(NVL(IN_CARD_AFTER_INCOME,0)) +
SUM(NVL(OUT_CARD_AFTER_INCOME,0)),
SUM(NVL(IN_COUPON_SALE,0)) +
SUM(NVL(OUT_COUPON_SALE,0))
INTO g_a3_t,
g_a5_t,
g_a6_t,
g_a7_t
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt;
-- 소계
g_a4_t := g_a5_t + g_a6_t;
-- 합계
g_a2_t := g_a3_t + g_a4_t + g_a7_t;
-- 비율
g_b2 := ROUND((g_a3_t / g_a2_t) * 100,2);
g_b3 := ROUND((g_a4_t / g_a2_t) * 100,2);
g_b4 := ROUND((g_a5_t / g_a2_t) * 100,2);
g_b5 := ROUND((g_a6_t / g_a2_t) * 100,2);
g_b6 := ROUND((g_a7_t / g_a2_t) * 100,2);
END SP_TRG000Q_SUM2;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 월별 혼잡통행료 수입금 총괄 총계 및 비율 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRG000Q_SUM3( v_office IN CHAR ,
v_booth_id IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_a11 OUT VARCHAR2 ,
g_a12 OUT VARCHAR2 ,
g_a2_t OUT NUMBER ,
g_a3_t OUT NUMBER ,
g_a4_t OUT NUMBER ,
g_a5_t OUT NUMBER ,
g_a6_t OUT NUMBER ,
g_a7_t OUT NUMBER ,
g_b1 OUT NUMBER ,
g_b2 OUT NUMBER ,
g_b3 OUT NUMBER ,
g_b4 OUT NUMBER ,
g_b5 OUT NUMBER ,
g_b6 OUT NUMBER )
IS
BEGIN
g_a11 := '총 계';
g_a12 := '비 율(%)';
g_a3_t := 0;
g_a5_t := 0;
g_a6_t := 0;
g_a7_t := 0;
g_b1 := 100;
g_b2 := 0;
g_b3 := 0;
g_b4 := 0;
g_b5 := 0;
g_b6 := 0;
SELECT SUM(NVL(IN_CASH_INCOME,0)) +
SUM(NVL(OUT_CASH_INCOME,0)),
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) +
SUM(NVL(OUT_CARD_BEFORE_INCOME,0)),
SUM(NVL(IN_CARD_AFTER_INCOME,0)) +
SUM(NVL(OUT_CARD_AFTER_INCOME,0)),
SUM(NVL(IN_COUPON_SALE,0)) +
SUM(NVL(OUT_COUPON_SALE,0))
INTO g_a3_t,
g_a5_t,
g_a6_t,
g_a7_t
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR||MONTH BETWEEN v_from_dt AND v_to_dt;
-- AND YEAR||MONTH BETWEEN SUBSTR(v_from_dt,1,6) AND SUBSTR(v_to_dt,1,6);
-- 소계
g_a4_t := g_a5_t + g_a6_t;
-- 합계
g_a2_t := g_a3_t + g_a4_t + g_a7_t;
-- 비율
g_b2 := ROUND((g_a3_t / g_a2_t) * 100,2);
g_b3 := ROUND((g_a4_t / g_a2_t) * 100,2);
g_b4 := ROUND((g_a5_t / g_a2_t) * 100,2);
g_b5 := ROUND((g_a6_t / g_a2_t) * 100,2);
g_b6 := ROUND((g_a7_t / g_a2_t) * 100,2);
END SP_TRG000Q_SUM3;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 월별 혼잡통행료 수입금 총괄 총계 및 비율 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRG000Q_SUM4( v_office IN CHAR ,
v_booth_id IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_a11 OUT VARCHAR2 ,
g_a12 OUT VARCHAR2 ,
g_a2_t OUT NUMBER ,
g_a3_t OUT NUMBER ,
g_a4_t OUT NUMBER ,
g_a5_t OUT NUMBER ,
g_a6_t OUT NUMBER ,
g_a7_t OUT NUMBER ,
g_b1 OUT NUMBER ,
g_b2 OUT NUMBER ,
g_b3 OUT NUMBER ,
g_b4 OUT NUMBER ,
g_b5 OUT NUMBER ,
g_b6 OUT NUMBER )
IS
BEGIN
g_a11 := '총 계';
g_a12 := '비 율(%)';
g_a3_t := 0;
g_a5_t := 0;
g_a6_t := 0;
g_a7_t := 0;
g_b1 := 100;
g_b2 := 0;
g_b3 := 0;
g_b4 := 0;
g_b5 := 0;
g_b6 := 0;
SELECT SUM(NVL(IN_CASH_INCOME,0)) +
SUM(NVL(OUT_CASH_INCOME,0)),
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) +
SUM(NVL(OUT_CARD_BEFORE_INCOME,0)),
SUM(NVL(IN_CARD_AFTER_INCOME,0)) +
SUM(NVL(OUT_CARD_AFTER_INCOME,0)),
SUM(NVL(IN_COUPON_SALE,0)) +
SUM(NVL(OUT_COUPON_SALE,0))
INTO g_a3_t,
g_a5_t,
g_a6_t,
g_a7_t
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth_id
AND YEAR BETWEEN v_from_dt AND v_to_dt;
-- AND YEAR BETWEEN SUBSTR(v_from_dt,1,4) AND SUBSTR(v_to_dt,1,4);
-- 소계
g_a4_t := g_a5_t + g_a6_t;
-- 합계
g_a2_t := g_a3_t + g_a4_t + g_a7_t;
-- 비율
g_b2 := ROUND((g_a3_t / g_a2_t) * 100,2);
g_b3 := ROUND((g_a4_t / g_a2_t) * 100,2);
g_b4 := ROUND((g_a5_t / g_a2_t) * 100,2);
g_b5 := ROUND((g_a6_t / g_a2_t) * 100,2);
g_b6 := ROUND((g_a7_t / g_a2_t) * 100,2);
END SP_TRG000Q_SUM4;
END PAC_GET_TRG000Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRF502Q_K AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 전 체 건 수 **
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRF502Q_CNT( v_office IN CHAR,v_date IN CHAR) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY =v_date;
EXCEPTION WHEN NO_DATA_FOUND THEN
RETURN 0;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
RETURN 0;
END FUN_TRF502Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일일 차로별,징수원,시간대별현황 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRF502Q( v_row IN NUMBER,
v_office IN CHAR,
v_date IN CHAR,
p_booth OUT CHAR,
p_work_time OUT CHAR,
p_a OUT NUMBER, -- 총 통행량
p_b OUT NUMBER, -- 징수소계
p_c OUT NUMBER, -- 현금소계
p_d OUT NUMBER, -- 선불소계
p_e OUT NUMBER, -- 후불소계
p_f OUT NUMBER, -- 쿠폰소계
p_g OUT NUMBER, -- 미칭수소계
p_h OUT NUMBER, -- 미납
p_i OUT NUMBER, -- 면제
p_j OUT NUMBER, -- 총 징수금액
p_k OUT NUMBER, -- 현금 징수금액
p_l OUT NUMBER, -- 카드 징수금액 소계
p_m OUT NUMBER, -- 선불 징수금액 소계
p_n OUT NUMBER, -- 후불 징수금액 소계
p_o OUT NUMBER, -- 정액권 판매권수 소계
p_p OUT NUMBER, -- 정액권 판매금액 소계
CASH_Q OUT NUMBER, -- 현금통행량
K_CASH_Q OUT NUMBER, -- 경차 현금통행량
CARD_TOT OUT NUMBER, -- 카드 총 통행량
SUN_Q OUT NUMBER, -- 선불퉁행량
K_SUN_Q OUT NUMBER, -- 경차 선불통행량
WHO_Q OUT NUMBER, -- 후불 통행량
K_WHO_Q OUT NUMBER, -- 경차 후불 통행량
COUPON_Q OUT NUMBER, -- 쿠폰회수 통행량
K_COUPON_Q OUT NUMBER, -- 경차 쿠폰회수 통행량
SALE_Q OUT NUMBER, -- 정액권 판매 권수
K_SALE_Q OUT NUMBER, -- 경차 정액권 판매권수
v_name OUT CHAR )
IS
CURSOR CUR IS
SELECT FUN_GET_BOOTH(FARE_OFFICE_ID,BOOTH_ID) f_a,
SUBSTR(WORK_STT_TIME,1,2)||':'||SUBSTR(WORK_STT_TIME,3,2)||'-'||
SUBSTR(WORK_END_TIME,1,2)||':'||SUBSTR(WORK_END_TIME,3,2) f_b,
NVL(SUM(NVL(CASH_QUANTITY,0) + NVL(K_CASH_Q, 0)),0) f_c,
NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0) + NVL(K_CARD_SUN_Q, 0)),0) f_d,
NVL(SUM(NVL(CARD_AFTER_QUANTITY,0) + NVL(K_CARD_WHO_Q, 0)),0) f_e,
NVL(SUM(NVL(COUPON_QUANTITY,0) + NVL(K_COUPON_Q, 0)),0) f_f,
NVL(SUM(NVL(NONPAYMENT_QUANTITY,0)),0) f_g,
NVL(SUM(NVL(EXEMPTION_QUANTITY,0)),0) f_h,
(FUN_MONEY_FROM_FARE_INFO1(v_date, '10') * NVL(SUM(NVL(CASH_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '11') * NVL(SUM(NVL(K_CASH_Q,0)),0)) f_i,
(FUN_MONEY_FROM_FARE_INFO1(v_date, '21') * NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '23') * NVL(SUM(NVL(K_CARD_SUN_Q,0)),0)) f_j,
(FUN_MONEY_FROM_FARE_INFO1(v_date, '22') * NVL(SUM(NVL(CARD_AFTER_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '24') * NVL(SUM(NVL(K_CARD_WHO_Q,0)),0)) f_k,
NVL(SUM(NVL(COUPON_SALE_QUANTITY,0) + NVL(K_COUPON_SALE_Q, 0)),0) f_l,
(FUN_MONEY_FROM_FARE_INFO1(v_date, '52') * NVL(SUM(NVL(COUPON_SALE_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '54') * NVL(SUM(NVL(K_COUPON_SALE_Q,0)),0)) f_m,
WORKER_ID f_n,
NVL(SUM(NVL(CASH_QUANTITY,0)),0) AS A,
NVL(SUM(NVL(K_CASH_Q,0)), 0) AS B,
NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0)),0) AS C,
NVL(SUM(NVL(K_CARD_SUN_Q,0)),0) AS D,
NVL(SUM(NVL(CARD_AFTER_QUANTITY,0)),0) AS E,
NVL(SUM(NVL(K_CARD_WHO_Q,0)),0) AS F,
NVL(SUM(NVL(COUPON_QUANTITY,0)),0) AS G,
NVL(SUM(NVL(K_COUPON_Q,0)),0) AS H,
NVL(SUM(NVL(COUPON_SALE_QUANTITY,0)),0) AS I,
NVL(SUM(NVL(K_COUPON_SALE_Q,0)),0) AS J
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date
GROUP BY FARE_OFFICE_ID,BOOTH_ID,WORK_STT_TIME,WORK_END_TIME,WORKER_ID;
TRF501Q_REC1 CUR%ROWTYPE;
BEGIN
p_booth := '';
p_work_time := '';
p_a := 0 ;
p_b := 0 ;
p_c := 0 ;
p_d := 0 ;
p_e := 0 ;
p_f := 0 ;
p_g := 0 ;
p_h := 0 ;
p_i := 0 ;
p_j := 0 ;
p_k := 0 ;
p_l := 0 ;
p_m := 0 ;
p_n := 0 ;
p_o := 0 ;
p_p := 0 ;
v_name := ' ';
FOR TRF501Q_REC1 IN CUR LOOP
p_booth := TRF501Q_REC1.f_a;
p_work_time := TRF501Q_REC1.f_b;
p_c := TRF501Q_REC1.f_c;
p_d := TRF501Q_REC1.f_d;
p_e := TRF501Q_REC1.f_e;
p_f := TRF501Q_REC1.f_f;
p_h := TRF501Q_REC1.f_g;
p_i := TRF501Q_REC1.f_h;
p_k := TRF501Q_REC1.f_i;
p_m := TRF501Q_REC1.f_j;
p_n := TRF501Q_REC1.f_k;
p_o := TRF501Q_REC1.f_l;
p_p := TRF501Q_REC1.f_m;
v_name := TRF501Q_REC1.f_n;
CASH_Q := TRF501Q_REC1.A;
K_CASH_Q := TRF501Q_REC1.B;
CARD_TOT := p_d + p_e;
SUN_Q := TRF501Q_REC1.C;
K_SUN_Q := TRF501Q_REC1.D;
WHO_Q := TRF501Q_REC1.E;
K_WHO_Q := TRF501Q_REC1.F;
COUPON_Q := TRF501Q_REC1.G;
K_COUPON_Q := TRF501Q_REC1.H;
SALE_Q := TRF501Q_REC1.I;
K_SALE_Q := TRF501Q_REC1.J;
--소계
p_b := p_c + p_d + p_e + p_f;
p_g := p_h + p_i;
p_l := p_m + p_n;
--합계
p_a := p_b + p_g;
p_j := p_k + p_l;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRF502Q;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 구분자에 따라 일계,월계,년누계를 구함 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRF502Q_SUM( v_ymd_kbn IN BINARY_INTEGER,
v_office IN CHAR,
v_date IN CHAR,
p_a_t OUT NUMBER,
p_b_t OUT NUMBER,
p_c_t OUT NUMBER,
p_d_t OUT NUMBER,
p_e_t OUT NUMBER,
p_f_t OUT NUMBER,
p_g_t OUT NUMBER,
p_h_t OUT NUMBER,
p_i_t OUT NUMBER,
p_j_t OUT NUMBER,
p_k_t OUT NUMBER,
p_l_t OUT NUMBER,
p_m_t OUT NUMBER,
p_n_t OUT NUMBER,
p_o_t OUT NUMBER,
p_p_t OUT NUMBER,
CASH_Q OUT NUMBER, -- 현금통행량
K_CASH_Q OUT NUMBER, -- 경차 현금통행량
CARD_TOT OUT NUMBER, -- 카드 총 통행량
SUN_Q OUT NUMBER, -- 선불퉁행량
K_SUN_Q OUT NUMBER, -- 경차 선불통행량
WHO_Q OUT NUMBER, -- 후불 통행량
K_WHO_Q OUT NUMBER, -- 경차 후불 통행량
COUPON_Q OUT NUMBER, -- 쿠폰회수 통행량
K_COUPON_Q OUT NUMBER, -- 경차 쿠폰회수 통행량
SALE_Q OUT NUMBER, -- 정액권 판매 권수
K_SALE_Q OUT NUMBER -- 경차 정액권 판매권수
)
IS
BEGIN
p_a_t := 0 ;
p_b_t := 0 ;
p_c_t := 0 ;
p_d_t := 0 ;
p_e_t := 0 ;
p_f_t := 0 ;
p_g_t := 0 ;
p_h_t := 0 ;
p_i_t := 0 ;
p_j_t := 0 ;
p_k_t := 0 ;
p_l_t := 0 ;
p_m_t := 0 ;
p_n_t := 0 ;
p_o_t := 0 ;
p_p_t := 0 ;
-- 일계
IF v_ymd_kbn = 1 THEN
SELECT NVL(SUM(NVL(CASH_QUANTITY,0) + NVL(K_CASH_Q, 0)),0),
NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0) + NVL(K_CARD_SUN_Q, 0)),0),
NVL(SUM(NVL(CARD_AFTER_QUANTITY,0) + NVL(K_CARD_WHO_Q, 0)),0),
NVL(SUM(NVL(COUPON_QUANTITY,0) + NVL(K_COUPON_Q, 0)),0),
NVL(SUM(NVL(NONPAYMENT_QUANTITY,0)),0),
NVL(SUM(NVL(EXEMPTION_QUANTITY,0)),0),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '10') * NVL(SUM(NVL(CASH_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '11') * NVL(SUM(NVL(K_CASH_Q,0)),0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '21') * NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '23') * NVL(SUM(NVL(K_CARD_SUN_Q,0)),0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '22') * NVL(SUM(NVL(CARD_AFTER_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '24') * NVL(SUM(NVL(K_CARD_WHO_Q,0)),0)),
NVL(SUM(NVL(COUPON_SALE_QUANTITY,0) + NVL(K_COUPON_SALE_Q, 0)),0),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '52') * NVL(SUM(NVL(COUPON_SALE_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '54') * NVL(SUM(NVL(K_COUPON_SALE_Q,0)),0)),
NVL(SUM(NVL(CASH_QUANTITY,0)),0),
NVL(SUM(NVL(K_CASH_Q,0)), 0),
NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0)),0),
NVL(SUM(NVL(K_CARD_SUN_Q,0)),0),
NVL(SUM(NVL(CARD_AFTER_QUANTITY,0)),0),
NVL(SUM(NVL(K_CARD_WHO_Q,0)),0),
NVL(SUM(NVL(COUPON_QUANTITY,0)),0),
NVL(SUM(NVL(K_COUPON_Q,0)),0),
NVL(SUM(NVL(COUPON_SALE_QUANTITY,0)),0),
NVL(SUM(NVL(K_COUPON_SALE_Q,0)),0)
INTO p_c_t,
p_d_t,
p_e_t,
p_f_t,
p_h_t,
p_i_t,
p_k_t,
p_m_t,
p_n_t,
p_o_t,
p_p_t,
CASH_Q,
K_CASH_Q,
SUN_Q,
K_SUN_Q,
WHO_Q,
K_WHO_Q,
COUPON_Q,
K_COUPON_Q,
SALE_Q,
K_SALE_Q
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date;
--월계
ELSIF v_ymd_kbn = 2 THEN
SELECT NVL(SUM(NVL(CASH_QUANTITY,0) + NVL(K_CASH_Q, 0)),0),
NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0) + NVL(K_CARD_SUN_Q, 0)),0),
NVL(SUM(NVL(CARD_AFTER_QUANTITY,0) + NVL(K_CARD_WHO_Q, 0)),0),
NVL(SUM(NVL(COUPON_QUANTITY,0) + NVL(K_COUPON_Q, 0)),0),
NVL(SUM(NVL(NONPAYMENT_QUANTITY,0)),0),
NVL(SUM(NVL(EXEMPTION_QUANTITY,0)),0),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '10') * NVL(SUM(NVL(CASH_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '11') * NVL(SUM(NVL(K_CASH_Q,0)),0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '21') * NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '23') * NVL(SUM(NVL(K_CARD_SUN_Q,0)),0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '22') * NVL(SUM(NVL(CARD_AFTER_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '24') * NVL(SUM(NVL(K_CARD_WHO_Q,0)),0)),
NVL(SUM(NVL(COUPON_SALE_QUANTITY,0) + NVL(K_COUPON_SALE_Q, 0)),0),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '52') * NVL(SUM(NVL(COUPON_SALE_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '54') * NVL(SUM(NVL(K_COUPON_SALE_Q,0)),0)),
NVL(SUM(NVL(CASH_QUANTITY,0)),0),
NVL(SUM(NVL(K_CASH_Q,0)), 0),
NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0)),0),
NVL(SUM(NVL(K_CARD_SUN_Q,0)),0),
NVL(SUM(NVL(CARD_AFTER_QUANTITY,0)),0),
NVL(SUM(NVL(K_CARD_WHO_Q,0)),0),
NVL(SUM(NVL(COUPON_QUANTITY,0)),0),
NVL(SUM(NVL(K_COUPON_Q,0)),0),
NVL(SUM(NVL(COUPON_SALE_QUANTITY,0)),0),
NVL(SUM(NVL(K_COUPON_SALE_Q,0)),0)
INTO p_c_t,
p_d_t,
p_e_t,
p_f_t,
p_h_t,
p_i_t,
p_k_t,
p_m_t,
p_n_t,
p_o_t,
p_p_t,
CASH_Q,
K_CASH_Q,
SUN_Q,
K_SUN_Q,
WHO_Q,
K_WHO_Q,
COUPON_Q,
K_COUPON_Q,
SALE_Q,
K_SALE_Q
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY BETWEEN SUBSTR(v_date,1,6)||'01' AND v_date;
-- AND YEAR||MONTH||DAY = SUBSTR(v_date,1,6);
--AND YEAR||MONTH = SUBSTR(v_date,1,6);
-- 년누계
ELSIF v_ymd_kbn = 3 THEN
SELECT NVL(SUM(NVL(CASH_QUANTITY,0) + NVL(K_CASH_Q, 0)),0),
NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0) + NVL(K_CARD_SUN_Q, 0)),0),
NVL(SUM(NVL(CARD_AFTER_QUANTITY,0) + NVL(K_CARD_WHO_Q, 0)),0),
NVL(SUM(NVL(COUPON_QUANTITY,0) + NVL(K_COUPON_Q, 0)),0),
NVL(SUM(NVL(NONPAYMENT_QUANTITY,0)),0),
NVL(SUM(NVL(EXEMPTION_QUANTITY,0)),0),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '10') * NVL(SUM(NVL(CASH_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '11') * NVL(SUM(NVL(K_CASH_Q,0)),0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '21') * NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '23') * NVL(SUM(NVL(K_CARD_SUN_Q,0)),0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '22') * NVL(SUM(NVL(CARD_AFTER_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '24') * NVL(SUM(NVL(K_CARD_WHO_Q,0)),0)),
NVL(SUM(NVL(COUPON_SALE_QUANTITY,0) + NVL(K_COUPON_SALE_Q, 0)),0),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '52') * NVL(SUM(NVL(COUPON_SALE_QUANTITY,0)),0)) +
(FUN_MONEY_FROM_FARE_INFO1(v_date, '54') * NVL(SUM(NVL(K_COUPON_SALE_Q,0)),0)),
NVL(SUM(NVL(CASH_QUANTITY,0)),0),
NVL(SUM(NVL(K_CASH_Q,0)), 0),
NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0)),0),
NVL(SUM(NVL(K_CARD_SUN_Q,0)),0),
NVL(SUM(NVL(CARD_AFTER_QUANTITY,0)),0),
NVL(SUM(NVL(K_CARD_WHO_Q,0)),0),
NVL(SUM(NVL(COUPON_QUANTITY,0)),0),
NVL(SUM(NVL(K_COUPON_Q,0)),0),
NVL(SUM(NVL(COUPON_SALE_QUANTITY,0)),0),
NVL(SUM(NVL(K_COUPON_SALE_Q,0)),0)
INTO p_c_t,
p_d_t,
p_e_t,
p_f_t,
p_h_t,
p_i_t,
p_k_t,
p_m_t,
p_n_t,
p_o_t,
p_p_t,
CASH_Q,
K_CASH_Q,
SUN_Q,
K_SUN_Q,
WHO_Q,
K_WHO_Q,
COUPON_Q,
K_COUPON_Q,
SALE_Q,
K_SALE_Q
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY BETWEEN SUBSTR(v_date,1,4)||'0101' AND v_date;
--AND YEAR||MONTH||DAY = SUBSTR(v_date,1,4);
--AND YEAR = SUBSTR(v_date,1,4);
END IF;
-- 카드 총 통행량
CARD_TOT := p_d_t + p_e_t;
--소계
p_b_t := p_c_t + p_d_t + p_e_t + p_f_t;
p_g_t := p_h_t + p_i_t;
p_l_t := p_m_t + p_n_t;
--합계
p_a_t := p_b_t + p_g_t;
p_j_t := p_k_t + p_l_t;
END SP_TRF502Q_SUM;
END PAC_GET_TRF502Q_K;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRF502Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 전 체 건 수 **
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRF502Q_CNT( v_office IN CHAR,v_date IN CHAR) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY =v_date;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_TRF502Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일일 차로별,징수원,시간대별현황 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRF502Q( v_row IN NUMBER,
v_office IN CHAR,
v_date IN CHAR,
p_booth OUT CHAR,
p_work_time OUT CHAR,
p_a OUT NUMBER,
p_b OUT NUMBER,
p_c OUT NUMBER,
p_d OUT NUMBER,
p_e OUT NUMBER,
p_f OUT NUMBER,
p_g OUT NUMBER,
p_h OUT NUMBER,
p_i OUT NUMBER,
p_j OUT NUMBER,
p_k OUT NUMBER,
p_l OUT NUMBER,
p_m OUT NUMBER,
p_n OUT NUMBER,
p_o OUT NUMBER,
p_p OUT NUMBER,
v_name OUT CHAR )
IS
CURSOR CUR IS
SELECT FUN_GET_BOOTH(FARE_OFFICE_ID,BOOTH_ID) f_a,
SUBSTR(WORK_STT_TIME,1,2)||':'||SUBSTR(WORK_STT_TIME,3,2)||'-'||
SUBSTR(WORK_END_TIME,1,2)||':'||SUBSTR(WORK_END_TIME,3,2) f_b,
SUM(NVL(CASH_QUANTITY,0)) f_c,
SUM(NVL(CARD_BEFORE_QUANTITY,0)) f_d,
SUM(NVL(CARD_AFTER_QUANTITY,0)) f_e,
SUM(NVL(COUPON_QUANTITY,0)) f_f,
SUM(NVL(NONPAYMENT_QUANTITY,0)) f_g,
SUM(NVL(EXEMPTION_QUANTITY,0)) f_h,
(FUN_MONEY_FROM_FARE_INFO1(v_date, '10') * SUM(NVL(CASH_QUANTITY,0))) f_i,
(FUN_MONEY_FROM_FARE_INFO1(v_date, '21') * SUM(NVL(CARD_BEFORE_QUANTITY,0))) f_j,
(FUN_MONEY_FROM_FARE_INFO1(v_date, '22') * SUM(NVL(CARD_AFTER_QUANTITY,0))) f_k,
SUM(NVL(COUPON_SALE_QUANTITY,0)) f_l,
(FUN_MONEY_FROM_FARE_INFO1(v_date, '52') * SUM(NVL(COUPON_SALE_QUANTITY,0))) f_m,
WORKER_ID f_n
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date
GROUP BY FARE_OFFICE_ID,BOOTH_ID,WORK_STT_TIME,WORK_END_TIME,WORKER_ID;
TRF501Q_REC1 CUR%ROWTYPE;
BEGIN
p_booth := '';
p_work_time := '';
p_a := 0 ;
p_b := 0 ;
p_c := 0 ;
p_d := 0 ;
p_e := 0 ;
p_f := 0 ;
p_g := 0 ;
p_h := 0 ;
p_i := 0 ;
p_j := 0 ;
p_k := 0 ;
p_l := 0 ;
p_m := 0 ;
p_n := 0 ;
p_o := 0 ;
p_p := 0 ;
v_name := ' ';
FOR TRF501Q_REC1 IN CUR LOOP
p_booth := TRF501Q_REC1.f_a;
p_work_time := TRF501Q_REC1.f_b;
p_c := TRF501Q_REC1.f_c;
p_d := TRF501Q_REC1.f_d;
p_e := TRF501Q_REC1.f_e;
p_f := TRF501Q_REC1.f_f;
p_h := TRF501Q_REC1.f_g;
p_i := TRF501Q_REC1.f_h;
p_k := TRF501Q_REC1.f_i;
p_m := TRF501Q_REC1.f_j;
p_n := TRF501Q_REC1.f_k;
p_o := TRF501Q_REC1.f_l;
p_p := TRF501Q_REC1.f_m;
v_name := TRF501Q_REC1.f_n;
--소계
p_b := p_c + p_d + p_e + p_f;
p_g := p_h + p_i;
p_l := p_m + p_n;
--합계
p_a := p_b + p_g;
p_j := p_k + p_l;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRF502Q;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 구분자에 따라 일계,월계,년누계를 구함 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRF502Q_SUM( v_ymd_kbn IN BINARY_INTEGER,
v_office IN CHAR,
v_date IN CHAR,
p_a_t OUT NUMBER,
p_b_t OUT NUMBER,
p_c_t OUT NUMBER,
p_d_t OUT NUMBER,
p_e_t OUT NUMBER,
p_f_t OUT NUMBER,
p_g_t OUT NUMBER,
p_h_t OUT NUMBER,
p_i_t OUT NUMBER,
p_j_t OUT NUMBER,
p_k_t OUT NUMBER,
p_l_t OUT NUMBER,
p_m_t OUT NUMBER,
p_n_t OUT NUMBER,
p_o_t OUT NUMBER,
p_p_t OUT NUMBER )
IS
BEGIN
p_a_t := 0 ;
p_b_t := 0 ;
p_c_t := 0 ;
p_d_t := 0 ;
p_e_t := 0 ;
p_f_t := 0 ;
p_g_t := 0 ;
p_h_t := 0 ;
p_i_t := 0 ;
p_j_t := 0 ;
p_k_t := 0 ;
p_l_t := 0 ;
p_m_t := 0 ;
p_n_t := 0 ;
p_o_t := 0 ;
p_p_t := 0 ;
-- 일계
IF v_ymd_kbn = 1 THEN
SELECT SUM(NVL(CASH_QUANTITY,0)),
SUM(NVL(CARD_BEFORE_QUANTITY,0)),
SUM(NVL(CARD_AFTER_QUANTITY,0)),
SUM(NVL(COUPON_QUANTITY,0)),
SUM(NVL(NONPAYMENT_QUANTITY,0)),
SUM(NVL(EXEMPTION_QUANTITY,0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '10') * SUM(NVL(CASH_QUANTITY,0))),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '21') * SUM(NVL(CARD_BEFORE_QUANTITY,0))),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '22') * SUM(NVL(CARD_AFTER_QUANTITY,0))),
SUM(NVL(COUPON_SALE_QUANTITY,0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '52') * SUM(NVL(COUPON_SALE_QUANTITY,0)))
INTO p_c_t,
p_d_t,
p_e_t,
p_f_t,
p_h_t,
p_i_t,
p_k_t,
p_m_t,
p_n_t,
p_o_t,
p_p_t
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date;
--월계
ELSIF v_ymd_kbn = 2 THEN
SELECT SUM(NVL(CASH_QUANTITY,0)),
SUM(NVL(CARD_BEFORE_QUANTITY,0)),
SUM(NVL(CARD_AFTER_QUANTITY,0)),
SUM(NVL(COUPON_QUANTITY,0)),
SUM(NVL(NONPAYMENT_QUANTITY,0)),
SUM(NVL(EXEMPTION_QUANTITY,0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '10') * SUM(NVL(CASH_QUANTITY,0))),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '21') * SUM(NVL(CARD_BEFORE_QUANTITY,0))),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '22') * SUM(NVL(CARD_AFTER_QUANTITY,0))),
SUM(NVL(COUPON_SALE_QUANTITY,0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '52') * SUM(NVL(COUPON_SALE_QUANTITY,0)))
INTO p_c_t,
p_d_t,
p_e_t,
p_f_t,
p_h_t,
p_i_t,
p_k_t,
p_m_t,
p_n_t,
p_o_t,
p_p_t
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY BETWEEN SUBSTR(v_date,1,6)||'01' AND v_date;
-- AND YEAR||MONTH||DAY = SUBSTR(v_date,1,6);
--AND YEAR||MONTH = SUBSTR(v_date,1,6);
-- 년누계
ELSIF v_ymd_kbn = 3 THEN
SELECT SUM(NVL(CASH_QUANTITY,0)),
SUM(NVL(CARD_BEFORE_QUANTITY,0)),
SUM(NVL(CARD_AFTER_QUANTITY,0)),
SUM(NVL(COUPON_QUANTITY,0)),
SUM(NVL(NONPAYMENT_QUANTITY,0)),
SUM(NVL(EXEMPTION_QUANTITY,0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '10') * SUM(NVL(CASH_QUANTITY,0))),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '21') * SUM(NVL(CARD_BEFORE_QUANTITY,0))),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '22') * SUM(NVL(CARD_AFTER_QUANTITY,0))),
SUM(NVL(COUPON_SALE_QUANTITY,0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '52') * SUM(NVL(COUPON_SALE_QUANTITY,0)))
INTO p_c_t,
p_d_t,
p_e_t,
p_f_t,
p_h_t,
p_i_t,
p_k_t,
p_m_t,
p_n_t,
p_o_t,
p_p_t
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY BETWEEN SUBSTR(v_date,1,4)||'0101' AND v_date;
--AND YEAR||MONTH||DAY = SUBSTR(v_date,1,4);
--AND YEAR = SUBSTR(v_date,1,4);
END IF;
--소계
p_b_t := p_c_t + p_d_t + p_e_t + p_f_t;
p_g_t := p_h_t + p_i_t;
p_l_t := p_m_t + p_n_t;
--합계
p_a_t := p_b_t + p_g_t;
p_j_t := p_k_t + p_l_t;
END SP_TRF502Q_SUM;
END PAC_GET_TRF502Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRF501Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 전 체 건 수 **
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRF501Q_CNT
(
in_office IN CHAR,
in_year IN CHAR,
in_month in char,
in_day in char
)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE in_office
AND YEAR = in_year
AND MONTH = in_month
AND DAY = in_day;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
RETURN 0;
END FUN_TRF501Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일일 차로별,징수원,시간대별현황 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRF501Q( v_row IN NUMBER,
in_office IN CHAR,
in_date in char,
in_year IN CHAR,
in_month in char,
in_day in char,
p_worker OUT CHAR,
p_work_time OUT CHAR,
p_booth OUT CHAR,
p_pass_car_amt OUT NUMBER,
p_pass_car_amt1 OUT NUMBER,
p_cash OUT NUMBER,
p_bcard OUT NUMBER,
p_acard OUT NUMBER,
p_coupon OUT NUMBER,
p_amt3 OUT NUMBER,
p_amt4 OUT NUMBER,
p_amt5 OUT NUMBER,
p_amt6 OUT NUMBER,
p_amt7 OUT NUMBER,
p_amt8 OUT NUMBER,
p_amt9 OUT NUMBER,
p_amt10 OUT NUMBER,
p_amt11 OUT NUMBER,
p_amt12 OUT NUMBER )
IS
CURSOR CUR IS
SELECT FUN_GET_WORKER(WORKER_ID) f_a,
SUBSTR(WORK_STT_TIME,1,2)||':'||SUBSTR(WORK_STT_TIME,3,2)||'-'||
SUBSTR(WORK_END_TIME,1,2)||':'||SUBSTR(WORK_END_TIME,3,2) f_b,
FUN_GET_BOOTH(FARE_OFFICE_ID,BOOTH_ID) f_c,
NVL(CASH_QUANTITY,0) + NVL(K_CASH_Q,0) f_d,
NVL(CARD_BEFORE_QUANTITY,0) + NVL(K_CARD_SUN_Q,0) f_e,
NVL(CARD_AFTER_QUANTITY,0) + NVL(K_CARD_WHO_Q,0) f_f,
NVL(COUPON_QUANTITY,0) + NVL(K_COUPON_Q,0) f_g,
NVL(NONPAYMENT_QUANTITY,0) f_h,
NVL(EXEMPTION_QUANTITY,0) f_i,
(FUN_MONEY_FROM_FARE_INFO1(in_date, '10') * NVL(CASH_QUANTITY,0) +
FUN_MONEY_FROM_FARE_INFO1(in_date, '11') * NVL(K_CASH_Q,0)) f_j,
(FUN_MONEY_FROM_FARE_INFO1(in_date, '21') * NVL(CARD_BEFORE_QUANTITY,0) +
FUN_MONEY_FROM_FARE_INFO1(in_date, '23') * NVL(K_CARD_SUN_Q,0)) f_k,
(FUN_MONEY_FROM_FARE_INFO1(in_date, '22') * NVL(CARD_AFTER_QUANTITY,0) +
FUN_MONEY_FROM_FARE_INFO1(in_date, '24') * NVL(K_CARD_WHO_Q,0)) f_l,
NVL(COUPON_SALE_QUANTITY,0) + NVL(K_COUPON_SALE_Q,0) f_m,
(FUN_MONEY_FROM_FARE_INFO1(in_date, '52') * NVL(COUPON_SALE_QUANTITY,0) +
FUN_MONEY_FROM_FARE_INFO1(in_date, '54') * NVL(K_COUPON_SALE_Q,0)) f_n
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE in_office
AND YEAR = in_year
AND MONTH = in_month
AND DAY = in_day
ORDER BY WORKER_ID, WORK_STT_TIME;
TRF501Q_REC1 CUR%ROWTYPE;
BEGIN
p_worker := '';
p_work_time := '';
p_booth := '';
p_pass_car_amt := 0 ;
p_pass_car_amt1 := 0 ;
p_cash := 0 ;
p_bcard := 0 ;
p_acard := 0 ;
p_coupon := 0 ;
p_amt3 := 0 ;
p_amt4 := 0 ;
p_amt5 := 0 ;
p_amt6 := 0 ;
p_amt7 := 0 ;
p_amt8 := 0 ;
p_amt9 := 0 ;
p_amt10 := 0 ;
p_amt11 := 0 ;
p_amt12 := 0 ;
FOR TRF501Q_REC1 IN CUR LOOP
p_worker := TRF501Q_REC1.f_a;
p_work_time := TRF501Q_REC1.f_b;
p_booth := TRF501Q_REC1.f_c;
p_cash := TRF501Q_REC1.f_d;
p_bcard := TRF501Q_REC1.f_e;
p_acard := TRF501Q_REC1.f_f;
p_coupon := TRF501Q_REC1.f_g;
p_amt4 := TRF501Q_REC1.f_h;
p_amt5 := TRF501Q_REC1.f_i;
p_amt7 := TRF501Q_REC1.f_j;
p_amt9 := TRF501Q_REC1.f_k;
p_amt10 := TRF501Q_REC1.f_l;
p_amt11 := TRF501Q_REC1.f_m;
p_amt12 := TRF501Q_REC1.f_n;
--소계
p_pass_car_amt1 := p_cash + p_bcard + p_acard + p_coupon;
p_amt3 := p_amt4 + p_amt5;
p_amt8 := p_amt9 + p_amt10;
--합계
p_pass_car_amt := p_pass_car_amt1 + p_amt3;
p_amt6 := p_amt7 + p_amt8;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRF501Q;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 구분자에 따라 일계,월계,년누계를 구함 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRF501Q_SUM( v_ymd_kbn IN BINARY_INTEGER,
v_office IN CHAR,
v_date IN CHAR,
p_pass_car_amt_t OUT NUMBER,
p_pass_car_amt1_t OUT NUMBER,
p_cash_t OUT NUMBER,
p_bcard_t OUT NUMBER,
p_acard_t OUT NUMBER,
p_coupon_t OUT NUMBER,
p_amt3_t OUT NUMBER,
p_amt4_t OUT NUMBER,
p_amt5_t OUT NUMBER,
p_amt6_t OUT NUMBER,
p_amt7_t OUT NUMBER,
p_amt8_t OUT NUMBER,
p_amt9_t OUT NUMBER,
p_amt10_t OUT NUMBER,
p_amt11_t OUT NUMBER,
p_amt12_t OUT NUMBER )
IS
BEGIN
p_pass_car_amt_t := 0 ;
p_pass_car_amt1_t := 0 ;
p_cash_t := 0 ;
p_bcard_t := 0 ;
p_acard_t := 0 ;
p_coupon_t := 0 ;
p_amt3_t := 0 ;
p_amt4_t := 0 ;
p_amt5_t := 0 ;
p_amt6_t := 0 ;
p_amt7_t := 0 ;
p_amt8_t := 0 ;
p_amt9_t := 0 ;
p_amt10_t := 0 ;
p_amt11_t := 0 ;
p_amt12_t := 0 ;
-- 일계
IF v_ymd_kbn = 1 THEN
SELECT NVL(SUM(NVL(CASH_QUANTITY,0) + NVL(K_CASH_Q,0)),0),
NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0) + NVL(K_CARD_SUN_Q,0)),0),
NVL(SUM(NVL(CARD_AFTER_QUANTITY,0) + NVL(K_CARD_WHO_Q,0)),0),
NVL(SUM(NVL(COUPON_QUANTITY,0) + NVL(K_COUPON_Q,0)),0),
NVL(SUM(NVL(NONPAYMENT_QUANTITY,0)),0),
NVL(SUM(NVL(EXEMPTION_QUANTITY,0)),0),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '10') * NVL(SUM(NVL(CASH_QUANTITY,0)),0) +
FUN_MONEY_FROM_FARE_INFO1(v_date, '11') * NVL(SUM(NVL(K_CASH_Q,0)),0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '21') * NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0)),0) +
FUN_MONEY_FROM_FARE_INFO1(v_date, '23') * NVL(SUM(NVL(K_CARD_SUN_Q,0)),0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '22') * NVL(SUM(NVL(CARD_AFTER_QUANTITY,0)),0) +
FUN_MONEY_FROM_FARE_INFO1(v_date, '24') * NVL(SUM(NVL(K_CARD_WHO_Q,0)),0)),
NVL(SUM(NVL(COUPON_SALE_QUANTITY,0) + NVL(K_COUPON_SALE_Q,0)),0),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '52') * NVL(SUM(NVL(COUPON_SALE_QUANTITY,0)),0) +
FUN_MONEY_FROM_FARE_INFO1(v_date, '54') * NVL(SUM(NVL(K_COUPON_SALE_Q,0)),0))
INTO p_cash_t,
p_bcard_t,
p_acard_t,
p_coupon_t,
p_amt4_t,
p_amt5_t,
p_amt7_t,
p_amt9_t,
p_amt10_t,
p_amt11_t,
p_amt12_t
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_date;
--월계
ELSIF v_ymd_kbn = 2 THEN
SELECT NVL(SUM(NVL(CASH_QUANTITY,0) + NVL(K_CASH_Q,0)),0),
NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0) + NVL(K_CARD_SUN_Q,0)),0),
NVL(SUM(NVL(CARD_AFTER_QUANTITY,0) + NVL(K_CARD_WHO_Q,0)),0),
NVL(SUM(NVL(COUPON_QUANTITY,0) + NVL(K_COUPON_Q,0)),0),
NVL(SUM(NVL(NONPAYMENT_QUANTITY,0)),0),
NVL(SUM(NVL(EXEMPTION_QUANTITY,0)),0),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '10') * NVL(SUM(NVL(CASH_QUANTITY,0)),0) +
FUN_MONEY_FROM_FARE_INFO1(v_date, '11') * NVL(SUM(NVL(K_CASH_Q,0)),0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '21') * NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0)),0) +
FUN_MONEY_FROM_FARE_INFO1(v_date, '23') * NVL(SUM(NVL(K_CARD_SUN_Q,0)),0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '22') * NVL(SUM(NVL(CARD_AFTER_QUANTITY,0)),0) +
FUN_MONEY_FROM_FARE_INFO1(v_date, '24') * NVL(SUM(NVL(K_CARD_WHO_Q,0)),0)),
NVL(SUM(NVL(COUPON_SALE_QUANTITY,0) + NVL(K_COUPON_SALE_Q,0)),0),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '52') * NVL(SUM(NVL(COUPON_SALE_QUANTITY,0)),0) +
FUN_MONEY_FROM_FARE_INFO1(v_date, '54') * NVL(SUM(NVL(K_COUPON_SALE_Q,0)),0))
INTO p_cash_t,
p_bcard_t,
p_acard_t,
p_coupon_t,
p_amt4_t,
p_amt5_t,
p_amt7_t,
p_amt9_t,
p_amt10_t,
p_amt11_t,
p_amt12_t
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY BETWEEN SUBSTR(v_date,1,6)||'01' AND v_date;
-- 년누계
ELSIF v_ymd_kbn = 3 THEN
SELECT NVL(SUM(NVL(CASH_QUANTITY,0) + NVL(K_CASH_Q,0)),0),
NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0) + NVL(K_CARD_SUN_Q,0)),0),
NVL(SUM(NVL(CARD_AFTER_QUANTITY,0) + NVL(K_CARD_WHO_Q,0)),0),
NVL(SUM(NVL(COUPON_QUANTITY,0) + NVL(K_COUPON_Q,0)),0),
NVL(SUM(NVL(NONPAYMENT_QUANTITY,0)),0),
NVL(SUM(NVL(EXEMPTION_QUANTITY,0)),0),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '10') * NVL(SUM(NVL(CASH_QUANTITY,0)),0) +
FUN_MONEY_FROM_FARE_INFO1(v_date, '11') * NVL(SUM(NVL(K_CASH_Q,0)),0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '21') * NVL(SUM(NVL(CARD_BEFORE_QUANTITY,0)),0) +
FUN_MONEY_FROM_FARE_INFO1(v_date, '23') * NVL(SUM(NVL(K_CARD_SUN_Q,0)),0)),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '22') * NVL(SUM(NVL(CARD_AFTER_QUANTITY,0)),0) +
FUN_MONEY_FROM_FARE_INFO1(v_date, '24') * NVL(SUM(NVL(K_CARD_WHO_Q,0)),0)),
NVL(SUM(NVL(COUPON_SALE_QUANTITY,0) + NVL(K_COUPON_SALE_Q,0)),0),
(FUN_MONEY_FROM_FARE_INFO1(v_date, '52') * NVL(SUM(NVL(COUPON_SALE_QUANTITY,0)),0) +
FUN_MONEY_FROM_FARE_INFO1(v_date, '54') * NVL(SUM(NVL(K_COUPON_SALE_Q,0)),0))
INTO p_cash_t,
p_bcard_t,
p_acard_t,
p_coupon_t,
p_amt4_t,
p_amt5_t,
p_amt7_t,
p_amt9_t,
p_amt10_t,
p_amt11_t,
p_amt12_t
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY BETWEEN SUBSTR(v_date,1,4)||'0101' AND v_date;
END IF;
--소계
p_pass_car_amt1_t := p_cash_t + p_bcard_t + p_acard_t + p_coupon_t;
p_amt3_t := p_amt4_t + p_amt5_t;
p_amt8_t := p_amt9_t + p_amt10_t;
--합계
p_pass_car_amt_t := p_pass_car_amt1_t + p_amt3_t;
p_amt6_t := p_amt7_t + p_amt8_t;
END SP_TRF501Q_SUM;
END PAC_GET_TRF501Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRD500Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 전 체 건 수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRD500Q_CNT
(
v_office IN CHAR,
v_from_dt IN CHAR,
v_to_dt IN CHAR,
in_over_kbn in char,
in_refund_kbn in char,
in_worker in char
)
RETURN NUMBER
IS
h_count NUMBER := 0;
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(a.WORKER_ID)
INTO h_count
FROM OVERFARE_INFO a
WHERE a.worker_id like in_worker
and a.FARE_OFFICE_ID LIKE v_office
AND a.YEAR||a.MONTH||a.DAY BETWEEN v_from_dt AND v_to_dt
AND A.OVERFARE_KBN like in_over_kbn
AND A.REFUND_KBN like in_refund_kbn
AND A.DELETE_YN = '0';
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSE
v_rc := h_count;
RETURN v_rc;
END IF;
END;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_TRD500Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 과오납누계를리턴(기준일 -1한 일자까지의 과오납금액의 합)
** 수정 : 위 내용 아님.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_F3
( v_fare_office IN CHAR, v_std_date IN CHAR, v_times IN CHAR ) RETURN NUMBER
IS
v_rc1 NUMBER := 0;
v_rc2 NUMBER := 0;
v_rc NUMBER := 0;
BEGIN
SELECT NVL(SUM(NVL(a.OVERFARE_AMOUNT,0)),0)
INTO v_rc1
FROM OVERFARE_INFO a
WHERE a.FARE_OFFICE_ID = v_fare_office
AND a.YEAR||a.MONTH||a.DAY||a.OVERFARE_TIMES <= v_std_date||v_times
AND A.DELETE_YN = '0';
SELECT NVL(SUM(NVL(b.OVERFARE_AMOUNT,0)),0)
INTO v_rc2
FROM OVERFARE_INFO b
WHERE b.FARE_OFFICE_ID = v_fare_office
AND b.YEAR||b.MONTH||b.DAY||b.OVERFARE_TIMES < v_std_date||v_times
AND b.OVERFARE_KBN = '2'
AND B.REFUND_KBN = '1'
AND B.DELETE_YN = '0';
v_rc := v_rc1 - v_rc2;
RETURN v_rc;
EXCEPTION
WHEN NO_DATA_FOUND THEN
return 0;
WHEN OTHERS THEN
return 0;
END FUN_F3;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 전일잔액을 리턴 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_F1(
v_worker_id IN CHAR,
v_fare_office IN CHAR,
v_booth_id IN CHAR,
v_year IN CHAR,
v_month IN CHAR,
v_day IN CHAR ) RETURN NUMBER
IS
v_rc NUMBER := 0;
v_tmp1 NUMBER := 0;
v_tmp2 NUMBER := 0;
BEGIN
/* 전일잔액 = (당일입금액 + 전일까지의 누계) - 출금액
**
*/
BEGIN
--SYSDATE -1의 입금총액
SELECT SUM(NVL(OVERFARE_AMOUNT,0))
INTO v_tmp1
FROM OVERFARE_INFO
WHERE WORKER_ID = v_worker_id
AND FARE_OFFICE_ID = v_fare_office
AND BOOTH_ID = v_booth_id
AND YEAR||MONTH||DAY = TO_CHAR(SYSDATE - 1,'YYYYMMDD')
AND OVERFARE_KBN = '1'
AND REFUND_KBN = '0'
AND DELETE_YN = '0';
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_tmp1 := 0;
RETURN v_tmp1;
END;
BEGIN
--SYSDATE -1의 출금총액
SELECT SUM(NVL(OVERFARE_AMOUNT,0))
INTO v_tmp2
FROM OVERFARE_INFO
WHERE WORKER_ID = v_worker_id
AND FARE_OFFICE_ID = v_fare_office
AND BOOTH_ID = v_booth_id
AND YEAR||MONTH||DAY = TO_CHAR(SYSDATE - 1,'YYYYMMDD')
AND OVERFARE_KBN = '2'
AND REFUND_KBN = '1'
AND DELETE_YN = '0';
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_tmp2 := 0;
RETURN v_tmp2;
END;
v_rc := v_tmp1 - v_tmp2;
RETURN v_rc;
END FUN_F1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 과오납 입출금액을 리턴 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_F2(
v_worker_id IN CHAR,
v_fare_office IN CHAR,
v_booth_id IN CHAR,
v_year IN CHAR,
v_month IN CHAR,
v_day IN CHAR,
v_work_stt_time IN CHAR,
v_work_end_time IN CHAR,
v_overfare_seqno IN NUMBER,
v_inout_kbn IN CHAR ) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
SELECT NVL(OVERFARE_AMOUNT,0)
INTO v_rc
FROM OVERFARE_INFO
WHERE WORKER_ID = v_worker_id
AND FARE_OFFICE_ID = v_fare_office
AND BOOTH_ID = v_booth_id
AND YEAR||MONTH||DAY = v_year||v_month||v_day
AND WORK_STT_TIME = v_work_stt_time
AND WORK_END_TIME = v_work_end_time
AND OVERFARE_SEQNO = v_overfare_seqno
--AND OVERFARE_KBN = v_inout_kbn
AND DELETE_YN = '0';
RETURN v_rc;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END FUN_F2;
/****************************************************************************
** 차량번호로 차종을 알아낸다. KIM DONG EUN
****************************************************************************/
FUNCTION FUN_F4( v_carno IN CHAR ) RETURN VARCHAR2
IS
v_length number := 0;
v_num char(2) := '';
v_instr number := 0;
v_instr1 number := 0;
v_type char(1) := ' ';
BEGIN
v_instr := instr(v_carno, '?');
v_instr1 := instr(v_carno, ' ');
if v_instr = 0 and v_instr1 = 0 then
v_length := length(v_carno);
IF v_length = 12 THEN
v_num := substr(v_carno, 5,2);
SELECT CARS_TYPE_ID
INTO V_TYPE
FROM CARS_TYPE_CODE_INFO
WHERE STT_FNO <= v_num
AND END_FNO >= v_num;
ELSIF v_length = 11 THEN
v_num := substr(v_carno, 5,1);
SELECT CARS_TYPE_ID
INTO V_TYPE
FROM CARS_TYPE_CODE_INFO
WHERE STT_SNO <= v_num
AND END_SNO >= v_num;
ELSE
v_type := '5';
END IF;
else
v_type := '5';
end if;
return v_type;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN '5';
END;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 과오납 반환 여부 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_F5(
v_worker_id IN CHAR,
v_fare_office IN CHAR,
v_booth_id IN CHAR,
v_year IN CHAR,
v_month IN CHAR,
v_day IN CHAR,
v_work_stt_time IN CHAR,
v_work_end_time IN CHAR,
v_owner IN CHAR,
v_carno IN CHAR,
v_r_no IN CHAR,
v_r_date IN CHAR) RETURN number
IS
v_rc number := 0;
BEGIN
SELECT count(*)
INTO v_rc
FROM OVERFARE_INFO
WHERE WORKER_ID = v_worker_id
AND FARE_OFFICE_ID = v_fare_office
AND BOOTH_ID = v_booth_id
AND YEAR||MONTH||DAY = v_year||v_month||v_day
AND WORK_STT_TIME = v_work_stt_time
AND WORK_END_TIME = v_work_end_time
AND OWNER = v_owner
AND CAR_NO = v_carno
AND RESIDENT_NO = v_r_no
AND to_char(RESIDENT_DATE, 'yyyymmdd') = v_r_date
AND OVERFARE_KBN = '2'
AND REFUND_KBN = '1'
AND DELETE_YN = '0';
RETURN v_rc;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END FUN_F5;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 과오납 환급액 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_F6(
v_worker_id IN CHAR,
v_fare_office IN CHAR,
v_booth_id IN CHAR,
v_year IN CHAR,
v_month IN CHAR,
v_day IN CHAR,
v_work_stt_time IN CHAR,
v_work_end_time IN CHAR,
V_OVER_TIME IN CHAR,
v_owner IN CHAR,
v_carno IN CHAR,
v_r_no IN CHAR,
v_r_date IN CHAR) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
SELECT NVL(OVERFARE_AMOUNT,0)
INTO v_rc
FROM OVERFARE_INFO
WHERE WORKER_ID = v_worker_id
AND FARE_OFFICE_ID = v_fare_office
AND BOOTH_ID = v_booth_id
AND YEAR||MONTH||DAY = v_year||v_month||v_day
AND WORK_STT_TIME = v_work_stt_time
AND WORK_END_TIME = v_work_end_time
AND OVERFARE_TIMES = V_OVER_TIME
--AND OWNER = v_owner
--AND CAR_NO = v_carno
--AND RESIDENT_NO = v_r_no
--AND to_char(RESIDENT_DATE, 'yyyymmdd') = v_r_date
AND OVERFARE_KBN = '2'
AND REFUND_KBN = '1'
AND DELETE_YN = '0';
RETURN v_rc;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END FUN_F6;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 과오납금관리대장 수정 : 20021115 KIM DONG EUN **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRD500Q( ii_index IN BINARY_INTEGER,
v_office IN CHAR,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
in_over_kbn in char,
in_refund_kbn in char,
in_worker in char,
v_date OUT VARCHAR2 ,
v_time OUT CHAR,
v_worker_name OUT VARCHAR2 ,
v_booth OUT CHAR ,
v_carno OUT VARCHAR2 ,
v_car_type OUT CHAR ,
v_overfare_amt OUT NUMBER ,
v_totsum_amt OUT NUMBER ,
v_overfare_out OUT NUMBER ,
v_return_person OUT VARCHAR2 ,
v_reason OUT VARCHAR2 ,
v_fare OUT CHAR,
v_seqno OUT NUMBER,
v_r_no out char,
v_r_date out char,
v_back out number,
v_st out char,
v_ed out char )
IS
CURSOR CUR IS
SELECT A.YEAR||A.MONTH||A.DAY f_date,
A.OVERFARE_TIMES f_time,
A.WORKER_ID f_worker,
A.BOOTH_ID f_booth,
A.CAR_NO f_carno,
PAC_GET_TRD500Q.FUN_F4(A.CAR_NO) f_car_type,
-- 과오납금 가져옴
PAC_GET_TRD500Q.FUN_F2( A.WORKER_ID, A.FARE_OFFICE_ID,
A.BOOTH_ID, A.YEAR, A.MONTH, A.DAY,
A.WORK_STT_TIME, A.WORK_END_TIME, A.OVERFARE_SEQNO,'1') f_in_amt,
-- 누계
PAC_GET_TRD500Q.FUN_F3( A.FARE_OFFICE_ID, A.YEAR||A.MONTH||A.DAY, A.OVERFARE_TIMES ) f_totsum_amt,
-- 반환금 가져옴.
PAC_GET_TRD500Q.FUN_F6( A.WORKER_ID, A.FARE_OFFICE_ID,
A.BOOTH_ID, A.YEAR, A.MONTH, A.DAY,
A.WORK_STT_TIME,A.WORK_END_TIME, A.OVERFARE_TIMES, A.OWNER, A.CAR_NO, A.RESIDENT_NO,
to_char(A.RESIDENT_DATE,'yyyymmdd')) f_out_amt,
NVL(A.OWNER, ' ') f_return_person,
A.REMARKS f_reason,
A.FARE_OFFICE_ID f_fare,
A.OVERFARE_SEQNO f_seqno,
nvl(A.RESIDENT_NO,' ') f_resident_no,
nvl(to_char(A.RESIDENT_DATE, 'yyyy/mm/dd'),' ') f_resident_date,
A.WORK_STT_TIME f_st_time,
A.WORK_END_TIME f_ed_time,
A.OVERFARE_TIMES f_times,
A.OVERFARE_KBN f_ovefare_kbn,
A.REFUND_KBN f_refund_kbn
FROM OVERFARE_INFO A
WHERE a.worker_id like in_worker
and A.FARE_OFFICE_ID LIKE v_office
AND A.YEAR||A.MONTH||A.DAY BETWEEN v_from_dt AND v_to_dt
AND A.OVERFARE_KBN like in_over_kbn
AND A.REFUND_KBN like in_refund_kbn
AND A.DELETE_YN = '0'
ORDER BY A.YEAR,A.MONTH,A.DAY,A.OVERFARE_TIMES;
TRD500Q_REC CUR%ROWTYPE;
v_overfare_kbn char(1);
v_refund_kbn char(1);
BEGIN
FOR TRD500Q_REC IN CUR LOOP
v_date := TRD500Q_REC.f_date;
v_time := TRD500Q_REC.f_time;
v_worker_name := TRD500Q_REC.f_worker;
v_booth := TRD500Q_REC.f_booth;
v_carno := TRD500Q_REC.f_carno;
v_car_type := TRD500Q_REC.f_car_type;
v_overfare_amt := TRD500Q_REC.f_in_amt;
v_totsum_amt := TRD500Q_REC.f_totsum_amt;
v_overfare_out := TRD500Q_REC.f_out_amt;
v_return_person := TRD500Q_REC.f_return_person;
v_reason := TRD500Q_REC.f_reason;
v_fare := TRD500Q_REC.f_fare;
v_seqno := TRD500Q_REC.f_seqno;
v_r_no := TRD500Q_REC.f_resident_no;
v_r_date := TRD500Q_REC.f_resident_date;
v_st := TRD500Q_REC.f_st_time;
v_ed := TRD500Q_REC.f_ed_time;
v_overfare_kbn := TRD500Q_REC.f_ovefare_kbn;
v_refund_kbn := TRD500Q_REC.f_refund_kbn;
if v_overfare_kbn = '1' and v_refund_kbn = '0' then -- 과오납
v_back := '0';
elsif v_overfare_kbn = '2' and v_refund_kbn = '1' then -- 환급
v_back := '1';
elsif v_overfare_kbn = '2' and v_refund_kbn = '2' then -- 시세입
v_back := '2';
end if;
EXIT WHEN CUR%ROWCOUNT >= ii_index;
END LOOP;
END SP_TRD500Q;
END PAC_GET_TRD500Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRB000Q_1 AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** ?? ?? **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRB000Q_CNT_1( v_office IN CHAR,v_from_dt IN VARCHAR2,v_to_dt IN VARCHAR2) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM (SELECT YEAR,MONTH,DAY,booth_id,COUNT(*) FROM CAR_TIME_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,booth_id);
RETURN v_rc;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc ;
END FUN_TRB000Q_CNT_1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** ??? ??? ?? **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRB000Q_111(v_row IN NUMBER,
v_office IN CHAR,
v_from_date IN CHAR,
v_to_date IN CHAR,
p_date OUT NUMBER,
p_booth OUT NUMBER,
p_sum OUT NUMBER)
IS
CURSOR CUR IS
select year||month||day rtn_day,
booth_id rtn_booth,
SUM(NVL(IN_CASH_INCOME,0) +
NVL(IN_COUPON_SALE,0) +
NVL(IN_CARD_BEFORE_INCOME,0) +
NVL(IN_CARD_AFTER_INCOME,0) +
NVL(OUT_CASH_INCOME,0) +
NVL(OUT_COUPON_SALE,0) +
NVL(OUT_CARD_BEFORE_INCOME,0) +
NVL(OUT_CARD_AFTER_INCOME,0)) as rtn_sum
from car_time_adjust_info
where fare_office_id like v_office
and year || month || day between v_from_date and v_to_date
group by year||month||day, booth_id
order by year||month||day, booth_id;
CUR_REC CUR%ROWTYPE;
BEGIN
p_date := '';
p_booth := '';
p_sum := 0;
FOR CUR_REC IN CUR LOOP
IF CUR%NOTFOUND THEN
p_sum := 0;
exit;
ELSE
p_date := CUR_REC.rtn_day;
p_booth := CUR_REC.rtn_booth;
p_sum := CUR_REC.rtn_sum;
END IF;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRB000Q_111;
END PAC_GET_TRB000Q_1;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.Pac_Get_Tra500q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일일통행차량 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TRA500Q_CNT(v_flag IN BINARY_INTEGER,v_office IN CHAR,v_booth IN CHAR,v_gubun IN CHAR,
v_from_dt IN CHAR,v_to_dt IN CHAR ) RETURN NUMBER
IS
h_count NUMBER := 0;
v_rc NUMBER := 0;
BEGIN
IF v_flag <> 1 THEN /*미납차량일때에만 1을 넘긴다.*/
BEGIN
SELECT COUNT(WORKER_ID)
INTO h_count
FROM FARE_TERMINAL_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth
AND COLLECT_ID LIKE v_gubun
AND YEAR||MONTH||DAY||WORK_TIMES BETWEEN v_from_dt AND v_to_dt
AND DELETE_YN = '0';
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSE
v_rc := h_count;
RETURN v_rc;
END IF;
END;
ELSE
/*미납차량이면*/
BEGIN
SELECT COUNT(WORKER_ID)
INTO h_count
FROM FARE_TERMINAL_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID like '%'
AND COLLECT_ID = '40'
AND YEAR||MONTH||DAY||WORK_TIMES BETWEEN v_from_dt AND v_to_dt
AND DELETE_YN = '0';
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSE
v_rc := h_count;
RETURN v_rc;
END IF;
END;
END IF;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_TRA500Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일일통행차량명세 (미납차량을 제외) **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA500Q_1 ( ii_index IN BINARY_INTEGER,
v_office IN CHAR,
v_booth IN CHAR,
v_from_dt IN CHAR,
v_to_dt IN CHAR,
v_gubun IN BINARY_INTEGER, --[1:총괄,2:카드,3:면제,4:현금,5:쿠폰]
f_worker_id OUT CHAR,
f_worker_name OUT VARCHAR2,
f_datetime OUT VARCHAR2,
f_collect_name OUT VARCHAR2,
f_levy_amount OUT NUMBER,
f_seqno OUT NUMBER )
IS
CURSOR CUR IS
SELECT WORKER_ID f_worker_id,
Fun_Get_Worker(RTRIM(WORKER_ID)) f_worker_name,
TO_CHAR(ENFORCE_DATE,'YYYYMMDDHHMM') f_datetime,
Fun_Get_Collect(COLLECT_ID) f_collect_name,
NVL(LEVY_AMOUNT,0) f_levy_amount,
SEQNO f_seqno
FROM FARE_TERMINAL_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth
AND COLLECT_ID LIKE v_gubun
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
AND DELETE_YN = '0';
TRA500Q_1_REC CUR%ROWTYPE;
BEGIN
f_worker_id := '';
f_worker_name := '';
f_datetime := '';
f_collect_name := '';
f_levy_amount := 0;
f_seqno := 0;
FOR TRA500Q_1_REC IN CUR LOOP
f_worker_id := TRA500Q_1_REC.f_worker_id;
f_worker_name := TRA500Q_1_REC.f_worker_name;
f_datetime := TRA500Q_1_REC.f_datetime;
f_collect_name := TRA500Q_1_REC.f_collect_name;
f_levy_amount := TRA500Q_1_REC.f_levy_amount;
f_seqno := TRA500Q_1_REC.f_seqno;
f_worker_name := SUBSTR(f_worker_name,1,4)||'/'||SUBSTR(f_worker_name,5,2)||'/'||SUBSTR(f_worker_name,7,2)||RPAD('',1)||SUBSTR(f_worker_name,9,2)||':'||SUBSTR(f_worker_name,11,2);
EXIT WHEN CUR%ROWCOUNT >= ii_index;
END LOOP;
END SP_TRA500Q_1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일일통행차량명세 (미납차량만 조회) **
** 미납일 경우 차로는 전차로이다.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA500Q_2( ii_index IN BINARY_INTEGER,
v_office IN CHAR,
v_booth IN CHAR,
v_date IN CHAR,
f_worker_id OUT CHAR,
f_worker_name OUT VARCHAR2,
f_datetime OUT VARCHAR2,
f_collect_name OUT VARCHAR2,
f_levy_amount OUT NUMBER,
f_seqno OUT NUMBER )
IS
CURSOR CUR IS
SELECT WORKER_ID f_worker_id,
Fun_Get_Worker(RTRIM(WORKER_ID)) f_worker_name,
TO_CHAR(ENFORCE_DATE,'YYYYMMDDHHMM') f_datetime,
Fun_Get_Collect(COLLECT_ID) f_collect_name,
NVL(LEVY_AMOUNT,0) f_levy_amount,
SEQNO f_seqno
FROM FARE_TERMINAL_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID = '%'
AND COLLECT_ID = '40'
AND DELETE_YN = '0'
AND YEAR||MONTH||DAY||WORK_TIMES = v_date; --시간대가 같은 미납차량(200209010800)
TRA500Q_2_REC CUR%ROWTYPE;
BEGIN
f_worker_id := '';
f_worker_name := '';
f_datetime := '';
f_collect_name := '';
f_levy_amount := 0;
f_seqno := 0;
FOR TRA500Q_2_REC IN CUR LOOP
f_worker_id := TRA500Q_2_REC.f_worker_id;
f_worker_name := TRA500Q_2_REC.f_worker_name;
f_datetime := TRA500Q_2_REC.f_datetime;
f_collect_name := TRA500Q_2_REC.f_collect_name;
f_levy_amount := TRA500Q_2_REC.f_levy_amount;
f_seqno := TRA500Q_2_REC.f_seqno;
f_worker_name := SUBSTR(f_worker_name,1,4)||'/'||SUBSTR(f_worker_name,5,2)||'/'||SUBSTR(f_worker_name,7,2)||RPAD('',1)||SUBSTR(f_worker_name,9,2)||':'||SUBSTR(f_worker_name,11,2);
EXIT WHEN CUR%ROWCOUNT >= ii_index;
END LOOP;
END SP_TRA500Q_2;
END Pac_Get_Tra500q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TRA000Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (징수원별) 통행량 및 수입금 총괄 - 수정: 김동은 20021203 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA000Q_1( v_row IN NUMBER ,
v_office IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_gubun OUT VARCHAR2 ,
g_a1 OUT NUMBER ,
g_a2 OUT NUMBER ,
g_a3 OUT NUMBER ,
g_a4 OUT NUMBER ,
g_a5 OUT NUMBER ,
g_a6 OUT NUMBER ,
g_a7 OUT NUMBER ,
g_a8 OUT NUMBER ,
g_a9 OUT NUMBER ,
g_a10 OUT NUMBER ,
g_a11 OUT NUMBER ,
g_a12 OUT NUMBER )
IS
CURSOR CUR IS
SELECT FUN_GET_WORKER(WORKER_ID) f_aa,
WORKER_ID f_id,
SUM(NVL(CASH_QUANTITY,0)) f_bb,
SUM(NVL(CASH_INCOME,0)) f_cc,
SUM(NVL(CARD_BEFORE_QUANTITY,0)) f_dd,
SUM(NVL(CARD_AFTER_QUANTITY,0)) f_ee,
SUM(NVL(CARD_BEFORE_INCOME,0)) f_ff,
SUM(NVL(CARD_AFTER_INCME,0)) f_gg,
SUM(NVL(COUPON_QUANTITY,0)) f_hh,
SUM(NVL(COUPON_SALE,0)) f_ii
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
ORDER BY WORKER_ID;
TRA000Q_REC CUR%ROWTYPE;
BEGIN
g_a1 := 0;
g_a2 := 0;
g_a3 := 0;
g_a4 := 0;
g_a5 := 0;
g_a6 := 0;
g_a7 := 0;
g_a8 := 0;
g_a9 := 0;
g_a10 := 0;
g_a11 := 0;
g_a12 := 0;
FOR TRA000Q_REC IN CUR LOOP
g_gubun := TRA000Q_REC.f_aa;
g_a3 := TRA000Q_REC.f_bb;
g_a4 := TRA000Q_REC.f_cc;
g_a7 := TRA000Q_REC.f_dd;
g_a8 := TRA000Q_REC.f_ee;
g_a9 := TRA000Q_REC.f_ff;
g_a10 := TRA000Q_REC.f_gg;
g_a11 := TRA000Q_REC.f_hh;
--g_a12 := TRA000Q_REC.f_ii;
begin
-- 정액권 금액
SELECT NVL(SUM(LEVY_AMOUNT),0)
INTO g_a12
FROM FARE_TERMINAL_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND WORKER_ID = TRA000Q_REC.f_id
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
AND COLLECT_ID = '52'
GROUP BY WORKER_ID
ORDER BY WORKER_ID;
exception
when no_data_found then
g_a12 := 0;
end;
-- 소계
g_a5 := g_a7 + g_a8;
g_a6 := g_a9 + g_a10;
-- 합계
g_a1 := g_a3 + g_a5 + g_a11;
g_a2 := g_a4 + g_a6 + g_a12;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRA000Q_1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (시간대별) 통행량 및 수입금 총괄 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA000Q_2( v_row IN NUMBER ,
v_office IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_gubun OUT VARCHAR2 ,
g_a1 OUT NUMBER ,
g_a2 OUT NUMBER ,
g_a3 OUT NUMBER ,
g_a4 OUT NUMBER ,
g_a5 OUT NUMBER ,
g_a6 OUT NUMBER ,
g_a7 OUT NUMBER ,
g_a8 OUT NUMBER ,
g_a9 OUT NUMBER ,
g_a10 OUT NUMBER ,
g_a11 OUT NUMBER ,
g_a12 OUT NUMBER )
IS
CURSOR CUR IS
SELECT TIMES f_aa,
SUM(NVL(IN_CASH_QUANTITY,0)) +
SUM(NVL(OUT_CASH_QUANTITY,0)) f_bb,
SUM(NVL(IN_CASH_INCOME,0)) +
SUM(NVL(OUT_CASH_INCOME,0)) f_cc,
SUM(NVL(IN_CARD_BEFORE_QUANTITY,0)) +
SUM(NVL(OUT_CARD_BEFORE_QUANTITY,0)) f_dd,
SUM(NVL(IN_CARD_AFTER_QUANTITY,0)) +
SUM(NVL(OUT_CARD_AFTER_QUANTITY,0)) f_ee,
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) +
SUM(NVL(OUT_CARD_BEFORE_INCOME,0)) f_ff,
SUM(NVL(IN_CARD_AFTER_INCOME,0)) +
SUM(NVL(OUT_CARD_AFTER_INCOME,0)) f_gg,
SUM(NVL(IN_COUPON_QUANTITY,0)) +
SUM(NVL(OUT_COUPON_QUANTITY,0)) f_hh,
SUM(NVL(IN_COUPON_SALE,0)) +
SUM(NVL(OUT_COUPON_SALE,0)) f_ii
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
ORDER BY TIMES;
TRA000Q_REC CUR%ROWTYPE;
BEGIN
g_a1 := 0;
g_a2 := 0;
g_a3 := 0;
g_a4 := 0;
g_a5 := 0;
g_a6 := 0;
g_a7 := 0;
g_a8 := 0;
g_a9 := 0;
g_a10 := 0;
g_a11 := 0;
g_a12 := 0;
FOR TRA000Q_REC IN CUR LOOP
g_gubun := TRA000Q_REC.f_aa;
g_a3 := TRA000Q_REC.f_bb;
g_a4 := TRA000Q_REC.f_cc;
g_a7 := TRA000Q_REC.f_dd;
g_a8 := TRA000Q_REC.f_ee;
g_a9 := TRA000Q_REC.f_ff;
g_a10 := TRA000Q_REC.f_gg;
g_a11 := TRA000Q_REC.f_hh;
g_a12 := TRA000Q_REC.f_ii;
-- 소계
g_a5 := g_a7 + g_a8;
g_a6 := g_a9 + g_a10;
-- 합계
g_a1 := g_a3 + g_a5 + g_a11;
g_a2 := g_a4 + g_a6 + g_a12;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRA000Q_2;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (차로별) 통행량 및 수입금 총괄 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA000Q_3( v_row IN NUMBER ,
v_office IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_gubun OUT VARCHAR2 ,
g_a1 OUT NUMBER ,
g_a2 OUT NUMBER ,
g_a3 OUT NUMBER ,
g_a4 OUT NUMBER ,
g_a5 OUT NUMBER ,
g_a6 OUT NUMBER ,
g_a7 OUT NUMBER ,
g_a8 OUT NUMBER ,
g_a9 OUT NUMBER ,
g_a10 OUT NUMBER ,
g_a11 OUT NUMBER ,
g_a12 OUT NUMBER )
IS
CURSOR CUR IS
SELECT BOOTH_ID f_aa,
SUM(NVL(IN_CASH_QUANTITY,0)) +
SUM(NVL(OUT_CASH_QUANTITY,0)) f_bb,
SUM(NVL(IN_CASH_INCOME,0)) +
SUM(NVL(OUT_CASH_INCOME,0)) f_cc,
SUM(NVL(IN_CARD_BEFORE_QUANTITY,0)) +
SUM(NVL(OUT_CARD_BEFORE_QUANTITY,0)) f_dd,
SUM(NVL(IN_CARD_AFTER_QUANTITY,0)) +
SUM(NVL(OUT_CARD_AFTER_QUANTITY,0)) f_ee,
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) +
SUM(NVL(OUT_CARD_BEFORE_INCOME,0)) f_ff,
SUM(NVL(IN_CARD_AFTER_INCOME,0)) +
SUM(NVL(OUT_CARD_AFTER_INCOME,0)) f_gg,
SUM(NVL(IN_COUPON_QUANTITY,0)) + SUM(NVL(OUT_COUPON_QUANTITY,0)) f_hh,
SUM(NVL(IN_COUPON_SALE,0)) + SUM(NVL(OUT_COUPON_SALE,0)) f_ii
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
ORDER BY BOOTH_ID;
TRA000Q_REC CUR%ROWTYPE;
BEGIN
g_a1 := 0;
g_a2 := 0;
g_a3 := 0;
g_a4 := 0;
g_a5 := 0;
g_a6 := 0;
g_a7 := 0;
g_a8 := 0;
g_a9 := 0;
g_a10 := 0;
g_a11 := 0;
g_a12 := 0;
FOR TRA000Q_REC IN CUR LOOP
g_gubun := TRA000Q_REC.f_aa;
g_a3 := TRA000Q_REC.f_bb;
g_a4 := TRA000Q_REC.f_cc;
g_a7 := TRA000Q_REC.f_dd;
g_a8 := TRA000Q_REC.f_ee;
g_a9 := TRA000Q_REC.f_ff;
g_a10 := TRA000Q_REC.f_gg;
g_a11 := TRA000Q_REC.f_hh;
g_a12 := TRA000Q_REC.f_ii;
-- 소계
g_a5 := g_a7 + g_a8;
g_a6 := g_a9 + g_a10;
-- 합계
g_a1 := g_a3 + g_a5 + g_a11;
g_a2 := g_a4 + g_a6 + g_a12;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRA000Q_3;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*** (일별) 통행량 및 수입금 총괄 **
** ** FUN_TAR000Q_RTN(1이면 일별차량 2이면 일별금액 **
** 3이면 월별차량 4이면 월별금액 **
** 5이면 년별차량 4이면 년별금액 **
** ,요금소,시작일,종료일,'1이면 평일2이면 토요일)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA000Q_4( v_row IN NUMBER ,
v_office IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_gubun OUT VARCHAR2 ,
g_a1 OUT NUMBER ,
g_a2 OUT NUMBER ,
g_a3 OUT NUMBER ,
g_a4 OUT NUMBER ,
g_a5 OUT NUMBER ,
g_a6 OUT NUMBER ,
g_a7 OUT NUMBER ,
g_a8 OUT NUMBER ,
g_a9 OUT NUMBER ,
g_a10 OUT NUMBER ,
g_a11 OUT NUMBER ,
g_a12 OUT NUMBER ,
g_b1 OUT NUMBER ,
g_b2 OUT NUMBER ,
g_b3 OUT NUMBER ,
g_b4 OUT NUMBER )
IS
CURSOR CUR IS
SELECT YEAR,MONTH,DAY,
YEAR||MONTH||DAY f_aa,
SUM(NVL(IN_CASH_QUANTITY,0))+
SUM(NVL(OUT_CASH_QUANTITY,0)) f_bb,
SUM(NVL(IN_CASH_INCOME,0)) +
SUM(NVL(OUT_CASH_INCOME,0)) f_cc,
SUM(NVL(IN_CARD_BEFORE_QUANTITY,0)) +
SUM(NVL(OUT_CARD_BEFORE_QUANTITY,0)) f_dd,
SUM(NVL(IN_CARD_AFTER_QUANTITY,0)) +
SUM(NVL(OUT_CARD_AFTER_QUANTITY,0)) f_ee,
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) +
SUM(NVL(OUT_CARD_BEFORE_INCOME,0)) f_ff,
SUM(NVL(IN_CARD_AFTER_INCOME,0)) +
SUM(NVL(OUT_CARD_AFTER_INCOME,0)) f_gg,
SUM(NVL(IN_COUPON_QUANTITY,0)) +
SUM(NVL(OUT_COUPON_QUANTITY,0)) f_hh,
SUM(NVL(IN_COUPON_SALE,0)) +
SUM(NVL(OUT_COUPON_SALE,0)) f_ii,
PAC_GET_TRA000Q.FUN_TAR000Q_RTN(1,v_office,YEAR||MONTH||DAY,'1') f_a11,
PAC_GET_TRA000Q.FUN_TAR000Q_RTN(2,v_office,YEAR||MONTH||DAY,'1') f_a12,
PAC_GET_TRA000Q.FUN_TAR000Q_RTN(1,v_office,YEAR||MONTH||DAY,'2') f_a13,
PAC_GET_TRA000Q.FUN_TAR000Q_RTN(2,v_office,YEAR||MONTH||DAY,'2') f_a14
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
ORDER BY YEAR,MONTH,DAY;
TRA000Q_REC CUR%ROWTYPE;
BEGIN
g_a1 := 0;
g_a2 := 0;
g_a3 := 0;
g_a4 := 0;
g_a5 := 0;
g_a6 := 0;
g_a7 := 0;
g_a8 := 0;
g_a9 := 0;
g_a10 := 0;
g_a11 := 0;
g_a12 := 0;
g_b1 := 0;
g_b2 := 0;
g_b3 := 0;
g_b4 := 0;
FOR TRA000Q_REC IN CUR LOOP
g_gubun := TRA000Q_REC.f_aa;
g_a3 := TRA000Q_REC.f_bb;
g_a4 := TRA000Q_REC.f_cc;
g_a7 := TRA000Q_REC.f_dd;
g_a8 := TRA000Q_REC.f_ee;
g_a9 := TRA000Q_REC.f_ff;
g_a10 := TRA000Q_REC.f_gg;
g_a11 := TRA000Q_REC.f_hh;
g_a12 := TRA000Q_REC.f_ii;
g_b1 := TRA000Q_REC.f_a11;
g_b2 := TRA000Q_REC.f_a12;
g_b3 := TRA000Q_REC.f_a13;
g_b4 := TRA000Q_REC.f_a14;
g_gubun := SUBSTR(g_gubun,1,4)||'/'||SUBSTR(g_gubun,5,2)||'/'||SUBSTR(g_gubun,7,2);
-- 소계
g_a5 := g_a7 + g_a8;
g_a6 := g_a9 + g_a10;
-- 합계
g_a1 := g_a3 + g_a5 + g_a11; --+ g_b1 + g_b3;
g_a2 := g_a4 + g_a6 + g_a12; --+ g_b2 + g_b4;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRA000Q_4;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (월별) 통행량 및 수입금 총괄 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA000Q_5( v_row IN NUMBER ,
v_office IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_gubun OUT VARCHAR2 ,
g_a1 OUT NUMBER ,
g_a2 OUT NUMBER ,
g_a3 OUT NUMBER ,
g_a4 OUT NUMBER ,
g_a5 OUT NUMBER ,
g_a6 OUT NUMBER ,
g_a7 OUT NUMBER ,
g_a8 OUT NUMBER ,
g_a9 OUT NUMBER ,
g_a10 OUT NUMBER ,
g_a11 OUT NUMBER ,
g_a12 OUT NUMBER ,
g_b1 OUT NUMBER ,
g_b2 OUT NUMBER ,
g_b3 OUT NUMBER ,
g_b4 OUT NUMBER )
IS
CURSOR CUR IS
SELECT YEAR,MONTH,
YEAR||MONTH f_aa,
SUM(NVL(IN_CASH_QUANTITY,0))+
SUM(NVL(OUT_CASH_QUANTITY,0)) f_bb,
SUM(NVL(IN_CASH_INCOME,0)) +
SUM(NVL(OUT_CASH_INCOME,0)) f_cc,
SUM(NVL(IN_CARD_BEFORE_QUANTITY,0)) +
SUM(NVL(OUT_CARD_BEFORE_QUANTITY,0)) f_dd,
SUM(NVL(IN_CARD_AFTER_QUANTITY,0)) +
SUM(NVL(OUT_CARD_AFTER_QUANTITY,0)) f_ee,
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) +
SUM(NVL(OUT_CARD_BEFORE_INCOME,0)) f_ff,
SUM(NVL(IN_CARD_AFTER_INCOME,0)) +
SUM(NVL(OUT_CARD_AFTER_INCOME,0)) f_gg,
SUM(NVL(IN_COUPON_QUANTITY,0)) +
SUM(NVL(OUT_COUPON_QUANTITY,0)) f_hh,
SUM(NVL(IN_COUPON_SALE,0)) +
SUM(NVL(OUT_COUPON_SALE,0)) f_ii,
PAC_GET_TRA000Q.FUN_TAR000Q_RTN(3,v_office,YEAR||MONTH,'1') f_a11,
PAC_GET_TRA000Q.FUN_TAR000Q_RTN(4,v_office,YEAR||MONTH,'1') f_a12,
PAC_GET_TRA000Q.FUN_TAR000Q_RTN(3,v_office,YEAR||MONTH,'2') f_a13,
PAC_GET_TRA000Q.FUN_TAR000Q_RTN(4,v_office,YEAR||MONTH,'2') f_a14
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH BETWEEN v_from_dt AND v_to_dt
GROUP BY YEAR,MONTH
ORDER BY YEAR,MONTH;
TRA000Q_REC CUR%ROWTYPE;
BEGIN
g_a1 := 0;
g_a2 := 0;
g_a3 := 0;
g_a4 := 0;
g_a5 := 0;
g_a6 := 0;
g_a7 := 0;
g_a8 := 0;
g_a9 := 0;
g_a10 := 0;
g_a11 := 0;
g_a12 := 0;
g_b1 := 0;
g_b2 := 0;
g_b3 := 0;
g_b4 := 0;
FOR TRA000Q_REC IN CUR LOOP
g_gubun := TRA000Q_REC.f_aa;
g_a3 := TRA000Q_REC.f_bb;
g_a4 := TRA000Q_REC.f_cc;
g_a7 := TRA000Q_REC.f_dd;
g_a8 := TRA000Q_REC.f_ee;
g_a9 := TRA000Q_REC.f_ff;
g_a10 := TRA000Q_REC.f_gg;
g_a11 := TRA000Q_REC.f_hh;
g_a12 := TRA000Q_REC.f_ii;
g_b1 := TRA000Q_REC.f_a11;
g_b2 := TRA000Q_REC.f_a12;
g_b3 := TRA000Q_REC.f_a13;
g_b4 := TRA000Q_REC.f_a14;
g_gubun := SUBSTR(g_gubun,1,4)||'/'||SUBSTR(g_gubun,5,2);
--??
g_a5 := g_a7 + g_a8;
g_a6 := g_a9 + g_a10;
--??
g_a1 := g_a3 + g_a5 + g_a11; --+ g_b1 + g_b3;
g_a2 := g_a4 + g_a6 + g_a12; --+ g_b2 + g_b4;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRA000Q_5;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (년별) 통행량 및 수입금 총괄 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA000Q_6( v_row IN NUMBER ,
v_office IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_gubun OUT VARCHAR2 ,
g_a1 OUT NUMBER ,
g_a2 OUT NUMBER ,
g_a3 OUT NUMBER ,
g_a4 OUT NUMBER ,
g_a5 OUT NUMBER ,
g_a6 OUT NUMBER ,
g_a7 OUT NUMBER ,
g_a8 OUT NUMBER ,
g_a9 OUT NUMBER ,
g_a10 OUT NUMBER ,
g_a11 OUT NUMBER ,
g_a12 OUT NUMBER ,
g_b1 OUT NUMBER ,
g_b2 OUT NUMBER ,
g_b3 OUT NUMBER ,
g_b4 OUT NUMBER )
IS
CURSOR CUR IS
SELECT YEAR f_aa,
SUM(NVL(IN_CASH_QUANTITY,0))+
SUM(NVL(OUT_CASH_QUANTITY,0)) f_bb,
SUM(NVL(IN_CASH_INCOME,0)) +
SUM(NVL(OUT_CASH_INCOME,0)) f_cc,
SUM(NVL(IN_CARD_BEFORE_QUANTITY,0)) +
SUM(NVL(OUT_CARD_BEFORE_QUANTITY,0)) f_dd,
SUM(NVL(IN_CARD_AFTER_QUANTITY,0)) +
SUM(NVL(OUT_CARD_AFTER_QUANTITY,0)) f_ee,
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) +
SUM(NVL(OUT_CARD_BEFORE_INCOME,0)) f_ff,
SUM(NVL(IN_CARD_AFTER_INCOME,0)) +
SUM(NVL(OUT_CARD_AFTER_INCOME,0)) f_gg,
SUM(NVL(IN_COUPON_QUANTITY,0)) +
SUM(NVL(OUT_COUPON_QUANTITY,0)) f_hh,
SUM(NVL(IN_COUPON_SALE,0)) +
SUM(NVL(OUT_COUPON_SALE,0)) f_ii,
PAC_GET_TRA000Q.FUN_TAR000Q_RTN(5,v_office,YEAR,'1') f_a11,
PAC_GET_TRA000Q.FUN_TAR000Q_RTN(6,v_office,YEAR,'1') f_a12,
PAC_GET_TRA000Q.FUN_TAR000Q_RTN(5,v_office,YEAR,'2') f_a13,
PAC_GET_TRA000Q.FUN_TAR000Q_RTN(6,v_office,YEAR,'2') f_a14
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR BETWEEN v_from_dt AND v_to_dt
GROUP BY YEAR
ORDER BY YEAR;
TRA000Q_REC CUR%ROWTYPE;
BEGIN
g_a1 := 0;
g_a2 := 0;
g_a3 := 0;
g_a4 := 0;
g_a5 := 0;
g_a6 := 0;
g_a7 := 0;
g_a8 := 0;
g_a9 := 0;
g_a10 := 0;
g_a11 := 0;
g_a12 := 0;
g_b1 := 0;
g_b2 := 0;
g_b3 := 0;
g_b4 := 0;
FOR TRA000Q_REC IN CUR LOOP
g_gubun := TRA000Q_REC.f_aa;
g_a3 := TRA000Q_REC.f_bb;
g_a4 := TRA000Q_REC.f_cc;
g_a7 := TRA000Q_REC.f_dd;
g_a8 := TRA000Q_REC.f_ee;
g_a9 := TRA000Q_REC.f_ff;
g_a10 := TRA000Q_REC.f_gg;
g_a11 := TRA000Q_REC.f_hh;
g_a12 := TRA000Q_REC.f_ii;
g_b1 := TRA000Q_REC.f_a11;
g_b2 := TRA000Q_REC.f_a12;
g_b3 := TRA000Q_REC.f_a13;
g_b4 := TRA000Q_REC.f_a14;
g_gubun := SUBSTR(g_gubun,1,4)||'년';
--??
g_a5 := g_a7 + g_a8;
g_a6 := g_a9 + g_a10;
--??
g_a1 := g_a3 + g_a5 + g_a11; --+ g_b1 + g_b3;
g_a2 := g_a4 + g_a6 + g_a12; --+ g_b2 + g_b4;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TRA000Q_6;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (근무자별-총계) 통행량 및 수입금 총괄 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA000Q_SUM1( v_office IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_gubun OUT VARCHAR2 ,
g_a1_t OUT NUMBER ,
g_a2_t OUT NUMBER ,
g_a3_t OUT NUMBER ,
g_a4_t OUT NUMBER ,
g_a5_t OUT NUMBER ,
g_a6_t OUT NUMBER ,
g_a7_t OUT NUMBER ,
g_a8_t OUT NUMBER ,
g_a9_t OUT NUMBER ,
g_a10_t OUT NUMBER ,
g_a11_t OUT NUMBER ,
g_a12_t OUT NUMBER )
IS
BEGIN
g_gubun := '총 계';
g_a3_t := 0;
g_a4_t := 0;
g_a7_t := 0;
g_a8_t := 0;
g_a9_t := 0;
g_a10_t := 0;
g_a11_t := 0;
g_a12_t := 0;
SELECT SUM(NVL(CASH_QUANTITY,0)),
SUM(NVL(CASH_INCOME,0)),
SUM(NVL(CARD_BEFORE_QUANTITY,0)),
SUM(NVL(CARD_AFTER_QUANTITY,0)),
SUM(NVL(CARD_BEFORE_INCOME,0)),
SUM(NVL(CARD_AFTER_INCME,0)),
SUM(NVL(COUPON_QUANTITY,0))
--SUM(NVL(COUPON_SALE,0))
INTO g_a3_t, g_a4_t, g_a7_t, g_a8_t,
g_a9_t, g_a10_t, g_a11_t --, g_a12_t
FROM FARE_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt;
begin
-- 정액권 금액
SELECT NVL(SUM(LEVY_AMOUNT),0)
INTO g_a12_t
FROM FARE_TERMINAL_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt
AND COLLECT_ID = '52';
exception
when no_data_found then
g_a12_t := 0;
end;
-- 소계
g_a5_t := g_a7_t + g_a8_t;
g_a6_t := g_a9_t + g_a10_t;
-- 합계
g_a1_t := g_a3_t + g_a5_t + g_a11_t;
g_a2_t := g_a4_t + g_a6_t + g_a12_t;
END SP_TRA000Q_SUM1;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (시간대별,차로별-총계) 통행량 및 수입금 총괄 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA000Q_SUM2( v_office IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_gubun OUT VARCHAR2 ,
g_a1_t OUT NUMBER ,
g_a2_t OUT NUMBER ,
g_a3_t OUT NUMBER ,
g_a4_t OUT NUMBER ,
g_a5_t OUT NUMBER ,
g_a6_t OUT NUMBER ,
g_a7_t OUT NUMBER ,
g_a8_t OUT NUMBER ,
g_a9_t OUT NUMBER ,
g_a10_t OUT NUMBER ,
g_a11_t OUT NUMBER ,
g_a12_t OUT NUMBER )
IS
BEGIN
g_gubun := '총 계';
g_a3_t := 0;
g_a4_t := 0;
g_a7_t := 0;
g_a8_t := 0;
g_a9_t := 0;
g_a10_t := 0;
g_a11_t := 0;
g_a12_t := 0;
SELECT SUM(NVL(IN_CASH_QUANTITY,0)) + SUM(NVL(OUT_CASH_QUANTITY,0)),
SUM(NVL(IN_CASH_INCOME,0)) + SUM(NVL(OUT_CASH_INCOME,0)),
SUM(NVL(IN_CARD_BEFORE_QUANTITY,0)) + SUM(NVL(OUT_CARD_BEFORE_QUANTITY,0)),
SUM(NVL(IN_CARD_AFTER_QUANTITY,0)) + SUM(NVL(OUT_CARD_AFTER_QUANTITY,0)),
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) + SUM(NVL(OUT_CARD_BEFORE_INCOME,0)),
SUM(NVL(IN_CARD_AFTER_INCOME,0)) + SUM(NVL(OUT_CARD_AFTER_INCOME,0)),
SUM(NVL(IN_COUPON_QUANTITY,0)) + SUM(NVL(OUT_COUPON_QUANTITY,0)),
SUM(NVL(IN_COUPON_SALE,0)) + SUM(NVL(OUT_COUPON_SALE,0))
INTO g_a3_t, g_a4_t, g_a7_t, g_a8_t,
g_a9_t, g_a10_t, g_a11_t, g_a12_t
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt;
--??
g_a5_t := g_a7_t + g_a8_t;
g_a6_t := g_a9_t + g_a10_t;
--??
g_a1_t := g_a3_t + g_a5_t + g_a11_t;
g_a2_t := g_a4_t + g_a6_t + g_a12_t;
END SP_TRA000Q_SUM2;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (일별-총계) 통행량 및 수입금 총괄 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA000Q_SUM3( v_office IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_gubun OUT VARCHAR2 ,
g_a1_t OUT NUMBER ,
g_a2_t OUT NUMBER ,
g_a3_t OUT NUMBER ,
g_a4_t OUT NUMBER ,
g_a5_t OUT NUMBER ,
g_a6_t OUT NUMBER ,
g_a7_t OUT NUMBER ,
g_a8_t OUT NUMBER ,
g_a9_t OUT NUMBER ,
g_a10_t OUT NUMBER ,
g_a11_t OUT NUMBER ,
g_a12_t OUT NUMBER ,
g_b1_t OUT NUMBER ,
g_b2_t OUT NUMBER ,
g_b3_t OUT NUMBER ,
g_b4_t OUT NUMBER )
IS
BEGIN
g_gubun := '총 계';
g_a3_t := 0;
g_a4_t := 0;
g_a7_t := 0;
g_a8_t := 0;
g_a9_t := 0;
g_a10_t := 0;
g_a11_t := 0;
g_a12_t := 0;
g_b1_t := 0;
g_b2_t := 0;
g_b3_t := 0;
g_b4_t := 0;
SELECT SUM(NVL(IN_CASH_QUANTITY,0)) + SUM(NVL(OUT_CASH_QUANTITY,0)),
SUM(NVL(IN_CASH_INCOME,0)) + SUM(NVL(OUT_CASH_INCOME,0)),
SUM(NVL(IN_CARD_BEFORE_QUANTITY,0)) + SUM(NVL(OUT_CARD_BEFORE_QUANTITY,0)),
SUM(NVL(IN_CARD_AFTER_QUANTITY,0)) + SUM(NVL(OUT_CARD_AFTER_QUANTITY,0)),
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) + SUM(NVL(OUT_CARD_BEFORE_INCOME,0)),
SUM(NVL(IN_CARD_AFTER_INCOME,0)) + SUM(NVL(OUT_CARD_AFTER_INCOME,0)),
SUM(NVL(IN_COUPON_QUANTITY,0)) + SUM(NVL(OUT_COUPON_QUANTITY,0)),
SUM(NVL(IN_COUPON_SALE,0)) + SUM(NVL(OUT_COUPON_SALE,0)),
PAC_GET_TRA000Q.FUN_TAR000Q_SUM(1,v_office,v_from_dt,v_to_dt,'1'),
PAC_GET_TRA000Q.FUN_TAR000Q_SUM(2,v_office,v_from_dt,v_to_dt,'1'),
PAC_GET_TRA000Q.FUN_TAR000Q_SUM(1,v_office,v_from_dt,v_to_dt,'2'),
PAC_GET_TRA000Q.FUN_TAR000Q_SUM(2,v_office,v_from_dt,v_to_dt,'2')
INTO g_a3_t, g_a4_t, g_a7_t, g_a8_t,
g_a9_t, g_a10_t, g_a11_t, g_a12_t,
g_b1_t, g_b2_t, g_b3_t,g_b4_t
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY BETWEEN v_from_dt AND v_to_dt;
--??
g_a5_t := g_a7_t + g_a8_t;
g_a6_t := g_a9_t + g_a10_t;
--??
g_a1_t := g_a3_t + g_a5_t + g_a11_t;
g_a2_t := g_a4_t + g_a6_t + g_a12_t;
END SP_TRA000Q_SUM3;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (월별-총계) 통행량 및 수입금 총괄 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA000Q_SUM4( v_office IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_gubun OUT VARCHAR2 ,
g_a1_t OUT NUMBER ,
g_a2_t OUT NUMBER ,
g_a3_t OUT NUMBER ,
g_a4_t OUT NUMBER ,
g_a5_t OUT NUMBER ,
g_a6_t OUT NUMBER ,
g_a7_t OUT NUMBER ,
g_a8_t OUT NUMBER ,
g_a9_t OUT NUMBER ,
g_a10_t OUT NUMBER ,
g_a11_t OUT NUMBER ,
g_a12_t OUT NUMBER ,
g_b1_t OUT NUMBER ,
g_b2_t OUT NUMBER ,
g_b3_t OUT NUMBER ,
g_b4_t OUT NUMBER )
IS
BEGIN
g_gubun := '총 계';
g_a3_t := 0;
g_a4_t := 0;
g_a7_t := 0;
g_a8_t := 0;
g_a9_t := 0;
g_a10_t := 0;
g_a11_t := 0;
g_a12_t := 0;
g_b1_t := 0;
g_b2_t := 0;
g_b3_t := 0;
g_b4_t := 0;
SELECT SUM(NVL(IN_CASH_QUANTITY,0)) + SUM(NVL(OUT_CASH_QUANTITY,0)),
SUM(NVL(IN_CASH_INCOME,0)) + SUM(NVL(OUT_CASH_INCOME,0)),
SUM(NVL(IN_CARD_BEFORE_QUANTITY,0)) + SUM(NVL(OUT_CARD_BEFORE_QUANTITY,0)),
SUM(NVL(IN_CARD_AFTER_QUANTITY,0)) + SUM(NVL(OUT_CARD_AFTER_QUANTITY,0)),
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) + SUM(NVL(OUT_CARD_BEFORE_INCOME,0)),
SUM(NVL(IN_CARD_AFTER_INCOME,0)) + SUM(NVL(OUT_CARD_AFTER_INCOME,0)),
SUM(NVL(IN_COUPON_QUANTITY,0)) + SUM(NVL(OUT_COUPON_QUANTITY,0)),
SUM(NVL(IN_COUPON_SALE,0)) + SUM(NVL(OUT_COUPON_SALE,0)),
PAC_GET_TRA000Q.FUN_TAR000Q_SUM(3,v_office,v_from_dt,v_to_dt,'1'),
PAC_GET_TRA000Q.FUN_TAR000Q_SUM(4,v_office,v_from_dt,v_to_dt,'1'),
PAC_GET_TRA000Q.FUN_TAR000Q_SUM(3,v_office,v_from_dt,v_to_dt,'2'),
PAC_GET_TRA000Q.FUN_TAR000Q_SUM(4,v_office,v_from_dt,v_to_dt,'2')
INTO g_a3_t, g_a4_t, g_a7_t, g_a8_t,
g_a9_t, g_a10_t, g_a11_t, g_a12_t,
g_b1_t, g_b2_t, g_b3_t,g_b4_t
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH BETWEEN v_from_dt AND v_to_dt;
--??
g_a5_t := g_a7_t + g_a8_t;
g_a6_t := g_a9_t + g_a10_t;
--??
g_a1_t := g_a3_t + g_a5_t + g_a11_t;
g_a2_t := g_a4_t + g_a6_t + g_a12_t;
END SP_TRA000Q_SUM4;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** (년별-총계) 통행량 및 수입금 총괄 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TRA000Q_SUM5( v_office IN CHAR ,
v_from_dt IN VARCHAR2 ,
v_to_dt IN VARCHAR2 ,
g_gubun OUT VARCHAR2 ,
g_a1_t OUT NUMBER ,
g_a2_t OUT NUMBER ,
g_a3_t OUT NUMBER ,
g_a4_t OUT NUMBER ,
g_a5_t OUT NUMBER ,
g_a6_t OUT NUMBER ,
g_a7_t OUT NUMBER ,
g_a8_t OUT NUMBER ,
g_a9_t OUT NUMBER ,
g_a10_t OUT NUMBER ,
g_a11_t OUT NUMBER ,
g_a12_t OUT NUMBER ,
g_b1_t OUT NUMBER ,
g_b2_t OUT NUMBER ,
g_b3_t OUT NUMBER ,
g_b4_t OUT NUMBER )
IS
BEGIN
g_gubun := '총 계';
g_a3_t := 0;
g_a4_t := 0;
g_a7_t := 0;
g_a8_t := 0;
g_a9_t := 0;
g_a10_t := 0;
g_a11_t := 0;
g_a12_t := 0;
g_b1_t := 0;
g_b2_t := 0;
g_b3_t := 0;
g_b4_t := 0;
SELECT SUM(NVL(IN_CASH_QUANTITY,0)) + SUM(NVL(OUT_CASH_QUANTITY,0)),
SUM(NVL(IN_CASH_INCOME,0)) + SUM(NVL(OUT_CASH_INCOME,0)),
SUM(NVL(IN_CARD_BEFORE_QUANTITY,0)) + SUM(NVL(OUT_CARD_BEFORE_QUANTITY,0)),
SUM(NVL(IN_CARD_AFTER_QUANTITY,0)) + SUM(NVL(OUT_CARD_AFTER_QUANTITY,0)),
SUM(NVL(IN_CARD_BEFORE_INCOME,0)) + SUM(NVL(OUT_CARD_BEFORE_INCOME,0)),
SUM(NVL(IN_CARD_AFTER_INCOME,0)) + SUM(NVL(OUT_CARD_AFTER_INCOME,0)),
SUM(NVL(IN_COUPON_QUANTITY,0)) + SUM(NVL(OUT_COUPON_QUANTITY,0)),
SUM(NVL(IN_COUPON_SALE,0)) + SUM(NVL(OUT_COUPON_SALE,0)),
PAC_GET_TRA000Q.FUN_TAR000Q_SUM(5,v_office,v_from_dt,v_to_dt,'1'),
PAC_GET_TRA000Q.FUN_TAR000Q_SUM(6,v_office,v_from_dt,v_to_dt,'1'),
PAC_GET_TRA000Q.FUN_TAR000Q_SUM(5,v_office,v_from_dt,v_to_dt,'2'),
PAC_GET_TRA000Q.FUN_TAR000Q_SUM(6,v_office,v_from_dt,v_to_dt,'2')
INTO g_a3_t, g_a4_t, g_a7_t, g_a8_t,
g_a9_t, g_a10_t, g_a11_t, g_a12_t,
g_b1_t, g_b2_t, g_b3_t,g_b4_t
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR BETWEEN v_from_dt AND v_to_dt;
--??
g_a5_t := g_a7_t + g_a8_t;
g_a6_t := g_a9_t + g_a10_t;
--??
g_a1_t := g_a3_t + g_a5_t + g_a11_t;
g_a2_t := g_a4_t + g_a6_t + g_a12_t;
END SP_TRA000Q_SUM5;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 구분자에 따라 평일,토요일의 징수차량 건수합계와 금액합계를 리턴 **
** 월별은 MONTH_ADJUST_INFO에서 년별은 YEAR_ADJUST_INFO TABLE에서
** SELECT 해와야 하나 WEEKDAY_KBN이 DAY_ADJUST_INFO에 밖에 없으므로
** 부득이 DAY_ADJUST_INFO에서 모든 합계를 가져옴....
** 참고...멀티로우에 뿌려질 값은 각 테이블별로 가져옴 것임...
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TAR000Q_SUM( 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
h_count NUMBER := 0;
v_rc NUMBER := 0;
BEGIN
IF v_gubun = 1 THEN --????
BEGIN
SELECT COUNT(*)
INTO h_count
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;
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSIF h_count <> 0 THEN
SELECT SUM(NVL(IN_CASH_QUANTITY,0) + NVL(IN_COUPON_QUANTITY,0) +
NVL(IN_CARD_BEFORE_QUANTITY,0) + NVL(IN_CARD_AFTER_QUANTITY,0) +
NVL(OUT_CASH_QUANTITY,0) + NVL(OUT_COUPON_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;
END IF;
END;
ELSIF v_gubun = 2 THEN --????
BEGIN
SELECT COUNT(*)
INTO h_count
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;
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSIF h_count <> 0 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;
END IF;
END;
ELSIF v_gubun = 3 THEN --????
BEGIN
SELECT COUNT(*)
INTO h_count
--FROM MONTH_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH BETWEEN v_from_dt AND v_to_dt
AND WEEKDAY_KBN = v_week_kgb;
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSIF h_count > 0 THEN
SELECT SUM(NVL(IN_CASH_QUANTITY,0) + NVL(IN_COUPON_QUANTITY,0) +
NVL(IN_CARD_BEFORE_QUANTITY,0) + NVL(IN_CARD_AFTER_QUANTITY,0) +
NVL(OUT_CASH_QUANTITY,0) + NVL(OUT_COUPON_QUANTITY,0) +
NVL(OUT_CARD_BEFORE_QUANTITY,0) + NVL(OUT_CARD_AFTER_QUANTITY,0))
INTO v_rc
--FROM MONTH_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH BETWEEN v_from_dt AND v_to_dt
AND WEEKDAY_KBN = v_week_kgb;
END IF;
END;
ELSIF v_gubun = 4 THEN --????
BEGIN
SELECT COUNT(*)
INTO h_count
--FROM MONTH_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH BETWEEN v_from_dt AND v_to_dt
AND WEEKDAY_KBN = v_week_kgb;
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSIF h_count > 0 THEN
SELECT SUM(NVL(TOTAL_INCOME,0))
INTO v_rc
--FROM MONTH_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH BETWEEN v_from_dt AND v_to_dt
AND WEEKDAY_KBN = v_week_kgb;
END IF;
END;
ELSIF v_gubun = 5 THEN --????
BEGIN
SELECT COUNT(*)
INTO h_count
--ROM YEAR_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR BETWEEN v_from_dt AND v_to_dt
AND WEEKDAY_KBN = v_week_kgb;
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSIF h_count <> 0 THEN
SELECT SUM(NVL(IN_CASH_QUANTITY,0) + NVL(IN_COUPON_QUANTITY,0) +
NVL(IN_CARD_BEFORE_QUANTITY,0) + NVL(IN_CARD_AFTER_QUANTITY,0) +
NVL(OUT_CASH_QUANTITY,0) + NVL(OUT_COUPON_QUANTITY,0) +
NVL(OUT_CARD_BEFORE_QUANTITY,0) + NVL(OUT_CARD_AFTER_QUANTITY,0))
INTO v_rc
--FROM YEAR_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR BETWEEN v_from_dt AND v_to_dt
AND WEEKDAY_KBN = v_week_kgb;
END IF;
END;
ELSIF v_gubun = 6 THEN --????
BEGIN
SELECT COUNT(*)
INTO h_count
--FROM YEAR_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR BETWEEN v_from_dt AND v_to_dt
AND WEEKDAY_KBN = v_week_kgb;
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSIF h_count <> 0 THEN
SELECT SUM(NVL(TOTAL_INCOME,0))
INTO v_rc
--FROM YEAR_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR BETWEEN v_from_dt AND v_to_dt
AND WEEKDAY_KBN = v_week_kgb;
END IF;
END;
END IF;
RETURN v_rc;
END FUN_TAR000Q_SUM;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 구분자에 따라 평일,토요일의 징수차량 건수와 금액을 리턴 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TAR000Q_RTN( v_gubun IN BINARY_INTEGER,
v_office IN VARCHAR2,
v_from_dt IN VARCHAR2,
v_week_kgb IN CHAR ) RETURN NUMBER
IS
h_count NUMBER := 0;
v_rc NUMBER := 0;
BEGIN
IF v_gubun = 1 THEN --????
BEGIN
SELECT COUNT(*)
INTO h_count
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_from_dt
AND WEEKDAY_KBN = v_week_kgb;
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSIF h_count <> 0 THEN
SELECT SUM(NVL(IN_CASH_QUANTITY,0) + NVL(IN_COUPON_QUANTITY,0) +
NVL(IN_CARD_BEFORE_QUANTITY,0) + NVL(IN_CARD_AFTER_QUANTITY,0) +
NVL(OUT_CASH_QUANTITY,0) + NVL(OUT_COUPON_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 = v_from_dt
AND WEEKDAY_KBN = v_week_kgb;
END IF;
END;
ELSIF v_gubun = 2 THEN --????
BEGIN
SELECT COUNT(*)
INTO h_count
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH||DAY = v_from_dt
AND WEEKDAY_KBN = v_week_kgb;
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSIF h_count <> 0 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 = v_from_dt
AND WEEKDAY_KBN = v_week_kgb;
END IF;
END;
ELSIF v_gubun = 3 THEN --????
BEGIN
SELECT COUNT(*)
INTO h_count
--FROM MONTH_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH = v_from_dt
AND WEEKDAY_KBN = v_week_kgb;
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSIF h_count <> 0 THEN
SELECT SUM(NVL(IN_CASH_QUANTITY,0) + NVL(IN_COUPON_QUANTITY,0) +
NVL(IN_CARD_BEFORE_QUANTITY,0) + NVL(IN_CARD_AFTER_QUANTITY,0) +
NVL(OUT_CASH_QUANTITY,0) + NVL(OUT_COUPON_QUANTITY,0) +
NVL(OUT_CARD_BEFORE_QUANTITY,0) + NVL(OUT_CARD_AFTER_QUANTITY,0))
INTO v_rc
--FROM MONTH_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH = v_from_dt
AND WEEKDAY_KBN = v_week_kgb;
END IF;
END;
ELSIF v_gubun = 4 THEN --????
BEGIN
SELECT COUNT(*)
INTO h_count
--FROM MONTH_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH = v_from_dt
AND WEEKDAY_KBN = v_week_kgb;
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSIF h_count <> 0 THEN
SELECT SUM(NVL(TOTAL_INCOME,0))
INTO v_rc
--FROM MONTH_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR||MONTH = v_from_dt
AND WEEKDAY_KBN = v_week_kgb;
END IF;
END;
ELSIF v_gubun = 5 THEN --????
BEGIN
SELECT COUNT(*)
INTO h_count
--FROM YEAR_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR = v_from_dt
AND WEEKDAY_KBN = v_week_kgb;
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSIF h_count <> 0 THEN
SELECT SUM(NVL(IN_CASH_QUANTITY,0) + NVL(IN_COUPON_QUANTITY,0) +
NVL(IN_CARD_BEFORE_QUANTITY,0) + NVL(IN_CARD_AFTER_QUANTITY,0) +
NVL(OUT_CASH_QUANTITY,0) + NVL(OUT_COUPON_QUANTITY,0) +
NVL(OUT_CARD_BEFORE_QUANTITY,0) + NVL(OUT_CARD_AFTER_QUANTITY,0))
INTO v_rc
--FROM YEAR_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR = v_from_dt
AND WEEKDAY_KBN = v_week_kgb;
END IF;
END;
ELSIF v_gubun = 6 THEN --????
BEGIN
SELECT COUNT(*)
INTO h_count
--FROM YEAR_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR = v_from_dt
AND WEEKDAY_KBN = v_week_kgb;
IF h_count = 0 THEN
v_rc := 0;
RETURN v_rc;
ELSIF h_count <> 0 THEN
SELECT SUM(NVL(TOTAL_INCOME,0))
INTO v_rc
--FROM YEAR_ADJUST_INFO
FROM DAY_ADJUST_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND YEAR = v_from_dt
AND WEEKDAY_KBN = v_week_kgb;
END IF;
END;
END IF;
RETURN v_rc;
END FUN_TAR000Q_RTN;
END PAC_GET_TRA000Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TFG003Q AS
/*
** ????
*/
FUNCTION FUN_TFG003Q_CNT(v_from_date IN CHAR, v_to_date IN CHAR)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM PENALTY_DETAIL_INFO
WHERE YEAR||MONTH||DAY BETWEEN v_from_date AND v_to_date
AND seisure_yn = '1'
AND MOTION_ID = '71';
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_TFG003Q_CNT;
/*
** ??????? ?? :? ? ?
*/
PROCEDURE SP_TFG003Q( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_seiz_mngno OUT NUMBER,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_datetime OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_fine_amount OUT NUMBER,
v_owner OUT VARCHAR2,
v_post_no OUT VARCHAR2,
v_address OUT VARCHAR2 )
IS
CURSOR CUR IS
SELECT A.SEIZURE_MANAGE_NO F_MNGNO,
A.CAR_NO F_CARNO,
B.CAR_TYPE_ID F_CAR_TYPE_NAME,
A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES F_PASS_DATE,
A.FARE_OFFICE_ID F_FARE_OFFICE_ID,
A.BOOTH_ID F_BOOTH_ID,
A.LAVY_AMOUNT F_FINE_AMOUNT,
B.OWNER F_OWNER,
RTRIM(B.POST_NO1)||'-'||RTRIM(B.POST_NO2) F_POST_NO,
RTRIM(B.ADDRESS_NAME)||' '||RTRIM(B.ADDRESS_NUMBER) F_ADDRESS_NUM
FROM PENALTY_DETAIL_INFO A,
PENALTY_HEAD_INFO B
WHERE A.YEAR||A.MONTH||A.DAY BETWEEN v_from_date AND v_to_date
AND A.CAR_NO = B.CAR_NO
AND A.seisure_yn = '1'
AND A.MOTION_ID = '71'
ORDER BY A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES;
TFG003Q_REC CUR%ROWTYPE;
BEGIN
FOR TFG003Q_REC IN CUR LOOP
v_seiz_mngno := TFG003Q_REC.F_MNGNO;
v_car_no := TFG003Q_REC.F_CARNO;
v_car_type := FUN_TFK002Q_CAR_TYPE(TFG003Q_REC.F_CAR_TYPE_NAME);
v_pass_datetime := TFG003Q_REC.F_PASS_DATE;
v_fare_office := FUN_TUNNEL_C(TFG003Q_REC.F_FARE_OFFICE_ID);
v_booth := FUN_BOOTH_C(TFG003Q_REC.F_FARE_OFFICE_ID, TFG003Q_REC.F_BOOTH_ID);
v_fine_amount := TFG003Q_REC.F_FINE_AMOUNT;
v_owner := TFG003Q_REC.F_OWNER;
v_post_no := TFG003Q_REC.F_POST_NO;
v_address := TFG003Q_REC.F_ADDRESS_NUM;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFG003Q;
END PAC_GET_TFG003Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.Pac_Get_Tfc000e AS
/*
** 전체건수
*/
FUNCTION FUN_GET_CNT01(v_gubun IN CHAR, v_data IN VARCHAR2)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
IF v_gubun = '1' THEN -- 관리번호일때...
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM PENALTY_DETAIL_INFO
WHERE PENALTY_SEQNO = TO_NUMBER(RTRIM(v_data));
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
ELSIF v_gubun = '2' THEN -- 차량번호일때...
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM PENALTY_DETAIL_INFO
WHERE CAR_NO LIKE v_data;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
ELSE --소유자명일때...
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM PENALTY_DETAIL_INFO
WHERE OWNER LIKE v_data;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
END IF;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_GET_CNT01;
/*
** 상세조회 건수...
*/
FUNCTION FUN_GET_CNT02(v_mngno IN VARCHAR2, v_car_no IN VARCHAR2, v_regno IN VARCHAR2)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM PENALTY_DETAIL_INFO
WHERE PENALTY_SEQNO = TO_NUMBER(v_mngno)
AND CAR_NO = RTRIM(v_car_no)
AND RESIDENT_NO = RTRIM(v_regno);
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_GET_CNT02;
/*
** 수납정보 수납일자만 리턴...
*/
FUNCTION FUN_GET_CNT03(v_mngyear IN CHAR, v_mngno IN NUMBER)
RETURN VARCHAR2
IS
v_rc VARCHAR2(8) := '';
BEGIN
BEGIN
SELECT TO_CHAR(RECEIPT_DATE,'YYYYMMDD')
INTO v_rc
FROM RECEIPT_INFO
WHERE PENALTY_MANAGE_YEAR = v_mngyear
AND PENALTY_SEQNO = v_mngno;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := '';
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := '';
RETURN v_rc;
END FUN_GET_CNT03;
/*
** RESPONSE WINDOW 하단에 뿌려질 DATA 건 수...
*/
FUNCTION FUN_GET_CNT04(v_carno IN VARCHAR2, v_owner IN VARCHAR2)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(CAR_NO)
INTO v_rc
FROM PENALTY_DETAIL_INFO
WHERE CAR_NO = v_carno
AND OWNER = v_owner;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_GET_CNT04;
/*
** PENALTY_DETAIL_INFO에서 압류일자를 가져오는 펑션,,,
** 압류정보테이블에 해당필드가 없으므로...PENALTY_DETAIL_INFO 여기서 가져와야 함다.
*/
FUNCTION FUN_GET_CNT05(v_mngyear IN CHAR, v_mngno IN NUMBER)
RETURN VARCHAR2
IS
v_rc VARCHAR2(8) := '';
BEGIN
BEGIN
SELECT RTRIM(TO_CHAR(SEIZURE_DATE,'YYYYMMDD'), ' ')
INTO v_rc
FROM PENALTY_DETAIL_INFO
WHERE PENALTY_MANAGE_YEAR = v_mngyear
AND PENALTY_SEQNO = v_mngno;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := '';
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := '';
RETURN v_rc;
END FUN_GET_CNT05;
/*
** 이미 압류도처리된 건만 압류해지를 할 수 있겠다.
*/
FUNCTION FUN_GET_CNT06(v_mngyear IN CHAR, v_mngno IN NUMBER)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(PENALTY_MANAGE_YEAR)
INTO v_rc
FROM PENALTY_DETAIL_INFO
WHERE RTRIM(PENALTY_MANAGE_YEAR) = v_mngyear
AND TO_NUMBER(PENALTY_SEQNO) = TO_NUMBER(v_mngno)
AND SEISURE_YN = '1'; --압류된건: '1'...
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_GET_CNT06;
/*
** 압류처리관련 건수
*/
FUNCTION FUN_GET_CNT07(v_carno IN VARCHAR2, v_owner IN VARCHAR2)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(CAR_NO)
INTO v_rc
FROM PENALTY_DETAIL_INFO
WHERE CAR_NO = v_carno
AND OWNER = v_owner
AND MOTION_ID IN ('41','42','43','44','45','46','47','48')
AND RECEIPT_YN = '0';
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_GET_CNT07;
/*
** 압류해지관련 건수
*/
FUNCTION FUN_GET_CNT08(v_carno IN VARCHAR2, v_owner IN VARCHAR2)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(CAR_NO)
INTO v_rc
FROM PENALTY_DETAIL_INFO
WHERE CAR_NO = v_carno
AND OWNER = v_owner
AND SEISURE_YN = '1';
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_GET_CNT08;
/*
** 고지불가관련 건수
*/
FUNCTION FUN_GET_CNT09(v_carno IN VARCHAR2, v_owner IN VARCHAR2)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(CAR_NO)
INTO v_rc
FROM PENALTY_DETAIL_INFO
WHERE CAR_NO = v_carno
AND OWNER = v_owner
AND RECEIPT_YN = '0';
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_GET_CNT09;
/*
** History 관련
*/
FUNCTION FUN_HISTORY_INS(v_year IN CHAR, v_seqno IN NUMBER, v_gsuser IN VARCHAR2)
RETURN NUMBER
IS
v_rc NUMBER := 0;
-- penalty_history_info 의 seqno 의 최대값
h_max NUMBER := 0;
-- penalty_detail_info 의 내용을 담을 변수
h_penalty_manage_year CHAR(4);
h_penalty_seqno NUMBER := 0;
h_levy_manage_year CHAR(4);
h_levy_seqno NUMBER := 0;
h_stt_date PENALTY_DETAIL_INFO.STT_DATE%TYPE;
h_collect_id CHAR(2);
h_card_issue_id VARCHAR2(7);
h_worker_id CHAR(6);
h_fare_office_id CHAR(2);
h_booth_id CHAR(2);
h_year CHAR(4);
h_month CHAR(2);
h_day CHAR(2);
h_work_times CHAR(6);
h_car_no VARCHAR2(20);
h_owner VARCHAR2(30);
h_resident_no VARCHAR2(13);
h_resident_date PENALTY_DETAIL_INFO.RESIDENT_DATE%TYPE;
h_seizure_manage_year CHAR(4);
h_seizure_manage_no NUMBER := 0;
h_pass_amount NUMBER := 0;
h_fine_amount NUMBER := 0;
h_lavy_amount NUMBER := 0;
h_before_motion_id CHAR(2);
h_motion_id CHAR(2);
h_notice_date PENALTY_DETAIL_INFO.NOTICE_DATE%TYPE;
h_notice_id CHAR(2);
h_notice_wrong_date PENALTY_DETAIL_INFO.NOTICE_WRONG_DATE%TYPE;
h_notice_wrong_id CHAR(2);
h_notice_wrong_reason VARCHAR2(60);
h_notice_choose_id CHAR(2);
h_seisure_yn CHAR(1);
h_seizure_date PENALTY_DETAIL_INFO.SEIZURE_DATE%TYPE;
h_seizure_id CHAR(2);
h_seizure_wrong_id CHAR(2);
h_seizure_wrong_date PENALTY_DETAIL_INFO.SEIZURE_WRONG_DATE%TYPE;
h_seizure_wrong_reason VARCHAR2(60);
h_seizure_termi_date PENALTY_DETAIL_INFO.SEIZURE_TERMI_DATE%TYPE;
h_seizure_termi VARCHAR2(60);
h_seizure_termi_yn CHAR(1);
h_receipt_yn CHAR(1);
h_double_receipt_yn CHAR(1);
h_double_receipt_date PENALTY_DETAIL_INFO.DOUBLE_RECEIPT_DATE%TYPE;
h_notice_choose_date PENALTY_DETAIL_INFO.NOTICE_CHOOSE_DATE%TYPE;
BEGIN
BEGIN
-- penalty_history_info 에 기존자료 저장
BEGIN
SELECT PENALTY_MANAGE_YEAR, PENALTY_SEQNO, LEVY_MANAGE_YEAR, LEVY_SEQNO,
STT_DATE, COLLECT_ID, CARD_ISSUE_ID, WORKER_ID, FARE_OFFICE_ID,
BOOTH_ID, YEAR, MONTH, DAY, WORK_TIMES, CAR_NO, OWNER, RESIDENT_NO,
RESIDENT_DATE, SEIZURE_MANAGE_YEAR, SEIZURE_MANAGE_NO, PASS_AMOUNT,
FINE_AMOUNT, LAVY_AMOUNT, MOTION_ID, NOTICE_DATE, NOTICE_ID,
NOTICE_WRONG_DATE, NOTICE_WRONG_ID, NOTICE_WRONG_REASON, SEISURE_YN,
SEIZURE_DATE, SEIZURE_ID, SEIZURE_WRONG_ID, SEIZURE_WRONG_DATE,
SEIZURE_TERMI_DATE, RECEIPT_YN, DOUBLE_RECEIPT_YN, DOUBLE_RECEIPT_DATE,
SEIZURE_TRMI_YN, NOTICE_CHOOSE_ID, SEIZURE_WRONG_REASON, SEIZURE_TERMI,
BEFORE_MOTION_ID,NOTICE_CHOOSE_DATE
INTO h_penalty_manage_year, h_penalty_seqno, h_levy_manage_year, h_levy_seqno,
h_stt_date, h_collect_id, h_card_issue_id, h_worker_id, h_fare_office_id,
h_booth_id, h_year, h_month, h_day, h_work_times, h_car_no, h_owner, h_resident_no,
h_resident_date, h_seizure_manage_year, h_seizure_manage_no, h_pass_amount,
h_fine_amount, h_lavy_amount, h_motion_id, h_notice_date, h_notice_id,
h_notice_wrong_date, h_notice_wrong_id, h_notice_wrong_reason, h_seisure_yn,
h_seizure_date, h_seizure_id, h_seizure_wrong_id, h_seizure_wrong_date,
h_seizure_termi_date, h_receipt_yn, h_double_receipt_yn, h_double_receipt_date,
h_seizure_termi_yn, h_notice_choose_id, h_seizure_wrong_reason, h_seizure_termi,
h_before_motion_id, h_notice_choose_date
FROM PENALTY_DETAIL_INFO
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_seqno;
END;
IF h_motion_id <> '91' THEN
BEGIN
UPDATE PENALTY_DETAIL_INFO
SET BEFORE_MOTION_ID = h_motion_id
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_seqno;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
ROLLBACK;
RETURN v_rc;
END;
END IF;
BEGIN
SELECT NVL(MAX(update_seqno),0)
INTO h_max
FROM PENALTY_HISTORY_INFO
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_seqno;
END;
h_max := h_max + 1;
BEGIN
INSERT INTO PENALTY_HISTORY_INFO(PENALTY_MANAGE_YEAR, PENALTY_SEQNO, UPDATE_SEQNO,
UPDATE_HISTORY_DATE, LEVY_MANAGE_YEAR, LEVY_SEQNO, STT_DATE, COLLECT_ID,
CARD_ISSUE_ID, WORKER_ID, FARE_OFFICE_ID, BOOTH_ID, YEAR, MONTH, DAY,
WORK_TIMES, CAR_NO, OWNER, RESIDENT_NO, RESIDENT_DATE, SEIZURE_MANAGE_YEAR,
SEIZURE_MANAGE_NO, PASS_AMOUNT, FINE_AMOUNT, LAVY_AMOUNT, MOTION_ID, NOTICE_DATE,
NOTICE_ID, NOTICE_WRONG_DATE, NOTICE_WRONG_ID, NOTICE_WRONG_REASON, SEISURE_YN,
SEIZURE_DATE, SEIZURE_ID, SEIZURE_WRONG_ID, SEIZURE_WRONG_DATE, SEIZURE_TERMI_DATE,
RECEIPT_YN, DOUBLE_RECEIPT_YN, DOUBLE_RECEIPT_DATE, CREATE_DATE, CREATER,
UPDATE_DATE, UPDATER, NOTICE_CHOOSE_ID, SEIZURE_WRONG_REASON, SEIZURE_TERMI_YN,
SEIZURE_TERMI, BFORE_MOTION_ID, NOTICE_CHOOSE_DATE)
VALUES(h_penalty_manage_year, h_penalty_seqno, h_max, SYSDATE, h_levy_manage_year,
h_levy_seqno, h_stt_date, h_collect_id, h_card_issue_id, h_worker_id,
h_fare_office_id, h_booth_id, h_year, h_month, h_day, h_work_times,
h_car_no, h_owner, h_resident_no, h_resident_date, h_seizure_manage_year,
h_seizure_manage_no, h_pass_amount, h_fine_amount, h_lavy_amount, h_motion_id,
h_notice_date, h_notice_id, h_notice_wrong_date, h_notice_wrong_id,
h_notice_wrong_reason, h_seisure_yn, h_seizure_date, h_seizure_id,
h_seizure_wrong_id, h_seizure_wrong_date, h_seizure_termi_date, h_receipt_yn,
h_double_receipt_yn, h_double_receipt_date, SYSDATE, v_gsuser, SYSDATE, v_gsuser,
h_notice_choose_id, h_seizure_wrong_reason, h_seizure_termi_yn,
h_seizure_termi, h_before_motion_id, h_notice_choose_date);
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
ROLLBACK;
RETURN v_rc;
END;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_HISTORY_INS;
/*
** History 관련
** 반송시 특이한 이력관리를 위한 처리임
*/
FUNCTION FUN_HISTORY_INS_re(v_year IN CHAR, v_seqno IN NUMBER, v_gsuser IN VARCHAR2)
RETURN NUMBER
IS
v_rc NUMBER := 0;
-- penalty_history_info 의 seqno 의 최대값
h_max NUMBER := 0;
-- penalty_detail_info 의 내용을 담을 변수
h_penalty_manage_year CHAR(4);
h_penalty_seqno NUMBER := 0;
h_levy_manage_year CHAR(4);
h_levy_seqno NUMBER := 0;
h_stt_date PENALTY_DETAIL_INFO.STT_DATE%TYPE;
h_collect_id CHAR(2);
h_card_issue_id VARCHAR2(7);
h_worker_id CHAR(6);
h_fare_office_id CHAR(2);
h_booth_id CHAR(2);
h_year CHAR(4);
h_month CHAR(2);
h_day CHAR(2);
h_work_times CHAR(6);
h_car_no VARCHAR2(20);
h_owner VARCHAR2(30);
h_resident_no VARCHAR2(13);
h_resident_date PENALTY_DETAIL_INFO.RESIDENT_DATE%TYPE;
h_seizure_manage_year CHAR(4);
h_seizure_manage_no NUMBER := 0;
h_pass_amount NUMBER := 0;
h_fine_amount NUMBER := 0;
h_lavy_amount NUMBER := 0;
h_before_motion_id CHAR(2);
h_motion_id CHAR(2);
h_notice_date PENALTY_DETAIL_INFO.NOTICE_DATE%TYPE;
h_notice_id CHAR(2);
h_notice_wrong_date PENALTY_DETAIL_INFO.NOTICE_WRONG_DATE%TYPE;
h_notice_wrong_id CHAR(2);
h_notice_wrong_reason VARCHAR2(60);
h_notice_choose_id CHAR(2);
h_seisure_yn CHAR(1);
h_seizure_date PENALTY_DETAIL_INFO.SEIZURE_DATE%TYPE;
h_seizure_id CHAR(2);
h_seizure_wrong_id CHAR(2);
h_seizure_wrong_date PENALTY_DETAIL_INFO.SEIZURE_WRONG_DATE%TYPE;
h_seizure_wrong_reason VARCHAR2(60);
h_seizure_termi_date PENALTY_DETAIL_INFO.SEIZURE_TERMI_DATE%TYPE;
h_seizure_termi VARCHAR2(60);
h_seizure_termi_yn CHAR(1);
h_receipt_yn CHAR(1);
h_double_receipt_yn CHAR(1);
h_double_receipt_date PENALTY_DETAIL_INFO.DOUBLE_RECEIPT_DATE%TYPE;
h_notice_choose_date PENALTY_DETAIL_INFO.NOTICE_CHOOSE_DATE%TYPE;
BEGIN
BEGIN
-- penalty_history_info 에 기존자료 저장
BEGIN
SELECT PENALTY_MANAGE_YEAR, PENALTY_SEQNO, LEVY_MANAGE_YEAR, LEVY_SEQNO,
STT_DATE, COLLECT_ID, CARD_ISSUE_ID, WORKER_ID, FARE_OFFICE_ID,
BOOTH_ID, YEAR, MONTH, DAY, WORK_TIMES, CAR_NO, OWNER, RESIDENT_NO,
RESIDENT_DATE, SEIZURE_MANAGE_YEAR, SEIZURE_MANAGE_NO, PASS_AMOUNT,
FINE_AMOUNT, LAVY_AMOUNT, MOTION_ID, NOTICE_DATE, NOTICE_ID,
NOTICE_WRONG_DATE, NOTICE_WRONG_ID, NOTICE_WRONG_REASON, SEISURE_YN,
SEIZURE_DATE, SEIZURE_ID, SEIZURE_WRONG_ID, SEIZURE_WRONG_DATE,
SEIZURE_TERMI_DATE, RECEIPT_YN, DOUBLE_RECEIPT_YN, DOUBLE_RECEIPT_DATE,
SEIZURE_TRMI_YN, NOTICE_CHOOSE_ID, SEIZURE_WRONG_REASON, SEIZURE_TERMI,
BEFORE_MOTION_ID,NOTICE_CHOOSE_DATE
INTO h_penalty_manage_year, h_penalty_seqno, h_levy_manage_year, h_levy_seqno,
h_stt_date, h_collect_id, h_card_issue_id, h_worker_id, h_fare_office_id,
h_booth_id, h_year, h_month, h_day, h_work_times, h_car_no, h_owner, h_resident_no,
h_resident_date, h_seizure_manage_year, h_seizure_manage_no, h_pass_amount,
h_fine_amount, h_lavy_amount, h_motion_id, h_notice_date, h_notice_id,
h_notice_wrong_date, h_notice_wrong_id, h_notice_wrong_reason, h_seisure_yn,
h_seizure_date, h_seizure_id, h_seizure_wrong_id, h_seizure_wrong_date,
h_seizure_termi_date, h_receipt_yn, h_double_receipt_yn, h_double_receipt_date,
h_seizure_termi_yn, h_notice_choose_id, h_seizure_wrong_reason, h_seizure_termi,
h_before_motion_id, h_notice_choose_date
FROM PENALTY_DETAIL_INFO
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_seqno;
END;
BEGIN
SELECT NVL(MAX(update_seqno),0)
INTO h_max
FROM PENALTY_HISTORY_INFO
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_seqno;
END;
h_max := h_max + 1;
BEGIN
INSERT INTO PENALTY_HISTORY_INFO(PENALTY_MANAGE_YEAR, PENALTY_SEQNO, UPDATE_SEQNO,
UPDATE_HISTORY_DATE, LEVY_MANAGE_YEAR, LEVY_SEQNO, STT_DATE, COLLECT_ID,
CARD_ISSUE_ID, WORKER_ID, FARE_OFFICE_ID, BOOTH_ID, YEAR, MONTH, DAY,
WORK_TIMES, CAR_NO, OWNER, RESIDENT_NO, RESIDENT_DATE, SEIZURE_MANAGE_YEAR,
SEIZURE_MANAGE_NO, PASS_AMOUNT, FINE_AMOUNT, LAVY_AMOUNT, MOTION_ID, NOTICE_DATE,
NOTICE_ID, NOTICE_WRONG_DATE, NOTICE_WRONG_ID, NOTICE_WRONG_REASON, SEISURE_YN,
SEIZURE_DATE, SEIZURE_ID, SEIZURE_WRONG_ID, SEIZURE_WRONG_DATE, SEIZURE_TERMI_DATE,
RECEIPT_YN, DOUBLE_RECEIPT_YN, DOUBLE_RECEIPT_DATE, CREATE_DATE, CREATER,
UPDATE_DATE, UPDATER, NOTICE_CHOOSE_ID, SEIZURE_WRONG_REASON, SEIZURE_TERMI_YN,
SEIZURE_TERMI, BFORE_MOTION_ID, NOTICE_CHOOSE_DATE)
VALUES(h_penalty_manage_year, h_penalty_seqno, h_max, SYSDATE, h_levy_manage_year,
h_levy_seqno, h_stt_date, h_collect_id, h_card_issue_id, h_worker_id,
h_fare_office_id, h_booth_id, h_year, h_month, h_day, h_work_times,
h_car_no, h_owner, h_resident_no, h_resident_date, h_seizure_manage_year,
h_seizure_manage_no, h_pass_amount, h_fine_amount, h_lavy_amount, h_motion_id,
h_notice_date, h_notice_id, h_notice_wrong_date, h_notice_wrong_id,
h_notice_wrong_reason, h_seisure_yn, h_seizure_date, h_seizure_id,
h_seizure_wrong_id, h_seizure_wrong_date, h_seizure_termi_date, h_receipt_yn,
h_double_receipt_yn, h_double_receipt_date, SYSDATE, v_gsuser, SYSDATE, v_gsuser,
h_notice_choose_id, h_seizure_wrong_reason, h_seizure_termi_yn,
h_seizure_termi, h_before_motion_id, h_notice_choose_date);
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
ROLLBACK;
RETURN v_rc;
END;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_HISTORY_INS_re;
/*
** 압류건수 Check
*/
FUNCTION FUN_SEIZURE_CHK(v_carno IN VARCHAR2, v_owner IN VARCHAR2, v_resident_no VARCHAR2,
v_resident_date CHAR) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM PENALTY_DETAIL_INFO
WHERE CAR_NO = v_carno
AND OWNER = v_owner
AND RESIDENT_NO = v_resident_no
AND TO_CHAR(RESIDENT_DATE,'YYYYMMDD') = v_resident_date
AND SEISURE_YN = '1';
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_SEIZURE_CHK;
/*
** 수납일자 존재 여부 Check
*/
FUNCTION FUN_RECEIPT_CHK(v_year IN CHAR, v_seqno IN NUMBER, v_receipt_date CHAR)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM RECEIPT_INFO
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_seqno
AND TO_CHAR(RECEIPT_DATE,'YYYYMMDD') = v_receipt_date;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_RECEIPT_CHK;
/*
** 동영상 재생 관련
*/
FUNCTION FUN_GET_MOVEFILE(v_years IN CHAR, v_seqno IN NUMBER)
RETURN VARCHAR2
IS
v_rc VARCHAR2(50) := '';
v_worker_id CHAR(6);
v_fare_office_id CHAR(2);
v_booth_id CHAR(2);
v_year CHAR(4);
v_month CHAR(2);
v_day CHAR(2);
v_work_times CHAR(6);
BEGIN
BEGIN
SELECT WORKER_ID,
FARE_OFFICE_ID,
BOOTH_ID,
YEAR,
MONTH,
DAY,
WORK_TIMES
INTO v_worker_id,
v_fare_office_id,
v_booth_id,
v_year,
v_month,
v_day,
v_work_times
FROM PENALTY_DETAIL_INFO
WHERE PENALTY_MANAGE_YEAR = v_years
AND PENALTY_SEQNO = v_seqno;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := '';
RETURN v_rc;
END;
BEGIN
SELECT RTRIM(CARS_MOVE_PICTURE_FILE,' ')
INTO v_rc
FROM FARE_TERMINAL_INFO
WHERE WORKER_ID = v_worker_id
AND FARE_OFFICE_ID = v_fare_office_id
AND BOOTH_ID = v_booth_id
AND YEAR = v_year
AND MONTH = v_month
AND DAY = v_day
AND WORK_TIMES = v_work_times
AND SEQNO = ( SELECT MAX(A.SEQNO)
FROM FARE_TERMINAL_INFO A
WHERE A.WORKER_ID = v_worker_id
AND A.FARE_OFFICE_ID = v_fare_office_id
AND A.BOOTH_ID = v_booth_id
AND A.YEAR = v_year
AND A.MONTH = v_month
AND A.DAY = v_day
AND A.WORK_TIMES = v_work_times);
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := '';
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := '';
RETURN v_rc;
END FUN_GET_MOVEFILE;
/*
** 압류 미처리건수 Check
*/
FUNCTION FUN_UNSEIZURE_CHK(v_carno IN VARCHAR2, v_owner IN VARCHAR2, v_resident_no VARCHAR2,
v_resident_date CHAR) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM PENALTY_DETAIL_INFO
WHERE CAR_NO = v_carno
AND OWNER = v_owner
AND RESIDENT_NO = v_resident_no
AND TO_CHAR(RESIDENT_DATE,'YYYYMMDD') = v_resident_date
AND SEISURE_YN <> '1';
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_UNSEIZURE_CHK;
/*
** 1-1,메인화면 맨하단의 조회시 뿌려지는 리스트 ( 파리미터가 '관리번호'일때) ..
*/
PROCEDURE SP_TFC000E_M01
( v_mngno IN VARCHAR2,
v_mng_year OUT CHAR,
v_penalty_seqno OUT VARCHAR2,
v_fare_office_id OUT CHAR,
v_booth_id OUT CHAR,
v_pass_date OUT CHAR,
v_car_no OUT VARCHAR2,
v_pass_amount OUT VARCHAR2,
v_fine_amount OUT VARCHAR2,
v_total_amount OUT VARCHAR2,
v_owner OUT VARCHAR2,
v_car_type_id OUT CHAR,
v_car_type_name OUT VARCHAR2,
v_resident_date OUT CHAR,
v_max_carry_capacity OUT VARCHAR2,
v_post_no1 OUT VARCHAR2,
v_post_no2 OUT VARCHAR2,
v_address OUT VARCHAR2,
v_receipt_yn OUT CHAR,
v_worker_id OUT CHAR,
v_motion_id OUT CHAR,
v_office_name OUT VARCHAR2,
v_resident_no OUT VARCHAR2
)
IS
BEGIN
SELECT A.PENALTY_MANAGE_YEAR,
TO_CHAR(A.PENALTY_SEQNO),
A.FARE_OFFICE_ID,
A.BOOTH_ID,
A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES,
RTRIM(A.CAR_NO),
TO_CHAR(NVL(A.PASS_AMOUNT,0)),
TO_CHAR(NVL(A.FINE_AMOUNT,0)),
TO_CHAR(NVL(A.PASS_AMOUNT,0) + NVL(A.FINE_AMOUNT,0)),
RTRIM(A.OWNER),
B.CAR_TYPE_ID,
--B.CAR_TYPE_NAME,
D.CARS_TYPE_FULL_NAME,
TO_CHAR(B.RESIDENT_DATE,'YYYYMMDD'),
B.MAX_CARRY_CAPACITY,
RTRIM(B.POST_NO1),
RTRIM(B.POST_NO2),
RTRIM(B.ADDRESS_NAME)||' '||RTRIM(B.ADDRESS_NUMBER),
A.RECEIPT_YN,
Fun_Get_Worker(A.WORKER_ID),
A.MOTION_ID,
C.FARE_OFFICE_FULL_NAME,
A.RESIDENT_NO
INTO v_mng_year,
v_penalty_seqno,
v_fare_office_id,
v_booth_id,
v_pass_date,
v_car_no,
v_pass_amount,
v_fine_amount,
v_total_amount,
v_owner,
v_car_type_id,
v_car_type_name,
v_resident_date,
v_max_carry_capacity,
v_post_no1,
v_post_no2,
v_address,
v_receipt_yn,
v_worker_id,
v_motion_id,
v_office_name,
v_resident_no
FROM PENALTY_DETAIL_INFO A,
PENALTY_HEAD_INFO B,
FARE_OFFICE_CODE_INFO C,
CARS_TYPE_CODE_INFO D
WHERE A.CAR_NO = B.CAR_NO
AND A.RESIDENT_NO = B.RESIDENT_NO
AND A.FARE_OFFICE_ID = C.FARE_OFFICE_ID
AND B.CAR_TYPE_ID = D.CARS_TYPE_ID
AND A.PENALTY_SEQNO = TO_NUMBER(RTRIM(v_mngno)) -- 관리번호..
ORDER BY A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES;
END SP_TFC000E_M01;
/*
** 1-1-1,메인화면 맨하단의 조회시 뿌려지는 리스트 ( 파리미터가 '관리번호'일때) ..
*/
PROCEDURE SP_TFC000E_M02_1
( v_row IN NUMBER,
v_mngno IN VARCHAR2,
v_penalty_year OUT VARCHAR2,
v_penalty_no OUT VARCHAR2,
v_car_no OUT VARCHAR2,
v_car_type_id OUT VARCHAR2,
v_car_type_name OUT VARCHAR2,
v_pass_datetime OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_owner OUT VARCHAR2,
v_owner_regno OUT VARCHAR2,
v_office_name OUT VARCHAR2
)
IS
CURSOR CUR21 IS
SELECT A.PENALTY_MANAGE_YEAR F_MNGYEAR,
A.PENALTY_SEQNO F_MNGNO,
A.CAR_NO F_CARNO,
B.CAR_TYPE_ID F_CAR_TYPE_ID,
--B.CAR_TYPE_NAME F_CAR_TYPE_NAME,
D.CARS_TYPE_FULL_NAME F_CAR_TYPE_NAME,
A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES F_PASS_DATE,
A.FARE_OFFICE_ID F_FARE_OFFICE_ID,
A.OWNER F_OWNER,
A.RESIDENT_NO F_REGNO,
C.FARE_OFFICE_FULL_NAME F_OFFICE_NAME
FROM PENALTY_DETAIL_INFO A,
PENALTY_HEAD_INFO B,
FARE_OFFICE_CODE_INFO C,
CARS_TYPE_CODE_INFO D
WHERE A.CAR_NO = B.CAR_NO
AND A.FARE_OFFICE_ID = C.FARE_OFFICE_ID
AND B.CAR_TYPE_ID = D.CARS_TYPE_ID
AND A.PENALTY_SEQNO = TO_NUMBER(RTRIM(v_mngno)) -- 관리번호..
ORDER BY A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES;
TFC021_REC CUR21%ROWTYPE;
BEGIN
FOR TFC021_REC IN CUR21 LOOP
v_penalty_year := TFC021_REC.F_MNGYEAR;
v_penalty_no := TFC021_REC.F_MNGNO;
v_car_no := TFC021_REC.F_CARNO;
v_car_type_id := TFC021_REC.F_CAR_TYPE_ID;
v_car_type_name := TFC021_REC.F_CAR_TYPE_NAME;
v_pass_datetime := TFC021_REC.F_PASS_DATE;
v_fare_office := TFC021_REC.F_FARE_OFFICE_ID;
v_owner := TFC021_REC.F_OWNER;
v_owner_regno := TFC021_REC.F_REGNO;
v_office_name := TFC021_REC.F_OFFICE_NAME;
EXIT WHEN CUR21%ROWCOUNT >= v_row;
END LOOP;
END SP_TFC000E_M02_1;
/*
** 1-2,메인화면 맨하단의 조회시 뿌려지는 리스트 ( 파리미터가 '차량번호'일때) ..
*/
PROCEDURE SP_TFC000E_M02
( v_row IN NUMBER,
v_carno IN VARCHAR2,
v_penalty_year OUT VARCHAR2,
v_penalty_no OUT VARCHAR2,
v_car_no OUT VARCHAR2,
v_car_type_id OUT VARCHAR2,
v_car_type_name OUT VARCHAR2,
v_pass_datetime OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_owner OUT VARCHAR2,
v_owner_regno OUT VARCHAR2,
v_office_name OUT VARCHAR2
)
IS
CURSOR CUR IS
SELECT A.PENALTY_MANAGE_YEAR F_MNGYEAR,
A.PENALTY_SEQNO F_MNGNO,
A.CAR_NO F_CARNO,
B.CAR_TYPE_ID F_CAR_TYPE_ID,
--B.CAR_TYPE_NAME F_CAR_TYPE_NAME,
D.CARS_TYPE_FULL_NAME F_CAR_TYPE_NAME,
A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES F_PASS_DATE,
A.FARE_OFFICE_ID F_FARE_OFFICE_ID,
A.OWNER F_OWNER,
A.RESIDENT_NO F_REGNO,
C.FARE_OFFICE_FULL_NAME F_OFFICE_NAME
FROM PENALTY_DETAIL_INFO A,
PENALTY_HEAD_INFO B,
FARE_OFFICE_CODE_INFO C,
CARS_TYPE_CODE_INFO D
WHERE A.CAR_NO = B.CAR_NO
AND A.FARE_OFFICE_ID = C.FARE_OFFICE_ID
AND B.CAR_TYPE_ID = D.CARS_TYPE_ID
AND A.CAR_NO LIKE v_carno -- 차량번호..
ORDER BY A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES;
TFC02_REC CUR%ROWTYPE;
BEGIN
FOR TFC02_REC IN CUR LOOP
v_penalty_year := TFC02_REC.F_MNGYEAR;
v_penalty_no := TFC02_REC.F_MNGNO;
v_car_no := TFC02_REC.F_CARNO;
v_car_type_id := TFC02_REC.F_CAR_TYPE_ID;
v_car_type_name := TFC02_REC.F_CAR_TYPE_NAME;
v_pass_datetime := TFC02_REC.F_PASS_DATE;
v_fare_office := TFC02_REC.F_FARE_OFFICE_ID;
v_owner := TFC02_REC.F_OWNER;
v_owner_regno := TFC02_REC.F_REGNO;
v_office_name := TFC02_REC.F_OFFICE_NAME;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFC000E_M02;
/*
** 1-3,메인화면 맨하단의 조회시 뿌려지는 리스트 ( 파리미터가 '소유주'일때) ..
*/
PROCEDURE SP_TFC000E_M03
( v_row IN NUMBER,
v_owner_name IN VARCHAR2,
v_penalty_year OUT VARCHAR2,
v_penalty_no OUT VARCHAR2,
v_car_no OUT VARCHAR2,
v_car_type_id OUT VARCHAR2,
v_car_type_name OUT VARCHAR2,
v_pass_datetime OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_owner OUT VARCHAR2,
v_owner_regno OUT VARCHAR2,
v_office_name OUT VARCHAR2
)
IS
CURSOR CUR IS
SELECT A.PENALTY_MANAGE_YEAR F_MNGYEAR,
A.PENALTY_SEQNO F_MNGNO,
A.CAR_NO F_CARNO,
B.CAR_TYPE_ID F_CAR_TYPE_ID,
--B.CAR_TYPE_NAME F_CAR_TYPE_NAME,
D.CARS_TYPE_FULL_NAME F_CAR_TYPE_NAME,
A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES F_PASS_DATE,
A.FARE_OFFICE_ID F_FARE_OFFICE_ID,
A.OWNER F_OWNER,
A.RESIDENT_NO F_REGNO,
C.FARE_OFFICE_FULL_NAME F_OFFICE_NAME
FROM PENALTY_DETAIL_INFO A,
PENALTY_HEAD_INFO B,
FARE_OFFICE_CODE_INFO C,
CARS_TYPE_CODE_INFO D
WHERE A.CAR_NO = B.CAR_NO
AND A.FARE_OFFICE_ID = C.FARE_OFFICE_ID
AND B.CAR_TYPE_ID = D.CARS_TYPE_ID
AND A.OWNER LIKE v_owner_name -- 소유자명...
ORDER BY A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES;
TFC03_REC CUR%ROWTYPE;
BEGIN
FOR TFC03_REC IN CUR LOOP
v_penalty_year := TFC03_REC.F_MNGYEAR;
v_penalty_no := TFC03_REC.F_MNGNO;
v_car_no := TFC03_REC.F_CARNO;
v_car_type_id := TFC03_REC.F_CAR_TYPE_ID;
v_car_type_name := TFC03_REC.F_CAR_TYPE_NAME;
v_pass_datetime := TFC03_REC.F_PASS_DATE;
v_fare_office := TFC03_REC.F_FARE_OFFICE_ID;
v_owner := TFC03_REC.F_OWNER;
v_owner_regno := TFC03_REC.F_REGNO;
v_office_name := TFC03_REC.F_OFFICE_NAME;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFC000E_M03;
/*
** 2.메인화면 맨하단의 조회된 내용을 클릭시 상단에 뿌려질 상세내용1 건 가져오기..
*/
PROCEDURE SP_TFC000E_M04
( v_inmngyear IN VARCHAR2,
v_inmngno IN VARCHAR2,
v_incarno IN VARCHAR2,
v_jumin_no IN VARCHAR2,
v_mng_year OUT CHAR,
v_mngno OUT VARCHAR2,
v_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_passdate OUT VARCHAR2,
v_carno OUT VARCHAR2,
v_cartype_id OUT VARCHAR2,
v_cartype_name OUT VARCHAR2,
v_pass_amt OUT VARCHAR2,
v_fine_amt OUT VARCHAR2,
v_total_amt OUT VARCHAR2,
v_owner OUT VARCHAR2,
v_regist_no OUT VARCHAR2,
v_car_capa OUT VARCHAR2,
v_post_no1 OUT VARCHAR2,
v_post_no2 OUT VARCHAR2,
v_address OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_receipt_yn OUT CHAR,
v_reg_date OUT CHAR,
v_motion_id OUT CHAR,
v_Office_name OUT VARCHAR2
)
IS
BEGIN
SELECT A.PENALTY_MANAGE_YEAR,
A.PENALTY_SEQNO,
RTRIM(A.FARE_OFFICE_ID),
RTRIM(A.BOOTH_ID),
RTRIM(A.YEAR)||RTRIM(A.MONTH)||RTRIM(A.DAY)||RTRIM(A.WORK_TIMES),
RTRIM(A.CAR_NO),
RTRIM(B.CAR_TYPE_ID),
--RTRIM(B.CAR_TYPE_NAME),
RTRIM(D.CARS_TYPE_FULL_NAME),
NVL(A.PASS_AMOUNT,0),
NVL(A.FINE_AMOUNT,0),
RTRIM(A.OWNER),
RTRIM(A.RESIDENT_NO),
RTRIM(B.MAX_CARRY_CAPACITY),
RTRIM(B.POST_NO1),
RTRIM(B.POST_NO2),
RTRIM(B.ADDRESS_NAME)||' ' ||RTRIM(B.ADDRESS_NUMBER),
Fun_Get_Worker(RTRIM(A.WORKER_ID)),
RECEIPT_YN,
TO_CHAR(B.RESIDENT_DATE,'YYYYMMDD'),
A.MOTION_ID,
C.FARE_OFFICE_FULL_NAME
INTO v_mng_year,
v_mngno,
v_office,
v_booth,
v_passdate,
v_carno,
v_cartype_id,
v_cartype_name,
v_pass_amt,
v_fine_amt,
v_owner,
v_regist_no,
v_car_capa,
v_post_no1,
v_post_no2,
v_address,
v_worker,
v_receipt_yn,
v_reg_date,
v_motion_id,
v_office_name
FROM PENALTY_DETAIL_INFO A,
PENALTY_HEAD_INFO B,
FARE_OFFICE_CODE_INFO C,
CARS_TYPE_CODE_INFO D
WHERE A.CAR_NO = B.CAR_NO
AND A.RESIDENT_NO = B.RESIDENT_NO
AND A.FARE_OFFICE_ID = C.FARE_OFFICE_ID
AND B.CAR_TYPE_ID = D.CARS_TYPE_ID
AND A.PENALTY_MANAGE_YEAR = RTRIM(v_inmngyear) -- 관리년도...
AND A.PENALTY_SEQNO = TO_NUMBER(v_inmngno) -- 관리번호...
AND A.CAR_NO = RTRIM(v_incarno) -- 차량번호...
AND A.RESIDENT_NO = RTRIM(v_jumin_no) -- 현 차량소유자 주민번호 (차량이전시 소유주가 틀리므로...)
ORDER BY A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES;
--합계금액
v_total_amt := v_pass_amt + v_fine_amt ;
END SP_TFC000E_M04;
/*
** 수납정보 가져오기
*/
PROCEDURE SP_TFC000E_M05
( v_row IN NUMBER,
v_mng_year IN CHAR,
v_mng_seqno IN NUMBER,
v_receipt_amt OUT NUMBER,
v_receipt_date OUT CHAR,
v_receipt_kbn OUT CHAR,
v_receipt_agency OUT VARCHAR2,
v_process_kbn OUT CHAR
)
IS
CURSOR CUR IS
SELECT RECEIPT_AMOUNT F_A,
TO_CHAR(RECEIPT_DATE,'YYYYMMDD') F_B,
RECEIPT_PROCESS_KBN F_C,
RECEIPT_AGENCY F_D,
RECEIPT_PROCESS_KBN F_E
FROM RECEIPT_INFO
WHERE PENALTY_MANAGE_YEAR = v_mng_year
AND PENALTY_SEQNO = v_mng_seqno
ORDER BY RECEIPT_DATE;
M05_REC CUR%ROWTYPE;
BEGIN
FOR M05_REC IN CUR LOOP
v_receipt_amt := M05_REC.F_A ;
v_receipt_date := M05_REC.F_B ;
v_receipt_kbn := M05_REC.F_C ;
v_receipt_agency := M05_REC.F_D ;
v_process_kbn := M05_REC.F_E ;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFC000E_M05;
/*********************************************************************/
-- RESPONSE WINDOW하단에 뿌려질 차량번호에 해당되는 data..(단순 확인용)
/*********************************************************************/
PROCEDURE SP_TFC000E_M06
(
v_row IN NUMBER,
v_carno IN VARCHAR2,
v_owner IN VARCHAR2,
v_mngno OUT NUMBER,
v_office OUT CHAR,
v_booth OUT CHAR,
v_pass_dt OUT VARCHAR2,
v_kogi_kbn OUT VARCHAR2,
v_kogi_date OUT CHAR,
v_receipt_kbn OUT CHAR
)
IS
CURSOR CUR IS
SELECT PENALTY_SEQNO F_A,
FARE_OFFICE_ID F_B,
BOOTH_ID F_C,
YEAR||MONTH||DAY||WORK_TIMES F_D,
NOTICE_ID F_E,
TO_CHAR(NOTICE_DATE,'YYYYMMDD') F_F,
RECEIPT_YN F_G
FROM PENALTY_DETAIL_INFO
WHERE CAR_NO = RTRIM(v_carno)
AND OWNER = RTRIM(v_owner)
ORDER BY PENALTY_MANAGE_YEAR;
M06_REC CUR%ROWTYPE;
BEGIN
FOR M06_REC IN CUR LOOP
v_mngno := M06_REC.F_A ;
v_office := M06_REC.F_B ;
v_booth := M06_REC.F_C ;
v_pass_dt := M06_REC.F_D ;
v_kogi_kbn := M06_REC.F_E ;
v_kogi_date := M06_REC.F_F ;
v_receipt_kbn := M06_REC.F_G ;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFC000E_M06;
/*
** 반송정보 가져오기
*/
PROCEDURE SP_TFC000E_M07
( v_mng_year IN CHAR,
v_mng_seqno IN NUMBER,
v_motion_id IN CHAR,
v_return_date OUT CHAR,
v_return_rsn_id OUT CHAR
)
IS
BEGIN
SELECT TO_CHAR(RETUEN_DATE,'YYYYMMDD'),
RETURN_REASON_ID
INTO v_return_date,
v_return_rsn_id
FROM RETURN_INFO
WHERE PENALTY_MANAGE_YEAR = v_mng_year
AND PENALTY_SEQNO = v_mng_seqno
AND MOTION_ID = v_motion_id;
END SP_TFC000E_M07;
/*
** 압류정보 가져오기
*/
PROCEDURE SP_TFC000E_M08
( v_year IN CHAR,
v_seqno IN NUMBER,
v_seizure_date OUT CHAR,
v_seisure_yn OUT CHAR,
v_seizure_organ_name OUT VARCHAR2,
v_resident_no OUT VARCHAR2,
v_resident_date OUT CHAR,
v_seizure_manage_year OUT CHAR,
v_seizure_manage_no OUT NUMBER
)
IS
BEGIN
SELECT TO_CHAR(A.SEIZURE_DATE,'YYYYMMDD'),
A.SEISURE_YN,
RTRIM(B.SEIZURE_ORGAN_NAME,' '),
RTRIM(A.RESIDENT_NO,' '),
TO_CHAR(A.RESIDENT_DATE,'YYYYMMDD'),
NVL(A.SEIZURE_MANAGE_YEAR,' '),
NVL(A.SEIZURE_MANAGE_NO,0)
INTO v_seizure_date,
v_seisure_yn,
v_seizure_organ_name,
v_resident_no,
v_resident_date,
v_seizure_manage_year,
v_seizure_manage_no
FROM PENALTY_DETAIL_INFO A,
SEIZURE_INFO B
WHERE A.SEIZURE_MANAGE_YEAR = B.SEIZURE_MANAGE_YEAR(+)
AND A.SEIZURE_MANAGE_NO = B.SEIZURE_MANAGE_NO(+)
AND A.PENALTY_MANAGE_YEAR = v_year
AND A.PENALTY_SEQNO = v_seqno;
END SP_TFC000E_M08;
/*
** 압류해지를 위해 압류정보 가져오기
*/
PROCEDURE SP_TFC000E_M09
( v_mng_year IN CHAR,
v_mng_seqno IN NUMBER,
v_seizure_dt OUT CHAR,
v_seizure_termi_dt OUT CHAR,
v_seizure_termi_rsn OUT VARCHAR2,
v_receipt_date OUT CHAR,
v_receipt_agency OUT VARCHAR2
)
IS
BEGIN
SELECT TO_CHAR(A.SEIZURE_DATE,'YYYYMMDD'),
TO_CHAR(A.SEIZURE_TERMI_DATE,'YYYYMMDD'),
A.SEIZURE_TERMI,
TO_CHAR(B.RECEIPT_DATE,'YYYYMMDD'),
B.RECEIPT_AGENCY
INTO v_seizure_dt,
v_seizure_termi_dt,
v_seizure_termi_rsn,
v_receipt_date,
v_receipt_agency
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 B.RECEIPT_DATE = ( SELECT MIN(D.RECEIPT_DATE) FROM RECEIPT_INFO D
WHERE A.PENALTY_MANAGE_YEAR = D.PENALTY_MANAGE_YEAR
AND A.PENALTY_SEQNO = D.PENALTY_SEQNO )
AND A.PENALTY_MANAGE_YEAR = v_mng_year
AND A.PENALTY_SEQNO = v_mng_seqno;
END SP_TFC000E_M09;
/*
** 압류불가를 위해 압류정보 가져오기
*/
PROCEDURE SP_TFC000E_M10
( v_mng_year IN CHAR,
v_mng_seqno IN NUMBER,
v_wrong_id OUT CHAR,
v_wrong_date OUT CHAR,
v_wrong_reason OUT VARCHAR2,
v_resident_no OUT VARCHAR2,
v_resident_date OUT CHAR
)
IS
BEGIN
SELECT SEIZURE_WRONG_ID,
TO_CHAR(SEIZURE_WRONG_DATE,'YYYYMMDD'),
SEIZURE_WRONG_REASON,
RTRIM(RESIDENT_NO,' '),
TO_CHAR(RESIDENT_DATE,'YYYYMMDD')
INTO v_wrong_id,
v_wrong_date,
v_wrong_reason,
v_resident_no,
v_resident_date
FROM PENALTY_DETAIL_INFO
WHERE RTRIM(PENALTY_MANAGE_YEAR) = v_mng_year
AND PENALTY_SEQNO = v_mng_seqno;
END SP_TFC000E_M10;
/*
** 고지불가를 위해 압류정보 가져오기
*/
PROCEDURE SP_TFC000E_M11
( v_mng_year IN CHAR,
v_mng_seqno IN NUMBER,
v_wrong_id OUT CHAR,
v_wrong_date OUT CHAR,
v_wrong_reason OUT VARCHAR2
)
IS
BEGIN
SELECT NOTICE_WRONG_ID,
TO_CHAR(NOTICE_WRONG_DATE,'YYYYMMDD'),
NOTICE_WRONG_REASON
INTO v_wrong_id,
v_wrong_date,
v_wrong_reason
FROM PENALTY_DETAIL_INFO
WHERE RTRIM(PENALTY_MANAGE_YEAR) = v_mng_year
AND PENALTY_SEQNO = v_mng_seqno;
END SP_TFC000E_M11;
/*
** 고지가능처리
*/
PROCEDURE SP_TFC000E_M12
( v_mng_year IN CHAR,
v_mng_seqno IN NUMBER,
v_choose_id OUT CHAR,
v_choose_date OUT CHAR,
v_resident_no OUT VARCHAR2
)
IS
BEGIN
SELECT NOTICE_CHOOSE_ID,
TO_CHAR(NOTICE_CHOOSE_DATE,'YYYYMMDD'),
RESIDENT_NO
INTO v_choose_id,
v_choose_date,
v_resident_no
FROM PENALTY_DETAIL_INFO
WHERE PENALTY_MANAGE_YEAR = v_mng_year
AND PENALTY_SEQNO = v_mng_seqno;
END SP_TFC000E_M12;
/*********************************************************************/
-- RESPONSE WINDOW하단에 뿌려질 차량번호에 해당되는 data..(단순 확인용)
/*********************************************************************/
PROCEDURE SP_TFC000E_M13
(
v_row IN NUMBER,
v_carno IN VARCHAR2,
v_owner IN VARCHAR2,
v_mngno OUT NUMBER,
v_office OUT CHAR,
v_booth OUT CHAR,
v_pass_dt OUT VARCHAR2,
v_kogi_kbn OUT VARCHAR2,
v_kogi_date OUT CHAR,
v_receipt_kbn OUT CHAR,
v_lavy_amount OUT NUMBER,
v_penalty_year OUT CHAR,
v_receipt_date OUT CHAR,
v_receipt_agency OUT VARCHAR2
)
IS
CURSOR CUR IS
SELECT A.PENALTY_SEQNO F_A,
A.FARE_OFFICE_ID F_B,
A.BOOTH_ID F_C,
A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES F_D,
A.MOTION_ID F_E,
TO_CHAR(B.SEND_DATE,'YYYYMMDD') F_F,
C.RECEIPT_ID F_G,
NVL(A.LAVY_AMOUNT,0) F_H,
A.PENALTY_MANAGE_YEAR F_I,
TO_CHAR(C.RECEIPT_DATE,'YYYYMMDD') F_J,
C.RECEIPT_AGENCY F_K
FROM PENALTY_DETAIL_INFO A,
SEND_INFO B,
RECEIPT_INFO C
WHERE A.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR(+)
AND A.PENALTY_SEQNO = B.PENALTY_SEQNO(+)
AND A.MOTION_ID = B.MOTION_ID(+)
AND A.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR(+)
AND A.PENALTY_SEQNO = C.PENALTY_SEQNO(+)
AND A.CAR_NO = RTRIM(v_carno)
AND A.OWNER = RTRIM(v_owner)
AND A.MOTION_ID IN ('41','42','43','44','45','46','47','48')
AND A.RECEIPT_YN = '0'
ORDER BY A.PENALTY_MANAGE_YEAR, A.PENALTY_SEQNO;
M13_REC CUR%ROWTYPE;
BEGIN
FOR M13_REC IN CUR LOOP
v_mngno := M13_REC.F_A ;
v_office := M13_REC.F_B ;
v_booth := M13_REC.F_C ;
v_pass_dt := M13_REC.F_D ;
v_kogi_kbn := M13_REC.F_E ;
v_kogi_date := M13_REC.F_F ;
v_receipt_kbn := M13_REC.F_G ;
v_lavy_amount := M13_REC.F_H ;
v_penalty_year := M13_REC.F_I ;
v_receipt_date := M13_REC.F_J ;
v_receipt_agency := M13_REC.F_K ;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFC000E_M13;
/*********************************************************************/
-- RESPONSE WINDOW하단에 뿌려질 차량번호에 해당되는 data..(단순 확인용)
/*********************************************************************/
PROCEDURE SP_TFC000E_M14
(
v_row IN NUMBER,
v_carno IN VARCHAR2,
v_owner IN VARCHAR2,
v_mngno OUT NUMBER,
v_office OUT CHAR,
v_booth OUT CHAR,
v_pass_dt OUT VARCHAR2,
v_kogi_kbn OUT VARCHAR2,
v_kogi_date OUT CHAR,
v_receipt_nm OUT VARCHAR2,
v_lavy_amount OUT NUMBER,
v_penalty_year OUT CHAR,
v_receipt_date OUT CHAR,
v_receipt_agency OUT VARCHAR2
)
IS
CURSOR CUR IS
SELECT A.PENALTY_SEQNO F_A,
A.FARE_OFFICE_ID F_B,
A.BOOTH_ID F_C,
A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES F_D,
B.MOTION_ID F_E,
TO_CHAR(B.SEND_DATE,'YYYYMMDD') F_F,
A.RECEIPT_YN F_G,
NVL(A.LAVY_AMOUNT,0) F_H,
A.PENALTY_MANAGE_YEAR F_I,
TO_CHAR(C.RECEIPT_DATE,'YYYYMMDD') F_J,
C.RECEIPT_AGENCY F_K
FROM PENALTY_DETAIL_INFO A,
SEND_INFO B,
RECEIPT_INFO C
WHERE A.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
AND A.PENALTY_SEQNO = B.PENALTY_SEQNO
AND B.MOTION_ID = ( SELECT MIN(D.MOTION_ID) FROM SEND_INFO D
WHERE A.PENALTY_MANAGE_YEAR = D.PENALTY_MANAGE_YEAR
AND A.PENALTY_SEQNO = D.PENALTY_SEQNO )
AND B.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR (+)
AND B.PENALTY_SEQNO = C.PENALTY_SEQNO (+)
AND A.CAR_NO = RTRIM(v_carno)
AND A.OWNER = RTRIM(v_owner)
AND A.SEISURE_YN = '1'
ORDER BY A.PENALTY_MANAGE_YEAR, A.PENALTY_SEQNO;
M14_REC CUR%ROWTYPE;
v_receipt_yn CHAR(1);
BEGIN
FOR M14_REC IN CUR LOOP
v_mngno := M14_REC.F_A ;
v_office := M14_REC.F_B ;
v_booth := M14_REC.F_C ;
v_pass_dt := M14_REC.F_D ;
v_kogi_kbn := M14_REC.F_E ;
v_kogi_date := M14_REC.F_F ;
v_receipt_yn := M14_REC.F_G ;
v_lavy_amount := M14_REC.F_H ;
v_penalty_year := M14_REC.F_I ;
v_receipt_date := M14_REC.F_J ;
v_receipt_agency := M14_REC.F_K ;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
IF v_receipt_yn = '1' THEN
BEGIN
SELECT RTRIM(B.RECEIPT_FULL_NAME,' ')
INTO v_receipt_nm
FROM RECEIPT_INFO A,
RECEIPT_CODE_INFO B
WHERE A.RECEIPT_ID = B.RECEIPT_ID
AND A.PENALTY_MANAGE_YEAR = v_penalty_year
AND A.PENALTY_SEQNO = v_mngno;
EXCEPTION WHEN OTHERS THEN
v_receipt_nm := '';
RETURN;
END;
END IF;
END SP_TFC000E_M14;
/*
** 압류불가처리
*/
PROCEDURE SP_TFC000E_M15
(
v_row IN NUMBER,
v_carno IN VARCHAR2,
v_owner IN VARCHAR2,
v_mngno OUT NUMBER,
v_office OUT CHAR,
v_booth OUT CHAR,
v_pass_dt OUT VARCHAR2,
v_kogi_kbn OUT VARCHAR2,
v_kogi_date OUT CHAR,
v_seizure_date OUT CHAR,
v_lavy_amount OUT NUMBER,
v_penalty_year OUT CHAR
)
IS
CURSOR CUR IS
SELECT A.PENALTY_SEQNO F_A,
A.FARE_OFFICE_ID F_B,
A.BOOTH_ID F_C,
A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES F_D,
A.MOTION_ID F_E,
TO_CHAR(B.SEND_DATE,'YYYYMMDD') F_F,
TO_CHAR(A.SEIZURE_DATE,'YYYYMMDD') F_G,
NVL(A.LAVY_AMOUNT,0) F_H,
A.PENALTY_MANAGE_YEAR F_I
FROM PENALTY_DETAIL_INFO A,
SEND_INFO B
WHERE A.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
AND A.PENALTY_SEQNO = B.PENALTY_SEQNO
AND B.MOTION_ID = ( SELECT MIN(C.MOTION_ID) FROM SEND_INFO C
WHERE A.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR
AND A.PENALTY_SEQNO = C.PENALTY_SEQNO )
AND A.CAR_NO = RTRIM(v_carno)
AND A.OWNER = RTRIM(v_owner)
AND A.SEISURE_YN = '1'
ORDER BY A.PENALTY_MANAGE_YEAR, A.PENALTY_SEQNO;
M15_REC CUR%ROWTYPE;
BEGIN
FOR M15_REC IN CUR LOOP
v_mngno := M15_REC.F_A ;
v_office := M15_REC.F_B ;
v_booth := M15_REC.F_C ;
v_pass_dt := M15_REC.F_D ;
v_kogi_kbn := M15_REC.F_E ;
v_kogi_date := M15_REC.F_F ;
v_seizure_date := M15_REC.F_G ;
v_lavy_amount := M15_REC.F_H ;
v_penalty_year := M15_REC.F_I ;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFC000E_M15;
/*
** 고지불가처리
*/
PROCEDURE SP_TFC000E_M16
(
v_row IN NUMBER,
v_carno IN VARCHAR2,
v_owner IN VARCHAR2,
v_mngno OUT NUMBER,
v_office OUT CHAR,
v_booth OUT CHAR,
v_pass_dt OUT VARCHAR2,
v_kogi_kbn OUT VARCHAR2,
v_kogi_date OUT CHAR,
v_notice_id OUT CHAR,
v_lavy_amount OUT NUMBER,
v_penalty_year OUT CHAR,
v_notice_date OUT CHAR,
v_notice_reason OUT VARCHAR2
)
IS
CURSOR CUR IS
SELECT A.PENALTY_SEQNO F_A,
A.FARE_OFFICE_ID F_B,
A.BOOTH_ID F_C,
A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES F_D,
A.MOTION_ID F_E,
TO_CHAR(B.SEND_DATE,'YYYYMMDD') F_F,
A.NOTICE_WRONG_ID F_G,
NVL(A.LAVY_AMOUNT,0) F_H,
A.PENALTY_MANAGE_YEAR F_I,
TO_CHAR(A.NOTICE_WRONG_DATE,'YYYYMMDD') F_J,
RTRIM(A.NOTICE_WRONG_REASON) F_K
FROM PENALTY_DETAIL_INFO A,
SEND_INFO B
WHERE A.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
AND A.PENALTY_SEQNO = B.PENALTY_SEQNO
AND B.MOTION_ID = ( SELECT MIN(C.MOTION_ID) FROM SEND_INFO C
WHERE A.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR
AND A.PENALTY_SEQNO = C.PENALTY_SEQNO )
AND A.CAR_NO = RTRIM(v_carno)
AND A.OWNER = RTRIM(v_owner)
AND A.RECEIPT_YN = '0'
ORDER BY A.PENALTY_MANAGE_YEAR, A.PENALTY_SEQNO;
M16_REC CUR%ROWTYPE;
BEGIN
FOR M16_REC IN CUR LOOP
v_mngno := M16_REC.F_A ;
v_office := M16_REC.F_B ;
v_booth := M16_REC.F_C ;
v_pass_dt := M16_REC.F_D ;
v_kogi_kbn := M16_REC.F_E ;
v_kogi_date := M16_REC.F_F ;
v_notice_id := M16_REC.F_G ;
v_lavy_amount := M16_REC.F_H ;
v_penalty_year := M16_REC.F_I ;
v_notice_date := M16_REC.F_J ;
v_notice_reason := M16_REC.F_K ;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFC000E_M16;
/*
** 수납처리(수납정보테이블 변경후,과태료 DETAIL정보의 수납처리구분을 변경
*/
PROCEDURE SP_RECEIPT_INFO_INSERT
(
v_gubun IN CHAR,
v_year IN CHAR,
v_seqno IN NUMBER,
v_carno IN VARCHAR2,
v_receipt_date_gu IN CHAR,
v_receipt_date IN CHAR,
v_receipt_id IN CHAR,
v_receipt_amt IN NUMBER,
v_receipt_agency IN VARCHAR2,
v_process_kbn IN CHAR,
v_gsuser IN VARCHAR2
)
IS
ERROR_CODE NUMBER :=0;
ERROR_MESSAGE CHAR(255);
h_count NUMBER :=0;
h_vc NUMBER :=0;
h_rtn NUMBER :=0;
h_motion char(2);
h_before_motion char(2);
BEGIN
BEGIN
IF v_gubun = '1' OR v_gubun = '2' THEN
BEGIN
INSERT INTO RECEIPT_INFO
( PENALTY_MANAGE_YEAR, PENALTY_SEQNO,
RECEIPT_DATE, RECEIPT_ID,
RECEIPT_AMOUNT, RECEIPT_AGENCY,
RECEIPT_PROCESS_KBN, CREATE_DATE,
CREATER, UPDATE_DATE,
UPDATER )
VALUES
( v_year,
v_seqno,
TO_DATE(v_receipt_date,'YYYYMMDD'),
v_receipt_id,
v_receipt_amt,
v_receipt_agency,
v_process_kbn,
SYSDATE,
v_gsuser,
SYSDATE,
v_gsuser
);
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure RECEIPT_INFO INSERT Error !!';
ROLLBACK;
RETURN;
END;
END IF;
IF v_gubun = '3' THEN
BEGIN
UPDATE RECEIPT_INFO
SET RECEIPT_DATE = TO_DATE(v_receipt_date,'YYYYMMDD'),
RECEIPT_ID = v_receipt_id,
RECEIPT_AMOUNT = v_receipt_amt,
RECEIPT_AGENCY = v_receipt_agency,
RECEIPT_PROCESS_KBN = v_process_kbn,
UPDATE_DATE = SYSDATE,
UPDATER = v_gsuser
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_seqno
AND RECEIPT_DATE = TO_DATE(v_receipt_date,'yyyymmdd');
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure RECEIPT_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
END IF;
-- h_rtn := FUN_HISTORY_INS(v_year, v_seqno, v_gsuser);
-- 2) 과태료 DETAIL정보의 수납여부의 FLAG를 '1''->수납처리
IF v_gubun = '2' THEN
BEGIN
UPDATE PENALTY_DETAIL_INFO
SET DOUBLE_RECEIPT_YN = '1',
DOUBLE_RECEIPT_DATE = TO_DATE(v_receipt_date,'YYYYMMDD'),
UPDATE_DATE = SYSDATE,
UPDATER = v_gsuser
WHERE PENALTY_SEQNO = v_seqno
AND CAR_NO = v_carno;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure PENALTY_DETAIL_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
ELSE
BEGIN
SELECT MOTION_ID, BEFORE_MOTION_ID
INTO h_motion, h_before_motion
FROM PENALTY_DETAIL_INFO
WHERE PENALTY_SEQNO = v_seqno
AND CAR_NO = v_carno;
EXCEPTION WHEN OTHERS THEN
h_motion := '';
h_before_motion := '';
END;
-- 이전에 민원 처리중 이면..
IF SUBSTR(h_motion, 1, 1) = '5' THEN
BEGIN
UPDATE PENALTY_DETAIL_INFO
SET RECEIPT_YN = '1',
MOTION_ID = '91',
UPDATE_DATE = SYSDATE,
UPDATER = v_gsuser
WHERE PENALTY_SEQNO = v_seqno
AND CAR_NO = v_carno;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure PENALTY_DETAIL_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
ELSE
-- 일반적인 경우 수납 Flag 처리
BEGIN
UPDATE PENALTY_DETAIL_INFO
SET RECEIPT_YN = '1',
MOTION_ID = '91',
BEFORE_MOTION_ID = h_motion,
UPDATE_DATE = SYSDATE,
UPDATER = v_gsuser
WHERE PENALTY_SEQNO = v_seqno
AND CAR_NO = v_carno;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure PENALTY_DETAIL_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
END IF;
END IF;
h_rtn := FUN_HISTORY_INS_re(v_year, v_seqno, v_gsuser);
COMMIT;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure START Error !!';
ROLLBACK WORK;
END;
END SP_RECEIPT_INFO_INSERT;
/*
** 반송처리
*/
PROCEDURE SP_RETURN_INFO_INSERT
(
v_gubun IN CHAR,
v_year IN CHAR,
v_seqno IN NUMBER,
v_motion_id IN CHAR,
v_send_date IN CHAR,
v_send_no IN NUMBER,
v_return_date_gu IN CHAR,
v_return_date IN CHAR,
v_return_reason_id IN CHAR,
v_gsuser IN VARCHAR2
)
IS
ERROR_CODE NUMBER :=0;
ERROR_MESSAGE CHAR(255);
h_count NUMBER :=0;
h_vc NUMBER :=0;
h_rtn NUMBER :=0;
h_motion_id CHAR(2);
BEGIN
IF v_motion_id = '21' THEN
h_motion_id := '22';
ELSIF v_motion_id = '31' THEN
h_motion_id := '32';
ELSIF v_motion_id = '33' THEN
h_motion_id := '34';
ELSIF v_motion_id = '35' THEN
h_motion_id := '36';
ELSIF v_motion_id = '37' THEN
h_motion_id := '38';
ELSIF v_motion_id = '41' THEN
h_motion_id := '42';
ELSIF v_motion_id = '43' THEN
h_motion_id := '44';
ELSIF v_motion_id = '45' THEN
h_motion_id := '46';
ELSIF v_motion_id = '47' THEN
h_motion_id := '48';
ELSIF v_motion_id = '49' THEN
h_motion_id := '50';
ELSIF v_motion_id = '61' THEN
h_motion_id := '62';
ELSIF v_motion_id = '63' THEN
h_motion_id := '64';
ELSIF v_motion_id = '81' THEN
h_motion_id := '82';
ELSIF v_motion_id = '83' THEN
h_motion_id := '84';
END IF;
BEGIN
IF RTRIM( v_gubun ) = '2' THEN
BEGIN
DELETE FROM RETURN_INFO
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_seqno
AND MOTION_ID = v_motion_id
AND SEND_DATE = TO_DATE(v_return_date_gu,'yyyymmdd')
AND SEND_NO = v_send_no;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure RETURN_INFO DELETE Error !!';
ROLLBACK;
RETURN;
END;
END IF;
IF RTRIM( v_gubun ) = '1' OR RTRIM( v_gubun ) = '2' THEN
BEGIN
INSERT INTO RETURN_INFO
( PENALTY_MANAGE_YEAR, PENALTY_SEQNO,
MOTION_ID, SEND_DATE,
SEND_NO, RETUEN_DATE,
RETURN_REASON_ID, CREATE_DATE,
CREATER, UPDATE_DATE,
UPDATER )
VALUES
( v_year,
v_seqno,
h_motion_id,
TO_DATE(v_send_date,'yyyymmdd'),
v_send_no,
TO_DATE(v_return_date,'yyyymmdd'),
v_return_reason_id,
SYSDATE,
v_gsuser,
SYSDATE,
v_gsuser
);
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure RETURN_INFO INSERT Error !!';
ROLLBACK;
RETURN;
END;
END IF;
IF RTRIM( v_gubun ) = '3' THEN
BEGIN
UPDATE RETURN_INFO
SET RETUEN_DATE = TO_DATE(v_return_date,'yyyymmdd'),
RETURN_REASON_ID = v_return_reason_id,
UPDATE_DATE = SYSDATE,
UPDATER = v_gsuser
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_seqno
AND MOTION_ID = h_motion_id
AND SEND_DATE = TO_DATE(v_send_date,'yyyymmdd')
AND SEND_NO = v_send_no;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure RETURN_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
END IF;
BEGIN
UPDATE SEND_INFO
SET RETURN_KBN = '2',
UPDATE_DATE = SYSDATE,
UPDATER = v_gsuser
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_seqno
AND MOTION_ID = v_motion_id
AND TO_CHAR(SEND_DATE,'yyyymmdd') = v_send_date
AND SEND_NO = v_send_no;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure SEND_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
-- h_rtn := FUN_HISTORY_INS(v_year, v_seqno, v_gsuser);
BEGIN
UPDATE PENALTY_DETAIL_INFO
SET MOTION_ID = h_motion_id,
BEFORE_MOTION_ID = v_motion_id,
UPDATE_DATE = SYSDATE,
UPDATER = v_gsuser
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_seqno;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure PENALTY_DETAIL_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
h_rtn := FUN_HISTORY_INS_re(v_year, v_seqno, v_gsuser);
COMMIT;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure START Error !!';
ROLLBACK WORK;
END;
END SP_RETURN_INFO_INSERT;
/*
** 압류처리
*/
PROCEDURE SP_SEIZURE_INFO_INSERT
(
v_year IN CHAR,
v_manage_no IN NUMBER,
v_seizure_organ_name IN VARCHAR2,
v_count IN NUMBER,
v_seizure_amt IN NUMBER,
v_gsuser IN VARCHAR2
)
IS
ERROR_CODE NUMBER :=0;
ERROR_MESSAGE CHAR(255);
h_rc NUMBER :=0;
v_manage_year CHAR(6);
v_manage_seqno NUMBER :=0;
BEGIN
BEGIN
/*
IF RTRIM(v_year) IS NULL OR RTRIM(v_year) = '' THEN
v_manage_year := TO_CHAR(sysdate,'yyyy');
SELECT NVL(MAX(SEIZURE_MANAGE_NO),0)
INTO v_manage_seqno
FROM SEIZURE_INFO
WHERE SEIZURE_MANAGE_YEAR = v_manage_year;
v_manage_seqno := v_manage_seqno + 1;
ELSE
v_manage_year := v_year;
v_manage_seqno := v_manage_no;
END IF;
*/
BEGIN
SELECT COUNT(SEIZURE_MANAGE_YEAR)
INTO h_rc
FROM SEIZURE_INFO
WHERE SEIZURE_MANAGE_YEAR = v_year
AND SEIZURE_MANAGE_NO = v_manage_no;
EXCEPTION
WHEN NO_DATA_FOUND THEN
h_rc := 0;
END;
IF h_rc > 0 THEN
BEGIN
UPDATE SEIZURE_INFO
SET SEIZURE_ORGAN_NAME = v_seizure_organ_name,
COUNT = v_count,
SEIZURE_AMOUNT = v_seizure_amt,
UPDATE_DATE = SYSDATE,
UPDATER = v_gsuser
WHERE SEIZURE_MANAGE_YEAR = v_year
AND SEIZURE_MANAGE_NO = v_manage_no;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure RETURN_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
ELSE
BEGIN
INSERT INTO SEIZURE_INFO
( SEIZURE_MANAGE_YEAR,
SEIZURE_MANAGE_NO,
SEIZURE_ORGAN_NAME,
COUNT,
SEIZURE_AMOUNT,
CREATE_DATE,
CREATER,
UPDATE_DATE,
UPDATER )
VALUES
( v_year,
v_manage_no,
v_seizure_organ_name,
v_count,
v_seizure_amt,
SYSDATE,
v_gsuser,
SYSDATE,
v_gsuser
);
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure RETURN_INFO INSERT Error !!';
ROLLBACK;
RETURN;
END;
END IF;
COMMIT;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure START Error !!';
ROLLBACK WORK;
END;
END SP_SEIZURE_INFO_INSERT;
/*
** 압류처리(penalty_detail_info 관련)
*/
PROCEDURE SP_SEIZURE_INFO_INSERT2
(
v_year IN CHAR,
v_seqno IN NUMBER,
v_seizure_date IN CHAR,
v_gsuser IN VARCHAR2
)
IS
ERROR_CODE NUMBER :=0;
ERROR_MESSAGE CHAR(255);
h_rc NUMBER :=0;
h_rtn NUMBER :=0;
BEGIN
BEGIN
h_rtn := FUN_HISTORY_INS(v_year, v_seqno, v_gsuser);
-- 2) 과태료 DETAIL정보의 압류여부,압류일자,압류구분코드 수정...
BEGIN
UPDATE PENALTY_DETAIL_INFO
SET SEISURE_YN = '1',
SEIZURE_DATE = TO_DATE(v_seizure_date,'YYYYMMDD'),
SEIZURE_ID = '01',
NOTICE_ID = '11',
MOTION_ID = '71',
UPDATE_DATE = SYSDATE,
UPDATER = v_gsuser
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_seqno;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE PENALTY_DETAIL_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
COMMIT;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE START Error !!';
ROLLBACK WORK;
END;
END SP_SEIZURE_INFO_INSERT2;
/*
** 압류해지?
*/
PROCEDURE SP_UNSEIZURE_INFO_INSERT
(
v_gubun IN CHAR,
v_year IN CHAR,
v_manage_no IN NUMBER,
v_unseizure_date IN CHAR,
v_unseizure_reason IN VARCHAR2,
v_receipt_date IN CHAR,
v_receipt_agency IN VARCHAR2,
v_receipt_id IN CHAR,
v_receipt_amt IN NUMBER,
v_gsuser IN VARCHAR2
)
IS
ERROR_CODE NUMBER :=0;
ERROR_MESSAGE CHAR(255);
h_rc NUMBER :=0;
h_rtn NUMBER :=0;
BEGIN
-- h_rtn := FUN_HISTORY_INS(v_year, v_manage_no, v_gsuser);
IF v_gubun = 'Y' THEN
BEGIN
INSERT INTO RECEIPT_INFO
( PENALTY_MANAGE_YEAR, PENALTY_SEQNO,
RECEIPT_DATE, RECEIPT_ID,
RECEIPT_AMOUNT, RECEIPT_AGENCY,
RECEIPT_PROCESS_KBN, CREATE_DATE,
CREATER, UPDATE_DATE,
UPDATER )
VALUES
( v_year,
v_manage_no,
TO_DATE(v_receipt_date,'YYYYMMDD'),
v_receipt_id,
v_receipt_amt,
v_receipt_agency,
'1',
SYSDATE,
v_gsuser,
SYSDATE,
v_gsuser
);
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE RECEIPT_INFO INSERT Error !!';
ROLLBACK;
RETURN;
END;
END IF;
BEGIN
UPDATE PENALTY_DETAIL_INFO
SET SEIZURE_TERMI_DATE = TO_DATE(v_unseizure_date,'YYYYMMDD'),
SEIZURE_TERMI = v_unseizure_reason,
SEIZURE_TRMI_YN = '2', -- 압류해지구분(0:무, 1:해지무, 2:해지)
MOTION_ID = '91', -- 현 진행코드 (91:수납)
BEFORE_MOTION_ID = v_receipt_id, -- 이전 진행코드
NOTICE_ID = '13', -- 고지구분(13: 압류해지)
SEIZURE_ID = '03', -- 압류 구분 코드
RECEIPT_YN = '1', -- 수납
UPDATE_DATE = SYSDATE,
UPDATER = v_gsuser
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_manage_no;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE PENALTY_DETAIL_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
h_rtn := FUN_HISTORY_INS_re(v_year, v_manage_no, v_gsuser);
COMMIT;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE START Error !!';
ROLLBACK WORK;
END SP_UNSEIZURE_INFO_INSERT;
/*
** 압류불가
*/
PROCEDURE SP_SEIZURE_WRONG_INSERT
(
v_year IN CHAR,
v_manage_no IN NUMBER,
v_wrong_id IN CHAR,
v_wrong_date IN CHAR,
v_wrong_reason IN VARCHAR2,
v_gsuser IN VARCHAR2
)
IS
ERROR_CODE NUMBER :=0;
ERROR_MESSAGE CHAR(255);
h_rc NUMBER :=0;
h_rtn NUMBER :=0;
BEGIN
-- h_rtn := FUN_HISTORY_INS(v_year, v_manage_no, v_gsuser);
BEGIN
UPDATE PENALTY_DETAIL_INFO
SET SEIZURE_WRONG_ID = v_wrong_id,
SEIZURE_WRONG_DATE = TO_DATE(v_wrong_date,'YYYYMMDD'),
SEIZURE_WRONG_REASON = v_wrong_reason,
NOTICE_ID = '12',
SEIZURE_ID = '02',
UPDATE_DATE = SYSDATE,
UPDATER = v_gsuser
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_manage_no;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE PENALTY_DETAIL_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
h_rtn := FUN_HISTORY_INS_re(v_year, v_manage_no, v_gsuser);
COMMIT;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE START Error !!';
ROLLBACK WORK;
END SP_SEIZURE_WRONG_INSERT;
/*
** 고지불가
*/
PROCEDURE SP_NOTICE_WRONG_INSERT
(
v_year IN CHAR,
v_manage_no IN NUMBER,
v_wrong_id IN CHAR,
v_wrong_date IN CHAR,
v_wrong_reason IN VARCHAR2,
v_gsuser IN VARCHAR2
)
IS
ERROR_CODE NUMBER :=0;
ERROR_MESSAGE CHAR(255);
h_rc NUMBER :=0;
h_rtn NUMBER :=0;
BEGIN
-- h_rtn := FUN_HISTORY_INS(v_year, v_manage_no, v_gsuser);
BEGIN
UPDATE PENALTY_DETAIL_INFO
SET NOTICE_ID = '02', -- '고지불가' 처리
NOTICE_WRONG_ID = v_wrong_id,
NOTICE_WRONG_DATE = TO_DATE(v_wrong_date,'YYYYMMDD'),
NOTICE_WRONG_REASON = v_wrong_reason,
UPDATE_DATE = SYSDATE,
UPDATER = v_gsuser
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_manage_no;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE PENALTY_DETAIL_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
h_rtn := FUN_HISTORY_INS_re(v_year, v_manage_no, v_gsuser);
COMMIT;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE START Error !!';
ROLLBACK WORK;
END SP_NOTICE_WRONG_INSERT;
/*
** 고지가능
*/
PROCEDURE SP_NOTICE_INSERT
(
v_year IN CHAR,
v_manage_no IN NUMBER,
v_choose_id IN CHAR,
v_choose_date IN CHAR,
v_gsuser IN VARCHAR2
)
IS
ERROR_CODE NUMBER :=0;
ERROR_MESSAGE CHAR(255);
h_rc NUMBER :=0;
h_rtn NUMBER :=0;
BEGIN
-- h_rtn := FUN_HISTORY_INS(v_year, v_manage_no, v_gsuser);
BEGIN
UPDATE PENALTY_DETAIL_INFO
SET NOTICE_ID = '01',
NOTICE_WRONG_ID = '99',
NOTICE_CHOOSE_ID = v_choose_id,
NOTICE_CHOOSE_DATE = TO_DATE(v_choose_date,'YYYYMMDD'),
UPDATE_DATE = SYSDATE,
UPDATER = v_gsuser
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_manage_no;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE PENALTY_DETAIL_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
h_rtn := FUN_HISTORY_INS_re(v_year, v_manage_no, v_gsuser);
COMMIT;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE START Error !!';
ROLLBACK WORK;
END SP_NOTICE_INSERT;
PROCEDURE SP_GET_SEND_INFO
(
v_year IN CHAR,
v_manage_no IN NUMBER,
v_motion_id IN CHAR,
v_send_date OUT SEND_INFO.SEND_DATE%TYPE,
v_send_no OUT NUMBER
)
IS
BEGIN
BEGIN
SELECT MAX(SEND_DATE), MAX(SEND_NO)
INTO v_send_date, v_send_no
FROM SEND_INFO
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_manage_no
AND MOTION_ID = v_motion_id
AND RETURN_KBN = '1';
EXCEPTION WHEN OTHERS THEN
v_send_date := ' ';
v_send_no := 0;
END;
END SP_GET_SEND_INFO;
/*
** 기본사항
*/
PROCEDURE SP_GET_BASIC
(
v_year IN CHAR,
v_mngno IN NUMBER,
v_send_date OUT CHAR, --부과예고 발송일자
v_send_date2 OUT CHAR, --1차고지서 발송일자
v_send_date3 OUT CHAR, --2차고지서 발송일자
v_send_date4 OUT CHAR, --2차반복고지 발송일자
v_send_date5 OUT CHAR, --압류촉탁서 발송일자
v_send_date6 OUT CHAR, --압류처리일자
v_send_date7 OUT CHAR, --2차고지서 재고지일자
v_notice_id OUT VARCHAR2,--고지취소건의구분
v_notice_reason OUT VARCHAR2,--고지취소건의사유
v_send_date8 OUT CHAR, --과태료납부처리일자
v_send_date9 OUT CHAR, --부과예고반송일자
v_send_date10 OUT CHAR, --1차고지서반송일자
v_send_date11 OUT CHAR, --2차고지서반송일자
v_send_date12 OUT CHAR, --압류촉탁서반송일자
v_send_date13 OUT CHAR, --압류해지처리일자
v_seizure_id OUT VARCHAR2,--압류처리불가구분
v_return_id OUT VARCHAR2,--1차고지서반송사유
v_return_id2 OUT VARCHAR2 --2차고지서반송사유
)
IS
BEGIN
-- 부과예고발송일자
BEGIN
SELECT TO_CHAR(SEND_DATE,'YYYY/MM/DD')
INTO v_send_date
FROM LEVY_SEND_INFO A,
PENALTY_DETAIL_INFO B
WHERE B.PENALTY_MANAGE_YEAR = v_year
AND B.PENALTY_SEQNO = v_mngno
AND B.LEVY_MANAGE_YEAR = A.LEVY_MANAGE_YEAR
AND B.LEVY_SEQNO = A.LEVY_SEQNO ;
--AND SEND_NO = 1;
EXCEPTION WHEN OTHERS THEN
v_send_date := ' ';
END;
-- 1차고지발송일자
BEGIN
SELECT TO_CHAR(SEND_DATE,'YYYY/MM/DD')
INTO v_send_date2
FROM SEND_INFO
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_mngno
AND MOTION_ID = '31' ;
--AND SEND_NO = 1;
EXCEPTION WHEN OTHERS THEN
v_send_date2 := ' ';
END;
-- 2차고지발송일자
BEGIN
SELECT TO_CHAR(SEND_DATE,'YYYY/MM/DD')
INTO v_send_date3
FROM SEND_INFO
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_mngno
AND MOTION_ID = '41' ;
--AND SEND_NO = 1;
EXCEPTION WHEN OTHERS THEN
v_send_date3 := ' ';
END;
-- 2차반복고지발송일자
BEGIN
SELECT TO_CHAR(SEND_DATE,'YYYY/MM/DD')
INTO v_send_date4
FROM SEND_INFO
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_mngno
AND MOTION_ID = '45' ;
--AND SEND_NO = 1;
EXCEPTION WHEN OTHERS THEN
v_send_date4 := ' ';
END;
-- 압류촉탁서발송일자
BEGIN
SELECT TO_CHAR(SEND_DATE,'YYYY/MM/DD')
INTO v_send_date5
FROM SEND_INFO
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_mngno
AND MOTION_ID = '71' ;
--AND SEND_NO = 1;
EXCEPTION WHEN OTHERS THEN
v_send_date5 := ' ';
END;
-- 2차고지재고지발송일자
BEGIN
SELECT TO_CHAR(SEND_DATE,'YYYY/MM/DD')
INTO v_send_date7
FROM SEND_INFO
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_mngno
AND MOTION_ID = '49' ;
--AND SEND_NO = 1;
EXCEPTION WHEN OTHERS THEN
v_send_date7 := ' ';
END;
-- 압류처리일자
-- 압류해지처리일자
BEGIN
SELECT TO_CHAR(SEIZURE_DATE,'YYYY/MM/DD'),
TO_CHAR(SEIZURE_TERMI_DATE,'YYYY/MM/DD')
INTO v_send_date6,
v_send_date13
FROM PENALTY_DETAIL_INFO
WHERE PENALTY_MANAGE_YEAR = v_year
AND PENALTY_SEQNO = v_mngno;
EXCEPTION WHEN OTHERS THEN
v_send_date6 := ' ';
v_send_date13 := ' ';
END;
-- 고지불가건의구분
-- 고지불가건의사유
BEGIN
SELECT B.NOTICE_WRONG_FULL_NAME,
A.NOTICE_WRONG_REASON
INTO v_notice_id,
v_notice_reason
FROM PENALTY_DETAIL_INFO A,
NOTICE_WRONG_CODE_INFO B
WHERE A.NOTICE_WRONG_ID = B.NOTICE_WRONG_ID
AND A.PENALTY_MANAGE_YEAR = v_year
AND A.PENALTY_SEQNO = v_mngno
AND A.NOTICE_WRONG_ID = '02';
EXCEPTION WHEN OTHERS THEN
v_notice_id := ' ';
v_notice_reason := ' ';
END;
-- 부과예고반송일자
BEGIN
SELECT TO_CHAR(RETUEN_DATE,'YYYY/MM/DD')
INTO v_send_date9
FROM LEVY_RETURN_INFO A,
LEVY_SEND_INFO B,
PENALTY_DETAIL_INFO C
WHERE C.PENALTY_MANAGE_YEAR = v_year
AND C.PENALTY_SEQNO = v_mngno
AND C.LEVY_MANAGE_YEAR = A.LEVY_MANAGE_YEAR
AND C.LEVY_SEQNO = A.LEVY_SEQNO
AND A.LEVY_MANAGE_YEAR = B.LEVY_MANAGE_YEAR
AND A.LEVY_SEQNO = B.LEVY_SEQNO
AND A.SEND_DATE = B.SEND_DATE
AND A.SEND_NO = B.SEND_NO ;
--AND SEND_NO = 1;
EXCEPTION WHEN OTHERS THEN
v_send_date9 := ' ';
END;
-- 1차고지반송일자
BEGIN
SELECT TO_CHAR(A.RETUEN_DATE,'YYYY/MM/DD'),
B.RETURN_REASON_FULL_NAME
INTO v_send_date10,
v_return_id
FROM RETURN_INFO A,
RETURN_REASON_CODE_INFO B,
SEND_INFO C
WHERE A.PENALTY_MANAGE_YEAR = v_year
AND A.PENALTY_SEQNO = v_mngno
AND A.MOTION_ID = '32'
AND A.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR
AND A.PENALTY_SEQNO = C.PENALTY_SEQNO
AND A.SEND_DATE = C.SEND_DATE
AND A.SEND_NO = C.SEND_NO
AND A.RETURN_REASON_ID = B.RETURN_REASON_ID ;
--AND A.SEND_NO = 1;
EXCEPTION WHEN OTHERS THEN
v_send_date10 := ' ';
v_return_id := ' ';
END;
-- 2차고지반송일자
BEGIN
SELECT TO_CHAR(A.RETUEN_DATE,'YYYY/MM/DD'),
B.RETURN_REASON_FULL_NAME
INTO v_send_date11,
v_return_id2
FROM RETURN_INFO A,
RETURN_REASON_CODE_INFO B,
SEND_INFO C
WHERE A.PENALTY_MANAGE_YEAR = v_year
AND A.PENALTY_SEQNO = v_mngno
AND A.MOTION_ID = '42'
AND A.PENALTY_MANAGE_YEAR = C.PENALTY_MANAGE_YEAR
AND A.PENALTY_SEQNO = C.PENALTY_SEQNO
AND A.SEND_DATE = C.SEND_DATE
AND A.SEND_NO = C.SEND_NO
AND A.RETURN_REASON_ID = B.RETURN_REASON_ID ;
--AND A.SEND_NO = 1;
EXCEPTION WHEN OTHERS THEN
v_send_date11 := ' ';
v_return_id2 := ' ';
END;
-- 압류촉탁반송일자
BEGIN
SELECT TO_CHAR(A.RETUEN_DATE,'YYYY/MM/DD')
INTO v_send_date12
FROM RETURN_INFO A,
SEND_INFO B
WHERE A.PENALTY_MANAGE_YEAR = v_year
AND A.PENALTY_SEQNO = v_mngno
AND A.MOTION_ID = '71'
AND A.PENALTY_MANAGE_YEAR = B.PENALTY_MANAGE_YEAR
AND A.PENALTY_SEQNO = B.PENALTY_SEQNO
AND A.SEND_DATE = B.SEND_DATE
AND A.SEND_NO = B.SEND_NO ;
--AND SEND_NO = 1;
EXCEPTION WHEN OTHERS THEN
v_send_date12 := ' ';
END;
END SP_GET_BASIC;
END Pac_Get_Tfc000e;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TFA007Q AS
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 전체 건수 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
FUNCTION FUN_TFA007Q_CNT(v_car_no IN VARCHAR2) RETURN NUMBER
IS
v_return_cnt NUMBER := 0;
BEGIN
begin
SELECT NVL(COUNT(C.CAR_NO), 0)
INTO v_return_cnt
FROM PENALTY_HEAD_INFO B,
LEVY_TARGET_INFO C
WHERE B.CAR_NO = C.CAR_NO
AND B.OWNER = C.OWNER
AND B.RESIDENT_NO = C.RESIDENT_NO
AND B.RESIDENT_DATE = C.RESIDENT_DATE
AND C.CAR_NO LIKE v_car_no;
return v_return_cnt;
EXCEPTION when NO_DATA_FOUND THEN v_return_cnt := 0;
END;
END FUN_TFA007Q_CNT;
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** 일자별 소계 **
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
PROCEDURE SP_TFA007Q(
v_row IN NUMBER,
v_car_no IN VARCHAR2,
out_data1 OUT VARCHAR2,
out_data2 OUT VARCHAR2,
out_data3 OUT VARCHAR2,
out_data4 OUT VARCHAR2,
out_data5 OUT VARCHAR2,
out_data6 OUT VARCHAR2,
out_data7 OUT VARCHAR2,
out_data8 OUT VARCHAR2,
out_data9 OUT VARCHAR2,
out_data10 OUT VARCHAR2,
out_data11 OUT VARCHAR2,
out_data12 OUT VARCHAR2,
out_data13 OUT VARCHAR2,
out_data14 OUT VARCHAR2,
out_data15 OUT VARCHAR2,
out_data16 OUT VARCHAR2,
out_data17 OUT VARCHAR2,
out_data18 OUT VARCHAR2,
OUT_DATA19 OUT VARCHAR2,
OUT_DATA20 OUT NUMBER
)
IS
v_date VARCHAR2(20) := '';
CURSOR CUR IS
SELECT H.OWNER as owner,
to_char(H.RESIDENT_DATE, 'yyyymmdd') as resident_date,
RTRIM(H.ADDRESS_NAME) || ' ' || RTRIM(H.ADDRESS_NUMBER) as address_full_name,
L.year || L.month || L.day || L.work_times as yyyymmddhimmss,
L.fare_office_id as fare_office_id,
L.booth_id as booth_id,
L.worker_id as worker_id,
H.resident_no as resident_no,
H.post_no1 as post_no1,
H.post_no2 as post_no2,
H.car_type_id as car_type_id,
H.car_no as car_no,
L.LEVY_MANAGE_YEAR AS LEVY_YEAR,
L.LEVY_SEQNO AS LEVY_SEQNO
FROM PENALTY_HEAD_INFO H,
LEVY_TARGET_INFO L
WHERE 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.CAR_NO LIKE v_car_no;
TFA007Q_REC1 CUR%ROWTYPE;
v_reader char(6) := '';
v_cars_stop_picture_file varchar2(50) := '';
BEGIN
FOR TFA007Q_REC1 IN CUR LOOP
out_data1 := TFA007Q_REC1.owner;
out_data2 := substr(TFA007Q_REC1.resident_date,1, 4) || '/'
|| substr(TFA007Q_REC1.resident_date,5, 2)|| '/' || substr(TFA007Q_REC1.resident_date,7, 2);
out_data3 := TFA007Q_REC1.address_full_name;
v_date := TFA007Q_REC1.yyyymmddhimmss;
v_date := substr(v_date, 1,4) || '/' || substr(v_date, 5,2) || '/' || substr(v_date, 7, 2)
|| ' ' || substr(v_date, 9,2) || ':' || substr(v_date, 11,2) || ':' || substr(v_date,13, 2);
SELECT READER, CARS_STOP_PICTURE_FILE
INTO v_reader, v_cars_stop_picture_file
FROM DEFAULT_FARE_READ_INFO
WHERE FARE_OFFICE_ID = TFA007Q_REC1.fare_office_id
AND BOOTH_ID = TFA007Q_REC1.booth_id
AND year || month || day || work_times = TFA007Q_REC1.yyyymmddhimmss;
out_data4 := v_date;
out_data5 := FUN_TUNNEL_C(rtrim(TFA007Q_REC1.fare_office_id));
out_data6 := FUN_BOOTH_C(rtrim(TFA007Q_REC1.fare_office_id), rtrim(TFA007Q_REC1.booth_id));
out_data7 := FUN_GET_WORKER(rtrim(TFA007Q_REC1.worker_id));
out_data8 := FUN_GET_MANAGER(rtrim(v_reader));
out_data9 := TFA007Q_REC1.resident_no;
out_data10 := TFA007Q_REC1.post_no1;
out_data11 := TFA007Q_REC1.post_no2;
out_data12 := FUN_CARS_CODE_INFO_C(rtrim(TFA007Q_REC1.car_type_id));
out_data13 := rtrim(TFA007Q_REC1.car_no);
out_data14 := rtrim(TFA007Q_REC1.worker_id);
out_data15 := rtrim(TFA007Q_REC1.fare_office_id);
out_data16 := rtrim(TFA007Q_REC1.booth_id);
out_data17 := rtrim(TFA007Q_REC1.yyyymmddhimmss);
out_data18 := rtrim(v_cars_stop_picture_file);
OUT_DATA19 := RTRIM(TFA007Q_REC1.LEVY_YEAR);
OUT_DATA20 := TFA007Q_REC1.LEVY_SEQNO;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFA007Q;
END PAC_GET_TFA007Q;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TFA002U AS
/*
** ???? : ?????(v_mction_kbn)? ?? ?? ???? ??
*/
FUNCTION FUN_TFA002U_CNT(v_mction_kbn IN CHAR,v_from_date IN CHAR, v_to_date IN CHAR)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
/* 1차 : 미납차량 판독 후 처음생성되는 자료 */
IF v_mction_kbn = '1' THEN
BEGIN
SELECT COUNT(a.car_no)
INTO v_rc
FROM DEFAULT_FARE_READ_INFO A,
FARE_TERMINAL_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||A.MONTH||A.DAY = B.YEAR||B.MONTH||B.DAY
AND A.WORK_TIMES = B.WORK_TIMES
AND A.YEAR||A.MONTH||A.DAY BETWEEN v_from_date AND v_to_date
AND A.READ_RESULT_ID = '02' -- 판독 결과 02:고지
AND A.CARS_DATA_KBN = '0' -- 차적자료 생성여부 : 0:미생성 -- ↙ 외국인차량 0:국내차량
AND B.FOREIGN_CARS_KBN = '0'
AND B.DELETE_YN = '0';
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
/* 2차 : 과태료 1차 중인 대상 */
ELSIF v_mction_kbn = '2' THEN
BEGIN
SELECT /* index(overfare_info xif12overfare_info) */
COUNT(*)
INTO v_rc
FROM PENALTY_DETAIL_INFO A,
PENALTY_HEAD_INFO B
WHERE A.CAR_NO = B.CAR_NO
AND A.RESIDENT_NO = B.RESIDENT_NO
AND A.RESIDENT_DATE = B.RESIDENT_DATE
AND A.OWNER = B.OWNER
AND A.YEAR||A.MONTH||A.DAY BETWEEN v_from_date AND v_to_date
AND A.MOTION_ID LIKE '3%'
ORDER BY A.CAR_NO, A.YEAR||A.MONTH||A.DAY, A.WORK_TIMES ;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
/* 3차 : 과태료 2차 작업중인 대상 */
ELSIF v_mction_kbn = '3' THEN
BEGIN
SELECT /* index(penalty_detail_info sys_c005919) */
COUNT(*)
INTO v_rc
FROM PENALTY_DETAIL_INFO A,
PENALTY_HEAD_INFO B
WHERE A.CAR_NO = B.CAR_NO
AND A.RESIDENT_NO = B.RESIDENT_NO
AND A.RESIDENT_DATE = B.RESIDENT_DATE
AND A.OWNER = B.OWNER
AND A.YEAR||A.MONTH||A.DAY BETWEEN v_from_date AND v_to_date
AND A.MOTION_ID LIKE '4%'
ORDER BY A.CAR_NO,A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES ;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
/* 2차 작업중에 반송된 대상만.. */
ELSIF v_mction_kbn = '4' THEN
BEGIN
SELECT /* index(penalty_detail_info sys_c005919) */
COUNT(*)
INTO v_rc
FROM PENALTY_DETAIL_INFO A,
PENALTY_HEAD_INFO B
WHERE A.CAR_NO = B.CAR_NO
AND A.RESIDENT_NO = B.RESIDENT_NO
AND A.RESIDENT_DATE = B.RESIDENT_DATE
AND A.OWNER = B.OWNER
AND A.YEAR||A.MONTH||A.DAY BETWEEN v_from_date AND v_to_date
AND A.MOTION_ID IN ('42','44','46','48') -- 반송
AND A.RECEIPT_YN = '0' -- 미 수납
ORDER BY A.CAR_NO,A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
/* 부과예고 대상자 */
ELSIF v_mction_kbn = '5' THEN
BEGIN
SELECT /* index(default_fare_read_info sys_c007154) */
COUNT(*)
INTO v_rc
FROM DEFAULT_FARE_READ_INFO
WHERE YEAR||MONTH||DAY BETWEEN v_from_date AND v_to_date
AND READ_RESULT_ID = '04'
AND CARS_DATA_KBN = '0';
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
/* ????? :????? ????? from ~ to ?????? ??? ??? ???? */
ELSE
BEGIN
SELECT /* index(overfare_info xif12overfare_info) */
COUNT(*)
INTO v_rc
FROM OVERFARE_INFO
WHERE YEAR||MONTH||DAY BETWEEN v_from_date AND v_to_date
AND OVERFARE_KBN = '1' -- 환급구분 : 1(입금), 2(출금)
AND TRIM(CAR_NO) IS NOT NULL
ORDER BY YEAR||MONTH||DAY;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
END IF;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_TFA002U_CNT;
/*
** 1??? :? ? ?
*/
PROCEDURE SP_TFA002U_01( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_date OUT VARCHAR2,
v_pass_time OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_tu OUT char,
v_bo OUT char,
v_worker_id OUT char )
IS
CURSOR CUR IS
SELECT distinct(A.CAR_NO) F_CARNO,
A.CAR_TYPE_NAME F_CAR_TYPE_NAME,
A.YEAR||A.MONTH||A.DAY F_PASS_DATE,
A.WORK_TIMES F_PASS_TIME,
A.FARE_OFFICE_ID F_FARE_OFFICE_ID,
A.BOOTH_ID F_BOOTH_ID,
FUN_GET_WORKER(A.WORKER_ID) F_WORKER,
A.FARE_OFFICE_ID f_tu,
A.BOOTH_ID f_bo,
A.WORKER_ID f_worker_id
FROM DEFAULT_FARE_READ_INFO A,
FARE_TERMINAL_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||A.MONTH||A.DAY = B.YEAR||B.MONTH||B.DAY
AND A.WORK_TIMES = B.WORK_TIMES
AND A.YEAR||A.MONTH||A.DAY BETWEEN v_from_date AND v_to_date
AND A.READ_RESULT_ID = '02' -- 판독 결과 02:고지
AND A.CARS_DATA_KBN = '0' -- 차적자료 생성여부 : 0:미생성 -- ↙ 외국인차량 0:국내차량
AND B.FOREIGN_CARS_KBN = '0'
AND B.DELETE_YN = '0';
TFA002U_01_REC CUR%ROWTYPE;
BEGIN
FOR TFA002U_01_REC IN CUR LOOP
v_car_no := TFA002U_01_REC.F_CARNO;
v_car_type := TFA002U_01_REC.F_CAR_TYPE_NAME;
v_pass_date := TFA002U_01_REC.F_PASS_DATE;
v_pass_time := TFA002U_01_REC.F_PASS_TIME;
v_fare_office := FUN_GET_FAREOFFICE(TFA002U_01_REC.F_FARE_OFFICE_ID);
v_booth := FUN_GET_BOOTH(TFA002U_01_REC.F_FARE_OFFICE_ID, TFA002U_01_REC.F_BOOTH_ID);
v_worker := TFA002U_01_REC.F_WORKER;
v_tu := TFA002U_01_REC.f_tu;
v_bo := TFA002U_01_REC.f_bo;
v_worker_id := TFA002U_01_REC.f_worker_id;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFA002U_01;
/*
** 2??? :? ? ?
*/
PROCEDURE SP_TFA002U_02( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_date OUT VARCHAR2,
v_pass_time OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_tunnel2 OUT char,
v_booth2 OUT char )
IS
CURSOR CUR IS
SELECT A.CAR_NO F_CARNO,
B.CAR_TYPE_NAME F_CAR_TYPE_NAME,
A.YEAR||A.MONTH||A.DAY F_PASS_DATE,
A.WORK_TIMES F_PASS_TIME,
FUN_GET_FAREOFFICE(A.FARE_OFFICE_ID) F_FARE_OFFICE_ID,
FUN_GET_BOOTH(A.FARE_OFFICE_ID,A.BOOTH_ID) F_BOOTH_ID,
FUN_GET_WORKER(A.WORKER_ID) F_WORKER,
A.FARE_OFFICE_ID f_tunnel,
A.BOOTH_ID f_booth
FROM PENALTY_DETAIL_INFO A,
PENALTY_HEAD_INFO B
WHERE A.CAR_NO = B.CAR_NO
AND A.RESIDENT_NO = B.RESIDENT_NO
AND A.YEAR||A.MONTH||A.DAY BETWEEN v_from_date AND v_to_date
AND A.MOTION_ID LIKE '3%' -- ???? 1???? ???? ??
ORDER BY A.CAR_NO, A.YEAR||A.MONTH||A.DAY, A.WORK_TIMES;
TFA002U_02_REC CUR%ROWTYPE;
BEGIN
FOR TFA002U_02_REC IN CUR LOOP
v_car_no := TFA002U_02_REC.F_CARNO;
v_car_type := TFA002U_02_REC.F_CAR_TYPE_NAME;
v_pass_date := TFA002U_02_REC.F_PASS_DATE;
v_pass_time := TFA002U_02_REC.F_PASS_TIME;
v_fare_office := TFA002U_02_REC.F_FARE_OFFICE_ID;
v_booth := TFA002U_02_REC.F_BOOTH_ID;
v_worker := TFA002U_02_REC.F_WORKER;
v_tunnel2 := TFA002U_02_REC.f_tunnel;
v_booth2 := TFA002U_02_REC.f_booth;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFA002U_02;
/*
** 3??? :? ? ?
*/
PROCEDURE SP_TFA002U_03( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_date OUT VARCHAR2,
v_pass_time OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_tunnel2 OUT char,
v_booth2 OUT char )
IS
CURSOR CUR IS
SELECT A.CAR_NO F_CARNO,
B.CAR_TYPE_NAME F_CAR_TYPE_NAME,
A.YEAR||A.MONTH||A.DAY F_PASS_DATE,
A.WORK_TIMES F_PASS_TIME,
FUN_GET_FAREOFFICE(A.FARE_OFFICE_ID) F_FARE_OFFICE_ID,
FUN_GET_BOOTH(A.FARE_OFFICE_ID,A.BOOTH_ID) F_BOOTH_ID,
FUN_GET_WORKER(A.WORKER_ID) F_WORKER,
A.FARE_OFFICE_ID f_tunnel,
A.BOOTH_ID f_booth
FROM PENALTY_DETAIL_INFO A,
PENALTY_HEAD_INFO B
WHERE A.CAR_NO = B.CAR_NO
AND A.RESIDENT_NO = B.RESIDENT_NO
AND A.YEAR||A.MONTH||A.DAY BETWEEN v_from_date AND v_to_date
AND A.MOTION_ID LIKE '4%' --3??? : ???? 2???? ???? ??.
ORDER BY A.CAR_NO,A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES ;
TFA002U_03_REC CUR%ROWTYPE;
BEGIN
FOR TFA002U_03_REC IN CUR LOOP
v_car_no := TFA002U_03_REC.F_CARNO;
v_car_type := TFA002U_03_REC.F_CAR_TYPE_NAME;
v_pass_date := TFA002U_03_REC.F_PASS_DATE;
v_pass_time := TFA002U_03_REC.F_PASS_TIME;
v_fare_office := TFA002U_03_REC.F_FARE_OFFICE_ID;
v_booth := TFA002U_03_REC.F_BOOTH_ID;
v_worker := TFA002U_03_REC.F_WORKER;
v_tunnel2 := TFA002U_03_REC.f_tunnel;
v_booth2 := TFA002U_03_REC.f_booth;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFA002U_03;
/*
** ??? (2??? + ??) :? ? ?
*/
PROCEDURE SP_TFA002U_04( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_date OUT VARCHAR2,
v_pass_time OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_tunnel2 OUT char,
v_booth2 OUT char )
IS
CURSOR CUR IS
SELECT A.CAR_NO F_CARNO,
B.CAR_TYPE_NAME F_CAR_TYPE_NAME,
A.YEAR||A.MONTH||A.DAY F_PASS_DATE,
A.WORK_TIMES F_PASS_TIME,
FUN_GET_FAREOFFICE(A.FARE_OFFICE_ID) F_FARE_OFFICE_ID,
FUN_GET_BOOTH(A.FARE_OFFICE_ID,A.BOOTH_ID) F_BOOTH_ID,
FUN_GET_WORKER(A.WORKER_ID) F_WORKER,
A.FARE_OFFICE_ID f_tunnel,
A.BOOTH_ID f_booth
FROM PENALTY_DETAIL_INFO A,
PENALTY_HEAD_INFO B
WHERE A.CAR_NO = B.CAR_NO
AND A.RESIDENT_NO = B.RESIDENT_NO
AND A.YEAR||A.MONTH||A.DAY BETWEEN v_from_date AND v_to_date
AND A.MOTION_ID IN ('42','44','46','48') -- 2? ???
AND A.RECEIPT_YN = '0' --???
ORDER BY A.CAR_NO,A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES;
TFA002U_04_REC CUR%ROWTYPE;
BEGIN
FOR TFA002U_04_REC IN CUR LOOP
v_car_no := TFA002U_04_REC.F_CARNO;
v_car_type := TFA002U_04_REC.F_CAR_TYPE_NAME;
v_pass_date := TFA002U_04_REC.F_PASS_DATE;
v_pass_time := TFA002U_04_REC.F_PASS_TIME;
v_fare_office := TFA002U_04_REC.F_FARE_OFFICE_ID;
v_booth := TFA002U_04_REC.F_BOOTH_ID;
v_worker := TFA002U_04_REC.F_WORKER;
v_tunnel2 := TFA002U_04_REC.f_tunnel;
v_booth2 := TFA002U_04_REC.f_booth;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFA002U_04;
/*
** ?????? :? ? ?
*/
PROCEDURE SP_TFA002U_05( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_date OUT VARCHAR2,
v_pass_time OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_tunnel2 OUT char,
v_booth2 OUT char,
v_worker_id OUT char )
IS
CURSOR CUR IS
SELECT CAR_NO F_CARNO,
CAR_TYPE_NAME F_CAR_TYPE_NAME,
YEAR||MONTH||DAY F_PASS_DATE,
WORK_TIMES F_PASS_TIME,
FUN_GET_FAREOFFICE(FARE_OFFICE_ID) F_FARE_OFFICE_ID,
FUN_GET_BOOTH(FARE_OFFICE_ID,BOOTH_ID) F_BOOTH_ID,
FUN_GET_WORKER(WORKER_ID) F_WORKER,
FARE_OFFICE_ID f_tunnel,
BOOTH_ID f_booth,
WORKER_ID f_worker_Id
FROM DEFAULT_FARE_READ_INFO
WHERE YEAR||MONTH||DAY BETWEEN v_from_date AND v_to_date
AND READ_RESULT_ID = '04' -- ↙ 차적자료 생성여부 : 0:미생성
AND CARS_DATA_KBN = '0';
TFA002U_05_REC CUR%ROWTYPE;
BEGIN
FOR TFA002U_05_REC IN CUR LOOP
v_car_no := TFA002U_05_REC.F_CARNO;
v_car_type := TFA002U_05_REC.F_CAR_TYPE_NAME;
v_pass_date := TFA002U_05_REC.F_PASS_DATE;
v_pass_time := TFA002U_05_REC.F_PASS_TIME;
v_fare_office := TFA002U_05_REC.F_FARE_OFFICE_ID;
v_booth := TFA002U_05_REC.F_BOOTH_ID;
v_worker := TFA002U_05_REC.F_WORKER;
v_tunnel2 := TFA002U_05_REC.f_tunnel;
v_booth2 := TFA002U_05_REC.f_booth;
v_worker_id := TFA002U_05_REC.f_worker_Id;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFA002U_05;
/*
** ????? :? ? ?
*/
PROCEDURE SP_TFA002U_06( v_row IN NUMBER,
v_from_date IN CHAR,
v_to_date IN CHAR,
v_car_no OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_pass_date OUT VARCHAR2,
v_pass_time OUT VARCHAR2,
v_fare_office OUT VARCHAR2,
v_booth OUT VARCHAR2,
v_worker OUT VARCHAR2,
v_tunnel2 OUT char,
v_booth2 OUT char )
IS
CURSOR CUR IS
SELECT CAR_NO F_CARNO,
FUN_GET_CARTYPE(CAR_NO) F_CAR_TYPE_NAME,
YEAR||MONTH||DAY F_PASS_DATE,
WORK_STT_TIME F_PASS_TIME,
FUN_GET_FAREOFFICE(FARE_OFFICE_ID) F_FARE_OFFICE_ID,
FUN_GET_BOOTH(FARE_OFFICE_ID,BOOTH_ID) F_BOOTH_ID,
FUN_GET_WORKER(WORKER_ID) F_WORKER,
FARE_OFFICE_ID f_tunnel,
BOOTH_ID f_booth
FROM OVERFARE_INFO
WHERE YEAR||MONTH||DAY BETWEEN v_from_date AND v_to_date
AND OVERFARE_KBN = '1'
AND TRIM(CAR_NO) IS NOT NULL
ORDER BY YEAR||MONTH||DAY;
TFA002U_06_REC CUR%ROWTYPE;
BEGIN
FOR TFA002U_06_REC IN CUR LOOP
v_car_no := TFA002U_06_REC.F_CARNO;
v_car_type := TFA002U_06_REC.F_CAR_TYPE_NAME;
v_pass_date := TFA002U_06_REC.F_PASS_DATE;
v_pass_time := TFA002U_06_REC.F_PASS_TIME;
v_fare_office := TFA002U_06_REC.F_FARE_OFFICE_ID;
v_booth := TFA002U_06_REC.F_BOOTH_ID;
v_worker := TFA002U_06_REC.F_WORKER;
v_tunnel2 := TFA002U_06_REC.f_tunnel;
v_booth2 := TFA002U_06_REC.f_booth;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFA002U_06;
END PAC_GET_TFA002U;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.Pac_Get_Tfa001e AS
/*
** 전체건수
*/
FUNCTION FUN_TFA001E_CNT(v_office IN CHAR,v_booth IN CHAR,v_exam_flag IN CHAR,v_stt_date IN CHAR,v_end_date IN CHAR)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM DEFAULT_FARE_READ_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth
AND READ_KBN LIKE v_exam_flag
AND YEAR||MONTH||DAY BETWEEN v_stt_date AND v_end_date
AND CARS_DATA_KBN IN ('0', '2')
ORDER BY YEAR||MONTH||DAY;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_TFA001E_CNT;
/*
** 미판독차량 전체건수
*/
FUNCTION FUN_NOT_COMFIRM(v_office IN CHAR,v_booth IN CHAR,v_std_date IN CHAR)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM DEFAULT_FARE_READ_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth
AND READ_KBN = '0'
AND YEAR||MONTH||DAY <= v_std_date
ORDER BY YEAR||MONTH||DAY,
WORK_TIMES;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_NOT_COMFIRM;
/*
** 동일차량 전체건수
*/
FUNCTION FUN_SAME_CAR(v_carno IN CHAR)
RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
/*
SELECT COUNT(*)
INTO v_rc
FROM DEFAULT_FARE_READ_INFO
WHERE CAR_NO = v_carno
ORDER BY YEAR||MONTH||DAY;
*/
SELECT COUNT(*)
INTO v_rc
FROM DEFAULT_FARE_READ_INFO A,
PENALTY_DETAIL_INFO B
WHERE A.CAR_NO = B.CAR_NO
AND A.CAR_NO = v_carno;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_SAME_CAR;
/*
** 차량 DETAIL 정보
*/
PROCEDURE SP_GET_CARSINFO
(
v_office IN CHAR,
v_booth IN CHAR,
v_pass_date IN CHAR,
v_pass_time IN CHAR,
h_worker_id OUT VARCHAR2,
h_worker_name OUT VARCHAR2,
h_car_type OUT VARCHAR2,
h_looker OUT VARCHAR2,
h_looker_name OUT VARCHAR2,
h_move_pic OUT VARCHAR2,
h_stop_pic OUT VARCHAR2,
h_carno OUT VARCHAR2,
h_result_code OUT VARCHAR2,
h_levy_target OUT VARCHAR2,
h_free_reason OUT VARCHAR2,
h_not_comfirm OUT VARCHAR2,
h_etc OUT VARCHAR2
)
IS
BEGIN
SELECT A.WORKER_ID,
Fun_Get_Worker(A.WORKER_ID),
A.CAR_TYPE_NAME,
A.READER,
Fun_Get_Worker(A.READER),
A.CARS_MOVE_PICTURE_FILE,
A.CARS_STOP_PICTURE_FILE,
A.CAR_NO,
A.READ_RESULT_ID,
A.LAVY_NOTICE_ID,
A.EXEMPT_REASON_ID,
A.NOTCONFIRM_ID,
A.REMARKS
INTO h_worker_id,
h_worker_name,
h_car_type,
h_looker,
h_looker_name,
h_move_pic,
h_stop_pic,
h_carno,
h_result_code,
h_levy_target,
h_free_reason,
h_not_comfirm,
h_etc
FROM DEFAULT_FARE_READ_INFO A
WHERE A.FARE_OFFICE_ID = v_office
AND A.BOOTH_ID = v_booth
AND A.YEAR||A.MONTH||A.DAY = RTRIM(v_pass_date)
AND A.WORK_TIMES = RTRIM(v_pass_time); --차량번호를 모를 경우
EXCEPTION WHEN OTHERS THEN
h_worker_id := '';
h_worker_name := '';
h_car_type := '';
h_looker := '';
h_looker_name := '';
h_move_pic := '';
h_stop_pic := '';
h_carno := '';
h_result_code := '';
h_levy_target := '';
h_free_reason := '';
h_not_comfirm := '';
h_etc := '';
END SP_GET_CARSINFO;
/*
** 미납차량 판독 (from ~ to ): 김 성 운
*/
PROCEDURE SP_TFA001E
(
v_row IN NUMBER,
v_office IN CHAR,
v_booth IN CHAR,
v_exam_flag IN CHAR,
v_stt_date IN CHAR,
v_end_date IN CHAR,
h_pass_date OUT VARCHAR2,
h_pass_time OUT VARCHAR2,
h_office OUT VARCHAR2,
h_booth OUT VARCHAR2,
h_read_kbn OUT VARCHAR2,
h_read_id OUT VARCHAR2,
h_carno OUT VARCHAR2,
h_stop_pic OUT VARCHAR2,
h_move_pic OUT VARCHAR2,
h_foreign OUT VARCHAR2,
h_army OUT VARCHAR2
)
IS
CURSOR CUR IS
SELECT A.YEAR||A.MONTH||A.DAY f_a,
A.WORK_TIMES f_b,
A.FARE_OFFICE_ID f_c,
A.BOOTH_ID f_d,
A.READ_KBN f_e,
A.READ_RESULT_ID f_f,
A.CAR_NO f_g,
A.CARS_STOP_PICTURE_FILE f_h,
A.CARS_MOVE_PICTURE_FILE f_i,
B.FOREIGN_CARS_KBN f_j,
B.ARMY_CARS_KBN f_k
FROM DEFAULT_FARE_READ_INFO A,
FARE_TERMINAL_INFO B
WHERE A.FARE_OFFICE_ID LIKE v_office
AND A.BOOTH_ID LIKE v_booth
AND A.READ_KBN LIKE v_exam_flag
AND A.YEAR||A.MONTH||A.DAY BETWEEN v_stt_date AND v_end_date
AND A.CARS_DATA_KBN IN ('0', '2')
AND 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 A.WORK_TIMES = B.WORK_TIMES
ORDER BY A.YEAR||A.MONTH||A.DAY,A.WORK_TIMES;
TFA001E_REC CUR%ROWTYPE;
BEGIN
FOR TFA001E_REC IN CUR LOOP
h_pass_date := TFA001E_REC.f_a;
h_pass_time := TFA001E_REC.f_b;
h_office := TFA001E_REC.f_c;
h_booth := TFA001E_REC.f_d;
h_read_kbn := TFA001E_REC.f_e;
h_read_id := TFA001E_REC.f_f;
h_carno := TFA001E_REC.f_g;
h_stop_pic := TFA001E_REC.f_h;
h_move_pic := TFA001E_REC.f_i;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFA001E;
/*
** 미납차량 판독 ( 미판독차량 전체~ 입력일시 ): 김 성 운
*/
PROCEDURE SP_TFA001E_01
(
v_row IN NUMBER,
v_office IN CHAR,
v_booth IN CHAR,
v_std_date IN CHAR,
h_pass_date OUT VARCHAR2,
h_pass_time OUT VARCHAR2,
h_office OUT VARCHAR2,
h_booth OUT VARCHAR2,
h_read_kbn OUT VARCHAR2,
h_read_id OUT VARCHAR2,
h_carno OUT VARCHAR2,
h_stop_pic OUT VARCHAR2,
h_move_pic OUT VARCHAR2
)
IS
CURSOR CUR IS
SELECT YEAR||MONTH||DAY f_a,
WORK_TIMES f_b,
FARE_OFFICE_ID f_c,
BOOTH_ID f_d,
READ_KBN f_e,
READ_RESULT_ID f_f,
CAR_NO f_g,
CARS_STOP_PICTURE_FILE f_h,
CARS_MOVE_PICTURE_FILE f_i
FROM DEFAULT_FARE_READ_INFO
WHERE FARE_OFFICE_ID LIKE v_office
AND BOOTH_ID LIKE v_booth
AND READ_KBN = '0'
AND YEAR||MONTH||DAY <= v_std_date
ORDER BY YEAR||MONTH||DAY,WORK_TIMES;
TFA001E_REC CUR%ROWTYPE;
BEGIN
FOR TFA001E_REC IN CUR LOOP
h_pass_date := TFA001E_REC.f_a;
h_pass_time := TFA001E_REC.f_b;
h_office := TFA001E_REC.f_c;
h_booth := TFA001E_REC.f_d;
h_read_kbn := TFA001E_REC.f_e;
h_read_id := TFA001E_REC.f_f;
h_carno := TFA001E_REC.f_g;
h_stop_pic := TFA001E_REC.f_h;
h_move_pic := TFA001E_REC.f_i;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFA001E_01;
/*
** 미납차량 판독후 저장 : 김 성 운
*/
PROCEDURE SP_TFA001E_02
(
v_worker IN CHAR,
v_office IN CHAR,
v_booth IN CHAR,
v_pass_date IN CHAR,
v_pass_time IN CHAR,
v_looker_id IN CHAR,
v_car_type IN VARCHAR2,
h_result_code IN CHAR,
v_levy_target IN CHAR,
v_free_reason IN CHAR,
v_not_comfirm IN CHAR,
v_etc_info IN CHAR,
v_exam_flag IN CHAR,
v_move_pic IN VARCHAR2,
v_stop_pic IN VARCHAR2,
v_carno IN VARCHAR2,
v_seqno IN NUMBER
)
IS
ERROR_CODE NUMBER :=0;
ERROR_MESSAGE CHAR(255);
h_foreign_cars_kbn CHAR(1);
h_army_cars_kbn CHAR(1);
h_max_seqno NUMBER :=0;
h_cartype_id CHAR(1);
h_file_kind_id CHAR(2);
h_data_seqno VARCHAR2(10);
h_collect_id CHAR(2);
h_issue_id VARCHAR2(7);
h_inout_kbn CHAR(1);
h_levy_amt NUMBER :=0;
h_car_no VARCHAR2(20);
h_read_flag CHAR(1);
h_trans_yn CHAR(1);
h_decision_yn CHAR(1);
h_day_end_flag CHAR(1);
h_month_end_flag CHAR(1);
h_car_type_id CHAR(1);
pn_max_seqno NUMBER :=0;
BEGIN
-- 미납차량 판독정보UPDATE
BEGIN
UPDATE DEFAULT_FARE_READ_INFO
SET CAR_TYPE_NAME = RTRIM(v_car_type),
READ_KBN = '1', -- READ_KBN : 1이면 판독, 0이면 미판독
READING_DATE = SYSDATE,
READER = RTRIM(v_looker_id), -- 4BYTES (센타 근무원은 사번이 4자리이며, 요금소 징수원은 6자리이다.)
READ_RESULT_ID = h_result_code,
READING_REASON = NULL,
EXEMPT_REASON_ID = v_free_reason,
LAVY_NOTICE_ID = v_levy_target,
NOTCONFIRM_ID = v_not_comfirm,
REMARKS = RTRIM(v_etc_info),
UPDATE_DATE = SYSDATE,
UPDATER = RTRIM(v_looker_id),
CAR_NO = RTRIM(v_carno)
WHERE WORKER_ID = v_worker
AND FARE_OFFICE_ID = v_office
AND BOOTH_ID = v_booth
AND YEAR||MONTH||DAY = v_pass_date
AND WORK_TIMES = v_pass_time;
commit;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE 미납차량 판독정보UPDATE Error !!';
ROLLBACK;
RETURN;
END;
--요금단말정보UPDATE
BEGIN
-- v_exam_flag : 0 이면 일반차량, 1이면 미군차량, 2이면 SOFA차량
IF RTRIM(v_exam_flag) = '0' THEN
h_foreign_cars_kbn := '0'; -- h_foreign_cars_kbn : 0이면 국내차량, 1이면 외국인차량
h_army_cars_kbn := '0'; -- h_army_cars_kbn : 0이면 일반차량, 1이면 군용차량
ELSIF RTRIM(v_exam_flag) = '1' THEN
h_foreign_cars_kbn := '1';
h_army_cars_kbn := '0';
ELSE
h_foreign_cars_kbn := '0';
h_army_cars_kbn := '1';
END IF;
END;
BEGIN
SELECT NVL(MAX(NVL(seqno,0)),0)
INTO pn_max_seqno
FROM FARE_TERMINAL_INFO
WHERE WORKER_ID = v_worker
AND FARE_OFFICE_ID = v_office
AND BOOTH_ID = v_booth
AND YEAR||MONTH||DAY = v_pass_date
AND WORK_TIMES = v_pass_time;
END;
BEGIN
-- 삭제여부 flag를 '1'로 수정후
UPDATE FARE_TERMINAL_INFO
SET DELETE_YN = '1',
READ_FLAG = '1',
UPDATE_DATE = SYSDATE,
UPDATER = RTRIM(v_looker_id)
WHERE WORKER_ID = v_worker
AND FARE_OFFICE_ID = v_office
AND BOOTH_ID = v_booth
AND YEAR||MONTH||DAY = v_pass_date
AND WORK_TIMES = v_pass_time
AND SEQNO = v_seqno;
commit;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE 요금단말정보UPDATE Error !!';
ROLLBACK;
RETURN;
END;
BEGIN
INSERT INTO FARE_TERMINAL_INFO
( WORKER_ID, FARE_OFFICE_ID, BOOTH_ID, YEAR, MONTH, DAY,
WORK_TIMES, SEQNO, CAR_TYPE_ID, COLLECT_ID, IN_OUT_KBN, LEVY_AMOUNT,
READING_ID, FOREIGN_CARS_KBN,
ARMY_CARS_KBN, CARS_MOVE_PICTURE_FILE, CARS_STOP_PICTURE_FILE,
CAR_NO, READER, READING_DATE, READ_FLAG, TRANS_FILE_CREATE_YN,
DELETE_YN, DECISION_YN, DAY_END_FLAG, MONTH_END_FLAG, CREATE_DATE,
CREATER, UPDATE_DATE, UPDATER)
SELECT WORKER_ID, FARE_OFFICE_ID, BOOTH_ID, YEAR, MONTH, DAY,
WORK_TIMES, pn_max_seqno + 1, CAR_TYPE_ID, COLLECT_ID, IN_OUT_KBN, LEVY_AMOUNT,
'30', h_foreign_cars_kbn, h_army_cars_kbn, CARS_MOVE_PICTURE_FILE, CARS_STOP_PICTURE_FILE,
v_carno, v_looker_id, SYSDATE, '1', '0','0', '1', '0', '0',
SYSDATE, v_looker_id, SYSDATE, v_looker_id
FROM FARE_TERMINAL_INFO
WHERE WORKER_ID = v_worker
AND FARE_OFFICE_ID = v_office
AND BOOTH_ID = v_booth
AND YEAR||MONTH||DAY = v_pass_date
AND WORK_TIMES = v_pass_time
AND SEQNO = v_seqno;
commit;
DBMS_OUTPUT.PUT_LINE( '3번 성공');
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE 요금단말정보 INSERT Error !!';
DBMS_OUTPUT.PUT_LINE( ERROR_CODE );
ROLLBACK;
RETURN;
END;
-- COMMIT;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'PROCEDURE START Error !!';
ROLLBACK WORK;
RETURN;
END SP_TFA001E_02;
/*
** 동일차량정보 검색: 김 성 운
*/
PROCEDURE SP_TFA001E_03
(
v_row IN NUMBER,
v_car_no IN VARCHAR2,
v_pass_dt OUT VARCHAR2,
v_owner OUT VARCHAR2,
v_regno OUT VARCHAR2,
v_car_type OUT VARCHAR2
)
IS
-- 1건 이상일 경우에만 POPUP으로 OPEN : 과거 미납여부로 애모모호한 미판독 차량넘버(차량번호) 획득목적이므로...
CURSOR CUR IS
/*
SELECT A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES f_pass_dt,
B.OWNER f_owner,
B.RESIDENT_NO f_regno,
A.CAR_TYPE_NAME f_car_type
FROM DEFAULT_FARE_READ_INFO A,
( SELECT OWNER,RESIDENT_NO
FROM PENALTY_DETAIL_INFO
WHERE CAR_NO = RTRIM(v_car_no) ) B
WHERE A.CAR_NO = v_car_no
ORDER BY YEAR||MONTH||DAY||WORK_TIMES;
*/
SELECT A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES f_pass_dt,
B.OWNER f_owner,
B.RESIDENT_NO f_regno,
A.CAR_TYPE_NAME f_car_type
FROM DEFAULT_FARE_READ_INFO A,
PENALTY_DETAIL_INFO B
WHERE A.CAR_NO = B.CAR_NO
AND A.CAR_NO = v_car_no
ORDER BY A.YEAR||A.MONTH||A.DAY||A.WORK_TIMES;
TFA001E_03_REC CUR%ROWTYPE;
BEGIN
FOR TFA001E_03_REC IN CUR LOOP
v_pass_dt := TFA001E_03_REC.f_pass_dt;
v_owner := TFA001E_03_REC.f_owner;
v_regno := TFA001E_03_REC.f_regno;
v_car_type := TFA001E_03_REC.f_car_type;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TFA001E_03;
/*
** 차량번호가 미입력이면 당해 [년,월,일,근무시간]에 해당하는
**'징수원'의 id를 알아내어서 dw_3의 징수원을 set한다.
*/
PROCEDURE SP_TFA001E_04
(
v_office IN CHAR,
v_booth IN CHAR,
v_pass_date IN CHAR,
v_pass_time IN CHAR,
v_workerid OUT VARCHAR2,
v_worker_name OUT VARCHAR2,
v_car_type OUT VARCHAR2,
v_carno OUT VARCHAR2,
v_move_pic OUT VARCHAR2,
v_stop_pic OUT VARCHAR2,
h_result_code OUT VARCHAR2,
v_levy_target OUT VARCHAR2,
v_free_reason OUT VARCHAR2,
v_not_comfirm OUT VARCHAR2,
v_etc00 OUT VARCHAR2
)
IS
BEGIN
SELECT WORKER_ID,
Fun_Get_Worker(WORKER_ID),
CAR_TYPE_NAME,
CAR_NO,
CARS_MOVE_PICTURE_FILE,
CARS_STOP_PICTURE_FILE,
READ_RESULT_ID,
LAVY_NOTICE_ID,
EXEMPT_REASON_ID,
NOTCONFIRM_ID,
REMARKS
INTO v_workerid,
v_worker_name,
v_car_type,
v_carno,
v_move_pic,
v_stop_pic,
h_result_code,
v_levy_target,
v_free_reason,
v_not_comfirm,
v_etc00
FROM DEFAULT_FARE_READ_INFO
WHERE FARE_OFFICE_ID = v_office
AND BOOTH_ID = v_booth
AND YEAR||MONTH||DAY = RTRIM(v_pass_date)
AND WORK_TIMES = RTRIM(v_pass_time);
EXCEPTION WHEN OTHERS THEN
v_workerid := '';
v_worker_name := '';
v_car_type := '';
v_carno := '';
v_move_pic := '';
v_stop_pic := '';
h_result_code := '';
v_levy_target := '';
v_free_reason := '';
v_not_comfirm := '';
v_etc00 := '';
END SP_TFA001E_04;
END Pac_Get_Tfa001e;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TBE000E AS
/*
** MAKE SAM FILE
면제차량정보 파일전송코드 = 1G
*/
PROCEDURE SP_TBE000E
( v_row IN NUMBER,
v_gubun IN CHAR,
v_enforce_date OUT CHAR,
v_car_no OUT VARCHAR2,
v_cars_type_id OUT CHAR,
v_document_no OUT CHAR,
v_car_type_name OUT VARCHAR2,
v_owner OUT CHAR,
v_end_date OUT CHAR,
v_document_date OUT CHAR,
v_accept_date OUT CHAR,
v_replace_kbn OUT CHAR,
v_replace_car_no OUT CHAR
)
IS
CURSOR CUR IS
SELECT TO_CHAR(ENFORCE_DATE,'YYYYMMDD') f_enforce_date,
RTRIM(CAR_NO) f_car_no,
RTRIM(CARS_TYPE_ID) f_cars_type_id,
RTRIM(DOCUMENT_NO) f_document_no,
RTRIM(CAR_TYPE_NAME) f_car_type_name,
RTRIM(OWNER) f_owner,
TO_CHAR(END_DATE,'YYYYMMDD') f_end_date,
TO_CHAR(DOCUMENT_DATE,'YYYYMMDD') f_document_date,
TO_CHAR(ACCEPT_DATE,'YYYYMMDD') f_accept_date,
RTRIM(REPLACE_KBN) f_replace_kbn,
RTRIM(REPLACE_CAR_NO) f_replace_car_no
FROM EXEMPT_CARS_INFO
WHERE TRANS_FILE_CREATE_YN = RTRIM(v_gubun);
CUR_REC CUR%ROWTYPE;
BEGIN
FOR CUR_REC IN CUR LOOP
v_enforce_date := CUR_REC.f_enforce_date ;
v_car_no := CUR_REC.f_car_no ;
v_cars_type_id := CUR_REC.f_cars_type_id ;
v_document_no := CUR_REC.f_document_no ;
v_car_type_name := CUR_REC.f_car_type_name ;
v_owner := CUR_REC.f_owner ;
v_end_date := CUR_REC.f_end_date ;
v_document_date := CUR_REC.f_document_date ;
v_accept_date := CUR_REC.f_accept_date ;
v_replace_kbn := CUR_REC.f_replace_kbn ;
v_replace_car_no := CUR_REC.f_replace_car_no;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_TBE000E;
/*
** FTP ??? ?????? insert or update
*/
PROCEDURE SP_FILE_TRANS_INS
(
v_newyn IN CHAR,
v_enforce_date IN CHAR,
v_car_no IN VARCHAR2,
v_fpath IN VARCHAR2,
v_fname IN VARCHAR2,
v_userid IN VARCHAR2,
v_addmaxno IN VARCHAR2
)
IS
ERROR_CODE NUMBER :=0;
ERROR_MESSAGE CHAR(255);
h_office_cnt NUMBER :=0;
BEGIN
-- FILE_KIND_CODE_INFO
BEGIN
UPDATE FILE_KIND_CODE_INFO
SET LAST_DATA_NO = RTRIM(v_addmaxno)
WHERE FILE_KIND_ID = '1G';
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure FILE_KIND_CODE_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
-- FILE_TRANS_INFO
BEGIN
INSERT INTO FILE_TRANS_INFO
( FILE_KIND_ID,
YEAR,
MONTH,
DAY,
DATA_SEQNO,
FARE_OFFICE_ID,
BOOTH_ID,
FILE_TRANS_YN,
FORMAT_DATE,
FILE_NAME,
SEND_DATE,
RECEIPT_DATE,
DATA_PROCESS_KBN,
CREATE_DATE,
CREATER,
UPDATE_DATE,
UPDATER,
DIR_NAME )
VALUES ( '1G',
TO_CHAR(SYSDATE,'YYYY'),
TO_CHAR(SYSDATE,'MM'),
TO_CHAR(SYSDATE,'DD'),
v_addmaxno, -- Max number + 1
NULL,
NULL,
'1',
SYSDATE,
v_fname,
NULL,
NULL,
'R',
SYSDATE,
FUN_GET_EMPLOYEE (v_userid),
SYSDATE,
FUN_GET_EMPLOYEE (v_userid),
v_fpath
);
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure FILE_TRANS_INFO INSERT Error !!';
ROLLBACK;
RETURN;
END;
/*
BEGIN
BEGIN
--1? ??? ??
INSERT INTO OFFICE_TRANS_INFO
( FILE_KIND_ID,
YEAR,
MONTH,
DAY,
DATA_SEQNO,
FARE_OFFICE_ID,
DATA_PROCESS_KBN,
CREATE_DATE,
CREATER,
UPDATE_DATE,
UPDATER )
VALUES ( '1G',
TO_CHAR(SYSDATE,'YYYY'),
TO_CHAR(SYSDATE,'MM'),
TO_CHAR(SYSDATE,'DD'),
v_addmaxno, -- Max number + 1
'01',
'R',
SYSDATE,
FUN_GET_EMPLOYEE (v_userid),
SYSDATE,
FUN_GET_EMPLOYEE (v_userid)
);
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure FILE_TRANS_INFO INSERT Error !!';
ROLLBACK;
RETURN;
END;
BEGIN
--3? ??? ??
INSERT INTO OFFICE_TRANS_INFO
( FILE_KIND_ID,
YEAR,
MONTH,
DAY,
DATA_SEQNO,
FARE_OFFICE_ID,
DATA_PROCESS_KBN,
CREATE_DATE,
CREATER,
UPDATE_DATE,
UPDATER )
VALUES ( '1G',
TO_CHAR(SYSDATE,'YYYY'),
TO_CHAR(SYSDATE,'MM'),
TO_CHAR(SYSDATE,'DD'),
v_addmaxno, -- Max number + 1
'03',
'R',
SYSDATE,
FUN_GET_EMPLOYEE (v_userid),
SYSDATE,
FUN_GET_EMPLOYEE (v_userid)
);
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure FILE_TRANS_INFO INSERT Error !!';
ROLLBACK;
RETURN;
END;
END;
*/
-- EXEMPT_CARS_INFO(??,??? ???? ???)
BEGIN
IF Rtrim(v_newyn) = 'I' THEN
UPDATE EXEMPT_CARS_INFO
SET FILE_KIND_ID = '1G',
YEAR = TO_CHAR(SYSDATE,'YYYY'),
MONTH = TO_CHAR(SYSDATE,'MM'),
DAY = TO_CHAR(SYSDATE,'DD'),
DATA_SEQNO = RTRIM(v_addmaxno), -- Max number + 1
TRANS_FILE_CREATE_YN ='1'
WHERE TRANS_FILE_CREATE_YN ='0';
--???? ????? ????? ?? ?? ??? ?? update...TRANS_FILE_CREATE_YN ='0';
ELSE
UPDATE EXEMPT_CARS_INFO
SET FILE_KIND_ID = '1G',
YEAR = TO_CHAR(SYSDATE,'YYYY'),
MONTH = TO_CHAR(SYSDATE,'MM'),
DAY = TO_CHAR(SYSDATE,'DD'),
DATA_SEQNO = RTRIM(v_addmaxno), -- Max number + 1
TRANS_FILE_CREATE_YN ='1'
WHERE TO_CHAR(ENFORCE_DATE,'YYYYMMDD') = RTRIM(v_enforce_date)
AND CAR_NO = RTRIM(v_car_no);
END IF;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure EXEMPT_CARS_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
COMMIT;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure START Error !!';
ROLLBACK WORK;
END SP_FILE_TRANS_INS;
/*
** ???? ??
*/
FUNCTION FUN_EXCEMPT_CAR_COUNT( v_gubun IN CHAR ) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM EXEMPT_CARS_INFO
WHERE TRANS_FILE_CREATE_YN = RTRIM(v_gubun) ;
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END FUN_EXCEMPT_CAR_COUNT;
/*
** MAX NUMBER+1
*/
FUNCTION FUN_FILE_MAXNUM
RETURN VARCHAR2
IS
v_rc VARCHAR2(9) := '';
BEGIN
BEGIN
SELECT TO_CHAR(TO_NUMBER(LAST_DATA_NO) + 1)
INTO v_rc
FROM FILE_KIND_CODE_INFO
WHERE FILE_KIND_ID = '1G'; --MY
IF LENGTH(v_rc) = 1 THEN
v_rc := '00000000'||v_rc ;
ELSIF LENGTH(v_rc) = 2 THEN
v_rc := '0000000' ||v_rc ;
ELSIF LENGTH(v_rc) = 3 THEN
v_rc := '000000' ||v_rc ;
ELSIF LENGTH(v_rc) = 4 THEN
v_rc := '00000' ||v_rc ;
ELSIF LENGTH(v_rc) = 5 THEN
v_rc := '0000' ||v_rc ;
ELSIF LENGTH(v_rc) = 6 THEN
v_rc := '000' ||v_rc ;
ELSIF LENGTH(v_rc) = 7 THEN
v_rc := '00' ||v_rc ;
ELSIF LENGTH(v_rc) = 8 THEN
v_rc := '0' ||v_rc ;
ELSE
v_rc := '999999999';
END IF;
EXCEPTION WHEN OTHERS THEN
v_rc := '999999999';
RETURN v_rc;
END;
RETURN v_rc;
END FUN_FILE_MAXNUM;
END PAC_GET_TBE000E;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TBD000E AS
/*
** sam file 전송건수
*/
FUNCTION FUN_TRAN_COUNT(v_gubun IN CHAR) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM FARE_INFO
WHERE TRANS_FILE_CREATE_YN = RTRIM(v_gubun);
RETURN v_rc;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END FUN_TRAN_COUNT;
/*
** MAX NUMBER+1
*/
FUNCTION FUN_FILE_MAXNUM
RETURN VARCHAR2
IS
v_rc VARCHAR2(9) := '';
BEGIN
BEGIN
SELECT TO_CHAR(TO_NUMBER(LAST_DATA_NO) + 1)
INTO v_rc
FROM FILE_KIND_CODE_INFO
WHERE FILE_KIND_ID = '1F';
IF LENGTH(v_rc) = 1 THEN
v_rc := '00000000'||v_rc ;
ELSIF LENGTH(v_rc) = 2 THEN
v_rc := '0000000' ||v_rc ;
ELSIF LENGTH(v_rc) = 3 THEN
v_rc := '000000' ||v_rc ;
ELSIF LENGTH(v_rc) = 4 THEN
v_rc := '00000' ||v_rc ;
ELSIF LENGTH(v_rc) = 5 THEN
v_rc := '0000' ||v_rc ;
ELSIF LENGTH(v_rc) = 6 THEN
v_rc := '000' ||v_rc ;
ELSIF LENGTH(v_rc) = 7 THEN
v_rc := '00' ||v_rc ;
ELSIF LENGTH(v_rc) = 8 THEN
v_rc := '0' ||v_rc ;
ELSE
v_rc := '999999999';
END IF;
EXCEPTION WHEN OTHERS THEN
v_rc := '999999999';
RETURN v_rc;
END;
RETURN v_rc;
END FUN_FILE_MAXNUM;
/*
** MAKE SAM FILE
*/
PROCEDURE SP_MAKE_SAMFILE
( v_row IN NUMBER,
v_gubun IN CHAR,
v_stt_date OUT CHAR,
v_collect_id OUT CHAR,
v_card_issue_id OUT CHAR,
v_end_date OUT CHAR,
v_trans_amount OUT NUMBER,
v_discount_kbn OUT CHAR,
v_discount_rate OUT NUMBER,
v_discount_amount OUT NUMBER,
v_levy_amount OUT NUMBER,
v_fine_amount OUT NUMBER
)
IS
CURSOR CUR IS
SELECT TO_CHAR(STT_DATE,'YYYYMMDD') f_stt_date,
RTRIM(COLLECT_ID) f_collect_id,
RTRIM(CARD_ISSUE_ID) f_card_issue_id,
TO_CHAR(END_DATE,'YYYYMMDD') f_end_date,
NVL(TRANS_AMOUNT,0) f_trans_amount,
DISCOUNT_KBN f_discount_kbn,
NVL(DISCOUNT_RATE,0) f_discount_rate,
NVL(DISCOUNT_AMOUNT,0) f_discount_amount,
NVL(LEVY_AMOUNT,0) f_levy_amount,
NVL(FINE_AMOUNT,0) f_fine_amount
FROM FARE_INFO
WHERE TRANS_FILE_CREATE_YN = RTRIM(v_gubun);
CUR_REC CUR%ROWTYPE;
BEGIN
FOR CUR_REC IN CUR LOOP
v_stt_date := CUR_REC.f_stt_date ;
v_collect_id := CUR_REC.f_collect_id ;
v_card_issue_id := CUR_REC.f_card_issue_id ;
v_end_date := CUR_REC.f_end_date ;
v_trans_amount := CUR_REC.f_trans_amount ;
v_discount_kbn := CUR_REC.f_discount_kbn ;
v_discount_rate := CUR_REC.f_discount_rate ;
v_discount_amount := CUR_REC.f_discount_amount;
v_levy_amount := CUR_REC.f_levy_amount ;
v_fine_amount := CUR_REC.f_fine_amount ;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_MAKE_SAMFILE;
/*
** FTP insert or update
*/
PROCEDURE SP_FILE_TRANS_INS
(
v_newyn IN CHAR,
v_gubun IN CHAR,
v_stt_date IN CHAR,
v_fpath IN VARCHAR2,
v_fname IN VARCHAR2,
v_userid IN VARCHAR2,
v_addmaxno IN VARCHAR2,
v_issue_id IN VARCHAR2
)
IS
ERROR_CODE NUMBER :=0;
ERROR_MESSAGE CHAR(255);
h_count NUMBER :=0;
BEGIN
-- FILE_KIND_CODE_INFO
BEGIN
UPDATE FILE_KIND_CODE_INFO
SET LAST_DATA_NO = RTRIM(v_addmaxno)
WHERE FILE_KIND_ID = '1F';
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure FILE_KIND_CODE_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
-- FILE_TRANS_INFO
BEGIN
BEGIN
SELECT COUNT(*)
INTO h_count
FROM FILE_TRANS_INFO
WHERE FILE_KIND_ID = '1F'
AND YEAR||MONTH||DAY = TO_CHAR(SYSDATE,'YYYYMMDD')
AND DATA_SEQNO = v_addmaxno;
EXCEPTION WHEN NO_DATA_FOUND THEN
h_count := 0;
END;
IF h_count = 0 THEN
INSERT INTO FILE_TRANS_INFO
( FILE_KIND_ID,
YEAR,
MONTH,
DAY,
DATA_SEQNO,
FARE_OFFICE_ID,
BOOTH_ID,
FILE_TRANS_YN,
FORMAT_DATE,
FILE_NAME,
SEND_DATE,
RECEIPT_DATE,
DATA_PROCESS_KBN,
CREATE_DATE,
CREATER,
UPDATE_DATE,
UPDATER,
DIR_NAME )
VALUES ( '1F',
TO_CHAR(SYSDATE,'YYYY'),
TO_CHAR(SYSDATE,'MM'),
TO_CHAR(SYSDATE,'DD'),
v_addmaxno, -- Max number + 1
NULL,
NULL,
'1',
SYSDATE,
v_fname,
NULL,
NULL,
'R',
SYSDATE,
FUN_GET_EMPLOYEE (v_userid),
SYSDATE,
FUN_GET_EMPLOYEE (v_userid),
v_fpath
);
END IF;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure FILE_TRANS_INFO INSERT Error !!';
ROLLBACK;
RETURN;
END;
BEGIN
BEGIN
-- 1호터널
INSERT INTO OFFICE_TRANS_INFO
( FILE_KIND_ID,
YEAR,
MONTH,
DAY,
DATA_SEQNO,
FARE_OFFICE_ID,
DATA_PROCESS_KBN,
CREATE_DATE,
CREATER,
UPDATE_DATE,
UPDATER )
VALUES ( '1F',
TO_CHAR(SYSDATE,'YYYY'),
TO_CHAR(SYSDATE,'MM'),
TO_CHAR(SYSDATE,'DD'),
v_addmaxno, -- Max number + 1
'01',
'R',
SYSDATE,
FUN_GET_EMPLOYEE (v_userid),
SYSDATE,
FUN_GET_EMPLOYEE (v_userid)
);
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure FILE_TRANS_INFO INSERT Error !!';
ROLLBACK;
RETURN;
END;
BEGIN
-- 3 터널
INSERT INTO OFFICE_TRANS_INFO
( FILE_KIND_ID,
YEAR,
MONTH,
DAY,
DATA_SEQNO,
FARE_OFFICE_ID,
DATA_PROCESS_KBN,
CREATE_DATE,
CREATER,
UPDATE_DATE,
UPDATER )
VALUES ( '1F',
TO_CHAR(SYSDATE,'YYYY'),
TO_CHAR(SYSDATE,'MM'),
TO_CHAR(SYSDATE,'DD'),
v_addmaxno, -- Max number + 1
'03',
'R',
SYSDATE,
FUN_GET_EMPLOYEE (v_userid),
SYSDATE,
FUN_GET_EMPLOYEE (v_userid)
);
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure FILE_TRANS_INFO INSERT Error !!';
ROLLBACK;
RETURN;
END;
END;
-- FARE_INFO
BEGIN
-- IF RTRIM(v_newyn) = 'I' THEN
--
UPDATE FARE_INFO
SET FILE_KIND_ID = '1F',
YEAR = TO_CHAR(SYSDATE,'YYYY'),
MONTH = TO_CHAR(SYSDATE,'MM'),
DAY = TO_CHAR(SYSDATE,'DD'),
DATA_SEQNO = RTRIM(v_addmaxno), -- Max number + 1
TRANS_FILE_CREATE_YN ='1'
WHERE TRANS_FILE_CREATE_YN ='0';
-- update...TRANS_FILE_CREATE_YN ='0';
/*
ELSE
IF RTRIM(v_gubun) = 'CASH' THEN
UPDATE FARE_INFO
SET FILE_KIND_ID = '1F',
YEAR = TO_CHAR(SYSDATE,'YYYY'),
MONTH = TO_CHAR(SYSDATE,'MM'),
DAY = TO_CHAR(SYSDATE,'DD'),
DATA_SEQNO = RTRIM(v_addmaxno), -- Max number + 1
TRANS_FILE_CREATE_YN ='1'
WHERE TO_CHAR(STT_DATE,'YYYYMMDD') = Trim(v_stt_date)
AND COLLECT_ID = '10'
AND CARD_ISSUE_ID = '0000000';
ELSE
UPDATE FARE_INFO
SET FILE_KIND_ID = '1F',
YEAR = TO_CHAR(SYSDATE,'YYYY'),
MONTH = TO_CHAR(SYSDATE,'MM'),
DAY = TO_CHAR(SYSDATE,'DD'),
DATA_SEQNO = RTRIM(v_addmaxno), -- Max number + 1
TRANS_FILE_CREATE_YN ='1'
WHERE TO_CHAR(STT_DATE,'YYYYMMDD') = Trim(v_stt_date)
AND COLLECT_ID = '20'
AND CARD_ISSUE_ID = v_issue_id;
END IF;
END IF;
*/
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure EXEMPT_CARS_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
COMMIT;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure START Error !!';
ROLLBACK WORK;
END SP_FILE_TRANS_INS;
END PAC_GET_TBD000E;
/
CREATE OR REPLACE PACKAGE BODY NAMSAN3.PAC_GET_TBA502E AS
/*
** 구분자(전송'1',미전송'0')에 따른 데이터 추출...
*/
PROCEDURE SP_SAM_WORKER_INFO
( v_row IN NUMBER,
v_kbn IN CHAR,
v_worker_id OUT VARCHAR2,
v_worker_no OUT NUMBER,
v_password OUT VARCHAR2,
v_worker_name OUT VARCHAR2,
v_regno OUT VARCHAR2,
v_telno OUT VARCHAR2,
v_pcsno OUT VARCHAR2,
v_post1 OUT VARCHAR2,
v_post2 OUT VARCHAR2,
v_addr1 OUT VARCHAR2,
v_addr2 OUT VARCHAR2,
v_company_name OUT VARCHAR2,
v_workend_yn OUT VARCHAR2,
v_shift OUT CHAR
)
IS
CURSOR CUR IS
SELECT RTRIM(WORKER_ID) f_worker_id,
NVL(WORKER_SEQNO,0) f_worker_no,
RTRIM(PASSWORD) f_password,
RTRIM(WORKER_NAME) f_worker_name,
RTRIM(RESIDENT_NO) f_resident_no,
RTRIM(TEL_NO) f_tel_no,
RTRIM(PCS_NO) f_pcs_no,
RTRIM(POST_NO1) f_post_no1,
RTRIM(POST_NO2) f_post_no2,
RTRIM(ADDRESS_NAME) f_address_name,
RTRIM(ADDRESS_NUMBER) f_address_number,
RTRIM(OFFICE_NAME) f_office_name,
RTRIM(WORK_END_YN) f_work_end_yn,
RTRIM(SHIFT) f_shift
FROM WORKER_INFO
WHERE TRANS_FILE_CREATE_YN = RTRIM(v_kbn) ;
CUR_REC CUR%ROWTYPE;
BEGIN
FOR CUR_REC IN CUR LOOP
v_worker_id := CUR_REC.f_worker_id ;
v_worker_no := CUR_REC.f_worker_no ;
v_password := CUR_REC.f_password ;
v_worker_name := CUR_REC.f_worker_name ;
v_regno := CUR_REC.f_resident_no ;
v_telno := CUR_REC.f_tel_no ;
v_pcsno := CUR_REC.f_pcs_no ;
v_post1 := CUR_REC.f_post_no1 ;
v_post2 := CUR_REC.f_post_no2 ;
v_addr1 := CUR_REC.f_address_name ;
v_addr2 := CUR_REC.f_address_number;
v_company_name := CUR_REC.f_office_name ;
v_workend_yn := CUR_REC.f_work_end_yn ;
v_shift := CUR_REC.f_shift ;
EXIT WHEN CUR%ROWCOUNT >= v_row;
END LOOP;
END SP_SAM_WORKER_INFO;
/********************************************************************************/
/*
** FTP 전송후 해당테이블의 insert or update
*/
/********************************************************************************/
PROCEDURE SP_FILE_TRANS_INS
(
v_newyn IN CHAR,
v_fpath IN VARCHAR2,
v_fname IN VARCHAR2,
v_userid IN VARCHAR2,
v_addmaxno IN VARCHAR2,
v_worker IN VARCHAR2
)
IS
ERROR_CODE NUMBER :=0;
ERROR_MESSAGE CHAR(255);
BEGIN
-- FILE_KIND_CODE_INFO
BEGIN
UPDATE FILE_KIND_CODE_INFO
SET LAST_DATA_NO = RTRIM(v_addmaxno)
WHERE FILE_KIND_ID = '21';
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure FILE_KIND_CODE_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
-- FILE_TRANS_INFO
BEGIN
INSERT INTO FILE_TRANS_INFO
( FILE_KIND_ID,
YEAR,
MONTH,
DAY,
DATA_SEQNO,
FARE_OFFICE_ID,
BOOTH_ID,
FILE_TRANS_YN,
FORMAT_DATE,
FILE_NAME,
SEND_DATE,
RECEIPT_DATE,
DATA_PROCESS_KBN,
CREATE_DATE,
CREATER,
UPDATE_DATE,
UPDATER,
DIR_NAME )
VALUES ( '21',
TO_CHAR(SYSDATE,'YYYY'),
TO_CHAR(SYSDATE,'MM'),
TO_CHAR(SYSDATE,'DD'),
v_addmaxno, -- Max number + 1
SUBSTR(v_userid,1,2), --사번의 앞자리 2개
NULL,
'1',
SYSDATE,
v_fname,
NULL,
NULL,
'R',
SYSDATE,
FUN_GET_EMPLOYEE (v_userid),
SYSDATE,
FUN_GET_EMPLOYEE (v_userid),
v_fpath
);
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure FILE_TRANS_INFO INSERT Error !!';
ROLLBACK;
RETURN;
END;
/*
** 요금소별 수신여부 확인용...
*/
BEGIN
BEGIN
--1호 요금소 생성...
INSERT INTO OFFICE_TRANS_INFO
( FILE_KIND_ID,
YEAR,
MONTH,
DAY,
DATA_SEQNO,
FARE_OFFICE_ID,
DATA_PROCESS_KBN,
CREATE_DATE,
CREATER,
UPDATE_DATE,
UPDATER )
VALUES ( '21',
TO_CHAR(SYSDATE,'YYYY'),
TO_CHAR(SYSDATE,'MM'),
TO_CHAR(SYSDATE,'DD'),
v_addmaxno, -- Max number + 1
'01',
'R',
SYSDATE,
FUN_GET_EMPLOYEE (v_userid),
SYSDATE,
FUN_GET_EMPLOYEE (v_userid)
);
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure OFFICE_TRANS_INFO INSERT Error !!';
ROLLBACK;
RETURN;
END;
BEGIN
--3호 요금소 생성...
INSERT INTO OFFICE_TRANS_INFO
( FILE_KIND_ID,
YEAR,
MONTH,
DAY,
DATA_SEQNO,
FARE_OFFICE_ID,
DATA_PROCESS_KBN,
CREATE_DATE,
CREATER,
UPDATE_DATE,
UPDATER )
VALUES ( '21',
TO_CHAR(SYSDATE,'YYYY'),
TO_CHAR(SYSDATE,'MM'),
TO_CHAR(SYSDATE,'DD'),
v_addmaxno, -- Max number + 1
'03',
'R',
SYSDATE,
FUN_GET_EMPLOYEE (v_userid),
SYSDATE,
FUN_GET_EMPLOYEE (v_userid)
);
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure OFFICE_TRANS_INFO INSERT Error !!';
ROLLBACK;
RETURN;
END;
END;
/*
** 근무자 정보(WORKER_INFO ), v_newyn의 'I''->신규인지 아닌지 여부...
*/
BEGIN
IF v_newyn = 'I' THEN
UPDATE WORKER_INFO
SET FILE_KIND_ID = '21',
YEAR = TO_CHAR(SYSDATE,'YYYY'),
MONTH = TO_CHAR(SYSDATE,'MM'),
DAY = TO_CHAR(SYSDATE,'DD'),
DATA_SEQNO = RTRIM(v_addmaxno), -- Max number + 1
TRANS_FILE_CREATE_YN ='1'
WHERE TRANS_FILE_CREATE_YN ='I'; --여러건을 입력하므로 미전송으로 되어 있는 부분만 일괄 update...
ELSE
UPDATE WORKER_INFO
SET FILE_KIND_ID = '21',
YEAR = TO_CHAR(SYSDATE,'YYYY'),
MONTH = TO_CHAR(SYSDATE,'MM'),
DAY = TO_CHAR(SYSDATE,'DD'),
DATA_SEQNO = RTRIM(v_addmaxno), -- Max number + 1
TRANS_FILE_CREATE_YN ='1'
WHERE TRANS_FILE_CREATE_YN ='U';
--WHERE WORKER_ID = Rtrim(v_worker); -- 한건 수정하고 근무자 목록으로 리턴되므로 해당근무자의 데이터만 update...
END IF;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure WORKER_INFO UPDATE Error !!';
ROLLBACK;
RETURN;
END;
COMMIT;
EXCEPTION WHEN OTHERS THEN
ERROR_CODE := SQLCODE;
ERROR_MESSAGE := 'Procedure START Error !!';
ROLLBACK WORK;
END SP_FILE_TRANS_INS;
/********************************************************************************/
/*
** 이미 전송한 데이터 ---> 전송구분이 '1' 인 데이터
** '0' -> 신규이거나 수정인 데이터...
*/
FUNCTION FUN_WORKER_COUNT(v_trans_kbn IN CHAR) RETURN NUMBER
IS
v_rc NUMBER := 0;
BEGIN
BEGIN
SELECT COUNT(*)
INTO v_rc
FROM WORKER_INFO
WHERE TRANS_FILE_CREATE_YN = RTRIM(v_trans_kbn);
EXCEPTION WHEN NO_DATA_FOUND THEN
v_rc := 0;
RETURN v_rc;
END;
RETURN v_rc;
EXCEPTION WHEN OTHERS THEN
v_rc := 0;
RETURN v_rc;
END ;
/*
** 전송한 자료번호 ( 파일종류테이블에 max + 1 인 것 )
*/
FUNCTION FUN_FILE_MAXNUM
RETURN VARCHAR2
IS
v_rc VARCHAR2(9) := '';
BEGIN
BEGIN
SELECT TO_CHAR(TO_NUMBER(LAST_DATA_NO) + 1)
INTO v_rc
FROM FILE_KIND_CODE_INFO
WHERE FILE_KIND_ID = '21';
IF LENGTH(v_rc) = 1 THEN
v_rc := '00000000'||v_rc ;
ELSIF LENGTH(v_rc) = 2 THEN
v_rc := '0000000' ||v_rc ;
ELSIF LENGTH(v_rc) = 3 THEN
v_rc := '000000' ||v_rc ;
ELSIF LENGTH(v_rc) = 4 THEN
v_rc := '00000' ||v_rc ;
ELSIF LENGTH(v_rc) = 5 THEN
v_rc := '0000' ||v_rc ;
ELSIF LENGTH(v_rc) = 6 THEN
v_rc := '000' ||v_rc ;
ELSIF LENGTH(v_rc) = 7 THEN
v_rc := '00' ||v_rc ;
ELSIF LENGTH(v_rc) = 8 THEN
v_rc := '0' ||v_rc ;
ELSE
v_rc := '999999999';
END IF;
EXCEPTION WHEN OTHERS THEN
v_rc := '999999999';
RETURN v_rc;
END;
RETURN v_rc;
END FUN_FILE_MAXNUM;
END PAC_GET_TBA502E;
/