* @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 * @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)] ); } }