Olá pessoal…
Hoje vou mostrar um exemplo de como criar Saldo Inicial via AdvPL (tabela SB9).
Algumas vezes precisamos criar um Saldo Inicial para um produto em um armazém, e através do execauto da Mata220 isso é possível.
Foi criado uma função que recebe por parâmetro o Produto, o Armazém e o Saldo.
//Bibliotecas #Include "Protheus.ch" /*/{Protheus.doc} zGeraB9 Função que gera saldo inicial @author Daniel Atilio @since 16/02/2015 @version 1.0 @param cCodProd, Caracter, Código do Produto @param cArmazem, Caracter, Código do Armazém @param nQuant, Numérico, Quantidade do saldo inicial @example u_zGeraB9("00000001", "01", 3000) /*/ User Function zGeraB9(cCodProd, cArmazem, nQuant) Local aArea := GetArea() DbSelectArea("SB9") DbSetOrder(1) //B9_FILIAL+B9_COD+B9_LOCAL+DTOS(B9_DATA) //Setando valores da rotina automática lMsErroAuto := .F. aVetor :={; {"B9_FILIAL" ,cFilAnt ,Nil},; {"B9_COD" ,cCodProd ,Nil},; {"B9_LOCAL" ,cArmazem ,Nil},; {"B9_QINI" ,nQuant ,Nil}} //Iniciando transação e executando saldos iniciais Begin Transaction MSExecAuto({|x,y| Mata220(x,y)}, aVetor) //Se houve erro, mostra mensagem If lMsErroAuto lHouveErro := .T. MostraErro() DisarmTransaction() EndIf End Transaction RestArea(aArea) Return
Dessa forma, você consegue fazer um for, um while ou várias chamadas para criar o saldo inicial de vários produtos.
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Boa tarde, legal Dan talvez seja interessante colocar o custo também.
Bom dia Rone.
Ok, vou adicionar aqui nas sugestões. Obrigado pelo feedback.
Um grande abraço.
Esse função poderia ser utilizada dentro de um ponto de entrada?
Sim, é só você chamar ela com u_zGeraB9 passando os parâmetros necessários.
Grande abraço.
Tem como ser acionado no mometo que finaliza um cadastro de produto e ai sim criar o saldo inicia desse produto cadastrado
Bom dia Mauro, tudo joia?
Sim, é possível.
Crie o ponto de entrada “ITEM” (esse é o nome do p.e. MVC do cadastro de produtos MATA010).
Dentro dele use o trecho “MODELCOMMITNTTS” que é após a gravação do produto. Ai dentro dele, você testa a variável INCLUI, se ela tiver .T., é uma inclusão, ai você aciona a u_zGeraSB9().
Ai se for o caso, você pode usar o Autumn para gerar o molde do fonte, segue vídeo de exemplo: https://youtu.be/iR3F8kJ4rUc
Você pode usar também a função a120ChkAlmox, conforme exemplo nesse link: https://terminaldeinformacao.com/2024/01/10/como-acionar-a-criacao-da-sb2-para-varios-produtos-via-a120chkalmox/
Tenha uma ótima e abençoada sexta feira.
Um grande abraço.