From 1c6a5164d49acb04f8845b661ea8eb11b5c264db Mon Sep 17 00:00:00 2001 From: vicent Date: Wed, 23 Nov 2022 14:04:43 +0100 Subject: [PATCH] feat: buscar por itemFk y claimResponsibleFk --- modules/claim/back/methods/claim/filter.js | 42 +++++++++++++++------ modules/claim/front/search-panel/index.html | 22 ++++++++++- modules/claim/front/search-panel/index.js | 9 ++++- 3 files changed, 59 insertions(+), 14 deletions(-) diff --git a/modules/claim/back/methods/claim/filter.js b/modules/claim/back/methods/claim/filter.js index e86830200..730fa9ec0 100644 --- a/modules/claim/back/methods/claim/filter.js +++ b/modules/claim/back/methods/claim/filter.js @@ -23,7 +23,7 @@ module.exports = Self => { { arg: 'search', type: 'string', - description: `If it's and integer searchs by id, otherwise it searchs by client name`, + description: `If it's and number searchs by id, otherwise it searchs by client name`, http: {source: 'query'} }, { @@ -34,31 +34,31 @@ module.exports = Self => { }, { arg: 'id', - type: 'integer', + type: 'number', description: 'The claim id', http: {source: 'query'} }, { arg: 'clientFk', - type: 'integer', + type: 'number', description: 'The client id', http: {source: 'query'} }, { arg: 'claimStateFk', - type: 'integer', + type: 'number', description: 'The claim state id', http: {source: 'query'} }, { arg: 'salesPersonFk', - type: 'integer', + type: 'number', description: 'The salesPerson id', http: {source: 'query'} }, { arg: 'attenderFk', - type: 'integer', + type: 'number', description: 'The attender worker id', http: {source: 'query'} }, @@ -67,6 +67,18 @@ module.exports = Self => { type: 'date', description: 'The to date filter', http: {source: 'query'} + }, + { + arg: 'itemFk', + type: 'number', + description: 'The item id', + http: {source: 'query'} + }, + { + arg: 'claimResponsibleFk', + type: 'number', + description: 'The claimResponsible id', + http: {source: 'query'} } ], returns: { @@ -100,9 +112,10 @@ module.exports = Self => { case 'clientName': return {'cl.clientName': {like: `%${value}%`}}; case 'clientFk': - return {'cl.clientFk': value}; case 'id': case 'claimStateFk': + case 'itemFk': + case 'claimResponsibleFk': case 'priority': return {[`cl.${param}`]: value}; case 'salesPersonFk': @@ -123,9 +136,9 @@ module.exports = Self => { const stmts = []; const stmt = new ParameterizedSQL( - `SELECT * + `SELECT * FROM ( - SELECT + SELECT DISTINCT cl.id, cl.clientFk, c.name AS clientName, @@ -135,12 +148,17 @@ module.exports = Self => { cl.created, cs.priority, cl.claimStateFk, - c.salesPersonFk + c.salesPersonFk, + s.itemFk, + cd.claimResponsibleFk FROM claim cl LEFT JOIN client c ON c.id = cl.clientFk - LEFT JOIN worker w ON w.id = cl.workerFk + LEFT JOIN worker w ON w.id = cl.workerFk LEFT JOIN account.user u ON u.id = w.userFk - LEFT JOIN claimState cs ON cs.id = cl.claimStateFk ) cl` + LEFT JOIN claimState cs ON cs.id = cl.claimStateFk + LEFT JOIN claimBeginning cb ON cb.claimFk = cl.id + LEFT JOIN sale s ON s.id = cb.saleFk + LEFT JOIN claimDevelopment cd ON cd.claimFk = cl.id ) cl` ); stmt.merge(conn.makeSuffix(filter)); diff --git a/modules/claim/front/search-panel/index.html b/modules/claim/front/search-panel/index.html index eec8cd727..151a06c8e 100644 --- a/modules/claim/front/search-panel/index.html +++ b/modules/claim/front/search-panel/index.html @@ -58,8 +58,28 @@ ng-model="filter.created"> + + + {{::id}} - {{::name}} + + + + - \ No newline at end of file + diff --git a/modules/claim/front/search-panel/index.js b/modules/claim/front/search-panel/index.js index a7e8fb046..2400b8ede 100644 --- a/modules/claim/front/search-panel/index.js +++ b/modules/claim/front/search-panel/index.js @@ -1,7 +1,14 @@ import ngModule from '../module'; import SearchPanel from 'core/components/searchbar/search-panel'; +class Controller extends SearchPanel { + itemSearchFunc($search) { + return /^\d+$/.test($search) + ? {id: $search} + : {name: {like: '%' + $search + '%'}}; + } +} ngModule.vnComponent('vnClaimSearchPanel', { template: require('./index.html'), - controller: SearchPanel + controller: Controller });