Skip to main content
Glama
hlebtkachenko

POHODA MCP Server

pohoda_create_prodejka

Generate sales documents in POHODA accounting software by specifying date, partner details, and line items with quantities and prices.

Instructions

Create a sales document (prodejka) in POHODA

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYesDocument date (DD.MM.YYYY or YYYY-MM-DD)
textNoDocument text
noteNoNote
partnerNameNo
partnerStreetNo
partnerCityNo
partnerZipNo
partnerIcoNo
itemsNoLine items

Implementation Reference

  • The tool "pohoda_create_prodejka" is registered by calling buildWarehouseCreateTool in registerWarehouseTools.
    buildWarehouseCreateTool(server, client, "pohoda_create_prodejka", "Create a sales document (prodejka) in POHODA", NS.pro, "pro", "prodejka", "prodejkaHeader", "prodejkaDetail", "prodejkaItem");
  • The handler logic for creating a document, used by "pohoda_create_prodejka" via buildWarehouseCreateTool.
      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);
        }
      },
    );
  • The input schema for creating a document, used by "pohoda_create_prodejka".
    {
      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"),
    },

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hlebtkachenko/pohoda-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server