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



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

Модель 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": "[email protected]",
                    "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": "[email protected]",
                    "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": "[email protected]",
                "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": "[email protected]",
                "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"
                }
            }
        ]
    }
}