Movimentação avulsa de estoque

De RBX ISP - Manual do Usuário

O objetivo deste serviço é desativar um equipamento que está alocado em comodato em um cliente. Abaixo, segue exemplo do json de envio:

{
  "inventory_movement":
  {
    "product_id": 1254, 
    "operation_type": "input", 
    "location_id_source": 10,
    "quantity": 2,
    "unit_cost": 10.5,
    "invoice_series": 157,
    "invoice_number": 12546587
    "serial":
    [
      {
         "value": "CFD21458",
         "complementary_fields": 
         [
            {
               "name": "modelo",
               "value": "B1"
            },
            {
               "name": "cor",
               "value": "azul"
            }
         ]
      },
      {
         "value": "CFD31648",
         "complementary_fields": 
         [
            {
               "name": "modelo",
               "value": "B1"
            },
            {
               "name": "cor",
               "value": "preto"
            }
         ]
      }
    ],
    "datetime": "2019-10-05 08:00:00"
  }
}

Detalhamento dos campos

ID Campo Obrigatório Pai Tipo Observações
A01 Dados do produto Sim Raiz -  
A02 product_id Sim A01 Número

Código interno do produto (id).

A03 operation_type Sim A01 Texto

Tipo de operação de estoque. Valores permitidos:

  • input: Entrada
  • sale: Saída Venda
  • consumption: Consumo
  • return sale: Devolução Venda
  • return input: Devolução Entrada
  • initial inventory: Estoque inicial
  • inventory: Inventário
  • discard: Descarte
  • transfer location: Transferência de Locação
A04 location_id_source Sim* A01 Número

Para movimentações de entrada: código da locação de estoque onde o produto irá entrar.

Para movimentações de saída: código da locação de estoque de onde o produto está saindo.

Este campo é obrigatório nos seguintes casos:

  • Operações de entrada.
  • Operações de saída de itens não controlados por serial.
A05 location_id_destination Não* A01 Número

Código da locação de estoque onde o produto irá entrar. Este campo só deve ser informado nas operações de estoque de transferência de locação.

A06 quantity Sim A01 Decimal (15.2)

Quantidade do produto que será movimentado. Valores aceitos:

  • Para operação do tipo inventory (Inventário): valores positivos e negativos
  • Para as demais operações: apenas valores positivos.
A07 unit_cost Sim* A01 Decimal (15.2)

Este campo é obrigatório nas operações abaixo e possui o seguinte conteúdo:

  • input: custo unitário do produto
  • return sale: custo unitário do produto
  • initial inventory: custo médio do produto
  • inventory: custo médio do produto
A08 invoice_series Não A01 Número

Número da série referente à nota fiscal da movimentação. Não pode ser informado nas operações abaixo:

  • inventory
  • discard
A09 invoice_number Não A01 Número

Número da nota referente à nota fiscal da movimentação. Não pode ser informado nas operações abaixo:

  • inventory
  • discard
A10 reason Não* A01 Texto

Contém o motivo do descarte do produto. É obrigatório na operação discard.

A11 serial Sim* A01 Lista

Contém uma lista de seriais que estão sendo movimentados.

B01 value Sim A11 Texto

Serial do produto

B02 complementary_fields Não A11 Objeto

Campo do tipo lista contendo um ou mais dados de campos complementares do serial.

C01 name Sim B02 Texto

Nome do campo complementar, conforme cadastrado no sistema.

C02 value Sim B02 Texto

Valor do campo complementar.

A12 datetime Sim A01 Data

Data e hora da movimentação do produto no formato AAAA-MM-DD HH:II:SS. 

Atenção: não são permitidas movimentações de estoque com data e hora anteriores a alguma movimentação já existente para o produto.

A13 assign_equipment Não A01 Objeto

Elemento que conterá dados do cliente para alocação do equipamento. Este elemento só pode ser informado na operação sale.

D01 customer_id Sim A13 Número

Código do cliente.

D02 contract_id Sim A13 Número

Número do contrato.

 

Mensagem de retorno

Em caso de sucesso, será retornado um json conforme o exemplo abaixo:

{
  "status": 1,
  "error_code": 0,
  "error_description": "",
  "result": ["Successfully included move"]
}

Em caso de falha, será retornado um json conforme o exemplo abaixo:

{
  "status": 0,
  "error_code": 12,
  "error_description": "Internal Server Error!",
  "result": ""
}