293 lines
11 KiB
C#
293 lines
11 KiB
C#
using BinsTracker.INI;
|
|
using Icoel.Soap.Compac;
|
|
using Icoel.Soap.INI;
|
|
using Icoel.Soap.SizerService;
|
|
using System;
|
|
|
|
namespace Icoel.Soap
|
|
{
|
|
public static class Connector
|
|
{
|
|
#region Public Methods
|
|
|
|
public static void DisplayVarietyLayout(Variety[] varietiesList)
|
|
{
|
|
if (Client == null || !Client.connected)
|
|
{
|
|
Client = new ComClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
|
|
}
|
|
foreach (var item in varietiesList)
|
|
{
|
|
Console.WriteLine("--------------------------");
|
|
Console.WriteLine($"Variety Id: {item.Id} | Variety Name: {item.Name}");
|
|
Console.WriteLine(" - Qualities");
|
|
foreach (var quality in item.Qualities)
|
|
{
|
|
Console.WriteLine($" Name: {quality.Name}");
|
|
}
|
|
Console.WriteLine(" - Grades");
|
|
foreach (var grade in item.Grades)
|
|
{
|
|
Console.WriteLine($" Name: {grade.Name}");
|
|
}
|
|
Console.WriteLine(" - Sizes");
|
|
foreach (var size in item.SizingMaps)
|
|
{
|
|
Console.WriteLine($" Name: {size.Name}");
|
|
}
|
|
// recupero layout della varietà
|
|
var layoutList = Client.GetLayouts(item.Id);
|
|
Console.WriteLine(" - LAYOUTS");
|
|
foreach (var layout in layoutList)
|
|
{
|
|
Console.WriteLine($" Id: {layout.Id} | Name: {layout.Name}");
|
|
// ciclo su sub info
|
|
#if false
|
|
Console.WriteLine(" - Assignments");
|
|
foreach (var assign in layout.Assignments)
|
|
{
|
|
Console.WriteLine($" Key: {assign.Key} | Val: {assign.Value}");
|
|
}
|
|
#endif
|
|
Console.WriteLine(" - Products");
|
|
foreach (var product in layout.Products)
|
|
{
|
|
Console.WriteLine($" Id: {product.Id} | Name: {product.Name} | DisplayName: {product.DisplayName} | Pack: {product.Pack}");
|
|
}
|
|
}
|
|
}
|
|
|
|
// chiudo se fosse rimasto aperto
|
|
Client.Close();
|
|
}
|
|
|
|
public static void Load()
|
|
{
|
|
Settaggi = new Settaggi();
|
|
Details = new BatchDetails();
|
|
|
|
Settaggi.Load();
|
|
Details.Load();
|
|
}
|
|
|
|
public static void MettiLottoInCoda()
|
|
{
|
|
Client = new ComClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
|
|
|
|
Client.VerificaEsistenzaGrower(Details.GrowerCode, Details.GrowerName);
|
|
|
|
// recupero varietà x selezione
|
|
var varList = Connector.RecuperaVarietyLayout();
|
|
|
|
int idxVar = -1;
|
|
int idxLay = -1;
|
|
|
|
Guid varGuid = Guid.NewGuid();
|
|
Guid layGuid = Guid.NewGuid();
|
|
|
|
Console.WriteLine("--------------------");
|
|
Console.WriteLine("Varietà disponibili:");
|
|
Console.WriteLine("--------------------");
|
|
DisplayVarietyLayout(varList);
|
|
// chiedo di selezionare
|
|
while (idxVar <= 0)
|
|
{
|
|
Console.WriteLine("");
|
|
Console.WriteLine("indicare varietà richiesta (#)");
|
|
var rawData = Console.ReadLine();
|
|
if (!string.IsNullOrEmpty(rawData))
|
|
{
|
|
int.TryParse(rawData, out idxVar);
|
|
// verifico sia valida..
|
|
if (varList.Length >= idxVar)
|
|
{
|
|
varGuid = varList[idxVar - 1].Id;
|
|
}
|
|
else
|
|
{
|
|
idxVar = -1;
|
|
}
|
|
}
|
|
}
|
|
if (Client == null || !Client.connected)
|
|
{
|
|
Client = new ComClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
|
|
} // recupero layout della varietà
|
|
var layoutList = Client.GetLayouts(varGuid);
|
|
// recupero layout x varietà
|
|
while (idxLay <= 0)
|
|
{
|
|
Console.WriteLine("");
|
|
Console.WriteLine("indicare layout");
|
|
var rawData = Console.ReadLine();
|
|
if (!string.IsNullOrEmpty(rawData))
|
|
{
|
|
int.TryParse(rawData, out idxLay);
|
|
// verifico sia valida..
|
|
if (layoutList.Length >= idxLay)
|
|
{
|
|
layGuid = layoutList[idxLay - 1].Id;
|
|
}
|
|
else
|
|
{
|
|
idxLay = -1;
|
|
}
|
|
}
|
|
}
|
|
|
|
// compongo batch e metto in coda
|
|
var newBatch = GeneraBatchDaSelezione(varGuid, layGuid, Client.GetCurrentBatch().SizingProfileName);
|
|
|
|
Client.MettiLottoInCoda(newBatch);
|
|
|
|
Client.Close();
|
|
}
|
|
|
|
public static void MettiLottoInCodaDefault()
|
|
{
|
|
Client = new ComClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
|
|
|
|
Client.VerificaEsistenzaGrower(Details.GrowerCode, Details.GrowerName);
|
|
|
|
Client.MettiLottoInCoda(GeneraBatchDaFile());
|
|
|
|
Client.Close();
|
|
}
|
|
|
|
public static Variety[] RecuperaVarietyLayout()
|
|
{
|
|
//Client = new CompacClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
|
|
if (Client == null || !Client.connected)
|
|
{
|
|
Client = new ComClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
|
|
}
|
|
Variety[] varietiesList;
|
|
varietiesList = Client.GetActiveVarieties();
|
|
#if false
|
|
foreach (var item in varietiesList)
|
|
{
|
|
Console.WriteLine("--------------------------");
|
|
Console.WriteLine($"Variety Id: {item.Id} | Variety Name: {item.Name}");
|
|
Console.WriteLine(" - Qualities");
|
|
foreach (var quality in item.Qualities)
|
|
{
|
|
Console.WriteLine($" Name: {quality.Name}");
|
|
}
|
|
Console.WriteLine(" - Grades");
|
|
foreach (var grade in item.Grades)
|
|
{
|
|
Console.WriteLine($" Name: {grade.Name}");
|
|
}
|
|
Console.WriteLine(" - Sizes");
|
|
foreach (var size in item.SizingMaps)
|
|
{
|
|
Console.WriteLine($" Name: {size.Name}");
|
|
}
|
|
// recupero layout della varietà
|
|
var layoutList = Client.GetLayouts(item.Id);
|
|
Console.WriteLine(" - LAYOUTS");
|
|
foreach (var layout in layoutList)
|
|
{
|
|
Console.WriteLine($" Id: {layout.Id} | Name: {layout.Name}");
|
|
// ciclo su sub info
|
|
Console.WriteLine(" - Assignments");
|
|
foreach (var assign in layout.Assignments)
|
|
{
|
|
Console.WriteLine($" Key: {assign.Key} | Val: {assign.Value}");
|
|
}
|
|
Console.WriteLine(" - Products");
|
|
foreach (var product in layout.Products)
|
|
{
|
|
Console.WriteLine($" Id: {product.Id} | Name: {product.Name} | DisplayName: {product.DisplayName} | Pack: {product.Pack}");
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
|
|
Client.Close();
|
|
|
|
return varietiesList;
|
|
}
|
|
|
|
public static void VerificaLottoCorrente()
|
|
{
|
|
Client = new ComClient(Settaggi.IndirizzoIpSizer, Settaggi.SizerTcpPort);
|
|
|
|
//Client.GetCurrentBatch();
|
|
var batch = Client.GetCurrentBatchByLane(1);
|
|
Console.WriteLine($"[1-SX] Grower code: {batch.GrowerCode} | Layout Name: {batch.LayoutName} | Totalling: [{batch.TotallingVarietyCode}] {batch.TotallingVariety} | Sizing: {batch.SizingProfileName} | Start {batch.StartTime} | End {batch.EndTime}");
|
|
|
|
batch = Client.GetCurrentBatchByLane(2);
|
|
Console.WriteLine($"[2-DX] Grower code: {batch.GrowerCode} | Layout Name: {batch.LayoutName} | Totalling: [{batch.TotallingVarietyCode}] {batch.TotallingVariety} | Sizing: {batch.SizingProfileName} | Start {batch.StartTime} | End {batch.EndTime}");
|
|
|
|
Client.Close();
|
|
}
|
|
|
|
#endregion Public Methods
|
|
|
|
#region Internal Properties
|
|
|
|
/// <summary>
|
|
/// Oggetto di connessione client
|
|
/// </summary>
|
|
internal static ComClient Client { get; set; }
|
|
/// <summary>
|
|
/// Dettaglio dei batch
|
|
/// </summary>
|
|
internal static BatchDetails Details { get; set; }
|
|
/// <summary>
|
|
/// Parametri di setup
|
|
/// </summary>
|
|
internal static Settaggi Settaggi { get; set; }
|
|
|
|
#endregion Internal Properties
|
|
|
|
#region Private Methods
|
|
|
|
private static Batch GeneraBatchDaFile()
|
|
{
|
|
var batch = new Batch();
|
|
|
|
batch.GrowerCode = Details.GrowerCode;
|
|
|
|
batch.AvoidLayoutChange = true;
|
|
batch.AvoidSavingOldLayouts = true;
|
|
|
|
batch.Comments = new string[3];
|
|
batch.Comments[0] = Details.Comment1;
|
|
batch.Comments[1] = Details.Comment2;
|
|
batch.Comments[2] = Details.Comment3;
|
|
|
|
batch.VarietyId = Client.GetCurrentBatch().VarietyId;
|
|
batch.LayoutId = Client.GetCurrentBatch().LayoutId;
|
|
batch.SizingProfileName = Client.GetCurrentBatch().SizingProfileName;
|
|
|
|
return batch;
|
|
}
|
|
|
|
private static Batch GeneraBatchDaSelezione(Guid VarietyId, Guid LayoutId, string SizingProfileName)
|
|
{
|
|
var batch = new Batch();
|
|
|
|
batch.AvoidLayoutChange = true;
|
|
batch.AvoidSavingOldLayouts = true;
|
|
|
|
batch.GrowerCode = Details.GrowerCode;
|
|
batch.Comments = new string[3];
|
|
batch.Comments[0] = Details.Comment1;
|
|
batch.Comments[1] = Details.Comment2;
|
|
batch.Comments[2] = Details.Comment3;
|
|
|
|
batch.VarietyId = VarietyId;
|
|
batch.LayoutId = LayoutId;
|
|
batch.SizingProfileName = SizingProfileName;
|
|
//batch.VarietyId = Client.GetCurrentBatch().VarietyId;
|
|
//batch.LayoutId = Client.GetCurrentBatch().LayoutId;
|
|
//batch.SizingProfileName = Client.GetCurrentBatch().SizingProfileName;
|
|
|
|
return batch;
|
|
}
|
|
|
|
#endregion Private Methods
|
|
}
|
|
} |