1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
   | function VALECARAFormula return Char is
cursor d is select cc.codecate, cc.codcarub,cc.titimpde,cc.ordimpde,cc.nb_impde,
                   c.typcarub
            from   CATEGORIE_CARACT_RUBRIQUE cc,V_CARACT_RUBRIQUE c
            where  cc.codcarub = c.codcarub
            and    cc.codecate = c.codecate
            and    cc.codecate = :codecate
            and    nvl(ordimpde,0)<>0
            and (   cc.titimpde is not null 
                 or cc.ordimpde is not null
                 or cc.nb_impde is not null) 
            order  by ordimpde;
x varchar2(2000);
s varchar2(2000);
x_desicara varchar2(100);
rr risque_caract%rowtype;
x_codecara varchar2(5);
begin
 
 
  x := null;
  s := null;
  for rd in d loop
  	x_codecara := substr(rd.codcarub,2);
   if substr(rd.codcarub,1,1)='$' then	  --EFI 070305
    begin
      select valecara, valecode,
             valenume, valedate, valebool, valetext
      into   rr.valecara,rr.valecode,
             rr.valenume,rr.valedate,rr.valebool,rr.valetext
      from   v_all_risque_caract
      where  codeinte = :codeinte
      and    numepoli = :numepoli
      and    coderisq = :coderisq
      and    codecara = x_codecara
      and   ( ( nvl(:p_numeaven ,0) between nvl(avenmodi,0) and numeaven-1) or
              ( nvl(:p_numeaven ,0) < nvl(avenmodi,0) and nvl(:p_numeaven ,0) = numeaven) 
              /* or ( nvl(:p_numeaven ,0) > nvl(avenmodi,0) and nvl(:p_numeaven ,0) = numeaven)*/               
      or nvl(avenmodi, 0) in (select numeaven from avenant
    													where  codeinte = :codeinte 
    													and numepoli=:numepoli
         											and (numavere = :numeaven or numavera = :numeaven)));
      exception
        when no_data_found then 
          rr.valecara := null;rr.valecode := null;
          rr.valenume := null;rr.valedate := null;
          rr.valebool := null;rr.valetext := null;
    end;
    x_desicara := null;
    x_desicara := libelle_caracteristique (x_codecara,
          rr.valenume, rr.valedate, rr.valecode, rr.valebool, rr.valetext);
    select decode(rd.typcarub,'V',lpad(ltrim(nvl(x_desicara,'-')),rd.nb_impde)
                             ,'E',lpad(ltrim(nvl(x_desicara,'-')),rd.nb_impde)
                                 ,rpad(nvl(x_desicara,'-'),rd.nb_impde))
    into   x
    from   dual;
 
    if s is null then 
    	 s := x;
    else
    	 s := s||'|'||x;
    end if;
  end if;
--EFI 070305 D
   if substr(rd.codcarub,1,1)='§' then
      rr.valecara := null;
      rr.valecode := null; 
      rr.valedate := null;
      rr.valebool := null;
      rr.valetext := null;
      rr.valenume := null;	
      select  sum(valerubr) valenume
      into  rr.valenume
    	from hist_detail_garantie_accordee r
    	where  r.codeinte = :codeinte
      and    r.numepoli = :numepoli
      and    r.coderisq = :coderisq
      and    r.codecate = rd.codecate
      and    r.codrubta = x_codecara
      and   (nvl(:numeaven,0) between nvl(r.avenmodi,0) and r.numeaven -1 or
             nvl(:numeaven,0) = nvl(r.avenmodi,0));   	
      x_desicara := null;
      x_desicara := libelle_rubrique_prod (x_codecara,
          rr.valenume, rr.valedate, rr.valecode, rr.valebool, rr.valetext);
      select decode(rd.typcarub,'V',lpad(ltrim(nvl(x_desicara,'-')),rd.nb_impde)
                             ,'E',lpad(ltrim(nvl(x_desicara,'-')),rd.nb_impde)
                                 ,rpad(nvl(x_desicara,'-'),rd.nb_impde))
      into   x
      from   dual;
      if s is null then 
    	   s := x;
      else
    	   s := s||'|'||x;
      end if;
 
   End if;
 
 
  end loop;
  return(s);
 
 
 
end; | 
Partager