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



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

Модель 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
}