From 49e49ff95ece8f45e567710502f7b52047b09740 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 16 Oct 2025 10:42:50 +0200 Subject: [PATCH] update struttura dati x preselezioni valori salvati --- EgwCoreLib.Lux.Core/ParamDict.cs | 89 + .../Controllers/LuxController.cs | 86 + .../DbModel/Sales/OfferModel.cs | 8 +- .../DbModel/Sales/OfferRowModel.cs | 2 +- .../DbModel/Sales/OrderModel.cs | 5 + ...51015154324_AddOfferPreselDict.Designer.cs | 2807 ++++++++++++++++ .../20251015154324_AddOfferPreselDict.cs | 352 +++ ...51015154525_AddOrderPreselDict.Designer.cs | 2815 +++++++++++++++++ .../20251015154525_AddOrderPreselDict.cs | 352 +++ .../DataLayerContextModelSnapshot.cs | 112 +- .../Services/DataLayerServices.cs | 39 + 11 files changed, 6615 insertions(+), 52 deletions(-) create mode 100644 EgwCoreLib.Lux.Core/ParamDict.cs create mode 100644 EgwCoreLib.Lux.Data/Migrations/20251015154324_AddOfferPreselDict.Designer.cs create mode 100644 EgwCoreLib.Lux.Data/Migrations/20251015154324_AddOfferPreselDict.cs create mode 100644 EgwCoreLib.Lux.Data/Migrations/20251015154525_AddOrderPreselDict.Designer.cs create mode 100644 EgwCoreLib.Lux.Data/Migrations/20251015154525_AddOrderPreselDict.cs diff --git a/EgwCoreLib.Lux.Core/ParamDict.cs b/EgwCoreLib.Lux.Core/ParamDict.cs new file mode 100644 index 00000000..05b6fad2 --- /dev/null +++ b/EgwCoreLib.Lux.Core/ParamDict.cs @@ -0,0 +1,89 @@ +using Newtonsoft.Json; + +namespace EgwCoreLib.Lux.Core +{ + /// + /// Generico dizionario parametri con funzione ricerca valore (SE presente) + /// + public class ParamDict + { + #region Public Constructors + + /// + /// init classe dal valore serializzato del dizionario + /// + /// + public ParamDict(string rawVal) + { + DictVals = JsonConvert.DeserializeObject>(rawVal) ?? new Dictionary(); + } + + /// + /// init classe da dizionario + /// + /// + public ParamDict(Dictionary newDict) + { + DictVals = newDict; + } + + #endregion Public Constructors + + #region Public Properties + + /// + /// Versione serializzata del dizionario + /// + public string Serialized + { + get => JsonConvert.SerializeObject(DictVals); + } + + #endregion Public Properties + + #region Public Methods + + /// + /// Ricerca (se disponibile) il valore della chiave richiesta + /// + /// + /// + public string GetVal(string reqKey) + { + string answ = ""; + if (DictVals.ContainsKey(reqKey)) + { + answ = DictVals[reqKey]; + } + return answ; + } + + /// + /// Imposta valore (aggiungendo se mancasse) + /// + /// + /// + public void SetVal(string Key, string Val) + { + if (DictVals.ContainsKey(Key)) + { + DictVals[Key] = Val; + } + else + { + DictVals.Add(Key, Val); + } + } + + #endregion Public Methods + + #region Private Properties + + /// + /// Dizionario interno valori + /// + private Dictionary DictVals { get; set; } = new Dictionary(); + + #endregion Private Properties + } +} \ No newline at end of file diff --git a/EgwCoreLib.Lux.Data/Controllers/LuxController.cs b/EgwCoreLib.Lux.Data/Controllers/LuxController.cs index 7bf5b8c8..8987afdc 100644 --- a/EgwCoreLib.Lux.Data/Controllers/LuxController.cs +++ b/EgwCoreLib.Lux.Data/Controllers/LuxController.cs @@ -1232,6 +1232,50 @@ namespace EgwCoreLib.Lux.Data.Controllers return dbResult; } + /// + /// Aggiornamento valore UID non calcolato + ritorno elenco UID da aggiornare + /// + /// + /// + internal List OffertRowFixUid(int offertID) + { + List answ = new List(); + //using (DataLayerContext dbCtx = new DataLayerContext(_config)) + using (DataLayerContext dbCtx = new DataLayerContext()) + { + try + { + var currList = dbCtx + .DbSetOfferRow + .Where(x => x.OfferID == offertID) + .ToList(); + // se trovato --> verifico valori differenti, aggiorno e restituisco da calcolare + if (currList != null) + { + var list2fix = currList.Where(x => string.IsNullOrEmpty(x.OfferRowUID) || x.OfferRowUID != x.OfferRowDtx).ToList(); + if (list2fix != null && list2fix.Count > 0) + { + // salvo elenco + answ = list2fix.Select(x => x.OfferRowDtx).ToList(); + // sistemo UID + foreach (var item in list2fix) + { + item.OfferRowUID = item.OfferRowDtx; + dbCtx.Entry(item).State = EntityState.Modified; + } + // salvo... + var result = dbCtx.SaveChanges(); + } + } + } + catch (Exception exc) + { + Log.Error($"Eccezione durante OffertRowFixUid{Environment.NewLine}{exc}"); + } + } + return answ; + } + /// /// Effettua update dei costi di tutte le righe dell'offerta indicata /// @@ -1375,6 +1419,48 @@ namespace EgwCoreLib.Lux.Data.Controllers return answ; } + /// + /// Upsert record riga offerta + /// + /// + /// + internal async Task OffertRowUpsert(OfferRowModel updRec) + { + bool answ = false; + //using (DataLayerContext dbCtx = new DataLayerContext(_config)) + using (DataLayerContext dbCtx = new DataLayerContext()) + { + try + { + // recupero offerta... + var currRec = dbCtx + .DbSetOfferRow + .Where(x => x.OfferRowID == updRec.OfferRowID) + .FirstOrDefault(); + + // se non trovo aggiungo + if (currRec == null) + { + dbCtx.DbSetOfferRow.Add(updRec); + } + // altrimenti aggiorno + else + { + dbCtx.Entry(currRec).CurrentValues.SetValues(updRec); + } + + // salvo TUTTI i cambiamenti... + var result = await dbCtx.SaveChangesAsync(); + answ = result > 0; + } + catch (Exception exc) + { + Log.Error($"Eccezione durante OffertRowUpsert{Environment.NewLine}{exc}"); + } + } + return answ; + } + /// /// Effettua update stato await BOM/PRICE per l'offerta indicata /// diff --git a/EgwCoreLib.Lux.Data/DbModel/Sales/OfferModel.cs b/EgwCoreLib.Lux.Data/DbModel/Sales/OfferModel.cs index fee06031..b8952cdb 100644 --- a/EgwCoreLib.Lux.Data/DbModel/Sales/OfferModel.cs +++ b/EgwCoreLib.Lux.Data/DbModel/Sales/OfferModel.cs @@ -43,7 +43,8 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales [NotMapped] public string OfferCode { - get => $"{RefYear:00}.{RefNum:00000}.{RefRev:00}"; + get => $"OFF{RefYear:00}.{RefNum:000000}"; + //get => $"{RefYear:00}.{RefNum:000000}.{RefRev:00}"; } /// @@ -61,6 +62,11 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales /// public int DealerID { get; set; } + /// + /// Dizionario serializzato delle preselezioni (opzionale) + /// + public string DictPresel { get; set; } = ""; + /// /// Validità offerta /// diff --git a/EgwCoreLib.Lux.Data/DbModel/Sales/OfferRowModel.cs b/EgwCoreLib.Lux.Data/DbModel/Sales/OfferRowModel.cs index 16f4963d..2cc53ecb 100644 --- a/EgwCoreLib.Lux.Data/DbModel/Sales/OfferRowModel.cs +++ b/EgwCoreLib.Lux.Data/DbModel/Sales/OfferRowModel.cs @@ -43,7 +43,7 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales [NotMapped] public string OfferRowDtx { - get => $"OFF{Inserted:yy}{OfferRowID:000000000}"; + get => $"OFF{Inserted:yy}{OfferID:000000}{RowNum:0000}"; } /// diff --git a/EgwCoreLib.Lux.Data/DbModel/Sales/OrderModel.cs b/EgwCoreLib.Lux.Data/DbModel/Sales/OrderModel.cs index 047f6a3b..caa4b977 100644 --- a/EgwCoreLib.Lux.Data/DbModel/Sales/OrderModel.cs +++ b/EgwCoreLib.Lux.Data/DbModel/Sales/OrderModel.cs @@ -70,6 +70,11 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales /// public int DealerID { get; set; } + /// + /// Dizionario serializzato delle preselezioni (opzionale) + /// + public string DictPresel { get; set; } = ""; + /// /// Validità Ordine /// diff --git a/EgwCoreLib.Lux.Data/Migrations/20251015154324_AddOfferPreselDict.Designer.cs b/EgwCoreLib.Lux.Data/Migrations/20251015154324_AddOfferPreselDict.Designer.cs new file mode 100644 index 00000000..9b0c423a --- /dev/null +++ b/EgwCoreLib.Lux.Data/Migrations/20251015154324_AddOfferPreselDict.Designer.cs @@ -0,0 +1,2807 @@ +// +using System; +using EgwCoreLib.Lux.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace EgwCoreLib.Lux.Data.Migrations +{ + [DbContext(typeof(DataLayerContext))] + [Migration("20251015154324_AddOfferPreselDict")] + partial class AddOfferPreselDict + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.17") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Config.EnvirParamModel", b => + { + b.Property("EnvirID") + .HasColumnType("int"); + + b.Property("SerStrucKey") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("EnvirID"); + + b.ToTable("conf_envir"); + + b.HasData( + new + { + EnvirID = 1, + SerStrucKey = "Jwd" + }, + new + { + EnvirID = 2, + SerStrucKey = "Btl" + }, + new + { + EnvirID = 4, + SerStrucKey = "Btl" + }, + new + { + EnvirID = 3, + SerStrucKey = "Btl" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Config.GlassModel", b => + { + b.Property("GlassID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("GlassID")); + + b.Property("Code") + .HasColumnType("longtext"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("Thickness") + .HasColumnType("double"); + + b.HasKey("GlassID"); + + b.ToTable("conf_glass"); + + b.HasData( + new + { + GlassID = 1, + Code = "0001", + Description = "Vetro BE 2S 4/12/4", + Thickness = 20.0 + }, + new + { + GlassID = 2, + Code = "0002", + Description = "Vetro BE 2S 4/16/4", + Thickness = 24.0 + }, + new + { + GlassID = 3, + Code = "0003", + Description = "Vetro BE 3S 4/12/4/12/4", + Thickness = 36.0 + }, + new + { + GlassID = 4, + Code = "0004", + Description = "Vetro BE 3S 4/16/4/16/4", + Thickness = 44.0 + }, + new + { + GlassID = 5, + Code = "0005", + Description = "Vetro BE 2S 4T/12/4T", + Thickness = 20.0 + }, + new + { + GlassID = 6, + Code = "0006", + Description = "Vetro BE 2S 4T/16/4T", + Thickness = 24.0 + }, + new + { + GlassID = 7, + Code = "0007", + Description = "Vetro BE 3S 4T/12/4T/12/4T", + Thickness = 36.0 + }, + new + { + GlassID = 8, + Code = "0008", + Description = "Vetro BE 3S 4T/16/4T/16/4T", + Thickness = 44.0 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Config.ProfileModel", b => + { + b.Property("ProfileID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProfileID")); + + b.Property("Code") + .HasColumnType("longtext"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("Thickness") + .HasColumnType("double"); + + b.HasKey("ProfileID"); + + b.ToTable("conf_profile"); + + b.HasData( + new + { + ProfileID = 1, + Code = "0001", + Description = "Profilo60", + Thickness = 60.0 + }, + new + { + ProfileID = 2, + Code = "0002", + Description = "Profilo78", + Thickness = 78.0 + }, + new + { + ProfileID = 3, + Code = "0003", + Description = "Profilo90", + Thickness = 90.0 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Config.WoodModel", b => + { + b.Property("WoodID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("WoodID")); + + b.Property("Code") + .HasColumnType("longtext"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("Type") + .HasColumnType("int"); + + b.HasKey("WoodID"); + + b.ToTable("conf_wood"); + + b.HasData( + new + { + WoodID = 1, + Code = "0001", + Description = "Abete", + Type = 1 + }, + new + { + WoodID = 2, + Code = "0002", + Description = "Acero", + Type = 1 + }, + new + { + WoodID = 3, + Code = "0003", + Description = "Pino", + Type = 2 + }, + new + { + WoodID = 4, + Code = "0004", + Description = "Tek", + Type = 3 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Cost.CostDriverModel", b => + { + b.Property("CostDriverID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CostDriverID")); + + b.Property("Descript") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Unit") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("CostDriverID"); + + b.ToTable("cost_driver"); + + b.HasData( + new + { + CostDriverID = 1, + Descript = "Ore lavorate per step/fase", + Name = "WorkHour", + Unit = "h" + }, + new + { + CostDriverID = 2, + Descript = "Metri prodotti per step/fase", + Name = "Meter", + Unit = "m" + }, + new + { + CostDriverID = 3, + Descript = "Numero unità prodotte (lavorate) per step/fase", + Name = "Unit", + Unit = "#" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", b => + { + b.Property("ResourceID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ResourceID")); + + b.Property("CostDriverBudget") + .HasColumnType("decimal(65,30)"); + + b.Property("CostDriverID") + .HasColumnType("int"); + + b.Property("EBTPerc") + .HasColumnType("decimal(65,30)"); + + b.Property("FixedCost") + .HasColumnType("decimal(65,30)"); + + b.Property("LaborCost") + .HasColumnType("decimal(65,30)"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("OverHeadCost") + .HasColumnType("decimal(65,30)"); + + b.Property("OverHeadPerc") + .HasColumnType("decimal(65,30)"); + + b.Property("PriceMargin") + .HasColumnType("decimal(65,30)"); + + b.Property("VariableCost") + .HasColumnType("decimal(65,30)"); + + b.HasKey("ResourceID"); + + b.HasIndex("CostDriverID"); + + b.ToTable("cost_resource"); + + b.HasData( + new + { + ResourceID = 1, + CostDriverBudget = 880m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 12000m, + LaborCost = 30m, + Name = "Sezionatrice", + OverHeadCost = 5000m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 6000m + }, + new + { + ResourceID = 2, + CostDriverBudget = 1760m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 100000m, + LaborCost = 40m, + Name = "Linea SAOMAD WoodPecker Just 3500", + OverHeadCost = 15000m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 30000m + }, + new + { + ResourceID = 3, + CostDriverBudget = 1760m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 24000m, + LaborCost = 35m, + Name = "Linea Pantografo", + OverHeadCost = 5000m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 6000m + }, + new + { + ResourceID = 4, + CostDriverBudget = 880m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 24000m, + LaborCost = 30m, + Name = "Stazione Verniciatura", + OverHeadCost = 3000m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 6000m + }, + new + { + ResourceID = 5, + CostDriverBudget = 220m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 6000m, + LaborCost = 30m, + Name = "Verniciatura Manuale", + OverHeadCost = 3000m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 2000m + }, + new + { + ResourceID = 6, + CostDriverBudget = 3520m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 500m, + LaborCost = 30m, + Name = "Montaggio Manuale", + OverHeadCost = 500m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 500m + }, + new + { + ResourceID = 7, + CostDriverBudget = 3520m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 0m, + LaborCost = 40m, + Name = "Installatore", + OverHeadCost = 0m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 3000m + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.ItemGroupModel", b => + { + b.Property("CodGroup") + .HasColumnType("varchar(255)"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("CodGroup"); + + b.ToTable("item_group"); + + b.HasData( + new + { + CodGroup = "WindowTrunk", + Description = "Barre legno per lavorazione" + }, + new + { + CodGroup = "WindowGlass", + Description = "Vetri serramento" + }, + new + { + CodGroup = "WindowVarnish", + Description = "Vernici per legno" + }, + new + { + CodGroup = "WindowHardware", + Description = "Ferramenta serramento" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.ItemModel", b => + { + b.Property("ItemID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ItemID")); + + b.Property("CodGroup") + .IsRequired() + .HasColumnType("varchar(255)"); + + b.Property("Cost") + .HasColumnType("double"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ExtItemCode") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("IsService") + .HasColumnType("tinyint(1)"); + + b.Property("ItemCode") + .HasColumnType("int"); + + b.Property("ItemIDParent") + .HasColumnType("int"); + + b.Property("ItemType") + .HasColumnType("int"); + + b.Property("Margin") + .HasColumnType("double"); + + b.Property("QtyMax") + .HasColumnType("double"); + + b.Property("QtyMin") + .HasColumnType("double"); + + b.Property("SupplCode") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("UM") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("ItemID"); + + b.HasIndex("CodGroup"); + + b.ToTable("item_item"); + + b.HasData( + new + { + ItemID = 1, + CodGroup = "WindowTrunk", + Cost = 20.0, + Description = "BARRA-60x80 generica", + ExtItemCode = "", + IsService = false, + ItemCode = 1001, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.29999999999999999, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "BARR.001", + UM = "#" + }, + new + { + ItemID = 2, + CodGroup = "WindowTrunk", + Cost = 16.5, + Description = "Barra 60x80, lunghezza 12m", + ExtItemCode = "BARRA-60x80x12000", + IsService = false, + ItemCode = 1002, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20999999999999999, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "ABC.00123.12000", + UM = "#" + }, + new + { + ItemID = 3, + CodGroup = "WindowTrunk", + Cost = 17.5, + Description = "Barra 60x80, lunghezza 8m", + ExtItemCode = "BARRA-60x80x8000", + IsService = false, + ItemCode = 1003, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.22, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "ABC.00123.8000", + UM = "#" + }, + new + { + ItemID = 4, + CodGroup = "WindowTrunk", + Cost = 15.5, + Description = "Barra 60x80, lunghezza 16m", + ExtItemCode = "BARRA-60x80x16000", + IsService = false, + ItemCode = 1004, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "ABC.00123.16000", + UM = "#" + }, + new + { + ItemID = 5, + CodGroup = "WindowGlass", + Cost = 300.0, + Description = "Vetro triplo, basso indice termico, 800x1000", + ExtItemCode = "VETRO-3L-THERMO-800x1000", + IsService = false, + ItemCode = 2001, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "V3T.800.1000", + UM = "m2" + }, + new + { + ItemID = 6, + CodGroup = "WindowGlass", + Cost = 200.0, + Description = "Vetro doppio, 800x1000", + ExtItemCode = "VETRO-2L-800x1000", + IsService = false, + ItemCode = 2002, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.14999999999999999, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "V2.800.1000", + UM = "m2" + }, + new + { + ItemID = 7, + CodGroup = "WindowGlass", + Cost = 250.0, + Description = "Vetro triplo, 800x1000", + ExtItemCode = "VETRO-3L-800x1000", + IsService = false, + ItemCode = 2003, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.17999999999999999, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "V3.800.1000", + UM = "m2" + }, + new + { + ItemID = 8, + CodGroup = "WindowVarnish", + Cost = 20.0, + Description = "Vernice trasparente", + ExtItemCode = "VERN-TRASP", + IsService = false, + ItemCode = 3001, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "VT.STD", + UM = "l" + }, + new + { + ItemID = 9, + CodGroup = "WindowHardware", + Cost = 65.0, + Description = "Kit standard completo AGB tipo 001", + ExtItemCode = "KIT-001", + IsService = false, + ItemCode = 5001, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "AGB-KIT-001", + UM = "#" + }, + new + { + ItemID = 10, + CodGroup = "WindowHardware", + Cost = 10.0, + Description = "Cerniera AGB tipo 001", + ExtItemCode = "CERN-001", + IsService = false, + ItemCode = 5002, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "AGB-CERN-001", + UM = "#" + }, + new + { + ItemID = 11, + CodGroup = "WindowHardware", + Cost = 15.0, + Description = "Serratura AGB tipo 001", + ExtItemCode = "SERR-001", + IsService = false, + ItemCode = 5003, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "AGB-SERR-001", + UM = "#" + }, + new + { + ItemID = 12, + CodGroup = "WindowHardware", + Cost = 25.0, + Description = "Maniglia AGB tipo 001", + ExtItemCode = "MAN-001", + IsService = false, + ItemCode = 5004, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "AGB-MAN-001", + UM = "#" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.SellingItemModel", b => + { + b.Property("SellingItemID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("SellingItemID")); + + b.Property("Cost") + .HasColumnType("double"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ExtItemCode") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("IsService") + .HasColumnType("tinyint(1)"); + + b.Property("ItemCode") + .HasColumnType("int"); + + b.Property("ItemSteps") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("JobID") + .HasColumnType("int"); + + b.Property("Margin") + .HasColumnType("double"); + + b.Property("SerStruct") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("SupplCode") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("UM") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("SellingItemID"); + + b.HasIndex("JobID"); + + b.ToTable("item_selling_item"); + + b.HasData( + new + { + SellingItemID = 1, + Cost = 820.0, + Description = "Finestra anta Singola", + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 2, + Margin = 0.20000000000000001, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 2, + Cost = 150.0, + Description = "Persiana anta singola", + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 1, + Margin = 0.10000000000000001, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 3, + Cost = 200.0, + Description = "Installazione", + ExtItemCode = "", + IsService = true, + ItemCode = 0, + ItemSteps = "", + JobID = 1, + Margin = 0.29999999999999999, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 4, + Cost = 1000.0, + Description = "Trave lamellare", + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 3, + Margin = 0.29999999999999999, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 5, + Cost = 500.0, + Description = "Cabinet", + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 4, + Margin = 0.29999999999999999, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 6, + Cost = 2000.0, + Description = "Parete", + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 5, + Margin = 0.29999999999999999, + SerStruct = "", + SupplCode = "", + UM = "#" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.SupplierModel", b => + { + b.Property("SupplierID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("SupplierID")); + + b.Property("CompanyName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FirstName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("VAT") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("SupplierID"); + + b.ToTable("item_supplier"); + + b.HasData( + new + { + SupplierID = 1, + CompanyName = "Company One", + FirstName = "Supplier A", + LastName = "Egalware", + VAT = "7294857103879254" + }, + new + { + SupplierID = 2, + CompanyName = "Company Two", + FirstName = "Supplier B", + LastName = "User", + VAT = "7294857103879254" + }, + new + { + SupplierID = 3, + CompanyName = "Company Two", + FirstName = "Supplier C", + LastName = "User Test", + VAT = "7294857103879254" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionBatchModel", b => + { + b.Property("ProductionBatchID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProductionBatchID")); + + b.Property("DateEnd") + .HasColumnType("datetime(6)"); + + b.Property("DateStart") + .HasColumnType("datetime(6)"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("DueDate") + .HasColumnType("datetime(6)"); + + b.HasKey("ProductionBatchID"); + + b.ToTable("production_batch"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemModel", b => + { + b.Property("ProdItemID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProdItemID")); + + b.Property("ExtItemCode") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ItemCode") + .HasColumnType("int"); + + b.Property("OrderRowID") + .HasColumnType("int"); + + b.Property("ProductionBatchID") + .HasColumnType("int"); + + b.HasKey("ProdItemID"); + + b.HasIndex("OrderRowID"); + + b.HasIndex("ProductionBatchID"); + + b.ToTable("production_item"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemStepModel", b => + { + b.Property("ProdItemStepID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProdItemStepID")); + + b.Property("DateEnd") + .HasColumnType("datetime(6)"); + + b.Property("DateStart") + .HasColumnType("datetime(6)"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Index") + .HasColumnType("int"); + + b.Property("PhaseID") + .HasColumnType("int"); + + b.Property("ProdItemID") + .HasColumnType("int"); + + b.Property("Qty") + .HasColumnType("double"); + + b.Property("ResourceID") + .HasColumnType("int"); + + b.Property("WorkTime") + .HasColumnType("double"); + + b.HasKey("ProdItemStepID"); + + b.HasIndex("PhaseID"); + + b.HasIndex("ProdItemID"); + + b.HasIndex("ResourceID"); + + b.ToTable("production_item_step"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.CustomerModel", b => + { + b.Property("CustomerID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CustomerID")); + + b.Property("CompanyName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FirstName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("VAT") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("CustomerID"); + + b.ToTable("sales_customer"); + + b.HasData( + new + { + CustomerID = 1, + CompanyName = "", + FirstName = "Customer A", + LastName = "Egalware", + VAT = "1234567890123456" + }, + new + { + CustomerID = 2, + CompanyName = "", + FirstName = "Customer B", + LastName = "User", + VAT = "1234567890123456" + }, + new + { + CustomerID = 3, + CompanyName = "", + FirstName = "Customer C", + LastName = "User Test", + VAT = "1234567890123456" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.DealerModel", b => + { + b.Property("DealerID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("DealerID")); + + b.Property("CompanyName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FirstName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("VAT") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("DealerID"); + + b.ToTable("sales_dealer"); + + b.HasData( + new + { + DealerID = 1, + CompanyName = "Company First", + FirstName = "Dealer A", + LastName = "Egalware", + VAT = "9587362514671527" + }, + new + { + DealerID = 2, + CompanyName = "Company First", + FirstName = "Dealer B", + LastName = "User", + VAT = "9587362514671527" + }, + new + { + DealerID = 3, + CompanyName = "Company Second", + FirstName = "Dealer C", + LastName = "User Test", + VAT = "9587362514671527" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", b => + { + b.Property("OfferID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("OfferID")); + + b.Property("CustomerID") + .HasColumnType("int"); + + b.Property("DealerID") + .HasColumnType("int"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Discount") + .HasColumnType("double"); + + b.Property("Envir") + .HasColumnType("int"); + + b.Property("Inserted") + .HasColumnType("datetime(6)"); + + b.Property("Modified") + .HasColumnType("datetime(6)"); + + b.Property("OffertState") + .HasColumnType("int"); + + b.Property("RefNum") + .HasColumnType("int"); + + b.Property("RefRev") + .HasColumnType("int"); + + b.Property("RefYear") + .HasColumnType("int"); + + b.Property("ValidUntil") + .HasColumnType("datetime(6)"); + + b.HasKey("OfferID"); + + b.HasIndex("CustomerID"); + + b.HasIndex("DealerID"); + + b.ToTable("sales_offer"); + + b.HasData( + new + { + OfferID = 1, + CustomerID = 2, + DealerID = 2, + Description = "Offerta per tre serramenti", + Discount = 0.0, + Envir = 1, + Inserted = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5795), + Modified = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5797), + OffertState = 0, + RefNum = 1, + RefRev = 1, + RefYear = 2024, + ValidUntil = new DateTime(2025, 11, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5792) + }, + new + { + OfferID = 2, + CustomerID = 2, + DealerID = 2, + Description = "Offerta BEAM", + Discount = 0.0, + Envir = 2, + Inserted = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5803), + Modified = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5805), + OffertState = 0, + RefNum = 2, + RefRev = 1, + RefYear = 2024, + ValidUntil = new DateTime(2025, 11, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5802) + }, + new + { + OfferID = 3, + CustomerID = 2, + DealerID = 2, + Description = "Offerta Cabinet", + Discount = 0.0, + Envir = 4, + Inserted = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5810), + Modified = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5811), + OffertState = 0, + RefNum = 3, + RefRev = 1, + RefYear = 2024, + ValidUntil = new DateTime(2025, 11, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5808) + }, + new + { + OfferID = 4, + CustomerID = 2, + DealerID = 2, + Description = "Offerta Wall", + Discount = 0.0, + Envir = 3, + Inserted = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5816), + Modified = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5817), + OffertState = 0, + RefNum = 4, + RefRev = 1, + RefYear = 2024, + ValidUntil = new DateTime(2025, 11, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5815) + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferRowModel", b => + { + b.Property("OfferRowID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("OfferRowID")); + + b.Property("AwaitBom") + .HasColumnType("tinyint(1)"); + + b.Property("AwaitPrice") + .HasColumnType("tinyint(1)"); + + b.Property("BomCost") + .HasColumnType("double"); + + b.Property("BomOk") + .HasColumnType("tinyint(1)"); + + b.Property("BomPrice") + .HasColumnType("double"); + + b.Property("Envir") + .HasColumnType("int"); + + b.Property("FileName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FileResource") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("Inserted") + .HasColumnType("datetime(6)"); + + b.Property("ItemBOM") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ItemOk") + .HasColumnType("tinyint(1)"); + + b.Property("ItemSteps") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Modified") + .HasColumnType("datetime(6)"); + + b.Property("Note") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("OfferID") + .HasColumnType("int"); + + b.Property("OfferRowUID") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Qty") + .HasColumnType("double"); + + b.Property("RowNum") + .HasColumnType("int"); + + b.Property("SellingItemID") + .HasColumnType("int"); + + b.Property("SerStruct") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("StepCost") + .HasColumnType("double"); + + b.Property("StepPrice") + .HasColumnType("double"); + + b.HasKey("OfferRowID"); + + b.HasIndex("OfferID"); + + b.HasIndex("SellingItemID"); + + b.ToTable("sales_offer_row"); + + b.HasData( + new + { + OfferRowID = 1, + AwaitBom = false, + AwaitPrice = false, + BomCost = 900.0, + BomOk = true, + BomPrice = 950.0, + Envir = 1, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5960), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5962), + Note = "Finestra anta singola 2025", + OfferID = 1, + OfferRowUID = "OFF250000010001", + Qty = 3.0, + RowNum = 1, + SellingItemID = 1, + SerStruct = "{\"ProfilePath\":\"Profilo78\",\"Material\":\"Pine\",\"ColorMaterial\":\"Black\",\"Glass\":\"4T/16/4T\",\"AreaList\":[{\"Shape\":\"RECTANGLE\",\"DimensionList\":[{\"nIndex\":1,\"sName\":\"Width\",\"dValue\":800.0},{\"nIndex\":2,\"sName\":\"Height\",\"dValue\":1200.0}],\"JointList\":[{\"nIndex\":1,\"JointType\":\"FULL_H\"},{\"nIndex\":2,\"JointType\":\"FULL_H\"},{\"nIndex\":3,\"JointType\":\"FULL_H\"},{\"nIndex\":4,\"JointType\":\"FULL_H\"}],\"BottomRail\":false,\"BottomRailQty\":0,\"IdGroup\":1,\"AreaList\":[{\"bIsSashVertical\":true,\"SashList\":[{\"nSashId\":1,\"OpeningType\":\"TILTTURN_LEFT\",\"bHasHandle\":true,\"dDimension\":100.0}],\"SashType\":\"NULL\",\"JointList\":[{\"nIndex\":1,\"JointType\":\"FULL_H\"},{\"nIndex\":2,\"JointType\":\"FULL_H\"},{\"nIndex\":3,\"JointType\":\"FULL_H\"},{\"nIndex\":4,\"JointType\":\"FULL_H\"}],\"BottomRail\":false,\"BottomRailQty\":0,\"Hardware\":\"000558\",\"IdGroup\":2,\"AreaList\":[{\"FillType\":\"GLASS\",\"IdGroup\":3,\"AreaList\":[],\"AreaType\":\"FILL\"}],\"AreaType\":\"SASH\"}],\"AreaType\":\"FRAME\"}]}", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 2, + AwaitBom = false, + AwaitPrice = false, + BomCost = 160.0, + BomOk = true, + BomPrice = 200.0, + Envir = 1, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5976), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5978), + Note = "Persiana per Finestra anta singola 2025", + OfferID = 1, + OfferRowUID = "OFF250000010002", + Qty = 3.0, + RowNum = 2, + SellingItemID = 2, + SerStruct = "{}", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 3, + AwaitBom = false, + AwaitPrice = false, + BomCost = 200.0, + BomOk = true, + BomPrice = 250.0, + Envir = 1, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5990), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5992), + Note = "Installazione serramento", + OfferID = 1, + OfferRowUID = "OFF250000010003", + Qty = 3.0, + RowNum = 3, + SellingItemID = 3, + SerStruct = "{}", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 4, + AwaitBom = false, + AwaitPrice = false, + BomCost = 800.0, + BomOk = true, + BomPrice = 1150.0, + Envir = 2, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6029), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6030), + Note = "Demo file 01", + OfferID = 2, + OfferRowUID = "OFF250000020001", + Qty = 10.0, + RowNum = 1, + SellingItemID = 4, + SerStruct = "", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 5, + AwaitBom = false, + AwaitPrice = false, + BomCost = 600.0, + BomOk = true, + BomPrice = 950.0, + Envir = 2, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6043), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6045), + Note = "Demo file 02", + OfferID = 2, + OfferRowUID = "OFF250000020002", + Qty = 4.0, + RowNum = 1, + SellingItemID = 4, + SerStruct = "", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 6, + AwaitBom = false, + AwaitPrice = false, + BomCost = 200.0, + BomOk = true, + BomPrice = 250.0, + Envir = 3, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6076), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6077), + Note = "Demo file 01", + OfferID = 3, + OfferRowUID = "OFF250000030001", + Qty = 4.0, + RowNum = 1, + SellingItemID = 5, + SerStruct = "", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 7, + AwaitBom = false, + AwaitPrice = false, + BomCost = 50.0, + BomOk = true, + BomPrice = 80.0, + Envir = 3, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6090), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6092), + Note = "Demo file 02", + OfferID = 3, + OfferRowUID = "OFF250000030002", + Qty = 12.0, + RowNum = 1, + SellingItemID = 5, + SerStruct = "", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 8, + AwaitBom = false, + AwaitPrice = false, + BomCost = 800.0, + BomOk = true, + BomPrice = 1150.0, + Envir = 4, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6122), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6123), + Note = "Demo file 01", + OfferID = 4, + OfferRowUID = "OFF250000040001", + Qty = 6.0, + RowNum = 1, + SellingItemID = 6, + SerStruct = "", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 9, + AwaitBom = false, + AwaitPrice = false, + BomCost = 600.0, + BomOk = true, + BomPrice = 950.0, + Envir = 4, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6136), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6137), + Note = "Demo file 02", + OfferID = 4, + OfferRowUID = "OFF250000040002", + Qty = 4.0, + RowNum = 1, + SellingItemID = 6, + SerStruct = "", + StepCost = 0.0, + StepPrice = 0.0 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderModel", b => + { + b.Property("OrderID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("OrderID")); + + b.Property("CustomerID") + .HasColumnType("int"); + + b.Property("DealerID") + .HasColumnType("int"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("DictPresel") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Inserted") + .HasColumnType("datetime(6)"); + + b.Property("Modified") + .HasColumnType("datetime(6)"); + + b.Property("OfferID") + .HasColumnType("int"); + + b.Property("OffertState") + .HasColumnType("int"); + + b.Property("RefNum") + .HasColumnType("int"); + + b.Property("RefRev") + .HasColumnType("int"); + + b.Property("RefYear") + .HasColumnType("int"); + + b.Property("ValidUntil") + .HasColumnType("datetime(6)"); + + b.HasKey("OrderID"); + + b.HasIndex("CustomerID"); + + b.HasIndex("DealerID"); + + b.HasIndex("OfferID"); + + b.ToTable("sales_order"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderRowModel", b => + { + b.Property("OrderRowID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("OrderRowID")); + + b.Property("BomCost") + .HasColumnType("double"); + + b.Property("BomPrice") + .HasColumnType("double"); + + b.Property("Inserted") + .HasColumnType("datetime(6)"); + + b.Property("ItemSteps") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Modified") + .HasColumnType("datetime(6)"); + + b.Property("Note") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("OrderID") + .HasColumnType("int"); + + b.Property("Qty") + .HasColumnType("double"); + + b.Property("RowNum") + .HasColumnType("int"); + + b.Property("SellingItemID") + .HasColumnType("int"); + + b.Property("SerStruct") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("StepCost") + .HasColumnType("double"); + + b.Property("StepPrice") + .HasColumnType("double"); + + b.HasKey("OrderRowID"); + + b.HasIndex("OrderID"); + + b.HasIndex("SellingItemID"); + + b.ToTable("sales_order_row"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Stock.StockMovModel", b => + { + b.Property("StockMovID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("StockMovID")); + + b.Property("CodDoc") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("DtCreate") + .ValueGeneratedOnAdd() + .HasColumnType("timestamp") + .HasDefaultValueSql("CURRENT_TIMESTAMP"); + + b.Property("DtMod") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("timestamp") + .HasDefaultValueSql("CURRENT_TIMESTAMP"); + + MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("DtMod")); + + b.Property("MovCod") + .IsRequired() + .HasColumnType("varchar(255)"); + + b.Property("Note") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("QtyRec") + .HasColumnType("double"); + + b.Property("StockStatusId") + .HasColumnType("int"); + + b.Property("UnitVal") + .HasColumnType("double"); + + b.Property("UserId") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("StockMovID"); + + b.HasIndex("MovCod"); + + b.HasIndex("StockStatusId"); + + b.ToTable("stock_mov"); + + b.HasData( + new + { + StockMovID = 1, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5466), + DtMod = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5526), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 5.0, + StockStatusId = 1, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 2, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5529), + DtMod = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5530), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 8.0, + StockStatusId = 2, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 3, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5532), + DtMod = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5533), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 5.0, + StockStatusId = 3, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 4, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5535), + DtMod = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5537), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 1.0, + StockStatusId = 4, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 5, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5539), + DtMod = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5540), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 10.0, + StockStatusId = 5, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 6, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5542), + DtMod = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5543), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 1.0, + StockStatusId = 6, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 7, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5546), + DtMod = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5547), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 50.0, + StockStatusId = 7, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 8, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5549), + DtMod = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5550), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 1.0, + StockStatusId = 8, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 9, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5552), + DtMod = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5554), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 1.0, + StockStatusId = 9, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 10, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5556), + DtMod = new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5557), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 1.0, + StockStatusId = 10, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Stock.StockStatusModel", b => + { + b.Property("StockStatusId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("StockStatusId")); + + b.Property("IsDeleted") + .HasColumnType("tinyint(1)"); + + b.Property("IsRemn") + .HasColumnType("tinyint(1)"); + + b.Property("ItemID") + .HasColumnType("int"); + + b.Property("Location") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("QtyAvail") + .HasColumnType("double"); + + b.HasKey("StockStatusId"); + + b.HasIndex("ItemID"); + + b.ToTable("stock_status"); + + b.HasData( + new + { + StockStatusId = 1, + IsDeleted = false, + IsRemn = false, + ItemID = 1, + Location = "B001-001-003", + QtyAvail = 5.0 + }, + new + { + StockStatusId = 2, + IsDeleted = false, + IsRemn = false, + ItemID = 2, + Location = "B001-001-002", + QtyAvail = 8.0 + }, + new + { + StockStatusId = 3, + IsDeleted = false, + IsRemn = false, + ItemID = 3, + Location = "B001-001-001", + QtyAvail = 5.0 + }, + new + { + StockStatusId = 4, + IsDeleted = false, + IsRemn = false, + ItemID = 4, + Location = "V002-001-001", + QtyAvail = 1.0 + }, + new + { + StockStatusId = 5, + IsDeleted = false, + IsRemn = false, + ItemID = 5, + Location = "V001-001-002", + QtyAvail = 10.0 + }, + new + { + StockStatusId = 6, + IsDeleted = false, + IsRemn = false, + ItemID = 6, + Location = "V001-001-003", + QtyAvail = 1.0 + }, + new + { + StockStatusId = 7, + IsDeleted = false, + IsRemn = false, + ItemID = 8, + Location = "V001-001-003", + QtyAvail = 50.0 + }, + new + { + StockStatusId = 8, + IsDeleted = false, + IsRemn = false, + ItemID = 11, + Location = "S001-002-001", + QtyAvail = 1.0 + }, + new + { + StockStatusId = 9, + IsDeleted = false, + IsRemn = false, + ItemID = 9, + Location = "S001-002-001", + QtyAvail = 1.0 + }, + new + { + StockStatusId = 10, + IsDeleted = false, + IsRemn = false, + ItemID = 10, + Location = "S001-001-001", + QtyAvail = 1.0 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobModel", b => + { + b.Property("JobID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("JobID")); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("JobID"); + + b.ToTable("task_job"); + + b.HasData( + new + { + JobID = 1, + Description = "Rivendita / servizi" + }, + new + { + JobID = 2, + Description = "Serramento Completo Legno su linea Saomad e installatore interno" + }, + new + { + JobID = 3, + Description = "Realizzazione Trave" + }, + new + { + JobID = 4, + Description = "Realizzazione Cabinet" + }, + new + { + JobID = 5, + Description = "Realizzazione Parete" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepItemModel", b => + { + b.Property("JobStepItemID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("JobStepItemID")); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Index") + .HasColumnType("int"); + + b.Property("ItemID") + .HasColumnType("int"); + + b.Property("JobStepID") + .HasColumnType("int"); + + b.Property("Qty") + .HasColumnType("double"); + + b.HasKey("JobStepItemID"); + + b.HasIndex("ItemID"); + + b.HasIndex("JobStepID"); + + b.ToTable("task_job_step_item"); + + b.HasData( + new + { + JobStepItemID = 1, + Description = "Grezzo legno abete", + Index = 1, + ItemID = 1, + JobStepID = 1, + Qty = 1.0 + }, + new + { + JobStepItemID = 2, + Description = "Vernice trasparente standard 1L", + Index = 2, + ItemID = 8, + JobStepID = 3, + Qty = 0.10000000000000001 + }, + new + { + JobStepItemID = 3, + Description = "Ferramenta AGB - rif. AGFD.00000.00000", + Index = 3, + ItemID = 9, + JobStepID = 4, + Qty = 1.0 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepModel", b => + { + b.Property("JobStepID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("JobStepID")); + + b.Property("CostDriverID") + .HasColumnType("int"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Index") + .HasColumnType("int"); + + b.Property("JobID") + .HasColumnType("int"); + + b.Property("PhaseID") + .HasColumnType("int"); + + b.Property("ProductivityRate") + .HasColumnType("decimal(65,30)"); + + b.Property("ResourceID") + .HasColumnType("int"); + + b.HasKey("JobStepID"); + + b.HasIndex("CostDriverID"); + + b.HasIndex("JobID"); + + b.HasIndex("PhaseID"); + + b.HasIndex("ResourceID"); + + b.ToTable("task_job_step"); + + b.HasData( + new + { + JobStepID = 1, + CostDriverID = 3, + Description = "", + Index = 1, + JobID = 2, + PhaseID = 1, + ProductivityRate = 1m, + ResourceID = 1 + }, + new + { + JobStepID = 2, + CostDriverID = 2, + Description = "", + Index = 2, + JobID = 2, + PhaseID = 2, + ProductivityRate = 1m, + ResourceID = 2 + }, + new + { + JobStepID = 3, + CostDriverID = 3, + Description = "", + Index = 3, + JobID = 2, + PhaseID = 3, + ProductivityRate = 1m, + ResourceID = 4 + }, + new + { + JobStepID = 4, + CostDriverID = 3, + Description = "", + Index = 4, + JobID = 2, + PhaseID = 4, + ProductivityRate = 1m, + ResourceID = 6 + }, + new + { + JobStepID = 5, + CostDriverID = 3, + Description = "", + Index = 5, + JobID = 2, + PhaseID = 6, + ProductivityRate = 1m, + ResourceID = 7 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.PhaseModel", b => + { + b.Property("PhaseID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PhaseID")); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("PhaseID"); + + b.ToTable("task_phase"); + + b.HasData( + new + { + PhaseID = 1, + Description = "Taglio tronchetti" + }, + new + { + PhaseID = 2, + Description = "Lavorazione pezzi serramento" + }, + new + { + PhaseID = 3, + Description = "Verniciatura" + }, + new + { + PhaseID = 4, + Description = "Assemblaggio completo" + }, + new + { + PhaseID = 5, + Description = "Assemblaggio Ferramenta" + }, + new + { + PhaseID = 6, + Description = "Installazione e posa in opera" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.CounterModel", b => + { + b.Property("RefYear") + .HasColumnType("int"); + + b.Property("CountName") + .HasColumnType("varchar(255)"); + + b.Property("Counter") + .HasColumnType("int"); + + b.HasKey("RefYear", "CountName"); + + b.ToTable("utils_counter"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.GenClassModel", b => + { + b.Property("ClassCod") + .HasColumnType("varchar(255)"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("ClassCod"); + + b.ToTable("utils_gen_class"); + + b.HasData( + new + { + ClassCod = "ShapeList", + Description = "Elenco Shape Gestite" + }, + new + { + ClassCod = "WoodCol", + Description = "Elenco Colori Legno" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.GenValueModel", b => + { + b.Property("GenValID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("GenValID")); + + b.Property("ClassCod") + .IsRequired() + .HasColumnType("varchar(255)"); + + b.Property("Ordinal") + .HasColumnType("int"); + + b.Property("ValString") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("GenValID"); + + b.HasIndex("ClassCod"); + + b.ToTable("utils_gen_value"); + + b.HasData( + new + { + GenValID = 1, + ClassCod = "WoodCol", + Ordinal = 1, + ValString = "Blue" + }, + new + { + GenValID = 2, + ClassCod = "WoodCol", + Ordinal = 2, + ValString = "White" + }, + new + { + GenValID = 3, + ClassCod = "WoodCol", + Ordinal = 3, + ValString = "Red" + }, + new + { + GenValID = 4, + ClassCod = "WoodCol", + Ordinal = 4, + ValString = "Black" + }, + new + { + GenValID = 5, + ClassCod = "ShapeList", + Ordinal = 1, + ValString = "Rectangular" + }, + new + { + GenValID = 6, + ClassCod = "ShapeList", + Ordinal = 2, + ValString = "Trapezoidal" + }, + new + { + GenValID = 7, + ClassCod = "ShapeList", + Ordinal = 3, + ValString = "Triangular" + }, + new + { + GenValID = 8, + ClassCod = "ShapeList", + Ordinal = 4, + ValString = "Arc" + }, + new + { + GenValID = 9, + ClassCod = "ShapeList", + Ordinal = 5, + ValString = "FullArc" + }, + new + { + GenValID = 10, + ClassCod = "ShapeList", + Ordinal = 6, + ValString = "SemiFullArc" + }, + new + { + GenValID = 11, + ClassCod = "ShapeList", + Ordinal = 7, + ValString = "SemiArc" + }, + new + { + GenValID = 12, + ClassCod = "ShapeList", + Ordinal = 8, + ValString = "Circular" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.MovTypeModel", b => + { + b.Property("MovCod") + .HasColumnType("varchar(255)"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("MovCod"); + + b.ToTable("utils_mov_type"); + + b.HasData( + new + { + MovCod = "CAR", + Description = "Carico a magazzino" + }, + new + { + MovCod = "MOV", + Description = "Movimento interno (spostamento)" + }, + new + { + MovCod = "ND", + Description = "Non Definito" + }, + new + { + MovCod = "OFOR", + Description = "Ordine Fornitore" + }, + new + { + MovCod = "RETT", + Description = "Rettifica magazzino" + }, + new + { + MovCod = "SCAR", + Description = "Scarico da magazzino" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.TagsModel", b => + { + b.Property("TagID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TagID")); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("TagID"); + + b.ToTable("utils_tags"); + + b.HasData( + new + { + TagID = 1, + Description = "Tag 01" + }, + new + { + TagID = 2, + Description = "Tag 02" + }, + new + { + TagID = 3, + Description = "Tag 03" + }, + new + { + TagID = 4, + Description = "Tag 04" + }, + new + { + TagID = 5, + Description = "Tag 05" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.CostDriverModel", "DriverNav") + .WithMany() + .HasForeignKey("CostDriverID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("DriverNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.ItemModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.ItemGroupModel", "ItemGroupNav") + .WithMany() + .HasForeignKey("CodGroup") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("ItemGroupNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.SellingItemModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.JobModel", "JobNav") + .WithMany() + .HasForeignKey("JobID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("JobNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.OrderRowModel", "OrderRowNav") + .WithMany() + .HasForeignKey("OrderRowID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Production.ProductionBatchModel", "ProductionBatchNav") + .WithMany() + .HasForeignKey("ProductionBatchID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("OrderRowNav"); + + b.Navigation("ProductionBatchNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemStepModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.PhaseModel", "PhaseNav") + .WithMany() + .HasForeignKey("PhaseID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemModel", "ProdItemNav") + .WithMany() + .HasForeignKey("ProdItemID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", "ResourceNav") + .WithMany() + .HasForeignKey("ResourceID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("PhaseNav"); + + b.Navigation("ProdItemNav"); + + b.Navigation("ResourceNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.CustomerModel", "CustomerNav") + .WithMany() + .HasForeignKey("CustomerID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.DealerModel", "DealerNav") + .WithMany() + .HasForeignKey("DealerID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("CustomerNav"); + + b.Navigation("DealerNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferRowModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", "OfferNav") + .WithMany("OfferRowNav") + .HasForeignKey("OfferID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.SellingItemModel", "SellingItemNav") + .WithMany() + .HasForeignKey("SellingItemID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("OfferNav"); + + b.Navigation("SellingItemNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.CustomerModel", "CustomerNav") + .WithMany() + .HasForeignKey("CustomerID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.DealerModel", "DealerNav") + .WithMany() + .HasForeignKey("DealerID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", "OfferNav") + .WithMany() + .HasForeignKey("OfferID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("CustomerNav"); + + b.Navigation("DealerNav"); + + b.Navigation("OfferNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderRowModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.OrderModel", "OrderNav") + .WithMany() + .HasForeignKey("OrderID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.SellingItemModel", "SellingItemNav") + .WithMany() + .HasForeignKey("SellingItemID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("OrderNav"); + + b.Navigation("SellingItemNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Stock.StockMovModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Utils.MovTypeModel", "MovTypeNav") + .WithMany() + .HasForeignKey("MovCod") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Stock.StockStatusModel", "StockStatusNav") + .WithMany() + .HasForeignKey("StockStatusId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("MovTypeNav"); + + b.Navigation("StockStatusNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Stock.StockStatusModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.ItemModel", "ItemNav") + .WithMany() + .HasForeignKey("ItemID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("ItemNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepItemModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.ItemModel", "ItemNav") + .WithMany() + .HasForeignKey("ItemID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.JobStepModel", "JobStepNav") + .WithMany() + .HasForeignKey("JobStepID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("ItemNav"); + + b.Navigation("JobStepNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.CostDriverModel", "DriverNav") + .WithMany() + .HasForeignKey("CostDriverID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.JobModel", "JobNav") + .WithMany("JobStepNav") + .HasForeignKey("JobID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.PhaseModel", "PhaseNav") + .WithMany() + .HasForeignKey("PhaseID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", "ResourceNav") + .WithMany() + .HasForeignKey("ResourceID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("DriverNav"); + + b.Navigation("JobNav"); + + b.Navigation("PhaseNav"); + + b.Navigation("ResourceNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.GenValueModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Utils.GenClassModel", "GenClassNav") + .WithMany("GenValNav") + .HasForeignKey("ClassCod") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("GenClassNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", b => + { + b.Navigation("OfferRowNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobModel", b => + { + b.Navigation("JobStepNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.GenClassModel", b => + { + b.Navigation("GenValNav"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/EgwCoreLib.Lux.Data/Migrations/20251015154324_AddOfferPreselDict.cs b/EgwCoreLib.Lux.Data/Migrations/20251015154324_AddOfferPreselDict.cs new file mode 100644 index 00000000..c288bd13 --- /dev/null +++ b/EgwCoreLib.Lux.Data/Migrations/20251015154324_AddOfferPreselDict.cs @@ -0,0 +1,352 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace EgwCoreLib.Lux.Data.Migrations +{ + /// + public partial class AddOfferPreselDict : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "DictPresel", + table: "sales_order", + type: "longtext", + nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 1, + columns: new[] { "Inserted", "Modified", "ValidUntil" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5795), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5797), new DateTime(2025, 11, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5792) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 2, + columns: new[] { "Inserted", "Modified", "ValidUntil" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5803), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5805), new DateTime(2025, 11, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5802) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 3, + columns: new[] { "Inserted", "Modified", "ValidUntil" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5810), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5811), new DateTime(2025, 11, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5808) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 4, + columns: new[] { "Inserted", "Modified", "ValidUntil" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5816), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5817), new DateTime(2025, 11, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5815) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 1, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5960), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5962) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 2, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5976), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5978) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 3, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5990), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5992) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 4, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6029), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6030) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 5, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6043), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6045) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 6, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6076), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6077) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 7, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6090), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6092) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 8, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6122), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6123) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 9, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6136), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6137) }); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 1, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5466)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 2, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5529)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 3, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5532)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 4, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5535)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 5, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5539)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 6, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5542)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 7, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5546)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 8, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5549)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 9, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5552)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 10, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5556)); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "DictPresel", + table: "sales_order"); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 1, + columns: new[] { "Inserted", "Modified", "ValidUntil" }, + values: new object[] { new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6797), new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6798), new DateTime(2025, 11, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6794) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 2, + columns: new[] { "Inserted", "Modified", "ValidUntil" }, + values: new object[] { new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6804), new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6806), new DateTime(2025, 11, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6803) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 3, + columns: new[] { "Inserted", "Modified", "ValidUntil" }, + values: new object[] { new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6811), new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6812), new DateTime(2025, 11, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6809) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 4, + columns: new[] { "Inserted", "Modified", "ValidUntil" }, + values: new object[] { new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6817), new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6818), new DateTime(2025, 11, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6816) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 1, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6960), new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6962) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 2, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6976), new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6978) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 3, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6990), new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6992) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 4, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7023), new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7025) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 5, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7037), new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7039) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 6, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7070), new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7072) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 7, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7089), new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7090) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 8, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7121), new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7122) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 9, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7134), new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7136) }); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 1, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6489)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 2, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6543)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 3, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6546)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 4, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6550)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 5, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6553)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 6, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6556)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 7, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6560)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 8, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6563)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 9, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6566)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 10, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6570)); + } + } +} diff --git a/EgwCoreLib.Lux.Data/Migrations/20251015154525_AddOrderPreselDict.Designer.cs b/EgwCoreLib.Lux.Data/Migrations/20251015154525_AddOrderPreselDict.Designer.cs new file mode 100644 index 00000000..957383ea --- /dev/null +++ b/EgwCoreLib.Lux.Data/Migrations/20251015154525_AddOrderPreselDict.Designer.cs @@ -0,0 +1,2815 @@ +// +using System; +using EgwCoreLib.Lux.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace EgwCoreLib.Lux.Data.Migrations +{ + [DbContext(typeof(DataLayerContext))] + [Migration("20251015154525_AddOrderPreselDict")] + partial class AddOrderPreselDict + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.17") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Config.EnvirParamModel", b => + { + b.Property("EnvirID") + .HasColumnType("int"); + + b.Property("SerStrucKey") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("EnvirID"); + + b.ToTable("conf_envir"); + + b.HasData( + new + { + EnvirID = 1, + SerStrucKey = "Jwd" + }, + new + { + EnvirID = 2, + SerStrucKey = "Btl" + }, + new + { + EnvirID = 4, + SerStrucKey = "Btl" + }, + new + { + EnvirID = 3, + SerStrucKey = "Btl" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Config.GlassModel", b => + { + b.Property("GlassID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("GlassID")); + + b.Property("Code") + .HasColumnType("longtext"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("Thickness") + .HasColumnType("double"); + + b.HasKey("GlassID"); + + b.ToTable("conf_glass"); + + b.HasData( + new + { + GlassID = 1, + Code = "0001", + Description = "Vetro BE 2S 4/12/4", + Thickness = 20.0 + }, + new + { + GlassID = 2, + Code = "0002", + Description = "Vetro BE 2S 4/16/4", + Thickness = 24.0 + }, + new + { + GlassID = 3, + Code = "0003", + Description = "Vetro BE 3S 4/12/4/12/4", + Thickness = 36.0 + }, + new + { + GlassID = 4, + Code = "0004", + Description = "Vetro BE 3S 4/16/4/16/4", + Thickness = 44.0 + }, + new + { + GlassID = 5, + Code = "0005", + Description = "Vetro BE 2S 4T/12/4T", + Thickness = 20.0 + }, + new + { + GlassID = 6, + Code = "0006", + Description = "Vetro BE 2S 4T/16/4T", + Thickness = 24.0 + }, + new + { + GlassID = 7, + Code = "0007", + Description = "Vetro BE 3S 4T/12/4T/12/4T", + Thickness = 36.0 + }, + new + { + GlassID = 8, + Code = "0008", + Description = "Vetro BE 3S 4T/16/4T/16/4T", + Thickness = 44.0 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Config.ProfileModel", b => + { + b.Property("ProfileID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProfileID")); + + b.Property("Code") + .HasColumnType("longtext"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("Thickness") + .HasColumnType("double"); + + b.HasKey("ProfileID"); + + b.ToTable("conf_profile"); + + b.HasData( + new + { + ProfileID = 1, + Code = "0001", + Description = "Profilo60", + Thickness = 60.0 + }, + new + { + ProfileID = 2, + Code = "0002", + Description = "Profilo78", + Thickness = 78.0 + }, + new + { + ProfileID = 3, + Code = "0003", + Description = "Profilo90", + Thickness = 90.0 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Config.WoodModel", b => + { + b.Property("WoodID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("WoodID")); + + b.Property("Code") + .HasColumnType("longtext"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("Type") + .HasColumnType("int"); + + b.HasKey("WoodID"); + + b.ToTable("conf_wood"); + + b.HasData( + new + { + WoodID = 1, + Code = "0001", + Description = "Abete", + Type = 1 + }, + new + { + WoodID = 2, + Code = "0002", + Description = "Acero", + Type = 1 + }, + new + { + WoodID = 3, + Code = "0003", + Description = "Pino", + Type = 2 + }, + new + { + WoodID = 4, + Code = "0004", + Description = "Tek", + Type = 3 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Cost.CostDriverModel", b => + { + b.Property("CostDriverID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CostDriverID")); + + b.Property("Descript") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Unit") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("CostDriverID"); + + b.ToTable("cost_driver"); + + b.HasData( + new + { + CostDriverID = 1, + Descript = "Ore lavorate per step/fase", + Name = "WorkHour", + Unit = "h" + }, + new + { + CostDriverID = 2, + Descript = "Metri prodotti per step/fase", + Name = "Meter", + Unit = "m" + }, + new + { + CostDriverID = 3, + Descript = "Numero unità prodotte (lavorate) per step/fase", + Name = "Unit", + Unit = "#" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", b => + { + b.Property("ResourceID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ResourceID")); + + b.Property("CostDriverBudget") + .HasColumnType("decimal(65,30)"); + + b.Property("CostDriverID") + .HasColumnType("int"); + + b.Property("EBTPerc") + .HasColumnType("decimal(65,30)"); + + b.Property("FixedCost") + .HasColumnType("decimal(65,30)"); + + b.Property("LaborCost") + .HasColumnType("decimal(65,30)"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("OverHeadCost") + .HasColumnType("decimal(65,30)"); + + b.Property("OverHeadPerc") + .HasColumnType("decimal(65,30)"); + + b.Property("PriceMargin") + .HasColumnType("decimal(65,30)"); + + b.Property("VariableCost") + .HasColumnType("decimal(65,30)"); + + b.HasKey("ResourceID"); + + b.HasIndex("CostDriverID"); + + b.ToTable("cost_resource"); + + b.HasData( + new + { + ResourceID = 1, + CostDriverBudget = 880m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 12000m, + LaborCost = 30m, + Name = "Sezionatrice", + OverHeadCost = 5000m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 6000m + }, + new + { + ResourceID = 2, + CostDriverBudget = 1760m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 100000m, + LaborCost = 40m, + Name = "Linea SAOMAD WoodPecker Just 3500", + OverHeadCost = 15000m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 30000m + }, + new + { + ResourceID = 3, + CostDriverBudget = 1760m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 24000m, + LaborCost = 35m, + Name = "Linea Pantografo", + OverHeadCost = 5000m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 6000m + }, + new + { + ResourceID = 4, + CostDriverBudget = 880m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 24000m, + LaborCost = 30m, + Name = "Stazione Verniciatura", + OverHeadCost = 3000m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 6000m + }, + new + { + ResourceID = 5, + CostDriverBudget = 220m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 6000m, + LaborCost = 30m, + Name = "Verniciatura Manuale", + OverHeadCost = 3000m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 2000m + }, + new + { + ResourceID = 6, + CostDriverBudget = 3520m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 500m, + LaborCost = 30m, + Name = "Montaggio Manuale", + OverHeadCost = 500m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 500m + }, + new + { + ResourceID = 7, + CostDriverBudget = 3520m, + CostDriverID = 1, + EBTPerc = 0.15m, + FixedCost = 0m, + LaborCost = 40m, + Name = "Installatore", + OverHeadCost = 0m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 3000m + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.ItemGroupModel", b => + { + b.Property("CodGroup") + .HasColumnType("varchar(255)"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("CodGroup"); + + b.ToTable("item_group"); + + b.HasData( + new + { + CodGroup = "WindowTrunk", + Description = "Barre legno per lavorazione" + }, + new + { + CodGroup = "WindowGlass", + Description = "Vetri serramento" + }, + new + { + CodGroup = "WindowVarnish", + Description = "Vernici per legno" + }, + new + { + CodGroup = "WindowHardware", + Description = "Ferramenta serramento" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.ItemModel", b => + { + b.Property("ItemID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ItemID")); + + b.Property("CodGroup") + .IsRequired() + .HasColumnType("varchar(255)"); + + b.Property("Cost") + .HasColumnType("double"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ExtItemCode") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("IsService") + .HasColumnType("tinyint(1)"); + + b.Property("ItemCode") + .HasColumnType("int"); + + b.Property("ItemIDParent") + .HasColumnType("int"); + + b.Property("ItemType") + .HasColumnType("int"); + + b.Property("Margin") + .HasColumnType("double"); + + b.Property("QtyMax") + .HasColumnType("double"); + + b.Property("QtyMin") + .HasColumnType("double"); + + b.Property("SupplCode") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("UM") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("ItemID"); + + b.HasIndex("CodGroup"); + + b.ToTable("item_item"); + + b.HasData( + new + { + ItemID = 1, + CodGroup = "WindowTrunk", + Cost = 20.0, + Description = "BARRA-60x80 generica", + ExtItemCode = "", + IsService = false, + ItemCode = 1001, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.29999999999999999, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "BARR.001", + UM = "#" + }, + new + { + ItemID = 2, + CodGroup = "WindowTrunk", + Cost = 16.5, + Description = "Barra 60x80, lunghezza 12m", + ExtItemCode = "BARRA-60x80x12000", + IsService = false, + ItemCode = 1002, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20999999999999999, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "ABC.00123.12000", + UM = "#" + }, + new + { + ItemID = 3, + CodGroup = "WindowTrunk", + Cost = 17.5, + Description = "Barra 60x80, lunghezza 8m", + ExtItemCode = "BARRA-60x80x8000", + IsService = false, + ItemCode = 1003, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.22, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "ABC.00123.8000", + UM = "#" + }, + new + { + ItemID = 4, + CodGroup = "WindowTrunk", + Cost = 15.5, + Description = "Barra 60x80, lunghezza 16m", + ExtItemCode = "BARRA-60x80x16000", + IsService = false, + ItemCode = 1004, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "ABC.00123.16000", + UM = "#" + }, + new + { + ItemID = 5, + CodGroup = "WindowGlass", + Cost = 300.0, + Description = "Vetro triplo, basso indice termico, 800x1000", + ExtItemCode = "VETRO-3L-THERMO-800x1000", + IsService = false, + ItemCode = 2001, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "V3T.800.1000", + UM = "m2" + }, + new + { + ItemID = 6, + CodGroup = "WindowGlass", + Cost = 200.0, + Description = "Vetro doppio, 800x1000", + ExtItemCode = "VETRO-2L-800x1000", + IsService = false, + ItemCode = 2002, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.14999999999999999, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "V2.800.1000", + UM = "m2" + }, + new + { + ItemID = 7, + CodGroup = "WindowGlass", + Cost = 250.0, + Description = "Vetro triplo, 800x1000", + ExtItemCode = "VETRO-3L-800x1000", + IsService = false, + ItemCode = 2003, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.17999999999999999, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "V3.800.1000", + UM = "m2" + }, + new + { + ItemID = 8, + CodGroup = "WindowVarnish", + Cost = 20.0, + Description = "Vernice trasparente", + ExtItemCode = "VERN-TRASP", + IsService = false, + ItemCode = 3001, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "VT.STD", + UM = "l" + }, + new + { + ItemID = 9, + CodGroup = "WindowHardware", + Cost = 65.0, + Description = "Kit standard completo AGB tipo 001", + ExtItemCode = "KIT-001", + IsService = false, + ItemCode = 5001, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "AGB-KIT-001", + UM = "#" + }, + new + { + ItemID = 10, + CodGroup = "WindowHardware", + Cost = 10.0, + Description = "Cerniera AGB tipo 001", + ExtItemCode = "CERN-001", + IsService = false, + ItemCode = 5002, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "AGB-CERN-001", + UM = "#" + }, + new + { + ItemID = 11, + CodGroup = "WindowHardware", + Cost = 15.0, + Description = "Serratura AGB tipo 001", + ExtItemCode = "SERR-001", + IsService = false, + ItemCode = 5003, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "AGB-SERR-001", + UM = "#" + }, + new + { + ItemID = 12, + CodGroup = "WindowHardware", + Cost = 25.0, + Description = "Maniglia AGB tipo 001", + ExtItemCode = "MAN-001", + IsService = false, + ItemCode = 5004, + ItemIDParent = 0, + ItemType = 1, + Margin = 0.20000000000000001, + QtyMax = 0.0, + QtyMin = 0.0, + SupplCode = "AGB-MAN-001", + UM = "#" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.SellingItemModel", b => + { + b.Property("SellingItemID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("SellingItemID")); + + b.Property("Cost") + .HasColumnType("double"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ExtItemCode") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("IsService") + .HasColumnType("tinyint(1)"); + + b.Property("ItemCode") + .HasColumnType("int"); + + b.Property("ItemSteps") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("JobID") + .HasColumnType("int"); + + b.Property("Margin") + .HasColumnType("double"); + + b.Property("SerStruct") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("SupplCode") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("UM") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("SellingItemID"); + + b.HasIndex("JobID"); + + b.ToTable("item_selling_item"); + + b.HasData( + new + { + SellingItemID = 1, + Cost = 820.0, + Description = "Finestra anta Singola", + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 2, + Margin = 0.20000000000000001, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 2, + Cost = 150.0, + Description = "Persiana anta singola", + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 1, + Margin = 0.10000000000000001, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 3, + Cost = 200.0, + Description = "Installazione", + ExtItemCode = "", + IsService = true, + ItemCode = 0, + ItemSteps = "", + JobID = 1, + Margin = 0.29999999999999999, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 4, + Cost = 1000.0, + Description = "Trave lamellare", + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 3, + Margin = 0.29999999999999999, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 5, + Cost = 500.0, + Description = "Cabinet", + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 4, + Margin = 0.29999999999999999, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 6, + Cost = 2000.0, + Description = "Parete", + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 5, + Margin = 0.29999999999999999, + SerStruct = "", + SupplCode = "", + UM = "#" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.SupplierModel", b => + { + b.Property("SupplierID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("SupplierID")); + + b.Property("CompanyName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FirstName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("VAT") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("SupplierID"); + + b.ToTable("item_supplier"); + + b.HasData( + new + { + SupplierID = 1, + CompanyName = "Company One", + FirstName = "Supplier A", + LastName = "Egalware", + VAT = "7294857103879254" + }, + new + { + SupplierID = 2, + CompanyName = "Company Two", + FirstName = "Supplier B", + LastName = "User", + VAT = "7294857103879254" + }, + new + { + SupplierID = 3, + CompanyName = "Company Two", + FirstName = "Supplier C", + LastName = "User Test", + VAT = "7294857103879254" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionBatchModel", b => + { + b.Property("ProductionBatchID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProductionBatchID")); + + b.Property("DateEnd") + .HasColumnType("datetime(6)"); + + b.Property("DateStart") + .HasColumnType("datetime(6)"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("DueDate") + .HasColumnType("datetime(6)"); + + b.HasKey("ProductionBatchID"); + + b.ToTable("production_batch"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemModel", b => + { + b.Property("ProdItemID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProdItemID")); + + b.Property("ExtItemCode") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ItemCode") + .HasColumnType("int"); + + b.Property("OrderRowID") + .HasColumnType("int"); + + b.Property("ProductionBatchID") + .HasColumnType("int"); + + b.HasKey("ProdItemID"); + + b.HasIndex("OrderRowID"); + + b.HasIndex("ProductionBatchID"); + + b.ToTable("production_item"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemStepModel", b => + { + b.Property("ProdItemStepID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProdItemStepID")); + + b.Property("DateEnd") + .HasColumnType("datetime(6)"); + + b.Property("DateStart") + .HasColumnType("datetime(6)"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Index") + .HasColumnType("int"); + + b.Property("PhaseID") + .HasColumnType("int"); + + b.Property("ProdItemID") + .HasColumnType("int"); + + b.Property("Qty") + .HasColumnType("double"); + + b.Property("ResourceID") + .HasColumnType("int"); + + b.Property("WorkTime") + .HasColumnType("double"); + + b.HasKey("ProdItemStepID"); + + b.HasIndex("PhaseID"); + + b.HasIndex("ProdItemID"); + + b.HasIndex("ResourceID"); + + b.ToTable("production_item_step"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.CustomerModel", b => + { + b.Property("CustomerID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CustomerID")); + + b.Property("CompanyName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FirstName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("VAT") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("CustomerID"); + + b.ToTable("sales_customer"); + + b.HasData( + new + { + CustomerID = 1, + CompanyName = "", + FirstName = "Customer A", + LastName = "Egalware", + VAT = "1234567890123456" + }, + new + { + CustomerID = 2, + CompanyName = "", + FirstName = "Customer B", + LastName = "User", + VAT = "1234567890123456" + }, + new + { + CustomerID = 3, + CompanyName = "", + FirstName = "Customer C", + LastName = "User Test", + VAT = "1234567890123456" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.DealerModel", b => + { + b.Property("DealerID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("DealerID")); + + b.Property("CompanyName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FirstName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("VAT") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("DealerID"); + + b.ToTable("sales_dealer"); + + b.HasData( + new + { + DealerID = 1, + CompanyName = "Company First", + FirstName = "Dealer A", + LastName = "Egalware", + VAT = "9587362514671527" + }, + new + { + DealerID = 2, + CompanyName = "Company First", + FirstName = "Dealer B", + LastName = "User", + VAT = "9587362514671527" + }, + new + { + DealerID = 3, + CompanyName = "Company Second", + FirstName = "Dealer C", + LastName = "User Test", + VAT = "9587362514671527" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", b => + { + b.Property("OfferID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("OfferID")); + + b.Property("CustomerID") + .HasColumnType("int"); + + b.Property("DealerID") + .HasColumnType("int"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("DictPresel") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Discount") + .HasColumnType("double"); + + b.Property("Envir") + .HasColumnType("int"); + + b.Property("Inserted") + .HasColumnType("datetime(6)"); + + b.Property("Modified") + .HasColumnType("datetime(6)"); + + b.Property("OffertState") + .HasColumnType("int"); + + b.Property("RefNum") + .HasColumnType("int"); + + b.Property("RefRev") + .HasColumnType("int"); + + b.Property("RefYear") + .HasColumnType("int"); + + b.Property("ValidUntil") + .HasColumnType("datetime(6)"); + + b.HasKey("OfferID"); + + b.HasIndex("CustomerID"); + + b.HasIndex("DealerID"); + + b.ToTable("sales_offer"); + + b.HasData( + new + { + OfferID = 1, + CustomerID = 2, + DealerID = 2, + Description = "Offerta per tre serramenti", + DictPresel = "", + Discount = 0.0, + Envir = 1, + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5260), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5261), + OffertState = 0, + RefNum = 1, + RefRev = 1, + RefYear = 2024, + ValidUntil = new DateTime(2025, 11, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5256) + }, + new + { + OfferID = 2, + CustomerID = 2, + DealerID = 2, + Description = "Offerta BEAM", + DictPresel = "", + Discount = 0.0, + Envir = 2, + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5269), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5271), + OffertState = 0, + RefNum = 2, + RefRev = 1, + RefYear = 2024, + ValidUntil = new DateTime(2025, 11, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5268) + }, + new + { + OfferID = 3, + CustomerID = 2, + DealerID = 2, + Description = "Offerta Cabinet", + DictPresel = "", + Discount = 0.0, + Envir = 4, + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5276), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5277), + OffertState = 0, + RefNum = 3, + RefRev = 1, + RefYear = 2024, + ValidUntil = new DateTime(2025, 11, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5274) + }, + new + { + OfferID = 4, + CustomerID = 2, + DealerID = 2, + Description = "Offerta Wall", + DictPresel = "", + Discount = 0.0, + Envir = 3, + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5282), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5284), + OffertState = 0, + RefNum = 4, + RefRev = 1, + RefYear = 2024, + ValidUntil = new DateTime(2025, 11, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5281) + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferRowModel", b => + { + b.Property("OfferRowID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("OfferRowID")); + + b.Property("AwaitBom") + .HasColumnType("tinyint(1)"); + + b.Property("AwaitPrice") + .HasColumnType("tinyint(1)"); + + b.Property("BomCost") + .HasColumnType("double"); + + b.Property("BomOk") + .HasColumnType("tinyint(1)"); + + b.Property("BomPrice") + .HasColumnType("double"); + + b.Property("Envir") + .HasColumnType("int"); + + b.Property("FileName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FileResource") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("Inserted") + .HasColumnType("datetime(6)"); + + b.Property("ItemBOM") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ItemOk") + .HasColumnType("tinyint(1)"); + + b.Property("ItemSteps") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Modified") + .HasColumnType("datetime(6)"); + + b.Property("Note") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("OfferID") + .HasColumnType("int"); + + b.Property("OfferRowUID") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Qty") + .HasColumnType("double"); + + b.Property("RowNum") + .HasColumnType("int"); + + b.Property("SellingItemID") + .HasColumnType("int"); + + b.Property("SerStruct") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("StepCost") + .HasColumnType("double"); + + b.Property("StepPrice") + .HasColumnType("double"); + + b.HasKey("OfferRowID"); + + b.HasIndex("OfferID"); + + b.HasIndex("SellingItemID"); + + b.ToTable("sales_offer_row"); + + b.HasData( + new + { + OfferRowID = 1, + AwaitBom = false, + AwaitPrice = false, + BomCost = 900.0, + BomOk = true, + BomPrice = 950.0, + Envir = 1, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5417), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5419), + Note = "Finestra anta singola 2025", + OfferID = 1, + OfferRowUID = "OFF250000010001", + Qty = 3.0, + RowNum = 1, + SellingItemID = 1, + SerStruct = "{\"ProfilePath\":\"Profilo78\",\"Material\":\"Pine\",\"ColorMaterial\":\"Black\",\"Glass\":\"4T/16/4T\",\"AreaList\":[{\"Shape\":\"RECTANGLE\",\"DimensionList\":[{\"nIndex\":1,\"sName\":\"Width\",\"dValue\":800.0},{\"nIndex\":2,\"sName\":\"Height\",\"dValue\":1200.0}],\"JointList\":[{\"nIndex\":1,\"JointType\":\"FULL_H\"},{\"nIndex\":2,\"JointType\":\"FULL_H\"},{\"nIndex\":3,\"JointType\":\"FULL_H\"},{\"nIndex\":4,\"JointType\":\"FULL_H\"}],\"BottomRail\":false,\"BottomRailQty\":0,\"IdGroup\":1,\"AreaList\":[{\"bIsSashVertical\":true,\"SashList\":[{\"nSashId\":1,\"OpeningType\":\"TILTTURN_LEFT\",\"bHasHandle\":true,\"dDimension\":100.0}],\"SashType\":\"NULL\",\"JointList\":[{\"nIndex\":1,\"JointType\":\"FULL_H\"},{\"nIndex\":2,\"JointType\":\"FULL_H\"},{\"nIndex\":3,\"JointType\":\"FULL_H\"},{\"nIndex\":4,\"JointType\":\"FULL_H\"}],\"BottomRail\":false,\"BottomRailQty\":0,\"Hardware\":\"000558\",\"IdGroup\":2,\"AreaList\":[{\"FillType\":\"GLASS\",\"IdGroup\":3,\"AreaList\":[],\"AreaType\":\"FILL\"}],\"AreaType\":\"SASH\"}],\"AreaType\":\"FRAME\"}]}", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 2, + AwaitBom = false, + AwaitPrice = false, + BomCost = 160.0, + BomOk = true, + BomPrice = 200.0, + Envir = 1, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5434), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5436), + Note = "Persiana per Finestra anta singola 2025", + OfferID = 1, + OfferRowUID = "OFF250000010002", + Qty = 3.0, + RowNum = 2, + SellingItemID = 2, + SerStruct = "{}", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 3, + AwaitBom = false, + AwaitPrice = false, + BomCost = 200.0, + BomOk = true, + BomPrice = 250.0, + Envir = 1, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5448), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5450), + Note = "Installazione serramento", + OfferID = 1, + OfferRowUID = "OFF250000010003", + Qty = 3.0, + RowNum = 3, + SellingItemID = 3, + SerStruct = "{}", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 4, + AwaitBom = false, + AwaitPrice = false, + BomCost = 800.0, + BomOk = true, + BomPrice = 1150.0, + Envir = 2, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5484), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5486), + Note = "Demo file 01", + OfferID = 2, + OfferRowUID = "OFF250000020001", + Qty = 10.0, + RowNum = 1, + SellingItemID = 4, + SerStruct = "", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 5, + AwaitBom = false, + AwaitPrice = false, + BomCost = 600.0, + BomOk = true, + BomPrice = 950.0, + Envir = 2, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5499), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5500), + Note = "Demo file 02", + OfferID = 2, + OfferRowUID = "OFF250000020002", + Qty = 4.0, + RowNum = 1, + SellingItemID = 4, + SerStruct = "", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 6, + AwaitBom = false, + AwaitPrice = false, + BomCost = 200.0, + BomOk = true, + BomPrice = 250.0, + Envir = 3, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5538), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5540), + Note = "Demo file 01", + OfferID = 3, + OfferRowUID = "OFF250000030001", + Qty = 4.0, + RowNum = 1, + SellingItemID = 5, + SerStruct = "", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 7, + AwaitBom = false, + AwaitPrice = false, + BomCost = 50.0, + BomOk = true, + BomPrice = 80.0, + Envir = 3, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5552), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5554), + Note = "Demo file 02", + OfferID = 3, + OfferRowUID = "OFF250000030002", + Qty = 12.0, + RowNum = 1, + SellingItemID = 5, + SerStruct = "", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 8, + AwaitBom = false, + AwaitPrice = false, + BomCost = 800.0, + BomOk = true, + BomPrice = 1150.0, + Envir = 4, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5585), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5586), + Note = "Demo file 01", + OfferID = 4, + OfferRowUID = "OFF250000040001", + Qty = 6.0, + RowNum = 1, + SellingItemID = 6, + SerStruct = "", + StepCost = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 9, + AwaitBom = false, + AwaitPrice = false, + BomCost = 600.0, + BomOk = true, + BomPrice = 950.0, + Envir = 4, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5599), + ItemBOM = "", + ItemOk = true, + ItemSteps = "{}", + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5600), + Note = "Demo file 02", + OfferID = 4, + OfferRowUID = "OFF250000040002", + Qty = 4.0, + RowNum = 1, + SellingItemID = 6, + SerStruct = "", + StepCost = 0.0, + StepPrice = 0.0 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderModel", b => + { + b.Property("OrderID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("OrderID")); + + b.Property("CustomerID") + .HasColumnType("int"); + + b.Property("DealerID") + .HasColumnType("int"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("DictPresel") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Inserted") + .HasColumnType("datetime(6)"); + + b.Property("Modified") + .HasColumnType("datetime(6)"); + + b.Property("OfferID") + .HasColumnType("int"); + + b.Property("OffertState") + .HasColumnType("int"); + + b.Property("RefNum") + .HasColumnType("int"); + + b.Property("RefRev") + .HasColumnType("int"); + + b.Property("RefYear") + .HasColumnType("int"); + + b.Property("ValidUntil") + .HasColumnType("datetime(6)"); + + b.HasKey("OrderID"); + + b.HasIndex("CustomerID"); + + b.HasIndex("DealerID"); + + b.HasIndex("OfferID"); + + b.ToTable("sales_order"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderRowModel", b => + { + b.Property("OrderRowID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("OrderRowID")); + + b.Property("BomCost") + .HasColumnType("double"); + + b.Property("BomPrice") + .HasColumnType("double"); + + b.Property("Inserted") + .HasColumnType("datetime(6)"); + + b.Property("ItemSteps") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Modified") + .HasColumnType("datetime(6)"); + + b.Property("Note") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("OrderID") + .HasColumnType("int"); + + b.Property("Qty") + .HasColumnType("double"); + + b.Property("RowNum") + .HasColumnType("int"); + + b.Property("SellingItemID") + .HasColumnType("int"); + + b.Property("SerStruct") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("StepCost") + .HasColumnType("double"); + + b.Property("StepPrice") + .HasColumnType("double"); + + b.HasKey("OrderRowID"); + + b.HasIndex("OrderID"); + + b.HasIndex("SellingItemID"); + + b.ToTable("sales_order_row"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Stock.StockMovModel", b => + { + b.Property("StockMovID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("StockMovID")); + + b.Property("CodDoc") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("DtCreate") + .ValueGeneratedOnAdd() + .HasColumnType("timestamp") + .HasDefaultValueSql("CURRENT_TIMESTAMP"); + + b.Property("DtMod") + .ValueGeneratedOnAddOrUpdate() + .HasColumnType("timestamp") + .HasDefaultValueSql("CURRENT_TIMESTAMP"); + + MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("DtMod")); + + b.Property("MovCod") + .IsRequired() + .HasColumnType("varchar(255)"); + + b.Property("Note") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("QtyRec") + .HasColumnType("double"); + + b.Property("StockStatusId") + .HasColumnType("int"); + + b.Property("UnitVal") + .HasColumnType("double"); + + b.Property("UserId") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("StockMovID"); + + b.HasIndex("MovCod"); + + b.HasIndex("StockStatusId"); + + b.ToTable("stock_mov"); + + b.HasData( + new + { + StockMovID = 1, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(4953), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5004), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 5.0, + StockStatusId = 1, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 2, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5007), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5008), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 8.0, + StockStatusId = 2, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 3, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5010), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5012), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 5.0, + StockStatusId = 3, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 4, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5014), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5015), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 1.0, + StockStatusId = 4, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 5, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5017), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5018), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 10.0, + StockStatusId = 5, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 6, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5020), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5022), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 1.0, + StockStatusId = 6, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 7, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5024), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5025), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 50.0, + StockStatusId = 7, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 8, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5027), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5028), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 1.0, + StockStatusId = 8, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 9, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5030), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5032), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 1.0, + StockStatusId = 9, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }, + new + { + StockMovID = 10, + CodDoc = "", + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5034), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5035), + MovCod = "CAR", + Note = "DEMO", + QtyRec = 1.0, + StockStatusId = 10, + UnitVal = 0.0, + UserId = "samuele.locatelli@egalware.com" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Stock.StockStatusModel", b => + { + b.Property("StockStatusId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("StockStatusId")); + + b.Property("IsDeleted") + .HasColumnType("tinyint(1)"); + + b.Property("IsRemn") + .HasColumnType("tinyint(1)"); + + b.Property("ItemID") + .HasColumnType("int"); + + b.Property("Location") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("QtyAvail") + .HasColumnType("double"); + + b.HasKey("StockStatusId"); + + b.HasIndex("ItemID"); + + b.ToTable("stock_status"); + + b.HasData( + new + { + StockStatusId = 1, + IsDeleted = false, + IsRemn = false, + ItemID = 1, + Location = "B001-001-003", + QtyAvail = 5.0 + }, + new + { + StockStatusId = 2, + IsDeleted = false, + IsRemn = false, + ItemID = 2, + Location = "B001-001-002", + QtyAvail = 8.0 + }, + new + { + StockStatusId = 3, + IsDeleted = false, + IsRemn = false, + ItemID = 3, + Location = "B001-001-001", + QtyAvail = 5.0 + }, + new + { + StockStatusId = 4, + IsDeleted = false, + IsRemn = false, + ItemID = 4, + Location = "V002-001-001", + QtyAvail = 1.0 + }, + new + { + StockStatusId = 5, + IsDeleted = false, + IsRemn = false, + ItemID = 5, + Location = "V001-001-002", + QtyAvail = 10.0 + }, + new + { + StockStatusId = 6, + IsDeleted = false, + IsRemn = false, + ItemID = 6, + Location = "V001-001-003", + QtyAvail = 1.0 + }, + new + { + StockStatusId = 7, + IsDeleted = false, + IsRemn = false, + ItemID = 8, + Location = "V001-001-003", + QtyAvail = 50.0 + }, + new + { + StockStatusId = 8, + IsDeleted = false, + IsRemn = false, + ItemID = 11, + Location = "S001-002-001", + QtyAvail = 1.0 + }, + new + { + StockStatusId = 9, + IsDeleted = false, + IsRemn = false, + ItemID = 9, + Location = "S001-002-001", + QtyAvail = 1.0 + }, + new + { + StockStatusId = 10, + IsDeleted = false, + IsRemn = false, + ItemID = 10, + Location = "S001-001-001", + QtyAvail = 1.0 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobModel", b => + { + b.Property("JobID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("JobID")); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("JobID"); + + b.ToTable("task_job"); + + b.HasData( + new + { + JobID = 1, + Description = "Rivendita / servizi" + }, + new + { + JobID = 2, + Description = "Serramento Completo Legno su linea Saomad e installatore interno" + }, + new + { + JobID = 3, + Description = "Realizzazione Trave" + }, + new + { + JobID = 4, + Description = "Realizzazione Cabinet" + }, + new + { + JobID = 5, + Description = "Realizzazione Parete" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepItemModel", b => + { + b.Property("JobStepItemID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("JobStepItemID")); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Index") + .HasColumnType("int"); + + b.Property("ItemID") + .HasColumnType("int"); + + b.Property("JobStepID") + .HasColumnType("int"); + + b.Property("Qty") + .HasColumnType("double"); + + b.HasKey("JobStepItemID"); + + b.HasIndex("ItemID"); + + b.HasIndex("JobStepID"); + + b.ToTable("task_job_step_item"); + + b.HasData( + new + { + JobStepItemID = 1, + Description = "Grezzo legno abete", + Index = 1, + ItemID = 1, + JobStepID = 1, + Qty = 1.0 + }, + new + { + JobStepItemID = 2, + Description = "Vernice trasparente standard 1L", + Index = 2, + ItemID = 8, + JobStepID = 3, + Qty = 0.10000000000000001 + }, + new + { + JobStepItemID = 3, + Description = "Ferramenta AGB - rif. AGFD.00000.00000", + Index = 3, + ItemID = 9, + JobStepID = 4, + Qty = 1.0 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepModel", b => + { + b.Property("JobStepID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("JobStepID")); + + b.Property("CostDriverID") + .HasColumnType("int"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Index") + .HasColumnType("int"); + + b.Property("JobID") + .HasColumnType("int"); + + b.Property("PhaseID") + .HasColumnType("int"); + + b.Property("ProductivityRate") + .HasColumnType("decimal(65,30)"); + + b.Property("ResourceID") + .HasColumnType("int"); + + b.HasKey("JobStepID"); + + b.HasIndex("CostDriverID"); + + b.HasIndex("JobID"); + + b.HasIndex("PhaseID"); + + b.HasIndex("ResourceID"); + + b.ToTable("task_job_step"); + + b.HasData( + new + { + JobStepID = 1, + CostDriverID = 3, + Description = "", + Index = 1, + JobID = 2, + PhaseID = 1, + ProductivityRate = 1m, + ResourceID = 1 + }, + new + { + JobStepID = 2, + CostDriverID = 2, + Description = "", + Index = 2, + JobID = 2, + PhaseID = 2, + ProductivityRate = 1m, + ResourceID = 2 + }, + new + { + JobStepID = 3, + CostDriverID = 3, + Description = "", + Index = 3, + JobID = 2, + PhaseID = 3, + ProductivityRate = 1m, + ResourceID = 4 + }, + new + { + JobStepID = 4, + CostDriverID = 3, + Description = "", + Index = 4, + JobID = 2, + PhaseID = 4, + ProductivityRate = 1m, + ResourceID = 6 + }, + new + { + JobStepID = 5, + CostDriverID = 3, + Description = "", + Index = 5, + JobID = 2, + PhaseID = 6, + ProductivityRate = 1m, + ResourceID = 7 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.PhaseModel", b => + { + b.Property("PhaseID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PhaseID")); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("PhaseID"); + + b.ToTable("task_phase"); + + b.HasData( + new + { + PhaseID = 1, + Description = "Taglio tronchetti" + }, + new + { + PhaseID = 2, + Description = "Lavorazione pezzi serramento" + }, + new + { + PhaseID = 3, + Description = "Verniciatura" + }, + new + { + PhaseID = 4, + Description = "Assemblaggio completo" + }, + new + { + PhaseID = 5, + Description = "Assemblaggio Ferramenta" + }, + new + { + PhaseID = 6, + Description = "Installazione e posa in opera" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.CounterModel", b => + { + b.Property("RefYear") + .HasColumnType("int"); + + b.Property("CountName") + .HasColumnType("varchar(255)"); + + b.Property("Counter") + .HasColumnType("int"); + + b.HasKey("RefYear", "CountName"); + + b.ToTable("utils_counter"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.GenClassModel", b => + { + b.Property("ClassCod") + .HasColumnType("varchar(255)"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("ClassCod"); + + b.ToTable("utils_gen_class"); + + b.HasData( + new + { + ClassCod = "ShapeList", + Description = "Elenco Shape Gestite" + }, + new + { + ClassCod = "WoodCol", + Description = "Elenco Colori Legno" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.GenValueModel", b => + { + b.Property("GenValID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("GenValID")); + + b.Property("ClassCod") + .IsRequired() + .HasColumnType("varchar(255)"); + + b.Property("Ordinal") + .HasColumnType("int"); + + b.Property("ValString") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("GenValID"); + + b.HasIndex("ClassCod"); + + b.ToTable("utils_gen_value"); + + b.HasData( + new + { + GenValID = 1, + ClassCod = "WoodCol", + Ordinal = 1, + ValString = "Blue" + }, + new + { + GenValID = 2, + ClassCod = "WoodCol", + Ordinal = 2, + ValString = "White" + }, + new + { + GenValID = 3, + ClassCod = "WoodCol", + Ordinal = 3, + ValString = "Red" + }, + new + { + GenValID = 4, + ClassCod = "WoodCol", + Ordinal = 4, + ValString = "Black" + }, + new + { + GenValID = 5, + ClassCod = "ShapeList", + Ordinal = 1, + ValString = "Rectangular" + }, + new + { + GenValID = 6, + ClassCod = "ShapeList", + Ordinal = 2, + ValString = "Trapezoidal" + }, + new + { + GenValID = 7, + ClassCod = "ShapeList", + Ordinal = 3, + ValString = "Triangular" + }, + new + { + GenValID = 8, + ClassCod = "ShapeList", + Ordinal = 4, + ValString = "Arc" + }, + new + { + GenValID = 9, + ClassCod = "ShapeList", + Ordinal = 5, + ValString = "FullArc" + }, + new + { + GenValID = 10, + ClassCod = "ShapeList", + Ordinal = 6, + ValString = "SemiFullArc" + }, + new + { + GenValID = 11, + ClassCod = "ShapeList", + Ordinal = 7, + ValString = "SemiArc" + }, + new + { + GenValID = 12, + ClassCod = "ShapeList", + Ordinal = 8, + ValString = "Circular" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.MovTypeModel", b => + { + b.Property("MovCod") + .HasColumnType("varchar(255)"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("MovCod"); + + b.ToTable("utils_mov_type"); + + b.HasData( + new + { + MovCod = "CAR", + Description = "Carico a magazzino" + }, + new + { + MovCod = "MOV", + Description = "Movimento interno (spostamento)" + }, + new + { + MovCod = "ND", + Description = "Non Definito" + }, + new + { + MovCod = "OFOR", + Description = "Ordine Fornitore" + }, + new + { + MovCod = "RETT", + Description = "Rettifica magazzino" + }, + new + { + MovCod = "SCAR", + Description = "Scarico da magazzino" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.TagsModel", b => + { + b.Property("TagID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TagID")); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("TagID"); + + b.ToTable("utils_tags"); + + b.HasData( + new + { + TagID = 1, + Description = "Tag 01" + }, + new + { + TagID = 2, + Description = "Tag 02" + }, + new + { + TagID = 3, + Description = "Tag 03" + }, + new + { + TagID = 4, + Description = "Tag 04" + }, + new + { + TagID = 5, + Description = "Tag 05" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.CostDriverModel", "DriverNav") + .WithMany() + .HasForeignKey("CostDriverID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("DriverNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.ItemModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.ItemGroupModel", "ItemGroupNav") + .WithMany() + .HasForeignKey("CodGroup") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("ItemGroupNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.SellingItemModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.JobModel", "JobNav") + .WithMany() + .HasForeignKey("JobID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("JobNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.OrderRowModel", "OrderRowNav") + .WithMany() + .HasForeignKey("OrderRowID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Production.ProductionBatchModel", "ProductionBatchNav") + .WithMany() + .HasForeignKey("ProductionBatchID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("OrderRowNav"); + + b.Navigation("ProductionBatchNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemStepModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.PhaseModel", "PhaseNav") + .WithMany() + .HasForeignKey("PhaseID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemModel", "ProdItemNav") + .WithMany() + .HasForeignKey("ProdItemID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", "ResourceNav") + .WithMany() + .HasForeignKey("ResourceID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("PhaseNav"); + + b.Navigation("ProdItemNav"); + + b.Navigation("ResourceNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.CustomerModel", "CustomerNav") + .WithMany() + .HasForeignKey("CustomerID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.DealerModel", "DealerNav") + .WithMany() + .HasForeignKey("DealerID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("CustomerNav"); + + b.Navigation("DealerNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferRowModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", "OfferNav") + .WithMany("OfferRowNav") + .HasForeignKey("OfferID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.SellingItemModel", "SellingItemNav") + .WithMany() + .HasForeignKey("SellingItemID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("OfferNav"); + + b.Navigation("SellingItemNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.CustomerModel", "CustomerNav") + .WithMany() + .HasForeignKey("CustomerID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.DealerModel", "DealerNav") + .WithMany() + .HasForeignKey("DealerID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", "OfferNav") + .WithMany() + .HasForeignKey("OfferID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("CustomerNav"); + + b.Navigation("DealerNav"); + + b.Navigation("OfferNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderRowModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.OrderModel", "OrderNav") + .WithMany() + .HasForeignKey("OrderID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.SellingItemModel", "SellingItemNav") + .WithMany() + .HasForeignKey("SellingItemID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("OrderNav"); + + b.Navigation("SellingItemNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Stock.StockMovModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Utils.MovTypeModel", "MovTypeNav") + .WithMany() + .HasForeignKey("MovCod") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Stock.StockStatusModel", "StockStatusNav") + .WithMany() + .HasForeignKey("StockStatusId") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("MovTypeNav"); + + b.Navigation("StockStatusNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Stock.StockStatusModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.ItemModel", "ItemNav") + .WithMany() + .HasForeignKey("ItemID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("ItemNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepItemModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.ItemModel", "ItemNav") + .WithMany() + .HasForeignKey("ItemID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.JobStepModel", "JobStepNav") + .WithMany() + .HasForeignKey("JobStepID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("ItemNav"); + + b.Navigation("JobStepNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.CostDriverModel", "DriverNav") + .WithMany() + .HasForeignKey("CostDriverID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.JobModel", "JobNav") + .WithMany("JobStepNav") + .HasForeignKey("JobID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.PhaseModel", "PhaseNav") + .WithMany() + .HasForeignKey("PhaseID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", "ResourceNav") + .WithMany() + .HasForeignKey("ResourceID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("DriverNav"); + + b.Navigation("JobNav"); + + b.Navigation("PhaseNav"); + + b.Navigation("ResourceNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.GenValueModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Utils.GenClassModel", "GenClassNav") + .WithMany("GenValNav") + .HasForeignKey("ClassCod") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("GenClassNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", b => + { + b.Navigation("OfferRowNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobModel", b => + { + b.Navigation("JobStepNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.GenClassModel", b => + { + b.Navigation("GenValNav"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/EgwCoreLib.Lux.Data/Migrations/20251015154525_AddOrderPreselDict.cs b/EgwCoreLib.Lux.Data/Migrations/20251015154525_AddOrderPreselDict.cs new file mode 100644 index 00000000..e0a7ef5e --- /dev/null +++ b/EgwCoreLib.Lux.Data/Migrations/20251015154525_AddOrderPreselDict.cs @@ -0,0 +1,352 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace EgwCoreLib.Lux.Data.Migrations +{ + /// + public partial class AddOrderPreselDict : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "DictPresel", + table: "sales_offer", + type: "longtext", + nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 1, + columns: new[] { "DictPresel", "Inserted", "Modified", "ValidUntil" }, + values: new object[] { "", new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5260), new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5261), new DateTime(2025, 11, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5256) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 2, + columns: new[] { "DictPresel", "Inserted", "Modified", "ValidUntil" }, + values: new object[] { "", new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5269), new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5271), new DateTime(2025, 11, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5268) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 3, + columns: new[] { "DictPresel", "Inserted", "Modified", "ValidUntil" }, + values: new object[] { "", new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5276), new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5277), new DateTime(2025, 11, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5274) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 4, + columns: new[] { "DictPresel", "Inserted", "Modified", "ValidUntil" }, + values: new object[] { "", new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5282), new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5284), new DateTime(2025, 11, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5281) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 1, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5417), new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5419) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 2, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5434), new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5436) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 3, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5448), new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5450) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 4, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5484), new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5486) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 5, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5499), new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5500) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 6, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5538), new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5540) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 7, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5552), new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5554) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 8, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5585), new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5586) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 9, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5599), new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5600) }); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 1, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(4953)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 2, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5007)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 3, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5010)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 4, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5014)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 5, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5017)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 6, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5020)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 7, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5024)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 8, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5027)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 9, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5030)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 10, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5034)); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "DictPresel", + table: "sales_offer"); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 1, + columns: new[] { "Inserted", "Modified", "ValidUntil" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5795), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5797), new DateTime(2025, 11, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5792) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 2, + columns: new[] { "Inserted", "Modified", "ValidUntil" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5803), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5805), new DateTime(2025, 11, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5802) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 3, + columns: new[] { "Inserted", "Modified", "ValidUntil" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5810), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5811), new DateTime(2025, 11, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5808) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 4, + columns: new[] { "Inserted", "Modified", "ValidUntil" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5816), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5817), new DateTime(2025, 11, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5815) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 1, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5960), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5962) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 2, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5976), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5978) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 3, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5990), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5992) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 4, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6029), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6030) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 5, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6043), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6045) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 6, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6076), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6077) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 7, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6090), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6092) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 8, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6122), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6123) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 9, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6136), new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(6137) }); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 1, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5466)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 2, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5529)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 3, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5532)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 4, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5535)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 5, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5539)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 6, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5542)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 7, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5546)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 8, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5549)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 9, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5552)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 10, + column: "DtCreate", + value: new DateTime(2025, 10, 15, 17, 43, 24, 427, DateTimeKind.Local).AddTicks(5556)); + } + } +} diff --git a/EgwCoreLib.Lux.Data/Migrations/DataLayerContextModelSnapshot.cs b/EgwCoreLib.Lux.Data/Migrations/DataLayerContextModelSnapshot.cs index d93d5126..89cbd108 100644 --- a/EgwCoreLib.Lux.Data/Migrations/DataLayerContextModelSnapshot.cs +++ b/EgwCoreLib.Lux.Data/Migrations/DataLayerContextModelSnapshot.cs @@ -1162,6 +1162,10 @@ namespace EgwCoreLib.Lux.Data.Migrations .IsRequired() .HasColumnType("longtext"); + b.Property("DictPresel") + .IsRequired() + .HasColumnType("longtext"); + b.Property("Discount") .HasColumnType("double"); @@ -1204,15 +1208,16 @@ namespace EgwCoreLib.Lux.Data.Migrations CustomerID = 2, DealerID = 2, Description = "Offerta per tre serramenti", + DictPresel = "", Discount = 0.0, Envir = 1, - Inserted = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6797), - Modified = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6798), + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5260), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5261), OffertState = 0, RefNum = 1, RefRev = 1, RefYear = 2024, - ValidUntil = new DateTime(2025, 11, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6794) + ValidUntil = new DateTime(2025, 11, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5256) }, new { @@ -1220,15 +1225,16 @@ namespace EgwCoreLib.Lux.Data.Migrations CustomerID = 2, DealerID = 2, Description = "Offerta BEAM", + DictPresel = "", Discount = 0.0, Envir = 2, - Inserted = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6804), - Modified = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6806), + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5269), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5271), OffertState = 0, RefNum = 2, RefRev = 1, RefYear = 2024, - ValidUntil = new DateTime(2025, 11, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6803) + ValidUntil = new DateTime(2025, 11, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5268) }, new { @@ -1236,15 +1242,16 @@ namespace EgwCoreLib.Lux.Data.Migrations CustomerID = 2, DealerID = 2, Description = "Offerta Cabinet", + DictPresel = "", Discount = 0.0, Envir = 4, - Inserted = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6811), - Modified = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6812), + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5276), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5277), OffertState = 0, RefNum = 3, RefRev = 1, RefYear = 2024, - ValidUntil = new DateTime(2025, 11, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6809) + ValidUntil = new DateTime(2025, 11, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5274) }, new { @@ -1252,15 +1259,16 @@ namespace EgwCoreLib.Lux.Data.Migrations CustomerID = 2, DealerID = 2, Description = "Offerta Wall", + DictPresel = "", Discount = 0.0, Envir = 3, - Inserted = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6817), - Modified = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6818), + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5282), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5284), OffertState = 0, RefNum = 4, RefRev = 1, RefYear = 2024, - ValidUntil = new DateTime(2025, 11, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6816) + ValidUntil = new DateTime(2025, 11, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5281) }); }); @@ -1369,11 +1377,11 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6960), + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5417), ItemBOM = "", ItemOk = true, ItemSteps = "{}", - Modified = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6962), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5419), Note = "Finestra anta singola 2025", OfferID = 1, OfferRowUID = "OFF250000010001", @@ -1396,11 +1404,11 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6976), + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5434), ItemBOM = "", ItemOk = true, ItemSteps = "{}", - Modified = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6978), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5436), Note = "Persiana per Finestra anta singola 2025", OfferID = 1, OfferRowUID = "OFF250000010002", @@ -1423,11 +1431,11 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6990), + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5448), ItemBOM = "", ItemOk = true, ItemSteps = "{}", - Modified = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6992), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5450), Note = "Installazione serramento", OfferID = 1, OfferRowUID = "OFF250000010003", @@ -1450,11 +1458,11 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7023), + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5484), ItemBOM = "", ItemOk = true, ItemSteps = "{}", - Modified = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7025), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5486), Note = "Demo file 01", OfferID = 2, OfferRowUID = "OFF250000020001", @@ -1477,11 +1485,11 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7037), + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5499), ItemBOM = "", ItemOk = true, ItemSteps = "{}", - Modified = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7039), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5500), Note = "Demo file 02", OfferID = 2, OfferRowUID = "OFF250000020002", @@ -1504,11 +1512,11 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7070), + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5538), ItemBOM = "", ItemOk = true, ItemSteps = "{}", - Modified = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7072), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5540), Note = "Demo file 01", OfferID = 3, OfferRowUID = "OFF250000030001", @@ -1531,11 +1539,11 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7089), + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5552), ItemBOM = "", ItemOk = true, ItemSteps = "{}", - Modified = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7090), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5554), Note = "Demo file 02", OfferID = 3, OfferRowUID = "OFF250000030002", @@ -1558,11 +1566,11 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7121), + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5585), ItemBOM = "", ItemOk = true, ItemSteps = "{}", - Modified = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7122), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5586), Note = "Demo file 01", OfferID = 4, OfferRowUID = "OFF250000040001", @@ -1585,11 +1593,11 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7134), + Inserted = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5599), ItemBOM = "", ItemOk = true, ItemSteps = "{}", - Modified = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(7136), + Modified = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5600), Note = "Demo file 02", OfferID = 4, OfferRowUID = "OFF250000040002", @@ -1620,6 +1628,10 @@ namespace EgwCoreLib.Lux.Data.Migrations .IsRequired() .HasColumnType("longtext"); + b.Property("DictPresel") + .IsRequired() + .HasColumnType("longtext"); + b.Property("Inserted") .HasColumnType("datetime(6)"); @@ -1772,8 +1784,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 1, CodDoc = "", - DtCreate = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6489), - DtMod = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6540), + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(4953), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5004), MovCod = "CAR", Note = "DEMO", QtyRec = 5.0, @@ -1785,8 +1797,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 2, CodDoc = "", - DtCreate = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6543), - DtMod = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6544), + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5007), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5008), MovCod = "CAR", Note = "DEMO", QtyRec = 8.0, @@ -1798,8 +1810,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 3, CodDoc = "", - DtCreate = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6546), - DtMod = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6548), + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5010), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5012), MovCod = "CAR", Note = "DEMO", QtyRec = 5.0, @@ -1811,8 +1823,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 4, CodDoc = "", - DtCreate = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6550), - DtMod = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6551), + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5014), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5015), MovCod = "CAR", Note = "DEMO", QtyRec = 1.0, @@ -1824,8 +1836,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 5, CodDoc = "", - DtCreate = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6553), - DtMod = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6554), + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5017), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5018), MovCod = "CAR", Note = "DEMO", QtyRec = 10.0, @@ -1837,8 +1849,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 6, CodDoc = "", - DtCreate = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6556), - DtMod = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6558), + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5020), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5022), MovCod = "CAR", Note = "DEMO", QtyRec = 1.0, @@ -1850,8 +1862,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 7, CodDoc = "", - DtCreate = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6560), - DtMod = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6561), + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5024), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5025), MovCod = "CAR", Note = "DEMO", QtyRec = 50.0, @@ -1863,8 +1875,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 8, CodDoc = "", - DtCreate = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6563), - DtMod = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6564), + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5027), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5028), MovCod = "CAR", Note = "DEMO", QtyRec = 1.0, @@ -1876,8 +1888,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 9, CodDoc = "", - DtCreate = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6566), - DtMod = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6568), + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5030), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5032), MovCod = "CAR", Note = "DEMO", QtyRec = 1.0, @@ -1889,8 +1901,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 10, CodDoc = "", - DtCreate = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6570), - DtMod = new DateTime(2025, 10, 15, 11, 44, 5, 702, DateTimeKind.Local).AddTicks(6571), + DtCreate = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5034), + DtMod = new DateTime(2025, 10, 15, 17, 45, 25, 284, DateTimeKind.Local).AddTicks(5035), MovCod = "CAR", Note = "DEMO", QtyRec = 1.0, diff --git a/EgwCoreLib.Lux.Data/Services/DataLayerServices.cs b/EgwCoreLib.Lux.Data/Services/DataLayerServices.cs index 1cf019d2..82a3e53c 100644 --- a/EgwCoreLib.Lux.Data/Services/DataLayerServices.cs +++ b/EgwCoreLib.Lux.Data/Services/DataLayerServices.cs @@ -774,6 +774,26 @@ namespace EgwCoreLib.Lux.Data.Services return answ; } + /// + /// Effettua fix UID righe child dell'offerta indicata e restituisce elenco UID da chiamare x refresh + /// + /// Key + /// + public async Task> OffertRowFixUid(int OffertID) + { + List answ = new List(); + Stopwatch sw = new Stopwatch(); + sw.Start(); + // calcolo + answ = dbController.OffertRowFixUid(OffertID); + // svuoto cache... + await ExecFlushRedisPatternAsync((RedisValue)$"{redisBaseKey}:Offers:*"); + await ExecFlushRedisPatternAsync((RedisValue)$"{redisBaseKey}:OfferRows:*"); + sw.Stop(); + Log.Debug($"OffertRowFixUid in {sw.Elapsed.TotalMilliseconds} ms"); + return answ; + } + /// /// Effettua update della BOM (e dei costi) di tutte le righe dell'offerta indicata /// @@ -833,6 +853,25 @@ namespace EgwCoreLib.Lux.Data.Services return fatto; } + /// + /// Effettua Upsert della riga offerta + /// + /// IRiga offerta coin dati FILE da aggiornare + /// + public async Task OffertRowUpsert(OfferRowModel updRec) + { + Stopwatch sw = new Stopwatch(); + sw.Start(); + // calcolo + bool fatto = await dbController.OffertRowUpsert(updRec); + // svuoto cache... + await ExecFlushRedisPatternAsync((RedisValue)$"{redisBaseKey}:Offers:*"); + await ExecFlushRedisPatternAsync((RedisValue)$"{redisBaseKey}:OfferRows:*"); + sw.Stop(); + Log.Debug($"OffertRowUpsert in {sw.Elapsed.TotalMilliseconds} ms"); + return fatto; + } + /// /// Effettua update stato await BOM/PRICE per l'offerta indicata ///