pohoda_create_prijemka
Create receiving documents in POHODA accounting software by specifying date, partner details, and item information for inventory management.
Instructions
Create a receiving document (příjemka) in POHODA
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Document date (DD.MM.YYYY or YYYY-MM-DD) | |
| text | No | Document text | |
| note | No | Note | |
| partnerName | No | ||
| partnerStreet | No | ||
| partnerCity | No | ||
| partnerZip | No | ||
| partnerIco | No | ||
| items | No | Line items |
Implementation Reference
- src/tools/warehouse.ts:73-130 (handler)The `buildWarehouseCreateTool` function is a generic factory for creating Pohoda documents, which handles the logic for creating a 'prijemka' when called.
function buildWarehouseCreateTool( server: McpServer, client: PohodaClient, toolName: string, description: string, ns: string, prefix: string, docTag: string, headerTag: string, detailTag: string, itemTag: string, ) { server.tool( toolName, description, { date: z.string().describe("Document date (DD.MM.YYYY or YYYY-MM-DD)"), text: z.string().optional().describe("Document text"), note: z.string().optional().describe("Note"), ...partnerFields, items: z.array(itemSchema).optional().describe("Line items"), }, async (params) => { try { const xml = buildImportDoc({ ico: client.ico }, (item) => { const doc = item.ele(ns, `${prefix}:${docTag}`).att("version", "2.0"); const hdr = doc.ele(ns, `${prefix}:${headerTag}`); hdr.ele(ns, `${prefix}:date`).txt(toIsoDate(params.date)); if (params.text) hdr.ele(ns, `${prefix}:text`).txt(params.text); addPartner(hdr, prefix, ns, params); if (params.note) hdr.ele(ns, `${prefix}:note`).txt(params.note); if (params.items?.length) { const det = doc.ele(ns, `${prefix}:${detailTag}`); for (const i of params.items) { const li = det.ele(ns, `${prefix}:${itemTag}`); li.ele(ns, `${prefix}:text`).txt(i.text); li.ele(ns, `${prefix}:quantity`).txt(String(i.quantity)); if (i.unit) li.ele(ns, `${prefix}:unit`).txt(i.unit); if (i.rateVAT) li.ele(ns, `${prefix}:rateVAT`).txt(i.rateVAT); li.ele(ns, `${prefix}:homeCurrency`).ele(NS.typ, "typ:unitPrice").txt(String(i.unitPrice)); if (i.stockCode) { li.ele(ns, `${prefix}:stockItem`).ele(NS.typ, "typ:stockItem").ele(NS.typ, "typ:ids").txt(i.stockCode); } } } }); const resp = parseResponse(await client.sendXml(xml)); const result = extractImportResult(resp); return result.success ? ok(`Document created. ${result.message}${result.producedId ? ` ID: ${result.producedId}` : ""}`) : err(`Failed: ${result.message}`); } catch (e) { return err((e as Error).message); } }, ); } - src/tools/warehouse.ts:134-134 (registration)The tool `pohoda_create_prijemka` is registered by calling `buildWarehouseCreateTool` in `registerWarehouseTools`.
buildWarehouseCreateTool(server, client, "pohoda_create_prijemka", "Create a receiving document (příjemka) in POHODA", NS.pri, "pri", "prijemka", "prijemkaHeader", "prijemkaDetail", "prijemkaItem");