create or replace procedure ProSSBA00107(
p_rtn out number,
p_strrtn out varchar2,
p_date varchar2, ---バッチ処理日
p_staffid varchar2, ---バッチ処理ID
p_code varchar2 ---興行コード
) is
---Copyright: Copyright (c) 2007
---Company: FounderInter
---興行精算条件作成バッチ--最終精算日延期
v_proname varchar2(16) := 'ProSSBA00107';
v_cnt1 number;
v_cnt2 number;
v_result number;
v_payday char(8);
v_payrefday char(8);
cursor mycur is
select
a.PAY_SITE_TYP,---支払サイト区分
a.EVENT_ADJ_CD,---興行精算コード
a.STK_CLI_CD,---仕入取引先コード
a.VENUE_CD,---会場コード
b.RLS_CD,---発売コード
b.LOT_RLS_CD---抽選発売コード
from EVENT_ADJ_TMS_M a ---興行精算条件M
inner join EVADJTRM_TGT_RLS b---興行精算条件_対象発売
on a.EVENT_ADJ_CD=b.EVENT_ADJ_CD---興行精算コード
where
a.EVENT_CD=p_code---興行コード
and to_date(a.LT_ADJ_DA,'YYYY-MM-DD')<=to_date(p_date,'YYYY-MM-DD');---最終精算日
begin
BETYSS_CMN.PF_BEGIN_LOG(v_proname);
p_rtn := 0;
p_strrtn := null;
for v_mycur in mycur loop
select
count(*) into v_cnt1
from RFND_RSLT a
inner join RFND_RSLT_SEAT_BNDL b
on a.DEAL_SEQ=b.DEAL_SEQ
and a.DEAL_SSEQ=b.DEAL_SSEQ
where b.RFND_ACPT_DA=p_date---払戻受付日
and b.EVENT_CD=p_code---興行コード
and b.STK_CLI_CD=v_mycur.STK_CLI_CD--仕入取引先コード
and b.VENUE_CD=v_mycur.VENUE_CD---会場コード
and (b.RLS_CD=v_mycur.RLS_CD---発売コード
or b.LOT_RLS_CD=v_mycur.LOT_RLS_CD);---抽選発売コード
select
count(*) into v_cnt2
from SL_RSLT a
inner join SL_RSLT_SEAT_BNDL b
on a.DEAL_SEQ=b.DEAL_SEQ
and a.DEAL_SSEQ=b.DEAL_SSEQ
where a.DEAL_TYP='70'---取引タイプ=[70:仮発券]
and a.FOLLOWER_FLG='0'--- 後続有フラグ=[0:無]
and b.EVENT_CD=p_code---興行コード
and b.STK_CLI_CD=v_mycur.STK_CLI_CD---仕入取引先コード
and b.VENUE_CD=v_mycur.VENUE_CD---会場コード
and (b.RLS_CD=v_mycur.RLS_CD---発売コード
or b.LOT_RLS_CD=v_mycur.LOT_RLS_CD);---抽選発売コード
if v_cnt2 = 0 then
if v_cnt1 <> 0 then
v_result :=FUNSSBB00104(v_payday,v_payrefday,v_mycur.PAY_SITE_TYP,v_mycur.STK_CLI_CD,p_date);
update EVENT_ADJ_TMS_M ---興行精算条件M
set LT_ADJ_DA=p_date,---最終精算日
LT_PAY_SCHDL_DA=v_payrefday---最終支払予定日
where EVENT_ADJ_CD=v_mycur.EVENT_ADJ_CD;---興行精算コード
update EVADJTRM_ADJ_SCDL
set ADJ_DA=p_date,---to_char((to_date(p_date)+'1'),'YYYYMMDD'),---最終精算日
PAY_REF_DA=v_payrefday,---支払基準日
EVADJ_PAY_DA=v_payday,---興行精算支払日
ADJ_DA_CHNG_RSN_TYP='03'---精算日変更理由区分
where
EVENT_ADJ_CD=v_mycur.EVENT_ADJ_CD---興行精算コード
and (ADJ_REASON_TYP='1'---精算事由区分[1:興行終了時]
or ADJ_REASON_TYP='3')---精算事由区分[3:月次最終]
and EVADJ_STS_TYP='4';--興行精算状態区分[4:支払確定]
p_rtn:='0';
else
p_rtn:='0';
end if;
else
v_result :=FUNSSBB00104(v_payday,v_payrefday,v_mycur.PAY_SITE_TYP,v_mycur.STK_CLI_CD,to_char((to_date(p_date)+'1'),'YYYYMMDD'));
update EVENT_ADJ_TMS_M ---興行精算条件M
set LT_ADJ_DA=to_char((to_date(p_date)+'1'),'YYYYMMDD'),---最終精算日
LT_PAY_SCHDL_DA=v_payday---最終支払予定日
where EVENT_ADJ_CD=v_mycur.EVENT_ADJ_CD;---興行精算コード
update EVADJTRM_ADJ_SCDL
set ADJ_DA=to_char((to_date(p_date)+'1'),'YYYYMMDD'),---最終精算日
PAY_REF_DA=v_payrefday,---支払基準日
ADJ_DA_CHNG_RSN_TYP='02',---精算日変更理由区分
EVADJ_PAY_DA= v_payday ---興行精算支払日
where
EVENT_ADJ_CD=v_mycur.EVENT_ADJ_CD---興行精算コード
and (ADJ_REASON_TYP='1'---精算事由区分[1:興行終了時]
or ADJ_REASON_TYP='3')---精算事由区分[3:月次最終]
and EVADJ_STS_TYP<>'4';--興行精算状態区分[4:支払確定]
p_rtn:='0';
end if;
end loop;
BETYSS_CMN.INFO_LOG('SSBA001',v_proname,p_staffid,'MSSBA031');
BETYSS_CMN.PF_END_LOG(v_proname);
exception
when others then
p_rtn := 1;
BETYSS_CMN.ERROR_LOG('SSBA001',v_proname,p_staffid,'MSSBA032');
end ProSSBA00107;
prc
最新推荐文章于 2025-01-18 17:59:59 发布