Merge branch 'dev' into 3752-claim_action
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
This commit is contained in:
commit
a47c0dbaea
|
@ -28,7 +28,7 @@ module.exports = Self => {
|
||||||
const args = ctx.args;
|
const args = ctx.args;
|
||||||
const models = Self.app.models;
|
const models = Self.app.models;
|
||||||
|
|
||||||
const sale = await models.Sale.findById(args.saleId,);
|
const sale = await models.Sale.findById(args.saleId);
|
||||||
return await sale.updateAttribute('quantity', args.quantity);
|
return await sale.updateAttribute('quantity', args.quantity);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1133,7 +1133,7 @@ export default {
|
||||||
entryLatestBuys: {
|
entryLatestBuys: {
|
||||||
firstBuy: 'vn-entry-latest-buys tbody > tr:nth-child(1)',
|
firstBuy: 'vn-entry-latest-buys tbody > tr:nth-child(1)',
|
||||||
allBuysCheckBox: 'vn-entry-latest-buys thead vn-check',
|
allBuysCheckBox: 'vn-entry-latest-buys thead vn-check',
|
||||||
secondBuyCheckBox: 'vn-entry-latest-buys tbody tr:nth-child(2) vn-check[ng-model="buy.$checked"]',
|
secondBuyCheckBox: 'vn-entry-latest-buys tbody tr:nth-child(2) vn-check[ng-model="buy.checked"]',
|
||||||
editBuysButton: 'vn-entry-latest-buys vn-button[icon="edit"]',
|
editBuysButton: 'vn-entry-latest-buys vn-button[icon="edit"]',
|
||||||
fieldAutocomplete: 'vn-autocomplete[ng-model="$ctrl.editedColumn.field"]',
|
fieldAutocomplete: 'vn-autocomplete[ng-model="$ctrl.editedColumn.field"]',
|
||||||
newValueInput: 'vn-textfield[ng-model="$ctrl.editedColumn.newValue"]',
|
newValueInput: 'vn-textfield[ng-model="$ctrl.editedColumn.newValue"]',
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
SelectAllRows: Select the {{rows}} row(s)
|
|
@ -0,0 +1,3 @@
|
||||||
|
SelectAllRows: Seleccionar las {{rows}} fila(s)
|
||||||
|
All: Se han seleccionado
|
||||||
|
row(s) have been selected.: fila(s).
|
|
@ -2,4 +2,23 @@
|
||||||
ng-model="$ctrl.checked"
|
ng-model="$ctrl.checked"
|
||||||
indeterminate="$ctrl.isIndeterminate"
|
indeterminate="$ctrl.isIndeterminate"
|
||||||
translate-attr="{title: 'Check all'}">
|
translate-attr="{title: 'Check all'}">
|
||||||
</vn-check>
|
</vn-check>
|
||||||
|
<vn-icon-button
|
||||||
|
class="vn-pl-none"
|
||||||
|
ng-if="$ctrl.checked && $ctrl.checkDummyEnabled"
|
||||||
|
icon="expand_more"
|
||||||
|
vn-popover="menu"
|
||||||
|
ng-click="$ctrl.countRows()">
|
||||||
|
</vn-icon-button>
|
||||||
|
<vn-menu vn-id="menu">
|
||||||
|
<vn-list>
|
||||||
|
<span translate>All</span>
|
||||||
|
<span class="bold">
|
||||||
|
{{$ctrl.rows}}
|
||||||
|
</span>
|
||||||
|
<span translate>row(s) have been selected.</span>
|
||||||
|
<span class="bold link" ng-click="$ctrl.checkDummy()">
|
||||||
|
{{$ctrl.allRowsText}}
|
||||||
|
</span>
|
||||||
|
</vn-list>
|
||||||
|
</vn-menu>
|
|
@ -106,6 +106,9 @@ export default class MultiCheck extends FormInput {
|
||||||
|
|
||||||
this.toggle();
|
this.toggle();
|
||||||
this.emit('change', value);
|
this.emit('change', value);
|
||||||
|
|
||||||
|
if (!value)
|
||||||
|
this.checkedDummyCount = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -132,12 +135,43 @@ export default class MultiCheck extends FormInput {
|
||||||
areAllUnchecked() {
|
areAllUnchecked() {
|
||||||
if (!this.model || !this.model.data) return;
|
if (!this.model || !this.model.data) return;
|
||||||
|
|
||||||
|
this.checkedDummyCount = null;
|
||||||
const data = this.model.data;
|
const data = this.model.data;
|
||||||
return data.every(item => {
|
return data.every(item => {
|
||||||
return item[this.checkField] === false;
|
return item[this.checkField] === false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
countRows() {
|
||||||
|
if (!this.model || !this.model.data) return;
|
||||||
|
|
||||||
|
const data = this.model.data;
|
||||||
|
const modelParams = this.model.userParams;
|
||||||
|
const params = {
|
||||||
|
filter: {
|
||||||
|
modelParams: modelParams,
|
||||||
|
limit: null
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
this.rows = data.length;
|
||||||
|
|
||||||
|
this.$http.get(this.model.url, {params})
|
||||||
|
.then(res => {
|
||||||
|
this.allRowsCount = res.data.length;
|
||||||
|
this.allRowsText = this.$t('SelectAllRows', {
|
||||||
|
rows: this.allRowsCount
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
checkDummy() {
|
||||||
|
if (this.checkedDummyCount)
|
||||||
|
return this.checkedDummyCount = null;
|
||||||
|
|
||||||
|
this.checkedDummyCount = this.allRowsCount;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Toggles checked property on
|
* Toggles checked property on
|
||||||
* all instances
|
* all instances
|
||||||
|
@ -158,7 +192,9 @@ ngModule.vnComponent('vnMultiCheck', {
|
||||||
checkField: '@?',
|
checkField: '@?',
|
||||||
checkAll: '=?',
|
checkAll: '=?',
|
||||||
checked: '=?',
|
checked: '=?',
|
||||||
disabled: '<?'
|
disabled: '<?',
|
||||||
|
checkDummyEnabled: '<?',
|
||||||
|
checkedDummyCount: '=?'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,14 @@ import crudModel from 'core/mocks/crud-model';
|
||||||
describe('Component vnMultiCheck', () => {
|
describe('Component vnMultiCheck', () => {
|
||||||
let controller;
|
let controller;
|
||||||
let $element;
|
let $element;
|
||||||
|
let $httpBackend;
|
||||||
|
let $httpParamSerializer;
|
||||||
|
|
||||||
beforeEach(ngModule('vnCore'));
|
beforeEach(ngModule('vnCore'));
|
||||||
|
|
||||||
beforeEach(inject($componentController => {
|
beforeEach(inject(($componentController, _$httpBackend_, _$httpParamSerializer_) => {
|
||||||
|
$httpBackend = _$httpBackend_;
|
||||||
|
$httpParamSerializer = _$httpParamSerializer_;
|
||||||
$element = angular.element(`<div class="shown"></div>`);
|
$element = angular.element(`<div class="shown"></div>`);
|
||||||
controller = $componentController('vnMultiCheck', {$element: $element});
|
controller = $componentController('vnMultiCheck', {$element: $element});
|
||||||
controller._model = crudModel;
|
controller._model = crudModel;
|
||||||
|
@ -26,6 +30,14 @@ describe('Component vnMultiCheck', () => {
|
||||||
expect(controller._checked).toEqual(crudModel);
|
expect(controller._checked).toEqual(crudModel);
|
||||||
expect(controller.toggle).toHaveBeenCalledWith();
|
expect(controller.toggle).toHaveBeenCalledWith();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it(`should set checkedDummyCount to null`, () => {
|
||||||
|
jest.spyOn(controller, 'toggle');
|
||||||
|
controller.checkedDummyCount = 12;
|
||||||
|
controller.checked = null;
|
||||||
|
|
||||||
|
expect(controller.checkedDummyCount).toBeNull();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('toggle()', () => {
|
describe('toggle()', () => {
|
||||||
|
@ -132,4 +144,50 @@ describe('Component vnMultiCheck', () => {
|
||||||
expect(thirdRow.checked).toBeTruthy();
|
expect(thirdRow.checked).toBeTruthy();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('countRows()', () => {
|
||||||
|
it(`should count visible rows and all rows of model`, () => {
|
||||||
|
controller.model.url = 'modelUrl/filter';
|
||||||
|
const data = controller.model.data;
|
||||||
|
const filter = {
|
||||||
|
limit: null
|
||||||
|
};
|
||||||
|
const serializedParams = $httpParamSerializer({filter});
|
||||||
|
|
||||||
|
const response = [
|
||||||
|
{id: 1, name: 'My item 1'},
|
||||||
|
{id: 2, name: 'My item 2'},
|
||||||
|
{id: 3, name: 'My item 3'},
|
||||||
|
{id: 4, name: 'My item 4'},
|
||||||
|
{id: 5, name: 'My item 5'},
|
||||||
|
{id: 6, name: 'My item 6'}
|
||||||
|
];
|
||||||
|
|
||||||
|
controller.countRows();
|
||||||
|
$httpBackend.expectGET(`modelUrl/filter?${serializedParams}`).respond(response);
|
||||||
|
$httpBackend.flush();
|
||||||
|
|
||||||
|
expect(controller.rows).toEqual(data.length);
|
||||||
|
expect(controller.allRowsCount).toEqual(response.length);
|
||||||
|
expect(controller.allRowsCount).toBeGreaterThan(controller.rows);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('checkDummy()', () => {
|
||||||
|
const allRows = 1234;
|
||||||
|
it(`should set the checked dummy count to all rows count if there was no count yet`, () => {
|
||||||
|
controller.checkedDummyCount = null;
|
||||||
|
controller.allRowsCount = allRows;
|
||||||
|
controller.checkDummy();
|
||||||
|
|
||||||
|
expect(controller.checkedDummyCount).toEqual(controller.allRowsCount);
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should remove the dummy count if there was an existing one`, () => {
|
||||||
|
controller.checkedDummyCount = allRows;
|
||||||
|
controller.checkDummy();
|
||||||
|
|
||||||
|
expect(controller.checkedDummyCount).toBeNull();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,17 @@
|
||||||
|
@import "variables";
|
||||||
vn-multi-check {
|
vn-multi-check {
|
||||||
.vn-check {
|
.vn-check {
|
||||||
margin-bottom: 12px
|
margin-bottom: 12px
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vn-list{
|
||||||
|
padding: 50px;
|
||||||
|
}
|
||||||
|
vn-menu{
|
||||||
|
padding: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
.bold{
|
||||||
|
font-weight: bold;
|
||||||
}
|
}
|
|
@ -105,7 +105,7 @@
|
||||||
<div ng-transclude="btnFive">
|
<div ng-transclude="btnFive">
|
||||||
<vn-quick-link
|
<vn-quick-link
|
||||||
ng-if="$ctrl.client.supplier.nif"
|
ng-if="$ctrl.client.supplier.nif"
|
||||||
tooltip="Go to client"
|
tooltip="Go to supplier"
|
||||||
state="['supplier.card.summary', {id: $ctrl.client.supplier.id}]"
|
state="['supplier.card.summary', {id: $ctrl.client.supplier.id}]"
|
||||||
icon="icon-supplier">
|
icon="icon-supplier">
|
||||||
</vn-quick-link>
|
</vn-quick-link>
|
||||||
|
|
|
@ -3,5 +3,6 @@ View consumer report: Ver informe de consumo
|
||||||
From date: Fecha desde
|
From date: Fecha desde
|
||||||
To date: Fecha hasta
|
To date: Fecha hasta
|
||||||
Go to user: Ir al usuario
|
Go to user: Ir al usuario
|
||||||
|
Go to supplier: Ir al proveedor
|
||||||
Client invoices list: Listado de facturas del cliente
|
Client invoices list: Listado de facturas del cliente
|
||||||
Pay method: Forma de pago
|
Pay method: Forma de pago
|
|
@ -1,27 +1,32 @@
|
||||||
module.exports = Self => {
|
module.exports = Self => {
|
||||||
Self.remoteMethod('editLatestBuys', {
|
Self.remoteMethodCtx('editLatestBuys', {
|
||||||
description: 'Updates a column for one or more buys',
|
description: 'Updates a column for one or more buys',
|
||||||
accessType: 'WRITE',
|
accessType: 'WRITE',
|
||||||
accepts: [{
|
accepts: [{
|
||||||
arg: 'field',
|
arg: 'field',
|
||||||
type: 'String',
|
type: 'string',
|
||||||
required: true,
|
required: true,
|
||||||
description: `the column to edit`
|
description: `the column to edit`
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
arg: 'newValue',
|
arg: 'newValue',
|
||||||
type: 'Any',
|
type: 'any',
|
||||||
required: true,
|
required: true,
|
||||||
description: `The new value to save`
|
description: `The new value to save`
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
arg: 'lines',
|
arg: 'lines',
|
||||||
type: ['Object'],
|
type: ['object'],
|
||||||
required: true,
|
required: true,
|
||||||
description: `the buys which will be modified`
|
description: `the buys which will be modified`
|
||||||
|
},
|
||||||
|
{
|
||||||
|
arg: 'filter',
|
||||||
|
type: 'object',
|
||||||
|
description: 'Filter defining where, order, offset, and limit - must be a JSON-encoded string'
|
||||||
}],
|
}],
|
||||||
returns: {
|
returns: {
|
||||||
type: 'Object',
|
type: 'object',
|
||||||
root: true
|
root: true
|
||||||
},
|
},
|
||||||
http: {
|
http: {
|
||||||
|
@ -30,7 +35,7 @@ module.exports = Self => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.editLatestBuys = async(field, newValue, lines, options) => {
|
Self.editLatestBuys = async(ctx, field, newValue, lines, filter, options) => {
|
||||||
let tx;
|
let tx;
|
||||||
const myOptions = {};
|
const myOptions = {};
|
||||||
|
|
||||||
|
@ -64,17 +69,19 @@ module.exports = Self => {
|
||||||
|
|
||||||
const models = Self.app.models;
|
const models = Self.app.models;
|
||||||
const model = models[modelName];
|
const model = models[modelName];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const promises = [];
|
const promises = [];
|
||||||
|
const value = {};
|
||||||
|
value[field] = newValue;
|
||||||
|
|
||||||
|
if (filter) {
|
||||||
|
ctx.args.filter = {where: filter, limit: null};
|
||||||
|
lines = await models.Buy.latestBuysFilter(ctx, null, myOptions);
|
||||||
|
}
|
||||||
|
|
||||||
const targets = lines.map(line => {
|
const targets = lines.map(line => {
|
||||||
return line[identifier];
|
return line[identifier];
|
||||||
});
|
});
|
||||||
|
|
||||||
const value = {};
|
|
||||||
value[field] = newValue;
|
|
||||||
|
|
||||||
for (let target of targets)
|
for (let target of targets)
|
||||||
promises.push(model.upsertWithWhere({id: target}, value, myOptions));
|
promises.push(model.upsertWithWhere({id: target}, value, myOptions));
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ module.exports = Self => {
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
returns: {
|
returns: {
|
||||||
type: ['Object'],
|
type: ['object'],
|
||||||
root: true
|
root: true
|
||||||
},
|
},
|
||||||
http: {
|
http: {
|
||||||
|
@ -98,6 +98,9 @@ module.exports = Self => {
|
||||||
Self.latestBuysFilter = async(ctx, filter, options) => {
|
Self.latestBuysFilter = async(ctx, filter, options) => {
|
||||||
const myOptions = {};
|
const myOptions = {};
|
||||||
|
|
||||||
|
if (filter && filter.modelParams)
|
||||||
|
ctx.args = filter.modelParams;
|
||||||
|
|
||||||
if (typeof options == 'object')
|
if (typeof options == 'object')
|
||||||
Object.assign(myOptions, options);
|
Object.assign(myOptions, options);
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ describe('Buy editLatestsBuys()', () => {
|
||||||
const options = {transaction: tx};
|
const options = {transaction: tx};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let ctx = {
|
const ctx = {
|
||||||
args: {
|
args: {
|
||||||
search: 'Ranged weapon longbow 2m'
|
search: 'Ranged weapon longbow 2m'
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,35 @@ describe('Buy editLatestsBuys()', () => {
|
||||||
const newValue = 99;
|
const newValue = 99;
|
||||||
const lines = [{itemFk: original.itemFk, id: original.id}];
|
const lines = [{itemFk: original.itemFk, id: original.id}];
|
||||||
|
|
||||||
await models.Buy.editLatestBuys(field, newValue, lines, options);
|
await models.Buy.editLatestBuys(ctx, field, newValue, lines, null, options);
|
||||||
|
|
||||||
|
const [result] = await models.Buy.latestBuysFilter(ctx, null, options);
|
||||||
|
|
||||||
|
expect(result[field]).toEqual(newValue);
|
||||||
|
|
||||||
|
await tx.rollback();
|
||||||
|
} catch (e) {
|
||||||
|
await tx.rollback();
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should change the value of a given column for filter', async() => {
|
||||||
|
const tx = await models.Buy.beginTransaction({});
|
||||||
|
const options = {transaction: tx};
|
||||||
|
|
||||||
|
try {
|
||||||
|
const filter = {typeFk: 1};
|
||||||
|
const ctx = {
|
||||||
|
args: {
|
||||||
|
filter: filter
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const field = 'size';
|
||||||
|
const newValue = 88;
|
||||||
|
|
||||||
|
await models.Buy.editLatestBuys(ctx, field, newValue, null, filter, options);
|
||||||
|
|
||||||
const [result] = await models.Buy.latestBuysFilter(ctx, null, options);
|
const [result] = await models.Buy.latestBuysFilter(ctx, null, options);
|
||||||
|
|
||||||
|
|
|
@ -29,9 +29,11 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th shrink>
|
<th shrink>
|
||||||
<vn-multi-check
|
<vn-multi-check
|
||||||
checked="$ctrl.checkAll"
|
|
||||||
model="model"
|
model="model"
|
||||||
check-field="$checked">
|
checked="$ctrl.checkAll"
|
||||||
|
check-field="checked"
|
||||||
|
check-dummy-enabled="true"
|
||||||
|
checked-dummy-count="$ctrl.checkedDummyCount">
|
||||||
</vn-multi-check>
|
</vn-multi-check>
|
||||||
</th>
|
</th>
|
||||||
<th translate>Picture</th>
|
<th translate>Picture</th>
|
||||||
|
@ -126,7 +128,7 @@
|
||||||
}">
|
}">
|
||||||
<td>
|
<td>
|
||||||
<vn-check
|
<vn-check
|
||||||
ng-model="buy.$checked"
|
ng-model="buy.checked"
|
||||||
vn-click-stop>
|
vn-click-stop>
|
||||||
</vn-check>
|
</vn-check>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -6,7 +6,7 @@ export default class Controller extends Section {
|
||||||
constructor($element, $) {
|
constructor($element, $) {
|
||||||
super($element, $);
|
super($element, $);
|
||||||
this.editedColumn;
|
this.editedColumn;
|
||||||
this.$checkAll = false;
|
this.checkAll = false;
|
||||||
|
|
||||||
this.smartTableOptions = {
|
this.smartTableOptions = {
|
||||||
activeButtons: {
|
activeButtons: {
|
||||||
|
@ -91,7 +91,7 @@ export default class Controller extends Section {
|
||||||
const buys = this.$.model.data || [];
|
const buys = this.$.model.data || [];
|
||||||
const checkedBuys = [];
|
const checkedBuys = [];
|
||||||
for (let buy of buys) {
|
for (let buy of buys) {
|
||||||
if (buy.$checked)
|
if (buy.checked)
|
||||||
checkedBuys.push(buy);
|
checkedBuys.push(buy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,6 +142,9 @@ export default class Controller extends Section {
|
||||||
}
|
}
|
||||||
|
|
||||||
get totalChecked() {
|
get totalChecked() {
|
||||||
|
if (this.checkedDummyCount)
|
||||||
|
return this.checkedDummyCount;
|
||||||
|
|
||||||
return this.checked.length;
|
return this.checked.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,6 +159,9 @@ export default class Controller extends Section {
|
||||||
lines: rowsToEdit
|
lines: rowsToEdit
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (this.checkedDummyCount && this.checkedDummyCount > 0)
|
||||||
|
data.filter = this.$.model.userParams;
|
||||||
|
|
||||||
return this.$http.post('Buys/editLatestBuys', data)
|
return this.$http.post('Buys/editLatestBuys', data)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.uncheck();
|
this.uncheck();
|
||||||
|
|
|
@ -31,10 +31,10 @@ describe('Entry', () => {
|
||||||
describe('get checked', () => {
|
describe('get checked', () => {
|
||||||
it(`should return a set of checked lines`, () => {
|
it(`should return a set of checked lines`, () => {
|
||||||
controller.$.model.data = [
|
controller.$.model.data = [
|
||||||
{$checked: true, id: 1},
|
{checked: true, id: 1},
|
||||||
{$checked: true, id: 2},
|
{checked: true, id: 2},
|
||||||
{$checked: true, id: 3},
|
{checked: true, id: 3},
|
||||||
{$checked: false, id: 4},
|
{checked: false, id: 4},
|
||||||
];
|
];
|
||||||
|
|
||||||
let result = controller.checked;
|
let result = controller.checked;
|
||||||
|
|
|
@ -100,12 +100,7 @@ module.exports = Self => {
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
let supplier = await Self.app.models.Supplier.findOne(filter);
|
|
||||||
|
|
||||||
const farmerCode = 2;
|
return Self.app.models.Supplier.findOne(filter);
|
||||||
if (supplier.sageWithholdingFk == farmerCode)
|
|
||||||
supplier.isFarmer = true;
|
|
||||||
|
|
||||||
return supplier;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -25,12 +25,4 @@ describe('Supplier getSummary()', () => {
|
||||||
|
|
||||||
expect(payMethod.name).toEqual('PayMethod one');
|
expect(payMethod.name).toEqual('PayMethod one');
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`should get if supplier is farmer by sageWithholdingFk`, async() => {
|
|
||||||
const supplier = await app.models.Supplier.findById(2);
|
|
||||||
const supplierSummary = await app.models.Supplier.getSummary(2);
|
|
||||||
|
|
||||||
expect(supplier.isFarmer).toBeUndefined();
|
|
||||||
expect(supplierSummary.isFarmer).toEqual(true);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -83,11 +83,6 @@
|
||||||
label="Account"
|
label="Account"
|
||||||
value="{{::$ctrl.summary.account}}">
|
value="{{::$ctrl.summary.account}}">
|
||||||
</vn-label-value>
|
</vn-label-value>
|
||||||
<vn-check
|
|
||||||
label="Is Farmer"
|
|
||||||
ng-model="$ctrl.summary.isFarmer"
|
|
||||||
disabled="true">
|
|
||||||
</vn-check>
|
|
||||||
</vn-one>
|
</vn-one>
|
||||||
</vn-horizontal>
|
</vn-horizontal>
|
||||||
<vn-horizontal>
|
<vn-horizontal>
|
||||||
|
|
Loading…
Reference in New Issue