Changes
gitea/salix/pipeline/head There was a failure building this commit
Details
gitea/salix/pipeline/head There was a failure building this commit
Details
This commit is contained in:
parent
2a2e276c6b
commit
a4d2c531a3
|
@ -1,8 +1,8 @@
|
||||||
|
|
||||||
const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
|
const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
|
||||||
module.exports = Self => {
|
module.exports = Self => {
|
||||||
Self.remoteMethodCtx('import', {
|
Self.remoteMethodCtx('importBuys', {
|
||||||
description: 'Imports the buys from a JSON file',
|
description: 'Imports the buys from a list',
|
||||||
accessType: 'WRITE',
|
accessType: 'WRITE',
|
||||||
accepts: [{
|
accepts: [{
|
||||||
arg: 'id',
|
arg: 'id',
|
||||||
|
@ -11,6 +11,11 @@ module.exports = Self => {
|
||||||
description: 'The entry id',
|
description: 'The entry id',
|
||||||
http: {source: 'path'}
|
http: {source: 'path'}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
arg: 'options',
|
||||||
|
type: 'object',
|
||||||
|
description: 'Callback options',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
arg: 'ref',
|
arg: 'ref',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
|
@ -31,12 +36,12 @@ module.exports = Self => {
|
||||||
root: true
|
root: true
|
||||||
},
|
},
|
||||||
http: {
|
http: {
|
||||||
path: `/:id/import`,
|
path: `/:id/importBuys`,
|
||||||
verb: 'POST'
|
verb: 'POST'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.import = async(ctx, id, options) => {
|
Self.importBuys = async(ctx, id, options = {}) => {
|
||||||
const conn = Self.dataSource.connector;
|
const conn = Self.dataSource.connector;
|
||||||
const args = ctx.args;
|
const args = ctx.args;
|
||||||
const models = Self.app.models;
|
const models = Self.app.models;
|
|
@ -1,6 +1,6 @@
|
||||||
module.exports = Self => {
|
module.exports = Self => {
|
||||||
Self.remoteMethod('importPreview', {
|
Self.remoteMethod('importBuysPreview', {
|
||||||
description: '',
|
description: 'Calculates the preview buys for an entry import',
|
||||||
accessType: 'READ',
|
accessType: 'READ',
|
||||||
accepts: [{
|
accepts: [{
|
||||||
arg: 'id',
|
arg: 'id',
|
||||||
|
@ -19,12 +19,12 @@ module.exports = Self => {
|
||||||
root: true
|
root: true
|
||||||
},
|
},
|
||||||
http: {
|
http: {
|
||||||
path: `/:id/importPreview`,
|
path: `/:id/importBuysPreview`,
|
||||||
verb: 'GET'
|
verb: 'GET'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.importPreview = async(id, buys) => {
|
Self.importBuysPreview = async(id, buys) => {
|
||||||
const models = Self.app.models;
|
const models = Self.app.models;
|
||||||
for (let buy of buys) {
|
for (let buy of buys) {
|
||||||
const packaging = await models.Packaging.findOne({
|
const packaging = await models.Packaging.findOne({
|
|
@ -59,7 +59,7 @@ describe('entry import()', () => {
|
||||||
ref: 'Entry ref'
|
ref: 'Entry ref'
|
||||||
}, options);
|
}, options);
|
||||||
|
|
||||||
await app.models.Entry.import(ctx, newEntry.id, options);
|
await app.models.Entry.importBuys(ctx, newEntry.id, options);
|
||||||
|
|
||||||
const updatedEntry = await app.models.Entry.findById(newEntry.id, null, options);
|
const updatedEntry = await app.models.Entry.findById(newEntry.id, null, options);
|
||||||
const entryBuys = await app.models.Buy.find({
|
const entryBuys = await app.models.Buy.find({
|
|
@ -0,0 +1,39 @@
|
||||||
|
const app = require('vn-loopback/server/server');
|
||||||
|
const LoopBackContext = require('loopback-context');
|
||||||
|
|
||||||
|
describe('entry importBuysPreview()', () => {
|
||||||
|
beforeAll(async done => {
|
||||||
|
spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
|
||||||
|
active: activeCtx
|
||||||
|
});
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should import the buy rows', async() => {
|
||||||
|
const buys = [
|
||||||
|
{
|
||||||
|
itemFk: 1,
|
||||||
|
buyingValue: 5.77,
|
||||||
|
description: 'Bow',
|
||||||
|
grouping: 1,
|
||||||
|
size: 1,
|
||||||
|
volume: 1200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
itemFk: 4,
|
||||||
|
buyingValue: 2.16,
|
||||||
|
description: 'Arrow',
|
||||||
|
grouping: 1,
|
||||||
|
size: 25,
|
||||||
|
volume: 1125
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const result = await app.models.Entry.importBuysPreview(1, buys);
|
||||||
|
const randomIndex = Math.floor(Math.random() * result.length);
|
||||||
|
const buy = result[randomIndex];
|
||||||
|
|
||||||
|
expect(buy.packageFk).toEqual('3');
|
||||||
|
});
|
||||||
|
});
|
|
@ -2,6 +2,6 @@ module.exports = Self => {
|
||||||
require('../methods/entry/filter')(Self);
|
require('../methods/entry/filter')(Self);
|
||||||
require('../methods/entry/getEntry')(Self);
|
require('../methods/entry/getEntry')(Self);
|
||||||
require('../methods/entry/getBuys')(Self);
|
require('../methods/entry/getBuys')(Self);
|
||||||
require('../methods/entry/import')(Self);
|
require('../methods/entry/importBuys')(Self);
|
||||||
require('../methods/entry/importPreview')(Self);
|
require('../methods/entry/importBuysPreview')(Self);
|
||||||
};
|
};
|
||||||
|
|
|
@ -55,7 +55,7 @@ class Controller extends Section {
|
||||||
|
|
||||||
fetchBuys(buys) {
|
fetchBuys(buys) {
|
||||||
const params = {buys};
|
const params = {buys};
|
||||||
const query = `Entries/${this.entry.id}/importPreview`;
|
const query = `Entries/${this.entry.id}/importBuysPreview`;
|
||||||
this.$http.get(query, {params}).then(res => {
|
this.$http.get(query, {params}).then(res => {
|
||||||
this.import.buys = res.data;
|
this.import.buys = res.data;
|
||||||
});
|
});
|
||||||
|
@ -63,7 +63,7 @@ class Controller extends Section {
|
||||||
|
|
||||||
onSubmit() {
|
onSubmit() {
|
||||||
const params = this.import;
|
const params = this.import;
|
||||||
const query = `Entries/${this.entry.id}/import`;
|
const query = `Entries/${this.entry.id}/importBuys`;
|
||||||
return this.$http.post(query, params)
|
return this.$http.post(query, params)
|
||||||
.then(() => this.vnApp.showSuccess(this.$t('Data saved!')))
|
.then(() => this.vnApp.showSuccess(this.$t('Data saved!')))
|
||||||
.then(() => this.$state.go('entry.card.buy.index'));
|
.then(() => this.$state.go('entry.card.buy.index'));
|
||||||
|
|
Loading…
Reference in New Issue