AlternativeUnitService
Visao Geral
O AlternativeUnitService fornece operacoes para buscar unidades alternativas de medida para produtos no backend de forma paginada.
Localizacao: services/alternative-unit/alternative-unit.service.ts
Endpoints
| Metodo | Endpoint | Descricao |
|---|---|---|
| GET | /unidadeAlternativa | Lista unidades alternativas com paginacao |
Metodos
fetchAlternativeUnitsRemote(params)
Busca unidades alternativas de medida de forma paginada, com opcao de filtro por produto.
Parametros
| Nome | Tipo | Obrigatorio |
|---|---|---|
params | { page?: number; size?: number; dataHora?: string; idProd?: string } | Nao |
Retorno: Promise<AlternativeUnit[]>
Exemplo
const alternativeUnits =
await alternativeUnitInstance.fetchAlternativeUnitsRemote({
page: 0,
size: 10,
});
console.log(alternativeUnits[0].produto); // "Parafuso"
console.log(alternativeUnits[0].unidadeMedida); // "Caixa"
console.log(alternativeUnits[0].quantidade); // 10
Com filtro por produto
const productUnits = await alternativeUnitInstance.fetchAlternativeUnitsRemote({
page: 0,
size: 10,
idProd: "PROD001",
});
console.log(productUnits.length); // Unidades alternativas do produto PROD001
Erros
| Status | Descricao |
|---|---|
| 4xx/5xx | Lanca Error: AlternativeUnitService.fetchAlternativeUnitsRemote failed: {status} |
Estruturas de Dados
AlternativeUnit
interface AlternativeUnit {
id: string;
quantidade: number;
multipVlr: number;
divideMultiplica: string;
idUniMed: string;
unidadeMedida: string;
sigla: string;
idProduto: string;
produto: string;
idExterno: string;
idOrganization: string;
organization: string;
dhCriacao: string;
dhAlteracao: string;
}
PageResponse<T>
interface PageResponse<T> {
content: T[];
page?: number;
size?: number;
totalElements?: number;
}
Componentes Relacionados
| Componente | Descricao |
|---|---|
MeasurementUnitService | Servico para buscar unidades de medida padrao |
buildQueryParams | Helper para serializar parametros de query em requisicoes GET |
apiWithoutAccessToken | Instancia Axios sem token de autenticacao |
Casos de Uso
- Buscar unidades alternativas de um produto para exibir em formularios de vendas
- Sincronizar dados de unidades alternativas para uso offline
- Converter quantidades entre unidades padroes e alternativas (usando
multipVlredivideMultiplica)
Testes
Localizacao: services/alternative-unit/alternative-unit.service.test.ts
Principais cenarios
| Cenario | Resultado esperado |
|---|---|
fetchAlternativeUnitsRemote status 200 | Retorna alternativeUnitResponseMock.content |
fetchAlternativeUnitsRemote status 400 | Lanca AlternativeUnitService.fetchAlternativeUnitsRemote failed |
Mocks
Localizacao: __mocks__/alternative-unit.mock.ts
alternativeUnitResponseMock- resposta paginada mockada com unidades alternativas (Caixa, Pacote, Unidade, Litro, Quilo, Metro, Peca, Saco, Galao)
Instancia
Localizacao: services/alternative-unit/alternative-unit.service.instance.ts
import { alternativeUnitInstance } from "@/services/alternative-unit/alternative-unit.service.instance";