From d53cedd5d4e1de46806ca315489a629e106dad57 Mon Sep 17 00:00:00 2001 From: jgallego Date: Thu, 26 Mar 2020 17:41:40 +0100 Subject: [PATCH] preparado para PR --- .../10170-NOFallas/00-zone_getEvents.sql | 30 +++++++++++-------- db/dump/fixtures.sql | 2 +- front/core/directives/specs/focus.spec.js | 1 - modules/zone/back/methods/zone/getEvents.js | 11 ++----- modules/zone/front/delivery-days/index.html | 21 ++++++++----- modules/zone/front/delivery-days/index.js | 22 ++++++++------ .../zone/front/delivery-days/index.spec.js | 22 +++++++++++++- 7 files changed, 68 insertions(+), 41 deletions(-) diff --git a/db/changes/10170-NOFallas/00-zone_getEvents.sql b/db/changes/10170-NOFallas/00-zone_getEvents.sql index 5911abdc30..991150db75 100644 --- a/db/changes/10170-NOFallas/00-zone_getEvents.sql +++ b/db/changes/10170-NOFallas/00-zone_getEvents.sql @@ -5,7 +5,6 @@ DELIMITER $$ USE `vn`$$ CREATE DEFINER=`root`@`%` PROCEDURE `zone_getEvents`( vGeoFk INT, - vDeliveryMethodFk VARCHAR(255), vAgencyModeFk INT) BEGIN /** @@ -14,14 +13,20 @@ BEGIN * @param vGeoFk The geo id * @param vAgencyModeFk The agency mode id */ - DROP TEMPORARY TABLE IF EXISTS tmp.auxZone; - - CREATE TEMPORARY TABLE tmp.auxZone - (id INT(11) PRIMARY KEY) + DECLARE vDeliveryMethodFk VARCHAR(255); + + DROP TEMPORARY TABLE IF EXISTS tZone; + CREATE TEMPORARY TABLE tZone + (id INT PRIMARY KEY) ENGINE = MEMORY; - IF vDeliveryMethodFk = 'pickUp' THEN - INSERT INTO tmp.auxZone + SELECT dm.`code` INTO vDeliveryMethodFk + FROM agencyMode am + JOIN deliveryMethod dm ON dm.id = am.deliveryMethodFk + WHERE am.id = vAgencyModeFk; + + IF vDeliveryMethodFk = 'PICKUP' THEN + INSERT INTO tZone SELECT id FROM zone WHERE agencyModeFk = vAgencyModeFk; @@ -29,13 +34,13 @@ BEGIN CALL zone_getFromGeo(vGeoFk); IF vAgencyModeFk IS NOT NULL THEN - INSERT INTO tmp.auxZone + INSERT INTO tZone SELECT t.id FROM tmp.zone t JOIN zone z ON z.id = t.id WHERE z.agencyModeFk = vAgencyModeFk; ELSE - INSERT INTO tmp.auxZone + INSERT INTO tZone SELECT t.id FROM tmp.zone t JOIN zone z ON z.id = t.id @@ -47,15 +52,14 @@ BEGIN END IF; SELECT e.zoneFk, e.`type`, e.dated, e.`started`, e.`ended`, e.weekDays - FROM tmp.auxZone t + FROM tZone t JOIN zoneEvent e ON e.zoneFk = t.id; SELECT e.zoneFk, e.dated - FROM tmp.auxZone t + FROM tZone t JOIN zoneExclusion e ON e.zoneFk = t.id; - DROP TEMPORARY TABLE IF EXISTS tmp.auxZone; - + DROP TEMPORARY TABLE tZone; END$$ DELIMITER ; diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index 7b2fd1cae5..c32e8475fa 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -156,7 +156,7 @@ UPDATE `vn`.`agencyMode` SET `id` = 8 WHERE `name` = 'Silla247Expensive'; UPDATE `vn`.`agencyMode` SET `id` = 23 WHERE `name` = 'Refund'; UPDATE `vn`.`agencyMode` SET `id` = 10 WHERE `name` = 'Other agency'; -UPDATE `vn`.`agencyMode` SET `deliveryMethodFk` = 1 WHERE `id` = 1; +UPDATE `vn`.`agencyMode` SET `deliveryMethodFk` = 3 WHERE `id` = 1; UPDATE `vn`.`agencyMode` SET `deliveryMethodFk` = 1 WHERE `id` = 2; UPDATE `vn`.`agencyMode` SET `deliveryMethodFk` = 2 WHERE `id` = 3; UPDATE `vn`.`agencyMode` SET `deliveryMethodFk` = 1 WHERE `id` = 4; diff --git a/front/core/directives/specs/focus.spec.js b/front/core/directives/specs/focus.spec.js index 82cd7d84da..11c60688a1 100644 --- a/front/core/directives/specs/focus.spec.js +++ b/front/core/directives/specs/focus.spec.js @@ -27,7 +27,6 @@ describe('Directive focus', () => { expect($element[0].firstChild.focus).toHaveBeenCalledWith(); }); - it('should call focus function on the element', () => { let html = ``; compile(html); diff --git a/modules/zone/back/methods/zone/getEvents.js b/modules/zone/back/methods/zone/getEvents.js index 2555fec83a..406ef01039 100644 --- a/modules/zone/back/methods/zone/getEvents.js +++ b/modules/zone/back/methods/zone/getEvents.js @@ -7,11 +7,6 @@ module.exports = Self => { arg: 'geoFk', type: 'Number', description: 'The geo id' - }, { - arg: 'deliveryMethodFk', - type: 'String', - description: 'The delivery Method code', - required: true }, { arg: 'agencyModeFk', type: 'Number', @@ -29,10 +24,10 @@ module.exports = Self => { } }); - Self.getEvents = async(geoFk, deliveryMethodFk, agencyModeFk) => { + Self.getEvents = async(geoFk, agencyModeFk) => { let [events, exclusions] = await Self.rawSql( - `CALL zone_getEvents(?, ?, ?)`, - [geoFk, deliveryMethodFk, agencyModeFk] + `CALL zone_getEvents(?, ?)`, + [geoFk, agencyModeFk] ); return {events, exclusions}; }; diff --git a/modules/zone/front/delivery-days/index.html b/modules/zone/front/delivery-days/index.html index 28e2c565a3..f2d4ee27d6 100644 --- a/modules/zone/front/delivery-days/index.html +++ b/modules/zone/front/delivery-days/index.html @@ -9,22 +9,26 @@ + ng-model="$ctrl.deliveryMethodFk"> + label="Delivery" + val="delivery" + ng-model="$ctrl.deliveryMethodFk" + class="vn-mb-sm"> - + show-field="code" + > {{code}} - {{town.name}} ({{town.province.name}}, {{town.province.country.country}}) @@ -34,7 +38,8 @@ label="Agency" ng-model="params.agencyModeFk" url="AgencyModes/isActive" - where="$ctrl.agencyFilter"> + where="$ctrl.agencyFilter" + vn-id="agencymode"> diff --git a/modules/zone/front/delivery-days/index.js b/modules/zone/front/delivery-days/index.js index c433f525ad..8afe8060a9 100644 --- a/modules/zone/front/delivery-days/index.js +++ b/modules/zone/front/delivery-days/index.js @@ -5,9 +5,11 @@ import './style.scss'; class Controller extends Section { $onInit() { this.$.params = {}; - this.$.params.deliveryMethodFk = 'delivery'; } + $postLink() { + this.deliveryMethodFk = 'delivery'; + } onSubmit() { this.$.data = null; this.$http.get(`Zones/getEvents`, {params: this.$.params}) @@ -20,19 +22,21 @@ class Controller extends Section { } get deliveryMethodFk() { - return this._deliveryMethod; + return this._deliveryMethodFk; } set deliveryMethodFk(value) { - this._deliveryMethod = value; + this._deliveryMethodFk = value; + this.$.params.agencyModeFk = null; let filter; - if (value === 'pickUp') + if (value === 'pickUp') { filter = {where: {code: 'PICKUP'}}; - else - filter = {where: {code: {neq: 'PICKUP'}}}; - let json = encodeURIComponent(JSON.stringify(filter)); - this.$http.get(`DeliveryMethods?filter=${json}`).then(json => { - let deliveryMethods = json.data.map(deliveryMethod => deliveryMethod.id); + this.$.agencymode.focus(); + } else + filter = {where: {code: {inq: ['DELIVERY', 'AGENCY']}}}; + + this.$http.get(`DeliveryMethods`, {filter}).then(res => { + let deliveryMethods = res.data.map(deliveryMethod => deliveryMethod.id); this.agencyFilter = {deliveryMethodFk: {inq: deliveryMethods}}; }); } diff --git a/modules/zone/front/delivery-days/index.spec.js b/modules/zone/front/delivery-days/index.spec.js index 35171ab944..71021223d6 100644 --- a/modules/zone/front/delivery-days/index.spec.js +++ b/modules/zone/front/delivery-days/index.spec.js @@ -21,8 +21,28 @@ describe('Zone Component vnZoneDeliveryDays', () => { model: crudModel } }; + controller.$.params = {}; })); + describe('deliveryMethodFk() setter', () => { + it(`should set the deliveryMethodFk property and check just agencymode focus`, () => { + controller.$.agencymode = {focus: jasmine.createSpy('focus')}; + + controller.deliveryMethodFk = 'pickUp'; + + expect(controller.$.agencymode.focus).toHaveBeenCalledWith(); + }); + + it(`should set the deliveryMethodFk property, call method http and sets the agencyfilter`, () => { + $httpBackend.when('GET', 'DeliveryMethods').respond([{id: 'id'}]); + + controller.deliveryMethodFk = 'no pickUp'; + $httpBackend.flush(); + + expect(controller.agencyFilter).toEqual({deliveryMethodFk: {inq: ['id']}}); + }); + }); + describe('onSubmit()', () => { it('should make an HTTP GET query and then call the showMessage() method', () => { jest.spyOn(controller.vnApp, 'showMessage'); @@ -48,7 +68,7 @@ describe('Zone Component vnZoneDeliveryDays', () => { }); }); - describe('onSelection()', () => { + xdescribe('onSelection()', () => { it('should not call the show popover method if events array is empty', () => { jest.spyOn(controller.$.zoneEvents, 'show');