Catalog Variances

This section explains how to work with catalog variances using the Ottimate SDK.

Fetching Catalog Variances

You can retrieve a list of catalog variances for a given company.

1# main.py
2
3variances_response = client.catalog.get_catalog_variances(
4 ottimate_company_id=ottimate_company_id
5)
6
7for variance in variances_response.results:
8 print(f" - Catalog Entry ID: {variance.id}, Invoice Item ID: {variance.last_invoice_item.id}")

Fetching Catalog Variances with Filters

You can filter variances by date range, location, or to show only items with variances.

1# main.py
2
3from datetime import datetime, timedelta
4
5# Filter by date range
6end_date = datetime.now().strftime("%Y-%m-%d")
7start_date = (datetime.now() - timedelta(days=30)).strftime("%Y-%m-%d")
8
9variances_response = client.catalog.get_catalog_variances(
10 ottimate_company_id=ottimate_company_id,
11 invoice_start_date=start_date,
12 invoice_end_date=end_date
13)
14
15# Filter to show only items with variances
16variances_response = client.catalog.get_catalog_variances(
17 ottimate_company_id=ottimate_company_id,
18 variance_only=True
19)
20
21# Filter by location
22variances_response = client.catalog.get_catalog_variances(
23 ottimate_company_id=ottimate_company_id,
24 ottimate_location_ids=str(location_id)
25)

Fetching Invoice Items for a Variance

You can fetch the invoice items associated with a specific catalog variance by its catalog entry ID.

1# main.py
2
3invoice_items = client.catalog.get_catalog_variances_id_invoice_items(
4 id=catalog_entry_id
5)
6print(f"Fetched variance details for catalog entry ID {catalog_entry_id}: {invoice_items.results}")