miércoles, 8 de febrero de 2012

Asteriscos en el Cheque


/*

Esta funcion pone asteriscos al final del nombre del proveedor para el reporte de cheques del Adempiere

*/

-- select poner_asteriscos('CASA PELLAS');
-- select poner_asteriscos('DISTRIBUIDORA LA UNIVERSAL');

create or replace function poner_asteriscos(texto character varying)
returns character varying as $$
declare
    resultado character varying;
    maximo numeric;
    contador numeric;
    asteriscos character varying;
begin
    -- Establecemos el tamaño máximo del nombre del proveedor
    -- para que el texto tenga asteriscos automáticos deberá ser menor que 50
    -- de lo contrario se le pondrá dos por defecto
    maximo = 50;
  
    -- Valores por defecto
    resultado = '';
    contador = 0;
    asteriscos = '';
  
    if(length(texto) > 0 and length(texto) <= maximo)then
        contador = maximo - length(texto);
      
        while contador > 0 loop
            asteriscos = asteriscos || '*';
            contador = contador - 1;
        end loop;
      
        resultado = texto || asteriscos;
    else
        resultado = texto || '**';
    end if;

    return resultado;
end;
$$ language plpgsql;

No hay comentarios:

Publicar un comentario