class Orders extends DolibarrApi (View source)

API class for orders

Properties

protected DoliDB $db from  DolibarrApi
Restler $r from  DolibarrApi
static string[] $FIELDS
Commande $commande

Methods

__construct()

Constructor

string|array<string, mixed>
_checkValForAPI(string $field, string|string[] $value, object $object)

Check and convert a string depending on its type/name.

object
_filterObjectProperties(object $object, string $properties)

Filter properties that will be returned on object

object
_cleanObjectDatas(object $object)

Clean sensible object datas

static bool
_checkAccessToResource(string $resource, int $resource_id = 0, string $dbtablename = '', string $feature2 = '', string $dbt_keyfield = 'fk_soc', string $dbt_select = 'rowid')

Check access by user to a given resource

bool|string
_checkFilters(string $sqlfilters, string $error = '')

Return if a $sqlfilters parameter is valid Function no more used. Kept for backward compatibility with old APIs of modules

static string
_forge_criteria_callback(string[] $matches)

Function to forge a SQL criteria from a Generic filter string.

array|mixed
get(int $id, int $contact_list = -1)

Get properties of an order object by id

array|mixed
getByRef(string $ref, int $contact_list = -1)

Get properties of an order object by ref

array|mixed
getByRefExt(string $ref_ext, int $contact_list = -1)

Get properties of an order object by ref_ext

array
index(string $sortfield = "t.rowid", string $sortorder = 'ASC', int $limit = 100, int $page = 0, string $thirdparty_ids = '', string $sqlfilters = '', string $sqlfilterlines = '', string $properties = '', bool $pagination_data = false, int $loadlinkedobjects = 0)

List orders

int
post(array $request_data = null)

Create a sale order

array
getLines(int $id)

Get lines of an order

object
getLine(int $id, int $lineid, string $properties = '')

Get properties of a line of an order object by id

int
postLine(int $id, array $request_data = null)

Add a line to given order

object|false
putLine(int $id, int $lineid, array $request_data = null)

Update a line to given order

object
deleteLine(int $id, int $lineid)

Delete a line of a given order

array<int, mixed>
getContacts(int $id, string $type = '')

Get contacts of a given order

array
postContact(int $id, int $contactid, string $type, string $source = "external", int $notrigger = 0)

Add a contact type of given order

array
deleteContact(int $id, int $contactid, string $type)

Unlink a contact type of given order

object
put(int $id, array $request_data = null)

Update order general fields (won't touch lines of order)

array
delete(int $id)

Delete order

object
validate(int $id, int $idwarehouse = 0, int $notrigger = 0)

Validate an order

int
reopen(int $id)

Tag the order as validated (opened)

object
setinvoiced(int $id)

Classify the order as invoiced. Could be also called setbilled

object
close(int $id, int $notrigger = 0)

Close an order (Classify it as "Delivered")

object
settodraft(int $id, int $idwarehouse = -1)

Set an order to draft

object
createOrderFromProposal(int $proposalid)

Create an order using an existing proposal.

array
getOrderShipments(int $id)

Get the shipments of an order

int
createOrderShipment(int $id, int $warehouse_id)

Create the shipment of an order

Details

__construct()

Constructor

protected string|array<string, mixed> _checkValForAPI(string $field, string|string[] $value, object $object)

Check and convert a string depending on its type/name.

Parameters

string $field

Field name

string|string[] $value

Value to check/clean

object $object Object

Return Value

string|array<string, mixed>

Value cleaned

protected object _filterObjectProperties(object $object, string $properties)

Filter properties that will be returned on object

Parameters

object $object

Object to clean

string $properties

Comma separated list of properties names

Return Value

object

Object with cleaned properties

protected object _cleanObjectDatas(object $object)

Clean sensible object datas

Parameters

object $object

Object to clean

Return Value

object

Object with cleaned properties

static protected bool _checkAccessToResource(string $resource, int $resource_id = 0, string $dbtablename = '', string $feature2 = '', string $dbt_keyfield = 'fk_soc', string $dbt_select = 'rowid')

Check access by user to a given resource

Parameters

string $resource

element to check

int $resource_id

Object ID if we want to check a particular record (optional) is linked to a owned thirdparty (optional).

string $dbtablename

'TableName&SharedElement' with Tablename is table where object is stored. SharedElement is an optional key to define where to check entity. Not used if objectid is null (optional)

string $feature2

Feature to check, second level of permission (optional). Can be or check with 'level1|level2'.

string $dbt_keyfield

Field name for socid foreign key if not fk_soc. Not used if objectid is null (optional)

string $dbt_select

Field name for select if not rowid. Not used if objectid is null (optional)

Return Value

bool

protected bool|string _checkFilters(string $sqlfilters, string $error = '')

Return if a $sqlfilters parameter is valid Function no more used. Kept for backward compatibility with old APIs of modules

Parameters

string $sqlfilters

sqlfilter string

string $error

Error message

Return Value

bool|string

True if valid, False if not valid

static protected string _forge_criteria_callback(string[] $matches)

Function to forge a SQL criteria from a Generic filter string.

Function no more used. Kept for backward compatibility with old APIs of modules

Parameters

string[] $matches

Array of found string by regex search. Each entry is 1 and only 1 criteria. Example: "t.ref:like:'SO-%'", "t.date_creation:<:'20160101'", "t.date_creation:<:'2016-01-01 12:30:00'", "t.nature:is:NULL", "t.field2:isnot:NULL"

Return Value

string

Forged criteria. Example: "t.field like 'abc%'"

array|mixed get(int $id, int $contact_list = -1)

Get properties of an order object by id

Return an array with order information

Parameters

int $id

ID of order

int $contact_list

0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses

Return Value

array|mixed

data without useless information

Exceptions

RestException

array|mixed getByRef(string $ref, int $contact_list = -1)

Get properties of an order object by ref

Return an array with order information

Parameters

string $ref

Ref of object

int $contact_list

0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses

Return Value

array|mixed

data without useless information

Exceptions

RestException

array|mixed getByRefExt(string $ref_ext, int $contact_list = -1)

Get properties of an order object by ref_ext

Return an array with order information

Parameters

string $ref_ext

External reference of object

int $contact_list

0: Returned array of contacts/addresses contains all properties, 1: Return array contains just id, -1: Do not return contacts/adddesses

Return Value

array|mixed

data without useless information

Exceptions

RestException

array index(string $sortfield = "t.rowid", string $sortorder = 'ASC', int $limit = 100, int $page = 0, string $thirdparty_ids = '', string $sqlfilters = '', string $sqlfilterlines = '', string $properties = '', bool $pagination_data = false, int $loadlinkedobjects = 0)

List orders

Get a list of orders

Parameters

string $sortfield

Sort field

string $sortorder

Sort order

int $limit

Limit for list

int $page

Page number

string $thirdparty_ids

Thirdparty ids to filter orders of (example '1' or '1,2,3') {@pattern /^[0-9,]*$/i}

string $sqlfilters

Other criteria to filter answers separated by a comma. Syntax example "(t.ref:like:'SO-%') and (t.date_creation:<:'20160101')"

string $sqlfilterlines

Other criteria to filter answers separated by a comma. Syntax example "(tl.fk_product:=:'17') and (tl.price:<:'250')"

string $properties

Restrict the data returned to these properties. Ignored if empty. Comma separated list of properties names

bool $pagination_data

If this parameter is set to true the response will include pagination data. Default value is false. Page starts from 0*

int $loadlinkedobjects

Load also linked object

Return Value

array

Array of order objects

Exceptions

RestException
RestException

int post(array $request_data = null)

Create a sale order

Example: { "socid": 2, "date": 1595196000, "type": 0, "lines": [{ "fk_product": 2, "qty": 1 }] }

Parameters

array $request_data

Request data

Return Value

int

ID of order

array getLines(int $id)

Get lines of an order

Parameters

int $id

Id of order

Return Value

array

object getLine(int $id, int $lineid, string $properties = '')

Get properties of a line of an order object by id

Parameters

int $id

Id of order

int $lineid

Id of line

string $properties

Restrict the data returned to these properties. Ignored if empty. Comma separated list of properties names

Return Value

object

int postLine(int $id, array $request_data = null)

Add a line to given order

Parameters

int $id

Id of order to update

array $request_data

OrderLine data

Return Value

int

object|false putLine(int $id, int $lineid, array $request_data = null)

Update a line to given order

Parameters

int $id

Id of order to update

int $lineid

Id of line to update

array $request_data

OrderLine data

Return Value

object|false

Object with cleaned properties

object deleteLine(int $id, int $lineid)

Delete a line of a given order

Parameters

int $id

Id of order to update

int $lineid

Id of line to delete

Return Value

object

Object with cleaned properties

Exceptions

RestException
RestException

array<int, mixed> getContacts(int $id, string $type = '')

Get contacts of a given order

Return an array with contact information

Parameters

int $id

ID of order

string $type

Type of the contact ('BILLING', 'SHIPPING', 'CUSTOMER', ...)

Return Value

array<int, mixed>

Array of contacts

Exceptions

RestException

array postContact(int $id, int $contactid, string $type, string $source = "external", int $notrigger = 0)

Add a contact type of given order

Parameters

int $id

Id of order to update

int $contactid

Id of contact to add

string $type

Type (code in dictionary) of the contact (BILLING, SHIPPING, CUSTOMER + possibly your own)

string $source

internal=Contact intern (llx_user), external=Contact extern (llx_socpeople)

int $notrigger

0=Enable all triggers (default), 1=Disable all triggers

Return Value

array

Exceptions

RestException
RestException
RestException
RestException

array deleteContact(int $id, int $contactid, string $type)

Unlink a contact type of given order

Parameters

int $id

Id of order to update

int $contactid

Id of contact

string $type

Type of the contact (BILLING, SHIPPING, CUSTOMER).

Return Value

array

Exceptions

RestException
RestException
RestException

object put(int $id, array $request_data = null)

Update order general fields (won't touch lines of order)

Parameters

int $id

Id of order to update

array $request_data Data

Return Value

object

Object with cleaned properties

array delete(int $id)

Delete order

Parameters

int $id

Order ID

Return Value

array

object validate(int $id, int $idwarehouse = 0, int $notrigger = 0)

Validate an order

If you get a bad value for param notrigger check, provide this in body { "idwarehouse": 0, "notrigger": 0 }

Parameters

int $id

Order ID

int $idwarehouse

Warehouse ID

int $notrigger

1=Does not execute triggers, 0= execute triggers

Return Value

object

Object with cleaned properties

Exceptions

RestException
RestException
RestException
RestException

int reopen(int $id)

Tag the order as validated (opened)

Function used when order is reopend after being closed.

Parameters

int $id

Id of the order

Return Value

int

Exceptions

RestException
RestException
RestException
RestException
RestException

object setinvoiced(int $id)

Classify the order as invoiced. Could be also called setbilled

Parameters

int $id

Id of the order

Return Value

object

Object with cleaned properties

Exceptions

RestException
RestException
RestException
RestException

object close(int $id, int $notrigger = 0)

Close an order (Classify it as "Delivered")

Parameters

int $id

Order ID

int $notrigger

Disabled triggers

Return Value

object

Object with cleaned properties

object settodraft(int $id, int $idwarehouse = -1)

Set an order to draft

Parameters

int $id

Order ID

int $idwarehouse

Warehouse ID to use for stock change (Used only if option STOCK_CALCULATE_ON_VALIDATE_ORDER is on)

Return Value

object

Object with cleaned properties

object createOrderFromProposal(int $proposalid)

Create an order using an existing proposal.

Parameters

int $proposalid

Id of the proposal

Return Value

object

Object with cleaned properties

Exceptions

RestException
RestException
RestException
RestException

array getOrderShipments(int $id)

Get the shipments of an order

Parameters

int $id

Id of the order

Return Value

array

Exceptions

RestException
RestException
RestException

int createOrderShipment(int $id, int $warehouse_id)

Create the shipment of an order

Parameters

int $id

Id of the order

int $warehouse_id

Id of a warehouse

Return Value

int

Exceptions

RestException
RestException
RestException