refs #6291 validateTin #1836

Merged
carlossa merged 12 commits from 6291-comprobarDNI into dev 2024-01-09 14:03:21 +00:00
2 changed files with 30 additions and 3 deletions

View File

@ -3011,6 +3011,15 @@ INSERT INTO `vn`.`invoiceCorrectionType` (`id`, `description`)
(2, 'Error in sales details'),
(3, 'Error in customer data');
UPDATE `vn`.`client`
SET fi='65004204V'
WHERE id=1;
UPDATE `vn`.`worker`
SET fi='59328808D'
WHERE id=1106;
INSERT INTO `account`.`mailAliasAcl` (`mailAliasFk`, `roleFk`)
VALUES
(1, 1),

View File

@ -1,4 +1,5 @@
module.exports = Self => {
const validateTin = require('vn-loopback/util/validateTin');
require('../methods/worker/filter')(Self);
require('../methods/worker/mySubordinates')(Self);
require('../methods/worker/isSubordinate')(Self);
@ -23,4 +24,21 @@ module.exports = Self => {
Self.validatesUniquenessOf('locker', {
message: 'This locker has already been assigned'
});
Self.validateAsync('fi', tinIsValid, {
message: 'Invalid TIN'
});
async function tinIsValid(err, done) {
const filter = {
fields: ['code'],
where: {id: this.countryFk}
};
const country = await Self.app.models.Country.findOne(filter);
const code = country ? country.code.toLowerCase() : null;
carlossa marked this conversation as resolved Outdated

Creo que se puede simplificar
const code = country?.code?.toLowerCase() ?? null;
Y después de esto, quizás emitiría un error

Creo que se puede simplificar const code = country?.code?.toLowerCase() ?? null; Y después de esto, quizás emitiría un error
if (!this.fi || !validateTin(this.fi, code))
err();
done();
}
jsegarra marked this conversation as resolved Outdated

El nombre de la variable es correcto?
Porque lo llamas countryCode pero no usas referencias a country

El nombre de la variable es correcto? Porque lo llamas countryCode pero no usas referencias a country

Es como se hacia también en client, por continuar la misma dinámica

Es como se hacia también en client, por continuar la misma dinámica

Entiendo, pero cuando creas un worker(pej), crea también el cliente y es en ese modelo donde se guardan los datos que usas en el worker, por eso digo, que siendo otro model a l mejor necesita otro nombre.

Entiendo, pero cuando creas un worker(pej), crea también el cliente y es en ese modelo donde se guardan los datos que usas en el worker, por eso digo, que siendo otro model a l mejor necesita otro nombre.
};