Доступ к документам склада

Доступ к документам склада по АПИ

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

Модель StoreDocument (заголовок документа)

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

* @property integer $id // ID документа
* @property $document_type // тип документа
значения document_type:
prihod - приходная накладная
rashod - расходная накладная
inventar - инвентаризация
transfer - передача товара между складами
transfer_receiver - дополнительный документ при передаче между складами
invoice - счет
return_good - возврат товаров
* @property $status // статус документа значения: save, exec, deleted, disabled
* @property integer $store_id // ID склада
* @property integer $receiver_store_id // ID склада получателя, при передаче товара между складами. тип документа - 'transfer'
* @property integer $supplier_id // ID поставщика в приходной накладной. тип документа - 'prihod'
* @property integer $receiver_id // ID контрагент в расходной накладной. тип документа - 'rashod'
* @property timestamp $add_dt // дата добавления
* @property timestamp $edit_dt // дата редактирования
* @property timestamp $exec_dt // дата выполнения
@property double $total // сумма (по приходной накладной общая сумма приходной)

Модель StoreDocumentOperation(товары в документе, история действий)

Модель StoreDocumentOperation — Представляет товары вошедшие в документ склада, хранит в себе историю действий с документом

* @property integer $id // ID строки
* @property integer $document_id // ID заголовка (ID из модели StoreDocument)
* @property string $status // действие с документом значения: add, edit, exec, rollback, deleted, disabled
* @property integer $good_id // ID товара
* @property integer $characteristic_id // ID характеристики товара
* @property float $quantity // количество
* @property float $price // цена
* @property float $quantity_fakt // количество по факту, используется в инвентаре
* @property integer $history_num // номер действия по порядку в пределах одного документа
* @property timestamp $add_dt // дата добавления строки
* @property integer $party_account_id // ID заголовка партии в которую добавляется или с которой списывается товар, в зависимости от типа документа
* @property integer $party_account_id_by_transfer // ID созданной партии при передаче товара между складами. тип документа - 'transfer'
* @property integer $invoice_document_id // ID строки счета, связь со строкой товара, если товар списывался со склада при выполнении счета.
* @property float $price_no_nds // Цена без НДС
* @property float $cost_no_nds // Стоимость без НДС
* @property float $stavka_nds_percent // Ставка НДС(%). Значение "-1" означает, что в документе указано "Без НДС".
* @property float $sum_nds //Сумма НДС
* @property float $cost // Стоимость с НДС

В этой модели есть уникальный ключ по полям (document_id, invoice_document_id, good_id, characteristic_id, history_num, party_account_id, status)

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

Пример StoreDocument

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

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

{
     "success": true,
     "message": "Record Retrieved Successfully",
     "data": {
          "totalCount": 1,
          "storeDocument": {
               "id": "226",
               "document_type": "inventar",
               "status": "save",
               "store_id": "3",
               "receiver_store_id": "0",
               "supplier_id": "1",
               "add_dt": "2021-09-22 14:47:17",
               "edit_dt": "2021-09-22 14:52:41",
               "exec_dt": "0000-00-00 00:00:00",
               "receiver_id": "0",
               "prihod_number": "",
               "prihod_date": "0000-00-00",
               "creator_id": "1",
               "executor_id": "0",
               "sender_user_id": "1",
               "receiver_user_id": "0",
               "transfer_sender_store_doc_id": "0",
               "total": "0.0000000000",
               "store": {
                    "id": "3",
                    "title": "склад1",
                    "assigned_user_id": "1",
                    "type": "sale",
                    "inventarization_date": "2021-09-22 14:38:23",
                    "status": "active",
                    "clinic_id": "1"
               },
               "storeDocumentOperations": [
                    {
                         "id": "630",
                         "document_id": "226",
                         "status": "add",
                         "good_id": "118",
                         "characteristic_id": "0",
                         "quantity": "10.0000000000",
                         "price": "0.0000000000",
                         "quantity_fakt": "8.0000000000",
                         "history_num": "1",
                         "add_dt": "2021-09-22 14:47:17",
                         "party_account_id": "41",
                         "party_account_id_by_transfer": "0",
                         "invoice_document_id": "0",
                         "inventar_quantity_fakt": "8.0000000000",
                         "inventar_quantity_before": "10.0000000000",
                         "price_no_nds": "0.0000000000",
                         "cost_no_nds": "0.0000000000",
                         "stavka_nds_percent": "0",
                         "sum_nds": "0.0000000000",
                         "cost": "0.0000000000",
                         "total_quantity_before_operation": "10.0000000000",
                         "good_quantity_before": "10.0000000000",
                         "good_quantity_after": "0.0000000000",
                         "total_good_cost_after": "0.0000000000"
                    },
                    {
                         "id": "633",
                         "document_id": "226",
                         "status": "edit",
                         "good_id": "118",
                         "characteristic_id": "0",
                         "quantity": "10.0000000000",
                         "price": "0.0000000000",
                         "quantity_fakt": "8.0000000000",
                         "history_num": "2",
                         "add_dt": "2021-09-22 14:52:41",
                         "party_account_id": "41",
                         "party_account_id_by_transfer": "0",
                         "invoice_document_id": "0",
                         "inventar_quantity_fakt": "8.0000000000",
                         "inventar_quantity_before": "10.0000000000",
                         "price_no_nds": "0.0000000000",
                         "cost_no_nds": "0.0000000000",
                         "stavka_nds_percent": "0",
                         "sum_nds": "0.0000000000",
                         "cost": "0.0000000000",
                         "total_quantity_before_operation": "10.0000000000",
                         "good_quantity_before": "10.0000000000",
                         "good_quantity_after": "0.0000000000",
                         "total_good_cost_after": "0.0000000000"
                    },
                    {
                         "id": "629",
                         "document_id": "226",
                         "status": "add",
                         "good_id": "119",
                         "characteristic_id": "0",
                         "quantity": "10.0000000000",
                         "price": "0.0000000000",
                         "quantity_fakt": "8.0000000000",
                         "history_num": "1",
                         "add_dt": "2021-09-22 14:47:17",
                         "party_account_id": "41",
                         "party_account_id_by_transfer": "0",
                         "invoice_document_id": "0",
                         "inventar_quantity_fakt": "8.0000000000",
                         "inventar_quantity_before": "10.0000000000",
                         "price_no_nds": "0.0000000000",
                         "cost_no_nds": "0.0000000000",
                         "stavka_nds_percent": "0",
                         "sum_nds": "0.0000000000",
                         "cost": "0.0000000000",
                         "total_quantity_before_operation": "10.0000000000",
                         "good_quantity_before": "10.0000000000",
                         "good_quantity_after": "0.0000000000",
                         "total_good_cost_after": "0.0000000000"
                    },
                    {
                         "id": "632",
                         "document_id": "226",
                         "status": "edit",
                         "good_id": "119",
                         "characteristic_id": "0",
                         "quantity": "10.0000000000",
                         "price": "0.0000000000",
                         "quantity_fakt": "8.0000000000",
                         "history_num": "2",
                         "add_dt": "2021-09-22 14:52:41",
                         "party_account_id": "41",
                         "party_account_id_by_transfer": "0",
                         "invoice_document_id": "0",
                         "inventar_quantity_fakt": "8.0000000000",
                         "inventar_quantity_before": "10.0000000000",
                         "price_no_nds": "0.0000000000",
                         "cost_no_nds": "0.0000000000",
                         "stavka_nds_percent": "0",
                         "sum_nds": "0.0000000000",
                         "cost": "0.0000000000",
                         "total_quantity_before_operation": "10.0000000000",
                         "good_quantity_before": "10.0000000000",
                         "good_quantity_after": "0.0000000000",
                         "total_good_cost_after": "0.0000000000"
                    },
                    {
                         "id": "631",
                         "document_id": "226",
                         "status": "add",
                         "good_id": "120",
                         "characteristic_id": "0",
                         "quantity": "10.0000000000",
                         "price": "0.0000000000",
                         "quantity_fakt": "8.0000000000",
                         "history_num": "1",
                         "add_dt": "2021-09-22 14:47:17",
                         "party_account_id": "41",
                         "party_account_id_by_transfer": "0",
                         "invoice_document_id": "0",
                         "inventar_quantity_fakt": "8.0000000000",
                         "inventar_quantity_before": "10.0000000000",
                         "price_no_nds": "0.0000000000",
                         "cost_no_nds": "0.0000000000",
                         "stavka_nds_percent": "0",
                         "sum_nds": "0.0000000000",
                         "cost": "0.0000000000",
                         "total_quantity_before_operation": "10.0000000000",
                         "good_quantity_before": "10.0000000000",
                         "good_quantity_after": "0.0000000000",
                         "total_good_cost_after": "0.0000000000"
                    },
                    {
                         "id": "634",
                         "document_id": "226",
                         "status": "edit",
                         "good_id": "120",
                         "characteristic_id": "0",
                         "quantity": "10.0000000000",
                         "price": "0.0000000000",
                         "quantity_fakt": "8.0000000000",
                         "history_num": "2",
                         "add_dt": "2021-09-22 14:52:41",
                         "party_account_id": "41",
                         "party_account_id_by_transfer": "0",
                         "invoice_document_id": "0",
                         "inventar_quantity_fakt": "8.0000000000",
                         "inventar_quantity_before": "10.0000000000",
                         "price_no_nds": "0.0000000000",
                         "cost_no_nds": "0.0000000000",
                         "stavka_nds_percent": "0",
                         "sum_nds": "0.0000000000",
                         "cost": "0.0000000000",
                         "total_quantity_before_operation": "10.0000000000",
                         "good_quantity_before": "10.0000000000",
                         "good_quantity_after": "0.0000000000",
                         "total_good_cost_after": "0.0000000000"
                    }
               ]
          }
     }
}

Пример StoreDocumentOperation

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

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

{
     "success": true,
     "message": "Records Retrieved Successfully",
     "data": {
          "totalCount": "6",
          "storeDocumentOperation": [
                {
                     "id": "630",
                     "document_id": "226",
                     "status": "add",
                     "good_id": "118",
                     "characteristic_id": "0",
                     "quantity": "10.0000000000",
                     "price": "0.0000000000",
                     "quantity_fakt": "8.0000000000",
                     "history_num": "1",
                     "add_dt": "2021-09-22 14:47:17",
                     "party_account_id": "41",
                     "party_account_id_by_transfer": "0",
                     "invoice_document_id": "0",
                     "inventar_quantity_fakt": "8.0000000000",
                     "inventar_quantity_before": "10.0000000000",
                     "price_no_nds": "0.0000000000",
                     "cost_no_nds": "0.0000000000",
                     "stavka_nds_percent": "0",
                     "sum_nds": "0.0000000000",
                     "cost": "0.0000000000",
                     "total_quantity_before_operation": "10.0000000000",
                     "good_quantity_before": "10.0000000000",
                     "good_quantity_after": "0.0000000000",
                     "total_good_cost_after": "0.0000000000",
                     "document": {
                          "id": "226",
                          "document_type": "inventar",
                          "status": "save",
                          "store_id": "3",
                          "receiver_store_id": "0",
                          "supplier_id": "1",
                          "add_dt": "2021-09-22 14:47:17",
                          "edit_dt": "2021-09-22 14:52:41",
                          "exec_dt": "0000-00-00 00:00:00",
                          "receiver_id": "0",
                          "prihod_number": "",
                          "prihod_date": "0000-00-00",
                          "creator_id": "1",
                          "executor_id": "0",
                          "sender_user_id": "1",
                          "receiver_user_id": "0",
                          "transfer_sender_store_doc_id": "0",
                          "total": "0.0000000000"
                     },
                     "good": {
                          "id": "118",
                          "group_id": "69",
                          "title": "!113товар",
                          "unit_storage_id": "9",
                          "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
                    }
               },
               {
                    "id": "633",
                    "document_id": "226",
                    "status": "edit",
                    "good_id": "118",
                    "characteristic_id": "0",
                    "quantity": "10.0000000000",
                    "price": "0.0000000000",
                    "quantity_fakt": "8.0000000000",
                    "history_num": "2",
                    "add_dt": "2021-09-22 14:52:41",
                    "party_account_id": "41",
                    "party_account_id_by_transfer": "0",
                    "invoice_document_id": "0",
                    "inventar_quantity_fakt": "8.0000000000",
                    "inventar_quantity_before": "10.0000000000",
                    "price_no_nds": "0.0000000000",
                    "cost_no_nds": "0.0000000000",
                    "stavka_nds_percent": "0",
                    "sum_nds": "0.0000000000",
                    "cost": "0.0000000000",
                    "total_quantity_before_operation": "10.0000000000",
                    "good_quantity_before": "10.0000000000",
                    "good_quantity_after": "0.0000000000",
                    "total_good_cost_after": "0.0000000000",
                    "document": {
                         "id": "226",
                         "document_type": "inventar",
                         "status": "save",
                         "store_id": "3",
                         "receiver_store_id": "0",
                         "supplier_id": "1",
                         "add_dt": "2021-09-22 14:47:17",
                         "edit_dt": "2021-09-22 14:52:41",
                         "exec_dt": "0000-00-00 00:00:00",
                         "receiver_id": "0",
                         "prihod_number": "",
                         "prihod_date": "0000-00-00",
                         "creator_id": "1",
                         "executor_id": "0",
                         "sender_user_id": "1",
                         "receiver_user_id": "0",
                         "transfer_sender_store_doc_id": "0",
                         "total": "0.0000000000"
                    },
                    "good": {
                         "id": "118",
                         "group_id": "69",
                         "title": "!113товар",
                         "unit_storage_id": "9",
                         "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
                    }
               },
               {
                    "id": "629",
                    "document_id": "226",
                    "status": "add",
                    "good_id": "119",
                    "characteristic_id": "0",
                    "quantity": "10.0000000000",
                    "price": "0.0000000000",
                    "quantity_fakt": "8.0000000000",
                    "history_num": "1",
                    "add_dt": "2021-09-22 14:47:17",
                    "party_account_id": "41",
                    "party_account_id_by_transfer": "0",
                    "invoice_document_id": "0",
                    "inventar_quantity_fakt": "8.0000000000",
                    "inventar_quantity_before": "10.0000000000",
                    "price_no_nds": "0.0000000000",
                    "cost_no_nds": "0.0000000000",
                    "stavka_nds_percent": "0",
                    "sum_nds": "0.0000000000",
                    "cost": "0.0000000000",
                    "total_quantity_before_operation": "10.0000000000",
                    "good_quantity_before": "10.0000000000",
                    "good_quantity_after": "0.0000000000",
                    "total_good_cost_after": "0.0000000000",
                    "document": {
                         "id": "226",
                         "document_type": "inventar",
                         "status": "save",
                         "store_id": "3",
                         "receiver_store_id": "0",
                         "supplier_id": "1",
                         "add_dt": "2021-09-22 14:47:17",
                         "edit_dt": "2021-09-22 14:52:41",
                         "exec_dt": "0000-00-00 00:00:00",
                         "receiver_id": "0",
                         "prihod_number": "",
                         "prihod_date": "0000-00-00",
                         "creator_id": "1",
                         "executor_id": "0",
                         "sender_user_id": "1",
                         "receiver_user_id": "0",
                         "transfer_sender_store_doc_id": "0",
                         "total": "0.0000000000"
                    },
                    "good": {
                         "id": "119",
                         "group_id": "69",
                         "title": "!111товар1",
                         "unit_storage_id": "9",
                         "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
                    }
               },
               {
                    "id": "632",
                    "document_id": "226",
                    "status": "edit",
                    "good_id": "119",
                    "characteristic_id": "0",
                    "quantity": "10.0000000000",
                    "price": "0.0000000000",
                    "quantity_fakt": "8.0000000000",
                    "history_num": "2",
                    "add_dt": "2021-09-22 14:52:41",
                    "party_account_id": "41",
                    "party_account_id_by_transfer": "0",
                    "invoice_document_id": "0",
                    "inventar_quantity_fakt": "8.0000000000",
                    "inventar_quantity_before": "10.0000000000",
                    "price_no_nds": "0.0000000000",
                    "cost_no_nds": "0.0000000000",
                    "stavka_nds_percent": "0",
                    "sum_nds": "0.0000000000",
                    "cost": "0.0000000000",
                    "total_quantity_before_operation": "10.0000000000",
                    "good_quantity_before": "10.0000000000",
                    "good_quantity_after": "0.0000000000",
                    "total_good_cost_after": "0.0000000000",
                    "document": {
                         "id": "226",
                         "document_type": "inventar",
                         "status": "save",
                         "store_id": "3",
                         "receiver_store_id": "0",
                         "supplier_id": "1",
                         "add_dt": "2021-09-22 14:47:17",
                         "edit_dt": "2021-09-22 14:52:41",
                         "exec_dt": "0000-00-00 00:00:00",
                         "receiver_id": "0",
                         "prihod_number": "",
                         "prihod_date": "0000-00-00",
                         "creator_id": "1",
                         "executor_id": "0",
                         "sender_user_id": "1",
                         "receiver_user_id": "0",
                         "transfer_sender_store_doc_id": "0",
                         "total": "0.0000000000"
                    },
                    "good": {
                         "id": "119",
                         "group_id": "69",
                         "title": "!111товар1",
                         "unit_storage_id": "9",
                         "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
                    }
               },
               {
                    "id": "631",
                    "document_id": "226",
                    "status": "add",
                    "good_id": "120",
                    "characteristic_id": "0",
                    "quantity": "10.0000000000",
                    "price": "0.0000000000",
                    "quantity_fakt": "8.0000000000",
                    "history_num": "1",
                    "add_dt": "2021-09-22 14:47:17",
                    "party_account_id": "41",
                    "party_account_id_by_transfer": "0",
                    "invoice_document_id": "0",
                    "inventar_quantity_fakt": "8.0000000000",
                    "inventar_quantity_before": "10.0000000000",
                    "price_no_nds": "0.0000000000",
                    "cost_no_nds": "0.0000000000",
                    "stavka_nds_percent": "0",
                    "sum_nds": "0.0000000000",
                    "cost": "0.0000000000",
                    "total_quantity_before_operation": "10.0000000000",
                    "good_quantity_before": "10.0000000000",
                    "good_quantity_after": "0.0000000000",
                    "total_good_cost_after": "0.0000000000",
                    "document": {
                         "id": "226",
                         "document_type": "inventar",
                         "status": "save",
                         "store_id": "3",
                         "receiver_store_id": "0",
                         "supplier_id": "1",
                         "add_dt": "2021-09-22 14:47:17",
                         "edit_dt": "2021-09-22 14:52:41",
                         "exec_dt": "0000-00-00 00:00:00",
                         "receiver_id": "0",
                         "prihod_number": "",
                         "prihod_date": "0000-00-00",
                         "creator_id": "1",
                         "executor_id": "0",
                         "sender_user_id": "1",
                         "receiver_user_id": "0",
                         "transfer_sender_store_doc_id": "0",
                         "total": "0.0000000000"
                    },
                    "good": {
                         "id": "120",
                         "group_id": "69",
                         "title": "!114товар",
                         "unit_storage_id": "9",
                         "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
                    }
               },
               {
                    "id": "634",
                    "document_id": "226",
                    "status": "edit",
                    "good_id": "120",
                    "characteristic_id": "0",
                    "quantity": "10.0000000000",
                    "price": "0.0000000000",
                    "quantity_fakt": "8.0000000000",
                    "history_num": "2",
                    "add_dt": "2021-09-22 14:52:41",
                    "party_account_id": "41",
                    "party_account_id_by_transfer": "0",
                    "invoice_document_id": "0",
                    "inventar_quantity_fakt": "8.0000000000",
                    "inventar_quantity_before": "10.0000000000",
                    "price_no_nds": "0.0000000000",
                    "cost_no_nds": "0.0000000000",
                    "stavka_nds_percent": "0",
                    "sum_nds": "0.0000000000",
                    "cost": "0.0000000000",
                    "total_quantity_before_operation": "10.0000000000",
                    "good_quantity_before": "10.0000000000",
                    "good_quantity_after": "0.0000000000",
                    "total_good_cost_after": "0.0000000000",
                    "document": {
                         "id": "226",
                         "document_type": "inventar",
                         "status": "save",
                         "store_id": "3",
                         "receiver_store_id": "0",
                         "supplier_id": "1",
                         "add_dt": "2021-09-22 14:47:17",
                         "edit_dt": "2021-09-22 14:52:41",
                         "exec_dt": "0000-00-00 00:00:00",
                         "receiver_id": "0",
                         "prihod_number": "",
                         "prihod_date": "0000-00-00",
                         "creator_id": "1",
                         "executor_id": "0",
                         "sender_user_id": "1",
                         "receiver_user_id": "0",
                         "transfer_sender_store_doc_id": "0",
                         "total": "0.0000000000"
                    },
                    "good": {
                         "id": "120",
                         "group_id": "69",
                         "title": "!114товар",
                         "unit_storage_id": "9",
                         "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
                    }
               }
          ]
     }
}                  

Пример получения остатка товара на складах

curl --location --request GET 'https://{DOMAIN NAME}/rest/api/stores/RestOfGoodInWarehouse/?clinic_id=1&good_id=119' \
--header 'X-REST-API-KEY: {REST API KEY}' \
--header 'Content-Type: application/json'

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

{
     "success": true,
     "message": "Records Retrieved Successfully",
     "data": {
          "totalCount": 1,
          "rest_good_in_warehouse": {
          "quantity": "22.000"
       }
   }
}

Пример получения остатка товара на складах (разбивка по складам)

curl --location --request GET 'https://{DOMAIN NAME}/rest/api/Good/StockBalancesForProduct?clinic_id=1&good_id=119&user_id=1' \
--header 'X-REST-API-KEY: {REST API KEY}' \
--header 'Content-Type: application/json'

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

{
     "data": {
          "stock_balances": [
               {
                    "good_id": "119",
                    "good_title": "!111товар1",
                    "store_id": "1",
                    "store_title": "Склад клиники",
                    "qty": "12.000",
                    "unit_title": "гр"
               },
               {
                    "good_id": "119",
                    "good_title": "!111товар1",
                    "store_id": "3",
                    "store_title": "склад1",
                    "qty": "10.000",
                    "unit_title": "гр"
               }
          ]
     },
     "success": true
}


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