| 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 .jsv suffix or ?format=jsv
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/jsv
Content-Type: text/jsv
Content-Length: length
{
Missions:
[
{
ID: 0,
Name: String,
Info: String,
DeleteWhenComplete: False,
DateBegin: 0001-01-01,
DateEnd: 0001-01-01,
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: 0001-01-01,
Operator: String
},
ShortageQuantity: 0,
ItemPreparationDate: 0001-01-01,
CreationDateTime: 0001-01-01,
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: 0001-01-01,
DateEnd: 0001-01-01
}
],
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
}