From f39719cc460ccf8097f266c04334837f199f82ad Mon Sep 17 00:00:00 2001 From: Joan Sanchez Date: Wed, 3 Jun 2020 14:46:58 +0200 Subject: [PATCH] 2281 - Added claim pickup checkbox --- e2e/helpers/selectors.js | 4 +-- e2e/paths/06-claim/01_basic_data.spec.js | 17 +++++++++++- e2e/paths/06-claim/04_claim_action.spec.js | 13 +++++++--- .../back/methods/claim/regularizeClaim.js | 23 +--------------- .../claim/back/methods/claim/updateClaim.js | 26 +++++++++++++++++-- .../back/methods/claim/updateClaimAction.js | 4 --- modules/claim/front/action/index.html | 5 ---- modules/claim/front/action/locale/es.yml | 3 +-- modules/claim/front/basic-data/index.html | 6 +++++ modules/claim/front/basic-data/locale/es.yml | 3 ++- 10 files changed, 62 insertions(+), 42 deletions(-) diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index e8435eadf..5cd24cda5 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -585,6 +585,7 @@ export default { claimState: 'vn-claim-basic-data vn-autocomplete[ng-model="$ctrl.claim.claimStateFk"]', responsabilityInputRange: 'vn-range', observation: 'vn-textarea[ng-model="$ctrl.claim.observation"]', + hasToPickUpCheckbox: 'vn-claim-basic-data vn-check[ng-model="$ctrl.claim.hasToPickUp"]', saveButton: `button[type=submit]` }, claimDetail: { @@ -619,8 +620,7 @@ export default { firstLineDestination: 'vn-claim-action vn-tr:nth-child(1) vn-autocomplete[ng-model="saleClaimed.claimDestinationFk"]', secondLineDestination: 'vn-claim-action vn-tr:nth-child(2) vn-autocomplete[ng-model="saleClaimed.claimDestinationFk"]', firstDeleteLine: 'vn-claim-action vn-tr:nth-child(1) vn-icon-button[icon="delete"]', - isPaidWithManaCheckbox: 'vn-claim-action vn-check[ng-model="$ctrl.claim.isChargedToMana"]', - hasToPickUpCheckbox: 'vn-claim-action vn-check[ng-model="$ctrl.claim.hasToPickUp"]' + isPaidWithManaCheckbox: 'vn-claim-action vn-check[ng-model="$ctrl.claim.isChargedToMana"]' }, ordersIndex: { searchResult: 'vn-order-index vn-card > vn-table > div > vn-tbody > a.vn-tr', diff --git a/e2e/paths/06-claim/01_basic_data.spec.js b/e2e/paths/06-claim/01_basic_data.spec.js index a255188e2..ecf79ccf0 100644 --- a/e2e/paths/06-claim/01_basic_data.spec.js +++ b/e2e/paths/06-claim/01_basic_data.spec.js @@ -1,7 +1,7 @@ import selectors from '../../helpers/selectors.js'; import getBrowser from '../../helpers/puppeteer'; -describe('Claim edit basic data path', () => { +fdescribe('Claim edit basic data path', () => { let browser; let page; @@ -34,6 +34,15 @@ describe('Claim edit basic data path', () => { await page.waitForState('claim.card.detail'); }); + it('should check the "Pick up" checkbox', async() => { + await page.reloadSection('claim.card.basicData'); + await page.waitToClick(selectors.claimBasicData.hasToPickUpCheckbox); + await page.waitToClick(selectors.claimBasicData.saveButton); + const message = await page.waitForSnackbar(); + + expect(message.type).toBe('success'); + }); + it('should confirm the claim state was edited', async() => { await page.reloadSection('claim.card.basicData'); await page.wait(selectors.claimBasicData.claimState); @@ -42,6 +51,12 @@ describe('Claim edit basic data path', () => { expect(result).toEqual('Gestionado'); }); + it('should confirm the "is paid with mana" and "Pick up" checkbox are checked', async() => { + const hasToPickUpCheckbox = await page.checkboxState(selectors.claimBasicData.hasToPickUpCheckbox); + + expect(hasToPickUpCheckbox).toBe('checked'); + }); + it('should confirm the claim observation was edited', async() => { const result = await page .waitToGetProperty(selectors.claimBasicData.observation, 'value'); diff --git a/e2e/paths/06-claim/04_claim_action.spec.js b/e2e/paths/06-claim/04_claim_action.spec.js index 67c936898..34a9c6102 100644 --- a/e2e/paths/06-claim/04_claim_action.spec.js +++ b/e2e/paths/06-claim/04_claim_action.spec.js @@ -72,19 +72,26 @@ describe('Claim action path', () => { expect(message.type).toBe('success'); }); - it('should check the "Pick up" checkbox', async() => { + /* it('should check the "Pick up" checkbox', async() => { await page.waitToClick(selectors.claimAction.hasToPickUpCheckbox); const message = await page.waitForSnackbar(); expect(message.type).toBe('success'); + }); */ + + it('should confirm the "is paid with mana" is checked', async() => { + await page.reloadSection('claim.card.action'); + const isPaidWithManaCheckbox = await page.checkboxState(selectors.claimAction.isPaidWithManaCheckbox); + + expect(isPaidWithManaCheckbox).toBe('checked'); }); - it('should confirm the "is paid with mana" and "Pick up" checkbox are checked', async() => { + /* it('should confirm the "is paid with mana" and "Pick up" checkbox are checked', async() => { await page.reloadSection('claim.card.action'); const isPaidWithManaCheckbox = await page.checkboxState(selectors.claimAction.isPaidWithManaCheckbox); const hasToPickUpCheckbox = await page.checkboxState(selectors.claimAction.hasToPickUpCheckbox); expect(isPaidWithManaCheckbox).toBe('checked'); expect(hasToPickUpCheckbox).toBe('checked'); - }); + }); */ }); diff --git a/modules/claim/back/methods/claim/regularizeClaim.js b/modules/claim/back/methods/claim/regularizeClaim.js index 77e5f6504..7c5c2a3d4 100644 --- a/modules/claim/back/methods/claim/regularizeClaim.js +++ b/modules/claim/back/methods/claim/regularizeClaim.js @@ -88,32 +88,11 @@ module.exports = Self => { }, options); } - let claim = await Self.findById(claimFk, { - include: { - relation: 'client', - scope: { - include: { - relation: 'salesPerson' - } - } - } - }, options); + let claim = await Self.findById(claimFk, null, options); claim = await claim.updateAttributes({ claimStateFk: resolvedState }, options); - // Get sales person from claim client - const salesPerson = claim.client().salesPerson(); - if (salesPerson && claim.hasToPickUp) { - const origin = ctx.req.headers.origin; - const message = $t('Claim will be picked', { - claimId: claim.id, - clientName: claim.client().name, - claimUrl: `${origin}/#!/claim/${claim.id}/summary` - }); - await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message); - } - await tx.commit(); return claim; diff --git a/modules/claim/back/methods/claim/updateClaim.js b/modules/claim/back/methods/claim/updateClaim.js index 51623a7a8..1df745cd2 100644 --- a/modules/claim/back/methods/claim/updateClaim.js +++ b/modules/claim/back/methods/claim/updateClaim.js @@ -27,8 +27,18 @@ module.exports = Self => { }); Self.updateClaim = async(ctx, id, data) => { - let models = Self.app.models; - let claim = await models.Claim.findById(id); + const models = Self.app.models; + const $t = ctx.req.__; // $translate + const claim = await models.Claim.findById(id, { + include: { + relation: 'client', + scope: { + include: { + relation: 'salesPerson' + } + } + } + }); let canUpdate = await canChangeState(ctx, claim.claimStateFk); let hasRights = await canChangeState(ctx, data.claimStateFk); @@ -36,6 +46,18 @@ module.exports = Self => { if (!canUpdate || !hasRights) throw new UserError(`You don't have enough privileges to change that field`); + // Get sales person from claim client + const salesPerson = claim.client().salesPerson(); + if (salesPerson && claim.hasToPickUp) { + const origin = ctx.req.headers.origin; + const message = $t('Claim will be picked', { + claimId: claim.id, + clientName: claim.client().name, + claimUrl: `${origin}/#!/claim/${claim.id}/summary` + }); + await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message); + } + return await claim.updateAttributes(data); }; diff --git a/modules/claim/back/methods/claim/updateClaimAction.js b/modules/claim/back/methods/claim/updateClaimAction.js index 69691897c..d11e2ed08 100644 --- a/modules/claim/back/methods/claim/updateClaimAction.js +++ b/modules/claim/back/methods/claim/updateClaimAction.js @@ -17,10 +17,6 @@ module.exports = Self => { arg: 'isChargedToMana', type: 'boolean', required: false - }, { - arg: 'hasToPickUp', - type: 'boolean', - required: false }], returns: { type: 'object', diff --git a/modules/claim/front/action/index.html b/modules/claim/front/action/index.html index 69dfd255b..f7a43bd2e 100644 --- a/modules/claim/front/action/index.html +++ b/modules/claim/front/action/index.html @@ -43,11 +43,6 @@ on-change="$ctrl.save({responsibility: value})"> - - + + + + diff --git a/modules/claim/front/basic-data/locale/es.yml b/modules/claim/front/basic-data/locale/es.yml index 221b17cdc..d6bae25f6 100644 --- a/modules/claim/front/basic-data/locale/es.yml +++ b/modules/claim/front/basic-data/locale/es.yml @@ -3,4 +3,5 @@ Claim state: Estado de la reclamación Is paid with mana: Cargado al maná Responsability: Responsabilidad Company: Empresa -Sales/Client: Comercial/Cliente \ No newline at end of file +Sales/Client: Comercial/Cliente +Pick up: Recoger \ No newline at end of file