Project

General

Profile

soạn tbh

SQL Sprint
15/05/2025

create or replace procedure PTBH_SOAN_TTINf(
    b_ma_dvi varchar2,b_so_id number,b_nv varchar2,
    b_so_hd out varchar2,b_ngay_ht out number,b_ngay_hl out number,b_ngay_kt out number,
    b_nt_tien out varchar2,b_nt_phi out varchar2,b_loi out varchar2)
AS
    b_i1 number; b_ch varchar2(10);
begin
-- Dan - Tra ttin hd
b_loi:='loi:Loi xu ly PTBH_TM_TTINf:loi';
if b_nv='PHH' then
    select ngay_ht,ngay_hl,ngay_kt,nt_tien,nt_phi into b_ngay_ht,b_ngay_hl,b_ngay_kt,b_nt_tien,b_nt_phi
        from bh_phh where ma_dvi=b_ma_dvi and so_id=b_so_id;
elsif b_nv='PKT' then
    select ngay_ht,ngay_hl,ngay_kt,nt_tien,nt_phi into b_ngay_ht,b_ngay_hl,b_ngay_kt,b_nt_tien,b_nt_phi
        from bh_pkt where ma_dvi=b_ma_dvi and so_id=b_so_id;
elsif b_nv='PTN' then
    select ngay_ht,ngay_hl,ngay_kt,nt_tien,nt_phi into b_ngay_ht,b_ngay_hl,b_ngay_kt,b_nt_tien,b_nt_phi
        from bh_ptn where ma_dvi=b_ma_dvi and so_id=b_so_id;
elsif b_nv='2B' then
    select ngay_ht,ngay_hl,ngay_kt,nt_tien,nt_phi into b_ngay_ht,b_ngay_hl,b_ngay_kt,b_nt_tien,b_nt_phi
        from bh_2b where ma_dvi=b_ma_dvi and so_id=b_so_id;
elsif b_nv='XE' then
    select ngay_ht,ngay_hl,ngay_kt,nt_tien,nt_phi into b_ngay_ht,b_ngay_hl,b_ngay_kt,b_nt_tien,b_nt_phi
        from bh_xe where ma_dvi=b_ma_dvi and so_id=b_so_id;
elsif b_nv='TAU' then
    select ngay_ht,ngay_hl,ngay_kt,nt_tien,nt_phi into b_ngay_ht,b_ngay_hl,b_ngay_kt,b_nt_tien,b_nt_phi
        from bh_tau where ma_dvi=b_ma_dvi and so_id=b_so_id;
elsif b_nv='HANG' then
    select ngay_ht,ngay_hl,ngay_kt,nt_tien,nt_phi into b_ngay_ht,b_ngay_hl,b_ngay_kt,b_nt_tien,b_nt_phi
        from bh_hang where ma_dvi=b_ma_dvi and so_id=b_so_id;
elsif b_nv='NG' then
    b_ch:=FBH_SOAN_BGHD_NG(b_ma_dvi,b_so_id);
    if b_ch=' ' then
        select ngay_ht,ngay_hl,ngay_kt,nt_tien,nt_phi into b_ngay_ht,b_ngay_hl,b_ngay_kt,b_nt_tien,b_nt_phi
            from bh_ng where ma_dvi=b_ma_dvi and so_id=b_so_id;
    else
        select count(*) into b_i1 from bh_ng where ma_dvi=b_ma_dvi and so_id=b_so_id;
        if b_i1<>0 then
            select ngay_ht,ngay_hl,ngay_kt,nt_tien,nt_phi into b_ngay_ht,b_ngay_hl,b_ngay_kt,b_nt_tien,b_nt_phi
                from bh_ng where ma_dvi=b_ma_dvi and so_id=b_so_id;
        elsif b_ch='SK' then
            select ngay_ht,ngay_hl,ngay_kt,nt_tien,nt_phi into b_ngay_ht,b_ngay_hl,b_ngay_kt,b_nt_tien,b_nt_phi
                from bh_sk where ma_dvi=b_ma_dvi and so_id=b_so_id;
        elsif b_ch='DL' then
            select ngay_ht,ngay_hl,ngay_kt,nt_tien,nt_phi into b_ngay_ht,b_ngay_hl,b_ngay_kt,b_nt_tien,b_nt_phi
                from bh_ngdl where ma_dvi=b_ma_dvi and so_id=b_so_id;
        else
            select ngay_ht,ngay_hl,ngay_kt,nt_tien,nt_phi into b_ngay_ht,b_ngay_hl,b_ngay_kt,b_nt_tien,b_nt_phi
                from bh_ngtd where ma_dvi=b_ma_dvi and so_id=b_so_id;
        end if;
    end if;
end if;
b_loi:='';
exception when others then if b_loi is null then raise PROGRAM_ERROR; else null; end if;
end;

Files