pohoda_list_contracts
List and filter contracts from POHODA accounting software by ID, date range, company name, or last changes to retrieve matching contract records.
Instructions
List contracts from POHODA. Supports filtering by ID, date range, company name, or last changes. Returns JSON array of matching contract records.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Filter by contract ID | |
| dateFrom | No | Filter from date (DD.MM.YYYY or YYYY-MM-DD) | |
| dateTill | No | Filter till date (DD.MM.YYYY or YYYY-MM-DD) | |
| companyName | No | Filter by company name | |
| lastChanges | No | Filter by last changes date |
Implementation Reference
- src/tools/contracts.ts:12-48 (handler)The implementation of the `pohoda_list_contracts` tool, including input validation schema and the async handler logic that builds the XML request, sends it to the Pohoda client, and parses the response.
server.tool( "pohoda_list_contracts", "List contracts from POHODA. Supports filtering by ID, date range, company name, or last changes. Returns JSON array of matching contract records.", { id: z.number().optional().describe("Filter by contract ID"), dateFrom: z.string().optional().describe("Filter from date (DD.MM.YYYY or YYYY-MM-DD)"), dateTill: z.string().optional().describe("Filter till date (DD.MM.YYYY or YYYY-MM-DD)"), companyName: z.string().optional().describe("Filter by company name"), lastChanges: z.string().optional().describe("Filter by last changes date"), }, async (params) => { try { const xml = buildExportRequest( { ico: client.ico }, "lst:listContractRequest", NS.lCon, "lst:requestContract", (req) => { const filterParams: ListFilterParams = { id: params.id, dateFrom: params.dateFrom, dateTill: params.dateTill, companyName: params.companyName, lastChanges: params.lastChanges, }; applyFilter(req, filterParams); } ); const response = await client.sendXml(xml); const parsed = parseResponse(response); const data = extractListData(parsed); return jsonResult("Contracts", data, Array.isArray(data) ? data.length : 0); } catch (e) { return err((e as Error).message); } } );