Este documento detalla el uso de variables en la plataforma Buk para la creación dinámica de documentos, facilitando la automatización y personalización de contratos, anexos, certificados y finiquitos.
1. Requisitos y Estructura
Para utilizar variables en las plantillas de documentos, considera lo siguiente:
-
Módulos Requeridos: Es indispensable contar con los módulos de Firma Digital y Gestión Documental. Puedes solicitar la activación de la configuración "Habilitar plantillas personalizables" al equipo de Soporte y Atención al Cliente (SAC) una vez que tengas estos módulos.
-
Formato de Variables: Todas las variables deben estar siempre encerradas entre dobles llaves
{{
y}}
. Por ejemplo:{{empleado.nombre}}
.
2. ¿Qué es una Variable?
Una variable es un contenedor que almacena un valor específico y representa información relevante en un documento. Estas variables contienen datos como fechas, nombres, direcciones, o identificadores, permitiendo que la información se actualice y personalice de forma sencilla.
3. Variables Disponibles
A continuación, se listan las categorías de variables disponibles para la gestión documental, con ejemplos de su uso:
3.1. Variables Generales
Estas variables proporcionan información dinámica y general:
-
Día pago de sueldos:
{{dia_pago_sueldos}}
-
Fecha de hoy (dinámica):
{{fecha_de_hoy}}
-
Fecha y hora actual:
{{fecha_y_hora_actual}}
-
Fecha primer día del mes actual:
{{fecha_primer_dia_mes}}
-
Inicio del mes abierto:
{{inicio_mes_abierto}}
-
Fin del mes abierto:
{{fin_mes_abierto}}
-
Fecha primer día del mes siguiente:
{{fecha_primer_dia_mes_siguiente}}
-
Fecha dos meses después de hoy:
{{fecha_dos_meses_despues_de_fecha_actual}}
-
Fecha tres meses después de hoy:
{{fecha_tres_meses_despues_de_fecha_actual}}
-
Usuario que genera el documento:
{{documento_generado_por}}
(quien presiona "generar documento")
3.2. Variables para Firmas
Para incluir datos de los firmantes en el documento:
-
Primer Firmante:
{{firma.primer_firmante.nombre}}
-
Segundo Firmante:
{{firma.segundo_firmante.nombre}}
-
Nombre completo de los firmantes (que no son el colaborador) que necesitan firmar el documento.
3.3. Variables para Empresa
Datos de la empresa:
-
Nombre Empresa:
{{empresa.nombre}}
-
RUT Empresa:
{{empresa.rut}}
-
Giro:
{{empresa.giro}}
-
Email Empresa:
{{empresa.email_empresa}}
-
Logo URL:
{{empresa.logo}}
(usar con el filtroimagen
) -
Dirección:
{{empresa.direccion}}
-
Comuna:
{{empresa.comuna}}
-
Ciudad:
{{empresa.ciudad}}
-
Nombre Representante:
{{empresa.representante.nombre}}
-
RUT Representante:
{{empresa.representante.rut}}
-
Dirección Representante:
{{empresa.representante.direccion}}
-
Nacionalidad Representante:
{{empresa.representante.nacionalidad}}
-
Nombre Representante Secundario:
{{empresa.representante_secundario.nombre}}
-
RUT Representante Secundario:
{{empresa.representante_secundario.rut}}
-
Dirección Representante Secundario:
{{empresa.representante_secundario.direccion}}
-
Nacionalidad Representante Secundario:
{{empresa.representante_secundario.nacionalidad}}
3.4. Variables para Empleado
Información detallada del empleado:
-
Datos Personales:
nombre
,apellido
,segundo_apellido
,nombre_completo
,sexo
,rut
,rut_limpio
(sin puntos ni guión),codigo_ficha
,estado_civil
,estado_civil_con_genero
(Ej: Soltera),nacionalidad
,profesion
,fecha_nacimiento
,edad
,telefono_particular
,telefono_oficina
,universidad
,titulo
. -
Datos Bancarios:
cuenta_corriente
,banco
,tipo_cuenta
. -
Dirección:
numero_calle
,calle
,direccion
,direccion_completa
,region_empleado
,comuna
,ciudad
. -
Contactos:
correo_electronico
(institucional),correo_personal
. -
Previsión y Salud:
fondo_cotizacion
(AFP/IPS),institucion_salud
(Isapre/Fonasa). -
Vacaciones:
saldo_vacaciones_legales
,saldo_vacaciones_progresivas
,vacaciones_legales_proporcionales
,vacaciones_progresivas_proporcionales
,vacaciones_legales_pendientes
,vacaciones_progresivas_pendientes
,fecha_reconocimiento_antiguedad
. -
Datos Laborales:
empleado.obra
,fecha_ingreso_compania
,fecha_ultimo_movimiento
,fecha_termino_trabajo
,tipo_contrato
,periodicidad
(Jornada Laboral),tipo_jornada
,annos_servicio
,fecha_termino_trabajo_anterior
,fecha_vencimiento_contrato
,fecha_vencimiento_contrato_2
,area
(División),departamento
(Área),sub_area
,direccion_trabajo
,comuna_trabajo
,ciudad_trabajo
,region_trabajo
,region_zona_extrema_trabajo
,comuna_zona_extrema_trabajo
,nombre_del_cargo
,descripcion_del_cargo
,horas_semanales
,sueldo
(Sueldo Base),sueldo_liquido_teorico
,forma_pago
,centro_de_costo
,dias_trabajo
,comuna_trabajo
,cargo_supervisor
,localidad
,cargo_anterior
,sueldo_base_anterior
.
3.5. Variables para Supervisor
Información del supervisor del empleado:
-
Nombre:
{{supervisor.nombre}}
-
Apellido:
{{supervisor.apellido}}
-
Nombre Completo:
{{supervisor.nombre_completo}}
-
Rut Supervisor:
{{supervisor.rut}}
3.6. Atributos Personalizados (Colecciones)
Estas variables son colecciones y requieren una iteración (usando la estructura {%for%}
) para acceder a sus elementos.
Estructura general para iterar:
{%for [elemento_singular] in [coleccion]%}
Propiedad: {{[elemento_singular].[propiedad]}}
{%endfor%}
Colecciones disponibles:
-
Horas Extras:
{{empleado.horas_extras}}
-
Propiedades:
horas
,aprobada
,tipo
,proporcion
.
-
-
Bonos:
{{empleado.bonos}}
-
Propiedades:
nombre
,monto
,codigo
,monto_calculado
. -
Totales:
{{empleado.total_bonos}}
-
-
Informativos:
{{empleado.informativos}}
-
Propiedades:
nombre
,monto
,codigo
,monto_calculado
. -
Totales:
{{empleado.total_informativos}}
-
-
No Imponibles:
{{empleado.no_imponibles}}
-
Propiedades:
nombre
,monto
. -
Totales:
{{empleado.total_no_imponibles}}
-
-
Descuentos:
{{empleado.descuentos}}
-
Propiedades:
nombre
,monto
. -
Totales:
{{empleado.total_descuentos}}
-
-
Cargas:
{{empleado.cargas}}
-
Propiedades:
nombre
,rut
,rut_limpio
,sexo
,relacion
,fecha_nacimiento
,expiration_date
,tipo_carga
. -
Totales:
{{empleado.total_cargas}}
-
-
Centros de Costo:
{{empleado.centro_costos}}
-
Propiedades:
codigo
.
-
-
Sub Áreas Superiores:
{{empleado.sub_areas_superiores}}
-
Propiedades:
nombre
,nivel
.
-
-
Ausencias:
{{empleado.ausencias}}
-
Propiedades:
nombre
,codigo
,dias_tomados
,justificacion
,estado
,inicio_ausencia
,termino_ausencia
,inicio_aplicacion_ausencia
,termino_aplicacion_ausencia
. -
Totales:
{{empleado.total_ausencias}}
-
-
Licencias:
{{empleado.licencias}}
-
Propiedades:
nombre
,codigo
,dias_tomados
,justificacion
,estado
,inicio_licencia
,termino_licencia
,inicio_aplicacion_licencia
,termino_aplicacion_licencia
. -
Totales:
{{empleado.total_licencias}}
-
-
Permisos:
{{empleado.permisos}}
-
Propiedades:
nombre
,codigo
,dias_tomados
,justificacion
,estado
,inicio_permiso
,termino_permiso
,inicio_aplicacion_permiso
,termino_aplicacion_permiso
,goce_sueldo
(Con Pago?). -
Totales:
{{empleado.total_permisos}}
-
-
Haberes:
{{empleado.total_items_haberes}}
(suma de bonos y no imponibles).
4. Estructuras de Control
Las plantillas permiten usar lógica condicional (if
) y bucles (for
) para un control más avanzado.
4.1. Estructura if
Permite evaluar el valor de una variable y mostrar contenido condicionalmente.
Ejemplo:
{%if empleado.nombre == "Pedro"%}
El empleado es Pedro.
{%endif%}
4.2. Estructura for
Se utiliza para iterar sobre colecciones de elementos, como bonos o descuentos.
Ejemplo (Bonos):
{%for bono in empleado.bonos%}
Nombre: {{bono.nombre}} Monto: {{bono.monto}}
{%endfor%}
Ejemplo (Permisos con condición):
{%for permiso in empleado.permisos%}
{%if permiso.nombre == "Permiso"%}
Inicio del permiso: {{permiso.inicio_permiso}}
{%endif%}
{%endfor%}
5. Filtros
Los filtros transforman el valor de las variables para presentarlas en un formato diferente. Se aplican usando el símbolo |
.
-
palabras
: Convierte números o fechas a su versión en palabras.-
Ejemplo:
{{sueldo | palabras}}
-
-
imagen
: Despliega una imagen a partir de su URL.-
Ejemplo:
{{empresa.logo | imagen: "200", "200"}}
(ancho, alto en píxeles)
-
-
formato_fecha
: Muestra una fecha en un formato específico.-
Ejemplo:
{{empleado.fecha_ingreso_compania | formato_fecha: "dd/mm/yyyy"}}
(resultado:01/01/2023
) -
Formatos:
yyyy
(año),mm
(mes),dd
(día),hh
(hora),MM
(minutos),ss
(segundos). -
Separadores:
'/'
,'-'
,' '
.
-
-
detalle_fecha
: Obtiene el día, mes o año de una fecha.-
Ejemplo:
{{fecha_de_hoy | detalle_fecha: "A"}}
(para año) -
Elementos:
"A"
(año),"M"
(mes),"D"
(día).
-
-
fecha_en_palabras
: Muestra la fecha escrita en palabras.-
Ejemplo:
{{fecha_de_hoy | fecha_en_palabras: "%A %d de %B de %Y"}}
(resultado:Lunes 04 de septiembre de 2023
) -
Formatos:
%A
(Nombre del día),%d
(Número del día),%b
(3 letras del mes),%B
(Nombre del mes),%Y
(Año 4 dígitos),%y
(Año 2 dígitos).
-
-
fecha_n_meses_al_futuro
: Muestra la fecha "01/mm/yyyy" N meses en el futuro.-
Ejemplo:
{{fecha_de_hoy | fecha_n_meses_al_futuro: "3"}}
-
-
remove_zero
: Elimina el.0
de un número.-
Ejemplo:
{{empleado.horas_semanales | remove_zero}}
-
-
monto_con_formato
: Muestra un monto con formato monetario (ej:$ ###.###
).-
Ejemplo:
{{empleado.total_descuentos_ultima_liquidacion | monto_con_formato}}
(resultado:$ 500.000
)
-
-
monto_con_decimales_a_palabras
: Convierte un número con decimales a palabras (decimales como fracción x/100).-
Ejemplo:
{{empleado.sueldo | monto_con_decimales_a_palabras}}
-
-
convertir_a_mayusculas
: Transforma el texto a mayúsculas.-
Ejemplo:
{{empleado.nombre_completo | convertir_a_mayusculas}}
-
6. Operadores
Puedes usar los siguientes operadores en las estructuras condicionales (if
):
-
==
(Igual a) -
!=
(Distinto a) -
greater_than
(Mayor que) -
less_than
(Menor que) -
greater_or_equal_than
(Mayor o igual que) -
less_or_equal_than
(Menor o Igual que) -
or
(O) -
and
(Y)