Merge pull request '3328-item_search-panel' (#779) from 3328-item_search-panel into dev
gitea/salix/pipeline/head This commit looks good Details

Reviewed-on: #779
Reviewed-by: Carlos Jimenez Ruiz <carlosjr@verdnatura.es>
This commit is contained in:
Carlos Jimenez Ruiz 2021-11-18 10:47:36 +00:00
commit 2d523bec7a
58 changed files with 133 additions and 65 deletions

View File

@ -27,7 +27,7 @@ module.exports = Self => {
Self.sendCheckingPresence = async(ctx, recipientId, message, options) => {
if (!recipientId) return false;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -60,7 +60,7 @@ module.exports = Self => {
const args = ctx.args;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -54,7 +54,7 @@ module.exports = Self => {
const args = ctx.args;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -16,7 +16,7 @@ module.exports = function(Self) {
const models = Self.app.models;
const userId = ctx.req.accessToken.userId;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -31,7 +31,7 @@ module.exports = function(Self) {
const userId = ctx.req.accessToken.userId;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -23,7 +23,7 @@ module.exports = function(Self) {
const userId = ctx.req.accessToken.userId;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -1,9 +1,9 @@
DROP PROCEDURE IF EXISTS vn.item_getBalance;
DROP PROCEDURE IF EXISTS `vn`.`item_getBalance`;
DELIMITER $$
$$
CREATE
definer = root@`%` procedure vn.item_getBalance(IN vItemId int, IN vWarehouse int)
definer = root@`%` procedure `vn`.`item_getBalance`(IN vItemId int, IN vWarehouse int)
BEGIN
DECLARE vDateInventory DATETIME;
DECLARE vCurdate DATE DEFAULT CURDATE();

View File

@ -739,7 +739,7 @@ INSERT INTO `vn`.`itemType`(`id`, `code`, `name`, `categoryFk`, `warehouseFk`, `
(3, 'WPN', 'Paniculata', 2, 1, 31, 35, 0),
(4, 'PRT', 'Delivery ports', 3, 1, NULL, 35, 1),
(5, 'CON', 'Container', 3, 1, NULL, 35, 1),
(6, 'ALS', 'Alstroemeria', 1, 1, 31, 35, 0);
(6, 'ALS', 'Alstroemeria', 1, 1, 31, 16, 0);
INSERT INTO `vn`.`ink`(`id`, `name`, `picture`, `showOrder`, `hex`)
VALUES
@ -813,8 +813,8 @@ INSERT INTO `vn`.`item`(`id`, `typeFk`, `size`, `inkFk`, `stems`, `originFk`, `d
(13, 5, 30, 'RED', 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '13', NULL, 0, 2, 'VT'),
(14, 5, 90, 'BLU', 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 4, 'VT'),
(15, 4, NULL, NULL, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 0, 'EMB'),
(16, 4, NULL, NULL, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 0, 'EMB'),
(71, 4, NULL, NULL, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 0, 'VT');
(16, 6, NULL, NULL, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 0, 'EMB'),
(71, 6, NULL, NULL, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 0, 'VT');
-- Update the taxClass after insert of the items
UPDATE `vn`.`itemTaxCountry` SET `taxClassFk` = 2

View File

@ -63,7 +63,7 @@ module.exports = Self => {
};
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -20,7 +20,7 @@ module.exports = Self => {
Self.removeFile = async(ctx, id, options) => {
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -22,7 +22,7 @@ module.exports = Self => {
let userId = ctx.req.accessToken.userId;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -24,7 +24,7 @@ module.exports = Self => {
const resolvedState = 3;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -44,7 +44,7 @@ module.exports = Self => {
const userId = ctx.req.accessToken.userId;
const args = ctx.args;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -30,7 +30,7 @@ module.exports = Self => {
Self.updateClaimAction = async(ctx, id, options) => {
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -54,7 +54,7 @@ module.exports = Self => {
Self.uploadFile = async(ctx, id, options) => {
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -25,7 +25,7 @@ module.exports = function(Self) {
Self.canBeInvoiced = async(id, options) => {
const models = Self.app.models;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -68,7 +68,7 @@ module.exports = Self => {
Self.addBuy = async(ctx, options) => {
const conn = Self.dataSource.connector;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -21,7 +21,7 @@ module.exports = Self => {
Self.deleteBuys = async(ctx, options) => {
const models = Self.app.models;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -32,7 +32,7 @@ module.exports = Self => {
Self.editLatestBuys = async(field, newValue, lines, options) => {
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -108,7 +108,7 @@ module.exports = Self => {
});
Self.filter = async(ctx, filter, options) => {
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -29,7 +29,7 @@ module.exports = Self => {
Self.getBuys = async(id, filter, options) => {
const models = Self.app.models;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -21,7 +21,7 @@ module.exports = Self => {
Self.getEntry = async(id, options) => {
const models = Self.app.models;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -26,7 +26,7 @@ module.exports = Self => {
Self.importBuysPreview = async(id, buys, options) => {
const models = Self.app.models;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -76,7 +76,7 @@ module.exports = Self => {
});
Self.latestBuysFilter = async(ctx, filter, options) => {
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -78,7 +78,7 @@ module.exports = Self => {
{
arg: 'isBooked',
type: 'boolean',
description: 'Whether the the invoice is booked or not',
description: 'Whether the invoice is booked or not',
},
],
returns: {
@ -95,7 +95,7 @@ module.exports = Self => {
const conn = Self.dataSource.connector;
const args = ctx.args;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -20,7 +20,7 @@ module.exports = Self => {
});
Self.summary = async(id, options) => {
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -23,7 +23,7 @@ module.exports = Self => {
Self.book = async(ref, options) => {
const models = Self.app.models;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -35,7 +35,7 @@ module.exports = Self => {
throw new UserError(`Action not allowed on the test environment`);
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -35,7 +35,7 @@ module.exports = Self => {
{
arg: 'hasPdf',
type: 'boolean',
description: 'Whether the the invoiceOut has PDF or not',
description: 'Whether the invoiceOut has PDF or not',
http: {source: 'query'}
},
{
@ -87,7 +87,7 @@ module.exports = Self => {
Self.filter = async(ctx, filter, options) => {
const conn = Self.dataSource.connector;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -29,7 +29,7 @@ module.exports = Self => {
Self.getTickets = async(id, filter, options) => {
const models = Self.app.models;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -21,7 +21,7 @@ module.exports = Self => {
Self.summary = async(id, options) => {
let summary = {};
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -0,0 +1,44 @@
const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
const mergeFilters = require('vn-loopback/util/filter').mergeFilters;
module.exports = Self => {
Self.remoteMethod('activeBuyers', {
description: 'Returns a list of buyers for the given item type',
accepts: [{
arg: 'filter',
type: 'object',
description: `Filter defining where, order, offset, and limit - must be a JSON-encoded string`
}],
returns: {
type: ['object'],
root: true
},
http: {
path: `/activeBuyers`,
verb: 'GET'
}
});
Self.activeBuyers = async(filter, options) => {
const conn = Self.dataSource.connector;
const where = {isActive: true};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);
filter = mergeFilters(filter, {where});
let stmt = new ParameterizedSQL(
`SELECT DISTINCT w.id workerFk, w.firstName, w.lastName, u.name, u.nickname
FROM worker w
JOIN itemType it ON it.workerFk = w.id
JOIN account.user u ON u.id = w.id
JOIN item i ON i.typeFk = it.id`,
null, myOptions);
stmt.merge(conn.makeSuffix(filter));
return conn.executeStmt(stmt);
};
};

View File

@ -41,10 +41,10 @@ module.exports = Self => {
{
arg: 'isActive',
type: 'boolean',
description: 'Whether the the item is or not active',
description: 'Whether the item is or not active',
},
{
arg: 'salesPersonFk',
arg: 'buyerFk',
type: 'integer',
description: 'The buyer of the item',
},

View File

@ -0,0 +1,24 @@
const models = require('vn-loopback/server/server').models;
describe('Worker activeBuyers', () => {
it('should return the buyers in itemType as result', async() => {
const tx = await models.Item.beginTransaction({});
try {
const options = {transaction: tx};
const filter = {};
const result = await models.Item.activeBuyers(filter, options);
const firstWorker = result[0];
const secondWorker = result[1];
expect(result.length).toEqual(2);
expect(firstWorker.nickname).toEqual('logisticBossNick');
expect(secondWorker.nickname).toEqual('buyerNick');
await tx.rollback();
} catch (e) {
await tx.rollback();
throw e;
}
});
});

View File

@ -14,6 +14,7 @@ module.exports = Self => {
require('../methods/item/getWasteByWorker')(Self);
require('../methods/item/getWasteByItem')(Self);
require('../methods/item/createIntrastat')(Self);
require('../methods/item/activeBuyers')(Self);
Self.validatesPresenceOf('originFk', {message: 'Cannot be blank'});

View File

@ -40,13 +40,11 @@
<vn-horizontal>
<vn-autocomplete
vn-one
disabled="false"
ng-model="filter.buyerFk"
url="Workers/activeWithRole"
url="Items/activeBuyers"
show-field="nickname"
search-function="{firstName: $search}"
value-field="id"
where="{role: {inq: ['logistic', 'buyer']}}"
value-field="workerFk"
label="Buyer">
</vn-autocomplete>
</vn-horizontal>

View File

@ -20,7 +20,7 @@ module.exports = Self => {
});
Self.getSuggestedTickets = async(id, options) => {
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -26,7 +26,8 @@ module.exports = Self => {
Self.getTickets = async(filter, options) => {
const conn = Self.dataSource.connector;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -30,7 +30,7 @@ module.exports = Self => {
const models = Self.app.models;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -24,7 +24,7 @@ module.exports = Self => {
const models = Self.app.models;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -40,7 +40,7 @@ module.exports = Self => {
ended.setMonth(12);
ended.setDate(0);
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -34,8 +34,8 @@ module.exports = Self => {
const models = Self.app.models;
const args = ctx.args;
const currentUserId = ctx.req.accessToken.userId;
const myOptions = {};
let myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -25,7 +25,7 @@ module.exports = Self => {
const currentUserId = ctx.req.accessToken.userId;
const models = Self.app.models;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -31,7 +31,7 @@ module.exports = Self => {
const models = Self.app.models;
const args = ctx.args;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -41,7 +41,7 @@ module.exports = Self => {
const userId = ctx.req.accessToken.userId;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -28,7 +28,7 @@ module.exports = Self => {
const userId = ctx.req.accessToken.userId;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -34,7 +34,7 @@ module.exports = Self => {
const models = Self.app.models;
const args = ctx.args;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -27,7 +27,7 @@ module.exports = Self => {
const models = Self.app.models;
const myUserId = ctx.req.accessToken.userId;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -25,7 +25,7 @@ module.exports = Self => {
const userId = ctx.req.accessToken.userId;
const stmts = [];
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -22,7 +22,7 @@ module.exports = Self => {
Self.byWarehouse = async(filter, options) => {
const conn = Self.dataSource.connector;
const where = {isActive: true};
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -29,7 +29,7 @@ module.exports = Self => {
});
Self.getAgenciesWithWarehouse = async(addressFk, landed, warehouseFk, options) => {
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -23,7 +23,7 @@ module.exports = Self => {
});
Self.landsThatDay = async(addressFk, landed, options) => {
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -22,7 +22,7 @@ module.exports = Self => {
Self.clone = async(id, options) => {
const models = Self.app.models;
let tx;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -26,7 +26,7 @@ module.exports = Self => {
});
Self.getEvents = async(geoFk, agencyModeFk, options) => {
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -32,7 +32,7 @@ module.exports = Self => {
});
Self.getLeaves = async(id, parentId = null, search, options) => {
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -14,7 +14,7 @@ module.exports = Self => {
});
Self.getUpcomingDeliveries = async options => {
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -2,7 +2,7 @@ const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
module.exports = Self => {
Self.remoteMethodCtx('includingExpired', {
description: 'Returns a list of agencies from a warehouse',
description: 'Returns a list of zones for the given warehouse and user',
accepts: [{
arg: 'filter',
type: 'Object',
@ -19,7 +19,7 @@ module.exports = Self => {
});
Self.includingExpired = async(ctx, filter, options) => {
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);

View File

@ -29,7 +29,7 @@ module.exports = Self => {
Self.toggleIsIncluded = async(id, geoId, isIncluded, options) => {
const models = Self.app.models;
let myOptions = {};
const myOptions = {};
if (typeof options == 'object')
Object.assign(myOptions, options);