Доступ к товарам и услугам

Доступ к товарам и услугам через АПИ

Структура моделей, назначение полей

Модель 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 'http://{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 'http://{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
               }
          ]
     }
}

Пример goodGroup

curl --location --request GET 'http://{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 'http://{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
               }
          ]
     }
}

Пример goodSaleParam

curl --location --request GET 'http://{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 'http://{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 'http://{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 'http://{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 'http://{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"
      }
   }
}



👆 На этом пока всё