Go-to-Light Service 4.0.0.2397 - 121 - API License to Cloud Demo

<back to all web services

MissionUpdatePackingMissionDetail

Requires Authentication
The following routes are available for this service:
All Verbs/MissionUpdatePackingMissionDetail
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


class Position implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $ID=0,
        /** @var string */
        public string $Key='',
        /** @var int */
        public int $Pixel=0,
        /** @var int */
        public int $Width=0,
        /** @var int */
        public int $AreaID=0,
        /** @var string */
        public string $AreaLabel='',
        /** @var string */
        public string $Label='',
        /** @var int|null */
        public ?int $StockroomID=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ID'])) $this->ID = $o['ID'];
        if (isset($o['Key'])) $this->Key = $o['Key'];
        if (isset($o['Pixel'])) $this->Pixel = $o['Pixel'];
        if (isset($o['Width'])) $this->Width = $o['Width'];
        if (isset($o['AreaID'])) $this->AreaID = $o['AreaID'];
        if (isset($o['AreaLabel'])) $this->AreaLabel = $o['AreaLabel'];
        if (isset($o['Label'])) $this->Label = $o['Label'];
        if (isset($o['StockroomID'])) $this->StockroomID = $o['StockroomID'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ID)) $o['ID'] = $this->ID;
        if (isset($this->Key)) $o['Key'] = $this->Key;
        if (isset($this->Pixel)) $o['Pixel'] = $this->Pixel;
        if (isset($this->Width)) $o['Width'] = $this->Width;
        if (isset($this->AreaID)) $o['AreaID'] = $this->AreaID;
        if (isset($this->AreaLabel)) $o['AreaLabel'] = $this->AreaLabel;
        if (isset($this->Label)) $o['Label'] = $this->Label;
        if (isset($this->StockroomID)) $o['StockroomID'] = $this->StockroomID;
        return empty($o) ? new class(){} : $o;
    }
}

class TraceabilityMissionDetail implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $IDMissionDetail=0,
        /** @var float */
        public float $PreparedQuantity=0.0,
        /** @var string */
        public string $Batch='',
        /** @var int */
        public int $ContainerID=0,
        /** @var string */
        public string $ContainerName='',
        /** @var float */
        public float $ContainerSizeXCm=0.0,
        /** @var float */
        public float $ContainerSizeYCm=0.0,
        /** @var float */
        public float $ContainerSizeZCm=0.0,
        /** @var float */
        public float $ContainerWeight=0.0,
        /** @var int */
        public int $StockroomID=0,
        /** @var string */
        public string $StockroomName='',
        /** @var string */
        public string $Operator='',
        /** @var string */
        public string $VersionSelected=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['IDMissionDetail'])) $this->IDMissionDetail = $o['IDMissionDetail'];
        if (isset($o['PreparedQuantity'])) $this->PreparedQuantity = $o['PreparedQuantity'];
        if (isset($o['Batch'])) $this->Batch = $o['Batch'];
        if (isset($o['ContainerID'])) $this->ContainerID = $o['ContainerID'];
        if (isset($o['ContainerName'])) $this->ContainerName = $o['ContainerName'];
        if (isset($o['ContainerSizeXCm'])) $this->ContainerSizeXCm = $o['ContainerSizeXCm'];
        if (isset($o['ContainerSizeYCm'])) $this->ContainerSizeYCm = $o['ContainerSizeYCm'];
        if (isset($o['ContainerSizeZCm'])) $this->ContainerSizeZCm = $o['ContainerSizeZCm'];
        if (isset($o['ContainerWeight'])) $this->ContainerWeight = $o['ContainerWeight'];
        if (isset($o['StockroomID'])) $this->StockroomID = $o['StockroomID'];
        if (isset($o['StockroomName'])) $this->StockroomName = $o['StockroomName'];
        if (isset($o['Operator'])) $this->Operator = $o['Operator'];
        if (isset($o['VersionSelected'])) $this->VersionSelected = $o['VersionSelected'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->IDMissionDetail)) $o['IDMissionDetail'] = $this->IDMissionDetail;
        if (isset($this->PreparedQuantity)) $o['PreparedQuantity'] = $this->PreparedQuantity;
        if (isset($this->Batch)) $o['Batch'] = $this->Batch;
        if (isset($this->ContainerID)) $o['ContainerID'] = $this->ContainerID;
        if (isset($this->ContainerName)) $o['ContainerName'] = $this->ContainerName;
        if (isset($this->ContainerSizeXCm)) $o['ContainerSizeXCm'] = $this->ContainerSizeXCm;
        if (isset($this->ContainerSizeYCm)) $o['ContainerSizeYCm'] = $this->ContainerSizeYCm;
        if (isset($this->ContainerSizeZCm)) $o['ContainerSizeZCm'] = $this->ContainerSizeZCm;
        if (isset($this->ContainerWeight)) $o['ContainerWeight'] = $this->ContainerWeight;
        if (isset($this->StockroomID)) $o['StockroomID'] = $this->StockroomID;
        if (isset($this->StockroomName)) $o['StockroomName'] = $this->StockroomName;
        if (isset($this->Operator)) $o['Operator'] = $this->Operator;
        if (isset($this->VersionSelected)) $o['VersionSelected'] = $this->VersionSelected;
        return empty($o) ? new class(){} : $o;
    }
}

class TraceabilityMissionDetailPacking implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $IDMissionDetail=0,
        /** @var float */
        public float $PreparedQuantity=0.0,
        /** @var string */
        public string $Batch='',
        /** @var int */
        public int $ContainerID=0,
        /** @var string */
        public string $ContainerName='',
        /** @var float */
        public float $ContainerSizeXCm=0.0,
        /** @var float */
        public float $ContainerSizeYCm=0.0,
        /** @var float */
        public float $ContainerSizeZCm=0.0,
        /** @var float */
        public float $ContainerWeight=0.0,
        /** @var int */
        public int $StockroomID=0,
        /** @var string */
        public string $StockroomName='',
        /** @var string */
        public string $Operator='',
        /** @var string */
        public string $VersionSelected=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['IDMissionDetail'])) $this->IDMissionDetail = $o['IDMissionDetail'];
        if (isset($o['PreparedQuantity'])) $this->PreparedQuantity = $o['PreparedQuantity'];
        if (isset($o['Batch'])) $this->Batch = $o['Batch'];
        if (isset($o['ContainerID'])) $this->ContainerID = $o['ContainerID'];
        if (isset($o['ContainerName'])) $this->ContainerName = $o['ContainerName'];
        if (isset($o['ContainerSizeXCm'])) $this->ContainerSizeXCm = $o['ContainerSizeXCm'];
        if (isset($o['ContainerSizeYCm'])) $this->ContainerSizeYCm = $o['ContainerSizeYCm'];
        if (isset($o['ContainerSizeZCm'])) $this->ContainerSizeZCm = $o['ContainerSizeZCm'];
        if (isset($o['ContainerWeight'])) $this->ContainerWeight = $o['ContainerWeight'];
        if (isset($o['StockroomID'])) $this->StockroomID = $o['StockroomID'];
        if (isset($o['StockroomName'])) $this->StockroomName = $o['StockroomName'];
        if (isset($o['Operator'])) $this->Operator = $o['Operator'];
        if (isset($o['VersionSelected'])) $this->VersionSelected = $o['VersionSelected'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->IDMissionDetail)) $o['IDMissionDetail'] = $this->IDMissionDetail;
        if (isset($this->PreparedQuantity)) $o['PreparedQuantity'] = $this->PreparedQuantity;
        if (isset($this->Batch)) $o['Batch'] = $this->Batch;
        if (isset($this->ContainerID)) $o['ContainerID'] = $this->ContainerID;
        if (isset($this->ContainerName)) $o['ContainerName'] = $this->ContainerName;
        if (isset($this->ContainerSizeXCm)) $o['ContainerSizeXCm'] = $this->ContainerSizeXCm;
        if (isset($this->ContainerSizeYCm)) $o['ContainerSizeYCm'] = $this->ContainerSizeYCm;
        if (isset($this->ContainerSizeZCm)) $o['ContainerSizeZCm'] = $this->ContainerSizeZCm;
        if (isset($this->ContainerWeight)) $o['ContainerWeight'] = $this->ContainerWeight;
        if (isset($this->StockroomID)) $o['StockroomID'] = $this->StockroomID;
        if (isset($this->StockroomName)) $o['StockroomName'] = $this->StockroomName;
        if (isset($this->Operator)) $o['Operator'] = $this->Operator;
        if (isset($this->VersionSelected)) $o['VersionSelected'] = $this->VersionSelected;
        return empty($o) ? new class(){} : $o;
    }
}

class Container implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $ContainerID=0,
        /** @var string */
        public string $ContainerCode='',
        /** @var string */
        public string $Location='',
        /** @var Object|null */
        public ?Object $DimensionX=null,
        /** @var Object|null */
        public ?Object $DimensionY=null,
        /** @var Object|null */
        public ?Object $DimensionZ=null,
        /** @var bool|null */
        public ?bool $Deleted=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ContainerID'])) $this->ContainerID = $o['ContainerID'];
        if (isset($o['ContainerCode'])) $this->ContainerCode = $o['ContainerCode'];
        if (isset($o['Location'])) $this->Location = $o['Location'];
        if (isset($o['DimensionX'])) $this->DimensionX = JsonConverters::from('Object', $o['DimensionX']);
        if (isset($o['DimensionY'])) $this->DimensionY = JsonConverters::from('Object', $o['DimensionY']);
        if (isset($o['DimensionZ'])) $this->DimensionZ = JsonConverters::from('Object', $o['DimensionZ']);
        if (isset($o['Deleted'])) $this->Deleted = $o['Deleted'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ContainerID)) $o['ContainerID'] = $this->ContainerID;
        if (isset($this->ContainerCode)) $o['ContainerCode'] = $this->ContainerCode;
        if (isset($this->Location)) $o['Location'] = $this->Location;
        if (isset($this->DimensionX)) $o['DimensionX'] = JsonConverters::to('Object', $this->DimensionX);
        if (isset($this->DimensionY)) $o['DimensionY'] = JsonConverters::to('Object', $this->DimensionY);
        if (isset($this->DimensionZ)) $o['DimensionZ'] = JsonConverters::to('Object', $this->DimensionZ);
        if (isset($this->Deleted)) $o['Deleted'] = $this->Deleted;
        return empty($o) ? new class(){} : $o;
    }
}

class StockAdditional implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $StockID=0,
        /** @var string */
        public string $Gtin='',
        /** @var string */
        public string $StockLocation='',
        /** @var float */
        public float $PhysicalQuantityStockLocation=0.0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['StockID'])) $this->StockID = $o['StockID'];
        if (isset($o['Gtin'])) $this->Gtin = $o['Gtin'];
        if (isset($o['StockLocation'])) $this->StockLocation = $o['StockLocation'];
        if (isset($o['PhysicalQuantityStockLocation'])) $this->PhysicalQuantityStockLocation = $o['PhysicalQuantityStockLocation'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->StockID)) $o['StockID'] = $this->StockID;
        if (isset($this->Gtin)) $o['Gtin'] = $this->Gtin;
        if (isset($this->StockLocation)) $o['StockLocation'] = $this->StockLocation;
        if (isset($this->PhysicalQuantityStockLocation)) $o['PhysicalQuantityStockLocation'] = $this->PhysicalQuantityStockLocation;
        return empty($o) ? new class(){} : $o;
    }
}

class Stock implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $StockID=0,
        /** @var string */
        public string $ProductID='',
        /** @var string */
        public string $ProductAttributeID='',
        /** @var string */
        public string $Reference='',
        /** @var string */
        public string $Gtin='',
        /** @var string */
        public string $GtinAttribute='',
        /** @var string */
        public string $Label='',
        /** @var string */
        public string $StockLocation='',
        /** @var float */
        public float $PhysicalQuantityStockLocation=0.0,
        /** @var string */
        public string $ReserveStockLocation='',
        /** @var float */
        public float $PhysicalQuantityReserveStockLocation=0.0,
        /** @var int|null */
        public ?int $NbSKUInPackage=null,
        /** @var string */
        public string $PackageReference='',
        /** @var int|null */
        public ?int $NbSKUInPackage2=null,
        /** @var string */
        public string $PackageReference2='',
        /** @var string */
        public string $Weight='',
        /** @var bool|null */
        public ?bool $FillInBatchNumber=null,
        /** @var bool|null */
        public ?bool $FillInDate=null,
        /** @var string */
        public string $PictureURL='',
        /** @var array<StockAdditional>|null */
        public ?array $StockAdditionals=null,
        /** @var string */
        public string $SearchKey=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['StockID'])) $this->StockID = $o['StockID'];
        if (isset($o['ProductID'])) $this->ProductID = $o['ProductID'];
        if (isset($o['ProductAttributeID'])) $this->ProductAttributeID = $o['ProductAttributeID'];
        if (isset($o['Reference'])) $this->Reference = $o['Reference'];
        if (isset($o['Gtin'])) $this->Gtin = $o['Gtin'];
        if (isset($o['GtinAttribute'])) $this->GtinAttribute = $o['GtinAttribute'];
        if (isset($o['Label'])) $this->Label = $o['Label'];
        if (isset($o['StockLocation'])) $this->StockLocation = $o['StockLocation'];
        if (isset($o['PhysicalQuantityStockLocation'])) $this->PhysicalQuantityStockLocation = $o['PhysicalQuantityStockLocation'];
        if (isset($o['ReserveStockLocation'])) $this->ReserveStockLocation = $o['ReserveStockLocation'];
        if (isset($o['PhysicalQuantityReserveStockLocation'])) $this->PhysicalQuantityReserveStockLocation = $o['PhysicalQuantityReserveStockLocation'];
        if (isset($o['NbSKUInPackage'])) $this->NbSKUInPackage = $o['NbSKUInPackage'];
        if (isset($o['PackageReference'])) $this->PackageReference = $o['PackageReference'];
        if (isset($o['NbSKUInPackage2'])) $this->NbSKUInPackage2 = $o['NbSKUInPackage2'];
        if (isset($o['PackageReference2'])) $this->PackageReference2 = $o['PackageReference2'];
        if (isset($o['Weight'])) $this->Weight = $o['Weight'];
        if (isset($o['FillInBatchNumber'])) $this->FillInBatchNumber = $o['FillInBatchNumber'];
        if (isset($o['FillInDate'])) $this->FillInDate = $o['FillInDate'];
        if (isset($o['PictureURL'])) $this->PictureURL = $o['PictureURL'];
        if (isset($o['StockAdditionals'])) $this->StockAdditionals = JsonConverters::fromArray('StockAdditional', $o['StockAdditionals']);
        if (isset($o['SearchKey'])) $this->SearchKey = $o['SearchKey'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->StockID)) $o['StockID'] = $this->StockID;
        if (isset($this->ProductID)) $o['ProductID'] = $this->ProductID;
        if (isset($this->ProductAttributeID)) $o['ProductAttributeID'] = $this->ProductAttributeID;
        if (isset($this->Reference)) $o['Reference'] = $this->Reference;
        if (isset($this->Gtin)) $o['Gtin'] = $this->Gtin;
        if (isset($this->GtinAttribute)) $o['GtinAttribute'] = $this->GtinAttribute;
        if (isset($this->Label)) $o['Label'] = $this->Label;
        if (isset($this->StockLocation)) $o['StockLocation'] = $this->StockLocation;
        if (isset($this->PhysicalQuantityStockLocation)) $o['PhysicalQuantityStockLocation'] = $this->PhysicalQuantityStockLocation;
        if (isset($this->ReserveStockLocation)) $o['ReserveStockLocation'] = $this->ReserveStockLocation;
        if (isset($this->PhysicalQuantityReserveStockLocation)) $o['PhysicalQuantityReserveStockLocation'] = $this->PhysicalQuantityReserveStockLocation;
        if (isset($this->NbSKUInPackage)) $o['NbSKUInPackage'] = $this->NbSKUInPackage;
        if (isset($this->PackageReference)) $o['PackageReference'] = $this->PackageReference;
        if (isset($this->NbSKUInPackage2)) $o['NbSKUInPackage2'] = $this->NbSKUInPackage2;
        if (isset($this->PackageReference2)) $o['PackageReference2'] = $this->PackageReference2;
        if (isset($this->Weight)) $o['Weight'] = $this->Weight;
        if (isset($this->FillInBatchNumber)) $o['FillInBatchNumber'] = $this->FillInBatchNumber;
        if (isset($this->FillInDate)) $o['FillInDate'] = $this->FillInDate;
        if (isset($this->PictureURL)) $o['PictureURL'] = $this->PictureURL;
        if (isset($this->StockAdditionals)) $o['StockAdditionals'] = JsonConverters::toArray('StockAdditional', $this->StockAdditionals);
        if (isset($this->SearchKey)) $o['SearchKey'] = $this->SearchKey;
        return empty($o) ? new class(){} : $o;
    }
}

class MissionDetailComment implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $ID=0,
        /** @var int */
        public int $MissionDetailID=0,
        /** @var string */
        public string $Comment='',
        /** @var DateTime|null */
        public ?DateTime $Timestamp=null,
        /** @var string */
        public string $Operator=''
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ID'])) $this->ID = $o['ID'];
        if (isset($o['MissionDetailID'])) $this->MissionDetailID = $o['MissionDetailID'];
        if (isset($o['Comment'])) $this->Comment = $o['Comment'];
        if (isset($o['Timestamp'])) $this->Timestamp = JsonConverters::from('DateTime', $o['Timestamp']);
        if (isset($o['Operator'])) $this->Operator = $o['Operator'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ID)) $o['ID'] = $this->ID;
        if (isset($this->MissionDetailID)) $o['MissionDetailID'] = $this->MissionDetailID;
        if (isset($this->Comment)) $o['Comment'] = $this->Comment;
        if (isset($this->Timestamp)) $o['Timestamp'] = JsonConverters::to('DateTime', $this->Timestamp);
        if (isset($this->Operator)) $o['Operator'] = $this->Operator;
        return empty($o) ? new class(){} : $o;
    }
}

class MissionDetail implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $ID=0,
        /** @var int */
        public int $MissionID=0,
        /** @var string */
        public string $Label='',
        /** @var string */
        public string $Reference='',
        /** @var float|null */
        public ?float $Quantity=null,
        /** @var float|null */
        public ?float $PreparedQuantity=null,
        /** @var float */
        public float $PackedQuantity=0.0,
        /** @var array<Position>|null */
        public ?array $Positions=null,
        /** @var string */
        public string $Tray='',
        /** @var string */
        public string $StockLocation='',
        /** @var int|null */
        public ?int $LineNumber=null,
        /** @var string */
        public string $Info='',
        /** @var string */
        public string $GTIN='',
        /** @var string */
        public string $SupplierReference='',
        /** @var int */
        public int $PickingIndex=0,
        /** @var array<TraceabilityMissionDetail>|null */
        public ?array $TraceabilityDetails=null,
        /** @var array<TraceabilityMissionDetailPacking>|null */
        public ?array $TraceabilityDetailsPacking=null,
        /** @var bool|null */
        public ?bool $Substitutable=null,
        /** @var string */
        public string $SubstitutionRef='',
        /** @var string */
        public string $TraceabilityBatch='',
        /** @var string */
        public string $Data1='',
        /** @var string */
        public string $Data2='',
        /** @var string */
        public string $Data3='',
        /** @var string */
        public string $Data4='',
        /** @var string */
        public string $Data5='',
        /** @var string */
        public string $Data6='',
        /** @var string */
        public string $Data7='',
        /** @var string */
        public string $Data8='',
        /** @var string */
        public string $Data9='',
        /** @var string */
        public string $Data10='',
        /** @var string */
        public string $Data11='',
        /** @var string */
        public string $Data12='',
        /** @var string */
        public string $PackageReference='',
        /** @var int|null */
        public ?int $NbSKUInPackage=null,
        /** @var string */
        public string $PackageReference2='',
        /** @var int|null */
        public ?int $NbSKUInPackage2=null,
        /** @var int|null */
        public ?int $ContainerID=null,
        /** @var Container|null */
        public ?Container $Container=null,
        /** @var float|null */
        public ?float $WeightPerItemInKg=null,
        /** @var float|null */
        public ?float $VolumePerItemInM3=null,
        /** @var string */
        public string $PictureURL='',
        /** @var Stock|null */
        public ?Stock $Stock=null,
        /** @var string */
        public string $QuantityUnit='',
        /** @var MissionDetailComment|null */
        public ?MissionDetailComment $Comments=null,
        /** @var float|null */
        public ?float $ShortageQuantity=null,
        /** @var DateTime|null */
        public ?DateTime $ItemPreparationDate=null,
        /** @var DateTime|null */
        public ?DateTime $CreationDateTime=null,
        /** @var int|null */
        public ?int $QuantityDispatched=null,
        /** @var array<string>|null */
        public ?array $Versions=null,
        /** @var int */
        public int $QuantityBreakage=0,
        /** @var bool|null */
        public ?bool $IsProductCritical=null,
        /** @var string */
        public string $Owner='',
        /** @var int */
        public int $StockroomID=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ID'])) $this->ID = $o['ID'];
        if (isset($o['MissionID'])) $this->MissionID = $o['MissionID'];
        if (isset($o['Label'])) $this->Label = $o['Label'];
        if (isset($o['Reference'])) $this->Reference = $o['Reference'];
        if (isset($o['Quantity'])) $this->Quantity = $o['Quantity'];
        if (isset($o['PreparedQuantity'])) $this->PreparedQuantity = $o['PreparedQuantity'];
        if (isset($o['PackedQuantity'])) $this->PackedQuantity = $o['PackedQuantity'];
        if (isset($o['Positions'])) $this->Positions = JsonConverters::fromArray('Position', $o['Positions']);
        if (isset($o['Tray'])) $this->Tray = $o['Tray'];
        if (isset($o['StockLocation'])) $this->StockLocation = $o['StockLocation'];
        if (isset($o['LineNumber'])) $this->LineNumber = $o['LineNumber'];
        if (isset($o['Info'])) $this->Info = $o['Info'];
        if (isset($o['GTIN'])) $this->GTIN = $o['GTIN'];
        if (isset($o['SupplierReference'])) $this->SupplierReference = $o['SupplierReference'];
        if (isset($o['PickingIndex'])) $this->PickingIndex = $o['PickingIndex'];
        if (isset($o['TraceabilityDetails'])) $this->TraceabilityDetails = JsonConverters::fromArray('TraceabilityMissionDetail', $o['TraceabilityDetails']);
        if (isset($o['TraceabilityDetailsPacking'])) $this->TraceabilityDetailsPacking = JsonConverters::fromArray('TraceabilityMissionDetailPacking', $o['TraceabilityDetailsPacking']);
        if (isset($o['Substitutable'])) $this->Substitutable = $o['Substitutable'];
        if (isset($o['SubstitutionRef'])) $this->SubstitutionRef = $o['SubstitutionRef'];
        if (isset($o['TraceabilityBatch'])) $this->TraceabilityBatch = $o['TraceabilityBatch'];
        if (isset($o['Data1'])) $this->Data1 = $o['Data1'];
        if (isset($o['Data2'])) $this->Data2 = $o['Data2'];
        if (isset($o['Data3'])) $this->Data3 = $o['Data3'];
        if (isset($o['Data4'])) $this->Data4 = $o['Data4'];
        if (isset($o['Data5'])) $this->Data5 = $o['Data5'];
        if (isset($o['Data6'])) $this->Data6 = $o['Data6'];
        if (isset($o['Data7'])) $this->Data7 = $o['Data7'];
        if (isset($o['Data8'])) $this->Data8 = $o['Data8'];
        if (isset($o['Data9'])) $this->Data9 = $o['Data9'];
        if (isset($o['Data10'])) $this->Data10 = $o['Data10'];
        if (isset($o['Data11'])) $this->Data11 = $o['Data11'];
        if (isset($o['Data12'])) $this->Data12 = $o['Data12'];
        if (isset($o['PackageReference'])) $this->PackageReference = $o['PackageReference'];
        if (isset($o['NbSKUInPackage'])) $this->NbSKUInPackage = $o['NbSKUInPackage'];
        if (isset($o['PackageReference2'])) $this->PackageReference2 = $o['PackageReference2'];
        if (isset($o['NbSKUInPackage2'])) $this->NbSKUInPackage2 = $o['NbSKUInPackage2'];
        if (isset($o['ContainerID'])) $this->ContainerID = $o['ContainerID'];
        if (isset($o['Container'])) $this->Container = JsonConverters::from('Container', $o['Container']);
        if (isset($o['WeightPerItemInKg'])) $this->WeightPerItemInKg = $o['WeightPerItemInKg'];
        if (isset($o['VolumePerItemInM3'])) $this->VolumePerItemInM3 = $o['VolumePerItemInM3'];
        if (isset($o['PictureURL'])) $this->PictureURL = $o['PictureURL'];
        if (isset($o['Stock'])) $this->Stock = JsonConverters::from('Stock', $o['Stock']);
        if (isset($o['QuantityUnit'])) $this->QuantityUnit = $o['QuantityUnit'];
        if (isset($o['Comments'])) $this->Comments = JsonConverters::from('MissionDetailComment', $o['Comments']);
        if (isset($o['ShortageQuantity'])) $this->ShortageQuantity = $o['ShortageQuantity'];
        if (isset($o['ItemPreparationDate'])) $this->ItemPreparationDate = JsonConverters::from('DateTime', $o['ItemPreparationDate']);
        if (isset($o['CreationDateTime'])) $this->CreationDateTime = JsonConverters::from('DateTime', $o['CreationDateTime']);
        if (isset($o['QuantityDispatched'])) $this->QuantityDispatched = $o['QuantityDispatched'];
        if (isset($o['Versions'])) $this->Versions = JsonConverters::fromArray('string', $o['Versions']);
        if (isset($o['QuantityBreakage'])) $this->QuantityBreakage = $o['QuantityBreakage'];
        if (isset($o['IsProductCritical'])) $this->IsProductCritical = $o['IsProductCritical'];
        if (isset($o['Owner'])) $this->Owner = $o['Owner'];
        if (isset($o['StockroomID'])) $this->StockroomID = $o['StockroomID'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ID)) $o['ID'] = $this->ID;
        if (isset($this->MissionID)) $o['MissionID'] = $this->MissionID;
        if (isset($this->Label)) $o['Label'] = $this->Label;
        if (isset($this->Reference)) $o['Reference'] = $this->Reference;
        if (isset($this->Quantity)) $o['Quantity'] = $this->Quantity;
        if (isset($this->PreparedQuantity)) $o['PreparedQuantity'] = $this->PreparedQuantity;
        if (isset($this->PackedQuantity)) $o['PackedQuantity'] = $this->PackedQuantity;
        if (isset($this->Positions)) $o['Positions'] = JsonConverters::toArray('Position', $this->Positions);
        if (isset($this->Tray)) $o['Tray'] = $this->Tray;
        if (isset($this->StockLocation)) $o['StockLocation'] = $this->StockLocation;
        if (isset($this->LineNumber)) $o['LineNumber'] = $this->LineNumber;
        if (isset($this->Info)) $o['Info'] = $this->Info;
        if (isset($this->GTIN)) $o['GTIN'] = $this->GTIN;
        if (isset($this->SupplierReference)) $o['SupplierReference'] = $this->SupplierReference;
        if (isset($this->PickingIndex)) $o['PickingIndex'] = $this->PickingIndex;
        if (isset($this->TraceabilityDetails)) $o['TraceabilityDetails'] = JsonConverters::toArray('TraceabilityMissionDetail', $this->TraceabilityDetails);
        if (isset($this->TraceabilityDetailsPacking)) $o['TraceabilityDetailsPacking'] = JsonConverters::toArray('TraceabilityMissionDetailPacking', $this->TraceabilityDetailsPacking);
        if (isset($this->Substitutable)) $o['Substitutable'] = $this->Substitutable;
        if (isset($this->SubstitutionRef)) $o['SubstitutionRef'] = $this->SubstitutionRef;
        if (isset($this->TraceabilityBatch)) $o['TraceabilityBatch'] = $this->TraceabilityBatch;
        if (isset($this->Data1)) $o['Data1'] = $this->Data1;
        if (isset($this->Data2)) $o['Data2'] = $this->Data2;
        if (isset($this->Data3)) $o['Data3'] = $this->Data3;
        if (isset($this->Data4)) $o['Data4'] = $this->Data4;
        if (isset($this->Data5)) $o['Data5'] = $this->Data5;
        if (isset($this->Data6)) $o['Data6'] = $this->Data6;
        if (isset($this->Data7)) $o['Data7'] = $this->Data7;
        if (isset($this->Data8)) $o['Data8'] = $this->Data8;
        if (isset($this->Data9)) $o['Data9'] = $this->Data9;
        if (isset($this->Data10)) $o['Data10'] = $this->Data10;
        if (isset($this->Data11)) $o['Data11'] = $this->Data11;
        if (isset($this->Data12)) $o['Data12'] = $this->Data12;
        if (isset($this->PackageReference)) $o['PackageReference'] = $this->PackageReference;
        if (isset($this->NbSKUInPackage)) $o['NbSKUInPackage'] = $this->NbSKUInPackage;
        if (isset($this->PackageReference2)) $o['PackageReference2'] = $this->PackageReference2;
        if (isset($this->NbSKUInPackage2)) $o['NbSKUInPackage2'] = $this->NbSKUInPackage2;
        if (isset($this->ContainerID)) $o['ContainerID'] = $this->ContainerID;
        if (isset($this->Container)) $o['Container'] = JsonConverters::to('Container', $this->Container);
        if (isset($this->WeightPerItemInKg)) $o['WeightPerItemInKg'] = $this->WeightPerItemInKg;
        if (isset($this->VolumePerItemInM3)) $o['VolumePerItemInM3'] = $this->VolumePerItemInM3;
        if (isset($this->PictureURL)) $o['PictureURL'] = $this->PictureURL;
        if (isset($this->Stock)) $o['Stock'] = JsonConverters::to('Stock', $this->Stock);
        if (isset($this->QuantityUnit)) $o['QuantityUnit'] = $this->QuantityUnit;
        if (isset($this->Comments)) $o['Comments'] = JsonConverters::to('MissionDetailComment', $this->Comments);
        if (isset($this->ShortageQuantity)) $o['ShortageQuantity'] = $this->ShortageQuantity;
        if (isset($this->ItemPreparationDate)) $o['ItemPreparationDate'] = JsonConverters::to('DateTime', $this->ItemPreparationDate);
        if (isset($this->CreationDateTime)) $o['CreationDateTime'] = JsonConverters::to('DateTime', $this->CreationDateTime);
        if (isset($this->QuantityDispatched)) $o['QuantityDispatched'] = $this->QuantityDispatched;
        if (isset($this->Versions)) $o['Versions'] = JsonConverters::toArray('string', $this->Versions);
        if (isset($this->QuantityBreakage)) $o['QuantityBreakage'] = $this->QuantityBreakage;
        if (isset($this->IsProductCritical)) $o['IsProductCritical'] = $this->IsProductCritical;
        if (isset($this->Owner)) $o['Owner'] = $this->Owner;
        if (isset($this->StockroomID)) $o['StockroomID'] = $this->StockroomID;
        return empty($o) ? new class(){} : $o;
    }
}

class MissionUpdatePackingMissionDetail implements JsonSerializable
{
    public function __construct(
        /** @description Mission Detail */
        // @ApiMember(Description="Mission Detail", IsRequired=true)
        /** @var MissionDetail|null */
        public ?MissionDetail $MissionDetail=null,

        /** @description Quantity the operator packed */
        // @ApiMember(Description="Quantity the operator packed", IsRequired=true)
        /** @var float */
        public float $PackedQuantity=0.0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['MissionDetail'])) $this->MissionDetail = JsonConverters::from('MissionDetail', $o['MissionDetail']);
        if (isset($o['PackedQuantity'])) $this->PackedQuantity = $o['PackedQuantity'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->MissionDetail)) $o['MissionDetail'] = JsonConverters::to('MissionDetail', $this->MissionDetail);
        if (isset($this->PackedQuantity)) $o['PackedQuantity'] = $this->PackedQuantity;
        return empty($o) ? new class(){} : $o;
    }
}

PHP MissionUpdatePackingMissionDetail DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /MissionUpdatePackingMissionDetail HTTP/1.1 
Host: clouddemo.pickeos.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	MissionDetail: 
	{
		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
	},
	PackedQuantity: 0
}