- Aggiornamento dal DB di GM al DB Locale
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
const axios = require('axios');
|
||||
|
||||
const server_constants = require('../tools/server_constants');
|
||||
|
||||
const shared_consts = require('../tools/shared_nodejs');
|
||||
|
||||
const tools = require('../tools/general');
|
||||
|
||||
const axios = require('axios');
|
||||
|
||||
const SERVER_A_URL = process.env.SERVER_A_URL || "http://IP_DI_SERVER_A:3000";
|
||||
const API_KEY = process.env.API_KEY_MSSQL;
|
||||
|
||||
@@ -21,7 +21,7 @@ const getArticlesSales = async () => {
|
||||
COALESCE(p.rank3M, 0) as rank3M, COALESCE(t.fatrank3M, 0) as fatrank3M,
|
||||
COALESCE(q.rank6M, 0) as rank6M, COALESCE(r.rank1Y, 0) as rank1Y,
|
||||
COALESCE(t.fat3mesi, 0) as fatLast3M,
|
||||
COALESCE(t.fat6mesi, 0) as fatLast6M,
|
||||
COALESCE(t2.fat6mesi, 0) as fatLast6M,
|
||||
COALESCE(p.venduti3mesi, 0) as vLast3M,
|
||||
COALESCE(q.venduti6mesi, 0) as vLast6M, COALESCE(r.venduti1anno, 0) as vLastY,
|
||||
s.ultimoOrdine as dataUltimoOrdine
|
||||
@@ -71,6 +71,24 @@ exports.exportArticlesSalesByJSON = async (req, res) => {
|
||||
}
|
||||
};
|
||||
|
||||
exports.getTableContent = async (options) => {
|
||||
try {
|
||||
// Chiama getTableContent, se ritorna errore hangup, allora attendi 2 secondi e poi richiamala.
|
||||
const tableContent = await getTableContentBase(options);
|
||||
return tableContent;
|
||||
} catch (error) {
|
||||
console.error('Error: ', error);
|
||||
if (error.message === 'socket hang up') {
|
||||
console.log('Error: hangup, waiting 2 seconds and retrying...');
|
||||
await new Promise(resolve => setTimeout(resolve, 2000));
|
||||
return await this.getTableContent(options);
|
||||
} else {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const formatDate = (dateValue) => {
|
||||
const date = new Date(dateValue);
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
@@ -79,7 +97,7 @@ const formatDate = (dateValue) => {
|
||||
return `${day}/${month}/${year}`;
|
||||
};
|
||||
|
||||
const getTableContent = async (options) => {
|
||||
const getTableContentBase = async (options) => {
|
||||
try {
|
||||
// Verifica se la tabella esiste
|
||||
const checkTableQuery = `SELECT COUNT(*) as tableExists FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '${options.nameTable}'`;
|
||||
@@ -351,9 +369,26 @@ const getTableContent = async (options) => {
|
||||
records.forEach(record => {
|
||||
let myrec = {}
|
||||
|
||||
displayColumns.forEach(column => {
|
||||
myrec[column] = `${getDisplayValue(record, column)} `;
|
||||
});
|
||||
if (options.recordraw) {
|
||||
myrec = record;
|
||||
} else {
|
||||
|
||||
displayColumns.forEach(column => {
|
||||
const value = record[column];
|
||||
if (value !== undefined && value !== null) {
|
||||
const type = typeof value;
|
||||
if (type === 'number' && !mergedMapping[column]) {
|
||||
myrec[column] = value;
|
||||
} else if (type === 'boolean') {
|
||||
myrec[column] = value;
|
||||
} else if (value instanceof Date) {
|
||||
myrec[column] = formatDate(value);
|
||||
} else {
|
||||
myrec[column] = `${getDisplayValue(record, column)}`.trim();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
output.push(myrec)
|
||||
});
|
||||
}
|
||||
@@ -614,7 +649,7 @@ const checkPermissions = async (options) => {
|
||||
exports.viewTable = async (req, res) => {
|
||||
try {
|
||||
const options = req.body.options;
|
||||
const tableContent = await getTableContent(options);
|
||||
const tableContent = await this.getTableContent(options);
|
||||
|
||||
let out = {};
|
||||
|
||||
@@ -665,7 +700,7 @@ exports.updateLocalDb = async (tableContent, options) => {
|
||||
.trim() // Rimuove gli spazi all'inizio e alla fine
|
||||
.replace(/[\(\)]/g, '') // Rimuove le parentesi tonde
|
||||
.split(','); // Divide la stringa in un array usando la virgola come separatore
|
||||
|
||||
|
||||
if (arrayPulito && arrayPulito.length > 0) {
|
||||
let aggiornacat = false;
|
||||
const precCatProds = recfound.idCatProds;
|
||||
@@ -703,7 +738,7 @@ exports.updateLocalDb = async (tableContent, options) => {
|
||||
if (tableContent.DataPubblicazione.trim()) {
|
||||
recproductInfo.date_pub = new Date(tools.convertiDataItaliana(tableContent.DataPubblicazione.trim()).date);
|
||||
// convert data to timestamp
|
||||
recproductInfo.date_pub_ts = recproductInfo.date_pub.getTime();
|
||||
recproductInfo.date_pub_ts = recproductInfo.date_pub.getTime();
|
||||
aggiorna = true;
|
||||
}
|
||||
|
||||
@@ -724,7 +759,7 @@ exports.updateLocalDb = async (tableContent, options) => {
|
||||
exports.queryTable = async (req, res) => {
|
||||
try {
|
||||
const options = req.body.options;
|
||||
const tableContent = await getTableContent(options);
|
||||
const tableContent = await this.getTableContent(options);
|
||||
|
||||
let out = {};
|
||||
|
||||
@@ -772,3 +807,21 @@ exports.saveTable = async (req, res) => {
|
||||
return res.send({ code: server_constants.RIS_CODE_ERR, error });
|
||||
}
|
||||
};
|
||||
|
||||
exports.updateAllBook = async (req, res) => {
|
||||
|
||||
const Macro = require('../modules/Macro'); // Importa la classe Macro
|
||||
|
||||
try {
|
||||
const idapp = req.body.idapp;
|
||||
const options = req.body.options;
|
||||
const macro = new Macro(idapp); // Crea un'istanza della classe Macro
|
||||
|
||||
const result = await macro.updateLocalDbFromGM_T_Web_Articoli(options);
|
||||
|
||||
return res.status(200).send({ data: result });
|
||||
} catch (e) {
|
||||
console.error(e.message);
|
||||
return res.status(400).send(e);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user