From 1c6a5164d49acb04f8845b661ea8eb11b5c264db Mon Sep 17 00:00:00 2001 From: vicent Date: Wed, 23 Nov 2022 14:04:43 +0100 Subject: [PATCH 01/27] 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 }); From 14eba75a8e5311b38a1fd9e6d1614f61064b54ad Mon Sep 17 00:00:00 2001 From: vicent Date: Wed, 23 Nov 2022 14:08:43 +0100 Subject: [PATCH 02/27] feat: backTest --- .../back/methods/claim/specs/filter.spec.js | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/modules/claim/back/methods/claim/specs/filter.spec.js b/modules/claim/back/methods/claim/specs/filter.spec.js index b26afe8c4..49e258505 100644 --- a/modules/claim/back/methods/claim/specs/filter.spec.js +++ b/modules/claim/back/methods/claim/specs/filter.spec.js @@ -57,4 +57,44 @@ describe('claim filter()', () => { throw e; } }); + + it('should return 3 results filtering by item id', async() => { + const tx = await app.models.Claim.beginTransaction({}); + + try { + const options = {transaction: tx}; + + const result = await app.models.Claim.filter({args: {filter: {}, itemFk: 2}}, null, options); + + expect(result.length).toEqual(3); + expect(result[0].id).toEqual(1); + expect(result[1].id).toEqual(2); + expect(result[2].id).toEqual(4); + + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); + + it('should return 3 results filtering by claimResponsible id', async() => { + const tx = await app.models.Claim.beginTransaction({}); + + try { + const options = {transaction: tx}; + + const result = await app.models.Claim.filter({args: {filter: {}, claimResponsibleFk: 7}}, null, options); + + expect(result.length).toEqual(3); + expect(result[0].id).toEqual(2); + expect(result[1].id).toEqual(3); + expect(result[2].id).toEqual(4); + + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + }); }); From d023ec0a13fab813089a70c3004a690c69ae6692 Mon Sep 17 00:00:00 2001 From: vicent Date: Fri, 25 Nov 2022 08:24:25 +0100 Subject: [PATCH 03/27] update fixtures --- db/dump/fixtures.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index 41cd84638..04adc5649 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -1776,7 +1776,7 @@ INSERT INTO `vn`.`claimDestination`(`id`, `description`, `addressFk`) INSERT INTO `vn`.`claimDevelopment`(`id`, `claimFk`, `claimResponsibleFk`, `workerFk`, `claimReasonFk`, `claimResultFk`, `claimRedeliveryFk`, `claimDestinationFk`) VALUES (1, 1, 1, 21, 1, 1, 2, 5), - (2, 1, 1, 21, 7, 2, 2, 5), + (2, 1, 2, 21, 7, 2, 2, 5), (3, 2, 7, 21, 9, 3, 2, 5), (4, 3, 7, 21, 15, 8, 2, 5), (5, 4, 7, 21, 7, 8, 2, 5); From 4c0effc48aefdbb80702c045312dcdcfee0cab6a Mon Sep 17 00:00:00 2001 From: vicent Date: Thu, 1 Dec 2022 07:25:18 +0100 Subject: [PATCH 04/27] refacor: description actualizada --- modules/claim/back/methods/claim/filter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/claim/back/methods/claim/filter.js b/modules/claim/back/methods/claim/filter.js index 730fa9ec0..c31ac3ebd 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 number searchs by id, otherwise it searchs by client name`, + description: `If it's a number searchs by id, otherwise it searchs by client name`, http: {source: 'query'} }, { From 9bcef08397f5495d0af5d78727ff7f8bbe21a2c5 Mon Sep 17 00:00:00 2001 From: vicent Date: Mon, 12 Dec 2022 12:08:30 +0100 Subject: [PATCH 05/27] feat: buscar por responsibleFk sin afectar a la consulta principal --- modules/claim/back/methods/claim/filter.js | 75 +++++++++++++--------- 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/modules/claim/back/methods/claim/filter.js b/modules/claim/back/methods/claim/filter.js index c31ac3ebd..8ff3288de 100644 --- a/modules/claim/back/methods/claim/filter.js +++ b/modules/claim/back/methods/claim/filter.js @@ -93,33 +93,34 @@ module.exports = Self => { Self.filter = async(ctx, filter, options) => { const conn = Self.dataSource.connector; + const args = ctx.args; const myOptions = {}; let to; if (typeof options == 'object') Object.assign(myOptions, options); - const where = buildFilter(ctx.args, (param, value) => { + const where = buildFilter(args, (param, value) => { switch (param) { case 'search': return /^\d+$/.test(value) ? {'cl.id': value} : { or: [ - {'cl.clientName': {like: `%${value}%`}} + {'c.name': {like: `%${value}%`}} ] }; case 'clientName': - return {'cl.clientName': {like: `%${value}%`}}; + return {'c.name': {like: `%${value}%`}}; case 'clientFk': case 'id': case 'claimStateFk': - case 'itemFk': - case 'claimResponsibleFk': case 'priority': return {[`cl.${param}`]: value}; + case 'itemFk': + return {[`s.${param}`]: value}; case 'salesPersonFk': - return {'cl.salesPersonFk': value}; + return {'c.salesPersonFk': value}; case 'attenderFk': return {'cl.workerFk': value}; case 'created': @@ -131,36 +132,50 @@ module.exports = Self => { } }); - filter = mergeFilters(ctx.args.filter, {where}); + filter = mergeFilters(args.filter, {where}); const stmts = []; const stmt = new ParameterizedSQL( - `SELECT * - FROM ( - SELECT DISTINCT - cl.id, - cl.clientFk, - c.name AS clientName, - cl.workerFk, - u.name AS workerName, - cs.description, - cl.created, - cs.priority, - cl.claimStateFk, - 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 account.user u ON u.id = w.userFk - 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` + `SELECT + cl.id, + cl.clientFk, + c.name AS clientName, + cl.workerFk, + u.name AS workerName, + cs.description, + cl.created, + cs.priority, + cl.claimStateFk, + c.salesPersonFk, + s.itemFk + FROM claim cl + LEFT JOIN client c ON c.id = cl.clientFk + 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 + LEFT JOIN claimBeginning cb ON cb.claimFk = cl.id + LEFT JOIN sale s ON s.id = cb.saleFk` ); + if (args.claimResponsibleFk) { + query = `SELECT cd.claimFk + FROM claimDevelopment cd + WHERE cd.claimResponsibleFk = ?`; + const claimDevelopments = await Self.rawSql(query, [args.claimResponsibleFk], myOptions); + + const claimIds = claimDevelopments.map(claimDevelopment => { + return claimDevelopment.claimFk; + }); + + stmt.merge({ + sql: `LEFT JOIN claimDevelopment cd ON cd.claimFk = cl.id + WHERE cl.id IN (?) + GROUP BY cl.id`, + params: [claimIds], + }); + } + stmt.merge(conn.makeSuffix(filter)); const itemsIndex = stmts.push(stmt) - 1; From 799c26796e4e1e3b8ed692e0abc5335d66204c8e Mon Sep 17 00:00:00 2001 From: vicent Date: Tue, 20 Dec 2022 15:19:05 +0100 Subject: [PATCH 06/27] =?UTF-8?q?feat:=20a=C3=B1adidos=20chips?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../back/methods/sale/salePreparingList.js | 33 +++++++++++++++++ modules/ticket/back/models/sale.js | 1 + modules/ticket/front/sale-checked/index.html | 9 +++-- modules/ticket/front/sale-checked/index.js | 37 ++++++++++++++++++- 4 files changed, 75 insertions(+), 5 deletions(-) create mode 100644 modules/ticket/back/methods/sale/salePreparingList.js diff --git a/modules/ticket/back/methods/sale/salePreparingList.js b/modules/ticket/back/methods/sale/salePreparingList.js new file mode 100644 index 000000000..c75444223 --- /dev/null +++ b/modules/ticket/back/methods/sale/salePreparingList.js @@ -0,0 +1,33 @@ +module.exports = Self => { + Self.remoteMethodCtx('salePreparingList', { + description: 'Returns a list with the lines of a ticket and its different states of preparation', + accessType: 'READ', + accepts: [{ + arg: 'id', + type: 'number', + required: true, + description: 'The ticket id', + http: {source: 'path'} + }], + returns: { + type: 'object', + root: true + }, + http: { + path: `/:id/salePreparingList`, + verb: 'GET' + } + }); + + Self.salePreparingList = async(ctx, id, options) => { + const myOptions = {}; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + query = `CALL vn.salePreparingList(?)`; + const [sales] = await Self.rawSql(query, [id], myOptions); + + return sales; + }; +}; diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index ae247fc24..bab201fdd 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -1,5 +1,6 @@ module.exports = Self => { require('../methods/sale/getClaimableFromTicket')(Self); + require('../methods/sale/salePreparingList')(Self); require('../methods/sale/reserve')(Self); require('../methods/sale/deleteSales')(Self); require('../methods/sale/updatePrice')(Self); diff --git a/modules/ticket/front/sale-checked/index.html b/modules/ticket/front/sale-checked/index.html index 1bc6f1f68..0ee1a56d4 100644 --- a/modules/ticket/front/sale-checked/index.html +++ b/modules/ticket/front/sale-checked/index.html @@ -22,10 +22,11 @@ - - + + + + + { + this.salePreparingList = res.data; + }); + } + showItemDescriptor(event, sale) { this.quicklinks = { btnThree: { icon: 'icon-transaction', state: `item.card.diary({ - id: ${sale.itemFk}, + id: ${sale.itemFk}, warehouseFk: ${this.ticket.warehouseFk}, lineFk: ${sale.id} })`, @@ -31,6 +40,32 @@ class Controller extends Section { }; this.$.itemDescriptor.show(event.target, sale.itemFk); } + + chipHasSaleGroupDetail(saleId) { + const salePreparing = this.salePreparingList.find(element => element.saleFk = saleId); + if (salePreparing.hasSaleGroupDetail) return 'success'; + else return 'message'; + } + + chipIsPreviousSelected(isActive) { + if (isActive) return 'notice'; + else return 'message'; + } + + chipIsPrevious(isActive) { + if (isActive) return 'success'; + else return 'message'; + } + + chipIsPrepared(isActive) { + if (isActive) return 'warning'; + else return 'message'; + } + + chipIsControled(isActive) { + if (isActive) return 'warning'; + else return 'message'; + } } ngModule.vnComponent('vnTicketSaleChecked', { From 8880a83b895a466ec98f13826daacea2aa352fb0 Mon Sep 17 00:00:00 2001 From: vicent Date: Wed, 21 Dec 2022 15:03:41 +0100 Subject: [PATCH 07/27] =?UTF-8?q?feat:=20a=C3=B1adido=20saleTracking?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/core/components/table/style.scss | 20 ++++- front/core/styles/variables.scss | 2 + .../back/methods/sale/salePreparingList.js | 2 +- modules/ticket/front/sale-checked/index.html | 77 +++++++++++++++++-- modules/ticket/front/sale-checked/index.js | 26 ++++--- modules/ticket/front/sale-checked/style.scss | 7 ++ 6 files changed, 113 insertions(+), 21 deletions(-) create mode 100644 modules/ticket/front/sale-checked/style.scss diff --git a/front/core/components/table/style.scss b/front/core/components/table/style.scss index d0a29a3ba..557268661 100644 --- a/front/core/components/table/style.scss +++ b/front/core/components/table/style.scss @@ -29,7 +29,7 @@ vn-table { & > tbody { display: table-row-group; } - & > vn-tfoot, + & > vn-tfoot, & > .vn-tfoot, & > tfoot { border-top: $border; @@ -42,7 +42,7 @@ vn-table { height: 48px; } vn-thead, .vn-thead, - vn-tbody, .vn-tbody, + vn-tbody, .vn-tbody, vn-tfoot, .vn-tfoot, thead, tbody, tfoot { & > * { @@ -153,6 +153,18 @@ vn-table { background-color: $color-font-bg-dark; color: $color-font-bg; } + &.dark-notice { + background-color: $color-notice; + color: $color-font-bg; + } + &.yellow { + background-color: $color-yellow; + color: $color-font-bg; + } + &.pink { + background-color: $color-pink; + color: $color-font-bg; + } } vn-icon-menu { display: inline-block; @@ -194,7 +206,7 @@ vn-table.scrollable > .vn-table, } vn-thead th, - vn-thead vn-th, + vn-thead vn-th, thead vn-th, thead th { border-bottom: $border; @@ -217,4 +229,4 @@ vn-table.scrollable.lg, .tableWrapper { overflow-x: auto; -} \ No newline at end of file +} diff --git a/front/core/styles/variables.scss b/front/core/styles/variables.scss index c79a8590f..bcc9fab66 100644 --- a/front/core/styles/variables.scss +++ b/front/core/styles/variables.scss @@ -101,6 +101,8 @@ $color-marginal: #222; $color-success: #a3d131; $color-notice: #32b1ce; $color-alert: #fa3939; +$color-pink: #ff99cc; +$color-yellow: #ffff00; $color-button: $color-secondary; $color-spacer: rgba(255, 255, 255, .3); diff --git a/modules/ticket/back/methods/sale/salePreparingList.js b/modules/ticket/back/methods/sale/salePreparingList.js index c75444223..e6e7d5164 100644 --- a/modules/ticket/back/methods/sale/salePreparingList.js +++ b/modules/ticket/back/methods/sale/salePreparingList.js @@ -10,7 +10,7 @@ module.exports = Self => { http: {source: 'path'} }], returns: { - type: 'object', + type: ['object'], root: true }, http: { diff --git a/modules/ticket/front/sale-checked/index.html b/modules/ticket/front/sale-checked/index.html index 0ee1a56d4..a8b0b6230 100644 --- a/modules/ticket/front/sale-checked/index.html +++ b/modules/ticket/front/sale-checked/index.html @@ -17,16 +17,18 @@ Item Description Quantity + + - - - - - - + + + + + + {{::sale.quantity}} + + + + + + + + @@ -59,3 +75,52 @@ warehouse-fk="$ctrl.ticket.warehouseFk" ticket-fk="$ctrl.ticket.id"> + + + + + + + + + + Quantity + Original + Worker + State + Created + + + + + {{::sale.quantity}} + {{::sale.originalQuantity}} + + + {{::sale.userNickname | dashIfEmpty}} + + + {{::sale.state}} + {{::sale.created | date: 'dd/MM/yyyy HH:mm'}} + + + + + + + + + + diff --git a/modules/ticket/front/sale-checked/index.js b/modules/ticket/front/sale-checked/index.js index 14ea93343..baa4c9af0 100644 --- a/modules/ticket/front/sale-checked/index.js +++ b/modules/ticket/front/sale-checked/index.js @@ -1,5 +1,6 @@ import ngModule from '../module'; import Section from 'salix/components/section'; +import './style.scss'; class Controller extends Section { constructor($element, $) { @@ -42,30 +43,35 @@ class Controller extends Section { } chipHasSaleGroupDetail(saleId) { - const salePreparing = this.salePreparingList.find(element => element.saleFk = saleId); - if (salePreparing.hasSaleGroupDetail) return 'success'; + this.salePreparing = this.salePreparingList.find(element => element.saleFk == saleId); + if (this.salePreparing.hasSaleGroupDetail) return 'pink'; else return 'message'; } - chipIsPreviousSelected(isActive) { - if (isActive) return 'notice'; + chipIsPreviousSelected() { + if (this.salePreparing.isPreviousSelected) return 'notice'; else return 'message'; } - chipIsPrevious(isActive) { - if (isActive) return 'success'; + chipIsPrevious() { + if (this.salePreparing.isPrevious) return 'dark-notice'; else return 'message'; } - chipIsPrepared(isActive) { - if (isActive) return 'warning'; + chipIsPrepared() { + if (this.salePreparing.isPrepared) return 'warning'; else return 'message'; } - chipIsControled(isActive) { - if (isActive) return 'warning'; + chipIsControled() { + if (this.salePreparing.isControled) return 'yellow'; else return 'message'; } + + showSaleTracking(sale) { + this.saleId = sale.id; + this.$.saleTracking.show(); + } } ngModule.vnComponent('vnTicketSaleChecked', { diff --git a/modules/ticket/front/sale-checked/style.scss b/modules/ticket/front/sale-checked/style.scss new file mode 100644 index 000000000..8f02410c2 --- /dev/null +++ b/modules/ticket/front/sale-checked/style.scss @@ -0,0 +1,7 @@ +@import "variables"; + +.chip { + display: inline-block; + min-width: 10px; + min-height: 20px; +} From 53b5ef6d78816da67535b0a52e4df33fdd160638 Mon Sep 17 00:00:00 2001 From: alexandre Date: Fri, 23 Dec 2022 11:48:59 +0100 Subject: [PATCH 08/27] refs #4937 viewReceipt added --- modules/client/front/balance/create/index.js | 2 +- modules/client/front/balance/create/index.spec.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/client/front/balance/create/index.js b/modules/client/front/balance/create/index.js index 935129574..35b2e0b38 100644 --- a/modules/client/front/balance/create/index.js +++ b/modules/client/front/balance/create/index.js @@ -4,7 +4,7 @@ import Dialog from 'core/components/dialog'; class Controller extends Dialog { constructor($element, $, $transclude, vnReport) { super($element, $, $transclude); - + this.viewReceipt = true; this.vnReport = vnReport; this.receipt = {}; } diff --git a/modules/client/front/balance/create/index.spec.js b/modules/client/front/balance/create/index.spec.js index fa6b48ea4..2c4ed1940 100644 --- a/modules/client/front/balance/create/index.spec.js +++ b/modules/client/front/balance/create/index.spec.js @@ -75,6 +75,7 @@ describe('Client', () => { jest.spyOn(controller.vnReport, 'show'); controller.$params = {id: 1101}; + controller.viewReceipt = false; $httpBackend.expect('POST', `Clients/1101/createReceipt`).respond({id: 1}); controller.responseHandler('accept'); From 16c20e470028c6d004f6fe9407c7f2157d63791f Mon Sep 17 00:00:00 2001 From: vicent Date: Fri, 23 Dec 2022 12:08:16 +0100 Subject: [PATCH 09/27] feat: add itemShelvingSale popup --- db/changes/230201/00-ACL_ItemShelvingSale.sql | 2 + db/dump/fixtures.sql | 8 +-- modules/item/back/models/item-shelving.json | 7 ++- modules/ticket/front/sale-checked/index.html | 49 +++++++++++++++++-- modules/ticket/front/sale-checked/index.js | 28 +++++++++++ .../ticket/front/sale-checked/locale/es.yml | 1 + 6 files changed, 87 insertions(+), 8 deletions(-) create mode 100644 db/changes/230201/00-ACL_ItemShelvingSale.sql create mode 100644 modules/ticket/front/sale-checked/locale/es.yml diff --git a/db/changes/230201/00-ACL_ItemShelvingSale.sql b/db/changes/230201/00-ACL_ItemShelvingSale.sql new file mode 100644 index 000000000..38b65f89a --- /dev/null +++ b/db/changes/230201/00-ACL_ItemShelvingSale.sql @@ -0,0 +1,2 @@ +INSERT INTO `salix`.`ACL` (`model`,`property`,`accessType`,`permission`,`principalId`) + VALUES ('ItemShelvingSale','*','*','ALLOW','employee'); diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index 762e5411a..4bbce0442 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -1143,10 +1143,10 @@ INSERT INTO `vn`.`itemShelving` (`itemFk`, `shelvingFk`, `visible`, `grouping`, INSERT INTO `vn`.`itemShelvingSale` (`itemShelvingFk`, `saleFk`, `quantity`, `created`, `userFk`) VALUES - ('1', '1', '1', '', '1106'), - ('2', '2', '5', '', '1106'), - ('1', '7', '1', '', '1106'), - ('2', '8', '5', '', '1106'); + ('1', '1', '1', util.VN_CURDATE(), '1106'), + ('2', '2', '5', util.VN_CURDATE(), '1106'), + ('1', '7', '1', util.VN_CURDATE(), '1106'), + ('2', '8', '5', util.VN_CURDATE(), '1106'); INSERT INTO `vncontrol`.`accion`(`accion_id`, `accion`) VALUES diff --git a/modules/item/back/models/item-shelving.json b/modules/item/back/models/item-shelving.json index 951a4553a..51659e716 100644 --- a/modules/item/back/models/item-shelving.json +++ b/modules/item/back/models/item-shelving.json @@ -41,6 +41,11 @@ "type": "belongsTo", "model": "Account", "foreignKey": "userFk" - } + }, + "shelving": { + "type": "belongsTo", + "model": "Shelving", + "foreignKey": "shelvingFk" + } } } diff --git a/modules/ticket/front/sale-checked/index.html b/modules/ticket/front/sale-checked/index.html index a8b0b6230..3da4471c6 100644 --- a/modules/ticket/front/sale-checked/index.html +++ b/modules/ticket/front/sale-checked/index.html @@ -54,14 +54,14 @@ @@ -124,3 +124,46 @@ vn-id="worker-descriptor"> + + + + + + + + + + Quantity + Worker + Shelving + Parking + Created + + + + + {{::itemShelvingSale.quantity}} + {{::itemShelvingSale.userFk}} + {{::itemShelvingSale.itemShelving.shelvingFk}} + {{::itemShelvingSale.state}} + {{::itemShelvingSale.created | date: 'dd/MM/yyyy HH:mm'}} + + + + + + + + + + diff --git a/modules/ticket/front/sale-checked/index.js b/modules/ticket/front/sale-checked/index.js index baa4c9af0..04196c313 100644 --- a/modules/ticket/front/sale-checked/index.js +++ b/modules/ticket/front/sale-checked/index.js @@ -17,6 +17,27 @@ class Controller extends Section { } ] }; + + this.filterItemShelvingSale = { + include: { + relation: 'itemShelving', + scope: { + fields: ['shelvingFk'], + include: { + relation: 'shelving', + scope: { + fields: ['parkingFk'], + include: { + relation: 'parking', + scope: { + fields: ['id', 'code'] + } + } + } + } + } + } + }; } $onInit() { @@ -72,6 +93,13 @@ class Controller extends Section { this.saleId = sale.id; this.$.saleTracking.show(); } + + showItemShelvingSale(sale) { + this.saleId = sale.id; + this.$.itemShelvingSale.show(); + + console.log(this.itemShelvingSales); + } } ngModule.vnComponent('vnTicketSaleChecked', { diff --git a/modules/ticket/front/sale-checked/locale/es.yml b/modules/ticket/front/sale-checked/locale/es.yml new file mode 100644 index 000000000..3a7964bb2 --- /dev/null +++ b/modules/ticket/front/sale-checked/locale/es.yml @@ -0,0 +1 @@ +ItemShelvings sale: Carros línea From d3a9e9ac891db0f111295b14ac15b9a7d88c1355 Mon Sep 17 00:00:00 2001 From: vicent Date: Fri, 23 Dec 2022 12:17:24 +0100 Subject: [PATCH 10/27] delete: columnas que ya no existen en la tabla --- modules/item/back/models/item-shelving.json | 9 --------- modules/ticket/front/sale-checked/index.html | 2 +- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/modules/item/back/models/item-shelving.json b/modules/item/back/models/item-shelving.json index 51659e716..0890350da 100644 --- a/modules/item/back/models/item-shelving.json +++ b/modules/item/back/models/item-shelving.json @@ -12,21 +12,12 @@ "id": true, "description": "Identifier" }, - "shelve": { - "type": "string" - }, "shelvingFk": { "type": "string" }, "itemFk": { "type": "number" }, - "deep": { - "type": "number" - }, - "quantity": { - "type": "number" - }, "created": { "type": "date" } diff --git a/modules/ticket/front/sale-checked/index.html b/modules/ticket/front/sale-checked/index.html index 3da4471c6..3e1d3d2d0 100644 --- a/modules/ticket/front/sale-checked/index.html +++ b/modules/ticket/front/sale-checked/index.html @@ -152,7 +152,7 @@ {{::itemShelvingSale.quantity}} {{::itemShelvingSale.userFk}} {{::itemShelvingSale.itemShelving.shelvingFk}} - {{::itemShelvingSale.state}} + {{::itemShelvingSale.itemShelving.shelving.parking.code}} {{::itemShelvingSale.created | date: 'dd/MM/yyyy HH:mm'}} From 96a6f0b9d90a556059fcce0f16e85e79a8524396 Mon Sep 17 00:00:00 2001 From: alexandre Date: Tue, 27 Dec 2022 07:48:09 +0100 Subject: [PATCH 11/27] refs #4926 packingOut added --- e2e/helpers/selectors.js | 1 + e2e/paths/04-item/02_basic_data.spec.js | 8 +++++ modules/item/front/basic-data/index.html | 37 ++++++++++++++---------- modules/item/front/locale/es.yml | 3 +- 4 files changed, 33 insertions(+), 16 deletions(-) diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index f6a299011..9ac953733 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -463,6 +463,7 @@ export default { generic: 'vn-autocomplete[ng-model="$ctrl.item.genericFk"]', isFragile: 'vn-check[ng-model="$ctrl.item.isFragile"]', longName: 'vn-textfield[ng-model="$ctrl.item.longName"]', + packingOut: 'vn-input-number[ng-model="$ctrl.item.packingOut"]', isActiveCheckbox: 'vn-check[label="Active"]', priceInKgCheckbox: 'vn-check[label="Price in kg"]', newIntrastatButton: 'vn-item-basic-data vn-icon-button[vn-tooltip="New intrastat"] > button', diff --git a/e2e/paths/04-item/02_basic_data.spec.js b/e2e/paths/04-item/02_basic_data.spec.js index a663ea3bb..3cf142816 100644 --- a/e2e/paths/04-item/02_basic_data.spec.js +++ b/e2e/paths/04-item/02_basic_data.spec.js @@ -35,6 +35,7 @@ describe('Item Edit basic data path', () => { await page.waitToClick(selectors.itemBasicData.isActiveCheckbox); await page.waitToClick(selectors.itemBasicData.priceInKgCheckbox); await page.waitToClick(selectors.itemBasicData.isFragile); + await page.write(selectors.itemBasicData.packingOut, '5'); await page.waitToClick(selectors.itemBasicData.submitBasicDataButton); const message = await page.waitForSnackbar(); @@ -128,4 +129,11 @@ describe('Item Edit basic data path', () => { expect(result).toBe('checked'); }); + + it(`should confirm the item packingOut was edited`, async() => { + const result = await page + .waitToGetProperty(selectors.itemBasicData.packingOut, 'value'); + + expect(result).toEqual('5'); + }); }); diff --git a/modules/item/front/basic-data/index.html b/modules/item/front/basic-data/index.html index 8d1afe4e1..fd21ab240 100644 --- a/modules/item/front/basic-data/index.html +++ b/modules/item/front/basic-data/index.html @@ -1,6 +1,6 @@ - - @@ -95,7 +95,7 @@ @@ -108,15 +108,15 @@ @@ -124,10 +124,17 @@ + + - @@ -225,12 +232,12 @@ - \ No newline at end of file + diff --git a/modules/item/front/locale/es.yml b/modules/item/front/locale/es.yml index 88ab031e1..0fc014742 100644 --- a/modules/item/front/locale/es.yml +++ b/modules/item/front/locale/es.yml @@ -44,6 +44,7 @@ Weight/Piece: Peso/tallo Search items by id, name or barcode: Buscar articulos por identificador, nombre o codigo de barras SalesPerson: Comercial Concept: Concepto +Units/Box: Unidades/Caja # Sections Items: Artículos @@ -61,4 +62,4 @@ Item diary: Registro de compra-venta Last entries: Últimas entradas Tags: Etiquetas Waste breakdown: Desglose de mermas -Waste breakdown by item: Desglose de mermas por artículo \ No newline at end of file +Waste breakdown by item: Desglose de mermas por artículo From c1cac3785d5b70179c59701857e0519b5fd4e4ef Mon Sep 17 00:00:00 2001 From: alexandre Date: Tue, 27 Dec 2022 08:26:49 +0100 Subject: [PATCH 12/27] refs #4926 changelog modified --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95b3028de..343f5d1d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,8 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- +- Añadido campo Unidades/Caja en Datos Básicos de Artículo ### Changed -- \ No newline at end of file +- From 3dd0c79629d6fd1958d64fe4d168659cc72f011b Mon Sep 17 00:00:00 2001 From: vicent Date: Tue, 27 Dec 2022 15:00:49 +0100 Subject: [PATCH 13/27] feat: add ItemShelvingSales/filter --- .../back/methods/item-shelving-sale/filter.js | 48 +++++++++++++++++++ .../item/back/models/item-shelving-sale.js | 3 ++ modules/ticket/front/sale-checked/index.html | 21 ++++---- modules/ticket/front/sale-checked/index.js | 21 -------- 4 files changed, 62 insertions(+), 31 deletions(-) create mode 100644 modules/item/back/methods/item-shelving-sale/filter.js create mode 100644 modules/item/back/models/item-shelving-sale.js diff --git a/modules/item/back/methods/item-shelving-sale/filter.js b/modules/item/back/methods/item-shelving-sale/filter.js new file mode 100644 index 000000000..a91ae7c86 --- /dev/null +++ b/modules/item/back/methods/item-shelving-sale/filter.js @@ -0,0 +1,48 @@ + +const ParameterizedSQL = require('loopback-connector').ParameterizedSQL; + +module.exports = Self => { + Self.remoteMethod('filter', { + description: 'Returns all ticket sale trackings', + accessType: 'READ', + accepts: [{ + arg: 'filter', + type: 'object', + description: 'Filter defining where and paginated data' + }], + returns: { + type: ['object'], + root: true + }, + http: { + path: `/filter`, + verb: 'GET' + } + }); + + Self.filter = async(filter, options) => { + const conn = Self.dataSource.connector; + const myOptions = {}; + + if (typeof options == 'object') + Object.assign(myOptions, options); + + const stmt = new ParameterizedSQL(` + SELECT iss.created, + iss.saleFk, + iss.quantity, + ish.shelvingFk, + p.code, + u.name + FROM itemShelvingSale iss + LEFT JOIN itemShelving ish ON iss.itemShelvingFk = ish.id + LEFT JOIN shelving s ON ish.shelvingFk = s.code + LEFT JOIN parking p ON s.parkingFk = p.id + LEFT JOIN account.user u ON u.id = iss.userFk` + ); + + stmt.merge(conn.makeSuffix(filter)); + + return conn.executeStmt(stmt); + }; +}; diff --git a/modules/item/back/models/item-shelving-sale.js b/modules/item/back/models/item-shelving-sale.js new file mode 100644 index 000000000..b89be9f00 --- /dev/null +++ b/modules/item/back/models/item-shelving-sale.js @@ -0,0 +1,3 @@ +module.exports = Self => { + require('../methods/item-shelving-sale/filter')(Self); +}; diff --git a/modules/ticket/front/sale-checked/index.html b/modules/ticket/front/sale-checked/index.html index 3e1d3d2d0..2a7b53a8f 100644 --- a/modules/ticket/front/sale-checked/index.html +++ b/modules/ticket/front/sale-checked/index.html @@ -128,8 +128,7 @@ Quantity - Worker + Worker Shelving Parking Created @@ -150,19 +149,21 @@ {{::itemShelvingSale.quantity}} - {{::itemShelvingSale.userFk}} - {{::itemShelvingSale.itemShelving.shelvingFk}} - {{::itemShelvingSale.itemShelving.shelving.parking.code}} + + + {{::itemShelvingSale.name | dashIfEmpty}} + + + {{::itemShelvingSale.shelvingFk}} + {{::itemShelvingSale.code}} {{::itemShelvingSale.created | date: 'dd/MM/yyyy HH:mm'}} - - diff --git a/modules/ticket/front/sale-checked/index.js b/modules/ticket/front/sale-checked/index.js index 04196c313..382225ad8 100644 --- a/modules/ticket/front/sale-checked/index.js +++ b/modules/ticket/front/sale-checked/index.js @@ -17,27 +17,6 @@ class Controller extends Section { } ] }; - - this.filterItemShelvingSale = { - include: { - relation: 'itemShelving', - scope: { - fields: ['shelvingFk'], - include: { - relation: 'shelving', - scope: { - fields: ['parkingFk'], - include: { - relation: 'parking', - scope: { - fields: ['id', 'code'] - } - } - } - } - } - } - }; } $onInit() { From eb4cb318ed981c084d47ebedb8c54576e3f41bce Mon Sep 17 00:00:00 2001 From: vicent Date: Wed, 28 Dec 2022 08:43:02 +0100 Subject: [PATCH 14/27] refactor: evitar join innecesarios en el filter general --- modules/claim/back/methods/claim/filter.js | 53 +++++++++++----------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/modules/claim/back/methods/claim/filter.js b/modules/claim/back/methods/claim/filter.js index 8ff3288de..1ec641642 100644 --- a/modules/claim/back/methods/claim/filter.js +++ b/modules/claim/back/methods/claim/filter.js @@ -100,6 +100,26 @@ module.exports = Self => { if (typeof options == 'object') Object.assign(myOptions, options); + let claimIdsByItemFk = []; + let claimIdsByClaimResponsibleFk = []; + + if (args.itemFk) { + query = `SELECT cb.claimFk + FROM claimBeginning cb + LEFT JOIN sale s ON s.id = cb.saleFk + WHERE s.itemFk = ?`; + const claims = await Self.rawSql(query, [args.itemFk], myOptions); + claimIdsByItemFk = claims.map(claim => claim.claimFk); + } + + if (args.claimResponsibleFk) { + query = `SELECT cd.claimFk + FROM claimDevelopment cd + WHERE cd.claimResponsibleFk = ?`; + const claims = await Self.rawSql(query, [args.claimResponsibleFk], myOptions); + claimIdsByClaimResponsibleFk = claims.map(claim => claim.claimFk); + } + const where = buildFilter(args, (param, value) => { switch (param) { case 'search': @@ -118,7 +138,9 @@ module.exports = Self => { case 'priority': return {[`cl.${param}`]: value}; case 'itemFk': - return {[`s.${param}`]: value}; + return {'cl.id': {inq: claimIdsByItemFk}}; + case 'claimResponsibleFk': + return {'cl.id': {inq: claimIdsByClaimResponsibleFk}}; case 'salesPersonFk': return {'c.salesPersonFk': value}; case 'attenderFk': @@ -144,42 +166,19 @@ module.exports = Self => { cl.workerFk, u.name AS workerName, cs.description, - cl.created, - cs.priority, - cl.claimStateFk, - c.salesPersonFk, - s.itemFk + cl.created FROM claim cl LEFT JOIN client c ON c.id = cl.clientFk 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 - LEFT JOIN claimBeginning cb ON cb.claimFk = cl.id - LEFT JOIN sale s ON s.id = cb.saleFk` + LEFT JOIN claimState cs ON cs.id = cl.claimStateFk` ); - if (args.claimResponsibleFk) { - query = `SELECT cd.claimFk - FROM claimDevelopment cd - WHERE cd.claimResponsibleFk = ?`; - const claimDevelopments = await Self.rawSql(query, [args.claimResponsibleFk], myOptions); - - const claimIds = claimDevelopments.map(claimDevelopment => { - return claimDevelopment.claimFk; - }); - - stmt.merge({ - sql: `LEFT JOIN claimDevelopment cd ON cd.claimFk = cl.id - WHERE cl.id IN (?) - GROUP BY cl.id`, - params: [claimIds], - }); - } - stmt.merge(conn.makeSuffix(filter)); const itemsIndex = stmts.push(stmt) - 1; const sql = ParameterizedSQL.join(stmts, ';'); + console.log(sql); const result = await conn.executeStmt(sql, myOptions); return itemsIndex === 0 ? result : result[itemsIndex]; From eed6d05e2370266ccec66fe97310376ad70c3ca9 Mon Sep 17 00:00:00 2001 From: vicent Date: Wed, 28 Dec 2022 08:51:39 +0100 Subject: [PATCH 15/27] delete console.log --- modules/claim/back/methods/claim/filter.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/claim/back/methods/claim/filter.js b/modules/claim/back/methods/claim/filter.js index 1ec641642..ab6c25582 100644 --- a/modules/claim/back/methods/claim/filter.js +++ b/modules/claim/back/methods/claim/filter.js @@ -178,7 +178,6 @@ module.exports = Self => { const itemsIndex = stmts.push(stmt) - 1; const sql = ParameterizedSQL.join(stmts, ';'); - console.log(sql); const result = await conn.executeStmt(sql, myOptions); return itemsIndex === 0 ? result : result[itemsIndex]; From ba7e5d6a91015d7979402a2c4c61f6287ee820aa Mon Sep 17 00:00:00 2001 From: vicent Date: Wed, 28 Dec 2022 11:56:34 +0100 Subject: [PATCH 16/27] refator: se usa loopback cuando se puede --- modules/claim/back/methods/claim/filter.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/claim/back/methods/claim/filter.js b/modules/claim/back/methods/claim/filter.js index ab6c25582..965e48cca 100644 --- a/modules/claim/back/methods/claim/filter.js +++ b/modules/claim/back/methods/claim/filter.js @@ -92,6 +92,7 @@ module.exports = Self => { }); Self.filter = async(ctx, filter, options) => { + const models = Self.app.models; const conn = Self.dataSource.connector; const args = ctx.args; const myOptions = {}; @@ -113,10 +114,10 @@ module.exports = Self => { } if (args.claimResponsibleFk) { - query = `SELECT cd.claimFk - FROM claimDevelopment cd - WHERE cd.claimResponsibleFk = ?`; - const claims = await Self.rawSql(query, [args.claimResponsibleFk], myOptions); + const claims = await models.ClaimDevelopment.find({ + fields: ['claimFk'], + where: {claimResponsibleFk: args.claimResponsibleFk} + }, myOptions); claimIdsByClaimResponsibleFk = claims.map(claim => claim.claimFk); } From d0ae97e41ba512327da28cf42323c817848b1833 Mon Sep 17 00:00:00 2001 From: vicent Date: Wed, 28 Dec 2022 12:16:23 +0100 Subject: [PATCH 17/27] refactor: move changes from ticket.sale-checked to ticket.sale-tracking --- modules/ticket/front/sale-tracking/index.html | 153 ++++++++++++++---- modules/ticket/front/sale-tracking/index.js | 82 +++++++++- .../ticket/front/sale-tracking/locale/es.yml | 1 + modules/ticket/front/sale-tracking/style.scss | 7 + 4 files changed, 210 insertions(+), 33 deletions(-) create mode 100644 modules/ticket/front/sale-tracking/locale/es.yml create mode 100644 modules/ticket/front/sale-tracking/style.scss diff --git a/modules/ticket/front/sale-tracking/index.html b/modules/ticket/front/sale-tracking/index.html index fc585650a..2a7b53a8f 100644 --- a/modules/ticket/front/sale-tracking/index.html +++ b/modules/ticket/front/sale-tracking/index.html @@ -1,10 +1,11 @@ @@ -12,31 +13,28 @@ - + Is checked Item - Description + Description Quantity - Original - Worker - State - Created + + - - - + + + + + + - {{sale.itemFk | zeroFill:6}} + {{::sale.itemFk | zeroFill:6}} @@ -53,16 +51,20 @@ {{::sale.quantity}} - {{::sale.originalQuantity}} - - - {{::sale.userNickname | dashIfEmpty}} - + + + + + + + - {{::sale.state}} - {{::sale.created | date: 'dd/MM/yyyy HH:mm'}} @@ -70,8 +72,99 @@ + warehouse-fk="$ctrl.ticket.warehouseFk" + ticket-fk="$ctrl.ticket.id"> - - \ No newline at end of file + + + + + + + + + + Quantity + Original + Worker + State + Created + + + + + {{::sale.quantity}} + {{::sale.originalQuantity}} + + + {{::sale.userNickname | dashIfEmpty}} + + + {{::sale.state}} + {{::sale.created | date: 'dd/MM/yyyy HH:mm'}} + + + + + + + + + + + + + + + + + + + + Quantity + Worker + Shelving + Parking + Created + + + + + {{::itemShelvingSale.quantity}} + + + {{::itemShelvingSale.name | dashIfEmpty}} + + + {{::itemShelvingSale.shelvingFk}} + {{::itemShelvingSale.code}} + {{::itemShelvingSale.created | date: 'dd/MM/yyyy HH:mm'}} + + + + + + + + diff --git a/modules/ticket/front/sale-tracking/index.js b/modules/ticket/front/sale-tracking/index.js index 394ef4f1e..25a4632ca 100644 --- a/modules/ticket/front/sale-tracking/index.js +++ b/modules/ticket/front/sale-tracking/index.js @@ -1,12 +1,88 @@ import ngModule from '../module'; import Section from 'salix/components/section'; +import './style.scss'; -class Controller extends Section {} +class Controller extends Section { + constructor($element, $) { + super($element, $); + this.filter = { + include: [ + { + relation: 'item' + }, { + relation: 'isChecked', + scope: { + fields: ['isChecked'] + } + } + ] + }; + } + + $onInit() { + const query = `Sales/${this.$params.id}/salePreparingList`; + this.$http.get(query) + .then(res => { + this.salePreparingList = res.data; + }); + } + + showItemDescriptor(event, sale) { + this.quicklinks = { + btnThree: { + icon: 'icon-transaction', + state: `item.card.diary({ + id: ${sale.itemFk}, + warehouseFk: ${this.ticket.warehouseFk}, + lineFk: ${sale.id} + })`, + tooltip: 'Item diary' + } + }; + this.$.itemDescriptor.show(event.target, sale.itemFk); + } + + chipHasSaleGroupDetail(saleId) { + this.salePreparing = this.salePreparingList.find(element => element.saleFk == saleId); + if (this.salePreparing.hasSaleGroupDetail) return 'pink'; + else return 'message'; + } + + chipIsPreviousSelected() { + if (this.salePreparing.isPreviousSelected) return 'notice'; + else return 'message'; + } + + chipIsPrevious() { + if (this.salePreparing.isPrevious) return 'dark-notice'; + else return 'message'; + } + + chipIsPrepared() { + if (this.salePreparing.isPrepared) return 'warning'; + else return 'message'; + } + + chipIsControled() { + if (this.salePreparing.isControled) return 'yellow'; + else return 'message'; + } + + showSaleTracking(sale) { + this.saleId = sale.id; + this.$.saleTracking.show(); + } + + showItemShelvingSale(sale) { + this.saleId = sale.id; + this.$.itemShelvingSale.show(); + } +} ngModule.vnComponent('vnTicketSaleTracking', { template: require('./index.html'), controller: Controller, bindings: { - ticket: '<', - }, + ticket: '<' + } }); diff --git a/modules/ticket/front/sale-tracking/locale/es.yml b/modules/ticket/front/sale-tracking/locale/es.yml new file mode 100644 index 000000000..3a7964bb2 --- /dev/null +++ b/modules/ticket/front/sale-tracking/locale/es.yml @@ -0,0 +1 @@ +ItemShelvings sale: Carros línea diff --git a/modules/ticket/front/sale-tracking/style.scss b/modules/ticket/front/sale-tracking/style.scss new file mode 100644 index 000000000..8f02410c2 --- /dev/null +++ b/modules/ticket/front/sale-tracking/style.scss @@ -0,0 +1,7 @@ +@import "variables"; + +.chip { + display: inline-block; + min-width: 10px; + min-height: 20px; +} From ab0af27f8b685471092ae5b4014527646599c044 Mon Sep 17 00:00:00 2001 From: vicent Date: Wed, 28 Dec 2022 12:23:41 +0100 Subject: [PATCH 18/27] refactor: delete changes in ticket.sale-checked --- modules/ticket/front/sale-checked/index.html | 120 +----------------- modules/ticket/front/sale-checked/index.js | 48 ------- .../ticket/front/sale-checked/locale/es.yml | 1 - modules/ticket/front/sale-checked/style.scss | 7 - 4 files changed, 5 insertions(+), 171 deletions(-) delete mode 100644 modules/ticket/front/sale-checked/locale/es.yml delete mode 100644 modules/ticket/front/sale-checked/style.scss diff --git a/modules/ticket/front/sale-checked/index.html b/modules/ticket/front/sale-checked/index.html index 2a7b53a8f..38ec2e306 100644 --- a/modules/ticket/front/sale-checked/index.html +++ b/modules/ticket/front/sale-checked/index.html @@ -17,18 +17,15 @@ Item Description Quantity - - - - - - - - + + + {{::sale.quantity}} - - - - - - - - @@ -75,96 +58,3 @@ warehouse-fk="$ctrl.ticket.warehouseFk" ticket-fk="$ctrl.ticket.id"> - - - - - - - - - - Quantity - Original - Worker - State - Created - - - - - {{::sale.quantity}} - {{::sale.originalQuantity}} - - - {{::sale.userNickname | dashIfEmpty}} - - - {{::sale.state}} - {{::sale.created | date: 'dd/MM/yyyy HH:mm'}} - - - - - - - - - - - - - - - - - - - - Quantity - Worker - Shelving - Parking - Created - - - - - {{::itemShelvingSale.quantity}} - - - {{::itemShelvingSale.name | dashIfEmpty}} - - - {{::itemShelvingSale.shelvingFk}} - {{::itemShelvingSale.code}} - {{::itemShelvingSale.created | date: 'dd/MM/yyyy HH:mm'}} - - - - - - - - diff --git a/modules/ticket/front/sale-checked/index.js b/modules/ticket/front/sale-checked/index.js index 382225ad8..d416c2f50 100644 --- a/modules/ticket/front/sale-checked/index.js +++ b/modules/ticket/front/sale-checked/index.js @@ -1,6 +1,5 @@ import ngModule from '../module'; import Section from 'salix/components/section'; -import './style.scss'; class Controller extends Section { constructor($element, $) { @@ -18,15 +17,6 @@ class Controller extends Section { ] }; } - - $onInit() { - const query = `Sales/${this.$params.id}/salePreparingList`; - this.$http.get(query) - .then(res => { - this.salePreparingList = res.data; - }); - } - showItemDescriptor(event, sale) { this.quicklinks = { btnThree: { @@ -41,44 +31,6 @@ class Controller extends Section { }; this.$.itemDescriptor.show(event.target, sale.itemFk); } - - chipHasSaleGroupDetail(saleId) { - this.salePreparing = this.salePreparingList.find(element => element.saleFk == saleId); - if (this.salePreparing.hasSaleGroupDetail) return 'pink'; - else return 'message'; - } - - chipIsPreviousSelected() { - if (this.salePreparing.isPreviousSelected) return 'notice'; - else return 'message'; - } - - chipIsPrevious() { - if (this.salePreparing.isPrevious) return 'dark-notice'; - else return 'message'; - } - - chipIsPrepared() { - if (this.salePreparing.isPrepared) return 'warning'; - else return 'message'; - } - - chipIsControled() { - if (this.salePreparing.isControled) return 'yellow'; - else return 'message'; - } - - showSaleTracking(sale) { - this.saleId = sale.id; - this.$.saleTracking.show(); - } - - showItemShelvingSale(sale) { - this.saleId = sale.id; - this.$.itemShelvingSale.show(); - - console.log(this.itemShelvingSales); - } } ngModule.vnComponent('vnTicketSaleChecked', { diff --git a/modules/ticket/front/sale-checked/locale/es.yml b/modules/ticket/front/sale-checked/locale/es.yml deleted file mode 100644 index 3a7964bb2..000000000 --- a/modules/ticket/front/sale-checked/locale/es.yml +++ /dev/null @@ -1 +0,0 @@ -ItemShelvings sale: Carros línea diff --git a/modules/ticket/front/sale-checked/style.scss b/modules/ticket/front/sale-checked/style.scss deleted file mode 100644 index 8f02410c2..000000000 --- a/modules/ticket/front/sale-checked/style.scss +++ /dev/null @@ -1,7 +0,0 @@ -@import "variables"; - -.chip { - display: inline-block; - min-width: 10px; - min-height: 20px; -} From d5b626434be58cdb53215f853f3eca18aab29cb8 Mon Sep 17 00:00:00 2001 From: vicent Date: Wed, 28 Dec 2022 12:42:51 +0100 Subject: [PATCH 19/27] refactor: add translations, change css... --- modules/item/back/methods/item-shelving-sale/filter.js | 1 + modules/ticket/front/sale-tracking/index.html | 5 +---- modules/ticket/front/sale-tracking/locale/es.yml | 5 +++++ modules/ticket/front/sale-tracking/style.scss | 4 ++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/modules/item/back/methods/item-shelving-sale/filter.js b/modules/item/back/methods/item-shelving-sale/filter.js index a91ae7c86..87b3c15a6 100644 --- a/modules/item/back/methods/item-shelving-sale/filter.js +++ b/modules/item/back/methods/item-shelving-sale/filter.js @@ -31,6 +31,7 @@ module.exports = Self => { SELECT iss.created, iss.saleFk, iss.quantity, + iss.userFk, ish.shelvingFk, p.code, u.name diff --git a/modules/ticket/front/sale-tracking/index.html b/modules/ticket/front/sale-tracking/index.html index 2a7b53a8f..015e8954a 100644 --- a/modules/ticket/front/sale-tracking/index.html +++ b/modules/ticket/front/sale-tracking/index.html @@ -18,7 +18,6 @@ Description Quantity - @@ -51,14 +50,12 @@ {{::sale.quantity}} - + - - Date: Tue, 3 Jan 2023 08:41:58 +0100 Subject: [PATCH 20/27] fix(icons): prevent icon translation when using google translator Refs: 5044 --- front/core/components/icon/icon.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/front/core/components/icon/icon.js b/front/core/components/icon/icon.js index 38aea0056..8fb79d294 100644 --- a/front/core/components/icon/icon.js +++ b/front/core/components/icon/icon.js @@ -26,7 +26,7 @@ class Icon { Icon.$inject = ['$attrs']; ngModule.vnComponent('vnIcon', { - template: '{{::$ctrl.iconContent}}', + template: '{{::$ctrl.iconContent}}', controller: Icon, bindings: { icon: '@' From d1150d0965b81277339c6fefda389c447dae366e Mon Sep 17 00:00:00 2001 From: joan Date: Tue, 3 Jan 2023 09:01:06 +0100 Subject: [PATCH 21/27] Updated changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bafedc760..d7073dc53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +### Fixed +- [General] Al utilizar el traductor de Google se descuadraban los iconos ### Removed - [Tickets](Control clientes) Eliminada sección From 415fa04e3bfdad51f3d99482e6fef89dcf86dca2 Mon Sep 17 00:00:00 2001 From: vicent Date: Tue, 3 Jan 2023 13:06:30 +0100 Subject: [PATCH 22/27] refs #2952 feat: add chips --- modules/ticket/front/sale-tracking/index.html | 18 +++---- modules/ticket/front/sale-tracking/index.js | 48 ++++++++++++------- 2 files changed, 39 insertions(+), 27 deletions(-) diff --git a/modules/ticket/front/sale-tracking/index.html b/modules/ticket/front/sale-tracking/index.html index 015e8954a..851817551 100644 --- a/modules/ticket/front/sale-tracking/index.html +++ b/modules/ticket/front/sale-tracking/index.html @@ -4,7 +4,7 @@ filter="::$ctrl.filter" link="{ticketFk: $ctrl.$params.id}" limit="20" - data="sales" + data="$ctrl.sales" order="concept ASC" auto-load="true"> @@ -21,13 +21,13 @@ - + - - - - - + + + + + @@ -96,7 +96,7 @@ - + {{::sale.quantity}} {{::sale.originalQuantity}} diff --git a/modules/ticket/front/sale-tracking/index.js b/modules/ticket/front/sale-tracking/index.js index 25a4632ca..60e42a461 100644 --- a/modules/ticket/front/sale-tracking/index.js +++ b/modules/ticket/front/sale-tracking/index.js @@ -10,7 +10,7 @@ class Controller extends Section { { relation: 'item' }, { - relation: 'isChecked', + relation: 'saleTracking', scope: { fields: ['isChecked'] } @@ -19,12 +19,25 @@ class Controller extends Section { }; } - $onInit() { - const query = `Sales/${this.$params.id}/salePreparingList`; - this.$http.get(query) - .then(res => { - this.salePreparingList = res.data; - }); + get sales() { + return this._sales; + } + + set sales(value) { + this._sales = value; + if (value) { + const query = `Sales/${this.$params.id}/salePreparingList`; + this.$http.get(query) + .then(res => { + this.salePreparingList = res.data; + for (const salePreparing of this.salePreparingList) { + for (const sale of this.sales) { + if (salePreparing.saleFk == sale.id) + sale.preparingList = salePreparing; + } + } + }); + } } showItemDescriptor(event, sale) { @@ -42,29 +55,28 @@ class Controller extends Section { this.$.itemDescriptor.show(event.target, sale.itemFk); } - chipHasSaleGroupDetail(saleId) { - this.salePreparing = this.salePreparingList.find(element => element.saleFk == saleId); - if (this.salePreparing.hasSaleGroupDetail) return 'pink'; + chipHasSaleGroupDetail(hasSaleGroupDetail) { + if (hasSaleGroupDetail) return 'pink'; else return 'message'; } - chipIsPreviousSelected() { - if (this.salePreparing.isPreviousSelected) return 'notice'; + chipIsPreviousSelected(isPreviousSelected) { + if (isPreviousSelected) return 'notice'; else return 'message'; } - chipIsPrevious() { - if (this.salePreparing.isPrevious) return 'dark-notice'; + chipIsPrevious(isPrevious) { + if (isPrevious) return 'dark-notice'; else return 'message'; } - chipIsPrepared() { - if (this.salePreparing.isPrepared) return 'warning'; + chipIsPrepared(isPrepared) { + if (isPrepared) return 'warning'; else return 'message'; } - chipIsControled() { - if (this.salePreparing.isControled) return 'yellow'; + chipIsControled(isControled) { + if (isControled) return 'yellow'; else return 'message'; } From e82035606fad45d6a4df194b6b254d2d2252889b Mon Sep 17 00:00:00 2001 From: alexandre Date: Wed, 4 Jan 2023 11:31:09 +0100 Subject: [PATCH 23/27] refs #4984 autoincrement added --- db/changes/230201/00-autoincrement_VnReport_VnPrinter.sql | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 db/changes/230201/00-autoincrement_VnReport_VnPrinter.sql diff --git a/db/changes/230201/00-autoincrement_VnReport_VnPrinter.sql b/db/changes/230201/00-autoincrement_VnReport_VnPrinter.sql new file mode 100644 index 000000000..a28bf6e90 --- /dev/null +++ b/db/changes/230201/00-autoincrement_VnReport_VnPrinter.sql @@ -0,0 +1,4 @@ +SET FOREIGN_KEY_CHECKS = 0; +ALTER TABLE `vn`.`report` MODIFY COLUMN id tinyint(3) unsigned NOT NULL AUTO_INCREMENT; +ALTER TABLE `vn`.`printer` MODIFY COLUMN id tinyint(3) unsigned NOT NULL AUTO_INCREMENT; +SET FOREIGN_KEY_CHECKS = 1; From 1aa21c16b52c440decb207c30bd8ffe0294fce34 Mon Sep 17 00:00:00 2001 From: vicent Date: Thu, 5 Jan 2023 11:42:21 +0100 Subject: [PATCH 24/27] refactor: borrado join a worker --- modules/claim/back/methods/claim/filter.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/claim/back/methods/claim/filter.js b/modules/claim/back/methods/claim/filter.js index 965e48cca..d653229e5 100644 --- a/modules/claim/back/methods/claim/filter.js +++ b/modules/claim/back/methods/claim/filter.js @@ -170,8 +170,7 @@ module.exports = Self => { cl.created FROM claim cl LEFT JOIN client c ON c.id = cl.clientFk - LEFT JOIN worker w ON w.id = cl.workerFk - LEFT JOIN account.user u ON u.id = w.userFk + LEFT JOIN account.user u ON u.id = cl.workerFk LEFT JOIN claimState cs ON cs.id = cl.claimStateFk` ); From 6891da486328f0af43617ed00ebc12e33782fb2c Mon Sep 17 00:00:00 2001 From: robert Date: Thu, 5 Jan 2023 11:43:08 +0100 Subject: [PATCH 25/27] refactor(invoiceOut): updated translation Refs #4857 --- front/package-lock.json | 118 +++--------------- .../front/descriptor-menu/index.html | 4 +- .../front/descriptor-menu/locale/es.yml | 2 + 3 files changed, 22 insertions(+), 102 deletions(-) diff --git a/front/package-lock.json b/front/package-lock.json index 256797df0..d0fe4de2d 100644 --- a/front/package-lock.json +++ b/front/package-lock.json @@ -1,15 +1,8 @@ { "name": "salix-front", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, -<<<<<<< HEAD - "dependencies": { - "@uirouter/angularjs": { - "version": "1.0.29", - "resolved": "https://registry.npmjs.org/@uirouter/angularjs/-/angularjs-1.0.29.tgz", - "integrity": "sha512-RImWnBarNixkMto0o8stEaGwZmvhv5cnuOLXyMU2pY8MP2rgEF74ZNJTLeJCW14LR7XDUxVH8Mk8bPI6lxedmQ==", -======= "packages": { "": { "name": "salix-front", @@ -32,8 +25,7 @@ }, "node_modules/@uirouter/angularjs": { "version": "1.0.30", - "resolved": "https://registry.npmjs.org/@uirouter/angularjs/-/angularjs-1.0.30.tgz", - "integrity": "sha512-qkc3RFZc91S5K0gc/QVAXc9LGDPXjR04vDgG/11j8+yyZEuQojXxKxdLhKIepiPzqLmGRVqzBmBc27gtqaEeZg==", + "license": "MIT", "dependencies": { "@uirouter/core": "6.0.8" }, @@ -46,17 +38,14 @@ }, "node_modules/@uirouter/core": { "version": "6.0.8", - "resolved": "https://registry.npmjs.org/@uirouter/core/-/core-6.0.8.tgz", - "integrity": "sha512-Gc/BAW47i4L54p8dqYCJJZuv2s3tqlXQ0fvl6Zp2xrblELPVfxmjnc0eurx3XwfQdaqm3T6uls6tQKkof/4QMw==", + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/angular": { "version": "1.8.3", - "resolved": "https://registry.npmjs.org/angular/-/angular-1.8.3.tgz", - "integrity": "sha512-5qjkWIQQVsHj4Sb5TcEs4WZWpFeVFHXwxEBHUhrny41D8UrBAd6T/6nPPAsLngJCReIOqi95W3mxdveveutpZw==", - "deprecated": "For the actively supported Angular, see https://www.npmjs.com/package/@angular/core. AngularJS support has officially ended. For extended AngularJS support options, see https://goo.gle/angularjs-path-forward." + "license": "MIT" }, "node_modules/angular-animate": { "version": "1.8.2", @@ -74,8 +63,7 @@ }, "node_modules/angular-translate": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/angular-translate/-/angular-translate-2.19.0.tgz", - "integrity": "sha512-Z/Fip5uUT2N85dPQ0sMEe1JdF5AehcDe4tg/9mWXNDVU531emHCg53ZND9Oe0dyNiGX5rWcJKmsL1Fujus1vGQ==", + "license": "MIT", "dependencies": { "angular": "^1.8.0" }, @@ -85,8 +73,7 @@ }, "node_modules/angular-translate-loader-partial": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/angular-translate-loader-partial/-/angular-translate-loader-partial-2.19.0.tgz", - "integrity": "sha512-NnMw13LMV4bPQmJK7/pZOZAnPxe0M5OtUHchADs5Gye7V7feonuEnrZ8e1CKhBlv9a7IQyWoqcBa4Lnhg8gk5w==", + "license": "MIT", "dependencies": { "angular-translate": "~2.19.0" } @@ -133,8 +120,7 @@ }, "node_modules/moment": { "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "license": "MIT", "engines": { "node": "*" } @@ -179,97 +165,51 @@ "dependencies": { "@uirouter/angularjs": { "version": "1.0.30", - "resolved": "https://registry.npmjs.org/@uirouter/angularjs/-/angularjs-1.0.30.tgz", - "integrity": "sha512-qkc3RFZc91S5K0gc/QVAXc9LGDPXjR04vDgG/11j8+yyZEuQojXxKxdLhKIepiPzqLmGRVqzBmBc27gtqaEeZg==", ->>>>>>> dev "requires": { "@uirouter/core": "6.0.8" } }, "@uirouter/core": { -<<<<<<< HEAD - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/@uirouter/core/-/core-6.0.7.tgz", - "integrity": "sha512-KUTJxL+6q0PiBnFx4/Z+Hsyg0pSGiaW5yZQeJmUxknecjpTbnXkLU8H2EqRn9N2B+qDRa7Jg8RcgeNDPY72O1w==" + "version": "6.0.8" }, "angular": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/angular/-/angular-1.8.2.tgz", - "integrity": "sha512-IauMOej2xEe7/7Ennahkbb5qd/HFADiNuLSESz9Q27inmi32zB0lnAsFeLEWcox3Gd1F6YhNd1CP7/9IukJ0Gw==" -======= - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/@uirouter/core/-/core-6.0.8.tgz", - "integrity": "sha512-Gc/BAW47i4L54p8dqYCJJZuv2s3tqlXQ0fvl6Zp2xrblELPVfxmjnc0eurx3XwfQdaqm3T6uls6tQKkof/4QMw==" - }, - "angular": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/angular/-/angular-1.8.3.tgz", - "integrity": "sha512-5qjkWIQQVsHj4Sb5TcEs4WZWpFeVFHXwxEBHUhrny41D8UrBAd6T/6nPPAsLngJCReIOqi95W3mxdveveutpZw==" ->>>>>>> dev + "version": "1.8.3" }, "angular-animate": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/angular-animate/-/angular-animate-1.8.2.tgz", - "integrity": "sha512-Jbr9+grNMs9Kj57xuBU3Ju3NOPAjS1+g2UAwwDv7su1lt0/PLDy+9zEwDiu8C8xJceoTbmBNKiWGPJGBdCQLlA==" + "version": "1.8.2" }, "angular-moment": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/angular-moment/-/angular-moment-1.3.0.tgz", - "integrity": "sha512-KG8rvO9MoaBLwtGnxTeUveSyNtrL+RNgGl1zqWN36+HDCCVGk2DGWOzqKWB6o+eTTbO3Opn4hupWKIElc8XETA==", "requires": { "moment": ">=2.8.0 <3.0.0" } }, "angular-translate": { -<<<<<<< HEAD - "version": "2.18.4", - "resolved": "https://registry.npmjs.org/angular-translate/-/angular-translate-2.18.4.tgz", - "integrity": "sha512-KohNrkH6J9PK+VW0L/nsRTcg5Fw70Ajwwe3Jbfm54Pf9u9Fd+wuingoKv+h45mKf38eT+Ouu51FPua8VmZNoCw==", -======= "version": "2.19.0", - "resolved": "https://registry.npmjs.org/angular-translate/-/angular-translate-2.19.0.tgz", - "integrity": "sha512-Z/Fip5uUT2N85dPQ0sMEe1JdF5AehcDe4tg/9mWXNDVU531emHCg53ZND9Oe0dyNiGX5rWcJKmsL1Fujus1vGQ==", ->>>>>>> dev "requires": { "angular": "^1.8.0" } }, "angular-translate-loader-partial": { -<<<<<<< HEAD - "version": "2.18.4", - "resolved": "https://registry.npmjs.org/angular-translate-loader-partial/-/angular-translate-loader-partial-2.18.4.tgz", - "integrity": "sha512-bsjR+FbB0sdA2528E/ugwKdlPPQhA1looxLxI3otayBTFXBpED33besfSZhYAISLgNMSL038vSssfRUen9qD8w==", -======= "version": "2.19.0", - "resolved": "https://registry.npmjs.org/angular-translate-loader-partial/-/angular-translate-loader-partial-2.19.0.tgz", - "integrity": "sha512-NnMw13LMV4bPQmJK7/pZOZAnPxe0M5OtUHchADs5Gye7V7feonuEnrZ8e1CKhBlv9a7IQyWoqcBa4Lnhg8gk5w==", ->>>>>>> dev "requires": { "angular-translate": "~2.19.0" } }, "argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { "sprintf-js": "~1.0.2" } }, "croppie": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/croppie/-/croppie-2.6.5.tgz", - "integrity": "sha512-IlChnVUGG5T3w2gRZIaQgBtlvyuYnlUWs2YZIXXR3H9KrlO1PtBT3j+ykxvy9eZIWhk+V5SpBmhCQz5UXKrEKQ==" + "version": "2.6.5" }, "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "version": "4.0.1" }, "js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -277,45 +217,27 @@ }, "mg-crud": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/mg-crud/-/mg-crud-1.1.2.tgz", - "integrity": "sha512-mAR6t0aQHKnT0QHKHpLOi0kNPZfO36iMpIoiLjFHxuio6mIJyuveBJ4VNlNXJRxLh32/FLADEb41/sYo7QUKFw==", "requires": { "angular": "^1.6.1" } }, "moment": { -<<<<<<< HEAD - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" -======= - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" ->>>>>>> dev + "version": "2.29.4" }, "oclazyload": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/oclazyload/-/oclazyload-0.6.3.tgz", - "integrity": "sha512-HpOSYUgjtt6sTB/C6+FWsExR+9HCnXKsUA96RWkDXfv11C8Cc9X2DlR0WIZwFIiG6FQU0pwB5dhoYyut8bFAOQ==" + "version": "0.6.3" }, "require-yaml": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/require-yaml/-/require-yaml-0.0.1.tgz", - "integrity": "sha512-M6eVEgLPRbeOhgSCnOTtdrOOEQzbXRchg24Xa13c39dMuraFKdI9emUo97Rih0YEFzSICmSKg8w4RQp+rd9pOQ==", "requires": { - "js-yaml": "^4.1.0" + "js-yaml": "" }, "dependencies": { "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "version": "2.0.1" }, "js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { "argparse": "^2.0.1" } @@ -323,14 +245,10 @@ } }, "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "version": "1.0.3" }, "validator": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-6.3.0.tgz", - "integrity": "sha512-BylxTwhqwjQI5MDJF7amCy/L0ejJO+74DvCsLV52Lq3+3bhVcVMKqNqOiNcQJm2G48u9EAcw4xFERAmFbwXM9Q==" + "version": "6.3.0" } } } diff --git a/modules/invoiceOut/front/descriptor-menu/index.html b/modules/invoiceOut/front/descriptor-menu/index.html index 1c0919288..389fcf81b 100644 --- a/modules/invoiceOut/front/descriptor-menu/index.html +++ b/modules/invoiceOut/front/descriptor-menu/index.html @@ -17,12 +17,12 @@ target="_blank" name="showInvoicePdf" translate> - Show as PDF + as PDF - Show as CSV + as CSV diff --git a/modules/invoiceOut/front/descriptor-menu/locale/es.yml b/modules/invoiceOut/front/descriptor-menu/locale/es.yml index 488c1a3f8..df0ba57cf 100644 --- a/modules/invoiceOut/front/descriptor-menu/locale/es.yml +++ b/modules/invoiceOut/front/descriptor-menu/locale/es.yml @@ -2,6 +2,8 @@ Show invoice...: Ver factura... Send invoice...: Enviar factura... Send PDF invoice: Enviar factura en PDF Send CSV invoice: Enviar factura en CSV +as PDF: como PDF +as CSV: como CSV Delete Invoice: Eliminar factura Clone Invoice: Clonar factura Book invoice: Asentar factura From cdee85e1e82e9c82090d1fffb7ca907e96b5e963 Mon Sep 17 00:00:00 2001 From: vicent Date: Tue, 10 Jan 2023 08:31:32 +0100 Subject: [PATCH 26/27] refacotor: change description --- modules/item/back/methods/item-shelving-sale/filter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/item/back/methods/item-shelving-sale/filter.js b/modules/item/back/methods/item-shelving-sale/filter.js index 87b3c15a6..12029d33d 100644 --- a/modules/item/back/methods/item-shelving-sale/filter.js +++ b/modules/item/back/methods/item-shelving-sale/filter.js @@ -3,7 +3,7 @@ const ParameterizedSQL = require('loopback-connector').ParameterizedSQL; module.exports = Self => { Self.remoteMethod('filter', { - description: 'Returns all ticket sale trackings', + description: 'Returns all item shelving sale matching with the filter', accessType: 'READ', accepts: [{ arg: 'filter', From 5f0fa5e369a3489b72847a070d6d1a0fadba5d2e Mon Sep 17 00:00:00 2001 From: vicent Date: Tue, 10 Jan 2023 08:34:38 +0100 Subject: [PATCH 27/27] add changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7073dc53..f70019f2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [General](Inicio) Permite recuperar la contraseña ### Changed +- [Tickets](Líneas preparadas) Actualizada sección para que sea más visual ### Fixed - [General] Al utilizar el traductor de Google se descuadraban los iconos