CONTEÚDO
- Visão Geral
- Exemplo de Utilização
- Rotina Automática
- Principais Campos
- Pré-condições para Utilização da Rotina
- Inclusão da Rotina no Menu
- Tabelas Utilizadas
- Assuntos Relacionados
01. VISÃO GERAL
O cadastro de Correlação de Produtos contém os produtos que serão listados na geração da obrigação acessória EFD ICMS/IPI no registro 0221.
A rotina permite a informação de N códigos correlacionados com os registros da tabela Produtos (SB1), com suas respectivas quantidades.
02. EXEMPLO DE UTILIZAÇÃO
Na página principal da rotina, estão disponíveis as opções:
Permite a inclusão de informações de um produto.
As informações devem ser preenchidas conforme as orientações descritas em Principais Campos.
Cadastrar um Registro
1. No módulo SIGAEST, acesse Atualizações → Cadastros → Produto → Correlação de Produtos
2. Na tela Correlação de Produtos, clique em Incluir.
3. Na tela Filiais, selecione o código da Filial.
4. Na tela Correlação de Produtos - Incluir, informe os dados necessários para o cadastro em questão, definindo os dados do produto pai e produtos filhos.
5. Clique em Confirmar.
03. ROTINA AUTOMÁTICA
A rotina Correlação de Produtos permite a efetuação das operações por meio de rotina automática em MVC que podem ser utilizadas em suas customizações conforme exemplos abaixo:
#INCLUDE "RWMAKE.CH" #INCLUDE "TBICONN.CH" #INCLUDE 'Protheus.ch' #INCLUDE 'FWMVCDef.ch' //------------------------------------------------------------------------ /* EXEMPLO DE INCLUSÃO */ //------------------------------------------------------------------------ User Function m039Inc() Local oModel := Nil Local cProdPai := "001 " Local cProdFil1 := "002 " Local cProdFil2 := "003 " Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "EST" oModel := FwLoadModel("MATA039") oModel:SetOperation(MODEL_OPERATION_INSERT) oModel:Activate() // Cabeçalho oModel:SetValue("D4CMASTER", "D4C_PRODUT", cProdPai) // Item 01 oModel:SetValue("D4CDETAILS", "D4C_PRDATO", cProdFil1) oModel:SetValue("D4CDETAILS", "D4C_QTPRAT", 2) oModel:GetModel("D4CDETAILS"):AddLine() // Item 02 oModel:SetValue("D4CDETAILS", "D4C_PRDATO", cProdFil2) oModel:SetValue("D4CDETAILS", "D4C_QTPRAT", 7) If oModel:VldData() oModel:CommitData() MsgInfo("Registro INCLUIDO!", "Atenção") Else VarInfo("",oModel:GetErrorMessage()) EndIf oModel:DeActivate() oModel:Destroy() oModel := NIL RESET ENVIRONMENT Return Nil //------------------------------------------------------------------------ /* EXEMPLO DE ALTERAÇÃO */ //------------------------------------------------------------------------ User Function m039Alt() Local oModel := Nil Local oModelItem := Nil Local cProdPai := "001 " Local cProdFil := "002 " Local cProdFil2 := "003 " Private lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "EST" // Posiciona D4C->(DbSetOrder(1)) If D4C->(DbSeek(xFilial("D4C") + cProdPai + cProdFil2)) oModel := FwLoadModel("MATA039") oModel:SetOperation(MODEL_OPERATION_UPDATE) oModel:Activate() oModelItem := oModel:GetModel("D4CDETAILS") oModelItem:seekline({{"D4C_FILIAL",xFilial("D4C")},{"D4C_PRODUT", cProdPai}, {"D4C_PRDATO", cProdFil2}}) lOk := oModel:SetValue("D4CDETAILS","D4C_QTPRAT",33) If lOk .AND. oModel:VldData() oModel:CommitData() MsgInfo("Registro ALTERADO!", "Atenção") Else VarInfo("",oModel:GetErrorMessage()) EndIf oModel:DeActivate() Else MsgInfo("Registro NAO LOCALIZADO!", "Atenção") EndIf RESET ENVIRONMENT Return Nil //------------------------------------------------------------------------ /* EXEMPLO DE EXCLUSÃO */ //------------------------------------------------------------------------ User Function m039Exc() Local oModel := Nil Local cProdPai := "001 " Local cProdFil := "002 " Private aRotina := {} PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "EST" // Posiciona D4C->(DbSetOrder(1)) If D4C->(DbSeek(xFilial("D4C") + cProdPai + cProdFil)) oModel := FwLoadModel ("MATA039") oModel:SetOperation(MODEL_OPERATION_DELETE) oModel:Activate() If oModel:VldData() oModel:CommitData() MsgInfo("Registro EXCLUIDO!", "Atenção") Else VarInfo("",oModel:GetErrorMessage()) EndIf oModel:DeActivate() Else MsgInfo("Registro NAO LOCALIZADO!", "Atenção") EndIf RESET ENVIRONMENT Return Nil
04. PRINCIPAIS CAMPOS
Na tela de cadastro da rotina, estão disponíveis as opções:
No cabeçalho são informados os dados de identificação do produto pai.
Campo: |
Descrição |
Codigo do Produto Pai (D4C_PRODUT) |
Informe o código identificador do produto pai. |
Un. de medida Prod Pai (D4C_UM) |
Unidade de medida do produto pai obtido a partir da tabela Produtos (SB1), preenchido automaticamente após definição do código do produto pai. |
05. PRÉ-CONDIÇÕES PARA UTILIZAÇÃO DA ROTINA
06. INCLUSÃO DA ROTINA NO MENU
Após aplicação do pacote de atualização, caso a rotina Correlação de Produtos não se encontre no menu Atualizações → Cadastros → Produto → Correlação de Produtos do módulo SIGAEST, é necessário incluir manualmente seguindo o seguinte passo a passo:
1. Acesse o módulo Configurador (SIGACFG)
2. Acesse o menu Ambiente → Cadastros → Menus (CFGX013)
3. Desmarque a caixa de seleção Todos os menus
4. Marque a caixa de seleção Estoque/Custos e clique no botão Ok
5. Clique no botão Adicionar >> e aguarde a cópia dos itens para o novo menu
6. Na aba Novo menu:, clique sobre a subpasta Produto e clique no botão Novo Item
7. Preencha os campos Desc. Português: Correlação de Produtos, Programa: MATA039, Status: Habilitado, Módulo: Estoque/Custos e Tipo: Função Protheus
8. Clique no botão OK
9. Clique no botão Gerar
10. No campo Arquivo, preencha SIGAEST e clique no botão Gerar
11. Ao apresentar as telas de confirmação Clique no botão Sim e aguarde a geração do menu
12. Ao acessar o módulo SIGAEST, observe que o menu Atualizações → Cadastros → Produto → Correlação de Produtos foi criado corretamente
07. TABELAS UTILIZADAS
- D4C - Correlação de Produtos
- NNR - Locais de Estoque
- SAH - Unidades de Medida
- SB1 - Produtos