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” } |