production filtering in temporary table
This commit is contained in:
parent
97da7e5c10
commit
061ae64c50
|
@ -83,7 +83,15 @@ export default class ProductionIndex {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
onChildSubmit(filter) {
|
onChildSubmit(filter) {
|
||||||
this.searchTickets(filter);
|
let newFilter = {};
|
||||||
|
Object.keys(filter).forEach(
|
||||||
|
field => {
|
||||||
|
if (filter[field] !== null) {
|
||||||
|
newFilter[field] = filter[field];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
this.searchTickets(newFilter);
|
||||||
this.onChildCancel();
|
this.onChildCancel();
|
||||||
}
|
}
|
||||||
onChildCancel() {
|
onChildCancel() {
|
||||||
|
@ -111,7 +119,7 @@ export default class ProductionIndex {
|
||||||
}
|
}
|
||||||
refreshTickets() {
|
refreshTickets() {
|
||||||
this.filter = {};
|
this.filter = {};
|
||||||
this.filter.warehouseFk = this.userProfile.warehouseId;
|
this.filter.warehouseFk = this.$.displayValue = this.userProfile.warehouseId;
|
||||||
this.search = null;
|
this.search = null;
|
||||||
}
|
}
|
||||||
onChangeWareHouse(warehouse) {
|
onChangeWareHouse(warehouse) {
|
||||||
|
@ -130,7 +138,7 @@ export default class ProductionIndex {
|
||||||
this.hourItems.push({id: i, name: hour});
|
this.hourItems.push({id: i, name: hour});
|
||||||
}
|
}
|
||||||
this.filter.warehouseFk = this.$.displayValue = this.userProfile.warehouseId;
|
this.filter.warehouseFk = this.$.displayValue = this.userProfile.warehouseId;
|
||||||
this.searchTickets(this.filter);
|
// this.searchTickets(this.filter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ html [vn-center], .vn-center{
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-element{
|
.list-element{
|
||||||
padding: 4px 0px;
|
padding: 8px 0 0 0;
|
||||||
border-bottom: 1px solid $color-medium-grey;
|
border-bottom: 1px solid $color-medium-grey;
|
||||||
i {
|
i {
|
||||||
color: $color-orange;
|
color: $color-orange;
|
||||||
|
|
|
@ -2,7 +2,7 @@ module.exports = function(Self) {
|
||||||
Self.setup = function() {
|
Self.setup = function() {
|
||||||
Self.super_.setup.call(this);
|
Self.super_.setup.call(this);
|
||||||
|
|
||||||
let disableMethods = {
|
/* let disableMethods = {
|
||||||
create: true,
|
create: true,
|
||||||
replaceOrCreate: true,
|
replaceOrCreate: true,
|
||||||
patchOrCreate: true,
|
patchOrCreate: true,
|
||||||
|
@ -22,7 +22,7 @@ module.exports = function(Self) {
|
||||||
};
|
};
|
||||||
for (let method in disableMethods) {
|
for (let method in disableMethods) {
|
||||||
// this.disableRemoteMethod(method, disableMethods[method]);
|
// this.disableRemoteMethod(method, disableMethods[method]);
|
||||||
}
|
} */
|
||||||
};
|
};
|
||||||
|
|
||||||
Self.defineScope = function(serverFilter) {
|
Self.defineScope = function(serverFilter) {
|
||||||
|
@ -108,6 +108,10 @@ module.exports = function(Self) {
|
||||||
this.remoteMethod(methodName, args);
|
this.remoteMethod(methodName, args);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Self.getConnection = function(cb) {
|
||||||
|
this.dataSource.connector.client.getConnection(cb);
|
||||||
|
};
|
||||||
|
|
||||||
Self.connectToService = function(ctx, dataSource) {
|
Self.connectToService = function(ctx, dataSource) {
|
||||||
this.app.dataSources[dataSource].connector.remotes.auth = {
|
this.app.dataSources[dataSource].connector.remotes.auth = {
|
||||||
bearer: new Buffer(ctx.req.accessToken.id).toString('base64'),
|
bearer: new Buffer(ctx.req.accessToken.id).toString('base64'),
|
||||||
|
|
|
@ -1,62 +1,79 @@
|
||||||
module.exports = function(FakeProduction) {
|
module.exports = function(Self) {
|
||||||
FakeProduction.defineScope();
|
Self.defineScope();
|
||||||
|
|
||||||
FakeProduction.list = function(ctx, filter, cb) {
|
Self.list = function(ctx, filter, callback) {
|
||||||
var page = filter.page - 1;
|
var page = filter.page - 1;
|
||||||
var limit = filter.limit * page;
|
var limit = filter.limit * page;
|
||||||
var offset = (page + 1) * filter.limit;
|
var offset = (page + 1) * filter.limit;
|
||||||
let daysTickets = 0;
|
let daysTickets = 0;
|
||||||
|
let warehouseFk = filter.where.warehouseFk;
|
||||||
delete filter.limit;
|
delete filter.limit;
|
||||||
delete filter.page;
|
delete filter.page;
|
||||||
|
delete filter.where.warehouseFk;
|
||||||
|
|
||||||
let query = `call salix.production_control_source( ? , ?)`;
|
let call = `call salix.production_control_source(? , ?)`;
|
||||||
var params = [filter.where.warehouseFk, daysTickets];
|
var params = [warehouseFk, daysTickets];
|
||||||
FakeProduction.rawSql(query, params)
|
let conn;
|
||||||
.then(function(response) {
|
|
||||||
getValue();
|
Self.getConnection((err, connection) => {
|
||||||
})
|
if (err) {
|
||||||
.catch(function(response) {
|
onFinish(err);
|
||||||
cb(response, null);
|
}
|
||||||
});
|
conn = connection;
|
||||||
let getValue = () => {
|
conn.query(call, params, getValue);
|
||||||
|
});
|
||||||
|
|
||||||
|
function getValue(err) {
|
||||||
|
if (err) {
|
||||||
|
onFinish(err);
|
||||||
|
}
|
||||||
|
|
||||||
if (filter.where && filter.where.q) {
|
if (filter.where && filter.where.q) {
|
||||||
var newFilter = {
|
let regexQ = new RegExp(filter.where.q);
|
||||||
and: [
|
delete filter.where.q;
|
||||||
{
|
let newFilter = {
|
||||||
or: [
|
and: [
|
||||||
{agency: {regexp: filter.where.q}},
|
{
|
||||||
{state: {regexp: filter.where.q}}
|
or: [
|
||||||
]
|
{agency: {regexp: regexQ}},
|
||||||
}
|
{state: {regexp: regexQ}}
|
||||||
]
|
]
|
||||||
};
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
delete filter.where.q;
|
if (Object.keys(filter.where).length) {
|
||||||
|
Object.keys(filter.where).forEach(
|
||||||
if (Object.keys(filter.where).length) {
|
key => {
|
||||||
Object.keys(filter.where).forEach(
|
let field = {};
|
||||||
key => {
|
field[key] = filter.where[key];
|
||||||
let field = {};
|
newFilter.and.push(field);
|
||||||
field[key] = filter.where[key];
|
}
|
||||||
newFilter.and.push(field);
|
);
|
||||||
}
|
}
|
||||||
);
|
|
||||||
}
|
|
||||||
filter.where = newFilter;
|
filter.where = newFilter;
|
||||||
}
|
}
|
||||||
FakeProduction.connectToService(ctx, "client");
|
|
||||||
this.find(filter, function(err, tickets) {
|
|
||||||
FakeProduction.disconnectFromService("client");
|
|
||||||
(err) ? cb(err, null) : cb(null, (sum(tickets)));
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
function sum(tickets){
|
let where = Self.dataSource.connector.buildWhere(Self.modelName, filter.where);
|
||||||
|
let query = `SELECT * FROM FakeProduction_tmp ${where.sql} GROUP BY RouteFk ORDER BY routeFk`;
|
||||||
|
conn.query(query, where.params, onFinish);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onFinish(err, results) {
|
||||||
|
conn.query('DROP TEMPORARY TABLE IF EXISTS FakeProduction_tmp');
|
||||||
|
conn.release();
|
||||||
|
if (err)
|
||||||
|
callback(err);
|
||||||
|
callback(null, sum(results));
|
||||||
|
}
|
||||||
|
|
||||||
|
function sum(tickets) {
|
||||||
var obj = {lines: 0, m3: 0};
|
var obj = {lines: 0, m3: 0};
|
||||||
tickets.forEach(function(t) {
|
tickets.forEach(function(t, i) {
|
||||||
obj.lines += t.lines;
|
obj.lines += t.lines;
|
||||||
obj.m3 += t.m3;
|
obj.m3 += t.m3;
|
||||||
|
if (tickets[i].problem)
|
||||||
|
tickets[i].problem = tickets[i].problem.trim();
|
||||||
}, this);
|
}, this);
|
||||||
obj.m3 = obj.m3.toFixed(2);
|
obj.m3 = obj.m3.toFixed(2);
|
||||||
obj.total = tickets.length;
|
obj.total = tickets.length;
|
||||||
|
|
Loading…
Reference in New Issue