This commit is contained in:
seb
2026-10-26 19:22:01 +01:00
parent a5a9e51898
commit 69388c789f
23 changed files with 1307 additions and 28 deletions

View File

@@ -290,9 +290,18 @@ export async function importOrders({
const parsedDate = dateStr ? new Date(dateStr) : new Date();
const validDate = !Number.isNaN(parsedDate.getTime()) ? parsedDate.toISOString() : new Date().toISOString();
const orderTotal = Math.round(
lines.reduce(
(sum, l) => sum + (l.amount * l.net * (1 - (l.rebate || 0) / 100) * (1 + (l.taxrate || 0) / 100)),
0
) * 100
) / 100;
const isRetoure = orderTotal < 0;
const domainStore = isRetoure ? store.retoure : store.order;
let createdOrder = null;
try {
createdOrder = await store.order.create(googleAuthId, {
createdOrder = await domainStore.create(googleAuthId, {
number: orderNumber,
externalNumber: cleanValue(m.extnr ?? m.cExterneAuftragsnummer) || null,
date: validDate,
@@ -311,7 +320,7 @@ export async function importOrders({
if (l.sku === offendingSku) l.sku = null;
}
try {
createdOrder = await store.order.create(googleAuthId, {
createdOrder = await domainStore.create(googleAuthId, {
number: orderNumber,
externalNumber: cleanValue(m.extnr ?? m.cExterneAuftragsnummer) || null,
date: validDate,
@@ -322,10 +331,10 @@ export async function importOrders({
existingOrderNumbers.add(orderNumber);
ordersImported++;
} catch (retryErr) {
log.warn(`Failed to create order ${orderNumber} after stripping parent SKU ${offendingSku}:`, retryErr.message);
log.warn(`Failed to create ${isRetoure ? 'retoure' : 'order'} ${orderNumber} after stripping parent SKU ${offendingSku}:`, retryErr.message);
}
} else {
log.warn(`Failed to create order ${orderNumber}:`, err.message);
log.warn(`Failed to create ${isRetoure ? 'retoure' : 'order'} ${orderNumber}:`, err.message);
}
}
@@ -333,29 +342,20 @@ export async function importOrders({
// Handle Payment
const isPayed = String(m.payed ?? '').trim() === '1';
const paymentType = cleanValue(m.paymentType);
if (isPayed && paymentType) {
const orderTotal = Math.round(
lines.reduce(
(sum, l) => sum + (l.amount * l.net * (1 - (l.rebate || 0) / 100) * (1 + (l.taxrate || 0) / 100)),
0
) * 100
) / 100;
if (orderTotal > 0) {
try {
const accountId = await resolveAccountId(paymentType);
if (accountId) {
await store.payment.create(googleAuthId, {
accountId,
manifestId: createdOrder.id,
type: paymentType,
amount: orderTotal,
});
paymentsImported++;
}
} catch (err) {
log.warn(`Failed to create payment for order ${orderNumber}:`, err.message);
if (isPayed && paymentType && orderTotal !== 0) {
try {
const accountId = await resolveAccountId(paymentType);
if (accountId) {
await store.payment.create(googleAuthId, {
accountId,
manifestId: createdOrder.id,
type: paymentType,
amount: orderTotal,
});
paymentsImported++;
}
} catch (err) {
log.warn(`Failed to create payment for ${isRetoure ? 'retoure' : 'order'} ${orderNumber}:`, err.message);
}
}