En Capitally, funciones como Importar e Impuestos te permiten definir lógica compleja mediante un sencillo editor sin código. De hecho, todos los preajustes integrados se crean con este editor, por lo que puedes aprovechar todas las capacidades de la aplicación y adaptarla a tus necesidades.
Este artículo te guiará por la funcionalidad común. Consulta los artículos de Importar e Impuestos para obtener más detalles.
Bloques de construcción
Las plantillas se construyen usando Estados de cuenta. Cuando se evalúan, cada estado de cuenta se ejecuta uno por uno, hasta que se encuentra una instrucción Exit o se llega al final de la lista.
Cada vez que un estado de cuenta necesita evaluar un valor, se usa una expresión . Estas pueden ir desde un valor fijo, como un activo o un número concreto, pasando por un valor de propiedad, como una columna de datos o un tipo de operación, hasta fórmulas que permiten cálculos complejos.
Puedes tratarlo como un lenguaje de scripting sencillo o como una fórmula compleja de Excel. Ofrece conceptos básicos como estados de cuenta, expresiones, variables, funciones y bucles. Pero todo se construye de forma visual, sin necesidad de programar.
Fragmentos
Usa los fragmentos integrados como punto de partida. Puedes insertarlos desde cualquier lugar del menú Añadir estado de cuenta
Tomar decisiones con instrucciones If
El estado de cuenta más básico es la instrucción If . Te permite tomar decisiones basadas en cualquier propiedad y, si las condiciones se cumplen, se ejecutan los estados de cuenta anidados. Si no se cumplen, se comprueba el siguiente bloque else o else if .
Insertar estados de cuenta y bloques If
Para insertar un nuevo estado de cuenta, sitúa el cursor antes, después o entre los estados de cuenta existentes y haz clic en el divisor azul divisor que aparece y selecciona una instrucción o preajuste del menú.

Para insertar un nuevo bloque «If», pasa el cursor por el espacio antes, después o entre bloques if/else existentes y haz clic en el gris divisor que aparece

Modificarlos
Cada instrucción y bloque If tiene un menú que puedes usar para Copiar, Cortar, Duplicar y Eliminar.
Una vez que copies o cortes una instrucción, puedes pegarla de la misma forma en que añades nuevas instrucciones: aparecerá una opción Pegar.
Puedes copiar y pegar entre dos Preajustes fiscales distintos e incluso entre dos proyectos diferentes.
And / Or
Cuando se necesitan condiciones complejas, puedes envolver la primera condición dentro de un bloque And/Or y combinar múltiples condiciones de esta forma.

Establecer propiedades con la instrucción Set
Puedes modificar la propiedad o variable de un objeto con una instrucción Set . Simplemente elige la propiedad que deseas modificar e indica un valor.
La moneda de la comisión será la misma que la moneda del valor
Modificar el valor existente en lugar de reemplazarlo
Al hacer clic en el desplegable to puedes seleccionar distintos modos de asignación, como suma, multiplicación, añadir texto al final o al principio, entre otros.
El valor aumentará según la columna Importe, mientras que la Nota se añadirá con la Descripción
Transformar valores
Los valores escalares simples, como texto o números, pueden transformarse antes de ser asignados. Al hacer clic en fx puedes elegir una de las transformaciones. Puedes combinar varias transformaciones y reordenarlas arrastrando y soltando.
El valor se convertirá en el valor absoluto redondeado de la columna ImporteReemplazar texto
La transformación Replace te permite reemplazar las apariciones de un texto coincidente por otra cosa. Por ejemplo, puedes reemplazar una palabra (p. ej., .GR por .EU) o eliminar algo reemplazándolo por nada.

Replace también admite Expresiones regulares , incluidos los llamados grupos de captura y referencias inversas. Solo activa el botón (.*) .
Supongamos que tienes la cadena «apple orange banana» y quieres intercambiar las posiciones de las dos primeras palabras. Puedes usar el patrón ([a-z]+) [a-z]+ ([a-z]+) y reemplazarlo por $2 $1 para obtener «orange apple banana».
Extraer texto
En lugar de extraer, puedes simplemente hacer coincidir la parte de la cadena que debe usarse. Funciona mejor con Expresiones regulares, ya que se extraerá el primer grupo de captura.
Retomando el ejemplo anterior con «apple orange banana», usar [a-z]+ ([a-z]+) [a-z]+ extraerá únicamente la palabra del medio: «orange».
Mapear valores
Para algunas propiedades como el tipo de Activo o de Operación, también puedes mapear el valor de uno a otro. Haz clic en el icono S invertido junto a S icono junto a fx para añadir una asignación.
La asignación comprobará si el valor entrante supera una comparación. Si es así, se usará el valor seleccionado. Las asignaciones se evaluarán en secuencia y ganará la primera que coincida.

Conversión de valores entre tipos
Las propiedades pueden tener tipos incompatibles. Por ejemplo, un texto se convertirá automáticamente a número o fecha, siempre que contenga un valor reconocible (p. ej., 2024-11-01 o 1st Nov 2024).
Esto también funciona para Cuentas, Monedas, Mercados o Tipos de transacción, donde cualquier valor de texto se usará para buscar en los datos del proyecto o del mercado.
Para los activos, también puedes especificar qué tipos de activos y mercados deben incluirse y en qué orden de preferencia.

Definir variables
Como en cualquier lenguaje de scripting, puedes definir una variable para almacenar un valor y reutilizarlo más adelante. Cada variable tiene un tipo específico y un valor inicial. Una vez definida, puede referenciarse o establecerse como cualquier otra propiedad.
Por defecto, todas las variables son locales , es decir, solo están disponibles dentro del bloque en el que se declaran (incluidos los bloques anidados) y únicamente después de ser declaradas.
Puedes cambiarlas para que sean compartidas, lo que significa que su valor se inicializará una sola vez y estará disponible no solo en todo el programa, sino también entre sus invocaciones, como en cada fila de una importación o en cada evento fiscal.

Comentarios
Los cálculos solo serán útiles si comprendes los números. Puedes añadir comentarios con formato enriquecido en cualquier parte de la plantilla para describir mejor la lógica.
