sanmar_sdk.standard.invoices

SanMar’s own invoicing service.

SanMar invoices once a day, after 9 PM Pacific, for everything shipped that day, and suggests waiting a further day before reading invoices. Every lookup comes in two forms: whole invoices, with their lines, and headers only.

Attributes

INVOICE_RANGE_LIMIT

SanMar returns whole invoices for up to three months of invoice dates at a time.

HEADER_RANGE_LIMIT

SanMar returns invoice headers for up to a year of invoice dates at a time.

Classes

Address

A postal address on an invoice.

Party

Who an invoice is sold to, shipped to, or paid to.

InvoiceHeader

The header of one SanMar invoice.

InvoiceLine

One line of a SanMar invoice.

Invoice

One SanMar invoice, with its lines.

InvoiceService

SanMar's own invoicing service.

Module Contents

sanmar_sdk.standard.invoices.INVOICE_RANGE_LIMIT[source]

SanMar returns whole invoices for up to three months of invoice dates at a time.

sanmar_sdk.standard.invoices.HEADER_RANGE_LIMIT[source]

SanMar returns invoice headers for up to a year of invoice dates at a time.

class sanmar_sdk.standard.invoices.Address(/, **data: Any)[source]

Bases: sanmar_sdk.base.Record

A postal address on an invoice.

address1: str | None = None[source]
address2: str | None = None[source]
address3: str | None = None[source]
city: str | None = None[source]
state: str | None = None[source]
postal_code: str | None = None[source]
country: str | None = None[source]
class sanmar_sdk.standard.invoices.Party(/, **data: Any)[source]

Bases: sanmar_sdk.base.Record

Who an invoice is sold to, shipped to, or paid to.

name: str | None = None[source]
address: Address = None[source]
class sanmar_sdk.standard.invoices.InvoiceHeader(/, **data: Any)[source]

Bases: sanmar_sdk.base.Record

The header of one SanMar invoice.

invoice_number: int = None[source]
invoice_date: sanmar_sdk.base.SanMarDate = None[source]
sales_order_number: int | None = None[source]
status: str | None = None[source]

Paid or Unpaid.

is_credit_memo: bool = None[source]
customer_number: int | None = None[source]
po_number: str | None = None[source]
order_date: sanmar_sdk.base.SanMarDate | None = None[source]
due_date: sanmar_sdk.base.SanMarDate | None = None[source]
sold_to: Party | None = None[source]
ship_to: Party | None = None[source]
remit_to: Party | None = None[source]
ship_via: str | None = None[source]
fob: str | None = None[source]

The shipping point, such as SPARKS NV.

terms: str | None = None[source]
department: str | None = None[source]
total_cases: int | None = None[source]
total_weight: int | None = None[source]
subtotal: decimal.Decimal | None = None[source]
sales_tax: decimal.Decimal | None = None[source]
shipping_and_handling: decimal.Decimal | None = None[source]
total: decimal.Decimal | None = None[source]
freight_savings: decimal.Decimal | None = None[source]
class sanmar_sdk.standard.invoices.InvoiceLine(/, **data: Any)[source]

Bases: sanmar_sdk.base.Record

One line of a SanMar invoice.

style: str | None = None[source]
catalog_color: str | None = None[source]

The color as SanMar’s order system records it, which is the catalog (mainframe) color.

size: str | None = None[source]
description: str | None = None[source]
quantity: int = None[source]
unit_price: decimal.Decimal | None = None[source]
amount: decimal.Decimal | None = None[source]
unique_key: str | None = None[source]
class sanmar_sdk.standard.invoices.Invoice(/, **data: Any)[source]

Bases: sanmar_sdk.base.Record

One SanMar invoice, with its lines.

header: InvoiceHeader = None[source]
lines: sanmar_sdk.base.OneOrMany[InvoiceLine] = None[source]
class sanmar_sdk.standard.invoices.InvoiceService(soap: SoapClient, credentials: Credentials)[source]

Bases: sanmar_sdk._soap.Service

SanMar’s own invoicing service.

get(invoice_number: int) → Invoice[source]

Fetch one invoice by its number.

Raises:

NotFoundError – If SanMar has no invoice with that number.

by_purchase_order(po_number: str) → list[Invoice][source]

Fetch the invoices for one purchase order.

SanMar matches at most the first 13 characters of a PO number here.

by_invoice_date(start: datetime.date, end: datetime.date) → list[Invoice][source]

Fetch the invoices dated between two days, inclusive, up to three months apart.

by_order_date(order_date: datetime.date) → list[Invoice][source]

Fetch the invoices for orders placed on one day.

unpaid() → list[Invoice][source]

Fetch every unpaid invoice.

since_last_call() → list[Invoice][source]

Fetch the invoices added since this was last called.

The first call returns the last three months. Each call moves SanMar’s marker, so the invoices it returns are not returned again.

headers_by_purchase_order(po_number: str) → list[InvoiceHeader][source]

Fetch the invoice headers for one purchase order.

headers_by_invoice_date(start: datetime.date, end: datetime.date) → list[InvoiceHeader][source]

Fetch the invoice headers dated between two days, inclusive, up to a year apart.

headers_by_order_date(order_date: datetime.date) → list[InvoiceHeader][source]

Fetch the invoice headers for orders placed on one day.

unpaid_headers() → list[InvoiceHeader][source]

Fetch the headers of every unpaid invoice.