Objetivo
Implementar uma API que devolva os saldos disponíveis do estoque para uma empresa e depósito específicos, listando o saldo de todos os produtos (limitados a 15).
1. Obter token autenticação
Introdução
Qualquer webservice do projeto SispetroWeb exigirá um token de autenticação. Este token é gerado a partir deste webservice e será válido por 24 horas. Assim, recomendamos que o sistema consumidor dos webservices aqui descritos salvem o token armazenando também a data e hora em que ele foi gerado para que, quando chegar próximo de sua validade, seja obtido novo token.
Para mais informações, ver API Obtenção de Token
2. Saldo Estoque
Introdução
Este webservice tem por finalidade obter o saldo disponível de UMA empresa e UM depósito, listando até 15 produtos que controlem estoque, estejam ativos e sejam do tipo Combustível.
Para saber se produto controla ou não estoque, ele deve estar marcado para participar do fechamento de estoque.
Para saber se produto controla ou não estoque, verifique se a opção Participa do Fechamento de estoque está marcada. Para mais informações, ver produtos
Somente os primeiros 15 produtos ativos (ordenados por código) serão retornados.
Além disso, o usuário logado deve ter permissão de acesso à empresa passada como parâmetro.
Endereço
<endereço do SispetroWeb>/posicao_estoque/get_estoque_escritural
Body
Será necessário enviar os dados abaixo para consultar as informações do depósito. Como parâmetros enviar:
Nome | Descritivo | Exemplo | Observações |
---|---|---|---|
codEmpresa | Código da empresa | 1 | Obrigatório |
codDep | Código do Depósito | ‘01’ | Obrigatório |
Headers
Nome | Descritivo | Exemplo | Observações |
---|---|---|---|
Authorization | Conteúdo do token obtido no passo de autenticação do usuário | eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF91c3VhcmlvIjozMiwiY25waiI6IjAxLjgwNC4zNDUvMDAwMS02MCIsImV4cCI6MTUwMDA1MzYxN30.-ZvhWFYI8fyx66b3kZY1UVUrfaWUTioV3_M6K2wiPGM | |
Content-Type | tipo do formato de envio | application/json | |
Accept | tipo do formato de envio | application/json |
Método
GET
Exemplo de chamada de WebService
curl -X GET -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF91c3VhcmlvIjo4NCwiY25waiI6IjAwLjAwMC4wMDAvMDAwMC0wMSIsImRlcG9zaXRvX3BhZHJhbyI6bnVsbCwiZXhwIjoxNzE3NzY3NDAyfQ.j_CChFzlGOMkfvQ1psP8gaxZiKQ8yiD1pJnyVeUWkg0' http://localhost/posicao_estoque/get_estoque_escritural -d '{"codEmpresa":1, "codDep":"1"}'
Retorno Bem Sucedido (exemplo:
)Serão retornados os saldos disponíveis de até 15 produtos (que controlam estoque). O status da resposta sempre será 200.
Layout de matriz (um para cada produto) em formato JSON.
Chave | Conteudo | Pai |
---|---|---|
codEmpresa | Código da empresa | |
nomeUsualEmpresa | Nome Usual da Empresa | |
cidadeEmpresa | Cidade da Empresa | |
codDep | Código do Depósito | |
produtos | grupo | |
codProd | Código do produto | produtos |
classific | Código da Classificação do produto (até 13 caracteres) | produtos |
saldo | Saldo disponível escritural | produtos |
# exemplo retorno: { "codEmpresa": 1, "nomeUsualEmpresa": "BASE DEMO", "cidadeEmpresa": "SAO PAULO", "codDep": "1", "produtos": [ { "codProd": "00102", "classific": "01", "saldo": "31500.0", }, { "codProd": "00103", "classific": "01", "saldo": "43000.0", }, { "codProd": "02", "classific": "01", "saldo": "460050.0", }, { "codProd": "03", "classific": "01", "saldo": "-2034337.0", }, { "codProd": "04", "classific": "01", "saldo": "-1459636.0", }, { "codProd": "05", "classific": "01", "saldo": "2208374.0", }, { "codProd": "06", "classific": "01", "saldo": "-156500.0", }, { "codProd": "10", "classific": "01", "saldo": "-16000.0", }, { "codProd": "16", "classific": "01", "saldo": "-14000.0", } ] }%
Retorno Sem Sucesso
Será retornado um objeto JSON com o motivo da falha (normalmente um erro de autenticação caso o token tenha expirado ou seja inválido ou alguma regra de negócio não atendida. O status da resposta sempre será diferente de 200.
Caso o Token não esteja válido
{ "error": "Unauthorized", C"status": 401 }
Caso o usuário não pode ter acesso à empresa escolhida
{ "error": "Empresa inválida", "status": 400 }
Iremos limitar o resultado a 15 produtos apenas por uma questão de performance.