update bindTicketShelving and bindShelvingTag

This commit is contained in:
alexmorenograu 2021-05-13 09:08:30 +02:00
parent effbbdf7c3
commit 49f511f3e6
10 changed files with 79 additions and 69 deletions

View File

@ -1,14 +1,31 @@
CREATE TABLE vn.smartTag (
code varchar(12) NOT NULL COLLATE utf8_general_ci,
shelvingFk varchar(10) NULL,
`level` int(11) NULL,
ticketFk int(20),
CONSTRAINT `PRIMARY` PRIMARY KEY (code),
CONSTRAINT smartTag_FK FOREIGN KEY (shelvingFk) REFERENCES vn.shelving(code)
)
ENGINE=InnoDB
DEFAULT CHARSET=utf8
COLLATE=utf8_unicode_ci;
CREATE TABLE `workerShelving` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`workerFk` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
`shelvingFk` varchar(10) CHARACTER SET utf8 NOT NULL,
`collectionFk` int(11) DEFAULT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `workerShelving_shelving_fk` (`shelvingFk`),
KEY `workerShelving_FK` (`workerFk`),
KEY `workerShelving_FK_1` (`collectionFk`),
CONSTRAINT `workerShelving_worker_fk` FOREIGN KEY (`workerFk`) REFERENCES `worker` (`code`),
CONSTRAINT `workerShelving_collection_fk` FOREIGN KEY (`collectionFk`) REFERENCES `collection` (`id`),
CONSTRAINT `workerShelving_shelving_fk` FOREIGN KEY (`shelvingFk`) REFERENCES `shelving` (`code`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='utilizaremos el id para establecer la prioridad de los carros a asignar'
CREATE TABLE `smartTag` (
`code` varchar(12) CHARACTER SET utf8 NOT NULL,
`shelvingFk` varchar(10) CHARACTER SET utf8 DEFAULT NULL,
`level` int(11) DEFAULT NULL,
`ticketFk` int(11) DEFAULT NULL,
KEY `ticket_fk` (`ticketFk`),
KEY `smartTag_shelving_fk` (`shelvingFk`),
CONSTRAINT `smartTag_shelving_fk` FOREIGN KEY (`shelvingFk`) REFERENCES `shelving` (`code`) ON UPDATE CASCADE,
CONSTRAINT `smartTag_ticket_fk` FOREIGN KEY (`ticketFk`) REFERENCES `ticketCollection` (`ticketFk`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--ALTER TABLE vn.smartTag MODIFY COLUMN shelvingFk varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL NULL;
--ALTER TABLE vn.smartTag ADD CONSTRAINT smartTag_FK FOREIGN KEY (shelvingFk) REFERENCES vn.shelving(code);

View File

@ -1,17 +1,17 @@
const con = require('./connect');
function insertDB(barcode, shelving, level) {
let sql = `IF EXISTS(SELECT * FROM vn.smartTag WHERE code='${barcode}')
function insertSmartTag(smartTagFk, shelving, level) {
let sql = `IF EXISTS(SELECT * FROM vn.smartTag WHERE code='${smartTagFk}')
THEN
UPDATE vn.smartTag
SET shelvingFk = '${shelving}', level = ${level}
WHERE code='${barcode}';
WHERE code='${smartTagFk}';
ELSE
INSERT
INTO vn.smartTag (code, shelvingFk, level)
VALUES ('${barcode}', '${shelving}', ${level});
VALUES ('${smartTagFk}', '${shelving}', ${level});
END IF;`;
con.con.query(sql, function(err, result) {
});
}
exports.insertDB = insertDB;
exports.insertSmartTag = insertSmartTag;

View File

@ -1,19 +1,11 @@
const con = require('./connect');
function select(collectionFk, callback) {
let consSql = `SELECT t.id AS Ticket, t.clientFk AS Client, am.name AS Agency, tc.level AS Level, tc.wagon AS Wagon, w.code AS Worker
FROM ticketCollection tc
JOIN ticket t ON t.id = tc.ticketFk
JOIN collection c ON c.id = tc.collectionFk
JOIN worker w ON w.id = c.workerFk
JOIN agencyMode am ON am.id = t.agencyModeFk
WHERE tc.collectionFk = ${collectionFk}
ORDER BY tc.wagon, tc.level`;
function selectCollectionSmartTag(collectionFk, callback) {
let consSql = `SELECT code, ticketFk, level, wagon, shelvingFk FROM vn.collectionSmartTag WHERE collectionFk = ${collectionFk}`;
con.con.query(consSql, function(err, result, fields) {
callback(null, result);
});
}
exports.select = select;
exports.selectCollectionSmartTag = selectCollectionSmartTag;

View File

@ -2,18 +2,19 @@ const dataLogIn = require('../server');
const got = require('got');
const filter = require('../utilities/filter');
const config = require('../config');
const insertDB = require('../db/insertDB');
const insertSmartTag = require('../db/insertSmartTag');
const express = require('express');
const router = express.Router(); // eslint-disable-line
// canviar barcode per smarttagFk
router.get('/:barcode&:shelving&:level', async(req, res) => {
const barcode = req.params.barcode;// valido = "A0A3B82"+ 4 CARACTERES HEXADECIMALES (0-F)
// Obtenemos los parametros
router.get('/:smartTagFk&:shelving&:level', async(req, res) => {
const smartTagFk = req.params.smartTagFk;// valido = "A0A3B82"+ 4 CARACTERES HEXADECIMALES (0-F)
const shelving = req.params.shelving;// valido = 3 CARACTERES LETRAS (A-Z)
const level = req.params.level;
console.log(barcode);
console.log(smartTagFk);
console.log(shelving + level);
const result = bindShelvingTag(barcode, shelving, level);
const result = bindShelvingTag(smartTagFk, shelving, level);
if (result == 'INVALID_PLATE')
res.json({message: 'MATRICULA INCORRECTA'});
else if (result == 'INVALID_TAG_CODE')
@ -24,19 +25,21 @@ router.get('/:barcode&:shelving&:level', async(req, res) => {
module.exports = router;
function bindShelvingTag(barcode, shelving, level) {
if (filter.isBarcode(barcode)) {
// Vinculamos la etiqueta con la balda del carry y en la base de datos
function bindShelvingTag(smartTagFk, shelving, level) {
let shelvingId = shelving + level;
if (filter.isSmartTag(smartTagFk)) {
if (filter.isShelving(shelving)) {
let shelvingId = shelving + level;
insertShelving(shelvingId, barcode);
insertDB.insertDB(barcode, shelving, level);
insertShelving(shelvingId, smartTagFk); // al carry en ESL CLOUD SYSTEM
insertSmartTag.insertSmartTag(smartTagFk, shelving, level); // en vn.smartTag
} else
return 'INVALID_PLATE';
} else
return 'INVALID_TAG_CODE';
}
async function insertShelving(shelvingId, barcode) {
// Creamos un "articulo", que sera el que luego modificaremos para añadirle un ticket
async function insertShelving(shelvingId, smartTagFk) {
(async() => {
const info = await dataLogIn.dataLogIn;
let key = info.data.token;
@ -62,13 +65,14 @@ async function insertShelving(shelvingId, barcode) {
'Authorization': key
}
});
await bindShelving(barcode, shelvingId);
await bindShelving(smartTagFk, shelvingId);
console.log('Insert Shelving:', body);
})();
})();
}
async function bindShelving(barcode, shelvingId) {
// Creamos la etiqueta con su vinculada con el ShelvingId al articulo
async function bindShelving(smartTagFk, shelvingId) {
(async() => {
const info = await dataLogIn.dataLogIn;
let key = info.data.token;
@ -77,7 +81,7 @@ async function bindShelving(barcode, shelvingId) {
json: {
storeId: config.storeId,
tagItemBinds: [{
eslBarcode: barcode,
eslBarcode: smartTagFk,
itemBarcode: shelvingId
}
]

View File

@ -5,9 +5,7 @@ const filter = require('../utilities/filter');
const insertTicketDB = require('../db/insertTicket');
router.get('/collectionFk', async(req, res) => {
const collectionShelving = req.params.collectionShelving.split(',');
const collectionFk = req.params.collectionFk;
console.log(collectionShelving);
console.log(collectionFk);
if (filter.isShelving(collectionShelving)) {
ticketShelving(collectionShelving, collectionFk);
@ -18,14 +16,13 @@ router.get('/collectionFk', async(req, res) => {
module.exports = router;
function ticketShelving(collectionShelving, collectionFk) {// parametro collectionFk
select.select(collectionFk, function(err, data) {
select.selectCollectionSmartTag(collectionFk, function(err, data) {
console.log(data);
insertTicket(data, collectionShelving);
insertTicket(data);
});
}
function insertTicket(consultaSql, shelving) {
console.log(shelving);
function insertTicket(consultaSql) {
console.log('CONSULTASQL:', consultaSql);
console.log('CONSULTASQL_TAMAÑO:', consultaSql.length);
const dataLogIn = require('../server');
@ -37,8 +34,8 @@ function insertTicket(consultaSql, shelving) {
(async() => {
for (let i = 0; i < consultaSql.length; i++) {
for (let j = 0; j < consultaSql[i].Level.toString().length; j++) {
console.log('SHELVING: ', shelving[consultaSql[i].Wagon - 1]);
for (let j = 0; j < consultaSql[i].level; j++) {
console.log('SHELVING: ', consultaSql.shelvingFk, consultaSql.level);
const {body} = await got.post('http://app.etiquetaselectronicas.com:9999/item/batchImportItem', { // eslint-disable-line
json: {
agencyId: currentUser.agencyId,
@ -49,13 +46,14 @@ function insertTicket(consultaSql, shelving) {
{
attrCategory: 'verdnatura',
attrName: 'conTicket',
barCode: shelving[consultaSql[i].Wagon - 1] + consultaSql[i].Level.toString().charAt(j), // Matricula + nivel
barCode: consultaSql[i].shelvingFk + consultaSql[i].level, // Matricula + nivel
itemTitle: 'Etiqueta Con ticket',
productCode: consultaSql[i].Ticket, // Ticket
custFeature1: consultaSql[i].Client, // Client
custFeature2: consultaSql[i].Agency, // Agencia de transporte
custFeature3: 0, // Agencia de transporte
custFeature4: consultaSql[i].Worker, // Agencia de transporte
productCode: consultaSql[i].ticketFk, // Ticket
custFeature1: consultaSql[i].clientFk, // Cliente
custFeature2: consultaSql[i].agencyFk, // Agencia de transporte
custFeature3: 0, // Luz LED
custFeature4: consultaSql[i].workerFk, // Trabajador
custFeature5: consultaSql[i].wagon, // Trabajador
}
]
},
@ -64,7 +62,7 @@ function insertTicket(consultaSql, shelving) {
'Authorization': key
}
});
insertTicketDB.insertTicket(consultaSql[i].Ticket, shelving[consultaSql[i].Wagon - 1], consultaSql[i].Level.toString().charAt(j));
insertTicketDB.insertTicket(consultaSql[i].ticketFk, consultaSql[i].shelvingFk, consultaSql[i].level);
console.log(i, body);
}
}

View File

@ -38,12 +38,14 @@ function insertFlash(consultaSql) {
{
attrCategory: 'verdnatura',
attrName: 'conTicket',
barCode: consultaSql[i].Shelving + consultaSql[i].Level, // Matricula + nivel
barCode: consultaSql[i].shelvingFk + consultaSql[i].level, // Matricula + nivel
itemTitle: 'Etiqueta Con ticket',
productCode: consultaSql[i].Ticket, // Ticket
custFeature1: consultaSql[i].Client, // Client
custFeature2: consultaSql[i].Agency, // Agencia de transporte
custFeature3: 1 // Valor luz led
productCode: consultaSql[i].ticketFk, // Ticket
custFeature1: consultaSql[i].clientFk, // Cliente
custFeature2: consultaSql[i].agencyFk, // Agencia de transporte
custFeature3: 1, // Valor luz led
custFeature4: consultaSql[i].workerFk, // Trabajador
}
]
},

View File

@ -2,7 +2,7 @@ const express = require('express');
const router = express.Router(); // eslint-disable-line
router.get('/:collectionFk', async(req, res) => {
const maxWagon = require('../db/maxWagon');
const maxWagon = require('../db/maxWagon__');
// var collectionFk = '273449';
const collectionFk = req.params.collectionFk;
maxWagon.maxWagon(collectionFk, function(err, max) {

View File

@ -9,7 +9,7 @@ exports.dataLogIn = dataLogIn;
con.con.connect(function(err) {});
app.use('/getNumShelving', require('./methods/setCollection'));
app.use('/getNumShelving', require('./methods/setCollection__'));
app.use('/insertTicket', require('./methods/bindTicketShelving'));
app.use('/bindShelving', require('./methods/bindShelvingTag'));
app.use('/flashOn', require('./methods/flashOn'));
@ -17,6 +17,3 @@ app.use('/flashOn', require('./methods/flashOn'));
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
// hola
// ijasdisdji

View File

@ -1,4 +1,4 @@
function isBarcode(toFilter) {
function isSmartTag(toFilter) {
const exp = /^A0A3B82[A-F0-9]{5}$/;
return exp.test(toFilter);
}
@ -20,5 +20,5 @@ function isShelving(toFilter) {
else
return true;
}
exports.isBarcode = isBarcode;
exports.isSmartTag = isSmartTag;
exports.isShelving = isShelving;