diff --git a/modules/entry/back/methods/entry/filter.js b/modules/entry/back/methods/entry/filter.js index dcb1e31586..4926ad88f2 100644 --- a/modules/entry/back/methods/entry/filter.js +++ b/modules/entry/back/methods/entry/filter.js @@ -106,9 +106,14 @@ module.exports = Self => { description: `The to shipped date filter` }, { - arg: 'days', + arg: 'daysAfter', type: 'number', - description: `N days interval` + description: `N days after interval` + }, + { + arg: 'daysBefore', + type: 'number', + description: `N days before interval` } ], returns: { @@ -210,15 +215,25 @@ module.exports = Self => { JOIN vn.currency cu ON cu.id = e.currencyFk` ); - if (ctx.args.days) { + if (ctx.args.daysAfter) { stmt.merge({ sql: ` - AND t.shipped <= util.VN_CURDATE() + INTERVAL ? DAY - AND t.shipped >= util.VN_CURDATE() + AND ((t.shipped <= util.VN_CURDATE() + INTERVAL ? DAY + AND t.shipped>= util.VN_CURDATE()) `, - params: [ctx.args.days] + params: [ctx.args.daysAfter] }); } + if (ctx.args.daysBefore) { + stmt.merge({ + sql: ` + ${ctx.args.daysAfter ? 'OR' : 'AND'} (t.shipped <= util.VN_CURDATE() + AND t.shipped >= util.VN_CURDATE() - INTERVAL ? DAY) + `, + params: [ctx.args.daysBefore] + }); + } + if (ctx.args.daysAfter) stmt.merge({sql: ')'}); stmt.merge(conn.makeSuffix(filter)); const itemsIndex = stmts.push(stmt) - 1; diff --git a/modules/entry/back/methods/entry/specs/filter.spec.js b/modules/entry/back/methods/entry/specs/filter.spec.js index c7156062a9..9007deeeff 100644 --- a/modules/entry/back/methods/entry/specs/filter.spec.js +++ b/modules/entry/back/methods/entry/specs/filter.spec.js @@ -55,7 +55,7 @@ describe('Entry filter()', () => { try { const ctx = { - args: {days: 6}, + args: {daysAfter: 6}, req: {accessToken: {userId: 1102}} };