Si le gusta este proyecto puede apoyarlo dandole una estrella, seguirlo o contribuir!
Una estructura para trabajar de forma rápida y segura el valor CUIT (Argentino) en aplicaciones C#.
Plataforma | Estado |
---|---|
NuGet |
Install-Package Pixelario.CUIT -Version 0.10.3
Puede instanciar un CUIT de tres formas. Por sus componentes, por un valor long o una cadena con y sin separadores.
var tipo = TipoDeCUIT._20;
var numeroDeDocumento = 27001001;
var verificador = (byte)7;
var cuit = new CUIT(
tipoDeCUIT: tipo,
numeroDeDocumento: numeroDeDocumento,
verificador: verificador);
var long1 = 20270010017;
var cuit1 = CUIT.Parse(
cuit: long1);
var cadena1 = "20270010017";
var cuit1 = CUIT.Parse(
cuit: cadena1);
var cadena2 = "20-27001001-7";
var cuit2 = CUIT.Parse(
cuit: cadena2);
var cadena3 = "20.7001001.7";
var cuit3 = CUIT.Parse(
cuit: cadena3);
var cadena4 = "20 27001001 7";
var cuit4 = CUIT.Parse(
cuit: cadena4);
El componente tipo es un enum con las siguientes opciones
public enum TipoDeCUIT {
_20 = 20,
_23 = 23,
_24 = 24,
_27 = 27,
_30 = 30,
_33 = 33,
_34 = 34
}
.IsValid calcula y controla que los componentes del CUIT verifican que es valido.
bool cuitIsValid = cuit.IsValid();
Puede expresar un CUIT de distintas formas usuando como parametro un separador.
var tipo = TipoDeCUIT._20;
var numeroDeDocumento = 27001001;
var verificador = (byte)7;
var cuit = new CUIT(
tipoDeCUIT: tipo,
numeroDeDocumento: numeroDeDocumento,
verificador: verificador);
Console.WriteLine(cuit.ToString()); // 20270010017
Console.WriteLine(cuit.ToString("guion")); // 20-27001001-7
Console.WriteLine(cuit.ToString("hyphen")); // 20-27001001-7
Console.WriteLine(cuit.ToString("punto")); // 20.27001001.7
Console.WriteLine(cuit.ToString("dot")); // 20.27001001.7
Console.WriteLine(cuit.ToString("espacio")); // 20 27001001 7
Console.WriteLine(cuit.ToString("space")); // 20 27001001 7
Console.WriteLine(cuit.ToString('%')); // 20%27001001%7
Puede completar un CUIT con solo los dos primeros componentes: Tipo y Número de Documento.
var cuit = CUIT.Complete(
tipoDeCUIT: TipoDeCUIT._20,
numeroDeDocumento: 27001001);
Puede filtrar CUITs validos de un IEnumerable
var cuitsValidos = listaDeCUITs.OnlyValid().ToList();
Puede filtrar CUITs de un IEnumerable por un rango de números de documento.
var cuits = listaDeCUITs.RangeDocumento(27001001, 10).ToList();
Puede configurar el Context de EFCore con el siguiente código:
public class PersonaEntityTypeConfigurationVarcharSQL : IEntityTypeConfiguration<Persona>
{
public void Configure(EntityTypeBuilder<Persona> builder)
{
builder.Property(p => p.CUIT)
.HasConversion(
c =>c.ToString(),
c => CUIT.Parse(c));
}
}
Crear una migración y actualizar la base de datos.
dotnet ef migrations add Initial
dotnet ef database update
Se construirá una columna en la tabla de la entidad para el valor CUIT en string
Ver Web API demo
Clave Única de Identificación Tributaria
Puede agregar un Issue, una discución, ser sponsor o enviar un PR.