fix(usesMana): refs #6879 add mana excluded worker #2053

Merged
pablone merged 2 commits from 6879-fixUsesManaExlusion into master 2024-02-19 13:22:45 +00:00
4 changed files with 52 additions and 5 deletions

View File

@ -1,11 +1,7 @@
const models = require('vn-loopback/server/server').models;
describe('sale usesMana()', () => {
const ctx = {
req: {
accessToken: {userId: 18}
}
};
const ctx = {req: { accessToken: {userId: 18}}};
it('should return that the worker uses mana', async() => {
const tx = await models.Sale.beginTransaction({});
@ -45,4 +41,27 @@ describe('sale usesMana()', () => {
throw e;
}
});
it('should return that the worker does not use mana because it is excluded', async() => {
const tx = await models.Sale.beginTransaction({});
const buyerId = 35;
const franceDepartmentId = 133;
const buyerCtx = {req: {accessToken: {userId: buyerId}}};
try {
const options = {transaction: tx}
await models.WorkerManaExcluded.create({workerFk: buyerId}, options);
await models.Business.updateAll({workerFk: buyerId}, {departmentFk: franceDepartmentId}, options);
const usesMana = await models.Sale.usesMana(buyerCtx, options);
expect(usesMana).toBe(false);
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
});
});

View File

@ -21,6 +21,9 @@ module.exports = Self => {
if (typeof options == 'object')
Object.assign(myOptions, options);
const isManaExcluded = await models.WorkerManaExcluded.findById(userId, null, myOptions);
if (isManaExcluded) return false;
const salesDepartment = await models.Department.findOne({where: {code: 'VT'}, fields: 'id'}, myOptions);
const departments = await models.Department.getLeaves(ctx, salesDepartment.id, null, myOptions);
const workerDepartment = await models.WorkerDepartment.findById(userId, null, myOptions);

View File

@ -86,6 +86,9 @@
"WorkerMana": {
"dataSource": "vn"
},
"WorkerManaExcluded": {
"dataSource": "vn"
},
"WorkerMistake": {
"dataSource": "vn"
},

View File

@ -0,0 +1,22 @@
{
"name": "WorkerManaExcluded",
"base": "VnModel",
"options": {
"mysql": {
"table": "workerManaExcluded"
}
},
"properties": {
"workerFk": {
"id": true,
"type": "number"
}
},
"relations": {
"worker": {
"type": "belongsTo",
"model": "Worker",
"foreignKey": "workerFk"
}
}
}