Polozky dokladu se najdou pod obema jmeny
iDoklad ceka v tele `IssuedInvoiceItems`, ale prevod je casto pojmenuje `items` podle toho, jak se jmenuji ve zdrojove objednavce. Kontrola trvala na `items`, telo se ale posilalo tak, jak prislo - prevod s PascalCase jmeny by tedy neprosel kontrolou, a prevod s malymi pismeny by prosel a doklad by v iDokladu vznikl bez radku. Ted se polozky hledaji pod obema jmeny a do tela se doplni pod tim, ktere ceka iDoklad. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
13c0c03ed4
commit
c62902bfb6
@@ -56,7 +56,14 @@ export async function run(inputs, ctx) {
|
||||
const { unwrap, pick, text, num, need } = ctx.util;
|
||||
const payload = inputs.payload;
|
||||
|
||||
const items = Array.isArray(payload.items) ? payload.items : [];
|
||||
/*
|
||||
* Polozky se hledaji pod obema jmeny. iDoklad je v tele ceka jako
|
||||
* `IssuedInvoiceItems`, ale prevod je casto pojmenuje `items` podle toho,
|
||||
* jak se jmenuji ve zdrojove objednavce. Trvat na jednom z nich by znamenalo,
|
||||
* ze prevod projde kontrolou a doklad prijde do iDokladu bez radku.
|
||||
*/
|
||||
const rawItems = pick(payload, 'IssuedInvoiceItems', 'items');
|
||||
const items = Array.isArray(rawItems) ? rawItems : [];
|
||||
if ((inputs.requireItems ?? true) && items.length === 0) {
|
||||
ctx.fail('Tělo dokladu neobsahuje žádné položky. Zkontrolujte pravidla transformace.');
|
||||
}
|
||||
@@ -70,7 +77,12 @@ export async function run(inputs, ctx) {
|
||||
ctx.retry('iDoklad nevrátil předvyplněný vzor faktury.');
|
||||
}
|
||||
|
||||
const body = { ...defaults, ...payload };
|
||||
/*
|
||||
* Vzor nese povinna pole, prevod prepise ta, kterym rozumime. Polozky se
|
||||
* doplni pod jmenem, ktere ceka iDoklad, at uz prisly pojmenovane jakkoliv.
|
||||
*/
|
||||
const body = { ...defaults, ...payload, IssuedInvoiceItems: items };
|
||||
delete body.items;
|
||||
|
||||
const response = await ctx.http.post('/issued-invoices', body);
|
||||
const invoice = unwrap(response.body);
|
||||
|
||||
Reference in New Issue
Block a user