38 lines
1.3 KiB
JavaScript
38 lines
1.3 KiB
JavaScript
module.exports = function(Client) {
|
|
//validations
|
|
Client.validatesUniquenessOf('name', {message: 'el nombre debe ser unico'});
|
|
Client.validatesUniquenessOf('fi', {message: 'el nif/cif debe ser unico'});
|
|
|
|
Client.validate('payMethod',hasCC,{message: 'Introduzca el iban del cliente'});
|
|
function hasCC(err) {
|
|
if (this.payMethod == 2 && !this.iban) err();
|
|
}
|
|
|
|
Client.validate('payMethod',hasSalesMan,{message: 'No se puede cambiar la forma de pago si no hay comercial asignado'});
|
|
function hasSalesMan(err) {
|
|
if (this.payMethod && !this.salesPerson) err();
|
|
}
|
|
|
|
// Hooks
|
|
Client.observe('before save', function (ctx, next) {
|
|
if (ctx.instance) {
|
|
if (!ctx.instance.dueDay){
|
|
ctx.instance.dueDay = 5;
|
|
}
|
|
next();
|
|
} else {
|
|
Client.findById(ctx.where.id,
|
|
function(err, item) {
|
|
if (!err) {
|
|
if (item.payMethod != ctx.data.payMethod && item.dueDay == ctx.data.dueDay) {
|
|
ctx.data.dueDay = 5;
|
|
}
|
|
if(!ctx.data.name)
|
|
ctx.data.name = item.name;
|
|
}
|
|
next();
|
|
}
|
|
);
|
|
}
|
|
});
|
|
}; |