IDMW 2.0 XML-Schema Dokumentation
PERCENTAGE_SURCHARGE Element
IDMW 2.0 XML-Schema Dokumentation > T_NEW_CATALOG Element > PRICE_DEFINITION Element > PRICE_FEATURE_GROUPS Element > PRICE_FEATURE_GROUP Element : PERCENTAGE_SURCHARGE Element
Description
To allow for percentage surcharges, the element FINISH supplemented below PRICE_FEATURE_GROUP by the element PERCENTAGE_SURCHARGE consisting of OPTION_REF, PRICE_FACTOR, PRICE_FEATURE_GROUP_REF, VALID_FROM and VALID_UNTIL.
This element must only be used for PRICE_FEATURE_GROUP's for which the attribute ADDITIONAL_PRICE is set to 1 (1=surcharge).  
The percentage surcharge may refer to different PRICE_FEATURE_GROUPs:

Case 1

Base price 500.00

Surcharge headrest 50.00

Surcharge function 66.00

Surcharge seat heating 10% of base price --> factor 0.1 * 500 = 50

Surcharge rapport base price 10% of base price + headrest --> factor 0.1 * (500+50) = 55

Surcharge XY 20% on everything --> factor 0.2 * (500+50+66+50+55) = 144.20

Position value = 865.20

 

Case 2

Base price 500.00

Surcharge seat heating 10% of base price --> factor 0.1 * 500 = 50

Position value = 550.00

 

Case 3

Base price 500.00

Surcharge headrest 50.00

Surcharge function 66.00

Surcharge XY 20% of base price + headrest + function --> factor 0.2 * (500+50+66)=123.20

Position value = 739.20

 

Case 4

Base price 500.00

Surcharge headrest 50.00

Surcharge function 66.00

Surcharge XY 20% of ( base price + headrest + function ) --> factor 0.2 * (500+50+66)=123.20

Surcharge ZZ -10% of ( base price + function ) --> factor 0.1 * (500+66)=56.60

Position value = 682.60

 

Case 5

Base price 500.00

Surcharge headrest 50.00

Surcharge function 66.00

Condition value 616.00

 

Surcharge Global1 10% on everything --> factor 0.1 * 616 results in condition value = 61.60

Surcharge Global2 20% on everything --> factor 0.2 * 616 results in condition value = 123.20

Position value = 800.80

 

The factor value must be specified in the PRICE_FACTOR element.

The price groups to which the percentage surcharge relates are specified under PRICE_FEATURE_GROUP_REF.

The validity is specified in the VALID_FROM and VALID_UNTIL elements.

 

 

 

Position value = 800.80
Namespace (none)
Diagram
VALID_UNTIL Element VALID_FROM Element PRICE_FEATURE_GROUP_REF Element PRICE_FACTOR Element OPTIONS_SET_REF Element Sequence PERCENTAGE_SURCHARGE Element
Overview
PERCENTAGE_SURCHARGE 0..∞
To allow for percentage surcharges, the element FINISH supplemented below PRICE_FEATURE_GROUP by the element PERCENTAGE_SURCHARGE consisting of OPTION_REF, PRICE_FACTOR, PRICE_FEATURE_GROUP_REF, VALID_FROM and VALID_UNTIL.
This element must only be used for PRICE_FEATURE_GROUP's for which the attribute ADDITIONAL_PRICE is set to 1 (1=surcharge).  
The percentage surcharge may refer to different PRICE_FEATURE_GROUPs:

Case 1

Base price 500.00

Surcharge headrest 50.00

Surcharge function 66.00

Surcharge seat heating 10% of base price --> factor 0.1 * 500 = 50

Surcharge rapport base price 10% of base price + headrest --> factor 0.1 * (500+50) = 55

Surcharge XY 20% on everything --> factor 0.2 * (500+50+66+50+55) = 144.20

Position value = 865.20

 

Case 2

Base price 500.00

Surcharge seat heating 10% of base price --> factor 0.1 * 500 = 50

Position value = 550.00

 

Case 3

Base price 500.00

Surcharge headrest 50.00

Surcharge function 66.00

Surcharge XY 20% of base price + headrest + function --> factor 0.2 * (500+50+66)=123.20

Position value = 739.20

 

Case 4

Base price 500.00

Surcharge headrest 50.00

Surcharge function 66.00

Surcharge XY 20% of ( base price + headrest + function ) --> factor 0.2 * (500+50+66)=123.20

Surcharge ZZ -10% of ( base price + function ) --> factor 0.1 * (500+66)=56.60

Position value = 682.60

 

Case 5

Base price 500.00

Surcharge headrest 50.00

Surcharge function 66.00

Condition value 616.00

 

Surcharge Global1 10% on everything --> factor 0.1 * 616 results in condition value = 61.60

Surcharge Global2 20% on everything --> factor 0.2 * 616 results in condition value = 123.20

Position value = 800.80

 

The factor value must be specified in the PRICE_FACTOR element.

The price groups to which the percentage surcharge relates are specified under PRICE_FEATURE_GROUP_REF.

The validity is specified in the VALID_FROM and VALID_UNTIL elements.

 

 

 

Position value = 800.80
SEQUENCE required Restriction of xs:nonNegativeInteger
This element is used to specify the sequence in which the analyses will be executed. These configurators must in this order run through the individual elements of OPTION_SET_REF. The percentage surcharge is determined by the first matching feature combination.    D   nonNegativeInteger
   P   
   M   [1:99999]
Sequence
OPTIONS_SET_REF 0..∞

This element is used to reference a feature and defines a percentage surcharge for its feature classes. The percentage surcharges may be defined via values, lists, intervals or feature groups in conjunction with a quantity operator.

The simple data type operator was defined for this purpose and may contain the following values:

eq (equal)
ne (not equal)
in (is contained in a quantity)
nin (is not contained in a quantity)
gt (greater)
lt (less)
ge (greater than or equal)
le (less than or equal)

FEATURE_NO required Restriction of xs:nonNegativeInteger
This attribute is used to reference a feature.    D   nonNegativeInteger
   P   
   M   [0:999]
Choice
OPTION_INTERVAL

This element is used to evaluate whether an option falls within or outside of an interval.

Element OPTION_INTERVAL observes: OPTION_KEY_MIN <= assessed value <= OPTION_KEY_MAX.

OPERATOR required Restriction of operator Simple Type

This attribute is used to evaluate whether an option is within or without the interval specified in OPTION_KEY_MIN and OPTION_KEY_MAX.

in (is contained in a quantity)

nin (is not contained in a quantity)

   D   operator
   P   in|nin
   M   
OPTION_KEY_MIN required Restriction of xs:string

This attribute is used to specify the starting value of the interval.

 

   D   string
   P   
   M   [1:30]
OPTION_KEY_MAX required Restriction of xs:string
This attribute is used to specify the end value of the interval.    D   string
   P   
   M   [1:30]
OPTION_LIST
This element is used to evaluate whether an option corresponds to a value in a list.
OPERATOR required Restriction of operator Simple Type

This attribute is used to evaluate whether an option falls within or without a list of values.

in (is contained in a quantity)

nin (is not contained in a quantity)

   D   operator
   P   in|nin
   M   
Sequence 1..∞
OPTION_REF
This element is used to reference the options in a comparison list.
OPTION_KEY required Restriction of xs:string
This attribute is used to reference an option.    D   string
   P   
   M   [1:30]
OPTION_GROUP_REF_OP
This element is used to evaluate whether an option falls within a feature group.
OPTION_GROUP_KEY required Restriction of xs:string
This attribute is used to reference a feature group.    D   string
   P   
   M   [1:30]
OPERATOR required Restriction of operator Simple Type

This attribute is used to evaluate whether an option falls within a feature group.

in (is contained in a quantity)

nin (is not contained in a quantity)

   D   operator
   P   in|nin
   M   
OPTION_REF_OP

This element is used to define a comparison with an option.

The comparison operator may contain the following values:

 

eq (equal)

ne (not equal)

gt (greater)

lt (less)

ge (greater than or equal)

le (less than or equal)

OPTION_KEY required Restriction of xs:string
This attribute is used to reference an option.    D   string
   P   
   M   [1:30]
OPERATOR required Restriction of operator Simple Type
This attribute is used to define a comparison with an option.

The comparison operator may contain the following values:

eq (equal)

ne (not equal)

gt (greater)

lt (less)

ge (greater than or equal)

le (less than or equal)

   D   operator
   P   eq|ne|gt|lt|ge|le
   M   
MEASURE_VALUE_OP
This element is used to check the dimension of an option using another dimension.
MEASURE_VALUE required xs:nonNegativeInteger

This attribute is used to specify the comparison dimension.

 

   D   nonNegativeInteger
   P   
   M   
OPERATOR required Restriction of operator Simple Type
This attribute is used to define a comparison with a dimension.

The comparison operator may contain the following values:

eq (equal)

ne (not equal)

gt (greater)

lt (less)

ge (greater than or equal)

le (less than or equal)

   D   operator
   P   eq|ne|gt|lt|ge|le
   M   
MEASURE_INTERVAL
This element is used to evaluate whether an option's dimension falls within or outside of an interval.
OPERATOR required Restriction of operator Simple Type

This attribute is used to evaluate whether a value is within the interval specified in MEASURE_MIN and MEASURE_MAX.

in (is contained in a quantity)

nin (is not contained in a quantity)

   D   operator
   P   in|nin
   M   
MEASURE_MIN required xs:nonNegativeInteger

This attribute is used to specify the starting value of the interval.

   D   nonNegativeInteger
   P   
   M   
MEASURE_MAX required xs:nonNegativeInteger
This attribute is used to specify the end value of the interval.    D   nonNegativeInteger
   P   
   M   
PRICE_FACTOR Restriction of xs:int

This element specifies a percentage surcharge. It is specified as a factor with five decimal places.

A value of 1050000 corresponds to a surcharge of 10.5%.

A value of -1000000 corresponds to a surcharge of -10%.

   D   int
   P   
   M   [-9999999:99999999]
PRICE_FEATURE_GROUP_REF 0..∞
This element is used to reference a price group irrespective of the feature and/or calculation method (PRICE_FEATURE_GROUP).
PRICE_FEATURE_GROUP_NO required Restriction of xs:positiveInteger
This attribute is used to reference a PRICE_FEATURE_GROUP.    D   postiveInteger
   P   
   M   [1:99999]
VALID_FROM optional Restriction of xs:date
This element is used to specify the date from which date onwards a percentage surcharge is valid.    D   date
   P   
   M   
VALID_UNTIL optional Restriction of xs:date
This element is used to specify the date until a percentage surcharge is valid.    D   date
   P   
   M   
Attributes
NameTypeUseDefaultFixedDescription
SEQUENCERestriction of xs:nonNegativeIntegerrequired  
This element is used to specify the sequence in which the analyses will be executed. These configurators must in this order run through the individual elements of OPTION_SET_REF. The percentage surcharge is determined by the first matching feature combination.    D   nonNegativeInteger
   P   
   M   [1:99999]
Source
<xs:element name="PERCENTAGE_SURCHARGE" minOccurs="0" maxOccurs="unbounded" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
    <xs:documentation>geändert K.Richter 23.11.2015</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence>
      <xs:element name="OPTIONS_SET_REF" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>umbenannt von FEATURE_REF in OPTIONS_SET_REF</xs:documentation>
          <xs:documentation>K. Richter, 12.02.2015</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:choice>
            <xs:element name="OPTION_INTERVAL">
              <xs:annotation>
                <xs:documentation>271--0--NEW</xs:documentation>
                <xs:documentation>Version Beta 2.0 Build 4</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:attribute name="OPERATOR" use="required">
                  <xs:annotation>
                    <xs:documentation xml:lang="DE">eigener Typ Operator
"IN" und "NIN" möglich
</xs:documentation>
                    <xs:documentation>Version Beta 2.0 Build 4</xs:documentation>
                    <xs:documentation>17.01.2013 - Version 2.2.5 Polsterbranche - von 5 auf 30stellig geändert</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                    <xs:restriction base="operator">
                      <xs:pattern value="in|nin" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="OPTION_KEY_MIN" use="required">
                  <xs:annotation>
                    <xs:documentation>405--8/9/10--Max_Breite/Hoehe/Tiefe</xs:documentation>
                    <xs:documentation>Version Beta 2.0 Build 3</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:minLength value="1" />
                      <xs:maxLength value="30" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="OPTION_KEY_MAX" use="required">
                  <xs:annotation>
                    <xs:documentation>405--8/9/10--Max_Breite/Hoehe/Tiefe</xs:documentation>
                    <xs:documentation>Version Beta 2.0 Build 3</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:minLength value="1" />
                      <xs:maxLength value="30" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
            <xs:element name="OPTION_LIST">
              <xs:complexType>
                <xs:sequence maxOccurs="unbounded">
                  <xs:element name="OPTION_REF">
                    <xs:complexType>
                      <xs:attribute name="OPTION_KEY" use="required">
                        <xs:simpleType>
                          <xs:restriction base="xs:string">
                            <xs:minLength value="1" />
                            <xs:maxLength value="30" />
                          </xs:restriction>
                        </xs:simpleType>
                      </xs:attribute>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="OPERATOR" use="required">
                  <xs:annotation>
                    <xs:documentation xml:lang="DE">eigener Typ Operator "IN" und "NOTIN" möglich</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                    <xs:restriction base="operator">
                      <xs:pattern value="in|nin" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
            <xs:element name="OPTION_GROUP_REF_OP">
              <xs:annotation>
                <xs:documentation>271--0--NEW</xs:documentation>
                <xs:documentation>Version Beta 2.0 Build 4</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:attribute name="OPTION_GROUP_KEY" use="required">
                  <xs:annotation>
                    <xs:documentation>271--0--NEW</xs:documentation>
                    <xs:documentation>Version Beta 2.0 Build 4</xs:documentation>
                    <xs:documentation>17.01.2013 - Version 2.2.5 Polsterbranche - von 5 auf 30stellig geändert</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:minLength value="1" />
                      <xs:maxLength value="30" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="OPERATOR" use="required">
                  <xs:annotation>
                    <xs:documentation xml:lang="DE">eigener Typ Operator
hier sind nur "IN" und "NOTIN" möglich, da es sich um eine Mengenoperation handelt
</xs:documentation>
                    <xs:documentation>Version Beta 2.0 Build 4</xs:documentation>
                    <xs:documentation>17.01.2013 - Version 2.2.5 Polsterbranche - von 5 auf 30stellig geändert</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                    <xs:restriction base="operator">
                      <xs:pattern value="in|nin" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
            <xs:element name="OPTION_REF_OP">
              <xs:annotation>
                <xs:documentation>271--0--NEW</xs:documentation>
                <xs:documentation>Version Beta 2.0 Build 4</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:attribute name="OPTION_KEY" use="required">
                  <xs:annotation>
                    <xs:documentation>271--0--NEW</xs:documentation>
                    <xs:documentation>Version Beta 2.0 Build 4</xs:documentation>
                    <xs:documentation>17.01.2013 - Version 2.2.5 Polsterbranche - von 5 auf 30stellig geändert</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                    <xs:restriction base="xs:string">
                      <xs:minLength value="1" />
                      <xs:maxLength value="30" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="OPERATOR" use="required">
                  <xs:annotation>
                    <xs:documentation xml:lang="DE">eigener Typ Operator

</xs:documentation>
                    <xs:documentation>Version Beta 2.0 Build 4</xs:documentation>
                    <xs:documentation>17.01.2013 - Version 2.2.5 Polsterbranche - von 5 auf 30stellig geändert</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                    <xs:restriction base="operator">
                      <xs:pattern value="eq|ne|gt|lt|ge|le" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
            <xs:element name="MEASURE_VALUE_OP">
              <xs:annotation>
                <xs:documentation>1000--0--NEW</xs:documentation>
                <xs:documentation>Version Beta 2.4 Build 1</xs:documentation>
                <xs:documentation>01.07.2014 K. Richter</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:attribute name="MEASURE_VALUE" type="xs:nonNegativeInteger" use="required">
                  <xs:annotation>
                    <xs:documentation>1000--0--NEW</xs:documentation>
                    <xs:documentation>Version Beta 2.4 Build 1</xs:documentation>
                    <xs:documentation>01.07.2014 K. Richter</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
                <xs:attribute name="OPERATOR" use="required">
                  <xs:annotation>
                    <xs:documentation xml:lang="DE">eigener Typ Operator</xs:documentation>
                    <xs:documentation>Version Beta 2.4 Build 1</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                    <xs:restriction base="operator">
                      <xs:pattern value="eq|ne|gt|lt|ge|le" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
            <xs:element name="MEASURE_INTERVAL">
              <xs:annotation>
                <xs:documentation>1000--0--NEW</xs:documentation>
                <xs:documentation>Version Beta 2.4 Build 1</xs:documentation>
                <xs:documentation>01.07.2014 K. Richter</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:attribute name="OPERATOR" use="required">
                  <xs:annotation>
                    <xs:documentation xml:lang="DE">eigener Typ Operator "IN" und "NIN" möglich </xs:documentation>
                    <xs:documentation>Version Beta 2.4 Build 1</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                    <xs:restriction base="operator">
                      <xs:pattern value="in|nin" />
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="MEASURE_MIN" type="xs:nonNegativeInteger" use="required">
                  <xs:annotation>
                    <xs:documentation>405--8/9/10--Min_Breite/Hoehe/Tiefe</xs:documentation>
                    <xs:documentation>Version Beta 2.4 Build 1</xs:documentation>
                    <xs:documentation>01.07.2014 K. Richter</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
                <xs:attribute name="MEASURE_MAX" type="xs:nonNegativeInteger" use="required">
                  <xs:annotation>
                    <xs:documentation>405--8/9/10--Max_Breite/Hoehe/Tiefe</xs:documentation>
                    <xs:documentation>Version Beta 2.4 Build 1</xs:documentation>
                    <xs:documentation>01.07.2014 K. Richter</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:choice>
          <xs:attribute name="FEATURE_NO" use="required">
            <xs:annotation>
              <xs:documentation>271--0--NEW</xs:documentation>
              <xs:documentation>Version Beta 2.0 Build 4</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="xs:nonNegativeInteger">
                <xs:minInclusive value="0" />
                <xs:maxInclusive value="999" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="PRICE_FACTOR">
        <xs:annotation>
          <xs:documentation>311--5--Preisfeld</xs:documentation>
          <xs:documentation>Version Beta 2.0 Build 0, K. Richter 28.05.2014</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:int">
            <xs:maxInclusive value="99999999" />
            <xs:minInclusive value="-9999999" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="PRICE_FEATURE_GROUP_REF" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>311--0--NEW</xs:documentation>
          <xs:documentation>Version Beta 2.0 Build 0</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name="PRICE_FEATURE_GROUP_NO" use="required">
            <xs:annotation>
              <xs:documentation>300--2--Ausfuehrungs_Gruppe</xs:documentation>
              <xs:documentation>Version Beta 2.0 Build 6, K. Richter 26.03.2014</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="xs:positiveInteger">
                <xs:minInclusive value="1" />
                <xs:maxInclusive value="99999" />
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="VALID_FROM" minOccurs="0">
        <xs:annotation>
          <xs:documentation xml:lang="DE">21.07.2011/balke - Polsterbranche Lieferbar ab</xs:documentation>
          <xs:documentation xml:lang="DE">Version Beta 2.1 Build 07</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:date" />
        </xs:simpleType>
      </xs:element>
      <xs:element name="VALID_UNTIL" minOccurs="0">
        <xs:annotation>
          <xs:documentation xml:lang="DE">21.07.2011/balke - Polsterbranche Lieferbar bis</xs:documentation>
          <xs:documentation xml:lang="DE">Version Beta 2.1 Build 7</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:date" />
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="SEQUENCE" use="required">
      <xs:annotation>
        <xs:documentation>1000--0--NEW</xs:documentation>
        <xs:documentation>Version Beta 2.0 Build 0</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:nonNegativeInteger">
          <xs:minInclusive value="1" />
          <xs:maxInclusive value="99999" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>
See Also
PRICE_FEATURE_GROUP ElementPRICE_FEATURE_GROUPS ElementPRICE_DEFINITION ElementT_NEW_CATALOG ElementIDMW 2.0 XML-Schema Dokumentation