diff --git a/TecniStamp/TecniStamp.Domain/CommessaPosizioneLavorazione.cs b/TecniStamp/TecniStamp.Domain/CommessaPosizioneLavorazione.cs new file mode 100644 index 0000000..6e2cebe --- /dev/null +++ b/TecniStamp/TecniStamp.Domain/CommessaPosizioneLavorazione.cs @@ -0,0 +1,28 @@ +using System.ComponentModel.DataAnnotations.Schema; +using TecniStamp.Domain.Base; + +namespace TecniStamp.Domain; + +public class CommessaPosizioneLavorazione : EntitaBase +{ + [ForeignKey(nameof(CommessaPosizione))] + public Guid? CommessaPosizioneId { get; set; } + public CommessaPosizione CommessaPosizione { get; set; } + + [ForeignKey(nameof(Lavorazione))] + public Guid? LavorazioneId { get; set; } + public Lavorazione Lavorazione { get; set; } + + [ForeignKey(nameof(Macchinario))] + public Guid? MacchinarioId { get; set; } + public Macchinario Macchinario { get; set; } + + public int PrimoTempoPresidiato { get; set; } + public int TempoNonPresidiato { get; set; } + public int SecondoTempoPresidiato { get; set; } + + public bool Spostabile { get; set; } + + public DateTime? DataInizioPrevista { get; set; } + public DateTime? DataFinePrevista { get; set; } +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp.Infrastructure/DAL/Context/TecniStampDbContext.cs b/TecniStamp/TecniStamp.Infrastructure/DAL/Context/TecniStampDbContext.cs index ae87f6a..ead61a3 100644 --- a/TecniStamp/TecniStamp.Infrastructure/DAL/Context/TecniStampDbContext.cs +++ b/TecniStamp/TecniStamp.Infrastructure/DAL/Context/TecniStampDbContext.cs @@ -12,6 +12,7 @@ public class TecniStampDbContext : OAServiceContext public DbSet Cliente { get; set; } public DbSet Commessa { get; set; } public DbSet ComessaPosizione { get; set; } + public DbSet CommessaPosizioneLavorazione { get; set; } public DbSet ComuneIstat { get; set; } public DbSet Feature { get; set; } public DbSet Lavorazione { get; set; } diff --git a/TecniStamp/TecniStamp.Infrastructure/Migrations/20260204074222_CommessaPosizioneLavorazione.Designer.cs b/TecniStamp/TecniStamp.Infrastructure/Migrations/20260204074222_CommessaPosizioneLavorazione.Designer.cs new file mode 100644 index 0000000..3bdabe9 --- /dev/null +++ b/TecniStamp/TecniStamp.Infrastructure/Migrations/20260204074222_CommessaPosizioneLavorazione.Designer.cs @@ -0,0 +1,1019 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using TecniStamp.Infrastructure.DAL.Context; + +#nullable disable + +namespace TecniStamp.Infrastructure.Migrations +{ + [DbContext(typeof(TecniStampDbContext))] + [Migration("20260204074222_CommessaPosizioneLavorazione")] + partial class CommessaPosizioneLavorazione + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "9.0.11") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("TecniStamp.Domain.Cliente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CAP") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Citta") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ComuneId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroCivico") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PartitaIva") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Provincia") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RagioneSociale") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Telefono") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Via") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("ComuneId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Cliente"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Commessa", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AnnoCommessa") + .HasColumnType("int"); + + b.Property("ClienteId") + .HasColumnType("uniqueidentifier"); + + b.Property("CodiceCommessa") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DataConsegna") + .HasColumnType("datetime2"); + + b.Property("DataConsegnaPrevista") + .HasColumnType("datetime2"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("DataOrdine") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OffertaNr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OrdineNr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OreTotali") + .HasColumnType("decimal(18,2)"); + + b.Property("RiferimentoCliente") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Stato") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ClienteId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Commessa"); + }); + + modelBuilder.Entity("TecniStamp.Domain.CommessaPosizione", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Categoria") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CommessaId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataConsegna") + .HasColumnType("datetime2"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("DataTerminePrevisto") + .HasColumnType("datetime2"); + + b.Property("Descrizione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("NumeroArticolo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroDisegno") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumeroFabb") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Posizione") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CommessaId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("ComessaPosizione"); + }); + + modelBuilder.Entity("TecniStamp.Domain.CommessaPosizioneLavorazione", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CommessaPosizioneId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataFinePrevista") + .HasColumnType("datetime2"); + + b.Property("DataInizioPrevista") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("LavorazioneId") + .HasColumnType("uniqueidentifier"); + + b.Property("MacchinarioId") + .HasColumnType("uniqueidentifier"); + + b.Property("PrimoTempoPresidiato") + .HasColumnType("int"); + + b.Property("SecondoTempoPresidiato") + .HasColumnType("int"); + + b.Property("Spostabile") + .HasColumnType("bit"); + + b.Property("TempoNonPresidiato") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CommessaPosizioneId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("LavorazioneId"); + + b.HasIndex("MacchinarioId"); + + b.ToTable("CommessaPosizioneLavorazione"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ComuneIstat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CodFisco") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Comune") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Istat") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Prefisso") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Provincia") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ProvinciaIstatId") + .HasColumnType("uniqueidentifier"); + + b.Property("Regione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("ProvinciaIstatId"); + + b.ToTable("ComuneIstat"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Feature", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Descrizione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Ordinamento") + .HasColumnType("int"); + + b.Property("SezioneId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("SezioneId"); + + b.ToTable("Feature"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Lavorazione", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ChiaveEsterna") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Codice") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CodiceColore") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CostoOrario") + .HasColumnType("real"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Descrizione") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Sovrapponibile") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Lavorazione"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Macchinario", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CodiceEsterno") + .HasColumnType("nvarchar(max)"); + + b.Property("ConfigurazioneJSON") + .HasColumnType("nvarchar(max)"); + + b.Property("ConfigurazionePercorso") + .HasColumnType("nvarchar(max)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Descrizione") + .HasColumnType("nvarchar(max)"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Interscambio") + .HasColumnType("bit"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Macchinario"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdFeature") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("RuoloId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("IdFeature"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("RuoloId"); + + b.ToTable("Permission"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ProvinciaIstat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Provincia") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Sigla") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("ProvinciaIstat"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Ruolo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.ToTable("Ruolo"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Sezione", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Blank") + .HasColumnType("bit"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Icona") + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Ordinamento") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Url") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("ParentId"); + + b.ToTable("Sezione"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Utente", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Cognome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Costo") + .HasColumnType("decimal(18,2)"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("Email") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("Nome") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("RuoloId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("RuoloId"); + + b.ToTable("Utente"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Cliente", b => + { + b.HasOne("TecniStamp.Domain.ComuneIstat", "Comune") + .WithMany() + .HasForeignKey("ComuneId"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Comune"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Commessa", b => + { + b.HasOne("TecniStamp.Domain.Cliente", "Cliente") + .WithMany() + .HasForeignKey("ClienteId"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Cliente"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.CommessaPosizione", b => + { + b.HasOne("TecniStamp.Domain.Commessa", "Commessa") + .WithMany("Posizioni") + .HasForeignKey("CommessaId"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("Commessa"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.CommessaPosizioneLavorazione", b => + { + b.HasOne("TecniStamp.Domain.CommessaPosizione", "CommessaPosizione") + .WithMany() + .HasForeignKey("CommessaPosizioneId"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Lavorazione", "Lavorazione") + .WithMany() + .HasForeignKey("LavorazioneId"); + + b.HasOne("TecniStamp.Domain.Macchinario", "Macchinario") + .WithMany() + .HasForeignKey("MacchinarioId"); + + b.Navigation("CommessaPosizione"); + + b.Navigation("Lavorazione"); + + b.Navigation("Macchinario"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ComuneIstat", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.ProvinciaIstat", "ProvinciaIstat") + .WithMany() + .HasForeignKey("ProvinciaIstatId"); + + b.Navigation("ProvinciaIstat"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Feature", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Sezione", "Sezione") + .WithMany("Features") + .HasForeignKey("SezioneId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Sezione"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Lavorazione", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Macchinario", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Permission", b => + { + b.HasOne("TecniStamp.Domain.Feature", "Feature") + .WithMany() + .HasForeignKey("IdFeature") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Ruolo", "Ruolo") + .WithMany("Permessi") + .HasForeignKey("RuoloId"); + + b.Navigation("Feature"); + + b.Navigation("Ruolo"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.ProvinciaIstat", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Ruolo", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Sezione", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Sezione", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("Parent"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Utente", b => + { + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Ruolo", "Ruolo") + .WithMany("Utenti") + .HasForeignKey("RuoloId"); + + b.Navigation("Ruolo"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Commessa", b => + { + b.Navigation("Posizioni"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Ruolo", b => + { + b.Navigation("Permessi"); + + b.Navigation("Utenti"); + }); + + modelBuilder.Entity("TecniStamp.Domain.Sezione", b => + { + b.Navigation("Features"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/TecniStamp/TecniStamp.Infrastructure/Migrations/20260204074222_CommessaPosizioneLavorazione.cs b/TecniStamp/TecniStamp.Infrastructure/Migrations/20260204074222_CommessaPosizioneLavorazione.cs new file mode 100644 index 0000000..f73b58e --- /dev/null +++ b/TecniStamp/TecniStamp.Infrastructure/Migrations/20260204074222_CommessaPosizioneLavorazione.cs @@ -0,0 +1,97 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace TecniStamp.Infrastructure.Migrations +{ + /// + public partial class CommessaPosizioneLavorazione : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "CommessaPosizioneLavorazione", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + CommessaPosizioneId = table.Column(type: "uniqueidentifier", nullable: true), + LavorazioneId = table.Column(type: "uniqueidentifier", nullable: true), + MacchinarioId = table.Column(type: "uniqueidentifier", nullable: true), + PrimoTempoPresidiato = table.Column(type: "int", nullable: false), + TempoNonPresidiato = table.Column(type: "int", nullable: false), + SecondoTempoPresidiato = table.Column(type: "int", nullable: false), + Spostabile = table.Column(type: "bit", nullable: false), + DataInizioPrevista = table.Column(type: "datetime2", nullable: true), + DataFinePrevista = table.Column(type: "datetime2", nullable: true), + DataCreazione = table.Column(type: "datetime2", nullable: false), + DataModifica = table.Column(type: "datetime2", nullable: true), + Eliminato = table.Column(type: "bit", nullable: false), + IdUtenteCreazione = table.Column(type: "uniqueidentifier", nullable: true), + IdUtenteModifica = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_CommessaPosizioneLavorazione", x => x.Id); + table.ForeignKey( + name: "FK_CommessaPosizioneLavorazione_ComessaPosizione_CommessaPosizioneId", + column: x => x.CommessaPosizioneId, + principalTable: "ComessaPosizione", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_CommessaPosizioneLavorazione_Lavorazione_LavorazioneId", + column: x => x.LavorazioneId, + principalTable: "Lavorazione", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_CommessaPosizioneLavorazione_Macchinario_MacchinarioId", + column: x => x.MacchinarioId, + principalTable: "Macchinario", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_CommessaPosizioneLavorazione_Utente_IdUtenteCreazione", + column: x => x.IdUtenteCreazione, + principalTable: "Utente", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_CommessaPosizioneLavorazione_Utente_IdUtenteModifica", + column: x => x.IdUtenteModifica, + principalTable: "Utente", + principalColumn: "Id"); + }); + + migrationBuilder.CreateIndex( + name: "IX_CommessaPosizioneLavorazione_CommessaPosizioneId", + table: "CommessaPosizioneLavorazione", + column: "CommessaPosizioneId"); + + migrationBuilder.CreateIndex( + name: "IX_CommessaPosizioneLavorazione_IdUtenteCreazione", + table: "CommessaPosizioneLavorazione", + column: "IdUtenteCreazione"); + + migrationBuilder.CreateIndex( + name: "IX_CommessaPosizioneLavorazione_IdUtenteModifica", + table: "CommessaPosizioneLavorazione", + column: "IdUtenteModifica"); + + migrationBuilder.CreateIndex( + name: "IX_CommessaPosizioneLavorazione_LavorazioneId", + table: "CommessaPosizioneLavorazione", + column: "LavorazioneId"); + + migrationBuilder.CreateIndex( + name: "IX_CommessaPosizioneLavorazione_MacchinarioId", + table: "CommessaPosizioneLavorazione", + column: "MacchinarioId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "CommessaPosizioneLavorazione"); + } + } +} diff --git a/TecniStamp/TecniStamp.Infrastructure/Migrations/TecniStampDbContextModelSnapshot.cs b/TecniStamp/TecniStamp.Infrastructure/Migrations/TecniStampDbContextModelSnapshot.cs index 94c5f49..34e1944 100644 --- a/TecniStamp/TecniStamp.Infrastructure/Migrations/TecniStampDbContextModelSnapshot.cs +++ b/TecniStamp/TecniStamp.Infrastructure/Migrations/TecniStampDbContextModelSnapshot.cs @@ -233,6 +233,69 @@ namespace TecniStamp.Infrastructure.Migrations b.ToTable("ComessaPosizione"); }); + modelBuilder.Entity("TecniStamp.Domain.CommessaPosizioneLavorazione", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CommessaPosizioneId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataCreazione") + .HasColumnType("datetime2"); + + b.Property("DataFinePrevista") + .HasColumnType("datetime2"); + + b.Property("DataInizioPrevista") + .HasColumnType("datetime2"); + + b.Property("DataModifica") + .HasColumnType("datetime2"); + + b.Property("Eliminato") + .HasColumnType("bit"); + + b.Property("IdUtenteCreazione") + .HasColumnType("uniqueidentifier"); + + b.Property("IdUtenteModifica") + .HasColumnType("uniqueidentifier"); + + b.Property("LavorazioneId") + .HasColumnType("uniqueidentifier"); + + b.Property("MacchinarioId") + .HasColumnType("uniqueidentifier"); + + b.Property("PrimoTempoPresidiato") + .HasColumnType("int"); + + b.Property("SecondoTempoPresidiato") + .HasColumnType("int"); + + b.Property("Spostabile") + .HasColumnType("bit"); + + b.Property("TempoNonPresidiato") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CommessaPosizioneId"); + + b.HasIndex("IdUtenteCreazione"); + + b.HasIndex("IdUtenteModifica"); + + b.HasIndex("LavorazioneId"); + + b.HasIndex("MacchinarioId"); + + b.ToTable("CommessaPosizioneLavorazione"); + }); + modelBuilder.Entity("TecniStamp.Domain.ComuneIstat", b => { b.Property("Id") @@ -723,6 +786,39 @@ namespace TecniStamp.Infrastructure.Migrations b.Navigation("UtenteModifica"); }); + modelBuilder.Entity("TecniStamp.Domain.CommessaPosizioneLavorazione", b => + { + b.HasOne("TecniStamp.Domain.CommessaPosizione", "CommessaPosizione") + .WithMany() + .HasForeignKey("CommessaPosizioneId"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") + .WithMany() + .HasForeignKey("IdUtenteCreazione"); + + b.HasOne("TecniStamp.Domain.Utente", "UtenteModifica") + .WithMany() + .HasForeignKey("IdUtenteModifica"); + + b.HasOne("TecniStamp.Domain.Lavorazione", "Lavorazione") + .WithMany() + .HasForeignKey("LavorazioneId"); + + b.HasOne("TecniStamp.Domain.Macchinario", "Macchinario") + .WithMany() + .HasForeignKey("MacchinarioId"); + + b.Navigation("CommessaPosizione"); + + b.Navigation("Lavorazione"); + + b.Navigation("Macchinario"); + + b.Navigation("UtenteCreazione"); + + b.Navigation("UtenteModifica"); + }); + modelBuilder.Entity("TecniStamp.Domain.ComuneIstat", b => { b.HasOne("TecniStamp.Domain.Utente", "UtenteCreazione") diff --git a/TecniStamp/TecniStamp.Service/CommessaPosizioneLavorazioneService.cs b/TecniStamp/TecniStamp.Service/CommessaPosizioneLavorazioneService.cs new file mode 100644 index 0000000..ca2bcdd --- /dev/null +++ b/TecniStamp/TecniStamp.Service/CommessaPosizioneLavorazioneService.cs @@ -0,0 +1,13 @@ +using OAService.Service.Servizi.Implementazioni; +using TecniStamp.Domain; +using TecniStamp.Service.Interfaces; +using TecniStamp.Service.Repository; + +namespace TecniStamp.Service; + +public class CommessaPosizioneLavorazioneService : TService, ICommessaPosizioneLavorazioneService +{ + public CommessaPosizioneLavorazioneService(ITecniStampUnitOfWork unitOfWork) : base(unitOfWork) + { + } +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp.Service/CommessaPosizioneService.cs b/TecniStamp/TecniStamp.Service/CommessaPosizioneService.cs new file mode 100644 index 0000000..af6f849 --- /dev/null +++ b/TecniStamp/TecniStamp.Service/CommessaPosizioneService.cs @@ -0,0 +1,13 @@ +using OAService.Service.Servizi.Implementazioni; +using TecniStamp.Domain; +using TecniStamp.Service.Interfaces; +using TecniStamp.Service.Repository; + +namespace TecniStamp.Service; + +public class CommessaPosizioneService : TService, ICommessaPosizioneService +{ + public CommessaPosizioneService(ITecniStampUnitOfWork unitOfWork) : base(unitOfWork) + { + } +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp.Service/Interfaces/ICommessaPosizioneLavorazioneService.cs b/TecniStamp/TecniStamp.Service/Interfaces/ICommessaPosizioneLavorazioneService.cs new file mode 100644 index 0000000..4338343 --- /dev/null +++ b/TecniStamp/TecniStamp.Service/Interfaces/ICommessaPosizioneLavorazioneService.cs @@ -0,0 +1,8 @@ +using OAService.Service.Servizi.Interfacce; +using TecniStamp.Domain; + +namespace TecniStamp.Service.Interfaces; + +public interface ICommessaPosizioneLavorazioneService : ITService +{ +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp.Service/Interfaces/ICommessaPosizioneService.cs b/TecniStamp/TecniStamp.Service/Interfaces/ICommessaPosizioneService.cs new file mode 100644 index 0000000..1fbe77f --- /dev/null +++ b/TecniStamp/TecniStamp.Service/Interfaces/ICommessaPosizioneService.cs @@ -0,0 +1,8 @@ +using OAService.Service.Servizi.Interfacce; +using TecniStamp.Domain; + +namespace TecniStamp.Service.Interfaces; + +public interface ICommessaPosizioneService : ITService +{ +} \ No newline at end of file diff --git a/TecniStamp/TecniStamp.Service/Interfaces/IManagerService.cs b/TecniStamp/TecniStamp.Service/Interfaces/IManagerService.cs index ce43722..a4ed46d 100644 --- a/TecniStamp/TecniStamp.Service/Interfaces/IManagerService.cs +++ b/TecniStamp/TecniStamp.Service/Interfaces/IManagerService.cs @@ -4,6 +4,8 @@ public interface IManagerService { IClienteService ClienteService { get; set; } ICommessaService CommessaService { get; set; } + ICommessaPosizioneService CommessaPosizioneService { get; set; } + ICommessaPosizioneLavorazioneService CommessaPosizioneLavorazioneService { get; set; } IFeatureService FeatureService { get; set; } IPermissionService PermissionService { get; set; } IRuoloService RuoloService{ get; set; } diff --git a/TecniStamp/TecniStamp.Service/ManagerService.cs b/TecniStamp/TecniStamp.Service/ManagerService.cs index 9277c7a..a5036d8 100644 --- a/TecniStamp/TecniStamp.Service/ManagerService.cs +++ b/TecniStamp/TecniStamp.Service/ManagerService.cs @@ -6,7 +6,7 @@ public class ManagerService : IManagerService { public ManagerService(IUserService userService, ISezioneService sezioneService, IPermissionService permissionService, IRuoloService ruoloService, IFeatureService featureService, IMacchinarioService macchinarioService, ICommessaService commessaService, ILavorazioneService lavorazioneService, - IClienteService clienteService) + IClienteService clienteService, ICommessaPosizioneService commessaPosizioneService, ICommessaPosizioneLavorazioneService commessaPosizioneLavorazioneService) { UtenteService = userService; SezioneService = sezioneService; @@ -17,10 +17,14 @@ public class ManagerService : IManagerService CommessaService = commessaService; LavorazioneService = lavorazioneService; ClienteService = clienteService; + CommessaPosizioneService = commessaPosizioneService; + CommessaPosizioneLavorazioneService = commessaPosizioneLavorazioneService; } public IClienteService ClienteService { get; set; } public ICommessaService CommessaService { get; set; } + public ICommessaPosizioneService CommessaPosizioneService { get; set; } + public ICommessaPosizioneLavorazioneService CommessaPosizioneLavorazioneService { get; set; } public IFeatureService FeatureService { get; set; } public IPermissionService PermissionService { get; set; } public IRuoloService RuoloService { get; set; } diff --git a/TecniStamp/TecniStamp/Components/Pages/Commesse/Commesse_Edit_OE.razor b/TecniStamp/TecniStamp/Components/Pages/Commesse/Commesse_Edit_OE.razor index f27cad5..a6dd3c9 100644 --- a/TecniStamp/TecniStamp/Components/Pages/Commesse/Commesse_Edit_OE.razor +++ b/TecniStamp/TecniStamp/Components/Pages/Commesse/Commesse_Edit_OE.razor @@ -2,6 +2,21 @@
+
+
+
+ +
+
+ Data ultima modifica + +
+
+ Data ultima Check + +
+
+