diff --git a/EgwCoreLib.Lux.Data/Migrations/20250923101803_AddOffertDiscount.Designer.cs b/EgwCoreLib.Lux.Data/Migrations/20250923101803_AddOffertDiscount.Designer.cs
new file mode 100644
index 00000000..3cb595ae
--- /dev/null
+++ b/EgwCoreLib.Lux.Data/Migrations/20250923101803_AddOffertDiscount.Designer.cs
@@ -0,0 +1,2243 @@
+//
+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("20250923101803_AddOffertDiscount")]
+ partial class AddOffertDiscount
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.17")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Cost.CostDriverModel", b =>
+ {
+ b.Property("CostDriverID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CostDriverID"));
+
+ b.Property("Descript")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Unit")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("CostDriverID");
+
+ b.ToTable("cost_driver");
+
+ b.HasData(
+ new
+ {
+ CostDriverID = 1,
+ Descript = "Ore lavorate per step/fase",
+ Name = "WorkHour",
+ Unit = "h"
+ },
+ new
+ {
+ CostDriverID = 2,
+ Descript = "Metri prodotti per step/fase",
+ Name = "Meter",
+ Unit = "m"
+ },
+ new
+ {
+ CostDriverID = 3,
+ Descript = "Numero unità prodotte (lavorate) per step/fase",
+ Name = "Unit",
+ Unit = "#"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", b =>
+ {
+ b.Property("ResourceID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ResourceID"));
+
+ b.Property("CostDriverBudget")
+ .HasColumnType("decimal(65,30)");
+
+ b.Property("CostDriverID")
+ .HasColumnType("int");
+
+ b.Property("EBTPerc")
+ .HasColumnType("decimal(65,30)");
+
+ b.Property("FixedCost")
+ .HasColumnType("decimal(65,30)");
+
+ b.Property("LaborCost")
+ .HasColumnType("decimal(65,30)");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("OverHeadCost")
+ .HasColumnType("decimal(65,30)");
+
+ b.Property("OverHeadPerc")
+ .HasColumnType("decimal(65,30)");
+
+ b.Property("PriceMargin")
+ .HasColumnType("decimal(65,30)");
+
+ b.Property("VariableCost")
+ .HasColumnType("decimal(65,30)");
+
+ b.HasKey("ResourceID");
+
+ b.HasIndex("CostDriverID");
+
+ b.ToTable("cost_resource");
+
+ b.HasData(
+ new
+ {
+ ResourceID = 1,
+ CostDriverBudget = 880m,
+ CostDriverID = 1,
+ EBTPerc = 0.15m,
+ FixedCost = 12000m,
+ LaborCost = 30m,
+ Name = "Sezionatrice",
+ OverHeadCost = 5000m,
+ OverHeadPerc = 0.15m,
+ PriceMargin = 0.2m,
+ VariableCost = 6000m
+ },
+ new
+ {
+ ResourceID = 2,
+ CostDriverBudget = 1760m,
+ CostDriverID = 1,
+ EBTPerc = 0.15m,
+ FixedCost = 100000m,
+ LaborCost = 40m,
+ Name = "Linea SAOMAD WoodPecker Just 3500",
+ OverHeadCost = 15000m,
+ OverHeadPerc = 0.15m,
+ PriceMargin = 0.2m,
+ VariableCost = 30000m
+ },
+ new
+ {
+ ResourceID = 3,
+ CostDriverBudget = 1760m,
+ CostDriverID = 1,
+ EBTPerc = 0.15m,
+ FixedCost = 24000m,
+ LaborCost = 35m,
+ Name = "Linea Pantografo",
+ OverHeadCost = 5000m,
+ OverHeadPerc = 0.15m,
+ PriceMargin = 0.2m,
+ VariableCost = 6000m
+ },
+ new
+ {
+ ResourceID = 4,
+ CostDriverBudget = 880m,
+ CostDriverID = 1,
+ EBTPerc = 0.15m,
+ FixedCost = 24000m,
+ LaborCost = 30m,
+ Name = "Stazione Verniciatura",
+ OverHeadCost = 3000m,
+ OverHeadPerc = 0.15m,
+ PriceMargin = 0.2m,
+ VariableCost = 6000m
+ },
+ new
+ {
+ ResourceID = 5,
+ CostDriverBudget = 220m,
+ CostDriverID = 1,
+ EBTPerc = 0.15m,
+ FixedCost = 6000m,
+ LaborCost = 30m,
+ Name = "Verniciatura Manuale",
+ OverHeadCost = 3000m,
+ OverHeadPerc = 0.15m,
+ PriceMargin = 0.2m,
+ VariableCost = 2000m
+ },
+ new
+ {
+ ResourceID = 6,
+ CostDriverBudget = 3520m,
+ CostDriverID = 1,
+ EBTPerc = 0.15m,
+ FixedCost = 500m,
+ LaborCost = 30m,
+ Name = "Montaggio Manuale",
+ OverHeadCost = 500m,
+ OverHeadPerc = 0.15m,
+ PriceMargin = 0.2m,
+ VariableCost = 500m
+ },
+ new
+ {
+ ResourceID = 7,
+ CostDriverBudget = 3520m,
+ CostDriverID = 1,
+ EBTPerc = 0.15m,
+ FixedCost = 0m,
+ LaborCost = 40m,
+ Name = "Installatore",
+ OverHeadCost = 0m,
+ OverHeadPerc = 0.15m,
+ PriceMargin = 0.2m,
+ VariableCost = 3000m
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.ItemGroupModel", b =>
+ {
+ b.Property("CodGroup")
+ .HasColumnType("varchar(255)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("CodGroup");
+
+ b.ToTable("item_group");
+
+ b.HasData(
+ new
+ {
+ CodGroup = "WindowTrunk",
+ Description = "Barre legno per lavorazione"
+ },
+ new
+ {
+ CodGroup = "WindowGlass",
+ Description = "Vetri serramento"
+ },
+ new
+ {
+ CodGroup = "WindowVarnish",
+ Description = "Vernici per legno"
+ },
+ new
+ {
+ CodGroup = "WindowHardware",
+ Description = "Ferramenta serramento"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.ItemModel", b =>
+ {
+ b.Property("ItemID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ItemID"));
+
+ b.Property("CodGroup")
+ .IsRequired()
+ .HasColumnType("varchar(255)");
+
+ b.Property("Cost")
+ .HasColumnType("double");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("ExtItemCode")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("IsService")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("ItemCode")
+ .HasColumnType("int");
+
+ b.Property("ItemIDParent")
+ .HasColumnType("int");
+
+ b.Property("ItemType")
+ .HasColumnType("int");
+
+ b.Property("Margin")
+ .HasColumnType("double");
+
+ b.Property("QtyMax")
+ .HasColumnType("double");
+
+ b.Property("QtyMin")
+ .HasColumnType("double");
+
+ b.Property("SupplCode")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("UM")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("ItemID");
+
+ b.HasIndex("CodGroup");
+
+ b.ToTable("item_item");
+
+ b.HasData(
+ new
+ {
+ ItemID = 1,
+ CodGroup = "WindowTrunk",
+ Cost = 20.0,
+ Description = "BARRA-60x80 generica",
+ ExtItemCode = "",
+ IsService = false,
+ ItemCode = 1001,
+ ItemIDParent = 0,
+ ItemType = 1,
+ Margin = 0.29999999999999999,
+ QtyMax = 0.0,
+ QtyMin = 0.0,
+ SupplCode = "BARR.001",
+ UM = "#"
+ },
+ new
+ {
+ ItemID = 2,
+ CodGroup = "WindowTrunk",
+ Cost = 16.5,
+ Description = "Barra 60x80, lunghezza 12m",
+ ExtItemCode = "BARRA-60x80x12000",
+ IsService = false,
+ ItemCode = 1002,
+ ItemIDParent = 0,
+ ItemType = 1,
+ Margin = 0.20999999999999999,
+ QtyMax = 0.0,
+ QtyMin = 0.0,
+ SupplCode = "ABC.00123.12000",
+ UM = "#"
+ },
+ new
+ {
+ ItemID = 3,
+ CodGroup = "WindowTrunk",
+ Cost = 17.5,
+ Description = "Barra 60x80, lunghezza 8m",
+ ExtItemCode = "BARRA-60x80x8000",
+ IsService = false,
+ ItemCode = 1003,
+ ItemIDParent = 0,
+ ItemType = 1,
+ Margin = 0.22,
+ QtyMax = 0.0,
+ QtyMin = 0.0,
+ SupplCode = "ABC.00123.8000",
+ UM = "#"
+ },
+ new
+ {
+ ItemID = 4,
+ CodGroup = "WindowTrunk",
+ Cost = 15.5,
+ Description = "Barra 60x80, lunghezza 16m",
+ ExtItemCode = "BARRA-60x80x16000",
+ IsService = false,
+ ItemCode = 1004,
+ ItemIDParent = 0,
+ ItemType = 1,
+ Margin = 0.20000000000000001,
+ QtyMax = 0.0,
+ QtyMin = 0.0,
+ SupplCode = "ABC.00123.16000",
+ UM = "#"
+ },
+ new
+ {
+ ItemID = 5,
+ CodGroup = "WindowGlass",
+ Cost = 300.0,
+ Description = "Vetro triplo, basso indice termico, 800x1000",
+ ExtItemCode = "VETRO-3L-THERMO-800x1000",
+ IsService = false,
+ ItemCode = 2001,
+ ItemIDParent = 0,
+ ItemType = 1,
+ Margin = 0.20000000000000001,
+ QtyMax = 0.0,
+ QtyMin = 0.0,
+ SupplCode = "V3T.800.1000",
+ UM = "m2"
+ },
+ new
+ {
+ ItemID = 6,
+ CodGroup = "WindowGlass",
+ Cost = 200.0,
+ Description = "Vetro doppio, 800x1000",
+ ExtItemCode = "VETRO-2L-800x1000",
+ IsService = false,
+ ItemCode = 2002,
+ ItemIDParent = 0,
+ ItemType = 1,
+ Margin = 0.14999999999999999,
+ QtyMax = 0.0,
+ QtyMin = 0.0,
+ SupplCode = "V2.800.1000",
+ UM = "m2"
+ },
+ new
+ {
+ ItemID = 7,
+ CodGroup = "WindowGlass",
+ Cost = 250.0,
+ Description = "Vetro triplo, 800x1000",
+ ExtItemCode = "VETRO-3L-800x1000",
+ IsService = false,
+ ItemCode = 2003,
+ ItemIDParent = 0,
+ ItemType = 1,
+ Margin = 0.17999999999999999,
+ QtyMax = 0.0,
+ QtyMin = 0.0,
+ SupplCode = "V3.800.1000",
+ UM = "m2"
+ },
+ new
+ {
+ ItemID = 8,
+ CodGroup = "WindowVarnish",
+ Cost = 20.0,
+ Description = "Vernice trasparente",
+ ExtItemCode = "VERN-TRASP",
+ IsService = false,
+ ItemCode = 3001,
+ ItemIDParent = 0,
+ ItemType = 1,
+ Margin = 0.20000000000000001,
+ QtyMax = 0.0,
+ QtyMin = 0.0,
+ SupplCode = "VT.STD",
+ UM = "l"
+ },
+ new
+ {
+ ItemID = 9,
+ CodGroup = "WindowHardware",
+ Cost = 65.0,
+ Description = "Kit standard completo AGB tipo 001",
+ ExtItemCode = "KIT-001",
+ IsService = false,
+ ItemCode = 5001,
+ ItemIDParent = 0,
+ ItemType = 1,
+ Margin = 0.20000000000000001,
+ QtyMax = 0.0,
+ QtyMin = 0.0,
+ SupplCode = "AGB-KIT-001",
+ UM = "#"
+ },
+ new
+ {
+ ItemID = 10,
+ CodGroup = "WindowHardware",
+ Cost = 10.0,
+ Description = "Cerniera AGB tipo 001",
+ ExtItemCode = "CERN-001",
+ IsService = false,
+ ItemCode = 5002,
+ ItemIDParent = 0,
+ ItemType = 1,
+ Margin = 0.20000000000000001,
+ QtyMax = 0.0,
+ QtyMin = 0.0,
+ SupplCode = "AGB-CERN-001",
+ UM = "#"
+ },
+ new
+ {
+ ItemID = 11,
+ CodGroup = "WindowHardware",
+ Cost = 15.0,
+ Description = "Serratura AGB tipo 001",
+ ExtItemCode = "SERR-001",
+ IsService = false,
+ ItemCode = 5003,
+ ItemIDParent = 0,
+ ItemType = 1,
+ Margin = 0.20000000000000001,
+ QtyMax = 0.0,
+ QtyMin = 0.0,
+ SupplCode = "AGB-SERR-001",
+ UM = "#"
+ },
+ new
+ {
+ ItemID = 12,
+ CodGroup = "WindowHardware",
+ Cost = 25.0,
+ Description = "Maniglia AGB tipo 001",
+ ExtItemCode = "MAN-001",
+ IsService = false,
+ ItemCode = 5004,
+ ItemIDParent = 0,
+ ItemType = 1,
+ Margin = 0.20000000000000001,
+ QtyMax = 0.0,
+ QtyMin = 0.0,
+ SupplCode = "AGB-MAN-001",
+ UM = "#"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.SellingItemModel", b =>
+ {
+ b.Property("SellingItemID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("SellingItemID"));
+
+ b.Property("Cost")
+ .HasColumnType("double");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("ExtItemCode")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("IsService")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("ItemCode")
+ .HasColumnType("int");
+
+ b.Property("ItemSteps")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("JobID")
+ .HasColumnType("int");
+
+ b.Property("Margin")
+ .HasColumnType("double");
+
+ b.Property("SerStruct")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("SupplCode")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("UM")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("SellingItemID");
+
+ b.HasIndex("JobID");
+
+ b.ToTable("item_selling_item");
+
+ b.HasData(
+ new
+ {
+ SellingItemID = 1,
+ Cost = 820.0,
+ Description = "Finestra anta Singola",
+ ExtItemCode = "",
+ IsService = false,
+ ItemCode = 0,
+ ItemSteps = "",
+ JobID = 2,
+ Margin = 0.20000000000000001,
+ SerStruct = "",
+ SupplCode = "",
+ UM = "#"
+ },
+ new
+ {
+ SellingItemID = 2,
+ Cost = 150.0,
+ Description = "Persiana anta singola",
+ ExtItemCode = "",
+ IsService = false,
+ ItemCode = 0,
+ ItemSteps = "",
+ JobID = 1,
+ Margin = 0.10000000000000001,
+ SerStruct = "",
+ SupplCode = "",
+ UM = "#"
+ },
+ new
+ {
+ SellingItemID = 3,
+ Cost = 200.0,
+ Description = "Installazione",
+ ExtItemCode = "",
+ IsService = true,
+ ItemCode = 0,
+ ItemSteps = "",
+ JobID = 1,
+ Margin = 0.29999999999999999,
+ SerStruct = "",
+ SupplCode = "",
+ UM = "#"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.SupplierModel", b =>
+ {
+ b.Property("SupplierID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("SupplierID"));
+
+ b.Property("CompanyName")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("LastName")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("VAT")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("SupplierID");
+
+ b.ToTable("item_supplier");
+
+ b.HasData(
+ new
+ {
+ SupplierID = 1,
+ CompanyName = "Company One",
+ FirstName = "Supplier A",
+ LastName = "Egalware",
+ VAT = "7294857103879254"
+ },
+ new
+ {
+ SupplierID = 2,
+ CompanyName = "Company Two",
+ FirstName = "Supplier B",
+ LastName = "User",
+ VAT = "7294857103879254"
+ },
+ new
+ {
+ SupplierID = 3,
+ CompanyName = "Company Two",
+ FirstName = "Supplier C",
+ LastName = "User Test",
+ VAT = "7294857103879254"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionBatchModel", b =>
+ {
+ b.Property("ProductionBatchID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProductionBatchID"));
+
+ b.Property("DateEnd")
+ .HasColumnType("datetime(6)");
+
+ b.Property("DateStart")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("DueDate")
+ .HasColumnType("datetime(6)");
+
+ b.HasKey("ProductionBatchID");
+
+ b.ToTable("production_batch");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemModel", b =>
+ {
+ b.Property("ProdItemID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProdItemID"));
+
+ b.Property("ExtItemCode")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("ItemCode")
+ .HasColumnType("int");
+
+ b.Property("OrderRowID")
+ .HasColumnType("int");
+
+ b.Property("ProductionBatchID")
+ .HasColumnType("int");
+
+ b.HasKey("ProdItemID");
+
+ b.HasIndex("OrderRowID");
+
+ b.HasIndex("ProductionBatchID");
+
+ b.ToTable("production_item");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemStepModel", b =>
+ {
+ b.Property("ProdItemStepID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProdItemStepID"));
+
+ b.Property("DateEnd")
+ .HasColumnType("datetime(6)");
+
+ b.Property("DateStart")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Index")
+ .HasColumnType("int");
+
+ b.Property("PhaseID")
+ .HasColumnType("int");
+
+ b.Property("ProdItemID")
+ .HasColumnType("int");
+
+ b.Property("Qty")
+ .HasColumnType("double");
+
+ b.Property("ResourceID")
+ .HasColumnType("int");
+
+ b.Property("WorkTime")
+ .HasColumnType("double");
+
+ b.HasKey("ProdItemStepID");
+
+ b.HasIndex("PhaseID");
+
+ b.HasIndex("ProdItemID");
+
+ b.HasIndex("ResourceID");
+
+ b.ToTable("production_item_step");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.CustomerModel", b =>
+ {
+ b.Property("CustomerID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CustomerID"));
+
+ b.Property("CompanyName")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("LastName")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("VAT")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("CustomerID");
+
+ b.ToTable("sales_customer");
+
+ b.HasData(
+ new
+ {
+ CustomerID = 1,
+ CompanyName = "",
+ FirstName = "Customer A",
+ LastName = "Egalware",
+ VAT = "1234567890123456"
+ },
+ new
+ {
+ CustomerID = 2,
+ CompanyName = "",
+ FirstName = "Customer B",
+ LastName = "User",
+ VAT = "1234567890123456"
+ },
+ new
+ {
+ CustomerID = 3,
+ CompanyName = "",
+ FirstName = "Customer C",
+ LastName = "User Test",
+ VAT = "1234567890123456"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.DealerModel", b =>
+ {
+ b.Property("DealerID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("DealerID"));
+
+ b.Property("CompanyName")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("LastName")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("VAT")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("DealerID");
+
+ b.ToTable("sales_dealer");
+
+ b.HasData(
+ new
+ {
+ DealerID = 1,
+ CompanyName = "Company First",
+ FirstName = "Dealer A",
+ LastName = "Egalware",
+ VAT = "9587362514671527"
+ },
+ new
+ {
+ DealerID = 2,
+ CompanyName = "Company First",
+ FirstName = "Dealer B",
+ LastName = "User",
+ VAT = "9587362514671527"
+ },
+ new
+ {
+ DealerID = 3,
+ CompanyName = "Company Second",
+ FirstName = "Dealer C",
+ LastName = "User Test",
+ VAT = "9587362514671527"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", b =>
+ {
+ b.Property("OfferID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("OfferID"));
+
+ b.Property("CustomerID")
+ .HasColumnType("int");
+
+ b.Property("DealerID")
+ .HasColumnType("int");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Discount")
+ .HasColumnType("double");
+
+ b.Property("Inserted")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Modified")
+ .HasColumnType("datetime(6)");
+
+ b.Property("OffertState")
+ .HasColumnType("int");
+
+ b.Property("RefNum")
+ .HasColumnType("int");
+
+ b.Property("RefRev")
+ .HasColumnType("int");
+
+ b.Property("RefYear")
+ .HasColumnType("int");
+
+ b.Property("ValidUntil")
+ .HasColumnType("datetime(6)");
+
+ b.HasKey("OfferID");
+
+ b.HasIndex("CustomerID");
+
+ b.HasIndex("DealerID");
+
+ b.ToTable("sales_offer");
+
+ b.HasData(
+ new
+ {
+ OfferID = 1,
+ CustomerID = 2,
+ DealerID = 2,
+ Description = "Offerta per tre serramenti",
+ Discount = 0.0,
+ Inserted = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3122),
+ Modified = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3124),
+ OffertState = 0,
+ RefNum = 1,
+ RefRev = 1,
+ RefYear = 2024,
+ ValidUntil = new DateTime(2025, 10, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3117)
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferRowModel", b =>
+ {
+ b.Property("OfferRowID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("OfferRowID"));
+
+ b.Property("BomCost")
+ .HasColumnType("double");
+
+ b.Property("BomOk")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("BomPrice")
+ .HasColumnType("double");
+
+ b.Property("Environment")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Inserted")
+ .HasColumnType("datetime(6)");
+
+ b.Property("ItemBOM")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("ItemOk")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("ItemSteps")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Modified")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Note")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("OfferID")
+ .HasColumnType("int");
+
+ b.Property("OfferRowUID")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Qty")
+ .HasColumnType("double");
+
+ b.Property("RowNum")
+ .HasColumnType("int");
+
+ b.Property("SellingItemID")
+ .HasColumnType("int");
+
+ b.Property("SerStruct")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("StepCost")
+ .HasColumnType("double");
+
+ b.Property("StepPrice")
+ .HasColumnType("double");
+
+ b.HasKey("OfferRowID");
+
+ b.HasIndex("OfferID");
+
+ b.HasIndex("SellingItemID");
+
+ b.ToTable("sales_offer_row");
+
+ b.HasData(
+ new
+ {
+ OfferRowID = 1,
+ BomCost = 900.0,
+ BomOk = true,
+ BomPrice = 950.0,
+ Environment = "WINDOW",
+ Inserted = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3264),
+ ItemBOM = "",
+ ItemOk = true,
+ ItemSteps = "{}",
+ Modified = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3266),
+ Note = "Finestra anta singola 2025",
+ OfferID = 1,
+ OfferRowUID = "OFF250000000001",
+ Qty = 3.0,
+ RowNum = 1,
+ SellingItemID = 1,
+ SerStruct = "{}",
+ StepCost = 0.0,
+ StepPrice = 0.0
+ },
+ new
+ {
+ OfferRowID = 2,
+ BomCost = 160.0,
+ BomOk = true,
+ BomPrice = 200.0,
+ Environment = "WINDOW",
+ Inserted = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3279),
+ ItemBOM = "",
+ ItemOk = true,
+ ItemSteps = "{}",
+ Modified = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3280),
+ Note = "Persiana per Finestra anta singola 2025",
+ OfferID = 1,
+ OfferRowUID = "OFF250000000002",
+ Qty = 3.0,
+ RowNum = 2,
+ SellingItemID = 2,
+ SerStruct = "{}",
+ StepCost = 0.0,
+ StepPrice = 0.0
+ },
+ new
+ {
+ OfferRowID = 3,
+ BomCost = 200.0,
+ BomOk = true,
+ BomPrice = 250.0,
+ Environment = "WINDOW",
+ Inserted = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3291),
+ ItemBOM = "",
+ ItemOk = true,
+ ItemSteps = "{}",
+ Modified = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3292),
+ Note = "Installazione serramento",
+ OfferID = 1,
+ OfferRowUID = "OFF250000000003",
+ Qty = 3.0,
+ RowNum = 3,
+ SellingItemID = 3,
+ SerStruct = "{}",
+ StepCost = 0.0,
+ StepPrice = 0.0
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderModel", b =>
+ {
+ b.Property("OrderID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("OrderID"));
+
+ b.Property("CustomerID")
+ .HasColumnType("int");
+
+ b.Property("DealerID")
+ .HasColumnType("int");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Inserted")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Modified")
+ .HasColumnType("datetime(6)");
+
+ b.Property("OfferID")
+ .HasColumnType("int");
+
+ b.Property("OffertState")
+ .HasColumnType("int");
+
+ b.Property("RefNum")
+ .HasColumnType("int");
+
+ b.Property("RefRev")
+ .HasColumnType("int");
+
+ b.Property("RefYear")
+ .HasColumnType("int");
+
+ b.Property("ValidUntil")
+ .HasColumnType("datetime(6)");
+
+ b.HasKey("OrderID");
+
+ b.HasIndex("CustomerID");
+
+ b.HasIndex("DealerID");
+
+ b.HasIndex("OfferID");
+
+ b.ToTable("sales_order");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderRowModel", b =>
+ {
+ b.Property("OrderRowID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("OrderRowID"));
+
+ b.Property("BomCost")
+ .HasColumnType("double");
+
+ b.Property("BomPrice")
+ .HasColumnType("double");
+
+ b.Property("Inserted")
+ .HasColumnType("datetime(6)");
+
+ b.Property("ItemSteps")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Modified")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Note")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("OrderID")
+ .HasColumnType("int");
+
+ b.Property("Qty")
+ .HasColumnType("double");
+
+ b.Property("RowNum")
+ .HasColumnType("int");
+
+ b.Property("SellingItemID")
+ .HasColumnType("int");
+
+ b.Property("SerStruct")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("StepCost")
+ .HasColumnType("double");
+
+ b.Property("StepPrice")
+ .HasColumnType("double");
+
+ b.HasKey("OrderRowID");
+
+ b.HasIndex("OrderID");
+
+ b.HasIndex("SellingItemID");
+
+ b.ToTable("sales_order_row");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Stock.StockMovModel", b =>
+ {
+ b.Property("StockMovID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("StockMovID"));
+
+ b.Property("CodDoc")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("DtCreate")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("timestamp")
+ .HasDefaultValueSql("CURRENT_TIMESTAMP");
+
+ b.Property("DtMod")
+ .ValueGeneratedOnAddOrUpdate()
+ .HasColumnType("timestamp")
+ .HasDefaultValueSql("CURRENT_TIMESTAMP");
+
+ MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("DtMod"));
+
+ b.Property("MovCod")
+ .IsRequired()
+ .HasColumnType("varchar(255)");
+
+ b.Property("Note")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("QtyRec")
+ .HasColumnType("double");
+
+ b.Property("StockStatusId")
+ .HasColumnType("int");
+
+ b.Property("UnitVal")
+ .HasColumnType("double");
+
+ b.Property("UserId")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("StockMovID");
+
+ b.HasIndex("MovCod");
+
+ b.HasIndex("StockStatusId");
+
+ b.ToTable("stock_mov");
+
+ b.HasData(
+ new
+ {
+ StockMovID = 1,
+ CodDoc = "",
+ DtCreate = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2709),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2786),
+ 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, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2790),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2791),
+ 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, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2793),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2795),
+ 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, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2797),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2798),
+ 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, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2801),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2802),
+ 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, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2804),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2806),
+ 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, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2808),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2809),
+ 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, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2811),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2813),
+ 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, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2815),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2817),
+ 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, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2819),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2820),
+ MovCod = "CAR",
+ Note = "DEMO",
+ QtyRec = 1.0,
+ StockStatusId = 10,
+ UnitVal = 0.0,
+ UserId = "samuele.locatelli@egalware.com"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Stock.StockStatusModel", b =>
+ {
+ b.Property("StockStatusId")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("StockStatusId"));
+
+ b.Property("IsDeleted")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("IsRemn")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("ItemID")
+ .HasColumnType("int");
+
+ b.Property("Location")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("QtyAvail")
+ .HasColumnType("double");
+
+ b.HasKey("StockStatusId");
+
+ b.HasIndex("ItemID");
+
+ b.ToTable("stock_status");
+
+ b.HasData(
+ new
+ {
+ StockStatusId = 1,
+ IsDeleted = false,
+ IsRemn = false,
+ ItemID = 1,
+ Location = "B001-001-003",
+ QtyAvail = 5.0
+ },
+ new
+ {
+ StockStatusId = 2,
+ IsDeleted = false,
+ IsRemn = false,
+ ItemID = 2,
+ Location = "B001-001-002",
+ QtyAvail = 8.0
+ },
+ new
+ {
+ StockStatusId = 3,
+ IsDeleted = false,
+ IsRemn = false,
+ ItemID = 3,
+ Location = "B001-001-001",
+ QtyAvail = 5.0
+ },
+ new
+ {
+ StockStatusId = 4,
+ IsDeleted = false,
+ IsRemn = false,
+ ItemID = 4,
+ Location = "V002-001-001",
+ QtyAvail = 1.0
+ },
+ new
+ {
+ StockStatusId = 5,
+ IsDeleted = false,
+ IsRemn = false,
+ ItemID = 5,
+ Location = "V001-001-002",
+ QtyAvail = 10.0
+ },
+ new
+ {
+ StockStatusId = 6,
+ IsDeleted = false,
+ IsRemn = false,
+ ItemID = 6,
+ Location = "V001-001-003",
+ QtyAvail = 1.0
+ },
+ new
+ {
+ StockStatusId = 7,
+ IsDeleted = false,
+ IsRemn = false,
+ ItemID = 8,
+ Location = "V001-001-003",
+ QtyAvail = 50.0
+ },
+ new
+ {
+ StockStatusId = 8,
+ IsDeleted = false,
+ IsRemn = false,
+ ItemID = 11,
+ Location = "S001-002-001",
+ QtyAvail = 1.0
+ },
+ new
+ {
+ StockStatusId = 9,
+ IsDeleted = false,
+ IsRemn = false,
+ ItemID = 9,
+ Location = "S001-002-001",
+ QtyAvail = 1.0
+ },
+ new
+ {
+ StockStatusId = 10,
+ IsDeleted = false,
+ IsRemn = false,
+ ItemID = 10,
+ Location = "S001-001-001",
+ QtyAvail = 1.0
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobModel", b =>
+ {
+ b.Property("JobID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("JobID"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("JobID");
+
+ b.ToTable("task_job");
+
+ b.HasData(
+ new
+ {
+ JobID = 1,
+ Description = "Rivendita / servizi"
+ },
+ new
+ {
+ JobID = 2,
+ Description = "Serramento Completo Legno su linea Saomad e installatore interno"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepItemModel", b =>
+ {
+ b.Property("JobStepItemID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("JobStepItemID"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Index")
+ .HasColumnType("int");
+
+ b.Property("ItemID")
+ .HasColumnType("int");
+
+ b.Property("JobStepID")
+ .HasColumnType("int");
+
+ b.Property("Qty")
+ .HasColumnType("double");
+
+ b.HasKey("JobStepItemID");
+
+ b.HasIndex("ItemID");
+
+ b.HasIndex("JobStepID");
+
+ b.ToTable("task_job_step_item");
+
+ b.HasData(
+ new
+ {
+ JobStepItemID = 1,
+ Description = "Grezzo legno abete",
+ Index = 1,
+ ItemID = 1,
+ JobStepID = 1,
+ Qty = 1.0
+ },
+ new
+ {
+ JobStepItemID = 2,
+ Description = "Vernice trasparente standard 1L",
+ Index = 2,
+ ItemID = 8,
+ JobStepID = 3,
+ Qty = 0.10000000000000001
+ },
+ new
+ {
+ JobStepItemID = 3,
+ Description = "Ferramenta AGB - rif. AGFD.00000.00000",
+ Index = 3,
+ ItemID = 9,
+ JobStepID = 4,
+ Qty = 1.0
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepModel", b =>
+ {
+ b.Property("JobStepID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("JobStepID"));
+
+ b.Property("CostDriverID")
+ .HasColumnType("int");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Index")
+ .HasColumnType("int");
+
+ b.Property("JobID")
+ .HasColumnType("int");
+
+ b.Property("PhaseID")
+ .HasColumnType("int");
+
+ b.Property("ProductivityRate")
+ .HasColumnType("decimal(65,30)");
+
+ b.Property("ResourceID")
+ .HasColumnType("int");
+
+ b.HasKey("JobStepID");
+
+ b.HasIndex("CostDriverID");
+
+ b.HasIndex("JobID");
+
+ b.HasIndex("PhaseID");
+
+ b.HasIndex("ResourceID");
+
+ b.ToTable("task_job_step");
+
+ b.HasData(
+ new
+ {
+ JobStepID = 1,
+ CostDriverID = 3,
+ Description = "",
+ Index = 1,
+ JobID = 2,
+ PhaseID = 1,
+ ProductivityRate = 1m,
+ ResourceID = 1
+ },
+ new
+ {
+ JobStepID = 2,
+ CostDriverID = 2,
+ Description = "",
+ Index = 2,
+ JobID = 2,
+ PhaseID = 2,
+ ProductivityRate = 1m,
+ ResourceID = 2
+ },
+ new
+ {
+ JobStepID = 3,
+ CostDriverID = 3,
+ Description = "",
+ Index = 3,
+ JobID = 2,
+ PhaseID = 3,
+ ProductivityRate = 1m,
+ ResourceID = 4
+ },
+ new
+ {
+ JobStepID = 4,
+ CostDriverID = 3,
+ Description = "",
+ Index = 4,
+ JobID = 2,
+ PhaseID = 4,
+ ProductivityRate = 1m,
+ ResourceID = 6
+ },
+ new
+ {
+ JobStepID = 5,
+ CostDriverID = 3,
+ Description = "",
+ Index = 5,
+ JobID = 2,
+ PhaseID = 6,
+ ProductivityRate = 1m,
+ ResourceID = 7
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.PhaseModel", b =>
+ {
+ b.Property("PhaseID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("PhaseID"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("PhaseID");
+
+ b.ToTable("task_phase");
+
+ b.HasData(
+ new
+ {
+ PhaseID = 1,
+ Description = "Taglio tronchetti"
+ },
+ new
+ {
+ PhaseID = 2,
+ Description = "Lavorazione pezzi serramento"
+ },
+ new
+ {
+ PhaseID = 3,
+ Description = "Verniciatura"
+ },
+ new
+ {
+ PhaseID = 4,
+ Description = "Assemblaggio completo"
+ },
+ new
+ {
+ PhaseID = 5,
+ Description = "Assemblaggio Ferramenta"
+ },
+ new
+ {
+ PhaseID = 6,
+ Description = "Installazione e posa in opera"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.CounterModel", b =>
+ {
+ b.Property("RefYear")
+ .HasColumnType("int");
+
+ b.Property("CountName")
+ .HasColumnType("varchar(255)");
+
+ b.Property("Counter")
+ .HasColumnType("int");
+
+ b.HasKey("RefYear", "CountName");
+
+ b.ToTable("utils_counter");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.GenClassModel", b =>
+ {
+ b.Property("ClassCod")
+ .HasColumnType("varchar(255)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("ClassCod");
+
+ b.ToTable("utils_gen_class");
+
+ b.HasData(
+ new
+ {
+ ClassCod = "WoodMat",
+ Description = "Elenco Materiali Legno"
+ },
+ new
+ {
+ ClassCod = "WoodCol",
+ Description = "Elenco Colori Legno"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.GenValueModel", b =>
+ {
+ b.Property("GenValID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("GenValID"));
+
+ b.Property("ClassCod")
+ .IsRequired()
+ .HasColumnType("varchar(255)");
+
+ b.Property("Ordinal")
+ .HasColumnType("int");
+
+ b.Property("ValString")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("GenValID");
+
+ b.HasIndex("ClassCod");
+
+ b.ToTable("utils_gen_value");
+
+ b.HasData(
+ new
+ {
+ GenValID = 1,
+ ClassCod = "WoodMat",
+ Ordinal = 1,
+ ValString = "Pine"
+ },
+ new
+ {
+ GenValID = 2,
+ ClassCod = "WoodMat",
+ Ordinal = 2,
+ ValString = "Maple"
+ },
+ new
+ {
+ GenValID = 3,
+ ClassCod = "WoodCol",
+ Ordinal = 1,
+ ValString = "Legno"
+ },
+ new
+ {
+ GenValID = 4,
+ ClassCod = "WoodCol",
+ Ordinal = 2,
+ ValString = "Bianco"
+ },
+ new
+ {
+ GenValID = 5,
+ ClassCod = "WoodCol",
+ Ordinal = 3,
+ ValString = "Rosso"
+ },
+ new
+ {
+ GenValID = 6,
+ ClassCod = "WoodCol",
+ Ordinal = 4,
+ ValString = "Nero"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.MovTypeModel", b =>
+ {
+ b.Property("MovCod")
+ .HasColumnType("varchar(255)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("MovCod");
+
+ b.ToTable("utils_mov_type");
+
+ b.HasData(
+ new
+ {
+ MovCod = "CAR",
+ Description = "Carico a magazzino"
+ },
+ new
+ {
+ MovCod = "MOV",
+ Description = "Movimento interno (spostamento)"
+ },
+ new
+ {
+ MovCod = "ND",
+ Description = "Non Definito"
+ },
+ new
+ {
+ MovCod = "OFOR",
+ Description = "Ordine Fornitore"
+ },
+ new
+ {
+ MovCod = "RETT",
+ Description = "Rettifica magazzino"
+ },
+ new
+ {
+ MovCod = "SCAR",
+ Description = "Scarico da magazzino"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.TagsModel", b =>
+ {
+ b.Property("TagID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TagID"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("TagID");
+
+ b.ToTable("utils_tags");
+
+ b.HasData(
+ new
+ {
+ TagID = 1,
+ Description = "Tag 01"
+ },
+ new
+ {
+ TagID = 2,
+ Description = "Tag 02"
+ },
+ new
+ {
+ TagID = 3,
+ Description = "Tag 03"
+ },
+ new
+ {
+ TagID = 4,
+ Description = "Tag 04"
+ },
+ new
+ {
+ TagID = 5,
+ Description = "Tag 05"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.CostDriverModel", "DriverNav")
+ .WithMany()
+ .HasForeignKey("CostDriverID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("DriverNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.ItemModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.ItemGroupModel", "ItemGroupNav")
+ .WithMany()
+ .HasForeignKey("CodGroup")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("ItemGroupNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Items.SellingItemModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.JobModel", "JobNav")
+ .WithMany()
+ .HasForeignKey("JobID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("JobNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.OrderRowModel", "OrderRowNav")
+ .WithMany()
+ .HasForeignKey("OrderRowID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Production.ProductionBatchModel", "ProductionBatchNav")
+ .WithMany()
+ .HasForeignKey("ProductionBatchID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("OrderRowNav");
+
+ b.Navigation("ProductionBatchNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemStepModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.PhaseModel", "PhaseNav")
+ .WithMany()
+ .HasForeignKey("PhaseID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemModel", "ProdItemNav")
+ .WithMany()
+ .HasForeignKey("ProdItemID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", "ResourceNav")
+ .WithMany()
+ .HasForeignKey("ResourceID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("PhaseNav");
+
+ b.Navigation("ProdItemNav");
+
+ b.Navigation("ResourceNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.CustomerModel", "CustomerNav")
+ .WithMany()
+ .HasForeignKey("CustomerID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.DealerModel", "DealerNav")
+ .WithMany()
+ .HasForeignKey("DealerID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("CustomerNav");
+
+ b.Navigation("DealerNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferRowModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", "OfferNav")
+ .WithMany("OfferRowNav")
+ .HasForeignKey("OfferID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.SellingItemModel", "SellingItemNav")
+ .WithMany()
+ .HasForeignKey("SellingItemID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("OfferNav");
+
+ b.Navigation("SellingItemNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.CustomerModel", "CustomerNav")
+ .WithMany()
+ .HasForeignKey("CustomerID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.DealerModel", "DealerNav")
+ .WithMany()
+ .HasForeignKey("DealerID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", "OfferNav")
+ .WithMany()
+ .HasForeignKey("OfferID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("CustomerNav");
+
+ b.Navigation("DealerNav");
+
+ b.Navigation("OfferNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OrderRowModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Sales.OrderModel", "OrderNav")
+ .WithMany()
+ .HasForeignKey("OrderID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.SellingItemModel", "SellingItemNav")
+ .WithMany()
+ .HasForeignKey("SellingItemID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("OrderNav");
+
+ b.Navigation("SellingItemNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Stock.StockMovModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Utils.MovTypeModel", "MovTypeNav")
+ .WithMany()
+ .HasForeignKey("MovCod")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Stock.StockStatusModel", "StockStatusNav")
+ .WithMany()
+ .HasForeignKey("StockStatusId")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("MovTypeNav");
+
+ b.Navigation("StockStatusNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Stock.StockStatusModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.ItemModel", "ItemNav")
+ .WithMany()
+ .HasForeignKey("ItemID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("ItemNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepItemModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Items.ItemModel", "ItemNav")
+ .WithMany()
+ .HasForeignKey("ItemID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.JobStepModel", "JobStepNav")
+ .WithMany()
+ .HasForeignKey("JobStepID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("ItemNav");
+
+ b.Navigation("JobStepNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobStepModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.CostDriverModel", "DriverNav")
+ .WithMany()
+ .HasForeignKey("CostDriverID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.JobModel", "JobNav")
+ .WithMany("JobStepNav")
+ .HasForeignKey("JobID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Task.PhaseModel", "PhaseNav")
+ .WithMany()
+ .HasForeignKey("PhaseID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Cost.ResourceModel", "ResourceNav")
+ .WithMany()
+ .HasForeignKey("ResourceID")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("DriverNav");
+
+ b.Navigation("JobNav");
+
+ b.Navigation("PhaseNav");
+
+ b.Navigation("ResourceNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.GenValueModel", b =>
+ {
+ b.HasOne("EgwCoreLib.Lux.Data.DbModel.Utils.GenClassModel", "GenClassNav")
+ .WithMany("GenValNav")
+ .HasForeignKey("ClassCod")
+ .OnDelete(DeleteBehavior.Restrict)
+ .IsRequired();
+
+ b.Navigation("GenClassNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferModel", b =>
+ {
+ b.Navigation("OfferRowNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Task.JobModel", b =>
+ {
+ b.Navigation("JobStepNav");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Utils.GenClassModel", b =>
+ {
+ b.Navigation("GenValNav");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/EgwCoreLib.Lux.Data/Migrations/20250923101803_AddOffertDiscount.cs b/EgwCoreLib.Lux.Data/Migrations/20250923101803_AddOffertDiscount.cs
new file mode 100644
index 00000000..7941f9c6
--- /dev/null
+++ b/EgwCoreLib.Lux.Data/Migrations/20250923101803_AddOffertDiscount.cs
@@ -0,0 +1,226 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace EgwCoreLib.Lux.Data.Migrations
+{
+ ///
+ public partial class AddOffertDiscount : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AddColumn(
+ name: "Discount",
+ table: "sales_offer",
+ type: "double",
+ nullable: false,
+ defaultValue: 0.0);
+
+ migrationBuilder.UpdateData(
+ table: "sales_offer",
+ keyColumn: "OfferID",
+ keyValue: 1,
+ columns: new[] { "Discount", "Inserted", "Modified", "ValidUntil" },
+ values: new object[] { 0.0, new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3122), new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3124), new DateTime(2025, 10, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3117) });
+
+ migrationBuilder.UpdateData(
+ table: "sales_offer_row",
+ keyColumn: "OfferRowID",
+ keyValue: 1,
+ columns: new[] { "BomCost", "BomPrice", "Inserted", "Modified" },
+ values: new object[] { 900.0, 950.0, new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3264), new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3266) });
+
+ migrationBuilder.UpdateData(
+ table: "sales_offer_row",
+ keyColumn: "OfferRowID",
+ keyValue: 2,
+ columns: new[] { "BomPrice", "Inserted", "Modified" },
+ values: new object[] { 200.0, new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3279), new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3280) });
+
+ migrationBuilder.UpdateData(
+ table: "sales_offer_row",
+ keyColumn: "OfferRowID",
+ keyValue: 3,
+ columns: new[] { "BomPrice", "Inserted", "Modified" },
+ values: new object[] { 250.0, new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3291), new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3292) });
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 1,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2709));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 2,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2790));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 3,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2793));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 4,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2797));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 5,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2801));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 6,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2804));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 7,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2808));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 8,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2811));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 9,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2815));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 10,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2819));
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "Discount",
+ table: "sales_offer");
+
+ migrationBuilder.UpdateData(
+ table: "sales_offer",
+ keyColumn: "OfferID",
+ keyValue: 1,
+ columns: new[] { "Inserted", "Modified", "ValidUntil" },
+ values: new object[] { new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5787), new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5789), new DateTime(2025, 10, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5785) });
+
+ migrationBuilder.UpdateData(
+ table: "sales_offer_row",
+ keyColumn: "OfferRowID",
+ keyValue: 1,
+ columns: new[] { "BomCost", "BomPrice", "Inserted", "Modified" },
+ values: new object[] { 950.0, 0.0, new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5885), new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5887) });
+
+ migrationBuilder.UpdateData(
+ table: "sales_offer_row",
+ keyColumn: "OfferRowID",
+ keyValue: 2,
+ columns: new[] { "BomPrice", "Inserted", "Modified" },
+ values: new object[] { 0.0, new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5906), new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5908) });
+
+ migrationBuilder.UpdateData(
+ table: "sales_offer_row",
+ keyColumn: "OfferRowID",
+ keyValue: 3,
+ columns: new[] { "BomPrice", "Inserted", "Modified" },
+ values: new object[] { 0.0, new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5920), new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5922) });
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 1,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5439));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 2,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5485));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 3,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5489));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 4,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5493));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 5,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5497));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 6,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5501));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 7,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5505));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 8,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5509));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 9,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5514));
+
+ migrationBuilder.UpdateData(
+ table: "stock_mov",
+ keyColumn: "StockMovID",
+ keyValue: 10,
+ column: "DtCreate",
+ value: new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5518));
+ }
+ }
+}
diff --git a/EgwCoreLib.Lux.Data/Migrations/DataLayerContextModelSnapshot.cs b/EgwCoreLib.Lux.Data/Migrations/DataLayerContextModelSnapshot.cs
index 4a3c0ccf..498f6293 100644
--- a/EgwCoreLib.Lux.Data/Migrations/DataLayerContextModelSnapshot.cs
+++ b/EgwCoreLib.Lux.Data/Migrations/DataLayerContextModelSnapshot.cs
@@ -904,6 +904,9 @@ namespace EgwCoreLib.Lux.Data.Migrations
.IsRequired()
.HasColumnType("longtext");
+ b.Property("Discount")
+ .HasColumnType("double");
+
b.Property("Inserted")
.HasColumnType("datetime(6)");
@@ -940,13 +943,14 @@ namespace EgwCoreLib.Lux.Data.Migrations
CustomerID = 2,
DealerID = 2,
Description = "Offerta per tre serramenti",
- Inserted = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5787),
- Modified = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5789),
+ Discount = 0.0,
+ Inserted = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3122),
+ Modified = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3124),
OffertState = 0,
RefNum = 1,
RefRev = 1,
RefYear = 2024,
- ValidUntil = new DateTime(2025, 10, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5785)
+ ValidUntil = new DateTime(2025, 10, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3117)
});
});
@@ -1030,15 +1034,15 @@ namespace EgwCoreLib.Lux.Data.Migrations
new
{
OfferRowID = 1,
- BomCost = 950.0,
+ BomCost = 900.0,
BomOk = true,
- BomPrice = 0.0,
+ BomPrice = 950.0,
Environment = "WINDOW",
- Inserted = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5885),
+ Inserted = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3264),
ItemBOM = "",
ItemOk = true,
ItemSteps = "{}",
- Modified = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5887),
+ Modified = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3266),
Note = "Finestra anta singola 2025",
OfferID = 1,
OfferRowUID = "OFF250000000001",
@@ -1054,13 +1058,13 @@ namespace EgwCoreLib.Lux.Data.Migrations
OfferRowID = 2,
BomCost = 160.0,
BomOk = true,
- BomPrice = 0.0,
+ BomPrice = 200.0,
Environment = "WINDOW",
- Inserted = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5906),
+ Inserted = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3279),
ItemBOM = "",
ItemOk = true,
ItemSteps = "{}",
- Modified = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5908),
+ Modified = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3280),
Note = "Persiana per Finestra anta singola 2025",
OfferID = 1,
OfferRowUID = "OFF250000000002",
@@ -1076,13 +1080,13 @@ namespace EgwCoreLib.Lux.Data.Migrations
OfferRowID = 3,
BomCost = 200.0,
BomOk = true,
- BomPrice = 0.0,
+ BomPrice = 250.0,
Environment = "WINDOW",
- Inserted = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5920),
+ Inserted = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3291),
ItemBOM = "",
ItemOk = true,
ItemSteps = "{}",
- Modified = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5922),
+ Modified = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(3292),
Note = "Installazione serramento",
OfferID = 1,
OfferRowUID = "OFF250000000003",
@@ -1265,8 +1269,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 1,
CodDoc = "",
- DtCreate = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5439),
- DtMod = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5482),
+ DtCreate = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2709),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2786),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 5.0,
@@ -1278,8 +1282,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 2,
CodDoc = "",
- DtCreate = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5485),
- DtMod = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5487),
+ DtCreate = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2790),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2791),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 8.0,
@@ -1291,8 +1295,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 3,
CodDoc = "",
- DtCreate = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5489),
- DtMod = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5491),
+ DtCreate = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2793),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2795),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 5.0,
@@ -1304,8 +1308,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 4,
CodDoc = "",
- DtCreate = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5493),
- DtMod = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5495),
+ DtCreate = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2797),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2798),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -1317,8 +1321,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 5,
CodDoc = "",
- DtCreate = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5497),
- DtMod = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5499),
+ DtCreate = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2801),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2802),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 10.0,
@@ -1330,8 +1334,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 6,
CodDoc = "",
- DtCreate = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5501),
- DtMod = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5503),
+ DtCreate = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2804),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2806),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -1343,8 +1347,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 7,
CodDoc = "",
- DtCreate = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5505),
- DtMod = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5507),
+ DtCreate = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2808),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2809),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 50.0,
@@ -1356,8 +1360,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 8,
CodDoc = "",
- DtCreate = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5509),
- DtMod = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5511),
+ DtCreate = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2811),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2813),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -1369,8 +1373,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 9,
CodDoc = "",
- DtCreate = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5514),
- DtMod = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5515),
+ DtCreate = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2815),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2817),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,
@@ -1382,8 +1386,8 @@ namespace EgwCoreLib.Lux.Data.Migrations
{
StockMovID = 10,
CodDoc = "",
- DtCreate = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5518),
- DtMod = new DateTime(2025, 9, 19, 18, 56, 43, 487, DateTimeKind.Local).AddTicks(5519),
+ DtCreate = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2819),
+ DtMod = new DateTime(2025, 9, 23, 12, 18, 3, 279, DateTimeKind.Local).AddTicks(2820),
MovCod = "CAR",
Note = "DEMO",
QtyRec = 1.0,