6371-limpiezaTablasVn2008Part1 #1964
290
CHANGELOG.md
290
CHANGELOG.md
|
@ -5,299 +5,349 @@ All notable changes to this project will be documented in this file.
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [2408.01] - 2024-02-22
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
## [2406.01] - 2024-02-08
|
## [2406.01] - 2024-02-08
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
### Changed
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
## [2404.01] - 2024-01-25
|
## [2404.01] - 2024-01-25
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
### Changed
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
## [2402.01] - 2024-01-11
|
## [2402.01] - 2024-01-11
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
## [2400.01] - 2024-01-04
|
## [2400.01] - 2024-01-04
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
## [2350.01] - 2023-12-14
|
## [2350.01] - 2023-12-14
|
||||||
|
|
||||||
### Características Añadidas 🆕
|
### Características Añadidas 🆕
|
||||||
- **Tickets → Expediciones:** Añadido soporte para Viaexpress
|
|
||||||
|
|
||||||
|
- **Tickets → Expediciones:** Añadido soporte para Viaexpress
|
||||||
|
|
||||||
## [2348.01] - 2023-11-30
|
## [2348.01] - 2023-11-30
|
||||||
|
|
||||||
### Características Añadidas 🆕
|
### Características Añadidas 🆕
|
||||||
- **Tickets → Adelantar:** Permite mover lineas sin generar negativos
|
|
||||||
- **Tickets → Adelantar:** Permite modificar la fecha de los tickets
|
- **Tickets → Adelantar:** Permite mover lineas sin generar negativos
|
||||||
- **Trabajadores → Notificaciones:** Nueva sección (lilium)
|
- **Tickets → Adelantar:** Permite modificar la fecha de los tickets
|
||||||
|
- **Trabajadores → Notificaciones:** Nueva sección (lilium)
|
||||||
|
|
||||||
### Correcciones 🛠️
|
### Correcciones 🛠️
|
||||||
- **Tickets → RocketChat:** Arreglada detección de cambios
|
|
||||||
|
|
||||||
|
- **Tickets → RocketChat:** Arreglada detección de cambios
|
||||||
|
|
||||||
## [2346.01] - 2023-11-16
|
## [2346.01] - 2023-11-16
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
### Changed
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
## [2342.01] - 2023-11-02
|
## [2342.01] - 2023-11-02
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Usuarios -> Foto) Se muestra la foto del trabajador
|
|
||||||
### Fixed
|
|
||||||
- (Usuarios -> Historial) Abre el descriptor del usuario correctamente
|
|
||||||
|
|
||||||
|
- (Usuarios -> Foto) Se muestra la foto del trabajador
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- (Usuarios -> Historial) Abre el descriptor del usuario correctamente
|
||||||
|
|
||||||
## [2340.01] - 2023-10-05
|
## [2340.01] - 2023-10-05
|
||||||
|
|
||||||
## [2338.01] - 2023-09-21
|
## [2338.01] - 2023-09-21
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Ticket -> Servicios) Se pueden abonar servicios
|
|
||||||
- (Facturas -> Datos básicos) Muestra valores por defecto
|
- (Ticket -> Servicios) Se pueden abonar servicios
|
||||||
- (Facturas -> Borrado) Notificación al borrar un asiento ya enlazado en Sage
|
- (Facturas -> Datos básicos) Muestra valores por defecto
|
||||||
|
- (Facturas -> Borrado) Notificación al borrar un asiento ya enlazado en Sage
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- (Trabajadores -> Calendario) Icono de check arreglado cuando pulsas un tipo de dia
|
|
||||||
|
- (Trabajadores -> Calendario) Icono de check arreglado cuando pulsas un tipo de dia
|
||||||
|
|
||||||
## [2336.01] - 2023-09-07
|
## [2336.01] - 2023-09-07
|
||||||
|
|
||||||
## [2334.01] - 2023-08-24
|
## [2334.01] - 2023-08-24
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (General -> Errores) Botón para enviar cau con los datos del error
|
|
||||||
|
|
||||||
|
- (General -> Errores) Botón para enviar cau con los datos del error
|
||||||
|
|
||||||
## [2332.01] - 2023-08-10
|
## [2332.01] - 2023-08-10
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Trabajadores -> Gestión documental) Soporte para Docuware
|
|
||||||
- (General -> Agencia) Soporte para Viaexpress
|
- (Trabajadores -> Gestión documental) Soporte para Docuware
|
||||||
- (Tickets -> SMS) Nueva sección en Lilium
|
- (General -> Agencia) Soporte para Viaexpress
|
||||||
|
- (Tickets -> SMS) Nueva sección en Lilium
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- (General -> Tickets) Devuelve el motivo por el cual no es editable
|
|
||||||
- (Desplegables -> Trabajadores) Mejorados
|
- (General -> Tickets) Devuelve el motivo por el cual no es editable
|
||||||
- (General -> Clientes) Razón social y dirección en mayúsculas
|
- (Desplegables -> Trabajadores) Mejorados
|
||||||
|
- (General -> Clientes) Razón social y dirección en mayúsculas
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- (Clientes -> SMS) Al pasar el ratón por encima muestra el mensaje completo
|
|
||||||
|
|
||||||
|
- (Clientes -> SMS) Al pasar el ratón por encima muestra el mensaje completo
|
||||||
|
|
||||||
## [2330.01] - 2023-07-27
|
## [2330.01] - 2023-07-27
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Artículos -> Vista Previa) Añadido campo "Plástico reciclado"
|
|
||||||
- (Rutas -> Troncales) Nueva sección
|
- (Artículos -> Vista Previa) Añadido campo "Plástico reciclado"
|
||||||
- (Tickets -> Opciones) Opción establecer peso
|
- (Rutas -> Troncales) Nueva sección
|
||||||
- (Clientes -> SMS) Nueva sección
|
- (Tickets -> Opciones) Opción establecer peso
|
||||||
|
- (Clientes -> SMS) Nueva sección
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- (General -> Iconos) Añadidos nuevos iconos
|
|
||||||
- (Clientes -> Razón social) Permite crear clientes con la misma razón social según el país
|
|
||||||
|
|
||||||
|
- (General -> Iconos) Añadidos nuevos iconos
|
||||||
|
- (Clientes -> Razón social) Permite crear clientes con la misma razón social según el país
|
||||||
|
|
||||||
## [2328.01] - 2023-07-13
|
## [2328.01] - 2023-07-13
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Clientes -> Morosos) Añadida columna "es trabajador"
|
|
||||||
- (Trabajadores -> Departamentos) Nueva sección
|
- (Clientes -> Morosos) Añadida columna "es trabajador"
|
||||||
- (Trabajadores -> Departamentos) Añadido listado de Trabajadores por departamento
|
- (Trabajadores -> Departamentos) Nueva sección
|
||||||
- (Trabajadores -> Departamentos) Añadido características de departamento e información
|
- (Trabajadores -> Departamentos) Añadido listado de Trabajadores por departamento
|
||||||
|
- (Trabajadores -> Departamentos) Añadido características de departamento e información
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- (Trabajadores -> Departamentos) Arreglado búscador
|
|
||||||
|
|
||||||
|
- (Trabajadores -> Departamentos) Arreglado búscador
|
||||||
|
|
||||||
## [2326.01] - 2023-06-29
|
## [2326.01] - 2023-06-29
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Entradas -> Correo) Al cambiar el tipo de cambio enviará un correo a las personas designadas
|
|
||||||
- (General -> Históricos) Botón para ver el estado del registro en cada punto
|
- (Entradas -> Correo) Al cambiar el tipo de cambio enviará un correo a las personas designadas
|
||||||
- (General -> Históricos) Al filtar por registro se muestra todo el histórial desde que fue creado
|
- (General -> Históricos) Botón para ver el estado del registro en cada punto
|
||||||
- (Tickets -> Índice) Permite enviar varios albaranes a Docuware
|
- (General -> Históricos) Al filtar por registro se muestra todo el histórial desde que fue creado
|
||||||
|
- (Tickets -> Índice) Permite enviar varios albaranes a Docuware
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- (General -> Históricos) Los registros se muestran agrupados por usuario y entidad
|
|
||||||
- (Facturas -> Facturación global) Optimizada, generación de PDFs y notificaciones en paralelo
|
- (General -> Históricos) Los registros se muestran agrupados por usuario y entidad
|
||||||
|
- (Facturas -> Facturación global) Optimizada, generación de PDFs y notificaciones en paralelo
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- (General -> Históricos) Duplicidades eliminadas
|
|
||||||
- (Facturas -> Facturación global) Solucionados fallos que paran el proceso
|
- (General -> Históricos) Duplicidades eliminadas
|
||||||
|
- (Facturas -> Facturación global) Solucionados fallos que paran el proceso
|
||||||
|
|
||||||
## [2324.01] - 2023-06-15
|
## [2324.01] - 2023-06-15
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Tickets -> Abono) Al abonar permite crear el ticket abono con almacén o sin almmacén
|
|
||||||
- (General -> Desplegables) Mejorada eficiencia de carga de datos
|
- (Tickets -> Abono) Al abonar permite crear el ticket abono con almacén o sin almmacén
|
||||||
- (General -> Históricos) Ahora, ademas de los ids, se muestra la descripión de los atributos
|
- (General -> Desplegables) Mejorada eficiencia de carga de datos
|
||||||
- (General -> Históricos) Botón para hacer más ágil mostrar sólo los cambios en un registro
|
- (General -> Históricos) Ahora, ademas de los ids, se muestra la descripión de los atributos
|
||||||
- (General -> Históricos) Filtro por cambios
|
- (General -> Históricos) Botón para hacer más ágil mostrar sólo los cambios en un registro
|
||||||
|
- (General -> Históricos) Filtro por cambios
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- (General -> Permisos) Mejorada seguridad
|
|
||||||
- (General -> Históricos) Elementos de la interfaz reorganizados para hacerla más ágil e intuitiva
|
- (General -> Permisos) Mejorada seguridad
|
||||||
|
- (General -> Históricos) Elementos de la interfaz reorganizados para hacerla más ágil e intuitiva
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
-
|
-
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [2322.01] - 2023-06-01
|
## [2322.01] - 2023-06-01
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Tickets -> Crear Factura) Al facturar se envia automáticamente el pdf al cliente
|
|
||||||
- (Artículos -> Histórico) Filtro para mostrar lo anterior al inventario
|
- (Tickets -> Crear Factura) Al facturar se envia automáticamente el pdf al cliente
|
||||||
- (Trabajadores -> Nuevo trabajador) Permite elegir el método de pago
|
- (Artículos -> Histórico) Filtro para mostrar lo anterior al inventario
|
||||||
|
- (Trabajadores -> Nuevo trabajador) Permite elegir el método de pago
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- (Trabajadores -> Nuevo trabajador) Los clientes se crean sin 'TR' pero se añade tipo de negocio 'Trabajador'
|
|
||||||
- (Tickets -> Expediciones) Interfaz mejorada y contador añadido
|
- (Trabajadores -> Nuevo trabajador) Los clientes se crean sin 'TR' pero se añade tipo de negocio 'Trabajador'
|
||||||
|
- (Tickets -> Expediciones) Interfaz mejorada y contador añadido
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- (Tickets -> Líneas) Se permite hacer split de líneas al mismo ticket
|
|
||||||
- (Tickets -> Cambiar estado) Ahora muestra la lista completa de todos los estados
|
|
||||||
|
|
||||||
|
|
||||||
|
- (Tickets -> Líneas) Se permite hacer split de líneas al mismo ticket
|
||||||
|
- (Tickets -> Cambiar estado) Ahora muestra la lista completa de todos los estados
|
||||||
|
|
||||||
## [2320.01] - 2023-05-25
|
## [2320.01] - 2023-05-25
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Tickets -> Crear Factura) Al facturar se envia automáticamente el pdf al cliente
|
|
||||||
|
|
||||||
|
- (Tickets -> Crear Factura) Al facturar se envia automáticamente el pdf al cliente
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- (Trabajadores -> Nuevo trabajador) Los clientes se crean sin 'TR' pero se añade tipo de negocio 'Trabajador'
|
|
||||||
|
- (Trabajadores -> Nuevo trabajador) Los clientes se crean sin 'TR' pero se añade tipo de negocio 'Trabajador'
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
-
|
-
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [2318.01] - 2023-05-08
|
## [2318.01] - 2023-05-08
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Usuarios -> Histórico) Nueva sección
|
|
||||||
- (Roles -> Histórico) Nueva sección
|
- (Usuarios -> Histórico) Nueva sección
|
||||||
- (Trabajadores -> Dar de alta) Permite elegir el método de pago
|
- (Roles -> Histórico) Nueva sección
|
||||||
|
- (Trabajadores -> Dar de alta) Permite elegir el método de pago
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- (Artículo -> Precio fijado) Modificado el buscador superior por uno lateral
|
|
||||||
- (Trabajadores -> Dar de alta) Quitada obligatoriedad del iban
|
- (Artículo -> Precio fijado) Modificado el buscador superior por uno lateral
|
||||||
|
- (Trabajadores -> Dar de alta) Quitada obligatoriedad del iban
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- (Ticket -> Boxing) Arreglado selección de horas
|
|
||||||
- (Cesta -> Índice) Optimizada búsqueda
|
|
||||||
|
|
||||||
|
|
||||||
|
- (Ticket -> Boxing) Arreglado selección de horas
|
||||||
|
- (Cesta -> Índice) Optimizada búsqueda
|
||||||
|
|
||||||
## [2314.01] - 2023-04-20
|
## [2314.01] - 2023-04-20
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Clientes -> Morosos) Ahora se puede filtrar por las columnas "Desde" y "Fecha Ú. O.". También se envia un email al comercial cuando se añade una nota.
|
|
||||||
- (Monitor tickets) Muestra un icono al lado de la zona, si el ticket es frágil y se envía por agencia
|
- (Clientes -> Morosos) Ahora se puede filtrar por las columnas "Desde" y "Fecha Ú. O.". También se envia un email al comercial cuando se añade una nota.
|
||||||
- (Facturas recibidas -> Bases negativas) Nueva sección
|
- (Monitor tickets) Muestra un icono al lado de la zona, si el ticket es frágil y se envía por agencia
|
||||||
|
- (Facturas recibidas -> Bases negativas) Nueva sección
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- (Clientes -> Morosos) Ahora se mantienen los elementos seleccionados al hacer sroll.
|
|
||||||
|
- (Clientes -> Morosos) Ahora se mantienen los elementos seleccionados al hacer sroll.
|
||||||
|
|
||||||
## [2312.01] - 2023-04-06
|
## [2312.01] - 2023-04-06
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Monitor tickets) Muestra un icono al lado de la zona, si el ticket es frágil y se envía por agencia
|
|
||||||
|
- (Monitor tickets) Muestra un icono al lado de la zona, si el ticket es frágil y se envía por agencia
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- (Monitor tickets) Cuando se filtra por 'Pendiente' ya no muestra los estados de 'Previa'
|
|
||||||
- (Envíos -> Extra comunitarios) Se agrupan las entradas del mismo travel. Añadidos campos Referencia y Importe.
|
- (Monitor tickets) Cuando se filtra por 'Pendiente' ya no muestra los estados de 'Previa'
|
||||||
- (Envíos -> Índice) Cambiado el buscador superior por uno lateral
|
- (Envíos -> Extra comunitarios) Se agrupan las entradas del mismo travel. Añadidos campos Referencia y Importe.
|
||||||
|
- (Envíos -> Índice) Cambiado el buscador superior por uno lateral
|
||||||
|
|
||||||
## [2310.01] - 2023-03-23
|
## [2310.01] - 2023-03-23
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Trabajadores -> Control de horario) Ahora se puede confirmar/no confirmar el registro horario de cada semana desde esta sección
|
|
||||||
|
- (Trabajadores -> Control de horario) Ahora se puede confirmar/no confirmar el registro horario de cada semana desde esta sección
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- (Clientes -> Listado extendido) Resuelto error al filtrar por clientes inactivos desde la columna "Activo"
|
|
||||||
- (General) Al pasar el ratón por encima del icono de "Borrar" en un campo, se hacía más grande afectando a la interfaz
|
- (Clientes -> Listado extendido) Resuelto error al filtrar por clientes inactivos desde la columna "Activo"
|
||||||
|
- (General) Al pasar el ratón por encima del icono de "Borrar" en un campo, se hacía más grande afectando a la interfaz
|
||||||
|
|
||||||
## [2308.01] - 2023-03-09
|
## [2308.01] - 2023-03-09
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Proveedores -> Datos fiscales) Añadido checkbox 'Vies'
|
|
||||||
- (Client -> Descriptor) Nuevo icono $ con barrotes para los clientes con impago
|
- (Proveedores -> Datos fiscales) Añadido checkbox 'Vies'
|
||||||
- (Trabajador -> Datos Básicos) Añadido nuevo campo Taquilla
|
- (Client -> Descriptor) Nuevo icono $ con barrotes para los clientes con impago
|
||||||
- (Trabajador -> PDA) Nueva sección
|
- (Trabajador -> Datos Básicos) Añadido nuevo campo Taquilla
|
||||||
|
- (Trabajador -> PDA) Nueva sección
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- (Ticket -> Borrar ticket) Restringido el borrado de tickets con abono
|
|
||||||
|
- (Ticket -> Borrar ticket) Restringido el borrado de tickets con abono
|
||||||
|
|
||||||
## [2306.01] - 2023-02-23
|
## [2306.01] - 2023-02-23
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Tickets -> Datos Básicos) Mensaje de confirmación al intentar generar tickets con negativos
|
|
||||||
- (Artículos) El visible y disponible se calcula a partir de un almacén diferente dependiendo de la sección en la que te encuentres. Se ha añadido un icono que informa sobre a partir de que almacén se esta calculando.
|
- (Tickets -> Datos Básicos) Mensaje de confirmación al intentar generar tickets con negativos
|
||||||
|
- (Artículos) El visible y disponible se calcula a partir de un almacén diferente dependiendo de la sección en la que te encuentres. Se ha añadido un icono que informa sobre a partir de que almacén se esta calculando.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- (General -> Inicio) Ahora permite recuperar la contraseña tanto con el correo de recuperación como el usuario
|
|
||||||
|
- (General -> Inicio) Ahora permite recuperar la contraseña tanto con el correo de recuperación como el usuario
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- (Monitor de tickets) Cuando ordenas por columna, ya no se queda deshabilitado el botón de 'Actualizar'
|
|
||||||
- (Zone -> Días de entrega) Al hacer click en un día, muestra correctamente las zonas
|
- (Monitor de tickets) Cuando ordenas por columna, ya no se queda deshabilitado el botón de 'Actualizar'
|
||||||
- (Artículos) El disponible en la vista previa se muestra correctamente
|
- (Zone -> Días de entrega) Al hacer click en un día, muestra correctamente las zonas
|
||||||
|
- (Artículos) El disponible en la vista previa se muestra correctamente
|
||||||
|
|
||||||
## [2304.01] - 2023-02-09
|
## [2304.01] - 2023-02-09
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Rutas) Al descargar varias facturas se comprime en un zip
|
|
||||||
- (Trabajadores -> Nuevo trabajador) Nueva sección
|
- (Rutas) Al descargar varias facturas se comprime en un zip
|
||||||
- (Tickets -> Adelantar tickets) Añadidos campos "líneas" y "litros" al ticket origen
|
- (Trabajadores -> Nuevo trabajador) Nueva sección
|
||||||
- (Tickets -> Adelantar tickets) Nuevo icono muestra cuando las agencias de los tickets origen/destino son distintas
|
- (Tickets -> Adelantar tickets) Añadidos campos "líneas" y "litros" al ticket origen
|
||||||
|
- (Tickets -> Adelantar tickets) Nuevo icono muestra cuando las agencias de los tickets origen/destino son distintas
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- (Entradas -> Compras) Cambiados los campos "Precio Grouping/Packing" por "PVP" y "Precio" por "Coste"
|
|
||||||
- (Artículos -> Últimas entradas) Cambiados los campos "P.P.U." y "P.P.P." por "PVP"
|
- (Entradas -> Compras) Cambiados los campos "Precio Grouping/Packing" por "PVP" y "Precio" por "Coste"
|
||||||
- (Rutas -> Sumario/Tickets) Actualizados campos de los tickets
|
- (Artículos -> Últimas entradas) Cambiados los campos "P.P.U." y "P.P.P." por "PVP"
|
||||||
- (Proveedores -> Crear/Editar) Permite añadir Proveedores con la misma razón social pero con países distintos
|
- (Rutas -> Sumario/Tickets) Actualizados campos de los tickets
|
||||||
- (Tickets -> Adelantar tickets) Cambiados selectores de estado por checks "Pendiente origen/destino"
|
- (Proveedores -> Crear/Editar) Permite añadir Proveedores con la misma razón social pero con países distintos
|
||||||
- (Tickets -> Adelantar tickets) Cambiado stock de destino a origen.
|
- (Tickets -> Adelantar tickets) Cambiados selectores de estado por checks "Pendiente origen/destino"
|
||||||
|
- (Tickets -> Adelantar tickets) Cambiado stock de destino a origen.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- (Artículos -> Etiquetas) Permite intercambiar la relevancia entre dos etiquetas.
|
|
||||||
- (Cliente -> Datos Fiscales) No se permite seleccionar 'Notificar vía e-mail' a los clientes sin e-mail
|
- (Artículos -> Etiquetas) Permite intercambiar la relevancia entre dos etiquetas.
|
||||||
- (Tickets -> Datos básicos) Permite guardar la hora de envío
|
- (Cliente -> Datos Fiscales) No se permite seleccionar 'Notificar vía e-mail' a los clientes sin e-mail
|
||||||
- (Tickets -> Añadir pago) Eliminado "null" en las referencias
|
- (Tickets -> Datos básicos) Permite guardar la hora de envío
|
||||||
- (Tickets -> Adelantar tickets) Permite ordenar por importe
|
- (Tickets -> Añadir pago) Eliminado "null" en las referencias
|
||||||
- (Tickets -> Adelantar tickets) El filtrado por encajado muestra también los tickets sin tipo de encajado
|
- (Tickets -> Adelantar tickets) Permite ordenar por importe
|
||||||
|
- (Tickets -> Adelantar tickets) El filtrado por encajado muestra también los tickets sin tipo de encajado
|
||||||
|
|
||||||
## [2302.01] - 2023-01-26
|
## [2302.01] - 2023-01-26
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (General -> Inicio) Permite recuperar la contraseña
|
|
||||||
- (Tickets -> Opciones) Subir albarán a Docuware
|
- (General -> Inicio) Permite recuperar la contraseña
|
||||||
- (Tickets -> Opciones) Enviar correo con PDF de Docuware
|
- (Tickets -> Opciones) Subir albarán a Docuware
|
||||||
- (Artículos -> Datos Básicos) Añadido campo Unidades/Caja
|
- (Tickets -> Opciones) Enviar correo con PDF de Docuware
|
||||||
|
- (Artículos -> Datos Básicos) Añadido campo Unidades/Caja
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- (Reclamaciones -> Descriptor) Cambiado el campo Agencia por Zona
|
|
||||||
- (Tickets -> Líneas preparadas) Actualizada sección para que sea más visual
|
- (Reclamaciones -> Descriptor) Cambiado el campo Agencia por Zona
|
||||||
|
- (Tickets -> Líneas preparadas) Actualizada sección para que sea más visual
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- (General) Al utilizar el traductor de Google se descuadraban los iconos
|
|
||||||
|
- (General) Al utilizar el traductor de Google se descuadraban los iconos
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
- (Tickets -> Control clientes) Eliminada sección
|
|
||||||
|
- (Tickets -> Control clientes) Eliminada sección
|
||||||
|
|
|
@ -4,60 +4,60 @@ def PROTECTED_BRANCH
|
||||||
def FROM_GIT
|
def FROM_GIT
|
||||||
def RUN_TESTS
|
def RUN_TESTS
|
||||||
|
|
||||||
|
pre: {
|
||||||
|
switch (env.BRANCH_NAME) {
|
||||||
|
case 'test':
|
||||||
|
env.NODE_ENV = 'test'
|
||||||
|
env.BACK_REPLICAS = 2
|
||||||
|
break
|
||||||
|
case 'master':
|
||||||
|
env.NODE_ENV = 'production'
|
||||||
|
env.BACK_REPLICAS = 4
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
env.NODE_ENV = 'dev'
|
||||||
|
env.BACK_REPLICAS = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
PROTECTED_BRANCH = [
|
||||||
|
'dev',
|
||||||
|
'test',
|
||||||
|
'master'
|
||||||
|
].contains(env.BRANCH_NAME)
|
||||||
|
|
||||||
|
FROM_GIT = env.JOB_NAME.startsWith('gitea/')
|
||||||
|
RUN_TESTS = !PROTECTED_BRANCH && FROM_GIT
|
||||||
|
|
||||||
|
// Uncomment to enable debugging
|
||||||
|
// https://loopback.io/doc/en/lb3/Setting-debug-strings.html#debug-strings-reference
|
||||||
|
//env.DEBUG = 'strong-remoting:shared-method'
|
||||||
|
}
|
||||||
|
node {
|
||||||
|
stage('Setup') {
|
||||||
|
def packageJson = readJSON file: 'package.json'
|
||||||
|
env.VERSION = packageJson.version
|
||||||
|
|
||||||
|
env.GIT_COMMIT_MSG = sh(
|
||||||
|
script: 'git log -1 --pretty=%B ${GIT_COMMIT}',
|
||||||
|
returnStdout: true
|
||||||
|
).trim()
|
||||||
|
|
||||||
|
setEnv()
|
||||||
|
}
|
||||||
|
}
|
||||||
pipeline {
|
pipeline {
|
||||||
agent any
|
agent any
|
||||||
options {
|
options {
|
||||||
disableConcurrentBuilds()
|
disableConcurrentBuilds()
|
||||||
}
|
}
|
||||||
|
tools {
|
||||||
|
nodejs 'node-v20'
|
||||||
|
}
|
||||||
environment {
|
environment {
|
||||||
PROJECT_NAME = 'salix'
|
PROJECT_NAME = 'salix'
|
||||||
STACK_NAME = "${env.PROJECT_NAME}-${env.BRANCH_NAME}"
|
STACK_NAME = "${env.PROJECT_NAME}-${env.BRANCH_NAME}"
|
||||||
}
|
}
|
||||||
tools {
|
|
||||||
nodejs 'node-v20'
|
|
||||||
}
|
|
||||||
stages {
|
stages {
|
||||||
stage('Checkout') {
|
|
||||||
steps {
|
|
||||||
script {
|
|
||||||
// Uncomment to enable debugging
|
|
||||||
//env.DEBUG = 'strong-remoting:http-context,strong-remoting:shared-method'
|
|
||||||
|
|
||||||
switch (env.BRANCH_NAME) {
|
|
||||||
case 'dev':
|
|
||||||
env.NODE_ENV = 'dev'
|
|
||||||
env.BACK_REPLICAS = 1
|
|
||||||
break
|
|
||||||
case 'test':
|
|
||||||
env.NODE_ENV = 'test'
|
|
||||||
env.BACK_REPLICAS = 2
|
|
||||||
break
|
|
||||||
case 'master':
|
|
||||||
env.NODE_ENV = 'production'
|
|
||||||
env.BACK_REPLICAS = 4
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
def packageJson = readJSON file: 'package.json'
|
|
||||||
env.VERSION = packageJson.version
|
|
||||||
|
|
||||||
env.GIT_COMMIT_MSG = sh(
|
|
||||||
script: 'git log -1 --pretty=%B ${GIT_COMMIT}',
|
|
||||||
returnStdout: true
|
|
||||||
).trim()
|
|
||||||
|
|
||||||
PROTECTED_BRANCH = [
|
|
||||||
'dev',
|
|
||||||
'test',
|
|
||||||
'master'
|
|
||||||
].contains(env.BRANCH_NAME)
|
|
||||||
|
|
||||||
FROM_GIT = JOB_NAME.startsWith('gitea/')
|
|
||||||
RUN_TESTS = !PROTECTED_BRANCH && FROM_GIT
|
|
||||||
}
|
|
||||||
setEnv()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Install') {
|
stage('Install') {
|
||||||
environment {
|
environment {
|
||||||
NODE_ENV = ""
|
NODE_ENV = ""
|
||||||
|
@ -70,7 +70,7 @@ pipeline {
|
||||||
}
|
}
|
||||||
stage('Frontend') {
|
stage('Frontend') {
|
||||||
when {
|
when {
|
||||||
expression { return FROM_GIT }
|
expression { FROM_GIT }
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
sh 'npm install --no-audit --prefer-offline --prefix=front'
|
sh 'npm install --no-audit --prefer-offline --prefix=front'
|
||||||
|
@ -78,7 +78,7 @@ pipeline {
|
||||||
}
|
}
|
||||||
stage('Print') {
|
stage('Print') {
|
||||||
when {
|
when {
|
||||||
expression { return FROM_GIT }
|
expression { FROM_GIT }
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
sh 'npm install --no-audit --prefer-offline --prefix=print'
|
sh 'npm install --no-audit --prefer-offline --prefix=print'
|
||||||
|
@ -88,7 +88,7 @@ pipeline {
|
||||||
}
|
}
|
||||||
stage('Test') {
|
stage('Test') {
|
||||||
when {
|
when {
|
||||||
expression { return RUN_TESTS }
|
expression { RUN_TESTS }
|
||||||
}
|
}
|
||||||
environment {
|
environment {
|
||||||
NODE_ENV = ""
|
NODE_ENV = ""
|
||||||
|
@ -109,7 +109,7 @@ pipeline {
|
||||||
}
|
}
|
||||||
stage('Build') {
|
stage('Build') {
|
||||||
when {
|
when {
|
||||||
expression { return PROTECTED_BRANCH && FROM_GIT }
|
expression { PROTECTED_BRANCH && FROM_GIT }
|
||||||
}
|
}
|
||||||
environment {
|
environment {
|
||||||
CREDENTIALS = credentials('docker-registry')
|
CREDENTIALS = credentials('docker-registry')
|
||||||
|
@ -121,7 +121,7 @@ pipeline {
|
||||||
}
|
}
|
||||||
stage('Deploy') {
|
stage('Deploy') {
|
||||||
when {
|
when {
|
||||||
expression { return PROTECTED_BRANCH }
|
expression { PROTECTED_BRANCH }
|
||||||
}
|
}
|
||||||
parallel {
|
parallel {
|
||||||
stage('Database') {
|
stage('Database') {
|
||||||
|
@ -139,7 +139,7 @@ pipeline {
|
||||||
}
|
}
|
||||||
stage('Docker') {
|
stage('Docker') {
|
||||||
when {
|
when {
|
||||||
expression { return FROM_GIT }
|
expression { FROM_GIT }
|
||||||
}
|
}
|
||||||
environment {
|
environment {
|
||||||
DOCKER_HOST = "${env.SWARM_HOST}"
|
DOCKER_HOST = "${env.SWARM_HOST}"
|
||||||
|
|
|
@ -47,7 +47,7 @@ BEGIN
|
||||||
LEFT JOIN vn.deliveryMethod dm ON dm.id = a.Vista
|
LEFT JOIN vn.deliveryMethod dm ON dm.id = a.Vista
|
||||||
LEFT JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = t.Id_Consigna
|
LEFT JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = t.Id_Consigna
|
||||||
LEFT JOIN vn2008.province p ON p.province_id = cs.province_id
|
LEFT JOIN vn2008.province p ON p.province_id = cs.province_id
|
||||||
LEFT JOIN vn2008.warehouse w ON w.id = t.warehouse_id
|
LEFT JOIN vn.warehouse w ON w.id = t.warehouse_id
|
||||||
WHERE bt.fecha >= vLastMonth AND r.mercancia;
|
WHERE bt.fecha >= vLastMonth AND r.mercancia;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -2,7 +2,7 @@ DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`ekt_scan`(vBarcode VARCHAR(512))
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`ekt_scan`(vBarcode VARCHAR(512))
|
||||||
BEGIN
|
BEGIN
|
||||||
/**
|
/**
|
||||||
* Busca transaciones a partir de un código de barras, las marca como escaneadas
|
* Busca transaciones a partir de un codigo de barras, las marca como escaneadas
|
||||||
* y las devuelve.
|
* y las devuelve.
|
||||||
* Ver https://wiki.verdnatura.es/index.php/Ekt#Algoritmos_de_lectura
|
* Ver https://wiki.verdnatura.es/index.php/Ekt#Algoritmos_de_lectura
|
||||||
*
|
*
|
||||||
|
@ -73,7 +73,7 @@ BEGIN
|
||||||
INSERT INTO tmp.ekt
|
INSERT INTO tmp.ekt
|
||||||
SELECT id
|
SELECT id
|
||||||
FROM ekt
|
FROM ekt
|
||||||
WHERE fec = vFec
|
WHERE fec >= vFec - INTERVAL 1 DAY
|
||||||
AND ((
|
AND ((
|
||||||
vKlo = vDefaultKlo
|
vKlo = vDefaultKlo
|
||||||
AND (klo = vKlo OR klo IS NULL OR klo = 0)
|
AND (klo = vKlo OR klo IS NULL OR klo = 0)
|
||||||
|
@ -82,7 +82,7 @@ BEGIN
|
||||||
AND auction = vAuction
|
AND auction = vAuction
|
||||||
AND agj = vShortAgj)
|
AND agj = vShortAgj)
|
||||||
)
|
)
|
||||||
ORDER BY agj DESC
|
ORDER BY agj DESC, fec DESC
|
||||||
LIMIT 1;
|
LIMIT 1;
|
||||||
|
|
||||||
SELECT COUNT(*) FROM tmp.ekt INTO vIsFound;
|
SELECT COUNT(*) FROM tmp.ekt INTO vIsFound;
|
||||||
|
|
|
@ -74,6 +74,8 @@ BEGIN
|
||||||
WHERE b.id = vSelf;
|
WHERE b.id = vSelf;
|
||||||
|
|
||||||
END IF;
|
END IF;
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
||||||
|
SELECT vSelf id;
|
||||||
|
CALL buy_checkItem();
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`buy_checkItem`()
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Checks if the item has weightByPiece or size null on any buy.
|
||||||
|
*
|
||||||
|
* @param tmp.buysToCheck(id as INT).
|
||||||
|
*/
|
||||||
|
DECLARE hasVolumetricAgency INT;
|
||||||
|
|
||||||
|
SELECT a.hasWeightVolumetric INTO hasVolumetricAgency
|
||||||
|
FROM entry e
|
||||||
|
JOIN travel t ON t.id = e.travelFk
|
||||||
|
JOIN agencyMode a ON a.id = t.agencyModeFk
|
||||||
|
JOIN buy b ON b.entryFk = e.id
|
||||||
|
JOIN item i ON i.id = b.itemFk
|
||||||
|
JOIN tmp.buysToCheck bt ON bt.id = b.id
|
||||||
|
WHERE (i.weightByPiece IS NULL OR i.`size` IS NULL)
|
||||||
|
AND a.hasWeightVolumetric
|
||||||
|
LIMIT 1;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp.buysToCheck;
|
||||||
|
|
||||||
|
IF hasVolumetricAgency THEN
|
||||||
|
CALL util.throw('Some purchase line has an item without size or weight per stem in the volumetric agency.');
|
||||||
|
END IF;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -88,6 +88,7 @@ BEGIN
|
||||||
FROM vn.expeditionTruck
|
FROM vn.expeditionTruck
|
||||||
WHERE eta < v3Month;
|
WHERE eta < v3Month;
|
||||||
|
|
||||||
|
DELETE FROM XDiario WHERE FECHA < v3Month OR FECHA IS NULL;
|
||||||
-- borrar travels sin entradas
|
-- borrar travels sin entradas
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.thermographToDelete;
|
DROP TEMPORARY TABLE IF EXISTS tmp.thermographToDelete;
|
||||||
CREATE TEMPORARY TABLE tmp.thermographToDelete
|
CREATE TEMPORARY TABLE tmp.thermographToDelete
|
||||||
|
|
|
@ -44,7 +44,7 @@ BEGIN
|
||||||
|
|
||||||
IF vCounter > 0 OR vASIEN > 0 THEN
|
IF vCounter > 0 OR vASIEN > 0 THEN
|
||||||
|
|
||||||
UPDATE vn2008.XDiario x
|
UPDATE vn.XDiario x
|
||||||
JOIN vn.ledgerConfig lc ON lc.lastBookEntry = x.ASIEN
|
JOIN vn.ledgerConfig lc ON lc.lastBookEntry = x.ASIEN
|
||||||
SET x.ASIEN = vASIEN;
|
SET x.ASIEN = vASIEN;
|
||||||
|
|
||||||
|
|
|
@ -21,11 +21,8 @@ BEGIN
|
||||||
DECLARE vAgencyModeFk INT;
|
DECLARE vAgencyModeFk INT;
|
||||||
DECLARE vNewPrice DECIMAL(10,2);
|
DECLARE vNewPrice DECIMAL(10,2);
|
||||||
DECLARE vOldPrice DECIMAL(10,2);
|
DECLARE vOldPrice DECIMAL(10,2);
|
||||||
DECLARE vOption INT DEFAULT NULL;
|
DECLARE vOption VARCHAR(255);
|
||||||
DECLARE vNewSaleFk INT;
|
DECLARE vNewSaleFk INT;
|
||||||
DECLARE vChangePrice INT DEFAULT 1;
|
|
||||||
DECLARE vBuyerDiscount INT DEFAULT 4;
|
|
||||||
DECLARE vManaDiscount INT DEFAULT 3;
|
|
||||||
DECLARE vForceToGrouping INT DEFAULT 1;
|
DECLARE vForceToGrouping INT DEFAULT 1;
|
||||||
DECLARE vForceToPacking INT DEFAULT 2;
|
DECLARE vForceToPacking INT DEFAULT 2;
|
||||||
DECLARE vFinalPrice DECIMAL(10,2);
|
DECLARE vFinalPrice DECIMAL(10,2);
|
||||||
|
@ -85,16 +82,13 @@ BEGIN
|
||||||
IF vNewPrice IS NULL THEN
|
IF vNewPrice IS NULL THEN
|
||||||
CALL util.throw('price retrieval failed');
|
CALL util.throw('price retrieval failed');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF vNewPrice > vOldPrice THEN
|
IF vNewPrice > vOldPrice THEN
|
||||||
SET vFinalPrice = vOldPrice;
|
SET vFinalPrice = vOldPrice;
|
||||||
IF worker_isInDepartment('vt') THEN
|
SET vOption = 'substitution';
|
||||||
SET vOption = vManaDiscount;
|
|
||||||
ELSE
|
|
||||||
SET vOption = vBuyerDiscount;
|
|
||||||
END IF;
|
|
||||||
ELSE
|
ELSE
|
||||||
SET vFinalPrice = vNewPrice;
|
SET vFinalPrice = vNewPrice;
|
||||||
SET vOption = vChangePrice;
|
SET vOption = 'renewPrices';
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
|
|
|
@ -31,8 +31,8 @@ BEGIN
|
||||||
CALL util.throw('ASSIGN_ZONE_FIRST');
|
CALL util.throw('ASSIGN_ZONE_FIRST');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
SET vCanChangeState = (
|
SET vCanChangeState = ((
|
||||||
vStateCode <> 'ON_CHECKING' OR
|
vStateCode <> 'ON_CHECKING' AND vStateCode <> 'CHECKED') OR
|
||||||
vticketAlertLevel < vPackedAlertLevel
|
vticketAlertLevel < vPackedAlertLevel
|
||||||
)AND NOT (
|
)AND NOT (
|
||||||
vTicketStateCode IN ('CHECKED', 'CHECKING')
|
vTicketStateCode IN ('CHECKED', 'CHECKING')
|
||||||
|
@ -51,5 +51,6 @@ BEGIN
|
||||||
ELSE
|
ELSE
|
||||||
CALL util.throw('INCORRECT_TICKET_STATE');
|
CALL util.throw('INCORRECT_TICKET_STATE');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -41,8 +41,8 @@ trig:BEGIN
|
||||||
FROM genericAllocation ga
|
FROM genericAllocation ga
|
||||||
JOIN entry e ON e.id = NEW.entryFk
|
JOIN entry e ON e.id = NEW.entryFk
|
||||||
JOIN travel tr on tr.id = e.travelFk
|
JOIN travel tr on tr.id = e.travelFk
|
||||||
WHERE ga.itemFk = vGenericFk
|
WHERE ga.itemFk = vGenericFk
|
||||||
AND tr.landed BETWEEN ga.startDated AND ga.endDated;
|
AND tr.landed BETWEEN ga.startDated AND ga.endDated;
|
||||||
IF vGenericInDate THEN
|
IF vGenericInDate THEN
|
||||||
SET NEW.itemOriginalFk = NEW.itemFk;
|
SET NEW.itemOriginalFk = NEW.itemFk;
|
||||||
SET NEW.itemFk = vGenericFk;
|
SET NEW.itemFk = vGenericFk;
|
||||||
|
@ -64,5 +64,12 @@ trig:BEGIN
|
||||||
IF NEW.quantity < 0 THEN
|
IF NEW.quantity < 0 THEN
|
||||||
SET NEW.isIgnored = TRUE;
|
SET NEW.isIgnored = TRUE;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
IF NOT (NEW.itemFk <=> OLD.itemFk) OR
|
||||||
|
NOT (OLD.entryFk <=> NEW.entryFk) THEN
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
||||||
|
SELECT NEW.id;
|
||||||
|
CALL buy_checkItem();
|
||||||
|
END IF;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -13,5 +13,15 @@ BEGIN
|
||||||
CALL travel_requestRecalc(OLD.travelFk);
|
CALL travel_requestRecalc(OLD.travelFk);
|
||||||
CALL travel_requestRecalc(NEW.travelFk);
|
CALL travel_requestRecalc(NEW.travelFk);
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
|
||||||
|
IF NOT (NEW.travelFk <=> OLD.travelFk) THEN
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
||||||
|
SELECT b.id
|
||||||
|
FROM buy b
|
||||||
|
WHERE b.entryFk = NEW.id;
|
||||||
|
|
||||||
|
CALL buy_checkItem();
|
||||||
|
END IF;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -10,5 +10,18 @@ BEGIN
|
||||||
SET commission = entry_getCommission(travelFk, currencyFk,supplierFk)
|
SET commission = entry_getCommission(travelFk, currencyFk,supplierFk)
|
||||||
WHERE travelFk = NEW.id;
|
WHERE travelFk = NEW.id;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
IF NOT (NEW.agencyModeFk <=> OLD.agencyModeFk) THEN
|
||||||
|
IF (SELECT hasWeightVolumetric FROM agencyMode WHERE id = NEW.agencyModeFk) THEN
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.buysToCheck
|
||||||
|
SELECT b.id
|
||||||
|
FROM entry e
|
||||||
|
JOIN buy b ON b.entryFk = e.id
|
||||||
|
JOIN item i ON i.id = b.itemFk
|
||||||
|
WHERE e.travelFk = NEW.id;
|
||||||
|
|
||||||
|
CALL buy_checkItem();
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
|
@ -4,15 +4,7 @@ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`travel_beforeUpdate`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
SET NEW.editorFk = account.myUser_getId();
|
SET NEW.editorFk = account.myUser_getId();
|
||||||
/*
|
|
||||||
IF ((NOT NEW.shipped <=> OLD.shipped )
|
|
||||||
OR (NOT NEW.landed <=> OLD.landed )
|
|
||||||
OR (NOT NEW.warehouseInFk <=> OLD.warehouseInFk )
|
|
||||||
OR (NOT NEW.warehouseOutFk <=> OLD.warehouseOutFk ))
|
|
||||||
AND (OLD.totalEntries AND OLD.landed < CURDATE()) THEN
|
|
||||||
CALL util.throw("Cannot past travels with entries");
|
|
||||||
END IF;
|
|
||||||
*/
|
|
||||||
IF NOT (NEW.landed <=> OLD.landed)
|
IF NOT (NEW.landed <=> OLD.landed)
|
||||||
OR NOT (NEW.shipped <=> OLD.shipped) THEN
|
OR NOT (NEW.shipped <=> OLD.shipped) THEN
|
||||||
CALL travel_checkDates(NEW.shipped, NEW.landed);
|
CALL travel_checkDates(NEW.shipped, NEW.landed);
|
||||||
|
|
|
@ -38,7 +38,7 @@ FROM (
|
||||||
)
|
)
|
||||||
JOIN `vn`.`agencyMode` `am` ON(`am`.`id` = `t`.`agencyModeFk`)
|
JOIN `vn`.`agencyMode` `am` ON(`am`.`id` = `t`.`agencyModeFk`)
|
||||||
)
|
)
|
||||||
JOIN `vn`.`ticketStateToday` `tst` ON(`tst`.`ticketFk` = `t`.`id`)
|
JOIN `vn`.`ticketStateToday` `tst` ON(`tst`.`ticket` = `t`.`id`)
|
||||||
)
|
)
|
||||||
JOIN `vn`.`state` `st` ON(`st`.`id` = `tst`.`state`)
|
JOIN `vn`.`state` `st` ON(`st`.`id` = `tst`.`state`)
|
||||||
)
|
)
|
||||||
|
|
|
@ -7,19 +7,19 @@ BEGIN
|
||||||
group_concat(CONCAT(' Asiento: ', ASIEN, '- importe:', quadre) SEPARATOR ' \r\n ')
|
group_concat(CONCAT(' Asiento: ', ASIEN, '- importe:', quadre) SEPARATOR ' \r\n ')
|
||||||
FROM (
|
FROM (
|
||||||
SELECT ASIEN, SUM(IFNULL(ROUND(Eurodebe,2),0))- SUM(IFNULL(ROUND(EUROHABER,2),0)) quadre
|
SELECT ASIEN, SUM(IFNULL(ROUND(Eurodebe,2),0))- SUM(IFNULL(ROUND(EUROHABER,2),0)) quadre
|
||||||
FROM XDiario
|
FROM vn.XDiario
|
||||||
WHERE enlazado = FALSE
|
WHERE enlazado = FALSE
|
||||||
GROUP BY ASIEN
|
GROUP BY ASIEN
|
||||||
HAVING ABS(SUM(IFNULL(ROUND(Eurodebe,2),0))- SUM(IFNULL(ROUND(EUROHABER,2),0))) > 0.01
|
HAVING ABS(SUM(IFNULL(ROUND(Eurodebe,2),0))- SUM(IFNULL(ROUND(EUROHABER,2),0))) > 0.01
|
||||||
) t
|
) t
|
||||||
HAVING count(*) > 0;
|
HAVING count(*) > 0;
|
||||||
|
|
||||||
UPDATE XDiario XD
|
UPDATE vn.XDiario XD
|
||||||
INNER JOIN(
|
INNER JOIN(
|
||||||
SELECT XD.id, SUBCTA, Quadre FROM XDiario XD
|
SELECT XD.id, SUBCTA, Quadre FROM vn.XDiario XD
|
||||||
INNER JOIN (
|
INNER JOIN (
|
||||||
SELECT ASIEN, SUM(IFNULL(ROUND(Eurodebe,2),0))- SUM(IFNULL(ROUND(EUROHABER,2),0)) as Quadre
|
SELECT ASIEN, SUM(IFNULL(ROUND(Eurodebe,2),0))- SUM(IFNULL(ROUND(EUROHABER,2),0)) as Quadre
|
||||||
FROM XDiario
|
FROM vn.XDiario
|
||||||
WHERE enlazado = FALSE
|
WHERE enlazado = FALSE
|
||||||
GROUP BY ASIEN
|
GROUP BY ASIEN
|
||||||
HAVING Quadre != 0
|
HAVING Quadre != 0
|
||||||
|
|
|
@ -23,7 +23,6 @@ proc: BEGIN
|
||||||
DELETE FROM cdr WHERE calldate < vDate18;
|
DELETE FROM cdr WHERE calldate < vDate18;
|
||||||
DELETE FROM Monitoring WHERE ODBC_TIME < vDate;
|
DELETE FROM Monitoring WHERE ODBC_TIME < vDate;
|
||||||
DELETE FROM Conteo WHERE Fecha < vDate;
|
DELETE FROM Conteo WHERE Fecha < vDate;
|
||||||
DELETE FROM XDiario WHERE FECHA < vDate3 OR FECHA IS NULL;
|
|
||||||
DELETE FROM mail WHERE DATE_ODBC < vDate;
|
DELETE FROM mail WHERE DATE_ODBC < vDate;
|
||||||
DELETE FROM expeditions_deleted WHERE odbc_date < vDate26;
|
DELETE FROM expeditions_deleted WHERE odbc_date < vDate26;
|
||||||
DELETE FROM Movimientos_mark WHERE odbc_date < vDate;
|
DELETE FROM Movimientos_mark WHERE odbc_date < vDate;
|
||||||
|
|
|
@ -25,7 +25,7 @@ BEGIN
|
||||||
FROM Clientes
|
FROM Clientes
|
||||||
WHERE Id_Cliente = idCLI;
|
WHERE Id_Cliente = idCLI;
|
||||||
CALL vn.ledger_next(max_asien);
|
CALL vn.ledger_next(max_asien);
|
||||||
INSERT INTO XDiario (ASIEN,FECHA,SUBCTA,CONTRA,CONCEPTO,EURODEBE,EUROHABER,empresa_id)
|
INSERT INTO vn.XDiario (ASIEN,FECHA,SUBCTA,CONTRA,CONCEPTO,EURODEBE,EUROHABER,empresa_id)
|
||||||
SELECT max_asien,datFEC,SUBCTA,CONTRA,strCONCEPTO,EURODEBE,EUROHABER,idEMP
|
SELECT max_asien,datFEC,SUBCTA,CONTRA,strCONCEPTO,EURODEBE,EUROHABER,idEMP
|
||||||
FROM(SELECT cuenta_banco SUBCTA, cuenta_cliente CONTRA, 0 EURODEBE, dblIMPORTE EUROHABER
|
FROM(SELECT cuenta_banco SUBCTA, cuenta_cliente CONTRA, 0 EURODEBE, dblIMPORTE EUROHABER
|
||||||
UNION ALL
|
UNION ALL
|
||||||
|
|
|
@ -31,7 +31,7 @@ BEGIN
|
||||||
stock.available
|
stock.available
|
||||||
FROM vn2008.Tickets t
|
FROM vn2008.Tickets t
|
||||||
JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia
|
JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia
|
||||||
JOIN vn2008.warehouse wh ON wh.id = t.warehouse_id
|
JOIN vn.warehouse wh ON wh.id = t.warehouse_id
|
||||||
JOIN vn2008.Movimientos m ON m.Id_Ticket = t.Id_Ticket
|
JOIN vn2008.Movimientos m ON m.Id_Ticket = t.Id_Ticket
|
||||||
JOIN vn2008.Articles i ON i.Id_Article = m.Id_Article
|
JOIN vn2008.Articles i ON i.Id_Article = m.Id_Article
|
||||||
JOIN vn2008.Tipos tp ON tp.tipo_id = i.tipo_id
|
JOIN vn2008.Tipos tp ON tp.tipo_id = i.tipo_id
|
||||||
|
@ -88,8 +88,8 @@ BEGIN
|
||||||
FROM vn2008.Compres c
|
FROM vn2008.Compres c
|
||||||
JOIN vn2008.Entradas e ON e.Id_Entrada = c.Id_Entrada
|
JOIN vn2008.Entradas e ON e.Id_Entrada = c.Id_Entrada
|
||||||
JOIN vn2008.travel tr ON tr.id = e.travel_id
|
JOIN vn2008.travel tr ON tr.id = e.travel_id
|
||||||
JOIN vn2008.warehouse whi ON whi.id = tr.warehouse_id
|
JOIN vn.warehouse whi ON whi.id = tr.warehouse_id
|
||||||
JOIN vn2008.warehouse who ON who.id = tr.warehouse_id_out
|
JOIN vn.warehouse who ON who.id = tr.warehouse_id_out
|
||||||
JOIN vn2008.Articles a ON a.Id_Article = c.Id_Article
|
JOIN vn2008.Articles a ON a.Id_Article = c.Id_Article
|
||||||
JOIN vn2008.Tipos tp ON tp.tipo_id = a.tipo_id
|
JOIN vn2008.Tipos tp ON tp.tipo_id = a.tipo_id
|
||||||
JOIN vn.confectionType ct ON ct.id = tp.confeccion
|
JOIN vn.confectionType ct ON ct.id = tp.confeccion
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
|
||||||
SQL SECURITY DEFINER
|
|
||||||
VIEW `vn2008`.`Vehiculos`
|
|
||||||
AS SELECT `v`.`id` AS `Id_Vehiculo`,
|
|
||||||
`v`.`numberPlate` AS `Matricula`,
|
|
||||||
`v`.`tradeMark` AS `Marca`,
|
|
||||||
`v`.`model` AS `Modelo`,
|
|
||||||
`v`.`companyFk` AS `empresa_id`,
|
|
||||||
`v`.`warehouseFk` AS `warehouseFk`,
|
|
||||||
`v`.`description` AS `description`,
|
|
||||||
`v`.`m3` AS `m3`,
|
|
||||||
`v`.`isActive` AS `active`,
|
|
||||||
`v`.`deliveryPointFk` AS `deliveryPointFk`
|
|
||||||
FROM `vn`.`vehicle` `v`
|
|
|
@ -1,56 +0,0 @@
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
|
||||||
SQL SECURITY DEFINER
|
|
||||||
VIEW `vn2008`.`XDiario`
|
|
||||||
AS SELECT `d`.`id` AS `id`,
|
|
||||||
`d`.`ASIEN` AS `ASIEN`,
|
|
||||||
`d`.`FECHA` AS `FECHA`,
|
|
||||||
`d`.`SUBCTA` AS `SUBCTA`,
|
|
||||||
`d`.`CONTRA` AS `CONTRA`,
|
|
||||||
`d`.`CONCEPTO` AS `CONCEPTO`,
|
|
||||||
`d`.`EURODEBE` AS `EURODEBE`,
|
|
||||||
`d`.`EUROHABER` AS `EUROHABER`,
|
|
||||||
`d`.`BASEEURO` AS `BASEEURO`,
|
|
||||||
`d`.`SERIE` AS `SERIE`,
|
|
||||||
`d`.`FACTURA` AS `FACTURA`,
|
|
||||||
`d`.`IVA` AS `IVA`,
|
|
||||||
`d`.`RECEQUIV` AS `RECEQUIV`,
|
|
||||||
`d`.`CLAVE` AS `CLAVE`,
|
|
||||||
`d`.`CAMBIO` AS `CAMBIO`,
|
|
||||||
`d`.`DEBEME` AS `DEBEME`,
|
|
||||||
`d`.`HABERME` AS `HABERME`,
|
|
||||||
`d`.`AUXILIAR` AS `AUXILIAR`,
|
|
||||||
`d`.`MONEDAUSO` AS `MONEDAUSO`,
|
|
||||||
`d`.`TIPOOPE` AS `TIPOOPE`,
|
|
||||||
`d`.`NFACTICK` AS `NFACTICK`,
|
|
||||||
`d`.`TERIDNIF` AS `TERIDNIF`,
|
|
||||||
`d`.`TERNIF` AS `TERNIF`,
|
|
||||||
`d`.`TERNOM` AS `TERNOM`,
|
|
||||||
`d`.`OPBIENES` AS `OPBIENES`,
|
|
||||||
`d`.`L340` AS `L340`,
|
|
||||||
`d`.`enlazado` AS `enlazado`,
|
|
||||||
`d`.`FECHA_EX` AS `FECHA_EX`,
|
|
||||||
`d`.`LRECT349` AS `LRECT349`,
|
|
||||||
`d`.`empresa_id` AS `empresa_id`,
|
|
||||||
`d`.`LDIFADUAN` AS `LDIFADUAN`,
|
|
||||||
`d`.`METAL` AS `METAL`,
|
|
||||||
`d`.`METALIMP` AS `METALIMP`,
|
|
||||||
`d`.`CLIENTE` AS `CLIENTE`,
|
|
||||||
`d`.`METALEJE` AS `METALEJE`,
|
|
||||||
`d`.`FECHA_OP` AS `FECHA_OP`,
|
|
||||||
`d`.`FACTURAEX` AS `FACTURAEX`,
|
|
||||||
`d`.`TIPOCLAVE` AS `TIPOCLAVE`,
|
|
||||||
`d`.`TIPOEXENCI` AS `TIPOEXENCI`,
|
|
||||||
`d`.`TIPONOSUJE` AS `TIPONOSUJE`,
|
|
||||||
`d`.`TIPOFACT` AS `TIPOFACT`,
|
|
||||||
`d`.`TIPORECTIF` AS `TIPORECTIF`,
|
|
||||||
`d`.`SERIE_RT` AS `SERIE_RT`,
|
|
||||||
`d`.`FACTU_RT` AS `FACTU_RT`,
|
|
||||||
`d`.`BASEIMP_RT` AS `BASEIMP_RT`,
|
|
||||||
`d`.`BASEIMP_RF` AS `BASEIMP_RF`,
|
|
||||||
`d`.`RECTIFICA` AS `RECTIFICA`,
|
|
||||||
`d`.`FECHA_RT` AS `FECHA_RT`,
|
|
||||||
`d`.`created` AS `created`,
|
|
||||||
`d`.`updated` AS `updated`,
|
|
||||||
`d`.`FECREGCON` AS `FECREGCON`,
|
|
||||||
`d`.`enlazadoSage` AS `enlazadoSage`
|
|
||||||
FROM `vn`.`XDiario` `d`
|
|
|
@ -53,7 +53,7 @@ AS SELECT `TP`.`Id_Tipo` AS `Familia`,
|
||||||
`A`.`Color` AS `Color`,
|
`A`.`Color` AS `Color`,
|
||||||
`A`.`Min` AS `Min`,
|
`A`.`Min` AS `Min`,
|
||||||
`C`.`Costefijo` + `C`.`Embalajefijo` + `C`.`Comisionfija` + `C`.`Portefijo` AS `Coste`,
|
`C`.`Costefijo` + `C`.`Embalajefijo` + `C`.`Comisionfija` + `C`.`Portefijo` AS `Coste`,
|
||||||
`W_OUT`.`fuente` AS `fuente`,
|
`W_OUT`.`isFeedStock` AS `fuente`,
|
||||||
IF(
|
IF(
|
||||||
`cb`.`Volumen` > 0,
|
`cb`.`Volumen` > 0,
|
||||||
`cb`.`Volumen`,
|
`cb`.`Volumen`,
|
||||||
|
@ -73,9 +73,9 @@ FROM (
|
||||||
)
|
)
|
||||||
JOIN `vn2008`.`travel` `TR` ON(`TR`.`id` = `E`.`travel_id`)
|
JOIN `vn2008`.`travel` `TR` ON(`TR`.`id` = `E`.`travel_id`)
|
||||||
)
|
)
|
||||||
JOIN `vn2008`.`warehouse` `W_IN` ON(`W_IN`.`id` = `TR`.`warehouse_id`)
|
JOIN `vn`.`warehouse` `W_IN` ON(`W_IN`.`id` = `TR`.`warehouse_id`)
|
||||||
)
|
)
|
||||||
JOIN `vn2008`.`warehouse` `W_OUT` ON(`W_OUT`.`id` = `TR`.`warehouse_id_out`)
|
JOIN `vn`.`warehouse` `W_OUT` ON(`W_OUT`.`id` = `TR`.`warehouse_id_out`)
|
||||||
)
|
)
|
||||||
JOIN `vn2008`.`Articles` `A` ON(`C`.`Id_Article` = `A`.`Id_Article`)
|
JOIN `vn2008`.`Articles` `A` ON(`C`.`Id_Article` = `A`.`Id_Article`)
|
||||||
)
|
)
|
||||||
|
@ -85,6 +85,6 @@ FROM (
|
||||||
)
|
)
|
||||||
JOIN `vn2008`.`Cubos` `cb` ON(`cb`.`Id_Cubo` = `C`.`Id_Cubo`)
|
JOIN `vn2008`.`Cubos` `cb` ON(`cb`.`Id_Cubo` = `C`.`Id_Cubo`)
|
||||||
)
|
)
|
||||||
WHERE `W_IN`.`fuente` = 0
|
WHERE `W_IN`.`isFeedStock` = 0
|
||||||
AND `E`.`Inventario` = 0
|
AND `E`.`Inventario` = 0
|
||||||
AND `E`.`Redada` = 0
|
AND `E`.`Redada` = 0
|
||||||
|
|
|
@ -1,68 +0,0 @@
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
|
||||||
SQL SECURITY DEFINER
|
|
||||||
VIEW `vn2008`.`v_ventes`
|
|
||||||
AS SELECT `Agencias`.`Agencia` AS `Agencia`,
|
|
||||||
`A`.`Categoria` AS `Categoria`,
|
|
||||||
`A`.`tipo_id` AS `tipo_id`,
|
|
||||||
`A`.`Medida` AS `Medida`,
|
|
||||||
`A`.`Article` AS `Article`,
|
|
||||||
`A`.`Color` AS `Color`,
|
|
||||||
`CS`.`Id_cliente` AS `Id_Cliente`,
|
|
||||||
`TP`.`Id_Tipo` AS `Tipo`,
|
|
||||||
`T`.`Factura` AS `Factura`,
|
|
||||||
`T`.`warehouse_id` AS `warehouse_id`,
|
|
||||||
`M`.`Id_Movimiento` AS `Id_Movimiento`,
|
|
||||||
`M`.`Id_Article` AS `Id_Article`,
|
|
||||||
`TP`.`Id_Tipo` AS `Familia`,
|
|
||||||
`M`.`Id_Ticket` AS `Id_Ticket`,
|
|
||||||
`M`.`Concepte` AS `Concepte`,
|
|
||||||
`M`.`Cantidad` AS `Cantidad`,
|
|
||||||
`M`.`quantity` AS `quantity`,
|
|
||||||
`M`.`Preu` AS `Preu`,
|
|
||||||
`M`.`Descuento` AS `Descuento`,
|
|
||||||
IF(
|
|
||||||
`T`.`Fecha` >= '2015-10-01',
|
|
||||||
`M`.`CostFixat`,
|
|
||||||
`M`.`Preu` * (100 - `M`.`Descuento`) / 100
|
|
||||||
) AS `CostFixat`,
|
|
||||||
`M`.`Reservado` AS `Reservado`,
|
|
||||||
`M`.`OK` AS `OK`,
|
|
||||||
`M`.`PrecioFijado` AS `PrecioFijado`,
|
|
||||||
`M`.`odbc_date` AS `odbc_date`,
|
|
||||||
cast(`T`.`Fecha` AS date) AS `Fecha`,
|
|
||||||
`T`.`Fecha` AS `FechaCompleta`,
|
|
||||||
`CS`.`consignatario` AS `Alias`,
|
|
||||||
`T`.`Id_Consigna` AS `Id_Consigna`,
|
|
||||||
`M`.`Cantidad` * `M`.`Preu` * (100 - `M`.`Descuento`) / 100 AS `Importe`,
|
|
||||||
`O`.`Origen` AS `Origen`,
|
|
||||||
`TP`.`reino_id` AS `reino_id`,
|
|
||||||
`C`.`invoice` AS `invoice`,
|
|
||||||
`A`.`producer_id` AS `producer_id`
|
|
||||||
FROM (
|
|
||||||
(
|
|
||||||
(
|
|
||||||
(
|
|
||||||
(
|
|
||||||
(
|
|
||||||
(
|
|
||||||
(
|
|
||||||
`vn2008`.`Movimientos` `M`
|
|
||||||
JOIN `vn2008`.`Tickets` `T` ON(`M`.`Id_Ticket` = `T`.`Id_Ticket`)
|
|
||||||
)
|
|
||||||
JOIN `vn2008`.`Consignatarios` `CS` ON(`CS`.`id_consigna` = `T`.`Id_Consigna`)
|
|
||||||
)
|
|
||||||
JOIN `vn2008`.`Clientes` `C` ON(`CS`.`Id_cliente` = `C`.`id_cliente`)
|
|
||||||
)
|
|
||||||
JOIN `vn2008`.`Articles` `A` ON(`M`.`Id_Article` = `A`.`Id_Article`)
|
|
||||||
)
|
|
||||||
JOIN `vn2008`.`Origen` `O` ON(`O`.`id` = `A`.`id_origen`)
|
|
||||||
)
|
|
||||||
JOIN `vn2008`.`Tipos` `TP` ON(`A`.`tipo_id` = `TP`.`tipo_id`)
|
|
||||||
)
|
|
||||||
JOIN `vn2008`.`reinos` `r` ON(`TP`.`reino_id` = `r`.`id`)
|
|
||||||
)
|
|
||||||
JOIN `vn2008`.`Agencias` ON(`Agencias`.`Id_Agencia` = `T`.`Id_Agencia`)
|
|
||||||
)
|
|
||||||
WHERE `T`.`Fecha` >= '2013-01-01'
|
|
||||||
AND `C`.`real` > 0
|
|
||||||
AND `r`.`id` <> 6
|
|
|
@ -1,207 +0,0 @@
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
|
||||||
SQL SECURITY DEFINER
|
|
||||||
VIEW `vn2008`.`v_xsubcuentas`
|
|
||||||
AS SELECT `Clientes`.`Cuenta` AS `COD`,
|
|
||||||
`Clientes`.`razonSocial` AS `TITULO`,
|
|
||||||
concat(
|
|
||||||
IF(
|
|
||||||
`p`.`CEE` = 1
|
|
||||||
AND ascii(left(`Clientes`.`if`, 1)) < 58,
|
|
||||||
`p`.`Codigo`,
|
|
||||||
''
|
|
||||||
),
|
|
||||||
`Clientes`.`if`
|
|
||||||
) AS `NIF`,
|
|
||||||
`Clientes`.`domicilio` AS `DOMICILIO`,
|
|
||||||
`Clientes`.`poblacion` AS `POBLACION`,
|
|
||||||
`province`.`name` AS `PROVINCIA`,
|
|
||||||
`Clientes`.`codPostal` AS `CODPOSTAL`,
|
|
||||||
`p`.`Codigo` AS `country_code`,
|
|
||||||
sub.`empresa_id` AS `empresa_id`,
|
|
||||||
substr(
|
|
||||||
`Clientes`.`e-mail`,
|
|
||||||
1,
|
|
||||||
coalesce(nullif(locate(',', `Clientes`.`e-mail`), 0), 99) - 1
|
|
||||||
) AS `EMAIL`,
|
|
||||||
IF(
|
|
||||||
`p`.`CEE` = 0
|
|
||||||
OR `p`.`CEE` = 1
|
|
||||||
AND `Clientes`.`vies` = 0,
|
|
||||||
1,
|
|
||||||
IF(
|
|
||||||
`p`.`CEE` = 1
|
|
||||||
AND `Clientes`.`vies` <> 0,
|
|
||||||
2,
|
|
||||||
4
|
|
||||||
)
|
|
||||||
) AS `IDNIF`
|
|
||||||
FROM (
|
|
||||||
(
|
|
||||||
(
|
|
||||||
`vn2008`.`Clientes`
|
|
||||||
JOIN (
|
|
||||||
SELECT DISTINCT `Facturas`.`Id_Cliente` AS `Id_Cliente`,
|
|
||||||
`Facturas`.`empresa_id` AS `empresa_id`
|
|
||||||
FROM `vn2008`.`Facturas`
|
|
||||||
WHERE `Facturas`.`Fecha` > `util`.`VN_CURDATE`() + INTERVAL -2 MONTH
|
|
||||||
UNION
|
|
||||||
SELECT `Recibos`.`Id_Cliente` AS `Id_Cliente`,
|
|
||||||
`Recibos`.`empresa_id` AS `empresa_id`
|
|
||||||
FROM `vn2008`.`Recibos`
|
|
||||||
WHERE `Recibos`.`Fechacobro` > `util`.`VN_CURDATE`() + INTERVAL -2 MONTH
|
|
||||||
) sub ON(
|
|
||||||
`Clientes`.`id_cliente` = sub.`Id_Cliente`
|
|
||||||
)
|
|
||||||
)
|
|
||||||
LEFT JOIN `vn2008`.`Paises` `p` ON(`p`.`Id` = `Clientes`.`Id_Pais`)
|
|
||||||
)
|
|
||||||
JOIN `vn2008`.`province` ON(
|
|
||||||
`Clientes`.`province_id` = `province`.`province_id`
|
|
||||||
)
|
|
||||||
)
|
|
||||||
GROUP BY `Clientes`.`id_cliente`,
|
|
||||||
sub.`empresa_id`
|
|
||||||
UNION ALL
|
|
||||||
SELECT `Proveedores`.`cuenta` AS `Cuenta`,
|
|
||||||
`Proveedores`.`Proveedor` AS `Proveedor`,
|
|
||||||
concat(
|
|
||||||
IF(
|
|
||||||
`p`.`CEE` = 1
|
|
||||||
AND ascii(left(`Proveedores`.`NIF`, 1)) < 58,
|
|
||||||
`p`.`Codigo`,
|
|
||||||
''
|
|
||||||
),
|
|
||||||
`Proveedores`.`NIF`
|
|
||||||
) AS `NIF`,
|
|
||||||
`Proveedores`.`Domicilio` AS `Domicilio`,
|
|
||||||
`Proveedores`.`Localidad` AS `Localidad`,
|
|
||||||
`prov`.`name` AS `Provincia`,
|
|
||||||
`Proveedores`.`codpos` AS `CP`,
|
|
||||||
`p`.`Codigo` AS `country_code`,
|
|
||||||
sub.`empresa_id` AS `empresa_id`,
|
|
||||||
substr(
|
|
||||||
`c`.`email`,
|
|
||||||
1,
|
|
||||||
coalesce(nullif(locate(',', `c`.`email`), 0), 99) - 1
|
|
||||||
) AS `EMAIL`,
|
|
||||||
IF(`p`.`CEE` = 0, 1, IF(`p`.`CEE` = 1, 2, 4)) AS `IDNIF`
|
|
||||||
FROM (
|
|
||||||
(
|
|
||||||
(
|
|
||||||
(
|
|
||||||
`vn2008`.`Proveedores`
|
|
||||||
JOIN (
|
|
||||||
SELECT `recibida`.`proveedor_id` AS `proveedor_id`,
|
|
||||||
`recibida`.`empresa_id` AS `empresa_id`
|
|
||||||
FROM `vn2008`.`recibida`
|
|
||||||
WHERE `recibida`.`fecha` > `util`.`VN_CURDATE`() + INTERVAL -3 MONTH
|
|
||||||
GROUP BY `recibida`.`proveedor_id`,
|
|
||||||
`recibida`.`empresa_id`
|
|
||||||
UNION ALL
|
|
||||||
SELECT `pago`.`id_proveedor` AS `id_proveedor`,
|
|
||||||
`pago`.`empresa_id` AS `empresa_id`
|
|
||||||
FROM `vn2008`.`pago`
|
|
||||||
WHERE `pago`.`fecha` > `util`.`VN_CURDATE`() + INTERVAL -3 MONTH
|
|
||||||
GROUP BY `pago`.`id_proveedor`,
|
|
||||||
`pago`.`empresa_id`
|
|
||||||
) sub ON(
|
|
||||||
`Proveedores`.`Id_Proveedor` = sub.`proveedor_id`
|
|
||||||
)
|
|
||||||
)
|
|
||||||
LEFT JOIN `vn2008`.`Paises` `p` ON(`p`.`Id` = `Proveedores`.`pais_id`)
|
|
||||||
)
|
|
||||||
LEFT JOIN `vn2008`.`province` `prov` ON(
|
|
||||||
`prov`.`province_id` = `Proveedores`.`province_id`
|
|
||||||
)
|
|
||||||
)
|
|
||||||
LEFT JOIN `vn`.`supplierContact` `c` ON(`c`.`supplierFk` = `Proveedores`.`Id_Proveedor`)
|
|
||||||
)
|
|
||||||
WHERE `Proveedores`.`oficial` <> 0
|
|
||||||
GROUP BY sub.`proveedor_id`,
|
|
||||||
sub.`empresa_id`
|
|
||||||
UNION ALL
|
|
||||||
SELECT `Gastos`.`Id_Gasto` COLLATE utf8mb3_unicode_ci AS `Id_Gasto`,
|
|
||||||
`Gastos`.`Gasto` COLLATE utf8mb3_unicode_ci AS `Gasto`,
|
|
||||||
NULL AS `NULL`,
|
|
||||||
NULL AS `My_exp_NULL`,
|
|
||||||
NULL AS `My_exp_1_NULL`,
|
|
||||||
NULL AS `My_exp_2_NULL`,
|
|
||||||
NULL AS `My_exp_3_NULL`,
|
|
||||||
NULL AS `country_code`,
|
|
||||||
`e`.`id` AS `id`,
|
|
||||||
NULL AS `EMAIL`,
|
|
||||||
1 AS `IDNIF`
|
|
||||||
FROM (
|
|
||||||
`vn2008`.`Gastos`
|
|
||||||
JOIN `vn2008`.`empresa` `e` ON(`e`.`id` = 442)
|
|
||||||
)
|
|
||||||
UNION ALL
|
|
||||||
SELECT `Bancos`.`Cuenta` AS `Cuenta`,
|
|
||||||
`Bancos`.`Banco` AS `Banco`,
|
|
||||||
NULL AS `NULL`,
|
|
||||||
NULL AS `My_exp_NULL`,
|
|
||||||
NULL AS `My_exp_1_NULL`,
|
|
||||||
NULL AS `My_exp_2_NULL`,
|
|
||||||
NULL AS `My_exp_3_NULL`,
|
|
||||||
NULL AS `country_code`,
|
|
||||||
`e`.`id` AS `id`,
|
|
||||||
NULL AS `EMAIL`,
|
|
||||||
1 AS `IDNIF`
|
|
||||||
FROM (
|
|
||||||
`vn2008`.`Bancos`
|
|
||||||
JOIN `vn2008`.`empresa` `e` ON(`e`.`id` = 442)
|
|
||||||
)
|
|
||||||
UNION ALL
|
|
||||||
SELECT lpad(right(`Proveedores`.`cuenta`, 5), 10, '47510000') AS `Cuenta`,
|
|
||||||
`Proveedores`.`Proveedor` AS `Proveedor`,
|
|
||||||
`Proveedores`.`NIF` AS `NIF`,
|
|
||||||
`Proveedores`.`Domicilio` AS `Domicilio`,
|
|
||||||
`Proveedores`.`Localidad` AS `Localidad`,
|
|
||||||
`prov`.`name` AS `Provincia`,
|
|
||||||
`Proveedores`.`codpos` AS `CP`,
|
|
||||||
`p`.`Codigo` AS `country_code`,
|
|
||||||
sub.`empresa_id` AS `empresa_id`,
|
|
||||||
substr(
|
|
||||||
`c`.`email`,
|
|
||||||
1,
|
|
||||||
coalesce(nullif(locate(',', `c`.`email`), 0), 99) - 1
|
|
||||||
) AS `EMAIL`,
|
|
||||||
IF(`p`.`CEE` = 0, 1, IF(`p`.`CEE` = 1, 2, 4)) AS `IDNIF`
|
|
||||||
FROM (
|
|
||||||
(
|
|
||||||
(
|
|
||||||
(
|
|
||||||
`vn2008`.`Proveedores`
|
|
||||||
JOIN (
|
|
||||||
SELECT `recibida`.`proveedor_id` AS `proveedor_id`,
|
|
||||||
`recibida`.`empresa_id` AS `empresa_id`
|
|
||||||
FROM `vn2008`.`recibida`
|
|
||||||
WHERE `recibida`.`fecha` > `util`.`VN_CURDATE`() + INTERVAL -3 MONTH
|
|
||||||
GROUP BY `recibida`.`proveedor_id`,
|
|
||||||
`recibida`.`empresa_id`
|
|
||||||
UNION ALL
|
|
||||||
SELECT `pago`.`id_proveedor` AS `id_proveedor`,
|
|
||||||
`pago`.`empresa_id` AS `empresa_id`
|
|
||||||
FROM `vn2008`.`pago`
|
|
||||||
WHERE `pago`.`fecha` > `util`.`VN_CURDATE`() + INTERVAL -3 MONTH
|
|
||||||
GROUP BY `pago`.`id_proveedor`,
|
|
||||||
`pago`.`empresa_id`
|
|
||||||
) sub ON(
|
|
||||||
`Proveedores`.`Id_Proveedor` = sub.`proveedor_id`
|
|
||||||
)
|
|
||||||
)
|
|
||||||
LEFT JOIN `vn2008`.`Paises` `p` ON(`p`.`Id` = `Proveedores`.`pais_id`)
|
|
||||||
)
|
|
||||||
LEFT JOIN `vn2008`.`province` `prov` ON(
|
|
||||||
`prov`.`province_id` = `Proveedores`.`province_id`
|
|
||||||
)
|
|
||||||
)
|
|
||||||
LEFT JOIN `vn`.`supplierContact` `c` ON(`c`.`supplierFk` = `Proveedores`.`Id_Proveedor`)
|
|
||||||
)
|
|
||||||
WHERE (
|
|
||||||
`Proveedores`.`cuenta` LIKE '_____3____'
|
|
||||||
OR `Proveedores`.`cuenta` LIKE '_____2____'
|
|
||||||
)
|
|
||||||
AND `Proveedores`.`oficial` = 1
|
|
||||||
GROUP BY sub.`proveedor_id`,
|
|
||||||
sub.`empresa_id`
|
|
|
@ -1,8 +0,0 @@
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
|
||||||
SQL SECURITY DEFINER
|
|
||||||
VIEW `vn2008`.`versiones`
|
|
||||||
AS SELECT `m`.`app` AS `programa`,
|
|
||||||
`m`.`version` AS `version`,
|
|
||||||
0 AS `critical`
|
|
||||||
FROM `vn`.`mdbVersion` `m`
|
|
||||||
WHERE `m`.`branchFk` = 'master'
|
|
|
@ -1,21 +0,0 @@
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
|
||||||
SQL SECURITY DEFINER
|
|
||||||
VIEW `vn2008`.`warehouse`
|
|
||||||
AS SELECT `w`.`id` AS `id`,
|
|
||||||
`w`.`name` AS `name`,
|
|
||||||
`w`.`isInventory` AS `inventario`,
|
|
||||||
`w`.`isFeedStock` AS `fuente`,
|
|
||||||
`w`.`isComparative` AS `is_comparative`,
|
|
||||||
`w`.`hasComission` AS `comisionantes`,
|
|
||||||
`w`.`hasAvailable` AS `reserve`,
|
|
||||||
`w`.`isManaged` AS `isManaged`,
|
|
||||||
`w`.`isForTicket` AS `tpv`,
|
|
||||||
`w`.`hasStowaway` AS `hasStowaway`,
|
|
||||||
`w`.`hasDms` AS `hasDms`,
|
|
||||||
`w`.`addressName` AS `address_name`,
|
|
||||||
`w`.`delay` AS `delay`,
|
|
||||||
`w`.`countryFk` AS `Id_Paises`,
|
|
||||||
`w`.`labelZone` AS `zone_label`,
|
|
||||||
`w`.`valuatedInventory` AS `valuatedInventory`,
|
|
||||||
`w`.`hasConfectionTeam` AS `hasConfectionTeam`
|
|
||||||
FROM `vn`.`warehouse` `w`
|
|
|
@ -1,8 +0,0 @@
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
|
||||||
SQL SECURITY DEFINER
|
|
||||||
VIEW `vn2008`.`workerDocument`
|
|
||||||
AS SELECT `vn`.`workerDocument`.`id` AS `id`,
|
|
||||||
`vn`.`workerDocument`.`worker` AS `worker`,
|
|
||||||
`vn`.`workerDocument`.`document` AS `document`,
|
|
||||||
`vn`.`workerDocument`.`isReadableByWorker` AS `isReadableByWorker`
|
|
||||||
FROM `vn`.`workerDocument`
|
|
|
@ -1,7 +0,0 @@
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
|
||||||
SQL SECURITY DEFINER
|
|
||||||
VIEW `vn2008`.`workerTeam`
|
|
||||||
AS SELECT `wt`.`team` AS `team`,
|
|
||||||
`wt`.`id` AS `id`,
|
|
||||||
`wt`.`workerFk` AS `user`
|
|
||||||
FROM `vn`.`workerTeam` `wt`
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
REVOKE UPDATE ON TABLE vn2008.Vehiculos FROM officeBoss;
|
||||||
|
REVOKE SELECT ON TABLE vn2008.Vehiculos FROM claimManager;
|
||||||
|
REVOKE SELECT, INSERT, UPDATE ON TABLE vn2008.Vehiculos FROM deliveryAssistant;
|
||||||
|
REVOKE SELECT ON TABLE vn2008.versiones FROM employee;
|
||||||
|
REVOKE INSERT ON TABLE vn2008.XDiario FROM financial;
|
||||||
|
REVOKE SELECT, INSERT, UPDATE ON TABLE vn2008.XDiario FROM buyer;
|
||||||
|
REVOKE SELECT, INSERT, UPDATE, DELETE ON TABLE vn2008.XDiario FROM administrative;
|
||||||
|
REVOKE SELECT, INSERT, UPDATE, DELETE ON TABLE vn2008.XDiario FROM hr;
|
||||||
|
REVOKE SELECT, INSERT, UPDATE, DELETE ON TABLE vn2008.XDiario FROM buyerBoss;
|
||||||
|
REVOKE SELECT, INSERT ON TABLE vn2008.workerDocument FROM hr;
|
||||||
|
REVOKE SELECT ON TABLE vn2008.warehouse FROM guest;
|
||||||
|
REVOKE SELECT ON TABLE vn2008.warehouse FROM employee;
|
||||||
|
REVOKE SELECT, INSERT, UPDATE ON TABLE vn2008.workerTeam FROM salesAssistant;
|
||||||
|
REVOKE DELETE ON TABLE vn2008.workerTeam FROM salesBoss;
|
||||||
|
REVOKE SELECT ON TABLE vn2008.v_compres FROM administrative;
|
|
@ -72,7 +72,7 @@
|
||||||
"The secret can't be blank": "La contraseña no puede estar en blanco",
|
"The secret can't be blank": "La contraseña no puede estar en blanco",
|
||||||
"We weren't able to send this SMS": "No hemos podido enviar el SMS",
|
"We weren't able to send this SMS": "No hemos podido enviar el SMS",
|
||||||
"This client can't be invoiced": "Este cliente no puede ser facturado",
|
"This client can't be invoiced": "Este cliente no puede ser facturado",
|
||||||
"You must provide the correction information to generate a corrective invoice": "Debes informar la información de corrección para generar una factura rectificativa",
|
"You must provide the correction information to generate a corrective invoice": "Debes informar la información de corrección para generar una factura rectificativa",
|
||||||
"This ticket can't be invoiced": "Este ticket no puede ser facturado",
|
"This ticket can't be invoiced": "Este ticket no puede ser facturado",
|
||||||
"You cannot add or modify services to an invoiced ticket": "No puedes añadir o modificar servicios a un ticket facturado",
|
"You cannot add or modify services to an invoiced ticket": "No puedes añadir o modificar servicios a un ticket facturado",
|
||||||
"This ticket can not be modified": "Este ticket no puede ser modificado",
|
"This ticket can not be modified": "Este ticket no puede ser modificado",
|
||||||
|
@ -336,5 +336,6 @@
|
||||||
"Incorrect pin": "Pin incorrecto",
|
"Incorrect pin": "Pin incorrecto",
|
||||||
"You already have the mailAlias": "Ya tienes este alias de correo",
|
"You already have the mailAlias": "Ya tienes este alias de correo",
|
||||||
"The alias cant be modified": "Este alias de correo no puede ser modificado",
|
"The alias cant be modified": "Este alias de correo no puede ser modificado",
|
||||||
"No tickets to invoice": "No hay tickets para facturar"
|
"No tickets to invoice": "No hay tickets para facturar",
|
||||||
|
"An email is necessary": "Es necesario un email"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
const UserError = require('vn-loopback/util/user-error');
|
||||||
|
|
||||||
module.exports = function(Self) {
|
module.exports = function(Self) {
|
||||||
Self.remoteMethod('createWithUser', {
|
Self.remoteMethod('createWithUser', {
|
||||||
description: 'Creates both client and its web account',
|
description: 'Creates both client and its web account',
|
||||||
|
@ -29,7 +31,11 @@ module.exports = function(Self) {
|
||||||
myOptions.transaction = tx;
|
myOptions.transaction = tx;
|
||||||
}
|
}
|
||||||
|
|
||||||
const firstEmail = data.email ? data.email.split(',')[0] : null;
|
if (!data.email)
|
||||||
|
throw new UserError('An email is necessary');
|
||||||
|
|
||||||
|
const firstEmail = data.email.split(',')[0];
|
||||||
|
|
||||||
const user = {
|
const user = {
|
||||||
name: data.userName,
|
name: data.userName,
|
||||||
email: firstEmail,
|
email: firstEmail,
|
||||||
|
|
|
@ -13,6 +13,8 @@ describe('Client Create', () => {
|
||||||
businessTypeFk: 'florist',
|
businessTypeFk: 'florist',
|
||||||
provinceFk: 1
|
provinceFk: 1
|
||||||
};
|
};
|
||||||
|
const newAccountWithoutEmail = JSON.parse(JSON.stringify(newAccount));
|
||||||
|
delete newAccountWithoutEmail.email;
|
||||||
|
|
||||||
beforeAll(async() => {
|
beforeAll(async() => {
|
||||||
const activeCtx = {
|
const activeCtx = {
|
||||||
|
@ -48,6 +50,24 @@ describe('Client Create', () => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should not create a new account', async() => {
|
||||||
|
const tx = await models.Client.beginTransaction({});
|
||||||
|
|
||||||
|
let error;
|
||||||
|
try {
|
||||||
|
const options = {transaction: tx};
|
||||||
|
await models.Client.createWithUser(newAccountWithoutEmail, options);
|
||||||
|
|
||||||
|
await tx.rollback();
|
||||||
|
} catch (e) {
|
||||||
|
error = e.message;
|
||||||
|
|
||||||
|
await tx.rollback();
|
||||||
|
}
|
||||||
|
|
||||||
|
expect(error).toEqual(`An email is necessary`);
|
||||||
|
});
|
||||||
|
|
||||||
it('should create a new account', async() => {
|
it('should create a new account', async() => {
|
||||||
const tx = await models.Client.beginTransaction({});
|
const tx = await models.Client.beginTransaction({});
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "salix-back",
|
"name": "salix-back",
|
||||||
"version": "24.6.0",
|
"version": "24.8.0",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "salix-back",
|
"name": "salix-back",
|
||||||
"version": "24.6.0",
|
"version": "24.8.0",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^1.2.2",
|
"axios": "^1.2.2",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "salix-back",
|
"name": "salix-back",
|
||||||
"version": "24.6.0",
|
"version": "24.8.0",
|
||||||
"author": "Verdnatura Levante SL",
|
"author": "Verdnatura Levante SL",
|
||||||
"description": "Salix backend",
|
"description": "Salix backend",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
|
|
Loading…
Reference in New Issue