Class SwicoBillInformation
Bill information (according to Swico S1) for automated processing of invoices.
Swico S1 (see http://swiss-qr-invoice.org/downloads/qr-bill-s1-syntax-de.pdf) is one of the supported standards for adding structured billing information to a QR bill (in the field StrdBkgInf).
Inheritance
Implements
Inherited Members
Namespace: Codecrete.SwissQRBill.Generator
Assembly: Codecrete.SwissQRBill.Core.dll
Syntax
public class SwicoBillInformation : IEquatable<SwicoBillInformation>
Properties
| Improve this Doc View SourceCustomerReference
Gets or sets the customer reference.
Declaration
public string CustomerReference { get; set; }
Property Value
Type | Description |
---|---|
System.String |
DueDate
Gets the due date.
The due date is calculated from the invoice date and the payment condition with a discount of 0.
Declaration
public DateTime? DueDate { get; }
Property Value
Type | Description |
---|---|
System.Nullable<System.DateTime> |
InvoiceDate
Gets or sets the invoice date.
Declaration
public DateTime? InvoiceDate { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<System.DateTime> |
InvoiceNumber
Gets or sets the invoice number.
Declaration
public string InvoiceNumber { get; set; }
Property Value
Type | Description |
---|---|
System.String |
PaymentConditions
Gets or sets the payment conditions.
Each element in the list is a tuple of a payment discount (in percent) and a deadline (in days from the invoice date).
Declaration
public List<(decimal, int)> PaymentConditions { get; set; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.List<System.ValueTuple<System.Decimal, System.Int32>> |
Examples
If the list contained (2, 10), (0, 60), a discount of 2% applies if the payment is made by 10 days after invoice data. The payment is due 60 days after invoice date.
| Improve this Doc View SourceVatDate
Gets or sets the date when the goods or service were supplied.
Declaration
public DateTime? VatDate { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<System.DateTime> |
Remarks
If this property is non-null, VatStartDate and VatEndDate must not be used.
VatEndDate
Gets or sets the end date of the period when the service was supplied (e.g. a subscription).
Declaration
public DateTime? VatEndDate { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<System.DateTime> |
Remarks
If this property is non-null, VatStartDate must be set as well, and VatDate must not be used.
VatImportTaxes
Gets or sets a list of VAT import taxes.
Each element in the list is a tuple of VAT rate (in percent) and VAT amount (in QR bill currency). It indicates that the specified VAT rate was applied and resulted in the specified tax amount.
Declaration
public List<(decimal, decimal)> VatImportTaxes { get; set; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.List<System.ValueTuple<System.Decimal, System.Decimal>> |
Examples
If the list contained (7.7, 48.37), (2.5, 12.4) for an invoice in CHF, a VAT rate of 7.7% has been applied to a part of the items resulting in CHF 48.37 in tax and a rate of 2.5% has been applied to another part of the items resulting in CHF 12.40 in tax.
| Improve this Doc View SourceVatNumber
Gets or sets the invoicing party's VAT number.
The number without any prefix, white space, separator or suffix, i.e. "106017086" instead of "CHE-106.017.086 MWST".
Declaration
public string VatNumber { get; set; }
Property Value
Type | Description |
---|---|
System.String |
VatRate
Gets or sets the VAT rate (in percent) in case the same rate applies to the entire invoice.
If different rates apply to invoice line items, this property is null
and
VatRateDetails is used instead.
Declaration
public decimal? VatRate { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<System.Decimal> |
VatRateDetails
Gets or sets a list of VAT rates.
Each element in the list is a tuple of VAT rate (in percent) and amount (in QR bill currency). It indicates that the specified VAT rate applies to the specified net amount (partial amount) of the invoice.
If a single VAT rate applies to the entire invoice, this list is null
and
VatRate is used instead.
Declaration
public List<(decimal, decimal)> VatRateDetails { get; set; }
Property Value
Type | Description |
---|---|
System.Collections.Generic.List<System.ValueTuple<System.Decimal, System.Decimal>> |
Examples
If the list contained (8, 1000), (2.5, 51.8), (7.7, 250) for an invoice in CHF, a VAT rate of 8% would apply to CHF 1000.00, 2.5% for CHF 51.80 and 7.7% for CHF 250.00.
| Improve this Doc View SourceVatStartDate
Gets or sets the start date of the period when the service was supplied (e.g. a subscription).
Declaration
public DateTime? VatStartDate { get; set; }
Property Value
Type | Description |
---|---|
System.Nullable<System.DateTime> |
Remarks
If this property is non-null, VatEndDate must be set as well, and VatDate must not be used.
Methods
| Improve this Doc View SourceDecodeText(String)
Decodes the text of structured billing information and creates a SwicoBillInformation instance.
Declaration
public static SwicoBillInformation DecodeText(string text)
Parameters
Type | Name | Description |
---|---|---|
System.String | text | The structured billing information encoded according to Swico S1 syntax. |
Returns
Type | Description |
---|---|
SwicoBillInformation | The decoded billing information. |
EncodeAsText()
Encodes this bill information as a single text string suitable to be added to a Swiss QR bill.
Declaration
public string EncodeAsText()
Returns
Type | Description |
---|---|
System.String | Encoded text |
Equals(SwicoBillInformation)
Determines whether the specified bill information is equal to the current bill information.
Declaration
public bool Equals(SwicoBillInformation other)
Parameters
Type | Name | Description |
---|---|---|
SwicoBillInformation | other | The bill information to compare with the current bill information. |
Returns
Type | Description |
---|---|
System.Boolean |
|
Equals(Object)
Determines whether the specified object is equal to the current object.
Declaration
public override bool Equals(object obj)
Parameters
Type | Name | Description |
---|---|---|
System.Object | obj | The object to compare with the current object. |
Returns
Type | Description |
---|---|
System.Boolean |
|
Overrides
GetHashCode()
Gets the hash code for this instance.
Declaration
public override int GetHashCode()
Returns
Type | Description |
---|---|
System.Int32 | A hash code for the current object. |