new user applications requests

This commit is contained in:
Ivan 2024-06-10 02:50:43 +03:00
parent 0ddf95cdda
commit 3b19e33d0d
Signed by untrusted user who does not match committer: ppechenkoo
GPG Key ID: 0C191B86D9582583
2 changed files with 113 additions and 3 deletions

View File

@ -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
View File

@ -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) {