ListaPrecos

Definição
Classe responsável por manter dados de preços de produtos de forma pré-cadastrada e com determinada vigência. Também é de controle desta classe retornar listas de preços, calcular e analisar preços de acordo com parâmetros diversos como vigência, tipo de custo, mark-up, etc, além várias opções de filtros.
Seus métodos são amplamente utilizados para obtenção de valores de venda em orçamentos, pedidos e notas ficais, abrangendo também o Força de Vendas.
Tem como composições as classes ListaPrecosMarkUp e ListaPrecosFiltro.
A propriedade 'PrecoProduto' é do tipo ListaPrecosProdutos e atribuída como composição, porém é utilizada apenas para vinculação em relatórios.
Seu cadastro se dá pelo formulário frmCadastroListaPrecos.
Principais Métodos
GetLista: Função responsável por retornar uma lista de preços conforme os parâmetros informados. Existem várias sobrecargas desta função, pois é utilizada em vários pontos do sistema para que seja retornada a lista correta de acordo cada caso (parâmetros). A variável estática de listas 'listasCarreg' também é alimentada/acessada no processo.
GetListaPadrao: Retorna uma lista de preços padrão. Utiliza a função 'GetLista', mas leva em consideração parâmetros padrões de configuração.
PrecoVenda: Função responsável por calcular e retornar o preço de venda de acordo com a lista, cliente, produto, etc. Possui várias sobrecargas para chamadas diversas. Em suma, o cálculo é diferenciado principalmente por utilizar-se ou não margem direta. Várias outras configurações são consultadas, além de definições da lista indicada. Isso leva a vários caminhos de cálculo, exigindo muita atenção caso seja necessário alguma alteração de código-fonte neste método.
CalculaValorVenda: É uma função de apoio à função 'PrecoVenda'. É chamada dentro da função anterior e realiza cálculos de mark-up e composição de impostos.
PrecoVendaAnalise: Tem basicamente os mesmos passos da função 'PrecoVenda', porém a finalidade é a de retornar o conjunto de informações (no caso, um DataTable) do cálculo do preço para as análises de lucratividade.
Particularidades/Problemas Conhecidos
- Alterações referêntes ao cálculo de preço de venda devem ser muito bem executadas e testadas pois o impacto dentro do sistema pode ser generalizado;
- O cadastro de produtos desta entidade tem um processo diferente do padrão encontrado na estrutura DataPlus. Existe o método 'GetProdutos', que é específico para retorno dos produtos e também o conjunto de métodos para alteração, inserção e exclusão de produtos: 'AtualizaProdutos', 'InsereProdutos', 'RemoveProdutos'. No formulário são reunidos dados de alterações na variável 'lista'. Esta lista é enviada à classe no momento da gravação e, no OnSave, estes dados são validados e os métodos para alteração são executados.
Casos de Teste
1. ;