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):
- Se
QuantityNonconformity < Quantitydo movimento, divide o movimento em dois — um com a quantidade ok, outro com a quantidade inconforme; todos os totais fiscais são escalonados proporcionalmente. - Marca o movimento NC com
IDBatch = NULLe os campos NC. - Invoca lambda
skuMovementTransferPost(comBatchResponse: 1, IgnoreBalance: 1) movendo a quantidade NC para o armazém configurado. - Aciona worker PHP
/sku/batch/batchqueue.phppara tentar realocar batch para o pedido. - Conforme o resultado:
- Tem saldo em pulmão/blocado ≥
QuantityNonconformity→ pedido vai paraIDStatusOrder = 10(Picking NC); movimento marcaIDTypeFulfillmentNonconformity = 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
QuantityNonconformityeIDTypeFulfillmentNonconformity(divergência "resolvida").
- Tem saldo em pulmão/blocado ≥
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
- 200
- 400
Detalhe do pedido ou da picking-list (conforme ReturnPickingList).
Mensagens [BadRequest]:
Pedido não existe.O status atual não permite atualizar— pedido em status7ou8. Além disso, propaga erros doskuMovementTransferPoste do workerbatchqueue.php.