Pick lists ERP Interno

  • Estratégia Pick lists com ERP Interno da VMtecnologia, os status possíveis são:

    • draft: pick list “Em Edição” ainda pode ser atualizada.

    • waiting_confirmation: pick list “Aguardando Confirmação no ERP” não pode mais ser modificada.

    • confirmed: pick list “Pendente” para aplicação não pode mais ser modificada.

    • applied: pick list aplicada.

    • waiting_cancellation: Aguardando Cancelamento no ERP.

    • cancelled: pick list cancelada.

Listar

Lista os pick lists de determinada máquina e instalação.

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

Parâmetros de URL:

parâmetro

descrição

obrigatório

machine_id

id da máquina

sim

installation_id

id da instalação

sim

É possível filtrar as pick lists com uma query string. Veja na API do relatório de pick lists os campos possíveis.

Retorno

status

descrição

200

OK

Exemplo:

[
  {
    "id": 4164,
    "created_at": "2015-11-09T07:49:34.000-02:00",
    "updated_at": "2015-11-09T12:40:13.000-02:00",
    "installation_id": 857,
    "planogram_id": 2477,
    "group_id": 1,
    "distribution_center_id": 1,
    "machine_id": 49,
    "supply_category_id": 1,
    "separate_status": "separated",
    "pending": false,
    "status": "applied",
    "url": "https://vmpay.vertitecnologia.com.br/api/v1/machines/49/installations/857/pick_lists/4164",
    "notes": "some extra info",
    "routes": [
      {
        "id": 1,
        "name": "Route 01"
      },
      {
        "id": 2,
        "name": "Other route"
      }
    ]
  },
  {
    "id": 4302,
    "created_at": "2015-11-12T12:51:04.000-02:00",
    "updated_at": "2015-11-12T15:46:32.000-02:00",
    "installation_id": 857,
    "planogram_id": 2563,
    "group_id": 1,
    "distribution_center_id": 1,
    "machine_id": 49,
    "supply_category_id": 1,
    "separate_status": "separated",
    "pending": false,
    "status": "cancelled",
    "url": "https://vmpay.vertitecnologia.com.br/api/v1/machines/49/installations/857/pick_lists/4302",
    "notes": null,
    "routes:" []
  }
]

Ver

Mostra determinado pick list de uma máquina e instalação.

GET /api/v1/machines/[machine_id]/installations/[installation_id]/pick_lists/[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 da pick list

sim

Filtro

O parâmetro abaixo pode ser passado como uma query string.

show_all_items:

Mostra todos os itens, incluindo os com quantidades zeradas:

  • true: retorna todos os itens, incluindo os com quantidades zeradas.

  • false: retorna somente os itens com quantidade maior que zero.

  • não informado: retorna somente os itens com quantidade maior que zero (default).

Exemplos:

GET /api/v1/machines/[machine_id]/installations/[installation_id]/pick_lists/[id]?show_all_items=true
GET /api/v1/machines/[machine_id]/installations/[installation_id]/pick_lists/[id]?show_all_items=false
GET /api/v1/machines/[machine_id]/installations/[installation_id]/pick_lists/[id]

Retorno

status

descrição

200

OK

Exemplo:

{
  "id": 4164,
  "created_at": "2015-11-09T07:49:34.000-02:00",
  "updated_at": "2015-11-09T12:40:13.000-02:00",
  "planogram_id": 2477,
  "group_id": 1,
  "distribution_center_id": 1,
  "supply_category_id": 1,
  "separate_status": "separated",
  "pending": false,
  "status": "applied",
  "notes": "some extra info",
  "items": [
    {
      "id": 167188,
      "planogram_item_id": 93477,
      "quantity": 8,
      "ignored": true,
      "ignore_reason": "Estoque disponível insuficiente",
      "good_id": 2229
    },
    {
      "id": 167190,
      "planogram_item_id": 93479,
      "quantity": 3,
      "ignored": false,
      "good_id": 543
    },
    {
      "id": 167191,
      "planogram_item_id": 93480,
      "quantity": 3,
      "ignored": false,
      "good_id": 533
    },
    {
      "id":167192
      "planogram_item_id":93481,
      "quantity":12,
      "ignored":false,
      "packing_quantity":1,
      "good_id":2225
    },
    {
      "id": 167193,
      "planogram_item_id": 93482,
      "quantity": 2,
      "ignored": false,
      "good_id": 533
    }
  ]
  "routes": [
    {
      "id": 1,
      "name": "Route 01"
    },
    {
      "id": 2,
      "name": "Other route"
    }
  ]
}

Erros

status

descrição

response body

404

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

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

Criar

Cria uma novo pick list em determinada máquina e instalação.

O pick list criado fica Em edição (Draft) e pode ser atualizado. O mesmo só entra em atividade no próximo reabastecimento da máquina.

Uma instalação pode ter somente um pick list pendente. Se houver uma tentativa de cadastro de um outro pick list, será retornado um erro de validação, código HTTP 422.

Deve-se indicar o planograma da instalação ao qual o pick list se aplica. O planograma deve ser o atual da máquina ou o pendente a entrar no próximo reabastecimento. Se houver uma tentativa de cadastro de um pick list relacionado a um planograma inativo, será retornado um erro de validação, código HTTP 422.

Caso algum item do planograma não faça parte do reabastecimento correspondente, não há a necessidade de indicá-lo com a quantidade zerada no pick list; o mesmo pode ser omitido.

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

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:

{
  "pick_list": {
    "planogram_id": 2563,
    "items_attributes": [
      {
        "planogram_item_id": 96633,
        "quantity": 4
      },
      {
        "planogram_item_id": 96632,
        "quantity": 9
      }
    ]
  }
}

Campos

Obrigatórios

  • pick_list

    • planogram_id: o id do planograma. Deve estar ativo ou pedente.

    • supply_category_id: id da categoria de reabastecimento (Caso utilize mais de uma categoria de abastecimento, esse campo é obrigatório)

    • items_attributes: um array contendo os items do pick list.

      • planogram_item_id: o id do item de planograma correspondente.

      • quantity: a quantidade a ser reabastecida.

Opcionais

  • pick_list

    • notes: observações do pick list.

    • items_attributes: um array contendo os items do pick list.

      • packing_quantity: a quantidade de packings,associado ao item, a ser reabastecida.

    • skip_rules: pode ser true ou false. Se for true, não aplicará o conjunto de regras vinculado a instalação. Se não informado, o conjunto de regras é aplicado por padrão.

Caso o parâmetro opcional seja passado, o valor do quantity é reescrito para a quantidade existente no packing multiplicado pelo número de packings.

Retorno

status

descrição

201

Criado com sucesso

Exemplo:

{
  "id": 4794,
  "created_at": "2016-02-16T15:22:26.519-02:00",
  "updated_at": "2016-02-16T15:22:26.519-02:00",
  "planogram_id": 2563,
  "supply_category_id": 1,
  "separate_status": "pending",
  "pending": true,
  "status": "draft",
  "notes": null,
  "items": [
    {
      "id": 191350,
      "planogram_item_id": 96633,
      "quantity": 4
    },
    {
      "id": 191351,
      "planogram_item_id": 96632,
      "quantity": 9
    }
  ]
}

Erros

status

descrição

response body

400

parâmetros faltando

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

401

não autorizado

(vazio)

409

conflito

(vazio)

422

erro ao criar

ver exemplo abaixo

422 - erro ao criar

{
  "base": [
    "Já existe um pick list cadastrado para o próximo reabastecimento"
  ]
}

Atualizar

Atualiza um pick list de determinada máquina e instalação.

Somente pick lists Em edição podem ser atualizados. Se houver uma tentativa de atualização de um pick list já utilizado em algum reabastecimento, será retornado um erro de validação, código HTTP 422.

Não é permitido alterar a categoria de abastecimento de uma pick list já criada. Se houver uma tentativa, será retornado um erro de validação, código HTTP 422.

Os items podem ser criados, atualizados ou excluídos. Os items omitidos não são alterados.

PATCH /api/v1/machines/[machine_id]/installations/[installation_id]/pick_lists/[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 da pick list

sim

Request:

{
  "pick_list": {
    "items_attributes": [
      {
        "id": 191350,
        "quantity": 11
      },
      {
        "id": 191351,
        "quantity": 12
      }
    ]
  }
}

Campos

Obrigatórios

  • pick_list

    • items_attributes: um array contendo os items do pick list.

      • id: o id do item a ser atualizado ou excluído. Se omitido, considera-se como um item sendo inserido.

      • planogram_item_id: o id do item de planograma correspondente. Somente necessário na inserção de um novo item.

      • quantity: a quantidade a ser reabastecida.

      • _destroy: parâmetro passado para excluir o item do pick list. Para tanto, valor deve ser true.

Opcionais

  • pick_list

    • notes: observações do pick list.

    • items_attributes: um array contendo os items do pick list.

      • packing_quantity: o número de packings, a ser reabastecido.

    • skip_rules: pode ser true ou false. Se for true, não aplicará o conjunto de regras vinculado a instalação. Se não informado, o conjunto de regras é aplicado por padrão.

Caso o parâmetro opcional seja passado e exista um packing associado ao respectivo item, o valor do quantity é reescrito para a quantidade existente no packing multiplicado por packing_quantity.

Retorno

status

descrição

200

Atualizado com sucesso

Exemplo:

{
  "id": 4794,
  "created_at": "2016-02-16T15:22:26.000-02:00",
  "updated_at": "2016-02-16T15:22:26.000-02:00",
  "planogram_id": 2563,
  "pending": true,
  "status": "confirmed",
  "notes": null,
  "items": [
    {
      "id": 191350,
      "planogram_item_id": 96633,
      "quantity": 11
    },
    {
      "id": 191351,
      "planogram_item_id": 96632,
      "quantity": 12
    }
  ],
  skip_rules: true
}

Erros

status

descrição

response body

400

parâmetros faltando

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

401

não autorizado

(vazio)

404

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

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

409

conflito

{ “status”: “409”, “error”: “Deadlock/Timeout” }

422

erro ao atualizar

ver exemplo abaixo

422 - erro ao atualizar:

{
  "base": "Pick list deve estar pendente"
}

Confirmar

Confirme a edição da pick list, alterando seu status para Pendente, permitindo a seu reabastecimento.

Somente pick lists com status Em Edição podem ser confirmadas.

PATCH api/v1/erp/pick_lists/[id]

Parâmetros de URL:

parâmetro

descrição

obrigatório

id

id da pick list

sim

Request:

{
"pick_list": {
  "status": "confirmed"
}

Campos

Obrigatórios

  • pick_list

    • status: define o status para o qual deseja alterar a pick list. As opções disponíveis são:

      • confirmed: confirma a edição da pick list e a coloca no status Confirmed (pendente) para permitir a aplicação (reabastecimento).

      • cancelled: cancela a pick list

Retorno

status

descrição

200

Atualizado com sucesso

Exemplo:

{
   "id": 20709,
   "status": "confirmed"
}

Erros

status

descrição

response body

400

parâmetros faltando

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

401

não autorizado

(vazio)

404

registro não encontrado

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

409

conflito

{ “status”: “409”, “error”: “Deadlock/Timeout” }

422

erro ao atualizar

parâmetro está faltando ou o valor está vazio

404 - Registro não encontrado:

{
  "error": "Registro não encontrado"
}

Cancelar

Cancela a pick list.

Somente pick lists com status Em edição ou Pendente podem ser canceladas. Caso a pick list esteja no estado Pendente, o sistema irá alterá-la para o estado Aguardando cancelamento e, após receber a resposta do ERP, será atualizado para Cancelada.

Se houver uma tentativa de cancelamento de uma pick list que já foi utilizada em algum reabastecimento, será retornado um erro de validação com código HTTP 422.

DELETE /api/v1/machines/[machine_id]/installations/[installation_id]/pick_lists/[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 da pick list

sim

Retorno

status

descrição

response body

204

Cancelada com sucesso

(vazio)

Erros

status

descrição

response body

404

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

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