new user applications requests
This commit is contained in:
parent
0ddf95cdda
commit
3b19e33d0d
@ -143,6 +143,7 @@ BEGIN TRY
|
||||
[Работник] varchar(200) COLLATE Cyrillic_General_CI_AS,
|
||||
[Дата_заявки] date,
|
||||
[Дата_принятия] date,
|
||||
[Действие_до] date,
|
||||
[Решение] varchar(200) COLLATE Cyrillic_General_CI_AS,
|
||||
[Дата_решения] date,
|
||||
[Дополнение] varchar(500) COLLATE Cyrillic_General_CI_AS,
|
||||
|
115
index.js
115
index.js
@ -1381,6 +1381,113 @@ app.post(
|
||||
}
|
||||
);
|
||||
|
||||
// Обработка POST на получение списка заявок
|
||||
app.post(
|
||||
"/forms/getmyapplications",
|
||||
upload.single("file"),
|
||||
checkToken,
|
||||
async (req, res) => {
|
||||
try {
|
||||
var { page, searchText } = req.body;
|
||||
|
||||
if (!page) {
|
||||
page = 1;
|
||||
}
|
||||
|
||||
const pageSize = 15;
|
||||
const offset = (page - 1) * pageSize;
|
||||
|
||||
var userData;
|
||||
var fullname;
|
||||
|
||||
if (req.user.role === "legal") {
|
||||
userData = await executeQuery(
|
||||
"SELECT * FROM [Юридические лица] WHERE id = @id",
|
||||
{
|
||||
id: req.user.userId,
|
||||
}
|
||||
);
|
||||
fullname = userData[0].Наименование;
|
||||
} else {
|
||||
userData = await executeQuery(
|
||||
"SELECT * FROM [Физические лица] WHERE id = @id",
|
||||
{
|
||||
id: req.user.userId,
|
||||
}
|
||||
);
|
||||
fullname = `${userData[0].Фамилия} ${userData[0].Имя} ${userData[0].Отчество}`;
|
||||
}
|
||||
|
||||
let applicationsQuery = `
|
||||
SELECT *
|
||||
FROM [Заявки]
|
||||
WHERE [Автор] = N'${fullname}' COLLATE Cyrillic_General_CI_AS
|
||||
`;
|
||||
|
||||
let totalCountQuery = `
|
||||
SELECT COUNT(*) AS total
|
||||
FROM [Заявки]
|
||||
WHERE [Автор] = N'${fullname}' COLLATE Cyrillic_General_CI_AS
|
||||
`;
|
||||
|
||||
if (searchText) {
|
||||
totalCountQuery += ` AND CONCAT(
|
||||
[Статус] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Работник] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Вид_заявки] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Дата_заявки], ' ',
|
||||
[Дата_принятия], ' ',
|
||||
[Решение] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Дата_решения], ' ',
|
||||
[Дополнение] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Авто_модель] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Авто_марка] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Авто_гос_номер] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Авто_цвет] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Наименование] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Организация] COLLATE Cyrillic_General_CI_AS
|
||||
) LIKE N'%${searchText}%' COLLATE Cyrillic_General_CI_AS`;
|
||||
|
||||
applicationsQuery += ` AND CONCAT(
|
||||
[Статус] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Работник] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Вид_заявки] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Дата_заявки], ' ',
|
||||
[Дата_принятия], ' ',
|
||||
[Решение] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Дата_решения], ' ',
|
||||
[Дополнение] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Авто_модель] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Авто_марка] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Авто_гос_номер] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Авто_цвет] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Наименование] COLLATE Cyrillic_General_CI_AS, ' ',
|
||||
[Организация] COLLATE Cyrillic_General_CI_AS
|
||||
) LIKE N'%${searchText}%' COLLATE Cyrillic_General_CI_AS`;
|
||||
}
|
||||
|
||||
applicationsQuery += `
|
||||
ORDER BY id DESC
|
||||
OFFSET ${offset} ROWS
|
||||
FETCH NEXT ${pageSize} ROWS ONLY
|
||||
`;
|
||||
|
||||
const applications = await executeQuery(applicationsQuery);
|
||||
const totalCount = await executeQuery(totalCountQuery);
|
||||
|
||||
res.status(201).json({
|
||||
applications: applications,
|
||||
totalCount: totalCount[0].total,
|
||||
userData: userData[0],
|
||||
role: req.user.role,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Ошибка при обработке POST запроса:", error);
|
||||
res.status(500).json({ message: "Произошла ошибка" });
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// Обработка GET запроса на получение данных конкретной заявки
|
||||
app.get("/forms/application", checkToken, async (req, res) => {
|
||||
try {
|
||||
@ -1427,7 +1534,7 @@ app.delete("/forms/delete", checkToken, async (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
// Обработка PUT запроса с новыми данными пользователя
|
||||
// Обработка PUT запроса с новыми данными заявки
|
||||
app.put(
|
||||
"/forms/update",
|
||||
upload.single("file"),
|
||||
@ -1447,6 +1554,7 @@ app.put(
|
||||
tmcunit,
|
||||
tmcquantity,
|
||||
date,
|
||||
todate,
|
||||
finaldate,
|
||||
additional,
|
||||
} = req.body;
|
||||
@ -1458,7 +1566,7 @@ app.put(
|
||||
|
||||
try {
|
||||
const updateResult = await executeQuery(
|
||||
`UPDATE [Заявки] SET Статус = @status, Работник = @name, Дата_заявки = @date, Дата_решения = @finaldate, Организация = @legal, Решение = @decision, Дополнение = @additional, Авто_модель = @carmodel, Авто_марка = @carbrand, Авто_цвет = @carcolor, Авто_гос_номер = @carnumber, Наименование = @tmcname, Единица_измерения = @tmcunit, Количество = @tmcquantity
|
||||
`UPDATE [Заявки] SET Статус = @status, Работник = @name, Дата_заявки = @date, Действие_до = @todate, Дата_решения = @finaldate, Организация = @legal, Решение = @decision, Дополнение = @additional, Авто_модель = @carmodel, Авто_марка = @carbrand, Авто_цвет = @carcolor, Авто_гос_номер = @carnumber, Наименование = @tmcname, Единица_измерения = @tmcunit, Количество = @tmcquantity
|
||||
OUTPUT inserted.*
|
||||
WHERE id = @id
|
||||
`,
|
||||
@ -1466,6 +1574,7 @@ app.put(
|
||||
status: status,
|
||||
name: name,
|
||||
date: date,
|
||||
todate: todate,
|
||||
finaldate: finaldate,
|
||||
legal: legal,
|
||||
decision: decision,
|
||||
@ -1482,7 +1591,7 @@ app.put(
|
||||
);
|
||||
|
||||
res.status(201).json({
|
||||
message: "Данные пользователя успешно обновлены",
|
||||
message: "Данные заявки успешно обновлены",
|
||||
data: updateResult[0],
|
||||
});
|
||||
} catch (error) {
|
||||
|
Loading…
Reference in New Issue
Block a user