Histórico da Página
...
- 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
...
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 do Bloco K.
A rotina permite a informação de N códigos correlacionados com os registros da tabela Produtos (SB1), com suas respectivas quantidades.
...
Deck of Cards | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||
|
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:
Bloco de código | ||||
---|---|---|---|---|
| ||||
#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:
Deck of Cards | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||
|
...
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 deProdutos, 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
...
08. ASSUNTOS RELACIONADOS
Não se aplica SPDFIS - Sped Fiscal