Giuliano Paschoalino 690ab131aa feat: Initialize ComplianceNFs project structure with core, infrastructure, service, and monitor components
- Created ComplianceNFs.Core project with domain entities and ports
- Implemented BuyingRecord, EnergyInvoice, ParsedInvoice entities
- Defined domain interfaces for mail listening, XML and PDF parsing, and repository access
- Established ComplianceNFs.Infrastructure project with file archiving, mail listening, and data access implementations
- Developed PDF and XML parsers for invoice data extraction
- Set up AccessDbRepository and AttachmentRepository for data retrieval and storage
- Created ComplianceNFs.Service project for background processing and service orchestration
- Implemented Worker service for periodic tasks
- Established ComplianceNFs.Monitor project with WPF UI for monitoring invoice statuses
- Added ViewModel for UI data binding and command handling
- Configured project files for .NET 9.0 and necessary package references
- Created initial appsettings.json for configuration management
- Added TODOs and roadmap for future development
2025-06-05 14:47:28 -03:00

43 lines
1.3 KiB
C#

using System;
namespace ComplianceNFs.Core.Entities
{
public class EnergyInvoice
{
public int InvoiceId { get; set; } // PK
public string Filename { get; set; }
public string SupplierEmail { get; set; }
public string ConversationId { get; set; }
public DateTime ReceivedDate { get; set; }
public string Md5 { get; set; }
public string CnpjComp { get; set; }
public string CnpjVend { get; set; }
public decimal MontNF { get; set; }
public decimal PrecNF { get; set; }
public decimal ValorSemImpostos { get; set; }
public decimal ValorFinalComImpostos { get; set; }
public string RsComp { get; set; }
public string RsVend { get; set; }
public string NumeroNF { get; set; }
public decimal IcmsNF { get; set; }
public string UfComp { get; set; }
public string UfVend { get; set; }
public int? MatchedCodTE { get; set; } // FK to BuyingRecord
public InvoiceStatus Status { get; set; }
public string DiscrepancyNotes { get; set; }
}
public enum InvoiceStatus
{
Pending,
Matched,
FallbackMatched,
VolumeMismatch,
PriceMismatch,
TaxMismatch,
NotFound,
Error,
Validated
}
}