343 lines
34 KiB
C#
343 lines
34 KiB
C#
using EgwCoreLib.Lux.Data.DbModel.Config;
|
|
using EgwCoreLib.Lux.Data.DbModel.Cost;
|
|
using EgwCoreLib.Lux.Data.DbModel.Items;
|
|
using EgwCoreLib.Lux.Data.DbModel.Sales;
|
|
using EgwCoreLib.Lux.Data.DbModel.Stock;
|
|
using EgwCoreLib.Lux.Data.DbModel.Task;
|
|
using EgwCoreLib.Lux.Data.DbModel.Utils;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace EgwCoreLib.Lux.Data
|
|
{
|
|
public static class ModelBuilderExtensions
|
|
{
|
|
#region Public Methods
|
|
|
|
/// <summary>
|
|
/// Estensione per seed iniziale dei dati nel DB
|
|
/// </summary>
|
|
/// <param name="modelBuilder"></param>
|
|
public static void Seed(this ModelBuilder modelBuilder)
|
|
{
|
|
|
|
// inizializzazione dei valori di default x Ruoli/Tags
|
|
modelBuilder.Entity<TagsModel>().HasData(
|
|
new TagsModel { TagID = 1, Description = "Tag 01" },
|
|
new TagsModel { TagID = 2, Description = "Tag 02" },
|
|
new TagsModel { TagID = 3, Description = "Tag 03" },
|
|
new TagsModel { TagID = 4, Description = "Tag 04" },
|
|
new TagsModel { TagID = 5, Description = "Tag 05" }
|
|
);
|
|
|
|
// init classi generiche x gestione liste
|
|
modelBuilder.Entity<GenClassModel>().HasData(
|
|
new GenClassModel { ClassCod = "ShapeList", Description = "Elenco Shape Gestite" },
|
|
new GenClassModel { ClassCod = "WoodCol", Description = "Elenco Colori Legno" }
|
|
);
|
|
|
|
// init dati x invio serializzazioni da environment
|
|
modelBuilder.Entity<EnvirParamModel>().HasData(
|
|
new EnvirParamModel { EnvirID = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, SerStrucKey = "Jwd" },
|
|
new EnvirParamModel { EnvirID = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.BEAM, SerStrucKey = "Btl" },
|
|
new EnvirParamModel { EnvirID = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.CABINET, SerStrucKey = "Btl" },
|
|
new EnvirParamModel { EnvirID = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WALL, SerStrucKey = "Btl" }
|
|
);
|
|
|
|
modelBuilder.Entity<GenValueModel>().HasData(
|
|
new GenValueModel { GenValID = 1, Index = 1, ClassCod = "WoodCol", ValString = "Blue" },
|
|
new GenValueModel { GenValID = 2, Index = 2, ClassCod = "WoodCol", ValString = "White" },
|
|
new GenValueModel { GenValID = 3, Index = 3, ClassCod = "WoodCol", ValString = "Red" },
|
|
new GenValueModel { GenValID = 4, Index = 4, ClassCod = "WoodCol", ValString = "Black" },
|
|
new GenValueModel { GenValID = 5, Index = 1, ClassCod = "ShapeList", ValString = "Rectangle" },
|
|
new GenValueModel { GenValID = 6, Index = 2, ClassCod = "ShapeList", ValString = "Trapezoid" },
|
|
new GenValueModel { GenValID = 7, Index = 3, ClassCod = "ShapeList", ValString = "Triangular" },
|
|
new GenValueModel { GenValID = 8, Index = 4, ClassCod = "ShapeList", ValString = "Arc" },
|
|
new GenValueModel { GenValID = 9, Index = 5, ClassCod = "ShapeList", ValString = "FullArc" },
|
|
new GenValueModel { GenValID = 10, Index = 6, ClassCod = "ShapeList", ValString = "SemiFullArc" },
|
|
new GenValueModel { GenValID = 11, Index = 7, ClassCod = "ShapeList", ValString = "SemiArc" },
|
|
new GenValueModel { GenValID = 12, Index = 8, ClassCod = "ShapeList", ValString = "Circle" }
|
|
);
|
|
|
|
modelBuilder.Entity<GlassModel>().HasData(
|
|
new GlassModel { GlassID = 1, Code = "0001", Description = "Vetro BE 2S 4/12/4", Thickness = 20 },
|
|
new GlassModel { GlassID = 2, Code = "0002", Description = "Vetro BE 2S 4/16/4", Thickness = 24 },
|
|
new GlassModel { GlassID = 3, Code = "0003", Description = "Vetro BE 3S 4/12/4/12/4", Thickness = 36 },
|
|
new GlassModel { GlassID = 4, Code = "0004", Description = "Vetro BE 3S 4/16/4/16/4", Thickness = 44 },
|
|
new GlassModel { GlassID = 5, Code = "0005", Description = "Vetro BE 2S 4T/12/4T", Thickness = 20 },
|
|
new GlassModel { GlassID = 6, Code = "0006", Description = "Vetro BE 2S 4T/16/4T", Thickness = 24 },
|
|
new GlassModel { GlassID = 7, Code = "0007", Description = "Vetro BE 3S 4T/12/4T/12/4T", Thickness = 36 },
|
|
new GlassModel { GlassID = 8, Code = "0008", Description = "Vetro BE 3S 4T/16/4T/16/4T", Thickness = 44 }
|
|
);
|
|
modelBuilder.Entity<ProfileModel>().HasData(
|
|
new ProfileModel { ProfileID = 1, Code = "0001", Description = "Profilo60", Thickness = 60 },
|
|
new ProfileModel { ProfileID = 2, Code = "0002", Description = "Profilo78", Thickness = 78 },
|
|
new ProfileModel { ProfileID = 3, Code = "0003", Description = "Profilo90", Thickness = 90 }
|
|
);
|
|
modelBuilder.Entity<WoodModel>().HasData(
|
|
new WoodModel { WoodID = 1, Code = "0001", Description = "Abete", Type = 1 },
|
|
new WoodModel { WoodID = 2, Code = "0002", Description = "Acero", Type = 1 },
|
|
new WoodModel { WoodID = 3, Code = "0003", Description = "Pino", Type = 2 },
|
|
new WoodModel { WoodID = 4, Code = "0004", Description = "Tek", Type = 3 }
|
|
);
|
|
|
|
|
|
// valori base classi generiche
|
|
|
|
// inizializzazione dei valori di default x Customer
|
|
modelBuilder.Entity<CustomerModel>().HasData(
|
|
new CustomerModel { CustomerID = 1, FirstName = "Customer A", LastName = "Egalware", VAT = "1234567890123456" },
|
|
new CustomerModel { CustomerID = 2, FirstName = "Customer B", LastName = "User", VAT = "1234567890123456" },
|
|
new CustomerModel { CustomerID = 3, FirstName = "Customer C", LastName = "User Test", VAT = "1234567890123456" }
|
|
);
|
|
|
|
// inizializzazione dei valori di default x Dealer
|
|
modelBuilder.Entity<DealerModel>().HasData(
|
|
new DealerModel { DealerID = 1, CompanyName = "Company First", FirstName = "Dealer A", LastName = "Egalware", VAT = "9587362514671527" },
|
|
new DealerModel { DealerID = 2, CompanyName = "Company First", FirstName = "Dealer B", LastName = "User", VAT = "9587362514671527" },
|
|
new DealerModel { DealerID = 3, CompanyName = "Company Second", FirstName = "Dealer C", LastName = "User Test", VAT = "9587362514671527" }
|
|
);
|
|
|
|
// inizializzazione dei valori di default x Supplier
|
|
modelBuilder.Entity<SupplierModel>().HasData(
|
|
new SupplierModel { SupplierID = 1, CompanyName = "Company One", FirstName = "Supplier A", LastName = "Egalware", VAT = "7294857103879254" },
|
|
new SupplierModel { SupplierID = 2, CompanyName = "Company Two", FirstName = "Supplier B", LastName = "User", VAT = "7294857103879254" },
|
|
new SupplierModel { SupplierID = 3, CompanyName = "Company Two", FirstName = "Supplier C", LastName = "User Test", VAT = "7294857103879254" }
|
|
);
|
|
|
|
// inizializzazione dei valori di default x gruppi item
|
|
modelBuilder.Entity<ItemGroupModel>().HasData(
|
|
new ItemGroupModel { CodGroup = "WindowTrunk", Description = "Barre legno per lavorazione" },
|
|
new ItemGroupModel { CodGroup = "WindowGlass", Description = "Vetri serramento" },
|
|
new ItemGroupModel { CodGroup = "WindowVarnish", Description = "Vernici per legno" },
|
|
new ItemGroupModel { CodGroup = "WindowHardware", Description = "Ferramenta serramento" }
|
|
);
|
|
|
|
// inizializzazione tipo mov mag
|
|
modelBuilder.Entity<MovTypeModel>().HasData(
|
|
new MovTypeModel { MovCod = "CAR", Description = "Carico a magazzino" },
|
|
new MovTypeModel { MovCod = "MOV", Description = "Movimento interno (spostamento)" },
|
|
new MovTypeModel { MovCod = "ND", Description = "Non Definito" },
|
|
new MovTypeModel { MovCod = "OFOR", Description = "Ordine Fornitore" },
|
|
new MovTypeModel { MovCod = "RETT", Description = "Rettifica magazzino" },
|
|
new MovTypeModel { MovCod = "SCAR", Description = "Scarico da magazzino" }
|
|
);
|
|
|
|
// inizializzazione dei valori di default x Item di magazzino
|
|
modelBuilder.Entity<ItemModel>().HasData(
|
|
// barre grezzo
|
|
new ItemModel { ItemID = 1, CodGroup = "WindowTrunk", ItemType = Core.Enums.ItemClassType.Buy, IsService = false, ItemCode = 1001, Description = "BARRA-60x80 generica", SupplCode = "BARR.001", Cost = 20, Margin = 0.3, UM = "#" },
|
|
new ItemModel { ItemID = 2, CodGroup = "WindowTrunk", ItemType = Core.Enums.ItemClassType.Buy, IsService = false, ItemCode = 1002, ExtItemCode = "BARRA-60x80x12000", SupplCode = "ABC.00123.12000", Description = "Barra 60x80, lunghezza 12m", Cost = 16.5, Margin = 0.21, UM = "#" },
|
|
new ItemModel { ItemID = 3, CodGroup = "WindowTrunk", ItemType = Core.Enums.ItemClassType.Buy, IsService = false, ItemCode = 1003, ExtItemCode = "BARRA-60x80x8000", SupplCode = "ABC.00123.8000", Description = "Barra 60x80, lunghezza 8m", Cost = 17.5, Margin = 0.22, UM = "#" },
|
|
new ItemModel { ItemID = 4, CodGroup = "WindowTrunk", ItemType = Core.Enums.ItemClassType.Buy, IsService = false, ItemCode = 1004, ExtItemCode = "BARRA-60x80x16000", SupplCode = "ABC.00123.16000", Description = "Barra 60x80, lunghezza 16m", Cost = 15.5, Margin = 0.2, UM = "#" },
|
|
|
|
// vetri
|
|
new ItemModel { ItemID = 5, CodGroup = "WindowGlass", ItemType = Core.Enums.ItemClassType.Buy, IsService = false, ItemCode = 2001, ExtItemCode = "VETRO-3L-THERMO-800x1000", SupplCode = "V3T.800.1000", Description = "Vetro triplo, basso indice termico, 800x1000", Cost = 300, Margin = 0.20, UM = "m2" },
|
|
new ItemModel { ItemID = 6, CodGroup = "WindowGlass", ItemType = Core.Enums.ItemClassType.Buy, IsService = false, ItemCode = 2002, ExtItemCode = "VETRO-2L-800x1000", SupplCode = "V2.800.1000", Description = "Vetro doppio, 800x1000", Cost = 200, Margin = 0.15, UM = "m2" },
|
|
new ItemModel { ItemID = 7, CodGroup = "WindowGlass", ItemType = Core.Enums.ItemClassType.Buy, IsService = false, ItemCode = 2003, ExtItemCode = "VETRO-3L-800x1000", SupplCode = "V3.800.1000", Description = "Vetro triplo, 800x1000", Cost = 250, Margin = 0.18, UM = "m2" },
|
|
|
|
// vernici
|
|
new ItemModel { ItemID = 8, CodGroup = "WindowVarnish", ItemType = Core.Enums.ItemClassType.Buy, IsService = false, ItemCode = 3001, ExtItemCode = "VERN-TRASP", SupplCode = "VT.STD", Description = "Vernice trasparente", Cost = 20, Margin = 0.20, UM = "l" },
|
|
|
|
// ferramenta
|
|
new ItemModel { ItemID = 9, CodGroup = "WindowHardware", ItemType = Core.Enums.ItemClassType.Buy, IsService = false, ItemCode = 5001, ExtItemCode = "KIT-001", SupplCode = "AGB-KIT-001", Description = "Kit standard completo AGB tipo 001", Cost = 65, Margin = 0.20, UM = "#" },
|
|
new ItemModel { ItemID = 10, CodGroup = "WindowHardware", ItemType = Core.Enums.ItemClassType.Buy, IsService = false, ItemCode = 5002, ExtItemCode = "CERN-001", SupplCode = "AGB-CERN-001", Description = "Cerniera AGB tipo 001", Cost = 10, Margin = 0.20, UM = "#" },
|
|
new ItemModel { ItemID = 11, CodGroup = "WindowHardware", ItemType = Core.Enums.ItemClassType.Buy, IsService = false, ItemCode = 5003, ExtItemCode = "SERR-001", SupplCode = "AGB-SERR-001", Description = "Serratura AGB tipo 001", Cost = 15, Margin = 0.20, UM = "#" },
|
|
new ItemModel { ItemID = 12, CodGroup = "WindowHardware", ItemType = Core.Enums.ItemClassType.Buy, IsService = false, ItemCode = 5004, ExtItemCode = "MAN-001", SupplCode = "AGB-MAN-001", Description = "Maniglia AGB tipo 001", Cost = 25, Margin = 0.20, UM = "#" }
|
|
);
|
|
|
|
// inizializzazione dei valori di default x Item di giacenza
|
|
modelBuilder.Entity<StockStatusModel>().HasData(
|
|
// giacenza barre grezzo
|
|
new StockStatusModel { StockStatusId = 1, ItemID = 1, QtyAvail = 5, IsDeleted = false, IsRemn = false, Location = "B001-001-003" },
|
|
new StockStatusModel { StockStatusId = 2, ItemID = 2, QtyAvail = 8, IsDeleted = false, IsRemn = false, Location = "B001-001-002" },
|
|
new StockStatusModel { StockStatusId = 3, ItemID = 3, QtyAvail = 5, IsDeleted = false, IsRemn = false, Location = "B001-001-001" },
|
|
|
|
// giacenza vetri
|
|
new StockStatusModel { StockStatusId = 4, ItemID = 4, QtyAvail = 1, IsDeleted = false, IsRemn = false, Location = "V002-001-001" },
|
|
new StockStatusModel { StockStatusId = 5, ItemID = 5, QtyAvail = 10, IsDeleted = false, IsRemn = false, Location = "V001-001-002" },
|
|
new StockStatusModel { StockStatusId = 6, ItemID = 6, QtyAvail = 1, IsDeleted = false, IsRemn = false, Location = "V001-001-003" },
|
|
|
|
// giacenza vernici
|
|
new StockStatusModel { StockStatusId = 7, ItemID = 8, QtyAvail = 50, IsDeleted = false, IsRemn = false, Location = "V001-001-003" },
|
|
|
|
// giacenza ferramenta
|
|
new StockStatusModel { StockStatusId = 8, ItemID = 11, QtyAvail = 1, IsDeleted = false, IsRemn = false, Location = "S001-002-001" },
|
|
new StockStatusModel { StockStatusId = 9, ItemID = 9, QtyAvail = 1, IsDeleted = false, IsRemn = false, Location = "S001-002-001" },
|
|
new StockStatusModel { StockStatusId = 10, ItemID = 10, QtyAvail = 1, IsDeleted = false, IsRemn = false, Location = "S001-001-001" }
|
|
);
|
|
|
|
// inizializzazione dei valori di default x movimenti giacenze magazzino
|
|
modelBuilder.Entity<StockMovModel>().HasData(
|
|
// giacenza barre grezzo
|
|
new StockMovModel { StockMovID = 1, StockStatusId = 1, QtyRec = 5, MovCod = "CAR", UserId = "samuele.locatelli@egalware.com", Note = "DEMO" },
|
|
new StockMovModel { StockMovID = 2, StockStatusId = 2, QtyRec = 8, MovCod = "CAR", UserId = "samuele.locatelli@egalware.com", Note = "DEMO" },
|
|
new StockMovModel { StockMovID = 3, StockStatusId = 3, QtyRec = 5, MovCod = "CAR", UserId = "samuele.locatelli@egalware.com", Note = "DEMO" },
|
|
|
|
// giacenza vetri
|
|
new StockMovModel { StockMovID = 4, StockStatusId = 4, QtyRec = 1, MovCod = "CAR", UserId = "samuele.locatelli@egalware.com", Note = "DEMO" },
|
|
new StockMovModel { StockMovID = 5, StockStatusId = 5, QtyRec = 10, MovCod = "CAR", UserId = "samuele.locatelli@egalware.com", Note = "DEMO" },
|
|
new StockMovModel { StockMovID = 6, StockStatusId = 6, QtyRec = 1, MovCod = "CAR", UserId = "samuele.locatelli@egalware.com", Note = "DEMO" },
|
|
|
|
// giacenza vernici
|
|
new StockMovModel { StockMovID = 7, StockStatusId = 7, QtyRec = 50, MovCod = "CAR", UserId = "samuele.locatelli@egalware.com", Note = "DEMO" },
|
|
|
|
// giacenza ferramenta
|
|
new StockMovModel { StockMovID = 8, StockStatusId = 8, QtyRec = 1, MovCod = "CAR", UserId = "samuele.locatelli@egalware.com", Note = "DEMO" },
|
|
new StockMovModel { StockMovID = 9, StockStatusId = 9, QtyRec = 1, MovCod = "CAR", UserId = "samuele.locatelli@egalware.com", Note = "DEMO" },
|
|
new StockMovModel { StockMovID = 10, StockStatusId = 10, QtyRec = 1, MovCod = "CAR", UserId = "samuele.locatelli@egalware.com", Note = "DEMO" }
|
|
);
|
|
|
|
// init JobDrivers
|
|
modelBuilder.Entity<JobDriverModel>().HasData(
|
|
// Risorsa principale di calcolo produttività/costi
|
|
new JobDriverModel() { JobDriverID = 1, Name = "LeadTime", Descript = "Tempo netto di lavorazione, in minuti" },
|
|
new JobDriverModel() { JobDriverID = 2, Name = "FlowTime", Descript = "Tempo di attraversamento complessivo del processo, in giorni lavorativi" },
|
|
new JobDriverModel() { JobDriverID = 3, Name = "NumArticoli", Descript = "Numero Articoli/Prodotti" },
|
|
new JobDriverModel() { JobDriverID = 4, Name = "NumItems", Descript = "Numero Items per Articolo" },
|
|
new JobDriverModel() { JobDriverID = 5, Name = "WorkCompScore", Descript = "Indice complex lavorazioni" },
|
|
new JobDriverModel() { JobDriverID = 6, Name = "MaterialCompScore", Descript = "Indice complex materiali" },
|
|
new JobDriverModel() { JobDriverID = 7, Name = "GeneralScore", Descript = "Indice complex generale" }
|
|
);
|
|
|
|
// init cost drivers
|
|
modelBuilder.Entity<CostDriverModel>().HasData(
|
|
// Risorsa principale di calcolo produttività/costi
|
|
new CostDriverModel() { CostDriverID = 1, Name = "WorkHour", Unit = "h", Descript = "Ore lavorate per step/fase" },
|
|
new CostDriverModel() { CostDriverID = 2, Name = "Meter", Unit = "m", Descript = "Metri prodotti per step/fase" },
|
|
new CostDriverModel() { CostDriverID = 3, Name = "Unit", Unit = "#", Descript = "Numero unità prodotte (lavorate) per step/fase" }
|
|
);
|
|
|
|
|
|
// inizializzazione risorse
|
|
modelBuilder.Entity<ResourceModel>().HasData(
|
|
new ResourceModel { ResourceID = 1, Name = "Sezionatrice", FixedCost = 12000, VariableCost = 6000, OverHeadCost = 5000, CostDriverID = 1, CostDriverBudget = 220 * 4, LaborCost = 30, OverHeadPerc = 0.15M, EBTPerc = 0.15M },
|
|
new ResourceModel { ResourceID = 2, Name = "Linea SAOMAD WoodPecker Just 3500", FixedCost = 100000, VariableCost = 30000, OverHeadCost = 15000, CostDriverID = 1, CostDriverBudget = 220 * 8, LaborCost = 40, OverHeadPerc = 0.15M, EBTPerc = 0.15M },
|
|
new ResourceModel { ResourceID = 3, Name = "Linea Pantografo", FixedCost = 24000, VariableCost = 6000, OverHeadCost = 5000, CostDriverID = 1, CostDriverBudget = 220 * 8, LaborCost = 35, OverHeadPerc = 0.15M, EBTPerc = 0.15M },
|
|
new ResourceModel { ResourceID = 4, Name = "Stazione Verniciatura", FixedCost = 24000, VariableCost = 6000, OverHeadCost = 3000, CostDriverID = 1, CostDriverBudget = 220 * 4, LaborCost = 30, OverHeadPerc = 0.15M, EBTPerc = 0.15M },
|
|
new ResourceModel { ResourceID = 5, Name = "Verniciatura Manuale", FixedCost = 6000, VariableCost = 2000, OverHeadCost = 3000, CostDriverID = 1, CostDriverBudget = 220 * 1, LaborCost = 30, OverHeadPerc = 0.15M, EBTPerc = 0.15M },
|
|
new ResourceModel { ResourceID = 6, Name = "Montaggio Manuale", FixedCost = 500, VariableCost = 500, OverHeadCost = 500, CostDriverID = 1, CostDriverBudget = 220 * 8 * 2, LaborCost = 30, OverHeadPerc = 0.15M, EBTPerc = 0.15M },
|
|
new ResourceModel { ResourceID = 7, Name = "Installatore", FixedCost = 0, VariableCost = 3000, OverHeadCost = 0, CostDriverID = 1, CostDriverBudget = 220 * 8 * 2, LaborCost = 40, OverHeadPerc = 0.15M, EBTPerc = 0.15M },
|
|
new ResourceModel { ResourceID = 8, Name = "Serramento (media annua globale)", FixedCost = 200000, VariableCost = 200000, OverHeadCost = 100000, CostDriverID = 3, CostDriverBudget = 220 * 10, LaborCost = 200000, OverHeadPerc = 0.15M, EBTPerc = 0.15M }
|
|
);
|
|
|
|
// inizializzazione fasi
|
|
modelBuilder.Entity<PhaseModel>().HasData(
|
|
new PhaseModel { PhaseID = 1, Name = "Taglio", Description = "Taglio tronchetti" },
|
|
new PhaseModel { PhaseID = 2, Name ="Lavoazione CNC", Description="Lavorazione pezzi serramento" },
|
|
new PhaseModel { PhaseID = 3, Name = "Verniciatura", Description="Verniciatura" },
|
|
new PhaseModel { PhaseID = 4, Name = "Montaggio" , Description = "Assemblaggio completo" },
|
|
new PhaseModel { PhaseID = 5, Name = "Ferramenta" , Description = "Assemblaggio Ferramenta" },
|
|
new PhaseModel { PhaseID = 6, Name = "Installazione" , Description = "Installazione e posa in opera" },
|
|
new PhaseModel { PhaseID = 7, Name = "Produzione Completa" , Description = "Produzione Completa: Fase Unica complessiva" }
|
|
|
|
);
|
|
|
|
// inizializzazione cicli di lavoro
|
|
modelBuilder.Entity<JobTaskModel>().HasData(
|
|
new JobTaskModel { JobID = 1, Description = "Rivendita / servizi", Index = 4, Lock = true },
|
|
new JobTaskModel { JobID = 2, Description = "Serramento Legno - Ciclo Completo con installazione", Index = 3, Lock = true },
|
|
new JobTaskModel { JobID = 3, Description = "Realizzazione Trave", Index = 5, Lock = true },
|
|
new JobTaskModel { JobID = 4, Description = "Realizzazione Cabinet", Index = 6, Lock = true },
|
|
new JobTaskModel { JobID = 5, Description = "Realizzazione Parete", Index = 7, Lock = true },
|
|
new JobTaskModel { JobID = 6, Description = "Serramento - ciclo base", Index = 1, Lock = true },
|
|
new JobTaskModel { JobID = 7, Description = "Serramento - ciclo intermedio", Index = 2, Lock = true }
|
|
);
|
|
|
|
// init JobDriverConfig
|
|
modelBuilder.Entity<JobDriverConfigModel>().HasData(
|
|
new JobDriverConfigModel() { JobDriverConfID = 1, JobID = 6, JobDriverID = 3, CostDriverID = 3, Note = "Numero prodotti", Intercept = 0, Regress = 1 },
|
|
new JobDriverConfigModel() { JobDriverConfID = 2, JobID = 7, JobDriverID = 3, CostDriverID = 3, Note = "Numero prodotti", Intercept = 0, Regress = 1 },
|
|
new JobDriverConfigModel() { JobDriverConfID = 3, JobID = 7, JobDriverID = 1, CostDriverID = 1, Note = "Ore Equivalenti", Intercept = 0, Regress = 1.0 / 60.0, DefaultVal = 5 },
|
|
new JobDriverConfigModel() { JobDriverConfID = 4, JobID = 2, JobDriverID = 3, CostDriverID = 3, Note = "Numero prodotti", Intercept = 0, Regress = 1 },
|
|
new JobDriverConfigModel() { JobDriverConfID = 5, JobID = 2, JobDriverID = 1, CostDriverID = 1, Note = "Ore Equivalenti", Intercept = 0, Regress = 1.0 / 60.0, DefaultVal = 5 },
|
|
new JobDriverConfigModel() { JobDriverConfID = 6, JobID = 2, JobDriverID = 4, CostDriverID = 1, Note = "Ore Extra per complex Articolo (1 min/pezzo)", Intercept = 0, Regress = 1.0 / 60.0, DefaultVal = 8 }
|
|
);
|
|
|
|
|
|
// init righe ciclo (fasi di ciclo)
|
|
modelBuilder.Entity<JobStepModel>().HasData(
|
|
// per fare 1 finestra singola/semplice taglio 4 tronchetti telaio + 4 tronchetti finestra, considero 1 perché mi arriva dal sistema preventivo/motore
|
|
new JobStepModel { JobStepID = 1, JobID = 2, Index = 1, PhaseID = 1, ProductivityRate = 1M, ResourceID = 1, Description = "Preparazione Tronchetti" },
|
|
// taglio profilo su linea saomad, considero 1 perché mi arriva dal sistema preventivo/motore
|
|
new JobStepModel { JobStepID = 2, JobID = 2, Index = 2, PhaseID = 2, ProductivityRate = 1M, ResourceID = 2, Description = "Taglio profilo" },
|
|
// verniciatura automatica, considero 1 perché mi arriva dal sistema preventivo/motore
|
|
new JobStepModel { JobStepID = 3, JobID = 2, Index = 3, PhaseID = 3, ProductivityRate = 1M, ResourceID = 4, Description = "Verniciatura" },
|
|
// assemblaggio
|
|
new JobStepModel { JobStepID = 4, JobID = 2, Index = 4, PhaseID = 4, ProductivityRate = 1M, ResourceID = 6, Description = "Assemblaggio Serramento" },
|
|
// installazione
|
|
new JobStepModel { JobStepID = 5, JobID = 2, Index = 5, PhaseID = 6, ProductivityRate = 1M, ResourceID = 7, Description = "Installazione cliente" },
|
|
// step unico semplificato x ciclo 6
|
|
new JobStepModel { JobStepID = 6, JobID = 6, Index = 1, PhaseID = 7, ProductivityRate = 1M, ResourceID = 8, Description = "Produzione Serramento (media annua)" }
|
|
);
|
|
|
|
// init item righe ciclo (articoli + prodotti delle fasi del ciclo)
|
|
modelBuilder.Entity<JobStepItemModel>().HasData(
|
|
// eventuale scarto del materiale tra grezzo e finito--> porta ad un numero >1 (QUI NON USATO, ho il valore calcolato dal motore)
|
|
new JobStepItemModel { JobStepItemID = 1, JobStepID = 1, Index = 1, ItemID = 1, Qty = 1, Description = "Grezzo legno abete" },
|
|
// 1/10 litro di vernice per metro lineare prodotto
|
|
new JobStepItemModel { JobStepItemID = 2, JobStepID = 3, Index = 2, ItemID = 8, Qty = 0.1, Description = "Vernice trasparente standard 1L" },
|
|
// uso un KIT intero (vs specifico n prodotti singoli) x questo modello; se dal preventivo arrivano n pezzi spcifici, qui li esplodiamo
|
|
new JobStepItemModel { JobStepItemID = 3, JobStepID = 4, Index = 3, ItemID = 9, Qty = 1, Description = "Ferramenta AGB - rif. AGFD.00000.00000" }
|
|
);
|
|
|
|
|
|
// JWD finestra cVetro Fisso / Cieca
|
|
string jwdVetroFisso = "{\"ProfilePath\":\"Profilo78\",\"Material\":\"Abete\",\"ColorMaterial\":\"White\",\"Glass\":\"Vetro BE 2S 4/12/4\",\"AreaList\":[{\"Shape\":\"RECTANGLE\",\"DimensionList\":[{\"nIndex\":1,\"sName\":\"Width\",\"dValue\":800.0},{\"nIndex\":2,\"sName\":\"Height\",\"dValue\":1200.0}],\"JointList\":[{\"nIndex\":1,\"JointType\":\"FULL_H\"},{\"nIndex\":2,\"JointType\":\"FULL_H\"},{\"nIndex\":3,\"JointType\":\"FULL_H\"},{\"nIndex\":4,\"JointType\":\"FULL_H\"}],\"BottomRail\":false,\"BottomRailQty\":0,\"GroupId\":1,\"AreaList\":[{\"FillType\":\"GLASS\",\"GroupId\":4,\"AreaList\":[],\"AreaType\":\"FILL\"}],\"AreaType\":\"FRAME\"}]}";
|
|
|
|
// JWD finestra 1 Anta 800x1200
|
|
string jwdAntaSingola = "{\"ProfilePath\":\"Profilo78\",\"Material\":\"Abete\",\"ColorMaterial\":\"White\",\"Glass\":\"Vetro BE 2S 4/12/4\",\"AreaList\":[{\"Shape\":\"RECTANGLE\",\"DimensionList\":[{\"nIndex\":1,\"sName\":\"Width\",\"dValue\":800.0},{\"nIndex\":2,\"sName\":\"Height\",\"dValue\":1200.0}],\"JointList\":[{\"nIndex\":1,\"JointType\":\"FULL_H\"},{\"nIndex\":2,\"JointType\":\"FULL_H\"},{\"nIndex\":3,\"JointType\":\"FULL_H\"},{\"nIndex\":4,\"JointType\":\"FULL_H\"}],\"BottomRail\":false,\"BottomRailQty\":0,\"GroupId\":1,\"AreaList\":[{\"bIsSashVertical\":true,\"SashList\":[{\"nSashId\":1,\"OpeningType\":\"TILTTURN_LEFT\",\"bHasHandle\":true,\"dDimension\":100.0}],\"SashType\":\"NULL\",\"JointList\":[{\"nIndex\":1,\"JointType\":\"FULL_H\"},{\"nIndex\":2,\"JointType\":\"FULL_H\"},{\"nIndex\":3,\"JointType\":\"FULL_H\"},{\"nIndex\":4,\"JointType\":\"FULL_H\"}],\"BottomRail\":false,\"BottomRailQty\":0,\"Hardware\":\"000558\",\"GroupId\":2,\"AreaList\":[{\"FillType\":\"GLASS\",\"GroupId\":3,\"AreaList\":[],\"AreaType\":\"FILL\"}],\"AreaType\":\"SASH\"}],\"AreaType\":\"FRAME\"}]}";
|
|
|
|
// inizializzazione dei valori di default x SellingItem
|
|
modelBuilder.Entity<SellingItemModel>().HasData(
|
|
new SellingItemModel { SellingItemID = 1, IsService = false, Description = "Finestra Anta Singola", Cost = 500, Margin = 0.2, JobID = 2, SerStruct = jwdAntaSingola, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW },
|
|
new SellingItemModel { SellingItemID = 2, IsService = false, Description = "Finestra Vetro Fisso ", Cost = 300, Margin = 0.2, JobID = 2, SerStruct = jwdVetroFisso, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW },
|
|
new SellingItemModel { SellingItemID = 3, IsService = false, Description = "Persiana anta singola", Cost = 150, Margin = 0.1, JobID = 1, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW },
|
|
new SellingItemModel { SellingItemID = 4, IsService = true, Description = "Installazione", Cost = 200, Margin = 0.3, JobID = 1, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW },
|
|
new SellingItemModel { SellingItemID = 5, IsService = false, Description = "Trave lamellare", Cost = 1000, Margin = 0.3, JobID = 3, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.BEAM },
|
|
new SellingItemModel { SellingItemID = 6, IsService = false, Description = "Cabinet", Cost = 500, Margin = 0.3, JobID = 4, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.CABINET },
|
|
new SellingItemModel { SellingItemID = 7, IsService = false, Description = "Parete", Cost = 2000, Margin = 0.3, JobID = 5, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WALL }
|
|
);
|
|
|
|
// inizializzazione dei valori di default x Offer
|
|
modelBuilder.Entity<OfferModel>().HasData(
|
|
new OfferModel { OfferID = 1, RefYear = 2024, RefNum = 1, RefRev = 1, Description = "Offerta per tre serramenti", CustomerID = 2, DealerID = 2, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW },
|
|
new OfferModel { OfferID = 2, RefYear = 2024, RefNum = 2, RefRev = 1, Description = "Offerta BEAM", CustomerID = 2, DealerID = 2, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.BEAM },
|
|
new OfferModel { OfferID = 3, RefYear = 2024, RefNum = 3, RefRev = 1, Description = "Offerta Cabinet", CustomerID = 2, DealerID = 2, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.CABINET },
|
|
new OfferModel { OfferID = 4, RefYear = 2024, RefNum = 4, RefRev = 1, Description = "Offerta Wall", CustomerID = 2, DealerID = 2, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WALL }
|
|
//new OfferModel { OfferID = 2, RefYear = 2025, RefNum = 2, RefRev = 1, Name = "Offerta per un serramento + installazione", CustomerID = 1, DealerID = 1 },
|
|
//new OfferModel { OfferID = 3, RefYear = 2025, RefNum = 3, RefRev = 1, Name = "Offerta per tre serramenti", CustomerID = 2, DealerID = 1 },
|
|
//new OfferModel { OfferID = 5, RefYear = 2025, RefNum = 4, RefRev = 2, Name = "Offerta per cinque serramenti + installazione", CustomerID = 3, DealerID = 2 }
|
|
);
|
|
|
|
|
|
// inizializzazione dei valori di default x Offerta 1 = WINDOW
|
|
modelBuilder.Entity<OfferRowModel>().HasData(
|
|
new OfferRowModel { OfferRowID = 2, OfferID = 1, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, OfferRowUID = $"SOR.{DateTime.Today:yy}.{2:X8}", Inserted = DateTime.Now, Modified = DateTime.Now, BomCost = 900, BomPrice = 950, SellingItemID = 1, Qty = 3, RowNum = 1, SerStruct = jwdAntaSingola, Note = "Finestra Anta Singola 2025", ItemSteps = "{}", BomOk = true, ItemOk = true },
|
|
new OfferRowModel { OfferRowID = 1, OfferID = 1, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, OfferRowUID = $"SOR.{DateTime.Today:yy}.{1:X8}", Inserted = DateTime.Now, Modified = DateTime.Now, BomCost = 900, BomPrice = 950, SellingItemID = 2, Qty = 3, RowNum = 2, SerStruct = jwdVetroFisso, Note = "Finestra Vetro Fisso 2025", ItemSteps = "{}", BomOk = true, ItemOk = true },
|
|
new OfferRowModel { OfferRowID = 3, OfferID = 1, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, OfferRowUID = $"SOR.{DateTime.Today:yy}.{3:X8}", Inserted = DateTime.Now, Modified = DateTime.Now, BomCost = 160, BomPrice = 200, SellingItemID = 3, Qty = 3, RowNum = 3, SerStruct = "{}", Note = "Persiana per Finestra anta singola 2025", ItemSteps = "{}", BomOk = true, ItemOk = true },
|
|
new OfferRowModel { OfferRowID = 4, OfferID = 1, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WINDOW, OfferRowUID = $"SOR.{DateTime.Today:yy}.{4:X8}", Inserted = DateTime.Now, Modified = DateTime.Now, BomCost = 200, BomPrice = 250, SellingItemID = 4, Qty = 3, RowNum = 4, SerStruct = "{}", Note = "Installazione serramento", ItemSteps = "{}", BomOk = true, ItemOk = true }
|
|
);
|
|
|
|
// inizializzazione dei valori di default x Offerta 2 = BEAM
|
|
modelBuilder.Entity<OfferRowModel>().HasData(
|
|
new OfferRowModel { OfferRowID = 5, OfferID = 2, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.BEAM, OfferRowUID = $"SOR.{DateTime.Today:yy}.{5:X8}", Inserted = DateTime.Now, Modified = DateTime.Now, BomCost = 800, BomPrice = 1150, SellingItemID = 5, Qty = 10, RowNum = 1, SerStruct = "", Note = "Demo file 01", ItemSteps = "{}", BomOk = true, ItemOk = true },
|
|
new OfferRowModel { OfferRowID = 6, OfferID = 2, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.BEAM, OfferRowUID = $"SOR.{DateTime.Today:yy}.{6:X8}", Inserted = DateTime.Now, Modified = DateTime.Now, BomCost = 600, BomPrice = 950, SellingItemID = 5, Qty = 4, RowNum = 1, SerStruct = "", Note = "Demo file 02", ItemSteps = "{}", BomOk = true, ItemOk = true }
|
|
);
|
|
|
|
// inizializzazione dei valori di default x Offerta 3 = CABINET
|
|
modelBuilder.Entity<OfferRowModel>().HasData(
|
|
new OfferRowModel { OfferRowID = 7, OfferID = 3, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WALL, OfferRowUID = $"SOR.{DateTime.Today:yy}.{7:X8}", Inserted = DateTime.Now, Modified = DateTime.Now, BomCost = 200, BomPrice = 250, SellingItemID = 6, Qty = 4, RowNum = 1, SerStruct = "", Note = "Demo file 01", ItemSteps = "{}", BomOk = true, ItemOk = true },
|
|
new OfferRowModel { OfferRowID = 8, OfferID = 3, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.WALL, OfferRowUID = $"SOR.{DateTime.Today:yy}.{8:X8}", Inserted = DateTime.Now, Modified = DateTime.Now, BomCost = 50, BomPrice = 80, SellingItemID = 6, Qty = 12, RowNum = 1, SerStruct = "", Note = "Demo file 02", ItemSteps = "{}", BomOk = true, ItemOk = true }
|
|
);
|
|
|
|
// inizializzazione dei valori di default x Offerta 4 = WALL
|
|
modelBuilder.Entity<OfferRowModel>().HasData(
|
|
new OfferRowModel { OfferRowID = 9, OfferID = 4, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.CABINET, OfferRowUID = $"SOR.{DateTime.Today:yy}.{9:X8}", Inserted = DateTime.Now, Modified = DateTime.Now, BomCost = 800, BomPrice = 1150, SellingItemID = 7, Qty = 6, RowNum = 1, SerStruct = "", Note = "Demo file 01", ItemSteps = "{}", BomOk = true, ItemOk = true },
|
|
new OfferRowModel { OfferRowID = 10, OfferID = 4, Envir = EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS.CABINET, OfferRowUID = $"SOR.{DateTime.Today:yy}.{10:X8}", Inserted = DateTime.Now, Modified = DateTime.Now, BomCost = 600, BomPrice = 950, SellingItemID = 7, Qty = 4, RowNum = 1, SerStruct = "", Note = "Demo file 02", ItemSteps = "{}", BomOk = true, ItemOk = true }
|
|
);
|
|
|
|
}
|
|
|
|
#endregion Public Methods
|
|
}
|
|
} |