| POST | /stock/{brand}/transferBulk | Bulk Transfer Stock from one POS to another |
|---|
import 'package:servicestack/servicestack.dart';
class ItemResponse implements IConvertible
{
/**
* Article Code of the item response
*/
// @ApiMember(Description="Article Code of the item response", IsRequired=true)
String? articleCode;
/**
* Status of Stock Transfer: 1 means done, 2 means might take a while because consignment transfers need to be approved by SAP
*/
// @ApiMember(Description="Status of Stock Transfer: 1 means done, 2 means might take a while because consignment transfers need to be approved by SAP", IsRequired=true)
int? stockTransferStatusId;
/**
* Errors of items
*/
// @ApiMember(Description="Errors of items", IsRequired=true)
List<Lookup<String>>? errors;
ItemResponse({this.articleCode,this.stockTransferStatusId,this.errors});
ItemResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
articleCode = json['articleCode'];
stockTransferStatusId = json['stockTransferStatusId'];
errors = JsonConverters.fromJson(json['errors'],'List<Lookup<String>>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'articleCode': articleCode,
'stockTransferStatusId': stockTransferStatusId,
'errors': JsonConverters.toJson(errors,'List<Lookup<String>>',context!)
};
getTypeName() => "ItemResponse";
TypeContext? context = _ctx;
}
class TransferStockBulkResponse implements IConvertible
{
/**
* Response of items
*/
// @ApiMember(Description="Response of items", IsRequired=true)
List<ItemResponse>? items;
TransferStockBulkResponse({this.items});
TransferStockBulkResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
items = JsonConverters.fromJson(json['items'],'List<ItemResponse>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'items': JsonConverters.toJson(items,'List<ItemResponse>',context!)
};
getTypeName() => "TransferStockBulkResponse";
TypeContext? context = _ctx;
}
class Item implements IConvertible
{
/**
* Article Code of the item to be transferred
*/
// @ApiMember(Description="Article Code of the item to be transferred", IsRequired=true)
String? articleCode;
/**
* Quantity of the the item to be transferred
*/
// @ApiMember(Description="Quantity of the the item to be transferred", IsRequired=true)
int? quantity;
/**
* Serial Numbers of the item to be transferred
*/
// @ApiMember(Description="Serial Numbers of the item to be transferred")
List<String>? serialNumbers;
Item({this.articleCode,this.quantity,this.serialNumbers});
Item.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
articleCode = json['articleCode'];
quantity = json['quantity'];
serialNumbers = JsonConverters.fromJson(json['serialNumbers'],'List<String>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'articleCode': articleCode,
'quantity': quantity,
'serialNumbers': JsonConverters.toJson(serialNumbers,'List<String>',context!)
};
getTypeName() => "Item";
TypeContext? context = _ctx;
}
class TransferStockBulk implements IConvertible
{
/**
* Brand Trigram
*/
// @ApiMember(Description="Brand Trigram", IsRequired=true)
String? brand;
/**
* POS of the stock origin
*/
// @ApiMember(Description="POS of the stock origin", IsRequired=true)
String? posCodeOrigin;
/**
* POS of the stock destination
*/
// @ApiMember(Description="POS of the stock destination", IsRequired=true)
String? posCodeDestination;
/**
* Items to be transferred
*/
// @ApiMember(Description="Items to be transferred", IsRequired=true)
List<Item>? items;
TransferStockBulk({this.brand,this.posCodeOrigin,this.posCodeDestination,this.items});
TransferStockBulk.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
brand = json['brand'];
posCodeOrigin = json['posCodeOrigin'];
posCodeDestination = json['posCodeDestination'];
items = JsonConverters.fromJson(json['items'],'List<Item>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'brand': brand,
'posCodeOrigin': posCodeOrigin,
'posCodeDestination': posCodeDestination,
'items': JsonConverters.toJson(items,'List<Item>',context!)
};
getTypeName() => "TransferStockBulk";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'dev_api_booster.richemont.com', types: <String, TypeInfo> {
'ItemResponse': TypeInfo(TypeOf.Class, create:() => ItemResponse()),
'List<Lookup<String>>': TypeInfo(TypeOf.Class, create:() => <Lookup<String>>[]),
'Lookup<String>': TypeInfo(TypeOf.Class, create:() => Lookup<String>()),
'TransferStockBulkResponse': TypeInfo(TypeOf.Class, create:() => TransferStockBulkResponse()),
'List<ItemResponse>': TypeInfo(TypeOf.Class, create:() => <ItemResponse>[]),
'Item': TypeInfo(TypeOf.Class, create:() => Item()),
'TransferStockBulk': TypeInfo(TypeOf.Class, create:() => TransferStockBulk()),
'List<Item>': TypeInfo(TypeOf.Class, create:() => <Item>[]),
});
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 /stock/{brand}/transferBulk HTTP/1.1
Host: dev-api-booster.richemont.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
brand: String,
posCodeOrigin: String,
posCodeDestination: String,
items:
[
{
articleCode: String,
quantity: 0,
serialNumbers:
[
String
]
}
]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
items:
[
{
articleCode: String,
stockTransferStatusId: 0,
errors:
[
{
id: String,
description: String
}
]
}
]
}