616 lines
20 KiB
JavaScript
616 lines
20 KiB
JavaScript
require("../connections/mysql-server");
|
|
require("../connections/sql-server");
|
|
require("../helpers/CheckToken");
|
|
const express = require("express");
|
|
const router = express.Router();
|
|
const bodyParser = require("body-parser");
|
|
|
|
router.use(bodyParser.urlencoded({ extended: true }));
|
|
router.use(bodyParser.json());
|
|
|
|
var routes = function () {
|
|
|
|
router.get("/getRobotCourses", verifyJWT, (req, res) => {
|
|
execSQLQuery(`
|
|
SELECT
|
|
0 as 'IDMatricula',
|
|
idcourses as 'IDCurso',
|
|
name as 'NomeVersao',
|
|
aditional as 'Adicional',
|
|
extracourse as 'CursoExtra'
|
|
FROM courses
|
|
WHERE idtypescourse = 5 and disabled = 0;`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.get("/getRobotCourseByStudent/:idusers/:banco", verifyJWT, (req, res) => {
|
|
const idusers = parseInt(req.params.idusers);
|
|
const db = req.params.banco;
|
|
execSQLQuery(`
|
|
SELECT distinct
|
|
zus.user AS IDMatricula,
|
|
zuc.idcourses AS IDCurso,
|
|
co.name AS NomeVersao
|
|
FROM zoeusercourses zuc
|
|
INNER JOIN courses co ON co.idcourses = zuc.idcourses
|
|
INNER JOIN zoeusers zus ON zus.id = zuc.idzoeusers
|
|
INNER JOIN zoeunits zun ON zun.id = zuc.idzoeunits
|
|
WHERE zuc.enabled = 1 AND (zuc.expiresAt IS NULL OR CURRENT_TIMESTAMP < zuc.expiresAt) AND zus.user = '${idusers}' and CONCAT(zun.id, '.dbo.') = '${db}';`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.get("/getRobotCourseByStudentOld/:idusers/:banco", verifyJWT, (req, res) => {
|
|
const idusers = parseInt(req.params.idusers);
|
|
const db = req.params.banco;
|
|
execSQLQuery2(`
|
|
SELECT distinct
|
|
mt.IDMatricula,
|
|
tt.IDCurso,
|
|
cu.NomeVersao
|
|
FROM ${db}MatriculasTreinandos mt
|
|
INNER JOIN ${db}TreinandosTurmas tt ON mt.IDMatricula = tt.IDMatricula
|
|
INNER JOIN ${db}Cursos cu ON cu.Codigo = tt.IDCurso
|
|
WHERE mt.IDMatricula = ${idusers} AND cu.Desativado = 0 AND tt.Desistente = 0 AND cu.IDTipoCurso = 5;`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
|
|
|
|
|
|
router.get("/getAll", verifyJWT, (req, res) => {
|
|
const domain = req.hostname.split(".").pop();
|
|
|
|
let language;
|
|
|
|
switch (domain) {
|
|
case "br":
|
|
language = 1;
|
|
break;
|
|
case "py":
|
|
language = 2;
|
|
break;
|
|
case "us":
|
|
language = 3;
|
|
break;
|
|
default:
|
|
language = 1;
|
|
break;
|
|
}
|
|
|
|
execSQLQuery(
|
|
`SELECT
|
|
*
|
|
FROM myrobot.courses where idlanguage = ${language} order by name asc`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.get("/getAllCourseOn", verifyJWT, (req, res) => {
|
|
const domain = req.hostname.split(".").pop();
|
|
|
|
let language;
|
|
|
|
switch (domain) {
|
|
case "br":
|
|
language = 1;
|
|
break;
|
|
case "py":
|
|
language = 2;
|
|
break;
|
|
case "us":
|
|
language = 3;
|
|
break;
|
|
default:
|
|
language = 1;
|
|
break;
|
|
}
|
|
|
|
execSQLQuery(
|
|
`SELECT
|
|
*
|
|
FROM myrobot.courses where idlanguage = ${language} and disabled = 0 order by name asc`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.get("/getAllCourses", verifyJWT, (req, res) => {
|
|
execSQLQuery(
|
|
`SELECT
|
|
*
|
|
FROM courses
|
|
WHERE idtypescourse != 5;`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.get("/getSQLServerCourses/:db", verifyJWT, (req, res) => {
|
|
const db = req.params.db;
|
|
execSQLQuery2(
|
|
`SELECT
|
|
*
|
|
FROM ${db}Cursos;`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.get("/getMySQLinSQLServerCourses", verifyJWT, (req, res) => {
|
|
execSQLQuery(
|
|
`SELECT
|
|
idcourses AS 'Codigo',
|
|
coursecode AS 'CodigoCurso',
|
|
idtypescourse AS 'IDTipoCurso',
|
|
name AS 'NomeVersao',
|
|
description AS 'DescricaoContrato',
|
|
durationtraineeprogram AS 'CH_ProgTrein',
|
|
durationtraineevip AS 'CH_TurmaVIP',
|
|
durationtraineeindividual AS 'CH_Individual',
|
|
valueprogram AS 'VR_ProgTrein',
|
|
valuevip AS 'VR_TurmaVIP',
|
|
valueindividual AS 'VR_Individual',
|
|
materialvalue AS 'ValorMaterial',
|
|
materialcode AS 'CodigoMaterial',
|
|
CASE WHEN extracourse = 1 THEN 'true' else 'false' END AS 'CursoExtra',
|
|
CASE WHEN aditional = 1 THEN 'true' else 'false' END AS 'Adicional',
|
|
CASE WHEN disabled = 1 THEN 'true' else 'false' END AS 'Desativado',
|
|
CASE WHEN autospeak = 1 THEN 'true' else 'false' END AS 'FalaAutomatica'
|
|
FROM courses;`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
router.get("/typescourse", verifyJWT, (req, res) => {
|
|
execSQLQuery(
|
|
`SELECT
|
|
*
|
|
FROM typescourse;`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.get("/getMySQLinSQLServerTypescourse", verifyJWT, (req, res) => {
|
|
execSQLQuery(
|
|
`SELECT
|
|
idtypescourse AS 'IDTipoCurso',
|
|
description AS 'Descricao',
|
|
case when disabled = 1 then true else false end as 'Desativado',
|
|
gradecalc AS 'CalculosNotas'
|
|
FROM typescourse;`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.get("/SQLServertypescourse/:db", verifyJWT, (req, res) => {
|
|
const db = req.params.db;
|
|
execSQLQuery2(
|
|
`SELECT
|
|
*
|
|
FROM ${db}TiposCurso;`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.get("/getExtraCourses", verifyJWT, (req, res) => {
|
|
execSQLQuery(
|
|
`SELECT
|
|
0 as 'IDMatricula',
|
|
idcourses as 'IDCurso',
|
|
name as 'NomeVersao'
|
|
FROM courses
|
|
WHERE aditional = 1 and disabled = 0;`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.get("/getCourse/:idcourses", verifyJWT, (req, res) => {
|
|
const idcourses = parseInt(req.params.idcourses);
|
|
execSQLQuery(
|
|
`SELECT
|
|
*
|
|
FROM courses
|
|
WHERE idcourses = ${idcourses};`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.get("/getCourseNote/:idcourses", verifyJWT, (req, res) => {
|
|
const idcourses = parseInt(req.params.idcourses);
|
|
execSQLQuery(
|
|
`SELECT
|
|
*
|
|
FROM coursenotes
|
|
WHERE idcourses = ${idcourses};`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.get("/getAllSQLServerCourses/:idusers", verifyJWT, (req, res) => {
|
|
const idusers = parseInt(req.params.idusers);
|
|
let sqlQuery = `SELECT idcourses AS 'IDCurso', ${idusers} AS 'IDMatricula', name AS 'NomeVersao' FROM courses where idtypescourse != 5 and disabled = 0 order by name asc;`;
|
|
execSQLQuery(sqlQuery, res, req.originalUrl);
|
|
});
|
|
|
|
router.get("/getCourseByStudent/:idusers/:banco", verifyJWT, (req, res) => {
|
|
const idusers = parseInt(req.params.idusers);
|
|
const db = req.params.banco;
|
|
const EAD = req.headers.host && req.headers.host.includes("myrobothome");
|
|
mysqlConnection.query(
|
|
"select cursoferias from config;",
|
|
function (error, results, fields) {
|
|
let sqlQuery = `SELECT distinct
|
|
mt.IDMatricula,
|
|
cu.Codigo as 'IDCurso',
|
|
cu.NomeVersao,
|
|
cu.IDTipoCurso
|
|
FROM ${db}MatriculasTreinandos mt
|
|
INNER JOIN ${db}TreinandosTurmas tt ON mt.IDMatricula = tt.IDMatricula
|
|
INNER JOIN ${db}Cursos cu ON cu.Codigo = tt.IDCurso
|
|
WHERE mt.IDMatricula = ${idusers} AND cu.Desativado = 0 AND tt.Desistente = 0 AND cu.IDTipoCurso ${
|
|
EAD ? "= 7" : "!= 5"
|
|
}
|
|
union all select
|
|
0 as IDMatricula,
|
|
cu2.Codigo as 'IDCurso',
|
|
cu2.NomeVersao,
|
|
cu2.IDTipoCurso
|
|
from ${db}Cursos cu2
|
|
where 1=0${
|
|
results[0]["cursoferias"] == 1 ? " or cu2.CursoExtra = 1" : ""
|
|
}${EAD ? " or cu2.Adicional = 1" : ""};`;
|
|
//console.log(sqlQuery);
|
|
execSQLQuery2(sqlQuery, res, req.originalUrl);
|
|
}
|
|
);
|
|
});
|
|
|
|
router.get(
|
|
"/getHomeCourseByStudent/:idusers/:banco",
|
|
verifyJWT,
|
|
(req, res) => {
|
|
const idusers = parseInt(req.params.idusers);
|
|
const db = req.params.banco;
|
|
const EAD = req.headers.host && req.headers.host.includes("myrobothome");
|
|
mysqlConnection.query(
|
|
"select cursoferias from config;",
|
|
function (error, results, fields) {
|
|
let sqlQuery = `SELECT distinct
|
|
mt.IDMatricula,
|
|
cu.Codigo as 'IDCurso',
|
|
cu.NomeVersao,
|
|
cu.IDTipoCurso
|
|
FROM ${db}MatriculasTreinandos mt
|
|
INNER JOIN ${db}TreinandosTurmas tt ON mt.IDMatricula = tt.IDMatricula
|
|
INNER JOIN ${db}Cursos cu ON cu.Codigo = tt.IDCurso
|
|
WHERE mt.IDMatricula = ${idusers} AND cu.Desativado = 0 AND tt.Desistente = 0 AND
|
|
(cu.IDTipoCurso = 4 or cu.IDTipoCurso = 6 or cu.IDTipoCurso = 7)
|
|
union all select
|
|
0 as IDMatricula,
|
|
cu2.Codigo as 'IDCurso',
|
|
cu2.NomeVersao,
|
|
cu2.IDTipoCurso
|
|
from ${db}Cursos cu2
|
|
where (cu2.IDTipoCurso = 4 or cu2.IDTipoCurso = 6 or cu2.IDTipoCurso = 7) and
|
|
(1=0${
|
|
results[0]["cursoferias"] == 1 ? " or cu2.CursoExtra = 1" : ""
|
|
}${EAD ? " or cu2.Adicional = 1" : ""});`;
|
|
console.log(sqlQuery);
|
|
execSQLQuery2(sqlQuery, res, req.originalUrl);
|
|
}
|
|
);
|
|
}
|
|
);
|
|
|
|
router.get("/list", verifyJWT, (req, res) => {
|
|
execSQLQuery(
|
|
`SELECT
|
|
idcourses,
|
|
name,
|
|
description,
|
|
concat('R$ ',format(materialvalue,2,'de_DE')) as materialvalue,
|
|
disabled,
|
|
idtypescourse
|
|
FROM courses
|
|
WHERE disabled = 0
|
|
order by name asc;`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.get("/disable/:idcourses", verifyJWT, (req, res) => {
|
|
const idcourses = parseInt(req.params.idcourses);
|
|
execSQLQuery(
|
|
`UPDATE courses SET
|
|
disabled = not disabled
|
|
WHERE idcourses = ${idcourses};`,
|
|
res,
|
|
req.originalUrl
|
|
);
|
|
});
|
|
|
|
router.post("/insertSQL", verifyJWT, (req, res) => {
|
|
const coursecode = req.body.coursecode
|
|
const idtypescourse = parseInt(req.body.idtypescourse)
|
|
const name = req.body.name
|
|
const description = req.body.description
|
|
const durationtraineeprogram = req.body.durationtraineeprogram
|
|
const durationtraineevip = req.body.durationtraineevip
|
|
const durationtraineeindividual = req.body.durationtraineeindividual
|
|
const valueprogram = parseFloat(req.body.valueprogram)
|
|
const valuevip = parseFloat(req.body.valuevip)
|
|
const valueindividual = parseFloat(req.body.valueindividual)
|
|
const disabled = req.body.disabled
|
|
const materialvalue = parseFloat(req.body.materialvalue)
|
|
const materialcode = req.body.materialcode
|
|
const aditional = req.body.aditional
|
|
const extracourse = req.body.aditional
|
|
const autospeak = req.body.autospeak
|
|
console.log(req.body)
|
|
})
|
|
|
|
router.post("/insert", verifyJWT, (req, res) => {
|
|
const coursecode = req.body.coursecode;
|
|
const idtypescourse = parseInt(req.body.idtypescourse);
|
|
const name = req.body.name;
|
|
const description = req.body.description;
|
|
const durationtraineeprogram = req.body.durationtraineeprogram;
|
|
const durationtraineevip = req.body.durationtraineevip;
|
|
const durationtraineeindividual = req.body.durationtraineeindividual;
|
|
const valueprogram = parseFloat(req.body.valueprogram);
|
|
const valuevip = parseFloat(req.body.valuevip);
|
|
const valueindividual = parseFloat(req.body.valueindividual);
|
|
const materialvalue = parseFloat(req.body.materialvalue);
|
|
const materialcode = req.body.materialcode;
|
|
const extracourse = req.body.extracourse ? 1 : 0;
|
|
const aditional = req.body.aditional ? 1 : 0;
|
|
const disabled = req.body.disabled ? 1 : 0;
|
|
const autospeak = req.body.autospeak ? 1 : 0;
|
|
const idlanguage = req.body.idlanguage;
|
|
try {
|
|
execSQLQuery(
|
|
`INSERT INTO courses (coursecode, idtypescourse, name, description, durationtraineeprogram, durationtraineevip, durationtraineeindividual, valueprogram, valuevip, valueindividual, materialvalue, materialcode, extracourse, aditional, disabled, autospeak, idlanguage)
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? , ?, ?, ?, ?);`,
|
|
res,
|
|
req.originalUrl,
|
|
[
|
|
coursecode,
|
|
idtypescourse,
|
|
name,
|
|
description,
|
|
durationtraineeprogram,
|
|
durationtraineevip,
|
|
durationtraineeindividual,
|
|
valueprogram,
|
|
valuevip,
|
|
valueindividual,
|
|
materialvalue,
|
|
materialcode,
|
|
extracourse,
|
|
aditional,
|
|
disabled,
|
|
autospeak,
|
|
idlanguage,
|
|
]
|
|
);
|
|
} catch (error) {
|
|
console.log("oi");
|
|
console.log(error);
|
|
}
|
|
});
|
|
|
|
router.patch("/update", verifyJWT, (req, res) => {
|
|
const idcourses = parseInt(req.body.idcourses);
|
|
const coursecode = req.body.coursecode;
|
|
const idtypescourse = parseInt(req.body.idtypescourse);
|
|
const name = req.body.name;
|
|
const description = req.body.description;
|
|
const durationtraineeprogram = req.body.durationtraineeprogram;
|
|
const durationtraineevip = req.body.durationtraineevip;
|
|
const durationtraineeindividual = req.body.durationtraineeindividual;
|
|
const valueprogram = parseFloat(req.body.valueprogram);
|
|
const valuevip = parseFloat(req.body.valuevip);
|
|
const valueindividual = parseFloat(req.body.valueindividual);
|
|
const materialvalue = parseFloat(req.body.materialvalue);
|
|
const materialcode = req.body.materialcode;
|
|
const extracourse = req.body.extracourse ? 1 : 0;
|
|
const aditional = req.body.aditional ? 1 : 0;
|
|
const disabled = req.body.disabled ? 1 : 0;
|
|
const autospeak = req.body.autospeak ? 1 : 0;
|
|
execSQLQuery(
|
|
`UPDATE courses SET
|
|
coursecode = ?,
|
|
idtypescourse = ?,
|
|
name = ?,
|
|
description = ?,
|
|
durationtraineeprogram = ?,
|
|
durationtraineevip = ?,
|
|
durationtraineeindividual = ?,
|
|
valueprogram = ?,
|
|
valuevip = ?,
|
|
valueindividual = ?,
|
|
materialvalue = ?,
|
|
materialcode = ?,
|
|
extracourse = ?,
|
|
aditional = ?,
|
|
disabled = ?,
|
|
autospeak = ?
|
|
WHERE idcourses = ?;`,
|
|
res,
|
|
req.originalUrl,
|
|
[
|
|
coursecode,
|
|
idtypescourse,
|
|
name,
|
|
description,
|
|
durationtraineeprogram,
|
|
durationtraineevip,
|
|
durationtraineeindividual,
|
|
valueprogram,
|
|
valuevip,
|
|
valueindividual,
|
|
materialvalue,
|
|
materialcode,
|
|
extracourse,
|
|
aditional,
|
|
disabled,
|
|
autospeak,
|
|
idcourses,
|
|
]
|
|
);
|
|
});
|
|
|
|
router.get(
|
|
"/getCourseAndClass/:idusers/:idCursos/:idunits",
|
|
verifyJWT,
|
|
(req, res) => {
|
|
const idusers = parseInt(req.params.idusers);
|
|
const idunits = parseInt(req.params.idunits);
|
|
const WhereClause = req.params.idCursos;
|
|
const domain = req.hostname.split(".").pop();
|
|
|
|
let language;
|
|
|
|
switch (domain) {
|
|
case "br":
|
|
language = 1;
|
|
break;
|
|
case "py":
|
|
language = 2;
|
|
break;
|
|
case "us":
|
|
language = 3;
|
|
break;
|
|
default:
|
|
language = 1;
|
|
break;
|
|
}
|
|
|
|
let sqlQuery = `select distinct
|
|
*,
|
|
COALESCE(((R.actualItem / R.itensInClass) * 100) , 0) AS 'progressB'
|
|
FROM (
|
|
select
|
|
co.*,
|
|
cl.idclasses,
|
|
cl.name AS 'nameC',
|
|
cl.description AS 'descriptionC',
|
|
cl.aval,
|
|
cl.demo,
|
|
COALESCE(sc.actualItem, 0) AS 'actualItem',
|
|
sc.continueClass,
|
|
sc.completedClass,
|
|
sc.lockedClass,
|
|
sc.liberado,
|
|
ROUND(sc.note, 2) AS 'note',
|
|
sc.notification,
|
|
sc.homework,
|
|
(select count(*) from userstages us where us.idunits = sc.idunits and us.idusers = sc.idusers and us.idclasses = sc.idclasses) as 'licao',
|
|
0 AS 'showdet',
|
|
0 AS 'btnVis',
|
|
COALESCE(sc.actualItem, 0) AS 'actualItenInClass',
|
|
(SELECT COUNT(*) AS 'qtdeItens'
|
|
from classescontent cc
|
|
LEFT join exercisequestions eq ON eq.idexercises = cc.idexercises
|
|
LEFT join media m ON m.idmedia = cc.idmedia
|
|
LEFT join texts t ON t.idtexts = cc.idtexts
|
|
LEFT join slides s ON s.idslides = cc.idslides
|
|
LEFT join texts g ON g.idtexts = cc.idgames AND t.game = 1
|
|
where cc.idclasses = cl.idclasses)
|
|
AS 'itensInClass',
|
|
cl.download AS 'downloads',
|
|
cl.ordem,
|
|
(select count(*) from barcodes bc where bc.idunits = ${idunits} and bc.idusers = ${idusers} and bc.idcourses = co.idcourses) as 'Apostila'
|
|
from courses co
|
|
inner join classes cl on cl.idcourses = co.idcourses and cl.disabled = 0
|
|
left join stepclass sc on sc.idclasses = cl.idclasses and sc.idusers = ${idusers} and sc.idunits = ${idunits}
|
|
WHERE ${
|
|
idusers == 190001 ? "cl.demo = 1" : "co.idcourses in " + WhereClause
|
|
} AND co.disabled = 0 AND cl.homework = 0 and co.idtypescourse != 5
|
|
AND co.idlanguage = ${language} OR co.idlanguage = 0
|
|
ORDER BY co.name, cl.ordem ASC) R
|
|
ORDER BY R.name ASC, ordem ASC;`;
|
|
execSQLQuery(sqlQuery, res, req.originalUrl);
|
|
}
|
|
);
|
|
|
|
router.get(
|
|
"/getHomeCourseAndClass/:idusers/:idCursos/:idunits",
|
|
verifyJWT,
|
|
(req, res) => {
|
|
const idusers = parseInt(req.params.idusers);
|
|
const idunits = parseInt(req.params.idunits);
|
|
const WhereClause = req.params.idCursos;
|
|
let sqlQuery = `select distinct
|
|
*,
|
|
COALESCE(((R.actualItem / R.itensInClass) * 100) , 0) AS 'progressB'
|
|
FROM (
|
|
select
|
|
co.*,
|
|
cl.idclasses,
|
|
cl.name AS 'nameC',
|
|
cl.description AS 'descriptionC',
|
|
cl.aval,
|
|
cl.demo,
|
|
COALESCE(sc.actualItem, 0) AS 'actualItem',
|
|
sc.continueClass,
|
|
sc.completedClass,
|
|
sc.lockedClass,
|
|
sc.liberado,
|
|
ROUND(sc.note, 2) AS 'note',
|
|
sc.notification,
|
|
sc.homework,
|
|
(select count(*) from userstages us where us.idunits = sc.idunits and us.idusers = sc.idusers and us.idclasses = sc.idclasses) as 'licao',
|
|
0 AS 'showdet',
|
|
0 AS 'btnVis',
|
|
COALESCE(sc.actualItem, 0) AS 'actualItenInClass',
|
|
(SELECT COUNT(*) AS 'qtdeItens'
|
|
from classescontent cc
|
|
LEFT join exercisequestions eq ON eq.idexercises = cc.idexercises
|
|
LEFT join media m ON m.idmedia = cc.idmedia
|
|
LEFT join texts t ON t.idtexts = cc.idtexts
|
|
LEFT join slides s ON s.idslides = cc.idslides
|
|
LEFT join texts g ON g.idtexts = cc.idgames AND t.game = 1
|
|
where cc.idclasses = cl.idclasses)
|
|
AS 'itensInClass',
|
|
cl.download AS 'downloads',
|
|
cl.ordem,
|
|
(select count(*) from barcodes bc where bc.idunits = ${idunits} and bc.idusers = ${idusers} and bc.idcourses = co.idcourses) as 'Apostila'
|
|
from courses co
|
|
inner join classes cl on cl.idcourses = co.idcourses and cl.disabled = 0
|
|
left join stepclass sc on sc.idclasses = cl.idclasses and sc.idusers = ${idusers} and sc.idunits = ${idunits}
|
|
WHERE ${
|
|
idusers == 190001 ? "cl.demo = 1" : "co.idcourses in " + WhereClause
|
|
} AND co.disabled = 0 AND cl.homework = 0 and co.idtypescourse != 5
|
|
and (co.idtypescourse = 4 or co.idtypescourse = 6 or co.idtypescourse = 7)
|
|
ORDER BY co.name, cl.ordem ASC) R
|
|
ORDER BY R.name ASC, ordem ASC;`;
|
|
execSQLQuery(sqlQuery, res, req.originalUrl);
|
|
console.log(sqlQuery);
|
|
}
|
|
);
|
|
|
|
return router;
|
|
};
|
|
|
|
module.exports = routes;
|