Cotações: ofertas e conversão
Registra ofertas de fornecedores, converte a vencedora em pedido de compra, cancela ou apaga a cotação.
Registrar ofertas
Grava uma ou mais ofertas numa cotação aberta. Enviar de novo a oferta do mesmo fornecedor para o mesmo item atualiza o preço em vez de duplicar. Tudo ou nada: se uma oferta for inválida, nenhuma é gravada.
/api/v1/vendor/erp/cotacoes/{id}/offersSellerRegistra ofertas de fornecedores
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
offersarrayobrigatórioOfertas. Ao menos uma.
quote_item_iduuidobrigatórioitems[].id).supplier_iduuidobrigatóriounit_cost_centsintegerobrigatóriolead_time_daysintegernotesstringExemplo de requisição: Registrar ofertas
Resposta: Registrar ofertas
Campos da resposta
iduuidvendor_iduuidcodestringCOT-000001, sequencial por seller.statusstringopenclosedcancelleddeadline_atdatetimenull se não definido.notesstringcreated_atdatetimeupdated_atdatetimeitem_countintegeritemsarrayItens e ofertas. Vazio na listagem.
iduuidquote_iduuidproduct_iduuidproduct_namestringquantityintegeroffersarrayOfertas dos fornecedores, da mais barata para a mais cara.
iduuidquote_item_iduuidsupplier_iduuidsupplier_namestringunit_cost_centsintegerlead_time_daysintegernull se não informado.notesstringcreated_atdatetimeErros: Registrar ofertas
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo não é um JSON válido. | {"error":"invalid request body","detail":"invalid character 'b' looking for beginning of object key string"} |
| 400 | offers vazio. | {"error":"vendorerp: at least one offer required"} |
| 400 | A cotação não está open. | {"error":"vendorerp: quote is not open"} |
| 400 | Oferta sem item ou fornecedor. | {"error":"vendorerp: quote_item_id and supplier_id required"} |
| 400 | Preço negativo. | {"error":"vendorerp: unit cost cannot be negative"} |
| 404 | A cotação, o item ou o fornecedor não existe. | {"error":"quote item not found"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Converter em pedido
Escolhe um fornecedor vencedor e gera um pedido de compra em draft com os preços das ofertas dele. Só entram os itens para os quais esse fornecedor deu oferta; os demais ficam de fora sem aviso. A cotação passa a closed.
/api/v1/vendor/erp/cotacoes/{id}/convertSellerConverte a cotação em pedido de compra
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
supplier_iduuidobrigatórioExemplo de requisição: Converter em pedido
Resposta: Converter em pedido
Campos da resposta
purchase_order_iduuidtotal_centsintegeritem_countintegerErros: Converter em pedido
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo não é um JSON válido. | {"error":"invalid request body","detail":"invalid character 'b' looking for beginning of object key string"} |
| 400 | supplier_id em branco. | {"error":"vendorerp: supplier_id required"} |
| 400 | A cotação não está open. | {"error":"vendorerp: quote is not open"} |
| 400 | O fornecedor não ofereceu em nenhum item. | {"error":"vendorerp: supplier has no offers on this quote"} |
| 404 | A cotação não existe ou é de outro seller. | {"error":"quote not found"} |
| 404 | O fornecedor não existe ou é de outro seller. | {"error":"supplier not found"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Cancelar cotação
/api/v1/vendor/erp/cotacoes/{id}/cancelSellerCancela uma cotação aberta
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição: Cancelar cotação
Resposta: Cancelar cotação
Campos da resposta
iduuidvendor_iduuidcodestringCOT-000001, sequencial por seller.statusstringopenclosedcancelleddeadline_atdatetimenull se não definido.notesstringcreated_atdatetimeupdated_atdatetimeitem_countintegeritemsarrayItens e ofertas. Vazio na listagem.
iduuidquote_iduuidproduct_iduuidproduct_namestringquantityintegeroffersarrayOfertas dos fornecedores, da mais barata para a mais cara.
iduuidquote_item_iduuidsupplier_iduuidsupplier_namestringunit_cost_centsintegerlead_time_daysintegernull se não informado.notesstringcreated_atdatetimeErros: Cancelar cotação
| Status | Quando | Corpo |
|---|---|---|
| 400 | A cotação não está open. | {"error":"cannot cancel quote in status \"closed\""} |
| 404 | A cotação não existe ou é de outro seller. | {"error":"quote not found"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Apagar cotação
Exclusão lógica em qualquer estado. O pedido de compra já gerado a partir dela não é afetado.
/api/v1/vendor/erp/cotacoes/{id}SellerApaga uma cotação
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição: Apagar cotação
Resposta: Apagar cotação
Campos da resposta
messagestringquote deleted.Erros: Apagar cotação
| Status | Quando | Corpo |
|---|---|---|
| 404 | A cotação não existe ou é de outro seller. | {"error":"quote not found"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |