437 lines
16 KiB
C#
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);
|
|
}
|
|
}
|