Skip to content

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;
}
Clone this wiki locally