Compare commits
2 Commits
43f83c7252
...
a1317d5dad
| Author | SHA1 | Date | |
|---|---|---|---|
| a1317d5dad | |||
| 5e894ddca5 |
10
Domain/Constants/SalesDocumentCoverageType.cs
Normal file
10
Domain/Constants/SalesDocumentCoverageType.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
namespace Domain.Constants
|
||||||
|
{
|
||||||
|
public enum SalesDocumentCoverageType : int
|
||||||
|
{
|
||||||
|
Direct = 1,
|
||||||
|
Capita = 2,
|
||||||
|
Adjustment = 3,
|
||||||
|
Manual = 4
|
||||||
|
}
|
||||||
|
}
|
||||||
10
Domain/Constants/SalesDocumentOriginType.cs
Normal file
10
Domain/Constants/SalesDocumentOriginType.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
namespace Domain.Constants
|
||||||
|
{
|
||||||
|
public enum SalesDocumentOriginType : int
|
||||||
|
{
|
||||||
|
Manual = 1,
|
||||||
|
QuoteDetail = 2,
|
||||||
|
Adjustment = 3,
|
||||||
|
Capita = 4
|
||||||
|
}
|
||||||
|
}
|
||||||
10
Domain/Constants/SalesDocumentStatus.cs
Normal file
10
Domain/Constants/SalesDocumentStatus.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
namespace Domain.Constants
|
||||||
|
{
|
||||||
|
public enum SalesDocumentStatus : int
|
||||||
|
{
|
||||||
|
Draft = 1,
|
||||||
|
Validated = 2,
|
||||||
|
Issued = 3,
|
||||||
|
Cancelled = 4
|
||||||
|
}
|
||||||
|
}
|
||||||
12
Domain/Constants/SalesDocumentType.cs
Normal file
12
Domain/Constants/SalesDocumentType.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
namespace Domain.Constants
|
||||||
|
{
|
||||||
|
public enum SalesDocumentType : int
|
||||||
|
{
|
||||||
|
Invoice = 1,
|
||||||
|
DebitNote = 2,
|
||||||
|
CreditNote = 3,
|
||||||
|
CreditInvoice = 4,
|
||||||
|
CreditDebitNote = 5,
|
||||||
|
CreditCreditNote = 6
|
||||||
|
}
|
||||||
|
}
|
||||||
12
Domain/Constants/SalesFiscalDocumentStatus.cs
Normal file
12
Domain/Constants/SalesFiscalDocumentStatus.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
namespace Domain.Constants
|
||||||
|
{
|
||||||
|
public enum SalesFiscalDocumentStatus : int
|
||||||
|
{
|
||||||
|
None = 0,
|
||||||
|
Pending = 1,
|
||||||
|
Authorized = 2,
|
||||||
|
Rejected = 3,
|
||||||
|
Error = 4,
|
||||||
|
PendingReconciliation = 5
|
||||||
|
}
|
||||||
|
}
|
||||||
19
Domain/Dtos/Sales/SalesDocumentCoverageDto.cs
Normal file
19
Domain/Dtos/Sales/SalesDocumentCoverageDto.cs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
namespace Domain.Dtos.Sales
|
||||||
|
{
|
||||||
|
public class SalesDocumentCoverageDto
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public int SalesDocumentId { get; set; }
|
||||||
|
public int? SalesDocumentDetailId { get; set; }
|
||||||
|
public int QuoteId { get; set; }
|
||||||
|
public int? QuoteDetailId { get; set; }
|
||||||
|
public int CoverageType { get; set; }
|
||||||
|
public decimal? CoveragePercentage { get; set; }
|
||||||
|
public decimal? CoverageAmount { get; set; }
|
||||||
|
public DateTime? PeriodFrom { get; set; }
|
||||||
|
public DateTime? PeriodTo { get; set; }
|
||||||
|
public string? Notes { get; set; }
|
||||||
|
public DateTime Createdat { get; set; }
|
||||||
|
public DateTime? Modifiedat { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
15
Domain/Dtos/Sales/SalesDocumentCreateCoverageRequest.cs
Normal file
15
Domain/Dtos/Sales/SalesDocumentCreateCoverageRequest.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
namespace Domain.Dtos.Sales
|
||||||
|
{
|
||||||
|
public class SalesDocumentCreateCoverageRequest
|
||||||
|
{
|
||||||
|
public int? SalesDocumentDetailId { get; set; }
|
||||||
|
public int QuoteId { get; set; }
|
||||||
|
public int? QuoteDetailId { get; set; }
|
||||||
|
public int CoverageType { get; set; }
|
||||||
|
public decimal? CoveragePercentage { get; set; }
|
||||||
|
public decimal? CoverageAmount { get; set; }
|
||||||
|
public DateTime? PeriodFrom { get; set; }
|
||||||
|
public DateTime? PeriodTo { get; set; }
|
||||||
|
public string? Notes { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
21
Domain/Dtos/Sales/SalesDocumentCreateDetailRequest.cs
Normal file
21
Domain/Dtos/Sales/SalesDocumentCreateDetailRequest.cs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
namespace Domain.Dtos.Sales
|
||||||
|
{
|
||||||
|
public class SalesDocumentCreateDetailRequest
|
||||||
|
{
|
||||||
|
public int LineNumber { get; set; }
|
||||||
|
public int OriginType { get; set; }
|
||||||
|
public int? OriginId { get; set; }
|
||||||
|
public int? QuoteDetailId { get; set; }
|
||||||
|
public int? ProductId { get; set; }
|
||||||
|
public string Description { get; set; } = string.Empty;
|
||||||
|
public decimal Quantity { get; set; }
|
||||||
|
public decimal? AuthorizedUnitPrice { get; set; }
|
||||||
|
public decimal? AuthorizedAmount { get; set; }
|
||||||
|
public decimal? BilledPercentage { get; set; }
|
||||||
|
public decimal UnitPrice { get; set; }
|
||||||
|
public decimal NetAmount { get; set; }
|
||||||
|
public decimal TaxAmount { get; set; }
|
||||||
|
public decimal TotalAmount { get; set; }
|
||||||
|
public string? OriginSnapshotJson { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
25
Domain/Dtos/Sales/SalesDocumentCreateRequest.cs
Normal file
25
Domain/Dtos/Sales/SalesDocumentCreateRequest.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
namespace Domain.Dtos.Sales
|
||||||
|
{
|
||||||
|
public class SalesDocumentCreateRequest
|
||||||
|
{
|
||||||
|
public int? FormseriesId { get; set; }
|
||||||
|
public int DocumentType { get; set; }
|
||||||
|
public int? FiscalVoucherType { get; set; }
|
||||||
|
public string? FiscalVoucherLetter { get; set; }
|
||||||
|
public int? QuoteId { get; set; }
|
||||||
|
public int CustomerId { get; set; }
|
||||||
|
public int BillToCustomerId { get; set; }
|
||||||
|
public DateTime? IssueDate { get; set; }
|
||||||
|
public string Currency { get; set; } = string.Empty;
|
||||||
|
public decimal ExchangeRate { get; set; }
|
||||||
|
public string? AssociatedDocumentType { get; set; }
|
||||||
|
public string? AssociatedDocumentNumber { get; set; }
|
||||||
|
public DateTime? AssociatedDocumentDate { get; set; }
|
||||||
|
public string? Observations { get; set; }
|
||||||
|
public string? ExtraInfoJson { get; set; }
|
||||||
|
public DateTime? PeriodFrom { get; set; }
|
||||||
|
public DateTime? PeriodTo { get; set; }
|
||||||
|
public List<SalesDocumentCreateDetailRequest> Details { get; set; } = new();
|
||||||
|
public List<SalesDocumentCreateCoverageRequest> Coverage { get; set; } = new();
|
||||||
|
}
|
||||||
|
}
|
||||||
8
Domain/Dtos/Sales/SalesDocumentCreateResponse.cs
Normal file
8
Domain/Dtos/Sales/SalesDocumentCreateResponse.cs
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
namespace Domain.Dtos.Sales
|
||||||
|
{
|
||||||
|
public class SalesDocumentCreateResponse
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string? InternalDocumentNumber { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
25
Domain/Dtos/Sales/SalesDocumentDetailDto.cs
Normal file
25
Domain/Dtos/Sales/SalesDocumentDetailDto.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
namespace Domain.Dtos.Sales
|
||||||
|
{
|
||||||
|
public class SalesDocumentDetailDto
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public int SalesDocumentId { get; set; }
|
||||||
|
public int LineNumber { get; set; }
|
||||||
|
public string OriginType { get; set; } = string.Empty;
|
||||||
|
public int? OriginId { get; set; }
|
||||||
|
public int? QuoteDetailId { get; set; }
|
||||||
|
public int? ProductId { get; set; }
|
||||||
|
public string Description { get; set; } = string.Empty;
|
||||||
|
public decimal Quantity { get; set; }
|
||||||
|
public decimal? AuthorizedUnitPrice { get; set; }
|
||||||
|
public decimal? AuthorizedAmount { get; set; }
|
||||||
|
public decimal? BilledPercentage { get; set; }
|
||||||
|
public decimal UnitPrice { get; set; }
|
||||||
|
public decimal NetAmount { get; set; }
|
||||||
|
public decimal TaxAmount { get; set; }
|
||||||
|
public decimal TotalAmount { get; set; }
|
||||||
|
public string? OriginSnapshotJson { get; set; }
|
||||||
|
public DateTime Createdat { get; set; }
|
||||||
|
public DateTime? Modifiedat { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
37
Domain/Dtos/Sales/SalesDocumentDto.cs
Normal file
37
Domain/Dtos/Sales/SalesDocumentDto.cs
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
namespace Domain.Dtos.Sales
|
||||||
|
{
|
||||||
|
public class SalesDocumentDto
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public int? FormseriesId { get; set; }
|
||||||
|
public int? InternalSequenceNumber { get; set; }
|
||||||
|
public string? InternalDocumentNumber { get; set; }
|
||||||
|
public int DocumentType { get; set; }
|
||||||
|
public int? FiscalVoucherType { get; set; }
|
||||||
|
public string? FiscalVoucherLetter { get; set; }
|
||||||
|
public int Status { get; set; }
|
||||||
|
public int? QuoteId { get; set; }
|
||||||
|
public int CustomerId { get; set; }
|
||||||
|
public string CustomerName { get; set; } = string.Empty;
|
||||||
|
public int BillToCustomerId { get; set; }
|
||||||
|
public string BillToCustomerName { get; set; } = string.Empty;
|
||||||
|
public DateTime? IssueDate { get; set; }
|
||||||
|
public string Currency { get; set; } = string.Empty;
|
||||||
|
public decimal ExchangeRate { get; set; }
|
||||||
|
public decimal NetAmount { get; set; }
|
||||||
|
public decimal TaxAmount { get; set; }
|
||||||
|
public decimal TotalAmount { get; set; }
|
||||||
|
public string? AssociatedDocumentType { get; set; }
|
||||||
|
public string? AssociatedDocumentNumber { get; set; }
|
||||||
|
public DateTime? AssociatedDocumentDate { get; set; }
|
||||||
|
public string? Observations { get; set; }
|
||||||
|
public string? ExtraInfoJson { get; set; }
|
||||||
|
public DateTime? PeriodFrom { get; set; }
|
||||||
|
public DateTime? PeriodTo { get; set; }
|
||||||
|
public DateTime Createdat { get; set; }
|
||||||
|
public DateTime? Modifiedat { get; set; }
|
||||||
|
public List<SalesDocumentDetailDto> Details { get; set; } = new();
|
||||||
|
public List<SalesDocumentCoverageDto> Coverage { get; set; } = new();
|
||||||
|
public SalesFiscalDocumentDto? FiscalDocument { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
24
Domain/Dtos/Sales/SalesDocumentSummaryDto.cs
Normal file
24
Domain/Dtos/Sales/SalesDocumentSummaryDto.cs
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
namespace Domain.Dtos.Sales
|
||||||
|
{
|
||||||
|
public class SalesDocumentSummaryDto
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string? InternalDocumentNumber { get; set; }
|
||||||
|
public int DocumentType { get; set; }
|
||||||
|
public int Status { get; set; }
|
||||||
|
public int? QuoteId { get; set; }
|
||||||
|
public int CustomerId { get; set; }
|
||||||
|
public string CustomerName { get; set; } = string.Empty;
|
||||||
|
public int BillToCustomerId { get; set; }
|
||||||
|
public string BillToCustomerName { get; set; } = string.Empty;
|
||||||
|
public DateTime? IssueDate { get; set; }
|
||||||
|
public string Currency { get; set; } = string.Empty;
|
||||||
|
public decimal NetAmount { get; set; }
|
||||||
|
public decimal TaxAmount { get; set; }
|
||||||
|
public decimal TotalAmount { get; set; }
|
||||||
|
public DateTime? PeriodFrom { get; set; }
|
||||||
|
public DateTime? PeriodTo { get; set; }
|
||||||
|
public DateTime Createdat { get; set; }
|
||||||
|
public DateTime? Modifiedat { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
15
Domain/Dtos/Sales/SalesFiscalDocumentAssociationDto.cs
Normal file
15
Domain/Dtos/Sales/SalesFiscalDocumentAssociationDto.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
namespace Domain.Dtos.Sales
|
||||||
|
{
|
||||||
|
public class SalesFiscalDocumentAssociationDto
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public int SalesFiscalDocumentId { get; set; }
|
||||||
|
public int? AssociatedSalesDocumentId { get; set; }
|
||||||
|
public int AssociatedVoucherType { get; set; }
|
||||||
|
public short AssociatedPointOfSale { get; set; }
|
||||||
|
public int AssociatedVoucherNumber { get; set; }
|
||||||
|
public string? AssociatedVoucherCuit { get; set; }
|
||||||
|
public DateTime? AssociatedVoucherDate { get; set; }
|
||||||
|
public DateTime Createdat { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
29
Domain/Dtos/Sales/SalesFiscalDocumentDto.cs
Normal file
29
Domain/Dtos/Sales/SalesFiscalDocumentDto.cs
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
namespace Domain.Dtos.Sales
|
||||||
|
{
|
||||||
|
public class SalesFiscalDocumentDto
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public int SalesDocumentId { get; set; }
|
||||||
|
public int FiscalStatus { get; set; }
|
||||||
|
public string Environment { get; set; } = string.Empty;
|
||||||
|
public short? PointOfSale { get; set; }
|
||||||
|
public int? VoucherType { get; set; }
|
||||||
|
public string? VoucherLetter { get; set; }
|
||||||
|
public int? VoucherNumber { get; set; }
|
||||||
|
public string? Cae { get; set; }
|
||||||
|
public DateTime? CaeExpirationDate { get; set; }
|
||||||
|
public string? RequestFingerprint { get; set; }
|
||||||
|
public bool IsFinal { get; set; }
|
||||||
|
public string? ArcaRequestPayloadJson { get; set; }
|
||||||
|
public string? ArcaResponsePayloadJson { get; set; }
|
||||||
|
public string? ErrorsJson { get; set; }
|
||||||
|
public string? EventsJson { get; set; }
|
||||||
|
public string? ObservationsJson { get; set; }
|
||||||
|
public DateTime? AttemptedAtUtc { get; set; }
|
||||||
|
public DateTime? CompletedAtUtc { get; set; }
|
||||||
|
public bool ReconciledAfterTimeout { get; set; }
|
||||||
|
public DateTime Createdat { get; set; }
|
||||||
|
public DateTime? Modifiedat { get; set; }
|
||||||
|
public List<SalesFiscalDocumentAssociationDto> Associations { get; set; } = new();
|
||||||
|
}
|
||||||
|
}
|
||||||
135
Domain/Entities/ESalesDocument.cs
Normal file
135
Domain/Entities/ESalesDocument.cs
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
namespace Domain.Entities
|
||||||
|
{
|
||||||
|
public partial class ESalesDocument
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Identificador interno del documento comercial.
|
||||||
|
/// </summary>
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Talonario/serie interna existente en PhronCare. Reutiliza PhS_FormSeries para numeracion interna.
|
||||||
|
/// </summary>
|
||||||
|
public int? FormseriesId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Numero secuencial interno asignado al emitir internamente el documento. No corresponde al numero fiscal ARCA.
|
||||||
|
/// </summary>
|
||||||
|
public int? InternalSequenceNumber { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Numero visible interno del documento, formado desde la serie/talonario interno. Puede diferir del numero fiscal.
|
||||||
|
/// </summary>
|
||||||
|
public string? InternalDocumentNumber { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tipo comercial interno del documento. Ejemplos: Invoice, DebitNote, CreditNote, CreditInvoice, CreditDebitNote, CreditCreditNote.
|
||||||
|
/// </summary>
|
||||||
|
public int DocumentType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tipo de comprobante fiscal AFIP/ARCA previsto para autorizacion futura. Ejemplos: 1, 6, 11, 201, 202, 203.
|
||||||
|
/// </summary>
|
||||||
|
public int? FiscalVoucherType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Letra fiscal prevista del comprobante: A, B, C u otras segun configuracion fiscal.
|
||||||
|
/// </summary>
|
||||||
|
public string? FiscalVoucherLetter { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Estado comercial interno. Ejemplos: Draft, Validated, Issued, Cancelled. Independiente del estado fiscal.
|
||||||
|
/// </summary>
|
||||||
|
public int Status { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Presupuesto origen opcional. Puede ser NULL para ventas manuales o de escritorio.
|
||||||
|
/// </summary>
|
||||||
|
public int? QuoteId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Cliente origen de la operacion comercial.
|
||||||
|
/// </summary>
|
||||||
|
public int CustomerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Cliente al que se factura realmente. Permite escenarios obra social / particular u otros terceros pagadores.
|
||||||
|
/// </summary>
|
||||||
|
public int BillToCustomerId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fecha de emision interna del documento comercial.
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? IssueDate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Moneda del documento comercial.
|
||||||
|
/// </summary>
|
||||||
|
public string Currency { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Cotizacion utilizada para la moneda del documento.
|
||||||
|
/// </summary>
|
||||||
|
public decimal ExchangeRate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Importe neto total del documento.
|
||||||
|
/// </summary>
|
||||||
|
public decimal NetAmount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Importe total de impuestos del documento.
|
||||||
|
/// </summary>
|
||||||
|
public decimal TaxAmount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Importe total del documento.
|
||||||
|
/// </summary>
|
||||||
|
public decimal TotalAmount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tipo de documento interno asociado opcional, por ejemplo remito, orden de compra o autorizacion. No representa CbtesAsoc fiscal.
|
||||||
|
/// </summary>
|
||||||
|
public string? AssociatedDocumentType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Numero del documento interno asociado opcional.
|
||||||
|
/// </summary>
|
||||||
|
public string? AssociatedDocumentNumber { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fecha del documento interno asociado opcional.
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? AssociatedDocumentDate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Observaciones comerciales del documento.
|
||||||
|
/// </summary>
|
||||||
|
public string? Observations { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Snapshot JSON con informacion extra contextual del documento.
|
||||||
|
/// </summary>
|
||||||
|
public string? ExtraInfoJson { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fecha inicial del periodo comercial facturado. Aplica especialmente a facturacion por capita o periodos mensuales.
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? PeriodFrom { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fecha final del periodo comercial facturado. Aplica especialmente a facturacion por capita o periodos mensuales.
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? PeriodTo { get; set; }
|
||||||
|
|
||||||
|
public DateTime Createdat { get; set; }
|
||||||
|
|
||||||
|
public DateTime? Modifiedat { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<ESalesDocumentCoverage> PhSSalesDocumentCoverages { get; set; } = new List<ESalesDocumentCoverage>();
|
||||||
|
|
||||||
|
public virtual ICollection<ESalesDocumentDetail> PhSSalesDocumentDetails { get; set; } = new List<ESalesDocumentDetail>();
|
||||||
|
|
||||||
|
public virtual ICollection<ESalesFiscalDocumentAssociation> PhSSalesFiscalDocumentAssociations { get; set; } = new List<ESalesFiscalDocumentAssociation>();
|
||||||
|
}
|
||||||
|
}
|
||||||
65
Domain/Entities/ESalesDocumentCoverage.cs
Normal file
65
Domain/Entities/ESalesDocumentCoverage.cs
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
namespace Domain.Entities
|
||||||
|
{
|
||||||
|
public partial class ESalesDocumentCoverage
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Identificador interno de la cobertura.
|
||||||
|
/// </summary>
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Documento de venta que cubre el presupuesto/caso.
|
||||||
|
/// </summary>
|
||||||
|
public int SalesdocumentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detalle del documento de venta asociado a esta cobertura, cuando aplique. En capita puede apuntar a la linea agregada mensual.
|
||||||
|
/// </summary>
|
||||||
|
public int? SalesdocumentdetailId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Presupuesto/caso cubierto por el documento de venta. Se usa tanto para facturacion directa como para capita.
|
||||||
|
/// </summary>
|
||||||
|
public int QuoteId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detalle de presupuesto cubierto, cuando se requiera trazabilidad granular por item.
|
||||||
|
/// </summary>
|
||||||
|
public int? QuoteDetailId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tipo de cobertura. Valores esperados en Domain: Direct, Capita, Adjustment.
|
||||||
|
/// </summary>
|
||||||
|
public int CoverageType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Porcentaje del presupuesto/caso cubierto por el documento. Permite 100% en facturacion directa o particiones 60/40.
|
||||||
|
/// </summary>
|
||||||
|
public decimal? CoveragePercentage { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Importe de referencia cubierto por el documento, cuando aplique.
|
||||||
|
/// </summary>
|
||||||
|
public decimal? CoverageAmount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fecha inicial del periodo de cobertura.
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? PeriodFrom { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fecha final del periodo de cobertura.
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? PeriodTo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Notas internas de cobertura.
|
||||||
|
/// </summary>
|
||||||
|
public string? Notes { get; set; }
|
||||||
|
|
||||||
|
public DateTime Createdat { get; set; }
|
||||||
|
|
||||||
|
public DateTime? Modifiedat { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
94
Domain/Entities/ESalesDocumentDetail.cs
Normal file
94
Domain/Entities/ESalesDocumentDetail.cs
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
namespace Domain.Entities
|
||||||
|
{
|
||||||
|
public partial class ESalesDocumentDetail
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Documento comercial al que pertenece el detalle.
|
||||||
|
/// </summary>
|
||||||
|
public int SalesdocumentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Numero de linea dentro del documento.
|
||||||
|
/// </summary>
|
||||||
|
public int LineNumber { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Origen logico del item: Manual, QuoteDetail, Adjustment u otro valor definido por Domain/Core.
|
||||||
|
/// </summary>
|
||||||
|
public string OriginType { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Identificador generico del origen cuando aplique.
|
||||||
|
/// </summary>
|
||||||
|
public int? OriginId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Detalle del presupuesto aprobado que origina la linea, cuando exista. Puede ser NULL en ventas manuales.
|
||||||
|
/// </summary>
|
||||||
|
public int? QuoteDetailId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Producto asociado a la linea, si aplica.
|
||||||
|
/// </summary>
|
||||||
|
public int? ProductId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Descripcion visible de la linea facturada.
|
||||||
|
/// </summary>
|
||||||
|
public string Description { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Cantidad facturada.
|
||||||
|
/// </summary>
|
||||||
|
public decimal Quantity { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Precio unitario autorizado o de referencia proveniente del origen comercial.
|
||||||
|
/// </summary>
|
||||||
|
public decimal? AuthorizedUnitPrice { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Importe autorizado o de referencia proveniente del origen comercial.
|
||||||
|
/// </summary>
|
||||||
|
public decimal? AuthorizedAmount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Porcentaje facturado sobre el origen. Permite facturacion parcial obra social / particular.
|
||||||
|
/// </summary>
|
||||||
|
public decimal? BilledPercentage { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Precio unitario efectivo de la linea del documento.
|
||||||
|
/// </summary>
|
||||||
|
public decimal UnitPrice { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Importe neto de la linea.
|
||||||
|
/// </summary>
|
||||||
|
public decimal NetAmount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Importe de impuestos de la linea.
|
||||||
|
/// </summary>
|
||||||
|
public decimal TaxAmount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Importe total de la linea.
|
||||||
|
/// </summary>
|
||||||
|
public decimal TotalAmount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Snapshot JSON del origen de la linea para trazabilidad historica.
|
||||||
|
/// </summary>
|
||||||
|
public string? OriginSnapshotJson { get; set; }
|
||||||
|
|
||||||
|
public DateTime Createdat { get; set; }
|
||||||
|
|
||||||
|
public DateTime? Modifiedat { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<ESalesDocumentCoverage> PhSSalesDocumentCoverages { get; set; } = new List<ESalesDocumentCoverage>();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
108
Domain/Entities/ESalesFiscalDocument.cs
Normal file
108
Domain/Entities/ESalesFiscalDocument.cs
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
namespace Domain.Entities
|
||||||
|
{
|
||||||
|
public partial class ESalesFiscalDocument
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Documento comercial interno vinculado al documento fiscal.
|
||||||
|
/// </summary>
|
||||||
|
public int SalesdocumentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Estado fiscal independiente del estado comercial. Ejemplos: None, Pending, Authorized, Rejected, Error, PendingReconciliation.
|
||||||
|
/// </summary>
|
||||||
|
public int FiscalStatus { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ambiente fiscal usado para autorizacion: homologacion, produccion u otro valor definido por configuracion.
|
||||||
|
/// </summary>
|
||||||
|
public string Environment { get; set; } = null!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Punto de venta fiscal ARCA/AFIP.
|
||||||
|
/// </summary>
|
||||||
|
public short? PointOfSale { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tipo de comprobante fiscal ARCA/AFIP utilizado en FECAESolicitar.
|
||||||
|
/// </summary>
|
||||||
|
public int? VoucherType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Letra fiscal del comprobante autorizado o a autorizar.
|
||||||
|
/// </summary>
|
||||||
|
public string? VoucherLetter { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Numero fiscal del comprobante asignado para ARCA. Se mantiene separado del numero interno.
|
||||||
|
/// </summary>
|
||||||
|
public int? VoucherNumber { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Codigo de autorizacion electronico obtenido desde ARCA/AFIP.
|
||||||
|
/// </summary>
|
||||||
|
public string? Cae { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fecha de vencimiento del CAE.
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? CaeExpirationDate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Huella de idempotencia fiscal para evitar duplicacion de solicitudes ante ARCA.
|
||||||
|
/// </summary>
|
||||||
|
public string? RequestFingerprint { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Indica si el resultado fiscal es final y no debe volver a mutar salvo procesos controlados de auditoria.
|
||||||
|
/// </summary>
|
||||||
|
public bool IsFinal { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Payload JSON enviado a ARCA/AFIP.
|
||||||
|
/// </summary>
|
||||||
|
public string? ArcaRequestPayloadJson { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Payload JSON recibido desde ARCA/AFIP.
|
||||||
|
/// </summary>
|
||||||
|
public string? ArcaResponsePayloadJson { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Errores devueltos por ARCA/AFIP serializados como JSON.
|
||||||
|
/// </summary>
|
||||||
|
public string? ErrorsJson { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Eventos devueltos por ARCA/AFIP serializados como JSON.
|
||||||
|
/// </summary>
|
||||||
|
public string? EventsJson { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Observaciones devueltas por ARCA/AFIP serializadas como JSON.
|
||||||
|
/// </summary>
|
||||||
|
public string? ObservationsJson { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fecha/hora UTC del intento de autorizacion fiscal.
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? AttemptedAtUtc { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fecha/hora UTC de finalizacion del flujo fiscal.
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? CompletedAtUtc { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Indica que el documento fiscal fue resuelto mediante reconciliacion posterior a timeout o resultado ambiguo.
|
||||||
|
/// </summary>
|
||||||
|
public bool ReconciledAfterTimeout { get; set; }
|
||||||
|
|
||||||
|
public DateTime Createdat { get; set; }
|
||||||
|
|
||||||
|
public DateTime? Modifiedat { get; set; }
|
||||||
|
|
||||||
|
public virtual ICollection<ESalesFiscalDocumentAssociation> PhSSalesFiscalDocumentAssociations { get; set; } = new List<ESalesFiscalDocumentAssociation>();
|
||||||
|
}
|
||||||
|
}
|
||||||
46
Domain/Entities/ESalesFiscalDocumentAssociation.cs
Normal file
46
Domain/Entities/ESalesFiscalDocumentAssociation.cs
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
namespace Domain.Entities
|
||||||
|
{
|
||||||
|
public partial class ESalesFiscalDocumentAssociation
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Documento fiscal que contiene esta asociacion.
|
||||||
|
/// </summary>
|
||||||
|
public int SalesfiscaldocumentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Documento comercial interno asociado, si existe dentro de PhronCare.
|
||||||
|
/// </summary>
|
||||||
|
public int? AssociatedSalesdocumentId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Tipo fiscal ARCA/AFIP del comprobante asociado.
|
||||||
|
/// </summary>
|
||||||
|
public int AssociatedVoucherType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Punto de venta fiscal del comprobante asociado.
|
||||||
|
/// </summary>
|
||||||
|
public short AssociatedPointOfSale { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Numero fiscal del comprobante asociado.
|
||||||
|
/// </summary>
|
||||||
|
public int AssociatedVoucherNumber { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CUIT emisor del comprobante asociado, cuando sea requerido por ARCA.
|
||||||
|
/// </summary>
|
||||||
|
public string? AssociatedVoucherCuit { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fecha del comprobante fiscal asociado.
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? AssociatedVoucherDate { get; set; }
|
||||||
|
|
||||||
|
public DateTime Createdat { get; set; }
|
||||||
|
|
||||||
|
public virtual ESalesDocument? AssociatedSalesdocument { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user