Files
StockMan/StockMan.Data/StockManContext.cs
2023-02-27 16:51:41 +01:00

437 lines
16 KiB
C#

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;
/// <summary>
/// Indispensabile x prima generazione migrations EFCore
/// </summary>
[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<StockManContext> options) : base(options)
{
}
public StockManContext(IConfiguration configuration)
{
_configuration = configuration;
}
public virtual DbSet<CountersListModel> DbSetCountersList { get; set; } = null!;
public virtual DbSet<ItemModel> DbSetItem { get; set; } = null!;
public virtual DbSet<ItemFamilyModel> DbSetItemFamily { get; set; } = null!;
public virtual DbSet<ItemFluxModel> DbSetItemFlux { get; set; } = null!;
public virtual DbSet<ItemStockModel> DbSetItemStock { get; set; } = null!;
public virtual DbSet<LocTypeModel> DbSetLocType { get; set; } = null!;
public virtual DbSet<LocationModel> DbSetLocation { get; set; } = null!;
public virtual DbSet<MovTypeModel> DbSetMovType { get; set; } = null!;
public virtual DbSet<OperatorModel> DbSetOperator { get; set; } = null!;
public virtual DbSet<PermessiModel> DbSetPermessi { get; set; } = null!;
//public virtual DbSet<VItemFlux2Save> DbSetVItemFlux2Save { get; set; } = null!;
//public virtual DbSet<VItemFluxByLoc2Save> DbSetVItemFluxByLoc2Save { get; set; } = null!;
//public virtual DbSet<VItemStockAct> DbSetVItemStockAct { get; set; } = null!;
//public virtual DbSet<VItemStockStatus> DbSetVItemStockStatus { get; set; } = null!;
public virtual DbSet<VLocationValModel> 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<CountersListModel>(entity =>
{
entity.Property(e => e.Id)
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnName("ID");
});
modelBuilder.Entity<ItemModel>(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<ItemFamilyModel>(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<ItemFluxModel>(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<ItemStockModel>(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<LocTypeModel>(entity =>
{
entity.Property(e => e.Id)
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnName("ID");
entity.Property(e => e.Descr)
.HasMaxLength(250)
.HasDefaultValueSql("('')");
});
modelBuilder.Entity<LocationModel>(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<MovTypeModel>(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<OperatorModel>(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<VLocationValModel>(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<VItemFlux2Save>(entity =>
//{
// entity.HasNoKey();
// entity.ToView("vItemFlux2Save");
// entity.Property(e => e.ItemId).HasColumnName("ItemID");
// entity.Property(e => e.TotValCar).HasColumnType("decimal(38, 6)");
//});
//modelBuilder.Entity<VItemFluxByLoc2Save>(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<VItemStockAct>(entity =>
//{
// entity.HasNoKey();
// entity.ToView("vItemStockAct");
// entity.Property(e => e.ItemId).HasColumnName("ItemID");
// entity.Property(e => e.LocationId)
// .HasMaxLength(50)
// .HasColumnName("LocationID");
//});
//modelBuilder.Entity<VItemStockStatus>(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);
}
}