@dangl/ava-model
Version:
Basic npm package for Dangl.AVA models
594 lines • 183 kB
TypeScript
/** This enum configures rounding modes for price calculations in projects */
declare enum PriceRoundingModeDto {
Normal = "Normal",
Floor = "Floor",
Ceiling = "Ceiling"
}
/** General information about a Project. */
declare class ProjectInformationDto implements IProjectInformationDto {
/** Information about the buyer. */
buyer?: PartyInformationDto | undefined;
/** Description for the project. */
description?: string | undefined;
/** Short description for the project. */
descriptionShort?: string | undefined;
/** Name of the project. */
name?: string | undefined;
/** Information about the site. */
site?: PartyInformationDto | undefined;
/** The ItemNumberSchema used in the project. */
itemNumberSchema?: ItemNumberSchemaDto | undefined;
/** Short label for the currency used. */
currencyShort?: string | undefined;
/** Full label of the currency used. */
currencyLong?: string | undefined;
/** Label for the labour time part of prices used in the project. */
labourTimeLabel?: string | undefined;
/** Labels for the price components used in the project. Caution: Removal of a price component will trigger to have dependent price informations be deleted in IElements that use this property. If this property is changed or altered after the project has already been used, it is strongly advised to do operations step by step, e.g. if renaming and reordering multiple price components, this should be done one by one. Otherwise, a combination of rename and reordering will not be correctly propagated downwards to child objects in this Project. */
priceComponents?: string[] | undefined;
/** This dictionary specifies actual types used for the PriceComponents. For example, a single price component might have the name 'Material' as a string, ans this dictionary would then have a key 'Material' and a value of Materials. You can not add keys here that are not also present in the PriceComponents property, and removing price components will also remove them from this dictionary here. */
readonly priceComponentTypes?: {
[key: string]: PriceComponentTypeDto;
} | undefined;
/** This bool indicates if this project allows the bidder to add bidder comments. Bidder comments are a way to attach clarifying information when submitting an offer. */
bidderCommentAllowed: boolean;
/** This property indicates if the project should allow side offers from contractors. In GAEB, a side offer would typically be in exchange phase 85. */
sideOffersAllowed: boolean;
/** This enumeration describes the type of the award / procurement process. If this is used in a GAEB context, more information about award types can be found in the German VOB/A rules and the GAEB standard */
awardType: AwardTypeDto;
/** This enumeration describes awards for project that are not just a regular procurement. For example, it can be used to describe recurring maintenance or an outline contract (German: Rahmenvertrag) which just specifies services and prices but may be requested on demand when necessary */
specialAwardKind: SpecialAwardKindDto;
/** Requesters in a construction project, in German also called 'Bedarfsträger', are parties connected to the building process, e.g. architects or planners. */
requesters?: PartyInformationDto[] | undefined;
/** Notification sites are addresses that are used for delivering messages in the context of construction projects. */
notificationSites?: PartyInformationDto[] | undefined;
constructor(data?: IProjectInformationDto);
init?(_data?: any): void;
static fromJS(data: any): ProjectInformationDto;
toJSON?(data?: any): any;
}
/** General information about a Project. */
interface IProjectInformationDto {
/** Information about the buyer. */
buyer?: IPartyInformationDto | undefined;
/** Description for the project. */
description?: string | undefined;
/** Short description for the project. */
descriptionShort?: string | undefined;
/** Name of the project. */
name?: string | undefined;
/** Information about the site. */
site?: IPartyInformationDto | undefined;
/** The ItemNumberSchema used in the project. */
itemNumberSchema?: IItemNumberSchemaDto | undefined;
/** Short label for the currency used. */
currencyShort?: string | undefined;
/** Full label of the currency used. */
currencyLong?: string | undefined;
/** Label for the labour time part of prices used in the project. */
labourTimeLabel?: string | undefined;
/** Labels for the price components used in the project. Caution: Removal of a price component will trigger to have dependent price informations be deleted in IElements that use this property. If this property is changed or altered after the project has already been used, it is strongly advised to do operations step by step, e.g. if renaming and reordering multiple price components, this should be done one by one. Otherwise, a combination of rename and reordering will not be correctly propagated downwards to child objects in this Project. */
priceComponents?: string[] | undefined;
/** This dictionary specifies actual types used for the PriceComponents. For example, a single price component might have the name 'Material' as a string, ans this dictionary would then have a key 'Material' and a value of Materials. You can not add keys here that are not also present in the PriceComponents property, and removing price components will also remove them from this dictionary here. */
priceComponentTypes?: {
[key: string]: PriceComponentTypeDto;
} | undefined;
/** This bool indicates if this project allows the bidder to add bidder comments. Bidder comments are a way to attach clarifying information when submitting an offer. */
bidderCommentAllowed: boolean;
/** This property indicates if the project should allow side offers from contractors. In GAEB, a side offer would typically be in exchange phase 85. */
sideOffersAllowed: boolean;
/** This enumeration describes the type of the award / procurement process. If this is used in a GAEB context, more information about award types can be found in the German VOB/A rules and the GAEB standard */
awardType: AwardTypeDto;
/** This enumeration describes awards for project that are not just a regular procurement. For example, it can be used to describe recurring maintenance or an outline contract (German: Rahmenvertrag) which just specifies services and prices but may be requested on demand when necessary */
specialAwardKind: SpecialAwardKindDto;
/** Requesters in a construction project, in German also called 'Bedarfsträger', are parties connected to the building process, e.g. architects or planners. */
requesters?: IPartyInformationDto[] | undefined;
/** Notification sites are addresses that are used for delivering messages in the context of construction projects. */
notificationSites?: IPartyInformationDto[] | undefined;
}
/** Represents information about a party (a site or an organization). */
declare class PartyInformationDto implements IPartyInformationDto {
/** Elements GUID identifier. */
id: string;
/** This party's name. */
name?: string | undefined;
/** This party's street. */
street?: string | undefined;
/** This party's ZipCode. */
zipCode?: string | undefined;
/** This party's City. */
city?: string | undefined;
/** This party's Country. */
country?: string | undefined;
/** This party's Identifier. */
identifier?: string | undefined;
/** Remarks for this party. */
remarks?: string | undefined;
/** An email address for this party. */
email?: string | undefined;
/** A phone number for this party. */
phone?: string | undefined;
/** The name of a contact person. */
contactPersonName?: string | undefined;
/** This is an identifier related to this PartyInformation and their internal reference of the tender (or award). This might be used to assign an identifier (German "Vergabenummer") for the current project. This is typically only used in Buyer and Bidder representations and should map to the concept of "Vergabenummer" or "AwardNo" in GAEB. */
awardIdentifier?: string | undefined;
/** This property indicates if the party is registered within the European Economic Area. */
isInEuropeanEconomicArea: boolean;
/** If this is within the European Economic Area (see IsInEuropeanEconomicArea, then as a business entity it likely has an EU VAT Id. */
vatId?: string | undefined;
/** The fax number for this party. */
fax?: string | undefined;
/** The two letter ISO country code, e.g. DE for Germany. */
countryCode?: string | undefined;
/** Depending on which party this class represents, it might have either a 'creditor' or 'debtor' number. This is often used in internal accounting systems. */
creditorOrDebtorIdentifier?: string | undefined;
/** The Global Location Number (GLN) is issued by GS1 and is intended to be a unique identifier for the physical address of a party, e.g. a business office. */
globalLocationNumber?: string | undefined;
/** This list contains information about bank accounts associated with this PartyInformation. It's typically used for buyers and bidders. */
bankingInformation?: BankingInformationDto[] | undefined;
/** This can be used to specify a registration number for this party, e.g. a company registration number. It is usually used in GAEB XML commerce exchanges for bidders to supply their WEEE registration number, which is used to identify them as a registered WEEE company. */
registrationNumber?: string | undefined;
/** This can be used to specify a tax id for this party. It is different from the VatId and the RegistrationNumber. For example, in Germany this would be the "Steuernummer". This is usually not mapped to any AVA exchanges, but it's used e.g. in the XRechnung electronic invoices. */
taxId?: string | undefined;
constructor(data?: IPartyInformationDto);
init?(_data?: any): void;
static fromJS(data: any): PartyInformationDto;
toJSON?(data?: any): any;
}
/** Represents information about a party (a site or an organization). */
interface IPartyInformationDto {
/** Elements GUID identifier. */
id: string;
/** This party's name. */
name?: string | undefined;
/** This party's street. */
street?: string | undefined;
/** This party's ZipCode. */
zipCode?: string | undefined;
/** This party's City. */
city?: string | undefined;
/** This party's Country. */
country?: string | undefined;
/** This party's Identifier. */
identifier?: string | undefined;
/** Remarks for this party. */
remarks?: string | undefined;
/** An email address for this party. */
email?: string | undefined;
/** A phone number for this party. */
phone?: string | undefined;
/** The name of a contact person. */
contactPersonName?: string | undefined;
/** This is an identifier related to this PartyInformation and their internal reference of the tender (or award). This might be used to assign an identifier (German "Vergabenummer") for the current project. This is typically only used in Buyer and Bidder representations and should map to the concept of "Vergabenummer" or "AwardNo" in GAEB. */
awardIdentifier?: string | undefined;
/** This property indicates if the party is registered within the European Economic Area. */
isInEuropeanEconomicArea: boolean;
/** If this is within the European Economic Area (see IsInEuropeanEconomicArea, then as a business entity it likely has an EU VAT Id. */
vatId?: string | undefined;
/** The fax number for this party. */
fax?: string | undefined;
/** The two letter ISO country code, e.g. DE for Germany. */
countryCode?: string | undefined;
/** Depending on which party this class represents, it might have either a 'creditor' or 'debtor' number. This is often used in internal accounting systems. */
creditorOrDebtorIdentifier?: string | undefined;
/** The Global Location Number (GLN) is issued by GS1 and is intended to be a unique identifier for the physical address of a party, e.g. a business office. */
globalLocationNumber?: string | undefined;
/** This list contains information about bank accounts associated with this PartyInformation. It's typically used for buyers and bidders. */
bankingInformation?: IBankingInformationDto[] | undefined;
/** This can be used to specify a registration number for this party, e.g. a company registration number. It is usually used in GAEB XML commerce exchanges for bidders to supply their WEEE registration number, which is used to identify them as a registered WEEE company. */
registrationNumber?: string | undefined;
/** This can be used to specify a tax id for this party. It is different from the VatId and the RegistrationNumber. For example, in Germany this would be the "Steuernummer". This is usually not mapped to any AVA exchanges, but it's used e.g. in the XRechnung electronic invoices. */
taxId?: string | undefined;
}
/** This is a class that represents the information about a bank connection. It is usually used within a PartyInformation. */
declare class BankingInformationDto implements IBankingInformationDto {
/** Elements GUID identifier. */
id: string;
/** The name of the bank. */
name?: string | undefined;
/** The international identifier for the bank account. */
iban?: string | undefined;
/** The account number. Typically no longer used since the introduction of IBAN within the SEPA area. */
accountNumber?: string | undefined;
/** The international bank identifier. */
bic?: string | undefined;
/** The routing number for the bank. Typically no longer used since the introduction of IBAN within the SEPA area. */
routingNumber?: string | undefined;
constructor(data?: IBankingInformationDto);
init?(_data?: any): void;
static fromJS(data: any): BankingInformationDto;
toJSON?(data?: any): any;
}
/** This is a class that represents the information about a bank connection. It is usually used within a PartyInformation. */
interface IBankingInformationDto {
/** Elements GUID identifier. */
id: string;
/** The name of the bank. */
name?: string | undefined;
/** The international identifier for the bank account. */
iban?: string | undefined;
/** The account number. Typically no longer used since the introduction of IBAN within the SEPA area. */
accountNumber?: string | undefined;
/** The international bank identifier. */
bic?: string | undefined;
/** The routing number for the bank. Typically no longer used since the introduction of IBAN within the SEPA area. */
routingNumber?: string | undefined;
}
/** The schema for ItemNumber's in a Project. */
declare class ItemNumberSchemaDto implements IItemNumberSchemaDto {
/** The count of tiers in the ItemNumberSchema */
readonly totalLength: number;
/** The collection of tiers for this ItemNumberSchema. */
tiers?: ItemNumberSchemaTierDto[] | undefined;
/** The separator to use for separiting the different levels in an ItemNumber. Defaults to DEFAULT_SEPARATOR, which is a point '.'. Setting this to a space or other whitespaces is discouraged, as this might not work correct in all situations and item numbers could be displayed not as intended. This can not be set to an empty or null string, trying that will default to the DEFAULT_SEPARATOR. If a value is set that has a different length than one '1', the DEFAULT_SEPARATOR will be used instead. You should also not use values for the separator that are also valid for the item numbers themselves, as that might also lead to incorrect results */
separator?: string | undefined;
/** This string is used to fill (left-pad) item numbers. For example, if a tier has a length of '4' but the given item number is '12', with a Filler of '0', then the final item number will be represented as '0'. This must be a single character string, if a value is given where the Length property does not evaluate to '1', the DEFAULT_FILLER '0' is used. A space is fine to use. You should ensure that you use a value different than Separator, as that might produce unexpected results. No attempt is done by the code to recover from such ambiguous configurations. */
filler?: string | undefined;
/** This is just a string property that can optionally be used to store additional data for this ItemNumberSchema, e.g. an identification or a type. It does not have any influence over how item numbers are generated, and is not supported in most exchange formats. However, it is used to store ÖNorm service specification structure types. */
identifier?: string | undefined;
/** This property indicates if ItemNumbers using this ItemNumberSchema should skip empty group levels. This is commonly only used in GAEB files, where there might be gaps in the hierarchy of elements and position identifiers should be placed at the end of the string representation. */
skipNonExistingLevelsInPositionItemNumbers: boolean;
/** This string is used only when the property SkipNonExistingLevelsInPositionItemNumbers in this ItemNumberSchema is also set to true. It defaults to DEFAULT_SKIPPED_TIERS_FILLER, but can be set to any string with a lenght of one. Null values or values with a longer length will lead to this property reverting back to the default value. This is used to fill skipped tiers in item numbers where a position is placed in a higher hierarchy level than what would be defined in the Tiers. For example, it could produce an item number like '01.__.02', which would indicate a skipped second level. This should be using different values than Filler and Separator, since that could cause ambiguities in the code that generates the actual item numbers. No attempt is done by the code to recover from such ambiguous configurations. */
skippedTiersFiller?: string | undefined;
/** This is a read-only property that indicates if this schema has a valid structure. It internally just returns the result from IsCorrectlyDefined. This will return if the ItemNumberSchema is correctly defined. For it to be correctly defined, the following conditions must be true: There may only be one lot group, if there is one, it must be at the top. Following lot levels, there may be at least one group level. After the group levels, there must be one position level. After the position level, there may be one index level. If no tiers are defined at all, this will also return false. */
readonly schemaIsCorrectlyDefined: boolean;
/** Defaults to false. If this is disabled, all letters in the ItemNumber string representations will be transformed to their lowercase representation. */
allowUpperCaseLettering: boolean;
/** If this is set to true, single identifiers in an item number will not be left padded to fill the length of the tier. This is useful for allowing custom formats in item numbers, without following the GAEB standard. Defaults to false. */
disableLeftPaddingTiersWithFiller: boolean;
/** If this is enabled, then item numbers will not be transformed, except padded. This makes it possible to represent item numbers as-is from e.g. a GAEB file, and also mixing padded and non-padded segments in an item number. This is not recommonded to use by default, since it will lead to inconsistent item numbers in the project. */
disableItemNumberIdentifierTransformations: boolean;
/** This property is used in combination with DisableItemNumberIdentifierTransformations. If this is enabled, then the transformation of item numbers is only disabled for alphanumeric tiers. This means that numeric tiers will still be padded with the filler character, but alphanumeric tiers will not be transformed */
disableItemNumberIdentifierTransformationsOnlyForAlphanumericTiers: boolean;
constructor(data?: IItemNumberSchemaDto);
init?(_data?: any): void;
static fromJS(data: any): ItemNumberSchemaDto;
toJSON?(data?: any): any;
}
/** The schema for ItemNumber's in a Project. */
interface IItemNumberSchemaDto {
/** The count of tiers in the ItemNumberSchema */
totalLength: number;
/** The collection of tiers for this ItemNumberSchema. */
tiers?: IItemNumberSchemaTierDto[] | undefined;
/** The separator to use for separiting the different levels in an ItemNumber. Defaults to DEFAULT_SEPARATOR, which is a point '.'. Setting this to a space or other whitespaces is discouraged, as this might not work correct in all situations and item numbers could be displayed not as intended. This can not be set to an empty or null string, trying that will default to the DEFAULT_SEPARATOR. If a value is set that has a different length than one '1', the DEFAULT_SEPARATOR will be used instead. You should also not use values for the separator that are also valid for the item numbers themselves, as that might also lead to incorrect results */
separator?: string | undefined;
/** This string is used to fill (left-pad) item numbers. For example, if a tier has a length of '4' but the given item number is '12', with a Filler of '0', then the final item number will be represented as '0'. This must be a single character string, if a value is given where the Length property does not evaluate to '1', the DEFAULT_FILLER '0' is used. A space is fine to use. You should ensure that you use a value different than Separator, as that might produce unexpected results. No attempt is done by the code to recover from such ambiguous configurations. */
filler?: string | undefined;
/** This is just a string property that can optionally be used to store additional data for this ItemNumberSchema, e.g. an identification or a type. It does not have any influence over how item numbers are generated, and is not supported in most exchange formats. However, it is used to store ÖNorm service specification structure types. */
identifier?: string | undefined;
/** This property indicates if ItemNumbers using this ItemNumberSchema should skip empty group levels. This is commonly only used in GAEB files, where there might be gaps in the hierarchy of elements and position identifiers should be placed at the end of the string representation. */
skipNonExistingLevelsInPositionItemNumbers: boolean;
/** This string is used only when the property SkipNonExistingLevelsInPositionItemNumbers in this ItemNumberSchema is also set to true. It defaults to DEFAULT_SKIPPED_TIERS_FILLER, but can be set to any string with a lenght of one. Null values or values with a longer length will lead to this property reverting back to the default value. This is used to fill skipped tiers in item numbers where a position is placed in a higher hierarchy level than what would be defined in the Tiers. For example, it could produce an item number like '01.__.02', which would indicate a skipped second level. This should be using different values than Filler and Separator, since that could cause ambiguities in the code that generates the actual item numbers. No attempt is done by the code to recover from such ambiguous configurations. */
skippedTiersFiller?: string | undefined;
/** This is a read-only property that indicates if this schema has a valid structure. It internally just returns the result from IsCorrectlyDefined. This will return if the ItemNumberSchema is correctly defined. For it to be correctly defined, the following conditions must be true: There may only be one lot group, if there is one, it must be at the top. Following lot levels, there may be at least one group level. After the group levels, there must be one position level. After the position level, there may be one index level. If no tiers are defined at all, this will also return false. */
schemaIsCorrectlyDefined: boolean;
/** Defaults to false. If this is disabled, all letters in the ItemNumber string representations will be transformed to their lowercase representation. */
allowUpperCaseLettering: boolean;
/** If this is set to true, single identifiers in an item number will not be left padded to fill the length of the tier. This is useful for allowing custom formats in item numbers, without following the GAEB standard. Defaults to false. */
disableLeftPaddingTiersWithFiller: boolean;
/** If this is enabled, then item numbers will not be transformed, except padded. This makes it possible to represent item numbers as-is from e.g. a GAEB file, and also mixing padded and non-padded segments in an item number. This is not recommonded to use by default, since it will lead to inconsistent item numbers in the project. */
disableItemNumberIdentifierTransformations: boolean;
/** This property is used in combination with DisableItemNumberIdentifierTransformations. If this is enabled, then the transformation of item numbers is only disabled for alphanumeric tiers. This means that numeric tiers will still be padded with the filler character, but alphanumeric tiers will not be transformed */
disableItemNumberIdentifierTransformationsOnlyForAlphanumericTiers: boolean;
}
/** Represents information about a single Tier in an ItemNumber. */
declare class ItemNumberSchemaTierDto implements IItemNumberSchemaTierDto {
/** The (maximum) length for this tier. Will not accept a length less than 1. Defaults to 1 if length less than one is specified. */
length: number;
/** This ItemNumberSchemaTier's type. */
type: ItemNumberTypeDto;
/** This enum represents the alignment value for a tier in an ItemNumberSchema. It is not used anywhere for computations at the moment, and is mostly an informational value. */
alignment?: ItemNumberSchemaTierAlignmentDto | undefined;
/** This specifies which ItemNumberSchemaTierType this tier represents. This can be, for example, a group tier / level, a position level or a lot level. */
tierType: ItemNumberSchemaTierTypeDto;
/** Indicates if this tier represents a lot. See the documentation for more information about lots. */
readonly isLot: boolean;
/** This value is the increment, or step size, that should be used for new item numbers. It defaults to DEFAULT_INCREMENT, but can be changed to any other positive number greater than zero. Invalid values make this be set to one '1' */
increment: number;
/** This is an optional name for the given tier */
tierName?: string | undefined;
constructor(data?: IItemNumberSchemaTierDto);
init?(_data?: any): void;
static fromJS(data: any): ItemNumberSchemaTierDto;
toJSON?(data?: any): any;
}
/** Represents information about a single Tier in an ItemNumber. */
interface IItemNumberSchemaTierDto {
/** The (maximum) length for this tier. Will not accept a length less than 1. Defaults to 1 if length less than one is specified. */
length: number;
/** This ItemNumberSchemaTier's type. */
type: ItemNumberTypeDto;
/** This enum represents the alignment value for a tier in an ItemNumberSchema. It is not used anywhere for computations at the moment, and is mostly an informational value. */
alignment?: ItemNumberSchemaTierAlignmentDto | undefined;
/** This specifies which ItemNumberSchemaTierType this tier represents. This can be, for example, a group tier / level, a position level or a lot level. */
tierType: ItemNumberSchemaTierTypeDto;
/** Indicates if this tier represents a lot. See the documentation for more information about lots. */
isLot: boolean;
/** This value is the increment, or step size, that should be used for new item numbers. It defaults to DEFAULT_INCREMENT, but can be changed to any other positive number greater than zero. Invalid values make this be set to one '1' */
increment: number;
/** This is an optional name for the given tier */
tierName?: string | undefined;
}
/** Determines the type of an ItemNumberSchema */
declare enum ItemNumberTypeDto {
Numeric = "Numeric",
Alphanumeric = "Alphanumeric"
}
/** This enum represents the alignment value for a tier in an ItemNumberSchema. It is not used anywhere for computations at the moment, and is mostly an informational value. */
declare enum ItemNumberSchemaTierAlignmentDto {
Undefined = "Undefined",
Left = "Left",
Right = "Right"
}
/** Specifies the type an ItemNumberSchemaTier represents. For example, a tier may indicate to be used for positions or for groups. */
declare enum ItemNumberSchemaTierTypeDto {
Undefined = "Undefined",
Index = "Index",
Position = "Position",
Group = "Group",
Lot = "Lot"
}
/** This enumeration models types of price components for better classification. */
declare enum PriceComponentTypeDto {
Unknown = "Unknown",
Wages = "Wages",
Materials = "Materials",
Plant = "Plant",
Miscellaneous = "Miscellaneous"
}
/** This enumeration describes the type of the award / procurement process. If this is used in a GAEB context, more information about award types can be found in the German VOB/A rules and the GAEB standard */
declare enum AwardTypeDto {
Unspecified = "Unspecified",
OpenProcurement = "OpenProcurement",
ClosedProducrement = "ClosedProducrement",
NegotiationProcurementWithoutPublicAnnouncement = "NegotiationProcurementWithoutPublicAnnouncement",
NegotiationProcurement = "NegotiationProcurement",
OpenCall = "OpenCall",
SelectedCallWithoutPublicCompetition = "SelectedCallWithoutPublicCompetition",
SelectedCall = "SelectedCall",
DirectAward = "DirectAward",
InternationalNATOProcurement = "InternationalNATOProcurement",
CompetitiveDialog = "CompetitiveDialog",
InnovationPartnership = "InnovationPartnership"
}
/** This enumeration describes awards for project that are not just a regular procurement. For example, it can be used to describe recurring maintenance or an outline contract (German: Rahmenvertrag) which just specifies services and prices but may be requested on demand when necessary */
declare enum SpecialAwardKindDto {
Unspecified = "Unspecified",
MaintenanceContract = "MaintenanceContract",
OutlineContract = "OutlineContract",
OutlineForMaintenanceContract = "OutlineForMaintenanceContract"
}
/** This is the base class that holds information about a whole service specification. */
declare class ServiceSpecificationDto implements IServiceSpecificationDto {
/** Elements GUID identifier. */
id: string;
/** The hourly wage that is used within this ElementContainerBase. Will be propagated to child elements. */
readonly projectHourlyWage: number;
/** The tax rate that is used within this ElementContainerBase. Will be propagated to child elements. */
projectTaxRate: number;
/** The price components that are used within this project. They are ignored during Json deserialization because they will be set from the parent project. */
projectPriceComponents?: string[] | undefined;
/** The ItemNumberSchema that is used within this project. */
projectItemNumberSchema?: ItemNumberSchemaDto | undefined;
/** The IElements within this ElementContainerBase. */
elements?: IElementDto[] | undefined;
/** The label used in the parent Project to mark labour time, e.g. "Hours" or "Stunden". */
readonly projectLabourTimeLabel?: string | undefined;
/** Indicates if there are child IElements that have conflicting, duplicated ItemNumbers or if any child ElementContainerBase elements themselves contain duplicate ItemNumber s. Will always indicate false when told to ignore duplicate item numbers. */
readonly containsDuplicateItemNumbers: boolean;
/** Indicates if there are child IElements that have conflicting, duplicated Ids or if any child ElementContainerBase elements themselves contain duplicate Id s. Will always indicate false when told to ignore duplicate item numbers. */
readonly containsDuplicateElementIds: boolean;
/** Indicate if duplicated ItemNumbers within child elements are to be ignored. Will not perform checks for duplicates if yes. */
ignoreDuplicateItemNumbers: boolean;
/** If this is set to true, the ProjectCatalogues property will not be propagated to child elements. This is useful in mapping scenarios, where you want to disable propagation for multiple changes, and only enable it once you have mapped all properties */
ignoreProjectCataloguePropagation: boolean;
/** Indicate if duplicated Ids within child elements are to be ignored. Will not perform checks for duplicates if yes. */
ignoreDuplicateElementIds: boolean;
/** Price composition by tax rate. */
totalPriceGrossByTaxRate?: GrossPriceComponentDto[] | undefined;
/** Internally used to indicate that a propagation is currently done, this is done to not recalculate every single result from a lot of changes when it is sufficient to calculate the total price at once. */
ignoreChildPriceUpdates: boolean;
/** Net price after applied deductions. */
readonly deductedPrice: number;
/** Factor of applied deductions to the total price. For example, "0.03" means that a 3% deduction is to be applied. */
deductionFactor: number;
/** The exact amount of the discount as an absolute value. For backwards compatibility reasons, setting this value will also set a calculated value to DeductionFactor, which will also be updated in case the total price is changed to reflect a relative value of the absolute discount sum. */
absoluteDeduction?: number | undefined;
/** Will return this ElementContainerBase's total price. */
readonly totalPrice: number;
/** The total gross price for this ElementContainerBase including all child elements. */
readonly totalPriceGross: number;
/** Total gross price after applied deductions. */
readonly totalPriceGrossDeducted: number;
/** Indicates the PriceType of this ElementContainerBase, whether it should factor into total costs or not. */
priceType: PriceTypeDto;
/** Information about the bidder. */
bidder?: PartyInformationDto | undefined;
/** This discriminator is used to identify different bidders in a project. It is different from the Identifier property in the Bidder in that the BidderDiscriminator is intended to be a numerical identifier within a project, while the Identifier does uniquely identify a bidder in the system independent of a specific project. This property should map to "Bieternummer" or "BidderNo" in GAEB. */
bidderDiscriminator?: string | undefined;
/** This is used to store the GAEB XML Id within this ServiceSpecification. This data is not used for any calculations or evaluations but only for GAEB serialization and deserialization. */
gaebXmlId?: string | undefined;
/** The ProjectInformation used within the Project in which this ElementContainerBase is contained. This is reference equal to the ProjectInformation used in the parent project. */
readonly projectInformation?: ProjectInformationDto | undefined;
/** This service specifications exchange phase, i.e. the current status in the project it is intended to be used (such as request for offer, offer, awarding...). */
exchangePhase: ExchangePhaseDto;
/** This indicates where the service specification originates, i.e. from an exchange file format or self created. If applicable, additional information is present in the OriginDetail property. */
origin: OriginDto;
/** This property complements the Origin property. Some formats, e.g. GaebXml might have additional information attached, e.g. GAEB XML V3.2 oder GAEB XML V3.1. This string property is used to hold such data. The Dangl.AVA module does not have a list of possible values, since this is defined in the native format assemblies, e.g. Dangl.GAEB or Dangl.Oenorm. */
originDetail?: string | undefined;
/** Creation date of this ServiceSpecification. */
creationDate?: Date | undefined;
/** Date indicating until when an offer has to be submitted. In German, this is often called the "Eröffnungstermin" */
offerByDate?: Date | undefined;
/** Date indicating by when the buyer will select a contractor. */
decisionDate?: Date | undefined;
/** Date of when the offer / bid was created */
bidDate?: Date | undefined;
/** If a construction project requires a warranty bond, this property indicates the amount as a percentage, e.g. '0.15m' means 15% of the construction total amount as a warranty bond. */
warrantyBondPercentage: number;
/** If a construction project requires an execution guarantty, this property indicates the amount as a percentage, e.g. '0.15m' means 15% of the construction total amount as an execution guarantee. In practice, this percentage is usually deducted from intermediate invoices and only billed in the final invoice. */
executionGuaranteePercentage: number;
/** String indicating where the physical submission of the offer is taking place. */
submissionLocation?: string | undefined;
/** Description of this ServiceSpecification. */
description?: string | undefined;
/** The name of this ServiceSpecification. */
name?: string | undefined;
/** This PriceInformation contains global data for the ServiceSpecification. When inside a Project, do not set this property manually. */
priceInformation?: PriceInformationDto | undefined;
/** These are Catalogue that are used within this ElementContainerBase. Catalogue references are used to describe catalogues, or collections, that can be used to describe elements with commonly known properties. For example, QuantityAssignments use these to categorize themselves. */
projectCatalogues?: CatalogueDto[] | undefined;
/** Referenced catalogues for this ElementContainerBase. */
catalogueReferences?: CatalogueReferenceDto[] | undefined;
/** The date when the execution of the services is scheduled to start */
plannedExecutionStart?: Date | undefined;
/** The date then the execution of the services is scheduled to be finished */
plannedExecutionEnd?: Date | undefined;
/** The date on which the contract has been awarded. This matches "Auftragsdatum" in GAEB */
contractDate?: Date | undefined;
/** This value can be used to indicate the number or identifier of the contract. It matches "Auftragsnummer" in GAEB */
contractIdentifier?: string | undefined;
/** This indicates how long the warranty period is for this ServiceSpecification */
warrantyDuration?: WarrantyDurationDto | undefined;
/** The date on which the warranty period ends */
warrantyEnd?: Date | undefined;
/** The date on which the services rendered by the bidder are scheduled to be approved by the buyer */
approvalDate?: Date | undefined;
/** This should specify how the approval is performed by the buyer. This matches "AcceptType" in GAEB */
typeOfApproval?: string | undefined;
/** This optional string property is shared by all IElements, and indicates if the element is part of an addendum, a 'Nachtrag' in German. */
addendumNumber?: string | undefined;
/** This indicates, if this element is part of an addendum an, if yes, with what status. */
addendumStatus?: AddendumStatusDto | undefined;
/** This property holds additional information that's only valid in commerce exchange phases. */
commerceProperties?: ServiceSpecificationCommercePropertiesDto | undefined;
constructor(data?: IServiceSpecificationDto);
init?(_data?: any): void;
static fromJS(data: any): ServiceSpecificationDto;
toJSON?(data?: any): any;
}
/** This is the base class that holds information about a whole service specification. */
interface IServiceSpecificationDto {
/** Elements GUID identifier. */
id: string;
/** The hourly wage that is used within this ElementContainerBase. Will be propagated to child elements. */
projectHourlyWage: number;
/** The tax rate that is used within this ElementContainerBase. Will be propagated to child elements. */
projectTaxRate: number;
/** The price components that are used within this project. They are ignored during Json deserialization because they will be set from the parent project. */
projectPriceComponents?: string[] | undefined;
/** The ItemNumberSchema that is used within this project. */
projectItemNumberSchema?: IItemNumberSchemaDto | undefined;
/** The IElements within this ElementContainerBase. */
elements?: IElementDto[] | undefined;
/** The label used in the parent Project to mark labour time, e.g. "Hours" or "Stunden". */
projectLabourTimeLabel?: string | undefined;
/** Indicates if there are child IElements that have conflicting, duplicated ItemNumbers or if any child ElementContainerBase elements themselves contain duplicate ItemNumber s. Will always indicate false when told to ignore duplicate item numbers. */
containsDuplicateItemNumbers: boolean;
/** Indicates if there are child IElements that have conflicting, duplicated Ids or if any child ElementContainerBase elements themselves contain duplicate Id s. Will always indicate false when told to ignore duplicate item numbers. */
containsDuplicateElementIds: boolean;
/** Indicate if duplicated ItemNumbers within child elements are to be ignored. Will not perform checks for duplicates if yes. */
ignoreDuplicateItemNumbers: boolean;
/** If this is set to true, the ProjectCatalogues property will not be propagated to child elements. This is useful in mapping scenarios, where you want to disable propagation for multiple changes, and only enable it once you have mapped all properties */
ignoreProjectCataloguePropagation: boolean;
/** Indicate if duplicated Ids within child elements are to be ignored. Will not perform checks for duplicates if yes. */
ignoreDuplicateElementIds: boolean;
/** Price composition by tax rate. */
totalPriceGrossByTaxRate?: IGrossPriceComponentDto[] | undefined;
/** Internally used to indicate that a propagation is currently done, this is done to not recalculate every single result from a lot of changes when it is sufficient to calculate the total price at once. */
ignoreChildPriceUpdates: boolean;
/** Net price after applied deductions. */
deductedPrice: number;
/** Factor of applied deductions to the total price. For example, "0.03" means that a 3% deduction is to be applied. */
deductionFactor: number;
/** The exact amount of the discount as an absolute value. For backwards compatibility reasons, setting this value will also set a calculated value to DeductionFactor, which will also be updated in case the total price is changed to reflect a relative value of the absolute discount sum. */
absoluteDeduction?: number | undefined;
/** Will return this ElementContainerBase's total price. */
totalPrice: number;
/** The total gross price for this ElementContainerBase including all child elements. */
totalPriceGross: number;
/** Total gross price after applied deductions. */
totalPriceGrossDeducted: number;
/** Indicates the PriceType of this ElementContainerBase, whether it should factor into total costs or not. */
priceType: PriceTypeDto;
/** Information about the bidder. */
bidder?: IPartyInformationDto | undefined;
/** This discriminator is used to identify different bidders in a project. It is different from the Identifier property in the Bidder in that the BidderDiscriminator is intended to be a numerical identifier within a project, while the Identifier does uniquely identify a bidder in the system independent of a specific project. This property should map to "Bieternummer" or "BidderNo" in GAEB. */
bidderDiscriminator?: string | undefined;
/** This is used to store the GAEB XML Id within this ServiceSpecification. This data is not used for any calculations or evaluations but only for GAEB serialization and deserialization. */
gaebXmlId?: string | undefined;
/** The ProjectInformation used within the Project in which this ElementContainerBase is contained. This is reference equal to the ProjectInformation used in the parent project. */
projectInformation?: IProjectInformationDto | undefined;
/** This service specifications exchange phase, i.e. the current status in the project it is intended to be used (such as request for offer, offer, awarding...). */
exchangePhase: ExchangePhaseDto;
/** This indicates where the service specification originates, i.e. from an exchange file format or self created. If applicable, additional information is present in the OriginDetail property. */
origin: OriginDto;
/** This property complements the Origin property. Some formats, e.g. GaebXml might have additional information attached, e.g. GAEB XML V3.2 oder GAEB XML V3.1. This string property is used to hold such data. The Dangl.AVA module does not have a list of possible values, since this is defined in the native format assemblies, e.g. Dangl.GAEB or Dangl.Oenorm. */
originDetail?: string | undefined;
/** Creation date of this ServiceSpecification. */
creationDate?: Date | undefined;
/** Date indicating until when an offer has to be submitted. In German, this is often called the "Eröffnungstermin" */
offerByDate?: Date | undefined;
/** Date indicating by when the buyer will select a contractor. */
decisionDate?: Date | undefined;
/** Date of when the offer / bid was created */
bidDate?: Date | undefined;
/** If a construction project requires a warranty bond, this property indicates the amount as a percentage, e.g. '0.15m' means 15% of the construction total amount as a warranty bond. */
warrantyBondPercentage: number;
/** If a construction project requires an execution guarantty, this property indicates the amount as a percentage, e.g. '0.15m' means 15% of the construction total amount as an execution guarantee. In practice, this percentage is usually deducted from intermediate invoices and only billed in the final invoice. */
executionGuaranteePercentage: number;
/** String indicating where the physical submission of the offer is taking place. */
submissionLocation?: string | undefined;
/** Description of this ServiceSpecification. */
description?: string | undefined;
/** The name of this ServiceSpecification. */
name?: string | undefined;
/** This PriceInformation contains global data for the ServiceSpecification. When inside a Project, do not set this property manually. */
priceInformation?: IPriceInformationDto | undefined;
/** These are Catalogue that are used within this ElementContainerBase. Catalogue references are used to describe catalogues, or collections, that can be used to describe elements with commonly known properties. For example, QuantityAssignments use these to categorize themselves. */
projectCatalogues?: ICatalogueDto[] | undefined;
/** Referenced catalogues for this ElementContainerBase. */
catalogueReferences?: ICatalogueReferenceDto[] | undefined;
/** The date when the execution of the services is scheduled to start */
plannedExecutionStart?: Date | undefined;
/** The date then the execution of the services is scheduled to be finished */
plannedExecutionEnd?: Date | undefined;
/** The date on which the contract has been awarded. This matches "Auftragsdatum" in GAEB */
contractDate?: Date | undefined;
/** This value can be used to indicate the number or identifier of the contract. It matches "Auftragsnummer" in GAEB */
contractIdentifier?: string | undefined;
/** This indicates how long the warranty period is for this ServiceSpecification */
warrantyDuration?: IWarrantyDurationDto | undefined;
/** The date on which the warranty period ends */
warrantyEnd?: Date | undefined;
/** The date on which the services rendered by the bidder are scheduled to be approved by the buyer */
approvalDate?: Date | undefined;
/** This should specify how the approval is performed by the buyer. This matches "AcceptType" in GAEB */
typeOfApproval?: string | undefined;
/** This optional string property is shared by all IElements, and indicates if the element is part of an addendum, a 'Nachtrag' in German. */
addendumNumber?: string | undefined;
/** This indicates, if this element is part of an addendum an, if yes, with what status. */
addendumStatus?: AddendumStatusDto | undefined;
/** This property holds additional information that's only valid in commerce exchange phases. */
commerceProperties?: IServiceSpecificationCommercePropertiesDto | undefined;
}
/** Base interface definition for elements within an ElementContainerBase. */
declare abstract class IElementDto implements IIElementDto {
elementType: string;
elementTypeDiscriminator: string;
/** Elements GUID identifier. */
id: string;
/** This is used to store the GAEB XML Id within this IElement. This data is not used for any calculations or evaluations but only for GAEB serialization and deserialization. */
gaebXmlId?: string | undefined;
/** This optional string property is shared by all IElements, and indicates if the element is part of an addendum, a 'Nachtrag' in German. */
addendumNumber?: string | undefined;
projectCatalogues?: CatalogueDto[] | undefined;
catalogueReferences?: CatalogueReferenceDto[] | undefined;
protected _discriminator: string;
constructor(data?: IIElementDto);
init?(_data?: any): void;
static fromJS(data: any): IElementDto;
toJSON?(data?: any): any;
}
/** Base interface definition