Ajustes de inventário

Listar

Lista os ajustes de invnetário de determinada máquina e instalação.

GET /api/v1/machines/[machine_id]/installations/[installation_id]/inventory_adjustments

Parâmetros de URL:

parâmetro

descrição

obrigatório

machine_id

id da máquina

sim

installation_id

id da instalação

sim

Filtros

Os parâmetros abaixo podem ser passados como uma query string. Mais de um filtro pode ser passado na mesma consulta.

  • start_date: a data de início dos ajustes.

    • Se passado, a consulta retorna somente os ajustes ocorridos a partir desta data e hora, inclusive.

    • Deve-se passar a data e também a hora; se não passada, considerada-se 00:00 UTC.

    • Um formato possível é dd/mm/yyyy hh:mi:ss. Nesse caso a data e hora devem estar em UTC.

    • Este campo também suporta o formato ISO 8601.

    • Caso o formato da data seja inválido, é retornado erro com o código HTTP 400 (bad request).

  • end_date: a data final dos ajustes.

    • Se passado, a consulta retorna somente os ajustes ocorridos até esta data e hora, inclusive.

    • Deve-se passar a data e também a hora; se não passada, considerada-se 00:00 UTC.

    • Um formato possível é dd/mm/yyyy hh:mi:ss. Nesse caso a data e hora devem estar em UTC.

    • Este campo também suporta o formato ISO 8601.

    • Caso o formato da data seja inválido, é retornado erro com o código HTTP 400 (bad request).

Retorno

status

descrição

200

OK

Exemplo:

[
  {
    "id": 12314,
    "created_at": "2018-05-14T19:41:41.000Z",
    "planogram_id": 12332,
    "kind": "restock",
    "event_id": 33365598,
    "user_id": null,
    "occurred_at": "2017-11-06T13:15:37.000Z",
    "items": [
      {
        "id": 332154,
        "created_at": "2018-05-14T19:41:42.000Z",
        "added": 1,
        "removed": null,
        "observed": null,
        "balance_before": 0,
        "balance_after": 1,
        "final_balance_before": 2486,
        "final_balance_after": 2487,
        "planogram_item": {
          "id": 1613467,
          "created_at": "2017-08-28T18:41:20.000Z",
          "name": "PRODUTO 1",
          "capacity": 2600.0,
          "par_level": 2600.0,
          "good": {
            "id": 10324,
            "created_at": "2017-02-08T13:12:26.000Z",
            "name": "PRODUTO 1",
            "unit": {
              "id": 1,
              "fractionable": false,
              "name": "unit",
              "conversion_factor": 1
            }
          }
        }
      },
      {
        "id": 112457,
        "created_at": "2018-05-14T19:41:42.000Z",
        "added": 1,
        "removed": null,
        "observed": null,
        "balance_before": 0,
        "balance_after": 1,
        "final_balance_before": 2122,
        "final_balance_after": 2123,
        "planogram_item": {
          "id": 1613468,
          "created_at": "2017-08-28T18:41:20.000Z",
          "name": "PRODUTO 2",
          "capacity": 3500.0,
          "par_level": 3500.0,
          "good": {
            "id": 10322,
            "created_at": "2017-02-08T13:11:53.000Z",
            "name": "PRODUTO 2",
            "unit": {
              "id": 1,
              "fractionable": false,
              "name": "unit",
              "conversion_factor": 1
            }
          }
        }
      }
    ]
  },
  {
    "id": 104623,
    "created_at": "2017-10-31T17:13:31.000Z",
    "planogram_id": 12332,
    "kind": "now",
    "event_id": 381428824,
    "user_id": 472,
    "occurred_at": "2017-10-31T16:06:26.000Z",
    "items": [
      {
        "id": 859931,
        "created_at": "2017-10-31T17:13:31.000Z",
        "added": null,
        "removed": null,
        "observed": 200,
        "balance_before": 990,
        "balance_after": 200,
        "final_balance_before": 990,
        "final_balance_after": 200,
        "planogram_item": {
          "id": 1613471,
          "created_at": "2017-08-28T18:41:20.000Z",
          "name": "PRODUTO 3",
          "capacity": 1300.0,
          "par_level": 1300.0,
          "good": {
            "id": 10319,
            "created_at": "2017-02-08T12:31:44.000Z",
            "updated_at": "2017-02-13T16:23:30.000Z",
            "name": "PRODUTO 3",
            "unit": {
              "id": 1,
              "fractionable": false,
              "name": "unit",
              "conversion_factor": 1
            }
          }
        }
      }
    ]
  }
]

Ver

Mostra determinado ajuste de inventário de uma máquina e instalação.

GET /api/v1/machines/[machine_id]/installations/[installation_id]/inventory_adjustments/[id]

Parâmetros de URL:

parâmetro

descrição

obrigatório

machine_id

id da máquina

sim

installation_id

id da instalação

sim

id

id ajuste de inventário

sim

Retorno

status

descrição

200

OK

Exemplo:

{
  "id": 104623,
  "created_at": "2017-10-31T17:13:31.000Z",
  "planogram_id": 12332,
  "kind": "restock",
  "event_id": 381428824,
  "user_id": 472,
  "occurred_at": "2017-10-31T16:06:26.000Z",
  "items": [
    {
      "id": 859931,
      "created_at": "2017-10-31T17:13:31.000Z",
      "added": null,
      "removed": null,
      "observed": 200,
      "balance_before": 990,
      "balance_after": 200,
      "final_balance_before": 990,
      "final_balance_after": 200,
      "planogram_item": {
        "id": 1613471,
        "created_at": "2017-08-28T18:41:20.000Z",
        "name": "PRODUTO 3",
        "capacity": 1300.0,
        "par_level": 1300.0,
        "good": {
          "id": 10319,
          "created_at": "2017-02-08T12:31:44.000Z",
          "updated_at": "2017-02-13T16:23:30.000Z",
          "name": "PRODUTO 3",
          "unit": {
            "id": 1,
            "fractionable": false,
            "name": "unit",
            "conversion_factor": 1
          }
        }
      }
    }
  ]
}

Campos

  • id: id do ajuste.

  • created_at: data de criação do ajuste.

  • planogram_id: id do planograma.

  • kind: tipo do ajuste.

    • Valores permitidos:

      • initial (quando ainda não existe nenhum reabastecimento)

      • restock (ajuste feito sobre o último reabastecimento)

      • date (baseado na data informada)

      • now (ajuste imediato)

  • event_id: id do evento.

  • user_id: id do usuário.

  • occurred_at: data de ocorrência do ajuste.

  • items: lista de itens do ajuste.

    • id: id do item

    • created_at: data de criação do item

    • added: quantidade adicionada

    • removed: quantidade removida

    • observed: quantidade observada

    • balance_before: balanço anterior

    • balance_after: balanço posterior

    • final_balance_before: balanço anterior final

    • final_balance_after: balanço posterior final

    • planogram_item: item do planograma

      • id: id do item de planograma

      • created_at: data de criação do item de planograma

      • name: descrição do item do planograma

      • capacity: capacidade

      • par_level: nível de par

      • good: produto associado ao item do planograma

        • id: id do produto

        • created_at: data de criação do produto

        • updated_at: data de alteração do produto

        • name: descrição do produto

        • unit: unidade do produto

Erros

status

descrição

response body

404

máquina/instalação/ajuste de inventário não encontrado

{ “status”: “404”, “error”: “Not Found” }

Criar

Cria um ajuste de inventário.

POST /api/v1/machines/[machine_id]/installations/[installation_id]/inventory_adjustments

Parâmetros de URL:

parâmetro

descrição

obrigatório

machine_id

id da máquina

sim

installation_id

id da instalação

sim

Request:

{
  "inventory_adjustment": {
    "planogram_id": 12332,
    "kind": "restock",
    "occurred_at": "2017-11-06 11:15:37 -0200",
    "items_attributes": [{
      "planogram_item_id": 1613467,
      "balance_before": 0,
      "added": "1",
      "removed": "",
      "observed": ""
    }, {
      "planogram_item_id": 1613468,
      "balance_before": 0,
      "added": "1",
      "removed": "",
      "observed": ""
    }]
  }
}

Campos

Obrigatórios

  • inventory_adjustment

    • planogram_id: id do planograma.

    • kind: tipo do ajuste.

      • Valores permitidos:

        • initial (ajuste efetuado em uma nova instalação, sem reabastecimento prévio efetuado)

        • restock (ajuste feito sobre o último reabastecimento)

        • now (ajuste imediato)

    • occurred_at: data de ocorrência do ajuste.

    • items_attributes: lista com os dados dos itens de planograma

      • planogram_item_id: id do item de planograma.

      • balance_before: balanço anterior.

      • added: quantidade adicionada.

      • removed: quantidade removida.

      • observed: quantidade observada.

Retorno

status

descrição

201

Criado com sucesso

Exemplo:

{
  "id": 104623,
  "created_at": "2017-10-31T17:13:31.000Z",
  "planogram_id": 12332,
  "kind": "restock",
  "event_id": 381428824,
  "user_id": 472,
  "occurred_at": "2017-10-31T16:06:26.000Z",
  "items": [
    {
      "id": 859931,
      "created_at": "2017-10-31T17:13:31.000Z",
      "added": null,
      "removed": null,
      "observed": 200,
      "balance_before": 990,
      "balance_after": 200,
      "final_balance_before": 990,
      "final_balance_after": 200,
      "planogram_item": {
        "id": 1613471,
        "created_at": "2017-08-28T18:41:20.000Z",
        "name": "PRODUTO 3",
        "capacity": 1300.0,
        "par_level": 1300.0,
        "good": {
          "id": 10319,
          "created_at": "2017-02-08T12:31:44.000Z",
          "updated_at": "2017-02-13T16:23:30.000Z",
          "name": "PRODUTO 3",
          "unit": {
            "id": 1,
            "fractionable": false,
            "name": "unit",
            "conversion_factor": 1
          }
        }
      }
    }
  ]
}

Erros

status

descrição

response body

400

parâmetros faltando

{ “status”: “400”, “error”: “Bad Request” }

404

máquina/instalação não encontrada

{ “status”: “404”, “error”: “Not Found” }

422

erro ao criar

ver exemplo abaixo

422 - erro ao criar:

{
  "items.balance_after": [
    "deve ser maior ou igual a 0"
  ],
  "items.final_balance_after": [
    "deve ser maior ou igual a 0"
  ],
  "base": [
    "Instalação não possui reabastecimento para ser ajustado"
  ]
}