diff --git a/EgwCoreLib.Lux.Core/Enums.cs b/EgwCoreLib.Lux.Core/Enums.cs
index 0aadd8f7..0b71fc40 100644
--- a/EgwCoreLib.Lux.Core/Enums.cs
+++ b/EgwCoreLib.Lux.Core/Enums.cs
@@ -162,6 +162,9 @@
Lost
}
+ ///
+ /// Status ordini cliente
+ ///
public enum OrderStates
{
///
@@ -210,6 +213,39 @@
Closed
}
+ public enum BuyOrderStates
+ {
+ ///
+ /// Ordine acquisto creato da BOM di 1/+ ordini
+ ///
+ Created,
+
+ ///
+ /// Richiesta quotazione fornitori
+ ///
+ Requested,
+
+ ///
+ /// Assegnato a supplier (e inviato)
+ ///
+ Assigned,
+
+ ///
+ /// Parzialmente ricevuto
+ ///
+ Partial,
+
+ ///
+ /// Completato poiché ho ricevuto Merce (e DDT)
+ ///
+ Completed,
+
+ ///
+ /// Ordine chiuso (con fatturazione)
+ ///
+ Closed
+ }
+
///
/// Enum risultati verifica lavorabilità part (e tempo)
///
diff --git a/EgwCoreLib.Lux.Data/DataLayerContext.cs b/EgwCoreLib.Lux.Data/DataLayerContext.cs
index 38cc0429..2f37f1a8 100644
--- a/EgwCoreLib.Lux.Data/DataLayerContext.cs
+++ b/EgwCoreLib.Lux.Data/DataLayerContext.cs
@@ -44,6 +44,10 @@
public virtual DbSet DbSetCustomer { get; set; }
public virtual DbSet DbSetDealer { get; set; }
public virtual DbSet DbSetSupplier { get; set; }
+ public virtual DbSet DbSetSupplierQualify { get; set; }
+ public virtual DbSet DbSetBuyOrder { get; set; }
+ public virtual DbSet DbSetBuyOrderRow { get; set; }
+
public virtual DbSet DbSetOffer { get; set; }
public virtual DbSet DbSetOfferRow { get; set; }
public virtual DbSet DbSetOrder { get; set; }
@@ -123,6 +127,9 @@
modelBuilder.Entity()
.HasKey(jst => new { jst.JobStepID, jst.CodTag });
+ modelBuilder.Entity()
+ .HasKey(sq => new { sq.SupplierID, sq.CodGroup });
+
modelBuilder.Entity()
.HasKey(x => new { x.ProdItemID, x.ProdODLID });
diff --git a/EgwCoreLib.Lux.Data/DbModel/Sales/OrderRowModel.cs b/EgwCoreLib.Lux.Data/DbModel/Sales/OrderRowModel.cs
index b7423d41..1f07e2d8 100644
--- a/EgwCoreLib.Lux.Data/DbModel/Sales/OrderRowModel.cs
+++ b/EgwCoreLib.Lux.Data/DbModel/Sales/OrderRowModel.cs
@@ -54,7 +54,7 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
public int? SellingItemID { get; set; }
///
- /// Riferimento (opzionale9 al template da cui è derivato
+ /// Riferimento (opzionale) al template da cui è derivato
///
public int? TemplateRowID { get; set; } = null;
diff --git a/EgwCoreLib.Lux.Data/DbModel/Supplier/BuyOrderModel.cs b/EgwCoreLib.Lux.Data/DbModel/Supplier/BuyOrderModel.cs
new file mode 100644
index 00000000..e9a11cd1
--- /dev/null
+++ b/EgwCoreLib.Lux.Data/DbModel/Supplier/BuyOrderModel.cs
@@ -0,0 +1,92 @@
+namespace EgwCoreLib.Lux.Data.DbModel.Supplier
+{
+ //
+ // This is here so CodeMaid doesn't reorganize this document
+ //
+
+ [Table("buy_order")]
+ public class BuyOrderModel
+ {
+ ///
+ /// ID del record
+ ///
+ [Key]
+ public int BuyOrderID { get; set; }
+
+ ///
+ /// Anno rif Ordine Fornitore
+ ///
+ public int RefYear { get; set; } = DateTime.Today.Year;
+
+ ///
+ /// Numero prog Ordine nell'anno (da calcolare)
+ ///
+ public int RefNum { get; set; } = 0;
+
+ ///
+ /// Indice revisione
+ ///
+ public int RefRev { get; set; } = 1;
+
+ ///
+ /// Codice calcolato Ordine ANNO.NUMERO.REV
+ ///
+ [NotMapped]
+ public string BuyOrderCode
+ {
+ get => $"BO.{RefYear:00}.{RefNum:00000}.{RefRev:00}";
+ }
+
+ ///
+ /// Descrizione generale
+ ///
+ public string Description { get; set; } = "";
+
+ ///
+ /// Fornitore (quandoa ssegnato, altrimenti è quotazione)
+ ///
+ public int? SupplierID { get; set; } = null;
+
+ ///
+ /// Ordine assegnato se ho un supplier definito
+ ///
+ [NotMapped]
+ public bool Assigned => SupplierID != null;
+
+ ///
+ /// DataOra inserimento
+ ///
+ public DateTime Inserted { get; set; } = DateTime.Now;
+
+ ///
+ /// DataOra ultima modifica
+ ///
+ public DateTime Modified { get; set; } = DateTime.Now;
+
+ ///
+ /// DataOra richiesta per il completamento dell'ordine di fornitura
+ ///
+ public DateTime DueDateReq { get; set; } = DateTime.Today.AddDays(30);
+
+ ///
+ /// note di consegna (opzionali)
+ ///
+ public string ConsNote { get; set; } = "";
+
+ ///
+ /// Enum stato Ordine Acquisto
+ ///
+ public BuyOrderStates OrderState { get; set; } = BuyOrderStates.Created;
+
+ ///
+ /// Navigazione Supplier
+ ///
+ [ForeignKey("SupplierID")]
+ public virtual SupplierModel? SupplierNav { get; set; } = null;
+
+ ///
+ /// Navigazione alle righe Ordine Acquisto
+ ///
+ public virtual ICollection BuyOrderRowNav { get; set; } = new List();
+ }
+}
diff --git a/EgwCoreLib.Lux.Data/DbModel/Supplier/BuyOrderRowModel.cs b/EgwCoreLib.Lux.Data/DbModel/Supplier/BuyOrderRowModel.cs
new file mode 100644
index 00000000..dc2a08a8
--- /dev/null
+++ b/EgwCoreLib.Lux.Data/DbModel/Supplier/BuyOrderRowModel.cs
@@ -0,0 +1,92 @@
+namespace EgwCoreLib.Lux.Data.DbModel.Supplier
+{
+ //
+ // This is here so CodeMaid doesn't reorganize this document
+ //
+
+ [Table("buy_order_row")]
+ public class BuyOrderRowModel
+ {
+ ///
+ /// ID del record
+ ///
+ [Key]
+ public int BuyOrderRowID { get; set; }
+
+ ///
+ /// ID Ordine di acquisto di riferimento
+ ///
+ public int BuyOrderID { get; set; }
+
+ ///
+ /// Riga Ordine (per ordinamento)
+ ///
+ public int RowNum { get; set; } = 0;
+
+ ///
+ /// ID dell'item richiesto
+ ///
+ public int ItemID { get; set; } = 0;
+
+ ///
+ /// Classificazione Item
+ ///
+ public string ClassCode { get; set; } = "";
+
+ ///
+ /// Descrizione Item
+ ///
+ public string DescriptionCode { get; set; } = "";
+
+ ///
+ /// Codice Item
+ ///
+ public string ItemCode { get; set; } = "";
+
+ ///
+ /// Quantità articolo TOTALE
+ ///
+ public double TotQty
+ {
+ get => DictOrderRowDetail.Sum(x => x.Value);
+ }
+
+ ///
+ /// Dizionario serializzato di RigheOrdine + Qty
+ ///
+ public string OrderRowData { get; set; } = "";
+
+ ///
+ /// Dizionario escplicito degli OrderRow esplosi rispetto a ItemId delle BOM
+ ///
+ [NotMapped]
+ public Dictionary DictOrderRowDetail
+ {
+ get
+ {
+ Dictionary answ = new();
+ if (!string.IsNullOrEmpty(OrderRowData) && OrderRowData.Count() > 2)
+ {
+ answ = JsonConvert.DeserializeObject>(OrderRowData) ?? new();
+ }
+ return answ;
+ }
+ set
+ {
+ OrderRowData = JsonConvert.SerializeObject(value);
+ }
+ }
+
+ ///
+ /// Navigazione Ordine Acquisto
+ ///
+ [ForeignKey("BuyOrderID")]
+ public virtual BuyOrderModel? BuyOrderNav { get; set; } = null;
+
+ ///
+ /// Navigazione Item
+ ///
+ [ForeignKey("ItemID")]
+ public virtual ItemModel? ItemNav { get; set; } = null;
+ }
+}
diff --git a/EgwCoreLib.Lux.Data/DbModel/Items/SupplierModel.cs b/EgwCoreLib.Lux.Data/DbModel/Supplier/SupplierModel.cs
similarity index 69%
rename from EgwCoreLib.Lux.Data/DbModel/Items/SupplierModel.cs
rename to EgwCoreLib.Lux.Data/DbModel/Supplier/SupplierModel.cs
index 495cd84e..85c806b5 100644
--- a/EgwCoreLib.Lux.Data/DbModel/Items/SupplierModel.cs
+++ b/EgwCoreLib.Lux.Data/DbModel/Supplier/SupplierModel.cs
@@ -1,10 +1,10 @@
-namespace EgwCoreLib.Lux.Data.DbModel.Items
+namespace EgwCoreLib.Lux.Data.DbModel.Supplier
{
//
// This is here so CodeMaid doesn't reorganize this document
//
- [Table("item_supplier")]
+ [Table("buy_supplier")]
public class SupplierModel
{
///
@@ -13,13 +13,6 @@
[Key]
public int SupplierID { get; set; }
-#if false
- ///
- /// Ruolo assocaito da anagrafica esterna
- ///
- public int RoleID { get; set; }
-#endif
-
///
/// Denominazione se persona giuridica
///
@@ -40,12 +33,9 @@
///
public string VAT { get; set; } = "";
-#if false
///
- /// Navigazione al ruolo
+ /// Many-to-many with Qualifica Fornitori
///
- [ForeignKey("RoleID")]
- public virtual RoleModel RoleNav { get; set; } = null!;
-#endif
+ public virtual ICollection QualifNav { get; set; } = new List();
}
}
diff --git a/EgwCoreLib.Lux.Data/DbModel/Supplier/SupplierQualifyModel.cs b/EgwCoreLib.Lux.Data/DbModel/Supplier/SupplierQualifyModel.cs
new file mode 100644
index 00000000..4223a010
--- /dev/null
+++ b/EgwCoreLib.Lux.Data/DbModel/Supplier/SupplierQualifyModel.cs
@@ -0,0 +1,15 @@
+namespace EgwCoreLib.Lux.Data.DbModel.Supplier
+{
+ [Table("buy_supplier_qualify")]
+ public class SupplierQualifyModel
+ {
+ public int SupplierID { get; set; }
+ public string CodGroup { get; set; } = "";
+
+ [ForeignKey("SupplierID")]
+ public virtual SupplierModel SupplierNav { get; set; } = null!;
+
+ [ForeignKey("CodGroup")]
+ public virtual ItemGroupModel GroupNav { get; set; } = null!;
+ }
+}
diff --git a/EgwCoreLib.Lux.Data/EgwCoreLib.Lux.Data.csproj b/EgwCoreLib.Lux.Data/EgwCoreLib.Lux.Data.csproj
index fed9128f..b84c34a9 100644
--- a/EgwCoreLib.Lux.Data/EgwCoreLib.Lux.Data.csproj
+++ b/EgwCoreLib.Lux.Data/EgwCoreLib.Lux.Data.csproj
@@ -54,6 +54,7 @@
+
diff --git a/EgwCoreLib.Lux.Data/GlobalUsings.cs b/EgwCoreLib.Lux.Data/GlobalUsings.cs
index 5a094ea5..985b3335 100644
--- a/EgwCoreLib.Lux.Data/GlobalUsings.cs
+++ b/EgwCoreLib.Lux.Data/GlobalUsings.cs
@@ -9,6 +9,7 @@ global using EgwCoreLib.Lux.Data.DbModel.Production;
global using EgwCoreLib.Lux.Data.DbModel.Sales;
global using EgwCoreLib.Lux.Data.DbModel.Stats;
global using EgwCoreLib.Lux.Data.DbModel.Stock;
+global using EgwCoreLib.Lux.Data.DbModel.Supplier;
global using EgwCoreLib.Lux.Data.DbModel.Utils;
global using Microsoft.EntityFrameworkCore;
global using Microsoft.Extensions.Configuration;
diff --git a/EgwCoreLib.Lux.Data/Migrations/20260414092234_AddBuyOrder.Designer.cs b/EgwCoreLib.Lux.Data/Migrations/20260414092234_AddBuyOrder.Designer.cs
new file mode 100644
index 00000000..0d88324a
--- /dev/null
+++ b/EgwCoreLib.Lux.Data/Migrations/20260414092234_AddBuyOrder.Designer.cs
@@ -0,0 +1,4262 @@
+//
+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("20260414092234_AddBuyOrder")]
+ partial class AddBuyOrder
+ {
+ ///
+ 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, 11, 22, 33, 792, DateTimeKind.Local).AddTicks(5680)
+ },
+ 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, 11, 22, 33, 792, DateTimeKind.Local).AddTicks(5692)
+ },
+ 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, 11, 22, 33, 792, DateTimeKind.Local).AddTicks(5699)
+ },
+ 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, 11, 22, 33, 792, DateTimeKind.Local).AddTicks(5705)
+ });
+ });
+
+ modelBuilder.Entity("EgwCoreLib.Lux.Data.DbModel.Sales.OfferRowModel", b =>
+ {
+ b.Property