fixes #4927 supplier.fiscal-data permitir 'Razón social' duplicada #1230

Merged
joan merged 24 commits from 4927-permitir-razonSocial-duplicada into dev 2023-02-02 07:47:39 +00:00
5 changed files with 25 additions and 5 deletions

View File

@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- (Entradas -> Compras) Cambiados los campos "Precio Grouping/Packing" por "PVP" y "Precio" por "Coste" - (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" - (Artículos -> Últimas entradas) Cambiados los campos "P.P.U." y "P.P.P." por "PVP"
- (Rutas -> Sumario/Tickets) Actualizados campos de los tickets - (Rutas -> Sumario/Tickets) Actualizados campos de los tickets
- (Proveedores -> Crear/Editar) Permite añadir Proveedores con la misma razón social pero con países distintos
### Fixed ### Fixed
- (Artículos -> Etiquetas) Permite intercambiar la relevancia entre dos etiquetas. - (Artículos -> Etiquetas) Permite intercambiar la relevancia entre dos etiquetas.

View File

@ -0,0 +1 @@
ALTER TABLE `vn`.`supplier` ADD UNIQUE (name, countryFk);

View File

@ -80203,4 +80203,3 @@ USE `vncontrol`;
-- Dump completed on 2022-11-21 7:57:28 -- Dump completed on 2022-11-21 7:57:28

View File

@ -262,5 +262,7 @@
"It is not possible to modify tracked sales": "No es posible modificar líneas de pedido que se hayan empezado a preparar", "It is not possible to modify tracked sales": "No es posible modificar líneas de pedido que se hayan empezado a preparar",
"It is not possible to modify sales that their articles are from Floramondo": "No es posible modificar líneas de pedido cuyos artículos sean de Floramondo", "It is not possible to modify sales that their articles are from Floramondo": "No es posible modificar líneas de pedido cuyos artículos sean de Floramondo",
"It is not possible to modify cloned sales": "No es posible modificar líneas de pedido clonadas", "It is not possible to modify cloned sales": "No es posible modificar líneas de pedido clonadas",
"A supplier with the same name already exists. Change the country.": "Un proveedor con el mismo nombre ya existe. Cambie el país.",
"There is no assigned email for this client": "No hay correo asignado para este cliente" "There is no assigned email for this client": "No hay correo asignado para este cliente"
} }

View File

@ -16,10 +16,6 @@ module.exports = Self => {
message: 'The social name cannot be empty' message: 'The social name cannot be empty'
}); });
Self.validatesUniquenessOf('name', {
message: 'The supplier name must be unique'
});
if (this.city) { if (this.city) {
Self.validatesPresenceOf('city', { Self.validatesPresenceOf('city', {
message: 'City cannot be empty' message: 'City cannot be empty'
@ -117,6 +113,27 @@ module.exports = Self => {
throw new UserError('You can not modify is pay method checked'); throw new UserError('You can not modify is pay method checked');
}); });
Self.validateAsync('name', 'countryFk', hasSupplierSameName, {
message: 'A supplier with the same name already exists. Change the country.'
});
async function hasSupplierSameName(err, done) {
if (!this.name || !this.countryFk) done();
const supplier = await Self.app.models.Supplier.findOne(
{
Outdated
Review

hasChanges ya se esta evaluando en el if, no es necesario repetirlo aquí

`hasChanges` ya se esta evaluando en el if, no es necesario repetirlo aquí
where: {
name: this.name,
Outdated
Review

No es necesario evaluar hasChanges

No es necesario evaluar `hasChanges`
countryFk: this.countryFk
},
fields: ['id']
});

Esta duplicada la validació, que confirme Juan açò

Esta duplicada la validació, que confirme Juan açò
Outdated
Review

Si, en principio con la clave UNIQUE que se crea en la tabla es suficiente

Si, en principio con la clave UNIQUE que se crea en la tabla es suficiente
if (supplier && supplier.id != this.id)
err();
done();
}
Self.observe('before save', async function(ctx) { Self.observe('before save', async function(ctx) {
const changes = ctx.data || ctx.instance; const changes = ctx.data || ctx.instance;
const orgData = ctx.currentInstance; const orgData = ctx.currentInstance;