Show / Hide Table of Contents

Class QuoteLineTableInfo

Table 'QuoteLine': One line in a QuoteAlternative. QuoteLines are mainly information copied from the Products provider. Products information is sometimes edited by the user before being included in the quote, so most information is duplicated from Product rather than referenced directly.

Inheritance
Object
TableInfo
QuoteLineTableInfo
Implements
ICloneable
Inherited Members
TableInfo.ToString()
TableInfo.RegisterFields(FieldInfo[])
TableInfo.FieldInfoFromSoField(SoField)
TableInfo.Clone()
TableInfo.IsSameTable(TableInfo)
TableInfo.FindField(String)
TableInfo.ProtAll
TableInfo.HashCheckFields
TableInfo.TableName
TableInfo.DbName
TableInfo.IsDictionaryTable
TableInfo.All
TableInfo.Item[String]
TableInfo.PrimaryKeyField
Object.Equals(Object)
Object.Equals(Object, Object)
Object.ReferenceEquals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()
Namespace: SuperOffice.CRM.Data
Assembly: SoDataBase.dll
Syntax
[DatabaseTable("QuoteLine")]
public class QuoteLineTableInfo : TableInfo, ICloneable
Remarks

An instance of this class represents one instance of this table in an SQL statement. In most cases each table appears only once in a SELECT, but in cases where you need to self-join, or there are multiple occurrences for other reasons (typically additional restrictions in the joins), then you will need multiple instances.
Instances of this class are created by calling .

Fields

DictionaryTableName

Conceptual name of table QuoteLine in the database dictionary: QuoteLine

Declaration
public const string DictionaryTableName = "QuoteLine"
Field Value
Type Description
String

Properties

Code

Field 'Code' in table 'QuoteLine': Dictionary type String[255], .NET type: String

A value the salesmen use to quickly find the correct product. Is stored here if the user changes the value from the product in the pricelist, or just enters a QuoteLine without a product link.

Declaration
public StringFieldInfo Code { get; }
Property Value
Type Description
StringFieldInfo

Definition

Definition of the table as described in the deployed runtime dictionary

Declaration
public override SoTable Definition { get; }
Property Value
Type Description
SoTable
Overrides
TableInfo.Definition

DeliveredQuantity

Field 'DeliveredQuantity' in table 'QuoteLine': Dictionary type Double, .NET type: Double

How many units have been delivered - updated by ERP system.

Declaration
public DoubleFieldInfo DeliveredQuantity { get; }
Property Value
Type Description
DoubleFieldInfo

Description

Field 'Description' in table 'QuoteLine': Dictionary type String[2048], .NET type: String

A longer description for the product. Is stored here if the user changes the value from the product in the pricelist, or just enters a QuoteLine without a product link.

Declaration
public StringFieldInfo Description { get; }
Property Value
Type Description
StringFieldInfo

DictionaryTableNumber

Table number for table QuoteLine in the database dictionary; potentially changes between databases, but always the same over the lifetime of any single database

Declaration
public int DictionaryTableNumber { get; }
Property Value
Type Description
Int32

DiscountAmount

Field 'DiscountAmount' in table 'QuoteLine': Dictionary type Double, .NET type: Double

The discount for the line, in whatever currency the sale is in. Both ‘DiscountPercent’ and ‘DiscountAmount’ shall be filled out, but the UserValueOverride field must be set to the field the user actually changed last. If this field is filled out by the user, it overrides any discount suggested by the connector. If the user has not filled this in, the system will copy the ERP discount amount to this field.

Declaration
public DoubleFieldInfo DiscountAmount { get; }
Property Value
Type Description
DoubleFieldInfo

DiscountPercent

Field 'DiscountPercent' in table 'QuoteLine': Dictionary type Double, .NET type: Double

The discount for the line, in percent. Both ‘DiscountPercent’ and ‘DiscountAmount’ shall be filled out, but the UserValueOverride field must be set to the field the user actually changed last. If this field is filled out by the user, it overrides any discount suggested by the connector. If the user has not filled this in, the system will copy the ERP discount amount to this field. The Percentage is given in integer form, i.e. ‘12%’ is represented as ‘12’.

Declaration
public DoubleFieldInfo DiscountPercent { get; }
Property Value
Type Description
DoubleFieldInfo

EarningAmount

Field 'EarningAmount' in table 'QuoteLine': Dictionary type Double, .NET type: Double

The earning, in whatever currency the sale is in. Both ‘EarningAmount and ‘EarningPercent shall be filled out, but the UserValueOverride field must be set to the field the user actually changed last.

Declaration
public DoubleFieldInfo EarningAmount { get; }
Property Value
Type Description
DoubleFieldInfo

EarningPercent

Field 'EarningPercent' in table 'QuoteLine': Dictionary type Double, .NET type: Double

The earning, in percent. Both ‘EarningAmount and ‘EarningPercent shall be filled out, but the UserValueOverride field must be set to the field the user actually changed last. The Percentage is given in integer form, i.e. ‘12%’ is represented as ‘12’.

Declaration
public DoubleFieldInfo EarningPercent { get; }
Property Value
Type Description
DoubleFieldInfo

ERPDiscountAmount

Field 'ERPDiscountAmount' in table 'QuoteLine': Dictionary type Double, .NET type: Double

The discount the system calculates based on customer / quantity / whatever. Can be overrided by the salesman in the field 'DiscountPercent' or 'DiscountAmount'. If UserValueOverride is set to ‘None’ then the value is copied to DiscountAmount. Both fields ERPDiscountPercent and ERPDiscountAmount will be filled out.

Declaration
public DoubleFieldInfo ERPDiscountAmount { get; }
Property Value
Type Description
DoubleFieldInfo

ERPDiscountPercent

Field 'ERPDiscountPercent' in table 'QuoteLine': Dictionary type Double, .NET type: Double

The discount the system calculates based on customer / quantity / whatever. Can be overrided by the salesman in the field 'DiscountPercent' or 'DiscountAmount'. Both fields ERPDiscountPercent and ERPDiscountAmount will be filled out. If UserValueOverride is set to ‘None’ then the value is copied to DiscountPercent. The Percentage is given in integer form, i.e. ‘12%’ is represented as ‘12’.

Declaration
public DoubleFieldInfo ERPDiscountPercent { get; }
Property Value
Type Description
DoubleFieldInfo

ERPProductKey

Field 'ERPProductKey' in table 'QuoteLine': Dictionary type String[255], .NET type: String

Foreign key of product+pricelist this line is based on. Can be blank since the QuoteLine doesn’t have to be connected to a product.

Declaration
public StringFieldInfo ERPProductKey { get; }
Property Value
Type Description
StringFieldInfo

ERPQuoteLineKey

Field 'ERPQuoteLineKey' in table 'QuoteLine': Dictionary type String[255], .NET type: String

The foreign key to the quoteline in ERP system (if it has such a representation).

Declaration
public StringFieldInfo ERPQuoteLineKey { get; }
Property Value
Type Description
StringFieldInfo

ExtraField1

Field 'extraField1' in table 'QuoteLine': Dictionary type String[1024], .NET type: String

This a simple field for adding information that the Connector can provide, and that the qoute document need to display.

Declaration
public StringFieldInfo ExtraField1 { get; }
Property Value
Type Description
StringFieldInfo

ExtraField2

Field 'extraField2' in table 'QuoteLine': Dictionary type String[1024], .NET type: String

This a simple field for adding information that the Connector can provide, and that the qoute document need to display.

Declaration
public StringFieldInfo ExtraField2 { get; }
Property Value
Type Description
StringFieldInfo

ExtraField3

Field 'extraField3' in table 'QuoteLine': Dictionary type String[1024], .NET type: String

This a simple field for adding information that the Connector can provide, and that the qoute document need to display.

Declaration
public StringFieldInfo ExtraField3 { get; }
Property Value
Type Description
StringFieldInfo

ExtraField4

Field 'extraField4' in table 'QuoteLine': Dictionary type String[1024], .NET type: String

This a simple field for adding information that the Connector can provide, and that the qoute document need to display.

Declaration
public StringFieldInfo ExtraField4 { get; }
Property Value
Type Description
StringFieldInfo

ExtraField5

Field 'extraField5' in table 'QuoteLine': Dictionary type String[1024], .NET type: String

This a simple field for adding information that the Connector can provide, and that the qoute document need to display.

Declaration
public StringFieldInfo ExtraField5 { get; }
Property Value
Type Description
StringFieldInfo

ExtraInfo

Field 'ExtraInfo' in table 'QuoteLine': Dictionary type Clob, .NET type: String

Extra information, supplied by QuoteConnector, used by a future dynamic GUI extension

Declaration
public StringFieldInfo ExtraInfo { get; }
Property Value
Type Description
StringFieldInfo

IsSubscription

Field 'IsSubscription' in table 'QuoteLine': Dictionary type Bool, .NET type: Int16

Is this a subscription product, sold in repeating intervals/amounts?

Declaration
public UInt16FieldInfo IsSubscription { get; }
Property Value
Type Description
UInt16FieldInfo

ItemNumber

Field 'ItemNumber' in table 'QuoteLine': Dictionary type String[80], .NET type: String

Norwegian: «Postnummer». Specific numbers from some hierarchy, for instance '1.4.3.2'. Is stored here if the user changes the value from the product in the pricelist, or just enters a QuoteLine without a product link.

Declaration
public StringFieldInfo ItemNumber { get; }
Property Value
Type Description
StringFieldInfo

Name

Field 'Name' in table 'QuoteLine': Dictionary type String[255], .NET type: String

The name of the product. Is stored here if the user changes the value from the product in the pricelist, or just enters a QuoteLine without a product link.

Declaration
public StringFieldInfo Name { get; }
Property Value
Type Description
StringFieldInfo

PriceUnit

Field 'PriceUnit' in table 'QuoteLine': Dictionary type String[80], .NET type: String

What is the unit (meter, ton, bushel, microsecond, gradus, τρυβλίον, 五合枡, دونم or whatever); read-only for lines that originate in defined products.

Declaration
public StringFieldInfo PriceUnit { get; }
Property Value
Type Description
StringFieldInfo

ProductCategoryKey

Field 'ProductCategoryKey' in table 'QuoteLine': Dictionary type String[255], .NET type: String

Either a List id to an id from a connector provided list, or, if the connection doesn't support lists, a text. Is stored here if the user changes the value from the product in the pricelist, or just enters a QuoteLine without a product link.

Declaration
public StringFieldInfo ProductCategoryKey { get; }
Property Value
Type Description
StringFieldInfo

ProductFamilyKey

Field 'ProductFamilyKey' in table 'QuoteLine': Dictionary type String[255], .NET type: String

Either a List id to an id from a connector provided list, or, if the connection doesn't support lists, a text. Is stored here if the user changes the value from the product in the pricelist, or just enters a QuoteLine without a product link.

Declaration
public StringFieldInfo ProductFamilyKey { get; }
Property Value
Type Description
StringFieldInfo

ProductTypeKey

Field 'ProductTypeKey' in table 'QuoteLine': Dictionary type String[255], .NET type: String

Either a List id to an id from a connector provided list, or, if the connection doesn't support lists, a text. Is stored here if the user changes the value from the product in the pricelist, or just enters a QuoteLine without a product link.

Declaration
public StringFieldInfo ProductTypeKey { get; }
Property Value
Type Description
StringFieldInfo

Quantity

Field 'Quantity' in table 'QuoteLine': Dictionary type Double, .NET type: Double

How many units; this is a decimal field since you might want to offer fractional units (2.5kg, or 0.5PC).

Declaration
public DoubleFieldInfo Quantity { get; }
Property Value
Type Description
DoubleFieldInfo

QuantityUnit

Field 'QuantityUnit' in table 'QuoteLine': Dictionary type String[80], .NET type: String

What is the unit (meter, ton, bushel, microsecond, gradus, τρυβλίον, 五合枡, دونم or whatever); Connector handles conversion relative to PriceUnit if they are different.

Declaration
public StringFieldInfo QuantityUnit { get; }
Property Value
Type Description
StringFieldInfo

QuoteAlternativeId

Field 'QuoteAlternativeId' in table 'QuoteLine': Dictionary type FK, .NET type: Int32

The alternative this line is part of, the conceptual Parent in CRM database.

Declaration
public Int32FieldInfo QuoteAlternativeId { get; }
Property Value
Type Description
Int32FieldInfo

QuoteAlternativeId_InnerJoin_QuoteAlternative

Generated join from the foreign key QuoteAlternativeId in this table, to its target table QuoteAlternativeTableInfo.

Declaration
public TargetedInnerJoin<QuoteAlternativeTableInfo> QuoteAlternativeId_InnerJoin_QuoteAlternative { get; }
Property Value
Type Description
TargetedInnerJoin<QuoteAlternativeTableInfo>

QuoteLineId

Field 'quoteline_id' in table 'QuoteLine': Dictionary type PK, .NET type: Int32

Primary key

Declaration
public Int32FieldInfo QuoteLineId { get; }
Property Value
Type Description
Int32FieldInfo

Rank

Field 'Rank' in table 'QuoteLine': Dictionary type Int, .NET type: Int32

QuoteLines can be re-ordered, so we must track the ordering.

Declaration
public Int32FieldInfo Rank { get; }
Property Value
Type Description
Int32FieldInfo

Reason

Field 'Reason' in table 'QuoteLine': Dictionary type String[2048], .NET type: String

If QuoteStatus is not OK, then this field contains a localized explanation that the user can be shown.

Declaration
public StringFieldInfo Reason { get; }
Property Value
Type Description
StringFieldInfo

Registered

Field 'registered' in table 'QuoteLine': Dictionary type UtcDateTime, .NET type: DateTime

Registered when

Declaration
public DateTimeFieldInfo Registered { get; }
Property Value
Type Description
DateTimeFieldInfo

RegisteredAssociateId

Field 'registered_associate_id' in table 'QuoteLine': Dictionary type FK, .NET type: Int32

Registered by whom

Declaration
public Int32FieldInfo RegisteredAssociateId { get; }
Property Value
Type Description
Int32FieldInfo

RegisteredAssociateId_InnerJoin_Associate

Generated join from the foreign key RegisteredAssociateId in this table, to its target table AssociateTableInfo.

Declaration
public TargetedInnerJoin<AssociateTableInfo> RegisteredAssociateId_InnerJoin_Associate { get; }
Property Value
Type Description
TargetedInnerJoin<AssociateTableInfo>

Rights

Field 'Rights' in table 'QuoteLine': Dictionary type String[2048], .NET type: String

Field1=right&Field2=right, etc. of any fields that have non-standard field access rights. Rights can be one of: N (=None or Hidden), R (=Read-only), W (=Writeable), M (=Mandatory). The fields will mostly be from the Quoteline table, but some added fields that are conceptually part of the quoteline, like Image will also be possibly to set rights on. Will be used by SuperOffice to control the user interface when showing the record.

Declaration
public StringFieldInfo Rights { get; }
Property Value
Type Description
StringFieldInfo

Rule

Field 'Rule' in table 'QuoteLine': Dictionary type String[255], .NET type: String

The names of one or more calculation rules that are in effect for this line, comma-separated case-insensitive

Declaration
public StringFieldInfo Rule { get; }
Property Value
Type Description
StringFieldInfo

RuntimeDefinition

Definition of the table as described in the deployed runtime dictionary

Declaration
[Obsolete("Use instance property Definition or static member DictionaryTableNumber", true)]
public static SoTable RuntimeDefinition { get; }
Property Value
Type Description
SoTable

Status

Field 'Status' in table 'QuoteLine': Dictionary type Enum, .NET type: QuoteStatus

If there was a problem with for instance calculation, this field is set to warning or error. Typically shown as an icon. QuoteStatus is an enum with statuses: OK, OKWithInfo, Warning, Error.

Declaration
public QuoteStatusFieldInfo Status { get; }
Property Value
Type Description
QuoteStatusFieldInfo

SubscriptionQuantity

Field 'SubscriptionQuantity' in table 'QuoteLine': Dictionary type Double, .NET type: Double

The default number of SubscriptionUnits to suggest when creating quote lines from this product

Declaration
public DoubleFieldInfo SubscriptionQuantity { get; }
Property Value
Type Description
DoubleFieldInfo

SubscriptionStart

Field 'SubscriptionStart' in table 'QuoteLine': Dictionary type DateTime, .NET type: DateTime

Start date for subscription, as offered

Declaration
public DateTimeFieldInfo SubscriptionStart { get; }
Property Value
Type Description
DateTimeFieldInfo

SubscriptionUnit

Field 'SubscriptionUnit' in table 'QuoteLine': Dictionary type String[255], .NET type: String

Either a List id to an id from a connector provided list, or, if the connection doesn’t support lists, a text with the actual subscription unit.

Declaration
public StringFieldInfo SubscriptionUnit { get; }
Property Value
Type Description
StringFieldInfo

Supplier

Field 'Supplier' in table 'QuoteLine': Dictionary type String[255], .NET type: String

The name of the supplier. Is stored here if the user changes the value from the product in the pricelist, or just enters a QuoteLine without a product link.

Declaration
public StringFieldInfo Supplier { get; }
Property Value
Type Description
StringFieldInfo

SupplierCode

Field 'SupplierCode' in table 'QuoteLine': Dictionary type String[255], .NET type: String

The suppliers' code or part number for this product. Is stored here if the user changes the value from the product in the pricelist, or just enters a QuoteLine without a product link.

Declaration
public StringFieldInfo SupplierCode { get; }
Property Value
Type Description
StringFieldInfo

TotalPrice

Field 'TotalPrice' in table 'QuoteLine': Dictionary type Double, .NET type: Double

TotalPrice = SubTotal - DiscountAmount or TotalPrice = (UnitCost * Quantity) + EarningAmount, according to what the user changed last.

Declaration
public DoubleFieldInfo TotalPrice { get; }
Property Value
Type Description
DoubleFieldInfo

UnitCost

Field 'UnitCost' in table 'QuoteLine': Dictionary type Double, .NET type: Double

The cost price per unit for this product. May be filled in by connector if it has the Provide-Cost capability.

Declaration
public DoubleFieldInfo UnitCost { get; }
Property Value
Type Description
DoubleFieldInfo

UnitListPrice

Field 'UnitListPrice' in table 'QuoteLine': Dictionary type Double, .NET type: Double

The standard list price; as given by ERP Connector, OR overridden by user

Declaration
public DoubleFieldInfo UnitListPrice { get; }
Property Value
Type Description
DoubleFieldInfo

UnitMinimumPrice

Field 'UnitMinimumPrice' in table 'QuoteLine': Dictionary type Double, .NET type: Double

The minimum price this line can be sold for (to limit discounting). Will come from the connector. List price per unit must exceed the minimum price per unit.

Declaration
public DoubleFieldInfo UnitMinimumPrice { get; }
Property Value
Type Description
DoubleFieldInfo

Updated

Field 'updated' in table 'QuoteLine': Dictionary type UtcDateTime, .NET type: DateTime

Last updated when

Declaration
public DateTimeFieldInfo Updated { get; }
Property Value
Type Description
DateTimeFieldInfo

UpdatedAssociateId

Field 'updated_associate_id' in table 'QuoteLine': Dictionary type FK, .NET type: Int32

Last updated by whom

Declaration
public Int32FieldInfo UpdatedAssociateId { get; }
Property Value
Type Description
Int32FieldInfo

UpdatedAssociateId_InnerJoin_Associate

Generated join from the foreign key UpdatedAssociateId in this table, to its target table AssociateTableInfo.

Declaration
public TargetedInnerJoin<AssociateTableInfo> UpdatedAssociateId_InnerJoin_Associate { get; }
Property Value
Type Description
TargetedInnerJoin<AssociateTableInfo>

UpdatedCount

Field 'updatedCount' in table 'QuoteLine': Dictionary type UShort, .NET type: Int16

Number of updates made to this record

Declaration
public UInt16FieldInfo UpdatedCount { get; }
Property Value
Type Description
UInt16FieldInfo

Url

Field 'Url' in table 'QuoteLine': Dictionary type String[1024], .NET type: String

A url to the product info. Can be empty. Is stored here if the user changes the value from the product in the pricelist, or just enters a QuoteLine without a product link.

Declaration
public StringFieldInfo Url { get; }
Property Value
Type Description
StringFieldInfo

UserValueOverride

Field 'UserValueOverride' in table 'QuoteLine': Dictionary type Enum, .NET type: ValueOverride

Has the pre-calculated (from ERP) price information been overridden, and how. If the user has filled out the discountpercentage field, then the UserValueOverride field is set to OverridePercent. (The DiscountAmount, EarningPercent, EarningAmount and TotalPrice fields are calculated based on the DiscountPercent.)

Declaration
public ValueOverrideFieldInfo UserValueOverride { get; }
Property Value
Type Description
ValueOverrideFieldInfo

VAT

Field 'VAT' in table 'QuoteLine': Dictionary type Double, .NET type: Double

Tax/VAT - THIS IS A PERCENTAGE. The connector is responsible for populating this field; the percentage will be used to calculate VAT amounts available as merge fields in the document templates (but amounts are never stored in the database).

Declaration
public DoubleFieldInfo VAT { get; }
Property Value
Type Description
DoubleFieldInfo

VATInfo

Field 'VATInfo' in table 'QuoteLine': Dictionary type String[255], .NET type: String

Tax/VAT information, Extra info about VAT that the connector might insert, and the users might want to specify on the quote. The core CRM product has no business logic for this field, it is wholly up to connectors to use it.

Declaration
public StringFieldInfo VATInfo { get; }
Property Value
Type Description
StringFieldInfo

Implements

System.ICloneable

Extension Methods

EnumUtil.MapEnums<From, To>(From)
Converters.MapEnums<From, To>(From)
© SuperOffice. All rights reserved.
SuperOffice |  Community |  Release Notes |  Privacy |  Site feedback |  Search Docs |  About Docs |  Contribute |  Back to top