...
Gets a price lists with all properties:
...
, including code, name, discounts, price minima, assigned clients and more.
The services included with a price list (such as Translation from English to French) can be retrieved with other API methods.
Content:
Table of Contents |
---|
URL
(GET) /api/pricingservices/pricelists/{idplid}
PARAMETERS
URL parameters are:
plid | The price list ID | Integer, Mandatory |
RESULTS
...
Main properties
The price list properties are:
plid | The price list ID | int | ||||
code | The price list code. The default price lists (generally) has an empty string. This field can be set by the user in the UI. | string | ||||
name | The name of the price list. | string | ||||
cid | The company which owns the price list, i.e. which provides the services in the price list.
In other words: A price lists is always owned by the company which provides the listed services. Passing a client company to the API URL will return price lists owned by the master company. Hence be careful to understand the difference between the cid passed in the URL and cid of a price list. It is not necessarily the same! | int | ||||
cname | The company name | string | ||||
enabled | Indicates if the price list is enabled or disabled. A disabled price list cannot be used for cost calculation. | bool | ||||
isDefault | Boolean. True if this is the default price list of the client, supplier or master company. | bool | ||||
isDraft | Indicates if the price list is a draft. Wordbee Translator proposes price list drafting workflows that involve the supplier company. Please check out the online user guides for how this works. | bool | ||||
isClientPricelist | Boolean. True if this is a client price list. False if it is a supplier price list. | bool | ||||
currency | A three letter currency code such as EUR or USD. See also: settings/currencies/codes | string | ||||
currencyt | Title of currency such as "Euro" or "US dollars" | string | ||||
comments | Internal comments. Not accessible to external users. Empty string if none. | string | ||||
contractno | Internal contract number assigned to this price list. This field is visible to internal users only. Empty string if none. | string | ||||
decimals | Number of decimals of price calculations. For example, you may want to show 2 decimals in invoices. Subtotals and totals will then be rounded accordingly. | |||||
reductions | Any reductions defined for pretranslations, fuzzy matches or repetitions. See description further below. | object | ||||
minima | Minimum prices. Used to set for example a minimum of Euro 50 for a batch of work. See description further below. | object | ||||
clients | Used with client price lists. The list of client company IDs to which the price list is assigned. Note that only price lists owned by the master company can be assigned to clients. Supplier price lists cannot. | int[]? | decimals | Number of decimals of price calculations. For example, you may want to show 2 decimals in invoices. Subtotals and totals will then be rounded accordingly. | int Null if the price list is not a client price list. See description further below. | object? |
default | If the present price list is not the default (see isDefault) then this object contains the complete default price list. Otherwise this property is null. object?See description further below. | |||||
rights | Access rights details. Specifies the exact actions permitted on the price list. This information is only relevant if you intend to build a UI to view and edit price lists. | object |
Reductions
The reductions object has these properties:
Pretranslation discounts Discounts applicable for pretranslations. | object | |||
pretranslations.reductionExact | Optional. The default reduction for any kind of 100% or 110% pretranslations. More specific reductions can be set to override, see below. Null means that no such reduction is set. The reduction is a decimal number between 0 and 100. For example, 20.50 means that the calculated price will be reduced by 20.50%. | decimal? | ||
pretranslations.reductionExactCtx | Optional. Reduction for 110% (perfect) pretranslations. If null then the discount is taken from pretranslations.reductionExact | decimal? | ||
pretranslations.reductionExactPrevCtx | Optional. Reduction for 110% (perfect) pretranslations from a previous document version. This applies when you upload a new version of a document and translations are carried over from the previous version while the context (segment before and after) is carried over as well. If null then the discount is taken from pretranslations.reductionExact | decimal? | ||
pretranslations.reductionExactPrev | Optional. Reduction for 100% (perfect) pretranslations from a previous document version. This applies when you upload a new version of a document and translations are carried over from the previous version while the context (segment before and after) is not carried over. Also compare to reductionExactPrevCtx. If null then the discount is taken from pretranslations.reductionExact | decimal? | ||
pretranslations.reductionExactMT | Optional. Reduction for machine translations. If null then the discount is taken from pretranslations.reductionExact | decimal? | ||
pretranslations.reductionExactAnySpecial | Boolean that summarizes whether any of the specialised discounts reductionExactCtx, reductionExactPrevCtx, reductionExactPrev or reductionExactMT are set. | bool | ||
pretranslations.reductionFuzzy | Optional. Reduction for <100% pre-translations. A word count profile allows to leverage translations for pre-translations even if they do not match exactly. We name this the fuzzy pretranslation threshold. | decimal? | ||
Fuzzy match & repetitions discounts Groups all discounts for fuzzy matches and repetitions WITHOUT pretranslation. The word count profile defines under which condition hits are leveraged with a translation or not. A typical case is when the similarity % is below a certain threshold such as 95%. | object | |||
fuzzymatches.any | Boolean indicating if there are any such discounts defined. | bool | ||
fuzzymatches.any110 | Boolean indicating if there are any such discounts defined for 110% (perfect) fuzzy matches / repetitions without pretranslation | bool | ||
fuzzymatches.items | All % intervals with the corresponding discount. Example:
|
Price minima
The minima object has these properties:
minima.global | An optional minimum amount for a batch of work. The minimum is typically calculated when costing a batch of work and is reflected in the invoice. For example, when assigning a job to a supplier, a minimum amount to invoice may apply for the work. In the same way, a minimum fee may be set for any work asked for by clients. | decimal? |
minima.languages | Zero, one or more minima for specific language combinations. The language minima always take precedence over the global minimum. This is a list of minima with these properties:
When calculating the grand total for an invoice, the respective language minima will be applied to the sub-totals of the work items in these languages. | object[] |
Default price list
The default property contains information of the parent price list and if the present price list inherits services or discounts.
The object is set if and only if the present price list is not the default price list of the company, i.e. isDefault is false.
The object has these properties:
default.plid | The default price list ID | int |
default.code | The default price list code. | string |
default.currency | A three letter currency code such as EUR or USD. | string |
default.currencyt | Title of currency such as "Euro" or "US dollars" | string |
default.inheritServices | If true then the price list inherits all the services from the default price list. Of course, it is possible to replace individual prices by simply explicitly adding services with the same languages, task code and product code. This effectively "hides" the inherited service and replaces it. By default this option is ticked off in any newly created price list. In general you should be careful working with inheritance, it is great to create price lists with global discounts or different currencies but at the same time makes price management a little bit more difficult. | bool |
default.inheritReduction | If inheritance is enabled then this optional default will be automatically applied to all unit price amounts of the inherited services. With this feature you can create a price list that inherits all default services but applies a discount such as 5%. That makes it very easy to manage multiple price lists with varying discount levels at (almost) one click. | decimal? |
default.conversionRate | Use if inheritance is enabled but the currency of the price list is NOT the same as the currency of the default price list. The conversion rate is then used to multiply the default price amounts to obtain the amounts for the present price list. With this feature it is easy to add price lists with the exact same services but for different currencies and using a fixed conversion rate. | decimal? |
default.conversionRateDate | An optional date that can be set for the fixed conversion rate above. | datetime? |
Assigned clients
The clients object is set if the price list is a client price list. It defines the clients for which the price list can or should be used.
clients.cids | The list of client company IDs to which the price list is explicitly assigned. | int[] |
clients.hideIfNoClients | Boolean:
When false, the explicit assignment is then for informational purposes for the project manager. Any client specific price lists should best be configured with hideIfNoClients equals true | bool |
EXAMPLES
The following example is for a manager user accessing a job which is proposed to him/her. As a manager, the user has management level actions as well.
Code Block |
---|
{ "idplid": "c231"473, "jobidcode": 231"sample", "iscodytname": true, "Sample price list", "statuscid": 11308, "statustcname": "Supplier LSP"Not assigned",, "enabled": true, "hasPredecessorisDefault": false, "assignmentisDraft": {false, "modeisClientPricelist": 0false, "modetcurrency": "Fixed assignmentEUR", "cidcurrencyt": null"Euro", "cnamecontractno": null"", "uidcomments": null"", "unamereductions": null, { "wasAcceptedfuzzymatches": false }, "readOnly { "any": true, "any110": false, "actions "items": [ { "id": "OPENING_ACCEPT_INACTIVE", "title": "Yes, I want to reserve this upcoming job!", "desc": "This job is still inactive but you can already reserve it now. This will put your name on the job.", "isinfo": false, "isprimary": true, { "min": 100, "max": 110, "reduction": 40.0 }, { "min": 75, "max": 99, "reduction": 10.0 } ] }, "pretranslations": { "reductionExact": 10.0, "reductionExactCtx": 20.0, "affectsRightsreductionExactPrevCtx": true20.0, "style": "Green", "uicontrol": "Terms" }, { "id": "OPENING_DECLINE", "title": "Unfortunately, I have to decline this proposal.", "desc": "This will remove the job opening from your job list.", "isinfo": false, "isprimary": true, "reductionExactPrev": 20.0, "reductionExactMT": null, "reductionExactAnySpecial": true, "reductionFuzzy": null } }, "minima": { "global": 0.0000, "languages": [] }, "clients": null, "decimals": 4, "default": { "affectsRightsplid": true462, "style "code": "Gray", "uicontrol "currency": "NoneEUR", }, { "idcurrencyt": "ADMIN_STATUS_NOTASSIGNEDEuro", "title": "Change status to 'Not assigned'", "desc "inheritServices": false, "inheritReduction": null, "conversionRate": null, "isinfo": false, "isprimary": false, "conversionRateDate": null }, "rights": { "affectsRightshasAccess": true, "style": "Default", "uicontrol": "None" }, { "id": "ADMIN_STATUS_NOTSTARTED", "title": "Change status to 'Not started'", "desc": null, "isinfo": false, "isprimary "isClientPricelist": false, "isDraft": false, "isDefault": false, "canEdit": true, "canDisableEnable": true, "canAmendStart": true, "canAmendDone": false, "canAmendApprove": false, "canAmendReject": false, "affectsRightscanClone": true, "stylecanDelete": true, "DefaultcanViewAttachedClients": false, "uicontrol "canViewRating": "None" } ],true, "canViewComments": true, "uicontrolscanViewBA": {true, "TermscanViewBackupServices": { true, "termsShowallowsBackupServices": true, }, "NonecanViewAmendments": nullfalse }, } |