Доступ к счетам

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

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

Модель Invoice (инфо. счета)

Модель Invoice — представляет заголовок счета, содержит основную информацию о нем

* @property integer $id // ИД счета
* @property integer $doctor_id // ИД ответственного врача
* @property integer $client_id // ИД клиента
* @property integer $pet_id // ИД питомца
* @property string $description // Примечание
* @property double $percent // Суммарное значение скидки и надбавки
* @property double $amount // Сумма счета
* @property enum('save', 'exec', 'closed', 'deleted') $status
Статус, добавление счета со статусом, отличным от save, может привести к неверной работе программы
save - счет черновик, никакого влияния на программу не осуществляет
exec - счет выполнен, сумма списана с баланса клиента
closed - по счету посчитана зарплата, счет закрыт для редактирования
deleted - счет удален, программа больше не предлагает его выполнить, удалить можно только сохраненный счет
* @property string $invoice_date // Дата сохранения/проведения счета
* @property integer $old_id // deprecated
* @property bool $night // Отметка, если счет ночной
* @property double $increase // Процент надбавки
* @property double $discount // Процент скидки
* @property bool $call // Отметка, если счет создан на вызове
* @property double $paid_amount // Оплачено по счету
* @property string $create_date // Дата создания строки счета
* @property string $payment_status (none, partial, full)// статус оплаты счета
Значения:
none – не оплачен,
partial – частично оплачен,
full – полностью оплачен
* @property string $clinic_id// клиника, в которой создан счёт
* @property string $creator_id // создатель счета (пользователь, который залогинен в программе)

Модель InvoiceDocument (товары/услуги в счете)

Модель InvoiceDocument — представляет товары и услуги, вошедшие в счет, принадлежит счету

* @property integer $id // ИД документа
* @property integer $document_id //ИД счета
* @property integer $good_id // ИД товара
* @property float $quantity // Количество
* @property float $price // Стоимость = Цена товара на момент создания счета * Количество
* @property integer $responsible_user_id // ИД врача, ответственного за эту позицию
* @property integer $is_default_responsible // Отметка, если врач назначен по ответственному счета
* @property integer $sale_param_id // ID параметра продажи товара
* @property integer $tag_id // Ссылка на группу товара
* @property integer $discount_type // Ссылка на тип дисконта
* @property integer $discount_document_id // Ссылка на скидочную карту
* @property integer $discount_percent // Процент скидки
* @property integer $default_price // Цена по умолчанию
* @property integer $create_date // Дата создания строки (при пересохранении строки перезаписываются и дата меняется)
* @property integer $discount_cause // Текст выполнения правил скидки
* @property array $party_info // Массив с информацией о партиях, с которых был списал данный товар

Переменная $party_info — Массив с информацией о партиях, с которых был списал данный товар

Описание переменных:

* @property integer $party_id // ID партии из модели PartyAccount
* @property timestamp $party_exec_date // Дата создания партии
* @property integer $store_id // ID склада
* @property integer $good_id // ID товара
* @property integer $characteristic_id // ID характеристики товара
* @property float $quantity // Количество товара в ед. хранения
* @property float $price // Цена закупки

Примеры запросов

Пример запроса счета по клиенту

curl --location -g --request GET 'http://{DOMAIN NAME}/rest/api/Invoice?offset=0&sort=[{"property":"create_date", "direction":"DESC"}]&filter=[{"property":"client_id","value":6,"operator":"="}]' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Ответ сервера

{
     "success": true,
     "message": "Records Retrieved Successfully",
     "data": {
          "totalCount": "1",
          "invoice": [
               {
                    "id": "1",
                    "doctor_id": "1",
                    "client_id": "6",
                    "pet_id": "3",
                    "description": "Счет сформирован на основании мед.карты №2 от 2021-09-22 13:14:17.",
                    "percent": "0.0000000000",
                    "amount": "500.0000000000",
                    "status": "exec",
                    "invoice_date": "2021-09-22 13:14:25",
                    "old_id": null,
                    "night": "0",
                    "increase": "0.0000000000",
                    "discount": "0.0000000000",
                    "call": "0",
                    "paid_amount": "500.0000000000",
                    "create_date": "2021-09-22 13:14:17",
                    "payment_status": "full",
                    "clinic_id": "1",
                    "creator_id": "1",
                    "fiscal_section_id": "0",
                    "client": {
                         "id": "6",
                         "address": "",
                         "home_phone": "",
                         "work_phone": "",
                         "note": "",
                         "type_id": null,
                         "how_find": null,
                         "balance": "0.0000000000",
                         "email": "sergey.laytaruk@gmail.com",
                         "city": "",
                         "city_id": "145",
                         "date_register": "2021-09-22 09:25:39",
                         "cell_phone": "0957778899",
                         "zip": "",
                         "registration_index": null,
                         "vip": "0",
                         "last_name": "Client001",
                         "first_name": "Client001",
                         "middle_name": "Client001",
                         "status": "ACTIVE",
                         "discount": "0",
                         "passport_series": "",
                         "lab_number": "",
                         "street_id": "0",
                         "apartment": "",
                         "unsubscribe": "0",
                         "in_blacklist": "0",
                         "last_visit_date": "2021-09-22 13:14:19",
                         "number_of_journal": "",
                         "phone_prefix": "38"
                    },
                    "pet": {
                         "id": "3",
                         "owner_id": "6",
                         "type_id": "13",
                         "alias": "Pet001",
                         "sex": "unknown",
                         "date_register": "2021-09-22 09:25:59",
                         "birthday": null,
                         "note": "",
                         "breed_id": "444",
                         "old_id": null,
                         "color_id": "0",
                         "deathnote": null,
                         "deathdate": null,
                         "chip_number": "",
                         "lab_number": "",
                         "status": "alive",
                         "picture": null,
                         "weight": "0.0000000000",
                         "pet_type_data": {
                         "id": "13",
                         "title": "Кошачий",
                         "picture": "cat",
                         "type": "cat"
                    },
                    "breed_data": {
                         "id": "444",
                         "title": "Ангорская",
                         "pet_type_id": "13"
                     }
               },
               "doctor": {
                    "id": "1",
                    "last_name": "admin",
                    "first_name": "",
                    "middle_name": "",
                    "login": "admin",
                    "passwd": "9205814c8bc98857f5e07f3bae30ad68",
                    "position_id": "8",
                    "email": "email1@mail.ru",
                    "phone": "00000000000",
                    "cell_phone": "0000000000",
                    "address": "Address 1",
                    "role_id": "7",
                    "is_active": "1",
                    "calc_percents": "1",
                    "nickname": "admin",
                    "youtrack_login": "",
                    "youtrack_password": "",
                    "last_change_pwd_date": "0000-00-00",
                    "is_limited": "0",
                    "carrotquest_id": "two:1",
                    "sip_number": "",
                    "user_inn": ""
                 }
            }
       ]
    }
}

Пример invoice по ID счета

curl --location --request GET 'http://{DOMAIN NAME}/rest/api/Invoice/1' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Ответ сервера

{
     "success": true,
     "message": "Record Retrieved Successfully",
     "data": {
          "totalCount": 1,
          "invoice": {
               "id": "1",
               "doctor_id": "1",
               "client_id": "6",
               "pet_id": "3",
               "description": "Счет сформирован на основании мед.карты №2 от 2021-09-22 13:14:17.",
               "percent": "0.0000000000",
               "amount": "500.0000000000",
               "status": "exec",
               "invoice_date": "2021-09-22 13:14:25",
               "old_id": null,
               "night": "0",
               "increase": "0.0000000000",
               "discount": "0.0000000000",
               "call": "0",
               "paid_amount": "500.0000000000",
               "create_date": "2021-09-22 13:14:17",
               "payment_status": "full",
               "clinic_id": "1",
               "creator_id": "1",
               "fiscal_section_id": "0",
               "client": {
                    "id": "6",
                    "address": "",
                    "home_phone": "",
                    "work_phone": "",
                    "note": "",
                    "type_id": null,
                    "how_find": null,
                    "balance": "0.0000000000",
                    "email": "sergey.laytaruk@gmail.com",
                    "city": "",
                    "city_id": "145",
                    "date_register": "2021-09-22 09:25:39",
                    "cell_phone": "0957778899",
                    "zip": "",
                    "registration_index": null,
                    "vip": "0",
                    "last_name": "Client001",
                    "first_name": "Client001",
                    "middle_name": "Client001",
                    "status": "ACTIVE",
                    "discount": "0",
                    "passport_series": "",
                    "lab_number": "",
                    "street_id": "0",
                    "apartment": "",
                    "unsubscribe": "0",
                    "in_blacklist": "0",
                    "last_visit_date": "2021-09-22 13:14:19",
                    "number_of_journal": "",
                    "phone_prefix": "38"
               },
               "pet": {
                    "id": "3",
                    "owner_id": "6",
                    "type_id": "13",
                    "alias": "Pet001",
                    "sex": "unknown",
                    "date_register": "2021-09-22 09:25:59",
                    "birthday": null,
                    "note": "",
                    "breed_id": "444",
                    "old_id": null,
                    "color_id": "0",
                    "deathnote": null,
                    "deathdate": null,
                    "chip_number": "",
                    "lab_number": "",
                    "status": "alive",
                    "picture": null,
                    "weight": "0.0000000000",
                    "pet_type_data": {
                         "id": "13",
                         "title": "Кошачий",
                         "picture": "cat",
                         "type": "cat"
                    },
                    "breed_data": {
                         "id": "444",
                         "title": "Ангорская",
                         "pet_type_id": "13"
                    }
                    },
                    "doctor": {
                         "id": "1",
                         "last_name": "admin",
                         "first_name": "",
                         "middle_name": "",
                         "login": "admin",
                         "passwd": "9205814c8bc98857f5e07f3bae30ad68",
                         "position_id": "8",
                         "email": "email1@mail.ru",
                         "phone": "00000000000",
                         "cell_phone": "0000000000",
                         "address": "Address 1",
                         "role_id": "7",
                         "is_active": "1",
                         "calc_percents": "1",
                         "nickname": "admin",
                         "youtrack_login": "",
                         "youtrack_password": "",
                         "last_change_pwd_date": "0000-00-00",
                         "is_limited": "0",
                         "carrotquest_id": "two:1",
                         "sip_number": "",
                         "user_inn": ""
                    },
                    "invoiceDocuments": [
                         {
                              "id": "1",
                              "document_id": "1",
                              "good_id": "5379",
                              "quantity": "1.0000000000",
                              "price": "500.0000000000",
                              "responsible_user_id": "1",
                              "is_default_responsible": "1",
                              "sale_param_id": "1037",
                              "tag_id": "0",
                              "discount_type": null,
                              "discount_document_id": null,
                              "discount_percent": null,
                              "default_price": "500.0000000000",
                              "create_date": "2021-09-22 13:14:17",
                              "discount_cause": "",
                              "fixed_discount_id": "0",
                              "fixed_discount_percent": "0",
                              "fixed_increase_id": "0",
                              "fixed_increase_percent": "0",
                              "prime_cost": "0.0000000000",
                              "party_info": [],
                              "goodSaleParam": {
                                   "id": "1037",
                                   "good_id": "5379",
                                   "price": "500.0000000000",
                                   "coefficient": "1",
                                   "unit_sale_id": "5",
                                   "min_price": "0.0000000000",
                                   "max_price": "0.0000000000",
                                   "barcode": "",
                                   "status": "active",
                                   "clinic_id": "1",
                                   "markup": "0.0000000000",
                                   "price_formation": "fixed",
                                   "unitSale": {
                                   "id": "5",
                                   "title": "доза",
                                   "status": "active"
                              }
                          }
                    }
               ]
          }
     }
}

Пример invoiceDocument с фильтром по ID счета

curl --location -g --request GET 'http://{DOMAIN NAME}/rest/api/InvoiceDocument?filter=[{"property":"document_id","value":1,"operator":"="}]' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Ответ сервера

{
     "success": true,
     "message": "Records Retrieved Successfully",
     "data": {
          "totalCount": "1",
          "invoiceDocument": [
               {
                    "id": "1",
                    "document_id": "1",
                    "good_id": "5379",
                    "quantity": "1.0000000000",
                    "price": "500.0000000000",
                    "responsible_user_id": "1",
                    "is_default_responsible": "1",
                    "sale_param_id": "1037",
                    "tag_id": "0",
                    "discount_type": null,
                    "discount_document_id": null,
                    "discount_percent": null,
                    "default_price": "500.0000000000",
                    "create_date": "2021-09-22 13:14:17",
                    "discount_cause": "",
                    "fixed_discount_id": "0",
                    "fixed_discount_percent": "0",
                    "fixed_increase_id": "0",
                    "fixed_increase_percent": "0",
                    "prime_cost": "0.0000000000",
                    "document": {
                         "id": "1",
                         "doctor_id": "1",
                         "client_id": "6",
                         "pet_id": "3",
                         "description": "Счет сформирован на основании мед.карты №2 от 2021-09-22 13:14:17.",
                         "percent": "0.0000000000",
                         "amount": "500.0000000000",
                         "status": "exec",
                         "invoice_date": "2021-09-22 13:14:25",
                         "old_id": null,
                         "night": "0",
                         "increase": "0.0000000000",
                         "discount": "0.0000000000",
                         "call": "0",
                         "paid_amount": "500.0000000000",
                         "create_date": "2021-09-22 13:14:17",
                         "payment_status": "full",
                         "clinic_id": "1",
                         "creator_id": "1",
                         "fiscal_section_id": "0"
                    },
                    "good": {
                         "id": "5379",
                         "group_id": "72",
                         "title": "товар001",
                         "unit_storage_id": "5",
                         "is_warehouse_account": "1",
                         "is_active": "1",
                         "code": "",
                         "is_call": "0",
                         "is_for_sale": "1",
                         "barcode": "",
                         "create_date": null,
                         "description": "",
                         "prime_cost": "0.0000000000",
                         "category_id": null
                    },
                    "goodSaleParam": {
                         "id": "1037",
                         "good_id": "5379",
                         "price": "500.0000000000",
                         "coefficient": "1",
                         "unit_sale_id": "5",
                         "min_price": "0.0000000000",
                         "max_price": "0.0000000000",
                         "barcode": "",
                         "status": "active",
                         "clinic_id": "1",
                         "markup": "0.0000000000",
                         "price_formation": "fixed"
                    }
                }
          ]
     }
}



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