end if;
end if;
end loop;
/*
desription Get the last week of last year when first week don't start with Jan 1st.
*/
vi_minus_num1 := to_date(to_char(vd_deal_date,'yyyy') - 1||'1231','yyyymmdd')-vd_first_week_date1;
ov_return := to_char(vd_deal_date,'yyyy') - 1||(vi_minus_num1 - mod(vi_minus_num1,7))/ 7 + 1;
end if;
/*
desription Get the week of after first sunday.
parameter vd_first_week_date
*/
else
vi_minus_num := to_char(vd_deal_date,'DDD') - to_char(vd_first_week_date,'DDD');
if mod(vi_minus_num,7)>0 then
if (vi_minus_num - mod(vi_minus_num,7))/ 7 + 1 > 9 then
ov_return := to_char(vd_deal_date,'yyyy')||((vi_minus_num - mod(vi_minus_num,7))/ 7 + 1);
else
ov_return := to_char(vd_deal_date,'yyyy')||'0'||((vi_minus_num - mod(vi_minus_num,7))/ 7 + 1);
end if;
end if;
end loop;
/*
desription Get the last week of last year when first week don't start with Jan 1st.
*/
vi_minus_num1 := to_date(to_char(vd_deal_date,'yyyy') - 1||'1231','yyyymmdd')-vd_first_week_date1;
ov_return := to_char(vd_deal_date,'yyyy') - 1||(vi_minus_num1 - mod(vi_minus_num1,7))/ 7 + 1;
end if;
/*
desription Get the week of after first sunday.
parameter vd_first_week_date
*/
else
vi_minus_num := to_char(vd_deal_date,'DDD') - to_char(vd_first_week_date,'DDD');
if mod(vi_minus_num,7)>0 then
if (vi_minus_num - mod(vi_minus_num,7))/ 7 + 1 > 9 then
ov_return := to_char(vd_deal_date,'yyyy')||((vi_minus_num - mod(vi_minus_num,7))/ 7 + 1);
else
ov_return := to_char(vd_deal_date,'yyyy')||'0'||((vi_minus_num - mod(vi_minus_num,7))/ 7 + 1);
end if;