Esta guía técnica está diseñada para usuarios avanzados que requieren personalizar sus plantillas de documentos en Buk utilizando lógica condicional, bucles y filtros de transformación. El uso de estas herramientas permite que un mismo documento se adapte dinámicamente a la información de cada colaborador.
Regla de Oro: Para hacer uso de cualquier variable simple, esta debe estar encerrada entre dobles llaves:
-
{{ variable.nombre }}.
Estructuras de Control y Funciones Especiales
Las estructuras de control permiten manejar la visibilidad, repetición de datos y extracción de montos específicos de nómina.
| Estructura / Función | Descripción | Ejemplo | Resultado esperado |
|---|---|---|---|
| if | Evalúa una condición y muestra el contenido solo si es verdadera. | {%if empleado.nombre == "Pedro"%} Hola Pedro {%endif%} | "Hola Pedro" (si aplica). |
| for | Itera sobre colecciones (bonos, cargas, permisos, etc.). | {%for bono in empleado.bonos%} {{bono.nombre}} {%endfor%} | Lista de nombres de bonos. |
| monto | Obtiene el monto de un ítem por su código y tipo de comprobante. | {%monto("buk_salario", "finiquito")%} | "$ 1.000.000" |
| nombre | Obtiene el nombre de un ítem configurado según su código. | {%nombre("buk_salario")%} | "Sueldo Base" |
Filtros de Transformación
Los filtros modifican la visualización de las variables usando el símbolo |. Importante: No deben llevar espacios entre la variable y el símbolo.
Los filtros modifican la visualización de las variables usando el símbolo |. Importante: No deben llevar espacios entre la variable y el símbolo.
| Filtro | Descripción | Ejemplo | Resultado esperado |
|---|---|---|---|
| palabras | Convierte números o fechas a texto escrito. | {{sueldo | palabras}} | "quinientos mil" |
| imagen | Despliega una imagen (URL). Parámetros: ancho, alto. | {{empresa.logo | imagen: "200", "200"}} | [Imagen renderizada] |
| formato_fecha | Define el formato (yyyy, mm, dd, hh, MM, ss). | {{fecha_ingreso | formato_fecha: "dd-mm-yyyy"}} | "31-12-2023" |
| detalle_fecha | Extrae una parte: "A" (año), "M" (mes), "D" (día). | {{fecha_de_hoy | detalle_fecha: "M"}} | "03" (si es marzo) |
| fecha_en_palabras | Fecha completa en palabras según máscara. | {{fecha_de_hoy | fecha_en_palabras: "%d de %B"}} | "17 de Marzo" |
| formato_numero | Aplica separador de miles (.) y decimales (,) con 2 dígitos. | {{1000000 | formato_numero}} | "1.000.000,00" |
| monto_con_formato | Aplica formato moneda estándar. | {{empleado.sueldo | monto_con_formato}} | "$ 1.200.000" |
| convertir_a_mayusculas | Transforma el texto a letras mayúsculas. | {{empleado.apellido | convertir_a_mayusculas}} | "PÉREZ" |
| remove_zero | Elimina el ".0" de números decimales. | {{empleado.horas_semanales | remove_zero}} | "45" |
Operadores Lógicos
Utilizados dentro de las etiquetas {%if ... %} para realizar comparaciones.
| Operador | Descripción | Ejemplo | Resultado esperado |
|---|---|---|---|
| == | Igual a | {%if empleado.genero == "Masculino"%} | Verdadero si el género es Masculino. |
| != | Distinto a | {%if empleado.cargo != "Gerente"%} | Verdadero si el cargo no es Gerente. |
| greater_than | Mayor que | {%if empleado.sueldo greater_than 100000%} | Verdadero si el sueldo supera los 100.000. |
| less_than | Menor que | {%if empleado.antiguedad less_than 1%} | Verdadero si tiene menos de 1 año. |
| greater_or_equal_than | Mayor o igual | {%if variables.monto greater_or_equal_than 50%} | Verdadero si es 50 o más. |
| less_or_equal_than | Menor o igual | {%if variables.edad less_or_equal_than 18%} | Verdadero si es 18 o menos. |
| and | Operador lógico "Y" | {%if var1 == "A" and var2 == "B"%} | Verdadero solo si se cumplen ambas. |
| or | Operador lógico "O" | {%if var1 == "A" or var2 == "B"%} | Verdadero si se cumple al menos una. |
Consideraciones Finales
- Cierre Obligatorio: Todo
{%if%}debe cerrar con{%endif%}y todo{%for%}con{%endfor%}. - Uso de Imágenes: Para variables como
{{empresa.logo}},{{empleado.foto}}o atributos de tipo archivo, es estrictamente necesario usar el filtro| imagen: "ancho", "alto". - Escapado: En esta guía se usa
\|para visualización en tablas, pero en la plataforma Buk se usa simplemente|.
Ejemplos Prácticos Enriquecidos
1. Cláusula de Sueldo en Palabras (Legal)
"El trabajador percibirá un sueldo base mensual de {{empleado.sueldo | monto_con_decimales_a_palabras}}." Resultado: ...suma de quinientos mil pesos 00/100.
2. Tabla de Cargas Familiares
Utilizando bucles para listar cargas: {%for carga in empleado.cargas%}
- Nombre:
{{carga.nombre}}- RUT:{{carga.rut}}- Parentesco:{{carga.relacion}}{%for%}
3. Condicional de Firmantes
Si el documento requiere un segundo firmante solo en ciertos casos: {%if firma.segundo_firmante.nombre != ""%} Firma 2: {{firma.segundo_firmante.nombre}} {%endif%}
4. Atributos Personalizados con Imagen
Si tienes un atributo "Firma Escaneada" de tipo archivo: {{empleado.custom_empleado.firma_escaneada | imagen: "150", "80"}}
5. Fecha de Término Dinámica
"El contrato tendrá una vigencia de 3 meses, finalizando el día {{fecha_de_hoy | fecha_n_meses_al_futuro: "3" | formato_fecha: "dd/mm/yyyy"}}."
💡¿Aún tienes dudas?
Si este artículo no responde completamente tu consulta o necesitas apoyo en un caso particular, nuestro equipo está disponible a través de los canales de atención.
Chat | Teléfono | Correo
🎓 ¿Te interesa certificarte en Buk?
Te invitamos a realizar un curso de tu interés en Buk Academy, donde encontrarás contenidos guiados para profundizar en el uso de la plataforma y fortalecer tus conocimientos.