294 lines
7.6 KiB
PHP
294 lines
7.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* PHP version 5.4
|
|
*
|
|
* References
|
|
*
|
|
* @category RetailCrm
|
|
* @package RetailCrm
|
|
* @author RetailCrm <integration@retailcrm.ru>
|
|
* @license https://opensource.org/licenses/MIT MIT License
|
|
* @link https://help.retailcrm.ru/Developers/ApiVersion5
|
|
*/
|
|
|
|
namespace RetailCrm\Methods\V5;
|
|
|
|
use RetailCrm\Methods\V4\References as Previous;
|
|
|
|
/**
|
|
* PHP version 5.4
|
|
*
|
|
* References class
|
|
*
|
|
* @category RetailCrm
|
|
* @package RetailCrm
|
|
* @author RetailCrm <integration@retailcrm.ru>
|
|
* @license https://opensource.org/licenses/MIT MIT License
|
|
* @link https://help.retailcrm.ru/Developers/ApiVersion5
|
|
*/
|
|
trait References
|
|
{
|
|
use Previous;
|
|
|
|
/**
|
|
* Get costs groups
|
|
*
|
|
* @throws \RetailCrm\Exception\CurlException
|
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
|
*
|
|
* @return \RetailCrm\Response\ApiResponse
|
|
*/
|
|
public function costGroups()
|
|
{
|
|
/* @noinspection PhpUndefinedMethodInspection */
|
|
return $this->client->makeRequest(
|
|
'/reference/cost-groups',
|
|
"GET"
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Edit costs groups
|
|
*
|
|
* @param array $data
|
|
*
|
|
* @throws \InvalidArgumentException
|
|
* @throws \RetailCrm\Exception\CurlException
|
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
|
*
|
|
* @return \RetailCrm\Response\ApiResponse
|
|
*/
|
|
public function costGroupsEdit(array $data)
|
|
{
|
|
if (!array_key_exists('code', $data)) {
|
|
throw new \InvalidArgumentException(
|
|
'Data must contain "code" parameter.'
|
|
);
|
|
}
|
|
|
|
if (!array_key_exists('name', $data)) {
|
|
throw new \InvalidArgumentException(
|
|
'Data must contain "name" parameter.'
|
|
);
|
|
}
|
|
|
|
if (!array_key_exists('color', $data)) {
|
|
throw new \InvalidArgumentException(
|
|
'Data must contain "color" parameter.'
|
|
);
|
|
}
|
|
|
|
/* @noinspection PhpUndefinedMethodInspection */
|
|
return $this->client->makeRequest(
|
|
sprintf('/reference/cost-groups/%s/edit', $data['code']),
|
|
"POST",
|
|
['costGroup' => json_encode($data)]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Get costs items
|
|
*
|
|
* @throws \RetailCrm\Exception\CurlException
|
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
|
*
|
|
* @return \RetailCrm\Response\ApiResponse
|
|
*/
|
|
public function costItems()
|
|
{
|
|
/* @noinspection PhpUndefinedMethodInspection */
|
|
return $this->client->makeRequest(
|
|
'/reference/cost-items',
|
|
"GET"
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Edit costs items
|
|
*
|
|
* @param array $data
|
|
*
|
|
* @throws \InvalidArgumentException
|
|
* @throws \RetailCrm\Exception\CurlException
|
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
|
*
|
|
* @return \RetailCrm\Response\ApiResponse
|
|
*/
|
|
public function costItemsEdit(array $data)
|
|
{
|
|
if (!array_key_exists('code', $data)) {
|
|
throw new \InvalidArgumentException(
|
|
'Data must contain "code" parameter.'
|
|
);
|
|
}
|
|
|
|
if (!array_key_exists('name', $data)) {
|
|
throw new \InvalidArgumentException(
|
|
'Data must contain "name" parameter.'
|
|
);
|
|
}
|
|
|
|
/* @noinspection PhpUndefinedMethodInspection */
|
|
return $this->client->makeRequest(
|
|
sprintf('/reference/cost-items/%s/edit', $data['code']),
|
|
"POST",
|
|
['costItem' => json_encode($data)]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Get legal entities
|
|
*
|
|
* @throws \RetailCrm\Exception\CurlException
|
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
|
*
|
|
* @return \RetailCrm\Response\ApiResponse
|
|
*/
|
|
public function legalEntities()
|
|
{
|
|
/* @noinspection PhpUndefinedMethodInspection */
|
|
return $this->client->makeRequest(
|
|
'/reference/legal-entities',
|
|
"GET"
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Edit legal entity
|
|
*
|
|
* @param array $data
|
|
*
|
|
* @throws \InvalidArgumentException
|
|
* @throws \RetailCrm\Exception\CurlException
|
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
|
*
|
|
* @return \RetailCrm\Response\ApiResponse
|
|
*/
|
|
public function legalEntitiesEdit(array $data)
|
|
{
|
|
if (!array_key_exists('code', $data)) {
|
|
throw new \InvalidArgumentException(
|
|
'Data must contain "code" parameter.'
|
|
);
|
|
}
|
|
|
|
/* @noinspection PhpUndefinedMethodInspection */
|
|
return $this->client->makeRequest(
|
|
sprintf('/reference/legal-entities/%s/edit', $data['code']),
|
|
"POST",
|
|
['legalEntity' => json_encode($data)]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Get couriers
|
|
*
|
|
* @throws \RetailCrm\Exception\CurlException
|
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
|
*
|
|
* @return \RetailCrm\Response\ApiResponse
|
|
*/
|
|
public function couriersList()
|
|
{
|
|
/* @noinspection PhpUndefinedMethodInspection */
|
|
return $this->client->makeRequest(
|
|
'/reference/couriers',
|
|
"GET"
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Create courier
|
|
*
|
|
* @param array $courier
|
|
*
|
|
* @throws \InvalidArgumentException
|
|
* @throws \RetailCrm\Exception\CurlException
|
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
|
*
|
|
* @return \RetailCrm\Response\ApiResponse
|
|
*/
|
|
public function couriersCreate(array $courier)
|
|
{
|
|
/* @noinspection PhpUndefinedMethodInspection */
|
|
return $this->client->makeRequest(
|
|
'/reference/couriers/create',
|
|
"POST",
|
|
['courier' => json_encode($courier)]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Edit courier
|
|
*
|
|
* @param array $courier
|
|
*
|
|
* @throws \InvalidArgumentException
|
|
* @throws \RetailCrm\Exception\CurlException
|
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
|
*
|
|
* @return \RetailCrm\Response\ApiResponse
|
|
*/
|
|
public function couriersEdit(array $courier)
|
|
{
|
|
if (!array_key_exists('id', $courier)) {
|
|
throw new \InvalidArgumentException(
|
|
'Data must contain "id" parameter.'
|
|
);
|
|
}
|
|
|
|
/* @noinspection PhpUndefinedMethodInspection */
|
|
return $this->client->makeRequest(
|
|
sprintf('/reference/couriers/%s/edit', $courier['id']),
|
|
"POST",
|
|
['courier' => json_encode($courier)]
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Get units
|
|
*
|
|
* @throws \InvalidArgumentException
|
|
* @throws \RetailCrm\Exception\CurlException
|
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
|
*
|
|
* @return \RetailCrm\Response\ApiResponse
|
|
*/
|
|
public function unitsList()
|
|
{
|
|
/* @noinspection PhpUndefinedMethodInspection */
|
|
return $this->client->makeRequest(
|
|
'/reference/units',
|
|
"GET"
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Edit unit
|
|
*
|
|
* @param array $unit
|
|
*
|
|
* @throws \InvalidArgumentException
|
|
* @throws \RetailCrm\Exception\CurlException
|
|
* @throws \RetailCrm\Exception\InvalidJsonException
|
|
*
|
|
* @return \RetailCrm\Response\ApiResponse
|
|
*/
|
|
public function unitsEdit(array $unit)
|
|
{
|
|
if (empty($unit['code']) || empty($unit['name']) || empty($unit['sym'])) {
|
|
throw new \InvalidArgumentException(
|
|
'`code`, `name` and `sym` parameters must not be empty.'
|
|
);
|
|
}
|
|
|
|
/* @noinspection PhpUndefinedMethodInspection */
|
|
return $this->client->makeRequest(
|
|
sprintf('/reference/units/%s/edit', $unit['code']),
|
|
"POST",
|
|
['unit' => json_encode($unit)]
|
|
);
|
|
}
|
|
}
|