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"
- (Artículos -> Últimas entradas) Cambiados los campos "P.P.U." y "P.P.P." por "PVP"
- (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
- (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

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 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",
"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"
}

View File

@ -16,10 +16,6 @@ module.exports = Self => {
message: 'The social name cannot be empty'
});
Self.validatesUniquenessOf('name', {
message: 'The supplier name must be unique'
});
if (this.city) {
Self.validatesPresenceOf('city', {
message: 'City cannot be empty'
@ -117,6 +113,27 @@ module.exports = Self => {
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(
{
where: {
name: this.name,
countryFk: this.countryFk
},
fields: ['id']
});
if (supplier && supplier.id != this.id)
err();
done();
}
Self.observe('before save', async function(ctx) {
const changes = ctx.data || ctx.instance;
const orgData = ctx.currentInstance;