Olá pessoal
Estou utilizando a função CalcEst junto com uma query para obter o custo médio e o valor em estoque dos produtos em uma data retroativa. Porém percebi que a função só retorna os dados para a filial atual logada. Mesmo eu especificando diferentes filiais nos argumentos da chamada da função. Segue um trecho de código de teste que faço a chamada da função para diferentes filiais conforme a query:
// Query
BeginSql Alias 'QRY'
SELECT B2_FILIAL AS FILIAL, B2_COD AS PRODUTO, B2_LOCAL AS ARMAZEM, B1_DESC AS DESCRICAO, B1_TIPO AS TIPO, B1_GRUPO AS GRUPO, B1_UM AS UM, B2_QATU AS EST_ATUAL, B2_CM1 AS CUSTO_MEDIO, B2_VATU1 AS VALOR_EST
FROM %table:SB2% SB2
LEFT JOIN %table:SB1% SB1 ON SB1.%NotDel% AND B1_COD = B2_COD
WHERE SB2.%NotDel%
AND B1_TIPO IN ('MP', 'PA', 'RV')
AND B1_GRUPO = '0003'
ORDER BY B2_COD, B2_LOCAL, B2_FILIAL
EndSql
// Insere as linhas na tabela Excel
WHILE !QRY->(EOF())
aSaldos := CalcEst(QRY->PRODUTO, QRY->ARMAZEM, CToD('01/07/2024') + 1, QRY->FILIAL)
// Obtém os saldos e o custo somente de produtos com estoque positivo até a data informada
if aSaldos[1] >= 0.1
nQtd := aSaldos[1]
nValEst := aSaldos[2]
nCustoMed := nValEst / nQtd
oExcel:AddRow(cNomePlan, cNomeTab, {QRY->FILIAL, QRY->ARMAZEM, QRY->TIPO, QRY->GRUPO, QRY->PRODUTO, QRY->DESCRICAO, QRY->UM, nQtd, nCustoMed, nValEst})
endif
QRY->(DBSKIP())
ENDDO
O resultado final traz as informações corretas, exceto quando os produtos possuem mais de uma filial. Quando possui mais de uma filial, as informações são duplicadas para as mesmas da filial logada (Ex: filial 01), dando a entender que a função CalcEst só retorna os resultados para a filial logada.
Alguma sugestão para isso? Como utilizar a CalcEst para obter as informações para diferentes filiais? O objetivo é reunir as informações dos saldos e custos por filial em uma planilha excel.