@flowselections/mailbox-orders 1.0.14 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-lib/integrations/supabase/client.d.ts +100 -0
- package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +100 -0
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +100 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/mailbox.functions.d.ts.map +1 -1
- package/dist-lib/lib/mailbox.functions.js +19 -1
- package/dist-lib/lib/product-name.d.ts +3 -0
- package/dist-lib/lib/product-name.d.ts.map +1 -0
- package/dist-lib/lib/product-name.js +10 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailbox.functions.d.ts","sourceRoot":"","sources":["../../src/lib/mailbox.functions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"mailbox.functions.d.ts","sourceRoot":"","sources":["../../src/lib/mailbox.functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
|
|
|
4
4
|
import { createClient } from "@supabase/supabase-js";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { computeEarliestDelivery } from "../lib/delivery-date";
|
|
7
|
+
import { stripLeadingQuantity } from "../lib/product-name";
|
|
7
8
|
import { emailBodyText, inlineCidImages, normalizeAddressList, normalizeAttachments, sanitizeEmailHtml, stripInvisible, } from "./mailbox-body";
|
|
8
9
|
import { EMPTY_LOAD_CARRIERS, isLoadCarrierAllowed, loadCarrierLabel, normalizeAllowedLoadCarriers, } from "./load-carriers";
|
|
9
10
|
// ─── Actieve mailbox (uit gedeelde e-mail-auth module) ──────────────────────
|
|
@@ -343,10 +344,27 @@ export const approveProposal = createServerFn({ method: "POST" })
|
|
|
343
344
|
}).select("id").single();
|
|
344
345
|
if (orderErr)
|
|
345
346
|
throw new Error(orderErr.message);
|
|
347
|
+
// Productnaam altijd uit de catalogus; alleen zonder koppeling terugvallen
|
|
348
|
+
// op de (opgeschoonde) tekst uit de mail.
|
|
349
|
+
const linkedIds = Array.from(new Set(data.lines.map((l) => l.product_id).filter((v) => !!v)));
|
|
350
|
+
const nameById = new Map();
|
|
351
|
+
if (linkedIds.length > 0) {
|
|
352
|
+
const { data: prodRows } = await supabaseAdmin
|
|
353
|
+
.from("products")
|
|
354
|
+
.select("id, product")
|
|
355
|
+
.in("id", linkedIds);
|
|
356
|
+
for (const p of Array.isArray(prodRows) ? prodRows : []) {
|
|
357
|
+
const n = typeof p?.product === "string" ? p.product.trim() : "";
|
|
358
|
+
if (n)
|
|
359
|
+
nameById.set(String(p.id), n);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
346
362
|
const items = data.lines.map((l) => ({
|
|
347
363
|
order_id: order.id,
|
|
348
364
|
product_id: l.product_id,
|
|
349
|
-
product_name: l.
|
|
365
|
+
product_name: (l.product_id ? nameById.get(l.product_id) : null) ||
|
|
366
|
+
stripLeadingQuantity(l.raw_product_text) ||
|
|
367
|
+
"Onbekend product",
|
|
350
368
|
quantity: Math.max(1, Math.round(l.quantity ?? 1)),
|
|
351
369
|
unit: l.unit ?? "stuks",
|
|
352
370
|
}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-name.d.ts","sourceRoot":"","sources":["../../src/lib/product-name.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAO5E"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Haalt een aantal-prefix ("3x ", "3 x ", "10 stuks ") weg uit ruwe mailtekst. */
|
|
2
|
+
export function stripLeadingQuantity(text) {
|
|
3
|
+
const t = (text ?? "").trim();
|
|
4
|
+
if (!t)
|
|
5
|
+
return "";
|
|
6
|
+
const cleaned = t
|
|
7
|
+
.replace(/^\d+[.,]?\d*\s*(x|st|stk|stuks|stuk|planten|plant|fust|fusten|pcs)?\s*[-:·]?\s*/i, "")
|
|
8
|
+
.trim();
|
|
9
|
+
return cleaned || t;
|
|
10
|
+
}
|