Модель 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 --globoff 'https://{DOMAIN NAME}/rest/api/Good/ProductsDataForInvoice/?page[number]=1&page[size]=50&clinic_id=1&page[no_paging]=0&search_query=' \
--header 'X-REST-API-KEY: {REST API KEY}' \
--header 'query: offset=0&limit=50&search_query=&clinic_id=1"' \
--header 'form_params: []Выводит список товаров/услуг, в том числе комбинаций. Для типа товара "комбинация" group_id может быть "-1" .
Ответ сервера
{
"data": {
"good": [
{
"id": "-10",
"title": "Комбинация",
"price": 80,
"group": "GoodsSets",
"group_id": -1,
"tag_id": 10,
"party_accounts": null,
"party_accounts_count": 0,
"default_price": 80,
"is_service": 0,
"category_id": null,
"category": "",
"barcode": "",
"min_price_percent": "0.00",
"max_price_percent": "0.00",
"min_price": "80.0",
"max_price": "80.0",
"editable": false,
"unit_sale_param_title": ""
},
{
"id": "40_44_0",
"title": "Toy1",
"good_group": "Игрушки",
"group_id": 80,
"quantity": 1,
"price": "30.0",
"tag_id": 0,
"default_price": "30.0",
"party_accounts": null,
"party_accounts_count": 0,
"barcode": "",
"is_service": 0,
"category_id": null,
"category": null,
"min_price_percent": "0.0000000000",
"max_price_percent": "0.0000000000",
"min_price": "30.0",
"max_price": "30.0",
"editable": 1,
"unit_sale_param_title": "шт"
},
]
},
"success": true
}Пример получения данных по товару
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"
}
}
}