Checkpoints

Ver

GET /api/v1/scheduled_visit_checkpoints/[id]

Parâmetros de URL:

parâmetro

descrição

obrigatório

id

id do checkpoint

sim

Retorno

É retornado um JSON com os seguintes campos:

  • id: o id do checkpoint

  • scheduled_visit_id: a data em que o checkpoint foi criado

  • created_at: a data de criação do checkpoint

  • updated_at: a data de atualização do checkpoint

  • restock: se é um reabastecimento

  • cash_collect: se é uma coleta

  • only_visit: se não é nem um reabastecimento nem uma coleta, apenas uma visita

  • finished: se está finalizado

  • finished_at: a data em que o checkpoint foi finalizado

  • reopened_at: a data em que o checkpoint foi reaberto

  • installation_id: o id da instalação

  • planogram_id: o id do planograma

  • pick_list_id: o id da pick list

  • synched_at: a data em que o checkpoint foi sincronizado com o VMpay Visitor

  • pending_inventory_adjustment: se o ajuste de inventário está pendente

  • inventory_adjustment_id: o id do ajuste de inventário

  • scheduled_at: a data em que o agendamento foi efetuado

  • synched_by: identificação do smartphone usado para sincronizar com o VMpay

  • edited_by: identificação do usuário que editou a agenda

  • inventories: lista de inventários em que cada elemento contém os seguintes campos:

    • id: o id do inventário

    • planogram_item_id: o id do item do planograma

    • capacity: capacidade do item do planograma

    • expected_vacant_amount: saldo esperado para o item

    • entered_vacant_amount: saldo informado para o item no VMpay Visitor

    • manual_entered_amount: valor informado na correção manual

    • vacant_amount_difference: resultado do cálculo da diferença

      • Positivo: diferença resultou em quebra

      • Negativo: diferença resultou em sobra

    • cost_price: preço de custo do produto no momento do retorno do visitor

    • good_id: o id do produto

    • upc_code: código do produto

    • desired_price: valor do produto

    • expiration_date: data de vencimento do produto

    • returned_amounts: lista de retornos do Visitor com os seguintes campos:

      • id: o id do registro

      • original_value: valor do registro antes da edição

      • value: valor final após edição

      • edited: se o registro foi editado ou não

      • returned_amount_type_id: o id do tipo de retorno

      • code: codigo do registro

        • damaged_item_return

        • expired_item_return

        • grid_replacement_leftover

        • pick_list_leftover

        • technical_problem_return

        • incorrect_grid_return

        • relocated_machine_return

        • removed_machine_return

        • product_inversion_return

        • item_not_shipped_return

        • quantity_leftover

        • par_level_reduction

        • about_to_expire

      • description: descrição do registro

        • Retorno Danificado

        • Retorno Vencido

        • Retorno Troca de Grade

        • Retorno Pick list

        • Retorno Problema Técnico

        • Retorno Grade Incorreta

        • Retorno Máquina Remanejada

        • Retorno Máquina Retirada

        • Retorno Inversão Produto

        • Retorno Item não enviado

        • Retorno Excesso

        • Retorno Redução de Nível de par

        • Retorno A Vencer

  • custom_values: lista de campos customizados em que cada elemento contém os seguintes campos:

    • id: o id do campo customizado

    • field: dados do campo customizado:

      • name: nome do campo

      • label: rótulo do campo

      • required: se o campo é obrigatório

      • options: opções caso o campo seja do tipo escolha

      • field_type: tipo do campo

    • field_value:

      • value: valor preenchido no VMpay Visitor

Exemplo:

{
  "id": 21013,
  "scheduled_visit_id": 4744,
  "created_at": "2016-12-21T07:56:05.000-02:00",
  "updated_at": "2016-12-21T10:16:01.000-02:00",
  "restock": true,
  "cash_collect": false,
  "only_visit": false,
  "finished": true,
  "finished_at": "2016-12-21T16:39:20.000-02:00",
  "reopened_at": null,
  "installation_id": 1896,
  "planogram_id": 11204,
  "pick_list_id": 63089,
  "synched_at": "2016-12-22T08:05:33.000-02:00",
  "pending_inventory_adjustment": true,
  "inventory_adjustment_id": null,
  "scheduled_at": "2016-12-21T10:16:01.000-02:00",
  "synched_by": "VMVISITOR - JOSÉ",
  "edited_by": "Claudio da Silva",
  "inventories": [
    {
      "id": 452556,
      "planogram_item_id": 385102,
      "capacity": 10.0,
      "expected_vacant_amount": 6.0,
      "entered_vacant_amount": 7.0,
      "manual_entered_amount": 0,
      "vacant_amount_difference": -3.0,
      "cost_price": 2.5,
      "good_id": 522328,
      "upc_code": "2847",
      "desired_price": 3.90,
      "expiration_date": null,
      "returned_amounts": [
        {
          "id": 15197,
          "original_value": 1.0,
          "value": 2.0,
          "edited": true,
          "returned_amount_type_id": 7,
          "code": "relocated_machine_return",
          "description": "Retorno Máquina Remanejada"
        }
      ]
    },
    {
      "id": 452557,
      "planogram_item_id": 385103,
      "capacity": 10.0,
      "expected_vacant_amount": 0.0,
      "entered_vacant_amount": 0.0,
      "manual_entered_amount": 0,
      "vacant_amount_difference": 0.0,
      "good_id": 70679,
      "upc_code": "1910",
      "desired_price": 5.50,
      "expiration_date": "2016-12-26",
      "returned_amounts": []
    },
    {
      "id": 452558,
      "planogram_item_id": 385104,
      "capacity": 13.0,
      "expected_vacant_amount": 5.0,
      "entered_vacant_amount": 2.0,
      "manual_entered_amount": -1,
      "vacant_amount_difference": 2.0,
      "good_id": 70688,
      "desired_price": 9.98,
      "expiration_date": null,
      "returned_amounts": [
        {
          "id": 15196,
          "original_value": 4.0,
          "value": 8.0,
          "edited": true,
          "returned_amount_type_id": 10,
          "code": "item_not_shipped_return",
          "description": "Retorno Item não enviado"
        }
      ]
    },
    {
      "id": 452559,
      "planogram_item_id": 385105,
      "capacity": 10.0,
      "expected_vacant_amount": 0.0,
      "entered_vacant_amount": 8.0,
      "manual_entered_amount": 0,
      "vacant_amount_difference": 0.0,
      "good_id": 70678,
      "expiration_date": null,
      "returned_amounts": [
        {
          "id": 15194,
          "original_value": 1.0,
          "value": 2.0,
          "edited": true,
          "returned_amount_type_id": 6,
          "code": "incorrect_grid_return",
          "description": "Retorno Grade Incorreta"
        },
        {
          "id": 15195,
          "original_value": 3.0,
          "value": 6.0,
          "edited": true,
          "returned_amount_type_id": 9,
          "code": "product_inversion_return",
          "description": "Retorno Inversão Produto"
        }
      ]
    }
  ],
  "custom_values": [
    {
      "id": 3298,
      "field": {
        "name": "limpeza",
        "label": "Limpeza?",
        "field_type": "boolean",
        "required": true,
        "options": []
      },
      "field_value": {
        "value": true
      }
    },
    {
      "id": 3302,
      "field": {
        "name": "malote",
        "label": "Malote",
        "field_type": "string",
        "required": true,
        "options": [],
      },
      "field_value": {
        "value": "123"
      }
    },
    {
      "id": 3305,
      "field": {
        "name": "responsavel",
        "label": "Responsável pela limpeza",
        "field_type": "choose",
        "required": true,
        "options": [
          "João",
          "Maria",
          "José"
        ],
      },
      "field_value": {
        "value": "123"
      }
    }
  ]
}

Ajustar

Se um item do inventário não precisar de ajuste, não é necessário mencioná-lo, ele pode ser omitido.

GET /api/v1/scheduled_visit_checkpoints/[id]/adjust

Parâmetros de URL:

parâmetro

descrição

obrigatório

id

id do checkpoint

sim

Request:

{
  "checkpoint": {
    "inventories": [
      {
        "id": "1444",
        "entered_vacant_amount": 5
      },
      {
        "id": "1445",
        "entered_vacant_amount": 10,
        "manual_entered_amount": 1,
        "returned_amounts": [
          {
            "returned_amount_type_id": 1,
            "value": 2
          }
        ]
      },
      {
        "id": "1446",
        "entered_vacant_amount": 8,
        "manual_entered_amount": 1,
        "returned_amounts": [
          {
            "returned_amount_type_id": 3,
            "value": 1
          }
        ]
      }
    ],
    "custom_values": [
      {
        "id": 3004,
        "value": "Não"
      },
      {
        "id": 2956,
        "value": "Thiago"
      }
    ]
  }
}

Campos

Caso se deseje remover um returned_amount, deve-se adicionar o atributo _destroy com valor true à chamada como no exemplo abaixo:

{
  "checkpoint": {
    "inventories": [
      {
        "id": "1445",
        "entered_vacant_amount": 10,
        "manual_entered_amount": 1,
        "returned_amounts": [
          {
            "returned_amount_type_id": 1,
            "_destroy": true
          }
        ]
      },
    ]
  }
}

Obrigatórios

  • checkpoint

    • inventories: um array contendo os items do inventário relacionado ao checkpoint.

      • id: o id do inventário, gerado automaticamente pelo sistema no momento da criação do inventário.

      • entered_vacant_amount: saldo informado para o item no VMpay Visitor.

      • manual_entered_amount: valor informado na correção manual.

      • returned_amounts: um array contendo a lista de retornos.

        • returned_amount_type_id: id do tipo de retorno, pode ser consultado aqui.

        • value: quantidade retornada do produto.

    • custom_values: um array contendo a lista de campos customizados.

      • id: o id do campo customizado, gerado automaticamente pelo sistema no momento da criação do retorno.

      • value: valor do campo customizado, deverar respeitar o tipo definido no campo field_type.

Retorno

status

descrição

response body

200

Atualizado com sucesso

(vazio)

Erros

status

descrição

response body

422

Inventário/Tipo de retorno não encontrado

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

422

Visita não possui ajuste de inventário pendente

{ “status”: “422”, “error”: “Ajuste de inventário já criado” }

422

Visita não possui inventários para ajuste

{ “status”: “422”, “error”: “Instalação não possui reabastecimento para ser ajustado” }

422

erro ao atualizar

ver exemplo abaixo

422 - erro ao atualizar:

{
  "custom_values": [
    "Valor do campo customizado é inválido"
  ]
}

Confirmar

GET /api/v1/scheduled_visit_checkpoints/[id]/confirm

Parâmetros de URL:

parâmetro

descrição

obrigatório

id

id do checkpoint

sim

Retorno

status

descrição

response body

200

Confirmada com sucesso

(vazio)

Erros

status

descrição

response body

422

Visita não finalizada

{ “status”: “422”, “error”: “Visita não finalizada” }

422

Ajuste de inventário já criado

{ “status”: “422”, “error”: “Ajuste de inventário já criado” }

422

Instalação não possui reabastecimento para ser ajustado

{ “status”: “422”, “error”: “Instalação não possui reabastecimento para ser ajustado” }