| All Verbs | /MissionBulkStart/ |
|---|
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 Position:
id: int = 0
key: Optional[str] = None
pixel: int = 0
width: int = 0
area_i_d: int = 0
area_label: Optional[str] = None
label: Optional[str] = None
stockroom_i_d: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TraceabilityMissionDetail:
id_mission_detail: int = 0
prepared_quantity: float = 0.0
batch: Optional[str] = None
container_i_d: int = 0
container_name: Optional[str] = None
container_size_x_cm: float = 0.0
container_size_y_cm: float = 0.0
container_size_z_cm: float = 0.0
container_weight: float = 0.0
stockroom_i_d: int = 0
stockroom_name: Optional[str] = None
operator: Optional[str] = None
version_selected: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TraceabilityMissionDetailPacking:
id_mission_detail: int = 0
prepared_quantity: float = 0.0
batch: Optional[str] = None
container_i_d: int = 0
container_name: Optional[str] = None
container_size_x_cm: float = 0.0
container_size_y_cm: float = 0.0
container_size_z_cm: float = 0.0
container_weight: float = 0.0
stockroom_i_d: int = 0
stockroom_name: Optional[str] = None
operator: Optional[str] = None
version_selected: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Container:
container_i_d: int = 0
container_code: Optional[str] = None
location: Optional[str] = None
dimension_x: Optional[Object] = None
dimension_y: Optional[Object] = None
dimension_z: Optional[Object] = None
deleted: bool = False
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StockAdditional:
stock_i_d: int = 0
gtin: Optional[str] = None
stock_location: Optional[str] = None
physical_quantity_stock_location: float = 0.0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Stock:
stock_i_d: int = 0
product_i_d: Optional[str] = None
product_attribute_i_d: Optional[str] = None
reference: Optional[str] = None
gtin: Optional[str] = None
gtin_attribute: Optional[str] = None
label: Optional[str] = None
stock_location: Optional[str] = None
physical_quantity_stock_location: float = 0.0
reserve_stock_location: Optional[str] = None
physical_quantity_reserve_stock_location: float = 0.0
nb_s_k_u_in_package: Optional[int] = None
package_reference: Optional[str] = None
nb_s_k_u_in_package2: Optional[int] = None
package_reference2: Optional[str] = None
weight: Optional[str] = None
fill_in_batch_number: bool = False
fill_in_date: bool = False
picture_u_r_l: Optional[str] = None
stock_additionals: List[StockAdditional] = field(default_factory=list)
search_key: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MissionDetailComment:
id: int = 0
mission_detail_i_d: int = 0
comment: Optional[str] = None
timestamp: Optional[datetime.datetime] = None
operator: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MissionDetail:
id: int = 0
mission_i_d: int = 0
label: Optional[str] = None
reference: Optional[str] = None
quantity: Optional[float] = None
prepared_quantity: Optional[float] = None
packed_quantity: float = 0.0
positions: List[Position] = field(default_factory=list)
tray: Optional[str] = None
stock_location: Optional[str] = None
line_number: Optional[int] = None
info: Optional[str] = None
gtin: Optional[str] = None
supplier_reference: Optional[str] = None
picking_index: int = 0
traceability_details: List[TraceabilityMissionDetail] = field(default_factory=list)
traceability_details_packing: List[TraceabilityMissionDetailPacking] = field(default_factory=list)
substitutable: Optional[bool] = None
substitution_ref: Optional[str] = None
traceability_batch: Optional[str] = None
data1: Optional[str] = None
data2: Optional[str] = None
data3: Optional[str] = None
data4: Optional[str] = None
data5: Optional[str] = None
data6: Optional[str] = None
data7: Optional[str] = None
data8: Optional[str] = None
data9: Optional[str] = None
data10: Optional[str] = None
data11: Optional[str] = None
data12: Optional[str] = None
package_reference: Optional[str] = None
nb_s_k_u_in_package: Optional[int] = None
package_reference2: Optional[str] = None
nb_s_k_u_in_package2: Optional[int] = None
container_i_d: Optional[int] = None
container: Optional[Container] = None
weight_per_item_in_kg: Optional[float] = None
volume_per_item_in_m3: Optional[float] = None
picture_u_r_l: Optional[str] = None
stock: Optional[Stock] = None
quantity_unit: Optional[str] = None
comments: Optional[MissionDetailComment] = None
shortage_quantity: Optional[float] = None
item_preparation_date: Optional[datetime.datetime] = None
creation_date_time: Optional[datetime.datetime] = None
quantity_dispatched: Optional[int] = None
versions: List[str] = field(default_factory=list)
quantity_breakage: int = 0
is_product_critical: Optional[bool] = None
owner: Optional[str] = None
stockroom_i_d: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Work:
work_i_d: int = 0
mission_i_d: int = 0
owner: Optional[str] = None
duration: Optional[datetime.timedelta] = None
date_begin: Optional[datetime.datetime] = None
date_end: Optional[datetime.datetime] = None
class MissionState(str, Enum):
NEW = 'New'
PICKING_STARTED = 'PickingStarted'
PICKING_FINISHED = 'PickingFinished'
PICKING_MANUALLY_VALIDATED = 'PickingManuallyValidated'
RAMASSE_FINISHED = 'RamasseFinished'
PACKING_FINISHED = 'PackingFinished'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ShippingDetails:
mission_i_d: int = 0
shipping_weight: float = 0.0
shipping_height: float = 0.0
shipping_lenght: float = 0.0
shipping_width: float = 0.0
shipping_company: Optional[str] = None
shipping_lastname: Optional[str] = None
shipping_firstname: Optional[str] = None
shipping_address1: Optional[str] = None
shipping_address2: Optional[str] = None
shipping_address3: Optional[str] = None
shipping_postcode: Optional[str] = None
shipping_country: Optional[str] = None
shipping_city: Optional[str] = None
shipping_other: Optional[str] = None
shipping_phone: Optional[str] = None
shipping_mobile_phone: Optional[str] = None
shipping_mail: Optional[str] = None
carrier_name: Optional[str] = None
carrier_product_code: Optional[str] = None
carrier_tracking_number: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Mission:
id: int = 0
name: Optional[str] = None
info: Optional[str] = None
delete_when_complete: Optional[bool] = None
date_begin: Optional[datetime.datetime] = None
date_end: Optional[datetime.datetime] = None
owner: Optional[str] = None
finder_key: Optional[str] = None
details: List[MissionDetail] = field(default_factory=list)
containers: List[Container] = field(default_factory=list)
works: List[Work] = field(default_factory=list)
type: Optional[str] = None
trolley: Optional[str] = None
printer: Optional[str] = None
cancelled: Optional[bool] = None
blocked: Optional[bool] = None
mission_modification: Optional[str] = None
carrier: Optional[str] = None
batch_id: Optional[str] = None
state: Optional[MissionState] = None
related_containers_from_other_missions: List[Container] = field(default_factory=list)
total_quantity: float = 0.0
total_quantity_prepared: float = 0.0
total_quantity_dispatched: float = 0.0
total_quantity_packed: float = 0.0
generic_data1: Optional[str] = None
generic_data2: Optional[str] = None
generic_data3: Optional[str] = None
message: Optional[str] = None
transport_label_printed: Optional[bool] = None
output_file_generated: Optional[bool] = None
shipping_details: Optional[ShippingDetails] = None
connector_origin: Optional[str] = None
dispatch_anomaly_temp_tray: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MissionBulkStart:
# @ApiMember(Description="Missions list", IsRequired=true)
missions: List[Mission] = field(default_factory=list)
"""
Missions list
"""
# @ApiMember(Description="Mission owner", IsRequired=true)
owner: Optional[str] = None
"""
Mission owner
"""
# @ApiMember(Description="Optional: name of the stockroom where are located the position")
stockroom_name: Optional[str] = None
"""
Optional: name of the stockroom where are located the position
"""
# @ApiMember(Description="Reference of the target printer")
printer: Optional[str] = None
"""
Reference of the target printer
"""
# @ApiMember(Description="Assigne a batch or not")
assign_a_batch: bool = False
"""
Assigne a batch or not
"""
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /MissionBulkStart/ HTTP/1.1
Host: clouddemo.pickeos.com
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"Missions":[{"ID":0,"Name":"String","Info":"String","DeleteWhenComplete":false,"DateBegin":"\/Date(-62135596800000-0000)\/","DateEnd":"\/Date(-62135596800000-0000)\/","Owner":"String","FinderKey":"String","Details":[{"ID":0,"MissionID":0,"Label":"String","Reference":"String","Quantity":0,"PreparedQuantity":0,"PackedQuantity":0,"Positions":[{"ID":0,"Key":"String","Pixel":0,"Width":0,"AreaID":0,"AreaLabel":"String","Label":"String","StockroomID":0}],"Tray":"String","StockLocation":"String","LineNumber":0,"Info":"String","GTIN":"String","SupplierReference":"String","PickingIndex":0,"TraceabilityDetails":[{"IDMissionDetail":0,"PreparedQuantity":0,"Batch":"String","ContainerID":0,"ContainerName":"String","ContainerSizeXCm":0,"ContainerSizeYCm":0,"ContainerSizeZCm":0,"ContainerWeight":0,"StockroomID":0,"StockroomName":"String","Operator":"String","VersionSelected":"String"}],"TraceabilityDetailsPacking":[{"IDMissionDetail":0,"PreparedQuantity":0,"Batch":"String","ContainerID":0,"ContainerName":"String","ContainerSizeXCm":0,"ContainerSizeYCm":0,"ContainerSizeZCm":0,"ContainerWeight":0,"StockroomID":0,"StockroomName":"String","Operator":"String","VersionSelected":"String"}],"Substitutable":false,"SubstitutionRef":"String","TraceabilityBatch":"String","Data1":"String","Data2":"String","Data3":"String","Data4":"String","Data5":"String","Data6":"String","Data7":"String","Data8":"String","Data9":"String","Data10":"String","Data11":"String","Data12":"String","PackageReference":"String","NbSKUInPackage":0,"PackageReference2":"String","NbSKUInPackage2":0,"ContainerID":0,"Container":{"ContainerID":0,"ContainerCode":"String","Location":"String","DimensionX":{},"DimensionY":{},"DimensionZ":{},"Deleted":false},"WeightPerItemInKg":0,"VolumePerItemInM3":0,"PictureURL":"String","Stock":{"StockID":0,"ProductID":"String","ProductAttributeID":"String","Reference":"String","Gtin":"String","GtinAttribute":"String","Label":"String","StockLocation":"String","PhysicalQuantityStockLocation":0,"ReserveStockLocation":"String","PhysicalQuantityReserveStockLocation":0,"NbSKUInPackage":0,"PackageReference":"String","NbSKUInPackage2":0,"PackageReference2":"String","Weight":"String","FillInBatchNumber":false,"FillInDate":false,"PictureURL":"String","StockAdditionals":[{"StockID":0,"Gtin":"String","StockLocation":"String","PhysicalQuantityStockLocation":0}],"SearchKey":"String-String-String-String-String"},"QuantityUnit":"String","Comments":{"ID":0,"MissionDetailID":0,"Comment":"String","Timestamp":"\/Date(-62135596800000-0000)\/","Operator":"String"},"ShortageQuantity":0,"ItemPreparationDate":"\/Date(-62135596800000-0000)\/","CreationDateTime":"\/Date(-62135596800000-0000)\/","QuantityDispatched":0,"Versions":["String"],"QuantityBreakage":0,"IsProductCritical":false,"Owner":"String","StockroomID":0}],"Containers":[{"ContainerID":0,"ContainerCode":"String","Location":"String","DimensionX":{},"DimensionY":{},"DimensionZ":{},"Deleted":false}],"Works":[{"WorkID":0,"MissionID":0,"Owner":"String","Duration":"PT0S","DateBegin":"\/Date(-62135596800000-0000)\/","DateEnd":"\/Date(-62135596800000-0000)\/"}],"Type":"String","Trolley":"String","Printer":"String","Cancelled":false,"Blocked":false,"MissionModification":"String","Carrier":"String","BatchId":"String","State":"New","RelatedContainersFromOtherMissions":[{"ContainerID":0,"ContainerCode":"String","Location":"String","DimensionX":{},"DimensionY":{},"DimensionZ":{},"Deleted":false}],"TotalQuantity":0,"TotalQuantityPrepared":0,"TotalQuantityDispatched":0,"TotalQuantityPacked":0,"GenericData1":"String","GenericData2":"String","GenericData3":"String","Message":"String","TransportLabelPrinted":false,"OutputFileGenerated":false,"ShippingDetails":{"MissionID":0,"ShippingWeight":0,"ShippingHeight":0,"ShippingLenght":0,"ShippingWidth":0,"ShippingCompany":"String","ShippingLastname":"String","ShippingFirstname":"String","ShippingAddress1":"String","ShippingAddress2":"String","ShippingAddress3":"String","ShippingPostcode":"String","ShippingCountry":"String","ShippingCity":"String","ShippingOther":"String","ShippingPhone":"String","ShippingMobilePhone":"String","ShippingMail":"String","CarrierName":"String","CarrierProductCode":"String","CarrierTrackingNumber":"String"},"ConnectorOrigin":"String","DispatchAnomalyTempTray":"String"}],"Owner":"String","StockroomName":"String","Printer":"String","AssignABatch":false}