Carregar somente produtos comercializáveis para adicionar ao carrinho
Implementação da busca de itens de acordo com a item preço produto
Regra para carregar a lista de produtos:
- Só vamos carregar produtos que sejam passíveis de comercialização, para isto temos que validar as seguintes condições:
1 - Validações do usuário:
Se no usuário estiver configurado para uso obrigatório de tabela de preços, só carregar produtos que existam na tabela de preços escolhida, mesmo que a opção seja permitindo alterar preço. Se o usuário estiver configurado para uso não obrigatório de tabela de preços, pode carregar todos os produtos mesmo que eventualmente esteja configurada alguma tabela de preços e nela não não existam os produtos.
2 - Validações de saldo de estoque
Se o parâmetro de empresa estiver configurado como "Usa Saldo de Estoque = Sim" e "Bloqueia Venda Estoque Negativo = Sim(Venda) e/ou Sim (Venda e Carrinho)", então só lista os produtos que tiverem saldo de estoque disponível para comercialização. Se o parâmetro de empresa estiver configurado como "Usa Saldo de Estoque = Sim" e "Bloqueia Venda Estoque Negativo = Não", mas no tipo de venda estiver configurado como "Aplica Regra Estoque Negativo = Sim", também só lista os produtos que tiverem saldo de estoque disponível para comercialização. Já se o parâmetro de empresa estiver configurado como "Usa Saldo de Estoque = Sim" e "Bloqueia Venda Estoque Negativo = Não" e no tipo de venda também estiver configurado como "Aplica Regra Estoque Negativo = Não", então pode listar todos os produtos para comercialização (respeitando a regra de tabela de preços, claro).
3 - Validações da produto comercial
Se existir um registro na PRODUTO_COMERCIAL que impossibilite a comercialização do produto (venda_liberada = Não | Data mínima e máxima de entrega fora de um período válido), também não lista o produto para comercialização.
4 - Restrição de produto por tipo de venda
Se no tipo de venda houver restrição de produto, grupo ou produto/complemento, só poderá listar produtos que estejam liberados para aquele tipo de venda.
Regras que já foram implementadas para formação da tabela, permitindo apenas carregar tanto na venda quando no carrinho apenas item que estejam na mesma