diff --git a/e2e/paths/04-item/01_summary.spec.js b/e2e/paths/04-item/01_summary.spec.js
deleted file mode 100644
index 51195be48..000000000
--- a/e2e/paths/04-item/01_summary.spec.js
+++ /dev/null
@@ -1,133 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Item summary path', () => {
- let browser;
- let page;
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('employee', 'item');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it('should search for an item', async() => {
- await page.doSearch('Ranged weapon');
- const resultsCount = await page.countElement(selectors.itemsIndex.searchResult);
-
- await page.waitForTextInElement(selectors.itemsIndex.firstSearchResult, 'Ranged weapon');
- await page.waitToClick(selectors.itemsIndex.firstResultPreviewButton);
- const isVisible = await page.isVisible(selectors.itemSummary.basicData);
-
- expect(resultsCount).toBe(4);
- expect(isVisible).toBeTruthy();
- });
-
- it(`should check the item summary preview shows fields from basic data`, async() => {
- await page.waitForTextInElement(selectors.itemSummary.basicData, 'Ranged weapon longbow 200cm');
- const result = await page.waitToGetProperty(selectors.itemSummary.basicData, 'innerText');
-
- expect(result).toContain('Ranged weapon longbow 200cm');
- });
-
- it(`should check the item summary preview shows fields from tags`, async() => {
- await page.waitForTextInElement(selectors.itemSummary.tags, 'Brown');
- const result = await page.waitToGetProperty(selectors.itemSummary.tags, 'innerText');
-
- expect(result).toContain('Brown');
- });
-
- it(`should check the item summary preview shows fields from botanical`, async() => {
- await page.waitForTextInElement(selectors.itemSummary.botanical, 'Abelia');
- const result = await page.waitToGetProperty(selectors.itemSummary.botanical, 'innerText');
-
- expect(result).toContain('Abelia');
- });
-
- it(`should check the item summary preview shows fields from barcode`, async() => {
- await page.waitForTextInElement(selectors.itemSummary.barcode, '1');
- const result = await page.waitToGetProperty(selectors.itemSummary.barcode, 'innerText');
-
- expect(result).toContain('1');
- });
-
- it(`should close the summary popup`, async() => {
- await page.closePopup();
- await page.waitForSelector(selectors.itemSummary.basicData, {hidden: true});
- });
-
- it('should search for other item', async() => {
- await page.doSearch('Melee Reinforced');
- const resultsCount = await page.countElement(selectors.itemsIndex.searchResult);
-
- await page.waitToClick(selectors.itemsIndex.firstResultPreviewButton);
- await page.waitForSelector(selectors.itemSummary.basicData, {visible: true});
-
- expect(resultsCount).toBe(3);
- });
-
- it(`should now check the item summary preview shows fields from basic data`, async() => {
- await page.waitForTextInElement(selectors.itemSummary.basicData, 'Melee Reinforced weapon combat fist 15cm');
- const result = await page.waitToGetProperty(selectors.itemSummary.basicData, 'innerText');
-
- expect(result).toContain('Melee Reinforced weapon combat fist 15cm');
- });
-
- it(`should now check the item summary preview shows fields from tags`, async() => {
- await page.waitForTextInElement(selectors.itemSummary.tags, 'Silver');
- const result = await page.waitToGetProperty(selectors.itemSummary.tags, 'innerText');
-
- expect(result).toContain('Silver');
- });
-
- it(`should now check the item summary preview shows fields from botanical`, async() => {
- await page.waitForTextInElement(selectors.itemSummary.botanical, '-');
- const result = await page.waitToGetProperty(selectors.itemSummary.botanical, 'innerText');
-
- expect(result).toContain('-');
- });
-
- it(`should now close the summary popup`, async() => {
- await page.closePopup();
- await page.waitForSelector(selectors.itemSummary.basicData, {hidden: true});
- });
-
- it(`should navigate to one of the items detailed section`, async() => {
- await page.accessToSearchResult('Melee weapon combat fist 15cm');
- await page.waitForState('item.card.summary');
- });
-
- it(`should check the descritor edit button is not visible for employee`, async() => {
- const visibleButton = await page.isVisible(selectors.itemDescriptor.editButton);
-
- expect(visibleButton).toBeFalsy();
- });
-
- it(`should check the item summary shows fields from basic data section`, async() => {
- await page.waitForTextInElement(selectors.itemSummary.basicData, 'Melee weapon combat fist 15cm');
- const result = await page.waitToGetProperty(selectors.itemSummary.basicData, 'innerText');
-
- expect(result).toContain('Melee weapon combat fist 15cm');
- });
-
- it(`should check the item summary shows fields from tags section`, async() => {
- const result = await page.waitToGetProperty(selectors.itemSummary.tags, 'innerText');
-
- expect(result).toContain('Silver');
- });
-
- it(`should check the item summary shows fields from botanical section`, async() => {
- const result = await page.waitToGetProperty(selectors.itemSummary.botanical, 'innerText');
-
- expect(result).toContain('procera');
- });
-
- it(`should check the item summary shows fields from barcodes section`, async() => {
- const result = await page.waitToGetProperty(selectors.itemSummary.barcode, 'innerText');
-
- expect(result).toContain('4');
- });
-});
diff --git a/e2e/paths/04-item/02_basic_data.spec.js b/e2e/paths/04-item/02_basic_data.spec.js
deleted file mode 100644
index 3bad18303..000000000
--- a/e2e/paths/04-item/02_basic_data.spec.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import getBrowser from '../../helpers/puppeteer';
-
-const $ = {
- form: 'vn-item-basic-data form',
- intrastatForm: '.vn-dialog.shown form',
- newIntrastatButton: 'vn-item-basic-data vn-icon-button[vn-tooltip="New intrastat"] > button'
-};
-
-describe('Item Edit basic data path', () => {
- let browser;
- let page;
-
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'item');
- await page.accessToSearchResult('Melee weapon combat fist 15cm');
- });
-
- beforeEach(async() => {
- await page.accessToSection('item.card.basicData');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it(`should edit the item basic data and confirm the item data was edited`, async() => {
- const values = {
- type: 'Anthurium',
- intrastat: 'Coral y materiales similares',
- relevancy: 1,
- generic: 'Pallet',
- isActive: false,
- priceInKg: true,
- isFragile: true,
- packingOut: 5
- };
-
- const message = await page.sendForm($.form, values);
- await page.reloadSection('item.card.basicData');
- const formValues = await page.fetchForm($.form, Object.keys(values));
-
- expect(message.isSuccess).toBeTrue();
- expect(formValues).toEqual(values);
- });
-
- it(`should create a new intrastat and save it`, async() => {
- await page.click($.newIntrastatButton);
- await page.waitForSelector($.intrastatForm);
- await page.fillForm($.intrastatForm, {
- id: '588420239',
- description: 'Tropical Flowers'
- });
- await page.respondToDialog('accept');
-
- const message = await page.sendForm($.form);
- await page.reloadSection('item.card.basicData');
- const formValues = await page.fetchForm($.form, ['intrastat']);
-
- expect(message.isSuccess).toBeTrue();
- expect(formValues).toEqual({intrastat: 'Tropical Flowers'});
- });
-});
diff --git a/e2e/paths/04-item/03_tax.spec.js b/e2e/paths/04-item/03_tax.spec.js
deleted file mode 100644
index 6013094e9..000000000
--- a/e2e/paths/04-item/03_tax.spec.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Item edit tax path', () => {
- let browser;
- let page;
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'item');
- await page.accessToSearchResult('Ranged weapon longbow 200cm');
- await page.accessToSection('item.card.tax');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it(`should add the item tax to all countries`, async() => {
- await page.autocompleteSearch(selectors.itemTax.firstClass, 'General VAT');
- await page.autocompleteSearch(selectors.itemTax.secondClass, 'General VAT');
- await page.waitToClick(selectors.itemTax.submitTaxButton);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it(`should confirm the first item tax class was edited`, async() => {
- await page.reloadSection('item.card.tax');
- const firstVatType = await page.waitToGetProperty(selectors.itemTax.firstClass, 'value');
-
- expect(firstVatType).toEqual('General VAT');
- });
-
- it(`should confirm the second item tax class was edited`, async() => {
- const secondVatType = await page
- .waitToGetProperty(selectors.itemTax.secondClass, 'value');
-
- expect(secondVatType).toEqual('General VAT');
- });
-
- it(`should edit the first class without saving the form`, async() => {
- await page.autocompleteSearch(selectors.itemTax.firstClass, 'Reduced VAT');
- const firstVatType = await page.waitToGetProperty(selectors.itemTax.firstClass, 'value');
-
- expect(firstVatType).toEqual('Reduced VAT');
- });
-});
diff --git a/e2e/paths/04-item/04_tags.spec.js b/e2e/paths/04-item/04_tags.spec.js
deleted file mode 100644
index f13cf9aa4..000000000
--- a/e2e/paths/04-item/04_tags.spec.js
+++ /dev/null
@@ -1,79 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Item create tags path', () => {
- let browser;
- let page;
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'item');
- await page.accessToSearchResult('Ranged weapon longbow 200cm');
- await page.accessToSection('item.card.tags');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it('should create a new tag and delete a former one', async() => {
- await page.waitToClick(selectors.itemTags.fourthRemoveTagButton);
- await page.waitToClick(selectors.itemTags.addItemTagButton);
- await page.autocompleteSearch(selectors.itemTags.seventhTag, 'Ancho de la base');
- await page.write(selectors.itemTags.seventhValue, '50');
- await page.clearInput(selectors.itemTags.seventhRelevancy);
- await page.write(selectors.itemTags.seventhRelevancy, '4');
- await page.waitToClick(selectors.itemTags.submitItemTagsButton);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it('should confirm the fourth row data is the expected one', async() => {
- await page.reloadSection('item.card.tags');
- await page.waitForSelector('vn-item-tags');
- let result = await page.waitToGetProperty(selectors.itemTags.fourthTag, 'value');
-
- expect(result).toEqual('Ancho de la base');
-
- result = await page
- .waitToGetProperty(selectors.itemTags.fourthValue, 'value');
-
- expect(result).toEqual('50');
-
- result = await page
- .waitToGetProperty(selectors.itemTags.fourthRelevancy, 'value');
-
- expect(result).toEqual('4');
- });
-
- it('should confirm the fifth row data is the expected one', async() => {
- let tag = await page
- .waitToGetProperty(selectors.itemTags.fifthTag, 'value');
-
- let value = await page
- .waitToGetProperty(selectors.itemTags.fifthValue, 'value');
-
- let relevancy = await page
- .waitToGetProperty(selectors.itemTags.fifthRelevancy, 'value');
-
- expect(tag).toEqual('Color');
- expect(value).toEqual('Brown');
- expect(relevancy).toEqual('5');
- });
-
- it('should confirm the sixth row data is the expected one', async() => {
- let tag = await page
- .waitToGetProperty(selectors.itemTags.sixthTag, 'value');
-
- let value = await page
- .waitToGetProperty(selectors.itemTags.sixthValue, 'value');
-
- let relevancy = await page
- .waitToGetProperty(selectors.itemTags.sixthRelevancy, 'value');
-
- expect(tag).toEqual('Categoria');
- expect(value).toEqual('+1 precission');
- expect(relevancy).toEqual('6');
- });
-});
diff --git a/e2e/paths/04-item/05_botanical.spec.js b/e2e/paths/04-item/05_botanical.spec.js
deleted file mode 100644
index 1671cc5d2..000000000
--- a/e2e/paths/04-item/05_botanical.spec.js
+++ /dev/null
@@ -1,66 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Item Create botanical path', () => {
- let browser;
- let page;
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'item');
- await page.accessToSearchResult('Ranged weapon pistol 9mm');
- await page.accessToSection('item.card.botanical');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it(`should create a new botanical for the item`, async() => {
- await page.autocompleteSearch(selectors.itemBotanical.genus, 'Abelia');
- await page.autocompleteSearch(selectors.itemBotanical.species, 'dealbata');
- await page.waitToClick(selectors.itemBotanical.submitBotanicalButton);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it(`should confirm the Genus for the item was created`, async() => {
- await page.waitForTextInField(selectors.itemBotanical.genus, 'Abelia');
- const result = await page
- .waitToGetProperty(selectors.itemBotanical.genus, 'value');
-
- expect(result).toEqual('Abelia');
- });
-
- it(`should confirm the Species for the item was created`, async() => {
- const result = await page
- .waitToGetProperty(selectors.itemBotanical.species, 'value');
-
- expect(result).toEqual('dealbata');
- });
-
- it(`should edit botanical for the item`, async() => {
- await page.autocompleteSearch(selectors.itemBotanical.genus, 'Abies');
- await page.autocompleteSearch(selectors.itemBotanical.species, 'decurrens');
- await page.waitToClick(selectors.itemBotanical.submitBotanicalButton);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it(`should confirm the Genus for the item was edited`, async() => {
- await page.waitForTextInField(selectors.itemBotanical.genus, 'Abies');
- const result = await page
- .waitToGetProperty(selectors.itemBotanical.genus, 'value');
-
- expect(result).toEqual('Abies');
- });
-
- it(`should confirm the Species for the item was edited`, async() => {
- const result = await page
- .waitToGetProperty(selectors.itemBotanical.species, 'value');
-
- expect(result).toEqual('decurrens');
- });
-});
diff --git a/e2e/paths/04-item/06_barcode.spec.js b/e2e/paths/04-item/06_barcode.spec.js
deleted file mode 100644
index 36c9c39ae..000000000
--- a/e2e/paths/04-item/06_barcode.spec.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Item Create barcodes path', () => {
- let browser;
- let page;
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'item');
- await page.accessToSearchResult('Ranged weapon longbow 200cm');
- await page.accessToSection('item.card.itemBarcode');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it(`should click create a new code and delete a former one`, async() => {
- await page.waitToClick(selectors.itemBarcodes.firstCodeRemoveButton);
- await page.waitToClick(selectors.itemBarcodes.addBarcodeButton);
- await page.write(selectors.itemBarcodes.thirdCode, '5');
- await page.waitToClick(selectors.itemBarcodes.submitBarcodesButton);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it(`should confirm the barcode 5 is created and it is now the third barcode as the first was deleted`, async() => {
- await page.reloadSection('item.card.itemBarcode');
- await page.waitForTextInField(selectors.itemBarcodes.thirdCode, '5');
- const result = await page
- .waitToGetProperty(selectors.itemBarcodes.thirdCode, 'value');
-
- expect(result).toEqual('5');
- });
-});
diff --git a/e2e/paths/04-item/07_create.spec.js b/e2e/paths/04-item/07_create.spec.js
deleted file mode 100644
index c20be9ebc..000000000
--- a/e2e/paths/04-item/07_create.spec.js
+++ /dev/null
@@ -1,65 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-const $ = {
- form: 'vn-item-create form'
-};
-
-describe('Item Create', () => {
- let browser;
- let page;
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'item');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it('should access to the create item view by clicking the create floating button', async() => {
- await page.waitToClick(selectors.itemsIndex.createItemButton);
- await page.waitForState('item.create');
- });
-
- it('should return to the item index by clickig the cancel button', async() => {
- await page.waitToClick(selectors.itemCreateView.cancelButton);
- await page.waitForState('item.index');
- });
-
- it('should now access to the create item view by clicking the create floating button', async() => {
- await page.waitToClick(selectors.itemsIndex.createItemButton);
- await page.waitForState('item.create');
- });
-
- it('should throw an error when insert an invalid priority', async() => {
- const values = {
- name: 'Infinity Gauntlet',
- type: 'Crisantemo',
- intrastat: 'Coral y materiales similares',
- origin: 'Holand',
- priority: null
- };
- const message = await page.sendForm($.form, values);
-
- expect(message.text).toContain('Valid priorities');
- });
-
- it('should create the Infinity Gauntlet item', async() => {
- const values = {
- name: 'Infinity Gauntlet',
- type: 'Crisantemo',
- intrastat: 'Coral y materiales similares',
- origin: 'Holand',
- priority: '2'
- };
-
- await page.fillForm($.form, values);
- const formValues = await page.fetchForm($.form, Object.keys(values));
- const message = await page.sendForm($.form);
-
- expect(message.isSuccess).toBeTrue();
- expect(formValues).toEqual(values);
- });
-});
diff --git a/e2e/paths/04-item/08_regularize.spec.js b/e2e/paths/04-item/08_regularize.spec.js
deleted file mode 100644
index 9b3074776..000000000
--- a/e2e/paths/04-item/08_regularize.spec.js
+++ /dev/null
@@ -1,141 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Item regularize path', () => {
- let browser;
- let page;
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('employee', 'item');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it('should edit the user local warehouse', async() => {
- await page.waitForSpinnerLoad();
- await page.waitToClick(selectors.globalItems.userMenuButton);
- await page.autocompleteSearch(selectors.globalItems.userLocalWarehouse, 'Warehouse Four');
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it('should check the local settings were saved', async() => {
- const userLocalWarehouse = await page
- .waitToGetProperty(selectors.globalItems.userLocalWarehouse, 'value');
-
- await page.closePopup();
-
- expect(userLocalWarehouse).toContain('Warehouse Four');
- });
-
- it('should search for a specific item', async() => {
- await page.accessToSearchResult('Ranged weapon pistol 9mm');
- await page.waitForState('item.card.summary');
- });
-
- it('should open the regularize dialog and check the warehouse matches the local user settings', async() => {
- await page.waitToClick(selectors.itemDescriptor.moreMenu);
- await page.waitToClick(selectors.itemDescriptor.moreMenuRegularizeButton);
- const result = await page.waitToGetProperty(selectors.itemDescriptor.regularizeWarehouse, 'value');
-
- expect(result).toEqual('Warehouse Four');
- });
-
- it('should regularize the item', async() => {
- await page.write(selectors.itemDescriptor.regularizeQuantity, '100');
- await page.autocompleteSearch(selectors.itemDescriptor.regularizeWarehouse, 'Warehouse One');
- await page.waitToClick(selectors.itemDescriptor.regularizeSaveButton);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it('should click on the Tickets button of the top bar menu', async() => {
- await page.waitToClick(selectors.globalItems.applicationsMenuButton);
- await page.waitForSelector(selectors.globalItems.applicationsMenuVisible);
- await Promise.all([
- page.waitForNavigation({waitUntil: ['load', 'networkidle0', 'domcontentloaded']}),
- page.waitToClick(selectors.globalItems.ticketsButton)
- ]);
- await page.waitForState('ticket.index');
- });
-
- it('should clear the user local settings now', async() => {
- await page.waitToClick(selectors.globalItems.userMenuButton);
- await page.waitForContentLoaded();
- await page.clearInput(selectors.globalItems.userConfigFirstAutocomplete);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it('should search for the ticket with alias missing', async() => {
- await page.keyboard.press('Escape');
- await page.accessToSearchResult('missing');
- await page.waitForState('ticket.card.summary');
- });
-
- it(`should check the ticket sale quantity is showing a negative value`, async() => {
- await page.waitForTextInElement(selectors.ticketSummary.firstSaleQuantity, '-100');
- const result = await page
- .waitToGetProperty(selectors.ticketSummary.firstSaleQuantity, 'innerText');
-
- expect(result).toContain('-100');
- });
-
- it(`should check the ticket sale discount is 100%`, async() => {
- const result = await page
- .waitToGetProperty(selectors.ticketSummary.firstSaleDiscount, 'innerText');
-
- expect(result).toContain('100 %');
- });
-
- it('should now click on the Items button of the top bar menu', async() => {
- await page.waitToClick(selectors.globalItems.applicationsMenuButton);
- await page.waitForSelector(selectors.globalItems.applicationsMenuVisible);
- await page.waitToClick(selectors.globalItems.itemsButton);
- await page.waitForState('item.index');
- });
-
- it('should search for the item once again', async() => {
- await page.accessToSearchResult('Ranged weapon pistol 9mm');
- await page.waitForState('item.card.summary');
- });
-
- it('should regularize the item once more', async() => {
- await page.waitToClick(selectors.itemDescriptor.moreMenu);
- await page.waitToClick(selectors.itemDescriptor.moreMenuRegularizeButton);
- await page.write(selectors.itemDescriptor.regularizeQuantity, '100');
- await page.autocompleteSearch(selectors.itemDescriptor.regularizeWarehouse, 'Warehouse One');
- await page.waitToClick(selectors.itemDescriptor.regularizeSaveButton);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it('should again click on the Tickets button of the top bar menu', async() => {
- await page.waitToClick(selectors.globalItems.applicationsMenuButton);
- await page.waitForSelector(selectors.globalItems.applicationsMenuVisible);
- await Promise.all([
- page.waitForNavigation({waitUntil: ['load', 'networkidle0', 'domcontentloaded']}),
- page.waitToClick(selectors.globalItems.ticketsButton)
- ]);
- await page.waitForState('ticket.index');
- });
-
- it('should search for the ticket missing once again', async() => {
- await page.accessToSearchResult('Missing');
- await page.waitForState('ticket.card.summary');
- });
-
- it(`should check the ticket contains now two sales`, async() => {
- await page.waitForTextInElement(selectors.ticketSummary.firstSaleQuantity, '-100');
- const result = await page.countElement(selectors.ticketSummary.sale);
-
- expect(result).toEqual(2);
- });
-});
diff --git a/e2e/paths/04-item/09_index.spec.js b/e2e/paths/04-item/09_index.spec.js
deleted file mode 100644
index 6e0a4bd5c..000000000
--- a/e2e/paths/04-item/09_index.spec.js
+++ /dev/null
@@ -1,84 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Item index path', () => {
- let browser;
- let page;
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('salesPerson', 'item');
- await page.waitToClick(selectors.globalItems.searchButton);
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it('should click on the fields to show button to open the list of columns to show', async() => {
- await page.waitToClick(selectors.itemsIndex.shownColumns);
- const visible = await page.isVisible(selectors.itemsIndex.shownColumnsList);
-
- expect(visible).toBeTruthy();
- });
-
- it('should unmark all checkboxes except the first and the last ones', async() => {
- await page.waitToClick(selectors.itemsIndex.idCheckbox);
- await page.waitToClick(selectors.itemsIndex.stemsCheckbox);
- await page.waitToClick(selectors.itemsIndex.sizeCheckbox);
- await page.waitToClick(selectors.itemsIndex.typeCheckbox);
- await page.waitToClick(selectors.itemsIndex.categoryCheckbox);
- await page.waitToClick(selectors.itemsIndex.intrastadCheckbox);
- await page.waitToClick(selectors.itemsIndex.originCheckbox);
- await page.waitToClick(selectors.itemsIndex.buyerCheckbox);
- await page.waitToClick(selectors.itemsIndex.weightByPieceCheckbox);
- await page.waitToClick(selectors.itemsIndex.saveFieldsButton);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it('should navigate forth and back to see the images column is still visible', async() => {
- await page.closePopup();
- await page.waitToClick(selectors.itemsIndex.firstSearchResult);
- await page.waitToClick(selectors.itemDescriptor.goBackToModuleIndexButton);
- await page.waitToClick(selectors.globalItems.searchButton);
- await page.waitForSelector(selectors.itemsIndex.searchResult);
- await page.waitImgLoad(selectors.itemsIndex.firstItemImage);
- const imageVisible = await page.isVisible(selectors.itemsIndex.firstItemImageTd);
-
- expect(imageVisible).toBeTruthy();
- });
-
- it('should check the ids column is not visible', async() => {
- await page.waitForSelector(selectors.itemsIndex.firstItemId, {hidden: true});
- });
-
- it('should mark all unchecked boxes to leave the index as it was', async() => {
- await page.waitToClick(selectors.itemsIndex.shownColumns);
- await page.waitToClick(selectors.itemsIndex.idCheckbox);
- await page.waitToClick(selectors.itemsIndex.stemsCheckbox);
- await page.waitToClick(selectors.itemsIndex.sizeCheckbox);
- await page.waitToClick(selectors.itemsIndex.typeCheckbox);
- await page.waitToClick(selectors.itemsIndex.categoryCheckbox);
- await page.waitToClick(selectors.itemsIndex.intrastadCheckbox);
- await page.waitToClick(selectors.itemsIndex.originCheckbox);
- await page.waitToClick(selectors.itemsIndex.buyerCheckbox);
- await page.waitToClick(selectors.itemsIndex.weightByPieceCheckbox);
- await page.waitToClick(selectors.itemsIndex.saveFieldsButton);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it('should now navigate forth and back to see the ids column is now visible', async() => {
- await page.closePopup();
- await page.waitToClick(selectors.itemsIndex.firstSearchResult);
- await page.waitToClick(selectors.itemDescriptor.goBackToModuleIndexButton);
- await page.waitToClick(selectors.globalItems.searchButton);
- await page.waitForSelector(selectors.itemsIndex.searchResult);
- const idVisible = await page.isVisible(selectors.itemsIndex.firstItemId);
-
- expect(idVisible).toBeTruthy();
- });
-});
diff --git a/e2e/paths/04-item/10_item_log.spec.js b/e2e/paths/04-item/10_item_log.spec.js
deleted file mode 100644
index c88fbd337..000000000
--- a/e2e/paths/04-item/10_item_log.spec.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Item log path', () => {
- let browser;
- let page;
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('developer', 'item');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it(`should search for the Knowledge artifact to confirm it isn't created yet`, async() => {
- await page.doSearch('Knowledge artifact');
- const nResults = await page.countElement(selectors.itemsIndex.searchResult);
-
- expect(nResults).toEqual(1);
- });
-
- it('should access to the create item view by clicking the create floating button', async() => {
- await page.waitToClick(selectors.itemsIndex.createItemButton);
- await page.waitForState('item.create');
- });
-
- it('should create the Knowledge artifact item', async() => {
- await page.write(selectors.itemCreateView.temporalName, 'Knowledge artifact');
- await page.autocompleteSearch(selectors.itemCreateView.type, 'Crisantemo');
- await page.autocompleteSearch(selectors.itemCreateView.intrastat, 'Coral y materiales similares');
- await page.autocompleteSearch(selectors.itemCreateView.origin, 'Holand');
- await page.waitToClick(selectors.itemCreateView.createButton);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it('should return to the items index by clicking the return to items button', async() => {
- await page.waitToClick(selectors.itemBasicData.goToItemIndexButton);
- await page.waitForSelector(selectors.itemsIndex.createItemButton);
- await page.waitForState('item.index');
- });
-});
diff --git a/e2e/paths/04-item/11_descriptor.spec.js b/e2e/paths/04-item/11_descriptor.spec.js
deleted file mode 100644
index eb9ed2573..000000000
--- a/e2e/paths/04-item/11_descriptor.spec.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Item descriptor path', () => {
- let browser;
- let page;
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'item');
- await page.accessToSearchResult('1');
- await page.accessToSection('item.card.basicData');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it('should set the item to inactive', async() => {
- await page.waitToClick(selectors.itemBasicData.isActiveCheckbox);
- await page.waitToClick(selectors.itemBasicData.submitBasicDataButton);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it('should reload the section and check the inactive icon is visible', async() => {
- await page.reloadSection('item.card.basicData');
- const visibleIcon = await page.isVisible(selectors.itemDescriptor.inactiveIcon);
-
- expect(visibleIcon).toBeTruthy();
- });
-
- it('should set the item back to active', async() => {
- await page.waitToClick(selectors.itemBasicData.isActiveCheckbox);
- await page.waitToClick(selectors.itemBasicData.submitBasicDataButton);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-});
diff --git a/e2e/paths/04-item/12_request.spec.js b/e2e/paths/04-item/12_request.spec.js
deleted file mode 100644
index e0f3a1b45..000000000
--- a/e2e/paths/04-item/12_request.spec.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Item request path', () => {
- let browser;
- let page;
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'item');
- await page.accessToSection('item.request');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it('should reach the item request section', async() => {
- await page.waitForState('item.request');
- });
-
- it('should fill the id and quantity then check the concept was updated', async() => {
- await page.writeOnEditableTD(selectors.itemRequest.firstRequestItemID, '4');
- await page.writeOnEditableTD(selectors.itemRequest.firstRequestQuantity, '10');
- await page.waitForTextInElement(selectors.itemRequest.firstRequestConcept, 'Melee weapon heavy shield 100cm');
- let filledConcept = await page.waitToGetProperty(selectors.itemRequest.firstRequestConcept, 'innerText');
-
- expect(filledConcept).toContain('Melee weapon heavy shield 100cm');
- });
-
- it('should check the status of the request should now be accepted', async() => {
- let status = await page.waitToGetProperty(selectors.itemRequest.firstRequestStatus, 'innerText');
-
- expect(status).toContain('Accepted');
- });
-
- it('should now click on the second declain request icon then type the reason', async() => {
- await page.waitToClick(selectors.itemRequest.secondRequestDecline);
- await page.write(selectors.itemRequest.declineReason, 'Not quite as expected');
- await page.respondToDialog('accept');
- let status = await page.waitToGetProperty(selectors.itemRequest.secondRequestStatus, 'innerText');
-
- expect(status).toContain('Denied');
- });
-});
diff --git a/e2e/paths/04-item/13_fixedPrice.spec.js b/e2e/paths/04-item/13_fixedPrice.spec.js
deleted file mode 100644
index f36138e18..000000000
--- a/e2e/paths/04-item/13_fixedPrice.spec.js
+++ /dev/null
@@ -1,97 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-const $ = selectors.itemFixedPrice;
-
-describe('Item fixed prices path', () => {
- let browser;
- let page;
- let httpRequest;
-
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'item');
- await page.accessToSection('item.fixedPrice');
- page.on('request', req => {
- if (req.url().includes(`FixedPrices/filter`))
- httpRequest = req.url();
- });
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it('should filter using all the fields', async() => {
- await page.write($.generalSearchFilter, 'item');
- await page.keyboard.press('Enter');
-
- expect(httpRequest).toContain('search=item');
-
- await page.click($.chip);
- await page.click($.reignFilter);
-
- expect(httpRequest).toContain('categoryFk');
-
- await page.autocompleteSearch($.typeFilter, 'Alstroemeria');
-
- expect(httpRequest).toContain('typeFk');
-
- await page.click($.chip);
- await page.autocompleteSearch($.buyerFilter, 'buyerNick');
-
- expect(httpRequest).toContain('buyerFk');
-
- await page.click($.chip);
- await page.autocompleteSearch($.warehouseFilter, 'Algemesi');
-
- expect(httpRequest).toContain('warehouseFk');
-
- await page.click($.chip);
- await page.click($.mineFilter);
-
- expect(httpRequest).toContain('mine=true');
-
- await page.click($.chip);
- await page.click($.hasMinPriceFilter);
-
- expect(httpRequest).toContain('hasMinPrice=true');
-
- await page.click($.chip);
- await page.click($.addTag);
- await page.autocompleteSearch($.tagFilter, 'Color');
- await page.autocompleteSearch($.tagValueFilter, 'Brown');
-
- expect(httpRequest).toContain('tags');
-
- await page.click($.chip);
- });
-
- it('should click on the add new fixed price button', async() => {
- await page.waitToClick($.add);
- await page.waitForSelector($.fourthFixedPrice);
- });
-
- it('should fill the fixed price data', async() => {
- const now = Date.vnNew();
- await page.autocompleteSearch($.fourthWarehouse, 'Warehouse one');
- await page.writeOnEditableTD($.fourthGroupingPrice, '1');
- await page.writeOnEditableTD($.fourthPackingPrice, '1');
- await page.write($.fourthMinPrice, '1');
- await page.pickDate($.fourthStarted, now);
- await page.pickDate($.fourthEnded, now);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it('should reload the section and check the created price has the expected ID', async() => {
- await page.goto(`http://localhost:5000/#!/item/fixed-price`);
- await page.autocompleteSearch($.warehouseFilter, 'Warehouse one');
- await page.click($.chip);
- const result = await page.waitToGetProperty($.fourthItemID, 'value');
-
- expect(result).toContain('13');
- });
-});
diff --git a/modules/item/front/barcode/index.html b/modules/item/front/barcode/index.html
deleted file mode 100644
index 8d6cb3af8..000000000
--- a/modules/item/front/barcode/index.html
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
diff --git a/modules/item/front/barcode/index.js b/modules/item/front/barcode/index.js
deleted file mode 100644
index 4ceb87b9d..000000000
--- a/modules/item/front/barcode/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-
-export default class Controller extends Section {
- onSubmit() {
- this.$.watcher.check();
- this.$.model.save().then(() => {
- this.$.watcher.notifySaved();
- this.$.watcher.updateOriginalData();
- });
- }
-}
-
-ngModule.vnComponent('vnItemBarcode', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/basic-data/index.html b/modules/item/front/basic-data/index.html
deleted file mode 100644
index af76d5966..000000000
--- a/modules/item/front/basic-data/index.html
+++ /dev/null
@@ -1,318 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ID
- Item
- Size
- Producer
- Color
-
-
-
-
-
-
- {{::item.id}}
-
-
- {{::item.name}}
- {{::item.size}}
- {{::item.producer.name}}
- {{::item.ink.name}}
-
-
-
-
-
-
-
-
diff --git a/modules/item/front/basic-data/index.js b/modules/item/front/basic-data/index.js
deleted file mode 100644
index 5a303f15f..000000000
--- a/modules/item/front/basic-data/index.js
+++ /dev/null
@@ -1,87 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-
-class Controller extends Section {
- showIntrastat(event) {
- if (event.defaultPrevented) return;
- event.preventDefault();
-
- this.newIntrastat = {
- taxClassFk: this.item.taxClassFk
- };
- this.$.intrastat.show();
- }
-
- onIntrastatAccept() {
- const query = `Items/${this.$params.id}/createIntrastat`;
- return this.$http.patch(query, this.newIntrastat)
- .then(res => this.item.intrastatFk = res.data.id);
- }
-
- itemSearchFunc($search) {
- return /^\d+$/.test($search)
- ? {id: $search}
- : {name: {like: '%' + $search + '%'}};
- }
-
- showFilterDialog(item) {
- this.activeItem = item;
- this.itemFilterParams = {};
- this.itemFilter = {
- include: [
- {
- relation: 'producer',
- scope: {
- fields: ['name']
- }
- },
- {
- relation: 'ink',
- scope: {
- fields: ['name']
- }
- }
- ]
- };
-
- this.$.filterDialog.show();
- }
-
- selectItem(id) {
- this.activeItem['genericFk'] = id;
- this.$.filterDialog.hide();
- }
-
- filter() {
- const filter = this.itemFilter;
- const params = this.itemFilterParams;
- const where = {};
- for (let key in params) {
- const value = params[key];
- if (!value) continue;
-
- switch (key) {
- case 'name':
- where[key] = {like: `%${value}%`};
- break;
- case 'producerFk':
- case 'typeFk':
- case 'size':
- case 'inkFk':
- where[key] = value;
- }
- }
-
- filter.where = where;
-
- this.$.itemsModel.applyFilter(filter);
- }
-}
-
-ngModule.vnComponent('vnItemBasicData', {
- template: require('./index.html'),
- bindings: {
- item: '<'
- },
- controller: Controller
-});
diff --git a/modules/item/front/basic-data/index.spec.js b/modules/item/front/basic-data/index.spec.js
deleted file mode 100644
index 274453d30..000000000
--- a/modules/item/front/basic-data/index.spec.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import './index.js';
-
-describe('vnItemBasicData', () => {
- describe('Component vnItemBasicData', () => {
- let $httpBackend;
- let $scope;
- let controller;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject(($componentController, $rootScope, _$httpBackend_) => {
- $httpBackend = _$httpBackend_;
- $scope = $rootScope.$new();
- const $element = angular.element('');
- controller = $componentController('vnItemBasicData', {$element, $scope});
- controller.$.watcher = {};
- controller.$params.id = 1;
- controller.item = {id: 1, name: 'Rainbow Coral'};
- }));
-
- describe('onIntrastatAccept()', () => {
- it('should pass the data to the watcher', () => {
- const newIntrastatId = 20;
- $httpBackend.expect('PATCH', 'Items/1/createIntrastat').respond({id: 20});
- controller.onIntrastatAccept();
- $httpBackend.flush();
-
- expect(controller.item.intrastatFk).toEqual(newIntrastatId);
- });
- });
- });
-});
diff --git a/modules/item/front/basic-data/locale/es.yml b/modules/item/front/basic-data/locale/es.yml
deleted file mode 100644
index fc490e448..000000000
--- a/modules/item/front/basic-data/locale/es.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-Reference: Referencia
-Full name calculates based on tags 1-3. Is not recommended to change it manually: >-
- El nombre completo se calcula
- basado en los tags 1-3.
- No se recomienda cambiarlo manualmente
-Is active: Activo
-Expense: Gasto
-Price in kg: Precio en kg
-New intrastat: Nuevo intrastat
-Identifier: Identificador
-Fragile: Frágil
-Is shown at website, app that this item cannot travel (wreath, palms, ...): Se muestra en la web, app que este artículo no puede viajar (coronas, palmas, ...)
-Multiplier: Multiplicador
-Generic: Genérico
-This item does need a photo: Este artículo necesita una foto
-Do photo: Hacer foto
-Recycled Plastic: Plástico reciclado
-Non recycled plastic: Plástico no reciclado
-Minimum sales quantity: Cantidad mínima de venta
diff --git a/modules/item/front/botanical/index.html b/modules/item/front/botanical/index.html
deleted file mode 100644
index 2388f4e8f..000000000
--- a/modules/item/front/botanical/index.html
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/item/front/botanical/index.js b/modules/item/front/botanical/index.js
deleted file mode 100644
index 8ade0fd9d..000000000
--- a/modules/item/front/botanical/index.js
+++ /dev/null
@@ -1,99 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-class Controller extends Section {
- get item() {
- return this._item;
- }
-
- set item(value) {
- this._item = value;
- if (value)
- this.getBotanicalData();
- }
-
- showGenus(event) {
- if (event.defaultPrevented) return;
- event.preventDefault();
-
- this.$.genus.show();
- }
-
- showSpecies(event) {
- if (event.defaultPrevented) return;
- event.preventDefault();
-
- this.$.species.show();
- }
-
- onGenusAccept() {
- try {
- if (!this.data.name)
- throw new Error(`The name of the genus can't be empty`);
-
- this.$http.post(`genera`, this.data).then(res => {
- this.vnApp.showMessage(this.$t('The genus has been created'));
- this.emit('response', {$response: res.data});
- this.onGenusResponse(res.data);
- });
- } catch (e) {
- this.vnApp.showError(this.$t(e.message));
- return false;
- }
- return true;
- }
-
- onSpeciesAccept() {
- try {
- if (!this.data.name)
- throw new Error(`The name of the species can't be empty`);
-
- this.$http.post(`species`, this.data).then(res => {
- this.vnApp.showMessage(this.$t('The species has been created'));
- this.emit('response', {$response: res.data});
- this.onSpeciesResponse(res.data);
- });
- } catch (e) {
- this.vnApp.showError(this.$t(e.message));
- return false;
- }
- return true;
- }
-
- getBotanicalData() {
- const filter = {
- where: {itemFk: this.item.id}
- };
- const filterParams = encodeURIComponent(JSON.stringify(filter));
- this.$http.get(`ItemBotanicals?filter=${filterParams}`).then(res => {
- if (res.data[0])
- this.botanical = res.data[0];
-
- else
- this.botanical = {itemFk: this.item.id};
- });
- }
-
- onSubmit() {
- this.$.watcher.check();
- this.$http.patch(`ItemBotanicals`, this.botanical).then(() => {
- this.$.watcher.notifySaved();
- this.$.watcher.updateOriginalData();
- });
- }
-
- onGenusResponse(response) {
- this.botanical.genusFk = response.id;
- }
-
- onSpeciesResponse(response) {
- this.botanical.specieFk = response.id;
- }
-}
-
-ngModule.vnComponent('vnItemBotanical', {
- template: require('./index.html'),
- bindings: {
- item: '<'
- },
- controller: Controller
-});
diff --git a/modules/item/front/botanical/index.spec.js b/modules/item/front/botanical/index.spec.js
deleted file mode 100644
index afec83cfd..000000000
--- a/modules/item/front/botanical/index.spec.js
+++ /dev/null
@@ -1,179 +0,0 @@
-import './index.js';
-
-describe('vnItemBotanical', () => {
- describe('Component vnItemBotanical', () => {
- let $httpBackend;
- let $scope;
- let controller;
- let vnApp;
- beforeEach(ngModule('item'));
-
- beforeEach(inject(($componentController, $rootScope, _$httpBackend_, _vnApp_) => {
- $httpBackend = _$httpBackend_;
- vnApp = _vnApp_;
- jest.spyOn(vnApp, 'showError');
- $scope = $rootScope.$new();
- const $element = angular.element('');
- controller = $componentController('vnItemBotanical', {$element, $scope});
- controller.item = {id: 5};
- controller.$params = {itemFk: 5};
- controller.$ = {
- watcher: {
- check: () => {},
- notifySaved: () => {},
- updateOriginalData: () => {}},
- genus: {
- show: () => {}
- },
- species: {
- show: () => {}
- }};
- }));
-
- beforeEach(() => {
- const response = {data: 'MyResult'};
- $httpBackend.whenRoute('GET', 'ItemBotanicals').respond(response);
- });
-
- describe('showGenus()', () => {
- it('should do nothing in genus field if it default is prevented', () => {
- const event = {
- defaultPrevented: true,
- preventDefault: () => {}
- };
- jest.spyOn(event, 'preventDefault');
- jest.spyOn(controller.$.genus, 'show');
-
- controller.showGenus(event);
-
- expect(event.preventDefault).not.toHaveBeenCalledWith();
- expect(controller.$.genus.show).not.toHaveBeenCalledWith();
- });
-
- it('should call show function in genus field when the default is not prevented', () => {
- const event = {
- defaultPrevented: false,
- preventDefault: () => {}
- };
-
- jest.spyOn(event, 'preventDefault');
- jest.spyOn(controller.$.genus, 'show');
-
- controller.showGenus(event);
-
- expect(event.preventDefault).toHaveBeenCalledWith();
- expect(controller.$.genus.show).toHaveBeenCalledWith();
- });
- });
-
- describe('showSpecies()', () => {
- it('should do nothing in species field if it default is prevented', () => {
- const event = {
- defaultPrevented: true,
- preventDefault: () => {}
- };
- jest.spyOn(event, 'preventDefault');
- jest.spyOn(controller.$.species, 'show');
-
- controller.showSpecies(event);
-
- expect(event.preventDefault).not.toHaveBeenCalledWith();
- expect(controller.$.species.show).not.toHaveBeenCalledWith();
- });
-
- it('should call show function in species field when the default is not prevented', () => {
- const event = {
- defaultPrevented: false,
- preventDefault: () => {}
- };
-
- jest.spyOn(event, 'preventDefault');
- jest.spyOn(controller.$.species, 'show');
-
- controller.showSpecies(event);
-
- expect(event.preventDefault).toHaveBeenCalledWith();
- expect(controller.$.species.show).toHaveBeenCalledWith();
- });
- });
-
- describe('onGenusAccept()', () => {
- it('should throw an error if the item botanical has no genus name', () => {
- jest.spyOn(controller.vnApp, 'showMessage');
-
- controller.data = {};
-
- controller.onGenusAccept();
-
- expect(controller.vnApp.showError).toHaveBeenCalledWith(`The name of the genus can't be empty`);
- });
-
- it('should add the new genus', () => {
- controller.data = {
- id: 4,
- name: 'Anilius'
- };
-
- $httpBackend.expectPOST('genera', controller.data).respond(200, controller.data);
-
- controller.onGenusAccept();
- $httpBackend.flush();
-
- controller.onGenusResponse(controller.data);
-
- expect(controller.botanical.genusFk).toEqual(controller.data.id);
- });
- });
-
- describe('onSpeciesAccept()', () => {
- it('should throw an error if the item botanical has no species name', () => {
- jest.spyOn(controller.vnApp, 'showMessage');
-
- controller.data = {};
-
- controller.onSpeciesAccept();
-
- expect(controller.vnApp.showError).toHaveBeenCalledWith(`The name of the species can't be empty`);
- });
-
- it('should add the new species', () => {
- controller.data = {
- id: 2,
- name: 'Spasiva'
- };
-
- $httpBackend.expectPOST('species', controller.data).respond(200, controller.data);
-
- controller.onSpeciesAccept();
- $httpBackend.flush();
- controller.onSpeciesResponse(controller.data);
- });
- });
-
- describe('onSubmit()', () => {
- it('should make HTTP POST request to save the genus and species data', () => {
- jest.spyOn(controller.$.watcher, 'updateOriginalData');
- jest.spyOn(controller.$.watcher, 'check');
- jest.spyOn(controller.$.watcher, 'notifySaved');
-
- $httpBackend.expectPATCH('ItemBotanicals').respond();
- controller.onSubmit();
- $httpBackend.flush();
-
- expect(controller.$.watcher.updateOriginalData).toHaveBeenCalledWith();
- expect(controller.$.watcher.check).toHaveBeenCalledWith();
- expect(controller.$.watcher.notifySaved).toHaveBeenCalledWith();
- });
- });
-
- describe('getBotanicalData()', () => {
- it('should get the species and genus data references of the item', () => {
- controller.getBotanicalData();
- $httpBackend.flush();
-
- expect(controller.botanical).toEqual(controller.$params);
- });
- });
- });
-});
-
diff --git a/modules/item/front/botanical/locale/es.yml b/modules/item/front/botanical/locale/es.yml
deleted file mode 100644
index e1234bd71..000000000
--- a/modules/item/front/botanical/locale/es.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-The genus has been created: El genus ha sido creado
-The species has been created: La especie ha sido creada
-Latin species name: Nombre de la especie en latín
-Latin genus name: Nombre del genus en latín
-Species: Especie
\ No newline at end of file
diff --git a/modules/item/front/card/index.html b/modules/item/front/card/index.html
deleted file mode 100644
index 330d274c0..000000000
--- a/modules/item/front/card/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/modules/item/front/card/index.js b/modules/item/front/card/index.js
deleted file mode 100644
index 2fe42fd04..000000000
--- a/modules/item/front/card/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import ngModule from '../module';
-import ModuleCard from 'salix/components/module-card';
-
-class Controller extends ModuleCard {
- reload() {
- this.$http.get(`Items/${this.$params.id}/getCard`)
- .then(res => this.item = res.data);
-
- this.$http.get('ItemConfigs/findOne')
- .then(res => {
- if (this.$state.getCurrentPath()[4].state.name === 'item.card.diary') return;
- this.warehouseFk = res.data.warehouseFk;
- this.getWarehouseName(res.data.warehouseFk);
- });
- }
-
- getWarehouseName(warehouseFk) {
- const filter = {
- where: {id: warehouseFk}
- };
- this.$http.get('Warehouses/findOne', {filter})
- .then(res => {
- this.warehouseText = this.$t('WarehouseFk', {
- warehouseName: res.data.name
- });
- });
- }
-}
-
-ngModule.vnComponent('vnItemCard', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/card/index.spec.js b/modules/item/front/card/index.spec.js
deleted file mode 100644
index 6ebce3d36..000000000
--- a/modules/item/front/card/index.spec.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import './index.js';
-
-describe('Item', () => {
- describe('Component vnItemCard', () => {
- let controller;
- let $httpBackend;
- let $state;
- let data = {id: 1, name: 'fooName'};
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject(($componentController, _$httpBackend_, $stateParams, _$state_) => {
- $httpBackend = _$httpBackend_;
- $state = _$state_;
- $state.getCurrentPath = () => [null, null, null, null, {state: {name: 'item.card.diary'}}];
-
- let $element = angular.element('');
- controller = $componentController('vnItemCard', {$element});
-
- $stateParams.id = data.id;
- $httpBackend.whenRoute('GET', 'Items/:id/getCard').respond(data);
- }));
-
- it('should request data and set it on the controller', () => {
- $httpBackend.expect('GET', `ItemConfigs/findOne`).respond({});
- controller.reload();
- $httpBackend.flush();
-
- expect(controller.item).toEqual(data);
- });
- });
-});
diff --git a/modules/item/front/create/index.html b/modules/item/front/create/index.html
deleted file mode 100644
index b284abf06..000000000
--- a/modules/item/front/create/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
-
-
diff --git a/modules/item/front/create/index.js b/modules/item/front/create/index.js
deleted file mode 100644
index 4ca5f8f9f..000000000
--- a/modules/item/front/create/index.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-
-class Controller extends Section {
- constructor($element, $) {
- super($element, $);
- this.fetchDefaultPriorityTag();
- }
-
- fetchDefaultPriorityTag() {
- this.validPriorities = [];
- const filter = {fields: ['defaultPriority', 'defaultTag', 'validPriorities'], limit: 1};
- this.$http.get(`ItemConfigs`, {filter})
- .then(res => {
- if (res.data) {
- const dataRow = res.data[0];
- dataRow.validPriorities.forEach(priority => {
- this.validPriorities.push({priority});
- });
- this.item = {
- priority: dataRow.defaultPriority,
- tag: dataRow.defaultTag
- };
- }
- });
- }
-
- onSubmit() {
- this.$.watcher.submit().then(
- json => this.$state.go('item.card.basicData', {id: json.data.id})
- );
- }
-}
-
-Controller.$inject = ['$element', '$scope'];
-
-ngModule.vnComponent('vnItemCreate', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/create/index.spec.js b/modules/item/front/create/index.spec.js
deleted file mode 100644
index 9e54988d7..000000000
--- a/modules/item/front/create/index.spec.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import './index.js';
-
-describe('Item', () => {
- describe('Component vnItemCreate', () => {
- let $scope;
- let $state;
- let controller;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject(($componentController, $rootScope, _$state_) => {
- $scope = $rootScope.$new();
- $state = _$state_;
- $scope.watcher = {
- submit: () => {
- return {
- then: callback => {
- callback({data: {id: 1}});
- }
- };
- }
- };
- const $element = angular.element('');
- controller = $componentController('vnItemCreate', {$element, $scope});
- }));
-
- describe('onSubmit()', () => {
- it(`should call submit() on the watcher then expect a callback`, () => {
- jest.spyOn($state, 'go');
- controller.onSubmit();
-
- expect(controller.$state.go).toHaveBeenCalledWith('item.card.basicData', {id: 1});
- });
- });
- });
-});
-
diff --git a/modules/item/front/create/locale/es.yml b/modules/item/front/create/locale/es.yml
deleted file mode 100644
index 041826e1c..000000000
--- a/modules/item/front/create/locale/es.yml
+++ /dev/null
@@ -1 +0,0 @@
-Temporal name: Nombre temporal
\ No newline at end of file
diff --git a/modules/item/front/diary/index.html b/modules/item/front/diary/index.html
deleted file mode 100644
index 7fb3b870e..000000000
--- a/modules/item/front/diary/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/modules/item/front/diary/index.js b/modules/item/front/diary/index.js
deleted file mode 100644
index 3d86b0b60..000000000
--- a/modules/item/front/diary/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('item.card.summary', {id: this.$params.id});
- window.location.href = await this.vnApp.getUrl(`item/${this.$params.id}/diary`);
- }
-}
-
-ngModule.vnComponent('vnItemDiary', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- item: '<'
- }
-});
diff --git a/modules/item/front/fetched-tags/index.html b/modules/item/front/fetched-tags/index.html
deleted file mode 100644
index df5936871..000000000
--- a/modules/item/front/fetched-tags/index.html
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
- {{::$ctrl.item.value5}}
-
-
- {{::$ctrl.item.value6}}
-
-
- {{::$ctrl.item.value7}}
-
-
- {{::$ctrl.item.value8}}
-
-
- {{::$ctrl.item.value9}}
-
-
- {{::$ctrl.item.value10}}
-
-
-
diff --git a/modules/item/front/fetched-tags/index.js b/modules/item/front/fetched-tags/index.js
deleted file mode 100644
index e3584be23..000000000
--- a/modules/item/front/fetched-tags/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import ngModule from '../module';
-import Component from 'core/lib/component';
-import './style.scss';
-
-ngModule.vnComponent('vnFetchedTags', {
- template: require('./index.html'),
- controller: Component,
- bindings: {
- maxLength: '<',
- item: '<',
- }
-});
diff --git a/modules/item/front/fetched-tags/style.scss b/modules/item/front/fetched-tags/style.scss
deleted file mode 100644
index 250ca07ab..000000000
--- a/modules/item/front/fetched-tags/style.scss
+++ /dev/null
@@ -1,61 +0,0 @@
-@import "variables";
-
-[vn-fetched-tags] {
- min-width: 155px;
- & [wide] {
- width: 430px;
- }
- & div {
- display: flex;
- flex-wrap: wrap;
- align-items: center;
- & vn-one {
- min-width: 200px;
- overflow: hidden;
- text-overflow: ellipsis;
- font-size: 1rem;
- }
- & vn-one h3 {
- color: $color-font-secondary;
- text-transform: uppercase;
- line-height: initial;
- font-size: 0.75rem;
- margin-bottom: 0px;
- }
- }
-}
-
-vn-fetched-tags {
- & > vn-horizontal {
- align-items: center;
- max-width: 210px;
- & > vn-auto {
- flex-wrap: wrap;
-
- & > .inline-tag {
- margin: 1px;
- }
- }
-
- & > vn-auto {
- display: flex;
-
- & > .inline-tag {
- color: $color-font-secondary;
- text-align: center;
- font-size: .8rem;
- height: 13px;
- padding: 1px;
- width: 64px;
- min-width: 64px;
- max-width: 64px;
- flex: 1;
- border: 1px solid $color-font-secondary;
-
- &.empty {
- border: 1px solid darken($color-font-secondary, 30%);
- }
- }
- }
- }
-}
diff --git a/modules/item/front/fixed-price-search-panel/index.html b/modules/item/front/fixed-price-search-panel/index.html
deleted file mode 100644
index 347e65571..000000000
--- a/modules/item/front/fixed-price-search-panel/index.html
+++ /dev/null
@@ -1,214 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{name}}
-
- {{category.name}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tags
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Id/{{$ctrl.$t('Name')}}: {{$ctrl.filter.search}}
-
-
- {{$ctrl.$t('Category')}}: {{category.selection.name}}
-
-
- {{$ctrl.$t('Type')}}: {{type.selection.name}}
-
-
- {{$ctrl.$t('Buyer')}}: {{buyer.selection.nickname}}
-
-
- {{$ctrl.$t('Warehouse')}}: {{warehouse.selection.name}}
-
-
- {{$ctrl.$t('Started')}}: {{$ctrl.filter.started | date:'dd/MM/yyyy'}}
-
-
- {{$ctrl.$t('Ended')}}: {{$ctrl.filter.ended | date:'dd/MM/yyyy'}}
-
-
- {{$ctrl.$t('For me')}}: {{$ctrl.filter.mine ? '✓' : '✗'}}
-
-
- {{$ctrl.$t('Minimum price')}}: {{$ctrl.filter.hasMinPrice ? '✓' : '✗'}}
-
-
- {{$ctrl.showTagInfo(chipTag)}}
-
-
-
diff --git a/modules/item/front/fixed-price-search-panel/index.js b/modules/item/front/fixed-price-search-panel/index.js
deleted file mode 100644
index 0882eb5ac..000000000
--- a/modules/item/front/fixed-price-search-panel/index.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import ngModule from '../module';
-import SearchPanel from 'core/components/searchbar/search-panel';
-import './style.scss';
-
-class Controller extends SearchPanel {
- constructor($element, $) {
- super($element, $);
- }
-
- $onInit() {
- this.filter = {
- tags: []
- };
- }
-
- changeCategory(id) {
- if (this.filter.categoryFk != id) {
- this.filter.categoryFk = id;
- this.addFilters();
- }
- }
-
- removeItemFilter(param) {
- this.filter[param] = null;
- if (param == 'categoryFk') this.filter['typeFk'] = null;
- this.addFilters();
- }
-
- removeTag(tag) {
- const index = this.filter.tags.indexOf(tag);
- if (index > -1) this.filter.tags.splice(index, 1);
- this.addFilters();
- }
-
- onKeyPress($event) {
- if ($event.key === 'Enter')
- this.addFilters();
- }
-
- addFilters() {
- for (let i = 0; i < this.filter.tags.length; i++) {
- if (!this.filter.tags[i].value)
- this.filter.tags.splice(i, 1);
- }
- return this.model.addFilter({}, this.filter);
- }
-
- showTagInfo(itemTag) {
- if (!itemTag.tagFk) return itemTag.value;
- return `${this.tags.find(tag => tag.id == itemTag.tagFk).name}: ${itemTag.value}`;
- }
-}
-
-ngModule.vnComponent('vnFixedPriceSearchPanel', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- model: '<'
- }
-});
diff --git a/modules/item/front/fixed-price-search-panel/index.spec.js b/modules/item/front/fixed-price-search-panel/index.spec.js
deleted file mode 100644
index 597bc108e..000000000
--- a/modules/item/front/fixed-price-search-panel/index.spec.js
+++ /dev/null
@@ -1,56 +0,0 @@
-import './index.js';
-
-describe('Item', () => {
- describe('Component vnFixedPriceSearchPanel', () => {
- let $element;
- let controller;
-
- beforeEach(ngModule('item'));
-
- beforeEach(angular.mock.inject($componentController => {
- $element = angular.element(``);
- controller = $componentController('vnFixedPriceSearchPanel', {$element});
- controller.model = {addFilter: () => {}};
- }));
-
- describe('removeItemFilter()', () => {
- it(`should remove param from filter`, () => {
- controller.filter = {tags: [], categoryFk: 1, typeFk: 1};
- const expectFilter = {tags: [], categoryFk: null, typeFk: null};
-
- controller.removeItemFilter('categoryFk');
-
- expect(controller.filter).toEqual(expectFilter);
- });
- });
-
- describe('removeTag()', () => {
- it(`should remove tag from filter`, () => {
- const tag = {tagFk: 1, value: 'Value'};
- controller.filter = {tags: [tag]};
- const expectFilter = {tags: []};
-
- controller.removeTag(tag);
-
- expect(controller.filter).toEqual(expectFilter);
- });
- });
-
- describe('showTagInfo()', () => {
- it(`should show tag value`, () => {
- const tag = {value: 'Value'};
- const result = controller.showTagInfo(tag);
-
- expect(result).toEqual('Value');
- });
-
- it(`should show tag name and value`, () => {
- const tag = {tagFk: 1, value: 'Value'};
- controller.tags = [{id: 1, name: 'tagName'}];
- const result = controller.showTagInfo(tag);
-
- expect(result).toEqual('tagName: Value');
- });
- });
- });
-});
diff --git a/modules/item/front/fixed-price-search-panel/locale/es.yml b/modules/item/front/fixed-price-search-panel/locale/es.yml
deleted file mode 100644
index 06e5e6b26..000000000
--- a/modules/item/front/fixed-price-search-panel/locale/es.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-Started: Inicio
-Ended: Fin
-Minimum price: Precio mínimo
-Item ID: ID Artículo
\ No newline at end of file
diff --git a/modules/item/front/fixed-price-search-panel/style.scss b/modules/item/front/fixed-price-search-panel/style.scss
deleted file mode 100644
index e386033dd..000000000
--- a/modules/item/front/fixed-price-search-panel/style.scss
+++ /dev/null
@@ -1,71 +0,0 @@
-@import "variables";
-
-vn-fixed-price-search-panel vn-side-menu {
- .menu {
- min-width: $menu-width;
- }
- & > div {
- .input {
- padding-left: $spacing-md;
- padding-right: $spacing-md;
- border-color: $color-spacer;
- border-bottom: $border-thin;
- }
- .horizontal {
- padding-left: $spacing-md;
- padding-right: $spacing-md;
- grid-auto-flow: column;
- grid-column-gap: $spacing-sm;
- align-items: center;
- }
- .tags {
- padding: $spacing-md;
- padding-bottom: 0%;
- padding-top: 0%;
- align-items: center;
- }
- .chips {
- display: flex;
- flex-wrap: wrap;
- padding: $spacing-md;
- overflow: hidden;
- max-width: 100%;
- border-color: $color-spacer;
- border-top: $border-thin;
- }
- .item-category {
- padding: $spacing-sm;
- justify-content: flex-start;
- align-items: flex-start;
- flex-wrap: wrap;
-
- vn-autocomplete[vn-id="category"] {
- display: none;
- }
-
- & > vn-one {
- padding: $spacing-sm;
- min-width: 33.33%;
- text-align: center;
- box-sizing: border-box;
-
- & > vn-icon {
- padding: $spacing-sm;
- background-color: $color-font-secondary;
- border-radius: 50%;
- cursor: pointer;
-
- &.active {
- background-color: $color-main;
- color: #fff;
- }
- & > i:before {
- font-size: 2.6rem;
- width: 16px;
- height: 16px;
- }
- }
- }
- }
- }
-}
diff --git a/modules/item/front/fixed-price/index.html b/modules/item/front/fixed-price/index.html
deleted file mode 100644
index f1f6e1419..000000000
--- a/modules/item/front/fixed-price/index.html
+++ /dev/null
@@ -1,284 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
-
- Item ID
- |
-
- Description
- |
-
- Grouping price
- |
-
- Packing price
- |
-
- Min price
- |
-
- Started
- |
-
- Ended
- |
-
- Warehouse
- |
- |
-
-
-
-
-
-
-
- |
-
-
-
- {{id}}
-
- {{name}}
-
-
-
- |
-
-
-
- {{itemFk.selection.name}}
-
-
- {{price.subName}}
-
-
-
-
- |
-
-
-
- {{price.rate2 | currency: 'EUR':2}}
-
-
-
-
-
-
- |
-
-
-
- {{price.rate3 | currency: 'EUR':2}}
-
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
- |
-
-
-
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Edit
-
- {{::$ctrl.totalChecked}}
-
- buy(s)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/modules/item/front/fixed-price/index.js b/modules/item/front/fixed-price/index.js
deleted file mode 100644
index fe6788e9c..000000000
--- a/modules/item/front/fixed-price/index.js
+++ /dev/null
@@ -1,254 +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.editedColumn;
- this.checkAll = false;
- this.checkedFixedPrices = [];
-
- this.smartTableOptions = {
- activeButtons: {
- search: true
- },
- columns: [
- {
- field: 'warehouseFk',
- autocomplete: {
- url: 'Warehouses',
- showField: 'name',
- valueField: 'id',
- }
- },
- {
- field: 'started',
- searchable: false
- },
- {
- field: 'ended',
- searchable: false
- }
- ]
- };
-
- this.filterParams = {
- warehouseFk: this.vnConfig.warehouseFk
- };
- }
-
- getFilterParams() {
- return {
- warehouseFk: this.vnConfig.warehouseFk
- };
- }
-
- get columns() {
- if (this._columns) return this._columns;
-
- this._columns = [
- {field: 'rate2', displayName: this.$t('Grouping price')},
- {field: 'rate3', displayName: this.$t('Packing price')},
- {field: 'hasMinPrice', displayName: this.$t('Has min price')},
- {field: 'minPrice', displayName: this.$t('Min price')},
- {field: 'started', displayName: this.$t('Started')},
- {field: 'ended', displayName: this.$t('Ended')},
- {field: 'warehouseFk', displayName: this.$t('Warehouse')}
- ];
-
- return this._columns;
- }
-
- get checked() {
- const fixedPrices = this.$.model.data || [];
- const checkedBuys = [];
- for (let fixedPrice of fixedPrices) {
- if (fixedPrice.checked)
- checkedBuys.push(fixedPrice);
- }
-
- return checkedBuys;
- }
-
- uncheck() {
- this.checkAll = false;
- this.checkedFixedPrices = [];
- }
-
- get totalChecked() {
- if (this.checkedDummyCount)
- return this.checkedDummyCount;
-
- return this.checked.length;
- }
-
- saveChecked(fixedPriceId) {
- const index = this.checkedFixedPrices.indexOf(fixedPriceId);
- if (index !== -1)
- return this.checkedFixedPrices.splice(index, 1);
- return this.checkedFixedPrices.push(fixedPriceId);
- }
-
- reCheck() {
- if (!this.$.model.data) return;
- if (!this.checkedFixedPrices.length) return;
-
- this.$.model.data.forEach(fixedPrice => {
- if (this.checkedFixedPrices.includes(fixedPrice.id))
- fixedPrice.checked = true;
- });
- }
-
- onEditAccept() {
- const rowsToEdit = [];
- for (let row of this.checked)
- rowsToEdit.push({id: row.id, itemFk: row.itemFk});
-
- const data = {
- field: this.editedColumn.field,
- newValue: this.editedColumn.newValue,
- lines: rowsToEdit
- };
-
- if (this.checkedDummyCount && this.checkedDummyCount > 0) {
- const params = {};
- if (this.$.model.userParams) {
- const userParams = this.$.model.userParams;
- for (let param in userParams) {
- let newParam = this.exprBuilder(param, userParams[param]);
- if (!newParam)
- newParam = {[param]: userParams[param]};
- Object.assign(params, newParam);
- }
- }
- if (this.$.model.userFilter)
- Object.assign(params, this.$.model.userFilter.where);
-
- data.filter = params;
- }
-
- return this.$http.post('FixedPrices/editFixedPrice', data)
- .then(() => {
- this.uncheck();
- this.$.model.refresh();
- });
- }
-
- isBigger(date) {
- let today = Date.vnNew();
- today.setHours(0, 0, 0, 0);
-
- date = new Date(date);
- date.setHours(0, 0, 0, 0);
-
- const timeDifference = today - date;
- if (timeDifference < 0) return 'warning';
- }
-
- isLower(date) {
- let today = Date.vnNew();
- today.setHours(0, 0, 0, 0);
-
- date = new Date(date);
- date.setHours(0, 0, 0, 0);
-
- const timeDifference = today - date;
- if (timeDifference > 0) return 'warning';
- }
-
- add() {
- if (!this.$.model.data || this.$.model.data.length == 0) {
- this.$.model.data = [];
- this.$.model.proxiedData = [];
-
- const today = Date.vnNew();
-
- const millisecsInDay = 86400000;
- const daysInWeek = 7;
- const nextWeek = new Date(today.getTime() + daysInWeek * millisecsInDay);
-
- this.$.model.insert({
- started: today,
- ended: nextWeek
- });
- return;
- }
-
- const lastIndex = this.$.model.data.length - 1;
- const lastItem = this.$.model.data[lastIndex];
- this.$.model.insert({
- itemFk: lastItem.itemFk,
- name: lastItem.name,
- subName: lastItem.subName,
- value5: lastItem.value5,
- value6: lastItem.value6,
- value7: lastItem.value7,
- value8: lastItem.value8,
- value9: lastItem.value9,
- value10: lastItem.value10,
- warehouseFk: lastItem.warehouseFk,
- rate2: lastItem.rate2,
- rate3: lastItem.rate3,
- hasMinPrice: lastItem.hasMinPrice,
- minPrice: lastItem.minPrice,
- started: lastItem.started,
- ended: lastItem.ended,
- });
- }
-
- upsertPrice(price, resetMinPrice) {
- if (resetMinPrice)
- delete price['minPrice'];
-
- const requiredFields = ['itemFk', 'started', 'ended', 'rate2', 'rate3'];
- for (const field of requiredFields)
- if (price[field] == undefined) return;
-
- const query = 'FixedPrices/upsertFixedPrice';
- this.$http.patch(query, price)
- .then(res => {
- this.vnApp.showSuccess(this.$t('Data saved!'));
- Object.assign(price, res.data);
- });
- }
-
- removePrice($index) {
- const price = this.$.model.data[$index];
- if (price.id) {
- this.$http.delete(`FixedPrices/${price.id}`)
- .then(() => {
- this.$.model.remove($index);
- this.vnApp.showSuccess(this.$t('Data saved!'));
- });
- } else
- this.$.model.remove($index);
- }
-
- itemSearchFunc($search) {
- return /^\d+$/.test($search)
- ? {id: $search}
- : {name: {like: '%' + $search + '%'}};
- }
-
- exprBuilder(param, value) {
- switch (param) {
- case 'name':
- return {'i.name': {like: `%${value}%`}};
- case 'itemFk':
- case 'warehouseFk':
- case 'rate2':
- case 'rate3':
- param = `fp.${param}`;
- return {[param]: value};
- case 'minPrice':
- param = `i.${param}`;
- return {[param]: value};
- }
- }
-}
-
-ngModule.vnComponent('vnFixedPrice', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/fixed-price/index.spec.js b/modules/item/front/fixed-price/index.spec.js
deleted file mode 100644
index ae24da60b..000000000
--- a/modules/item/front/fixed-price/index.spec.js
+++ /dev/null
@@ -1,173 +0,0 @@
-import './index';
-
-describe('fixed price', () => {
- describe('Component vnFixedPrice', () => {
- let controller;
- let $httpBackend;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject(($componentController, _$httpBackend_, $rootScope) => {
- $httpBackend = _$httpBackend_;
- const $scope = $rootScope.$new();
- const $element = angular.element('');
- controller = $componentController('vnFixedPrice', {$element, $scope});
- controller.$ = {
- model: {refresh: () => {}},
- edit: {hide: () => {}}
- };
- }));
-
- describe('get columns', () => {
- it(`should return a set of columns`, () => {
- let result = controller.columns;
-
- let length = result.length;
- let anyColumn = Object.keys(result[Math.floor(Math.random() * Math.floor(length))]);
-
- expect(anyColumn).toContain('field', 'displayName');
- });
- });
-
- describe('get checked', () => {
- it(`should return a set of checked lines`, () => {
- controller.$.model.data = [
- {checked: true, id: 1},
- {checked: true, id: 2},
- {checked: true, id: 3},
- {checked: false, id: 4},
- ];
-
- let result = controller.checked;
-
- expect(result.length).toEqual(3);
- });
- });
-
- describe('reCheck()', () => {
- it(`should recheck buys`, () => {
- controller.$.model.data = [
- {checked: false, id: 1},
- {checked: false, id: 2},
- {checked: false, id: 3},
- {checked: false, id: 4},
- ];
- controller.checkedFixedPrices = [1, 2];
-
- controller.reCheck();
-
- expect(controller.$.model.data[0].checked).toEqual(true);
- expect(controller.$.model.data[1].checked).toEqual(true);
- expect(controller.$.model.data[2].checked).toEqual(false);
- expect(controller.$.model.data[3].checked).toEqual(false);
- });
- });
-
- describe('saveChecked()', () => {
- it(`should check buy`, () => {
- const buyCheck = 3;
- controller.checkedFixedPrices = [1, 2];
-
- controller.saveChecked(buyCheck);
-
- expect(controller.checkedFixedPrices[2]).toEqual(buyCheck);
- });
-
- it(`should uncheck buy`, () => {
- const buyUncheck = 3;
- controller.checkedFixedPrices = [1, 2, 3];
-
- controller.saveChecked(buyUncheck);
-
- expect(controller.checkedFixedPrices[2]).toEqual(undefined);
- });
- });
-
- describe('onEditAccept()', () => {
- it(`should perform a query to update columns`, () => {
- controller.editedColumn = {field: 'my field', newValue: 'the new value'};
- const query = 'FixedPrices/editFixedPrice';
-
- $httpBackend.expectPOST(query).respond();
- controller.onEditAccept();
- $httpBackend.flush();
-
- const result = controller.checked;
-
- expect(result.length).toEqual(0);
- });
- });
-
- describe('upsertPrice()', () => {
- it('should do nothing if one or more required arguments are missing', () => {
- jest.spyOn(controller.vnApp, 'showSuccess');
-
- controller.upsertPrice({});
-
- expect(controller.vnApp.showSuccess).not.toHaveBeenCalled();
- });
-
- it('should perform an http request to update the price', () => {
- const now = Date.vnNew();
- jest.spyOn(controller.vnApp, 'showSuccess');
-
- $httpBackend.expectPATCH('FixedPrices/upsertFixedPrice').respond();
- controller.upsertPrice({
- itemFk: 1,
- started: now,
- ended: now,
- rate2: 1,
- rate3: 2
- });
- $httpBackend.flush();
-
- expect(controller.vnApp.showSuccess).toHaveBeenCalled();
- });
- });
-
- describe('removePrice()', () => {
- it(`should only remove the created instance by the model as it doesn't have an ID yet`, () => {
- const $index = 0;
- controller.$ = {
- model: {
- remove: () => {},
- data: [{
- foo: 'bar'
- }]
- }
- };
- jest.spyOn(controller.vnApp, 'showSuccess');
- jest.spyOn(controller.$.model, 'remove');
-
- $httpBackend.expectGET('Warehouses').respond();
-
- controller.removePrice($index);
-
- expect(controller.vnApp.showSuccess).not.toHaveBeenCalled();
- expect(controller.$.model.remove).toHaveBeenCalled();
- });
-
- it('should remove the instance performing an delete http request', () => {
- const $index = 0;
- controller.$ = {
- model: {
- remove: () => {},
- data: [{
- id: '1'
- }]
- }
- };
- jest.spyOn(controller.vnApp, 'showSuccess');
- jest.spyOn(controller.$.model, 'remove');
-
- const query = `FixedPrices/${controller.$.model.data[0].id}`;
- $httpBackend.expectDELETE(query).respond();
- controller.removePrice($index);
- $httpBackend.flush();
-
- expect(controller.vnApp.showSuccess).toHaveBeenCalled();
- expect(controller.$.model.remove).toHaveBeenCalled();
- });
- });
- });
-});
diff --git a/modules/item/front/fixed-price/locale/es.yml b/modules/item/front/fixed-price/locale/es.yml
deleted file mode 100644
index 6dacf96c9..000000000
--- a/modules/item/front/fixed-price/locale/es.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-Fixed prices: Precios fijados
-Search prices by item ID or code: Buscar por ID de artículo o código
-Search fixed prices: Buscar precios fijados
-Add fixed price: Añadir precio fijado
-This row will be removed: Esta linea se eliminará
-Edit fixed price(s): Editar precio(s) fijado(s)
-Has min price: Tiene precio mínimo
diff --git a/modules/item/front/fixed-price/style.scss b/modules/item/front/fixed-price/style.scss
deleted file mode 100644
index f70ec2f50..000000000
--- a/modules/item/front/fixed-price/style.scss
+++ /dev/null
@@ -1,46 +0,0 @@
-@import "variables";
-vn-fixed-price{
- smart-table table{
- [shrink-field]{
- width: 90px;
- max-width: 90px;
- }
- [shrink-field-expand]{
- width: 150px;
- max-width: 150px;
- }
- }
-
- .minPrice {
- align-items: center;
- text-align: center;
- vn-input-number {
- width: 75px;
- max-width: 75px;
- }
- }
-
- smart-table table tbody > * > td .chip {
- padding: 0px;
- }
-
- smart-table table tbody > * > td{
- padding: 0px;
- padding-left: 5px;
- padding-right: 5px;
- }
-
- smart-table table tbody > * > td .chip.warning {
- color: $color-font-bg
- }
-
- .vn-field > .container > .infix > .control > input {
- color: inherit;
- }
-
- vn-input-number.inactive{
- input {
- color: $color-font-light !important;
- }
- }
-}
diff --git a/modules/item/front/index.js b/modules/item/front/index.js
index 354477d4d..fb1aacd39 100644
--- a/modules/item/front/index.js
+++ b/modules/item/front/index.js
@@ -1,27 +1,6 @@
export * from './module';
import './main';
-import './index/';
-import './search-panel';
-import './diary';
-import './create';
-import './card';
import './descriptor';
import './descriptor-popover';
-import './basic-data';
-import './fetched-tags';
-import './tags';
-import './tax';
-import './log';
-import './request';
-import './request-search-panel';
-import './last-entries';
-import './botanical';
-import './barcode';
-import './summary';
-import './waste/index/';
-import './fixed-price';
-import './fixed-price-search-panel';
-import './item-type';
-import './item-shelving';
diff --git a/modules/item/front/index/index.html b/modules/item/front/index/index.html
deleted file mode 100644
index 6f5cce7c0..000000000
--- a/modules/item/front/index/index.html
+++ /dev/null
@@ -1,197 +0,0 @@
-
-
-
-
-
-
-
-
- |
-
- Identifier
- |
-
- Grouping
- |
-
- Packing
- |
-
- Description
- |
-
- Stems
- |
-
- Size
- |
-
- Type
- |
-
- Category
- |
-
- Intrastat
- |
-
- Origin
- |
-
- Buyer
- |
-
- Weight/Piece
- |
-
- Multiplier
- |
-
- Active
- |
-
- Producer
- |
-
- Landed
- |
- |
-
-
-
-
-
-
- |
-
-
- {{::item.id}}
-
- |
- {{::item.grouping | dashIfEmpty}} |
- {{::item.packing | dashIfEmpty}} |
-
-
- {{::item.name}}
-
- {{::item.subName}}
-
-
-
-
- |
- {{::item.stems}} |
- {{::item.size}} |
-
- {{::item.typeName}}
- |
-
- {{::item.category}}
- |
-
- {{::item.intrastat}}
- |
- {{::item.origin}} |
-
-
- {{::item.userName}}
-
- |
- {{::item.weightByPiece}} |
- {{::item.stemMultiplier}} |
-
-
-
- |
- {{::item.producer | dashIfEmpty}} |
- {{::item.landed | date:'dd/MM/yyyy'}} |
-
-
-
-
-
-
-
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Filter by selection
-
-
- Exclude selection
-
-
- Remove filter
-
-
- Remove all filters
-
-
-
\ No newline at end of file
diff --git a/modules/item/front/index/index.js b/modules/item/front/index/index.js
deleted file mode 100644
index 2bcc2302a..000000000
--- a/modules/item/front/index/index.js
+++ /dev/null
@@ -1,112 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-import './style.scss';
-
-class Controller extends Section {
- constructor($element, $) {
- super($element, $);
-
- this.smartTableOptions = {
- activeButtons: {
- search: true,
- shownColumns: true,
- },
- columns: [
- {
- field: 'category',
- autocomplete: {
- url: 'ItemCategories',
- valueField: 'name',
- }
- },
- {
- field: 'origin',
- autocomplete: {
- url: 'Origins',
- showField: 'code',
- valueField: 'code'
- }
- },
- {
- field: 'typeFk',
- autocomplete: {
- url: 'ItemTypes',
- }
- },
- {
- field: 'intrastat',
- autocomplete: {
- url: 'Intrastats',
- showField: 'description',
- valueField: 'description'
- }
- },
- {
- field: 'buyerFk',
- autocomplete: {
- url: 'TicketRequests/getItemTypeWorker',
- searchFunction: '{firstName: $search}',
- showField: 'nickname',
- valueField: 'id',
- }
- },
- {
- field: 'active',
- searchable: false
- },
- {
- field: 'landed',
- searchable: false
- },
- ]
- };
- }
-
- exprBuilder(param, value) {
- switch (param) {
- case 'category':
- return {'ic.name': value};
- case 'buyerFk':
- return {'it.workerFk': value};
- case 'grouping':
- return {'b.grouping': value};
- case 'packing':
- return {'b.packing': value};
- case 'origin':
- return {'ori.code': value};
- case 'typeFk':
- return {'i.typeFk': value};
- case 'intrastat':
- return {'intr.description': value};
- case 'name':
- return {'i.name': {like: `%${value}%`}};
- case 'producer':
- return {'pr.name': {like: `%${value}%`}};
- case 'id':
- case 'size':
- case 'subname':
- case 'isActive':
- case 'weightByPiece':
- case 'stemMultiplier':
- case 'stems':
- return {[`i.${param}`]: value};
- }
- }
-
- onCloneAccept(itemFk) {
- return this.$http.post(`Items/${itemFk}/clone`)
- .then(res => {
- this.$state.go('item.card.tags', {id: res.data.id});
- });
- }
-
- preview(item) {
- this.itemSelected = item;
- this.$.preview.show();
- }
-}
-
-ngModule.vnComponent('vnItemIndex', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/index/index.spec.js b/modules/item/front/index/index.spec.js
deleted file mode 100644
index 18abde581..000000000
--- a/modules/item/front/index/index.spec.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import './index.js';
-
-describe('Item', () => {
- describe('Component vnItemIndex', () => {
- let controller;
- let $httpBackend;
- let $scope;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject(($componentController, _$httpBackend_, $rootScope) => {
- $httpBackend = _$httpBackend_;
- $scope = $rootScope.$new();
- const $element = angular.element('');
- controller = $componentController('vnItemIndex', {$element, $scope});
- }));
-
- describe('onCloneAccept()', () => {
- it('should perform a post query and then call go() then update itemSelected in the controller', () => {
- jest.spyOn(controller.$state, 'go');
-
- $httpBackend.expectRoute('POST', `Items/:id/clone`).respond({id: 99});
- controller.onCloneAccept(1);
- $httpBackend.flush();
-
- expect(controller.$state.go).toHaveBeenCalledWith('item.card.tags', {id: 99});
- });
- });
- });
-});
diff --git a/modules/item/front/index/locale/es.yml b/modules/item/front/index/locale/es.yml
deleted file mode 100644
index 0d72edd28..000000000
--- a/modules/item/front/index/locale/es.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-picture: Foto
-Buy requests: Peticiones de compra
\ No newline at end of file
diff --git a/modules/item/front/index/preview.svg b/modules/item/front/index/preview.svg
deleted file mode 100644
index 5d56b5f34..000000000
--- a/modules/item/front/index/preview.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
diff --git a/modules/item/front/index/style.scss b/modules/item/front/index/style.scss
deleted file mode 100644
index e9fd9f935..000000000
--- a/modules/item/front/index/style.scss
+++ /dev/null
@@ -1,34 +0,0 @@
-@import "variables";
-
-vn-item-product {
- display: block;
-
- .id {
- background-color: $color-main;
- color: $color-font-dark;
- margin-bottom: 0;
- }
- .image {
- height: 112px;
- width: 112px;
-
- & > img {
- max-height: 100%;
- max-width: 100%;
- border-radius: 3px;
- }
- }
- vn-label-value:first-of-type section{
- margin-top: 9px;
- }
-}
-
-vn-item-index {
- table {
- img {
- border-radius: 50%;
- width: 50px;
- height: 50px;
- }
- }
-}
\ No newline at end of file
diff --git a/modules/item/front/item-shelving/index.html b/modules/item/front/item-shelving/index.html
deleted file mode 100644
index fa7a70544..000000000
--- a/modules/item/front/item-shelving/index.html
+++ /dev/null
@@ -1,118 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
-
- Created
- |
-
- Item
- |
-
- Concept
- |
-
- Parking
- |
-
- Shelving
- |
-
- Etiqueta
- |
-
- Packing
- |
-
-
-
-
-
-
-
- |
- {{::itemShelvingPlacementSupplyStock.created | date: 'dd/MM/yyyy'}} |
-
- {{::itemShelvingPlacementSupplyStock.itemFk}}
- |
-
-
- {{itemShelvingPlacementSupplyStock.longName}}
-
- |
-
- {{::itemShelvingPlacementSupplyStock.parking}}
- |
-
- {{::itemShelvingPlacementSupplyStock.shelving}}
- |
-
- {{(itemShelvingPlacementSupplyStock.stock / itemShelvingPlacementSupplyStock.packing).toFixed(2)}}
- |
-
- {{::itemShelvingPlacementSupplyStock.packing}}
- |
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/item/front/item-shelving/index.js b/modules/item/front/item-shelving/index.js
deleted file mode 100644
index b8584039b..000000000
--- a/modules/item/front/item-shelving/index.js
+++ /dev/null
@@ -1,89 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-
-export default class Controller extends Section {
- constructor($element, $) {
- super($element, $);
-
- this.smartTableOptions = {
- activeButtons: {
- search: true
- },
- columns: [
- {
- field: 'parking',
- autocomplete: {
- url: 'Parkings',
- showField: 'code',
- valueField: 'code'
- }
- },
- {
- field: 'shelving',
- autocomplete: {
- url: 'Shelvings',
- showField: 'code',
- valueField: 'code'
- }
- },
- {
- field: 'created',
- searchable: false
- },
- {
- field: 'itemFk',
- searchable: false
- },
- {
- field: 'longName',
- searchable: false
- }
- ]
- };
- }
-
- get checked() {
- const itemShelvings = this.$.model.data || [];
- const checkedLines = [];
- for (let itemShelving of itemShelvings) {
- if (itemShelving.checked)
- checkedLines.push(itemShelving.itemShelvingFk);
- }
-
- return checkedLines;
- }
-
- calculateTotals() {
- this.labelTotal = 0;
- const itemShelvings = this.$.model.data || [];
- itemShelvings.forEach(itemShelving => {
- const label = itemShelving.stock / itemShelving.packing;
- this.labelTotal += label;
- });
- }
-
- onRemove() {
- const params = {itemShelvingIds: this.checked};
- const query = `ItemShelvings/deleteItemShelvings`;
- this.$http.post(query, params)
- .then(() => {
- this.vnApp.showSuccess(this.$t('ItemShelvings removed'));
- this.$.model.refresh();
- });
- }
-
- exprBuilder(param, value) {
- switch (param) {
- case 'parking':
- case 'shelving':
- case 'label':
- case 'packing':
- return {[param]: value};
- }
- }
-}
-
-ngModule.vnComponent('vnItemShelving', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/item-shelving/index.spec.js b/modules/item/front/item-shelving/index.spec.js
deleted file mode 100644
index 55df1c27d..000000000
--- a/modules/item/front/item-shelving/index.spec.js
+++ /dev/null
@@ -1,81 +0,0 @@
-import './index';
-import crudModel from 'core/mocks/crud-model';
-
-describe('item shelving', () => {
- describe('Component vnItemShelving', () => {
- let controller;
- let $httpBackend;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject(($componentController, _$httpBackend_) => {
- $httpBackend = _$httpBackend_;
- const $element = angular.element('');
- controller = $componentController('vnItemShelving', {$element});
- controller.$.model = crudModel;
- controller.$.model.data = [
- {itemShelvingFk: 1, packing: 10, stock: 1},
- {itemShelvingFk: 2, packing: 12, stock: 5},
- {itemShelvingFk: 4, packing: 20, stock: 10}
- ];
- const modelData = controller.$.model.data;
- modelData[0].checked = true;
- modelData[1].checked = true;
- }));
-
- describe('checked() getter', () => {
- it('should return a the selected rows', () => {
- const result = controller.checked;
-
- expect(result).toEqual(expect.arrayContaining([1, 2]));
- });
- });
-
- describe('calculateTotals()', () => {
- it('should calculate the total of labels', () => {
- controller.calculateTotals();
-
- expect(controller.labelTotal).toEqual(1.0166666666666666);
- });
- });
-
- describe('onRemove()', () => {
- it('shoud remove the selected lines', () => {
- jest.spyOn(controller.$.model, 'refresh');
- const expectedParams = {itemShelvingIds: [1, 2]};
-
- $httpBackend.expectPOST('ItemShelvings/deleteItemShelvings', expectedParams).respond(200);
- controller.onRemove();
- $httpBackend.flush();
-
- expect(controller.$.model.refresh).toHaveBeenCalled();
- });
- });
-
- describe('exprBuilder()', () => {
- it('should search by parking', () => {
- const expr = controller.exprBuilder('parking', '700-01');
-
- expect(expr).toEqual({'parking': '700-01'});
- });
-
- it('should search by shelving', () => {
- const expr = controller.exprBuilder('shelving', 'AAA');
-
- expect(expr).toEqual({'shelving': 'AAA'});
- });
-
- it('should search by label', () => {
- const expr = controller.exprBuilder('label', 0.17);
-
- expect(expr).toEqual({'label': 0.17});
- });
-
- it('should search by packing', () => {
- const expr = controller.exprBuilder('packing', 10);
-
- expect(expr).toEqual({'packing': 10});
- });
- });
- });
-});
diff --git a/modules/item/front/item-shelving/locale/es.yml b/modules/item/front/item-shelving/locale/es.yml
deleted file mode 100644
index 006363cfa..000000000
--- a/modules/item/front/item-shelving/locale/es.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-Shelving: Matrícula
-Remove selected lines: Eliminar líneas seleccionadas
-Selected lines will be deleted: Las líneas seleccionadas serán eliminadas
-ItemShelvings removed: Carros eliminados
-Total labels: Total etiquetas
\ No newline at end of file
diff --git a/modules/item/front/item-type/basic-data/index.html b/modules/item/front/item-type/basic-data/index.html
deleted file mode 100644
index 1417a05ab..000000000
--- a/modules/item/front/item-type/basic-data/index.html
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/modules/item/front/item-type/basic-data/index.js b/modules/item/front/item-type/basic-data/index.js
deleted file mode 100644
index ec280fdf8..000000000
--- a/modules/item/front/item-type/basic-data/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import ngModule from '../../module';
-import Section from 'salix/components/section';
-
-export default class Controller extends Section {}
-
-ngModule.component('vnItemTypeBasicData', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- itemType: '<'
- }
-});
diff --git a/modules/item/front/item-type/card/index.html b/modules/item/front/item-type/card/index.html
deleted file mode 100644
index 80af6088e..000000000
--- a/modules/item/front/item-type/card/index.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/modules/item/front/item-type/card/index.js b/modules/item/front/item-type/card/index.js
deleted file mode 100644
index fa6b37340..000000000
--- a/modules/item/front/item-type/card/index.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import ngModule from '../../module';
-import ModuleCard from 'salix/components/module-card';
-
-class Controller extends ModuleCard {
- reload() {
- const filter = {
- include: [
- {relation: 'worker'},
- {relation: 'category'},
- {relation: 'itemPackingType'},
- {relation: 'temperature'}
- ]
- };
-
- this.$http.get(`ItemTypes/${this.$params.id}`, {filter})
- .then(res => this.itemType = res.data);
- }
-}
-
-ngModule.vnComponent('vnItemTypeCard', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/item-type/card/index.spec.js b/modules/item/front/item-type/card/index.spec.js
deleted file mode 100644
index ab2314bb9..000000000
--- a/modules/item/front/item-type/card/index.spec.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import './index';
-
-describe('component vnItemTypeCard', () => {
- let controller;
- let $httpBackend;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject(($componentController, _$httpBackend_) => {
- $httpBackend = _$httpBackend_;
- controller = $componentController('vnItemTypeCard', {$element: null});
- }));
-
- describe('reload()', () => {
- it('should reload the controller data', () => {
- controller.$params.id = 1;
-
- const itemType = {id: 1};
-
- $httpBackend.expectGET('ItemTypes/1').respond(itemType);
- controller.reload();
- $httpBackend.flush();
-
- expect(controller.itemType).toEqual(itemType);
- });
- });
-});
diff --git a/modules/item/front/item-type/create/index.html b/modules/item/front/item-type/create/index.html
deleted file mode 100644
index 44cb5183d..000000000
--- a/modules/item/front/item-type/create/index.html
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
diff --git a/modules/item/front/item-type/create/index.js b/modules/item/front/item-type/create/index.js
deleted file mode 100644
index ccf7744be..000000000
--- a/modules/item/front/item-type/create/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import ngModule from '../../module';
-import Section from 'salix/components/section';
-
-export default class Controller extends Section {
- onSubmit() {
- return this.$.watcher.submit().then(res =>
- this.$state.go('item.itemType.card.basicData', {id: res.data.id})
- );
- }
-}
-
-ngModule.component('vnItemTypeCreate', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/item-type/create/index.spec.js b/modules/item/front/item-type/create/index.spec.js
deleted file mode 100644
index 4b000df9a..000000000
--- a/modules/item/front/item-type/create/index.spec.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import './index';
-
-describe('component vnItemTypeCreate', () => {
- let $scope;
- let $state;
- let controller;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject(($componentController, $rootScope, _$state_) => {
- $scope = $rootScope.$new();
- $state = _$state_;
- $scope.watcher = {
- submit: () => {
- return {
- then: callback => {
- callback({data: {id: '1234'}});
- }
- };
- }
- };
- const $element = angular.element('');
- controller = $componentController('vnItemTypeCreate', {$element, $scope});
- }));
-
- describe('onSubmit()', () => {
- it(`should call submit() on the watcher then expect a callback`, () => {
- jest.spyOn($state, 'go');
- controller.onSubmit();
-
- expect(controller.$state.go).toHaveBeenCalledWith('item.itemType.card.basicData', {id: '1234'});
- });
- });
-});
diff --git a/modules/item/front/item-type/descriptor/index.html b/modules/item/front/item-type/descriptor/index.html
deleted file mode 100644
index 5a0e8ed49..000000000
--- a/modules/item/front/item-type/descriptor/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/item/front/item-type/descriptor/index.js b/modules/item/front/item-type/descriptor/index.js
deleted file mode 100644
index 9322c599a..000000000
--- a/modules/item/front/item-type/descriptor/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import ngModule from '../../module';
-import Descriptor from 'salix/components/descriptor';
-
-class Controller extends Descriptor {
- get itemType() {
- return this.entity;
- }
-
- set itemType(value) {
- this.entity = value;
- }
-}
-
-ngModule.component('vnItemTypeDescriptor', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- itemType: '<'
- }
-});
diff --git a/modules/item/front/item-type/index.js b/modules/item/front/item-type/index.js
deleted file mode 100644
index 5dcbe4097..000000000
--- a/modules/item/front/item-type/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import './main';
-import './index/';
-import './summary';
-import './card';
-import './descriptor';
-import './create';
-import './basic-data';
-import './search-panel';
diff --git a/modules/item/front/item-type/index/index.html b/modules/item/front/item-type/index/index.html
deleted file mode 100644
index 50b9eb172..000000000
--- a/modules/item/front/item-type/index/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/item/front/item-type/index/index.js b/modules/item/front/item-type/index/index.js
deleted file mode 100644
index 54ecba997..000000000
--- a/modules/item/front/item-type/index/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import ngModule from '../../module';
-import Section from 'salix/components/section';
-
-export default class Controller extends Section {
- preview(itemType) {
- this.selectedItemType = itemType;
- this.$.summary.show();
- }
-}
-
-ngModule.component('vnItemTypeIndex', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/item-type/index/index.spec.js b/modules/item/front/item-type/index/index.spec.js
deleted file mode 100644
index 887c03f7f..000000000
--- a/modules/item/front/item-type/index/index.spec.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import './index';
-
-describe('Item', () => {
- describe('Component vnItemTypeIndex', () => {
- let controller;
- let $window;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject(($componentController, _$window_) => {
- $window = _$window_;
- const $element = angular.element('');
- controller = $componentController('vnItemTypeIndex', {$element});
- }));
-
- describe('preview()', () => {
- it('should show the dialog summary', () => {
- controller.$.summary = {show: () => {}};
- jest.spyOn(controller.$.summary, 'show');
-
- const itemType = {id: 1};
-
- const event = new MouseEvent('click', {
- view: $window,
- bubbles: true,
- cancelable: true
- });
- controller.preview(event, itemType);
-
- expect(controller.$.summary.show).toHaveBeenCalledWith();
- });
- });
- });
-});
diff --git a/modules/item/front/item-type/index/locale/es.yml b/modules/item/front/item-type/index/locale/es.yml
deleted file mode 100644
index 1a71ff212..000000000
--- a/modules/item/front/item-type/index/locale/es.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-Item Type: Familia
-New itemType: Nueva familia
\ No newline at end of file
diff --git a/modules/item/front/item-type/main/index.html b/modules/item/front/item-type/main/index.html
deleted file mode 100644
index faba696c0..000000000
--- a/modules/item/front/item-type/main/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/item/front/item-type/main/index.js b/modules/item/front/item-type/main/index.js
deleted file mode 100644
index 0dea00abb..000000000
--- a/modules/item/front/item-type/main/index.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import ngModule from '../../module';
-import ModuleMain from 'salix/components/module-main';
-
-export default class ItemType extends ModuleMain {
- exprBuilder(param, value) {
- switch (param) {
- case 'search':
- return /^\d+$/.test(value)
- ? {id: value}
- : {or: [
- {name: {like: `%${value}%`}},
- {code: {like: `%${value}%`}}
- ]};
- case 'name':
- case 'code':
- return {[param]: {like: `%${value}%`}};
- }
- }
-}
-
-ngModule.vnComponent('vnItemType', {
- controller: ItemType,
- template: require('./index.html')
-});
diff --git a/modules/item/front/item-type/main/index.spec.js b/modules/item/front/item-type/main/index.spec.js
deleted file mode 100644
index dcb14ec0e..000000000
--- a/modules/item/front/item-type/main/index.spec.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import './index';
-
-describe('Item', () => {
- describe('Component vnItemType', () => {
- let controller;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject($componentController => {
- const $element = angular.element('');
- controller = $componentController('vnItemType', {$element});
- }));
-
- describe('exprBuilder()', () => {
- it('should return a filter based on a search by id', () => {
- const filter = controller.exprBuilder('search', '123');
-
- expect(filter).toEqual({id: '123'});
- });
-
- it('should return a filter based on a search by name or code', () => {
- const filter = controller.exprBuilder('search', 'Alstroemeria');
-
- expect(filter).toEqual({or: [
- {name: {like: '%Alstroemeria%'}},
- {code: {like: '%Alstroemeria%'}},
- ]});
- });
- });
- });
-});
diff --git a/modules/item/front/item-type/main/locale/es.yml b/modules/item/front/item-type/main/locale/es.yml
deleted file mode 100644
index 7aceac46f..000000000
--- a/modules/item/front/item-type/main/locale/es.yml
+++ /dev/null
@@ -1 +0,0 @@
-Search itemType by id, name or code: Buscar familia por id, nombre o código
\ No newline at end of file
diff --git a/modules/item/front/item-type/search-panel/index.html b/modules/item/front/item-type/search-panel/index.html
deleted file mode 100644
index 4aa762900..000000000
--- a/modules/item/front/item-type/search-panel/index.html
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/modules/item/front/item-type/search-panel/index.js b/modules/item/front/item-type/search-panel/index.js
deleted file mode 100644
index 17a439c39..000000000
--- a/modules/item/front/item-type/search-panel/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import ngModule from '../../module';
-import SearchPanel from 'core/components/searchbar/search-panel';
-
-ngModule.component('vnItemTypeSearchPanel', {
- template: require('./index.html'),
- controller: SearchPanel
-});
diff --git a/modules/item/front/item-type/summary/index.html b/modules/item/front/item-type/summary/index.html
deleted file mode 100644
index d003c8f38..000000000
--- a/modules/item/front/item-type/summary/index.html
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
- {{summary.id}} - {{summary.name}} - {{summary.worker.firstName}} {{summary.worker.lastName}}
-
-
-
- Basic data
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/item/front/item-type/summary/index.js b/modules/item/front/item-type/summary/index.js
deleted file mode 100644
index 7645de8b1..000000000
--- a/modules/item/front/item-type/summary/index.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import ngModule from '../../module';
-import Component from 'core/lib/component';
-
-class Controller extends Component {
- set itemType(value) {
- this._itemType = value;
- this.$.summary = null;
- if (!value) return;
-
- const filter = {
- include: [
- {relation: 'worker'},
- {relation: 'category'},
- {relation: 'itemPackingType'},
- {relation: 'temperature'}
- ]
- };
- this.$http.get(`ItemTypes/${value.id}`, {filter})
- .then(res => this.$.summary = res.data);
- }
-
- get itemType() {
- return this._itemType;
- }
-}
-
-ngModule.component('vnItemTypeSummary', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- itemType: '<'
- }
-});
diff --git a/modules/item/front/item-type/summary/locale/es.yml b/modules/item/front/item-type/summary/locale/es.yml
deleted file mode 100644
index 8f4cef70f..000000000
--- a/modules/item/front/item-type/summary/locale/es.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-Life: Vida
-Promo: Promoción
-Item packing type: Tipo de embalaje
-Is unconventional size: Es de tamaño poco convencional
\ No newline at end of file
diff --git a/modules/item/front/last-entries/index.html b/modules/item/front/last-entries/index.html
deleted file mode 100644
index e3b84655c..000000000
--- a/modules/item/front/last-entries/index.html
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Ig
- Warehouse
- Landed
- Entry
- PVP
- Label
- Packing
- Grouping
- Stems
- Quantity
- Cost
- Kg.
- Cube
- Provider
-
-
-
-
-
-
-
-
- {{::entry.warehouse| dashIfEmpty}}
- {{::entry.landed | date:'dd/MM/yyyy HH:mm'}}
-
-
- {{::entry.entryFk | dashIfEmpty}}
-
-
-
- {{::entry.price2 | currency: 'EUR':2 | dashIfEmpty}} / {{::entry.price3 | currency: 'EUR':2 | dashIfEmpty}}
-
- {{entry.stickers | dashIfEmpty}}
-
-
- {{::entry.packing | dashIfEmpty}}
-
-
-
-
- {{::entry.grouping | dashIfEmpty}}
-
-
- {{::entry.stems | dashIfEmpty}}
- {{::entry.quantity}}
-
-
- {{::entry.cost | currency: 'EUR':3 | dashIfEmpty}}
-
-
- {{::entry.weight | dashIfEmpty}}
- {{::entry.packagingFk | dashIfEmpty}}
- {{::entry.supplier | dashIfEmpty}}
-
-
-
-
-
-
-
-
-
-
-
-
-
- Filter by selection
-
-
- Exclude selection
-
-
- Remove filter
-
-
- Remove all filters
-
-
- Copy value
-
-
-
diff --git a/modules/item/front/last-entries/index.js b/modules/item/front/last-entries/index.js
deleted file mode 100644
index a5f1f4d9d..000000000
--- a/modules/item/front/last-entries/index.js
+++ /dev/null
@@ -1,105 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-
-class Controller extends Section {
- constructor($element, $) {
- super($element, $);
-
- const from = Date.vnNew();
- from.setDate(from.getDate() - 75);
- from.setHours(0, 0, 0, 0);
-
- const to = Date.vnNew();
- to.setDate(to.getDate() + 10);
- to.setHours(23, 59, 59, 59);
-
- this.filter = {
- where: {
- itemFk: this.$params.id,
- landed: {
- between: [from, to]
- }
- }
- };
- this._dateFrom = from;
- this._dateTo = to;
- }
-
- set dateFrom(value) {
- this._dateFrom = value;
-
- if (!value) return;
-
- const from = new Date(value);
- from.setHours(0, 0, 0, 0);
-
- const to = new Date(this._dateTo);
- to.setHours(23, 59, 59, 59);
-
- this.filter.where.landed = {
- between: [from, to]
- };
- this.$.model.refresh();
- }
-
- set dateTo(value) {
- this._dateTo = value;
-
- if (!value) return;
-
- const from = new Date(this._dateFrom);
- from.setHours(0, 0, 0, 0);
-
- const to = new Date(value);
- to.setHours(23, 59, 59, 59);
-
- this.filter.where.landed = {
- between: [from, to]
- };
- this.$.model.refresh();
- }
-
- get dateFrom() {
- return this._dateFrom;
- }
-
- get dateTo() {
- return this._dateTo;
- }
-
- exprBuilder(param, value) {
- switch (param) {
- case 'id':
- case 'quantity':
- case 'packagingFk':
- return {[`b.${param}`]: value};
- case 'supplierFk':
- return {[`s.id`]: value};
- case 'warehouseFk':
- return {'tr.warehouseInFk': value};
- case 'landed':
- return {'tr.landed': {
- 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];
- }
-}
-
-Controller.$inject = ['$element', '$scope'];
-
-ngModule.vnComponent('vnItemLastEntries', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- item: '<'
- }
-});
diff --git a/modules/item/front/last-entries/locale/es.yml b/modules/item/front/last-entries/locale/es.yml
deleted file mode 100644
index f2917bb63..000000000
--- a/modules/item/front/last-entries/locale/es.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-Since: Desde
-Landed: F. entrega
-Stems: Tallos
-Quantity: Cantidad
-Cost: Coste
-Label: Etiquetas
-Entry: Entrada
-Ignored: Ignorado
-Provider: Proveedor
-Cube: Cubo
-Price Per Unit: Precio Por Unidad
-Price Per Package: Precio Por Paquete
-Freight: Porte
-Package: Embalaje
-Comission: Comision
\ No newline at end of file
diff --git a/modules/item/front/main/index.html b/modules/item/front/main/index.html
index 44d125758..e69de29bb 100644
--- a/modules/item/front/main/index.html
+++ b/modules/item/front/main/index.html
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/item/front/main/index.js b/modules/item/front/main/index.js
index 1d99c91a1..33e5822c3 100644
--- a/modules/item/front/main/index.js
+++ b/modules/item/front/main/index.js
@@ -3,11 +3,10 @@ import ModuleMain from 'salix/components/module-main';
export default class Items extends ModuleMain {
constructor($element, $) {
super($element, $);
-
- this.filterParams = {
- isActive: true,
- isFloramondo: false
- };
+ }
+ async $onInit() {
+ this.$state.go('home');
+ window.location.href = await this.vnApp.getUrl(`claim/`);
}
}
diff --git a/modules/item/front/request-search-panel/index.html b/modules/item/front/request-search-panel/index.html
deleted file mode 100644
index 6a51a429d..000000000
--- a/modules/item/front/request-search-panel/index.html
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
-
-
-
diff --git a/modules/item/front/request-search-panel/index.js b/modules/item/front/request-search-panel/index.js
deleted file mode 100644
index 556bdd874..000000000
--- a/modules/item/front/request-search-panel/index.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import ngModule from '../module';
-import SearchPanel from 'core/components/searchbar/search-panel';
-
-class Controller extends SearchPanel {
- constructor($element, $) {
- super($element, $);
-
- this.states = [
- {code: 'pending', name: this.$t('Pending')},
- {code: 'accepted', name: this.$t('Accepted')},
- {code: 'denied', name: this.$t('Denied')}
- ];
- }
-
- get from() {
- return this._from;
- }
-
- set from(value) {
- this._from = value;
- this.filter.scopeDays = null;
- }
-
- get to() {
- return this._to;
- }
-
- set to(value) {
- this._to = value;
- this.filter.scopeDays = null;
- }
-
- get scopeDays() {
- return this._scopeDays;
- }
-
- set scopeDays(value) {
- this._scopeDays = value;
-
- this.filter.from = null;
- this.filter.to = null;
- }
-}
-
-ngModule.vnComponent('vnRequestSearchPanel', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/request-search-panel/index.spec.js b/modules/item/front/request-search-panel/index.spec.js
deleted file mode 100644
index 56c76eabf..000000000
--- a/modules/item/front/request-search-panel/index.spec.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import './index';
-
-describe(' Component vnRequestSearchPanel', () => {
- let controller;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject($componentController => {
- controller = $componentController('vnRequestSearchPanel', {$element: null});
- controller.$t = () => {};
- controller.filter = {};
- }));
-
- describe('from() setter', () => {
- it('should clear the scope days when setting the from property', () => {
- controller.filter.scopeDays = 1;
-
- controller.from = Date.vnNew();
-
- expect(controller.filter.scopeDays).toBeNull();
- expect(controller.from).toBeDefined();
- });
- });
-
- describe('to() setter', () => {
- it('should clear the scope days when setting the to property', () => {
- controller.filter.scopeDays = 1;
-
- controller.to = Date.vnNew();
-
- expect(controller.filter.scopeDays).toBeNull();
- expect(controller.to).toBeDefined();
- });
- });
-
- describe('scopeDays() setter', () => {
- it('should clear the date range when setting the scopeDays property', () => {
- controller.filter.from = Date.vnNew();
- controller.filter.to = Date.vnNew();
-
- controller.scopeDays = 1;
-
- expect(controller.filter.from).toBeNull();
- expect(controller.filter.to).toBeNull();
- expect(controller.scopeDays).toBeDefined();
- });
- });
-});
diff --git a/modules/item/front/request-search-panel/locale/es.yml b/modules/item/front/request-search-panel/locale/es.yml
deleted file mode 100644
index 8d5276194..000000000
--- a/modules/item/front/request-search-panel/locale/es.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-Ink: Tinta
-Origin: Origen
-Producer: Productor
-For me: Para mi
\ No newline at end of file
diff --git a/modules/item/front/request/index.html b/modules/item/front/request/index.html
deleted file mode 100644
index 03c8db8ec..000000000
--- a/modules/item/front/request/index.html
+++ /dev/null
@@ -1,172 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- Ticket ID
- Shipped
- Description
- Requester
- Requested
- Price
- Atender
- Item
- Achieved
- Concept
- State
-
-
-
-
-
-
-
- {{request.ticketFk}}
-
-
-
-
- {{::request.shipped | date: 'dd/MM/yyyy'}}
-
-
- {{::request.description}}
-
-
- {{::request.requesterName}}
-
-
- {{::request.quantity}}
- {{::request.price | currency: 'EUR':2}}
-
-
- {{::request.attenderName}}
-
-
-
- {{request.itemFk}}
-
-
-
-
-
-
- {{request.saleQuantity}}
-
-
-
-
-
-
-
- {{request.itemDescription}}
-
-
- {{$ctrl.getState(request.isOk)}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Filter by selection
-
-
- Exclude selection
-
-
- Remove filter
-
-
- Remove all filters
-
-
- Copy value
-
-
-
diff --git a/modules/item/front/request/index.js b/modules/item/front/request/index.js
deleted file mode 100644
index 747cbeff2..000000000
--- a/modules/item/front/request/index.js
+++ /dev/null
@@ -1,143 +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, $);
-
- if (!this.$state.q) {
- const today = Date.vnNew();
- today.setHours(0, 0, 0, 0);
-
- const nextWeek = Date.vnNew();
- nextWeek.setHours(23, 59, 59, 59);
- nextWeek.setDate(nextWeek.getDate() + 7);
-
- this.filterParams = {
- from: today,
- to: nextWeek,
- state: 'pending'
- };
- }
- }
-
- fetchParams($params) {
- if (!Object.entries($params).length)
- $params.scopeDays = 1;
-
- if (typeof $params.scopeDays === 'number') {
- const from = Date.vnNew();
- from.setHours(0, 0, 0, 0);
-
- const to = new Date(from.getTime());
- to.setDate(to.getDate() + $params.scopeDays);
- to.setHours(23, 59, 59, 999);
-
- Object.assign($params, {from, to});
- }
-
- return $params;
- }
-
- getState(isOk) {
- if (isOk === null)
- return 'Pending';
- else if (isOk)
- return 'Accepted';
- else
- return 'Denied';
- }
-
- confirmRequest(request) {
- if (request.itemFk && request.saleQuantity) {
- let params = {
- itemFk: request.itemFk,
- quantity: request.saleQuantity
- };
-
- let query = `TicketRequests/${request.id}/confirm`;
- this.$http.post(query, params).then(res => {
- request.itemDescription = res.data.concept;
- request.isOk = true;
-
- this.vnApp.showSuccess(this.$t('Data saved!'));
- });
- }
- }
-
- changeQuantity(request) {
- if (request.saleFk) {
- let params = {
- quantity: request.saleQuantity
- };
-
- let endpoint = `Sales/${request.saleFk}`;
-
- this.$http.patch(endpoint, params)
- .then(() => this.vnApp.showSuccess(this.$t('Data saved!')))
- .then(() => this.confirmRequest(request));
- } else
- this.confirmRequest(request);
- }
-
- compareDate(date) {
- let today = Date.vnNew();
- today.setHours(0, 0, 0, 0);
- let timeTicket = new Date(date);
- timeTicket.setHours(0, 0, 0, 0);
-
- let comparation = today - timeTicket;
-
- if (comparation == 0)
- return 'warning';
- if (comparation < 0)
- return 'success';
- }
-
- onDenyAccept(request) {
- let params = {
- observation: this.denyObservation
- };
-
- return this.$http.post(`TicketRequests/${request.id}/deny`, params)
- .then(res => {
- const newRequest = res.data;
- request.isOk = newRequest.isOk;
- request.attenderFk = newRequest.attenderFk;
- request.response = newRequest.response;
-
- this.vnApp.showSuccess(this.$t('Data saved!'));
- });
- }
-
- exprBuilder(param, value) {
- switch (param) {
- case 'ticketFk':
- case 'quantity':
- case 'price':
- case 'isOk':
- return {[`tr.${param}`]: value};
- case 'attenderName':
- return {[`ua.name`]: value};
- case 'shipped':
- return {'t.shipped': {
- 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];
- }
-}
-
-ngModule.vnComponent('vnItemRequest', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/request/index.spec.js b/modules/item/front/request/index.spec.js
deleted file mode 100644
index aadeaddca..000000000
--- a/modules/item/front/request/index.spec.js
+++ /dev/null
@@ -1,120 +0,0 @@
-import './index.js';
-
-describe('Item', () => {
- describe('Component vnItemRequest', () => {
- let $scope;
- let controller;
- let $httpBackend;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject(($componentController, $rootScope, _$httpBackend_) => {
- $httpBackend = _$httpBackend_;
- $scope = $rootScope.$new();
- controller = $componentController('vnItemRequest', {$element: null, $scope});
- }));
-
- afterAll(() => {
- $scope.$destroy();
- $element.remove();
- });
-
- describe('getState()', () => {
- it(`should return an string depending to the isOK value`, () => {
- let isOk = null;
- let result = controller.getState(isOk);
-
- expect(result).toEqual('Pending');
-
- isOk = 1;
- result = controller.getState(isOk);
-
- expect(result).toEqual('Accepted');
-
- isOk = 0;
- result = controller.getState(isOk);
-
- expect(result).toEqual('Denied');
- });
- });
-
- describe('confirmRequest()', () => {
- it(`should do nothing if the request does't have itemFk or saleQuantity`, () => {
- let request = {};
- jest.spyOn(controller.vnApp, 'showSuccess');
-
- controller.confirmRequest(request);
-
- expect(controller.vnApp.showSuccess).not.toHaveBeenCalled();
- });
-
- it('should perform a query and call vnApp.showSuccess() and refresh if the conditions are met', () => {
- jest.spyOn(controller.vnApp, 'showSuccess');
-
- const expectedResult = {concept: 'Melee Weapon'};
- let request = {itemFk: 1, saleQuantity: 1, id: 1};
-
- $httpBackend.expectPOST(`TicketRequests/${request.id}/confirm`).respond(expectedResult);
- controller.confirmRequest(request);
- $httpBackend.flush();
-
- expect(controller.vnApp.showSuccess).toHaveBeenCalled();
- });
- });
-
- describe('changeQuantity()', () => {
- it(`should call confirmRequest() if there's no sale id in the request`, () => {
- let request = {};
- jest.spyOn(controller, 'confirmRequest');
-
- controller.changeQuantity(request);
-
- expect(controller.confirmRequest).toHaveBeenCalledWith(jasmine.any(Object));
- });
-
- it(`should perform a query and call vnApp.showSuccess() if the conditions are met`, () => {
- let request = {saleFk: 1, saleQuantity: 1};
- jest.spyOn(controller.vnApp, 'showSuccess');
-
- $httpBackend.expectPATCH(`Sales/${request.saleFk}`).respond();
- controller.changeQuantity(request);
- $httpBackend.flush();
-
- expect(controller.vnApp.showSuccess).toHaveBeenCalled();
- });
- });
-
- describe('compareDate()', () => {
- it(`should return "success" if receives a future date`, () => {
- let date = '3019-02-18T11:00:00.000Z';
- let result = controller.compareDate(date);
-
- expect(result).toEqual('success');
- });
-
- it(`should return "warning" if date is today`, () => {
- let date = Date.vnNew();
- let result = controller.compareDate(date);
-
- expect(result).toEqual('warning');
- });
- });
-
- describe('onDenyAccept()', () => {
- it(`should deny the request`, () => {
- const request = {
- id: 1,
- response: 'new'
- };
-
- $httpBackend.expectPOST(`TicketRequests/${request.id}/deny`)
- .respond({response: 'denied'});
- controller.onDenyAccept(request);
- $httpBackend.flush();
-
- expect(request.response).toBe('denied');
- });
- });
- });
-});
-
diff --git a/modules/item/front/request/locale/es.yml b/modules/item/front/request/locale/es.yml
deleted file mode 100644
index c61a00130..000000000
--- a/modules/item/front/request/locale/es.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-Discard: Descartar
-Specify the reasons to deny this request: Especifica las razones para descartar la petición
-Buy requests: Peticiones de compra
-Search request by id or alias: Buscar peticiones por identificador o alias
-Requested: Solicitado
-Achieved: Conseguido
-Pending: Pendiente
-Accepted: Aceptada
-Denied: Rechazada
\ No newline at end of file
diff --git a/modules/item/front/request/style.scss b/modules/item/front/request/style.scss
deleted file mode 100644
index 59612bbd6..000000000
--- a/modules/item/front/request/style.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-@import "variables";
-
-vn-item-request {
- vn-dialog[vn-id="denyReason"] {
- button.close {
- display: none
- }
- vn-button {
- margin: 0 auto
- }
- vn-textarea {
- width: 100%
- }
- }
-}
\ No newline at end of file
diff --git a/modules/item/front/routes.json b/modules/item/front/routes.json
index 4b7cd1490..3d04e1c8b 100644
--- a/modules/item/front/routes.json
+++ b/modules/item/front/routes.json
@@ -6,25 +6,7 @@
"dependencies": ["worker", "client", "ticket"],
"menus": {
"main": [
- {"state": "item.index", "icon": "icon-item"},
- {"state": "item.request", "icon": "icon-buyrequest"},
- {"state": "item.waste.index", "icon": "icon-claims"},
- {"state": "item.fixedPrice", "icon": "icon-fixedPrice"},
- {"state": "item.itemType", "icon": "contact_support"}
- ],
- "card": [
- {"state": "item.card.basicData", "icon": "settings"},
- {"state": "item.card.tags", "icon": "icon-tags"},
- {"state": "item.card.last-entries", "icon": "icon-regentry"},
- {"state": "item.card.tax", "icon": "icon-tax"},
- {"state": "item.card.botanical", "icon": "local_florist"},
- {"state": "item.card.shelving", "icon": "icon-inventory"},
- {"state": "item.card.itemBarcode", "icon": "icon-barcode"},
- {"state": "item.card.diary", "icon": "icon-transaction"},
- {"state": "item.card.log", "icon": "history"}
- ],
- "itemType": [
- {"state": "item.itemType.card.basicData", "icon": "settings"}
+ {"state": "item.index", "icon": "icon-item"}
]
},
"keybindings": [
@@ -44,187 +26,11 @@
"component": "vn-item-index",
"description": "Items"
},
- {
- "url": "/create",
- "state": "item.create",
- "component": "vn-item-create",
- "description": "New item"
- },
{
"url": "/:id",
"state": "item.card",
"abstract": true,
"component": "vn-item-card"
- },
- {
- "url" : "/basic-data",
- "state": "item.card.basicData",
- "component": "vn-item-basic-data",
- "description": "Basic data",
- "params": {
- "item": "$ctrl.item"
- },
- "acl": ["buyer"]
- },
- {
- "url" : "/tags",
- "state": "item.card.tags",
- "component": "vn-item-tags",
- "description": "Tags",
- "params": {
- "item-tags": "$ctrl.itemTags"
- },
- "acl": ["buyer", "replenisher"]
- },
- {
- "url" : "/tax",
- "state": "item.card.tax",
- "component": "vn-item-tax",
- "description": "Tax",
- "acl": ["administrative","buyer"]
- },
- {
- "url" : "/botanical",
- "state": "item.card.botanical",
- "component": "vn-item-botanical",
- "description": "Botanical",
- "params": {
- "item": "$ctrl.item"
- },
- "acl": ["buyer"]
- },
- {
- "url" : "/shelving",
- "state": "item.card.shelving",
- "component": "vn-item-shelving",
- "description": "Shelvings",
- "params": {
- "item": "$ctrl.item"
- },
- "acl": ["employee"]
- },
- {
- "url" : "/barcode",
- "state": "item.card.itemBarcode",
- "component": "vn-item-barcode",
- "description": "Barcodes",
- "params": {
- "item": "$ctrl.item"
- },
- "acl": ["buyer","replenisher"]
- },
- {
- "url" : "/summary",
- "state": "item.card.summary",
- "component": "vn-item-summary",
- "description": "Summary",
- "params": {
- "item": "$ctrl.item"
- }
- },
- {
- "url" : "/diary?warehouseFk&lineFk",
- "state": "item.card.diary",
- "component": "vn-item-diary",
- "description": "Diary",
- "params": {
- "item": "$ctrl.item"
- },
- "acl": ["employee"]
- },
- {
- "url" : "/last-entries",
- "state": "item.card.last-entries",
- "component": "vn-item-last-entries",
- "description": "Last entries",
- "params": {
- "item": "$ctrl.item"
- },
- "acl": ["employee"]
- },
- {
- "url" : "/log",
- "state": "item.card.log",
- "component": "vn-item-log",
- "description": "Log"
- },
- {
- "url" : "/request?q",
- "state": "item.request",
- "component": "vn-item-request",
- "description": "Buy requests",
- "params": {
- "item": "$ctrl.item"
- },
- "acl": ["employee"]
- },
- {
- "url": "/waste",
- "state": "item.waste",
- "component": "ui-view",
- "abstract": true
- },
- {
- "url" : "/index",
- "state": "item.waste.index",
- "component": "vn-item-waste-index",
- "description": "Waste breakdown",
- "acl": ["buyer"]
- },
- {
- "url" : "/detail?buyer&family",
- "state": "item.waste.detail",
- "component": "vn-item-waste-detail",
- "description": "Waste breakdown by item",
- "acl": ["buyer"]
- },
- {
- "url" : "/fixed-price?q",
- "state": "item.fixedPrice",
- "component": "vn-fixed-price",
- "description": "Fixed prices",
- "acl": ["buyer"]
- },
- {
- "url" : "/item-type?q",
- "state": "item.itemType",
- "component": "vn-item-type",
- "description": "Item Type",
- "acl": ["buyer"]
- },
- {
- "url": "/create",
- "state": "item.itemType.create",
- "component": "vn-item-type-create",
- "description": "New itemType",
- "acl": ["buyer"]
- },
- {
- "url": "/:id",
- "state": "item.itemType.card",
- "component": "vn-item-type-card",
- "abstract": true,
- "description": "Detail"
- },
- {
- "url": "/summary",
- "state": "item.itemType.card.summary",
- "component": "vn-item-type-summary",
- "description": "Summary",
- "params": {
- "item-type": "$ctrl.itemType"
- },
- "acl": ["buyer"]
- },
- {
- "url": "/basic-data",
- "state": "item.itemType.card.basicData",
- "component": "vn-item-type-basic-data",
- "description": "Basic data",
- "params": {
- "item-type": "$ctrl.itemType"
- },
- "acl": ["buyer"]
}
]
}
diff --git a/modules/item/front/search-panel/index.html b/modules/item/front/search-panel/index.html
deleted file mode 100644
index 33f141b18..000000000
--- a/modules/item/front/search-panel/index.html
+++ /dev/null
@@ -1,181 +0,0 @@
-
-
diff --git a/modules/item/front/search-panel/index.js b/modules/item/front/search-panel/index.js
deleted file mode 100644
index 2448728be..000000000
--- a/modules/item/front/search-panel/index.js
+++ /dev/null
@@ -1,67 +0,0 @@
-import ngModule from '../module';
-import SearchPanel from 'core/components/searchbar/search-panel';
-
-class Controller extends SearchPanel {
- constructor($element, $) {
- super($element, $);
- let model = 'Item';
- let moreFields = ['id', 'description', 'name', 'isActive'];
-
- let properties;
- let validations = window.validations;
-
- if (validations && validations[model])
- properties = validations[model].properties;
- else
- properties = {};
-
- this.moreFields = [];
- for (let field of moreFields) {
- let prop = properties[field];
- this.moreFields.push({
- name: field,
- label: prop ? prop.description : field,
- type: prop ? prop.type : null
- });
- }
- }
-
- get filter() {
- let filter = this.$.filter;
-
- for (let fieldFilter of this.fieldFilters)
- filter[fieldFilter.name] = fieldFilter.value;
-
- return filter;
- }
-
- set filter(value) {
- if (!value)
- value = {};
- if (!value.tags)
- value.tags = [{}];
-
- this.fieldFilters = [];
- for (let field of this.moreFields) {
- if (value[field.name] != undefined) {
- this.fieldFilters.push({
- name: field.name,
- value: value[field.name],
- info: field
- });
- }
- }
-
- this.$.filter = value;
- }
-
- removeField(index, field) {
- this.fieldFilters.splice(index, 1);
- delete this.$.filter[field];
- }
-}
-
-ngModule.vnComponent('vnItemSearchPanel', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/search-panel/index.spec.js b/modules/item/front/search-panel/index.spec.js
deleted file mode 100644
index 39b5b7aa5..000000000
--- a/modules/item/front/search-panel/index.spec.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import './index.js';
-
-describe('Item', () => {
- describe('Component vnItemSearchPanel', () => {
- let $element;
- let controller;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject($componentController => {
- $element = angular.element(``);
- controller = $componentController('vnItemSearchPanel', {$element});
- }));
-
- describe('filter() setter', () => {
- it(`should set the tags property to the scope filter with an empty array`, () => {
- const expectedFilter = {
- tags: [{}]
- };
- controller.filter = null;
-
- expect(controller.filter).toEqual(expectedFilter);
- });
-
- it(`should set the tags property to the scope filter with an array of tags`, () => {
- const expectedFilter = {
- description: 'My item',
- tags: [{}]
- };
- const expectedFieldFilter = [{
- info: {
- label: 'description',
- name: 'description',
- type: null
- },
- name: 'description',
- value: 'My item'
- }];
- controller.filter = {
- description: 'My item'
- };
-
- expect(controller.filter).toEqual(expectedFilter);
- expect(controller.fieldFilters).toEqual(expectedFieldFilter);
- });
- });
-
- describe('removeField()', () => {
- it(`should remove the description property from the fieldFilters and from the scope filter`, () => {
- const expectedFilter = {tags: [{}]};
- controller.filter = {description: 'My item'};
-
- controller.removeField(0, 'description');
-
- expect(controller.filter).toEqual(expectedFilter);
- expect(controller.fieldFilters).toEqual([]);
- });
- });
- });
-});
diff --git a/modules/item/front/search-panel/locale/es.yml b/modules/item/front/search-panel/locale/es.yml
deleted file mode 100644
index 67a5200d7..000000000
--- a/modules/item/front/search-panel/locale/es.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-Ink: Tinta
-Origin: Origen
-Producer: Productor
-With visible: Con visible
-Field: Campo
-More fields: Más campos
-Add field: Añadir campo
-Remove field: Quitar campo
\ No newline at end of file
diff --git a/modules/item/front/summary/index.html b/modules/item/front/summary/index.html
deleted file mode 100644
index 0e4cfc955..000000000
--- a/modules/item/front/summary/index.html
+++ /dev/null
@@ -1,227 +0,0 @@
-
-
-
-
-
- {{$ctrl.item.id}} - {{$ctrl.summary.item.name}}
-
-
-
-
-
-
- Visible
- {{$ctrl.summary.visible}}
-
-
- Available
- {{$ctrl.summary.available}}
-
-
-
-
-
-
-
-
-
-
-
-
- Basic data
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{$ctrl.summary.item.itemType.worker.user.name}}
-
-
-
-
-
-
-
-
-
-
- Other data
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tags
-
-
-
-
-
-
-
- Description
-
-
- {{$ctrl.summary.item.description}}
-
-
-
-
-
- Tax
-
-
-
-
-
-
-
- Botanical
-
-
-
-
-
-
-
-
-
- Barcode
-
-
- {{barcode.code}}
-
-
-
-
-
-
diff --git a/modules/item/front/summary/index.js b/modules/item/front/summary/index.js
deleted file mode 100644
index e17a6a8c4..000000000
--- a/modules/item/front/summary/index.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import ngModule from '../module';
-import Summary from 'salix/components/summary';
-import './style.scss';
-
-class Controller extends Summary {
- getSummary() {
- this.$http.get(`Items/${this.item.id}/getSummary`).then(response => {
- this.summary = response.data;
- });
-
- this.$http.get('ItemConfigs/findOne')
- .then(res => {
- if (this.card) this.card.warehouseFk = res.data.warehouseFk;
- this.getWarehouseName(res.data.warehouseFk);
- });
- }
-
- getWarehouseName(warehouseFk) {
- const filter = {
- where: {id: warehouseFk}
- };
- this.$http.get('Warehouses/findOne', {filter})
- .then(res => {
- this.warehouseText = this.$t('WarehouseFk', {
- warehouseName: res.data.name
- });
- });
- }
-
- $onChanges() {
- if (this.item && this.item.id)
- this.getSummary();
- }
-
- get isBuyer() {
- return this.aclService.hasAny(['buyer']);
- }
-
- get isReplenisher() {
- return this.aclService.hasAny(['replenisher']);
- }
-
- get isAdministrative() {
- return this.aclService.hasAny(['administrative']);
- }
-
- get isEmployee() {
- return this.aclService.hasAny(['employee']);
- }
-}
-
-ngModule.vnComponent('vnItemSummary', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- item: '<',
- },
- require: {
- card: '?^vnItemCard'
- }
-});
diff --git a/modules/item/front/summary/index.spec.js b/modules/item/front/summary/index.spec.js
deleted file mode 100644
index d7821bea0..000000000
--- a/modules/item/front/summary/index.spec.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import './index.js';
-
-describe('Item', () => {
- describe('Component summary', () => {
- let controller;
- let $httpBackend;
- let $scope;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject(($componentController, _$httpBackend_, $rootScope) => {
- $httpBackend = _$httpBackend_;
- $scope = $rootScope.$new();
- const $element = angular.element('');
- controller = $componentController('vnItemSummary', {$element, $scope});
- controller.item = {id: 1};
- controller.card = {};
- }));
-
- describe('getSummary()', () => {
- it('should perform a query to set summary', () => {
- let data = {id: 1, name: 'Gem of mind'};
- $httpBackend.expect('GET', `Items/1/getSummary`).respond(200, data);
- $httpBackend.expect('GET', `ItemConfigs/findOne`).respond({});
- $httpBackend.expect('GET', `Warehouses/findOne`).respond({});
- controller.getSummary();
- $httpBackend.flush();
-
- expect(controller.summary).toEqual(data);
- });
- });
-
- describe('$onChanges()', () => {
- it('should call getSummary when item.id is defined', () => {
- jest.spyOn(controller, 'getSummary');
- controller.$onChanges();
-
- expect(controller.getSummary).toHaveBeenCalledWith();
- });
- });
- });
-});
diff --git a/modules/item/front/summary/locale/en.yml b/modules/item/front/summary/locale/en.yml
deleted file mode 100644
index 0ec208720..000000000
--- a/modules/item/front/summary/locale/en.yml
+++ /dev/null
@@ -1 +0,0 @@
-WarehouseFk: Calculated on the warehouse of {{ warehouseName }}
diff --git a/modules/item/front/summary/locale/es.yml b/modules/item/front/summary/locale/es.yml
deleted file mode 100644
index 80988c491..000000000
--- a/modules/item/front/summary/locale/es.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-Barcode: Códigos de barras
-Other data: Otros datos
-Go to the item: Ir al artículo
-WarehouseFk: Calculado sobre el almacén de {{ warehouseName }}
-Minimum sales quantity: Cantidad mínima de venta
diff --git a/modules/item/front/summary/style.scss b/modules/item/front/summary/style.scss
deleted file mode 100644
index d047f3e36..000000000
--- a/modules/item/front/summary/style.scss
+++ /dev/null
@@ -1,39 +0,0 @@
-@import "./variables";
-
-vn-item-summary {
- p {
- margin: 0;
- }
-}
-
-.item-state {
- padding: 6px;
- background-color: $color-main;
- color: $color-font-dark;
-
- p {
- font-size: .75rem;
- text-align: center;
- margin: 0;
-
- &:first-child {
- text-transform: uppercase;
- line-height: 1;
- }
- &:last-child {
- font-size: 1.5rem;
- font-weight: bold;
- }
- }
- vn-one {
- padding: 0;
-
- &:nth-child(1) {
- border-right: 1px solid white;
- }
-
- &:nth-child(2) {
- border-right: 1px solid white;
- }
- }
-}
diff --git a/modules/item/front/tags/index.html b/modules/item/front/tags/index.html
deleted file mode 100644
index f9b5370fa..000000000
--- a/modules/item/front/tags/index.html
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
-
-
-
-
diff --git a/modules/item/front/tags/index.js b/modules/item/front/tags/index.js
deleted file mode 100644
index 2c3b39d45..000000000
--- a/modules/item/front/tags/index.js
+++ /dev/null
@@ -1,54 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-
-class Controller extends Section {
- constructor($element, $) {
- super($element, $);
- this.include = {
- relation: 'tag',
- scope: {
- fields: ['id', 'name', 'isFree', 'sourceTable']
- }
- };
- }
-
- add() {
- this.$.model.insert({
- itemFk: this.$params.id,
- priority: this.getHighestPriority()
- });
- }
-
- getHighestPriority() {
- let max = 0;
- this.$.model.data.forEach(tag => {
- if (tag.priority > max)
- max = tag.priority;
- });
- return max + 1;
- }
-
- onSubmit() {
- const changes = this.$.model.getChanges();
- const data = {
- creates: changes.creates,
- deletes: changes.deletes,
- updates: changes.updates,
- maxPriority: this.getHighestPriority()
- };
- this.$http.patch(`Tags/onSubmit`, data).then(() => {
- this.$.model.refresh();
- this.$.watcher.notifySaved();
- this.$.watcher.updateOriginalData();
- this.card.reload();
- });
- }
-}
-
-ngModule.vnComponent('vnItemTags', {
- template: require('./index.html'),
- controller: Controller,
- require: {
- card: '^vnItemCard'
- }
-});
diff --git a/modules/item/front/tags/index.spec.js b/modules/item/front/tags/index.spec.js
deleted file mode 100644
index 8b4b8596b..000000000
--- a/modules/item/front/tags/index.spec.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import './index.js';
-import crudModel from 'core/mocks/crud-model';
-
-describe('Item', () => {
- describe('Component vnItemTags', () => {
- let $scope;
- let controller;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject(($componentController, $rootScope) => {
- $scope = $rootScope.$new();
- $scope.model = crudModel;
- const $element = angular.element('');
- controller = $componentController('vnItemTags', {$element, $scope});
- }));
-
- describe('getHighestPriority', () => {
- it('should return the highest priority value + 1 from the array', () => {
- $scope.model.data = [{priority: 1}, {priority: 2}, {priority: 1}];
- let result = controller.getHighestPriority();
-
- expect(result).toEqual(3);
- });
-
- it('should return 1 when there is no priority defined', () => {
- $scope.model.data = [];
- let result = controller.getHighestPriority();
-
- expect(result).toEqual(1);
- });
- });
- });
-});
diff --git a/modules/item/front/tax/index.html b/modules/item/front/tax/index.html
deleted file mode 100644
index 78858704f..000000000
--- a/modules/item/front/tax/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/item/front/tax/index.js b/modules/item/front/tax/index.js
deleted file mode 100644
index 2d70414ab..000000000
--- a/modules/item/front/tax/index.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-
-export default class Controller extends Section {
- $onInit() {
- this.getTaxes();
- }
-
- getTaxes() {
- let filter = {
- fields: ['id', 'countryFk', 'taxClassFk'],
- include: [{
- relation: 'country',
- scope: {fields: ['name']}
- }]
- };
-
- let url = `Items/${this.$params.id}/taxes`;
- this.$http.get(url, {params: {filter}}).then(json => {
- this.taxes = json.data;
- });
- }
-
- submit() {
- let data = [];
- for (let tax of this.taxes)
- data.push({id: tax.id, taxClassFk: tax.taxClassFk});
-
- this.$.watcher.check();
- let url = `Items/updateTaxes`;
- this.$http.post(url, data).then(() => {
- this.$.watcher.notifySaved();
- this.$.watcher.updateOriginalData();
- });
- }
-}
-
-ngModule.vnComponent('vnItemTax', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/tax/index.spec.js b/modules/item/front/tax/index.spec.js
deleted file mode 100644
index 9565a861d..000000000
--- a/modules/item/front/tax/index.spec.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import './index.js';
-
-describe('Item', () => {
- describe('Component vnItemTax', () => {
- let $element;
- let $stateParams;
- let controller;
- let $httpBackend;
-
- beforeEach(ngModule('item'));
-
- beforeEach(inject((_$httpBackend_, $rootScope, _$stateParams_, $compile) => {
- $stateParams = _$stateParams_;
- $stateParams.id = 1;
- $httpBackend = _$httpBackend_;
-
- $httpBackend.whenRoute('GET', 'TaxClasses')
- .respond([
- {id: 1, description: 'Reduced VAT', code: 'R'},
- {id: 2, description: 'General VAT', code: 'G'}
- ]);
-
- $httpBackend.whenRoute('GET', 'Items/:id/taxes')
- .respond([
- {id: 1, taxClassFk: 1}
- ]);
-
- $element = $compile(` {
- $element.remove();
- });
-
- describe('getTaxes()', () => {
- it('should perform a query to set the array of taxes into the controller', () => {
- $httpBackend.flush();
-
- expect(controller.taxes[0].id).toEqual(1);
- expect(controller.taxes[0].taxClassFk).toEqual(1);
- });
- });
-
- describe('submit()', () => {
- it('should perform a post to update taxes', () => {
- jest.spyOn(controller.$.watcher, 'notifySaved');
- jest.spyOn(controller.$.watcher, 'updateOriginalData');
-
- controller.$onInit();
- $httpBackend.flush();
-
- controller.taxes.push({id: 3, description: 'General VAT', code: 'G'});
-
- $httpBackend.whenPOST(`Items/updateTaxes`).respond(true);
- controller.submit();
- $httpBackend.flush();
-
- expect(controller.$.watcher.notifySaved).toHaveBeenCalledWith();
- expect(controller.$.watcher.updateOriginalData).toHaveBeenCalledWith();
- });
- });
- });
-});
diff --git a/modules/item/front/waste/index/index.html b/modules/item/front/waste/index/index.html
deleted file mode 100644
index 7fb3b870e..000000000
--- a/modules/item/front/waste/index/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/modules/item/front/waste/index/index.js b/modules/item/front/waste/index/index.js
deleted file mode 100644
index 86d9d3778..000000000
--- a/modules/item/front/waste/index/index.js
+++ /dev/null
@@ -1,19 +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, $);
- }
-
- async $onInit() {
- this.$state.go('item.index');
- window.location.href = 'https://grafana.verdnatura.es/d/TTNXQAxVk';
- }
-}
-
-ngModule.vnComponent('vnItemWasteIndex', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/item/front/waste/index/style.scss b/modules/item/front/waste/index/style.scss
deleted file mode 100644
index 36fac3311..000000000
--- a/modules/item/front/waste/index/style.scss
+++ /dev/null
@@ -1,27 +0,0 @@
-@import "variables";
-@import "effects";
-
-vn-item-waste-index,
-vn-item-waste-detail {
- .header {
- padding: 12px 0 5px 0;
- background-color: $color-bg;
- font-size: 1.2rem;
- margin-bottom: 10px;
- }
-
- vn-table vn-th.waste-family,
- vn-table vn-td.waste-family {
- max-width: 64px;
- width: 64px
- }
-
- .hidden {
- display: none;
- }
-
- .arrow.hidden {
- display: block;
- transform: rotate(180deg);
- }
-}
diff --git a/modules/item/front/waste/locale/es.yml b/modules/item/front/waste/locale/es.yml
deleted file mode 100644
index b9cd33dec..000000000
--- a/modules/item/front/waste/locale/es.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-Family: Familia
-Percentage: Porcentaje
-Dwindle: Mermas
-Minimize/Maximize: Minimizar/Maximizar
\ No newline at end of file