Merge pull request '3047-order_basicdata_valid_agencies' (#720) from 3047-order_basicdata_valid_agencies into dev
gitea/salix/pipeline/head This commit looks good Details

Reviewed-on: #720
Reviewed-by: Joan Sanchez <joan@verdnatura.es>
This commit is contained in:
Carlos Jimenez Ruiz 2021-08-31 12:25:32 +00:00
commit 559d27e835
5 changed files with 67 additions and 14 deletions

View File

@ -76,7 +76,7 @@ describe('Order edit basic data path', () => {
it('should be able to modify all the properties', async() => {
await page.autocompleteSearch(selectors.orderBasicData.client, 'Tony Stark');
await page.autocompleteSearch(selectors.orderBasicData.address, 'Tony Stark');
await page.autocompleteSearch(selectors.orderBasicData.agency, 'Silla247');
await page.autocompleteSearch(selectors.orderBasicData.agency, 'Other agency');
await page.write(selectors.orderBasicData.observation, 'my observation');
await page.waitToClick(selectors.orderBasicData.saveButton);
const message = await page.waitForSnackbar();
@ -96,7 +96,7 @@ describe('Order edit basic data path', () => {
const result = await page
.waitToGetProperty(selectors.orderBasicData.agency, 'value');
expect(result).toEqual('7: Silla247');
expect(result).toEqual('Other agency');
});
it('should now confirm the observations have been edited', async() => {

View File

@ -35,7 +35,8 @@
search-function="$search"
show-field="nickname"
value-field="id"
ng-model="$ctrl.order.addressFk">
ng-model="$ctrl.order.addressFk"
on-change="$ctrl.getAvailableAgencies()">
<tpl-item>{{::nickname}}</tpl-item>
</vn-autocomplete>
</vn-horizontal>
@ -43,17 +44,16 @@
<vn-date-picker
vn-one
label="Landed"
ng-model="$ctrl.order.landed">
ng-model="$ctrl.order.landed"
on-change="$ctrl.getAvailableAgencies()">
</vn-date-picker>
<vn-autocomplete
vn-one
url="AgencyModes"
disabled="!$ctrl.order.addressFk || !$ctrl.order.landed"
data="$ctrl._availableAgencies"
label="Agency"
search-function="{or: [{id: $search}, {name: {like: '%'+$search+'%'}}]}"
show-field="name"
value-field="id"
show-field="agencyMode"
value-field="agencyModeFk"
ng-model="$ctrl.order.agencyModeFk">
<tpl-item>{{::id}}: {{::name}}</tpl-item>
</vn-autocomplete>
</vn-horizontal>
<vn-horizontal>

View File

@ -20,6 +20,32 @@ class Controller extends Section {
}
});
}
set order(value = {}) {
this._order = value;
const agencyModeFk = value.agencyModeFk;
this.getAvailableAgencies();
this._order.agencyModeFk = agencyModeFk;
}
get order() {
return this._order;
}
getAvailableAgencies() {
const order = this.order;
order.agencyModeFk = null;
const params = {
addressFk: order.addressFk,
landed: order.landed
};
if (params.landed && params.addressFk) {
this.$http.get(`Agencies/landsThatDay`, {params})
.then(res => this._availableAgencies = res.data);
}
}
}
ngModule.vnComponent('vnOrderBasicData', {

View File

@ -3,13 +3,15 @@ import './index.js';
describe('Order', () => {
describe('Component vnOrderBasicData', () => {
let $httpBackend;
let $httpParamSerializer;
let controller;
let $scope;
beforeEach(ngModule('order'));
beforeEach(inject(($compile, _$httpBackend_, $rootScope) => {
beforeEach(inject(($compile, _$httpBackend_, $rootScope, _$httpParamSerializer_) => {
$httpBackend = _$httpBackend_;
$httpParamSerializer = _$httpParamSerializer_;
$scope = $rootScope.$new();
$httpBackend.whenRoute('GET', 'Addresses')
@ -30,10 +32,35 @@ describe('Order', () => {
describe('constructor()', () => {
it('should update the address after the client changes', async() => {
controller.selection = {id: 2, defaultAddressFk: 2};
const addressId = 999;
const id = 444;
controller.selection = {id: id, defaultAddressFk: addressId};
$scope.$digest();
expect(controller.order.addressFk).toEqual(2);
expect(controller.order.addressFk).toEqual(addressId);
});
});
describe('getAvailableAgencies()', () => {
it('should set agencyModeFk to null and get the available agencies if the order has landed and client', async() => {
controller.order.agencyModeFk = 999;
controller.order.addressFk = 999;
controller.order.landed = new Date();
const expectedAgencies = [{id: 1}, {id: 2}];
const paramsObj = {
addressFk: controller.order.addressFk,
landed: controller.order.landed
};
const serializedParams = $httpParamSerializer(paramsObj);
$httpBackend.expect('GET', `Agencies/landsThatDay?${serializedParams}`).respond(expectedAgencies);
controller.getAvailableAgencies();
$httpBackend.flush();
expect(controller.order.agencyModeFk).toBeDefined();
expect(controller._availableAgencies).toEqual(expectedAgencies);
});
});
});

View File

@ -37,7 +37,7 @@ class Controller extends Component {
};
filter = encodeURIComponent(JSON.stringify(filter));
let query = `Clients?filter=${filter}`;
this.$http.get(query).then(res=> {
this.$http.get(query).then(res => {
if (res.data) {
let client = res.data[0];
let defaultAddress = client.defaultAddress;