Переместить три единицы между складами одной операцией

Фактические данные получены через расширение interbase от отдельной локальной базы Firebird. Собственная учебная таблица удалена после наблюдений.

Наблюдаемый результат программы
НаблюдениеРезультат
Перемещено единиц3
Склад 1: было → стало10 → 7
Склад 2: было → стало2 → 5
Общий остаток12
Подтверждение операциида
Строк изменено списанием / приходом1 / 1
Строки и дополнительные наблюдения
{
    "before": [
        10,
        2
    ],
    "inside_transaction": [
        {
            "warehouse_id": 1,
            "qty": 7
        },
        {
            "warehouse_id": 2,
            "qty": 5
        }
    ],
    "committed_rows": [
        {
            "warehouse_id": 1,
            "qty": 7
        },
        {
            "warehouse_id": 2,
            "qty": 5
        }
    ],
    "affected": {
        "debited": 1,
        "credited": 1
    }
}

Самостоятельный запуск создаёт result.json с данными и metrics.json с проверками рядом с example.php.