| GET | /deliveryNote/{brand} | Get a list of Delivery Notes |
|---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Amount2:
# @ApiMember(Description="Currency ISO Code e.g. EUR, USD", IsRequired=true)
currency_iso_code: Optional[str] = None
"""
Currency ISO Code e.g. EUR, USD
"""
# @ApiMember(Description="Cost", IsRequired=true)
value: float = 0.0
"""
Cost
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DeliveryNoteItem:
# @ApiMember(Description="Line number of Delivery note document e.g. 10, 90, 10000", IsRequired=true)
delivery_notes_line_number: int = 0
"""
Line number of Delivery note document e.g. 10, 90, 10000
"""
# @ApiMember(Description="Status e.g. I, P", IsRequired=true)
status: Optional[str] = None
"""
Status e.g. I, P
"""
# @ApiMember(Description="Article code of product e.g. CRWGSA0032", IsRequired=true)
article_code: Optional[str] = None
"""
Article code of product e.g. CRWGSA0032
"""
# @ApiMember(Description="Article description of product")
article_description: Optional[str] = None
"""
Article description of product
"""
# @ApiMember(Description="Article code of product for straps e.g. CRKD12346879")
speaking_article_code: Optional[str] = None
"""
Article code of product for straps e.g. CRKD12346879
"""
# @ApiMember(Description="Serial numbers of products")
serial_numbers: Optional[List[str]] = None
"""
Serial numbers of products
"""
# @ApiMember(Description="ERP ID of purchase order which delivery note attached to e.g. 200232323", IsRequired=true)
erp_order_number: int = 0
"""
ERP ID of purchase order which delivery note attached to e.g. 200232323
"""
# @ApiMember(Description="Date of purchase order which delivery note attached to e.g. '2023-01-01'", IsRequired=true)
erp_order_date: datetime.datetime = datetime.datetime(1, 1, 1)
"""
Date of purchase order which delivery note attached to e.g. '2023-01-01'
"""
# @ApiMember(Description="Line number of purchase order which delivery note attached to e.g. '2023-01-01'", IsRequired=true)
erp_order_line_number: int = 0
"""
Line number of purchase order which delivery note attached to e.g. '2023-01-01'
"""
# @ApiMember(Description="Customer reference of order")
customer_reference: Optional[str] = None
"""
Customer reference of order
"""
# @ApiMember(Description="Carrier name")
carrier: Optional[str] = None
"""
Carrier name
"""
# @ApiMember(Description="Tracking number")
tracking_number: Optional[str] = None
"""
Tracking number
"""
# @ApiMember(Description="Tracking URL")
tracking_url: Optional[str] = None
"""
Tracking URL
"""
# @ApiMember(Description="Flag that shows the order is sellable or not", IsRequired=true)
is_sellable: bool = False
"""
Flag that shows the order is sellable or not
"""
# @ApiMember(Description="Flag that shows the order is consignment or not", IsRequired=true)
is_consignment: bool = False
"""
Flag that shows the order is consignment or not
"""
# @ApiMember(Description="Flag that shows the order is Automatic Replenishment or not", IsRequired=true)
is_automatic_replenishment: Optional[bool] = None
"""
Flag that shows the order is Automatic Replenishment or not
"""
# @ApiMember(Description="Order reason code", IsRequired=true)
order_reason_code: Optional[str] = None
"""
Order reason code
"""
# @ApiMember(Description="Original quantity of item")
consignment_due_date: Optional[datetime.datetime] = None
"""
Original quantity of item
"""
# @ApiMember(Description="Quantity of item", IsRequired=true)
quantity: int = 0
"""
Quantity of item
"""
# @ApiMember(Description="Price of item", IsRequired=true)
unit_amount: Optional[Amount2] = None
"""
Price of item
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DeliveryNote:
# @ApiMember(Description="ID of ERP system e.g. ES100", IsRequired=true)
erp_system_id: Optional[str] = None
"""
ID of ERP system e.g. ES100
"""
# @ApiMember(Description="POS Legacy e.g. ES100:102048", IsRequired=true)
pos_code: Optional[str] = None
"""
POS Legacy e.g. ES100:102048
"""
# @ApiMember(Description="ShipTo POS Legacy e.g. ES100:102048", IsRequired=true)
ship_to_pos_code: Optional[str] = None
"""
ShipTo POS Legacy e.g. ES100:102048
"""
# @ApiMember(Description="ID of Delivery note document e.g. 7032150324", IsRequired=true)
delivery_notes_number: int = 0
"""
ID of Delivery note document e.g. 7032150324
"""
# @ApiMember(Description="Date of Delivery note document e.g. '2023-01-01'", IsRequired=true)
delivery_notes_date: datetime.datetime = datetime.datetime(1, 1, 1)
"""
Date of Delivery note document e.g. '2023-01-01'
"""
# @ApiMember(Description="Delivery note items", IsRequired=true)
delivery_note_items: Optional[List[DeliveryNoteItem]] = None
"""
Delivery note items
"""
# @ApiMember(Description="ID of IC Delivery note document e.g. 7032150324", IsRequired=true)
ic_delivery_notes_number: Optional[int] = None
"""
ID of IC Delivery note document e.g. 7032150324
"""
# @ApiMember(Description="Date of IC Delivery note document e.g. '2023-01-01'", IsRequired=true)
ic_delivery_notes_date: Optional[datetime.datetime] = None
"""
Date of IC Delivery note document e.g. '2023-01-01'
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetDeliveryNotePaginatedResponse:
# @ApiMember(Description="Total Pages", IsRequired=true)
total_pages: int = 0
"""
Total Pages
"""
# @ApiMember(Description="Total Results", IsRequired=true)
total_results: int = 0
"""
Total Results
"""
# @ApiMember(Description="Index of the result set returned", IsRequired=true)
page: int = 0
"""
Index of the result set returned
"""
# @ApiMember(Description="Size of the result set returned", IsRequired=true)
items: int = 0
"""
Size of the result set returned
"""
# @ApiMember(Description="List of delivery notes", IsRequired=true)
elements: Optional[List[DeliveryNote]] = None
"""
List of delivery notes
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetDeliveryNotePaginated(IPagedRequest):
# @ApiMember(Description="Brand Trigram, e.g. CAR, IWC", IsRequired=true)
brand: Optional[str] = None
"""
Brand Trigram, e.g. CAR, IWC
"""
# @ApiMember(Description="POS Legacy Codes, e.g. ES100:102048", IsRequired=true)
pos_codes: Optional[List[str]] = None
"""
POS Legacy Codes, e.g. ES100:102048
"""
# @ApiMember(Description="Delivery notes date to")
date_to: Optional[datetime.datetime] = None
"""
Delivery notes date to
"""
# @ApiMember(Description="Delivery notes date from")
date_from: Optional[datetime.datetime] = None
"""
Delivery notes date from
"""
# @ApiMember(Description="Status possible values: 'I' for pending delivery notes, 'P' for accepted ones")
status: Optional[List[str]] = None
"""
Status possible values: 'I' for pending delivery notes, 'P' for accepted ones
"""
# @ApiMember(Description="Provide value 'true' for getting only consignment delivery notes")
only_consignment: Optional[bool] = None
"""
Provide value 'true' for getting only consignment delivery notes
"""
# @ApiMember(Description="Order type filter: “autorep“ for getting only delivery notes linked to an automatic replenishment trigger. It means the reason codes Auto Repl Standard (Z22) and Auto Repl Consignment (Z89) ; “manual“ for getting only delivery notes linked to a manual replenishment trigger. It means all the other reason codes.")
order_type: Optional[str] = None
"""
Order type filter: “autorep“ for getting only delivery notes linked to an automatic replenishment trigger. It means the reason codes Auto Repl Standard (Z22) and Auto Repl Consignment (Z89) ; “manual“ for getting only delivery notes linked to a manual replenishment trigger. It means all the other reason codes.
"""
# @ApiMember(Description="Stock type filter: “consigned“ for consigned products only ; “asset“ for standard products only ; empty for both consignment & asset")
stock_type: Optional[str] = None
"""
Stock type filter: “consigned“ for consigned products only ; “asset“ for standard products only ; empty for both consignment & asset
"""
# @ApiMember(Description="Richemont Reference Code of the item")
article_code: Optional[str] = None
"""
Richemont Reference Code of the item
"""
# @ApiMember(Description="Serial Number of the item")
serial_number: Optional[str] = None
"""
Serial Number of the item
"""
# @ApiMember(Description="Delivery notes number for getting specific delivery, e.g. 7032150324")
delivery_notes_number: Optional[int] = None
"""
Delivery notes number for getting specific delivery, e.g. 7032150324
"""
# @ApiMember(Description="IC Delivery notes number for getting specific delivery, e.g. 7032150324")
ic_delivery_notes_number: Optional[int] = None
"""
IC Delivery notes number for getting specific delivery, e.g. 7032150324
"""
# @ApiMember(Description="Purchase order number for getting specific deliveries by order number, e.g 207285022")
erp_order_number: Optional[int] = None
"""
Purchase order number for getting specific deliveries by order number, e.g 207285022
"""
# @ApiMember(Description="Index of the result set returned")
page: int = 0
"""
Index of the result set returned
"""
# @ApiMember(Description="Size of the result set returned")
items: int = 0
"""
Size of the result set returned
"""
# @ApiMember(Description="Omit precise record count - save on performance")
no_count: bool = False
"""
Omit precise record count - save on performance
"""
# @ApiMember(Description="Values can be 'DateDESC', 'DateASC', 'PosASC', 'PosDESC'")
sort_by: Optional[str] = None
"""
Values can be 'DateDESC', 'DateASC', 'PosASC', 'PosDESC'
"""
Python GetDeliveryNotePaginated DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /deliveryNote/{brand} HTTP/1.1
Host: dev-api-booster.richemont.com
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
totalPages: 0,
totalResults: 0,
page: 0,
items: 0
}