[ create a new paste ] login | about

Link: http://codepad.org/rgYmsuFh    [ raw code | fork ]

Plain Text, pasted on Apr 13:
create sequence provider_station_seq;

create table provider_station (
   provider_station_id number  not null,
   ps_version          number  not null,
   ps_provider         number  not null,
   ps_station          char(3) not null,
   ps_active           char(1) not null,
   constraint fk_ps_provider foreign key (ps_provider) references provider on delete cascade,
   constraint fk_ps_station  foreign key (ps_station)  references station  on delete cascade
);

create unique index pk_provider_station
   on provider_station (provider_station_id);

create unique index idxu_provider_station
   on provider_station (ps_provider, ps_station);

alter table provider_station add (
   constraint pk_provider_station primary key (provider_station_id)
      using index pk_provider_station,
   constraint uq_provider_station unique (ps_provider, ps_station)
      using index idxu_provider_station
);

create table provider_station_jobtype (
   psj_type     char(3) not null,
   psj_category char(1) not null,
   psj_ps_id    number  not null,
   constraint chk_psj_category check (psj_category in ('A', 'M', 'R')),
   constraint fk_psj_psid foreign key (psj_ps_id) references provider_station
);

comment on column provider_station_jobtype.psj_category
   is 'A=All Categories, M=Mainline, R=Regional';

create unique index idxu_psj_type_psid
   on provider_station_jobtype (psj_type, psj_ps_id);

alter table provider_station_jobtype
   add constraint uq_psj_type_psid unique (psj_type, psj_ps_id)
      using index idxu_psj_type_psid;

---------------------------------------------------------------------------


create or replace force view reconcile_turn as
  select turn_summary_id reconcile_turn_id,
         ts_station rt_station,
         ts_carrier_category rt_carrier_category,
         ts_nose rt_tail,
         ts_ac_type rt_fleet,
         ts_in_flight rt_in_id,
         ts_in_flt_number rt_in_number,
         ts_in_arr_time rt_in_arr_time,
         ts_in_origin rt_in_origin,
         ts_out_flight rt_out_id,
         ts_out_flt_number rt_out_number,
         ts_out_dep_time rt_out_dep_time,
         ts_out_destination rt_out_destination
  from turn_summary;

---------------------------------------------------------------------------

create or replace force view reconcile_job as
  select
    mvj.job_id reconcile_job_id,
    case
    when             mvj.job_type in ('PRV', 'SEC', 'TUP')
      then          mvj.job_type
    else             'JOB'
    end                 rj_type,
    turn_summary_id     rj_turn,
    mvj.job_type        rj_job_type,
    mvj.status          rj_state,
    mvj.job_date        rj_date,
    mvj.create_time     rj_create_time,
    mvj.adhoc           rj_adhoc,
    mvj.adhoc_comment   rj_adhoc_comment,
    tsj_provider        rj_provider,
    mvj.security_inspection       rj_inspection,
    invoicer_rate_id    rj_invoicer_rate_id,
    case
    when invoice_import_row_matched_id is null then 'N'
    else 'Y'
    end                 rj_matched,
    reconciliation_acceptance (jr_acceptance,
                               status,
                               CASE adhoc WHEN 'Y' THEN 'A' END)
      acceptance
  from mv_job_details mvj
    left join turn_summary_job tsj on mvj.job_id = tsj.turn_summary_job_id
    left join job_reconcile jp on turn_summary_job_id = jp.job_reconcile_id
    left join
    (select *
     from invoice_import_row_matched iirm,
       invoice_import_row iir,
       v_latest_invoice_import vlii
     where iirm.invoice_import_row_matched_id = iir.invoice_import_row_id
           and iir.iir_invoice_import = vlii.invoice_import_id) last_invoice on mvj.job_id = last_invoice.iirm_job_id
    left join invoicer_rate              on mvj.station                   = ir_station
                                            and mvj.job_type      = ir_job_type
                                            and(mvj.provider_id  = ir_provider or mvj.provider_id is null)
                                            and mvj.job_date  >= ir_start_date
                                            and (mvj.job_date <= ir_end_date or ir_end_date is null)
                                            and (
                                              ir_category = 'ALL' or
                                              ir_category = nvl(
                                                  case mvj.adhoc
                                                  when 'Y' then 'A'
                                                  else 'SCH'
                                                  end,
                                                  'SCH'
                                              )
                                            )
                                            and mvj.fleet in
                                                (select ires_equipment_series
                                                 from invoicer_rate_equip_series
                                                 where invoicer_rate_id = ires_invoicer_rate)
   where mvj.job_type not in ('CAM');

---------------------------------------------------------------------------



Create a new paste based on this one


Comments: