Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This structure represents the fields associated with an expense type. This structure is intended to provide information about expense types in support of expense entry (creation and maintenance of cost cards).

Format


Panel
titlePwsExpenseType
  • PwsExpenseType
    • ExpenseTypeId: Int32
    • ExpenseTypeName: String (50)
    • ExpenseTypeUid: Int64
    • DefaultUnitCost: Double
    • DefaultUnitPrice: Double
    • ExpenseEntryInstructions: String (1000)
    • HardCostFlag: Boolean
    • MileageFlag: Boolean
    • ReceiptRequiredFlag: Boolean
    • SoftCostFlag: Boolean
    • TreatCostsAsPassthroughFlag: Boolean
    • Udf1Treatment: String
    • Udf2Treatment: String
    • UnitDrivenFlag: Boolean
    • UnitPluralName: String
    • UnitSingularName: String
    • VendorInvoiceCostFlag: Boolean
    • DescriptionRequiredFlag: Boolean
    • ExpenseTypeGroupIdentity: PwsExpenseTypeGroupRef
    • SubcontractorInvoiceFlag: Boolean
    • DefaultMarkupPercentage: Double
    • InactiveFlag: Boolean
    • UnitDrivenPricingFlag: Boolean
    • LockUnitCostFlag: Boolean

Elements


Defaultfalsefalsefalsefalsefalsefalse0falsefalse

Element

Data Type

Required?

Description

Sample Data

ExpenseTypeId

Int32No 

The expense type Id is a unique identifier for an expense type. For internal use only.


ExpenseTypeName

String (50)One of ExpenseTypeName or ExpenseTypeUid is required

The expense type name is a unique identifier for an expense type.

Hotel

ExpenseTypeUid

Int64See ExpenseTypeName 

A unique and immutable identifier for an expense type.

1152921504606878414

DefaultUnitCost

DoubleYes (if UnitDrivenFlag = 'true')

The default cost per unit (for unit based expense types only).


DefaultUnitPrice

DoubleYes (if UnitDrivenFlag = 'true')

The default price per unit (for unit based expense types only).


ExpenseEntryInstructions

String (1000)

No

The expense entry instructions for the expense type.


HardCostFlag

Boolean

No

If set to 'true', the expense type is enabled for expense reports.

true

MileageFlag

Boolean

No 

If set to 'true', the expense type is mileage based.

false

ReceiptRequiredFlag

Boolean

No

If set to 'true', receipts are required for expenses logged against this expense type.

false

SoftCostFlag

BooleanNo 

false

If set to 'true', the expense type is enabled for soft costs.

true

TreatCostsAsPassthroughFlag

Boolean

No 

If set to 'true', expenses logged against this expense type are treated as passthrough expenses.

false

Udf1Treatment

String

No

User Defined Field Treatement for the first UDF associated with the expense type:

  • "R" for required – UDF should be displayed and requires a value. Yes/no UDFs never have this status, and always have a value of yes or no (checked or unchecked). There’s no third (i.e., null) state for yes/no UDFs.
  • "A" for available—UDF should be displayed and null is a valid value (except for yes/no; see above)
  • "N" for unavailable—This calls for displaying the UDF as read only if populated, and not displaying it at all otherwise. In the case of yes/no, only a value of yes/checked should cause the UDF to be displayed. <N> could be (a) UDF inactive flag = T, (b) Cost UDF expense type setting: Not available, or (c) Not enabled via Enterprise Configuration for a certain engagement type. 

    cost card UDF. See below for a discussion of UDF treatments.

    N

    Udf2Treatment

    String

    No 

    User Defined Field Treatement for the second UDF associated with the expense type:

  • "R" for required – UDF should be displayed and requires a value. Yes/no UDFs never have this status, and always have a value of yes or no (checked or unchecked). There’s no third (i.e., null) state for yes/no UDFs.
  • "A" for available—UDF should be displayed and null is a valid value (except for yes/no; see above)
  • "N" for unavailable—This calls for displaying the UDF as read only if populated, and not displaying it at all otherwise. In the case of yes/no, only a value of yes/checked should cause the UDF to be displayed. <N> could be (a) UDF inactive flag = T, (b) Cost UDF expense type setting: Not available, or (c) Not enabled via Enterprise Configuration for a certain engagement type. 

    cost card UDF. See below for a discussion of UDF treatments.

    N

    UnitDrivenFlag

    BooleanNo

    false

    If set to 'true', the expense type is unit based.

    false

    UnitPluralName

    StringYes (if UnitDrivenFlag = 'true')

    The plural name for a unit based expense type (i.e. widgets).


    UnitSingularName

    StringYes (if UnitDrivenFlag = 'true')

    The singular name for a unit based expense type (i.e. widget).


    VendorInvoiceCostFlag

    BooleanNo 

    false

    If set to 'true', the expense type is enabled for vendor invoices.


    DescriptionRequiredFlag

    Boolean

    No 

    If set to 'true', descriptions are required for expenses logged against this expense type.


    ExpenseTypeGroupIdentity

    PwsExpenseTypeGroupRef

    Yes

    The expense type group this expense type resides under.


    SubcontractorInvoiceFlag

    Boolean

    No 

    If set to 'true', the expense type is enabled for subcontractor invoices.

    false

    DefaultMarkupPercentage

    Double

    No

    The default mark up percentage that will be applied to expenses entered against this expense type type.

    0

    InactiveFlag

    Boolean

    No 

    If set to 'true', this expense type is marked as inactive.

    false

    UnitDrivenPricingFlag

    Boolean

    Yes (if UnitDrivenFlag = 'true')

    If set to 'true', the expense type's pricing is unit based.

    false

    LockUnitCostFlag

    BooleanNo 

    false

    If set to 'true', the expense type's pricing is unit based and the unit cost is locked during expense entry.

    false


    UDF Treatment

    The UDF treatment for a UDF determines whether the user defined field is required, optional or not available.

    A value of 'R' indicates that the user defined field is required. It is possible that an existing cost card will have no value for a UDF even though the cost card's expense type indicates that the UDF value should be required. This can come about by modifying the UDF treatment setting for the expense type after the cost card has been created. In this case, if you attempt to update the cost card via web services, the absence of the UDF value will not cause the update to fail. However, if you attempt to insert a new cost card or clear the UDF value on an existing cost card that has a value for the UDF, it will result in failure. Yes/no UDFs never have a UDF treatment of 'R', as a missing value for a yes/no UDF is considered equivalent to a value of 'no'. Therefore, by their nature the value cannot be missing.

    A value of 'A' indicates that the user defined field is available (but optional). This means that the UDF value is supported, but it is allowable for the value to be cleared.

    A value of 'N' indicates that the user defined field is not available. In other words, the user defined field does not apply for the expense type. Again, it is possible that a cost card of this expense type will have a defined value for such a UDF. That value will continue to be returned by web services that retrieve cost cards, and web services that update cost cards will allow the caller to either leave the existing value unchanged or clear the existing value. However, attempts to change the value (to a different, non-null value) will fail.

    Usage Example(s)


    Code Block
    languagexml
    titleExample 01
    collapsetrue
                   <a:PwsExpenseType>
                      <ExpenseTypeId i:nil="true" xmlns="http://projectorpsa.com/DataContracts/Shared/Common/"/>
                      <ExpenseTypeName xmlns="http://projectorpsa.com/DataContracts/Shared/Common/">Hotel</ExpenseTypeName>
                      <ExpenseTypeUid xmlns="http://projectorpsa.com/DataContracts/Shared/Common/">1152921504606878414</ExpenseTypeUid>
                      <a:DefaultUnitCost i:nil="true"/>
                      <a:DefaultUnitPrice i:nil="true"/>
                      <a:ExpenseEntryInstructions i:nil="true"/>
                      <a:HardCostFlag>true</a:HardCostFlag>
                      <a:MileageFlag>false</a:MileageFlag>
                      <a:ReceiptRequiredFlag>false</a:ReceiptRequiredFlag>
                      <a:SoftCostFlag>true</a:SoftCostFlag>
                      <a:TreatCostsAsPassthroughFlag>false</a:TreatCostsAsPassthroughFlag>
                      <a:Udf1Treatment>N</a:Udf1Treatment>
                      <a:Udf2Treatment>N</a:Udf2Treatment>
                      <a:UnitDrivenFlag>false</a:UnitDrivenFlag>
                      <a:UnitPluralName i:nil="true"/>
                      <a:UnitSingularName i:nil="true"/>
                      <a:VendorInvoiceCostFlag>true</a:VendorInvoiceCostFlag>
                      <a:DescriptionRequiredFlag>true</a:DescriptionRequiredFlag>
                      <a:ExpenseTypeGroupIdentity xmlns:b="http://projectorpsa.com/DataContracts/Shared/Common/">
                         <b:ExpenseTypeGroupId i:nil="true"/>
                         <b:ExpenseTypeGroupName>Travel</b:ExpenseTypeGroupName>
                         <b:ExpenseTypeGroupUid>1152921504606849219</b:ExpenseTypeGroupUid>
                      </a:ExpenseTypeGroupIdentity>
                      <a:SubcontractorInvoiceFlag>false</a:SubcontractorInvoiceFlag>
                      <a:DefaultMarkupPercentage>0</a:DefaultMarkupPercentage>
                      <a:InactiveFlag>false</a:InactiveFlag>
                      <a:UnitDrivenPricingFlag>false</a:UnitDrivenPricingFlag>
                      <a:LockUnitCostFlag>false</a:LockUnitCostFlag>
                   </a:PwsExpenseType>