bug fixed in salesperson query
This commit is contained in:
parent
13c15bb5b3
commit
730d52169e
|
@ -23,17 +23,17 @@ module.exports = (Client) => {
|
||||||
Client.activeSalesPerson = (filter, callback) => {
|
Client.activeSalesPerson = (filter, callback) => {
|
||||||
let skip = filter.skip || 0;
|
let skip = filter.skip || 0;
|
||||||
let limit = filter.limit || 10;
|
let limit = filter.limit || 10;
|
||||||
let where = getCondition(filter.where);
|
let where = getCondition(filter.where, limit, skip);
|
||||||
|
|
||||||
let query = `SELECT em.id, em.name, em.surname
|
let query = `SELECT em.id, em.name, em.surname
|
||||||
FROM Employee em
|
FROM Employee em
|
||||||
JOIN Account ac ON em.userFk = ac.id
|
JOIN Account ac ON em.userFk = ac.id
|
||||||
JOIN Role ON Role.id = ac.roleFK
|
JOIN Role ON Role.id = ac.roleFK
|
||||||
WHERE ac.active AND Role.\`name\`='salesPerson' ${where.cond}
|
WHERE ac.active AND Role.\`name\`='salesPerson' ${where.sql}
|
||||||
ORDER BY em.name ASC
|
ORDER BY em.name ASC
|
||||||
LIMIT ? OFFSET ?`;
|
LIMIT ? OFFSET ?`;
|
||||||
|
|
||||||
Client.rawSql(query, [where.value, parseInt(limit, 10), parseInt(skip, 10)], callback)
|
Client.rawSql(query, where.params, callback)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
callback(null, formatSalesPerson(response));
|
callback(null, formatSalesPerson(response));
|
||||||
})
|
})
|
||||||
|
@ -42,10 +42,21 @@ module.exports = (Client) => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
function getCondition(where) {
|
function getCondition(where, limit, skip) {
|
||||||
let out = {};
|
let out = {
|
||||||
out.cond = (typeof where === 'object' && where.name && where.name.regexp) ? `AND em.name regexp ?` : '?';
|
sql: '',
|
||||||
out.value = (typeof where === 'object' && where.name && where.name.regexp) ? where.name.regexp : '';
|
params: []
|
||||||
|
};
|
||||||
|
if (where && where.or) {
|
||||||
|
out.sql = `AND (em.name regexp ? OR em.surname regexp ?)`;
|
||||||
|
where.or.forEach(val => {
|
||||||
|
Object.keys(val).forEach(key => {
|
||||||
|
out.params.push(val[key].regexp);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
out.params.push(parseInt(limit, 10));
|
||||||
|
out.params.push(parseInt(skip, 10));
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue