diff --git a/Domain/obj/Domain.csproj.nuget.g.props b/Domain/obj/Domain.csproj.nuget.g.props
index 3efed38..8b4eb7e 100644
--- a/Domain/obj/Domain.csproj.nuget.g.props
+++ b/Domain/obj/Domain.csproj.nuget.g.props
@@ -7,7 +7,7 @@
$(UserProfile)\.nuget\packages\
C:\Users\maski\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages
PackageReference
- 6.13.1
+ 6.13.2
diff --git a/Models/Models/PhOhArcadocumentType.cs b/Models/Models/PhOhArcadocumentType.cs
new file mode 100644
index 0000000..b5ad844
--- /dev/null
+++ b/Models/Models/PhOhArcadocumentType.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+
+namespace Models.Models;
+
+///
+/// Catálogo oficial de tipos de comprobantes AFIP.
+///
+public partial class PhOhArcadocumentType
+{
+ public int Id { get; set; }
+
+ public string Code { get; set; } = null!;
+
+ public string Description { get; set; } = null!;
+
+ public string? Letter { get; set; }
+
+ public bool Isactive { get; set; }
+}
diff --git a/Models/Models/PhSBusinessUnit.cs b/Models/Models/PhSBusinessUnit.cs
index 64f5e0f..bd75a63 100644
--- a/Models/Models/PhSBusinessUnit.cs
+++ b/Models/Models/PhSBusinessUnit.cs
@@ -14,6 +14,4 @@ public partial class PhSBusinessUnit
public string? Manager { get; set; }
public virtual ICollection PhSProducts { get; set; } = new List();
-
- public virtual ICollection PhSQuoteHeaders { get; set; } = new List();
}
diff --git a/Models/Models/PhSCustomer.cs b/Models/Models/PhSCustomer.cs
index 4dbea6a..2ed7d8e 100644
--- a/Models/Models/PhSCustomer.cs
+++ b/Models/Models/PhSCustomer.cs
@@ -31,7 +31,5 @@ public partial class PhSCustomer
public virtual ICollection PhSPatients { get; set; } = new List();
- public virtual ICollection PhSQuoteHeaders { get; set; } = new List();
-
public virtual PhOhTaxCondition? TaxCondition { get; set; }
}
diff --git a/Models/Models/PhSFormSeries.cs b/Models/Models/PhSFormSeries.cs
new file mode 100644
index 0000000..6283025
--- /dev/null
+++ b/Models/Models/PhSFormSeries.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+
+namespace Models.Models;
+
+///
+/// FormSeries: talonarios/series por tipo de formulario, letra y punto de venta.
+///
+public partial class PhSFormSeries
+{
+ public int Id { get; set; }
+
+ ///
+ /// FK a tipo de formulario (PhS_FormTypes).
+ ///
+ public int FormtypeId { get; set; }
+
+ ///
+ /// Punto de venta asignado.
+ ///
+ public short Pointofsale { get; set; }
+
+ ///
+ /// Letra de serie (A,B,C...).
+ ///
+ public string Letter { get; set; } = null!;
+
+ ///
+ /// Marca esta serie como predeterminada.
+ ///
+ public bool Isdefault { get; set; }
+
+ ///
+ /// Indica si está habilitada.
+ ///
+ public bool Isactive { get; set; }
+
+ public DateTime Createdat { get; set; }
+
+ public DateTime? Modifiedat { get; set; }
+
+ public string NumberingSource { get; set; } = null!;
+
+ public virtual PhSFormType Formtype { get; set; } = null!;
+
+ public virtual PhSFormSeriesNextNumber? PhSFormSeriesNextNumber { get; set; }
+}
diff --git a/Models/Models/PhSFormSeriesNextNumber.cs b/Models/Models/PhSFormSeriesNextNumber.cs
new file mode 100644
index 0000000..c7d104d
--- /dev/null
+++ b/Models/Models/PhSFormSeriesNextNumber.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+
+namespace Models.Models;
+
+///
+/// Mantiene el siguiente número correlativo para cada FormSeries.
+///
+public partial class PhSFormSeriesNextNumber
+{
+ public int Id { get; set; }
+
+ ///
+ /// FK a PhS_FormSeries.
+ ///
+ public int FormseriesId { get; set; }
+
+ ///
+ /// Próximo número correlativo.
+ ///
+ public int Nextnumber { get; set; }
+
+ public virtual PhSFormSeries Formseries { get; set; } = null!;
+}
diff --git a/Models/Models/PhSFormType.cs b/Models/Models/PhSFormType.cs
new file mode 100644
index 0000000..19408b6
--- /dev/null
+++ b/Models/Models/PhSFormType.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+
+namespace Models.Models;
+
+///
+/// Tipos genéricos de formularios del sistema (presupuesto, factura, recibo, etc.)
+///
+public partial class PhSFormType
+{
+ public int Id { get; set; }
+
+ public string Code { get; set; } = null!;
+
+ public string Name { get; set; } = null!;
+
+ public virtual ICollection PhSFormSeries { get; set; } = new List();
+}
diff --git a/Models/Models/PhSProduct.cs b/Models/Models/PhSProduct.cs
index 68dd941..55c07ff 100644
--- a/Models/Models/PhSProduct.cs
+++ b/Models/Models/PhSProduct.cs
@@ -26,6 +26,4 @@ public partial class PhSProduct
public virtual PhSBusinessUnit? Businessunits { get; set; }
public virtual PhSProductCategory? Category { get; set; }
-
- public virtual ICollection PhSQuoteDetails { get; set; } = new List();
}
diff --git a/Models/Models/PhSQuoteDetail.cs b/Models/Models/PhSQuoteDetail.cs
index 5a5acb1..43d2f3d 100644
--- a/Models/Models/PhSQuoteDetail.cs
+++ b/Models/Models/PhSQuoteDetail.cs
@@ -3,15 +3,60 @@ using System.Collections.Generic;
namespace Models.Models;
+///
+/// Tabla de detalles de presupuestos
+///
public partial class PhSQuoteDetail
{
+ ///
+ /// ID interno
+ ///
public int Id { get; set; }
- public int? QuoteheadersId { get; set; }
+ ///
+ /// FK a encabezado de presupuesto
+ ///
+ public int QuoteheaderId { get; set; }
- public int? ProductsId { get; set; }
+ ///
+ /// ID del producto original
+ ///
+ public int ProductId { get; set; }
- public virtual PhSProduct? Products { get; set; }
+ ///
+ /// Descripción modificable del producto (puede diferir del original)
+ ///
+ public string? ProductDescription { get; set; }
- public virtual PhSQuoteHeader? Quoteheaders { get; set; }
+ ///
+ /// Cantidad
+ ///
+ public int Quantity { get; set; }
+
+ ///
+ /// Precio unitario original
+ ///
+ public decimal Unitprice { get; set; }
+
+ ///
+ /// ¿Aprobado? (0=No, 1=Si)
+ ///
+ public bool Approved { get; set; }
+
+ ///
+ /// Importe aprobado final
+ ///
+ public decimal? Approvedamount { get; set; }
+
+ ///
+ /// Fecha de creación del registro
+ ///
+ public DateTime Createdat { get; set; }
+
+ ///
+ /// Fecha de última modificación
+ ///
+ public DateTime? Modifiedat { get; set; }
+
+ public virtual PhSQuoteHeader Quoteheader { get; set; } = null!;
}
diff --git a/Models/Models/PhSQuoteHeader.cs b/Models/Models/PhSQuoteHeader.cs
index 0f26cbb..1676202 100644
--- a/Models/Models/PhSQuoteHeader.cs
+++ b/Models/Models/PhSQuoteHeader.cs
@@ -3,19 +3,87 @@ using System.Collections.Generic;
namespace Models.Models;
+///
+/// Tabla de cabeceras de presupuestos
+///
public partial class PhSQuoteHeader
{
+ ///
+ /// ID interno
+ ///
public int Id { get; set; }
- public string? TicketId { get; set; }
+ ///
+ /// Relación con Tickets
+ ///
+ public Guid TicketId { get; set; }
- public int? BusinessunitsId { get; set; }
+ ///
+ /// Cliente asociado
+ ///
+ public int CustomerId { get; set; }
- public int? CustomersId { get; set; }
+ ///
+ /// Unidad de negocio
+ ///
+ public int BusinessunitId { get; set; }
- public virtual PhSBusinessUnit? Businessunits { get; set; }
+ ///
+ /// Estado: E (Emitido), A (Aprobado), AC (Aprobado para cirugia), etc.
+ ///
+ public string Status { get; set; } = null!;
- public virtual PhSCustomer? Customers { get; set; }
+ ///
+ /// Fecha de emisión
+ ///
+ public DateTime Issuedate { get; set; }
+
+ ///
+ /// Fecha de aprobación
+ ///
+ public DateOnly? Approvaldate { get; set; }
+
+ ///
+ /// Fecha tentativa (de cirugía por ej.)
+ ///
+ public DateTime? Estimateddate { get; set; }
+
+ ///
+ /// Importe estimado total
+ ///
+ public decimal? Estimatedamount { get; set; }
+
+ ///
+ /// Importe aprobado
+ ///
+ public decimal? Approvedamount { get; set; }
+
+ ///
+ /// Número visible del presupuesto
+ ///
+ public string Quotenumber { get; set; } = null!;
+
+ ///
+ /// Cantidad de impresiones
+ ///
+ public int Printcount { get; set; }
+
+ ///
+ /// Observaciones internas
+ ///
+ public string? Observations { get; set; }
+
+ ///
+ /// Fecha de creación
+ ///
+ public DateTime Createdat { get; set; }
+
+ ///
+ /// Fecha de modificación
+ ///
+ public DateTime? Modifiedat { get; set; }
public virtual ICollection PhSQuoteDetails { get; set; } = new List();
+
+ public virtual ICollection PhSQuoteRoles { get; set; } = new List();
}
diff --git a/Models/Models/PhSQuoteRole.cs b/Models/Models/PhSQuoteRole.cs
new file mode 100644
index 0000000..f5acf91
--- /dev/null
+++ b/Models/Models/PhSQuoteRole.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+
+namespace Models.Models;
+
+///
+/// Tabla de roles asociados a presupuestos
+///
+public partial class PhSQuoteRole
+{
+ ///
+ /// ID interno
+ ///
+ public int Id { get; set; }
+
+ ///
+ /// FK a encabezado de presupuesto (PhS_QuoteHeaders)
+ ///
+ public int QuoteheaderId { get; set; }
+
+ ///
+ /// Tipo de entidad asociada (Ej: PhS_Professionals, PhS_Institutions, PhS_Patients)
+ ///
+ public string Entitytype { get; set; } = null!;
+
+ ///
+ /// ID de la entidad asociada
+ ///
+ public int EntityId { get; set; }
+
+ ///
+ /// Rol que cumple la entidad en el presupuesto (Ej: Medico, Hospital, Paciente)
+ ///
+ public string Role { get; set; } = null!;
+
+ public virtual PhSQuoteHeader Quoteheader { get; set; } = null!;
+}
diff --git a/Models/Models/PhronCareOperationsHubContext.cs b/Models/Models/PhronCareOperationsHubContext.cs
index 130f8bc..7ab03db 100644
--- a/Models/Models/PhronCareOperationsHubContext.cs
+++ b/Models/Models/PhronCareOperationsHubContext.cs
@@ -15,6 +15,8 @@ public partial class PhronCareOperationsHubContext : DbContext
{
}
+ public virtual DbSet PhOhArcadocumentTypes { get; set; }
+
public virtual DbSet PhOhTaxConditions { get; set; }
public virtual DbSet PhOhTickets { get; set; }
@@ -31,6 +33,12 @@ public partial class PhronCareOperationsHubContext : DbContext
public virtual DbSet PhSDocumentTypes { get; set; }
+ public virtual DbSet PhSFormSeries { get; set; }
+
+ public virtual DbSet PhSFormSeriesNextNumbers { get; set; }
+
+ public virtual DbSet PhSFormTypes { get; set; }
+
public virtual DbSet PhSInstitutions { get; set; }
public virtual DbSet PhSPatients { get; set; }
@@ -47,6 +55,8 @@ public partial class PhronCareOperationsHubContext : DbContext
public virtual DbSet PhSQuoteHeaders { get; set; }
+ public virtual DbSet PhSQuoteRoles { get; set; }
+
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
#region VERSION DOCKER
{
@@ -56,12 +66,39 @@ public partial class PhronCareOperationsHubContext : DbContext
}
}
#endregion
- //optionsBuilder.UseSqlServer("data source=srv01.saludlab.com.ar,39458;initial catalog=phronCare_OperationsHub;User ID=sa;Password=HS|s[~xxQzTo/n>9jO;encrypt=False;trustServerCertificate=True;MultipleActiveResultSets=True");
+ //=> optionsBuilder.UseSqlServer("data source=srv01.saludlab.com.ar,39458;initial catalog=phronCare_OperationsHub;User ID=sa;Password=HS|s[~xxQzTo/n>9jO;encrypt=False;trustServerCertificate=True;MultipleActiveResultSets=True");
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.UseCollation("Modern_Spanish_CI_AS");
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK__PhOH_ARC__3213E83FF8940395");
+
+ entity.ToTable("PhOH_ARCADocumentTypes", tb => tb.HasComment("Catálogo oficial de tipos de comprobantes AFIP."));
+
+ entity.Property(e => e.Id)
+ .ValueGeneratedNever()
+ .HasColumnName("id");
+ entity.Property(e => e.Code)
+ .HasMaxLength(3)
+ .IsUnicode(false)
+ .IsFixedLength()
+ .HasColumnName("code");
+ entity.Property(e => e.Description)
+ .HasMaxLength(255)
+ .HasColumnName("description");
+ entity.Property(e => e.Isactive)
+ .HasDefaultValue(true)
+ .HasColumnName("isactive");
+ entity.Property(e => e.Letter)
+ .HasMaxLength(1)
+ .IsUnicode(false)
+ .IsFixedLength()
+ .HasColumnName("letter");
+ });
+
modelBuilder.Entity(entity =>
{
entity.HasKey(e => e.Id).HasName("PK__PhOH_Tax__3213E83F26F7EAEF");
@@ -267,6 +304,91 @@ public partial class PhronCareOperationsHubContext : DbContext
.HasColumnName("name");
});
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK__PhS_Form__3213E83F7D86A419");
+
+ entity.ToTable("PhS_FormSeries", tb => tb.HasComment("FormSeries: talonarios/series por tipo de formulario, letra y punto de venta."));
+
+ entity.HasIndex(e => e.FormtypeId, "IX_PhS_FormSeries_FormType");
+
+ entity.Property(e => e.Id).HasColumnName("id");
+ entity.Property(e => e.Createdat)
+ .HasDefaultValueSql("(getdate())")
+ .HasColumnType("datetime")
+ .HasColumnName("createdat");
+ entity.Property(e => e.FormtypeId)
+ .HasComment("FK a tipo de formulario (PhS_FormTypes).")
+ .HasColumnName("formtype_id");
+ entity.Property(e => e.Isactive)
+ .HasDefaultValue(true)
+ .HasComment("Indica si está habilitada.")
+ .HasColumnName("isactive");
+ entity.Property(e => e.Isdefault)
+ .HasComment("Marca esta serie como predeterminada.")
+ .HasColumnName("isdefault");
+ entity.Property(e => e.Letter)
+ .HasMaxLength(1)
+ .IsUnicode(false)
+ .IsFixedLength()
+ .HasComment("Letra de serie (A,B,C...).")
+ .HasColumnName("letter");
+ entity.Property(e => e.Modifiedat)
+ .HasColumnType("datetime")
+ .HasColumnName("modifiedat");
+ entity.Property(e => e.NumberingSource)
+ .HasMaxLength(20)
+ .IsUnicode(false)
+ .HasDefaultValue("INTERNAL")
+ .HasColumnName("numbering_source");
+ entity.Property(e => e.Pointofsale)
+ .HasComment("Punto de venta asignado.")
+ .HasColumnName("pointofsale");
+
+ entity.HasOne(d => d.Formtype).WithMany(p => p.PhSFormSeries)
+ .HasForeignKey(d => d.FormtypeId)
+ .OnDelete(DeleteBehavior.ClientSetNull)
+ .HasConstraintName("FK_PhS_FormSeries_FormTypes");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK__PhS_Form__3213E83F60B7AAE4");
+
+ entity.ToTable("PhS_FormSeriesNextNumber", tb => tb.HasComment("Mantiene el siguiente número correlativo para cada FormSeries."));
+
+ entity.HasIndex(e => e.FormseriesId, "IX_PhS_NextNumber_FormSeriesId").IsUnique();
+
+ entity.Property(e => e.Id).HasColumnName("id");
+ entity.Property(e => e.FormseriesId)
+ .HasComment("FK a PhS_FormSeries.")
+ .HasColumnName("formseries_id");
+ entity.Property(e => e.Nextnumber)
+ .HasComment("Próximo número correlativo.")
+ .HasColumnName("nextnumber");
+
+ entity.HasOne(d => d.Formseries).WithOne(p => p.PhSFormSeriesNextNumber)
+ .HasForeignKey(d => d.FormseriesId)
+ .OnDelete(DeleteBehavior.ClientSetNull)
+ .HasConstraintName("FK_PhS_NextNumber_FormSeries");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK__PhS_Form__3213E83FF7278F22");
+
+ entity.ToTable("PhS_FormTypes", tb => tb.HasComment("Tipos genéricos de formularios del sistema (presupuesto, factura, recibo, etc.)"));
+
+ entity.Property(e => e.Id).HasColumnName("id");
+ entity.Property(e => e.Code)
+ .HasMaxLength(20)
+ .IsUnicode(false)
+ .HasColumnName("code");
+ entity.Property(e => e.Name)
+ .HasMaxLength(100)
+ .HasColumnName("name");
+ });
+
modelBuilder.Entity(entity =>
{
entity.HasKey(e => e.Id).HasName("PK__PhS_Inst__3213E83F7645655B");
@@ -488,39 +610,156 @@ public partial class PhronCareOperationsHubContext : DbContext
modelBuilder.Entity(entity =>
{
- entity.ToTable("PhS_QuoteDetails");
+ entity.HasKey(e => e.Id).HasName("PK__PhS_Quot__3213E83F94207114");
- entity.Property(e => e.Id).HasColumnName("id");
- entity.Property(e => e.ProductsId).HasColumnName("products_id");
- entity.Property(e => e.QuoteheadersId).HasColumnName("quoteheaders_id");
+ entity.ToTable("PhS_QuoteDetails", tb => tb.HasComment("Tabla de detalles de presupuestos"));
- entity.HasOne(d => d.Products).WithMany(p => p.PhSQuoteDetails)
- .HasForeignKey(d => d.ProductsId)
- .HasConstraintName("FK_PhS_QuoteDetails_PhS_Products");
+ entity.Property(e => e.Id)
+ .HasComment("ID interno")
+ .HasColumnName("id");
+ entity.Property(e => e.Approved)
+ .HasComment("¿Aprobado? (0=No, 1=Si)")
+ .HasColumnName("approved");
+ entity.Property(e => e.Approvedamount)
+ .HasComment("Importe aprobado final")
+ .HasColumnType("decimal(18, 2)")
+ .HasColumnName("approvedamount");
+ entity.Property(e => e.Createdat)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Fecha de creación del registro")
+ .HasColumnType("datetime")
+ .HasColumnName("createdat");
+ entity.Property(e => e.Modifiedat)
+ .HasComment("Fecha de última modificación")
+ .HasColumnType("datetime")
+ .HasColumnName("modifiedat");
+ entity.Property(e => e.ProductDescription)
+ .HasComment("Descripción modificable del producto (puede diferir del original)")
+ .HasColumnName("product_description");
+ entity.Property(e => e.ProductId)
+ .HasComment("ID del producto original")
+ .HasColumnName("product_id");
+ entity.Property(e => e.Quantity)
+ .HasDefaultValue(1)
+ .HasComment("Cantidad")
+ .HasColumnName("quantity");
+ entity.Property(e => e.QuoteheaderId)
+ .HasComment("FK a encabezado de presupuesto")
+ .HasColumnName("quoteheader_id");
+ entity.Property(e => e.Unitprice)
+ .HasComment("Precio unitario original")
+ .HasColumnType("decimal(18, 2)")
+ .HasColumnName("unitprice");
- entity.HasOne(d => d.Quoteheaders).WithMany(p => p.PhSQuoteDetails)
- .HasForeignKey(d => d.QuoteheadersId)
- .HasConstraintName("FK_PhS_QuoteDetails_PhS_QuoteHeaders");
+ entity.HasOne(d => d.Quoteheader).WithMany(p => p.PhSQuoteDetails)
+ .HasForeignKey(d => d.QuoteheaderId)
+ .OnDelete(DeleteBehavior.ClientSetNull)
+ .HasConstraintName("FK_QuoteDetails_Header");
});
modelBuilder.Entity(entity =>
{
- entity.ToTable("PhS_QuoteHeaders");
+ entity.HasKey(e => e.Id).HasName("PK__PhS_Quot__3213E83FA0B43134");
- entity.Property(e => e.Id).HasColumnName("id");
- entity.Property(e => e.BusinessunitsId).HasColumnName("businessunits_id");
- entity.Property(e => e.CustomersId).HasColumnName("customers_id");
+ entity.ToTable("PhS_QuoteHeaders", tb => tb.HasComment("Tabla de cabeceras de presupuestos"));
+
+ entity.Property(e => e.Id)
+ .HasComment("ID interno")
+ .HasColumnName("id");
+ entity.Property(e => e.Approvaldate)
+ .HasComment("Fecha de aprobación")
+ .HasColumnName("approvaldate");
+ entity.Property(e => e.Approvedamount)
+ .HasComment("Importe aprobado")
+ .HasColumnType("decimal(18, 2)")
+ .HasColumnName("approvedamount");
+ entity.Property(e => e.BusinessunitId)
+ .HasComment("Unidad de negocio")
+ .HasColumnName("businessunit_id");
+ entity.Property(e => e.Createdat)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Fecha de creación")
+ .HasColumnType("datetime")
+ .HasColumnName("createdat");
+ entity.Property(e => e.CustomerId)
+ .HasComment("Cliente asociado")
+ .HasColumnName("customer_id");
+ entity.Property(e => e.Estimatedamount)
+ .HasComment("Importe estimado total")
+ .HasColumnType("decimal(18, 2)")
+ .HasColumnName("estimatedamount");
+ entity.Property(e => e.Estimateddate)
+ .HasComment("Fecha tentativa (de cirugía por ej.)")
+ .HasColumnType("datetime")
+ .HasColumnName("estimateddate");
+ entity.Property(e => e.Issuedate)
+ .HasDefaultValueSql("(getdate())")
+ .HasComment("Fecha de emisión")
+ .HasColumnType("datetime")
+ .HasColumnName("issuedate");
+ entity.Property(e => e.Modifiedat)
+ .HasComment("Fecha de modificación")
+ .HasColumnType("datetime")
+ .HasColumnName("modifiedat");
+ entity.Property(e => e.Observations)
+ .HasComment("Observaciones internas")
+ .HasColumnName("observations");
+ entity.Property(e => e.Printcount)
+ .HasComment("Cantidad de impresiones")
+ .HasColumnName("printcount");
+ entity.Property(e => e.Quotenumber)
+ .HasMaxLength(20)
+ .IsUnicode(false)
+ .HasComment("Número visible del presupuesto")
+ .HasColumnName("quotenumber");
+ entity.Property(e => e.Status)
+ .HasMaxLength(2)
+ .IsUnicode(false)
+ .HasDefaultValue("E")
+ .IsFixedLength()
+ .HasComment("Estado: E (Emitido), A (Aprobado), AC (Aprobado para cirugia), etc.")
+ .HasColumnName("status");
entity.Property(e => e.TicketId)
- .HasMaxLength(50)
+ .HasComment("Relación con Tickets")
.HasColumnName("ticket_id");
+ });
- entity.HasOne(d => d.Businessunits).WithMany(p => p.PhSQuoteHeaders)
- .HasForeignKey(d => d.BusinessunitsId)
- .HasConstraintName("FK_PhS_QuoteHeaders_PhS_BusinessUnits");
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PK__PhS_Quot__3213E83F7BBCA6FF");
- entity.HasOne(d => d.Customers).WithMany(p => p.PhSQuoteHeaders)
- .HasForeignKey(d => d.CustomersId)
- .HasConstraintName("FK_PhS_QuoteHeaders_PhS_Customers");
+ entity.ToTable("PhS_QuoteRoles", tb => tb.HasComment("Tabla de roles asociados a presupuestos"));
+
+ entity.HasIndex(e => new { e.Entitytype, e.EntityId }, "IX_QuoteRoles_Entity");
+
+ entity.HasIndex(e => e.QuoteheaderId, "IX_QuoteRoles_HeaderId");
+
+ entity.HasIndex(e => e.Role, "IX_QuoteRoles_Role");
+
+ entity.Property(e => e.Id)
+ .HasComment("ID interno")
+ .HasColumnName("id");
+ entity.Property(e => e.EntityId)
+ .HasComment("ID de la entidad asociada")
+ .HasColumnName("entity_id");
+ entity.Property(e => e.Entitytype)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("Tipo de entidad asociada (Ej: PhS_Professionals, PhS_Institutions, PhS_Patients)")
+ .HasColumnName("entitytype");
+ entity.Property(e => e.QuoteheaderId)
+ .HasComment("FK a encabezado de presupuesto (PhS_QuoteHeaders)")
+ .HasColumnName("quoteheader_id");
+ entity.Property(e => e.Role)
+ .HasMaxLength(50)
+ .IsUnicode(false)
+ .HasComment("Rol que cumple la entidad en el presupuesto (Ej: Medico, Hospital, Paciente)")
+ .HasColumnName("role");
+
+ entity.HasOne(d => d.Quoteheader).WithMany(p => p.PhSQuoteRoles)
+ .HasForeignKey(d => d.QuoteheaderId)
+ .OnDelete(DeleteBehavior.ClientSetNull)
+ .HasConstraintName("FK_QuoteRoles_Header");
});
OnModelCreatingPartial(modelBuilder);
diff --git a/Models/Repositories/PhSCustomerRepository.cs b/Models/Repositories/PhSCustomerRepository.cs
index dc6198c..0a1ba78 100644
--- a/Models/Repositories/PhSCustomerRepository.cs
+++ b/Models/Repositories/PhSCustomerRepository.cs
@@ -38,7 +38,6 @@ namespace Models.Repositories
.Include(c => c.Accounttypes)
.Include(c => c.PhSCustomerAddresses)
.Include(c => c.PhSCustomerDocuments)
- .Include(c => c.PhSQuoteHeaders)
.FirstOrDefaultAsync(c => c.Id == id);
return customer != null ? EntityMapper.MapEntity(customer) : null;
diff --git a/Models/obj/Models.csproj.nuget.g.props b/Models/obj/Models.csproj.nuget.g.props
index d21a6b0..57bd42c 100644
--- a/Models/obj/Models.csproj.nuget.g.props
+++ b/Models/obj/Models.csproj.nuget.g.props
@@ -7,7 +7,7 @@
$(UserProfile)\.nuget\packages\
C:\Users\maski\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages
PackageReference
- 6.13.1
+ 6.13.2