feat: refs #7884 added new filter field
gitea/salix/pipeline/pr-dev This commit looks good Details

This commit is contained in:
Jon Elias 2024-09-17 08:31:58 +02:00
parent 361d60a8a8
commit 1d47690bb4
2 changed files with 42 additions and 5 deletions

View File

@ -106,10 +106,15 @@ module.exports = Self => {
description: `The to shipped date filter`
},
{
arg: 'days',
arg: 'daysOnward',
type: 'number',
description: `N days interval`
},
{
arg: 'daysAgo',
type: 'number',
description: `N days ago interval`
},
{
arg: 'invoiceAmount',
type: 'number',
@ -216,15 +221,26 @@ module.exports = Self => {
JOIN vn.currency cu ON cu.id = e.currencyFk`
);
if (ctx.args.days) {
if (ctx.args.daysOnward) {
stmt.merge({
sql: `
AND t.shipped <= util.VN_CURDATE() + INTERVAL ? DAY
AND t.shipped >= util.VN_CURDATE()
`,
params: [ctx.args.days]
params: [ctx.args.daysOnward]
});
}
if (ctx.args.daysAgo) {
stmt.merge({
sql: `
AND t.shipped >= util.VN_CURDATE() - INTERVAL ? DAY
AND t.shipped < util.VN_CURDATE()
`,
params: [ctx.args.daysAgo]
});
}
stmt.merge(conn.makeSuffix(filter));
const itemsIndex = stmts.push(stmt) - 1;

View File

@ -49,13 +49,13 @@ describe('Entry filter()', () => {
});
describe('should return the entry matching the supplier', () => {
it('when userId is supplier ', async() => {
it('when userId is supplier and searching days onward', async() => {
const tx = await models.Entry.beginTransaction({});
const options = {transaction: tx};
try {
const ctx = {
args: {days: 6},
args: {daysOnward: 6},
req: {accessToken: {userId: 1102}}
};
@ -70,6 +70,27 @@ describe('Entry filter()', () => {
}
});
it('when userId is supplier and searching days ago', async() => {
const tx = await models.Entry.beginTransaction({});
const options = {transaction: tx};
try {
const ctx = {
args: {daysAgo: 31},
req: {accessToken: {userId: 1102}}
};
const result = await models.Entry.filter(ctx, options);
expect(result.length).toEqual(6);
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
});
it('when userId is supplier fetching other supplier', async() => {
const tx = await models.Entry.beginTransaction({});
const options = {transaction: tx};