namespace Domain.Entities
{
///
/// Tabla de cabeceras de presupuestos
///
///
public class EQuoteHeader
{
///
/// ID interno
///
public int Id { get; set; }
///
/// Relación con Tickets
///
public Guid TicketId { get; set; }
///
/// Número visible del presupuesto
///
public string Quotenumber { get; set; } = String.Empty;
///
/// Cliente asociado
///
public int CustomerId { get; set; }
///
/// Unidad de negocio
///
public int BusinessunitId { get; set; }
///
/// Identificador único del vendedor
///
public int PeopleId { 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; }
///
/// Días de validez de la oferta. Indica cuántos días estará vigente el presupuesto desde su fecha de emisión.
///
public int? Offervaliditydays { get; set; }
///
/// Condición de pago seleccionada para el presupuesto.
///
public int? PaymenttermId { get; set; }
///
/// Código de moneda pactada (ISO 4217). Ej: ARS, USD
///
public string Currency { get; set; } = String.Empty;
///
/// Tipo de cambio pactado para conversión a pesos argentinos
///
public decimal? Exchangerate { get; set; }
///
/// Importe neto antes de aplicar impuestos, expresado en la moneda pactada del presupuesto
///
public decimal? Netamount { get; set; }
///
/// Importe total del presupuesto expresado en la moneda pactada (extranjera), incluyendo impuestos y ajustes comerciales
///
public decimal? TotalForeign { get; set; }
///
/// Importe total del presupuesto en moneda local, calculado incluyendo impuestos y convertido según tipo de cambio pactado
///
public decimal? Total { get; set; }
///
/// Importe aprobado
///
public decimal? Approvedamount { get; set; }
///
/// Estado: E (Emitido), A (Aprobado), AC (Aprobado para cirugia), etc.
///
public string Status { get; set; } = String.Empty;
///
/// Indica si la cirugía se realizará fuera de la ciudad/localidad habitual (“out of town”)
///
public bool OutOfTown { get; set; }
///
/// Instrucción dirigida al área de logística para detallar qué debe prepararse o despacharse (ej: “CMF 1.5 + INSTRUMENTAL”)
///
public string? DispatchInstruction { get; set; } = String.Empty;
///
/// Cantidad de impresiones
///
public int Printcount { get; set; }
///
/// Observaciones internas
///
public string? Observations { get; set; } = String.Empty;
///
/// Fecha de creación
///
public DateTime Createdat { get; set; }
///
/// Fecha de modificación
///
public DateTime? Modifiedat { get; set; }
public virtual ICollection PhSQuoteAdjustments { get; set; } = new List();
public virtual ICollection PhSQuoteDetails { get; set; } = new List();
public virtual ICollection PhSQuoteRoles { get; set; } = new List();
public virtual ICollection PhSQuoteTaxes { get; set; } = new List();
}
}