Pular para o conteúdo principal

Registra inconformidade no item da picking

PUT 

/fulfillment/picking/picking-list/:idpickinglist/order/:idorder/sku/:idskumovement

Marca um movimento de estoque como em inconformidade (falta, vencido ou avariado). Acionado pelo aplicativo WMS quando o operador, no chão do CD, encontra um problema no item.

⚠️ {idpickinglist} no path é ignorado — o handler resolve via IDSkuMovement.

Validação: IDStatusOrder do pedido não pode ser 7 (Expedido) nem 8 (Entregue).

Sem transferência automática (TransferIfPossible != 1 ou sem parâmetro de armazém): apenas marca o movimento com IDTypeFulfillmentNonconformity e QuantityNonconformity. Insere OrderEvents IDEvent=28. Sem mudança de status nem de batch.

Com transferência automática (TransferIfPossible=1 + parâmetro AutomaticTransferNonConformityInPicking{Missing|BestBefore|Damage}Warehouse setado para o tipo):

  1. Se QuantityNonconformity < Quantity do movimento, divide o movimento em dois — um com a quantidade ok, outro com a quantidade inconforme; todos os totais fiscais são escalonados proporcionalmente.
  2. Marca o movimento NC com IDBatch = NULL e os campos NC.
  3. Invoca lambda skuMovementTransferPost (com BatchResponse: 1, IgnoreBalance: 1) movendo a quantidade NC para o armazém configurado.
  4. Aciona worker PHP /sku/batch/batchqueue.php para tentar realocar batch para o pedido.
  5. Conforme o resultado:
    • Tem saldo em pulmão/blocado ≥ QuantityNonconformity → pedido vai para IDStatusOrder = 10 (Picking NC); movimento marca IDTypeFulfillmentNonconformity = 6 (Ressuprimento).
    • Não tem saldo lugar nenhum → pedido vai para IDStatusOrder = 10; movimento mantém o batch novo se houver.
    • Realocação bem-sucedida → limpa QuantityNonconformity e IDTypeFulfillmentNonconformity (divergência "resolvida").

Parâmetros consultados: AutomaticTransferNonConformityInPickingMissingWarehouse (tipo 5 Falta), AutomaticTransferNonConformityInPickingBestBeforeWarehouse (tipo 2 Vencido), AutomaticTransferNonConformityInPickingDamageWarehouse (tipo 1 Avariado).

Resposta: por padrão invoca OrderGet e retorna o pedido. Com ?ReturnPickingList=1, retorna a picking-list (via orderFulfillmentPickingListGet).

Request

Responses

Detalhe do pedido ou da picking-list (conforme ReturnPickingList).