Table of Contents

Class FiscalCountryPropertiesBase<TRequiredAttribute>

Namespace
RetailForce.Fiscalisation.Implementation
Assembly
RetailForce.Fiscalisation.Model.dll

Abstract base class for all fiscal country properties.

public abstract class FiscalCountryPropertiesBase<TRequiredAttribute> : IFiscalCountryProperties where TRequiredAttribute : RequiredAttribute

Type Parameters

TRequiredAttribute

The type of the country specific RequiredAttribute.

Inheritance
FiscalCountryPropertiesBase<TRequiredAttribute>
Implements
Derived
Inherited Members

Properties

AdditionalTaxesMayApply

True if additional taxes have to be sent according to the legislation; otherwise false.

public abstract bool AdditionalTaxesMayApply { get; }

Property Value

bool

AmountDecimalPlaces

Returns the number of allowed decimal places for each amount (price, values, tax values, etc.).

public virtual int AmountDecimalPlaces { get; }

Property Value

int

AuditLogMandatory

True if the audit log has to be filled up; otherwise false.

public abstract bool AuditLogMandatory { get; }

Property Value

bool

CertificationType

Returns if pos certification process is mandatory or not.

public abstract CertificationType CertificationType { get; }

Property Value

CertificationType

CompanyIdentification

Returns mapping for company identification to local numbering systems.

public abstract Dictionary<CompanyIdentification.IdentificationType, CompanyIdentificationInformation> CompanyIdentification { get; }

Property Value

Dictionary<CompanyIdentification.IdentificationType, CompanyIdentificationInformation>

CountryModuleVersion

Returns the version of the country module.

public abstract Version CountryModuleVersion { get; }

Property Value

Version

CustomerDisplayMandatory

True if the customer display fiscal interface has to be implemented; otherwise false.

public abstract bool CustomerDisplayMandatory { get; }

Property Value

bool

DocumentTypeBusinessTransactionTypeSupport

Returns a dictionary for information which document type supports which business transaction type.

public virtual Dictionary<DocumentType, Dictionary<BusinessTransactionType, bool>> DocumentTypeBusinessTransactionTypeSupport { get; }

Property Value

Dictionary<DocumentType, Dictionary<BusinessTransactionType, bool>>

Remarks

If document type is set, but business transaction type dictionary is null -> all business transaction types are allowed. If document type is not found, all business transaction types are allowed. If document type and business transaction type is found, value must be true to be supported.

DokumentBookDateMustBeAscending

Indicates if document book date must be ascending.

public virtual DokumentBookDateMustBeAscendingType DokumentBookDateMustBeAscending { get; }

Property Value

DokumentBookDateMustBeAscendingType

EntityParameters

Returns a list of optional and mandatory entity parameters.

public virtual List<EntityParameterInfo> EntityParameters { get; }

Property Value

List<EntityParameterInfo>

Remarks

Entity parameters are parameters to master data entities (distributor, organization, company, store, terminal) which are necessary for fiscal client configuration.

FiscalCountry

The fiscal country for this property collection.

public abstract FiscalCountry FiscalCountry { get; }

Property Value

FiscalCountry

FiscalDocumentTypes

Returns a list of all fiscal necessary document types for this country.

public abstract List<DocumentType> FiscalDocumentTypes { get; }

Property Value

List<DocumentType>

FiscalLineInterface

True if the items must be transmitted to the fiscal interface individually; False if the whole document must be transmitted at once.

public abstract bool FiscalLineInterface { get; }

Property Value

bool

FiscalModuleCalculatesTaxRates

True if the tax rates for the receipt are calculated by the fiscal module; otherwise false.

public virtual bool FiscalModuleCalculatesTaxRates { get; }

Property Value

bool

FiscalRegions

If the country has different fiscal regions, you can query this property for the fiscal regions for this country.

public virtual List<string> FiscalRegions { get; }

Property Value

List<string>

FiscalisationType

Returns the type of the fiscalisation for this country.

public abstract FiscalisationType FiscalisationType { get; }

Property Value

FiscalisationType

GetCloudArchiveAccessLicense

Returns the cloud archive access license for the respective country.

public abstract string GetCloudArchiveAccessLicense { get; }

Property Value

string

Remarks

Return empty string if there is not cloud

ItemTypeClassificationRequired

True if classification of item is required; otherwise false.

public virtual bool ItemTypeClassificationRequired { get; }

Property Value

bool

LegalForms

Legal forms

public virtual List<LegalForm> LegalForms { get; }

Property Value

List<LegalForm>

MaximumHourIntervalForClosing

The maximum interval in hours between two daily closings. If set to -1 it is infinite.

public abstract int MaximumHourIntervalForClosing { get; }

Property Value

int

Remarks

If the maximum interval is set and documents (except EndOfDay) are sent to the service the documents are blocked with an exception.

MustRecordDocumentReprint

True if the methods TrustedFiscalModule.ReprintDocument(Guid, User, string, int) or TrustedFiscalModule.ReprintDocument(Document, string) must be used to store the number of reprints of a document.

public abstract bool MustRecordDocumentReprint { get; }

Property Value

bool

MustSendCanceledPosition

Returns how deleted positions have to be handled.

public virtual bool MustSendCanceledPosition { get; }

Property Value

bool

MustSendClosingPerDay

True if the pos software must send a closing EndOfDay document each day; otherwise false.

public abstract bool MustSendClosingPerDay { get; }

Property Value

bool

NetValuePositionCalculation

Returns how the tax positions will be validated.

public virtual bool NetValuePositionCalculation { get; }

Property Value

bool

NotSupportedBusinessTransactionTypes

Returns a list of all not supported business transaction types.

public abstract List<BusinessTransactionType> NotSupportedBusinessTransactionTypes { get; }

Property Value

List<BusinessTransactionType>

NotSupportedDocumentTypes

Returns a list of not supported document types (normal case: MiscellaneousNonFiscal.

public abstract List<DocumentType> NotSupportedDocumentTypes { get; }

Property Value

List<DocumentType>

Remarks

A not supported document type must not be included in FiscalDocumentTypes.

NotSupportedPayOutTypes

Returns a list of all not supported pay out types.

public virtual List<PayOutType> NotSupportedPayOutTypes { get; }

Property Value

List<PayOutType>

NotSupportedPaymentTypes

Returns a list of all not supported payment types.

public abstract List<PaymentType> NotSupportedPaymentTypes { get; }

Property Value

List<PaymentType>

OverpaymentNotAllowed

Returns a list of payments for which overpayment (and thus cash return) is not allowed, e.g. voucher payment in some countries.

public abstract List<PaymentType> OverpaymentNotAllowed { get; }

Property Value

List<PaymentType>

PrintFiscalDocumentNumber

Returns whether the fiscal document number (of FiscalResponse) has to be printed out on the receipt or not.

public abstract bool PrintFiscalDocumentNumber { get; }

Property Value

bool

PrinterSupportsAdditionalFooter

True if additional header printing is supported/implemented; otherwise false.

public virtual bool? PrinterSupportsAdditionalFooter { get; }

Property Value

bool?

PrinterSupportsAdditionalHeader

True if additional header printing is supported/implemented; otherwise false.

public virtual bool? PrinterSupportsAdditionalHeader { get; }

Property Value

bool?

PrinterSupportsBarcode

True if printing of barcodes on receipt is supported/implemented; otherwise false.

public virtual bool? PrinterSupportsBarcode { get; }

Property Value

bool?

PrinterSupportsCouponData

True if additional printing of coupon data is supported/implemented; otherwise false.

public virtual bool? PrinterSupportsCouponData { get; }

Property Value

bool?

PrinterSupportsCouponDataGraphic

True if additional graphic printing is supported/implemented; otherwise false.

public virtual bool? PrinterSupportsCouponDataGraphic { get; }

Property Value

bool?

PrinterSupportsPositionGraphics

True if printing of positioned graphics is supported/implemented; otherwise false.

public virtual bool? PrinterSupportsPositionGraphics { get; }

Property Value

bool?

PrinterSupportsPrintCardData

True if additional printing of card data is supported/implemented; otherwise false.

public virtual bool? PrinterSupportsPrintCardData { get; }

Property Value

bool?

ReprintAllowedDomain

Returns the domain within reprints are allowed.

public abstract ReceiptDomain ReprintAllowedDomain { get; }

Property Value

ReceiptDomain

RequiredTimeZone

If set, time zone will be validated; otherwise null or empty.

public abstract string? RequiredTimeZone { get; }

Property Value

string

RequiresParagonRegistration

Returns cash registers must subsequently record handwritten documents (=paragons) which were created in offline mode.

public virtual bool RequiresParagonRegistration { get; }

Property Value

bool

ReturnAndSaleBehavior

Returns whether one or more receipts have to be created when return and sales would both exist on one receipt.

public abstract ReturnAndSaleBehavior ReturnAndSaleBehavior { get; }

Property Value

ReturnAndSaleBehavior

ReturnDomainAllowed

Returns the domain where document references are allowed.

public abstract ReceiptDomain ReturnDomainAllowed { get; }

Property Value

ReceiptDomain

ReturnReferenceBehavior

Returns if more than one document is allowed to reference in one document (Multiple); otherwise not (Single).

public abstract ReturnReferenceBehavior ReturnReferenceBehavior { get; }

Property Value

ReturnReferenceBehavior

RoundingSummaryInEndOfDay

Indicates if rounding summary should be printed in end of day document.

public virtual bool RoundingSummaryInEndOfDay { get; }

Property Value

bool

StartDocumentType

Returns the start document type for initialization.

public virtual DocumentType StartDocumentType { get; }

Property Value

DocumentType

StoreNumberValidCharsRegex

The valid characters for the store number in this country (default: a-z0-9_).

public virtual string StoreNumberValidCharsRegex { get; }

Property Value

string

Remarks

This regex is Microsoft .net notation (for special characters and functions).

SupportedBusinessTransactionTypes

Returns a list of all supported business transaction types.

public abstract List<BusinessTransactionType> SupportedBusinessTransactionTypes { get; }

Property Value

List<BusinessTransactionType>

SupportedDocumentTypes

Returns a list of all by the fiscal module supported document types. Contains all document types (including fiscal document types).

public abstract List<DocumentType> SupportedDocumentTypes { get; }

Property Value

List<DocumentType>

Remarks

A supported document type can be send to the fiscal system, but is not a fiscalized document. Non fiscalized documents normally will not send a FiscalResponse.

SupportedEnvironments

Returns the supported environments for the fiscal module.

public virtual List<FiscalModuleEnvironment> SupportedEnvironments { get; }

Property Value

List<FiscalModuleEnvironment>

SupportedItemTypeClassification

Returns a list of supported item classification

public virtual List<ItemTypeClassification> SupportedItemTypeClassification { get; }

Property Value

List<ItemTypeClassification>

SupportedLegislation

Returns the supported legislation/regulation in this country (as string). For instance Denmark 1.5.2 or France NF525 2.3.

public virtual string SupportedLegislation { get; }

Property Value

string

SupportedPayOutTypes

Returns a list of all supported pay out types.

public virtual List<PayOutType> SupportedPayOutTypes { get; }

Property Value

List<PayOutType>

SupportedPaymentTypes

Returns a list of all supported payment types.

public abstract List<PaymentType> SupportedPaymentTypes { get; }

Property Value

List<PaymentType>

SupportedPlatformTypes

Returns a list of all supported os platform types.

public abstract List<PlatformType> SupportedPlatformTypes { get; }

Property Value

List<PlatformType>

Remarks

Please note that although os platform is supported by the country, there could be limitation by a possible security device (tss in Germany, ...)

SupportedVatDefinitions

Returns the supported vat definitions for this country.

public abstract ReadOnlyCollection<Vat> SupportedVatDefinitions { get; }

Property Value

ReadOnlyCollection<Vat>

Remarks

It is important that values in this list are not changed but only added with respective date span (ValidFrom, ValidTo) to keep the history of vat rates!

SurchargesPossible

True if surcharges in fiscal document types are allowed; otherwise false.

public abstract bool SurchargesPossible { get; }

Property Value

bool

TaxFreeVat

The tax free vat class for this country.

public abstract Vat TaxFreeVat { get; }

Property Value

Vat

TerminalNumberValidCharsRegex

The valid characters for the terminal number in this country (default: a-z0-9_).

public virtual string TerminalNumberValidCharsRegex { get; }

Property Value

string

Remarks

This regex is Microsoft .net notation (for special characters and functions).

TerminalSlaveSupported

True if this country supports slave terminals; otherwise false.

public abstract bool TerminalSlaveSupported { get; }

Property Value

bool

TrainingModeAllowed

True if the training mode in this country is allowed; otherwise false.

public abstract bool TrainingModeAllowed { get; }

Property Value

bool

Methods

CheckAddress(List<ValidationError>, string, Address)

Checks if address is not null and if address fields (Street, StreetNumber, City, PostalCode) are set.

protected void CheckAddress(List<ValidationError> errorList, string objectName, Address address)

Parameters

errorList List<ValidationError>

The error list to add possible validation errors.

objectName string

The name of the object for the error message.

address Address

The address object itself.

Exceptions

ArgumentNullException

Thrown if parameter errorList is set to null.

ArgumentNullException

Thrown if parameter objectName is set to null or Empty.

CompanyIdentificationSet(FiscalClient, IdentificationType)

Returns whether the given type exists and is filled up with at least one character.

protected bool CompanyIdentificationSet(FiscalClient client, CompanyIdentification.IdentificationType type)

Parameters

client FiscalClient

The client to check.

type CompanyIdentification.IdentificationType

The type to check.

Returns

bool

True if the given type exists and the identification field is filled up with at lease one character.

GetFiscalCountryProperties(FiscalCountry)

Returns the fiscal country properties object for the requested country.

public static IFiscalCountryProperties GetFiscalCountryProperties(FiscalCountry fiscalCountry)

Parameters

fiscalCountry FiscalCountry

The fiscal country where the

Returns

IFiscalCountryProperties

The fiscal country properties object for the requested country.

GetFiscalCountryPropertiesList()

Returns all fiscal country properties stored in the fiscalisation module.

public static List<IFiscalCountryProperties> GetFiscalCountryPropertiesList()

Returns

List<IFiscalCountryProperties>

A list of all fiscal country properties stored in the fiscalisation module.

GetVatIdentification(decimal, DateTime, decimal?)

Returns the appropriate vat identification for the requested percentage and date/time.

public virtual int? GetVatIdentification(decimal vatPercent, DateTime requestDate, decimal? vatPercent2)

Parameters

vatPercent decimal

The vat percentage for the requested vat identification.

requestDate DateTime

The date/time for the requested vat identification.

vatPercent2 decimal?

The vat percentage 2 for the requested vat identification, optional.

Returns

int?

An integer representing the vat identification for the requested values; null if nothing is found.

ValidateClient(FiscalClient, bool)

Validates a fiscal client.

public List<ValidationError> ValidateClient(FiscalClient client, bool isNewClient = false)

Parameters

client FiscalClient

The client to validate.

isNewClient bool

Flag for enhanced client validation if set.

Returns

List<ValidationError>

A list of RetailForce.Common.Validation.ValidationError objects representing the validation errors for the client configuration. Null if no validation was done.

Exceptions

ArgumentNullException

Thrown if client is set to null.

ValidateClientImplementation(FiscalClient, bool)

Validate client implementation for specific country

protected abstract List<ValidationError> ValidateClientImplementation(FiscalClient client, bool isNewClient)

Parameters

client FiscalClient

Fiscal client

isNewClient bool

Flag to indicate if client is newly created. If true, extended checks are performed.

Returns

List<ValidationError>