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.0de 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)