Boa tarde!
@João Paulo Müller, dá uma olhada na legislação de SC, se irão tratar da mesma forma que o RS (li praticamente toda legislação do RS para começar a entender alguma coisa).
Deixar a seleção da origem da base na hora da venda, nos casos em que tem frente de caixa, por exemplo, torna-se inviável, pois o usuário normalmente não saberá qual associação fazer.
Em alguma das postagens, é falado sobre armazenar o valor unitário de entrada. Será este método que irei utilizar, pois, cada nova entrada substituirá a base de cálculo unitária para ser usada na hora da venda.
Sem um controle rígido por lote ou número de série registrado nos produtos, é inviável identificar qual a base de cálculo da nota associada para o produto sendo vendido, pois, basta modificar a ordem do produto na prateleira, como exemplo, que já bagunça todo o controle!
Acredito que seja por isso que na legislação do RS tenha adotado este método (falha minha não ter especificado na postagem que a legislação é do RS).
No momento, estou liberando uma versão do meu sistema onde irei ler todos os XMLs de notas de compra e atualizar os dados no banco de dados, tratando campos que não considerava antes. No segundo momento, irei recalcular todos os registros apurando se tem ou não base e atualizar as tabelas do sistema para que, na hora da venda, busque essa informação.
Estou aceitando sugestões de como tratar esta situação, pois está dando um nó na minha cabeça!