Ordem de produção de desmontagem

Este manual orienta o uso dos endpoints da API para processos de Saída de PA e Entrada de Componentes em Ordens de Produção de Desmontagem, com ênfase nos novos requisitos e exemplos de JSON.

Saída de PA com array de “componentes” no JSON

Objetivo

Permitir que o endpoint de Saída de PA aceite um array “componentes”, possibilitando agrupar os lotes/séries de cada componente, com identificação via lineId.

Regras

  • Ao informar o lineId de um componente, a API deve buscar todas as informações associadas a esse componente:

    • Lotes: Deve buscar todos os lotes relacionados ao lineId informado.

    • Séries: Deve trazer todas as séries vinculadas ao lineId.

Estrutura esperada do campo “componentes”

O campo “componentes” deve conter os dados existentes na tela de definição de lote/série, além da estrutura abaixo:

“componentes”: [
{

“lineId”: 0, “lotes”: [

{

“lote”: “”, “quantidade”: 0, “lineNumBase”: 0, “atributo1”: “”, “atributo2”: “”, “dataVencimento”: “2025-02-14”, “dataFabricacao”: “2025-02-14”, “dataAdmissao”: “2025-02-14”, “local”: “”, “detalhes”: “”

}

], “series”: [

{

“numSerie”: “”, “quantidade”: 0, “numSerieFabricante”: “”, “systemSerialNumber”: 0, “dataVencimento”: “2025-02-14”, “dataFabricacao”: “2025-02-14”, “dataAdmissao”: “2025-02-14”, “dataInicioGarantiaFabricante”: “2025-02-14”, “dataFimGarantiaFabricante”: “2025-02-14”, “localizacao”: “”, “detalhes”: “”

}

]

}

]

Validações

  • Validar criação do array “componentes” no JSON enviado para o endpoint de Saída de PA.

  • Validar os campos e a estrutura do array.

  • Verificar se, ao indicar o lineId, a API faz corretamente a busca de lotes/séries do componente informado.

Entrada de Componentes (item administrado por Série)

Objetivo

Permitir a Entrada de Componentes em uma OP de Desmontagem para itens administrados por Série, preenchendo o campo de custo com Custo unit. desmontagem.

Regras

  • O campo codigosRegraDistribuicao deve incluir corretamente as regras de distribuição.

  • A API deve validar se as regras informadas são compatíveis com a OP e os itens.

Validações para controle por lote ou série

  • Item controlado por série:

    • O JSON deve conter obrigatoriamente a estrutura series.

  • Item controlado por lote:

    • O JSON deve conter obrigatoriamente a estrutura lotes.

  • Item não controlado:

    • Não deve conter lotes ou séries no JSON.

Mensagem de erro esperada:

BR One :: Não é possível continuar a inserção sem concluir a seleção de números de série/lote.

Validação de obrigatoriedade de datas

Se o item for administrado por série, as seguintes datas devem obrigatoriamente estar preenchidas:

  • dataVencimento

  • dataFabricacao

  • dataAdmissao

  • dataInicioGarantiaFabricante

  • dataFimGarantiaFabricante

Mensagem de erro esperada:

BR One :: O campo ‘{campoFaltante}’ é obrigatório para itens administrados por série e não foi informado. Verifique o JSON enviado.

Observações na Tela

  • Observações:

BR One :: Entrada manual referente à OP de N° xxxx

  • Observação do diário:

Entrada de componentes baseada na OP nº xxx.

Validações adicionais

  • Verificar que a entrada de componentes apareça corretamente na tela Custo Componentes.

  • Validar que o número de série utilizado na entrada de mercadoria seja corretamente gerado e exibido.

  • Garantir que o campo de custo na entrada esteja preenchido com o valor de Custo unit. desmontagem, calculado com base em:

    • Percentual

    • Lista de preço

    • Custo médio

Saída de PA (item administrado por Nenhum) em OP de Desmontagem

Objetivo

Permitir a Saída de PA para itens administrados por Nenhum em OP de Desmontagem, com custo preenchido usando o Custo médio do item.

Regras

  • O campo codigosRegraDistribuicao só deve permitir a Saída de PA caso todas as Dimensões da Regra de Distribuição estejam ativas.

  • Se alguma Dimensão estiver inativa, a API deve retornar:

BR One :: Erro Dimensão invalida ou inativa.

Validações

  • Validar preenchimento correto do campo codigosRegraDistribuicao.

  • Garantir que o campo de custo na saída use o valor de Custo médio do item.

  • Validar os campos obrigatórios do JSON.

Exemplos de JSON

Saída de PA (com array “componentes”)

{

“docNumOrdemProducao”: 0, “codigoItem”: “”, “codigoDeposito”: “”, “quantidade”: 0, “codigoProjeto”: “”, “codigoRegraDistribuicao”: “”, “codigosRegraDistribuicao”: [“regra1”, “regra2”, “regra3”], “dataDocumento”: “”, “observacoes”: “”, “refugo”: false, “classificacaoRefugo”: “”, “lotes”: [

{

“lote”: “”, “quantidade”: 0

}

], “series”: [

{

“numSerie”: “”, “quantidade”: 0

}

], “componentes”: [

{

“lineId”: 0, “lotes”: [

{

“lote”: “”, “quantidade”: 0, “lineNumBase”: 0, “atributo1”: “”, “atributo2”: “”, “dataVencimento”: “2025-02-14”, “dataFabricacao”: “2025-02-14”, “dataAdmissao”: “2025-02-14”, “local”: “”, “detalhes”: “”

}

], “series”: [

{

“numSerie”: “”, “quantidade”: 0, “numSerieFabricante”: “”, “systemSerialNumber”: 0, “dataVencimento”: “2025-02-14”, “dataFabricacao”: “2025-02-14”, “dataAdmissao”: “2025-02-14”, “dataInicioGarantiaFabricante”: “2025-02-14”, “dataFimGarantiaFabricante”: “2025-02-14”, “localizacao”: “”, “detalhes”: “”

}

]

}

]

}

Entrada de Componentes (item administrado por Série)

{

“docNumOrdemProducao”: 0, “sequenciaOperacao”: 0, “codigoProjeto”: “”, “dataDocumento”: “2024-07-18”, “referencia”: “”, “codigosRegraDistribuicao”: [“regra1”, “regra2”, “regra3”], “observacoes”: “”, “linhas”: [

{

“lineId”: 0, “codigoItem”: “”, “codigoDeposito”: “”, “quantidade”: 0, “lotes”: [], “series”: [

{

“numSerie”: “”, “numSerieFabricante”: “”, “numeroSerieLote”: “”, “dataVencimento”: “2024-08-22”, “dataFabricacao”: “2024-08-22”, “dataAdmissao”: “2024-08-22”, “dataInicioGarantiaFabricante”: “2024-08-22”, “dataFimGarantiaFabricante”: “2024-08-22”, “local”: “”, “detalhes”: “”

}

]

}

]

}

Saída de PA (item Nenhum) em Desmontagem

{

“docNumOrdemProducao”: 1044, “codigoItem”: “pa nenhum”, “codigoDeposito”: “01”, “quantidade”: 2, “codigoProjeto”: “Projeto 02”, “codigosRegraDistribuicao”: [“regra1”, “regra2”, “regra3”], “observacoes”: “API”, “refugo”: false, “classificacaoRefugo”: “”, “lotesComponentes”: [

{

“lote”: “L01”, “quantidade”: 1

}, {

“lote”: “L02”, “quantidade”: 1

}

]

}