...
Índice | ||||
---|---|---|---|---|
|
...
El Registro de perfil tributario de participantes (FISA164) es una rutina disponible por el Configurador de tributos
...
O Cadastro de Perfil Tributário de Participantes (FISA164) é uma rotina disponível pelo Configurador de Tributos (FISA170) para agrupar todos os los participantes que compartilham de características semelhantes a serem enquadradas nas operações fiscais. Os participantes podem ser fornecedores ou clientes cadastrados no sistema.comparten características semejantes que se encuadran en las operaciones fiscales. Los participantes pueden ser proveedores o clientes registrados en el sistema.
Por medio del sistema, el usuario tiene la posibilidad de, al registrar un nuevo cliente/proveedor, utilizar el Através do sistema o usuário tem a possibilidade de ao cadastrar um novo cliente/fornecedor utilizar do facilitador fiscal (MV_FACAUTO) para adicionar um novo agregar un nuevo participante a um un Perfil de Participante já participante existente na base quando o parâmetro en la base cuando esté activado el parámetro MV_FACAUTO está ativado.
Esse documento visa exemplificar como utilizar da rotina Este documento busca ejemplificar cómo utilizar la rutina FISA164 como ExecAuto (execução ejecución automática) para efetuar o mesmorealizarlo.
...
...
El siguiente ejemplo de utilización se inicia con una función principal que prepararía todo el entorno y ejecutaría todo el procesamiento de registro de proveedor/cliente por medio de las ejecuciones automáticas disponibles para estos registros. El enfoque de este ejemplo no es esta función, si no la función gravaPart que grabará el nuevo producto en un perfil de participante existente en la base como un ExecAuto.
Cuando una aplicación se desarrolla utilizando el concepto de MVC y sus clases, puede hacerse uso de su modelo de datos en otras aplicaciones, similarmente a lo que sería una rutina automática en el desarrollo tradicional. Ya no existe uso de la función MSExecAuto. La idea básica es instanciar el modelo de datos (Model) que se desea, atribuir los valores a este y hacer la validación. Por lo tanto, la función gravaPart se desarrolló en este ejemplo, de acuerdo con el concepto del MVC.
La gravaPart solo se llamará si el parámetro MV_FACAUTO estuviera activado y si fuera posible encontrar en la tabla F20 (Perfiles tributarios) el perfil al cual quiero vincular mi nuevo participante (cliente/proveedor).
A continuación, un ejemplo de cómo utilizar la rutina en ejecución automática después de haber registrado un cliente/proveedor
...
O exemplo de utilização abaixo inicia com uma função principal que prepararia todo o ambiente e executaria todo o processamento de cadastro de fornecedor/cliente através das execuções automáticas disponíveis para esses cadastros. O foco desse exemplo não é essa função mas sim a função gravaPart que fará a gravação do novo cliente/fornecedor em um perfil de participante já existente na base como um ExecAuto.
Quando uma aplicação é desenvolvida utilizando-se o conceito de MVC e suas classes, pode-se fazer uso de seu modelo de dados em outras aplicações, similarmente ao que seria uma rotina automática no desenvolvimento tradicional. Não existe mais o uso da função MSExecAuto. A ideia básica é instanciar o modelo de dados (Model) que se deseja, atribuir os valores a ele e fazer a validação. Portanto, a função gravaPart foi desenvolvida nesse exemplo conforme o conceito do MVC.
A gravaPart só será chamada se o parâmetro MV_FACAUTO estiver ativado e se for possível encontrar na tabela F20 (Perfis Tributários) o perfil ao qual eu quero vincular meu novo participante (cliente/fornecedor).
Abaixo um exemplo de como utilizar a rotina em execução automática após ter cadastrado um cliente/fornecedor:
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#INCLUDE "TBICONN.CH" #INCLUDE "TOPCONN.ch" #INCLUDE "PROTHEUS.CH" #INCLUDE "FWMVCDEF.CH" /*/{Protheus.doc} User Function exExecAuto (FunçãoFunción que inicializainicia oel processamentoprocesamiento.) @type Function @author user @since 04/09/2023 @version 12.1.2210 @return Nil, Nil, semsin retornodevolución /*/ User Function exExecAuto() local lMVFACAUTO := .F. local nOp := 4 local cCodPerfil := "200001" local cTipoPart := "1" local cCliFor := "SP0003" local cLoja := "01" local cTipoPerf := "02" local lOk := .F. ConOut(Repl("-",80)) ConOut(PadC("MensagemMensaje : InicíoInicio dodel processamentoprocesamiento " + Time(), 80)) // preparo oel ambienteentorno // prepare oel entorno ambientede dala maneiramanera que acharle melhorparezca // para este exemploejemplo abrireisolo apenasabriré aslas tabelastablas F20 ey F22 PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "XIFIS26" MODULO "FIS" TABLES "F20", "F22" /* Lógica de cadastroregistro de cliente/fornecedorproveedor por viael execAuto de daslas rotinasrutinas de cadastroregistro de cliente ey fornecedorproveedor. */ // InclusãoInclusión de novonuevo fornecedorproveedor/cliente emen umun perfil de participante já existente lMVFACAUTO := GetNewPar("MV_FACAUTO", lMVFACAUTO) if lMVFACAUTO // sesi oel facilitador estiverestuviera ativadoactivado dbSelectArea("F20") F20->(dbSetOrder(1)) // posicionovoy noal perfil en aoel qualcual queroquiero incluir oel novonuevo cliente/fornecedorproveedor if F20->(MsSeek(xFilial("F20") + cCodPerfil + cTipoPerf)) // chamollamo ala funçãofunción para grabar gravaruna novanueva linhalínea de participante (F22) lOk := u_gravaPart(nOp, cCodPerfil, cTipoPart, cCliFor, cLoja, cTipoPerf) if !lOk ConOut("MensagemMensaje : NãoNo foifue possívelposible aincluir inserçãoun denuevo novoparticipante participanteen noel perfil. Verificar Log.") else ConOut("MensagemMensaje : Se incluyó Incluídoel participante " + cCliFor + " ao perfil " + cCodPerfil+".") endif else ConOut("MensagemMensaje : Perfil de Participanteparticipante inexistente!") endIf endif ConOut("MensagemMensaje : Final Fimde dala Execuçãoejecución emen - "+Time()) RESET ENVIRONMENT Return /*/{Protheus.doc} User Function gravaPart (GravaGraba cliente/fornecedorproveedor emen perfil de participante já existente) @type Function @author user @since 05/09/2023 @version version @param nOp, numeric, OpçãoOpción aque serse aplicadaaplicará @param cCodPerfil, character, Código dodel perfil Perfilal aque serse vinculadovinculará oel participante @param cTipoPart, character, Tipo dode Participanteparticipante - FornecedorProveedor (1) Cliente (2) @param cCliFor, character, Código dodel cliente/fornecedorproveedor @param cLoja, character, LojaTienda dodel cliente/fornecedorproveedor @param cTipoPerf, character, Tipo dode Perfilperfil de participante: 1-OrigemOrigen Destinodestino; 2-Participante; 3-OperaçãoOperación. NoEn nossonuestro caso siempre será sempre 2 @return lOk, logical, flag que identifica sesi aocurrió inserçãola ocorreuinclusión /*/ User Function gravaPart(nOp, cCodPerfil, cTipoPart, cCliFor, cLoja, cTipoPerf) local oModel as object local lOk := .F. oModel := FwLoadModel("FISA164") // carregocargo oel modelo de dala rotinarutina if nOp == MODEL_OPERATION_UPDATE // verifico sesi ées alteraçãomodificación // Através da operaçãoPor medio de la operación de update en noel modelo, consigo adicionaragregar umauna novanueva // línea linhaen nala GRID (F22). oModel:SetOperation(MODEL_OPERATION_UPDATE) oModel:Activate() // ativoactivo oel modelo //AdicionaAgrega una umanueva novalínea linhaen noel grid oModel:GetModel("FISA164PARTICIPANTE"):AddLine() oModel:SetValue("FISA164PARTICIPANTE", "F22_CODIGO", cCodPerfil) oModel:SetValue("FISA164PARTICIPANTE", "F22_TPPART", cTipoPart) oModel:SetValue("FISA164PARTICIPANTE", "F22_CLIFOR", cCliFor) oModel:SetValue("FISA164PARTICIPANTE", "F22_LOJA", cLoja) oModel:SetValue("FISA164PARTICIPANTE", "F22_TIPOPF", cTipoPerf) If oModel:VldData() oModel:CommitData() lOk := .T. Else VarInfo("",oModel:GetErrorMessage()) EndIf oModel:DeActivate() else ConOut("MensagemMensaje : OpçãoOpción de operaçãooperación diferente dade la esperada: ") ConOut("MensagemMensaje : OperaçãoOperación esperada: 4") ConOut("MensagemMensaje : OperaçãoOperación recebidarecibida: " + str(nOp)) endif Return lOk |
...
Identificadores do modelo da rotina FISA164
Identificador | Descrição Descripción |
---|---|
FISA164 | Identificador dodel modelo |
FISA164 | Identificador dodel submodelo de cabeçalho da rotinade encabezado de la rutina |
FISA164PARTICIPANTE | Identificador dodel submodelo de grid da rotinade la rutina |
...
Tabela Tabla | Descrição Descripción |
---|---|
F20 | Perfis Tributários Perfiles tributarios |
F22 | Perfil Trib. dedel Participante |