Compare commits

...

2 Commits

Author SHA1 Message Date
57513da827 - fixed item creation, which was broken by last update 2023-07-07 15:13:17 +02:00
185d563ac0 - sort item page by SKU 2023-07-07 15:11:33 +02:00
3 changed files with 8 additions and 6 deletions

View File

@ -66,13 +66,16 @@ function returnAllModelFieldData() {
* @param {string} [relation_name='id']
* @returns {undefined || object} undefined or prisma connect object
*/
export function parseIntRelation(data: string, relation_name: string = 'id') {
export function parseIntRelation(data: string, relation_name: string = 'id', doNotDisconnect: boolean = false) {
// This function is perfect. If data is not a valid number, return `undefined`
// If it is a valid number return `{connect: {relation_name: yourNumber}}}`
// This can be used by prisma to connect relations
// If the incoming data is null or empty, return a prisma disconnect object instead of a connect one
if (data === null || data === '') {
if (doNotDisconnect) {
return undefined;
}
return JSON.parse(`{
"disconnect": true
}`);

View File

@ -102,9 +102,9 @@ function post(req: Request, res: Response) {
comment: req.body.comment,
status: req.body.status, // Only enum(itemStatus) values are valid
// Relations
contactInfo: parseIntRelation(req.body.contactInfoId),
category: parseIntRelation(req.body.categoryId),
storageLocation: parseIntRelation(req.body.storageLocationId),
contactInfo: parseIntRelation(req.body.contactInfoId, undefined, true),
category: parseIntRelation(req.body.categoryId, undefined, true),
storageLocation: parseIntRelation(req.body.storageLocationId, undefined, true),
manufacturer: req.body.manufacturer,

View File

@ -23,12 +23,11 @@ async function get(req: Request, res: Response) {
return;
}
prisma.item
.findMany({ skip: (page - 1) * takeSize, take: takeSize }) // Skip the amount of items per page times the page number minus 1; skip has to be (page-1)*takeSize because skip is 0 indexed
.findMany({ skip: (page - 1) * takeSize, take: takeSize, orderBy: { SKU: "asc" } }) // Skip the amount of items per page times the page number minus 1; skip has to be (page-1)*takeSize because skip is 0 indexed
.then((items) => {
prisma.storageLocation.findMany({}).then((locations) => {
prisma.itemCategory.findMany({}).then((categories) => {
prisma.contactInfo.findMany({}).then((contactInfo) => {
res.render(__path + '/src/frontend/items.eta.html', { items: items, currentPage: page, maxPages: pageSize, storeLocs: locations, categories: categories, contactInfo: contactInfo });
})
});