Cosmos.Types
1.3.1
dotnet add package Cosmos.Types --version 1.3.1
NuGet\Install-Package Cosmos.Types -Version 1.3.1
<PackageReference Include="Cosmos.Types" Version="1.3.1" />
<PackageVersion Include="Cosmos.Types" Version="1.3.1" />
<PackageReference Include="Cosmos.Types" />
paket add Cosmos.Types --version 1.3.1
#r "nuget: Cosmos.Types, 1.3.1"
#:package Cosmos.Types@1.3.1
#addin nuget:?package=Cosmos.Types&version=1.3.1
#tool nuget:?package=Cosmos.Types&version=1.3.1
Cosmos.Types
Tipos base del ERP Cosmos: Dinero (monto + moneda con aritmética segura), el enum Moneda
y McpComponentResponse<T>. Superficie estable y preexistente.
Instalación
dotnet add package Cosmos.Types
Uso
using Cosmos.Types;
var precio = Dinero.Crear(19990m, Moneda.COP);
var total = precio + Dinero.Crear(5000m, Moneda.COP); // misma moneda
var enUsd = total.ConvertTo(Moneda.USD, tasaDeCambio: 0.00025m);
// Operar montos de monedas distintas lanza InvalidOperationException.
Dinero es un record (igualdad por valor) e implementa IComparable<Dinero>; comparar o sumar
montos de monedas distintas es un error explícito. Moneda cubre COP, USD, EUR, AUD.
Precisión y redondeo
Moneda.COP.Decimales(); // 2 (ISO 4217)
var monto = Dinero.Crear(2.5m, Moneda.COP);
monto.RedondearA(0); // 2 — medio a par (NTC 3711, DIAN)
monto.RedondearA(0, MidpointRounding.AwayFromZero); // 3 — medio arriba (p. ej. DGI Panamá)
Dinero.Crear(100.00m, Moneda.COP).TieneMasDecimalesQue(0); // false: compara el valor, no la escala
Decimales() es el dato ISO; una precisión propia del servicio (COP "al peso", 0 decimales) la
declara el servicio. El modo de empate lo fija la jurisdicción, no la moneda: por eso RedondearA(int)
conserva medio a par y la sobrecarga recibe el modo explícito.
Reparto proporcional
RepartoProporcional.Repartir(100m, [1m, 1m, 1m], 0, MidpointRounding.ToEven); // 34, 33, 33
RepartoProporcional.Repartir(Dinero.Crear(100m, Moneda.USD), [1m, 2m],
MidpointRounding.ToEven); // 33.33 USD, 66.67 USD
Las ponderaciones son relativas (no tienen que sumar 1 ni 100). Multiplica antes de dividir, redondea cada parte con el modo pedido (sin default) y lleva el residuo
a la parte de mayor valor absoluto (en empate, la primera), así que las partes suman exactamente el
total y vuelven en el orden recibido. Ninguna parte cruza cero: si hay que descontar un residuo mayor que la
parte de mayor valor, esa parte queda en cero y el resto pasa a la siguiente (pasa con muchas partes de
pocas unidades que redondean hacia afuera). La fachada sobre Dinero usa los decimales ISO de
la moneda salvo que se pasen otros. Una lista de ponderaciones vacía o un total con más decimales que la
precisión lanzan ArgumentException; una ponderación no positiva, decimales fuera de 0..28 o un modo
distinto de ToEven/AwayFromZero, ArgumentOutOfRangeException.
McpComponentResponse<T> es el sobre de respuesta de componentes MCP (Version, Data, Modulo,
Componente).
Requiere net10.0.
Documentación
Licencia
Uso interno del ERP Cosmos.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages (11)
Showing the top 5 NuGet packages that depend on Cosmos.Types:
| Package | Downloads |
|---|---|
|
Cosmos.Impuestos.Contratos
Eventos públicos de integración de Cosmos Impuestos (IPublicEvent) para consumidores en otros bounded contexts. |
|
|
ObligacionesPorPagar.Entradas.Contratos
Contratos de reconocimiento expuestos a terceros. |
|
|
Cosmos.Contabilidad.Contratos
Package Description |
|
|
ObligacionesPorPagar.Reconocimiento.Contratos
Contratos de reconocimiento expuestos a terceros. |
|
|
Cosmos.EstructuraOrganizacional.Contratos
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.