salix/services/client/common/models/Client.js

62 lines
1.9 KiB
JavaScript
Raw Normal View History

2017-01-12 10:02:22 +00:00
module.exports = function(Client) {
2017-01-16 08:57:06 +00:00
//validations
Client.validatesUniquenessOf('name', {message: 'el nombre debe ser unico'});
Client.validatesUniquenessOf('fi', {message: 'el nif/cif debe ser unico'});
2017-01-12 10:02:22 +00:00
2017-01-16 08:57:06 +00:00
Client.validate('payMethod',hasCC,{message: 'Introduzca el iban del cliente'});
2017-01-12 10:02:22 +00:00
function hasCC(err) {
2017-01-16 08:57:06 +00:00
if (this.payMethod == 2 && !this.iban) err();
2017-01-25 10:46:15 +00:00
};
2017-01-12 10:02:22 +00:00
2017-01-16 08:57:06 +00:00
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();
2017-01-25 10:46:15 +00:00
};
Client.remoteMethod('activate',
{
description: 'Activate or deactive client',
accepts: {arg: 'id', type: 'number', required: true, http: function(ctx) {
var id = ctx && ctx.req && ctx.req.params.id
return id;
}
},
2017-01-25 10:46:15 +00:00
returns: {
arg: 'active',
type: 'boolean'
},
http: {
path: '/:id/activate', verb: 'put'
}
});
Client.activate = function(id, cb){
2017-01-25 10:46:15 +00:00
Client.findById(id, function(err, client) {
if (!err) {
Client.update({id: client.id}, {active: !client.active});
cb(null, !client.active);
}
})
};
2017-01-12 10:02:22 +00:00
2017-01-16 08:57:06 +00:00
// Hooks
Client.observe('before save', function (ctx, next) {
2017-01-16 08:57:06 +00:00
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;
}
}
next();
}
);
}
});
2017-01-12 10:02:22 +00:00
};