using System; using System.Collections.Generic; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.Extensions.Configuration; using NLog; using StockMan.Data.DbModels; namespace StockMan.Data { public partial class StockManContext : DbContext { private static Logger Log = LogManager.GetCurrentClassLogger(); private IConfiguration? _configuration; /// /// Indispensabile x prima generazione migrations EFCore /// [Obsolete("This constructor should never be used directly, and is only needed to generate entityframework stuff. Connection string can be adapted as pleased.")] public StockManContext() { } public StockManContext(DbContextOptions options) : base(options) { } public StockManContext(IConfiguration configuration) { _configuration = configuration; } public virtual DbSet DbSetCountersList { get; set; } = null!; public virtual DbSet DbSetItem { get; set; } = null!; public virtual DbSet DbSetItemFamily { get; set; } = null!; public virtual DbSet DbSetItemFlux { get; set; } = null!; public virtual DbSet DbSetItemStock { get; set; } = null!; public virtual DbSet DbSetLocType { get; set; } = null!; public virtual DbSet DbSetLocation { get; set; } = null!; public virtual DbSet DbSetMovType { get; set; } = null!; public virtual DbSet DbSetOperator { get; set; } = null!; public virtual DbSet DbSetPermessi { get; set; } = null!; //public virtual DbSet DbSetVItemFlux2Save { get; set; } = null!; //public virtual DbSet DbSetVItemFluxByLoc2Save { get; set; } = null!; //public virtual DbSet DbSetVItemStockAct { get; set; } = null!; //public virtual DbSet DbSetVItemStockStatus { get; set; } = null!; public virtual DbSet DbSetVLocationVal { get; set; } = null!; protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { string connString = _configuration.GetConnectionString("StockMan.DB"); if (!string.IsNullOrEmpty(connString)) { optionsBuilder.UseSqlServer(connString); } else { optionsBuilder.UseSqlServer("Server=SQL2016DEV;Database=StockMan;Trusted_Connection=True;"); } } } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(entity => { entity.Property(e => e.Id) .HasMaxLength(50) .IsUnicode(false) .HasColumnName("ID"); }); modelBuilder.Entity(entity => { entity.HasComment("valore corrente item"); entity.Property(e => e.Id).HasColumnName("ID"); entity.Property(e => e.CodExt) .HasMaxLength(250) .HasDefaultValueSql("('')"); entity.Property(e => e.CodInt) .HasMaxLength(50) .HasDefaultValueSql("('')"); entity.Property(e => e.CurrValue) .HasColumnType("decimal(18, 6)") .HasComment("valore unitario item"); entity.Property(e => e.Descr) .HasMaxLength(250) .HasDefaultValueSql("('')"); entity.Property(e => e.DescrExt) .HasMaxLength(250) .HasDefaultValueSql("('')"); entity.Property(e => e.ItemFamilyId) .HasMaxLength(50) .HasColumnName("ItemFamilyID") .HasDefaultValueSql("('')"); entity.Property(e => e.QtaBatch).HasDefaultValueSql("((1))"); entity.Property(e => e.QtaCurr) .HasComputedColumnSql("([dbo].[f_qtaCurrItemConf]([ID]))", false) .HasComment(""); entity.Property(e => e.QtaPend) .HasComputedColumnSql("([dbo].[f_qtaCurrItem]([ID]))", false) .HasComment(""); entity.Property(e => e.Um) .HasMaxLength(50) .HasColumnName("UM") .HasDefaultValueSql("('PZ')"); entity.HasOne(d => d.ItemFamily) .WithMany(p => p.Items) .HasForeignKey(d => d.ItemFamilyId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_Item_ItemFamily"); }); modelBuilder.Entity(entity => { entity.Property(e => e.Id) .HasMaxLength(50) .HasColumnName("ID"); entity.Property(e => e.Descr) .HasMaxLength(50) .HasDefaultValueSql("('')"); entity.Property(e => e.NumItems).HasComputedColumnSql("([dbo].[f_numItemFamily]([ID]))", false); }); modelBuilder.Entity(entity => { entity.HasComment(""); entity.Property(e => e.Id).HasColumnName("ID"); entity.Property(e => e.CodDoc) .HasMaxLength(250) .HasDefaultValueSql("('')"); entity.Property(e => e.DtExport) .HasColumnType("date") .HasColumnName("dtExport") .HasComment("data export verso ERP"); entity.Property(e => e.DtMov) .HasColumnType("date") .HasColumnName("dtMov"); entity.Property(e => e.ExtLocationId) .HasMaxLength(50) .HasColumnName("ExtLocationID") .HasDefaultValueSql("(N'ND')") .HasComment("posizione esterna fornitore/cliente"); entity.Property(e => e.ItemId).HasColumnName("ItemID"); entity.Property(e => e.LocationId) .HasMaxLength(50) .HasColumnName("LocationID") .HasDefaultValueSql("('')") .HasComment("posizione stock magazzino"); entity.Property(e => e.ModOperatorId) .HasMaxLength(50) .HasColumnName("ModOperatorID") .HasDefaultValueSql("(N'ND')"); entity.Property(e => e.MovTypeId) .HasMaxLength(50) .HasColumnName("MovTypeID") .HasDefaultValueSql("('ND')"); entity.Property(e => e.Note) .HasMaxLength(250) .HasDefaultValueSql("('')"); entity.Property(e => e.OperatorId) .HasMaxLength(50) .HasColumnName("OperatorID") .HasDefaultValueSql("(N'ND')"); entity.Property(e => e.Qta).HasDefaultValueSql("((1))"); entity.Property(e => e.TotValue) .HasColumnType("decimal(18, 6)") .HasComment("valore unitario item"); entity.Property(e => e.UnitVal) .HasColumnType("decimal(29, 17)") .HasComputedColumnSql("(isnull([TotValue]/case when isnull([Qta],(1))=(0) then (1) else isnull([Qta],(1)) end,(0)))", false); entity.HasOne(d => d.ExtLocation) .WithMany(p => p.ItemFluxExtLocations) .HasForeignKey(d => d.ExtLocationId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_ItemFlux_Location1"); entity.HasOne(d => d.Item) .WithMany(p => p.ItemFluxes) .HasForeignKey(d => d.ItemId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_ItemFlux_Item"); entity.HasOne(d => d.Location) .WithMany(p => p.ItemFluxLocations) .HasForeignKey(d => d.LocationId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_ItemFlux_Location"); entity.HasOne(d => d.ModOperator) .WithMany(p => p.ItemFluxModOperators) .HasForeignKey(d => d.ModOperatorId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_ItemFlux_Operator1"); entity.HasOne(d => d.MovType) .WithMany(p => p.ItemFluxes) .HasForeignKey(d => d.MovTypeId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_StockMov_MovType"); entity.HasOne(d => d.Operator) .WithMany(p => p.ItemFluxOperators) .HasForeignKey(d => d.OperatorId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_ItemFlux_Operator"); }); modelBuilder.Entity(entity => { entity.Property(e => e.Id).HasColumnName("ID"); entity.Property(e => e.DtLastUpd) .HasColumnType("datetime") .HasColumnName("dtLastUpd") .HasDefaultValueSql("(getdate())") .HasComment("data-ora ultimo aggiornamento"); entity.Property(e => e.ItemId).HasColumnName("ItemID"); entity.Property(e => e.LocationId) .HasMaxLength(50) .HasColumnName("LocationID") .HasDefaultValueSql("('')"); entity.Property(e => e.Note).HasDefaultValueSql("('')"); entity.HasOne(d => d.ItemNav) .WithMany(p => p.ItemStocks) .HasForeignKey(d => d.ItemId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_Stock_Items"); entity.HasOne(d => d.Location) .WithMany(p => p.ItemStocks) .HasForeignKey(d => d.LocationId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_Stock_Location1"); }); modelBuilder.Entity(entity => { entity.Property(e => e.Id) .HasMaxLength(50) .IsUnicode(false) .HasColumnName("ID"); entity.Property(e => e.Descr) .HasMaxLength(250) .HasDefaultValueSql("('')"); }); modelBuilder.Entity(entity => { entity.Property(e => e.Id) .HasMaxLength(50) .HasColumnName("ID") .HasDefaultValueSql("('')"); entity.Property(e => e.Descr) .HasMaxLength(50) .HasDefaultValueSql("('')"); entity.Property(e => e.LocTypeId) .HasMaxLength(50) .IsUnicode(false) .HasColumnName("LocTypeID") .HasDefaultValueSql("('')"); entity.HasOne(d => d.LocTypeNav) .WithMany(p => p.Locations) .HasForeignKey(d => d.LocTypeId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("FK_Location_LocType1"); }); modelBuilder.Entity(entity => { entity.Property(e => e.Id) .HasMaxLength(50) .HasColumnName("ID"); entity.Property(e => e.CssClass) .HasMaxLength(50) .HasDefaultValueSql("('')"); entity.Property(e => e.Descr) .HasMaxLength(250) .HasDefaultValueSql("('')"); }); modelBuilder.Entity(entity => { entity.Property(e => e.Id) .HasMaxLength(50) .HasColumnName("ID"); entity.Property(e => e.CodExt) .HasMaxLength(50) .HasDefaultValueSql("('')"); entity.Property(e => e.FirstName) .HasMaxLength(50) .HasDefaultValueSql("('')"); entity.Property(e => e.LastName) .HasMaxLength(50) .HasDefaultValueSql("('')"); }); modelBuilder.Entity(entity => { entity.HasNoKey(); entity.ToView("vLocationVal"); entity.Property(e => e.LocationId) .HasMaxLength(50) .HasColumnName("LocationID"); entity.Property(e => e.TotVal).HasColumnType("decimal(38, 6)"); }); //modelBuilder.Entity(entity => //{ // entity.HasNoKey(); // entity.ToView("vItemFlux2Save"); // entity.Property(e => e.ItemId).HasColumnName("ItemID"); // entity.Property(e => e.TotValCar).HasColumnType("decimal(38, 6)"); //}); //modelBuilder.Entity(entity => //{ // entity.HasNoKey(); // entity.ToView("vItemFluxByLoc2Save"); // entity.Property(e => e.ItemId).HasColumnName("ItemID"); // entity.Property(e => e.LocationId) // .HasMaxLength(50) // .HasColumnName("LocationID"); // entity.Property(e => e.TotVal).HasColumnType("decimal(38, 6)"); //}); //modelBuilder.Entity(entity => //{ // entity.HasNoKey(); // entity.ToView("vItemStockAct"); // entity.Property(e => e.ItemId).HasColumnName("ItemID"); // entity.Property(e => e.LocationId) // .HasMaxLength(50) // .HasColumnName("LocationID"); //}); //modelBuilder.Entity(entity => //{ // entity.HasNoKey(); // entity.ToView("vItemStockStatus"); // entity.Property(e => e.CodExt).HasMaxLength(250); // entity.Property(e => e.CodInt).HasMaxLength(50); // entity.Property(e => e.Descr).HasMaxLength(250); // entity.Property(e => e.DescrExt).HasMaxLength(250); // entity.Property(e => e.Id).HasColumnName("ID"); // entity.Property(e => e.ItemFamilyId) // .HasMaxLength(50) // .HasColumnName("ItemFamilyID"); // entity.Property(e => e.ItemId).HasColumnName("ItemID"); // entity.Property(e => e.LocationDesc).HasMaxLength(50); // entity.Property(e => e.LocationId) // .HasMaxLength(50) // .HasColumnName("LocationID"); // entity.Property(e => e.ValConf).HasColumnType("decimal(18, 6)"); // entity.Property(e => e.ValNew).HasColumnType("decimal(38, 6)"); // entity.Property(e => e.ValPend).HasColumnType("decimal(38, 6)"); //}); OnModelCreatingPartial(modelBuilder); } partial void OnModelCreatingPartial(ModelBuilder modelBuilder); } }