using System;
using System.Collections.Generic;
namespace Models.Models;
///
/// Documentos comerciales internos de venta: facturas, notas de debito, notas de credito, FCE, NDE y NCE. Mantiene la emision interna separada de la autorizacion fiscal ARCA.
///
public partial class PhSSalesDocument
{
///
/// Identificador interno del documento comercial.
///
public int Id { get; set; }
///
/// Talonario/serie interna existente en PhronCare. Reutiliza PhS_FormSeries para numeracion interna.
///
public int? FormseriesId { get; set; }
///
/// Numero secuencial interno asignado al emitir internamente el documento. No corresponde al numero fiscal ARCA.
///
public int? InternalSequenceNumber { get; set; }
///
/// Numero visible interno del documento, formado desde la serie/talonario interno. Puede diferir del numero fiscal.
///
public string? InternalDocumentNumber { get; set; }
///
/// Tipo comercial interno del documento. Ejemplos: Invoice, DebitNote, CreditNote, CreditInvoice, CreditDebitNote, CreditCreditNote.
///
public int DocumentType { get; set; }
///
/// Tipo de comprobante fiscal AFIP/ARCA previsto para autorizacion futura. Ejemplos: 1, 6, 11, 201, 202, 203.
///
public int? FiscalVoucherType { get; set; }
///
/// Letra fiscal prevista del comprobante: A, B, C u otras segun configuracion fiscal.
///
public string? FiscalVoucherLetter { get; set; }
///
/// Estado comercial interno. Ejemplos: Draft, Validated, Issued, Cancelled. Independiente del estado fiscal.
///
public int Status { get; set; }
///
/// Presupuesto origen opcional. Puede ser NULL para ventas manuales o de escritorio.
///
public int? QuoteId { get; set; }
///
/// Cliente origen de la operacion comercial.
///
public int CustomerId { get; set; }
///
/// Cliente al que se factura realmente. Permite escenarios obra social / particular u otros terceros pagadores.
///
public int BillToCustomerId { get; set; }
///
/// Fecha de emision interna del documento comercial.
///
public DateTime? IssueDate { get; set; }
///
/// Moneda del documento comercial.
///
public string Currency { get; set; } = null!;
///
/// Cotizacion utilizada para la moneda del documento.
///
public decimal ExchangeRate { get; set; }
///
/// Importe neto total del documento.
///
public decimal NetAmount { get; set; }
///
/// Importe total de impuestos del documento.
///
public decimal TaxAmount { get; set; }
///
/// Importe total del documento.
///
public decimal TotalAmount { get; set; }
///
/// Tipo de documento interno asociado opcional, por ejemplo remito, orden de compra o autorizacion. No representa CbtesAsoc fiscal.
///
public string? AssociatedDocumentType { get; set; }
///
/// Numero del documento interno asociado opcional.
///
public string? AssociatedDocumentNumber { get; set; }
///
/// Fecha del documento interno asociado opcional.
///
public DateTime? AssociatedDocumentDate { get; set; }
///
/// Observaciones comerciales del documento.
///
public string? Observations { get; set; }
///
/// Snapshot JSON con informacion extra contextual del documento.
///
public string? ExtraInfoJson { get; set; }
///
/// Fecha inicial del periodo comercial facturado. Aplica especialmente a facturacion por capita o periodos mensuales.
///
public DateTime? PeriodFrom { get; set; }
///
/// Fecha final del periodo comercial facturado. Aplica especialmente a facturacion por capita o periodos mensuales.
///
public DateTime? PeriodTo { get; set; }
public DateTime Createdat { get; set; }
public DateTime? Modifiedat { get; set; }
public virtual PhSCustomer BillToCustomer { get; set; } = null!;
public virtual PhSCustomer Customer { get; set; } = null!;
public virtual PhSFormSeries? Formseries { get; set; }
public virtual ICollection PhSSalesDocumentCoverages { get; set; } = new List();
public virtual ICollection PhSSalesDocumentDetails { get; set; } = new List();
public virtual PhSSalesFiscalDocument? PhSSalesFiscalDocument { get; set; }
public virtual ICollection PhSSalesFiscalDocumentAssociations { get; set; } = new List();
public virtual PhSQuoteHeader? Quote { get; set; }
}