da
This commit is contained in:
@@ -52,6 +52,19 @@ function toNumber(value, fallback = 0) {
|
|||||||
return Number.isFinite(n) ? n : fallback;
|
return Number.isFinite(n) ? n : fallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// order.creationDate comes in as "YYYY-MM-DD HH:mm:ss" (no timezone); treat it as
|
||||||
|
// local server time, same as `new Date('YYYY-MM-DDTHH:mm:ss')` would. Falls back to
|
||||||
|
// the server's current time if missing/unparseable.
|
||||||
|
function parseOrderDate(creationDate) {
|
||||||
|
if (creationDate) {
|
||||||
|
const parsed = new Date(String(creationDate).replace(' ', 'T'));
|
||||||
|
if (!Number.isNaN(parsed.getTime())) {
|
||||||
|
return parsed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new Date();
|
||||||
|
}
|
||||||
|
|
||||||
// JTL maps VAT rates to Steuerklassen: 19% => 1 (voller Satz), 7% => 2 (ermäßigt)
|
// JTL maps VAT rates to Steuerklassen: 19% => 1 (voller Satz), 7% => 2 (ermäßigt)
|
||||||
function steuerklasseForVat(vat) {
|
function steuerklasseForVat(vat) {
|
||||||
if (vat >= 15) return 1;
|
if (vat >= 15) return 1;
|
||||||
@@ -435,10 +448,10 @@ export async function createOrder(order) {
|
|||||||
try {
|
try {
|
||||||
const zahlungsartCache = new Map();
|
const zahlungsartCache = new Map();
|
||||||
|
|
||||||
// Always use the server's current time for stored timestamps (dErstellt,
|
// Use the client-supplied order.creationDate for stored timestamps (dErstellt,
|
||||||
// number-sequence date placeholders, payment date) rather than trusting
|
// number-sequence date placeholders, payment date), falling back to the
|
||||||
// the client-supplied order.creationDate.
|
// server's current time if it's missing/unparseable.
|
||||||
const orderDate = new Date();
|
const orderDate = parseOrderDate(order.creationDate);
|
||||||
const { kKunde, kKundengruppe } = await resolveCustomer(transaction, order, defaults);
|
const { kKunde, kKundengruppe } = await resolveCustomer(transaction, order, defaults);
|
||||||
const zahlungsart = await resolveZahlungsart(transaction, order.paymentMethodName, zahlungsartCache);
|
const zahlungsart = await resolveZahlungsart(transaction, order.paymentMethodName, zahlungsartCache);
|
||||||
const cAuftragsNr = await nextOrderNumber(transaction, orderDate);
|
const cAuftragsNr = await nextOrderNumber(transaction, orderDate);
|
||||||
|
|||||||
Reference in New Issue
Block a user