Nesse vídeo demonstraremos a utilização da CalcEst que retorna informações de um produto em um determinado armazém e em uma determinada data.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zExe070 Exemplo para retornar o saldo do estoque de um produto @type Function @author Atilio @since 06/12/2022 @see https://centraldeatendimento.totvs.com/hc/pt-br/articles/4880693700375-Cross-Segmento-Backoffice-Linha-Protheus-SIGAEST-Fun%C3%A7%C3%A3o-CalcEst- @obs Função CalcEst Parâmetros + cCod , Caractere , Código do Produto + cLocal , Caractere , Código do Armazém + dData , Data , Data a computar o saldo + cFilAux , Caractere , Filial (parâmetro em desuso) + lConsTesTerc , Lógico , .T. se considera poder de terceiros ou .F. se não + lCusRep , Lógico , .T. se considera custo de reposição ou .F. se não Retorno + aSaldo , Array , Array contendo os dados encontrados (verificar as posições abaixo) Posições do aSaldo: aSaldo[01] : Quantidade aSaldo[02] : Valor Moeda 1 aSaldo[03] : Valor Moeda 2 aSaldo[04] : Valor Moeda 3 aSaldo[05] : Valor Moeda 4 aSaldo[06] : Valor Moeda 5 aSaldo[07] : Quantidade da segunda unidade de medida aSaldo[08] : Custo Médio 1 aSaldo[09] : Custo Médio 2 aSaldo[10] : Custo Médio 3 aSaldo[11] : Custo Médio 4 aSaldo[12] : Custo Médio 5 Caso seja informado o lCusRep: aSaldo[13] : Custo de Reposição Unitário da Moeda 1 aSaldo[14] : Custo de Reposição Unitário da Moeda 2 aSaldo[15] : Custo de Reposição Unitário da Moeda 3 aSaldo[16] : Custo de Reposição Unitário da Moeda 4 aSaldo[17] : Custo de Reposição Unitário da Moeda 5 aSaldo[18] : Custo de Reposição da Moeda 1 aSaldo[19] : Custo de Reposição da Moeda 2 aSaldo[20] : Custo de Reposição da Moeda 3 aSaldo[21] : Custo de Reposição da Moeda 4 aSaldo[22] : Custo de Reposição da Moeda 5 **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe070() Local aArea := FWGetArea() Local cProduto := "" Local cArmazem := "" Local dDataFim Local aSaldos := {} //Define os parâmetros que serão usados no CalcEst cProduto := AvKey("F0001", "B1_COD") cArmazem := "01" dDataFim := DaySum(Date(), 1) //Abre a tabela de produtos DbSelectArea("SB1") SB1->(DbSetOrder(1)) // B1_FILIAL + B1_COD //Posiciona no cadastro If SB1->(MsSeek(FWxFilial("SB1") + cProduto)) //Busca os saldos aSaldos := CalcEst(cProduto, cArmazem, dDataFim) FWAlertInfo("Saldo atual é de: " + cValToChar(aSaldos[1]), "Teste CalcEst") EndIf FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Uma dica importante é que essa função faz uso de stored procedure, então para aumento de performance é importante que as stored procedures estejam instaladas.
Bom dia mano Súlivan, tudo joia?
Opa excelente adendo, obrigado pelo comentário.
Um forte abraço.