Skip to content

Class CrossIndustryInvoiceBusinessRule

Represents any business rule for validating a Factur-X document.

Assembly: FacturXDotNet.dll
csharp
public abstract record CrossIndustryInvoiceBusinessRule : BusinessRule, IEquatable<BusinessRule>, IEquatable<CrossIndustryInvoiceBusinessRule>

Inheritance: System.Object -> FacturXDotNet.Validation.BusinessRules.BusinessRule

Derived:

Expand

FacturXDotNet.Validation.BusinessRules.CII.Br.Br01InvoiceShallHaveSpecificationIdentifier, FacturXDotNet.Validation.BusinessRules.CII.Br.Br02InvoiceShallHaveInvoiceNumber, FacturXDotNet.Validation.BusinessRules.CII.Br.Br03InvoiceShallHaveIssueDate, FacturXDotNet.Validation.BusinessRules.CII.Br.Br04InvoiceShallHaveTypeCode, FacturXDotNet.Validation.BusinessRules.CII.Br.Br05InvoiceShallHaveCurrencyCode, FacturXDotNet.Validation.BusinessRules.CII.Br.Br06InvoiceShallHaveSellerName, FacturXDotNet.Validation.BusinessRules.CII.Br.Br07InvoiceShallHaveBuyerName, FacturXDotNet.Validation.BusinessRules.CII.Br.Br08InvoiceShallHaveSellerPostalAddress, FacturXDotNet.Validation.BusinessRules.CII.Br.Br09InvoiceShallHaveSellerPostalAddressWithCountryCode, FacturXDotNet.Validation.BusinessRules.CII.Br.Br13InvoiceShallHaveTotalAmountWithoutVat, FacturXDotNet.Validation.BusinessRules.CII.Br.Br14InvoiceShallHaveTotalAmountWithVat, FacturXDotNet.Validation.BusinessRules.CII.Br.Br15InvoiceShallHaveAmountDueForPayment, FacturXDotNet.Validation.BusinessRules.CII.BrCo.BrCo09, FacturXDotNet.Validation.BusinessRules.CII.BrCo.BrCo26, FacturXDotNet.Validation.BusinessRules.CII.BrDec.BrDec12InvoiceTotalAmountWithoutVatHasTwoDecimals, FacturXDotNet.Validation.BusinessRules.CII.BrDec.BrDec13InvoiceTotalVatAmountHasTwoDecimals, FacturXDotNet.Validation.BusinessRules.CII.BrDec.BrDec14InvoiceTotalAmountHasTwoDecimals, FacturXDotNet.Validation.BusinessRules.CII.BrDec.BrDec18InvoiceDueAmountHasTwoDecimals, FacturXDotNet.Validation.BusinessRules.CII.BrS.BrS01

Implements:
System.IEquatable<FacturXDotNet.Validation.BusinessRules.BusinessRule>, System.IEquatable<FacturXDotNet.Validation.BusinessRules.CII.CrossIndustryInvoiceBusinessRule>

Properties

EqualityContract

csharp
protected override Type EqualityContract { get; }

TermsInvolved

The business terms that are used to check this rule.

csharp
public IReadOnlyCollection<string> TermsInvolved { get; init; }

Methods

Check(CrossIndustryInvoice?, IBusinessRuleDetailsLogger?)

Determines whether the invoice satisfies the conditions defined by the rule.

csharp
public abstract bool Check(CrossIndustryInvoice? cii, IBusinessRuleDetailsLogger? logger = null)
Returns

System.Boolean: true if the rule is satisfied by the invoice; otherwise false.

Parameters
TypeNameDescription
FacturXDotNet.Models.CII.CrossIndustryInvoiceciiThe Cross-Industry Invoice to validate.
FacturXDotNet.Validation.BusinessRules.IBusinessRuleDetailsLoggerlogger

Format()

Formats the rule as a string.

csharp
public override string Format()
Returns

System.String

ToString()

csharp
public override string ToString()
Returns

System.String

PrintMembers(StringBuilder)

csharp
protected override bool PrintMembers(StringBuilder builder)
Returns

System.Boolean

Parameters
TypeName
System.Text.StringBuilderbuilder

GetHashCode()

csharp
public override int GetHashCode()
Returns

System.Int32

Equals(object?)

csharp
public override bool Equals(object? obj)
Returns

System.Boolean

Parameters
TypeName
System.Objectobj

Equals(BusinessRule?)

csharp
public override sealed bool Equals(BusinessRule? other)
Returns

System.Boolean

Parameters
TypeName
FacturXDotNet.Validation.BusinessRules.BusinessRuleother

Equals(CrossIndustryInvoiceBusinessRule?)

csharp
public virtual bool Equals(CrossIndustryInvoiceBusinessRule? other)
Returns

System.Boolean

Parameters
TypeName
FacturXDotNet.Validation.BusinessRules.CII.CrossIndustryInvoiceBusinessRuleother

Deconstruct(out string, out string, out FacturXProfileFlags, out IReadOnlyCollection<string>)

csharp
public void Deconstruct(out string Name, out string Description, out FacturXProfileFlags Profiles, out IReadOnlyCollection<string> TermsInvolved)
Parameters
TypeName
System.StringName
System.StringDescription
FacturXDotNet.Models.FacturXProfileFlagsProfiles
System.Collections.Generic.IReadOnlyCollection<System.String>TermsInvolved

Implements

  • System.IEquatable<FacturXDotNet.Validation.BusinessRules.BusinessRule>
  • System.IEquatable<FacturXDotNet.Validation.BusinessRules.CII.CrossIndustryInvoiceBusinessRule>

The tools are open source and released under the MIT License, feel free to use, modify, and share.