# Novedades de la versión

A continuación pasamos a comentar las novedades de la versión.

## VERP-1056

#### Gestión: en albaranes de compra comprobar el nº de albarán de proveedor para avisar de duplicidades

Objetos modificados/añadidos:

Proyecto de datos:

* Tabla COM\_ALB\_G: añadido el índice PRV\_NUM\_ALB\_PRV.

Proyecto de aplicación:

* Formulario COM\_ALB\_G:
  * Modificado manejador de evento BTN\_ACE\_PRE.
  * Nueva variable local: COM\_ALB.
  * Nuevo manejador de evento NUM\_ALB\_PRV\_CHK
  * Nuevas conexiones de evento NUM\_ALB\_PRV\_CHK y NUM\_ALB\_PRV\_ENT\_TIP\_CHK
* Nueva constante: ERR\_COM\_ALB\_NUM.

## VERP-1405

#### Ecosistema. Tallas y colores. No se refresca la vista de datos de tallas y colores cuando cambiamos el artículo en las líneas de un pedido

Se impide el cambio del artículo una vez que ya existe en la línea de pedido. Si se desea modificar el artículo tendremos que eliminar la línea primero y darla de alta de nuevo con los valores necesarios.

Proyecto de aplicación:

Objetos modificados

Formulario: VTA\_PED\_LIN\_G (Línea de pedido de venta)

Objetos creados

Carpeta: Recursos/Constantes/Mensajes

Constante: MSG\_NO\_PRM\_CMB\_ART (No se permite cambiar de artículo una vez dado de alta)

## VERP-1511

#### Gestión. En movimientos de almacén no era funcional el borrado de movimientos de tipo inventario.

Proyecto de aplicación:

Objetos modificados:

* Formulario: MOV\_G\_MOD (Línea de detalle de movimiento de almacén)

## VERP-1532

#### Tesorería. Se inhabilita la posibilidad de cambiar el estado de un cobro de forma manual

El motivo es porqué el estado de un vencimiento de cobro ya se gestiona de manera automática a través de las operaciones de cobro.

Objetos modificados:

Proyecto de aplicación: formulario VTO\_COB\_C\_DOC\_EST

* Control: combo VTO\_COB\_EST, cambiadas las siguientes propiedades:
  * Seleccionable con tabulador = falso.
  * Condición de activo = 0.

## VERP-1727 (implementado en versión 34.1)

#### Gestión. No se controla la generación de vencimientos de cobro/pago en la pestaña cobros/pagos de la factura de venta/compra

Si una factura tiene vencimientos generados cuyos estados son diferentes a “Pendiente”, los botones de generar cobros/pagos no lo tienen en cuenta y generan nuevos vencimientos innecesarios en la factura.

Se establece un control previo para no generar vencimientos si la factura ya tiene cobros/pagos que estén en estados diferentes a “Pendiente”.

Objetos nuevos:

* Proyecto de aplicación
  * Constantes MSG\_FAC\_COB\_GEN y MSG\_FAC\_PAG\_GEN

Objetos modificados:

* Proyecto de aplicación
  * Formularios VTA\_FAC\_G\_COB\_SCR y COM\_FAC\_G\_PAG\_SCR: manejadores de evento BTN\_GEN\_VTO

## VERP-1839 (implementado en versión 34.1)

**Contabilidad. La generación del asiento de variación de existencias como proceso anual solo puede ser funcional para el mes de cierre del ejercicio.**

Uno de los asientos anuales que vERP puede generar es el de variación de existencias del ejercicio (variación anual, entre la apertura y el cierre). En vERP esa tipología de asiento conlleva acumular en la tabla de saldos en los campos de variación de existencias. En vERP ese tipo de asiento (tipo “X”), en caso de hacerse, debe hacerse al final del ejercicio, en el mes de cierre y antes del de regularización, cierre y apertura.

Objetos nuevos:

* Proyecto de aplicación
  * Nueva constante ERR\_FCH\_VAR\_EXI

Objetos modificados:

* Proyecto de aplicación
  * Formulario GEN\_ASI\_EXF: nuevas variables locales ERR y MES\_CIE y modificado el manejador de evento BTN\_ACE\_PRE

## VERP-2142

#### Contabilidad. Si cambiamos un apunte ya contabilizado de una cuenta a otra, la cuenta de destino se recalcula pero la cuenta de origen no se recalcula.

Estando en el formulario APU\_C, en determinadas circunstancias, el recálculo de saldos en los apuntes de la cuenta inicial (origen) no se ejecutaba.

Objetos modificados:

* Proyecto de aplicación
  * Formulario APU\_C: nueva variable local SIG\_FCH\_CON\_ID y modificados manejadores de evento PRE\_INI y VER\_GUA\_REG

## VERP-2160

#### API REST. Actualización del estándar Swagger 2.0 => OpenAPI 3.0.3

Se ha actualizado la definición del estándar de respuesta del API REST desde Swagger 2.0 hacia OpenAPI 3.0.3. Al ser un cambio importante, se ha implementado un proceso igual al proceso “swagger” pero este llamado “openapi”, así mismo, un nuevo proceso V2 (similar a V1) con la finalidad de no alterar al funcionamiento actual y habilitar este nuevo estándar.

Lleva consigo la creación de la versión 2 del api rest, la cual lleva las siguientes mejoras:

* Cuando ocurre un error porque no es posible identificar la configuración API que va a utilizar (el apikey o token esta errado), ya no retorna un 200 sino retorna el código 401 de error que le corresponde.
* Tiene un parámetro opcional, el cual permite establecer que cuando ocurran errores con el consumo del apiKey, el código de retorno de error se fuerce siempre a 200 o sea el código que corresponda, esto es especialmente útil en casos de uso como integración con ChatGPT.
* Nuevo parámetro “filterQuery\[campo]=valor” el cual permite filtrar la lista resultante aplicando una condición de igualdad entre el campo y el valor.
* Los parámetros “filter\[indice]” ahora cambian por “index\[índice]”, aunque se mantiene compatibilidad con valores “filter” de la versión 1.
* Comportamiento del parámetro index\[indice]=valor
  * Si no se envía dicho parámetro, la lista resultante será la devuelta por el índice ID (si existe)
  * Si se envía 1 solo filter, la lista resultante será la devuelta por dicho índice y valor
  * Si se envían mas de 1 vez, la lista base o inicial será la que se corresponda con la primera aparición, y del parámetro 2 en adelante, se aplicara un añadir o quitar si se especifica, o por defecto un cruzar.
* Se controla para no colocar disponible los índices marcados con el estilo “privado” y también se controla que devuelva error si se intentan utilizar.
* Implementado uso del log, para documentar todas las peticiones que hacen al API.
* Incluye todas las mejoras involucradas en V1

&#x20;Objetos creados

* Proyecto de datos:
  * Procesos
    * OpenAPI => Proceso nuevo que ejecuta el script “openapi.js”
    * V2 => Proceso nuevo que ejecuta script “v2.js”
  * JavaScript
    * openapi.js
    * v2.js
    * api\_rest\_funciones\_v2.js

## VERP-2189

#### Contabilidad. Condición para indexar con un estado inexistente en vencimientos de pago

Proyecto de datos:

Tabla: VTA\_PG\_C (Vencimientos a pagar)

Modificada la condición de indexación del campo EMP\_DOC\_TIP\_CON\_VTO (Vencimientos pendientes o abonados que han llegado al vencimiento)

Se cambia:

`( #OFF = 0 ) & ( ( #EST = "P" ) | ( #EST = "B" ) ) & ( isEmpty( #AUX_BCO) = 0 )`

Por:

`( #OFF = 0 ) & ( ( #EST = "P" ) | ( #EST = "R" ) ) & ( isEmpty( #AUX_BCO) = 0 )`

## VERP-2199

#### vCRM. Cerrar ventanas de menús de maestros

Soporte → Configuración → Empresa => Mas que botón, se convirtió en formulario flotante, al igual que están las demás configuraciones.

Soporte → Diseño → CSS → CSS => Igual que el anterior

Soporte → Diseño → CSS → Temas => Igual que el anterior

## VERP-2205

#### General. La ejecución del proceso de migración versión 29 de vERP puede generar duplicidad de vencimientos.

En determinadas circunstancias, la ejecución del proceso de migración versión 29, que normalmente se ejecutará al pasar de un vERP 28 o anterior hacia un vERP posterior, puede generar la duplicidad de algunos vencimientos.

Objetos modificados:

* Proyecto de datos
  * Proceso MIG\_29\_0

## VERP-2220

#### Gestión. Modificación de índice en la tabla de artículos proveedores

Se modifica el índice ART\_FCH, compuesto por artículo y fecha, como acepta repetidas. Antes por error estaba como clave única.

Objetos modificados:

* Proyecto de datos
  * Tabla ART\_PRV\_G: índice ART\_FCH

## VERP-2225

#### Gestión documental. Permitir la conexión con buckets de acceso manual, como son los creados manualmente en nuevas regiones de Amazon.

Objetos modificados:

* Proyecto app
  * Formulario DOC\_W: nueva variable local TO y modificados manejadores BTN\_EDT y BTN\_VER
  * Función AWS\_SUB
  * Script Documentos/Amazons3.js

## VERP-2230

#### vTPV. Niveles de menú

Ampliado el control de los niveles de menu dinámico desde el vTPV, para que permite un máximo de hasta 18 caracteres igual a como se gestiona en el vERP

## VERP-2235 (implementado en versión 34.1)

#### Contabilidad. La búsqueda de cuentas del menú Mayor se cambia para tratar las auxiliares como números y no como actualmente cadenas de texto

Con este cambio se hace más lógico el uso del menú Mayor, ya que sin este cambio si por ejemplo pedimos el mayor desde la 4300.1 hasta la 4300.5 devolverá todas las cuentas desde la 4300.0000001 hasta la 4300.5000000. Con el cambio devolverá todas las cuentas desde la 4300.0000001 hasta la 4300.0000005.

Objetos nuevos:

* Proyecto de datos
  * Proceso MIG\_34\_0

Objetos modificados:

* Proyecto de datos
  * Tabla APU\_C: nuevo campo #AUX\_AUX y nuevo índice EMP\_PGC\_AUX\_FCH
  * Tabla APP\_CFG\_W: nuevo campo #MIG\_34\_0
* Proyecto de aplicación
  * Formulario APP\_CFG\_W\_DAT: añadido check MIG\_34\_0
  * Formulario APU\_C\_MAY\_MEN: manejador de evento BUS
  * Formulario CBA\_CAB\_C: manejador de evento CAR\_APU
  * Búsqueda APU\_C\_EXT
  * Proceso CTL\_CHG\_VER
  * Marco AUTOEXEC: manejador de evento PRE\_INI

## VERP-2240

#### Gestión Documental. Ampliado la capacidad de los campos de configuración para Google Drive donde se almacena la información del token.

Se ha ampliado la capacidad de almacenamiento de los campos destinados a guardar los datos de validación con Google Drive, para garantizar que en todo momento puedan guardar la información completa.

Objetos modificados:

* Proyecto de datos
  * Tabla EMP\_M: campos #DOC\_G\_DRI\_AUT\_COD, #DOC\_G\_DRI\_AUT\_REF\_TOK, #DOC\_G\_DRI\_AUT\_TOK, #DOC\_G\_DRI\_CLI\_ID y #DOC\_G\_DRI\_CLI\_SEC se amplía su longitud a 300.

## VERP-2245

#### General. Actualizada utilidades de "Usuarios del servidor"

Desde la utilidad “Usuarios del servidor”, a la que se accede desde el menú principal Configuración/Utilidades, ahora ya es posible crear/editar el mail del usuario.

Objetos modificados:

Proyecto de aplicación:

* Formulario USR
* Script vAdmin.js

## VERP-2250

#### General. Corregido índice ID\_ES\_TRJ para que indexe correctamente

Se corrige el índice ID\_ES\_TRJ para que indexe correctamente el campo ID

&#x20;**Objetos modificados**

* **Proyecto de datos**
  * Tablas
    * ENT\_M

## VERP-2256

#### API REST. Mejorado el uso de filters cuando se utilizan 2 o más filters y alguno de ellos va sin valor.

Cuando se utiliza 2 o más filters para buscar información de una tabla, y uno de ellos no lleva valor a resolver (porque se espera utilizar un índice previamente condicionado) el valor devuelto no es correcto, ya que las variables no se reinicializaban correctamente.

Objetos modificados:

* Proyecto de datos
  * Script: js/api\_rest\_v1/v1.js

## VERP-2261

#### Gestión. Añadido punto de inserción en los formularios ENT\_M\_COM y ENT\_M\_VTA.

Añadidos puntos de inserción en los formularios ENT\_M\_COM y ENT\_M\_VTA para seguir con el mismo criterio que en el resto de separadores de formularios de vERP.

Objetos nuevos:

* Proyecto de aplicación
  * Formularios: ENT\_M\_COM\_INS y ENT\_M\_VTA\_INS

Objetos modificados:

* Proyecto de aplicación
  * Formularios: ENT\_M\_COM y ENT\_M\_VTA

## VERP-2266

#### Contabilidad. Los informes de tributos: Relación de facturas recibidas y emitidas por serie, no reflejan el total de las bases

En los informes VERP\_TRB\_FAC\_REC y VERP\_TRB\_FAC\_EMI no se está pintando el total de bases porque estaba intentando pintar la variable TBASES cuando la variable que debe de usarse se llama TBAS.

Informes modificados:

VERP\_TRB\_FAC\_EMI - Tributos: Relación de facturas emitidas por serie\
VERP\_TRB\_FAC\_REC - Tributos: Relación de facturas recibidas por serie

## VERP-2275

#### Contabilidad. Cuando hay valores negativos en base exenta, no se traslada correctamente su valor en el cálculo del resumen de tributos.

Objetos modificados:

* Proyecto de aplicación
  * Procesos FAC\_EMI\_C\_CAL\_RES\_TRB y FAC\_REC\_C\_CAL\_RES\_TRB

## VERP-2280

#### Gestión. Cuando desde el menú de albaranes de compra se facturan albaranes, no se tienen en cuenta los porcentajes de retenciones de IRPF y alquiler.&#x20;

Objetos modificados:

* Proyecto de aplicación
  * Proceso COM\_ALB\_G\_FAC\_3P

## VERP-2285

#### API REST. Generar log de comunicaciones para el API REST

Habilitado nueva funcionalidad del API REST, que permite decidir a cual ApiKey se le puede activar un log de comunicaciones, la cual registra todas las comunicaciones que se realizan con dicha ApiKey. Por defecto, todos los intentos con error de validación son logueados.

Objetos modificados

* Proyecto de datos
  * Tablas
    * API\_KEY
  * JavaScript
    * swagger.js
    * v1,js
    * api\_rest\_funciones\_v1.js
* Proyecto de aplicación
  * Formularios
    * API\_KEY\_W

&#x20;Objetos nuevos

* Proyectos de datos
  * Tablas
    * LOG\_API\_RES
  * Funciones
    * GUA\_LOG\_API\_RES
* Proyecto de aplicación
  * Formularios
    * API\_KEY\_W\_LOG
  * Rejillas
    * LOG\_DE\_API\_RES
  * Procesos
  * API\_KEY\_W\_TO\_LOG\_API\_RES

## VERP-2290

#### General. Firma electrónica con Signaturit

Incorporadas en vERP nuevas funcionalidades para firmar electrónicamente presupuestos de venta y mandatos SEPA.

Plataforma de firma electrónica: [Signaturit](https://www.signaturit.com/es/). Documentos firmados con plena seguridad jurídica.

La activación de la firma electrónica se realiza a nivel de empresa. La configuración de la posición de la firma se hace por cada informe, pudiendo en el momento de iniciar el proceso de firma cambiarla para ese único proceso de firma. En cada presupuesto de venta y contacto se puede ver el detalle del proceso de firma.

Funcionalidades:

* Enviar documento a firmar electrónicamente (crear e iniciar proceso de firma).
* Consultar estado y detalle del proceso de firma.
* Cancelar proceso de firma.
* Eliminar proceso de firma.
* Cambiar firmante.
* Enviar recordatorio al firmante.
* Descargar documento firmado.
* Descargar adjuntos solicitados al firmante.
* Descargar audit trail.

Objetos nuevos:

* Proyecto de datos
  * Variables globales: FIR\_PLA, FIR\_SIG\_TOK, FIR\_SIG\_URL\_BAS
  * Tabla estática FIR\_PLA
  * Dibujo FIR\_SIG
  * Función JSN\_GRD
* Proyecto de aplicación
  * Carpeta scripts Signaturit
  * Constantes: ERR\_FIR\_SIG\_DAT\_OBL\_CHG\_SIG\_EML, ERR\_FIR\_SIG\_DAT\_OBL\_SIG\_EML, ERR\_FIR\_SIG\_MOT\_CNC, MSG\_FIR\_SIG\_CHG\_SIG\_EML, MSG\_FIR\_SIG\_CNC\_SIG, MSG\_FIR\_SIG\_CRE\_SIG, MSG\_FIR\_SIG\_DEL\_SIG, MSG\_FIR\_SIG\_DWN\_OK, MSG\_FIR\_SIG\_NO\_OK, MSG\_FIR\_SIG\_SEN\_REM, MSG\_NO\_INF\_FIR, PRG\_FIR\_SIG\_CHG\_SIG\_EML, PRG\_FIR\_SIG\_CNC\_SIG, PRG\_FIR\_SIG\_DEL\_SIG
  * Dibujo FIR\_ELE
  * Subcarpeta objetos Firma electrónica que está dentro de la carpeta Recursos
  * Formularios: EMP\_M\_CFG\_FIR, EMP\_M\_CFG\_FIR\_SIG, INF\_DEF\_W\_FIR

Objetos modificados:

* Proyecto de datos
  * Tabla EMP\_M: nuevos campos FIRMA\_ELECTRONICA\_\_\_, FIR\_PLA, FIR\_SIG\_TOK, FIR\_SIG\_URL\_BAS. Nuevo traspaso de campo FIR\_PLA
  * Tabla ENT\_M: nuevo campo FIR\_ELE
  * Tabla INF\_DEF\_W: nuevos campos FIRMA\_ELECTRONICA\_\_\_, FIR\_DIS, FIR\_SIG\_TIP\_FIR, FIR\_SIG\_FIR\_A\_CON\_CRT, FIR\_SIG\_ADJ, FIR\_SIG\_PAG, FIR\_SIG\_WRD, FIR\_SIG\_WID\_LFT, FIR\_SIG\_WID\_TOP, FIR\_SIG\_WID\_HEI, FIR\_SIG\_WID\_WID
  * Tabla VTA\_PRE\_G: nuevo campo FIR\_ELE
* Proyecto de aplicación
  * Proceso AUTOEXEC
  * Menús: ENT\_M\_BTN\_PRT\_MDT, VTA\_PRE\_G\_BTN\_OPC
  * Formulario EMP\_M: manejador BTN\_ACE\_PRE
  * Formularios ENT\_M\_CFG\_COB\_PAG, INF\_DEF\_W, VTA\_PRE\_G

## VERP-2291

#### vCRM. Nuevo módulo Whatsapp

**Objetos modificados**

* Proyecto aplicación
  * Formularios
    * PAR\_VZ\_V
    * GES\_V
  * Marco
    * AUTOEXEC
* Proyecto datos
  * Tablas
    * PAR\_VZ\_V
    * GES\_V
    * OPO\_V
  * Procesos
    * SO\_ALT\_GES\_TIP\_3P

**Objetos nuevos**

* Proyecto aplicación
  * Formularios
    * PAR\_WHP
    * WHP\_PLA\_MSJ\_V
    * WHP\_VAR\_PLA\_MSJ\_V
    * WHP\_VAR\_PLA\_MSJ\_GES\_V
    * WHP\_PLA\_MSJ\_GUI\_IDI
  * Rejillas
    * WHP\_PLA\_MSJ\_V
    * WHP\_VAR\_PLA\_MSJ\_V
    * WHP\_VAR\_PLA\_MSJ\_GES\_V\_COR
  * Procesos
    * PAR\_VZ\_GET\_WHP\_PLA\_MSJ
    * WHP\_PLA\_MSJ\_GET\_VAR
    * WHP\_VAR\_PLA\_MSJ\_V\_TXT
    * WHP\_VAR\_PLA\_MSJ\_V\_IMG\_VID\_ADJ
    * WHP\_VAR\_PLA\_MSJ\_V\_DAT\_TIM
    * WHP\_VAR\_PLA\_MSJ\_V\_CUR
    * GES\_V\_GET\_VAR\_PLA\_MSJ
    * GES\_V\_ACT\_VAR\_PLA
    * PAR\_VZ\_INI\_WHA
* Proyecto datos
  * Tablas
    * MIME\_TYPES
    * WHP\_PLA\_MSJ\_V
    * WHP\_VAR\_PLA\_MSJ\_V
    * WHP\_MSJ\_M
    * WHP\_FIC\_SUB\_M
    * WHP\_VAR\_PLA\_MSJ\_GES\_V
  * Estáticas
    * GRP\_VAR\_PLA\_MSJ
    * SUB\_GRP\_VAR\_PLA\_MSJ
    * TIP\_VAR\_PLA\_MSJ
  * Ficheros adjuntos
    * MIME\_TYPES
  * Procesos
    * BASE\_64\_TO\_FILE
    * IMPORTA MIME TYPES
    * IMPORTA MIME TYPES\_3P
    * CHECK\_MIME\_TYPES
    * WHATSAPP
    * WHATSAPP\_DESCARGAR\_ADJUNTO
    * WHATSAPP\_ENVIAR\_MENSAJE
    * WHATSAPP\_SUBIR\_ADJUNTO
  * Scripts
    * ajax.js
    * bas364ToFichero.js
    * descargarAdjunto.js
    * enviarMensaje.js
    * puntoEntradaWhatsapp.js
    * subirAdjunto.js
    * whatsapp.js
  * Constantes
    * URL\_FACEBOOK
    * VER\_API
  * Ficheros adjuntos
    * MIME\_TYPES

## VERP-2292

#### Ecosistema. vAgenda. Mejorada la búsqueda de eventos para que tome en cuenta los eventos relacionados al usuario.

Se ha mejorado la búsqueda de eventos en el momento de mostrar la agenda HTML, para que tome en cuenta también los eventos que son creados por otros usuarios pero están relacionados al usuario en curso.

Objetos modificados:

* Proyecto de aplicación
  * Formularios
    * AGE\_EVE: manejador COI\_EVE
    * AGE\_HTML: manejador AVI\_PRO\_EVE
    * AGE\_HTML\_SCR: nuevas variables locales y manejador AVI\_PRO\_EVE
  * Búsqueda AGE\_EVE\_FEC
  * Procesos AGE\_HTML y AGE\_HTML\_SCR

Objetos nuevos:

* Proyecto de aplicación
  * Procesos BUS\_EVE\_AGE

## VERP-2298

#### API REST. Agregado nueva seguridad para el API mediante Bearer por usuario

Ahora es posible definir que una API KEY no va a trabajar bajo el estándar de API KEY, sino bajo el estándar Bearer, permitiendo establecer credenciales de acceso por usuario. Esto permite que cada usuario pueda tener un token diferente y único, y al mismo tiempo permite tener control de que API KEY esta disponible para que a cada usuario se la active.

Se aprovecho la novedad del log del API para generar un log de todas las peticiones realizadas por el usuario del token.

&#x20;**Objetos modificados**

* Proyecto aplicación
  * Formularios
    * API\_KEY\_W
    * API\_KEY\_W\_GEN
    * USR\_M
  * Rejillas
* Proyecto de datos
  * Tablas
    * API\_KEY\_W
  * Scripts
    * api\_rest\_funciones\_v1.js
    * v1.js
    * swagger.js

&#x20;**Objetos nuevos**

* Proyecto de aplicación
  * Formularios
    * API\_USR\_W
    * API\_USR\_W\_DAT
    * API\_USR\_W\_LOG
    * USR\_M\_API\_USR
  * Rejillas
    * API\_KEY\_W\_SEL\_NOM
    * API\_USR\_API
  * Procesos
    * USR\_M\_TO\_API\_AUT
    * USR\_M\_TO\_API\_NO\_AUT
* Proyecto de datos
  * Tablas estáticas
    * TIP\_AUT\_W
  * Tablas
    * API\_USR\_W
  * Procesos
    * JWT\_PRO
  * Funciones
    * JWT\_ENCODE
    * JWT\_DECODE
  * Scripts
    * procesadorJWT.js

## VERP-2307

#### Ecosistema. vERPLatam. Al eliminar una factura de venta/compra también se borre su cuenta corriente si es posible

Al eliminar una factura de venta/compra se debe controlar y eliminar los registros de la tabla de cuenta corriente.

**Objetos modificados**

* Proyecto de aplicación
  * Formularios
    * VTA\_FAC\_G
    * COM\_FAC\_G

## VERP-2316

#### General. Configuración de usuario accesible para el propio usuario desde el dock del menu general

Se ha habilitado la posibilidad de que el propio usuario gestione su propio perfil, permitiéndole modificar los valores de configuracion general propios. Se ha habilitado el doble click sobre la etiqueta del nombre del usuario en curso, en el menu general de la izquierda.

**Objetos nuevos**

* **Proyecto de aplicación**
  * Formulario
    * USR\_M\_EDT\_PER
  * Procesos
    * USR\_M\_EDT\_PER
  * Acciones
    * USR\_M\_EDT\_PER

**Objetos modificados**

* **Proyecto de aplicación**
  * Formulario
    * MEN\_APP

## VERP-2321

#### General. Notificaciones de errores en verificaciones de formularios

**Objetos añadidos:**

* Proyecto de datos:
  * Nuevas constantes:
    * ERR\_CTT
    * ERR\_CTT\_REL
* Proyecto de aplicación:
  * Formularios:
    * API\_SEG\_W: creada variable local ERR
    * ART\_PRV\_G: creada variable local ERR
    * AUX\_C: creada variable local ERR
    * CBA\_CNC\_C: creada variable local ERR
    * CCO\_C: creada variable local ERR
    * CLA\_BET: creada variable local ERR
    * CNC\_C:: creada variable local ERR
    * COM\_FAC\_G:: creada variable local ERR
    * COM\_PED\_G:: creada variable local ERR
    * CTT\_M:: creada variable local ERR
    * DIS\_INF\_C:: creada variable local ERR
    * EMP\_M: creada variable local ERR
    * ENT\_REL\_M: creada variable local ERR
    * EXF\_C: creada variable local ERR
    * FAC\_EMI\_C: creada variable local ERR
    * FAC\_REC\_C: creada variable local ERR
    * FPG\_M: creada variable local ERR
    * INF\_C\_CAL; creada variable local ERR
    * INF\_DEF\_W: creada variable local ERR
    * INM\_C\_SCR: creada variable local ERR
    * MON\_M: creada variable local ERR
    * MOV\_G\_MOD: creada variable local ERR
    * PAG\_C: creada variable local ERR
    * PAI\_M: creada variable local ERR
    * PGC\_C: creada variable local ERR
    * PRE\_C: creada variable local ERR
    * REM\_COB\_C: creada variable local ERR
    * REM\_PAG\_C: creada variable local ERR
    * SCR\_W: creada variable local ERR
    * VTA\_ALB\_G: creada variable local ERR
    * VTA\_FAC\_G: creada variable local ERR
    * VTO\_PAG\_C: creada variable local ERR
    * VTA\_PED\_G: creada variable local ERR
    * VTA\_PED\_LIN\_G: creada variable local ERR
    * VTA\_PRE\_G: creada variable local ERR
    * VTA\_PRE\_LIN\_G: creada variable local ERR
    * VTA\_TAR\_ART\_G: creada variable local ERR
    * VTA\_TAR\_CLI\_G: creada variable local ERR

**Objetos modificados:**

* Proyecto de aplicación:
  * Formularios:
    * API\_KEY\_W: manejador de evento BTN\_ACE\_PRE
    * API\_SEG\_W: manejador de evento BTN\_ACE\_PRE
    * ART\_M: manejador de evento BTN\_ACE\_PRE
    * ART\_PRV\_G: manejador de evento BTN\_ACE\_PRE
    * ASI\_C: manejador de evento BTN\_ACE\_PRE
    * AUX\_C: manejador de evento BTN\_ACE\_PRE
    * BCO\_C: manejador de evento BTN\_ACE\_PRE
    * CBA\_CNC\_C: manejador de evento BTN\_ACE\_PRE
    * CCO\_C: manejador de evento BTN\_ACE\_PRE
    * CLA\_BET: manejador de evento BTN\_ACE\_PRE
    * CLF\_M: manejador de evento BTN\_ACE\_PRE
    * CNC\_C: manejador de evento BTN\_ACE\_PRE
    * COM\_ALB\_G: manejador de evento BTN\_ACE\_PRE
    * COM\_FAC\_G: manejador de evento BTN\_ACE\_PRE
    * COM\_PED\_G: manejador de evento BTN\_ACE\_PRE
    * COM\_PED\_LIN\_G: manejador de evento BTN\_ACE\_PRE
    * CSS\_INC\_W: manejador de evento BTN\_ACE\_PRE
    * CTT\_M: manejador de evento BTN\_ACE\_PRE
    * CTT\_TIP\_M: manejador de evento BTN\_ACE\_PRE
    * DIS\_INF\_C: manejador de evento BTN\_ACE\_PRE
    * DOC\_W: manejador de evento BTN\_ACE\_PRE
    * DOC\_TIP\_M: manejador de evento BTN\_ACE\_PRE
    * EJE\_C: manejador de evento BTN\_ACE\_PRE
    * EMP\_M: manejador de evento BTN\_ACE\_PRE
    * ENT\_CLF\_M: manejador de evento BTN\_ACE\_PRE
    * ENT\_REL\_M: manejador de evento BTN\_ACE\_PRE
    * EXF\_C: manejador de evento BTN\_ACE\_PRE
    * FAC\_EMI\_C: manejador de evento BTN\_ACE\_PRE
    * FAC\_REC\_C: manejador de evento BTN\_ACE\_PRE
    * FAM\_M: manejador de evento BTN\_ACE\_PRE
    * FPG\_M: manejador de evento BTN\_ACE\_PRE
    * GEN\_ASI\_EXF: manejador de evento BTN\_ACE
    * IDI\_M: manejador de evento BTN\_ACE
    * INF\_C\_CAL: manejador de evento BTN\_ACE\_PRE
    * INF\_DEF\_W: manejador de evento BTN\_ACE\_PRE
    * INM\_C\_SCR: manejador de evento BTN\_ACE\_PRE
    * MON\_M: manejador de evento BTN\_ACE\_PRE
    * MOV\_G\_COM: manejador de evento BTN\_ACE\_PRE
    * MOV\_G\_MOD: manejador de evento BTN\_ACE\_PRE
    * MOV\_G\_VTA: manejador de evento BTN\_ACE\_PRE
    * PAG\_C: manejador de evento BTN\_ACE\_PRE
    * PAI\_M: manejador de evento BTN\_ACE\_PRE
    * PGC\_C: manejador de evento BTN\_ACE\_PRE
    * PLA\_ASI\_C: manejador de evento BTN\_ACE\_PRE
    * PRE\_C: manejador de evento BTN\_ACE\_PRE
    * PRS\_MEN\_W: manejador de evento BTN\_ACE\_PRE
    * PRS\_OBJ\_W: manejador de evento BTN\_ACE
    * REL\_TIP\_M: manejador de evento BTN\_ACE
    * REM\_COB\_C: manejador de evento BTN\_ACE
    * REM\_NOR\_C: manejador de evento BTN\_ACE
    * REM\_PAG\_C: manejador de evento BTN\_ACE\_PRE
    * SCR\_W: manejador de evento BTN\_ACE\_PRE
    * SER\_M: manejador de evento BTN\_ACE\_PRE
    * USR\_M: manejador de evento BTN\_ACE\_PRE
    * USR\_VAR\_W\_FCH: manejador de evento BTN\_ACE\_PRE
    * VTA\_ALB\_G: manejador de evento BTN\_ACE\_PRE
    * VTA\_ALB\_G\_ALT: manejador de evento BTN\_ACE\_PRE
    * VTA\_FAC\_G: manejador de evento BTN\_ACE\_PRE
    * VTA\_PED\_G: manejador de evento BTN\_ACE\_PRE
    * VTA\_PED\_G\_ALT: manejador de evento BTN\_ACE\_PRE
    * VTA\_PED\_LIN\_G:
      * Manejador de evento BTN\_ACE\_PRE
      * Manejador de evento ACE\_NO
    * VTA\_PRE\_G: manejador de evento BTN\_ACE\_PRE
    * VTA\_PRE\_G\_ALT: manejador de evento BTN\_ACE\_PRE
    * VTA\_PRE\_LIN\_G: manejador de evento BTN\_ACE\_PRE
    * VTA\_TAR\_ART\_G: manejador de evento BTN\_ACE\_PRE
    * VTA\_TAR\_CLI\_G: manejador de evento BTN\_ACE\_PRE
    * VTO\_COB\_C: manejador de evento BTN\_ACE\_PRE
    * VTO\_PAG\_C: manejador de evento BTN\_ACE\_PRE

**Datos modificados:**

Añadidas a las css en la tabla de CSS la personalización de las notificciones.

## VERP-2326

#### General: incluido nuevo menú en stock para importar/exportar listas virtuales

**Objetos modificados:**

* Proyecto de aplicación:
  * Menú LST\_TOO
    * Quitadas acciones LST\_VRT\_GRB y LST\_VRT\_CRG
  * Menú LST:
    * Añadido menú en stock “Lista virtual”.
  * Menú LST\_REJ\_AVA:
    * Añadido menú en stock “Lista virtual”.

**Objetos eliminados:**

* Proyecto de aplicación:
  * Constantes:
    * ERR\_CAR\_LST\_VRT
    * LST\_VRT
  * Acciones:
    * LST\_VRT\_GRB
    * LST\_VRT\_CRG
  * Procesos:
    * LST\_VRT\_GRB
    * LST\_VRT\_CRG
  * Scripts:
    * vTools/listas/listasVirtuales/guardarListaVirtual.js
    * vTools/listas/listasVirtuales/listavirtual.js
    * vTools/listas/listasVirtuales/recuperarListaVirtual.js

## VERP-2327

#### General. Nuevo casillero de artículos

Nuevo objeto de lista de artículos disponibles en stock en el alternador.

Proyecto de aplicación:

Objetos creados:

* Casillero ART\_M

Objetos modificados:

* Alternador ART\_M

## VERP-2358

#### Diseño. Aplicación del tipo de ancho “máximo disponible” a columnas de rejillas avanzadas

Se ha establecido el valor "máximo disponible" en la propiedad "tipo de ancho" a las siguientes columnas de las rejillas avanzadas de las siguientes soluciones:

* **vERP:**
  * ALM\_M:
    * NAME
  * ART\_CON\_M:
    * CTA\_VTA
    * CTA\_COM
  * ART\_M:
    * NAME
  * ART\_M\_FAM:
    * NAME
  * ASI\_C:
    * SER\_FAC\_EMI
    * SER\_FAC\_REC
    * PLA
  * AUX\_C:
    * NAME
  * AYU\_W:
    * ID
    * NAME
    * URL
  * BCO\_C:
    * NOM
  * CBA\_CAB\_C:
    * AUX
  * CBA\_CAB\_C\_AUX:
    * MON
  * CBA\_CNC\_C:
    * NOM
  * CCO\_C:
    * NOM
  * CLA\_BET:
    * NAME
  * CLF\_M:
    * NAME
  * CNC\_C:
    * NOM
  * COM\_ALB\_G:
    * PRV\_ENT
  * COM\_FAC\_G:
    * PRV\_ENT
  * COM\_PED\_G:
    * PRV\_ENT
  * COS\_C:
    * CCO\_NOM
    * AUX\_NOM
  * COS\_C\_APU:
    * CCO\_NAM
  * COS\_C\_CCO:
    * AUX\_NOM
  * CSS\_W:
    * NAME
  * CTT\_M:
    * ENT
    * NAME
    * VAL
  * CTT\_TIP\_M:
    * NAME
  * DIR\_M:
    * ENT
    * NAME
    * DIR\_ETQ
  * DIS\_INF\_C:
    * NAME
    * DIS\_INF\_TOT\_POS
    * DIS\_INF\_TOT\_NEG
  * DOC\_TIP\_M:
    * NAME
  * DOC\_W:
    * TAB\_NOM
    * NAME
    * FIC\_NOM
  * EML\_ACH\_TIP\_W:
    * NAME
  * EML\_ACH\_W:
    * NAME
    * ACH\_TIP\_NAME
  * EML\_CTA\_W:
    * SRV
    * NOM
    * USR
  * EML\_PLA\_W:
    * NOM
    * ASU
  * EML\_SRV\_W\_MEN:
    * NOM
    * IP
  * EML\_W:
    * ASU
  * EMP\_M:
    * NAME
  * ENT\_CLF\_M:
    * ENT
    * CLF
  * ENT\_M:
    * NAME
  * EST\_ART\_G\_EJE:
    * ART
  * EST\_CLT\_G:
    * CLT
  * EST\_CLT\_G\_EJE:
    * CLT
  * EST\_CMR\_G\_EJE:
    * CMR
  * EST\_PRV\_G\_EJE:
    * PRV
  * EST\_TRB\_G\_IMP:
    * IMP\_VTA
    * IMP\_COM
  * EST\_TRB\_G\_RET
    * RET\_VTA
    * RET\_COM
  * EXF\_C:
    * AUX
  * EXS\_G\_ALM:
    * ART
  * EXS\_G\_ART:
    * ALM
  * FAC\_EMI\_C:
    * RAZ\_SOC
  * FAC\_REC\_C:
    * RAZ\_SOC
  * FAC\_REC\_C\_FIC\_REG\_111:
    * RAZ\_SOC
  * FAC\_REC\_C\_FIC\_REG\_303:
    * RAZ\_SOC
  * FAM\_M:
    * NAME
  * FIC\_W:
    * PLF
  * FPG\_M:
    * NAME
  * IDI\_M:
    * NAME
  * INF\_C:
    * INF
  * INF\_DEF\_W:
    * NAME
  * INM\_C:
    * NOM
  * INV\_VAL\_G:
    * ALM
    * FAM
    * ART\_NOM
  * MON\_M:
    * NOM
  * MOV\_G:
    * ART
    * ALM
    * CLT\_PRV\_NOM
  * MOV\_G\_COM\_ALB:
    * DSC\_EDT
  * MOV\_G\_COM\_FAC:
    * DSC\_EDT
  * MOV\_G\_DET:
    * ART
  * MOV\_G\_VTA\_ALB:
    * DSC\_EDT
  * PAI\_M:
    * NAME
  * PLA\_ASI\_C:
    * NOM
  * PLF\_W:
    * NOM
  * PLF\_W\_MEN:
    * NOM
  * PRE\_C:
    * CCO\_NOM
    * PGC\_AUX\_NOM
  * PRE\_C\_AUX:
    * CCO\_NOM
  * PRE\_C\_CCO:
    * PGC\_AUX\_NOM
  * PRE\_C\_PGC:
    * CCO\_NOM
  * PRE\_DES\_C:
    * CCO
    * PGC\_AUX\_NOM
  * PRE\_DES\_C\_AUX:
    * CCO
  * PRE\_DES\_C\_CCO:
    * PGC\_AUX\_NOM
  * PRE\_DES\_C\_PGC:
    * CCO
  * PRM\_DIC\_W:
    * NAME
  * PRM\_W:
    * USR\_GRP
    * PRM\_DIC
  * PRO\_M
    * NAME
    * PAI
  * PRO\_M\_PAI:
    * NAME
  * PRS\_MEN\_W:
    * NAME
  * PRS\_OBJ\_W:
    * NOM
  * REL\_TIP\_M:
    * NAME
  * REM\_COB\_C:
    * AUX\_BCO
  * REM\_NOR\_C:
    * NOM
  * REM\_PAG\_C:
    * AUX\_BCO
  * SCR\_W:
    * NAME
  * SER\_M:
    * NAME
    * SER\_TIP
  * TEM\_W:
    * NAME
    * TEM\_TIP
    * CSS\_W
  * TRA\_G:
    * ALM\_ORI
    * ALM\_DES
  * TUR\_T:
    * NOM
  * USR\_GRP\_M:
    * NAME
  * USR\_M:
    * NAME
  * VTA\_ALB\_G:
    * CLT\_ENT
  * VTA\_FAC\_G:
    * CLT\_ENT
  * VTA\_PED\_G:
    * CLT\_ENT
  * VTA\_PRE\_G:
    * CLT\_ENT
  * VTA\_TAR\_ART\_G:
    * ART
    * VTA\_TAR
  * VTA\_TAR\_CLI\_G:
    * ART
    * CLT\_ENT
  * VTA\_TAR\_G:
    * NAME
  * VTO\_COB\_C:
    * CLT\_NOM
    * DOC\_TIP
    * REM\_NOM
    * AUX\_BCO
  * VTO\_COB\_C\_AUX:
    * DOC\_TIP
    * REM\_NOM
  * VTO\_COB\_C\_VTA\_FAC:
    * DOC\_TIP
    * REM\_NOM
  * VTO\_PAG\_C:
    * PRV\_NOM
    * DOC\_TIP
    * AUX\_BCO
  * VTO\_PAG\_C\_AUX:
    * DOC\_TIP
* **vAgenda**
  * AGE\_PRF:
    * NAME
* **vCRM**
  * ENT\_M\_MEN:
    * NAME
    * NOM\_FIS
    * CTT\_PRN
    * DIR
    * LOC
    * PRO
    * PAI
    * CTT\_TIP
    * NOM\_COM
  * GES\_V\_ENT:
    * GES
  * OPO\_V\_ENT:
    * NAME
    * EST
    * TIP
  * OPO\_V\_VIS\_AVA:
    * EMP
    * EMP\_DIV
    * CMR
    * CTT
    * CTT\_REL
    * EST
    * MOT\_EST
    * NAME
    * OPO\_ORI
    * OPO\_TIP
  * RES\_V\_DET:
    * CLT
    * CMR
    * ART
    * OPO\_TIP
    * OPO\_ORI
    * PAI
    * PRO
* **vFacturaElectronica\_ESP**
  * ORG\_FAE\_M:
    * NAME
* **vKamban**
  * TAR:
    * NOM
    * PRO
    * STA
    * PRI
    * TIP

## VERP-2368

#### Contabilidad. Mensaje de error en vAdmin al seleccionar un modelo tributario

Eliminada la instrucción que ocasiona la aparición del mensaje “El comando de instrucción no se ejecuta en este plano. Seleccionar ficha de la lista” en el panel de mensajes del vAdmin. Ocurre porqué el proceso es lanzado en 3P y en ese plano la selección de ficha de una lista requiere de una interfaz rejilla, algo que en 3P no es posible. Además se ha eliminado la instrucción comentada “// Filtrar lista”.

Objetos modificados:

* Proyecto de aplicación
  * Proceso FIC\_W\_CRE\_REG\_LST\_REG

## VERP-2375

#### Contabilidad. Añadir columna porcentaje retención IRPF y retención alquiler en rejilla detallada de facturas recibidas de modelos tributarios. Corregir columna porcentaje IVA superreducido en rejilla recibidas y emitidas.

Objetos modificados:

* Proyecto de aplicación
  * Rejilla FAC\_REC\_C\_FIC\_REG\_303 y FAC\_EMI\_C\_FIC\_REG\_303
  * Rejilla avanzada FAC\_REC\_C\_FIC\_REG\_303 y FAC\_EMI\_C\_FIC\_REG\_303

## VERP-2382

#### Ecosistema. Factura Electrónica España corrección de bug en el menu de órganos para facturación electrónica

Se ha corregido un bug que no permitía buscar todos los órganos disponibles en el menu general de órganos para facturación electrónica.

Objetos modificados

* Búsqueda
  * ORG\_FAE\_M

## VERP-2388

#### General. Tabla maestra países. Modificado el índice ISO\_3 de la tabla PAI\_M porque no puede ser de clave única ya que hay países que comparten el mismo valor

Objetos modificados:

* Proyecto de datos:
  * Tabla PAI\_M:
    * Índice ISO\_3 pasa a ser acepta repetidas

También se han creado registros con todos los países y con estos datos: ISO-2, ISO-3, prefijo telefónico y su objeto dibujo bandera.

## VERP-2392

#### IA. Endpoints plugin contactos vERP para ChatGPT

Nuevos procesos endpoints para el plugin de contactos de vERP en ChatGPT.

Objetos modificados:

* Proyecto de datos
  * Tabla ENT\_M: nuevo índice TRO\_NOM\_FIS\_COM\_CIF

Objetos nuevos:

* Proyecto de aplicación
  * Procesos:
    * ALTA\_ENTIDAD\_BASICO y ALTA\_ENTIDAD\_BASICO\_3P: para dar de alta una entidad en vERP.
    * BUSCAR\_DATOS\_ASOCIADO\_ENTIDADES y BUSCAR\_DATOS\_ASOCIADO\_ENTIDADES\_3P: para obtener información de direcciones, teléfonos, emails, pedidos de compra, albaranes de compra, facturas de compra, presupuestos de venta, pedidos de venta, albaranes de venta y facturas de venta de una entidad.
    * BUSCAR\_ENTIDADES\_BASICO y BUSCAR\_ENTIDADES\_BASICO\_3P: para obtener la información básica principal de una entidad.
    * CONSULTAR\_DOCUMENTO y CONSULTAR\_DOCUMENTO\_3P: para obtener la información de un presupuesto de venta (cabecera, líneas de detalle y totales) de una entidad.
    * DATO\_ASOCIADO\_ENTIDADES y DATO\_ASOCIADO\_ENTIDADES\_3P: para dar de alta y/o modificar direcciones, teléfonos, emails y presupuestos de venta de una entidad.
    * MODIFICA\_ENTIDAD y MODIFICA\_ENTIDAD\_3P: para modificar datos básicos de la ficha principal de la entidad.

## VERP-2398 (implementado en versión 34.1)

**Contabilidad. Error en el balance de sumas y saldos si existe asiento de variación de existencias.**

Uno de los asientos anuales que vERP puede generar es el de variación de existencias del ejercicio (variación anual, entre la apertura y el cierre). En vERP esa tipología de asiento conlleva acumular en la tabla de saldos en los campos de variación de existencias. En vERP ese tipo de asiento, en caso de hacerse, debe hacerse al final del ejercicio y antes del de regularización, cierre y apertura. En la tabla SAL\_C existía un error en los campos fórmula #SUM\_DEB\_BSS y #SUM\_HAB\_BSS usados por el balance de sumas y saldos, y en donde siempre se estaba sumando la variación de existencias independientemente del mes de cierre de ejercicio. Esto hacía que una vez generado el asiento de tipo “X” variación existencias, que si sacábamos un balance de sumas y saldos de meses anteriores al cierre, que los saldos en el balance de sumas y saldos de las cuentas que intervienen en el asiento de tipo “X” fueran saldos incorrectos.

Objetos modificados:

* Proyecto de datos
  * Tabla SAL\_C: fórmula de los campos #SUM\_DEB\_BSS y #SUM\_HAB\_BSS

## VERP-2407 (implementado en versión 34.1)

**Contabilidad. Se asume valor de configuración incorrecto en el proceso de contabilización de facturas de compras.**

En la instrucción que comprueba si la delegación dispone de configuración hay un error. En vez de If ( !#EMP\_DIV.AUX\_VTA:isEmpty() ) debe ser If ( !#EMP\_DIV.AUX\_COM:isEmpty() )

Objetos modificados:

* Proyecto de aplicación
  * Proceso COM\_FAC\_G\_CON

## VERP-2417 (implementado en versión 34.1)

#### Contabilidad. Modificación del proceso de contabilización de operaciones de pago.

Relacionado con la novedad documentada de vERP 34 (<https://doc.velneo.com/velneo-verp/novedades-de-la-version-verp#verp-2189>)

Objetos modificados:

* Proyecto de aplicación
  * Proceso VTO\_PAG\_C\_OPE\_CON

## VERP-2442 (implementado en versión 34.1)

**Gestión. Signaturit. Correcciones menores.**

Se corrigen unas instrucciones que hacían aparecer en la barra de estado inferior el aviso de error de valor ilegal en JSON. Dicho aviso no provocaba ningún mal funcionamiento de la funcionalidad de Signaturit.

Se corrigen unas instrucciones en las que se usaba sysCacheClientPath + “/”, cuando no es necesario añadir + “/”. En algún determinado sistema podía hacer que la ruta no fuera válida.

Objeto modificados:

* Proyecto de aplicación
  * Formularios VTA\_PRE\_G y ENT\_M\_CFG\_COB\_PAG: manejadores de evento BTN\_REF\_FIR\_ELE\_EST y FIR\_ELE
  * Formulario FIR\_SIG: manejadores de evento BTN\_PRV y BTN\_CNC

## VERP-2466 (implementado en versión 34.1)

**Ecosistema. Agenda. Los controles 'Usuario' y 'Profesional' del menú general de citas ejecutan un menú de botón que no les corresponde.**

Objetos modificados:

* Proyecto de aplicación
  * Formulario AGE\_EVE\_MEN (Citas): controles USU (usuario) y PRF (Profesional) se les asigna el menú de botón correcto.

## VERP-2484 (implementado en versión 34.1)

**API REST. Error cuando se quiere enviar vacío a un campo objeto texto u objeto texto enriquecido.**

No asigna valor cuando se quiere asignar el valor vacío (limpiar contenido del campo) a un campo de tipo Objeto texto u Objeto Texto Enriquecido.

Objetos modificados:

* Proyecto de datos
  * Scripts js/api\_rest\_v1/v1 y js/api\_rest\_v2/v2

##
