diff --git a/EgwCoreLib.Lux.Data/EgwCoreLib.Lux.Data.csproj b/EgwCoreLib.Lux.Data/EgwCoreLib.Lux.Data.csproj
index 55e26a1..b84c34a 100644
--- a/EgwCoreLib.Lux.Data/EgwCoreLib.Lux.Data.csproj
+++ b/EgwCoreLib.Lux.Data/EgwCoreLib.Lux.Data.csproj
@@ -54,7 +54,6 @@
-
diff --git a/EgwCoreLib.Lux.Data/Migrations/20260414161522_AddMatReq_01.Designer.cs b/EgwCoreLib.Lux.Data/Migrations/20260414161522_AddMatReq_01.Designer.cs
new file mode 100644
index 0000000..c6fa844
--- /dev/null
+++ b/EgwCoreLib.Lux.Data/Migrations/20260414161522_AddMatReq_01.Designer.cs
@@ -0,0 +1,4385 @@
+//
+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("20260414161522_AddMatReq_01")]
+ partial class AddMatReq_01
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.23")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Catalog.TemplateModel", b =>
+ {
+ b.Property("TemplateID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TemplateID"));
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Envir")
+ .HasColumnType("int");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("SourceType")
+ .HasColumnType("int");
+
+ b.HasKey("TemplateID");
+
+ b.ToTable("sales_template");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Catalog.TemplateRowModel", b =>
+ {
+ b.Property("TemplateRowID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("TemplateRowID"));
+
+ 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("ImgType")
+ .HasColumnType("int");
+
+ 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("Name")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Note")
+ .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.Property("TemplateID")
+ .HasColumnType("int");
+
+ b.Property("TemplateRowUID")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("TemplateRowID");
+
+ b.HasIndex("SellingItemID");
+
+ b.HasIndex("TemplateID");
+
+ b.ToTable("sales_template_row");
+ });
+
+ 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("ProfDataRaw")
+ .HasColumnType("longtext");
+
+ b.Property("Thickness")
+ .HasColumnType("double");
+
+ b.Property("ThreshDataRaw")
+ .HasColumnType("longtext");
+
+ b.HasKey("ProfileID");
+
+ b.ToTable("conf_profile");
+
+ b.HasData(
+ new
+ {
+ ProfileID = 1,
+ Code = "0001",
+ Description = "Profilo60",
+ ProfDataRaw = "",
+ Thickness = 60.0,
+ ThreshDataRaw = ""
+ },
+ new
+ {
+ ProfileID = 2,
+ Code = "0002",
+ Description = "Profilo78",
+ ProfDataRaw = "",
+ Thickness = 78.0,
+ ThreshDataRaw = ""
+ },
+ new
+ {
+ ProfileID = 3,
+ Code = "0003",
+ Description = "Profilo90",
+ ProfDataRaw = "",
+ Thickness = 90.0,
+ ThreshDataRaw = ""
+ });
+ });
+
+ 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
+ },
+ new
+ {
+ ResourceID = 10,
+ CodResource = "0120.3",
+ CostDriverBudget = 1760m,
+ CostDriverID = 1,
+ EBTPerc = 0.15m,
+ FixedCost = 100000m,
+ LaborCost = 40m,
+ Name = "Linea Essetre FAST",
+ OverHeadCost = 15000m,
+ OverHeadPerc = 0.15m,
+ PriceMargin = 0.2m,
+ VariableCost = 30000m
+ },
+ new
+ {
+ ResourceID = 11,
+ CodResource = "0120.0",
+ CostDriverBudget = 1760m,
+ CostDriverID = 1,
+ EBTPerc = 0.15m,
+ FixedCost = 0m,
+ LaborCost = 40m,
+ Name = "Lavorazione Manuale /Esterna",
+ OverHeadCost = 15000m,
+ OverHeadPerc = 0.15m,
+ PriceMargin = 0.2m,
+ VariableCost = 90000m
+ });
+ });
+
+ 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("FileName")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("ImgType")
+ .HasColumnType("int");
+
+ 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("SourceType")
+ .HasColumnType("int");
+
+ 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 = "",
+ FileName = "",
+ ImgType = 0,
+ 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\"}]}",
+ SourceType = 0,
+ SupplCode = "",
+ UM = "#"
+ },
+ new
+ {
+ SellingItemID = 2,
+ Cost = 300.0,
+ Description = "Finestra Vetro Fisso ",
+ Envir = 1,
+ ExtItemCode = "",
+ FileName = "",
+ ImgType = 0,
+ 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\"}]}",
+ SourceType = 0,
+ SupplCode = "",
+ UM = "#"
+ },
+ new
+ {
+ SellingItemID = 3,
+ Cost = 150.0,
+ Description = "Persiana anta singola",
+ Envir = 1,
+ ExtItemCode = "",
+ FileName = "",
+ ImgType = 0,
+ IsService = false,
+ ItemCode = 0,
+ ItemSteps = "",
+ JobID = 1,
+ Margin = 0.10000000000000001,
+ SerStruct = "",
+ SourceType = 0,
+ SupplCode = "",
+ UM = "#"
+ },
+ new
+ {
+ SellingItemID = 4,
+ Cost = 200.0,
+ Description = "Installazione",
+ Envir = 1,
+ ExtItemCode = "",
+ FileName = "",
+ ImgType = 0,
+ IsService = true,
+ ItemCode = 0,
+ ItemSteps = "",
+ JobID = 1,
+ Margin = 0.29999999999999999,
+ SerStruct = "",
+ SourceType = 0,
+ SupplCode = "",
+ UM = "#"
+ },
+ new
+ {
+ SellingItemID = 5,
+ Cost = 1000.0,
+ Description = "Trave lamellare",
+ Envir = 2,
+ ExtItemCode = "",
+ FileName = "",
+ ImgType = 0,
+ IsService = false,
+ ItemCode = 0,
+ ItemSteps = "",
+ JobID = 3,
+ Margin = 0.29999999999999999,
+ SerStruct = "",
+ SourceType = 0,
+ SupplCode = "",
+ UM = "#"
+ },
+ new
+ {
+ SellingItemID = 6,
+ Cost = 500.0,
+ Description = "Cabinet",
+ Envir = 4,
+ ExtItemCode = "",
+ FileName = "",
+ ImgType = 0,
+ IsService = false,
+ ItemCode = 0,
+ ItemSteps = "",
+ JobID = 4,
+ Margin = 0.29999999999999999,
+ SerStruct = "",
+ SourceType = 0,
+ SupplCode = "",
+ UM = "#"
+ },
+ new
+ {
+ SellingItemID = 7,
+ Cost = 2000.0,
+ Description = "Parete",
+ Envir = 3,
+ ExtItemCode = "",
+ FileName = "",
+ ImgType = 0,
+ IsService = false,
+ ItemCode = 0,
+ ItemSteps = "",
+ JobID = 5,
+ Margin = 0.29999999999999999,
+ SerStruct = "",
+ SourceType = 0,
+ SupplCode = "",
+ UM = "#"
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Job.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.Job.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.Job.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.Job.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.Job.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.Job.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.Job.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.Job.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.Production.ProductionBatchModel", b =>
+ {
+ b.Property("ProdBatchID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProdBatchID"));
+
+ b.Property("BatchTag")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ 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.Property("Envir")
+ .HasColumnType("int");
+
+ b.HasKey("ProdBatchID");
+
+ b.ToTable("production_batch");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionGroupModel", b =>
+ {
+ b.Property("ProdGroupID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProdGroupID"));
+
+ b.Property("GrpIdx")
+ .HasColumnType("int");
+
+ b.Property("OrderRowID")
+ .HasColumnType("int");
+
+ b.Property("WorkGroupListRaw")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.HasKey("ProdGroupID");
+
+ b.HasIndex("OrderRowID");
+
+ b.ToTable("production_group");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItem2ODLModel", b =>
+ {
+ b.Property("ProdItemID")
+ .HasColumnType("int");
+
+ b.Property("ProdODLID")
+ .HasColumnType("int");
+
+ b.Property("DtAssign")
+ .HasColumnType("datetime(6)");
+
+ b.HasKey("ProdItemID", "ProdODLID");
+
+ b.HasIndex("ProdODLID");
+
+ b.ToTable("production_item2odl");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionItemModel", b =>
+ {
+ b.Property("ProdItemID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProdItemID"));
+
+ b.Property("EstimTime")
+ .HasColumnType("double");
+
+ b.Property("ExtItemCode")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("ItemCode")
+ .HasColumnType("int");
+
+ b.Property("OrderRowID")
+ .HasColumnType("int");
+
+ b.Property("ProdBatchID")
+ .HasColumnType("int");
+
+ b.Property("ProdGroupID")
+ .HasColumnType("int");
+
+ b.Property("ProdItemTag")
+ .HasColumnType("varchar(255)");
+
+ b.HasKey("ProdItemID");
+
+ b.HasIndex("OrderRowID");
+
+ b.HasIndex("ProdBatchID");
+
+ b.HasIndex("ProdGroupID");
+
+ b.HasIndex("ProdItemTag")
+ .IsUnique()
+ .HasDatabaseName("idx_prod_item_tag");
+
+ b.ToTable("production_item");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionODLModel", b =>
+ {
+ b.Property("ProdODLID")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProdODLID"));
+
+ b.Property("DateAssign")
+ .HasColumnType("datetime(6)");
+
+ b.Property("DateEnd")
+ .HasColumnType("datetime(6)");
+
+ b.Property("DateMaxCompl")
+ .HasColumnType("datetime(6)");
+
+ b.Property("DateStart")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Description")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("EstimTime")
+ .HasColumnType("decimal(65,30)");
+
+ b.Property("Index")
+ .HasColumnType("int");
+
+ b.Property("OdlTag")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("PhaseID")
+ .HasColumnType("int");
+
+ b.Property("ProdBatchID")
+ .HasColumnType("int");
+
+ b.Property("ProdPlantCod")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Qty")
+ .HasColumnType("double");
+
+ b.Property("RawBoM")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("RawItemRawList")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("RawMaterials")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("ResourceID")
+ .HasColumnType("int");
+
+ b.Property("WorkTime")
+ .HasColumnType("decimal(65,30)");
+
+ b.HasKey("ProdODLID");
+
+ b.HasIndex("ProdBatchID");
+
+ b.ToTable("production_odl");
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Production.ProductionPlantModel", b =>
+ {
+ b.Property("ProdPlantCod")
+ .HasColumnType("varchar(255)");
+
+ b.Property("IsManual")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("Outsource")
+ .HasColumnType("tinyint(1)");
+
+ b.Property("ProdPlantDescript")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("ResourceID")
+ .HasColumnType("int");
+
+ b.HasKey("ProdPlantCod");
+
+ b.HasIndex("ResourceID");
+
+ b.ToTable("production_plant");
+
+ b.HasData(
+ new
+ {
+ ProdPlantCod = "EXT",
+ IsManual = true,
+ Outsource = true,
+ ProdPlantDescript = "External / Manuale"
+ });
+ });
+
+ 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, 6, 13, 0, 0, 0, 0, DateTimeKind.Local),
+ DueDateReq = new DateTime(2026, 5, 14, 0, 0, 0, 0, DateTimeKind.Local),
+ Envir = 1,
+ Inserted = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Modified = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ OffertState = 0,
+ RefNum = 1,
+ RefRev = 1,
+ RefYear = 2025,
+ ValidUntil = new DateTime(2026, 5, 14, 18, 15, 21, 979, DateTimeKind.Local).AddTicks(4906)
+ },
+ new
+ {
+ OfferID = 2,
+ ConsNote = "",
+ CustomerID = 2,
+ DealerID = 2,
+ Description = "Offerta BEAM",
+ DictPresel = "",
+ Discount = 0.0,
+ DueDateProm = new DateTime(2026, 6, 13, 0, 0, 0, 0, DateTimeKind.Local),
+ DueDateReq = new DateTime(2026, 5, 14, 0, 0, 0, 0, DateTimeKind.Local),
+ Envir = 2,
+ Inserted = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Modified = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ OffertState = 0,
+ RefNum = 2,
+ RefRev = 1,
+ RefYear = 2025,
+ ValidUntil = new DateTime(2026, 5, 14, 18, 15, 21, 979, DateTimeKind.Local).AddTicks(4920)
+ },
+ new
+ {
+ OfferID = 3,
+ ConsNote = "",
+ CustomerID = 2,
+ DealerID = 2,
+ Description = "Offerta Cabinet",
+ DictPresel = "",
+ Discount = 0.0,
+ DueDateProm = new DateTime(2026, 6, 13, 0, 0, 0, 0, DateTimeKind.Local),
+ DueDateReq = new DateTime(2026, 5, 14, 0, 0, 0, 0, DateTimeKind.Local),
+ Envir = 4,
+ Inserted = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Modified = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ OffertState = 0,
+ RefNum = 3,
+ RefRev = 1,
+ RefYear = 2025,
+ ValidUntil = new DateTime(2026, 5, 14, 18, 15, 21, 979, DateTimeKind.Local).AddTicks(4927)
+ },
+ new
+ {
+ OfferID = 4,
+ ConsNote = "",
+ CustomerID = 2,
+ DealerID = 2,
+ Description = "Offerta Wall",
+ DictPresel = "",
+ Discount = 0.0,
+ DueDateProm = new DateTime(2026, 6, 13, 0, 0, 0, 0, DateTimeKind.Local),
+ DueDateReq = new DateTime(2026, 5, 14, 0, 0, 0, 0, DateTimeKind.Local),
+ Envir = 3,
+ Inserted = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ Modified = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified),
+ OffertState = 0,
+ RefNum = 4,
+ RefRev = 1,
+ RefYear = 2025,
+ ValidUntil = new DateTime(2026, 5, 14, 18, 15, 21, 979, DateTimeKind.Local).AddTicks(4934)
+ });
+ });
+
+ 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("DictPendPresRaw")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("Envir")
+ .HasColumnType("int");
+
+ b.Property("FileName")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("FileResource")
+ .IsRequired()
+ .HasColumnType("longtext");
+
+ b.Property("FileSize")
+ .HasColumnType("bigint");
+
+ b.Property("ImgType")
+ .HasColumnType("int");
+
+ 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