diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql
index f4c3f83873..58a4dc9f11 100644
--- a/db/dump/fixtures.before.sql
+++ b/db/dump/fixtures.before.sql
@@ -3190,7 +3190,7 @@ UPDATE vn.department
SET workerFk = null;
INSERT INTO vn.packaging
- VALUES('--', 2745600.00, 100.00, 120.00, 220.00, 0.00, 1, '2001-01-01 00:00:00.000', NULL, NULL, NULL, 0.00, 16, 0.00, 0, NULL, 0.00, NULL, NULL, 0, NULL, 0, 0,0);
+ VALUES('--', 2745600.00, 100.00, 120.00, 220.00, 0.00, 1, '2001-01-01 00:00:00.000', NULL, NULL, NULL, 0.00, 16, 0.00, 0, NULL, 0.00, NULL, NULL, 0, NULL, 0, 0,0,1);
INSERT IGNORE INTO vn.intrastat
diff --git a/db/routines/vn/procedures/ticketRefund_upsert.sql b/db/routines/vn/procedures/ticketRefund_upsert.sql
new file mode 100644
index 0000000000..fb22e6e8c8
--- /dev/null
+++ b/db/routines/vn/procedures/ticketRefund_upsert.sql
@@ -0,0 +1,25 @@
+DELIMITER $$
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticketRefund_upsert`(
+ vRefundTicketFk INT,
+ vOriginalTicketFk INT
+)
+ READS SQL DATA
+BEGIN
+/**
+ * Common code for ticketRefund triggers
+ *
+ * @param vRefundTicketFk
+ * @param vOriginalTicketFk
+ */
+ DECLARE vIsDeleted BOOL;
+
+ SELECT COUNT(*) INTO vIsDeleted
+ FROM ticket
+ WHERE id IN (vRefundTicketFk, vOriginalTicketFk)
+ AND isDeleted;
+
+ IF vIsDeleted THEN
+ CALL util.throw('The refund ticket cannot be deleted tickets');
+ END IF;
+END$$
+DELIMITER ;
diff --git a/db/routines/vn/triggers/ticketRefund_beforeInsert.sql b/db/routines/vn/triggers/ticketRefund_beforeInsert.sql
index 61d9fe7a2e..dd1da66501 100644
--- a/db/routines/vn/triggers/ticketRefund_beforeInsert.sql
+++ b/db/routines/vn/triggers/ticketRefund_beforeInsert.sql
@@ -3,6 +3,8 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`ticketRefund_beforeInse
BEFORE INSERT ON `ticketRefund`
FOR EACH ROW
BEGIN
+ CALL ticketRefund_upsert(NEW.refundTicketFk, NEW.originalTicketFk);
+
SET NEW.editorFk = account.myUser_getId();
END$$
DELIMITER ;
diff --git a/db/routines/vn/triggers/ticketRefund_beforeUpdate.sql b/db/routines/vn/triggers/ticketRefund_beforeUpdate.sql
index 807695de6a..f27e3f0920 100644
--- a/db/routines/vn/triggers/ticketRefund_beforeUpdate.sql
+++ b/db/routines/vn/triggers/ticketRefund_beforeUpdate.sql
@@ -3,6 +3,8 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`ticketRefund_beforeUpda
BEFORE UPDATE ON `ticketRefund`
FOR EACH ROW
BEGIN
+ CALL ticketRefund_upsert(NEW.refundTicketFk, NEW.originalTicketFk);
+
SET NEW.editorFk = account.myUser_getId();
END$$
DELIMITER ;
diff --git a/db/routines/vn2008/views/Cubos.sql b/db/routines/vn2008/views/Cubos.sql
index 4ece9c435c..1b23af4fc9 100644
--- a/db/routines/vn2008/views/Cubos.sql
+++ b/db/routines/vn2008/views/Cubos.sql
@@ -17,5 +17,6 @@ AS SELECT `p`.`id` AS `Id_Cubo`,
`p`.`upload` AS `Suben`,
`p`.`base` AS `Base`,
`p`.`isBox` AS `box`,
- `p`.`returnCost` AS `costeRetorno`
+ `p`.`returnCost` AS `costeRetorno`,
+ `p`.`isActive` AS `isActive`
FROM `vn`.`packaging` `p`
diff --git a/db/versions/11278-crimsonEucalyptus/00-firstScript.sql b/db/versions/11278-crimsonEucalyptus/00-firstScript.sql
new file mode 100644
index 0000000000..f69f75f1db
--- /dev/null
+++ b/db/versions/11278-crimsonEucalyptus/00-firstScript.sql
@@ -0,0 +1,6 @@
+-- Place your SQL code here
+
+ALTER TABLE vn.priceDelta ADD IF NOT EXISTS zoneGeoFk int(11) NULL;
+
+ALTER TABLE vn.priceDelta ADD CONSTRAINT priceDelta_zoneGeo_FK FOREIGN KEY IF NOT EXISTS (zoneGeoFk)
+REFERENCES vn.zoneGeo (`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
diff --git a/db/versions/11279-turquoiseDendro/00-firstScript.sql b/db/versions/11279-turquoiseDendro/00-firstScript.sql
new file mode 100644
index 0000000000..a241e6af2a
--- /dev/null
+++ b/db/versions/11279-turquoiseDendro/00-firstScript.sql
@@ -0,0 +1,6 @@
+-- Place your SQL code here
+
+ALTER TABLE vn.priceDelta ADD IF NOT EXISTS zoneGeoFk int(11) NULL;
+
+ALTER TABLE vn.priceDelta ADD CONSTRAINT priceDelta_zoneGeo_FK FOREIGN KEY IF NOT EXISTS (zoneGeoFk)
+REFERENCES vn.zoneGeo (`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
\ No newline at end of file
diff --git a/db/versions/11280-goldenCamellia/00-firstScript.sql b/db/versions/11280-goldenCamellia/00-firstScript.sql
new file mode 100644
index 0000000000..fd55760c14
--- /dev/null
+++ b/db/versions/11280-goldenCamellia/00-firstScript.sql
@@ -0,0 +1,24 @@
+ALTER TABLE `vn`.`packaging`
+ ADD COLUMN IF NOT EXISTS `isActive` TINYINT(1) DEFAULT 1;
+
+UPDATE vn.packaging
+ SET isActive = FALSE
+ WHERE id IN('06x04x06','07x04x03','1000','100SM','1031','104','105','1060','10x04x06','10x04x07','1100','118','119','1200','129','1300',
+ '134','146','147','148','158','159','17x01x02','17X01X03','17x01x04','17x01x05','18X01X04','198','199',
+ '20P','20x01x03','246','273','278','279','280','290','359','37247','382','40P','453','463','464','465','466',
+ '467','469','471','473','494','508','509','511','512','514','515','516','518','519-50B','575','598-3x6','604','605','606',
+ '607','609','647','67515','676','680','682','685','687','688','691','692','693','694','695','730','751','7808','790','7910',
+ '7920','79450','7950','7952','7960','7976','7982','7986','7988',
+ '7993','8000','8046','8049','8053','8057','8058','8065','8076','8085','8086','8088',
+ '8091','8095','8096','8097','8101','8106','8108','8110','8112','8124','8134','8140','8141','8143','8145','8149','8150',
+ '8170','8174','8192','8200','8210','8249','8270','8275','8288','8300','8350','8375','8399','8400','8420','845','847','8480','8500',
+ '855','858','8600','862','869','871','872','8720','878','879','880','8800','882','885','910','911','912','914','916','917','918','919',
+ '920','921','922','923','924','925','926','927','930','9300','932','934','935','936','938','942','948','9600','980','984','9920',
+ 'B20x16','B43x13','Bande Rota','bb3','Bcesta','BcestaOVAL','BcestaRED','Bcirios','BciriosG','BjarronBLN','BjarronNGR',
+ 'Btazon','Bvelas','cactus200','Caja040','CajaTGLF','CC Alza Pl','CC_falso',
+ 'EB-RSMINA','EMB 1_4','EMB 2_5','espuma','FB-BENCH','granel','Grenex','guzma1200','guzma1400','guzma330','guzma400','guzma650','guzma900','HB-ALEX',
+ 'HB-APOSENT','HB-MAGIC','HB-NATUF','HB-RSMINA','HB-TES-RSR','HB068','HB117','HB2-CIRCA','JB-AROMA','jumboX3','kalan330','kalan400',
+ 'kalan577','kalan900','L12','L120','L14','L2-120','L200','L3-120','L4-120','L44','L6','L6-180','L8','L8-200','MB-BENCH','MBOLA','mc_11',
+ 'mc_13','Msp','NO VALIDO','NO-002','PANIC','PBLG','PISOCC/3','PISOCC/4','PISOCC/5','PISOCC/6',
+ 'procona','QB-CARDENA','QB-PANDERO','QB-TES-RSR','QB7-TOSCA','QB9-TOSCA','RB-BENCH','SemiEuroPa','spolette','t_flori11','T26x23',
+ 'T26x25','T27x24','T27x30','T28x26','T30x24','T33x30','THA50','ti_13','Tumbado','UB-BENCH')
\ No newline at end of file
diff --git a/e2e/paths/10-travel/01_create.spec.js b/e2e/paths/10-travel/01_create.spec.js
deleted file mode 100644
index 98ade4852f..0000000000
--- a/e2e/paths/10-travel/01_create.spec.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Travel create path', () => {
- let browser;
- let page;
-
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'travel');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it('should create a new travel and check it was created with the correct data', async() => {
- const date = Date.vnNew();
- date.setDate(15);
- date.setUTCHours(0, 0, 0, 0);
-
- await page.waitToClick(selectors.travelIndex.newTravelButton);
- await page.waitForState('travel.create');
-
- const values = {
- reference: 'Testing reference',
- agencyMode: 'inhouse pickup',
- shipped: date,
- landed: date,
- warehouseOut: 'Warehouse One',
- warehouseIn: 'Warehouse Five'
- };
-
- const message = await page.sendForm('vn-travel-create form', values);
- await page.waitForState('travel.card.basicData');
- const formValues = await page.fetchForm('vn-travel-basic-data form', Object.keys(values));
-
- expect(message.isSuccess).toBeTrue();
- expect(formValues).toEqual(values);
- });
-});
diff --git a/e2e/paths/10-travel/02_basic_data_and_log.spec.js b/e2e/paths/10-travel/02_basic_data_and_log.spec.js
deleted file mode 100644
index 701e6b1b41..0000000000
--- a/e2e/paths/10-travel/02_basic_data_and_log.spec.js
+++ /dev/null
@@ -1,97 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Travel basic data path', () => {
- let browser;
- let page;
-
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'travel');
- await page.write(selectors.travelIndex.generalSearchFilter, '3');
- await page.keyboard.press('Enter');
- await page.accessToSection('travel.card.basicData');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it('should reach the thermograph section', async() => {
- await page.waitForState('travel.card.basicData');
- });
-
- it('should set a wrong delivery date then receive an error on submit', async() => {
- await page.loginAndModule('buyer', 'travel');
- await page.write(selectors.travelIndex.generalSearchFilter, '4');
- await page.keyboard.press('Enter');
- await page.accessToSection('travel.card.basicData');
- await page.waitForState('travel.card.basicData');
-
- const lastMonth = Date.vnNew();
- lastMonth.setMonth(lastMonth.getMonth() - 2);
-
- await page.pickDate(selectors.travelBasicData.deliveryDate, lastMonth);
- await page.waitToClick(selectors.travelBasicData.save);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Landing cannot be lesser than shipment');
- });
-
- it('should undo the changes', async() => {
- await page.clearInput(selectors.travelBasicData.reference);
- await page.write(selectors.travelBasicData.reference, 'totally pointless ref');
- await page.waitToClick(selectors.travelBasicData.undoChanges);
- const result = await page.waitToGetProperty(selectors.travelBasicData.reference, 'value');
-
- expect(result).toEqual('fourth travel');
- });
-
- it('should now edit the whole form then save', async() => {
- await page.clearInput(selectors.travelBasicData.reference);
- await page.write(selectors.travelBasicData.reference, 'new reference!');
- await page.autocompleteSearch(selectors.travelBasicData.agency, 'Entanglement');
- await page.autocompleteSearch(selectors.travelBasicData.outputWarehouse, 'Warehouse Three');
- await page.autocompleteSearch(selectors.travelBasicData.inputWarehouse, 'Warehouse Four');
- await page.waitToClick(selectors.travelBasicData.delivered);
- await page.waitToClick(selectors.travelBasicData.received);
- await page.waitToClick(selectors.travelBasicData.save);
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it('should reload the section and check the reference was saved', async() => {
- await page.reloadSection('travel.card.basicData');
- const result = await page.waitToGetProperty(selectors.travelBasicData.reference, 'value');
-
- expect(result).toEqual('new reference!');
- });
-
- it('should check the agency was saved', async() => {
- const result = await page.waitToGetProperty(selectors.travelBasicData.agency, 'value');
-
- expect(result).toEqual('Entanglement');
- });
-
- it('should check the output warehouse date was saved', async() => {
- const result = await page.waitToGetProperty(selectors.travelBasicData.outputWarehouse, 'value');
-
- expect(result).toEqual('Warehouse Three');
- });
-
- it('should check the input warehouse date was saved', async() => {
- const result = await page.waitToGetProperty(selectors.travelBasicData.inputWarehouse, 'value');
-
- expect(result).toEqual('Warehouse Four');
- });
-
- it(`should check the delivered checkbox was saved even tho it doesn't make sense`, async() => {
- await page.waitForClassPresent(selectors.travelBasicData.delivered, 'checked');
- });
-
- it(`should check the received checkbox was saved even tho it doesn't make sense`, async() => {
- await page.waitForClassPresent(selectors.travelBasicData.received, 'checked');
- });
-});
diff --git a/e2e/paths/10-travel/03_descriptor.spec.js b/e2e/paths/10-travel/03_descriptor.spec.js
deleted file mode 100644
index f066a74ca4..0000000000
--- a/e2e/paths/10-travel/03_descriptor.spec.js
+++ /dev/null
@@ -1,36 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Travel descriptor path', () => {
- let browser;
- let page;
-
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'travel');
- await page.write(selectors.travelIndex.generalSearchFilter, '3');
- await page.keyboard.press('Enter');
- await page.waitForState('travel.card.summary');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it('should click the descriptor button to navigate to the travel index showing all travels with current agency', async() => {
- await page.waitToClick(selectors.travelDescriptor.filterByAgencyButton);
- await page.waitForState('travel.index');
- const result = await page.countElement(selectors.travelIndex.anySearchResult);
-
- expect(result).toBeGreaterThanOrEqual(1);
- });
-
- it('should navigate to the first search result', async() => {
- await page.waitToClick(selectors.travelIndex.firstSearchResult);
- await page.waitForState('travel.card.summary');
- const state = await page.getState();
-
- expect(state).toBe('travel.card.summary');
- });
-});
diff --git a/e2e/paths/10-travel/04_extra_community.spec.js b/e2e/paths/10-travel/04_extra_community.spec.js
deleted file mode 100644
index c5975c9583..0000000000
--- a/e2e/paths/10-travel/04_extra_community.spec.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Travel extra community path', () => {
- let browser;
- let page;
-
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'travel');
- await page.accessToSection('travel.extraCommunity');
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it('should edit the travel reference and the locked kilograms', async() => {
- await page.waitToClick(selectors.travelExtraCommunity.removeContinentFilter);
- await page.waitForSpinnerLoad();
- await page.writeOnEditableTD(selectors.travelExtraCommunity.firstTravelReference, 'edited reference');
- await page.waitForSpinnerLoad();
- await page.writeOnEditableTD(selectors.travelExtraCommunity.firstTravelLockedKg, '1500');
-
- const message = await page.waitForSnackbar();
-
- expect(message.text).toContain('Data saved!');
- });
-
- it('should reload the index and confirm the reference and locked kg were edited', async() => {
- await page.accessToSection('travel.index');
- await page.accessToSection('travel.extraCommunity');
- await page.waitToClick(selectors.travelExtraCommunity.removeContinentFilter);
- await page.waitForTextInElement(selectors.travelExtraCommunity.firstTravelReference, 'edited reference');
- const reference = await page.getProperty(selectors.travelExtraCommunity.firstTravelReference, 'innerText');
- const lockedKg = await page.getProperty(selectors.travelExtraCommunity.firstTravelLockedKg, 'innerText');
-
- expect(reference).toContain('edited reference');
- expect(lockedKg).toContain(1500);
- });
-});
diff --git a/e2e/paths/10-travel/06_search_panel.spec.js b/e2e/paths/10-travel/06_search_panel.spec.js
deleted file mode 100644
index 420ceaf48e..0000000000
--- a/e2e/paths/10-travel/06_search_panel.spec.js
+++ /dev/null
@@ -1,62 +0,0 @@
-import selectors from '../../helpers/selectors.js';
-import getBrowser from '../../helpers/puppeteer';
-
-describe('Travel search panel path', () => {
- let browser;
- let page;
- let httpRequest;
-
- beforeAll(async() => {
- browser = await getBrowser();
- page = browser.page;
- await page.loginAndModule('buyer', 'travel');
- page.on('request', req => {
- if (req.url().includes(`Travels/filter`))
- httpRequest = req.url();
- });
- });
-
- afterAll(async() => {
- await browser.close();
- });
-
- it('should filter using all the fields', async() => {
- await page.click(selectors.travelIndex.chip);
- await page.write(selectors.travelIndex.generalSearchFilter, 'travel');
- await page.keyboard.press('Enter');
-
- expect(httpRequest).toContain('search=travel');
-
- await page.click(selectors.travelIndex.chip);
- await page.autocompleteSearch(selectors.travelIndex.agencyFilter, 'Entanglement');
-
- expect(httpRequest).toContain('agencyModeFk');
-
- await page.click(selectors.travelIndex.chip);
- await page.autocompleteSearch(selectors.travelIndex.warehouseOutFilter, 'Warehouse One');
-
- expect(httpRequest).toContain('warehouseOutFk');
-
- await page.click(selectors.travelIndex.chip);
- await page.autocompleteSearch(selectors.travelIndex.warehouseInFilter, 'Warehouse Two');
-
- expect(httpRequest).toContain('warehouseInFk');
-
- await page.click(selectors.travelIndex.chip);
- await page.overwrite(selectors.travelIndex.scopeDaysFilter, '15');
- await page.keyboard.press('Enter');
-
- expect(httpRequest).toContain('scopeDays=15');
-
- await page.click(selectors.travelIndex.chip);
- await page.autocompleteSearch(selectors.travelIndex.continentFilter, 'Asia');
-
- expect(httpRequest).toContain('continent');
-
- await page.click(selectors.travelIndex.chip);
- await page.write(selectors.travelIndex.totalEntriesFilter, '1');
- await page.keyboard.press('Enter');
-
- expect(httpRequest).toContain('totalEntries=1');
- });
-});
diff --git a/modules/travel/front/basic-data/index.html b/modules/travel/front/basic-data/index.html
deleted file mode 100644
index 783208d9a2..0000000000
--- a/modules/travel/front/basic-data/index.html
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
diff --git a/modules/travel/front/basic-data/index.js b/modules/travel/front/basic-data/index.js
deleted file mode 100644
index 581fd71e5f..0000000000
--- a/modules/travel/front/basic-data/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-
-class Controller extends Section {
- onSubmit() {
- return this.$.watcher.submit().then(() =>
- this.card.reload()
- );
- }
-}
-
-ngModule.vnComponent('vnTravelBasicData', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- travel: '<'
- },
- require: {
- card: '^vnTravelCard'
- }
-});
diff --git a/modules/travel/front/basic-data/index.spec.js b/modules/travel/front/basic-data/index.spec.js
deleted file mode 100644
index 11894d6e09..0000000000
--- a/modules/travel/front/basic-data/index.spec.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import './index.js';
-
-describe('Travel Component vnTravelBasicData', () => {
- let controller;
-
- beforeEach(angular.mock.module('travel', $translateProvider => {
- $translateProvider.translations('en', {});
- }));
-
- beforeEach(inject($componentController => {
- const $element = angular.element('');
- controller = $componentController('vnTravelBasicData', {$element});
- controller.card = {reload: () => {}};
- controller.$.watcher = {submit: () => {}};
- }));
-
- describe('onSubmit()', () => {
- it('should call the card reload method after the watcher submits', done => {
- jest.spyOn(controller.card, 'reload');
- jest.spyOn(controller.$.watcher, 'submit').mockReturnValue(Promise.resolve());
-
- controller.onSubmit().then(() => {
- expect(controller.card.reload).toHaveBeenCalledWith();
- done();
- }).catch(done.fail);
- });
- });
-});
diff --git a/modules/travel/front/basic-data/locale/es.yml b/modules/travel/front/basic-data/locale/es.yml
deleted file mode 100644
index d956756122..0000000000
--- a/modules/travel/front/basic-data/locale/es.yml
+++ /dev/null
@@ -1 +0,0 @@
-Undo changes: Deshacer cambios
diff --git a/modules/travel/front/card/index.html b/modules/travel/front/card/index.html
deleted file mode 100644
index 91964be21f..0000000000
--- a/modules/travel/front/card/index.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/modules/travel/front/card/index.js b/modules/travel/front/card/index.js
deleted file mode 100644
index d46244cb5b..0000000000
--- a/modules/travel/front/card/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import ngModule from '../module';
-import ModuleCard from 'salix/components/module-card';
-
-class Controller extends ModuleCard {
- reload() {
- let filter = {
- include: [
- {
- relation: 'warehouseIn',
- scope: {
- fields: ['id', 'name']
- }
- }, {
- relation: 'warehouseOut',
- scope: {
- fields: ['id', 'name']
- }
- }
- ]
- };
-
- this.$http.get(`Travels/${this.$params.id}`, {filter})
- .then(response => this.travel = response.data);
- }
-}
-
-ngModule.vnComponent('vnTravelCard', {
- template: require('./index.html'),
- controller: Controller
-});
-
diff --git a/modules/travel/front/create/index.html b/modules/travel/front/create/index.html
deleted file mode 100644
index 593887a228..0000000000
--- a/modules/travel/front/create/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
diff --git a/modules/travel/front/create/index.js b/modules/travel/front/create/index.js
deleted file mode 100644
index a85917ca88..0000000000
--- a/modules/travel/front/create/index.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-
-class Controller extends Section {
- $onChanges() {
- if (this.$params && this.$params.q)
- this.travel = JSON.parse(this.$params.q);
- }
-
- onShippedChange(value) {
- let hasFilledProperties;
- let hasAgencyMode;
- if (this.travel) {
- hasAgencyMode = Boolean(this.travel.agencyModeFk);
- hasFilledProperties = this.travel.landed || this.travel.warehouseInFk || this.travel.warehouseOutFk;
- }
- if (!hasAgencyMode || hasFilledProperties)
- return;
-
- const query = `travels/getAverageDays`;
- const params = {
- agencyModeFk: this.travel.agencyModeFk
- };
- this.$http.get(query, {params}).then(res => {
- if (!res.data)
- return;
-
- const landed = new Date(value);
- const futureDate = landed.getDate() + res.data.dayDuration;
- landed.setDate(futureDate);
-
- this.travel.landed = landed;
- this.travel.warehouseInFk = res.data.warehouseInFk;
- this.travel.warehouseOutFk = res.data.warehouseOutFk;
- });
- }
-
- onSubmit() {
- return this.$.watcher.submit().then(
- res => this.$state.go('travel.card.basicData', {id: res.data.id})
- );
- }
-}
-
-ngModule.vnComponent('vnTravelCreate', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/travel/front/create/index.spec.js b/modules/travel/front/create/index.spec.js
deleted file mode 100644
index cdff8cfb91..0000000000
--- a/modules/travel/front/create/index.spec.js
+++ /dev/null
@@ -1,88 +0,0 @@
-import './index';
-import watcher from 'core/mocks/watcher';
-
-describe('Travel Component vnTravelCreate', () => {
- let $scope;
- let $state;
- let controller;
- let $httpBackend;
-
- beforeEach(ngModule('travel'));
-
- beforeEach(inject(($componentController, $rootScope, _$state_, _$httpBackend_) => {
- $httpBackend = _$httpBackend_;
- $scope = $rootScope.$new();
- $state = _$state_;
- $scope.watcher = watcher;
- const $element = angular.element('');
- controller = $componentController('vnTravelCreate', {$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('travel.card.basicData', {id: 1234});
- });
- });
-
- describe('$onChanges()', () => {
- it('should update the travel data when $params.q is defined', () => {
- controller.$params = {q: '{"ref": 1,"agencyModeFk": 1}'};
-
- const params = {q: '{"ref": 1, "agencyModeFk": 1}'};
- const json = JSON.parse(params.q);
-
- controller.$onChanges();
-
- expect(controller.travel).toEqual(json);
- });
- });
-
- describe('onShippedChange()', () => {
- it(`should do nothing if there's no agencyModeFk in the travel.`, () => {
- controller.travel = {};
- controller.onShippedChange();
-
- expect(controller.travel.landed).toBeUndefined();
- expect(controller.travel.warehouseInFk).toBeUndefined();
- expect(controller.travel.warehouseOutFk).toBeUndefined();
- });
-
- it(`should do nothing if there's no response data.`, () => {
- controller.travel = {agencyModeFk: 4};
- const tomorrow = Date.vnNew();
-
- const query = `travels/getAverageDays?agencyModeFk=${controller.travel.agencyModeFk}`;
- $httpBackend.expectGET(query).respond(undefined);
- controller.onShippedChange(tomorrow);
- $httpBackend.flush();
-
- expect(controller.travel.warehouseInFk).toBeUndefined();
- expect(controller.travel.warehouseOutFk).toBeUndefined();
- expect(controller.travel.dayDuration).toBeUndefined();
- });
-
- it(`should fill the fields when it's selected a date and agency.`, () => {
- controller.travel = {agencyModeFk: 1};
- const tomorrow = Date.vnNew();
- tomorrow.setDate(tomorrow.getDate() + 9);
- const expectedResponse = {
- id: 8,
- dayDuration: 9,
- warehouseInFk: 5,
- warehouseOutFk: 1
- };
-
- const query = `travels/getAverageDays?agencyModeFk=${controller.travel.agencyModeFk}`;
- $httpBackend.expectGET(query).respond(expectedResponse);
- controller.onShippedChange(tomorrow);
- $httpBackend.flush();
-
- expect(controller.travel.warehouseInFk).toEqual(expectedResponse.warehouseInFk);
- expect(controller.travel.warehouseOutFk).toEqual(expectedResponse.warehouseOutFk);
- });
- });
-});
diff --git a/modules/travel/front/descriptor-menu/index.html b/modules/travel/front/descriptor-menu/index.html
deleted file mode 100644
index 19831860be..0000000000
--- a/modules/travel/front/descriptor-menu/index.html
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-
- Clone travel
-
-
- Clone travel and his entries
-
-
- Delete travel
-
-
- Add entry
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/modules/travel/front/descriptor-menu/index.js b/modules/travel/front/descriptor-menu/index.js
deleted file mode 100644
index f68502ec31..0000000000
--- a/modules/travel/front/descriptor-menu/index.js
+++ /dev/null
@@ -1,95 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-import './style.scss';
-
-class Controller extends Section {
- constructor($element, $) {
- super($element, $);
- }
-
- get travelId() {
- return this._travelId;
- }
-
- set travelId(value) {
- this._travelId = value;
-
- if (value) this.loadData();
- }
-
- loadData() {
- const filter = {
- fields: [
- 'id',
- 'ref',
- 'shipped',
- 'landed',
- 'totalEntries',
- 'agencyModeFk',
- 'warehouseInFk',
- 'warehouseOutFk',
- 'cargoSupplierFk'
- ],
- include: [
- {
- relation: 'warehouseIn',
- scope: {
- fields: ['name']
- }
- }, {
- relation: 'warehouseOut',
- scope: {
- fields: ['name']
- }
- }
- ]
- };
- this.$http.get(`Travels/${this.travelId}`, {filter})
- .then(res => this.travel = res.data);
-
- this.$http.get(`Travels/${this.travelId}/getEntries`)
- .then(res => this.entries = res.data);
- }
-
- get isBuyer() {
- return this.aclService.hasAny(['buyer']);
- }
-
- onDeleteAccept() {
- this.$http.delete(`Travels/${this.travelId}`)
- .then(() => this.$state.go('travel.index'))
- .then(() => this.vnApp.showSuccess(this.$t('Travel deleted')));
- }
-
- onCloneAccept() {
- const params = JSON.stringify({
- ref: this.travel.ref,
- agencyModeFk: this.travel.agencyModeFk,
- shipped: this.travel.shipped,
- landed: this.travel.landed,
- warehouseInFk: this.travel.warehouseInFk,
- warehouseOutFk: this.travel.warehouseOutFk
- });
- this.$state.go('travel.create', {q: params});
- }
-
- async redirectToCreateEntry() {
- this.$state.go('home');
- window.location.href = await this.vnApp.getUrl(`entry/create?travelFk=${this.travelId}`);
- }
-
- onCloneWithEntriesAccept() {
- this.$http.post(`Travels/${this.travelId}/cloneWithEntries`)
- .then(res => this.$state.go('travel.card.basicData', {id: res.data}));
- }
-}
-
-Controller.$inject = ['$element', '$scope'];
-
-ngModule.vnComponent('vnTravelDescriptorMenu', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- travelId: '<',
- }
-});
diff --git a/modules/travel/front/descriptor-menu/index.spec.js b/modules/travel/front/descriptor-menu/index.spec.js
deleted file mode 100644
index 40319e8e20..0000000000
--- a/modules/travel/front/descriptor-menu/index.spec.js
+++ /dev/null
@@ -1,71 +0,0 @@
-import './index.js';
-
-describe('Travel Component vnTravelDescriptorMenu', () => {
- let controller;
- let $httpBackend;
- beforeEach(ngModule('travel'));
-
- beforeEach(inject(($componentController, _$httpBackend_) => {
- $httpBackend = _$httpBackend_;
- const $element = angular.element('');
- controller = $componentController('vnTravelDescriptorMenu', {$element});
- controller._travelId = 5;
- }));
-
- describe('onCloneAccept()', () => {
- it('should call state.go with the travel data', () => {
- jest.spyOn(controller.$state, 'go').mockReturnValue('ok');
-
- controller.travel = {
- ref: 'the ref',
- agencyModeFk: 'the agency',
- shipped: 'the shipped date',
- landed: 'the landing date',
- warehouseInFk: 'the receiver warehouse',
- warehouseOutFk: 'the sender warehouse'
- };
-
- controller.onCloneAccept();
-
- const params = JSON.stringify({
- ref: controller.travel.ref,
- agencyModeFk: controller.travel.agencyModeFk,
- shipped: controller.travel.shipped,
- landed: controller.travel.landed,
- warehouseInFk: controller.travel.warehouseInFk,
- warehouseOutFk: controller.travel.warehouseOutFk
- });
-
- expect(controller.$state.go).toHaveBeenCalledWith('travel.create', {'q': params});
- });
- });
-
- describe('onDeleteAccept()', () => {
- it('should perform a delete query', () => {
- jest.spyOn(controller.$state, 'go').mockReturnValue('ok');
- controller.travelId = 1;
-
- $httpBackend.when('GET', `Travels/${controller.travelId}`).respond(200);
- $httpBackend.when('GET', `Travels/${controller.travelId}/getEntries`).respond(200);
- $httpBackend.expect('DELETE', `Travels/${controller.travelId}`).respond(200);
- controller.onDeleteAccept();
- $httpBackend.flush();
-
- expect(controller.$state.go).toHaveBeenCalledWith('travel.index');
- });
- });
-
- describe('onCloneWithEntriesAccept()', () => {
- it('should make an HTTP query and then call to the $state.go method with the returned id', () => {
- jest.spyOn(controller.$state, 'go').mockReturnValue('ok');
-
- $httpBackend.expect('POST', `Travels/${controller.travelId}/cloneWithEntries`).respond(200, 9);
- controller.onCloneWithEntriesAccept();
- $httpBackend.flush();
-
- expect(controller.$state.go).toHaveBeenCalledWith('travel.card.basicData', {
- id: jasmine.any(Number)
- });
- });
- });
-});
diff --git a/modules/travel/front/descriptor-menu/locale/es.yml b/modules/travel/front/descriptor-menu/locale/es.yml
deleted file mode 100644
index e019d17690..0000000000
--- a/modules/travel/front/descriptor-menu/locale/es.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-Clone travel: Clonar envío
-Add entry: Añadir entrada
-Clone travel and his entries: Clonar travel y sus entradas
-Do you want to clone this travel and all containing entries?: ¿Quieres clonar este travel y todas las entradas que contiene?
-Delete travel: Eliminar envío
-The travel will be deleted: El envío será eliminado
-Do you want to delete this travel?: ¿Quieres eliminar este envío?
-Travel deleted: Envío eliminado
\ No newline at end of file
diff --git a/modules/travel/front/descriptor-menu/style.scss b/modules/travel/front/descriptor-menu/style.scss
deleted file mode 100644
index beab9335ed..0000000000
--- a/modules/travel/front/descriptor-menu/style.scss
+++ /dev/null
@@ -1,24 +0,0 @@
-@import "./effects";
-@import "variables";
-
-vn-travel-descriptor-menu {
- & > vn-icon-button[icon="more_vert"] {
- display: flex;
- min-width: 45px;
- height: 45px;
- box-sizing: border-box;
- align-items: center;
- justify-content: center;
- }
- & > vn-icon-button[icon="more_vert"] {
- @extend %clickable;
- color: inherit;
-
- & > vn-icon {
- padding: 10px;
- }
- vn-icon {
- font-size: 1.75rem;
- }
- }
-}
\ No newline at end of file
diff --git a/modules/travel/front/descriptor-popover/index.html b/modules/travel/front/descriptor-popover/index.html
deleted file mode 100644
index 376423bbc0..0000000000
--- a/modules/travel/front/descriptor-popover/index.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/modules/travel/front/descriptor-popover/index.js b/modules/travel/front/descriptor-popover/index.js
deleted file mode 100644
index 12c5908ca3..0000000000
--- a/modules/travel/front/descriptor-popover/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import ngModule from '../module';
-import DescriptorPopover from 'salix/components/descriptor-popover';
-
-class Controller extends DescriptorPopover {}
-
-ngModule.vnComponent('vnTravelDescriptorPopover', {
- slotTemplate: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/travel/front/descriptor/index.html b/modules/travel/front/descriptor/index.html
deleted file mode 100644
index bbf5721fd9..0000000000
--- a/modules/travel/front/descriptor/index.html
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/travel/front/descriptor/index.js b/modules/travel/front/descriptor/index.js
deleted file mode 100644
index b1f2f53bed..0000000000
--- a/modules/travel/front/descriptor/index.js
+++ /dev/null
@@ -1,63 +0,0 @@
-import ngModule from '../module';
-import Descriptor from 'salix/components/descriptor';
-
-class Controller extends Descriptor {
- get travel() {
- return this.entity;
- }
-
- set travel(value) {
- this.entity = value;
- }
-
- get travelFilter() {
- let travelFilter;
- const travel = this.travel;
-
- if (travel && travel.agencyModeFk) {
- travelFilter = this.travel && JSON.stringify({
- agencyModeFk: this.travel.agencyModeFk
- });
- }
- return travelFilter;
- }
-
- loadData() {
- const filter = {
- fields: [
- 'id',
- 'ref',
- 'shipped',
- 'landed',
- 'totalEntries',
- 'warehouseInFk',
- 'warehouseOutFk',
- 'cargoSupplierFk'
- ],
- include: [
- {
- relation: 'warehouseIn',
- scope: {
- fields: ['name']
- }
- }, {
- relation: 'warehouseOut',
- scope: {
- fields: ['name']
- }
- }
- ]
- };
-
- return this.getData(`Travels/${this.id}`, {filter})
- .then(res => this.entity = res.data);
- }
-}
-
-ngModule.vnComponent('vnTravelDescriptor', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- travel: '<'
- }
-});
diff --git a/modules/travel/front/descriptor/index.spec.js b/modules/travel/front/descriptor/index.spec.js
deleted file mode 100644
index 0a88c86070..0000000000
--- a/modules/travel/front/descriptor/index.spec.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import './index.js';
-
-describe('vnTravelDescriptor', () => {
- let controller;
- let $httpBackend;
-
- beforeEach(ngModule('travel'));
-
- beforeEach(inject(($componentController, _$httpBackend_) => {
- $httpBackend = _$httpBackend_;
- controller = $componentController('vnTravelDescriptor', {$element: null});
- }));
-
- describe('loadData()', () => {
- it(`should perform a get query to store the worker data into the controller`, () => {
- const id = 1;
- const response = 'foo';
-
- $httpBackend.expectRoute('GET', `Travels/${id}`).respond(response);
- controller.id = id;
- $httpBackend.flush();
-
- expect(controller.travel).toEqual(response);
- });
- });
-});
diff --git a/modules/travel/front/descriptor/locale/es.yml b/modules/travel/front/descriptor/locale/es.yml
deleted file mode 100644
index 3e6d627353..0000000000
--- a/modules/travel/front/descriptor/locale/es.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-Reference: Referencia
-Wh. In: Alm. entrada
-Wh. Out: Alm. salida
-Shipped: F. envío
-Landed: F. entrega
-Total entries: Entradas totales
\ No newline at end of file
diff --git a/modules/travel/front/extra-community-search-panel/index.html b/modules/travel/front/extra-community-search-panel/index.html
deleted file mode 100644
index c0d7267188..0000000000
--- a/modules/travel/front/extra-community-search-panel/index.html
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
diff --git a/modules/travel/front/extra-community-search-panel/index.js b/modules/travel/front/extra-community-search-panel/index.js
deleted file mode 100644
index 1add11dcec..0000000000
--- a/modules/travel/front/extra-community-search-panel/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import ngModule from '../module';
-import SearchPanel from 'core/components/searchbar/search-panel';
-
-class Controller extends SearchPanel {
- constructor($, $element) {
- super($, $element);
-
- this.filter = this.$.filter;
- }
-
- get shippedFrom() {
- return this.filter.shippedFrom;
- }
-
- set shippedFrom(value) {
- this.filter.shippedFrom = value;
- }
-
- get landedTo() {
- return this.filter.landedTo;
- }
-
- set landedTo(value) {
- this.filter.landedTo = value;
- }
-}
-
-ngModule.vnComponent('vnExtraCommunitySearchPanel', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/travel/front/extra-community/index.html b/modules/travel/front/extra-community/index.html
deleted file mode 100644
index 8132bddb1d..0000000000
--- a/modules/travel/front/extra-community/index.html
+++ /dev/null
@@ -1,189 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Id
- |
-
- Supplier
- |
-
- Agency
- |
-
- Amount
- |
-
- Reference
- |
-
- Packages
- |
-
- Bl. KG
- |
-
- Phy. KG
- |
-
- Vol. KG
- |
-
- Wh. Out
- |
-
- W. Shipped
- |
-
- Wh. In
- |
-
- W. Landed
- |
-
-
-
-
-
-
-
- {{::entry.id}}
-
- |
-
-
- {{::entry.supplierName}}
-
- |
- {{::entry.invoiceAmount | currency: 'EUR': 2}} |
- |
- {{::entry.reference}} |
- {{::entry.stickers}} |
- |
- {{::entry.loadedkg}} |
- {{::entry.volumeKg}} |
- |
- |
- |
- |
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/modules/travel/front/extra-community/index.js b/modules/travel/front/extra-community/index.js
deleted file mode 100644
index 6e9c39f438..0000000000
--- a/modules/travel/front/extra-community/index.js
+++ /dev/null
@@ -1,162 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-import './style.scss';
-
-class Controller extends Section {
- constructor($element, $, vnReport) {
- super($element, $);
-
- this.vnReport = vnReport;
-
- const draggable = this.element.querySelector('.travel-list');
- draggable.addEventListener('dragstart',
- event => this.dragStart(event));
- draggable.addEventListener('dragend',
- event => this.dragEnd(event));
-
- draggable.addEventListener('dragover',
- event => this.dragOver(event));
- draggable.addEventListener('dragenter',
- event => this.dragEnter(event));
- draggable.addEventListener('dragleave',
- event => this.dragLeave(event));
-
- this.draggableElement = 'tr[draggable]';
- this.droppableElement = 'tbody[vn-droppable]';
-
- const twoDays = 2;
- const shippedFrom = Date.vnNew();
- shippedFrom.setDate(shippedFrom.getDate() - twoDays);
- shippedFrom.setHours(0, 0, 0, 0);
-
- const sevenDays = 7;
- const landedTo = Date.vnNew();
- landedTo.setDate(landedTo.getDate() + sevenDays);
- landedTo.setHours(23, 59, 59, 59);
-
- this.defaultFilter = {
- shippedFrom: shippedFrom,
- landedTo: landedTo,
- continent: 'AM'
- };
-
- this.smartTableOptions = {};
- }
-
- onDragInterval() {
- if (this.dragClientY > 0 && this.dragClientY < 75)
- this.$window.scrollTo(0, this.$window.scrollY - 10);
-
- const maxHeight = window.screen.availHeight - (window.outerHeight - window.innerHeight);
- if (this.dragClientY > maxHeight - 75 && this.dragClientY < maxHeight)
- this.$window.scrollTo(0, this.$window.scrollY + 10);
- }
-
- findDraggable($event) {
- const target = $event.target;
- const draggable = target.closest(this.draggableElement);
-
- return draggable;
- }
-
- findDroppable($event) {
- const target = $event.target;
- const droppable = target.closest(this.droppableElement);
-
- return droppable;
- }
-
- dragStart($event) {
- const draggable = this.findDraggable($event);
- draggable.classList.add('dragging');
-
- const id = parseInt(draggable.id);
- this.entryId = id;
- this.entry = draggable;
- this.interval = setInterval(() => this.onDragInterval(), 50);
- }
-
- dragEnd($event) {
- const draggable = this.findDraggable($event);
- draggable.classList.remove('dragging');
- this.entryId = null;
- this.entry = null;
-
- clearInterval(this.interval);
- }
-
- onDrop($event) {
- const model = this.$.model;
- const droppable = this.findDroppable($event);
- const travelId = parseInt(droppable.id);
-
- const currentDroppable = this.entry.closest(this.droppableElement);
-
- if (currentDroppable == droppable) return;
-
- if (this.entryId && travelId) {
- const path = `Entries/${this.entryId}`;
- this.$http.patch(path, {travelFk: travelId})
- .then(() => model.refresh())
- .then(() => this.vnApp.showSuccess(this.$t('Data saved!')));
- }
- }
-
- undrop() {
- if (!this.dropping) return;
- this.dropping.classList.remove('dropping');
- this.dropping = null;
- }
-
- dragOver($event) {
- this.dragClientY = $event.clientY;
- $event.preventDefault();
- }
-
- dragEnter($event) {
- let element = this.findDroppable($event);
- if (element) this.dropCount++;
-
- if (element != this.dropping) {
- this.undrop();
- if (element) element.classList.add('dropping');
- this.dropping = element;
- }
- }
-
- dragLeave($event) {
- let element = this.findDroppable($event);
-
- if (element) {
- this.dropCount--;
- if (this.dropCount == 0) this.undrop();
- }
- }
-
- save(id, data) {
- const endpoint = `Travels/${id}`;
- this.$http.patch(endpoint, data)
- .then(() => this.vnApp.showSuccess(this.$t('Data saved!')));
- }
-
- get reportParams() {
- const userParams = this.$.model.userParams;
- const currentFilter = this.$.model.currentFilter;
-
- return Object.assign({
- authorization: this.vnToken.tokenMultimedia,
- filter: currentFilter
- }, userParams);
- }
-
- showReport() {
- this.vnReport.show(`Travels/extra-community-pdf`, this.reportParams);
- }
-}
-
-Controller.$inject = ['$element', '$scope', 'vnReport'];
-
-ngModule.vnComponent('vnTravelExtraCommunity', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/travel/front/extra-community/index.spec.js b/modules/travel/front/extra-community/index.spec.js
deleted file mode 100644
index 18ddee665c..0000000000
--- a/modules/travel/front/extra-community/index.spec.js
+++ /dev/null
@@ -1,128 +0,0 @@
-import './index.js';
-
-describe('Travel Component vnTravelExtraCommunity', () => {
- let controller;
- let $httpBackend;
-
- beforeEach(ngModule('travel'));
-
- beforeEach(inject(($componentController, _$httpBackend_) => {
- $httpBackend = _$httpBackend_;
- const $element = angular.element('');
- controller = $componentController('vnTravelExtraCommunity', {$element});
- controller.$.model = {};
- controller.$.model.refresh = jest.fn();
- }));
-
- describe('findDraggable()', () => {
- it('should find the draggable element', () => {
- const draggable = document.createElement('tr');
- draggable.setAttribute('draggable', true);
-
- const $event = new Event('dragstart');
- const target = document.createElement('div');
- draggable.appendChild(target);
- target.dispatchEvent($event);
-
- const result = controller.findDraggable($event);
-
- expect(result).toEqual(draggable);
- });
- });
-
- describe('findDroppable()', () => {
- it('should find the droppable element', () => {
- const droppable = document.createElement('tbody');
- droppable.setAttribute('vn-droppable', true);
-
- const $event = new Event('drop');
- const target = document.createElement('div');
- droppable.appendChild(target);
- target.dispatchEvent($event);
-
- const result = controller.findDroppable($event);
-
- expect(result).toEqual(droppable);
- });
- });
-
- describe('dragStart()', () => {
- it(`should add the class "dragging" to the draggable element
- and then set the entryId controller property`, () => {
- const draggable = document.createElement('tr');
- draggable.setAttribute('draggable', true);
- draggable.setAttribute('id', 3);
-
- jest.spyOn(controller, 'findDraggable').mockReturnValue(draggable);
-
- const $event = new Event('dragStart');
- controller.dragStart($event);
-
- const firstClass = draggable.classList[0];
-
- expect(firstClass).toEqual('dragging');
- expect(controller.entryId).toEqual(3);
- expect(controller.entry).toEqual(draggable);
- });
- });
-
- describe('dragEnd()', () => {
- it(`should remove the class "dragging" from the draggable element
- and then set the entryId controller property to null`, () => {
- const draggable = document.createElement('tr');
- draggable.setAttribute('draggable', true);
- draggable.setAttribute('id', 3);
- draggable.classList.add('dragging');
-
- jest.spyOn(controller, 'findDraggable').mockReturnValue(draggable);
-
- const $event = new Event('dragStart');
- controller.dragEnd($event);
-
- const classList = draggable.classList;
-
- expect(classList.length).toEqual(0);
- expect(controller.entryId).toBeNull();
- expect(controller.entry).toBeNull();
- });
- });
-
- describe('onDrop()', () => {
- it('should make an HTTP patch query', () => {
- const droppable = document.createElement('tbody');
- droppable.setAttribute('vn-droppable', true);
- droppable.setAttribute('id', 1);
-
- jest.spyOn(controller, 'findDroppable').mockReturnValue(droppable);
-
- const oldDroppable = document.createElement('tbody');
- oldDroppable.setAttribute('vn-droppable', true);
- const entry = document.createElement('div');
- oldDroppable.appendChild(entry);
-
- controller.entryId = 3;
- controller.entry = entry;
-
- const $event = new Event('drop');
- const expectedData = {travelFk: 1};
- $httpBackend.expect('PATCH', `Entries/3`, expectedData).respond(200);
- controller.onDrop($event);
- $httpBackend.flush();
- });
- });
-
- describe('save()', () => {
- it('should make an HTTP query', () => {
- jest.spyOn(controller.vnApp, 'showSuccess');
-
- const travelId = 1;
- const data = {ref: 'New reference'};
- const expectedData = {ref: 'New reference'};
- $httpBackend.expect('PATCH', `Travels/${travelId}`, expectedData).respond(200);
- controller.save(travelId, data);
- $httpBackend.flush();
-
- expect(controller.vnApp.showSuccess).toHaveBeenCalledWith('Data saved!');
- });
- });
-});
diff --git a/modules/travel/front/extra-community/locale/es.yml b/modules/travel/front/extra-community/locale/es.yml
deleted file mode 100644
index ed6179c91c..0000000000
--- a/modules/travel/front/extra-community/locale/es.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-Family: Familia
-Extra community: Extra comunitarios
-Freighter: Transitario
-Bl. KG: KG Bloq.
-Phy. KG: KG físico
-Vol. KG: KG Vol.
-Search by travel id or reference: Buscar por id de travel o referencia
-Search by extra community travel: Buscar por envío extra comunitario
-Continent Out: Cont. salida
-W. Shipped: F. envío
-W. Landed: F. llegada
diff --git a/modules/travel/front/extra-community/style.scss b/modules/travel/front/extra-community/style.scss
deleted file mode 100644
index fb64822f97..0000000000
--- a/modules/travel/front/extra-community/style.scss
+++ /dev/null
@@ -1,67 +0,0 @@
-@import "variables";
-
-vn-travel-extra-community {
- .header {
- margin-bottom: 16px;
- line-height: 1;
- padding: 7px;
- padding-bottom: 7px;
- padding-bottom: 4px;
- font-weight: lighter;
- background-color: $color-bg;
- color: white;
- border-bottom: 1px solid #f7931e;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- cursor: pointer;
- .multi-line{
- padding-top: 15px;
- padding-bottom: 15px;
- }
- }
-
- table[vn-droppable] {
- border-radius: 0;
- }
-
- tr[draggable] {
- transition: all .5s;
- cursor: move;
- overflow: auto;
- outline: 0;
- height: 65px;
- pointer-events: fill;
- user-select: all;
- }
-
- tr[draggable] *::selection {
- background-color: transparent;
- }
-
- tr[draggable]:hover {
- background-color: $color-hover-cd;
- }
-
- tr[draggable].dragging {
- background-color: $color-primary-light;
- color: $color-font-light;
- font-weight: bold;
- }
-
-
- .multi-line{
- max-width: 200px;
- word-wrap: normal;
- white-space: normal;
- }
-
- vn-td-editable text {
- background-color: transparent;
- padding: 0;
- border: 0;
- border-bottom: 1px dashed $color-active;
- border-radius: 0;
- color: $color-active
- }
-}
diff --git a/modules/travel/front/index.js b/modules/travel/front/index.js
index e4375c59da..a7209a0bdd 100644
--- a/modules/travel/front/index.js
+++ b/modules/travel/front/index.js
@@ -1,18 +1,3 @@
export * from './module';
import './main';
-import './index/';
-import './search-panel';
-import './descriptor';
-import './card';
-import './summary';
-import './basic-data';
-import './log';
-import './create';
-import './thermograph/index/';
-import './thermograph/create/';
-import './thermograph/edit/';
-import './descriptor-popover';
-import './descriptor-menu';
-import './extra-community';
-import './extra-community-search-panel';
diff --git a/modules/travel/front/index/index.html b/modules/travel/front/index/index.html
deleted file mode 100644
index a768e4a29b..0000000000
--- a/modules/travel/front/index/index.html
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- Reference
- Agency
- Warehouse Out
- Shipped
-
- Warehouse In
- Landed
-
- Total entries
-
-
-
-
-
- {{::travel.ref}}
- {{::travel.agencyModeName}}
- {{::travel.warehouseOutName}}
-
-
- {{::travel.shipped | date:'dd/MM/yyyy'}}
-
-
-
-
-
-
- {{::travel.warehouseInName}}
-
-
- {{::travel.landed | date:'dd/MM/yyyy'}}
-
-
-
-
-
-
- {{::travel.totalEntries}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/modules/travel/front/index/index.js b/modules/travel/front/index/index.js
deleted file mode 100644
index a570146fe3..0000000000
--- a/modules/travel/front/index/index.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-import './style.scss';
-
-export default class Controller extends Section {
- preview(travel) {
- this.travelSelected = travel;
- this.$.summary.show();
- }
-
- onCloneAccept(travel) {
- const params = JSON.stringify({
- ref: travel.ref,
- agencyModeFk: travel.agencyModeFk,
- shipped: travel.shipped,
- landed: travel.landed,
- warehouseInFk: travel.warehouseInFk,
- warehouseOutFk: travel.warehouseOutFk
- });
- this.$state.go('travel.create', {q: params});
- }
-
- compareDate(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';
- if (timeDifference < 0) return 'success';
- }
-}
-
-ngModule.vnComponent('vnTravelIndex', {
- template: require('./index.html'),
- controller: Controller
-});
diff --git a/modules/travel/front/index/index.spec.js b/modules/travel/front/index/index.spec.js
deleted file mode 100644
index 9083c45190..0000000000
--- a/modules/travel/front/index/index.spec.js
+++ /dev/null
@@ -1,78 +0,0 @@
-import './index.js';
-
-describe('Travel Component vnTravelIndex', () => {
- let controller;
- let travel = {
- id: 1,
- warehouseInFk: 1,
- totalEntries: 3,
- isDelivered: false
- };
-
- beforeEach(ngModule('travel'));
-
- beforeEach(inject($componentController => {
- const $element = angular.element('');
- controller = $componentController('vnTravelIndex', {$element});
- controller.$.summary = {show: jasmine.createSpy('show')};
- }));
-
- describe('preview()', () => {
- it('should show the dialog summary', () => {
- let event = new MouseEvent('click', {
- bubbles: true,
- cancelable: true
- });
- controller.preview(event, travel);
-
- expect(controller.$.summary.show).toHaveBeenCalledWith();
- });
- });
-
- describe('onCloneAccept()', () => {
- it('should call go() then update travelSelected in the controller', () => {
- jest.spyOn(controller.$state, 'go');
-
- const travel = {
- ref: 1,
- agencyModeFk: 1
- };
- const travelParams = {
- ref: travel.ref,
- agencyModeFk: travel.agencyModeFk
- };
- const queryParams = JSON.stringify(travelParams);
- controller.onCloneAccept(travel);
-
- expect(controller.$state.go).toHaveBeenCalledWith('travel.create', {q: queryParams});
- });
- });
-
- describe('compareDate()', () => {
- it('should return warning if the date passed to compareDate() is todays', () => {
- const today = Date.vnNew();
-
- const result = controller.compareDate(today);
-
- expect(result).toEqual('warning');
- });
-
- it('should return success if the date passed to compareDate() is in the future', () => {
- const tomorrow = Date.vnNew();
- tomorrow.setDate(tomorrow.getDate() + 1);
-
- const result = controller.compareDate(tomorrow);
-
- expect(result).toEqual('success');
- });
-
- it('should return undefined if the date passed to compareDate() is in the past', () => {
- const yesterday = Date.vnNew();
- yesterday.setDate(yesterday.getDate() - 1);
-
- const result = controller.compareDate(yesterday);
-
- expect(result).toBeUndefined();
- });
- });
-});
diff --git a/modules/travel/front/index/locale/es.yml b/modules/travel/front/index/locale/es.yml
deleted file mode 100644
index 5ce4c502f4..0000000000
--- a/modules/travel/front/index/locale/es.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-Do you want to clone this travel?: ¿Desea clonar este envio?
-All it's properties will be copied: Todas sus propiedades serán copiadas
-Clone: Clonar
\ No newline at end of file
diff --git a/modules/travel/front/index/style.scss b/modules/travel/front/index/style.scss
deleted file mode 100644
index ca1cf538be..0000000000
--- a/modules/travel/front/index/style.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-@import "variables";
-
-vn-travel-index {
- vn-icon {
- color: $color-font-secondary
- }
-
- vn-icon.active {
- color: $color-success
- }
-}
diff --git a/modules/travel/front/log/index.html b/modules/travel/front/log/index.html
deleted file mode 100644
index fc4622e5a5..0000000000
--- a/modules/travel/front/log/index.html
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/modules/travel/front/log/index.js b/modules/travel/front/log/index.js
deleted file mode 100644
index 7af601b5c0..0000000000
--- a/modules/travel/front/log/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import ngModule from '../module';
-import Section from 'salix/components/section';
-
-ngModule.vnComponent('vnTravelLog', {
- template: require('./index.html'),
- controller: Section,
-});
diff --git a/modules/travel/front/main/index.html b/modules/travel/front/main/index.html
index 131d9409e2..e69de29bb2 100644
--- a/modules/travel/front/main/index.html
+++ b/modules/travel/front/main/index.html
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/modules/travel/front/main/index.js b/modules/travel/front/main/index.js
index 6a153f21a4..37dcbb0dc6 100644
--- a/modules/travel/front/main/index.js
+++ b/modules/travel/front/main/index.js
@@ -5,6 +5,10 @@ export default class Travel extends ModuleMain {
constructor() {
super();
}
+ async $onInit() {
+ this.$state.go('home');
+ window.location.href = await this.vnApp.getUrl(`travel/`);
+ }
}
ngModule.vnComponent('vnTravel', {
diff --git a/modules/travel/front/routes.json b/modules/travel/front/routes.json
index 5a63620d4e..6ae61bd02a 100644
--- a/modules/travel/front/routes.json
+++ b/modules/travel/front/routes.json
@@ -27,80 +27,6 @@
"state": "travel.index",
"component": "vn-travel-index",
"description": "Travels"
- }, {
- "url": "/:id",
- "state": "travel.card",
- "abstract": true,
- "component": "vn-travel-card"
- }, {
- "url": "/summary",
- "state": "travel.card.summary",
- "component": "vn-travel-summary",
- "description": "Summary",
- "params": {
- "travel": "$ctrl.travel"
- }
- }, {
- "url": "/basic-data",
- "state": "travel.card.basicData",
- "component": "vn-travel-basic-data",
- "description": "Basic data",
- "acl": ["buyer","logistic"],
- "params": {
- "travel": "$ctrl.travel"
- }
- }, {
- "url" : "/log",
- "state": "travel.card.log",
- "component": "vn-travel-log",
- "description": "Log"
- }, {
- "url": "/create?q",
- "state": "travel.create",
- "component": "vn-travel-create",
- "description": "New travel"
- }, {
- "url": "/thermograph",
- "state": "travel.card.thermograph",
- "abstract": true,
- "component": "ui-view"
- }, {
- "url" : "/index",
- "state": "travel.card.thermograph.index",
- "component": "vn-travel-thermograph-index",
- "description": "Thermographs",
- "params": {
- "travel": "$ctrl.travel"
- },
- "acl": ["buyer"]
- }, {
- "url" : "/create",
- "state": "travel.card.thermograph.create",
- "component": "vn-travel-thermograph-create",
- "description": "Add thermograph",
- "params": {
- "travel": "$ctrl.travel"
- },
- "acl": ["buyer"]
- }, {
- "url" : "/:thermographId/edit",
- "state": "travel.card.thermograph.edit",
- "component": "vn-travel-thermograph-edit",
- "description": "Edit thermograph",
- "params": {
- "travel": "$ctrl.travel"
- },
- "acl": ["buyer"]
- },
- {
- "url": "/extra-community?q",
- "state": "travel.extraCommunity",
- "component": "vn-travel-extra-community",
- "description": "Extra community",
- "acl": ["buyer"],
- "params": {
- "travel": "$ctrl.travel"
- }
}
]
}
diff --git a/modules/travel/front/search-panel/index.html b/modules/travel/front/search-panel/index.html
deleted file mode 100644
index dd8d98af1b..0000000000
--- a/modules/travel/front/search-panel/index.html
+++ /dev/null
@@ -1,146 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Id/{{$ctrl.$t('Reference')}}: {{$ctrl.filter.search}}
-
-
- {{$ctrl.$t('Agency')}}: {{agency.selection.name}}
-
-
- {{$ctrl.$t('Warehouse Out')}}: {{warehouseOut.selection.name}}
-
-
- {{$ctrl.$t('Warehouse In')}}: {{warehouseIn.selection.name}}
-
-
- {{$ctrl.$t('Days onward')}}: {{$ctrl.filter.scopeDays}}
-
-
- {{$ctrl.$t('Landed from')}}: {{$ctrl.filter.landedFrom | date:'dd/MM/yyyy'}}
-
-
- {{$ctrl.$t('Landed to')}}: {{$ctrl.filter.landedTo | date:'dd/MM/yyyy'}}
-
-
- {{$ctrl.$t('Continent Out')}}: {{continent.selection.name}}
-
-
- {{$ctrl.$t('Total entries')}}: {{$ctrl.filter.totalEntries}}
-
-
-
diff --git a/modules/travel/front/search-panel/index.js b/modules/travel/front/search-panel/index.js
deleted file mode 100644
index 5969a8c3f9..0000000000
--- a/modules/travel/front/search-panel/index.js
+++ /dev/null
@@ -1,72 +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);
- this.initFilter();
- this.fetchData();
- }
-
- $onChanges() {
- if (this.model)
- this.applyFilters();
- }
-
- fetchData() {
- this.$http.get('AgencyModes').then(res => {
- this.agencyModes = res.data;
- });
- this.$http.get('Warehouses').then(res => {
- this.warehouses = res.data;
- });
- this.$http.get('Continents').then(res => {
- this.continents = res.data;
- });
- }
-
- initFilter() {
- this.filter = {};
- if (this.$params.q) {
- this.filter = JSON.parse(this.$params.q);
- this.search = this.filter.search;
- this.totalEntries = this.filter.totalEntries;
- }
- if (!this.filter.scopeDays) this.filter.scopeDays = 7;
- }
-
- applyFilters(param) {
- if (this.filter?.search)
- delete this.filter.scopeDays;
-
- this.model.applyFilter({}, this.filter)
- .then(() => {
- if (param && this.model._orgData.length === 1)
- this.$state.go('travel.card.summary', {id: this.model._orgData[0].id});
- else
- this.$state.go(this.$state.current.name, {q: JSON.stringify(this.filter)}, {location: 'replace'});
- });
- }
-
- removeParamFilter(param) {
- if (this[param]) delete this[param];
- delete this.filter[param];
- this.applyFilters();
- }
-
- onKeyPress($event, param) {
- if ($event.key === 'Enter') {
- this.filter[param] = this[param];
- this.applyFilters(param === 'search');
- }
- }
-}
-
-ngModule.vnComponent('vnTravelSearchPanel', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- model: '<'
- }
-});
diff --git a/modules/travel/front/search-panel/index.spec.js b/modules/travel/front/search-panel/index.spec.js
deleted file mode 100644
index 488143e80c..0000000000
--- a/modules/travel/front/search-panel/index.spec.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import './index';
-
-describe('Travel Component vnTravelSearchPanel', () => {
- let controller;
-
- beforeEach(ngModule('travel'));
-
- beforeEach(inject($componentController => {
- controller = $componentController('vnTravelSearchPanel', {$element: null});
- controller.$t = () => {};
- }));
-
- describe('applyFilters()', () => {
- it('should apply filters', async() => {
- controller.filter = {foo: 'bar'};
- controller.model = {
- applyFilter: jest.fn().mockResolvedValue(),
- _orgData: [{id: 1}]
- };
- controller.$state = {
- current: {
- name: 'foo'
- },
- go: jest.fn()
- };
-
- await controller.applyFilters(true);
-
- expect(controller.model.applyFilter).toHaveBeenCalledWith({}, controller.filter);
- expect(controller.$state.go).toHaveBeenCalledWith('travel.card.summary', {id: 1});
-
- await controller.applyFilters(false);
-
- expect(controller.$state.go).toHaveBeenCalledWith(controller.$state.current.name,
- {q: JSON.stringify(controller.filter)}, {location: 'replace'});
- });
- });
-});
diff --git a/modules/travel/front/search-panel/locale/es.yml b/modules/travel/front/search-panel/locale/es.yml
deleted file mode 100644
index 1f892a7429..0000000000
--- a/modules/travel/front/search-panel/locale/es.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-Ticket id: Id ticket
-Client id: Id cliente
-Nickname: Alias
-From: Desde
-To: Hasta
-Agency: Agencia
-Warehouse: Almacén
\ No newline at end of file
diff --git a/modules/travel/front/search-panel/style.scss b/modules/travel/front/search-panel/style.scss
deleted file mode 100644
index 0da52408ab..0000000000
--- a/modules/travel/front/search-panel/style.scss
+++ /dev/null
@@ -1,37 +0,0 @@
-@import "variables";
-
-vn-travel-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;
- }
- .chips {
- display: flex;
- flex-wrap: wrap;
- padding: $spacing-md;
- overflow: hidden;
- max-width: 100%;
- border-color: $color-spacer;
- }
-
- .or {
- align-self: center;
- font-weight: bold;
- font-size: 26px;
- color: $color-font-secondary;
- }
- }
-}
diff --git a/modules/travel/front/summary/index.html b/modules/travel/front/summary/index.html
deleted file mode 100644
index d9dbb0f909..0000000000
--- a/modules/travel/front/summary/index.html
+++ /dev/null
@@ -1,167 +0,0 @@
-
-
-
-
-
- {{$ctrl.travelData.id}} - {{$ctrl.travelData.ref}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Entries
-
-
-
- Confirmed
- Entry Id
- Supplier
- Reference
- HB
- Freight
- Package
- CC
- Pallet
- m³
-
-
-
-
-
-
-
-
-
-
-
- {{entry.id}}
-
-
- {{entry.supplierName}}
- {{entry.reference}}
- {{entry.hb}}
- {{entry.freightValue | currency: 'EUR': 2}}
- {{entry.packageValue | currency: 'EUR': 2}}
- {{entry.cc}}
- {{entry.pallet}}
- {{entry.m3}}
-
-
-
-
-
-
-
-
-
-
-
-
- {{$ctrl.total('hb')}}
- {{$ctrl.total('freightValue') | currency: 'EUR': 2}}
- {{$ctrl.total('packageValue') | currency: 'EUR': 2}}
- {{$ctrl.total('cc') | number:2}}
- {{$ctrl.total('pallet') | number:2}}
- {{$ctrl.total('m3') | number:2}}
-
-
-
-
-
-
-
-
- Thermograph
-
-
-
-
- Code
- Temperature
- State
- Destination
- Created
-
-
-
-
- {{thermograph.thermographFk}}
- {{thermograph.temperatureFk}}
- {{thermograph.result}}
- {{thermograph.warehouse.name}}
- {{thermograph.created | date: 'dd/MM/yyyy'}}
-
-
-
-
-
-
-
-
diff --git a/modules/travel/front/summary/index.js b/modules/travel/front/summary/index.js
deleted file mode 100644
index 5144a0bb5e..0000000000
--- a/modules/travel/front/summary/index.js
+++ /dev/null
@@ -1,71 +0,0 @@
-import ngModule from '../module';
-import Summary from 'salix/components/summary';
-import './style.scss';
-
-class Controller extends Summary {
- $onInit() {
- this.entries = [];
- }
-
- get travel() {
- return this._travel;
- }
-
- set travel(value) {
- this._travel = value;
-
- if (value && value.id) {
- this.getTravel();
- this.getEntries();
- this.getThermographs();
- }
- }
-
- getTravel() {
- return this.$http.get(`Travels/${this.travel.id}/getTravel`)
- .then(res => this.travelData = res.data);
- }
-
- getEntries() {
- return this.$http.get(`Travels/${this.travel.id}/getEntries`)
- .then(res => this.entries = res.data);
- }
-
- getThermographs() {
- const filter = {
- include: {
- relation: 'warehouse',
- scope: {
- fields: ['id', 'name']
- }
- },
- where: {
- travelFk: this.travel.id
- }
- };
-
- return this.$http.get(`TravelThermographs`, {filter})
- .then(res => this.travelThermographs = res.data);
- }
-
- total(field) {
- let total = 0;
-
- for (let entry of this.entries)
- total += entry[field];
-
- return total;
- }
-
- get isBuyer() {
- return this.aclService.hasAny(['buyer']);
- }
-}
-
-ngModule.vnComponent('vnTravelSummary', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- travel: '<'
- }
-});
diff --git a/modules/travel/front/summary/index.spec.js b/modules/travel/front/summary/index.spec.js
deleted file mode 100644
index b1b7506896..0000000000
--- a/modules/travel/front/summary/index.spec.js
+++ /dev/null
@@ -1,86 +0,0 @@
-import './index';
-
-describe('component vnTravelSummary', () => {
- let controller;
- let $httpBackend;
- let $scope;
- let $httpParamSerializer;
-
- beforeEach(angular.mock.module('travel', $translateProvider => {
- $translateProvider.translations('en', {});
- }));
-
- beforeEach(inject(($componentController, $rootScope, _$httpBackend_, _$httpParamSerializer_) => {
- $httpBackend = _$httpBackend_;
- $httpParamSerializer = _$httpParamSerializer_;
- $scope = $rootScope.$new();
- const $element = angular.element(``);
- controller = $componentController('vnTravelSummary', {$element, $scope});
- }));
-
- describe('travel setter/getter', () => {
- it('should return the travel and then call both getTravel() and getEntries()', () => {
- jest.spyOn(controller, 'getTravel');
- jest.spyOn(controller, 'getEntries');
- jest.spyOn(controller, 'getThermographs');
- controller.travel = {id: 99};
-
- expect(controller._travel.id).toEqual(99);
- expect(controller.getTravel).toHaveBeenCalledWith();
- expect(controller.getEntries).toHaveBeenCalledWith();
- expect(controller.getThermographs).toHaveBeenCalledWith();
- });
- });
-
- describe('getTravel()', () => {
- it('should perform a get and then store data on the controller', () => {
- controller._travel = {id: 999};
-
- const query = `Travels/${controller._travel.id}/getTravel`;
- $httpBackend.expectGET(query).respond('I am the travelData');
- controller.getTravel();
- $httpBackend.flush();
-
- expect(controller.travelData).toEqual('I am the travelData');
- });
- });
-
- describe('getEntries()', () => {
- it('should call the getEntries method to get the entries data', () => {
- controller._travel = {id: 999};
-
- const query = `Travels/${controller._travel.id}/getEntries`;
- $httpBackend.expectGET(query).respond('I am the entries');
- controller.getEntries();
- $httpBackend.flush();
-
- expect(controller.entries).toEqual('I am the entries');
- });
- });
-
- describe('getThermographs()', () => {
- it('should call the getThermographs method to get the thermographs', () => {
- controller._travel = {id: 2};
-
- $httpBackend.expectGET(`TravelThermographs`).respond('I am the thermographs');
- controller.getThermographs();
- $httpBackend.flush();
-
- expect(controller.travelThermographs).toEqual('I am the thermographs');
- });
- });
-
- describe('total()', () => {
- it('should calculate the total amount of a given property for every row', () => {
- controller.entries = [
- {id: 1, freightValue: 1, packageValue: 2, cc: 0.01},
- {id: 2, freightValue: 1, packageValue: 2, cc: 0.01},
- {id: 3, freightValue: 1, packageValue: 2, cc: 0.01}
- ];
-
- expect(controller.total('freightValue')).toEqual(3);
- expect(controller.total('packageValue')).toEqual(6);
- expect(controller.total('cc')).toEqual(0.03);
- });
- });
-});
diff --git a/modules/travel/front/summary/locale/es.yml b/modules/travel/front/summary/locale/es.yml
deleted file mode 100644
index aa6adc9381..0000000000
--- a/modules/travel/front/summary/locale/es.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-Reference: Referencia
-Warehouse In: Alm. entrada
-Warehouse Out: Alm. salida
-Shipped: F. envío
-Landed: F. entrega
-Total entries: Ent. totales
-Delivered: Enviada
-Received: Recibida
-Agency: Agencia
-Entries: Entradas
-Confirmed: Confirmada
-Entry Id: Id entrada
-Supplier: Proveedor
-Pallet: Pallet
-Freight: Porte
-Package: Embalaje
-Half box: Media caja
-Go to the travel: Ir al envío
diff --git a/modules/travel/front/summary/style.scss b/modules/travel/front/summary/style.scss
deleted file mode 100644
index dd4cfa72dc..0000000000
--- a/modules/travel/front/summary/style.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-@import "variables";
-
-
-vn-travel-summary .summary {
- max-width: $width-lg;
-}
\ No newline at end of file
diff --git a/modules/travel/front/thermograph/create/index.html b/modules/travel/front/thermograph/create/index.html
deleted file mode 100644
index 41709e1fbc..0000000000
--- a/modules/travel/front/thermograph/create/index.html
+++ /dev/null
@@ -1,177 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/travel/front/thermograph/create/index.js b/modules/travel/front/thermograph/create/index.js
deleted file mode 100644
index 9f06788073..0000000000
--- a/modules/travel/front/thermograph/create/index.js
+++ /dev/null
@@ -1,122 +0,0 @@
-import ngModule from '../../module';
-import Section from 'salix/components/section';
-import UserError from 'core/lib/user-error';
-
-class Controller extends Section {
- constructor($element, $) {
- super($element, $);
- this.dms = {files: [], state: 'Ok'};
- }
-
- get travel() {
- return this._travel;
- }
-
- set travel(value) {
- this._travel = value;
-
- if (value) {
- this.setDefaultParams();
- this.getAllowedContentTypes();
- }
- }
-
- getAllowedContentTypes() {
- this.$http.get('DmsContainers/allowedContentTypes').then(res => {
- const contentTypes = res.data.join(', ');
- this.allowedContentTypes = contentTypes;
- });
- }
-
- get contentTypesInfo() {
- return this.$t('ContentTypesInfo', {
- allowedContentTypes: this.allowedContentTypes
- });
- }
-
- setDefaultParams() {
- const params = {filter: {
- where: {code: 'miscellaneous'}
- }};
- this.$http.get('DmsTypes/findOne', {params}).then(res => {
- const dmsTypeId = res.data && res.data.id;
- const companyId = this.vnConfig.companyFk;
- const warehouseId = this.vnConfig.warehouseFk;
- const defaultParams = {
- reference: this.travel.id,
- warehouseId: warehouseId,
- companyId: companyId,
- dmsTypeId: dmsTypeId,
- description: this.$t('TravelFileDescription', {
- travelId: this.travel.id
- }).toUpperCase()
- };
-
- this.dms = Object.assign(this.dms, defaultParams);
- });
- }
-
- onAddThermographClick(event) {
- const defaultTemperature = 'cool';
- const defaultModel = 'DISPOSABLE';
-
- event.preventDefault();
- this.newThermograph = {
- thermographId: this.thermographId,
- warehouseId: this.warehouseId,
- temperatureFk: defaultTemperature,
- model: defaultModel
- };
-
- this.$.modelsModel.refresh();
- this.$.newThermographDialog.show();
- }
-
- onNewThermographAccept() {
- const hasMissingField =
- !this.newThermograph.thermographId ||
- !this.newThermograph.warehouseId ||
- !this.newThermograph.temperatureFk ||
- !this.newThermograph.model;
-
- if (hasMissingField)
- throw new UserError(`Some fields are invalid`);
-
- return this.$http.post(`Thermographs/createThermograph`, this.newThermograph)
- .then(res => this.dms.thermographId = res.data.id);
- }
-
- onSubmit() {
- const query = `Travels/${this.travel.id}/saveThermograph`;
- const options = {
- method: 'POST',
- url: query,
- params: this.dms,
- headers: {
- 'Content-Type': undefined
- },
- transformRequest: files => {
- const formData = new FormData();
-
- for (let i = 0; i < files.length; i++)
- formData.append(files[i].name, files[i]);
-
- return formData;
- },
- data: this.dms.files
- };
- this.$http(options).then(res => {
- this.vnApp.showSuccess(this.$t('Data saved!'));
- this.$.watcher.updateOriginalData();
- this.$state.go('travel.card.thermograph.index');
- });
- }
-}
-
-ngModule.vnComponent('vnTravelThermographCreate', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- travel: '<'
- }
-});
diff --git a/modules/travel/front/thermograph/create/index.spec.js b/modules/travel/front/thermograph/create/index.spec.js
deleted file mode 100644
index 1ad263d31f..0000000000
--- a/modules/travel/front/thermograph/create/index.spec.js
+++ /dev/null
@@ -1,108 +0,0 @@
-import './index';
-
-describe('Ticket', () => {
- describe('Component vnTravelThermographCreate', () => {
- let controller;
- let $httpBackend;
- let $httpParamSerializer;
- const travelId = 3;
- const dmsTypeId = 5;
-
- beforeEach(ngModule('travel'));
-
- beforeEach(inject(($componentController, _$httpBackend_, _$httpParamSerializer_) => {
- $httpBackend = _$httpBackend_;
- $httpParamSerializer = _$httpParamSerializer_;
- const $element = angular.element('');
- controller = $componentController('vnTravelThermographCreate', {$element});
- controller._travel = {
- id: travelId
- };
- }));
-
- describe('travel() setter', () => {
- it('should set the travel data and then call setDefaultParams() and getAllowedContentTypes()', () => {
- jest.spyOn(controller, 'setDefaultParams');
- jest.spyOn(controller, 'getAllowedContentTypes');
- controller.travel = {
- id: travelId
- };
-
- expect(controller.travel).toBeDefined();
- expect(controller.setDefaultParams).toHaveBeenCalledWith();
- expect(controller.getAllowedContentTypes).toHaveBeenCalledWith();
- });
- });
-
- describe('setDefaultParams()', () => {
- it('should perform a GET query and define the dms property on controller', () => {
- const params = {filter: {
- where: {code: 'miscellaneous'}
- }};
- let serializedParams = $httpParamSerializer(params);
- $httpBackend.expect('GET', `DmsTypes/findOne?${serializedParams}`).respond({id: dmsTypeId, code: 'miscellaneous'});
- controller.setDefaultParams();
- $httpBackend.flush();
-
- expect(controller.dms).toBeDefined();
- expect(controller.dms.reference).toEqual(travelId);
- expect(controller.dms.dmsTypeId).toEqual(dmsTypeId);
- });
- });
-
- describe('getAllowedContentTypes()', () => {
- it('should make an HTTP GET request to get the allowed content types', () => {
- const expectedResponse = ['application/pdf', 'image/png', 'image/jpg'];
- $httpBackend.expect('GET', `DmsContainers/allowedContentTypes`).respond(expectedResponse);
- controller.getAllowedContentTypes();
- $httpBackend.flush();
-
- expect(controller.allowedContentTypes).toBeDefined();
- expect(controller.allowedContentTypes).toEqual('application/pdf, image/png, image/jpg');
- });
- });
-
- describe('onAddThermographClick()', () => {
- it('should call the show() function of the create thermograph dialog', () => {
- controller.$.newThermographDialog = {show: jest.fn()};
- controller.$.modelsModel = {refresh: jest.fn()};
- controller.$.temperaturesModel = {refresh: jest.fn()};
-
- const event = new Event('click');
- jest.spyOn(event, 'preventDefault');
-
- controller.onAddThermographClick(event);
-
- expect(event.preventDefault).toHaveBeenCalledTimes(1);
- expect(controller.$.newThermographDialog.show).toHaveBeenCalledTimes(1);
- });
- });
-
- describe('onNewThermographAccept()', () => {
- it('should set the created thermograph data on to the controller for the autocomplete to use it', () => {
- const id = 'the created id';
- const warehouseId = 1;
- const temperatureId = 'cool';
- const model = 'my model';
-
- controller.newThermograph = {
- thermographId: id,
- warehouseId: warehouseId,
- temperatureFk: temperatureId,
- model: model
- };
- const response = {
- id: id,
- warehouseId: warehouseId,
- temperatureFk: temperatureId,
- model: model
- };
- $httpBackend.when('POST', `Thermographs/createThermograph`).respond(response);
- controller.onNewThermographAccept();
- $httpBackend.flush();
-
- expect(controller.dms.thermographId).toEqual(response.id);
- });
- });
- });
-});
diff --git a/modules/travel/front/thermograph/edit/index.html b/modules/travel/front/thermograph/edit/index.html
deleted file mode 100644
index 3fe448b56c..0000000000
--- a/modules/travel/front/thermograph/edit/index.html
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
diff --git a/modules/travel/front/thermograph/edit/index.js b/modules/travel/front/thermograph/edit/index.js
deleted file mode 100644
index 17caf9ef24..0000000000
--- a/modules/travel/front/thermograph/edit/index.js
+++ /dev/null
@@ -1,98 +0,0 @@
-import ngModule from '../../module';
-import Section from 'salix/components/section';
-import './style.scss';
-
-class Controller extends Section {
- get travel() {
- return this._travel;
- }
-
- set travel(value) {
- this._travel = value;
-
- if (value) {
- this.setDefaultParams();
- this.getAllowedContentTypes();
- }
- }
-
- getAllowedContentTypes() {
- this.$http.get('DmsContainers/allowedContentTypes').then(res => {
- const contentTypes = res.data.join(', ');
- this.allowedContentTypes = contentTypes;
- });
- }
-
- get contentTypesInfo() {
- return this.$t('ContentTypesInfo', {
- allowedContentTypes: this.allowedContentTypes
- });
- }
-
- setDefaultParams() {
- const filterObj = {include: {relation: 'dms'}};
- const filter = encodeURIComponent(JSON.stringify(filterObj));
- const path = `TravelThermographs/${this.$params.thermographId}?filter=${filter}`;
- this.$http.get(path).then(res => {
- const thermograph = res.data;
- this.thermograph = {
- thermographId: thermograph.thermographFk,
- state: thermograph.result,
- reference: thermograph.dms.reference,
- warehouseId: thermograph.dms.warehouseFk,
- companyId: thermograph.dms.companyFk,
- dmsTypeId: thermograph.dms.dmsTypeFk,
- description: thermograph.dms.description,
- hasFile: thermograph.dms.hasFile,
- hasFileAttached: false,
- files: []
- };
- });
- }
-
- onSubmit() {
- const query = `travels/${this.$params.id}/saveThermograph`;
- const options = {
- method: 'POST',
- url: query,
- params: this.thermograph,
- headers: {
- 'Content-Type': undefined
- },
- transformRequest: files => {
- const formData = new FormData();
-
- for (const element of files)
- formData.append(element.name, element);
-
- return formData;
- },
- data: this.thermograph.files
- };
- this.$http(options).then(res => {
- if (res) {
- this.vnApp.showSuccess(this.$t('Data saved!'));
- this.$.watcher.updateOriginalData();
- this.$state.go('travel.card.thermograph.index');
- }
- });
- }
-
- onFileChange(files) {
- let hasFileAttached = false;
- if (files.length > 0)
- hasFileAttached = true;
-
- this.$.$applyAsync(() => {
- this.thermograph.hasFileAttached = hasFileAttached;
- });
- }
-}
-
-ngModule.vnComponent('vnTravelThermographEdit', {
- template: require('./index.html'),
- controller: Controller,
- bindings: {
- travel: '<'
- }
-});
diff --git a/modules/travel/front/thermograph/edit/index.spec.js b/modules/travel/front/thermograph/edit/index.spec.js
deleted file mode 100644
index 0b3ef4fbe3..0000000000
--- a/modules/travel/front/thermograph/edit/index.spec.js
+++ /dev/null
@@ -1,120 +0,0 @@
-import './index';
-import watcher from 'core/mocks/watcher.js';
-
-describe('Worker', () => {
- describe('Component vnTravelThermographEdit', () => {
- let controller;
- let $scope;
- let $httpBackend;
- let $httpParamSerializer;
-
- beforeEach(ngModule('travel'));
-
- beforeEach(inject(($componentController, $rootScope, _$httpBackend_, _$httpParamSerializer_) => {
- $scope = $rootScope.$new();
- $httpBackend = _$httpBackend_;
- $httpParamSerializer = _$httpParamSerializer_;
- const $element = angular.element(` {
- it('should set the travel data and then call setDefaultParams() and getAllowedContentTypes()', () => {
- jest.spyOn(controller, 'setDefaultParams');
- jest.spyOn(controller, 'getAllowedContentTypes');
- controller._travel = undefined;
- controller.travel = {
- id: 3
- };
-
- expect(controller.setDefaultParams).toHaveBeenCalledWith();
- expect(controller.travel).toBeDefined();
- expect(controller.getAllowedContentTypes).toHaveBeenCalledWith();
- });
- });
-
- describe('setDefaultParams()', () => {
- it('should perform a GET query and define the dms property on controller', () => {
- const thermographId = 6;
- const expectedResponse = {
- thermographFk: 6,
- result: 'Ok',
- dms: {
- reference: '123456-01',
- warehouseFk: 1,
- companyFk: 442,
- dmsTypeFk: 3,
- description: 'Test'
- }
- };
-
- const filterObj = {include: {relation: 'dms'}};
- const filter = encodeURIComponent(JSON.stringify(filterObj));
- const query = `TravelThermographs/${thermographId}?filter=${filter}`;
- $httpBackend.expect('GET', query).respond(expectedResponse);
- controller.setDefaultParams();
- $httpBackend.flush();
-
- expect(controller.thermograph).toBeDefined();
- expect(controller.thermograph.reference).toEqual('123456-01');
- expect(controller.thermograph.dmsTypeId).toEqual(3);
- expect(controller.thermograph.state).toEqual('Ok');
- });
- });
-
- describe('onFileChange()', () => {
- it('should set dms hasFileAttached property to true if has any files', () => {
- const files = [{id: 1, name: 'MyFile'}];
- controller.thermograph = {hasFileAttached: false};
- controller.onFileChange(files);
- $scope.$apply();
-
- expect(controller.thermograph.hasFileAttached).toBeTruthy();
- });
- });
-
- describe('getAllowedContentTypes()', () => {
- it('should make an HTTP GET request to get the allowed content types', () => {
- const expectedResponse = ['image/png', 'image/jpg'];
- $httpBackend.expect('GET', `DmsContainers/allowedContentTypes`).respond(expectedResponse);
- controller.getAllowedContentTypes();
- $httpBackend.flush();
-
- expect(controller.allowedContentTypes).toBeDefined();
- expect(controller.allowedContentTypes).toEqual('image/png, image/jpg');
- });
- });
-
- describe('contentTypesInfo()', () => {
- it('should return a description with a list of allowed content types', () => {
- controller.allowedContentTypes = ['image/png', 'image/jpg'];
- const expectedTypes = controller.allowedContentTypes.join(', ');
-
- const expectedResult = `Allowed content types: ${expectedTypes}`;
- jest.spyOn(controller.$translate, 'instant').mockReturnValue(expectedResult);
-
- const result = controller.contentTypesInfo;
-
- expect(result).toEqual(expectedResult);
- });
- });
-
- describe('onSubmit()', () => {
- it('should make an HTTP POST request to save the form data', () => {
- jest.spyOn(controller.$.watcher, 'updateOriginalData');
-
- const files = [{id: 1, name: 'MyFile'}];
- controller.thermograph = {files};
- const serializedParams = $httpParamSerializer(controller.thermograph);
- const query = `travels/${controller.$params.id}/saveThermograph?${serializedParams}`;
-
- $httpBackend.expect('POST', query).respond({});
- controller.onSubmit();
- $httpBackend.flush();
- });
- });
- });
-});
diff --git a/modules/travel/front/thermograph/edit/style.scss b/modules/travel/front/thermograph/edit/style.scss
deleted file mode 100644
index 73f136fc15..0000000000
--- a/modules/travel/front/thermograph/edit/style.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-vn-ticket-request {
- .vn-textfield {
- margin: 0!important;
- max-width: 100px;
- }
-}
-
diff --git a/modules/travel/front/thermograph/index/index.html b/modules/travel/front/thermograph/index/index.html
deleted file mode 100644
index 4d711613d2..0000000000
--- a/modules/travel/front/thermograph/index/index.html
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/travel/front/thermograph/index/index.js b/modules/travel/front/thermograph/index/index.js
deleted file mode 100644
index f8b239cfef..0000000000
--- a/modules/travel/front/thermograph/index/index.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import ngModule from '../../module';
-import Section from 'salix/components/section';
-import './style.scss';
-
-class Controller extends Section {
- constructor($element, $, vnFile) {
- super($element, $);
- this.vnFile = vnFile;
- this.filter = {
- include:
- {relation: 'warehouse',
- scope: {
- fields: ['id', 'name']
- }
- }
- };
- }
-
- showDeleteConfirm(index) {
- this.thermographIndex = index;
- this.$.confirm.show();
- }
-
- deleteThermograph() {
- const data = this.travelThermographs;
- const thermographId = data[this.thermographIndex].id;
- const query = `Travels/deleteThermograph?id=${thermographId}`;
- this.$http.delete(query).then(() => {
- this.vnApp.showSuccess(this.$t('Thermograph deleted'));
- this.$.model.remove(this.thermographIndex);
- this.thermographIndex = null;
- });
- }
-
- downloadFile(dmsId) {
- this.vnFile.download(`api/dms/${dmsId}/downloadFile`);
- }
-}
-
-Controller.$inject = ['$element', '$scope', 'vnFile'];
-
-ngModule.vnComponent('vnTravelThermographIndex', {
- template: require('./index.html'),
- controller: Controller,
- require: {
- card: '^vnTravelCard'
- },
- bindings: {
- travel: '<'
- }
-});
diff --git a/modules/travel/front/thermograph/index/style.scss b/modules/travel/front/thermograph/index/style.scss
deleted file mode 100644
index 2c287ed9dd..0000000000
--- a/modules/travel/front/thermograph/index/style.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-@import "variables";
-
-vn-route-tickets form{
- margin: 0 auto;
- max-width: $width-lg;
-}
\ No newline at end of file
diff --git a/modules/travel/front/thermograph/locale/es.yml b/modules/travel/front/thermograph/locale/es.yml
deleted file mode 100644
index 1fdb98c8e7..0000000000
--- a/modules/travel/front/thermograph/locale/es.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-Code: Código
-Temperature: Temperatura
-State: Estado
-Destination: Destino
-Created: Creado
-Remove thermograph: Eliminar termógrafo
-Upload file: Subir fichero
-Edit file: Editar fichero
-Upload: Subir
-File: Fichero
-TravelFileDescription: Travel id {{travelId}}
-ContentTypesInfo: 'Tipos de archivo permitidos: {{allowedContentTypes}}'
-Are you sure you want to continue?: ¿Seguro que quieres continuar?
-Add thermograph: Añadir termógrafo
-Edit thermograph: Editar termógrafo
-Thermograph deleted: Termógrafo eliminado
-Thermograph: Termógrafo
-New thermograph: Nuevo termógrafo
-Are you sure you want to remove the thermograph?: ¿Seguro que quieres quitar el termógrafo?
-Identifier: Identificador
\ No newline at end of file