Модель Good (инфо. товара/услуги)
Модель Good — представляет товар, услугу, сейчас небольшими доработками внедряется поддержка прочих ТМЦ.
* @property integer $id // ИД продукта * @property integer $group_id // ИД группы в которой находится продукт - Принадлежит GoodGroup * @property string $title // Название товара * @property integer $unit_storage_id // Единица в которой товар хранится на складе - Принадлежит Unit * @property integer $is_warehouse_account // Вести учет этого товара на складе? * @property integer $is_active // Товар активен? * @property string $code // Артикул товара * @property integer $category_id // ИД Категории для зарплаты, если она переопределяется у товара * @property integer $is_call // Относится ли этот товар или услуга к вызову * @property string $barcode // Штрихкод товара * @property integer $is_for_sale // Подлежит ли товар продаже? @property string $description // описание @property decimal prime_cost // себестоимость
Содержит многие GoodSaleParam
Модель GoodGroup (инфо. группы товара/услуги)
Модель GoodGroup — представляет группу товаров или услуг
* @property integer $id // ИД групы * @property string $title // Название группы * @property integer $price_id // ИД категории (наименование будет изменено, использовать не рекомендуется) * @property integer $is_service // Группа товаров, или услуг * @property double $markup // Наценка на группу товаров, справочное поле для склада @property integer $is_show_in_vaccines // определяет будут ли товары из этой группы отображаться в списке вакцин. Значения 0/1
Модель GoodSaleParam (параметры продажи товара)
Модель GoodSaleParam — представляет параметр продажи
* @property integer $id // ИД * @property integer $good_id // ИД товара - Принадлежит Good * @property double $price // Цена основная * @property double $coefficient // Коэффициент пересчета для списания со склада. * @property integer $unit_sale_id // ИД. ед. измерения - принадлежит Unit * @property double $min_price // Минимальная цена - указывается для возможности редактирования цены прям со счета * @property double $max_price // Максимальная цена - указывается для возможности редактирования цены прям со счета * @property string $barcode // Штрих-код * @property string $status // Статус ('active','disabled') * @property int $clinic_id // ИД Клиники @property double $markup // процент наценки @property string $price_formation // параметр определяет цена с наценкой или фиксированная. значения: increase, fixed При значении поля fixed - поле $markup должно быть равно 0, поле $price должно быть больше 0 При значении поля increase - поле $markup должно быть больше 0, поле $price должно быть равно 0
Модель Unit (ед. измерения)
Модель Unit — представляет единицу измерения
* @property integer $id //ИД * @property string $title // Название
Пример получения данных по товару
curl --location --request GET 'https://{DOMAIN NAME}/rest/api/Good/485' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}'
Ответ сервера
{ "success": true, "message": "Record Retrieved Successfully", "data": { "totalCount": 1, "good": { "id": "485", "group_id": "30", "title": "Остеосинтез бедра, плеча (с) (min)", "unit_storage_id": "7", "is_warehouse_account": "1", "is_active": "1", "code": "", "is_call": "0", "is_for_sale": "1", "barcode": null, "create_date": null, "description": "", "prime_cost": "0.0000000000", "category_id": null, "group": { "id": "30", "title": "Ортопедия", "is_service": "0", "markup": null, "is_show_in_vaccines": "0", "price_id": "42" }, "unitStorage": { "id": "7", "title": "шт", "status": "active" }, "goodSaleParams": [ { "id": "1", "good_id": "485", "price": "3000.0000000000", "coefficient": "1", "unit_sale_id": "7", "min_price": "0.0000000000", "max_price": "0.0000000000", "barcode": null, "status": "active", "clinic_id": "1", "markup": "0.0000000000", "price_formation": "fixed" } ] } } }
Пример добавления товара
После добавления товара/услуги нужно добавить параметр продажи для этого товара. Для услуги можно добавить параметр продажи только с фиксированной ценой.
curl --location --request POST 'https://{DOMAIN NAME}/rest/api/Good' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}' \ --data-raw '{ "group_id":53, "title":"товар003", "unit_storage_id":0, "is_warehouse_account":0, "is_active":1, "code":"", "category_id":, "is_call":0, "is_for_sale":1, "barcode":"", "description":"", "prime_cost":0 }'
Ответ сервера
{ "success": true, "message": "Record(s) Created", "data": { "totalCount": 1, "good": [ { "is_warehouse_account": 0, "is_active": 1, "is_call": 0, "is_for_sale": 1, "prime_cost": 0, "group_id": 53, "title": "товар003", "unit_storage_id": 0, "code": "", "barcode": "", "description": "", "id": "5382", "create_date": null, "category_id": null } ] } }
Создание товара:
Обязательное поле: title.
Обновление товара:
Нет обязательных полей (но как минимум одно поле нужно передать).
Пример goodGroup
curl --location --request GET 'https://{DOMAIN NAME}/rest/api/goodGroup/27' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}'
Ответ сервера
{ "success": true, "message": "Record Retrieved Successfully", "data": { "totalCount": 1, "goodGroup": { "id": "27", "title": "Стоматология", "is_service": "0", "markup": null, "is_show_in_vaccines": "0", "price_id": "5" } } }
Пример добавления группы товаров для вакцин
curl --location --request POST 'https://{DOMAIN NAME}/rest/api/goodGroup' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}' --data-raw '{ "title": "Группа вакцин 02", "is_service":0, "is_show_in_vaccines":1 }
Ответ сервера
{ "success": true, "message": "Record(s) Created", "data": { "totalCount": 1, "goodGroup": [ { "is_service": 0, "is_show_in_vaccines": 1, "title": "Группа вакцин 02", "id": "73", "markup": null, "price_id": null } ] } }
Создание товара:
Обязательное поле: title.
Обновление товара:
Невозможно редактировать группу
Пример goodSaleParam
curl --location --request GET 'https://{DOMAIN NAME}/rest/api/goodSaleParam/1' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}'
Ответ сервера
{ "success": true, "message": "Record Retrieved Successfully", "data": { "totalCount": 1, "goodSaleParam": { "id": "1", "good_id": "485", "price": "3000.0000000000", "coefficient": "1", "unit_sale_id": "7", "min_price": "0.0000000000", "max_price": "0.0000000000", "barcode": null, "status": "active", "clinic_id": "1", "markup": "0.0000000000", "price_formation": "fixed", "unitSale": { "id": "7", "title": "шт", "status": "active" }, "good": { "id": "485", "group_id": "30", "title": "Остеосинтез бедра, плеча (с) (min)", "unit_storage_id": "7", "is_warehouse_account": "1", "is_active": "1", "code": "", "is_call": "0", "is_for_sale": "1", "barcode": null, "create_date": null, "description": "", "prime_cost": "0.0000000000", "category_id": null } } } }
Пример запроса добавления параметра продажи с фиксированной ценой
curl --location --request POST 'https://{DOMAIN NAME}/rest/api/GoodSaleParam' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}' --data-raw '{ "good_id": 5379, "price":500, "coefficient":1, "unit_sale_id":7, "min_price":0, "max_price":0, "barcode":"", "status":"active", "clinic_id":1, "markup":0, "price_formation":"fixed" }'
Ответ сервера
{ "success": true, "message": "Record(s) Created", "data": { "totalCount": 1, "goodSaleParam": [ { "good_id": 5379, "coefficient": 1, "unit_sale_id": 7, "status": "active", "clinic_id": 1, "price_formation": "fixed", "price": 500, "min_price": 0, "max_price": 0, "barcode": "", "markup": 0, "id": "1040" } ] } }
Пример запроса добавления параметра продажи с наценкой
curl --location --request POST 'https://{DOMAIN NAME}/rest/api/GoodSaleParam' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}' --data-raw '{ "good_id": 5379, "price":0, "coefficient":1, "unit_sale_id":7, "min_price":0, "max_price":0, "barcode":"", "status":"active", "clinic_id":1, "markup":2, "price_formation":"increase" }'
Ответ сервера
{ "success": true, "message": "Record(s) Created", "data": { "totalCount": 1, "goodSaleParam": [ { "good_id": 5379, "coefficient": 1, "unit_sale_id": 7, "status": "active", "clinic_id": 1, "price_formation": "increase", "price": 0, "min_price": 0, "max_price": 0, "barcode": "", "markup": 2, "id": "1041" } ] } }
Пример unit
curl --location --request GET 'https://{DOMAIN NAME}/rest/api/unit/7' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}'
Ответ сервера
{ "success": true, "message": "Record Retrieved Successfully", "data": { "totalCount": 1, "unit": { "id": "7", "title": "шт", "status": "active" } } }
Пример получения цены продажи
curl --location --request GET 'https://{DOMAIN NAME}/rest/api/Good/GoodSalePriceByIdSaleParamIdClinicId?good_id=1&good_sale_param_id=1&clinic_id=1&quantity=1' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}'
Ответ сервера
{ "success": true, "message": "Records Retrieved Successfully", "data": { "totalCount": 3, "good_sale_price_info": { "price": 0, "min_price": "0.0000000000", "max_price": "0.0000000000" } } }