From 0e789a10de84a74ec6ca54c76497ec25161a0e7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Kr=C3=A1l?= Date: Thu, 12 Nov 2026 16:04:20 +0100 Subject: [PATCH] docs(readme): explain how to save document items and debug requests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Document items cannot be imported directly: FlexiBee answers a direct import into faktura-vydana/{id}/polozkyDokladu with "Import není povolen" (importStatus NOT_DIRECT). The README now shows saving items nested in the parent document, the polozkyDokladu@removeAll switch and what the debug mode and exceptions reveal about a failed request. Closes #38 --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index 1170ffc..b885e65 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,27 @@ $evidenceItemId = $client->save($evidenceData, null, $dryRun, $uriParameters); Pokud vše proběhne v pořádku, vratí se třída `\EcomailFlexibee\Http\Response\Response:class` s daty ze systému Flexibee. Nastane-li chyba, vyhodí se výjimka `EcomailFlexibeeRequestFail::class`. Pro editaci záznamu stačí vyplnit druhý parametr `$id`. +## Položky dokladu (faktury, objednávky, …) +Položky dokladu (`polozkyDokladu`) nejde ukládat samostatně. Přímý import, např. přes evidenci `faktura-vydana/123/polozkyDokladu`, FlexiBee odmítne hláškou *Import není povolen* (`EcomailFlexibeeRequestFail`). Položky se ukládají vždy přes nadřazený doklad: +``` +$client = new Client(new Config('https://demo.flexibee.eu', 'demo', 'winstrom', 'winstrom', 'faktura-vydana', false, null)); + +$client->save([ + 'polozkyDokladu' => [ + [/* pole nové položky */], + ['id' => 14, /* změněná pole existující položky */], + ], +], $invoiceId); +``` +Pokud mají na dokladu zůstat jen uvedené položky a ostatní se mají smazat, přidejte `'polozkyDokladu@removeAll' => 'true'`. Název kolekce `polozkyDokladu` platí pro všechny typy dokladů. Špatný název FlexiBee tiše ignoruje. + +Dostupná pole položky vrátí `getPropertiesForEvidence()` na klientovi pro evidenci položek (např. `faktura-vydana-polozka`). + +Dokumentace FlexiBee: [Import evidencí přes API](https://podpora.flexibee.eu/cs/articles/3421990-import-evidenci-pres-api), [Výmaz zanořené evidence](https://podpora.flexibee.eu/cs/articles/3852838-vymazani-zanorene-evidence-prostrednictvim-json-formatu). + +## Ladění požadavků +S `$debugMode = true` v `Config` obsahuje výjimka `EcomailFlexibeeForbidden` (HTTP 403) odeslané hlavičky požadavku. U ostatních chyb obsahuje výjimka `EcomailFlexibeeRequestFail` chybovou hlášku z FlexiBee (kód, atribut, cestu a text chyby). Odeslaná data požadavku jsou pole předané do `save()` zabalené do `{"winstrom": {"": ...}}`. + ## Vrácení záznamu dle parametrů Nalezení záznamu dle id s vyhozením výjimky, pokud záznam neexistuje ```