Pasos para crear una plantilla imprimible para un pedido
Copiar enlace al artículo
Copiado

Para agregar un nueva plantilla imprimible, debes hacer click en el botón del mismo nombre en la sección "Imprimible".

Aparece la ventana "Nuevo formulario de impresión" con las pestañas: "Básico" y "Plantilla".

En la pestaña "Plantilla" puedes configurar la plantilla del formulario de impresión en el formato [Twig-templates] (/es/Developers/Automation/Twig/TwigRules)].

Consideremos trabajar con una plantilla usando el ejemplo de una factura.

Código de plantilla de factura

<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 3.2//EN">
<html>
<style>
body
{
 font-family:"Arial", sans-serif;
 font-size: 10pt;
}
p
{
 line-height: 150%;
}
table.footer
{

Para agregar una nueva platilla imprimible, debes hacer click en el botón del mismo nombre en la sección "Imprimible".

Aparece la ventana "Nueva imprimible" con las pestañas: "Básico" y "Plantilla".

En la pestaña "Plantilla", puede configurar la plantilla del imprimible en el formato Twig-templates .

Consideremos trabajar con una plantilla usando el ejemplo de una factura.

Código de plantilla de factura

<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 3.2//EN">
<html>
<style>
body
{
 font-family:"Arial", sans-serif;
 font-size: 10pt;
}
p
{
 line-height: 150%;
}
table.footer
{
 font-size: 10pt;
 margin-top: 15px;
 line-height: 150%;
}
table.order
{
 border-collapse: collapse;
}
table.order td
{
 font-size: 10pt;
 border: 1px solid #000000;
}

</style>

 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title langs="ru">Счет</title>
 </head>
 <body bgcolor="white" lang="ES">

 <div class="Section1">

 <h1>Facturа №{{ order.number }} от {{ order.createdAt|date("d.m.Y") }}</h1>
 <p>
 Operador: {{ order.site.legalEntity }}<br>
 Dirección: {{ order.site.address }}<br>
 NIF: {{ order.site.inn }}<br>
 Dirección remitente: {{ order.site.legalEntity }} {{ order.site.address }}<br>
 Dirección del cliente: {{ order.customer.nickName }} {{ order.deliveryAddress }}<br>
 Orden de compra №{{ order.number }} от {{ order.createdAt|date("d.m.Y") }}<br>
 Cliente: {{ order.customer.nickName }}<br>
 Dirección: {{ order.customer.address }}<br>
 Divisa: nombre, código {{ defaultCurrency }}<br>
 </p>

 <table border="0" cellspacing="0" cellpadding="2" width="100%" class="order">
 <tr>
 <td rowspan=2 align="center" valign=middle>Nombre del producto (Características, descripción), derechos de propiedad</td>
 <td rowspan=2 align="center" valign=middle>Unidades de medida</td>
 <td rowspan=2 align="center" valign=middle>Cantidad/Volumen</td>
 <td rowspan=2 align="center" valign=middle>Precio (tarifa) por unidad</td>
 <td rowspan=2 align="center" valign=middle>Сosto del producto (trabajo, servicio) derechos de propiedad, sin impuestos — total</td>
 <td rowspan=2 align="center" valign=middle>Con la suma de descuentos y otros</td>
 <td rowspan=2 align="center" valign=middle>IVA aplicable</td>
 <td rowspan=2 align="center" valign=middle>Total importe IVA</td>
 <td rowspan=2 align="center" valign=middle>Сosto del producto (trabajo, servicio) derechos de propiedad, sin impuestos — total</td>
 <td colspan=2 align="center" valign=middle>País productor del producto</td>
 <td rowspan=2 align="center" valign=middle>Número de declaración</td>
 </tr>
 <tr>
 <td align="left">Código</td>
 <td align="left">Condiciones de uso (nacionalidad)</td>
 <td align="left">Código cifrado</td>
 <td align="left">Título corto</td>
 </tr>
 <tr>
 <td>1</td>
 <td>2</td>
 <td>2а</td>
 <td>3</td>
 <td>4</td>
 <td>5</td>
 <td>6</td>
 <td>7</td>
 <td>8</td>
 <td>9</td>
 <td>10</td>
 <td>10а</td>
 <td>11</td>
 </tr>

 {% for op in order.availableOrderProducts %}
 <tr valign="top">
 <td>
 {{ op }}
 </td>
 <td>

 </td>
 <td>

 </td>
 <td>
 {{ op.quantity }}
 </td>
 <td>
 {{ op.price }}
 </td>
 <td>
 {{ op.summ }}
 </td>
 <td>

 </td>
 <td>

 </td>
 <td>

 </td>
 <td>
 {{ op.summ }}
 </td>
 <td>

 </td>
 <td>
 {{ op.offer.product.manufacturer }}
 </td>
 <td>

 </td>
 </tr>
 {% endfor %}

 <tr valign="top">
 <td colspan="5">
 <h3>Total a pagar:</h3>
 </td>

 <td>
 {{ order.summ }}
 </td>
 <td colspan="2">
 X
 </td>
 <td>

 </td>
 <td>
 {{ order.totalSumm }}
 </td>
 <td colspan="3">

 </td>
 </tr>

 </table>
 <table border="0" cellspacing="0" cellpadding="0" width="100%" class="footer">
 <tr>
 <td width="20%">
 Director de la empresa:
 </td>
 <td width="80%">
 _______________________ / ______________________________ /
 </td>
 </tr>
 <tr>
 <td width="20%">
 Director Dep Contable:
 </td>
 <td width="80%">
 _______________________ / ______________________________ /
 </td>
 </tr>
 </table>
 </div>
 </body>
</html>

Explicaciones del código

Variables disponibles: al seleccionar el tipo de plantilla "Pedido" - la variable order (pedido), o en el caso del tipo de plantilla "Lista de pedidos" - la variable orders (matriz de pedidos). También está disponible la variable defaultCurrency - la moneda actual.

El código twig Factura №{{ order.number }} de {{ order.createdAt|date("d.m.Y") }} genera el siguiente html: <h1>Factura No123654 de 22.11.2019</h1>.

order - la entidad del pedido, tiene un campo number - este es el número de pedido, usando {{ }} imprimimos el valor del campo number para imprimir.

El pedido también tiene un campo createdAt que indica la fecha de creación. El sistema no sabe en qué forma debe imprimirse la fecha, por lo tanto, utilizando un filtro, especifique el formato de la fecha: order.createdAt|date("d.m.Y"). El formato aquí es: día, mes, año.

Twig-code Operador: {{ order.site.legalEntity }} como resultado forma html Operador: Tienda Online de zapatillas.es. order tiene un campo site, que es la entidad de la tienda. La tienda tiene un campo legalEntity que representa el nombre oficial de la tienda.

Divisa: nombre, código {{ defaultCurrency }}: el resultado es Divisa: nombre, código Euro. La moneda actual se muestra en la sección administrativa, en la sección "Configuración".

<table border="0" cellspacing="0" cellpadding="2" width="100%" class="order">
{% for op in order.availableOrderProducts %}

 <tr valign="top">

 ...

 <td>
 {{ op.summ }}
 </td>

 ...

 </tr>
{% endfor %}
</table>

Arriba se muestra una forma estándar de crear una tabla, en la que un bucle muestra una lista de filas, cada una de las cuales en este caso es un elemento del pedido.

<table border="0" cellspacing="0" cellpadding="2" width="100%" class="order">
 <tr valign="top">
 ...
 <td>
 123,0
 </td>
 ...
 </tr>
 <tr valign="top">
 ...
 <td>
 743,0
 </td>
 ...
 </tr>
 <tr valign="top">
 ...
 <td>
 8583,0
 </td>
 ...
 </tr>
 ...
</table>

{{ op.offer.product.manufacturer }} - desde la posición del pedido (op) obtenemos la oferta comercial que se agregó al pedido, luego obtenemos el producto relacionado al que pertenece la oferta comercial y descubrimos el fabricante del producto.

Como resultado, obtenemos el siguiente formulario de factura:

Gracias por tus comentarios.
¿Te resultó útil este artículo
No
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Si
Artículo anterior
Configuración básica de formularios para impresión
Un formulario imprimible es un archivo que se genera a partir de un pedido o una lista cuando se realiza cambios en los datos de un pedido.
Artículo siguiente
Crear una plantilla para la lista de pedidos
Información sobre cómo crear un formulario de impresión para un grupo de lotes.