diff --git a/src/defaultSkills/process-incoming-product-and-invoices.SKILL b/src/defaultSkills/process-incoming-product-and-invoices.SKILL index 5c20992..ca683d8 100644 --- a/src/defaultSkills/process-incoming-product-and-invoices.SKILL +++ b/src/defaultSkills/process-incoming-product-and-invoices.SKILL @@ -2,4 +2,25 @@ Process Incoming Product and Invoices: use draft_delivery_manifest tool to store # Overview -use draft_delivery_manifest tool to store parsed invoice \ No newline at end of file +first task a subagent to find "lieferant_id using GET /supplier" using information in the data. + +then task a subagent to find existing links with articles using "`POST /supplier/{id}/articles` Params: `id: int, body?: { skus?: str[] }`" with all the SKUs of that supplieer we have in the data. +use the existing linked data to besser match vpe + +finally call draft_delivery_manifest + +- manifestType: "rechnung" or "lieferschein". For "lieferschein", prices and taxes must be null. +- Exclude non-product lines (shipping, handling, etc.). +- Line items: Count, vpe (default: 1), liefArtNr, mwst (7 or 19), and eknetto per Item(euro cents). +- Match supplier against . For unknown suppliers, extract lieferantName and set lieferant_id to null. +- Write notes strictly in German. + +VPE (Verpackungseinheit) Logic: +VPE represents the number of individually sellable units inside a bulk item as sold by the store. If not explicitly split for individual sale, default to 1. +- "20 Boxen á 10 Stück" -> VPE = 20. +- "10 Gläser á 100 Filter" -> VPE = 10 (we sell the 10 glasses individually). +- "100 Stück" -> VPE = 1 (sold as one bulk pack). +- We don't sell the individual filters or Pieces, but typical VPEs like Beutel, Glässer, Boxen, Hefte +- That means that in "Y Hefte á X Blatt" the VPE is NOT X but: Y +- a so called "Display" also means VPE. So "20er Display" means VPE = 20 +- eknetto is the price of one full vpe