Convierte un número a moneda. La función puede llamarse como num2curr() o priceFormat().
Si se llama a la función con un número en formato nn.nn, devuelve una moneda con los valores por defecto según la configuración del usuario y en euros.
Por ejemplo, para:
$wv->conv->priceFormat(12.34);
El resultado para un usuario en español sería:
12,34 €
Para un usuario en inglés:
€12.34
Pero se pueden especificar varios parámetros si se necesita personalizar el formato, pasando como parámetro un array.
Por ejemplo, esta sería la configuración básica (pasando sólo el número), equivalente a la anterior consulta:
$wv->conv->priceFormat(['number'=>12.34]);
Estos son todos los parámetros del array:
number = Numero a convertir en moneda.
int = true para convertir el número en entero (quitar los decimales).
decimals = Número de decimales que se mostrarán en el precio.
locale = Código de idioma, por ejemplo es_ES.
currency = Simbolo de moneda a usar, por ejemplo; ¥ € $ &eur; EUR USD.
country = Código de país ISO3166-1/A2 para determinar la posición del símbolo de la moneda.
currency_position = Posición del símbilo de moneda delante o detrás del número (front|behind).
no_space = true para eliminar el espacio entre número y símbolo de moneda cuando este, va detrás del número.
no_currency = true para eliminar el símbolode moneda.
empty = Devuelve el contenido de este parámetro si el número está vacíó y no es cero (null, false o vacío)
not_zero = Si el valor es cero (string o numérico), lo toma como null, retornando false o el valor de empty
Por ejemplo, para sacar un precio en dólares:
$wv->conv->priceFormat(['number'=>12.34,'currency'=>'$']);
El resultado sería, para un usuario en español: 12,34 $
En inglés: $12.34
Para forzar que salga siempre formateado en formato anglosajón se puede usar una de estas fórmulas:
$wv->conv->priceFormat(['number'=>12.34,'currency'=>'$','locale'=>'en_US']);
$wv->conv->priceFormat(['number'=>12.34,'currency'=>'$','currency_position'=>'front']);
El resultado sería siempre: $12.34
Para mostrar un precio sin decimales:
$wv->conv->priceFormat(['number'=>12.34,'int'=>true]);
El resultado sería: 12 €
Para mostrar un precio usando EUR en vez del símbolo:
$wv->conv->priceFormat(['number'=>12.34,'currency'=>'EUR']);
El resultado sería: 12,34 EUR
Operaciones con valores vacíos o cero:
$wv->conv->priceFormat(['number'=>0);
El resultado sería: 0,00 €
$wv->conv->priceFormat(['number'=>0,'not_zero'=>true,'empty'=>'Consultar']);
El resultado sería: Consultar
$wv->conv->priceFormat(['number'=>0,'empty'=>'Consultar']);
El resultado sería: 0,00 €
$wv->conv->priceFormat(['number'=>null,'empty'=>'Consultar']);
El resultado sería: Consultar
$precio = null;
$wv->conv->priceFormat(['number'=>$precio]);
El resultado sería: false