diff --git a/client/ticket/src/sale/index.html b/client/ticket/src/sale/index.html
index ffe30b4ac..65b533e5e 100644
--- a/client/ticket/src/sale/index.html
+++ b/client/ticket/src/sale/index.html
@@ -4,12 +4,6 @@
filter="{}"
data="sales" on-data-change="$ctrl.onDataChange()">
-
-
-
-
@@ -53,10 +47,9 @@
-
+
+ data="$ctrl.sales">
@@ -71,10 +64,9 @@
-
+
+ field="sale.checked">
@@ -140,7 +132,7 @@
-
+
diff --git a/services/loopback/common/methods/item/specs/clone.spec.js b/services/loopback/common/methods/item/specs/clone.spec.js
index 816a94e7b..137fbc792 100644
--- a/services/loopback/common/methods/item/specs/clone.spec.js
+++ b/services/loopback/common/methods/item/specs/clone.spec.js
@@ -20,14 +20,14 @@ describe('item clone()', () => {
});
it('should attempt to clone the given item but give an error as it doesnt exist', async() => {
- let result;
- try {
- let itemFk = 999;
- result = await app.models.Item.clone(itemFk);
- } catch (error) {
- expect(error.toString()).toContain('Cannot convert undefined or null to object');
- }
+ let error;
+ let itemFk = 999;
+ await app.models.Item.clone(itemFk)
+ .catch(e => {
+ expect(e.message).toContain('Cannot convert undefined or null to object');
+ error = e;
+ });
- expect(result).toBeFalsy();
+ expect(error).toBeDefined();
});
});
diff --git a/services/loopback/common/methods/item/specs/updateTaxes.spec.js b/services/loopback/common/methods/item/specs/updateTaxes.spec.js
new file mode 100644
index 000000000..aa30ed8cd
--- /dev/null
+++ b/services/loopback/common/methods/item/specs/updateTaxes.spec.js
@@ -0,0 +1,40 @@
+const app = require(`${servicesDir}/item/server/server`);
+
+describe('item updateTaxes()', () => {
+ afterAll(async() => {
+ let taxesInFixtures = [{id: 509368, taxClassFk: 1}];
+
+ await app.models.Item.updateTaxes(taxesInFixtures);
+ });
+
+ it('should throw an error if the taxClassFk is blank', async() => {
+ let error;
+ let taxes = [{id: 509368, taxClassFk: undefined}];
+
+ await app.models.Item.updateTaxes(taxes)
+ .catch(err => {
+ expect(err.message).toEqual('Tax class cannot be blank');
+ error = err;
+ });
+
+ expect(error).toBeDefined();
+ });
+
+ it('should update the tax of a given country of an item', async() => {
+ let taxCountry = await app.models.ItemTaxCountry.findById(509368);
+
+ expect(taxCountry.taxClassFk).toEqual(1);
+
+ let taxes = [{id: 509368, taxClassFk: 2}];
+
+ let result = await app.models.Item.updateTaxes(taxes);
+
+ expect(result).toBeTruthy();
+ });
+
+ it('should confirm the tax class was updated', async() => {
+ let taxCountry = await app.models.ItemTaxCountry.findById(509368);
+
+ expect(taxCountry.taxClassFk).toEqual(2);
+ });
+});
diff --git a/services/loopback/common/methods/item/updateTaxes.js b/services/loopback/common/methods/item/updateTaxes.js
index 02065be20..53c073dbf 100644
--- a/services/loopback/common/methods/item/updateTaxes.js
+++ b/services/loopback/common/methods/item/updateTaxes.js
@@ -11,7 +11,7 @@ module.exports = Self => {
description: 'The item id',
http: {source: 'path'}
}, {
- arg: 'niches',
+ arg: 'taxes',
type: ['object'],
required: true,
description: 'The list of taxes to update',
@@ -27,7 +27,7 @@ module.exports = Self => {
}
});
- Self.updateTaxes = async(id, taxes) => {
+ Self.updateTaxes = async taxes => {
let promises = [];
for (let tax of taxes) {
if (!tax.taxClassFk)