From 15e1f9763a8ce938f9b924f7a5c2d06590238bdc Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 19 Jul 2024 12:58:34 +0200 Subject: [PATCH 1/6] BREACKING CHANGE: claim redirect to lilium --- e2e/helpers/selectors.js | 63 ---- e2e/paths/06-claim/01_basic_data.spec.js | 61 ---- e2e/paths/06-claim/03_claim_action.spec.js | 54 ---- e2e/paths/06-claim/04_summary.spec.js | 96 ------ e2e/paths/06-claim/05_descriptor.spec.js | 58 ---- e2e/paths/06-claim/06_note.spec.js | 46 --- e2e/tests.js | 1 - modules/claim/front/action/index.html | 188 ------------ modules/claim/front/action/index.js | 233 --------------- modules/claim/front/action/index.spec.js | 167 ----------- modules/claim/front/action/locale/en.yml | 1 - modules/claim/front/action/locale/es.yml | 13 - modules/claim/front/action/style.scss | 46 --- modules/claim/front/basic-data/index.html | 66 ----- modules/claim/front/basic-data/index.js | 20 -- modules/claim/front/basic-data/index.spec.js | 28 -- modules/claim/front/basic-data/locale/es.yml | 9 - modules/claim/front/basic-data/style.scss | 3 - modules/claim/front/card/index.html | 5 - modules/claim/front/card/index.js | 68 ----- modules/claim/front/card/index.spec.js | 29 -- modules/claim/front/descriptor/index.js | 4 +- modules/claim/front/detail/index.html | 178 ------------ modules/claim/front/detail/index.js | 203 ------------- modules/claim/front/detail/index.spec.js | 150 ---------- modules/claim/front/detail/locale/es.yml | 11 - modules/claim/front/detail/style.scss | 30 -- modules/claim/front/development/index.html | 2 - modules/claim/front/development/index.js | 21 -- modules/claim/front/index.js | 12 - modules/claim/front/index/index.html | 83 ------ modules/claim/front/index/index.js | 82 ------ modules/claim/front/log/index.html | 4 - modules/claim/front/log/index.js | 7 - modules/claim/front/main/index.html | 19 -- modules/claim/front/main/index.js | 13 +- modules/claim/front/note/create/index.html | 30 -- modules/claim/front/note/create/index.js | 22 -- modules/claim/front/note/index/index.html | 32 -- modules/claim/front/note/index/index.js | 25 -- modules/claim/front/note/index/style.scss | 5 - modules/claim/front/photos/index.html | 1 - modules/claim/front/photos/index.js | 21 -- modules/claim/front/search-panel/index.html | 84 ------ modules/claim/front/search-panel/index.js | 14 - .../claim/front/search-panel/locale/es.yml | 7 - modules/claim/front/summary/index.html | 273 ------------------ modules/claim/front/summary/index.js | 103 ------- modules/claim/front/summary/index.spec.js | 55 ---- modules/claim/front/summary/style.scss | 28 -- modules/item/front/diary/index.html | 2 +- modules/item/front/diary/index.js | 4 + modules/ticket/front/sale/index.html | 2 +- modules/ticket/front/sale/index.js | 6 +- modules/ticket/front/summary/index.html | 4 +- modules/ticket/front/summary/index.js | 4 + 56 files changed, 31 insertions(+), 2765 deletions(-) delete mode 100644 e2e/paths/06-claim/01_basic_data.spec.js delete mode 100644 e2e/paths/06-claim/03_claim_action.spec.js delete mode 100644 e2e/paths/06-claim/04_summary.spec.js delete mode 100644 e2e/paths/06-claim/05_descriptor.spec.js delete mode 100644 e2e/paths/06-claim/06_note.spec.js delete mode 100644 modules/claim/front/action/index.html delete mode 100644 modules/claim/front/action/index.js delete mode 100644 modules/claim/front/action/index.spec.js delete mode 100644 modules/claim/front/action/locale/en.yml delete mode 100644 modules/claim/front/action/locale/es.yml delete mode 100644 modules/claim/front/action/style.scss delete mode 100644 modules/claim/front/basic-data/index.html delete mode 100644 modules/claim/front/basic-data/index.js delete mode 100644 modules/claim/front/basic-data/index.spec.js delete mode 100644 modules/claim/front/basic-data/locale/es.yml delete mode 100644 modules/claim/front/basic-data/style.scss delete mode 100644 modules/claim/front/card/index.html delete mode 100644 modules/claim/front/card/index.js delete mode 100644 modules/claim/front/card/index.spec.js delete mode 100644 modules/claim/front/detail/index.html delete mode 100644 modules/claim/front/detail/index.js delete mode 100644 modules/claim/front/detail/index.spec.js delete mode 100644 modules/claim/front/detail/locale/es.yml delete mode 100644 modules/claim/front/detail/style.scss delete mode 100644 modules/claim/front/development/index.html delete mode 100644 modules/claim/front/development/index.js delete mode 100644 modules/claim/front/index/index.html delete mode 100644 modules/claim/front/index/index.js delete mode 100644 modules/claim/front/log/index.html delete mode 100644 modules/claim/front/log/index.js delete mode 100644 modules/claim/front/note/create/index.html delete mode 100644 modules/claim/front/note/create/index.js delete mode 100644 modules/claim/front/note/index/index.html delete mode 100644 modules/claim/front/note/index/index.js delete mode 100644 modules/claim/front/note/index/style.scss delete mode 100644 modules/claim/front/photos/index.html delete mode 100644 modules/claim/front/photos/index.js delete mode 100644 modules/claim/front/search-panel/index.html delete mode 100644 modules/claim/front/search-panel/index.js delete mode 100644 modules/claim/front/search-panel/locale/es.yml delete mode 100644 modules/claim/front/summary/index.html delete mode 100644 modules/claim/front/summary/index.js delete mode 100644 modules/claim/front/summary/index.spec.js delete mode 100644 modules/claim/front/summary/style.scss diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index 685345273..097c6e1ab 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -738,69 +738,6 @@ export default { worker: 'vn-worker-autocomplete[ng-model="$ctrl.userFk"]', saveStateButton: `button[type=submit]` }, - claimsIndex: { - searchResult: 'vn-claim-index vn-card > vn-table > div > vn-tbody > a' - }, - claimDescriptor: { - moreMenu: 'vn-claim-descriptor vn-icon-button[icon=more_vert]', - moreMenuDeleteClaim: '.vn-menu [name="deleteClaim"]', - acceptDeleteClaim: '.vn-confirm.shown button[response="accept"]' - }, - claimSummary: { - header: 'vn-claim-summary > vn-card > h5', - state: 'vn-claim-summary vn-label-value[label="State"] > section > span', - observation: 'vn-claim-summary vn-horizontal.text', - firstSaleItemId: 'vn-claim-summary vn-horizontal > vn-auto:nth-child(5) vn-table > div > vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(1) > span', - firstSaleDescriptorImage: '.vn-popover.shown vn-item-descriptor img', - itemDescriptorPopover: '.vn-popover.shown vn-item-descriptor', - itemDescriptorPopoverItemDiaryButton: '.vn-popover vn-item-descriptor vn-quick-link[icon="icon-transaction"] > a', - firstDevelopmentWorker: 'vn-claim-summary vn-horizontal > vn-auto:nth-child(4) vn-table > div > vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(4) > span', - firstDevelopmentWorkerGoToClientButton: '.vn-popover vn-worker-descriptor vn-quick-link[icon="person"] > a', - firstActionTicketId: 'vn-claim-summary > vn-card > vn-horizontal > vn-auto:nth-child(5) vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(2) > span', - firstActionTicketDescriptor: '.vn-popover.shown vn-ticket-descriptor' - }, - claimBasicData: { - claimState: 'vn-claim-basic-data vn-autocomplete[ng-model="$ctrl.claim.claimStateFk"]', - packages: 'vn-input-number[ng-model="$ctrl.claim.packages"]', - saveButton: `button[type=submit]` - }, - claimDetail: { - secondItemDiscount: 'vn-claim-detail > vn-vertical > vn-card > vn-vertical > vn-table > div > vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(6) > span', - discount: '.vn-popover.shown vn-input-number[ng-model="$ctrl.newDiscount"]', - discoutPopoverMana: '.vn-popover.shown .content > div > vn-horizontal > h5', - addItemButton: 'vn-claim-detail a vn-float-button', - firstClaimableSaleFromTicket: '.vn-dialog.shown vn-tbody > vn-tr', - claimDetailLine: 'vn-claim-detail > vn-vertical > vn-card > vn-vertical > vn-table > div > vn-tbody > vn-tr', - totalClaimed: 'vn-claim-detail > vn-vertical > vn-card > vn-vertical > vn-horizontal > div > vn-label-value:nth-child(2) > section > span', - secondItemDeleteButton: 'vn-claim-detail > vn-vertical > vn-card > vn-vertical > vn-table > div > vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(8) > vn-icon-button > button > vn-icon > i' - }, - claimDevelopment: { - addDevelopmentButton: 'vn-claim-development > vn-vertical > vn-card > vn-vertical > vn-one > vn-icon-button > button > vn-icon', - firstDeleteDevelopmentButton: 'vn-claim-development > vn-vertical > vn-card > vn-vertical > form > vn-horizontal:nth-child(2) > vn-icon-button > button > vn-icon', - firstClaimReason: 'vn-claim-development vn-horizontal:nth-child(1) vn-autocomplete[ng-model="claimDevelopment.claimReasonFk"]', - firstClaimResult: 'vn-claim-development vn-horizontal:nth-child(1) vn-autocomplete[ng-model="claimDevelopment.claimResultFk"]', - firstClaimResponsible: 'vn-claim-development vn-horizontal:nth-child(1) vn-autocomplete[ng-model="claimDevelopment.claimResponsibleFk"]', - firstClaimWorker: 'vn-claim-development vn-horizontal:nth-child(1) vn-worker-autocomplete[ng-model="claimDevelopment.workerFk"]', - firstClaimRedelivery: 'vn-claim-development vn-horizontal:nth-child(1) vn-autocomplete[ng-model="claimDevelopment.claimRedeliveryFk"]', - secondClaimReason: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[ng-model="claimDevelopment.claimReasonFk"]', - secondClaimResult: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[ng-model="claimDevelopment.claimResultFk"]', - secondClaimResponsible: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[ng-model="claimDevelopment.claimResponsibleFk"]', - secondClaimWorker: 'vn-claim-development vn-horizontal:nth-child(2) vn-worker-autocomplete[ng-model="claimDevelopment.workerFk"]', - secondClaimRedelivery: 'vn-claim-development vn-horizontal:nth-child(2) vn-autocomplete[ng-model="claimDevelopment.claimRedeliveryFk"]', - saveDevelopmentButton: 'button[type=submit]' - }, - claimNote: { - addNoteFloatButton: 'vn-float-button', - note: 'vn-textarea[ng-model="$ctrl.note.text"]', - saveButton: 'button[type=submit]', - firstNoteText: 'vn-claim-note .text' - }, - claimAction: { - importClaimButton: 'vn-claim-action vn-button[label="Import claim"]', - anyLine: 'vn-claim-action vn-tbody > vn-tr', - firstDeleteLine: 'vn-claim-action tr:nth-child(2) vn-icon-button[icon="delete"]', - isPaidWithManaCheckbox: 'vn-claim-action vn-check[ng-model="$ctrl.claim.isChargedToMana"]' - }, ordersIndex: { secondSearchResultTotal: 'vn-order-index vn-card > vn-table > div > vn-tbody .vn-tr:nth-child(2) vn-td:nth-child(9)', advancedSearchButton: 'vn-order-search-panel vn-submit[label="Search"]', diff --git a/e2e/paths/06-claim/01_basic_data.spec.js b/e2e/paths/06-claim/01_basic_data.spec.js deleted file mode 100644 index 33c68183f..000000000 --- a/e2e/paths/06-claim/01_basic_data.spec.js +++ /dev/null @@ -1,61 +0,0 @@ -import selectors from '../../helpers/selectors.js'; -import getBrowser from '../../helpers/puppeteer'; - -describe('Claim edit basic data path', () => { - let browser; - let page; - - beforeAll(async() => { - browser = await getBrowser(); - page = browser.page; - }); - - afterAll(async() => { - await browser.close(); - }); - - it(`should log in as claimManager then reach basic data of the target claim`, async() => { - await page.loginAndModule('claimManager', 'claim'); - await page.accessToSearchResult('1'); - await page.accessToSection('claim.card.basicData'); - }); - - it(`should edit claim state and observation fields`, async() => { - await page.autocompleteSearch(selectors.claimBasicData.claimState, 'Resuelto'); - await page.clearInput(selectors.claimBasicData.packages); - await page.write(selectors.claimBasicData.packages, '2'); - await page.waitToClick(selectors.claimBasicData.saveButton); - const message = await page.waitForSnackbar(); - - expect(message.text).toContain('Data saved!'); - }); - - it(`should have been redirected to the next section of claims as the role is claimManager`, async() => { - await page.waitForState('claim.card.detail'); - }); - - it('should confirm the claim state was edited', async() => { - await page.reloadSection('claim.card.basicData'); - await page.waitForSelector(selectors.claimBasicData.claimState); - const result = await page.waitToGetProperty(selectors.claimBasicData.claimState, 'value'); - - expect(result).toEqual('Resuelto'); - }); - - it('should confirm the claim packages was edited', async() => { - const result = await page - .waitToGetProperty(selectors.claimBasicData.packages, 'value'); - - expect(result).toEqual('2'); - }); - - it(`should edit the claim to leave it untainted`, async() => { - await page.autocompleteSearch(selectors.claimBasicData.claimState, 'Pendiente'); - await page.clearInput(selectors.claimBasicData.packages); - await page.write(selectors.claimBasicData.packages, '0'); - await page.waitToClick(selectors.claimBasicData.saveButton); - const message = await page.waitForSnackbar(); - - expect(message.text).toContain('Data saved!'); - }); -}); diff --git a/e2e/paths/06-claim/03_claim_action.spec.js b/e2e/paths/06-claim/03_claim_action.spec.js deleted file mode 100644 index ac6f72e37..000000000 --- a/e2e/paths/06-claim/03_claim_action.spec.js +++ /dev/null @@ -1,54 +0,0 @@ -import selectors from '../../helpers/selectors.js'; -import getBrowser from '../../helpers/puppeteer.js'; - -describe('Claim action path', () => { - let browser; - let page; - - beforeAll(async() => { - browser = await getBrowser(); - page = browser.page; - await page.loginAndModule('claimManager', 'claim'); - await page.accessToSearchResult('2'); - await page.accessToSection('claim.card.action'); - }); - - afterAll(async() => { - await browser.close(); - }); - - it('should import the claim', async() => { - await page.waitToClick(selectors.claimAction.importClaimButton); - const message = await page.waitForSnackbar(); - - expect(message.text).toContain('Data saved!'); - }); - - it('should delete the first line', async() => { - await page.waitToClick(selectors.claimAction.firstDeleteLine); - const message = await page.waitForSnackbar(); - - expect(message.text).toContain('Data saved!'); - }); - - it('should refresh the view to check not have lines', async() => { - await page.reloadSection('claim.card.action'); - const result = await page.countElement(selectors.claimAction.anyLine); - - expect(result).toEqual(0); - }); - - it('should check the "is paid with mana" checkbox', async() => { - await page.waitToClick(selectors.claimAction.isPaidWithManaCheckbox); - const message = await page.waitForSnackbar(); - - expect(message.text).toContain('Data saved!'); - }); - - 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'); - }); -}); diff --git a/e2e/paths/06-claim/04_summary.spec.js b/e2e/paths/06-claim/04_summary.spec.js deleted file mode 100644 index dda8484a6..000000000 --- a/e2e/paths/06-claim/04_summary.spec.js +++ /dev/null @@ -1,96 +0,0 @@ - -import selectors from '../../helpers/selectors.js'; -import getBrowser from '../../helpers/puppeteer.js'; - -describe('Claim summary path', () => { - let browser; - let page; - const claimId = '4'; - - beforeAll(async() => { - browser = await getBrowser(); - page = browser.page; - }); - - afterAll(async() => { - await browser.close(); - }); - - it('should navigate to the target claim summary section', async() => { - await page.loginAndModule('salesPerson', 'claim'); - await page.accessToSearchResult(claimId); - await page.waitForState('claim.card.summary'); - }); - - it(`should display details from the claim and it's client on the top of the header`, async() => { - await page.waitForTextInElement(selectors.claimSummary.header, 'Tony Stark'); - const result = await page.waitToGetProperty(selectors.claimSummary.header, 'innerText'); - - expect(result).toContain('4 -'); - expect(result).toContain('Tony Stark'); - }); - - it('should display the claim state', async() => { - const result = await page.waitToGetProperty(selectors.claimSummary.state, 'innerText'); - - expect(result).toContain('Resuelto'); - }); - - it('should display the observation', async() => { - const result = await page.waitToGetProperty(selectors.claimSummary.observation, 'innerText'); - - expect(result).toContain('Wisi forensibus mnesarchum in cum. Per id impetus abhorreant'); - }); - - it('should display the claimed line(s)', async() => { - const result = await page.waitToGetProperty(selectors.claimSummary.firstSaleItemId, 'innerText'); - - expect(result).toContain('2'); - }); - - it(`should click on the first sale ID making the item descriptor visible`, async() => { - const firstItem = selectors.claimSummary.firstSaleItemId; - await page.evaluate(selectors => { - document.querySelector(selectors).scrollIntoView(); - }, firstItem); - await page.click(firstItem); - await page.waitImgLoad(selectors.claimSummary.firstSaleDescriptorImage); - const visible = await page.isVisible(selectors.claimSummary.itemDescriptorPopover); - - expect(visible).toBeTruthy(); - }); - - it(`should check the url for the item diary link of the descriptor is for the right item id`, async() => { - await page.waitForSelector(selectors.claimSummary.itemDescriptorPopoverItemDiaryButton, {visible: true}); - - await page.closePopup(); - }); - - it('should display the claim development details', async() => { - const result = await page.waitToGetProperty(selectors.claimSummary.firstDevelopmentWorker, 'innerText'); - - expect(result).toContain('salesAssistantNick'); - }); - - it(`should click on the first development worker making the worker descriptor visible`, async() => { - await page.waitToClick(selectors.claimSummary.firstDevelopmentWorker); - - const visible = await page.isVisible(selectors.claimSummary.firstDevelopmentWorkerGoToClientButton); - - expect(visible).toBeTruthy(); - }); - - it(`should check the url for the go to clientlink of the descriptor is for the right client id`, async() => { - await page.waitForSelector(selectors.claimSummary.firstDevelopmentWorkerGoToClientButton, {visible: true}); - - await page.closePopup(); - }); - - it(`should click on the first action ticket ID making the ticket descriptor visible`, async() => { - await page.waitToClick(selectors.claimSummary.firstActionTicketId); - await page.waitForSelector(selectors.claimSummary.firstActionTicketDescriptor); - const visible = await page.isVisible(selectors.claimSummary.firstActionTicketDescriptor); - - expect(visible).toBeTruthy(); - }); -}); diff --git a/e2e/paths/06-claim/05_descriptor.spec.js b/e2e/paths/06-claim/05_descriptor.spec.js deleted file mode 100644 index 49912b26a..000000000 --- a/e2e/paths/06-claim/05_descriptor.spec.js +++ /dev/null @@ -1,58 +0,0 @@ -import selectors from '../../helpers/selectors.js'; -import getBrowser from '../../helpers/puppeteer.js'; - -describe('Claim descriptor path', () => { - let browser; - let page; - const claimId = '1'; - - beforeAll(async() => { - browser = await getBrowser(); - page = browser.page; - }); - - afterAll(async() => { - await browser.close(); - }); - - it('should now navigate to the target claim summary section', async() => { - await page.loginAndModule('salesPerson', 'claim'); - await page.accessToSearchResult(claimId); - await page.waitForState('claim.card.summary'); - }); - - it(`should not be able to see the delete claim button of the descriptor more menu`, async() => { - await page.waitToClick(selectors.claimDescriptor.moreMenu); - await page.waitForSelector(selectors.claimDescriptor.moreMenuDeleteClaim, {hidden: true}); - }); - - it(`should log in as claimManager and navigate to the target claim`, async() => { - await page.loginAndModule('claimManager', 'claim'); - await page.accessToSearchResult(claimId); - await page.waitForState('claim.card.summary'); - }); - - it(`should be able to see the delete claim button of the descriptor more menu`, async() => { - await page.waitToClick(selectors.claimDescriptor.moreMenu); - await page.waitForSelector(selectors.claimDescriptor.moreMenuDeleteClaim, {visible: true}); - }); - - it(`should delete the claim`, async() => { - await page.waitToClick(selectors.claimDescriptor.moreMenuDeleteClaim); - await page.waitToClick(selectors.claimDescriptor.acceptDeleteClaim); - const message = await page.waitForSnackbar(); - - expect(message.text).toContain('Claim deleted!'); - }); - - it(`should have been relocated to the claim index`, async() => { - await page.waitForState('claim.index'); - }); - - it(`should search for the deleted claim to find no results`, async() => { - await page.doSearch(claimId); - const nResults = await page.countElement(selectors.claimsIndex.searchResult); - - expect(nResults).toEqual(0); - }); -}); diff --git a/e2e/paths/06-claim/06_note.spec.js b/e2e/paths/06-claim/06_note.spec.js deleted file mode 100644 index 830f77cbe..000000000 --- a/e2e/paths/06-claim/06_note.spec.js +++ /dev/null @@ -1,46 +0,0 @@ -import selectors from '../../helpers/selectors'; -import getBrowser from '../../helpers/puppeteer'; - -describe('Claim Add note path', () => { - let browser; - let page; - beforeAll(async() => { - browser = await getBrowser(); - page = browser.page; - await page.loginAndModule('salesPerson', 'claim'); - await page.accessToSearchResult('2'); - await page.accessToSection('claim.card.note.index'); - }); - - afterAll(async() => { - await browser.close(); - }); - - it(`should reach the claim note index`, async() => { - await page.waitForState('claim.card.note.index'); - }); - - it(`should click on the add new note button`, async() => { - await page.waitToClick(selectors.claimNote.addNoteFloatButton); - await page.waitForState('claim.card.note.create'); - }); - - it(`should create a new note`, async() => { - await page.waitForSelector(selectors.claimNote.note); - await page.type(`${selectors.claimNote.note} textarea`, 'The delivery was unsuccessful'); - await page.waitToClick(selectors.claimNote.saveButton); - const message = await page.waitForSnackbar(); - - expect(message.text).toContain('Data saved!'); - }); - - it(`should redirect back to the claim notes page`, async() => { - await page.waitForState('claim.card.note.index'); - }); - - it('should confirm the note was created', async() => { - const result = await page.waitToGetProperty(selectors.claimNote.firstNoteText, 'innerText'); - - expect(result).toEqual('The delivery was unsuccessful'); - }); -}); diff --git a/e2e/tests.js b/e2e/tests.js index 829056f4c..a9c662dc4 100644 --- a/e2e/tests.js +++ b/e2e/tests.js @@ -41,7 +41,6 @@ async function test() { `./e2e/paths/03*/*[sS]pec.js`, `./e2e/paths/04*/*[sS]pec.js`, `./e2e/paths/05*/*[sS]pec.js`, - `./e2e/paths/06*/*[sS]pec.js`, `./e2e/paths/07*/*[sS]pec.js`, `./e2e/paths/08*/*[sS]pec.js`, `./e2e/paths/09*/*[sS]pec.js`, diff --git a/modules/claim/front/action/index.html b/modules/claim/front/action/index.html deleted file mode 100644 index 9da51b8de..000000000 --- a/modules/claim/front/action/index.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - - - - - -
- - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - IdTicket - Destination - - Landed - - Quantity - - Description - - Price - - Disc. - Total
- - - - - {{::saleClaimed.itemFk}} - - - - {{::saleClaimed.ticketFk}} - - - - - {{::saleClaimed.landed | date: 'dd/MM/yyyy'}}{{::saleClaimed.quantity}}{{::saleClaimed.concept}}{{::saleClaimed.price | currency: 'EUR':2}}{{::saleClaimed.discount}} %{{saleClaimed.total | currency: 'EUR':2}} - - -
-
-
- - - - -
- - - - - - - - - - -
-
{{$ctrl.$t('Change destination to all selected rows', {total: $ctrl.checked.length})}}
- - - - -
-
- - - - -
diff --git a/modules/claim/front/action/index.js b/modules/claim/front/action/index.js deleted file mode 100644 index 10b629f27..000000000 --- a/modules/claim/front/action/index.js +++ /dev/null @@ -1,233 +0,0 @@ -import ngModule from '../module'; -import Section from 'salix/components/section'; -import './style.scss'; - -export default class Controller extends Section { - constructor($element, $) { - super($element, $); - this.newDestination; - this.filter = { - include: [ - {relation: 'sale', - scope: { - fields: ['concept', 'ticketFk', 'price', 'quantity', 'discount', 'itemFk'], - include: { - relation: 'ticket' - } - } - }, - {relation: 'claimBeggining'}, - {relation: 'claimDestination'} - ] - }; - this.getResolvedState(); - this.maxResponsibility = 5; - this.smartTableOptions = { - activeButtons: { - search: true - }, - columns: [ - { - field: 'claimDestinationFk', - autocomplete: { - url: 'ClaimDestinations', - showField: 'description', - valueField: 'id' - } - }, - { - field: 'landed', - searchable: false - } - ] - }; - } - - exprBuilder(param, value) { - switch (param) { - case 'itemFk': - case 'ticketFk': - case 'claimDestinationFk': - case 'quantity': - case 'price': - case 'discount': - case 'total': - return {[param]: value}; - case 'concept': - return {[param]: {like: `%${value}%`}}; - case 'landed': - return {[param]: {between: this.dateRange(value)}}; - } - } - - dateRange(value) { - const minHour = new Date(value); - minHour.setHours(0, 0, 0, 0); - const maxHour = new Date(value); - maxHour.setHours(23, 59, 59, 59); - - return [minHour, maxHour]; - } - - get checked() { - const salesClaimed = this.$.model.data || []; - - const checkedSalesClaimed = []; - for (let saleClaimed of salesClaimed) { - if (saleClaimed.$checked) - checkedSalesClaimed.push(saleClaimed); - } - - return checkedSalesClaimed; - } - - updateDestination(saleClaimed, claimDestinationFk) { - const data = {rows: [saleClaimed], claimDestinationFk: claimDestinationFk}; - this.$http.post(`Claims/updateClaimDestination`, data).then(() => { - this.vnApp.showSuccess(this.$t('Data saved!')); - }).catch(e => { - this.$.model.refresh(); - throw e; - }); - } - - removeSales(saleClaimed) { - const params = {sales: [saleClaimed]}; - this.$http.post(`ClaimEnds/deleteClamedSales`, params).then(() => { - this.$.model.refresh(); - this.vnApp.showSuccess(this.$t('Data saved!')); - }); - } - - getResolvedState() { - const query = `ClaimStates/findOne`; - const params = { - filter: { - where: { - code: 'resolved' - } - } - }; - this.$http.get(query, params).then(res => - this.resolvedStateId = res.data.id - ); - } - - importToNewRefundTicket() { - let query = `ClaimBeginnings/${this.$params.id}/importToNewRefundTicket`; - return this.$http.post(query).then(() => { - this.$.model.refresh(); - this.vnApp.showSuccess(this.$t('Data saved!')); - }); - } - - focusLastInput() { - let inputs = document.querySelectorAll('#claimDestinationFk'); - inputs[inputs.length - 1].querySelector('input').focus(); - this.calculateTotals(); - } - - calculateTotals() { - this.claimedTotal = 0; - this.salesClaimed.forEach(sale => { - const price = sale.quantity * sale.price; - const discount = (sale.discount * (sale.quantity * sale.price)) / 100; - this.claimedTotal += price - discount; - }); - } - - regularize() { - const query = `Claims/${this.$params.id}/regularizeClaim`; - return this.$http.post(query).then(() => { - if (this.claim.responsibility >= Math.ceil(this.maxResponsibility) / 2) - this.$.updateGreuge.show(); - else - this.vnApp.showSuccess(this.$t('Data saved!')); - - this.card.reload(); - }); - } - - getGreugeTypeId() { - const params = {filter: {where: {code: 'freightPickUp'}}}; - const query = `GreugeTypes/findOne`; - return this.$http.get(query, {params}).then(res => { - this.greugeTypeFreightId = res.data.id; - - return res; - }); - } - - getGreugeConfig() { - const query = `GreugeConfigs/findOne`; - return this.$http.get(query).then(res => { - this.freightPickUpPrice = res.data.freightPickUpPrice; - - return res; - }); - } - - onUpdateGreugeAccept() { - const promises = []; - promises.push(this.getGreugeTypeId()); - promises.push(this.getGreugeConfig()); - - return Promise.all(promises).then(() => { - return this.updateGreuge({ - clientFk: this.claim.clientFk, - description: this.$t('ClaimGreugeDescription', { - claimId: this.claim.id - }).toUpperCase(), - amount: this.freightPickUpPrice, - greugeTypeFk: this.greugeTypeFreightId, - ticketFk: this.claim.ticketFk - }); - }); - } - - updateGreuge(data) { - return this.$http.post(`Greuges`, data).then(() => { - this.vnApp.showSuccess(this.$t('Data saved!')); - this.vnApp.showMessage(this.$t('Greuge added')); - }); - } - - save(data) { - const query = `Claims/${this.$params.id}/updateClaimAction`; - this.$http.patch(query, data) - .then(() => this.vnApp.showSuccess(this.$t('Data saved!'))); - } - - onSave() { - this.vnApp.showSuccess(this.$t('Data saved!')); - } - - onResponse() { - const rowsToEdit = []; - for (let row of this.checked) - rowsToEdit.push({id: row.id}); - - const data = { - rows: rowsToEdit, - claimDestinationFk: this.newDestination - }; - - const query = `Claims/updateClaimDestination`; - this.$http.post(query, data) - .then(() => { - this.$.model.refresh(); - this.vnApp.showSuccess(this.$t('Data saved!')); - }); - } -} - -ngModule.vnComponent('vnClaimAction', { - template: require('./index.html'), - controller: Controller, - bindings: { - claim: '<' - }, - require: { - card: '^vnClaimCard' - } -}); diff --git a/modules/claim/front/action/index.spec.js b/modules/claim/front/action/index.spec.js deleted file mode 100644 index e773511bf..000000000 --- a/modules/claim/front/action/index.spec.js +++ /dev/null @@ -1,167 +0,0 @@ -import './index.js'; -import crudModel from 'core/mocks/crud-model'; - -describe('claim', () => { - describe('Component vnClaimAction', () => { - let controller; - let $httpBackend; - let $state; - - beforeEach(ngModule('claim')); - - beforeEach(inject(($componentController, _$state_, _$httpBackend_) => { - $httpBackend = _$httpBackend_; - $state = _$state_; - $state.params.id = 1; - - controller = $componentController('vnClaimAction', {$element: null}); - controller.claim = {ticketFk: 1}; - controller.$.model = {refresh: () => {}}; - controller.$.addSales = { - hide: () => {}, - show: () => {} - }; - controller.$.lastTicketsModel = crudModel; - controller.$.lastTicketsPopover = { - hide: () => {}, - show: () => {} - }; - controller.card = {reload: () => {}}; - $httpBackend.expectGET(`ClaimStates/findOne`).respond({}); - })); - - describe('getResolvedState()', () => { - it('should return the resolved state id', () => { - $httpBackend.expectGET(`ClaimStates/findOne`).respond({id: 1}); - controller.getResolvedState(); - $httpBackend.flush(); - - expect(controller.resolvedStateId).toEqual(1); - }); - }); - - describe('calculateTotals()', () => { - it('should calculate the total price of the items claimed', () => { - controller.salesClaimed = [ - {quantity: 5, price: 2, discount: 0}, - {quantity: 10, price: 2, discount: 0}, - {quantity: 10, price: 2, discount: 0} - ]; - controller.calculateTotals(); - - expect(controller.claimedTotal).toEqual(50); - }); - }); - - describe('importToNewRefundTicket()', () => { - it('should perform a post query and add lines from a new ticket', () => { - jest.spyOn(controller.$.model, 'refresh'); - jest.spyOn(controller.vnApp, 'showSuccess'); - - $httpBackend.expect('POST', `ClaimBeginnings/1/importToNewRefundTicket`).respond({}); - controller.importToNewRefundTicket(); - $httpBackend.flush(); - - expect(controller.$.model.refresh).toHaveBeenCalled(); - expect(controller.vnApp.showSuccess).toHaveBeenCalled(); - }); - }); - - describe('regularize()', () => { - it('should perform a post query and reload the claim card', () => { - jest.spyOn(controller.card, 'reload'); - jest.spyOn(controller.vnApp, 'showSuccess'); - - $httpBackend.expect('POST', `Claims/1/regularizeClaim`).respond({}); - controller.regularize(); - $httpBackend.flush(); - - expect(controller.card.reload).toHaveBeenCalledWith(); - expect(controller.vnApp.showSuccess).toHaveBeenCalled(); - }); - }); - - describe('save()', () => { - it('should perform a patch query and show a success message', () => { - jest.spyOn(controller.vnApp, 'showSuccess'); - - const data = {pickup: 'agency'}; - $httpBackend.expect('PATCH', `Claims/1/updateClaimAction`, data).respond({}); - controller.save(data); - $httpBackend.flush(); - - expect(controller.vnApp.showSuccess).toHaveBeenCalled(); - }); - }); - - describe('onUpdateGreugeAccept()', () => { - const greugeTypeId = 7; - const freightPickUpPrice = 11; - - it('should make a query and get the greugeTypeId and greuge config', () => { - $httpBackend.expectRoute('GET', `GreugeTypes/findOne`).respond({id: greugeTypeId}); - $httpBackend.expectGET(`GreugeConfigs/findOne`).respond({freightPickUpPrice}); - controller.onUpdateGreugeAccept(); - $httpBackend.flush(); - - expect(controller.greugeTypeFreightId).toEqual(greugeTypeId); - expect(controller.freightPickUpPrice).toEqual(freightPickUpPrice); - }); - - it('should perform a insert into greuges', done => { - jest.spyOn(controller, 'getGreugeTypeId').mockReturnValue(new Promise(resolve => { - return resolve({id: greugeTypeId}); - })); - jest.spyOn(controller, 'getGreugeConfig').mockReturnValue(new Promise(resolve => { - return resolve({freightPickUpPrice}); - })); - jest.spyOn(controller, 'updateGreuge').mockReturnValue(new Promise(resolve => { - return resolve(true); - })); - - controller.claim.clientFk = 1101; - controller.claim.id = 11; - - controller.onUpdateGreugeAccept().then(() => { - expect(controller.updateGreuge).toHaveBeenCalledWith(jasmine.any(Object)); - done(); - }).catch(done.fail); - }); - }); - - describe('updateGreuge()', () => { - it('should make a query and then call to showSuccess() and showMessage() methods', () => { - jest.spyOn(controller.vnApp, 'showSuccess'); - jest.spyOn(controller.vnApp, 'showMessage'); - - const freightPickUpPrice = 11; - const greugeTypeId = 7; - const expectedData = { - clientFk: 1101, - description: `claim: ${controller.claim.id}`, - amount: freightPickUpPrice, - greugeTypeFk: greugeTypeId, - ticketFk: controller.claim.ticketFk - }; - $httpBackend.expect('POST', `Greuges`, expectedData).respond(200); - controller.updateGreuge(expectedData); - $httpBackend.flush(); - - expect(controller.vnApp.showSuccess).toHaveBeenCalledWith('Data saved!'); - expect(controller.vnApp.showMessage).toHaveBeenCalledWith('Greuge added'); - }); - }); - - describe('onResponse()', () => { - it('should perform a post query and show a success message', () => { - jest.spyOn(controller.vnApp, 'showSuccess'); - - $httpBackend.expect('POST', `Claims/updateClaimDestination`).respond({}); - controller.onResponse(); - $httpBackend.flush(); - - expect(controller.vnApp.showSuccess).toHaveBeenCalled(); - }); - }); - }); -}); diff --git a/modules/claim/front/action/locale/en.yml b/modules/claim/front/action/locale/en.yml deleted file mode 100644 index faab67c06..000000000 --- a/modules/claim/front/action/locale/en.yml +++ /dev/null @@ -1 +0,0 @@ -ClaimGreugeDescription: Claim id {{claimId}} \ No newline at end of file diff --git a/modules/claim/front/action/locale/es.yml b/modules/claim/front/action/locale/es.yml deleted file mode 100644 index 97640d9dc..000000000 --- a/modules/claim/front/action/locale/es.yml +++ /dev/null @@ -1,13 +0,0 @@ -Destination: Destino -Action: Actuaciones -Total claimed: Total Reclamado -Import claim: Importar reclamacion -Imports claim details: Importa detalles de la reclamacion -Regularize: Regularizar -Do you want to insert greuges?: Desea insertar greuges? -Insert greuges on client card: Insertar greuges en la ficha del cliente -Greuge added: Greuge añadido -ClaimGreugeDescription: Reclamación id {{claimId}} -Change destination: Cambiar destino -Change destination to all selected rows: Cambiar destino a {{total}} fila(s) seleccionada(s) -Add observation to all selected clients: Añadir observación a {{total}} cliente(s) seleccionado(s) diff --git a/modules/claim/front/action/style.scss b/modules/claim/front/action/style.scss deleted file mode 100644 index cda6779c8..000000000 --- a/modules/claim/front/action/style.scss +++ /dev/null @@ -1,46 +0,0 @@ -vn-claim-action { - .header { - display: flex; - justify-content: space-between; - align-items: center; - align-content: center; - - vn-tool-bar { - flex: none - } - - .vn-check { - flex: none; - } - } - - vn-dialog[vn-id=addSales] { - tpl-body { - width: 950px; - div { - div.buttons { - display: none; - } - vn-table{ - min-width: 950px; - } - } - } - } - - vn-popover.lastTicketsPopover { - vn-table { - min-width: 650px; - overflow: auto - } - - div.ticketList { - overflow: auto; - max-height: 350px; - } - } - - .right { - margin-left: 370px; - } -} \ No newline at end of file diff --git a/modules/claim/front/basic-data/index.html b/modules/claim/front/basic-data/index.html deleted file mode 100644 index 45bc1823d..000000000 --- a/modules/claim/front/basic-data/index.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/modules/claim/front/basic-data/index.js b/modules/claim/front/basic-data/index.js deleted file mode 100644 index 818012bb9..000000000 --- a/modules/claim/front/basic-data/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import ngModule from '../module'; -import Section from 'salix/components/section'; -import './style.scss'; - -class Controller extends Section { - onSubmit() { - this.$.watcher.submit().then(() => { - if (this.aclService.hasAny(['claimManager'])) - this.$state.go('claim.card.detail'); - }); - } -} - -ngModule.vnComponent('vnClaimBasicData', { - template: require('./index.html'), - controller: Controller, - bindings: { - claim: '<' - } -}); diff --git a/modules/claim/front/basic-data/index.spec.js b/modules/claim/front/basic-data/index.spec.js deleted file mode 100644 index 638f88418..000000000 --- a/modules/claim/front/basic-data/index.spec.js +++ /dev/null @@ -1,28 +0,0 @@ -import './index.js'; -import watcher from 'core/mocks/watcher'; - -describe('Claim', () => { - describe('Component vnClaimBasicData', () => { - let controller; - let $scope; - - beforeEach(ngModule('claim')); - - beforeEach(inject(($componentController, $rootScope) => { - $scope = $rootScope.$new(); - $scope.watcher = watcher; - const $element = angular.element(''); - controller = $componentController('vnClaimBasicData', {$element, $scope}); - })); - - describe('onSubmit()', () => { - it(`should redirect to 'claim.card.detail' state`, () => { - jest.spyOn(controller.aclService, 'hasAny').mockReturnValue(true); - jest.spyOn(controller.$state, 'go'); - controller.onSubmit(); - - expect(controller.$state.go).toHaveBeenCalledWith('claim.card.detail'); - }); - }); - }); -}); diff --git a/modules/claim/front/basic-data/locale/es.yml b/modules/claim/front/basic-data/locale/es.yml deleted file mode 100644 index 5250d266c..000000000 --- a/modules/claim/front/basic-data/locale/es.yml +++ /dev/null @@ -1,9 +0,0 @@ -Contact: Contacto -Claim state: Estado de la reclamación -Is paid with mana: Cargado al maná -Responsability: Responsabilidad -Company: Empresa -Sales/Client: Comercial/Cliente -Pick up: Recoger -When checked will notify to the salesPerson: Cuando se marque enviará una notificación de recogida al comercial -Packages received: Bultos recibidos diff --git a/modules/claim/front/basic-data/style.scss b/modules/claim/front/basic-data/style.scss deleted file mode 100644 index e80361ca8..000000000 --- a/modules/claim/front/basic-data/style.scss +++ /dev/null @@ -1,3 +0,0 @@ -vn-claim-basic-data vn-date-picker { - padding-left: 80px; -} diff --git a/modules/claim/front/card/index.html b/modules/claim/front/card/index.html deleted file mode 100644 index 1db6b38db..000000000 --- a/modules/claim/front/card/index.html +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/modules/claim/front/card/index.js b/modules/claim/front/card/index.js deleted file mode 100644 index 5dad0dfc2..000000000 --- a/modules/claim/front/card/index.js +++ /dev/null @@ -1,68 +0,0 @@ -import ngModule from '../module'; -import ModuleCard from 'salix/components/module-card'; - -class Controller extends ModuleCard { - reload() { - let filter = { - include: [ - { - relation: 'worker', - scope: { - fields: ['id'], - include: { - relation: 'user', - scope: { - fields: ['name'] - } - } - } - }, { - relation: 'ticket', - scope: { - fields: ['zoneFk', 'addressFk'], - include: [ - { - relation: 'zone', - scope: { - fields: ['name'] - } - }, - { - relation: 'address', - scope: { - fields: ['provinceFk'], - include: { - relation: 'province', - scope: { - fields: ['name'] - } - } - } - }] - } - }, { - relation: 'claimState', - scope: { - fields: ['id', 'description'] - } - }, { - relation: 'client', - scope: { - fields: ['salesPersonFk', 'name', 'email'], - include: { - relation: 'salesPersonUser' - } - } - } - ] - }; - - this.$http.get(`Claims/${this.$params.id}`, {filter}) - .then(res => this.claim = res.data); - } -} - -ngModule.vnComponent('vnClaimCard', { - template: require('./index.html'), - controller: Controller -}); diff --git a/modules/claim/front/card/index.spec.js b/modules/claim/front/card/index.spec.js deleted file mode 100644 index aa796c1e3..000000000 --- a/modules/claim/front/card/index.spec.js +++ /dev/null @@ -1,29 +0,0 @@ -import './index.js'; - -describe('Claim', () => { - describe('Component vnClaimCard', () => { - let controller; - let $httpBackend; - let data = {id: 1, name: 'fooName'}; - - beforeEach(ngModule('claim')); - - beforeEach(inject(($componentController, _$httpBackend_, $stateParams) => { - $httpBackend = _$httpBackend_; - - let $element = angular.element('
'); - controller = $componentController('vnClaimCard', {$element}); - - $stateParams.id = data.id; - $httpBackend.whenRoute('GET', 'Claims/:id').respond(data); - })); - - it('should request data and set it on the controller', () => { - controller.reload(); - $httpBackend.flush(); - - expect(controller.claim).toEqual(data); - }); - }); -}); - diff --git a/modules/claim/front/descriptor/index.js b/modules/claim/front/descriptor/index.js index 5e9ea5140..337233059 100644 --- a/modules/claim/front/descriptor/index.js +++ b/modules/claim/front/descriptor/index.js @@ -29,9 +29,9 @@ class Controller extends Descriptor { deleteClaim() { return this.$http.delete(`Claims/${this.claim.id}`) - .then(() => { + .then(async() => { this.vnApp.showSuccess(this.$t('Claim deleted!')); - this.$state.go('claim.index'); + window.location.href = await this.vnApp.getUrl(`claim/`); }); } } diff --git a/modules/claim/front/detail/index.html b/modules/claim/front/detail/index.html deleted file mode 100644 index a2a08a5db..000000000 --- a/modules/claim/front/detail/index.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - - - - - - - - Landed - Quantity - Claimed - Description - Price - Disc. - Total - - - - - - {{::saleClaimed.sale.ticket.landed | date:'dd/MM/yyyy'}} - {{::saleClaimed.sale.quantity}} - - - - - - - {{::saleClaimed.sale.concept}} - - - {{::saleClaimed.sale.price | currency: 'EUR':2}} - - - {{saleClaimed.sale.discount}} % - - - - {{$ctrl.getSaleTotal(saleClaimed.sale) | currency: 'EUR':2}} - - - - - - - - - - - - - - - - - - Claimable sales from ticket {{$ctrl.claim.ticketFk}} - - - - - - - Landed - Quantity - Description - Price - Disc. - Total - - - - - {{sale.landed | date: 'dd/MM/yyyy'}} - {{sale.quantity}} - - - {{sale.itemFk}} - {{sale.concept}} - - - {{sale.price | currency: 'EUR':2}} - {{sale.discount}} % - - {{(sale.quantity * sale.price) - ((sale.discount * (sale.quantity * sale.price))/100) | currency: 'EUR':2}} - - - - - - - - - - -
- - -
- -
MANÁ: {{$ctrl.mana | currency: 'EUR':0}}
-
-
- - -
-

Total claimed price

-

{{$ctrl.newPrice | currency: 'EUR':2}} -

-
-
-
-
-
- - \ No newline at end of file diff --git a/modules/claim/front/detail/index.js b/modules/claim/front/detail/index.js deleted file mode 100644 index 56f39e074..000000000 --- a/modules/claim/front/detail/index.js +++ /dev/null @@ -1,203 +0,0 @@ -import ngModule from '../module'; -import Section from 'salix/components/section'; -import './style.scss'; - -class Controller extends Section { - constructor($element, $) { - super($element, $); - this.edit = {}; - this.filter = { - where: {claimFk: this.$params.id}, - include: [ - { - relation: 'sale', - scope: { - fields: ['concept', 'ticketFk', 'price', 'quantity', 'discount', 'itemFk'], - include: { - relation: 'ticket' - } - } - } - ] - }; - } - - get claim() { - return this._claim; - } - - set claim(value) { - this._claim = value; - - if (value) { - this.isClaimEditable(); - this.isTicketEditable(); - } - } - - set salesClaimed(value) { - this._salesClaimed = value; - - if (value) this.calculateTotals(); - } - - get salesClaimed() { - return this._salesClaimed; - } - - get newDiscount() { - return this._newDiscount; - } - - set newDiscount(value) { - this._newDiscount = value; - this.updateNewPrice(); - } - - get isClaimManager() { - return this.aclService.hasAny(['claimManager']); - } - - openAddSalesDialog() { - this.getClaimableFromTicket(); - this.$.addSales.show(); - } - - getClaimableFromTicket() { - let config = {params: {ticketFk: this.claim.ticketFk}}; - let query = `Sales/getClaimableFromTicket`; - this.$http.get(query, config).then(res => { - if (res.data) - this.salesToClaim = res.data; - }); - } - - addClaimedSale(index) { - let sale = this.salesToClaim[index]; - let saleToAdd = {saleFk: sale.saleFk, claimFk: this.claim.id, quantity: sale.quantity}; - let query = `ClaimBeginnings/`; - this.$http.post(query, saleToAdd).then(() => { - this.$.addSales.hide(); - this.$.model.refresh(); - this.vnApp.showSuccess(this.$t('Data saved!')); - - if (this.aclService.hasAny(['claimManager'])) - this.$state.go('claim.card.development'); - }); - } - - showDeleteConfirm($index) { - this.claimedIndex = $index; - this.$.confirm.show(); - } - - deleteClaimedSale() { - this.$.model.remove(this.claimedIndex); - this.$.model.save().then(() => { - this.vnApp.showSuccess(this.$t('Data saved!')); - this.calculateTotals(); - }); - } - - setClaimedQuantity(id, claimedQuantity) { - let params = {quantity: claimedQuantity}; - let query = `ClaimBeginnings/${id}`; - this.$http.patch(query, params).then(() => { - this.vnApp.showSuccess(this.$t('Data saved!')); - this.calculateTotals(); - }); - } - - calculateTotals() { - this.paidTotal = 0.0; - this.claimedTotal = 0.0; - if (!this._salesClaimed) return; - - this._salesClaimed.forEach(sale => { - let orgSale = sale.sale; - this.paidTotal += this.getSaleTotal(orgSale); - - const price = sale.quantity * orgSale.price; - const discount = ((orgSale.discount * price) / 100); - - this.claimedTotal += price - discount; - }); - } - - getSaleTotal(sale) { - let total = 0.0; - - const price = sale.quantity * sale.price; - const discount = ((sale.discount * price) / 100); - - total += price - discount; - return total; - } - - getSalespersonMana() { - this.$http.get(`Tickets/${this.claim.ticketFk}/getSalesPersonMana`).then(res => { - this.mana = res.data; - }); - } - - isTicketEditable() { - if (!this.claim) return; - - this.$http.get(`Tickets/${this.claim.ticketFk}/isEditable`).then(res => { - this.isEditable = res.data; - }); - } - - isClaimEditable() { - if (!this.claim) return; - - this.$http.get(`ClaimStates/${this.claim.claimStateFk}/isEditable`).then(res => { - this.isRewritable = res.data; - }); - } - - showEditPopover(event, saleClaimed) { - if (this.aclService.hasAny(['claimManager'])) { - this.saleClaimed = saleClaimed; - this.$.editPopover.parent = event.target; - this.$.editPopover.show(); - } - } - - updateDiscount() { - const claimedSale = this.saleClaimed.sale; - if (this.newDiscount != claimedSale.discount) { - const params = {salesIds: [claimedSale.id], newDiscount: this.newDiscount}; - const query = `Tickets/${claimedSale.ticketFk}/updateDiscount`; - - this.$http.post(query, params).then(() => { - claimedSale.discount = this.newDiscount; - this.calculateTotals(); - this.clearDiscount(); - - this.vnApp.showSuccess(this.$t('Data saved!')); - }); - } - - this.$.editPopover.hide(); - } - - updateNewPrice() { - this.newPrice = (this.saleClaimed.quantity * this.saleClaimed.sale.price) - - ((this.newDiscount * (this.saleClaimed.quantity * this.saleClaimed.sale.price)) / 100); - } - - clearDiscount() { - this.newDiscount = null; - } -} - -Controller.$inject = ['$element', '$scope']; - -ngModule.vnComponent('vnClaimDetail', { - template: require('./index.html'), - controller: Controller, - bindings: { - claim: '<' - } -}); diff --git a/modules/claim/front/detail/index.spec.js b/modules/claim/front/detail/index.spec.js deleted file mode 100644 index 1ef779fd7..000000000 --- a/modules/claim/front/detail/index.spec.js +++ /dev/null @@ -1,150 +0,0 @@ -import './index.js'; -import crudModel from 'core/mocks/crud-model'; - -describe('claim', () => { - describe('Component vnClaimDetail', () => { - let $scope; - let controller; - let $httpBackend; - - beforeEach(ngModule('claim')); - - beforeEach(inject(($componentController, _$httpBackend_, $rootScope) => { - $scope = $rootScope.$new(); - $scope.descriptor = { - show: () => {} - }; - $httpBackend = _$httpBackend_; - $httpBackend.whenGET('Claims/ClaimBeginnings').respond({}); - $httpBackend.whenGET(`Tickets/1/isEditable`).respond(true); - $httpBackend.whenGET(`ClaimStates/2/isEditable`).respond(true); - const $element = angular.element(''); - controller = $componentController('vnClaimDetail', {$element, $scope}); - controller.claim = { - ticketFk: 1, - id: 2, - claimStateFk: 2} - ; - controller.salesToClaim = [{saleFk: 1}, {saleFk: 2}]; - controller.salesClaimed = [{id: 1, sale: {}}]; - controller.$.model = crudModel; - controller.$.addSales = { - hide: () => {}, - show: () => {} - }; - controller.$.editPopover = { - hide: () => {} - }; - jest.spyOn(controller.aclService, 'hasAny').mockReturnValue(true); - })); - - describe('openAddSalesDialog()', () => { - it('should call getClaimableFromTicket and $.addSales.show', () => { - jest.spyOn(controller, 'getClaimableFromTicket'); - jest.spyOn(controller.$.addSales, 'show'); - controller.openAddSalesDialog(); - - expect(controller.getClaimableFromTicket).toHaveBeenCalledWith(); - expect(controller.$.addSales.show).toHaveBeenCalledWith(); - }); - }); - - describe('getClaimableFromTicket()', () => { - it('should make a query and set salesToClaim', () => { - $httpBackend.expectGET(`Sales/getClaimableFromTicket?ticketFk=1`).respond(200, 1); - controller.getClaimableFromTicket(); - $httpBackend.flush(); - - expect(controller.salesToClaim).toEqual(1); - }); - }); - - describe('addClaimedSale(index)', () => { - it('should make a post and call refresh, hide and showSuccess', () => { - jest.spyOn(controller.$.addSales, 'hide'); - jest.spyOn(controller.$state, 'go'); - $httpBackend.expectPOST(`ClaimBeginnings/`).respond({}); - controller.addClaimedSale(1); - $httpBackend.flush(); - - expect(controller.$.addSales.hide).toHaveBeenCalledWith(); - expect(controller.$state.go).toHaveBeenCalledWith('claim.card.development'); - }); - }); - - describe('deleteClaimedSale()', () => { - it('should make a delete and call refresh and showSuccess', () => { - const claimedIndex = 1; - controller.claimedIndex = claimedIndex; - jest.spyOn(controller.$.model, 'remove'); - jest.spyOn(controller.$.model, 'save'); - jest.spyOn(controller.vnApp, 'showSuccess'); - - controller.deleteClaimedSale(); - - expect(controller.$.model.remove).toHaveBeenCalledWith(claimedIndex); - expect(controller.$.model.save).toHaveBeenCalledWith(); - expect(controller.vnApp.showSuccess).toHaveBeenCalled(); - }); - }); - - describe('setClaimedQuantity(id, claimedQuantity)', () => { - it('should make a patch and call refresh and showSuccess', () => { - const id = 1; - const claimedQuantity = 1; - - jest.spyOn(controller.vnApp, 'showSuccess'); - $httpBackend.expectPATCH(`ClaimBeginnings/${id}`).respond({}); - controller.setClaimedQuantity(id, claimedQuantity); - $httpBackend.flush(); - - expect(controller.vnApp.showSuccess).toHaveBeenCalled(); - }); - }); - - describe('calculateTotals()', () => { - it('should set paidTotal and claimedTotal to 0 if salesClaimed has no data', () => { - controller.salesClaimed = []; - controller.calculateTotals(); - - expect(controller.paidTotal).toEqual(0); - expect(controller.claimedTotal).toEqual(0); - }); - }); - - describe('updateDiscount()', () => { - it('should perform a query if the new discount differs from the claim discount', () => { - controller.saleClaimed = {sale: { - discount: 5, - id: 7, - ticketFk: 1, - price: 2, - quantity: 10}}; - controller.newDiscount = 10; - - jest.spyOn(controller.vnApp, 'showSuccess'); - jest.spyOn(controller, 'calculateTotals'); - jest.spyOn(controller, 'clearDiscount'); - jest.spyOn(controller.$.editPopover, 'hide'); - - $httpBackend.when('POST', 'Tickets/1/updateDiscount').respond({}); - controller.updateDiscount(); - $httpBackend.flush(); - - expect(controller.calculateTotals).toHaveBeenCalledWith(); - expect(controller.clearDiscount).toHaveBeenCalledWith(); - expect(controller.vnApp.showSuccess).toHaveBeenCalled(); - expect(controller.$.editPopover.hide).toHaveBeenCalledWith(); - }); - }); - - describe('isTicketEditable()', () => { - it('should check if the ticket assigned to the claim is editable', () => { - controller.isTicketEditable(); - $httpBackend.flush(); - - expect(controller.isEditable).toBeTruthy(); - }); - }); - }); -}); diff --git a/modules/claim/front/detail/locale/es.yml b/modules/claim/front/detail/locale/es.yml deleted file mode 100644 index 53f9e9b1d..000000000 --- a/modules/claim/front/detail/locale/es.yml +++ /dev/null @@ -1,11 +0,0 @@ -Claimed: Reclamados -Disc.: Dto. -Attended by: Atendida por -Landed: F. entrega -Price: Precio -Claimable sales from ticket: Lineas reclamables del ticket -Detail: Detalles -Add sale item: Añadir artículo -Insuficient permisos: Permisos insuficientes -Total claimed price: Precio total reclamado -Delete sale from claim?: ¿Borrar la linea de la reclamación? \ No newline at end of file diff --git a/modules/claim/front/detail/style.scss b/modules/claim/front/detail/style.scss deleted file mode 100644 index 470c83034..000000000 --- a/modules/claim/front/detail/style.scss +++ /dev/null @@ -1,30 +0,0 @@ -@import "variables"; - -.vn-popover .discount-popover { - width: 256px; - - .header { - background-color: $color-main; - color: $color-font-dark; - - h5 { - color: inherit; - margin: 0 auto; - } - } - .simulatorTitle { - margin-bottom: 0; - font-size: .75rem; - color: $color-main; - } - vn-label-value { - padding-bottom: 20px; - } - .simulator{ - text-align: center; - } -} - -.next{ - float: right; -} diff --git a/modules/claim/front/development/index.html b/modules/claim/front/development/index.html deleted file mode 100644 index 7fb3b870e..000000000 --- a/modules/claim/front/development/index.html +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/modules/claim/front/development/index.js b/modules/claim/front/development/index.js deleted file mode 100644 index 7b31bd17f..000000000 --- a/modules/claim/front/development/index.js +++ /dev/null @@ -1,21 +0,0 @@ -import ngModule from '../module'; -import Section from 'salix/components/section'; - -class Controller extends Section { - constructor($element, $) { - super($element, $); - } - - async $onInit() { - this.$state.go('claim.card.summary', {id: this.$params.id}); - window.location.href = await this.vnApp.getUrl(`claim/${this.$params.id}/development`); - } -} - -ngModule.vnComponent('vnClaimDevelopment', { - template: require('./index.html'), - controller: Controller, - bindings: { - claim: '<' - } -}); diff --git a/modules/claim/front/index.js b/modules/claim/front/index.js index 473f6a4d3..16397df28 100644 --- a/modules/claim/front/index.js +++ b/modules/claim/front/index.js @@ -1,16 +1,4 @@ export * from './module'; import './main'; -import './index/'; -import './action'; -import './basic-data'; -import './card'; -import './detail'; import './descriptor'; -import './development'; -import './search-panel'; -import './summary'; -import './photos'; -import './log'; -import './note/index'; -import './note/create'; diff --git a/modules/claim/front/index/index.html b/modules/claim/front/index/index.html deleted file mode 100644 index 6b2481429..000000000 --- a/modules/claim/front/index/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Id - - Client - - Created - - Worker - - State -
{{::claim.id}} - - {{::claim.clientName}} - - {{::claim.created | date:'dd/MM/yyyy'}} - - {{::claim.workerName}} - - - - {{::claim.stateDescription}} - - - - -
-
-
-
- - - - - - - - diff --git a/modules/claim/front/index/index.js b/modules/claim/front/index/index.js deleted file mode 100644 index e3fdabf79..000000000 --- a/modules/claim/front/index/index.js +++ /dev/null @@ -1,82 +0,0 @@ -import ngModule from '../module'; -import Section from 'salix/components/section'; - -class Controller extends Section { - constructor($element, $) { - super($element, $); - - this.smartTableOptions = { - activeButtons: { - search: true - }, - columns: [ - { - field: 'clientName', - autocomplete: { - url: 'Clients', - showField: 'name', - valueField: 'name' - } - }, - { - field: 'workerFk', - autocomplete: { - url: 'Workers/activeWithInheritedRole', - where: `{role: 'salesPerson'}`, - searchFunction: '{firstName: $search}', - showField: 'name', - valueField: 'id', - } - }, - { - field: 'claimStateFk', - autocomplete: { - url: 'ClaimStates', - showField: 'description', - valueField: 'id', - } - }, - { - field: 'created', - searchable: false - } - ] - }; - } - - exprBuilder(param, value) { - switch (param) { - case 'clientName': - return {'cl.clientName': {like: `%${value}%`}}; - case 'clientFk': - case 'claimStateFk': - case 'workerFk': - return {[`cl.${param}`]: value}; - } - } - - stateColor(code) { - switch (code) { - case 'pending': - return 'warning'; - case 'managed': - return 'notice'; - case 'resolved': - return 'success'; - } - } - - preview(claim) { - this.claimSelected = claim; - this.$.summary.show(); - } - - reload() { - this.$.model.refresh(); - } -} - -ngModule.vnComponent('vnClaimIndex', { - template: require('./index.html'), - controller: Controller -}); diff --git a/modules/claim/front/log/index.html b/modules/claim/front/log/index.html deleted file mode 100644 index 500a626d6..000000000 --- a/modules/claim/front/log/index.html +++ /dev/null @@ -1,4 +0,0 @@ - - \ No newline at end of file diff --git a/modules/claim/front/log/index.js b/modules/claim/front/log/index.js deleted file mode 100644 index 0143a612b..000000000 --- a/modules/claim/front/log/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import ngModule from '../module'; -import Section from 'salix/components/section'; - -ngModule.vnComponent('vnClaimLog', { - template: require('./index.html'), - controller: Section, -}); diff --git a/modules/claim/front/main/index.html b/modules/claim/front/main/index.html index f38cc573f..e69de29bb 100644 --- a/modules/claim/front/main/index.html +++ b/modules/claim/front/main/index.html @@ -1,19 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/modules/claim/front/main/index.js b/modules/claim/front/main/index.js index 0c5c7d728..cbbbe0c7e 100644 --- a/modules/claim/front/main/index.js +++ b/modules/claim/front/main/index.js @@ -1,7 +1,18 @@ import ngModule from '../module'; import ModuleMain from 'salix/components/module-main'; +export default class Claim extends ModuleMain { + constructor($element, $) { + super($element, $); + } + async $onInit() { + this.$state.go('home'); + window.location.href = await this.vnApp.getUrl(`Claim/`); + } +} + ngModule.vnComponent('vnClaim', { - controller: ModuleMain, + controller: Claim, template: require('./index.html') }); + diff --git a/modules/claim/front/note/create/index.html b/modules/claim/front/note/create/index.html deleted file mode 100644 index 8a882a4f5..000000000 --- a/modules/claim/front/note/create/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - -
- - - - - - - - - - - - -
diff --git a/modules/claim/front/note/create/index.js b/modules/claim/front/note/create/index.js deleted file mode 100644 index 40ae9309b..000000000 --- a/modules/claim/front/note/create/index.js +++ /dev/null @@ -1,22 +0,0 @@ -import ngModule from '../../module'; -import Section from 'salix/components/section'; - -export default class Controller extends Section { - constructor($element, $) { - super($element, $); - this.note = { - claimFk: parseInt(this.$params.id), - workerFk: window.localStorage.currentUserWorkerId, - text: null - }; - } - - cancel() { - this.$state.go('claim.card.note.index', {id: this.$params.id}); - } -} - -ngModule.vnComponent('vnClaimNoteCreate', { - template: require('./index.html'), - controller: Controller -}); diff --git a/modules/claim/front/note/index/index.html b/modules/claim/front/note/index/index.html deleted file mode 100644 index 8ffe19c2b..000000000 --- a/modules/claim/front/note/index/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - -
- - {{::note.worker.firstName}} {{::note.worker.lastName}} - {{::note.created | date:'dd/MM/yyyy HH:mm'}} - - - {{::note.text}} - -
-
-
- - - \ No newline at end of file diff --git a/modules/claim/front/note/index/index.js b/modules/claim/front/note/index/index.js deleted file mode 100644 index 5a2fd96d3..000000000 --- a/modules/claim/front/note/index/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import ngModule from '../../module'; -import Section from 'salix/components/section'; -import './style.scss'; - -export default class Controller extends Section { - constructor($element, $) { - super($element, $); - this.filter = { - order: 'created DESC', - }; - this.include = { - relation: 'worker', - scope: { - fields: ['id', 'firstName', 'lastName'] - } - }; - } -} - -Controller.$inject = ['$element', '$scope']; - -ngModule.vnComponent('vnClaimNote', { - template: require('./index.html'), - controller: Controller, -}); diff --git a/modules/claim/front/note/index/style.scss b/modules/claim/front/note/index/style.scss deleted file mode 100644 index 44ae2cee7..000000000 --- a/modules/claim/front/note/index/style.scss +++ /dev/null @@ -1,5 +0,0 @@ -vn-client-note { - .note:last-child { - margin-bottom: 0; - } -} \ No newline at end of file diff --git a/modules/claim/front/photos/index.html b/modules/claim/front/photos/index.html deleted file mode 100644 index 8b1378917..000000000 --- a/modules/claim/front/photos/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/modules/claim/front/photos/index.js b/modules/claim/front/photos/index.js deleted file mode 100644 index c9fada9a4..000000000 --- a/modules/claim/front/photos/index.js +++ /dev/null @@ -1,21 +0,0 @@ -import ngModule from '../module'; -import Section from 'salix/components/section'; - -class Controller extends Section { - constructor($element, $) { - super($element, $); - } - - async $onInit() { - const url = await this.vnApp.getUrl(`claim/${this.$params.id}/photos`); - window.location.href = url; - } -} - -ngModule.vnComponent('vnClaimPhotos', { - template: require('./index.html'), - controller: Controller, - bindings: { - claim: '<' - } -}); diff --git a/modules/claim/front/search-panel/index.html b/modules/claim/front/search-panel/index.html deleted file mode 100644 index 260f86801..000000000 --- a/modules/claim/front/search-panel/index.html +++ /dev/null @@ -1,84 +0,0 @@ -
-
- - - - - - - - - - - - - - - - - - - {{description}} - - - - - - - {{::id}} - {{::name}} - - - - - - - - - - -
-
diff --git a/modules/claim/front/search-panel/index.js b/modules/claim/front/search-panel/index.js deleted file mode 100644 index 2400b8ede..000000000 --- a/modules/claim/front/search-panel/index.js +++ /dev/null @@ -1,14 +0,0 @@ -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: Controller -}); diff --git a/modules/claim/front/search-panel/locale/es.yml b/modules/claim/front/search-panel/locale/es.yml deleted file mode 100644 index 1f892a742..000000000 --- a/modules/claim/front/search-panel/locale/es.yml +++ /dev/null @@ -1,7 +0,0 @@ -Ticket id: Id ticket -Client id: Id cliente -Nickname: Alias -From: Desde -To: Hasta -Agency: Agencia -Warehouse: Almacén \ No newline at end of file diff --git a/modules/claim/front/summary/index.html b/modules/claim/front/summary/index.html deleted file mode 100644 index b5225e6f4..000000000 --- a/modules/claim/front/summary/index.html +++ /dev/null @@ -1,273 +0,0 @@ - - - -
- - - - {{::$ctrl.summary.claim.id}} - {{::$ctrl.summary.claim.client.name}} - - -
- - -

- - Basic data - -

- - - - - - - - -
- -

- - Observations - -

-

- Observations -

-
- - {{::note.worker.firstName}} {{::note.worker.lastName}} - {{::note.created | date:'dd/MM/yyyy HH:mm'}} - - - {{::note.text}} - -
-
- -

- - Detail - -

-

- Detail -

- - - - - Item - Landed - Quantity - Claimed - Description - Price - Disc. - Total - - - - - - - {{::saleClaimed.sale.itemFk}} - - - {{::saleClaimed.sale.ticket.landed | date: 'dd/MM/yyyy'}} - {{::saleClaimed.sale.quantity}} - {{::saleClaimed.quantity}} - {{::saleClaimed.sale.concept}} - {{::saleClaimed.sale.price | currency: 'EUR':2}} - {{::saleClaimed.sale.discount}} % - - {{saleClaimed.sale.quantity * saleClaimed.sale.price * - ((100 - saleClaimed.sale.discount) / 100) | currency: 'EUR':2}} - - - - - -
- -

Photos

- -
-
-
- -
-
-
- -

- - Development - -

-

- Development -

- - - - - Reason - Result - Responsible - Worker - Redelivery - - - - - {{::development.claimReason.description}} - {{::development.claimResult.description}} - {{::development.claimResponsible.description}} - - - {{::development.worker.user.nickname}} - - - {{::development.claimRedelivery.description}} - - - - -
- -

- - Action - -

-

- Action -

- - - - - - - - - - - Item - Ticket - Destination - Landed - Quantity - Description - Price - Disc. - Total - - - - - - - {{::action.sale.itemFk}} - - - - - {{::action.sale.ticket.id}} - - - {{::action.claimBeggining.description}} - {{::action.sale.ticket.landed | date: 'dd/MM/yyyy'}} - {{::action.sale.quantity}} - {{::action.sale.concept}} - {{::action.sale.price}} - {{::action.sale.discount}} % - - {{action.sale.quantity * action.sale.price * - ((100 - action.sale.discount) / 100) | currency: 'EUR':2}} - - - - - -
-
-
- - - - - - diff --git a/modules/claim/front/summary/index.js b/modules/claim/front/summary/index.js deleted file mode 100644 index 7cd4805e9..000000000 --- a/modules/claim/front/summary/index.js +++ /dev/null @@ -1,103 +0,0 @@ -import ngModule from '../module'; -import Summary from 'salix/components/summary'; -import './style.scss'; - -class Controller extends Summary { - constructor($element, $, vnFile) { - super($element, $); - this.vnFile = vnFile; - this.filter = { - include: [ - { - relation: 'dms' - } - ] - }; - } - - $onChanges() { - if (this.claim && this.claim.id) - this.loadData(); - } - - loadData() { - return this.$http.get(`Claims/${this.claim.id}/getSummary`).then(res => { - if (res && res.data) - this.summary = res.data; - }); - } - - reload() { - this.loadData() - .then(() => { - if (this.card) - this.card.reload(); - - if (this.parentReload) - this.parentReload(); - }); - } - - get isSalesPerson() { - return this.aclService.hasAny(['salesPerson']); - } - - get isClaimManager() { - return this.aclService.hasAny(['claimManager']); - } - - get claim() { - return this._claim; - } - - set claim(value) { - this._claim = value; - - // Get DMS on summary load - if (value) { - this.$.$applyAsync(() => this.loadDms()); - this.loadData(); - } - } - - loadDms() { - this.$.model.where = { - claimFk: this.claim.id - }; - this.$.model.refresh(); - } - - getImagePath(dmsId) { - return this.vnFile.getPath(`/api/dms/${dmsId}/downloadFile`); - } - - changeState(value) { - const params = { - id: this.claim.id, - claimStateFk: value - }; - - this.$http.patch(`Claims/updateClaim/${this.claim.id}`, params) - .then(() => { - this.reload(); - }) - .then(() => { - this.vnApp.showSuccess(this.$t('Data saved!')); - }); - } -} - -Controller.$inject = ['$element', '$scope', 'vnFile']; - -ngModule.vnComponent('vnClaimSummary', { - template: require('./index.html'), - controller: Controller, - bindings: { - claim: '<', - model: ' { - describe('Component summary', () => { - let controller; - let $httpBackend; - let $scope; - - beforeEach(ngModule('claim')); - - beforeEach(inject(($componentController, _$httpBackend_, $rootScope) => { - $scope = $rootScope.$new(); - $httpBackend = _$httpBackend_; - const $element = angular.element(''); - controller = $componentController('vnClaimSummary', {$element, $scope}); - controller.claim = {id: 1}; - controller.$.model = crudModel; - })); - - describe('loadData()', () => { - it('should perform a query to set summary', () => { - $httpBackend.when('GET', `Claims/1/getSummary`).respond(200, 24); - controller.loadData(); - $httpBackend.flush(); - - expect(controller.summary).toEqual(24); - }); - }); - - describe('changeState()', () => { - it('should make an HTTP post query, then call the showSuccess()', () => { - jest.spyOn(controller.vnApp, 'showSuccess').mockReturnThis(); - - const expectedParams = {id: 1, claimStateFk: 1}; - $httpBackend.when('GET', `Claims/1/getSummary`).respond(200, 24); - $httpBackend.expect('PATCH', `Claims/updateClaim/1`, expectedParams).respond(200); - controller.changeState(1); - $httpBackend.flush(); - - expect(controller.vnApp.showSuccess).toHaveBeenCalled(); - }); - }); - - describe('$onChanges()', () => { - it('should call loadData when $onChanges is called', () => { - jest.spyOn(controller, 'loadData'); - - controller.$onChanges(); - - expect(controller.loadData).toHaveBeenCalledWith(); - }); - }); - }); -}); diff --git a/modules/claim/front/summary/style.scss b/modules/claim/front/summary/style.scss deleted file mode 100644 index 5b4e32f7a..000000000 --- a/modules/claim/front/summary/style.scss +++ /dev/null @@ -1,28 +0,0 @@ -@import "./variables"; - -vn-claim-summary { - section.photo { - height: 248px; - } - .photo .image { - border-radius: 3px; - } - vn-textarea *{ - height: 80px; - } - - .video { - width: 100%; - height: 100%; - object-fit: cover; - cursor: pointer; - box-shadow: 0 2px 2px 0 rgba(0,0,0,.14), - 0 3px 1px -2px rgba(0,0,0,.2), - 0 1px 5px 0 rgba(0,0,0,.12); - border: 2px solid transparent; - - } - .video:hover { - border: 2px solid $color-primary - } -} \ No newline at end of file diff --git a/modules/item/front/diary/index.html b/modules/item/front/diary/index.html index 481cec51a..8eb486385 100644 --- a/modules/item/front/diary/index.html +++ b/modules/item/front/diary/index.html @@ -60,7 +60,7 @@ on-last="$ctrl.scrollToLine(sale.lastPreparedLineFk)" ng-attr-id="vnItemDiary-{{::sale.lineFk}}"> - + diff --git a/modules/item/front/diary/index.js b/modules/item/front/diary/index.js index 1d2e34a66..199682a77 100644 --- a/modules/item/front/diary/index.js +++ b/modules/item/front/diary/index.js @@ -91,6 +91,10 @@ class Controller extends Section { if (this.$state.getCurrentPath()[2].state.name === 'item') this.card.reload(); } + + async goToLilium(section, id) { + window.location.href = await this.vnApp.getUrl(`claim/${id}/${section}`); + } } Controller.$inject = ['$element', '$scope', '$anchorScroll', '$location']; diff --git a/modules/ticket/front/sale/index.html b/modules/ticket/front/sale/index.html index 262395d16..dafae8974 100644 --- a/modules/ticket/front/sale/index.html +++ b/modules/ticket/front/sale/index.html @@ -81,7 +81,7 @@ - + diff --git a/modules/ticket/front/sale/index.js b/modules/ticket/front/sale/index.js index 7ff8d89e3..4f8494ed0 100644 --- a/modules/ticket/front/sale/index.js +++ b/modules/ticket/front/sale/index.js @@ -214,7 +214,7 @@ class Controller extends Section { const params = {ticketId: this.ticket.id, sales: sales}; this.resetChanges(); this.$http.post(`Claims/createFromSales`, params) - .then(res => this.$state.go('claim.card.basicData', {id: res.data.id})); + .then(async res => window.location.href = await this.vnApp.getUrl(`claim/${res.data.id}/basic-data`)); } showTransferPopover(event) { @@ -558,6 +558,10 @@ class Controller extends Section { changedModelId: saleId }); } + + async goToLilium(section, id) { + window.location.href = await this.vnApp.getUrl(`claim/${id}/${section}`); + } } ngModule.vnComponent('vnTicketSale', { diff --git a/modules/ticket/front/summary/index.html b/modules/ticket/front/summary/index.html index 025078d36..7ee260f74 100644 --- a/modules/ticket/front/summary/index.html +++ b/modules/ticket/front/summary/index.html @@ -152,13 +152,13 @@ - + - + Date: Thu, 8 Aug 2024 08:20:26 +0200 Subject: [PATCH 2/6] test: fix ticket redirect to lilium --- modules/ticket/front/sale/index.spec.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/modules/ticket/front/sale/index.spec.js b/modules/ticket/front/sale/index.spec.js index 8200d6b89..931776619 100644 --- a/modules/ticket/front/sale/index.spec.js +++ b/modules/ticket/front/sale/index.spec.js @@ -295,20 +295,26 @@ describe('Ticket', () => { describe('onCreateClaimAccepted()', () => { it('should perform a query and call window open', () => { jest.spyOn(controller, 'resetChanges').mockReturnThis(); - jest.spyOn(controller.$state, 'go').mockReturnThis(); + jest.spyOn(controller.vnApp, 'getUrl').mockReturnThis(); + Object.defineProperty(window, 'location', { + value: { + href: () => {} + }, + }); + jest.spyOn(controller.window.location, 'href'); const newEmptySale = {quantity: 10}; controller.sales.push(newEmptySale); const firstSale = controller.sales[0]; + const claimId = 1; firstSale.checked = true; const expectedParams = {ticketId: 1, sales: [firstSale]}; - $httpBackend.expect('POST', `Claims/createFromSales`, expectedParams).respond(200, {id: 1}); + $httpBackend.expect('POST', `Claims/createFromSales`, expectedParams).respond(200, {id: claimId}); controller.onCreateClaimAccepted(); $httpBackend.flush(); expect(controller.resetChanges).toHaveBeenCalledWith(); - expect(controller.$state.go).toHaveBeenCalledWith('claim.card.basicData', {id: 1}); }); }); From 715439ae386c22afd513eb6e26f05e1b576ccb07 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 8 Aug 2024 08:23:17 +0200 Subject: [PATCH 3/6] test: fix claim descriptor redirect to lilium --- modules/claim/front/descriptor/index.spec.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/claim/front/descriptor/index.spec.js b/modules/claim/front/descriptor/index.spec.js index e6785d3d8..03710b479 100644 --- a/modules/claim/front/descriptor/index.spec.js +++ b/modules/claim/front/descriptor/index.spec.js @@ -53,14 +53,12 @@ describe('Item Component vnClaimDescriptor', () => { describe('deleteClaim()', () => { it('should perform a query and call showSuccess if the response is accept', () => { jest.spyOn(controller.vnApp, 'showSuccess'); - jest.spyOn(controller.$state, 'go'); $httpBackend.expectDELETE(`Claims/${claim.id}`).respond(); controller.deleteClaim(); $httpBackend.flush(); expect(controller.vnApp.showSuccess).toHaveBeenCalled(); - expect(controller.$state.go).toHaveBeenCalledWith('claim.index'); }); }); }); From 4fb82dc9448b704af27c454841be1c13f136cca5 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 8 Aug 2024 09:05:08 +0200 Subject: [PATCH 4/6] test: fix ticket sale e2e --- .../05-ticket/01-sale/02_edit_sale.spec.js | 28 +++++-------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/e2e/paths/05-ticket/01-sale/02_edit_sale.spec.js b/e2e/paths/05-ticket/01-sale/02_edit_sale.spec.js index e0f32fc3a..d9689e31a 100644 --- a/e2e/paths/05-ticket/01-sale/02_edit_sale.spec.js +++ b/e2e/paths/05-ticket/01-sale/02_edit_sale.spec.js @@ -19,7 +19,9 @@ describe('Ticket Edit sale path', () => { it(`should click on the first sale claim icon to navigate over there`, async() => { await page.waitToClick(selectors.ticketSales.firstSaleClaimIcon); - await page.waitForState('claim.card.basicData'); + await page.waitForNavigation(); + await page.goBack(); + await page.goBack(); }); it('should navigate to the tickets index', async() => { @@ -243,29 +245,13 @@ describe('Ticket Edit sale path', () => { await page.waitToClick(selectors.ticketSales.moreMenu); await page.waitToClick(selectors.ticketSales.moreMenuCreateClaim); await page.waitToClick(selectors.globalItems.acceptButton); - await page.waitForState('claim.card.basicData'); - }); - - it('should click on the Claims button of the top bar menu', async() => { - await page.waitToClick(selectors.globalItems.applicationsMenuButton); - await page.waitForSelector(selectors.globalItems.applicationsMenuVisible); - await page.waitToClick(selectors.globalItems.claimsButton); - await page.waitForState('claim.index'); - }); - - it('should search for the claim with id 4', async() => { - await page.accessToSearchResult('4'); - await page.waitForState('claim.card.summary'); - }); - - it('should click the Tickets button of the top bar menu', async() => { - await page.waitToClick(selectors.globalItems.applicationsMenuButton); - await page.waitForSelector(selectors.globalItems.applicationsMenuVisible); - await page.waitToClick(selectors.globalItems.ticketsButton); - await page.waitForState('ticket.index'); + await page.waitForNavigation(); }); it('should search for a ticket then access to the sales section', async() => { + await page.goBack(); + await page.goBack(); + await page.loginAndModule('salesPerson', 'ticket'); await page.accessToSearchResult('16'); await page.accessToSection('ticket.card.sale'); }); From 62cee3a07ab185038b5be7131080a8d0d3b6693d Mon Sep 17 00:00:00 2001 From: pablone Date: Thu, 8 Aug 2024 12:49:36 +0200 Subject: [PATCH 5/6] fix: refs #6130 commit lint --- package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 5e7040f36..887f20522 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,10 @@ "test:front": "jest --watch", "back": "nodemon --inspect -w modules ./node_modules/gulp/bin/gulp.js back", "lint": "eslint ./ --cache --ignore-pattern .gitignore", - "watch:db": "node ./db/dbWatcher.js" + "watch:db": "node ./db/dbWatcher.js", + "commitlint": "commitlint --edit", + "prepare": "husky install", + "addReferenceTag": "node .husky/addReferenceTag.js" }, "jest": { "projects": [ From 1c75c429cc721ade14867058c88a730785787403 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 8 Aug 2024 13:29:02 +0200 Subject: [PATCH 6/6] test: husky --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 887f20522..61a9cf46c 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "lint": "eslint ./ --cache --ignore-pattern .gitignore", "watch:db": "node ./db/dbWatcher.js", "commitlint": "commitlint --edit", - "prepare": "husky install", + "prepare": "npx husky install", "addReferenceTag": "node .husky/addReferenceTag.js" }, "jest": {