diff --git a/EgwCoreLib.Lux.Data/Controllers/LuxController.cs b/EgwCoreLib.Lux.Data/Controllers/LuxController.cs index 374f8880..6c66ace3 100644 --- a/EgwCoreLib.Lux.Data/Controllers/LuxController.cs +++ b/EgwCoreLib.Lux.Data/Controllers/LuxController.cs @@ -1730,7 +1730,7 @@ namespace EgwCoreLib.Lux.Data.Controllers } /// - /// esegue il cloning completo di un offerta e di TUTTE le relative righe di offerta... + /// Esegue il cloning completo di un offerta e di TUTTE le relative righe di offerta... /// /// /// @@ -1742,14 +1742,15 @@ namespace EgwCoreLib.Lux.Data.Controllers { try { - DateTime adesso = DateTime.Now; + DateTime adesso = DateTime.Now; // recupero offerta... var currRec = dbCtx .DbSetOffer .Where(x => x.OfferID == rec2clone.OfferID) .Include(x => x.OfferRowNav) .FirstOrDefault(); - // ultimo record x calcolo refNum + + // ultimo record OFFERTA x calcolo refNum var lastRec = dbCtx .DbSetOffer .Where(x => x.RefYear == adesso.Year) @@ -1832,6 +1833,118 @@ namespace EgwCoreLib.Lux.Data.Controllers return answ; } + + /// + /// Genera un nuovo record ordine come cloning completo di un offerta e di TUTTE le relative righe di offerta + rif offerta + /// + /// + /// + internal async Task OrderFromOffer(OfferModel rec2clone) + { + bool answ = false; + //using (DataLayerContext dbCtx = new DataLayerContext(_config)) + using (DataLayerContext dbCtx = new DataLayerContext()) + { + try + { + DateTime adesso = DateTime.Now; + // recupero offerta... + var currRec = dbCtx + .DbSetOffer + .Where(x => x.OfferID == rec2clone.OfferID) + .Include(x => x.OfferRowNav) + .FirstOrDefault(); + + // ultimo record ORDINE x calcolo refNum + var lastRec = dbCtx + .DbSetOrder + .Where(x => x.RefYear == adesso.Year) + .OrderByDescending(x => x.RefNum) + .FirstOrDefault(); + int newRefNum = lastRec != null ? lastRec.RefNum + 1 : 1; + + // se trovo --> duplico! + if (currRec != null) + { + // recupero ultimo num offerta dell'anno corrente... + OrderModel newRec = new OrderModel() + { + ConsNote = rec2clone.ConsNote, + CustomerID = rec2clone.CustomerID, + DealerID = rec2clone.DealerID, + Description = rec2clone.Description, + DictPresel = rec2clone.DictPresel, + Discount = rec2clone.Discount, + DueDateProm = rec2clone.DueDateProm, + DueDateReq = rec2clone.DueDateReq, + Envir = rec2clone.Envir, + Inserted = adesso, + Modified = adesso, + OfferID = rec2clone.OfferID, + RefNum = newRefNum, + RefRev = 1, + RefYear = adesso.Year, + ValidUntil = currRec.ValidUntil, + OrderState = OrderStates.Created + }; + + // sistemo child offer... + newRec.OrderRowNav = currRec.OfferRowNav + .Select(c => new OrderRowModel() + { + AwaitBom = c.AwaitBom, + AwaitPrice = c.AwaitPrice, + BomCost = c.BomCost, + BomOk = c.BomOk, + BomPrice = c.BomPrice, + Envir = c.Envir, + FileName = c.FileName, + FileResource = c.FileResource, + FileSize = c.FileSize, + Inserted = adesso, + ItemBOM = c.ItemBOM, + ItemJCD = c.ItemJCD, + ItemOk = c.ItemOk, + ItemSteps = c.ItemSteps, + ItemTags = c.ItemTags, + JobID = c.JobID, + Modified = c.Modified, + Note = c.Note, + Qty = c.Qty, + RowNum = c.RowNum, + SellingItemID = c.SellingItemID, + SerStruct = c.SerStruct, + StepCost = c.StepCost, + StepFlowTime = c.StepFlowTime, + StepLeadTime = c.StepLeadTime, + StepPrice = c.StepPrice + }) + .ToList(); + // sistemo UID... + foreach (var item in newRec.OrderRowNav) + { + item.OrderRowUID = item.OrderRowCode; + } + // infine aggiungo riga ordine e relativi child + dbCtx.DbSetOrder.Add(newRec); + + // genero la lista record delle parts (solo come ID correlati...) + + + } + + // salvo TUTTI i cambiamenti... + var result = await dbCtx.SaveChangesAsync(); + answ = result > 0; + } + catch (Exception exc) + { + Log.Error($"Eccezione durante OfferClone{Environment.NewLine}{exc}"); + } + } + return answ; + } + /// /// Elenco completo offerte da DB /// diff --git a/EgwCoreLib.Lux.Data/DbModel/Sales/OfferModel.cs b/EgwCoreLib.Lux.Data/DbModel/Sales/OfferModel.cs index 56a33300..561496eb 100644 --- a/EgwCoreLib.Lux.Data/DbModel/Sales/OfferModel.cs +++ b/EgwCoreLib.Lux.Data/DbModel/Sales/OfferModel.cs @@ -117,6 +117,16 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales { get => OfferRowNav?.Sum(x => x.Qty) ?? 0; } + + /// + /// Numero ProdItem compresi + /// + [NotMapped] + public double NumProdItems + { + get => OfferRowNav?.Sum(x => x.ProdItemQty) ?? 0; + } + /// /// Numero Item compresi /// diff --git a/EgwCoreLib.Lux.Data/DbModel/Sales/OfferRowModel.cs b/EgwCoreLib.Lux.Data/DbModel/Sales/OfferRowModel.cs index 780eab9c..72f7be9d 100644 --- a/EgwCoreLib.Lux.Data/DbModel/Sales/OfferRowModel.cs +++ b/EgwCoreLib.Lux.Data/DbModel/Sales/OfferRowModel.cs @@ -170,6 +170,11 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales /// public string ItemTags { get; set; } = ""; + /// + /// Quantità degli item da produrre (es parti del serramento, singole parti BTL...) + /// + public int ProdItemQty { get; set; } = 0; + /// /// Riferimento JobID Ciclo corrente (tra quelli ammissibili dato ItemJCD) /// diff --git a/EgwCoreLib.Lux.Data/DbModel/Sales/OrderModel.cs b/EgwCoreLib.Lux.Data/DbModel/Sales/OrderModel.cs index a6444a46..61483032 100644 --- a/EgwCoreLib.Lux.Data/DbModel/Sales/OrderModel.cs +++ b/EgwCoreLib.Lux.Data/DbModel/Sales/OrderModel.cs @@ -113,6 +113,7 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales /// Sconto applicato (deve essere < del MAX) /// public double Discount { get; set; } = 0; + /// /// Numero Item compresi /// @@ -121,6 +122,16 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales { get => OrderRowNav?.Sum(x => x.Qty) ?? 0; } + + /// + /// Numero ProdItem compresi + /// + [NotMapped] + public double NumProdItems + { + get => OrderRowNav?.Sum(x => x.ProdItemQty) ?? 0; + } + /// /// Numero Item compresi /// @@ -129,6 +140,7 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales { get => OrderRowNav?.Count ?? 0; } + /// /// Costo totale offerta (rock bottom) /// diff --git a/EgwCoreLib.Lux.Data/DbModel/Sales/OrderRowModel.cs b/EgwCoreLib.Lux.Data/DbModel/Sales/OrderRowModel.cs index 39131ab8..b9dfb216 100644 --- a/EgwCoreLib.Lux.Data/DbModel/Sales/OrderRowModel.cs +++ b/EgwCoreLib.Lux.Data/DbModel/Sales/OrderRowModel.cs @@ -1,4 +1,5 @@ using EgwCoreLib.Lux.Data.DbModel.Items; +using EgwCoreLib.Lux.Data.DbModel.Production; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; @@ -171,6 +172,11 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales /// public string ItemTags { get; set; } = ""; + /// + /// Quantità degli item da produrre (es parti del serramento, singole parti BTL...) + /// + public int ProdItemQty { get; set; } = 0; + /// /// Riferimento JobID Ciclo corrente (tra quelli ammissibili dato ItemJCD) /// @@ -236,5 +242,10 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales /// [ForeignKey("SellingItemID")] public virtual SellingItemModel? SellingItemNav { get; set; } + + /// + /// Navigazione alle righe ProdItem + /// + public virtual ICollection ProdItemNav { get; set; } = new List(); } } diff --git a/EgwCoreLib.Lux.Data/Migrations/20251114171407_AddProdItemQty.Designer.cs b/EgwCoreLib.Lux.Data/Migrations/20251114171407_AddProdItemQty.Designer.cs new file mode 100644 index 00000000..9c75b049 --- /dev/null +++ b/EgwCoreLib.Lux.Data/Migrations/20251114171407_AddProdItemQty.Designer.cs @@ -0,0 +1,3575 @@ +// +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("20251114171407_AddProdItemQty")] + partial class AddProdItemQty + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.21") + .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 = "SerializedData" + }, + new + { + EnvirID = 2, + SerStrucKey = "SerializedData" + }, + new + { + EnvirID = 4, + SerStrucKey = "SerializedData" + }, + new + { + EnvirID = 3, + SerStrucKey = "SerializedData" + }); + }); + + 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", + Name = "WorkHour", + Unit = "h" + }, + new + { + CostDriverID = 2, + Descript = "Metri prodotto", + Name = "Meter", + Unit = "m" + }, + new + { + CostDriverID = 3, + Descript = "Unità prodotto", + Name = "Unit", + Unit = "#" + }, + new + { + CostDriverID = 4, + Descript = "Volume prodotto", + Name = "Volume", + Unit = "m3" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", b => + { + b.Property("ResourceID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ResourceID")); + + b.Property("CodResource") + .IsRequired() + .HasColumnType("longtext"); + + 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, + CodResource = "0000", + CostDriverBudget = 1m, + CostDriverID = 3, + EBTPerc = 0.15m, + FixedCost = 50m, + LaborCost = 100m, + Name = "Item Generico", + OverHeadCost = 100m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 50m + }, + new + { + ResourceID = 2, + CodResource = "0010", + CostDriverBudget = 2200m, + CostDriverID = 3, + EBTPerc = 0.15m, + FixedCost = 200000m, + LaborCost = 200000m, + Name = "Serramento (media annua globale)", + OverHeadCost = 100000m, + OverHeadPerc = 0.15m, + PriceMargin = 0.2m, + VariableCost = 200000m + }, + new + { + ResourceID = 3, + CodResource = "0110", + 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 = 4, + CodResource = "0120.01", + 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 = 5, + CodResource = "0120.02", + 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 = 6, + CodResource = "0130.01", + 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 = 7, + CodResource = "0130.02", + 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 = 8, + CodResource = "0140", + 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 = 9, + CodResource = "0150", + 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 = "BeamTrunk", + Description = "Barre legno per lavorazione Travi" + }, + new + { + CodGroup = "WindowTrunk", + Description = "Barre legno per lavorazione Finestre" + }, + 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("Envir") + .HasColumnType("int"); + + 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 = 500.0, + Description = "Finestra Anta Singola", + Envir = 1, + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 2, + Margin = 0.20000000000000001, + SerStruct = "{\"ProfilePath\": \"Profilo78\",\"Material\": \"Pino\",\"ColorMaterial\": \"Black\",\"Glass\": \"Vetro BE 2S 4T/16/4T\",\"AreaList\": [{\"Shape\": \"RECTANGLE\",\"DimensionList\": [{\"Index\": 1,\"Name\": \"Width\",\"Value\": 800.0},{\"Index\": 2,\"Name\": \"Height\",\"Value\": 1200.0}],\"JointList\": [{\"Index\": 1,\"JointType\": \"FULL_H\"},{\"Index\": 2,\"JointType\": \"FULL_H\"},{\"Index\": 3,\"JointType\": \"FULL_H\"},{\"Index\": 4,\"JointType\": \"FULL_H\"}],\"BottomRail\": false,\"BottomRailQty\": 0,\"GroupId\": 1,\"AreaList\": [{\"IsSashVertical\": true,\"SashList\": [{\"SashId\": 1,\"OpeningType\": \"TILTTURN_LEFT\",\"HasHandle\": true,\"Dimension\": 100.0}],\"SashType\": \"NULL\",\"JointList\": [{\"Index\": 1,\"JointType\": \"FULL_H\"},{\"Index\": 2,\"JointType\": \"FULL_H\"},{\"Index\": 3,\"JointType\": \"FULL_H\"},{\"Index\": 4,\"JointType\": \"FULL_H\"}],\"Hardware\": \"000635\",\"HwOptionList\": [{\"Name\": \"Entrata\",\"Value\": \"15\"},{\"Name\": \"LavManigliaPassante\",\"Value\": \"false\"},{\"Name\": \"PosizioneForoCilindro\",\"Value\": \"sotto\"},{\"Name\": \"Deviatore\",\"Value\": \"false\"},{\"Name\": \"ModelloCilindro\",\"Value\": \"c999\"},{\"Name\": \"LavCilindroPassante\",\"Value\": \"false\"},{\"Name\": \"HMan\",\"Value\": \"400\"}],\"GroupId\": 2,\"AreaList\": [{\"FillType\": \"GLASS\",\"GroupId\": 3,\"AreaList\": [],\"AreaType\": \"FILL\"}],\"AreaType\": \"SASH\"}],\"AreaType\": \"FRAME\"}]}", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 2, + Cost = 300.0, + Description = "Finestra Vetro Fisso ", + Envir = 1, + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 2, + Margin = 0.20000000000000001, + SerStruct = "{\"ProfilePath\": \"Profilo78\",\"Material\": \"Pino\",\"ColorMaterial\": \"Black\",\"Glass\": \"Vetro BE 2S 4T/16/4T\",\"AreaList\": [{\"Shape\": \"RECTANGLE\",\"DimensionList\": [{\"Index\": 1,\"Name\": \"Width\",\"Value\": 800.0},{\"Index\": 2,\"Name\": \"Height\",\"Value\": 1200.0}],\"JointList\": [{\"Index\": 1,\"JointType\": \"FULL_H\"},{\"Index\": 2,\"JointType\": \"FULL_H\"},{\"Index\": 3,\"JointType\": \"FULL_H\"},{\"Index\": 4,\"JointType\": \"FULL_H\"}],\"BottomRail\": false,\"BottomRailQty\": 0,\"GroupId\": 1,\"AreaList\": [{\"IsSashVertical\": true,\"SashList\": [{\"SashId\": 1,\"OpeningType\": \"TILTTURN_LEFT\",\"HasHandle\": true,\"Dimension\": 100.0}],\"SashType\": \"NULL\",\"JointList\": [{\"Index\": 1,\"JointType\": \"FULL_H\"},{\"Index\": 2,\"JointType\": \"FULL_H\"},{\"Index\": 3,\"JointType\": \"FULL_H\"},{\"Index\": 4,\"JointType\": \"FULL_H\"}],\"Hardware\": \"000635\",\"HwOptionList\": [{\"Name\": \"Entrata\",\"Value\": \"15\"},{\"Name\": \"LavManigliaPassante\",\"Value\": \"false\"},{\"Name\": \"PosizioneForoCilindro\",\"Value\": \"sotto\"},{\"Name\": \"Deviatore\",\"Value\": \"false\"},{\"Name\": \"ModelloCilindro\",\"Value\": \"c999\"},{\"Name\": \"LavCilindroPassante\",\"Value\": \"false\"},{\"Name\": \"HMan\",\"Value\": \"400\"}],\"GroupId\": 2,\"AreaList\": [{\"FillType\": \"GLASS\",\"GroupId\": 3,\"AreaList\": [],\"AreaType\": \"FILL\"}],\"AreaType\": \"SASH\"}],\"AreaType\": \"FRAME\"}]}", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 3, + Cost = 150.0, + Description = "Persiana anta singola", + Envir = 1, + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 1, + Margin = 0.10000000000000001, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 4, + Cost = 200.0, + Description = "Installazione", + Envir = 1, + ExtItemCode = "", + IsService = true, + ItemCode = 0, + ItemSteps = "", + JobID = 1, + Margin = 0.29999999999999999, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 5, + Cost = 1000.0, + Description = "Trave lamellare", + Envir = 2, + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 3, + Margin = 0.29999999999999999, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 6, + Cost = 500.0, + Description = "Cabinet", + Envir = 4, + ExtItemCode = "", + IsService = false, + ItemCode = 0, + ItemSteps = "", + JobID = 4, + Margin = 0.29999999999999999, + SerStruct = "", + SupplCode = "", + UM = "#" + }, + new + { + SellingItemID = 7, + Cost = 2000.0, + Description = "Parete", + Envir = 3, + 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("ConsNote") + .IsRequired() + .HasColumnType("longtext"); + + 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("DueDateProm") + .HasColumnType("datetime(6)"); + + b.Property("DueDateReq") + .HasColumnType("datetime(6)"); + + 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, + ConsNote = "", + CustomerID = 2, + DealerID = 2, + Description = "Offerta per tre serramenti", + DictPresel = "", + Discount = 0.0, + DueDateProm = new DateTime(2026, 1, 13, 0, 0, 0, 0, DateTimeKind.Local), + DueDateReq = new DateTime(2025, 12, 14, 0, 0, 0, 0, DateTimeKind.Local), + Envir = 1, + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9203), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9204), + OffertState = 0, + RefNum = 1, + RefRev = 1, + RefYear = 2025, + ValidUntil = new DateTime(2025, 12, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9200) + }, + new + { + OfferID = 2, + ConsNote = "", + CustomerID = 2, + DealerID = 2, + Description = "Offerta BEAM", + DictPresel = "", + Discount = 0.0, + DueDateProm = new DateTime(2026, 1, 13, 0, 0, 0, 0, DateTimeKind.Local), + DueDateReq = new DateTime(2025, 12, 14, 0, 0, 0, 0, DateTimeKind.Local), + Envir = 2, + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9219), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9220), + OffertState = 0, + RefNum = 2, + RefRev = 1, + RefYear = 2025, + ValidUntil = new DateTime(2025, 12, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9217) + }, + new + { + OfferID = 3, + ConsNote = "", + CustomerID = 2, + DealerID = 2, + Description = "Offerta Cabinet", + DictPresel = "", + Discount = 0.0, + DueDateProm = new DateTime(2026, 1, 13, 0, 0, 0, 0, DateTimeKind.Local), + DueDateReq = new DateTime(2025, 12, 14, 0, 0, 0, 0, DateTimeKind.Local), + Envir = 4, + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9228), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9230), + OffertState = 0, + RefNum = 3, + RefRev = 1, + RefYear = 2025, + ValidUntil = new DateTime(2025, 12, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9227) + }, + new + { + OfferID = 4, + ConsNote = "", + CustomerID = 2, + DealerID = 2, + Description = "Offerta Wall", + DictPresel = "", + Discount = 0.0, + DueDateProm = new DateTime(2026, 1, 13, 0, 0, 0, 0, DateTimeKind.Local), + DueDateReq = new DateTime(2025, 12, 14, 0, 0, 0, 0, DateTimeKind.Local), + Envir = 3, + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9238), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9239), + OffertState = 0, + RefNum = 4, + RefRev = 1, + RefYear = 2025, + ValidUntil = new DateTime(2025, 12, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9236) + }); + }); + + 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("ItemJCD") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ItemOk") + .HasColumnType("tinyint(1)"); + + b.Property("ItemSteps") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ItemTags") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("JobID") + .HasColumnType("int"); + + 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("ProdItemQty") + .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("StepFlowTime") + .HasColumnType("double"); + + b.Property("StepLeadTime") + .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 = 2, + AwaitBom = false, + AwaitPrice = false, + BomCost = 900.0, + BomOk = true, + BomPrice = 950.0, + Envir = 1, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9363), + ItemBOM = "", + ItemJCD = "", + ItemOk = true, + ItemSteps = "{}", + ItemTags = "", + JobID = 0, + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9365), + Note = "Finestra Anta Singola 2025", + OfferID = 1, + OfferRowUID = "SOR.25.00000002", + ProdItemQty = 0, + Qty = 3.0, + RowNum = 1, + SellingItemID = 1, + SerStruct = "{\"ProfilePath\": \"Profilo78\",\"Material\": \"Pino\",\"ColorMaterial\": \"Black\",\"Glass\": \"Vetro BE 2S 4T/16/4T\",\"AreaList\": [{\"Shape\": \"RECTANGLE\",\"DimensionList\": [{\"Index\": 1,\"Name\": \"Width\",\"Value\": 800.0},{\"Index\": 2,\"Name\": \"Height\",\"Value\": 1200.0}],\"JointList\": [{\"Index\": 1,\"JointType\": \"FULL_H\"},{\"Index\": 2,\"JointType\": \"FULL_H\"},{\"Index\": 3,\"JointType\": \"FULL_H\"},{\"Index\": 4,\"JointType\": \"FULL_H\"}],\"BottomRail\": false,\"BottomRailQty\": 0,\"GroupId\": 1,\"AreaList\": [{\"IsSashVertical\": true,\"SashList\": [{\"SashId\": 1,\"OpeningType\": \"TILTTURN_LEFT\",\"HasHandle\": true,\"Dimension\": 100.0}],\"SashType\": \"NULL\",\"JointList\": [{\"Index\": 1,\"JointType\": \"FULL_H\"},{\"Index\": 2,\"JointType\": \"FULL_H\"},{\"Index\": 3,\"JointType\": \"FULL_H\"},{\"Index\": 4,\"JointType\": \"FULL_H\"}],\"Hardware\": \"000635\",\"HwOptionList\": [{\"Name\": \"Entrata\",\"Value\": \"15\"},{\"Name\": \"LavManigliaPassante\",\"Value\": \"false\"},{\"Name\": \"PosizioneForoCilindro\",\"Value\": \"sotto\"},{\"Name\": \"Deviatore\",\"Value\": \"false\"},{\"Name\": \"ModelloCilindro\",\"Value\": \"c999\"},{\"Name\": \"LavCilindroPassante\",\"Value\": \"false\"},{\"Name\": \"HMan\",\"Value\": \"400\"}],\"GroupId\": 2,\"AreaList\": [{\"FillType\": \"GLASS\",\"GroupId\": 3,\"AreaList\": [],\"AreaType\": \"FILL\"}],\"AreaType\": \"SASH\"}],\"AreaType\": \"FRAME\"}]}", + StepCost = 0.0, + StepFlowTime = 0.0, + StepLeadTime = 0.0, + StepPrice = 0.0 + }, + 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, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9378), + ItemBOM = "", + ItemJCD = "", + ItemOk = true, + ItemSteps = "{}", + ItemTags = "", + JobID = 0, + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9379), + Note = "Finestra Vetro Fisso 2025", + OfferID = 1, + OfferRowUID = "SOR.25.00000001", + ProdItemQty = 0, + Qty = 3.0, + RowNum = 2, + SellingItemID = 2, + SerStruct = "{\"ProfilePath\": \"Profilo78\",\"Material\": \"Pino\",\"ColorMaterial\": \"Black\",\"Glass\": \"Vetro BE 2S 4T/16/4T\",\"AreaList\": [{\"Shape\": \"RECTANGLE\",\"DimensionList\": [{\"Index\": 1,\"Name\": \"Width\",\"Value\": 800.0},{\"Index\": 2,\"Name\": \"Height\",\"Value\": 1200.0}],\"JointList\": [{\"Index\": 1,\"JointType\": \"FULL_H\"},{\"Index\": 2,\"JointType\": \"FULL_H\"},{\"Index\": 3,\"JointType\": \"FULL_H\"},{\"Index\": 4,\"JointType\": \"FULL_H\"}],\"BottomRail\": false,\"BottomRailQty\": 0,\"GroupId\": 1,\"AreaList\": [{\"IsSashVertical\": true,\"SashList\": [{\"SashId\": 1,\"OpeningType\": \"TILTTURN_LEFT\",\"HasHandle\": true,\"Dimension\": 100.0}],\"SashType\": \"NULL\",\"JointList\": [{\"Index\": 1,\"JointType\": \"FULL_H\"},{\"Index\": 2,\"JointType\": \"FULL_H\"},{\"Index\": 3,\"JointType\": \"FULL_H\"},{\"Index\": 4,\"JointType\": \"FULL_H\"}],\"Hardware\": \"000635\",\"HwOptionList\": [{\"Name\": \"Entrata\",\"Value\": \"15\"},{\"Name\": \"LavManigliaPassante\",\"Value\": \"false\"},{\"Name\": \"PosizioneForoCilindro\",\"Value\": \"sotto\"},{\"Name\": \"Deviatore\",\"Value\": \"false\"},{\"Name\": \"ModelloCilindro\",\"Value\": \"c999\"},{\"Name\": \"LavCilindroPassante\",\"Value\": \"false\"},{\"Name\": \"HMan\",\"Value\": \"400\"}],\"GroupId\": 2,\"AreaList\": [{\"FillType\": \"GLASS\",\"GroupId\": 3,\"AreaList\": [],\"AreaType\": \"FILL\"}],\"AreaType\": \"SASH\"}],\"AreaType\": \"FRAME\"}]}", + StepCost = 0.0, + StepFlowTime = 0.0, + StepLeadTime = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 3, + AwaitBom = false, + AwaitPrice = false, + BomCost = 160.0, + BomOk = true, + BomPrice = 200.0, + Envir = 1, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9390), + ItemBOM = "", + ItemJCD = "", + ItemOk = true, + ItemSteps = "{}", + ItemTags = "", + JobID = 0, + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9392), + Note = "Persiana per Finestra anta singola 2025", + OfferID = 1, + OfferRowUID = "SOR.25.00000003", + ProdItemQty = 0, + Qty = 3.0, + RowNum = 3, + SellingItemID = 3, + SerStruct = "{}", + StepCost = 0.0, + StepFlowTime = 0.0, + StepLeadTime = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 4, + AwaitBom = false, + AwaitPrice = false, + BomCost = 200.0, + BomOk = true, + BomPrice = 250.0, + Envir = 1, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9403), + ItemBOM = "", + ItemJCD = "", + ItemOk = true, + ItemSteps = "{}", + ItemTags = "", + JobID = 0, + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9404), + Note = "Installazione serramento", + OfferID = 1, + OfferRowUID = "SOR.25.00000004", + ProdItemQty = 0, + Qty = 3.0, + RowNum = 4, + SellingItemID = 4, + SerStruct = "{}", + StepCost = 0.0, + StepFlowTime = 0.0, + StepLeadTime = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 5, + AwaitBom = false, + AwaitPrice = false, + BomCost = 800.0, + BomOk = true, + BomPrice = 1150.0, + Envir = 2, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9435), + ItemBOM = "", + ItemJCD = "", + ItemOk = true, + ItemSteps = "{}", + ItemTags = "", + JobID = 0, + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9436), + Note = "Demo file 01", + OfferID = 2, + OfferRowUID = "SOR.25.00000005", + ProdItemQty = 0, + Qty = 10.0, + RowNum = 1, + SellingItemID = 5, + SerStruct = "", + StepCost = 0.0, + StepFlowTime = 0.0, + StepLeadTime = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 6, + AwaitBom = false, + AwaitPrice = false, + BomCost = 600.0, + BomOk = true, + BomPrice = 950.0, + Envir = 2, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9447), + ItemBOM = "", + ItemJCD = "", + ItemOk = true, + ItemSteps = "{}", + ItemTags = "", + JobID = 0, + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9449), + Note = "Demo file 02", + OfferID = 2, + OfferRowUID = "SOR.25.00000006", + ProdItemQty = 0, + Qty = 4.0, + RowNum = 1, + SellingItemID = 5, + SerStruct = "", + StepCost = 0.0, + StepFlowTime = 0.0, + StepLeadTime = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 7, + AwaitBom = false, + AwaitPrice = false, + BomCost = 200.0, + BomOk = true, + BomPrice = 250.0, + Envir = 3, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9477), + ItemBOM = "", + ItemJCD = "", + ItemOk = true, + ItemSteps = "{}", + ItemTags = "", + JobID = 0, + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9479), + Note = "Demo file 01", + OfferID = 3, + OfferRowUID = "SOR.25.00000007", + ProdItemQty = 0, + Qty = 4.0, + RowNum = 1, + SellingItemID = 6, + SerStruct = "", + StepCost = 0.0, + StepFlowTime = 0.0, + StepLeadTime = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 8, + AwaitBom = false, + AwaitPrice = false, + BomCost = 50.0, + BomOk = true, + BomPrice = 80.0, + Envir = 3, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9489), + ItemBOM = "", + ItemJCD = "", + ItemOk = true, + ItemSteps = "{}", + ItemTags = "", + JobID = 0, + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9491), + Note = "Demo file 02", + OfferID = 3, + OfferRowUID = "SOR.25.00000008", + ProdItemQty = 0, + Qty = 12.0, + RowNum = 1, + SellingItemID = 6, + SerStruct = "", + StepCost = 0.0, + StepFlowTime = 0.0, + StepLeadTime = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 9, + AwaitBom = false, + AwaitPrice = false, + BomCost = 800.0, + BomOk = true, + BomPrice = 1150.0, + Envir = 4, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9518), + ItemBOM = "", + ItemJCD = "", + ItemOk = true, + ItemSteps = "{}", + ItemTags = "", + JobID = 0, + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 596, DateTimeKind.Local).AddTicks(54), + Note = "Demo file 01", + OfferID = 4, + OfferRowUID = "SOR.25.00000009", + ProdItemQty = 0, + Qty = 6.0, + RowNum = 1, + SellingItemID = 7, + SerStruct = "", + StepCost = 0.0, + StepFlowTime = 0.0, + StepLeadTime = 0.0, + StepPrice = 0.0 + }, + new + { + OfferRowID = 10, + AwaitBom = false, + AwaitPrice = false, + BomCost = 600.0, + BomOk = true, + BomPrice = 950.0, + Envir = 4, + FileName = "", + FileResource = "", + FileSize = 0L, + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 596, DateTimeKind.Local).AddTicks(68), + ItemBOM = "", + ItemJCD = "", + ItemOk = true, + ItemSteps = "{}", + ItemTags = "", + JobID = 0, + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 596, DateTimeKind.Local).AddTicks(70), + Note = "Demo file 02", + OfferID = 4, + OfferRowUID = "SOR.25.0000000A", + ProdItemQty = 0, + Qty = 4.0, + RowNum = 1, + SellingItemID = 7, + SerStruct = "", + StepCost = 0.0, + StepFlowTime = 0.0, + StepLeadTime = 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("ConsNote") + .IsRequired() + .HasColumnType("longtext"); + + 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("DueDateProm") + .HasColumnType("datetime(6)"); + + b.Property("DueDateReq") + .HasColumnType("datetime(6)"); + + b.Property("Envir") + .HasColumnType("int"); + + b.Property("Inserted") + .HasColumnType("datetime(6)"); + + b.Property("Modified") + .HasColumnType("datetime(6)"); + + b.Property("OfferID") + .HasColumnType("int"); + + b.Property("OrderState") + .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("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("ItemJCD") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ItemOk") + .HasColumnType("tinyint(1)"); + + b.Property("ItemSteps") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ItemTags") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("JobID") + .HasColumnType("int"); + + b.Property("Modified") + .HasColumnType("datetime(6)"); + + b.Property("Note") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("OrderID") + .HasColumnType("int"); + + b.Property("OrderRowUID") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ProdItemQty") + .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("StepFlowTime") + .HasColumnType("double"); + + b.Property("StepLeadTime") + .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, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1307), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1363), + 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, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1366), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1367), + 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, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1370), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1371), + 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, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1373), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1374), + 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, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1377), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1378), + 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, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1380), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1382), + 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, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1384), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1385), + 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, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1387), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1388), + 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, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1391), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1392), + 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, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1394), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1396), + 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.JobDriverConfigModel", b => + { + b.Property("JobDriverConfID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("JobDriverConfID")); + + b.Property("CostDriverID") + .HasColumnType("int"); + + b.Property("DefaultVal") + .HasColumnType("double"); + + b.Property("Intercept") + .HasColumnType("double"); + + b.Property("JobDriverID") + .HasColumnType("int"); + + b.Property("JobID") + .HasColumnType("int"); + + b.Property("Note") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Regress") + .HasColumnType("double"); + + b.HasKey("JobDriverConfID"); + + b.HasIndex("CostDriverID"); + + b.HasIndex("JobDriverID"); + + b.HasIndex("JobID"); + + b.ToTable("task_job_driver_config"); + + b.HasData( + new + { + JobDriverConfID = 1, + CostDriverID = 3, + DefaultVal = 1.0, + Intercept = 0.0, + JobDriverID = 3, + JobID = 6, + Note = "Numero prodotti", + Regress = 1.0 + }, + new + { + JobDriverConfID = 2, + CostDriverID = 3, + DefaultVal = 1.0, + Intercept = 0.0, + JobDriverID = 3, + JobID = 7, + Note = "Numero prodotti", + Regress = 1.0 + }, + new + { + JobDriverConfID = 3, + CostDriverID = 1, + DefaultVal = 5.0, + Intercept = 0.0, + JobDriverID = 1, + JobID = 7, + Note = "Ore Equivalenti", + Regress = 0.016666666666666666 + }, + new + { + JobDriverConfID = 4, + CostDriverID = 3, + DefaultVal = 1.0, + Intercept = 0.0, + JobDriverID = 3, + JobID = 2, + Note = "Numero prodotti", + Regress = 1.0 + }, + new + { + JobDriverConfID = 5, + CostDriverID = 1, + DefaultVal = 5.0, + Intercept = 0.0, + JobDriverID = 1, + JobID = 2, + Note = "Ore Equivalenti", + Regress = 0.016666666666666666 + }, + new + { + JobDriverConfID = 6, + CostDriverID = 1, + DefaultVal = 8.0, + Intercept = 0.0, + JobDriverID = 4, + JobID = 2, + Note = "Ore Extra per complex Articolo (1 min/pezzo)", + Regress = 0.016666666666666666 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobDriverModel", b => + { + b.Property("JobDriverID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("JobDriverID")); + + b.Property("Descript") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("JobDriverID"); + + b.ToTable("task_job_driver"); + + b.HasData( + new + { + JobDriverID = 1, + Descript = "Tempo netto di lavorazione, in minuti", + Name = "LeadTime" + }, + new + { + JobDriverID = 2, + Descript = "Tempo di attraversamento complessivo del processo, in giorni lavorativi", + Name = "FlowTime" + }, + new + { + JobDriverID = 3, + Descript = "Numero Articoli/Prodotti", + Name = "NumArticoli" + }, + new + { + JobDriverID = 4, + Descript = "Numero Items per Articolo", + Name = "NumItems" + }, + new + { + JobDriverID = 5, + Descript = "Indice complex lavorazioni", + Name = "WorkCompScore" + }, + new + { + JobDriverID = 6, + Descript = "Indice complex materiali", + Name = "MaterialCompScore" + }, + new + { + JobDriverID = 7, + Descript = "Indice complex generale", + Name = "GeneralScore" + }); + }); + + 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("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.Property("TagsModelCodTag") + .HasColumnType("varchar(255)"); + + b.HasKey("JobStepID"); + + b.HasIndex("JobID"); + + b.HasIndex("PhaseID"); + + b.HasIndex("ResourceID"); + + b.HasIndex("TagsModelCodTag"); + + b.ToTable("task_job_step"); + + b.HasData( + new + { + JobStepID = 1, + Description = "Preparazione Tronchetti", + Index = 1, + JobID = 2, + PhaseID = 1, + ProductivityRate = 1m, + ResourceID = 3 + }, + new + { + JobStepID = 2, + Description = "Taglio profilo", + Index = 2, + JobID = 2, + PhaseID = 2, + ProductivityRate = 1m, + ResourceID = 4 + }, + new + { + JobStepID = 3, + Description = "Verniciatura", + Index = 3, + JobID = 2, + PhaseID = 3, + ProductivityRate = 1m, + ResourceID = 6 + }, + new + { + JobStepID = 4, + Description = "Assemblaggio Serramento", + Index = 4, + JobID = 2, + PhaseID = 4, + ProductivityRate = 1m, + ResourceID = 8 + }, + new + { + JobStepID = 5, + Description = "Installazione cliente", + Index = 5, + JobID = 2, + PhaseID = 6, + ProductivityRate = 1m, + ResourceID = 9 + }, + new + { + JobStepID = 6, + Description = "Produzione Serramento (media annua)", + Index = 1, + JobID = 6, + PhaseID = 7, + ProductivityRate = 1m, + ResourceID = 2 + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepTagModel", b => + { + b.Property("JobStepID") + .HasColumnType("int"); + + b.Property("CodTag") + .HasColumnType("varchar(255)"); + + b.HasKey("JobStepID", "CodTag"); + + b.HasIndex("CodTag"); + + b.ToTable("task_job_step_tag"); + + b.HasData( + new + { + JobStepID = 1, + CodTag = "Serramento" + }, + new + { + JobStepID = 2, + CodTag = "Serramento" + }, + new + { + JobStepID = 3, + CodTag = "Serramento" + }, + new + { + JobStepID = 4, + CodTag = "Serramento" + }, + new + { + JobStepID = 5, + CodTag = "Serramento" + }, + new + { + JobStepID = 6, + CodTag = "Serramento" + }, + new + { + JobStepID = 2, + CodTag = "LineaCNC" + }, + new + { + JobStepID = 4, + CodTag = "Montaggio" + }, + new + { + JobStepID = 5, + CodTag = "Servizi" + }, + new + { + JobStepID = 2, + CodTag = "LineaManuale" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobTaskModel", b => + { + b.Property("JobID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("JobID")); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Enabled") + .HasColumnType("tinyint(1)"); + + b.Property("Index") + .HasColumnType("int"); + + b.Property("Lock") + .HasColumnType("tinyint(1)"); + + b.Property("TagsModelCodTag") + .HasColumnType("varchar(255)"); + + b.HasKey("JobID"); + + b.HasIndex("TagsModelCodTag"); + + b.ToTable("task_job"); + + b.HasData( + new + { + JobID = 1, + Description = "Rivendita / servizi", + Enabled = true, + Index = 4, + Lock = true + }, + new + { + JobID = 2, + Description = "Serramento Legno - Ciclo Completo con installazione", + Enabled = true, + Index = 3, + Lock = true + }, + new + { + JobID = 3, + Description = "Realizzazione Trave", + Enabled = true, + Index = 5, + Lock = true + }, + new + { + JobID = 4, + Description = "Realizzazione Cabinet", + Enabled = true, + Index = 6, + Lock = true + }, + new + { + JobID = 5, + Description = "Realizzazione Parete", + Enabled = true, + Index = 7, + Lock = true + }, + new + { + JobID = 6, + Description = "Serramento - ciclo base", + Enabled = true, + Index = 1, + Lock = true + }, + new + { + JobID = 7, + Description = "Serramento - ciclo intermedio", + Enabled = true, + Index = 2, + Lock = true + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobTaskTagModel", b => + { + b.Property("JobID") + .HasColumnType("int"); + + b.Property("CodTag") + .HasColumnType("varchar(255)"); + + b.HasKey("JobID", "CodTag"); + + b.HasIndex("CodTag"); + + b.ToTable("task_job_task_tag"); + + b.HasData( + new + { + JobID = 1, + CodTag = "Rivendita" + }, + new + { + JobID = 2, + CodTag = "Serramento" + }, + new + { + JobID = 3, + CodTag = "Trave" + }, + new + { + JobID = 4, + CodTag = "Cabinet" + }, + new + { + JobID = 5, + CodTag = "Parete" + }, + new + { + JobID = 6, + CodTag = "Serramento" + }, + new + { + JobID = 7, + CodTag = "Serramento" + }); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.PhaseModel", b => + { + b.Property("PhaseID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PhaseID")); + + b.Property("CodPhase") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Description") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("PhaseID"); + + b.ToTable("task_phase"); + + b.HasData( + new + { + PhaseID = 1, + CodPhase = "010", + Description = "Taglio tronchetti", + Name = "Taglio" + }, + new + { + PhaseID = 2, + CodPhase = "020", + Description = "Lavorazione pezzi serramento", + Name = "Lavorazione CNC" + }, + new + { + PhaseID = 3, + CodPhase = "030", + Description = "Verniciatura", + Name = "Verniciatura" + }, + new + { + PhaseID = 4, + CodPhase = "030.01", + Description = "Assemblaggio completo", + Name = "Montaggio" + }, + new + { + PhaseID = 5, + CodPhase = "030.02", + Description = "Assemblaggio Ferramenta", + Name = "Ferramenta" + }, + new + { + PhaseID = 6, + CodPhase = "040", + Description = "Installazione e posa in opera", + Name = "Installazione" + }, + new + { + PhaseID = 7, + CodPhase = "000", + Description = "Produzione Completa: Fase Unica complessiva", + Name = "Produzione Completa" + }); + }); + + 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("Index") + .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", + Index = 1, + ValString = "Blue" + }, + new + { + GenValID = 2, + ClassCod = "WoodCol", + Index = 2, + ValString = "White" + }, + new + { + GenValID = 3, + ClassCod = "WoodCol", + Index = 3, + ValString = "Red" + }, + new + { + GenValID = 4, + ClassCod = "WoodCol", + Index = 4, + ValString = "Black" + }, + new + { + GenValID = 5, + ClassCod = "ShapeList", + Index = 1, + ValString = "Rectangle" + }, + new + { + GenValID = 6, + ClassCod = "ShapeList", + Index = 2, + ValString = "Trapezoid" + }, + new + { + GenValID = 7, + ClassCod = "ShapeList", + Index = 3, + ValString = "Triangular" + }, + new + { + GenValID = 8, + ClassCod = "ShapeList", + Index = 4, + ValString = "Arc" + }, + new + { + GenValID = 9, + ClassCod = "ShapeList", + Index = 5, + ValString = "FullArc" + }, + new + { + GenValID = 10, + ClassCod = "ShapeList", + Index = 6, + ValString = "SemiFullArc" + }, + new + { + GenValID = 11, + ClassCod = "ShapeList", + Index = 7, + ValString = "SemiArc" + }, + new + { + GenValID = 12, + ClassCod = "ShapeList", + Index = 8, + ValString = "Circle" + }); + }); + + 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("CodTag") + .HasColumnType("varchar(255)"); + + b.HasKey("CodTag"); + + b.ToTable("utils_tags"); + + b.HasData( + new + { + CodTag = "Cabinet" + }, + new + { + CodTag = "LineaCNC" + }, + new + { + CodTag = "LineaManuale" + }, + new + { + CodTag = "Montaggio" + }, + new + { + CodTag = "Parete" + }, + new + { + CodTag = "Rivendita" + }, + new + { + CodTag = "Serramento" + }, + new + { + CodTag = "Servizi" + }, + new + { + CodTag = "Trave" + }, + new + { + CodTag = "Trave_200x200" + }, + new + { + CodTag = "Trave_400x400" + }, + new + { + CodTag = "Trave_800x600" + }); + }); + + 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.JobTaskModel", "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("ProdItemNav") + .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); + + 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("OrderRowNav") + .HasForeignKey("OrderID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.SellingItemModel", "SellingItemNav") + .WithMany() + .HasForeignKey("SellingItemID") + .OnDelete(DeleteBehavior.Restrict); + + 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.JobDriverConfigModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.CostDriverModel", "CostDriverNav") + .WithMany() + .HasForeignKey("CostDriverID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.JobDriverModel", "JobDriverNav") + .WithMany() + .HasForeignKey("JobDriverID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.JobTaskModel", "JobNav") + .WithMany() + .HasForeignKey("JobID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CostDriverNav"); + + b.Navigation("JobDriverNav"); + + b.Navigation("JobNav"); + }); + + 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.Task.JobTaskModel", "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("JobStepNav") + .HasForeignKey("ResourceID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Utils.TagsModel", null) + .WithMany("JobSteps") + .HasForeignKey("TagsModelCodTag") + .OnDelete(DeleteBehavior.Restrict); + + b.Navigation("JobNav"); + + b.Navigation("PhaseNav"); + + b.Navigation("ResourceNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepTagModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Utils.TagsModel", "TagNav") + .WithMany() + .HasForeignKey("CodTag") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.JobStepModel", "JobStepNav") + .WithMany("TagNav") + .HasForeignKey("JobStepID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("JobStepNav"); + + b.Navigation("TagNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobTaskModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Utils.TagsModel", null) + .WithMany("JobTasks") + .HasForeignKey("TagsModelCodTag") + .OnDelete(DeleteBehavior.Restrict); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobTaskTagModel", b => + { + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Utils.TagsModel", "TagNav") + .WithMany() + .HasForeignKey("CodTag") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.JobTaskModel", "JobNav") + .WithMany("TagNav") + .HasForeignKey("JobID") + .OnDelete(DeleteBehavior.Restrict) + .IsRequired(); + + b.Navigation("JobNav"); + + b.Navigation("TagNav"); + }); + + 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.Cost.ResourceModel", b => + { + b.Navigation("JobStepNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", b => + { + b.Navigation("OfferRowNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderModel", b => + { + b.Navigation("OrderRowNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderRowModel", b => + { + b.Navigation("ProdItemNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepModel", b => + { + b.Navigation("TagNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobTaskModel", b => + { + b.Navigation("JobStepNav"); + + b.Navigation("TagNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.GenClassModel", b => + { + b.Navigation("GenValNav"); + }); + + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.TagsModel", b => + { + b.Navigation("JobSteps"); + + b.Navigation("JobTasks"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/EgwCoreLib.Lux.Data/Migrations/20251114171407_AddProdItemQty.cs b/EgwCoreLib.Lux.Data/Migrations/20251114171407_AddProdItemQty.cs new file mode 100644 index 00000000..532c2800 --- /dev/null +++ b/EgwCoreLib.Lux.Data/Migrations/20251114171407_AddProdItemQty.cs @@ -0,0 +1,433 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace EgwCoreLib.Lux.Data.Migrations +{ + /// + public partial class AddProdItemQty : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "ProdItemQty", + table: "sales_order_row", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "ProdItemQty", + table: "sales_offer_row", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.UpdateData( + table: "cost_driver", + keyColumn: "CostDriverID", + keyValue: 1, + column: "Descript", + value: "Ore lavorate"); + + migrationBuilder.UpdateData( + table: "cost_driver", + keyColumn: "CostDriverID", + keyValue: 2, + column: "Descript", + value: "Metri prodotto"); + + migrationBuilder.UpdateData( + table: "cost_driver", + keyColumn: "CostDriverID", + keyValue: 3, + column: "Descript", + value: "Unità prodotto"); + + migrationBuilder.UpdateData( + table: "cost_driver", + keyColumn: "CostDriverID", + keyValue: 4, + column: "Descript", + value: "Volume prodotto"); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 1, + columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "RefYear", "ValidUntil" }, + values: new object[] { new DateTime(2026, 1, 13, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9203), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9204), 2025, new DateTime(2025, 12, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9200) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 2, + columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "RefYear", "ValidUntil" }, + values: new object[] { new DateTime(2026, 1, 13, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9219), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9220), 2025, new DateTime(2025, 12, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9217) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 3, + columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "RefYear", "ValidUntil" }, + values: new object[] { new DateTime(2026, 1, 13, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9228), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9230), 2025, new DateTime(2025, 12, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9227) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 4, + columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "RefYear", "ValidUntil" }, + values: new object[] { new DateTime(2026, 1, 13, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9238), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9239), 2025, new DateTime(2025, 12, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9236) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 1, + columns: new[] { "Inserted", "Modified", "ProdItemQty" }, + values: new object[] { new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9378), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9379), 0 }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 2, + columns: new[] { "Inserted", "Modified", "ProdItemQty" }, + values: new object[] { new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9363), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9365), 0 }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 3, + columns: new[] { "Inserted", "Modified", "ProdItemQty" }, + values: new object[] { new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9390), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9392), 0 }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 4, + columns: new[] { "Inserted", "Modified", "ProdItemQty" }, + values: new object[] { new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9403), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9404), 0 }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 5, + columns: new[] { "Inserted", "Modified", "ProdItemQty" }, + values: new object[] { new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9435), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9436), 0 }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 6, + columns: new[] { "Inserted", "Modified", "ProdItemQty" }, + values: new object[] { new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9447), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9449), 0 }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 7, + columns: new[] { "Inserted", "Modified", "ProdItemQty" }, + values: new object[] { new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9477), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9479), 0 }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 8, + columns: new[] { "Inserted", "Modified", "ProdItemQty" }, + values: new object[] { new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9489), new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9491), 0 }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 9, + columns: new[] { "Inserted", "Modified", "ProdItemQty" }, + values: new object[] { new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9518), new DateTime(2025, 11, 14, 18, 14, 6, 596, DateTimeKind.Local).AddTicks(54), 0 }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 10, + columns: new[] { "Inserted", "Modified", "ProdItemQty" }, + values: new object[] { new DateTime(2025, 11, 14, 18, 14, 6, 596, DateTimeKind.Local).AddTicks(68), new DateTime(2025, 11, 14, 18, 14, 6, 596, DateTimeKind.Local).AddTicks(70), 0 }); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 1, + column: "DtCreate", + value: new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1307)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 2, + column: "DtCreate", + value: new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1366)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 3, + column: "DtCreate", + value: new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1370)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 4, + column: "DtCreate", + value: new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1373)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 5, + column: "DtCreate", + value: new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1377)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 6, + column: "DtCreate", + value: new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1380)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 7, + column: "DtCreate", + value: new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1384)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 8, + column: "DtCreate", + value: new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1387)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 9, + column: "DtCreate", + value: new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1391)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 10, + column: "DtCreate", + value: new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1394)); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "ProdItemQty", + table: "sales_order_row"); + + migrationBuilder.DropColumn( + name: "ProdItemQty", + table: "sales_offer_row"); + + migrationBuilder.UpdateData( + table: "cost_driver", + keyColumn: "CostDriverID", + keyValue: 1, + column: "Descript", + value: "Ore lavorate per step/fase"); + + migrationBuilder.UpdateData( + table: "cost_driver", + keyColumn: "CostDriverID", + keyValue: 2, + column: "Descript", + value: "Metri prodotti per step/fase"); + + migrationBuilder.UpdateData( + table: "cost_driver", + keyColumn: "CostDriverID", + keyValue: 3, + column: "Descript", + value: "Numero unità prodotte (lavorate) per step/fase"); + + migrationBuilder.UpdateData( + table: "cost_driver", + keyColumn: "CostDriverID", + keyValue: 4, + column: "Descript", + value: "Volume Totale per step/fase"); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 1, + columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "RefYear", "ValidUntil" }, + values: new object[] { new DateTime(2026, 1, 10, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 11, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4099), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4101), 2024, new DateTime(2025, 12, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4096) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 2, + columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "RefYear", "ValidUntil" }, + values: new object[] { new DateTime(2026, 1, 10, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 11, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4112), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4114), 2024, new DateTime(2025, 12, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4111) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 3, + columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "RefYear", "ValidUntil" }, + values: new object[] { new DateTime(2026, 1, 10, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 11, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4121), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4123), 2024, new DateTime(2025, 12, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4120) }); + + migrationBuilder.UpdateData( + table: "sales_offer", + keyColumn: "OfferID", + keyValue: 4, + columns: new[] { "DueDateProm", "DueDateReq", "Inserted", "Modified", "RefYear", "ValidUntil" }, + values: new object[] { new DateTime(2026, 1, 10, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 12, 11, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4131), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4132), 2024, new DateTime(2025, 12, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4129) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 1, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4280), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4282) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 2, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4266), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4268) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 3, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4292), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4294) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 4, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4312), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4314) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 5, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4346), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4348) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 6, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4358), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4360) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 7, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4389), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4390) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 8, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4401), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4402) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 9, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4430), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4432) }); + + migrationBuilder.UpdateData( + table: "sales_offer_row", + keyColumn: "OfferRowID", + keyValue: 10, + columns: new[] { "Inserted", "Modified" }, + values: new object[] { new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4443), new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4444) }); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 1, + column: "DtCreate", + value: new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8054)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 2, + column: "DtCreate", + value: new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8115)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 3, + column: "DtCreate", + value: new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8118)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 4, + column: "DtCreate", + value: new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8122)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 5, + column: "DtCreate", + value: new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8125)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 6, + column: "DtCreate", + value: new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8128)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 7, + column: "DtCreate", + value: new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8132)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 8, + column: "DtCreate", + value: new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8135)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 9, + column: "DtCreate", + value: new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8138)); + + migrationBuilder.UpdateData( + table: "stock_mov", + keyColumn: "StockMovID", + keyValue: 10, + column: "DtCreate", + value: new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8142)); + } + } +} diff --git a/EgwCoreLib.Lux.Data/Migrations/DataLayerContextModelSnapshot.cs b/EgwCoreLib.Lux.Data/Migrations/DataLayerContextModelSnapshot.cs index ac894c16..dcbcb4ab 100644 --- a/EgwCoreLib.Lux.Data/Migrations/DataLayerContextModelSnapshot.cs +++ b/EgwCoreLib.Lux.Data/Migrations/DataLayerContextModelSnapshot.cs @@ -263,28 +263,28 @@ namespace EgwCoreLib.Lux.Data.Migrations new { CostDriverID = 1, - Descript = "Ore lavorate per step/fase", + Descript = "Ore lavorate", Name = "WorkHour", Unit = "h" }, new { CostDriverID = 2, - Descript = "Metri prodotti per step/fase", + Descript = "Metri prodotto", Name = "Meter", Unit = "m" }, new { CostDriverID = 3, - Descript = "Numero unità prodotte (lavorate) per step/fase", + Descript = "Unità prodotto", Name = "Unit", Unit = "#" }, new { CostDriverID = 4, - Descript = "Volume Totale per step/fase", + Descript = "Volume prodotto", Name = "Volume", Unit = "m3" }); @@ -1299,16 +1299,16 @@ namespace EgwCoreLib.Lux.Data.Migrations Description = "Offerta per tre serramenti", DictPresel = "", Discount = 0.0, - DueDateProm = new DateTime(2026, 1, 10, 0, 0, 0, 0, DateTimeKind.Local), - DueDateReq = new DateTime(2025, 12, 11, 0, 0, 0, 0, DateTimeKind.Local), + DueDateProm = new DateTime(2026, 1, 13, 0, 0, 0, 0, DateTimeKind.Local), + DueDateReq = new DateTime(2025, 12, 14, 0, 0, 0, 0, DateTimeKind.Local), Envir = 1, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4099), - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4101), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9203), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9204), OffertState = 0, RefNum = 1, RefRev = 1, - RefYear = 2024, - ValidUntil = new DateTime(2025, 12, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4096) + RefYear = 2025, + ValidUntil = new DateTime(2025, 12, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9200) }, new { @@ -1319,16 +1319,16 @@ namespace EgwCoreLib.Lux.Data.Migrations Description = "Offerta BEAM", DictPresel = "", Discount = 0.0, - DueDateProm = new DateTime(2026, 1, 10, 0, 0, 0, 0, DateTimeKind.Local), - DueDateReq = new DateTime(2025, 12, 11, 0, 0, 0, 0, DateTimeKind.Local), + DueDateProm = new DateTime(2026, 1, 13, 0, 0, 0, 0, DateTimeKind.Local), + DueDateReq = new DateTime(2025, 12, 14, 0, 0, 0, 0, DateTimeKind.Local), Envir = 2, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4112), - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4114), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9219), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9220), OffertState = 0, RefNum = 2, RefRev = 1, - RefYear = 2024, - ValidUntil = new DateTime(2025, 12, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4111) + RefYear = 2025, + ValidUntil = new DateTime(2025, 12, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9217) }, new { @@ -1339,16 +1339,16 @@ namespace EgwCoreLib.Lux.Data.Migrations Description = "Offerta Cabinet", DictPresel = "", Discount = 0.0, - DueDateProm = new DateTime(2026, 1, 10, 0, 0, 0, 0, DateTimeKind.Local), - DueDateReq = new DateTime(2025, 12, 11, 0, 0, 0, 0, DateTimeKind.Local), + DueDateProm = new DateTime(2026, 1, 13, 0, 0, 0, 0, DateTimeKind.Local), + DueDateReq = new DateTime(2025, 12, 14, 0, 0, 0, 0, DateTimeKind.Local), Envir = 4, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4121), - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4123), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9228), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9230), OffertState = 0, RefNum = 3, RefRev = 1, - RefYear = 2024, - ValidUntil = new DateTime(2025, 12, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4120) + RefYear = 2025, + ValidUntil = new DateTime(2025, 12, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9227) }, new { @@ -1359,16 +1359,16 @@ namespace EgwCoreLib.Lux.Data.Migrations Description = "Offerta Wall", DictPresel = "", Discount = 0.0, - DueDateProm = new DateTime(2026, 1, 10, 0, 0, 0, 0, DateTimeKind.Local), - DueDateReq = new DateTime(2025, 12, 11, 0, 0, 0, 0, DateTimeKind.Local), + DueDateProm = new DateTime(2026, 1, 13, 0, 0, 0, 0, DateTimeKind.Local), + DueDateReq = new DateTime(2025, 12, 14, 0, 0, 0, 0, DateTimeKind.Local), Envir = 3, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4131), - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4132), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9238), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9239), OffertState = 0, RefNum = 4, RefRev = 1, - RefYear = 2024, - ValidUntil = new DateTime(2025, 12, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4129) + RefYear = 2025, + ValidUntil = new DateTime(2025, 12, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9236) }); }); @@ -1448,6 +1448,9 @@ namespace EgwCoreLib.Lux.Data.Migrations .IsRequired() .HasColumnType("longtext"); + b.Property("ProdItemQty") + .HasColumnType("int"); + b.Property("Qty") .HasColumnType("double"); @@ -1494,17 +1497,18 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4266), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9363), ItemBOM = "", ItemJCD = "", ItemOk = true, ItemSteps = "{}", ItemTags = "", JobID = 0, - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4268), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9365), Note = "Finestra Anta Singola 2025", OfferID = 1, OfferRowUID = "SOR.25.00000002", + ProdItemQty = 0, Qty = 3.0, RowNum = 1, SellingItemID = 1, @@ -1526,17 +1530,18 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4280), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9378), ItemBOM = "", ItemJCD = "", ItemOk = true, ItemSteps = "{}", ItemTags = "", JobID = 0, - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4282), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9379), Note = "Finestra Vetro Fisso 2025", OfferID = 1, OfferRowUID = "SOR.25.00000001", + ProdItemQty = 0, Qty = 3.0, RowNum = 2, SellingItemID = 2, @@ -1558,17 +1563,18 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4292), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9390), ItemBOM = "", ItemJCD = "", ItemOk = true, ItemSteps = "{}", ItemTags = "", JobID = 0, - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4294), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9392), Note = "Persiana per Finestra anta singola 2025", OfferID = 1, OfferRowUID = "SOR.25.00000003", + ProdItemQty = 0, Qty = 3.0, RowNum = 3, SellingItemID = 3, @@ -1590,17 +1596,18 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4312), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9403), ItemBOM = "", ItemJCD = "", ItemOk = true, ItemSteps = "{}", ItemTags = "", JobID = 0, - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4314), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9404), Note = "Installazione serramento", OfferID = 1, OfferRowUID = "SOR.25.00000004", + ProdItemQty = 0, Qty = 3.0, RowNum = 4, SellingItemID = 4, @@ -1622,17 +1629,18 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4346), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9435), ItemBOM = "", ItemJCD = "", ItemOk = true, ItemSteps = "{}", ItemTags = "", JobID = 0, - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4348), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9436), Note = "Demo file 01", OfferID = 2, OfferRowUID = "SOR.25.00000005", + ProdItemQty = 0, Qty = 10.0, RowNum = 1, SellingItemID = 5, @@ -1654,17 +1662,18 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4358), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9447), ItemBOM = "", ItemJCD = "", ItemOk = true, ItemSteps = "{}", ItemTags = "", JobID = 0, - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4360), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9449), Note = "Demo file 02", OfferID = 2, OfferRowUID = "SOR.25.00000006", + ProdItemQty = 0, Qty = 4.0, RowNum = 1, SellingItemID = 5, @@ -1686,17 +1695,18 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4389), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9477), ItemBOM = "", ItemJCD = "", ItemOk = true, ItemSteps = "{}", ItemTags = "", JobID = 0, - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4390), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9479), Note = "Demo file 01", OfferID = 3, OfferRowUID = "SOR.25.00000007", + ProdItemQty = 0, Qty = 4.0, RowNum = 1, SellingItemID = 6, @@ -1718,17 +1728,18 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4401), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9489), ItemBOM = "", ItemJCD = "", ItemOk = true, ItemSteps = "{}", ItemTags = "", JobID = 0, - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4402), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9491), Note = "Demo file 02", OfferID = 3, OfferRowUID = "SOR.25.00000008", + ProdItemQty = 0, Qty = 12.0, RowNum = 1, SellingItemID = 6, @@ -1750,17 +1761,18 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4430), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 595, DateTimeKind.Local).AddTicks(9518), ItemBOM = "", ItemJCD = "", ItemOk = true, ItemSteps = "{}", ItemTags = "", JobID = 0, - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4432), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 596, DateTimeKind.Local).AddTicks(54), Note = "Demo file 01", OfferID = 4, OfferRowUID = "SOR.25.00000009", + ProdItemQty = 0, Qty = 6.0, RowNum = 1, SellingItemID = 7, @@ -1782,17 +1794,18 @@ namespace EgwCoreLib.Lux.Data.Migrations FileName = "", FileResource = "", FileSize = 0L, - Inserted = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4443), + Inserted = new DateTime(2025, 11, 14, 18, 14, 6, 596, DateTimeKind.Local).AddTicks(68), ItemBOM = "", ItemJCD = "", ItemOk = true, ItemSteps = "{}", ItemTags = "", JobID = 0, - Modified = new DateTime(2025, 11, 11, 16, 27, 6, 531, DateTimeKind.Local).AddTicks(4444), + Modified = new DateTime(2025, 11, 14, 18, 14, 6, 596, DateTimeKind.Local).AddTicks(70), Note = "Demo file 02", OfferID = 4, OfferRowUID = "SOR.25.0000000A", + ProdItemQty = 0, Qty = 4.0, RowNum = 1, SellingItemID = 7, @@ -1953,6 +1966,9 @@ namespace EgwCoreLib.Lux.Data.Migrations .IsRequired() .HasColumnType("longtext"); + b.Property("ProdItemQty") + .HasColumnType("int"); + b.Property("Qty") .HasColumnType("double"); @@ -2045,8 +2061,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 1, CodDoc = "", - DtCreate = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8054), - DtMod = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8107), + DtCreate = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1307), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1363), MovCod = "CAR", Note = "DEMO", QtyRec = 5.0, @@ -2058,8 +2074,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 2, CodDoc = "", - DtCreate = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8115), - DtMod = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8116), + DtCreate = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1366), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1367), MovCod = "CAR", Note = "DEMO", QtyRec = 8.0, @@ -2071,8 +2087,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 3, CodDoc = "", - DtCreate = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8118), - DtMod = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8119), + DtCreate = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1370), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1371), MovCod = "CAR", Note = "DEMO", QtyRec = 5.0, @@ -2084,8 +2100,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 4, CodDoc = "", - DtCreate = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8122), - DtMod = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8123), + DtCreate = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1373), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1374), MovCod = "CAR", Note = "DEMO", QtyRec = 1.0, @@ -2097,8 +2113,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 5, CodDoc = "", - DtCreate = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8125), - DtMod = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8126), + DtCreate = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1377), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1378), MovCod = "CAR", Note = "DEMO", QtyRec = 10.0, @@ -2110,8 +2126,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 6, CodDoc = "", - DtCreate = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8128), - DtMod = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8130), + DtCreate = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1380), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1382), MovCod = "CAR", Note = "DEMO", QtyRec = 1.0, @@ -2123,8 +2139,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 7, CodDoc = "", - DtCreate = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8132), - DtMod = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8133), + DtCreate = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1384), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1385), MovCod = "CAR", Note = "DEMO", QtyRec = 50.0, @@ -2136,8 +2152,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 8, CodDoc = "", - DtCreate = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8135), - DtMod = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8136), + DtCreate = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1387), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1388), MovCod = "CAR", Note = "DEMO", QtyRec = 1.0, @@ -2149,8 +2165,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 9, CodDoc = "", - DtCreate = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8138), - DtMod = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8140), + DtCreate = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1391), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1392), MovCod = "CAR", Note = "DEMO", QtyRec = 1.0, @@ -2162,8 +2178,8 @@ namespace EgwCoreLib.Lux.Data.Migrations { StockMovID = 10, CodDoc = "", - DtCreate = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8142), - DtMod = new DateTime(2025, 11, 11, 16, 27, 6, 527, DateTimeKind.Local).AddTicks(8143), + DtCreate = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1394), + DtMod = new DateTime(2025, 11, 14, 18, 14, 6, 592, DateTimeKind.Local).AddTicks(1396), MovCod = "CAR", Note = "DEMO", QtyRec = 1.0, @@ -3217,7 +3233,7 @@ namespace EgwCoreLib.Lux.Data.Migrations modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemModel", b => { b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.OrderRowModel", "OrderRowNav") - .WithMany() + .WithMany("ProdItemNav") .HasForeignKey("OrderRowID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); @@ -3433,7 +3449,7 @@ namespace EgwCoreLib.Lux.Data.Migrations .IsRequired(); b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", "ResourceNav") - .WithMany() + .WithMany("JobStepNav") .HasForeignKey("ResourceID") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); @@ -3507,6 +3523,11 @@ namespace EgwCoreLib.Lux.Data.Migrations b.Navigation("GenClassNav"); }); + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", b => + { + b.Navigation("JobStepNav"); + }); + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", b => { b.Navigation("OfferRowNav"); @@ -3517,6 +3538,11 @@ namespace EgwCoreLib.Lux.Data.Migrations b.Navigation("OrderRowNav"); }); + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderRowModel", b => + { + b.Navigation("ProdItemNav"); + }); + modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepModel", b => { b.Navigation("TagNav"); diff --git a/Lux.API/Lux.API.csproj b/Lux.API/Lux.API.csproj index ebbfc8c5..c726e2d6 100644 --- a/Lux.API/Lux.API.csproj +++ b/Lux.API/Lux.API.csproj @@ -4,7 +4,7 @@ net8.0 enable enable - 0.9.2511.1417 + 0.9.2511.1418 diff --git a/Lux.UI/Lux.UI.csproj b/Lux.UI/Lux.UI.csproj index 09f90f34..d54eaffa 100644 --- a/Lux.UI/Lux.UI.csproj +++ b/Lux.UI/Lux.UI.csproj @@ -5,7 +5,7 @@ enable enable aspnet-Lux.UI-a758c101-a2f4-4e38-977d-1c4887dbbd50 - 0.9.2511.1417 + 0.9.2511.1418 diff --git a/Resources/ChangeLog.html b/Resources/ChangeLog.html index ddd16ecc..37d1bd9f 100644 --- a/Resources/ChangeLog.html +++ b/Resources/ChangeLog.html @@ -1,6 +1,6 @@ LUX - Web Windows MES -

Versione: 0.9.2511.1417

+

Versione: 0.9.2511.1418


Note di rilascio:
  • diff --git a/Resources/VersNum.txt b/Resources/VersNum.txt index bfc9dded..2a05632c 100644 --- a/Resources/VersNum.txt +++ b/Resources/VersNum.txt @@ -1 +1 @@ -0.9.2511.1417 +0.9.2511.1418 diff --git a/Resources/manifest.xml b/Resources/manifest.xml index 353dc9b8..32502605 100644 --- a/Resources/manifest.xml +++ b/Resources/manifest.xml @@ -1,6 +1,6 @@ - 0.9.2511.1417 + 0.9.2511.1418 http://nexus.steamware.net/repository/SWS/GPW/stable/GPW.UI.zip http://nexus.steamware.net/repository/SWS/GPW/stable/ChangeLog.html false