Trabajo con precios y monedas en Twig
Copiar enlace al artículo
Copiado

En las plantillas Twig está disponible el filtro price para mostrar precios y monedas:

{{ order.totalSumm|price }}       # 1 234,56 $

Utilice el filtro |price para que el sistema aplique el formato y la moneda correspondientes.

El punto importante es identificar y visualizar correctamente la moneda y el monto. Cada uno de los campos correspondientes al dinero contiene el valor en la moneda del objeto o en la moneda básica.

Por ejemplo, el campo order.totalSumm contiene el valor en la moneda del pedido mientras order.purchaseSumm, en la moneda básica.

Para saber a qué moneda corresponde cada campo en concreto, consulte al Directorio de objetos.

Si no se transmite el código de moneda en los parámetros, el filtro intenta identificar primero la moneda del campo. Si no puede hacerlo, muestra la moneda básica.

Para que el filtro identifique correctamente la moneda del campo cuyo valor se muestra, debe recibir la pareja de objeto y campo. En caso de guardar el valor del campo en una variable intermedia e ingresar el precio a través de estos filtros para la variable, el contexto monetario del campo se perderá y se visualizará la moneda básica.

Consideremos un ejemplo

Supongamos que la moneda básica en el sistema sea el Dólar estadounidense ($) y la moneda adicional sea el Euro (€). Un pedido está formalizado en Euro y queremos generar una plantilla de la impresión con twig para imprimirla para este pedido.

Especifiquemos una construcción del siguiente tipo en la plantilla:

Total del pedido: {{ order.totalSumm|price }}

En la plantilla de impresión se visualizará:

Total del pedido: 1 000,45 €

Ahora cambiemos la construcción por

{% set total = order.totalSumm %}
Total del pedido: {{ total|price }}

En la plantilla de impresión se visualizará:

Total del pedido: 1 000,45 $

Como se nota, la moneda del campo del pedido se ha perdido y en la plantilla se visualiza el precio con una moneda incorrecta.

Cabe destacar que la moneda estará identificada correctamente si la referencia al campo se realizará a través de una cadena de llamadas a los objetos.

Por ejemplo,
{{ order.payments[0].amount|price }} # 1 000,45 €
{{ customer.lastOrder.totalSumm|price }} # 1 000,45 €
Gracias por tus comentarios.
¿Te resultó útil este artículo
No
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Si
Artículo anterior
Directorio de funciones-Twig disponibles
Igual que los filtros, en las plantillas está disponible la mayoría de funciones estándares junto con varias funciones especiales. La lista general de las funciones disponibles se encuentra en el artículo.
Artículo siguiente
Trabajo con precios y monedas en Twig
Puede surgir la necesidad de prevenir que se genere una plantilla. El artículo explica cómo se hace.