Модель 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 — представляет товары и услуги, вошедшие в счет, принадлежит счету
* @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 'https://{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 'https://{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 'https://{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" } } ] } }