-
Notifications
You must be signed in to change notification settings - Fork 10
Examples
Alexey Yakovlev edited this page Jul 19, 2021
·
6 revisions
Создание клиентов
private void CreateClients()
{
var TrueApiClient = new TrueApiClient(
TrueApiUrl,
new TrueApiCredentials()
{
CertificateThumbprint = CertificateThumbprint
});
TAInteractionController.TrueApiClient.Tracer = Tracer;
var OmsApiClient = new OmsApiClient(
OmsApiUrl,
OmsAuthUrl,
ProductGroupsOMS.milk,
new OmsCredentials()
{
CertificateThumbprint = CertificateThumbprint,
OmsID = OmsID,
OmsConnectionID = OmsConnectionID
});
SUZInteractionController.OmsApiClient.Tracer = Tracer;
}
private void Tracer(string arg1, object[] arg2)
{
LogController.Logger.Debug($"#####{string.Join("; ", arg2)}");
}
Создание заказа
public static OrderResponse FMCreateOrder(List<CodesReceiveCountsByProductsResult> buffers)
{
LogController.Logger.Info($"ЧЗ: Начало создания заказа");
Guid productionOrderId = new Guid();
LogController.Logger.Info($"Сгенерирован Id производственного заказа {productionOrderId}");
List<OrderProduct_Milk> Products = new List<OrderProduct_Milk>();
foreach (var buffer in buffers)
{
if (buffer.CodesOrderQuant > 150000)
{
LogController.Logger.Warn($"ВНИМАНИЕ! Для одного товара допускает заказ не более чем на 150к кодов! Для товара {buffer.ProductName} квант заказа установлен {buffer.CodesOrderQuant}. Квант автоматически уменьшен до 150к!");
buffer.CodesOrderQuant = 150000;
}
LogController.Logger.Info($"Добавление {buffer.CodesOrderQuant} кодов для {buffer.GTIN} в заказ");
Products.Add(new OrderProduct_Milk()
{
Gtin = buffer.GTIN,
Quantity = buffer.CodesOrderQuant,
SerialNumberType = SerialNumberTypes.OPERATOR,
TemplateID = Templates.T20,
StickerID = buffer.StickerId, // or is it a string?
CisType = CisTypes.UNIT
});
}
var order = new Order_Milk
{
Products = Products,
ContactPerson = "ООО К-Солюшионс",
ReleaseMethodType = ReleaseMethodTypes.PRODUCTION,
ProductionOrderID = productionOrderId.ToString(),
// пример для самостоятельного производства
CreateMethodType = CreateMethodTypes.SELF_MADE,
// пример для контрактного производства: надо указать ServiceProviderID
//CreateMethodType = CreateMethodTypes.CM,
//ServiceProviderID = "156893d9-42d9-4753-9a19-bdbf182c7851",
};
return OmsApiClient.CreateOrder(order, true);
}
Получение буферов, блоков, кодов, повторное получение кодов
public static BufferInfo FMOrderBufferReceive(Guid orderId, string gtin)
{
LogController.Logger.Info($"ЧЗ: Получение данных буфера по заказу {orderId} по товару {gtin}");
var FMbufferInfo = OmsApiClient.GetBufferStatus(orderId.ToString(), gtin);
return FMbufferInfo;
}
public static BlocksDto FMGetCodeBlocks(Guid orderId, string gtin)
{
LogController.Logger.Info($"ЧЗ: Получение блоков по заказу {orderId}; товар {gtin}");
var blocksInfo = OmsApiClient.GetCodeBlocks(orderId.ToString(), gtin);
LogController.Logger.Info($"ЧЗ: Получено блоков {blocksInfo.Blocks.Count} по заказу {orderId}; товар {gtin}");
return blocksInfo;
}
public static CodesDto FMCodesReceive(BufferInfo FMbufferInfo, int blockSize, string lastBlockId)
{
LogController.Logger.Info($"ЧЗ: Получение кодов по заказу {FMbufferInfo.OrderID.ToString()}; товар {FMbufferInfo.Gtin}; блок {lastBlockId.ToString()}; размер блока {blockSize}");
var codes = OmsApiClient.GetCodes(FMbufferInfo.OrderID.ToString(), FMbufferInfo.Gtin, blockSize, lastBlockId);
LogController.Logger.Info($"ЧЗ: Получено {codes.Codes.Count} кодов");
return codes;
}
public static CodesDto FMRetryCodesReceive(Guid orderId, string gtin, string blockID)
{
LogController.Logger.Info($"ЧЗ: ПОВТОРНОЕ Получение кодов по заказу {orderId.ToString()}; товар {gtin}; блок {blockID.ToString()}");
var codes = OmsApiClient.RetryCodes(orderId.ToString(), gtin, blockID);
LogController.Logger.Info($"ЧЗ: ПОВТОРНО Получено {codes.Codes.Count} кодов");
return codes;
}