diff --git a/Directory.Packages.props b/Directory.Packages.props index 96e7ecc9..8236ac0b 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -8,8 +8,8 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all - - + + diff --git a/EgwCoreLib.Lux.Data/DbModel/Sales/TemplateModel.cs b/EgwCoreLib.Lux.Data/DbModel/Sales/TemplateModel.cs new file mode 100644 index 00000000..ff8f338e --- /dev/null +++ b/EgwCoreLib.Lux.Data/DbModel/Sales/TemplateModel.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static EgwCoreLib.Lux.Core.Enums; + +namespace EgwCoreLib.Lux.Data.DbModel.Sales +{ + /// + /// Classe dei template di oggetti gestiti + /// + [Table("sales_template")] + public class TemplateModel + { + /// + /// ID del record + /// + [Key] + public int TemplateID { get; set; } + + /// + /// Environment del template + /// + public EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS Envir { get; set; } = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW; + + + /// + /// SourceType dell'Item + /// + public ItemSourceType SourceType { get; set; } = ItemSourceType.ND; + + /// + /// Denominazione + /// + public string Name { get; set; } = ""; + + /// + /// Descrizione + /// + public string Description { get; set; } = ""; + + /// + /// Numero Item compresi + /// + [NotMapped] + public double NumItems + { + get => TemplateRowNav?.Sum(x => x.Qty) ?? 0; + } + + /// + /// Numero ProdItem compresi + /// + [NotMapped] + public double NumProdItems + { + get => TemplateRowNav?.Sum(x => x.ProdItemQtyTot) ?? 0; + } + + /// + /// Numero Item compresi + /// + [NotMapped] + public int NumRows + { + get => TemplateRowNav?.Count ?? 0; + } + + /// + /// Costo totale offerta (rock bottom) + /// + [NotMapped] + public double TotalCost + { + get => TemplateRowNav?.Sum(x => x.TotalCost) ?? 0; + } + + /// + /// Prezzo totale offerta (compreso di amrginalità) + /// + [NotMapped] + public double TotalPrice + { + get => TemplateRowNav?.Sum(x => x.TotalPrice) ?? 0; + } + + /// + /// Sconto massimo applicabile + /// + [NotMapped] + public double MaxDiscount + { + get => (TotalCost > 0 && TotalPrice > TotalCost) ? (TotalPrice - TotalCost) / TotalPrice : 0; + } + + /// + /// Navigazione Customer + /// + [ForeignKey("CustomerID")] + public virtual CustomerModel CustomerNav { get; set; } = null!; + + /// + /// Navigazione Dealer + /// + [ForeignKey("DealerID")] + public virtual DealerModel DealerNav { get; set; } = null!; + + /// + /// Navigazione alle righe offerta + /// + public virtual ICollection TemplateRowNav { get; set; } = new List(); + } +} \ No newline at end of file diff --git a/EgwCoreLib.Lux.Data/DbModel/Sales/TemplateRowModel.cs b/EgwCoreLib.Lux.Data/DbModel/Sales/TemplateRowModel.cs new file mode 100644 index 00000000..5bfd99fa --- /dev/null +++ b/EgwCoreLib.Lux.Data/DbModel/Sales/TemplateRowModel.cs @@ -0,0 +1,243 @@ +using EgwCoreLib.Lux.Data.DbModel.Items; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +// +// This is here so CodeMaid doesn't reorganize this document +// +namespace EgwCoreLib.Lux.Data.DbModel.Sales +{ + [Table("sales_template_row")] + public class TemplateRowModel + { + /// + /// ID del record + /// + [Key] + public int TemplateRowID { get; set; } + + /// + /// Riferimento univoco Template + /// + public int TemplateID { get; set; } + + /// + /// Riga Template (per ordinamento) + /// + public int RowNum { get; set; } = 0; + + /// + /// Environment della richiesta + /// + public EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS Envir { get; set; } = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW; + + /// + /// Denominazione prodotto + /// + public string Name { get; set; } = ""; + + /// + /// Campo salvato dell'UID da codice DataMatrix calcolato + /// inizia per TLR = TemplateListRow + /// + public string TemplateRowUID { get; set; } = "TLR.26.0123ABCD"; + + /// + /// Codice calcolato Template ANNO.ID_RIGA_Template in HEX (0xFFFFFFFF) + /// + [NotMapped] + public string TemplateRowDtx + { + get => $"TLR.{Inserted:yy}.{TemplateRowID:X8}"; + } + + /// + /// ID dell'articolo di vendita di riferimento + /// + public int SellingItemID { get; set; } + + /// + /// Quantità della risorsa (default 1, aperto a KIT) + /// + public double Qty { get; set; } = 1; + + /// + /// Costo dei componeti BOM (RockBottom) + /// + public double BomCost { get; set; } = 0; + + /// + /// Prezzo dei componeti BOM (scontabile) + /// + public double BomPrice { get; set; } = 0; + + /// + /// Costo produzione Fase/Step (RockBottom): somma dei WorkCost da ItemSteps + /// + public double StepCost { get; set; } = 0; + + /// + /// Prezzo produzione Fase/Step (scontabile): somma dei WorkPrice da ItemSteps + /// + public double StepPrice { get; set; } = 0; + + /// + /// LeadTime puro (tempo di lavorazione): somma dei LeadTime da ItemSteps + /// + + public double StepLeadTime { get; set; } = 0; + /// + /// FlowTime totale (tempo di attraversamento): somma dei FlowTime da ItemSteps + /// + + public double StepFlowTime { get; set; } = 0; + + /// + /// Costo Totale Risorsa (BOM + Fase) + /// + [NotMapped] + public double UnitCost + { + get => BomCost + StepCost; + } + + /// + /// Costo Totale Risorsa (BOM + Fase) + /// + [NotMapped] + public double UnitPrice + { + get => BomPrice + StepPrice; + } + + /// + /// Sconto massimo applicabile + /// + [NotMapped] + public double MaxDiscount + { + get => (UnitCost > 0 && UnitPrice > UnitCost) ? (UnitPrice - UnitCost) / UnitPrice : 0; + } + + /// + /// Costo Totale risorsa + /// + [NotMapped] + public double TotalCost + { + get => UnitCost * Qty; + } + + /// + /// Costo Totale risorsa + /// + [NotMapped] + public double TotalPrice + { + get => UnitPrice * Qty; + } + + /// + /// Valore serializzato della composizione articolo (in formato JWD x finestra) + /// + public string SerStruct { get; set; } = ""; + + /// + /// Nomi risorsa file associato alla riga Template (es per BTL) + /// URI come risorsa dentro folder Template/riga-Template/guid + /// + public string FileResource { get; set; } = ""; + + /// + /// Nomi file originale associato alla riga Template (es per BTL) + /// + public string FileName { get; set; } = ""; + + /// + /// Dimensione del file (per visualizzazione rapida) + /// + public long FileSize { get; set; } = 0; + + /// + /// BOM serializzata per la produzione dell'item + /// + public string ItemBOM { get; set; } = ""; + + /// + /// Lista dei Job Cost Drivers necessari x calcolo Steps come Lista(JcdDTO) + /// - idealmente calcolati dall'engine + /// - in alternativa quelli di default + /// + public string ItemJCD { get; set; } = ""; + + /// + /// Lista dei TAGS associati all'item (es selezione ciclo) + /// + public string ItemTags { get; set; } = ""; + + /// + /// Quantità degli item da produrre per PEZZO (es parti del serramento, singole parti BTL...) + /// + public int ProdItemQty { get; set; } = 0; + + /// + /// Quantità degli item da produrre per PEZZO (es parti del serramento, singole parti BTL...) + /// + public double ProdItemQtyTot + { + get => Qty * ProdItemQty; + } + + /// + /// Riferimento JobID Ciclo corrente (tra quelli ammissibili dato ItemJCD) + /// + public int JobID { get; set; } + + /// + /// Elenco StepDTO del JobTask, valorizzati (Fasi Costificate, sommabili) per la stima tempi / costi + /// + public string ItemSteps { get; set; } = ""; + + /// + /// Validazione dati BOM (Inteso come gruppi tutti trovati/esistenti) + /// + public bool BomOk { get; set; } = false; + + /// + /// Validazione livello item per Costo e range dimensione + /// + public bool ItemOk { get; set; } = false; + + /// + /// Note libere + /// + public string Note { get; set; } = ""; + + /// + /// Indica che è in attesa aggiornamento BOM + /// + public bool AwaitBom { get; set; } = false; + + /// + /// Indica che è in attesa aggiornamento Price + /// + public bool AwaitPrice { get; set; } = false; + + /// + /// DataOra inserimento + /// + public DateTime Inserted { get; set; } = DateTime.Now; + + /// + /// Navigazione Template + /// + [ForeignKey("TemplateID")] + public virtual TemplateModel TemplateNav { get; set; } = null!; + + /// + /// Navigazione Item + /// + [ForeignKey("SellingItemID")] + public virtual SellingItemModel? SellingItemNav { get; set; } + } +} diff --git a/EgwCoreLib.Lux.Data/Services/ProdService.cs b/EgwCoreLib.Lux.Data/Services/ProdService.cs index ec48572c..0fb7b1bb 100644 --- a/EgwCoreLib.Lux.Data/Services/ProdService.cs +++ b/EgwCoreLib.Lux.Data/Services/ProdService.cs @@ -22,17 +22,6 @@ namespace EgwCoreLib.Lux.Data.Services _redisService = redisService; _db = redisConn.GetDatabase(); chPub = _config.GetValue("ServerConf:ChannelPub") ?? ""; -#if false - queueCalcKey = (RedisKey)$"{redisBaseKey}:CalcQueue"; - queueDoneKey = (RedisKey)$"{queueCalcKey}:Done"; - queueRunKey = (RedisKey)$"{queueCalcKey}:Run"; - queueWaitKey = (RedisKey)$"{queueCalcKey}:Wait"; -#endif -#if false - redisOrderDoneKey = $"{redisBaseKey}:OrderDone"; - redisOrderRunKey = $"{redisBaseKey}:OrderRun"; - redisOrderReqKey = $"{redisBaseKey}:OrderReq"; -#endif Log.Info($"ProdService | Init OK"); } @@ -71,9 +60,6 @@ namespace EgwCoreLib.Lux.Data.Services // invio ed accodo! var qWaitKey = qKey(currRequest.EnvType, QueueType.waiting); _redisService.QueuePush(qWaitKey, (RedisValue)reqUid); -#if false - _redisService.QueuePush(queueWaitKey, (RedisValue)reqUid); -#endif // dizionario richieste: è il serializzato dell'elenco degli UID da calcolare... List currList = await _redisService.QueueListAllAsync(qWaitKey); Dictionary calcDict = new Dictionary(); @@ -330,37 +316,9 @@ namespace EgwCoreLib.Lux.Data.Services private readonly string chPub = ""; -#if false - /// - /// Key della coda redis delle richieste in waiting x PROD Engine - /// - private RedisKey queueCalcKey; - - /// - /// Key della coda redis delle richieste già completate x PROD Engine - /// - private RedisKey queueDoneKey; - - /// - /// Coda processi in RUN - /// - private RedisKey queueRunKey; - - /// - /// Coda attesa - /// - private RedisKey queueWaitKey; -#endif private string redisBaseKey = "Lux:Prod"; -#if false - private string redisOrderDoneKey = ""; - private string redisOrderRunKey = ""; - private string redisOrderReqKey = ""; -#endif - - #endregion Private Fields diff --git a/Lux.API/Controllers/ProdController.cs b/Lux.API/Controllers/ProdController.cs index 612f4c93..f897d80b 100644 --- a/Lux.API/Controllers/ProdController.cs +++ b/Lux.API/Controllers/ProdController.cs @@ -79,10 +79,7 @@ namespace Lux.API.Controllers { deserRes.Args.Remove("RUID"); } - // lo aggiungo! -#if false - string envir = $"{deserRes.ExecEnvironment}"; -#endif + // completo info var mode = deserRes.Args["Mode"]; var sub = deserRes.Args["SubMode"]; string type = string.IsNullOrEmpty(sub) ? mode : $"{mode}-{sub}"; @@ -126,10 +123,7 @@ namespace Lux.API.Controllers { deserRes.Args.Remove("RUID"); } - // lo aggiungo! -#if false - string envir = $"{deserRes.ExecEnvironment}"; -#endif + // completo info var mode = deserRes.Args["Mode"]; var sub = deserRes.Args["SubMode"]; var uid = deserRes.Args["UID"]; diff --git a/Lux.API/Lux.API.csproj b/Lux.API/Lux.API.csproj index 423bf527..c8d57074 100644 --- a/Lux.API/Lux.API.csproj +++ b/Lux.API/Lux.API.csproj @@ -4,7 +4,7 @@ net8.0 enable enable - 1.1.2602.1009 + 1.1.2603.0510 diff --git a/Lux.UI/Components/Compo/JobTask/JobStepMan.razor.cs b/Lux.UI/Components/Compo/JobTask/JobStepMan.razor.cs index 2c85217d..7b4034c0 100644 --- a/Lux.UI/Components/Compo/JobTask/JobStepMan.razor.cs +++ b/Lux.UI/Components/Compo/JobTask/JobStepMan.razor.cs @@ -171,24 +171,24 @@ namespace Lux.UI.Components.Compo.JobTask /// Edit articolo selezionato /// /// - protected async void DoEdit(JobStepModel curRec) + protected Task DoEdit(JobStepModel curRec) { editRecord = curRec; selRecord = curRec; #if false await EC_Selected.InvokeAsync(curRec); #endif - await Task.Delay(1); + return Task.Delay(1); } /// /// Reset selezione /// - protected async void DoReset() + protected Task DoReset() { editRecord = null; selRecord = null; - await EC_Selected.InvokeAsync(selRecord); + return EC_Selected.InvokeAsync(selRecord); } /// @@ -213,10 +213,10 @@ namespace Lux.UI.Components.Compo.JobTask /// Selezione articolo x display info /// /// - protected async void DoSelect(JobStepModel curRec) + protected Task DoSelect(JobStepModel curRec) { selRecord = curRec; - await EC_Selected.InvokeAsync(curRec); + return EC_Selected.InvokeAsync(curRec); } protected override void OnParametersSet() diff --git a/Lux.UI/Components/Compo/OfferMan.razor.cs b/Lux.UI/Components/Compo/OfferMan.razor.cs index e5914cd4..72dc4d30 100644 --- a/Lux.UI/Components/Compo/OfferMan.razor.cs +++ b/Lux.UI/Components/Compo/OfferMan.razor.cs @@ -5,16 +5,28 @@ using System.Threading.Tasks; namespace Lux.UI.Components.Compo { + /// + /// Componente per la gestione delle offerte. + /// public partial class OfferMan { #region Public Properties + /// + /// Modello dell'offerta corrente (bindato dal genitore). + /// [Parameter] public OfferModel CurrRecord { get; set; } = null!; + /// + /// Callback invocato al chiusura della finestra (con valore true per cancellazione). + /// [Parameter] public EventCallback EC_Close { get; set; } + /// + /// Callback invocato al salvataggio con l'offerta aggiornata. + /// [Parameter] public EventCallback EC_Updated { get; set; } @@ -22,6 +34,9 @@ namespace Lux.UI.Components.Compo #region Protected Properties + /// + /// Servizi di accesso ai dati iniettati dal framework. + /// [Inject] protected DataLayerServices DLService { get; set; } = null!; @@ -29,6 +44,9 @@ namespace Lux.UI.Components.Compo #region Protected Methods + /// + /// Chiamato automaticamente all'inizializzazione del componente. + /// protected override void OnInitialized() { ReloadData(); @@ -38,6 +56,9 @@ namespace Lux.UI.Components.Compo #region Private Fields + /// + /// Lista di tutti i clienti caricati. + /// private List CustomersList = new List(); private List DealersList = new List(); @@ -46,15 +67,15 @@ namespace Lux.UI.Components.Compo #region Private Methods - private async Task DoCancel() + private Task DoCancel() { - await EC_Close.InvokeAsync(true); + return EC_Close.InvokeAsync(true); } - private async Task DoSave() + private Task DoSave() { // richiesta update con salvataggio record - await EC_Updated.InvokeAsync(CurrRecord); + return EC_Updated.InvokeAsync(CurrRecord); } private void ReloadData() diff --git a/Lux.UI/Components/Compo/OfferRowMan.razor b/Lux.UI/Components/Compo/OfferRowMan.razor index 2fc2a462..8e90ffc2 100644 --- a/Lux.UI/Components/Compo/OfferRowMan.razor +++ b/Lux.UI/Components/Compo/OfferRowMan.razor @@ -6,7 +6,7 @@ LiveData="CurrData" EC_ActionReq="DoAction" EC_DoUpdate="ExecRequest" - EC_OnClose="CloseEdit"> + EC_OnClose="CloseEditJwd"> } else @@ -101,6 +101,7 @@ else @foreach (var item in ListRecords) { bool isNote = item.SellingItemID == null; + bool isBuy = (item.SellingItemID > 2 && item.SellingItemID < 5); @@ -146,13 +147,21 @@ else @if (DisplayMode == EgwCoreLib.Lux.Core.Enums.DisplayMode.Edit) { - @if (item.Envir == EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW) + @* rifare gestione switch tipo obj!!!! *@ + @if (isBuy) { - + } else { - + @if (item.Envir == EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW) + { + + } + else + { + + } } } @@ -184,14 +193,17 @@ else } } - @if (item.Envir != EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW || !string.IsNullOrEmpty(item.FileName)) + @if (!isBuy) { -
  • -
    -
    @item.FileName
    -
    - @fSize(item.FileSize) -
  • + @if (item.Envir != EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW || !string.IsNullOrEmpty(item.FileName)) + { +
  • +
    +
    @item.FileName
    +
    + @fSize(item.FileSize) +
  • + } } @* @if (PreparedFile.Contains(FixUidName(item.OfferRowUID))) { diff --git a/Lux.UI/Components/Compo/OfferRowMan.razor.cs b/Lux.UI/Components/Compo/OfferRowMan.razor.cs index 49ecc29c..d4cc247b 100644 --- a/Lux.UI/Components/Compo/OfferRowMan.razor.cs +++ b/Lux.UI/Components/Compo/OfferRowMan.razor.cs @@ -723,6 +723,7 @@ namespace Lux.UI.Components.Compo /// Channel update Profile List /// private string chProfElem = ""; + /// /// Channel update Profile List /// @@ -738,6 +739,7 @@ namespace Lux.UI.Components.Compo /// private string chSvg = ""; + private List currAreaProfiles = new(); private List? CurrBomList = null; /// @@ -746,8 +748,6 @@ namespace Lux.UI.Components.Compo private EditMode CurrEditMode = EditMode.None; private Dictionary currGroupShape = new(); - private List currAreaProfiles = new(); - private Dictionary currHwOption = new(); private int currPage = 1; @@ -905,6 +905,17 @@ namespace Lux.UI.Components.Compo } } + /// + /// Chiude edit con preprocess x caso JWD + /// + /// + /// + private Task CloseEditJwd(DataSave infoSave) + { + prevJwd = infoSave.currJwd; + return CloseEdit(infoSave.open); + } + private void ConfInit() { basePath = Config.GetValue("ServerConf:FileSharePath") ?? "unsafe_uploads"; @@ -1627,7 +1638,7 @@ namespace Lux.UI.Components.Compo /// /// /// - private async void UpdateBom(List newBomList) + private async Task UpdateBom(List newBomList) { if (EditRecord != null) { diff --git a/Lux.UI/Components/Compo/OrderRowMan.razor b/Lux.UI/Components/Compo/OrderRowMan.razor index 8ddf1869..bf3de9d5 100644 --- a/Lux.UI/Components/Compo/OrderRowMan.razor +++ b/Lux.UI/Components/Compo/OrderRowMan.razor @@ -6,7 +6,7 @@ LiveData="CurrData" EC_ActionReq="DoAction" EC_DoUpdate="ExecRequest" - EC_OnClose="CloseEdit"> + EC_OnClose="CloseEditJwd"> } else @@ -106,6 +106,7 @@ else @foreach (var item in ListRecords) { bool isNote = item.Original.SellingItemID == null; + bool isBuy = (item.Original.SellingItemID> 2 && item.Original.SellingItemID < 5); @@ -151,13 +152,21 @@ else @if (DisplayMode == EgwCoreLib.Lux.Core.Enums.DisplayMode.Edit) { - @if (item.Original.Envir == EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW) + @* rifare gestione switch tipo obj!!!! *@ + @if (isBuy) { - + } else { - + @if (item.Original.Envir == EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW) + { + + } + else + { + + } } } diff --git a/Lux.UI/Components/Compo/OrderRowMan.razor.cs b/Lux.UI/Components/Compo/OrderRowMan.razor.cs index 60b79a3b..596bbc78 100644 --- a/Lux.UI/Components/Compo/OrderRowMan.razor.cs +++ b/Lux.UI/Components/Compo/OrderRowMan.razor.cs @@ -783,7 +783,7 @@ namespace Lux.UI.Components.Compo /// protected async Task ReRunJob() { - if (WorkLoadRecord != null && SelRecord!=null) + if (WorkLoadRecord != null && SelRecord != null) { if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler rimettere in coda il calcolo?")) return; @@ -1083,6 +1083,17 @@ namespace Lux.UI.Components.Compo } } + /// + /// Chiude edit con preprocess x caso JWD + /// + /// + /// + private Task CloseEditJwd(DataSave infoSave) + { + prevJwd = infoSave.currJwd; + return CloseEdit(infoSave.open); + } + private void ConfInit() { basePath = Config.GetValue("ServerConf:FileSharePath") ?? "unsafe_uploads"; @@ -1793,7 +1804,7 @@ namespace Lux.UI.Components.Compo /// /// /// - private async void UpdateBom(List newBomList) + private async Task UpdateBom(List newBomList) { if (EditRecord != null) { diff --git a/Lux.UI/Components/Compo/WorkLoad/JobQueueDisplay.razor.cs b/Lux.UI/Components/Compo/WorkLoad/JobQueueDisplay.razor.cs index 90171c5c..f218f5bb 100644 --- a/Lux.UI/Components/Compo/WorkLoad/JobQueueDisplay.razor.cs +++ b/Lux.UI/Components/Compo/WorkLoad/JobQueueDisplay.razor.cs @@ -32,19 +32,19 @@ namespace Lux.UI.Components.Compo.WorkLoad UpdateTable(); } - protected async Task ReRunJob(string? JobCode) + protected Task ReRunJob(string? JobCode) { - await EC_ReRunJob.InvokeAsync(JobCode); + return EC_ReRunJob.InvokeAsync(JobCode); } - protected async Task ResetRunQueue() + protected Task ResetRunQueue() { - await EC_ResetQueue.InvokeAsync("Run"); + return EC_ResetQueue.InvokeAsync("Run"); } - protected async Task ResetWaitQueue() + protected Task ResetWaitQueue() { - await EC_ResetQueue.InvokeAsync("Wait"); + return EC_ResetQueue.InvokeAsync("Wait"); } protected void SaveNumRec(int newNum) diff --git a/Lux.UI/Components/Compo/WorkLoad/PartStatus.razor.cs b/Lux.UI/Components/Compo/WorkLoad/PartStatus.razor.cs index b080086e..18198698 100644 --- a/Lux.UI/Components/Compo/WorkLoad/PartStatus.razor.cs +++ b/Lux.UI/Components/Compo/WorkLoad/PartStatus.razor.cs @@ -20,14 +20,14 @@ namespace Lux.UI.Components.Compo.WorkLoad #region Protected Methods - protected async Task ClosePopup() + protected Task ClosePopup() { - await EC_ClosePopup.InvokeAsync(true); + return EC_ClosePopup.InvokeAsync(true); } - protected async Task ReRunJob() + protected Task ReRunJob() { - await EC_ReRunReq.InvokeAsync(true); + return EC_ReRunReq.InvokeAsync(true); } #endregion Protected Methods diff --git a/Lux.UI/Components/Compo/WorkLoad/RawPartSelector.razor.cs b/Lux.UI/Components/Compo/WorkLoad/RawPartSelector.razor.cs index 8bc56f4c..c7697038 100644 --- a/Lux.UI/Components/Compo/WorkLoad/RawPartSelector.razor.cs +++ b/Lux.UI/Components/Compo/WorkLoad/RawPartSelector.razor.cs @@ -65,7 +65,7 @@ namespace Lux.UI.Components.Compo.WorkLoad /// Aggiunge un set standard /// /// - private async void DoAddStdSet(KeyValuePair> selEntry) + private async Task DoAddStdSet(KeyValuePair> selEntry) { // aggiungo se mancassero... int cLenght = 0; diff --git a/Lux.UI/Lux.UI.csproj b/Lux.UI/Lux.UI.csproj index 23943f68..524dc0fa 100644 --- a/Lux.UI/Lux.UI.csproj +++ b/Lux.UI/Lux.UI.csproj @@ -5,7 +5,7 @@ enable enable aspnet-Lux.UI-a758c101-a2f4-4e38-977d-1c4887dbbd50 - 1.1.2602.1009 + 1.1.2603.0510 diff --git a/Lux.UI/wwwroot/images/SellingItemID_03.png b/Lux.UI/wwwroot/images/SellingItemID_03.png new file mode 100644 index 00000000..26237ab8 Binary files /dev/null and b/Lux.UI/wwwroot/images/SellingItemID_03.png differ diff --git a/Lux.UI/wwwroot/images/SellingItemID_04.png b/Lux.UI/wwwroot/images/SellingItemID_04.png new file mode 100644 index 00000000..49c3c371 Binary files /dev/null and b/Lux.UI/wwwroot/images/SellingItemID_04.png differ diff --git a/Resources/ChangeLog.html b/Resources/ChangeLog.html index 07fb16ba..71755d85 100644 --- a/Resources/ChangeLog.html +++ b/Resources/ChangeLog.html @@ -1,6 +1,6 @@ LUX - Web Windows MES -

    Versione: 1.1.2602.1009

    +

    Versione: 1.1.2603.0510


    Note di rilascio:
    • diff --git a/Resources/VersNum.txt b/Resources/VersNum.txt index 51b62139..f97fc258 100644 --- a/Resources/VersNum.txt +++ b/Resources/VersNum.txt @@ -1 +1 @@ -1.1.2602.1009 +1.1.2603.0510 diff --git a/Resources/manifest.xml b/Resources/manifest.xml index 0ca636eb..7c1cc694 100644 --- a/Resources/manifest.xml +++ b/Resources/manifest.xml @@ -1,6 +1,6 @@ - 1.1.2602.1009 + 1.1.2603.0510 http://nexus.steamware.net/repository/SWS/GPW/stable/GPW.UI.zip http://nexus.steamware.net/repository/SWS/GPW/stable/ChangeLog.html false