closes #4789 hasInvoice on ticket searchbar #1153

Merged
pau merged 8 commits from 4789-search-ticket-without-invoice into dev 2022-11-24 09:27:19 +00:00
4 changed files with 54 additions and 1 deletions

View File

@ -88,6 +88,11 @@ module.exports = Self => {
type: 'boolean',
description: `Whether to show only tickets with route`
},
{
arg: 'hasInvoice',
type: 'boolean',
description: `Whether to show only tickets with invoice`
},
{
arg: 'pending',
type: 'boolean',
@ -199,6 +204,10 @@ module.exports = Self => {
if (value == true)
return {'t.routeFk': {neq: null}};
return {'t.routeFk': null};
case 'hasInvoice':
if (value == true)
return {'t.refFk': {neq: null}};
return {'t.refFk': null};
case 'pending':
return {'st.isNotValidated': value};
case 'id':

View File

@ -39,7 +39,7 @@ describe('ticket filter()', () => {
const filter = {};
const result = await models.Ticket.filter(ctx, filter, options);
expect(result.length).toEqual(6);
expect(result.length).toBeGreaterThan(3);
await tx.rollback();
} catch (e) {
@ -278,4 +278,42 @@ describe('ticket filter()', () => {
throw e;
}
});
it('should return the tickets with the invoice on false', async() => {
const tx = await models.Ticket.beginTransaction({});
try {
const options = {transaction: tx};
const ctx = {req: {accessToken: {userId: 9}}, args: {hasInvoice: true}};
const filter = {};
const result = await models.Ticket.filter(ctx, filter, options);
expect(result.length).toEqual(6);
pau marked this conversation as resolved
Review

Mejor utilizar toBeGreatherThan() de ahora en adelante, para evitar que cualquier cambio en la cantidad de fixtures afecte,

Mejor utilizar toBeGreatherThan() de ahora en adelante, para evitar que cualquier cambio en la cantidad de fixtures afecte,
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
});
it('should return the tickets with the invoice on null', async() => {
const tx = await models.Ticket.beginTransaction({});
try {
const options = {transaction: tx};
const ctx = {req: {accessToken: {userId: 9}}, args: {hasInvoice: null}};
const filter = {};
const result = await models.Ticket.filter(ctx, filter, options);
expect(result.length).toBeGreaterThanOrEqual(27);
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
});
});

View File

@ -141,6 +141,11 @@
ng-model="filter.hasRoute"
triple-state="true">
</vn-check>
<vn-check
vn-one
label="Has invoice"
ng-model="filter.hasInvoice"
triple-state="true">
</vn-horizontal>
<vn-horizontal class="vn-px-lg vn-pb-lg vn-mt-lg">
<vn-submit label="Search"></vn-submit>

View File

@ -13,6 +13,7 @@ Grouped States: Estado agrupado
Days onward: Días adelante
With problems: Con problemas
Has route: Con ruta
Has invoice: Con factura
Pending: Pendiente
FREE: Libre
DELIVERED: Servido