Compare commits
2 Commits
6c3e391582
...
6abedff07a
| Author | SHA1 | Date | |
|---|---|---|---|
| 6abedff07a | |||
| a555e74201 |
@@ -32,6 +32,22 @@ function tokenize(value: string): string[] {
|
|||||||
.filter((w) => w.length >= 3);
|
.filter((w) => w.length >= 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isIgnoredReceiptName(value: string | null | undefined): boolean {
|
||||||
|
const normalized = (value ?? '').trim().toLowerCase();
|
||||||
|
if (!normalized) return false;
|
||||||
|
|
||||||
|
if (/^rabatt\b/.test(normalized)) return true;
|
||||||
|
if (/^summa\b/.test(normalized)) return true;
|
||||||
|
if (/^moms\b/.test(normalized)) return true;
|
||||||
|
if (/^pant\b/.test(normalized)) return true;
|
||||||
|
if (/^att\s+betala\b/.test(normalized)) return true;
|
||||||
|
if (/^totalt\b/.test(normalized)) return true;
|
||||||
|
if (/^kort\b/.test(normalized)) return true;
|
||||||
|
if (/^kontant\b/.test(normalized)) return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
function normalizeToken(s: string): string {
|
function normalizeToken(s: string): string {
|
||||||
return s.replace(/å/g, 'a').replace(/ä/g, 'a').replace(/ö/g, 'o').replace(/é/g, 'e').replace(/è/g, 'e');
|
return s.replace(/å/g, 'a').replace(/ä/g, 'a').replace(/ö/g, 'o').replace(/é/g, 'e').replace(/è/g, 'e');
|
||||||
}
|
}
|
||||||
@@ -177,7 +193,8 @@ export class ReceiptImportService {
|
|||||||
throw new BadRequestException(message);
|
throw new BadRequestException(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
return response.json() as Promise<ParsedReceiptItem[]>;
|
const items = (await response.json()) as ParsedReceiptItem[];
|
||||||
|
return items.filter((item) => !isIgnoredReceiptName(item.rawName));
|
||||||
}
|
}
|
||||||
|
|
||||||
private async matchProducts(
|
private async matchProducts(
|
||||||
|
|||||||
+37
-1
@@ -72,6 +72,7 @@ INSERT INTO `Category` (`name`, `parentId`) SELECT 'Svamp', id FRO
|
|||||||
-- ── NIVÅ 2: under Glass, godis & snacks ─────────────────────
|
-- ── NIVÅ 2: under Glass, godis & snacks ─────────────────────
|
||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Chips, snacks & dip', id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Chips, snacks & dip', id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL;
|
||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Choklad', id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Choklad', id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL;
|
||||||
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Godis', id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL;
|
||||||
|
|
||||||
-- ── NIVÅ 2: under Kött, chark & fågel ───────────────────────
|
-- ── NIVÅ 2: under Kött, chark & fågel ───────────────────────
|
||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Pålägg', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Pålägg', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
|
||||||
@@ -79,6 +80,7 @@ INSERT INTO `Category` (`name`, `parentId`) SELECT 'Chark', id FRO
|
|||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Korv', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Korv', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
|
||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kött', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kött', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
|
||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Fågel', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Fågel', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
|
||||||
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Delikatesschark', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
|
||||||
|
|
||||||
-- ── NIVÅ 2: under Mejeri, ost & ägg ─────────────────────────
|
-- ── NIVÅ 2: under Mejeri, ost & ägg ─────────────────────────
|
||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Ost', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Ost', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
|
||||||
@@ -90,6 +92,7 @@ INSERT INTO `Category` (`name`, `parentId`) SELECT 'Smör, margarin & jäst', id
|
|||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Havre-, Soja-, Risdryck mm', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Havre-, Soja-, Risdryck mm', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
|
||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kvarg & Cottage cheese', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kvarg & Cottage cheese', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
|
||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Mellanmål & desserter', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Mellanmål & desserter', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
|
||||||
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Ägg', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
|
||||||
|
|
||||||
-- ── NIVÅ 2: under Skafferi ──────────────────────────────────
|
-- ── NIVÅ 2: under Skafferi ──────────────────────────────────
|
||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kryddor & smaksättare', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kryddor & smaksättare', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
|
||||||
@@ -101,6 +104,7 @@ INSERT INTO `Category` (`name`, `parentId`) SELECT 'Torkad frukt', id F
|
|||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Torra baljväxter', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Torra baljväxter', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
|
||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Flingor, gryner & musli', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Flingor, gryner & musli', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
|
||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Torr färdigmat', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Torr färdigmat', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
|
||||||
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Sylt, mos & marmelad', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
|
||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Bakning', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Bakning', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
|
||||||
|
|
||||||
-- ── NIVÅ 2: under Fisk & Skaldjur ────────────────────────────
|
-- ── NIVÅ 2: under Fisk & Skaldjur ────────────────────────────
|
||||||
@@ -211,6 +215,10 @@ INSERT INTO `Category` (`name`, `parentId`)
|
|||||||
SELECT 'Rotsaker', c2.id FROM `Category` c1
|
SELECT 'Rotsaker', c2.id FROM `Category` c1
|
||||||
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker'
|
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker'
|
||||||
WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL;
|
WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL;
|
||||||
|
INSERT INTO `Category` (`name`, `parentId`)
|
||||||
|
SELECT 'Potatis', c2.id FROM `Category` c1
|
||||||
|
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker'
|
||||||
|
WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL;
|
||||||
|
|
||||||
-- ── NIVÅ 3: under Frukt & Grönt > Kryddor & smaksättare ─────
|
-- ── NIVÅ 3: under Frukt & Grönt > Kryddor & smaksättare ─────
|
||||||
INSERT INTO `Category` (`name`, `parentId`)
|
INSERT INTO `Category` (`name`, `parentId`)
|
||||||
@@ -247,6 +255,10 @@ INSERT INTO `Category` (`name`, `parentId`)
|
|||||||
SELECT 'Färdigskuret', c2.id FROM `Category` c1
|
SELECT 'Färdigskuret', c2.id FROM `Category` c1
|
||||||
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker'
|
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker'
|
||||||
WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL;
|
WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL;
|
||||||
|
INSERT INTO `Category` (`name`, `parentId`)
|
||||||
|
SELECT 'Gurka', c2.id FROM `Category` c1
|
||||||
|
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker'
|
||||||
|
WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL;
|
||||||
|
|
||||||
-- ── NIVÅ 3: under Frukt & Grönt > Frukt ─────────────────────
|
-- ── NIVÅ 3: under Frukt & Grönt > Frukt ─────────────────────
|
||||||
INSERT INTO `Category` (`name`, `parentId`)
|
INSERT INTO `Category` (`name`, `parentId`)
|
||||||
@@ -263,6 +275,16 @@ INSERT INTO `Category` (`name`, `parentId`)
|
|||||||
SELECT 'Chips', c2.id FROM `Category` c1
|
SELECT 'Chips', c2.id FROM `Category` c1
|
||||||
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Chips, snacks & dip'
|
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Chips, snacks & dip'
|
||||||
WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL;
|
WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL;
|
||||||
|
INSERT INTO `Category` (`name`, `parentId`)
|
||||||
|
SELECT 'Nötter & tilltugg', c2.id FROM `Category` c1
|
||||||
|
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Chips, snacks & dip'
|
||||||
|
WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL;
|
||||||
|
|
||||||
|
-- ── NIVÅ 3: under Glass > Godis ─────────────────────────────
|
||||||
|
INSERT INTO `Category` (`name`, `parentId`)
|
||||||
|
SELECT 'Godispåsar', c2.id FROM `Category` c1
|
||||||
|
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Godis'
|
||||||
|
WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL;
|
||||||
|
|
||||||
-- ── NIVÅ 3: under Glass > Choklad ───────────────────────────
|
-- ── NIVÅ 3: under Glass > Choklad ───────────────────────────
|
||||||
INSERT INTO `Category` (`name`, `parentId`)
|
INSERT INTO `Category` (`name`, `parentId`)
|
||||||
@@ -325,7 +347,11 @@ INSERT INTO `Category` (`name`, `parentId`) SELECT 'Färsk fågel', c2.id FROM
|
|||||||
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Fryst fågel', c2.id FROM `Category` c1
|
INSERT INTO `Category` (`name`, `parentId`) SELECT 'Fryst fågel', c2.id FROM `Category` c1
|
||||||
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Fågel'
|
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Fågel'
|
||||||
WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL;
|
WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL;
|
||||||
|
-- ── NIVÅ 3: under Kött, chark & fågel > Delikatesschark ──────────
|
||||||
|
INSERT INTO `Category` (`name`, `parentId`)
|
||||||
|
SELECT 'Delikatesser', c2.id FROM `Category` c1
|
||||||
|
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Delikatesschark'
|
||||||
|
WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL;
|
||||||
-- ── NIVÅ 3: under Mejeri, ost & ägg > Ost ───────────────────
|
-- ── NIVÅ 3: under Mejeri, ost & ägg > Ost ───────────────────
|
||||||
INSERT INTO `Category` (`name`, `parentId`)
|
INSERT INTO `Category` (`name`, `parentId`)
|
||||||
SELECT 'Färskost', c2.id FROM `Category` c1
|
SELECT 'Färskost', c2.id FROM `Category` c1
|
||||||
@@ -339,6 +365,10 @@ INSERT INTO `Category` (`name`, `parentId`)
|
|||||||
SELECT 'Matlagningsost', c2.id FROM `Category` c1
|
SELECT 'Matlagningsost', c2.id FROM `Category` c1
|
||||||
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Ost'
|
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Ost'
|
||||||
WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
|
WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
|
||||||
|
INSERT INTO `Category` (`name`, `parentId`)
|
||||||
|
SELECT 'Hårdost lagrad', c2.id FROM `Category` c1
|
||||||
|
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Ost'
|
||||||
|
WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
|
||||||
|
|
||||||
-- ── NIVÅ 3: under Mejeri, ost & ägg > Mjölk ─────────────────
|
-- ── NIVÅ 3: under Mejeri, ost & ägg > Mjölk ─────────────────
|
||||||
INSERT INTO `Category` (`name`, `parentId`)
|
INSERT INTO `Category` (`name`, `parentId`)
|
||||||
@@ -496,6 +526,12 @@ INSERT INTO `Category` (`name`, `parentId`)
|
|||||||
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bakning'
|
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bakning'
|
||||||
WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;
|
WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;
|
||||||
|
|
||||||
|
-- ── NIVÅ 3: under Skafferi > Sylt, mos & marmelad ──────────────
|
||||||
|
INSERT INTO `Category` (`name`, `parentId`)
|
||||||
|
SELECT 'Marmelad', c2.id FROM `Category` c1
|
||||||
|
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Sylt, mos & marmelad'
|
||||||
|
WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;
|
||||||
|
|
||||||
-- ── NIVÅ 3: under Fisk & Skaldjur > Fisk ────────────────────
|
-- ── NIVÅ 3: under Fisk & Skaldjur > Fisk ────────────────────
|
||||||
INSERT INTO `Category` (`name`, `parentId`)
|
INSERT INTO `Category` (`name`, `parentId`)
|
||||||
SELECT 'Fryst fisk', c2.id FROM `Category` c1
|
SELECT 'Fryst fisk', c2.id FROM `Category` c1
|
||||||
|
|||||||
Reference in New Issue
Block a user