01. INTRODUÇÃORequisição que tem a finalidade de retornar os preços de um ou mais produtos, incluindo os valores promocionais. Observação: Se a grade possuir um produto padrão configurado, todos os produtos receberão o mesmo valor do produto padrão.
02. UTILIZAÇÃO
Totvs custom tabs box |
---|
tabs | Envio, Retorno, Exemplo de Implementação |
---|
ids | envio,retorno,cod |
---|
| Totvs custom tabs box items |
---|
default | yes |
---|
referencia | envio |
---|
| Totvs custom tabs box |
---|
tabs | URL, Body, Exemplo de Requisição, Detalhamento dos Campos |
---|
ids | urlE,corpoE,exE,campE |
---|
| Totvs custom tabs box items |
---|
| https://www30.bhan.com.br:9443/api/v1/produto/precoproduto |
---|
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | corpoE |
---|
| Bloco de código |
---|
language | xml |
---|
theme | RDark |
---|
firstline | 1 |
---|
title | Body |
---|
linenumbers | true |
---|
| {
"produtos": [
{
"cdProduto": "XXXXXXXXXXXXXXXXXXXX"
}
],
"cdPreco": 9999,
"inPromocao": 9,
"empresas": [
{
"cdEmpresa": 9999,
"nrCNPJEmpresa": "XXXXXXXXXXXXXX"
}
]
} |
|
Totvs custom tabs box items |
---|
| URL https://www30.bhan.com.br:9443/api/v1/produto/precoproduto |
---|
HEADER Authorization | Bearer {{token}} |
---|
BODY
Bloco de código |
---|
language | xml |
---|
theme | RDark |
---|
firstline | 1 |
---|
title | Body |
---|
linenumbers | true |
---|
| {
"produtos": [
{
"cdProduto": "100"
}
],
"cdPreco": 1,
"inPromocao": 1,
"empresas": [
{
"cdEmpresa": 1
}
]
} |
|
Totvs custom tabs box items |
---|
|  
Nome | Tipo | Descrição | Exemplo | VA |
---|
cdProduto | string | Código do produto * | "cdProduto": "100" | Referência 1 | cdPreco | int | Código do Preço | "cdPreco": 1 | Referência 2 | inPromocao | int | Valor de Promoção ** | "inPromocao": 1 | -- | cdEmpresa | int | Código da Empresa *** | "cdEmpresa": 1 | Referência 3 | nrCNPJEmpresa | string | CNPJ da Empresa *** | "nrCNPJEmpresa": "12345678901234" | -- |
*Neste campo podemos informar o código sku do produto ou o código de barras do produto. **Neste campo podemos informar 1 (um) para retornar os valores promocionais ou 0 (zero) para NÃO retornar os valores promocionais. ***Neste campo quando Código da Empresa for informado, não existe a necessidade de informar o CNPJ. Porém, caso o Código não for informado, o documento se torna obrigatório! Informações |
---|
Todos os campos são obrigatórios. Caso possua a opção de informar código e/ou documento, pelo menos um dos campos deve ser informado! |
|
|
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | retorno |
---|
| Totvs custom tabs box |
---|
tabs | Sucesso, Erro |
---|
ids | sucesso,erro |
---|
| Totvs custom tabs box items |
---|
default | yes |
---|
referencia | sucesso |
---|
| Bloco de código |
---|
language | xml |
---|
theme | RDark |
---|
firstline | 1 |
---|
title | Status 200 OK |
---|
linenumbers | true |
---|
| {
"precos": [
{
"cdSKU": 9999999,
"cdProduto": "XXXXXXXXXX",
"dsProduto": "XXXXXXXXXX",
"cdReferencia": "XXXXXXXXXX",
"cdCor": "XXXXXXXXX",
"dsTamanho": "XXXXXXXXXX",
"cdEmpresa": 999999999,
"nrCNPJEmpresa": "XXXXXXXXXXX",
"vlPreco": 999999999.99,
"vlPrecoPromocao": 999999999.99
}
]
} |
|
Totvs custom tabs box items |
---|
| Bloco de código |
---|
language | xml |
---|
theme | RDark |
---|
firstline | 1 |
---|
title | Status 400 Bad Request |
---|
linenumbers | true |
---|
| {
"dsErro": "Mensagem informativa do erro"
} |
|
|
|
Totvs custom tabs box items |
---|
| Totvs custom tabs box |
---|
tabs | Consulta Preço Produto, Token, Preço Produto |
---|
ids | api,token,prproduto |
---|
| Totvs custom tabs box items |
---|
| Totvs custom tabs box |
---|
tabs | Main, DtoBuilder, DtoEnvioPrecoProdutoBuilder |
---|
ids | main,dtoB,DtoIdtoI |
---|
| Totvs custom tabs box items |
---|
| Bloco de código |
---|
language | c# |
---|
theme | RDark |
---|
firstline | 1 |
---|
title | Main |
---|
linenumbers | true |
---|
| public class ApiPrecoProduto
{
static void Main(string[] args)
{
var token = Token.ObterToken();
var dto = PopularDto();
PrecoProduto.PrecoProdutoConsulta(token, dto);
}
private static PrecoProdutoDTO.Envio PopularDto()
{
var dto = new DtoBuilder()
.ComProdutos(ObterProduto())
.Build();
return dto;
}
private static List<PrecoProdutoDTO.EnvioPrecoProduto> ObterProduto()
{
var produtos = new List<PrecoProdutoDTO.EnvioPrecoProduto>();
produtos.Add(
new DtoEnvioPrecoProdutoBuilder()
.ComCodigoProduto("100")
.ComCodigoPreco(1)
.ComIncluiPromocao(1)
.ComCodigoEmpresa(1)
.ComNumeroCNPJEmpresa("12345678901234")
.Build()
);
return produtos;
}
} |
|
Totvs custom tabs box items |
---|
| Bloco de código |
---|
language | c# |
---|
theme | RDark |
---|
firstline | 1 |
---|
linenumbers | true |
---|
| public class DtoBuilder
{
private readonly PrecoProdutoDTO.Envio _dto;
public DtoBuilder()
{
_dto = new PrecoProdutoDTO.Envio();
}
public DtoBuilder ComProdutos(PrecoProdutoDTO.EnvioPrecoProduto _produto)
{
_dto.Produtos.Add(_produto);
return this;
}
public DtoBuilder ComProdutos(List<PrecoProdutoDTO.EnvioPrecoProduto> _produtos)
{
_dto.Produtos = _produtos;
return this;
}
public PrecoProdutoDTO.Envio Build() => _dto;
} |
|
Totvs custom tabs box items |
---|
| Bloco de código |
---|
language | c# |
---|
theme | RDark |
---|
firstline | 1 |
---|
linenumbers | true |
---|
| public class DtoEnvioPrecoProdutoBuilder
{
private readonly PrecoProdutoDTO.EnvioPrecoProduto _produto;
public DtoEnvioPrecoProdutoBuilder()
{
_produto = new PrecoProdutoDTO.EnvioPrecoProduto();
}
public DtoEnvioPrecoProdutoBuilder ComCodigoProduto(string codigoProduto)
{
_produto.CodigoProduto = codigoProduto;
return this;
}
public DtoEnvioPrecoProdutoBuilder ComCodigoPreco(int codigoPreco)
{
_produto.CodigoPreco = codigoPreco;
return this;
}
public DtoEnvioPrecoProdutoBuilder ComIncluiPromocao(int incluiPromocao)
{
_produto.IncluiPromocao = incluiPromocao;
return this;
}
public DtoEnvioPrecoProdutoBuilder ComCodigoEmpresa(int codigoEmpresa)
{
_produto.CodigoEmpresa = codigoEmpresa;
return this;
}
public DtoEnvioPrecoProdutoBuilder ComNumeroCNPJEmpresa(string numeroCNPJEmpresa)
{
_produto.NumeroCNPJEmpresa = numeroCNPJEmpresa;
return this;
}
public PrecoProdutoDTO.EnvioPrecoProduto Build() => _produto;
} |
|
|
|
Totvs custom tabs box items |
---|
| Totvs custom tabs box |
---|
tabs | Obter Token, LoginDTO |
---|
ids | obterToken,login |
---|
| Totvs custom tabs box items |
---|
default | yes |
---|
referencia | obterToken |
---|
| Bloco de código |
---|
language | c# |
---|
theme | RDark |
---|
firstline | 1 |
---|
title | Token |
---|
linenumbers | true |
---|
| public class Token
{
private const string _applicationJson = "application/json";
private const string _baseUri = @"http://www30.bhan.com.br:9443/api/v1/";
private const string _usuario = "desen";
private const string _senha = "123456";
public static string ObterToken()
{
LoginDTO.Envio login = new LoginDTO.Envio(_usuario, _senha);
var cliente = PopularCliente();
var uri = @"autorizacao/token";
var conteudo = new StringContent(_applicationJson);
var response = cliente.PostAsync(uri, conteudo).Result;
if (!response.IsSuccessStatusCode)
throw new Exception();
var retorno = JsonConvert.DeserializeObject<LoginDTO.Retorno>(response.Content.ReadAsStringAsync().Result);
return retorno.Token.Replace("Bearer", "").Trim();
}
private static HttpClient PopularCliente()
{
HttpClient cliente = new HttpClient();
cliente.BaseAddress = new Uri($"{_baseUri}");
cliente.DefaultRequestHeaders.Accept.Clear();
cliente.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(_applicationJson));
cliente.DefaultRequestHeaders.Add("usuario", _usuario);
cliente.DefaultRequestHeaders.Add("senha", _senha);
cliente.Timeout = TimeSpan.FromDays(1);
return cliente;
}
} |
|
Totvs custom tabs box items |
---|
| Bloco de código |
---|
language | c# |
---|
theme | RDark |
---|
firstline | 1 |
---|
title | Login |
---|
linenumbers | true |
---|
| public class LoginDTO
{
public class Envio
{
[JsonProperty("usuario")]
public string Usuario { get; set; }
[JsonProperty("senha")]
public string Senha { get; set; }
public Envio(string usuario, string senha)
{
Usuario = usuario;
Senha = senha;
}
}
public class Retorno
{
[JsonProperty("cdToken")]
public string Token { get; set; }
[JsonProperty("dtExpiracao")]
public string DataExpiracao { get; set; }
public Retorno(string token, string dataExpitacao)
{
Token = token;
DataExpiracao = dataExpitacao;
}
}
} |
|
|
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | prproduto |
---|
| Totvs custom tabs box |
---|
tabs | ConsultarPrecoProduto, ConsultarPrecoProdutoDTO |
---|
ids | consultar,dto |
---|
| Totvs custom tabs box items |
---|
default | yes |
---|
referencia | consultar |
---|
| Bloco de código |
---|
language | c# |
---|
theme | RDark |
---|
firstline | 1 |
---|
title | Main |
---|
linenumbers | true |
---|
| public class PrecoProduto{} |
|
Totvs custom tabs box items |
---|
| Bloco de código |
---|
language | c# |
---|
theme | RDark |
---|
firstline | 1 |
---|
title | Main |
---|
linenumbers | true |
---|
| public class PrecoProdutoDTO{} |
|
|
|
|
|
|
|