prc

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;

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值