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;